12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- 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;
- });
|