yzt
2023-05-26 2f70f6727314edd84d8ec2bfe3ce832803f1ea77
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
define([
    "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;
});