@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) • 3.44 kB
JavaScript
!function(e){"function"==typeof define&&define.amd?define(["kendo.popup.min","kendo.mobile.pane.min"],e):e()}((function(){var e,i,o,t,n,p,r,s,a,l,d,c,h;e=window.kendo.jQuery,i=window.kendo,o=i.mobile.ui,t="hide",n="open",p="close",r=o.Widget,s={down:{origin:"bottom center",position:"top center"},up:{origin:"top center",position:"bottom center"},left:{origin:"center left",position:"center right",collision:"fit flip"},right:{origin:"center right",position:"center left",collision:"fit flip"}},a={animation:{open:{effects:"fade:in",duration:0},close:{effects:"fade:out",duration:400}}},l={horizontal:{offset:"top",size:"height"},vertical:{offset:"left",size:"width"}},d={up:"down",down:"up",left:"right",right:"left"},c=r.extend({init:function(o,n){var p,d,c=this,h=o.closest(".km-modalview-wrapper"),u=o.closest(".km-root").children(".km-pane").first(),f=h[0]?h:u;n.viewport?u=n.viewport:u[0]||(u=window),n.container?f=n.container:f[0]||(f=document.body),p={viewport:u,copyAnchorStyles:!1,autosize:!0,open:function(){c.overlay.show()},activate:c._activate.bind(c),deactivate:function(){c.overlay.hide(),c._apiCall||c.trigger(t),c._apiCall=!1}},r.fn.init.call(c,o,n),o=c.element,n=c.options,o.wrap('<div class="km-popup-wrapper"></div>').addClass("km-popup").show(),d=c.options.direction.match(/left|right/)?"horizontal":"vertical",c.dimensions=l[d],c.wrapper=o.parent().css({width:n.width,height:n.height}).addClass("km-popup-wrapper km-"+n.direction).hide(),c.arrow=e('<div class="km-popup-arrow"></div>').prependTo(c.wrapper).hide(),c.overlay=e('<div class="km-popup-overlay"></div>').appendTo(f).hide(),p.appendTo=c.overlay,n.className&&c.overlay.addClass(n.className),c.popup=new i.ui.Popup(c.wrapper,e.extend(!0,p,a,s[n.direction]))},options:{name:"Popup",width:240,height:"",direction:"down",container:null,viewport:null},events:[t],show:function(i){this.popup.options.anchor=e(i),this.popup.open()},hide:function(){this._apiCall=!0,this.popup.close()},destroy:function(){r.fn.destroy.call(this),this.popup.destroy(),this.overlay.remove()},target:function(){return this.popup.options.anchor},_activate:function(){var i=this,o=i.options.direction,t=i.dimensions,n=t.offset,p=i.popup,r=p.options.anchor,s=e(r).offset(),a=e(p.element).offset(),l=p.flipped?d[o]:o,c=2*i.arrow[t.size](),h=i.element[t.size]()-i.arrow[t.size](),u=e(r)[t.size](),f=s[n]-a[n]+u/2;f<c&&(f=c),f>h&&(f=h),i.wrapper.removeClass("km-up km-down km-left km-right").addClass("km-"+l),i.arrow.css(n,f).show()}}),h=r.extend({init:function(t,n){var s,a=this;a.initialOpen=!1,r.fn.init.call(a,t,n),s=e.extend({className:"km-popover-root",hide:function(){a.trigger(p)}},this.options.popup),a.popup=new c(a.element,s),a.popup.overlay.on("move",(function(e){e.target==a.popup.overlay[0]&&e.preventDefault()})),a.pane=new o.Pane(a.element,e.extend(this.options.pane,{$angular:this.options.$angular})),i.notify(a,o)},options:{name:"PopOver",popup:{},pane:{}},events:[n,p],open:function(e){this.popup.show(e),this.initialOpen?this.pane.view()._invokeNgController():(this.pane.navigateToInitial()||this.pane.navigate(""),this.popup.popup._position(),this.initialOpen=!0)},openFor:function(e){this.open(e),this.trigger(n,{target:this.popup.target()})},close:function(){this.popup.hide()},destroy:function(){r.fn.destroy.call(this),this.pane.destroy(),this.popup.destroy(),i.destroy(this.element)}}),o.plugin(c),o.plugin(h)}));
//# sourceMappingURL=kendo.mobile.popover.min.js.map