]>
git.wh0rd.org - tt-rss.git/blob - lib/dijit/popup.js
2 define("dijit/popup",["dojo/_base/array","dojo/aspect","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-construct","dojo/dom-geometry","dojo/dom-style","dojo/has","dojo/keys","dojo/_base/lang","dojo/on","./place","./BackgroundIframe","./Viewport","./main","dojo/touch"],function(_1
,_2
,_3
,_4
,_5
,_6
,_7
,_8
,_9
,_a
,_b
,on
,_c
,_d
,_e
,_f
){function _10(){if(this._popupWrapper
){_6
.destroy(this._popupWrapper
);delete this._popupWrapper
;}};var _11
=_3(null,{_stack
:[],_beginZIndex
:1000,_idGen
:1,_repositionAll:function(){if(this._firstAroundNode
){var _12
=this._firstAroundPosition
,_13
=_7
.position(this._firstAroundNode
,true),dx
=_13
.x
-_12
.x
,dy
=_13
.y
-_12
.y
;if(dx
||dy
){this._firstAroundPosition
=_13
;for(var i
=0;i
<this._stack
.length
;i
++){var _14
=this._stack
[i
].wrapper
.style
;_14
.top
=(parseFloat(_14
.top
)+dy
)+"px";if(_14
.right
=="auto"){_14
.left
=(parseFloat(_14
.left
)+dx
)+"px";}else{_14
.right
=(parseFloat(_14
.right
)-dx
)+"px";}}}this._aroundMoveListener
=setTimeout(_b
.hitch(this,"_repositionAll"),dx
||dy
?10:50);}},_createWrapper:function(_15
){var _16
=_15
._popupWrapper
,_17
=_15
.domNode
;if(!_16
){_16
=_6
.create("div",{"class":"dijitPopup",style
:{display
:"none"},role
:"region","aria-label":_15
["aria-label"]||_15
.label
||_15
.name
||_15
.id
},_15
.ownerDocumentBody
);_16
.appendChild(_17
);var s
=_17
.style
;s
.display
="";s
.visibility
="";s
.position
="";s
.top
="0px";_15
._popupWrapper
=_16
;_2
.after(_15
,"destroy",_10
,true);if("ontouchend" in document
){on(_16
,"touchend",function(evt
){if(!/^(input
|button
|textarea
)$/i
.test(evt
.target
.tagName
)){evt
.preventDefault();}});}_16
.dojoClick
=true;}return _16
;},moveOffScreen:function(_18
){var _19
=this._createWrapper(_18
);var ltr
=_7
.isBodyLtr(_18
.ownerDocument
),_1a
={visibility
:"hidden",top
:"-9999px",display
:""};_1a
[ltr
?"left":"right"]="-9999px";_1a
[ltr
?"right":"left"]="auto";_8
.set(_19
,_1a
);return _19
;},hide:function(_1b
){var _1c
=this._createWrapper(_1b
);_8
.set(_1c
,{display
:"none",height
:"auto",overflowY
:"visible",border
:""});var _1d
=_1b
.domNode
;if("_originalStyle" in _1d
){_1d
.style
.cssText
=_1d
._originalStyle
;}},getTopPopup:function(){var _1e
=this._stack
;for(var pi
=_1e
.length
-1;pi
>0&&_1e
[pi
].parent
===_1e
[pi
-1].widget
;pi
--){}return _1e
[pi
];},open:function(_1f
){var _20
=this._stack
,_21
=_1f
.popup
,_22
=_21
.domNode
,_23
=_1f
.orient
||["below","below-alt","above","above-alt"],ltr
=_1f
.parent
?_1f
.parent
.isLeftToRight():_7
.isBodyLtr(_21
.ownerDocument
),_24
=_1f
.around
,id
=(_1f
.around
&&_1f
.around
.id
)?(_1f
.around
.id
+"_dropdown"):("popup_"+this._idGen
++);while(_20
.length
&&(!_1f
.parent
||!_4
.isDescendant(_1f
.parent
.domNode
,_20
[_20
.length
-1].widget
.domNode
))){this.close(_20
[_20
.length
-1].widget
);}var _25
=this.moveOffScreen(_21
);if(_21
.startup
&&!_21
._started
){_21
.startup();}var _26
,_27
=_7
.position(_22
);if("maxHeight" in _1f
&&_1f
.maxHeight
!=-1){_26
=_1f
.maxHeight
||Infinity
;}else{var _28
=_e
.getEffectiveBox(this.ownerDocument
),_29
=_24
?_7
.position(_24
,false):{y
:_1f
.y
-(_1f
.padding
||0),h
:(_1f
.padding
||0)*2};_26
=Math
.floor(Math
.max(_29
.y
,_28
.h
-(_29
.y
+_29
.h
)));}if(_27
.h
>_26
){var cs
=_8
.getComputedStyle(_22
),_2a
=cs
.borderLeftWidth
+" "+cs
.borderLeftStyle
+" "+cs
.borderLeftColor
;_8
.set(_25
,{overflowY
:"scroll",height
:_26
+"px",border
:_2a
});_22
._originalStyle
=_22
.style
.cssText
;_22
.style
.border
="none";}_5
.set(_25
,{id
:id
,style
:{zIndex
:this._beginZIndex
+_20
.length
},"class":"dijitPopup "+(_21
.baseClass
||_21
["class"]||"").split(" ")[0]+"Popup",dijitPopupParent
:_1f
.parent
?_1f
.parent
.id
:""});if(_20
.length
==0&&_24
){this._firstAroundNode
=_24
;this._firstAroundPosition
=_7
.position(_24
,true);this._aroundMoveListener
=setTimeout(_b
.hitch(this,"_repositionAll"),50);}if(_9("config-bgIframe")&&!_21
.bgIframe
){_21
.bgIframe
=new _d(_25
);}var _2b
=_21
.orient
?_b
.hitch(_21
,"orient"):null,_2c
=_24
?_c
.around(_25
,_24
,_23
,ltr
,_2b
):_c
.at(_25
,_1f
,_23
=="R"?["TR","BR","TL","BL"]:["TL","BL","TR","BR"],_1f
.padding
,_2b
);_25
.style
.visibility
="visible";_22
.style
.visibility
="visible";var _2d
=[];_2d
.push(on(_25
,"keydown",_b
.hitch(this,function(evt
){if(evt
.keyCode
==_a
.ESCAPE
&&_1f
.onCancel
){evt
.stopPropagation();evt
.preventDefault();_1f
.onCancel();}else{if(evt
.keyCode
==_a
.TAB
){evt
.stopPropagation();evt
.preventDefault();var _2e
=this.getTopPopup();if(_2e
&&_2e
.onCancel
){_2e
.onCancel();}}}})));if(_21
.onCancel
&&_1f
.onCancel
){_2d
.push(_21
.on("cancel",_1f
.onCancel
));}_2d
.push(_21
.on(_21
.onExecute
?"execute":"change",_b
.hitch(this,function(){var _2f
=this.getTopPopup();if(_2f
&&_2f
.onExecute
){_2f
.onExecute();}})));_20
.push({widget
:_21
,wrapper
:_25
,parent
:_1f
.parent
,onExecute
:_1f
.onExecute
,onCancel
:_1f
.onCancel
,onClose
:_1f
.onClose
,handlers
:_2d
});if(_21
.onOpen
){_21
.onOpen(_2c
);}return _2c
;},close:function(_30
){var _31
=this._stack
;while((_30
&&_1
.some(_31
,function(_32
){return _32
.widget
==_30
;}))||(!_30
&&_31
.length
)){var top
=_31
.pop(),_33
=top
.widget
,_34
=top
.onClose
;if(_33
.bgIframe
){_33
.bgIframe
.destroy();delete _33
.bgIframe
;}if(_33
.onClose
){_33
.onClose();}var h
;while(h
=top
.handlers
.pop()){h
.remove();}if(_33
&&_33
.domNode
){this.hide(_33
);}if(_34
){_34();}}if(_31
.length
==0&&this._aroundMoveListener
){clearTimeout(this._aroundMoveListener
);this._firstAroundNode
=this._firstAroundPosition
=this._aroundMoveListener
=null;}}});return (_f
.popup
=new _11());});