tt-rss/lib/dijit/_base/popup.js.uncompressed.js
2013-03-18 10:26:26 +04:00

58 line
1.8 KiB
JavaScript

define("dijit/_base/popup", [
"dojo/dom-class", // domClass.contains
"dojo/_base/window",
"../popup",
"../BackgroundIframe" // just loading for back-compat, in case client code is referencing it
], function(domClass, win, popup){
// module:
// dijit/_base/popup
/*=====
return {
// summary:
// Deprecated. Old module for popups, new code should use dijit/popup directly.
};
=====*/
// Hack support for old API passing in node instead of a widget (to various methods)
var origCreateWrapper = popup._createWrapper;
popup._createWrapper = function(widget){
if(!widget.declaredClass){
// make fake widget to pass to new API
widget = {
_popupWrapper: (widget.parentNode && domClass.contains(widget.parentNode, "dijitPopup")) ?
widget.parentNode : null,
domNode: widget,
destroy: function(){},
ownerDocument: widget.ownerDocument,
ownerDocumentBody: win.body(widget.ownerDocument)
};
}
return origCreateWrapper.call(this, widget);
};
// Support old format of orient parameter
var origOpen = popup.open;
popup.open = function(/*__OpenArgs*/ args){
// Convert old hash structure (ex: {"BL": "TL", ...}) of orient to format compatible w/new popup.open() API.
// Don't do conversion for:
// - null parameter (that means to use the default positioning)
// - "R" or "L" strings used to indicate positioning for context menus (when there is no around node)
// - new format, ex: ["below", "above"]
// - return value from deprecated dijit.getPopupAroundAlignment() method,
// ex: ["below", "above"]
if(args.orient && typeof args.orient != "string" && !("length" in args.orient)){
var ary = [];
for(var key in args.orient){
ary.push({aroundCorner: key, corner: args.orient[key]});
}
args.orient = ary;
}
return origOpen.call(this, args);
};
return popup;
});