관리-도구
편집 파일: jquery.ui.position.min.js
!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}((function(t){t.ui=t.ui||{},t.ui.version="1.12.1",function(){function i(t,i,o){return[parseFloat(t[0])*(p.test(t[0])?i/100:1),parseFloat(t[1])*(p.test(t[1])?o/100:1)]}function o(i,o){return parseInt(t.css(i,o),10)||0}var e,l=Math.max,n=Math.abs,f=/left|center|right/,s=/top|center|bottom/,h=/[\+\-]\d+(\.[\d]+)?%?/,r=/^\w+/,p=/%$/,c=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==e)return e;var i,o,l=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),n=l.children()[0];return t("body").append(l),i=n.offsetWidth,l.css("overflow","scroll"),i===(o=n.offsetWidth)&&(o=l[0].clientWidth),l.remove(),e=i-o},getScrollInfo:function(i){var o=i.isWindow||i.isDocument?"":i.element.css("overflow-x"),e=i.isWindow||i.isDocument?"":i.element.css("overflow-y"),l="scroll"===o||"auto"===o&&i.width<i.element[0].scrollWidth;return{width:"scroll"===e||"auto"===e&&i.height<i.element[0].scrollHeight?t.position.scrollbarWidth():0,height:l?t.position.scrollbarWidth():0}},getWithinInfo:function(i){var o=t(i||window),e=t.isWindow(o[0]),l=!!o[0]&&9===o[0].nodeType;return{element:o,isWindow:e,isDocument:l,offset:!e&&!l?t(i).offset():{left:0,top:0},scrollLeft:o.scrollLeft(),scrollTop:o.scrollTop(),width:o.outerWidth(),height:o.outerHeight()}}},t.fn.position=function(e){if(!e||!e.of)return c.apply(this,arguments);e=t.extend({},e);var p,a,d,g,u,m,w=t(e.of),W=t.position.getWithinInfo(e.within),v=t.position.getScrollInfo(W),y=(e.collision||"flip").split(" "),H={};return m=function(i){var o=i[0];return 9===o.nodeType?{width:i.width(),height:i.height(),offset:{top:0,left:0}}:t.isWindow(o)?{width:i.width(),height:i.height(),offset:{top:i.scrollTop(),left:i.scrollLeft()}}:o.preventDefault?{width:0,height:0,offset:{top:o.pageY,left:o.pageX}}:{width:i.outerWidth(),height:i.outerHeight(),offset:i.offset()}}(w),w[0].preventDefault&&(e.at="left top"),a=m.width,d=m.height,g=m.offset,u=t.extend({},g),t.each(["my","at"],(function(){var t,i,o=(e[this]||"").split(" ");1===o.length&&(o=f.test(o[0])?o.concat(["center"]):s.test(o[0])?["center"].concat(o):["center","center"]),o[0]=f.test(o[0])?o[0]:"center",o[1]=s.test(o[1])?o[1]:"center",t=h.exec(o[0]),i=h.exec(o[1]),H[this]=[t?t[0]:0,i?i[0]:0],e[this]=[r.exec(o[0])[0],r.exec(o[1])[0]]})),1===y.length&&(y[1]=y[0]),"right"===e.at[0]?u.left+=a:"center"===e.at[0]&&(u.left+=a/2),"bottom"===e.at[1]?u.top+=d:"center"===e.at[1]&&(u.top+=d/2),p=i(H.at,a,d),u.left+=p[0],u.top+=p[1],this.each((function(){var f,s,h=t(this),r=h.outerWidth(),c=h.outerHeight(),m=o(this,"marginLeft"),b=o(this,"marginTop"),x=r+m+o(this,"marginRight")+v.width,T=c+b+o(this,"marginBottom")+v.height,L=t.extend({},u),P=i(H.my,h.outerWidth(),h.outerHeight());"right"===e.my[0]?L.left-=r:"center"===e.my[0]&&(L.left-=r/2),"bottom"===e.my[1]?L.top-=c:"center"===e.my[1]&&(L.top-=c/2),L.left+=P[0],L.top+=P[1],f={marginLeft:m,marginTop:b},t.each(["left","top"],(function(i,o){t.ui.position[y[i]]&&t.ui.position[y[i]][o](L,{targetWidth:a,targetHeight:d,elemWidth:r,elemHeight:c,collisionPosition:f,collisionWidth:x,collisionHeight:T,offset:[p[0]+P[0],p[1]+P[1]],my:e.my,at:e.at,within:W,elem:h})})),e.using&&(s=function(t){var i=g.left-L.left,o=i+a-r,f=g.top-L.top,s=f+d-c,p={target:{element:w,left:g.left,top:g.top,width:a,height:d},element:{element:h,left:L.left,top:L.top,width:r,height:c},horizontal:0>o?"left":i>0?"right":"center",vertical:0>s?"top":f>0?"bottom":"middle"};r>a&&a>n(i+o)&&(p.horizontal="center"),c>d&&d>n(f+s)&&(p.vertical="middle"),p.important=l(n(i),n(o))>l(n(f),n(s))?"horizontal":"vertical",e.using.call(this,t,p)}),h.offset(t.extend(L,{using:s}))}))},t.ui.position={fit:{left:function(t,i){var o,e=i.within,n=e.isWindow?e.scrollLeft:e.offset.left,f=e.width,s=t.left-i.collisionPosition.marginLeft,h=n-s,r=s+i.collisionWidth-f-n;i.collisionWidth>f?h>0&&0>=r?(o=t.left+h+i.collisionWidth-f-n,t.left+=h-o):t.left=r>0&&0>=h?n:h>r?n+f-i.collisionWidth:n:h>0?t.left+=h:r>0?t.left-=r:t.left=l(t.left-s,t.left)},top:function(t,i){var o,e=i.within,n=e.isWindow?e.scrollTop:e.offset.top,f=i.within.height,s=t.top-i.collisionPosition.marginTop,h=n-s,r=s+i.collisionHeight-f-n;i.collisionHeight>f?h>0&&0>=r?(o=t.top+h+i.collisionHeight-f-n,t.top+=h-o):t.top=r>0&&0>=h?n:h>r?n+f-i.collisionHeight:n:h>0?t.top+=h:r>0?t.top-=r:t.top=l(t.top-s,t.top)}},flip:{left:function(t,i){var o,e,l=i.within,f=l.offset.left+l.scrollLeft,s=l.width,h=l.isWindow?l.scrollLeft:l.offset.left,r=t.left-i.collisionPosition.marginLeft,p=r-h,c=r+i.collisionWidth-s-h,a="left"===i.my[0]?-i.elemWidth:"right"===i.my[0]?i.elemWidth:0,d="left"===i.at[0]?i.targetWidth:"right"===i.at[0]?-i.targetWidth:0,g=-2*i.offset[0];0>p?(0>(o=t.left+a+d+g+i.collisionWidth-s-f)||n(p)>o)&&(t.left+=a+d+g):c>0&&(((e=t.left-i.collisionPosition.marginLeft+a+d+g-h)>0||c>n(e))&&(t.left+=a+d+g))},top:function(t,i){var o,e,l=i.within,f=l.offset.top+l.scrollTop,s=l.height,h=l.isWindow?l.scrollTop:l.offset.top,r=t.top-i.collisionPosition.marginTop,p=r-h,c=r+i.collisionHeight-s-h,a="top"===i.my[1]?-i.elemHeight:"bottom"===i.my[1]?i.elemHeight:0,d="top"===i.at[1]?i.targetHeight:"bottom"===i.at[1]?-i.targetHeight:0,g=-2*i.offset[1];0>p?(0>(e=t.top+a+d+g+i.collisionHeight-s-f)||n(p)>e)&&(t.top+=a+d+g):c>0&&(((o=t.top-i.collisionPosition.marginTop+a+d+g-h)>0||c>n(o))&&(t.top+=a+d+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position}));