]> git.wh0rd.org - tt-rss.git/blob - lib/dijit/_base/place.js.uncompressed.js
modify dojo rebuild script to remove uncompressed files
[tt-rss.git] / lib / dijit / _base / place.js.uncompressed.js
1 define("dijit/_base/place", [
2 "dojo/_base/array", // array.forEach
3 "dojo/_base/lang", // lang.isArray, lang.mixin
4 "dojo/window", // windowUtils.getBox
5 "../place",
6 "../main" // export to dijit namespace
7 ], function(array, lang, windowUtils, place, dijit){
8
9 // module:
10 // dijit/_base/place
11
12
13 var exports = {
14 // summary:
15 // Deprecated back compatibility module, new code should use dijit/place directly instead of using this module.
16 };
17
18 exports.getViewport = function(){
19 // summary:
20 // Deprecated method to return the dimensions and scroll position of the viewable area of a browser window.
21 // New code should use windowUtils.getBox()
22
23 return windowUtils.getBox();
24 };
25
26 exports.placeOnScreen = place.at;
27
28 exports.placeOnScreenAroundElement = function(node, aroundNode, aroundCorners, layoutNode){
29 // summary:
30 // Like dijit.placeOnScreenAroundNode(), except it accepts an arbitrary object
31 // for the "around" argument and finds a proper processor to place a node.
32 // Deprecated, new code should use dijit/place.around() instead.
33
34 // Convert old style {"BL": "TL", "BR": "TR"} type argument
35 // to style needed by dijit.place code:
36 // [
37 // {aroundCorner: "BL", corner: "TL" },
38 // {aroundCorner: "BR", corner: "TR" }
39 // ]
40 var positions;
41 if(lang.isArray(aroundCorners)){
42 positions = aroundCorners;
43 }else{
44 positions = [];
45 for(var key in aroundCorners){
46 positions.push({aroundCorner: key, corner: aroundCorners[key]});
47 }
48 }
49
50 return place.around(node, aroundNode, positions, true, layoutNode);
51 };
52
53 exports.placeOnScreenAroundNode = exports.placeOnScreenAroundElement;
54 /*=====
55 exports.placeOnScreenAroundNode = function(node, aroundNode, aroundCorners, layoutNode){
56 // summary:
57 // Position node adjacent or kitty-corner to aroundNode
58 // such that it's fully visible in viewport.
59 // Deprecated, new code should use dijit/place.around() instead.
60 };
61 =====*/
62
63 exports.placeOnScreenAroundRectangle = exports.placeOnScreenAroundElement;
64 /*=====
65 exports.placeOnScreenAroundRectangle = function(node, aroundRect, aroundCorners, layoutNode){
66 // summary:
67 // Like dijit.placeOnScreenAroundNode(), except that the "around"
68 // parameter is an arbitrary rectangle on the screen (x, y, width, height)
69 // instead of a dom node.
70 // Deprecated, new code should use dijit/place.around() instead.
71 };
72 =====*/
73
74 exports.getPopupAroundAlignment = function(/*Array*/ position, /*Boolean*/ leftToRight){
75 // summary:
76 // Deprecated method, unneeded when using dijit/place directly.
77 // Transforms the passed array of preferred positions into a format suitable for
78 // passing as the aroundCorners argument to dijit/place.placeOnScreenAroundElement.
79 // position: String[]
80 // This variable controls the position of the drop down.
81 // It's an array of strings with the following values:
82 //
83 // - before: places drop down to the left of the target node/widget, or to the right in
84 // the case of RTL scripts like Hebrew and Arabic
85 // - after: places drop down to the right of the target node/widget, or to the left in
86 // the case of RTL scripts like Hebrew and Arabic
87 // - above: drop down goes above target node
88 // - below: drop down goes below target node
89 //
90 // The list is positions is tried, in order, until a position is found where the drop down fits
91 // within the viewport.
92 // leftToRight: Boolean
93 // Whether the popup will be displaying in leftToRight mode.
94
95 var align = {};
96 array.forEach(position, function(pos){
97 var ltr = leftToRight;
98 switch(pos){
99 case "after":
100 align[leftToRight ? "BR" : "BL"] = leftToRight ? "BL" : "BR";
101 break;
102 case "before":
103 align[leftToRight ? "BL" : "BR"] = leftToRight ? "BR" : "BL";
104 break;
105 case "below-alt":
106 ltr = !ltr;
107 // fall through
108 case "below":
109 // first try to align left borders, next try to align right borders (or reverse for RTL mode)
110 align[ltr ? "BL" : "BR"] = ltr ? "TL" : "TR";
111 align[ltr ? "BR" : "BL"] = ltr ? "TR" : "TL";
112 break;
113 case "above-alt":
114 ltr = !ltr;
115 // fall through
116 case "above":
117 default:
118 // first try to align left borders, next try to align right borders (or reverse for RTL mode)
119 align[ltr ? "TL" : "TR"] = ltr ? "BL" : "BR";
120 align[ltr ? "TR" : "TL"] = ltr ? "BR" : "BL";
121 break;
122 }
123 });
124 return align;
125 };
126
127 lang.mixin(dijit, exports);
128
129 /*===== return exports; =====*/
130 return dijit; // for back compat :-(
131 });