| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389 | 
							- define("dojo/_base/html", ["./kernel", "../dom", "../dom-style", "../dom-attr", "../dom-prop", "../dom-class", "../dom-construct", "../dom-geometry"], function(dojo, dom, style, attr, prop, cls, ctr, geom){
 
- 	// module:
 
- 	//		dojo/dom
 
- 	// summary:
 
- 	//		This module is a stub for the core dojo DOM API.
 
- 	// mix-in dom
 
- 	dojo.byId = dom.byId;
 
- 	dojo.isDescendant = dom.isDescendant;
 
- 	dojo.setSelectable = dom.setSelectable;
 
- 	// mix-in dom-attr
 
- 	dojo.getAttr = attr.get;
 
- 	dojo.setAttr = attr.set;
 
- 	dojo.hasAttr = attr.has;
 
- 	dojo.removeAttr = attr.remove;
 
- 	dojo.getNodeProp = attr.getNodeProp;
 
- 	dojo.attr = function(node, name, value){
 
- 		// summary:
 
- 		//		Gets or sets an attribute on an HTML element.
 
- 		// description:
 
- 		//		Handles normalized getting and setting of attributes on DOM
 
- 		//		Nodes. If 2 arguments are passed, and a the second argument is a
 
- 		//		string, acts as a getter.
 
- 		//
 
- 		//		If a third argument is passed, or if the second argument is a
 
- 		//		map of attributes, acts as a setter.
 
- 		//
 
- 		//		When passing functions as values, note that they will not be
 
- 		//		directly assigned to slots on the node, but rather the default
 
- 		//		behavior will be removed and the new behavior will be added
 
- 		//		using `dojo.connect()`, meaning that event handler properties
 
- 		//		will be normalized and that some caveats with regards to
 
- 		//		non-standard behaviors for onsubmit apply. Namely that you
 
- 		//		should cancel form submission using `dojo.stopEvent()` on the
 
- 		//		passed event object instead of returning a boolean value from
 
- 		//		the handler itself.
 
- 		// node: DOMNode|String
 
- 		//		id or reference to the element to get or set the attribute on
 
- 		// name: String|Object
 
- 		//		the name of the attribute to get or set.
 
- 		// value: String?
 
- 		//		The value to set for the attribute
 
- 		// returns:
 
- 		//		when used as a getter, the value of the requested attribute
 
- 		//		or null if that attribute does not have a specified or
 
- 		//		default value;
 
- 		//
 
- 		//		when used as a setter, the DOM node
 
- 		//
 
- 		// example:
 
- 		//	|	// get the current value of the "foo" attribute on a node
 
- 		//	|	dojo.attr(dojo.byId("nodeId"), "foo");
 
- 		//	|	// or we can just pass the id:
 
- 		//	|	dojo.attr("nodeId", "foo");
 
- 		//
 
- 		// example:
 
- 		//	|	// use attr() to set the tab index
 
- 		//	|	dojo.attr("nodeId", "tabIndex", 3);
 
- 		//	|
 
- 		//
 
- 		// example:
 
- 		//	Set multiple values at once, including event handlers:
 
- 		//	|	dojo.attr("formId", {
 
- 		//	|		"foo": "bar",
 
- 		//	|		"tabIndex": -1,
 
- 		//	|		"method": "POST",
 
- 		//	|		"onsubmit": function(e){
 
- 		//	|			// stop submitting the form. Note that the IE behavior
 
- 		//	|			// of returning true or false will have no effect here
 
- 		//	|			// since our handler is connect()ed to the built-in
 
- 		//	|			// onsubmit behavior and so we need to use
 
- 		//	|			// dojo.stopEvent() to ensure that the submission
 
- 		//	|			// doesn't proceed.
 
- 		//	|			dojo.stopEvent(e);
 
- 		//	|
 
- 		//	|			// submit the form with Ajax
 
- 		//	|			dojo.xhrPost({ form: "formId" });
 
- 		//	|		}
 
- 		//	|	});
 
- 		//
 
- 		// example:
 
- 		//	Style is s special case: Only set with an object hash of styles
 
- 		//	|	dojo.attr("someNode",{
 
- 		//	|		id:"bar",
 
- 		//	|		style:{
 
- 		//	|			width:"200px", height:"100px", color:"#000"
 
- 		//	|		}
 
- 		//	|	});
 
- 		//
 
- 		// example:
 
- 		//	Again, only set style as an object hash of styles:
 
- 		//	|	var obj = { color:"#fff", backgroundColor:"#000" };
 
- 		//	|	dojo.attr("someNode", "style", obj);
 
- 		//	|
 
- 		//	|	// though shorter to use `dojo.style()` in this case:
 
- 		//	|	dojo.style("someNode", obj);
 
- 		if(arguments.length == 2){
 
- 			return attr[typeof name == "string" ? "get" : "set"](node, name);
 
- 		}
 
- 		return attr.set(node, name, value);
 
- 	};
 
- 	// mix-in dom-class
 
- 	dojo.hasClass = cls.contains;
 
- 	dojo.addClass = cls.add;
 
- 	dojo.removeClass = cls.remove;
 
- 	dojo.toggleClass = cls.toggle;
 
- 	dojo.replaceClass = cls.replace;
 
- 	// mix-in dom-construct
 
- 	dojo._toDom = dojo.toDom = ctr.toDom;
 
- 	dojo.place = ctr.place;
 
- 	dojo.create = ctr.create;
 
- 	dojo.empty = function(node){ ctr.empty(node); };
 
- 	dojo._destroyElement = dojo.destroy = function(node){ ctr.destroy(node); };
 
- 	// mix-in dom-geometry
 
- 	dojo._getPadExtents = dojo.getPadExtents = geom.getPadExtents;
 
- 	dojo._getBorderExtents = dojo.getBorderExtents = geom.getBorderExtents;
 
- 	dojo._getPadBorderExtents = dojo.getPadBorderExtents = geom.getPadBorderExtents;
 
- 	dojo._getMarginExtents = dojo.getMarginExtents = geom.getMarginExtents;
 
- 	dojo._getMarginSize = dojo.getMarginSize = geom.getMarginSize;
 
- 	dojo._getMarginBox = dojo.getMarginBox = geom.getMarginBox;
 
- 	dojo.setMarginBox = geom.setMarginBox;
 
- 	dojo._getContentBox = dojo.getContentBox = geom.getContentBox;
 
- 	dojo.setContentSize = geom.setContentSize;
 
- 	dojo._isBodyLtr = dojo.isBodyLtr = geom.isBodyLtr;
 
- 	dojo._docScroll = dojo.docScroll = geom.docScroll;
 
- 	dojo._getIeDocumentElementOffset = dojo.getIeDocumentElementOffset = geom.getIeDocumentElementOffset;
 
- 	dojo._fixIeBiDiScrollLeft = dojo.fixIeBiDiScrollLeft = geom.fixIeBiDiScrollLeft;
 
- 	dojo.position = geom.position;
 
- 	dojo.marginBox = function marginBox(/*DomNode|String*/node, /*Object?*/box){
 
- 		// summary:
 
- 		//		Getter/setter for the margin-box of node.
 
- 		// description:
 
- 		//		Getter/setter for the margin-box of node.
 
- 		//		Returns an object in the expected format of box (regardless
 
- 		//		if box is passed). The object might look like:
 
- 		//			`{ l: 50, t: 200, w: 300: h: 150 }`
 
- 		//		for a node offset from its parent 50px to the left, 200px from
 
- 		//		the top with a margin width of 300px and a margin-height of
 
- 		//		150px.
 
- 		// node:
 
- 		//		id or reference to DOM Node to get/set box for
 
- 		// box:
 
- 		//		If passed, denotes that dojo.marginBox() should
 
- 		//		update/set the margin box for node. Box is an object in the
 
- 		//		above format. All properties are optional if passed.
 
- 		// example:
 
- 		//		Retrieve the margin box of a passed node
 
- 		//	|	var box = dojo.marginBox("someNodeId");
 
- 		//	|	console.dir(box);
 
- 		//
 
- 		// example:
 
- 		//		Set a node's margin box to the size of another node
 
- 		//	|	var box = dojo.marginBox("someNodeId");
 
- 		//	|	dojo.marginBox("someOtherNode", box);
 
- 		return box ? geom.setMarginBox(node, box) : geom.getMarginBox(node); // Object
 
- 	};
 
- 	dojo.contentBox = function contentBox(/*DomNode|String*/node, /*Object?*/box){
 
- 		// summary:
 
- 		//		Getter/setter for the content-box of node.
 
- 		// description:
 
- 		//		Returns an object in the expected format of box (regardless if box is passed).
 
- 		//		The object might look like:
 
- 		//			`{ l: 50, t: 200, w: 300: h: 150 }`
 
- 		//		for a node offset from its parent 50px to the left, 200px from
 
- 		//		the top with a content width of 300px and a content-height of
 
- 		//		150px. Note that the content box may have a much larger border
 
- 		//		or margin box, depending on the box model currently in use and
 
- 		//		CSS values set/inherited for node.
 
- 		//		While the getter will return top and left values, the
 
- 		//		setter only accepts setting the width and height.
 
- 		// node:
 
- 		//		id or reference to DOM Node to get/set box for
 
- 		// box:
 
- 		//		If passed, denotes that dojo.contentBox() should
 
- 		//		update/set the content box for node. Box is an object in the
 
- 		//		above format, but only w (width) and h (height) are supported.
 
- 		//		All properties are optional if passed.
 
- 		return box ? geom.setContentSize(node, box) : geom.getContentBox(node); // Object
 
- 	};
 
- 	dojo.coords = function(/*DomNode|String*/node, /*Boolean?*/includeScroll){
 
- 		// summary:
 
- 		//		Deprecated: Use position() for border-box x/y/w/h
 
- 		//		or marginBox() for margin-box w/h/l/t.
 
- 		//		Returns an object representing a node's size and position.
 
- 		//
 
- 		// description:
 
- 		//		Returns an object that measures margin-box (w)idth/(h)eight
 
- 		//		and absolute position x/y of the border-box. Also returned
 
- 		//		is computed (l)eft and (t)op values in pixels from the
 
- 		//		node's offsetParent as returned from marginBox().
 
- 		//		Return value will be in the form:
 
- 		//|			{ l: 50, t: 200, w: 300: h: 150, x: 100, y: 300 }
 
- 		//		Does not act as a setter. If includeScroll is passed, the x and
 
- 		//		y params are affected as one would expect in dojo.position().
 
- 		dojo.deprecated("dojo.coords()", "Use dojo.position() or dojo.marginBox().");
 
- 		node = dom.byId(node);
 
- 		var s = style.getComputedStyle(node), mb = geom.getMarginBox(node, s);
 
- 		var abs = geom.position(node, includeScroll);
 
- 		mb.x = abs.x;
 
- 		mb.y = abs.y;
 
- 		return mb;	// Object
 
- 	};
 
- 	// mix-in dom-prop
 
- 	dojo.getProp = prop.get;
 
- 	dojo.setProp = prop.set;
 
- 	dojo.prop = function(/*DomNode|String*/node, /*String|Object*/name, /*String?*/value){
 
- 		// summary:
 
- 		//		Gets or sets a property on an HTML element.
 
- 		// description:
 
- 		//		Handles normalized getting and setting of properties on DOM
 
- 		//		Nodes. If 2 arguments are passed, and a the second argument is a
 
- 		//		string, acts as a getter.
 
- 		//
 
- 		//		If a third argument is passed, or if the second argument is a
 
- 		//		map of attributes, acts as a setter.
 
- 		//
 
- 		//		When passing functions as values, note that they will not be
 
- 		//		directly assigned to slots on the node, but rather the default
 
- 		//		behavior will be removed and the new behavior will be added
 
- 		//		using `dojo.connect()`, meaning that event handler properties
 
- 		//		will be normalized and that some caveats with regards to
 
- 		//		non-standard behaviors for onsubmit apply. Namely that you
 
- 		//		should cancel form submission using `dojo.stopEvent()` on the
 
- 		//		passed event object instead of returning a boolean value from
 
- 		//		the handler itself.
 
- 		// node:
 
- 		//		id or reference to the element to get or set the property on
 
- 		// name:
 
- 		//		the name of the property to get or set.
 
- 		// value:
 
- 		//		The value to set for the property
 
- 		// returns:
 
- 		//		when used as a getter, the value of the requested property
 
- 		//		or null if that attribute does not have a specified or
 
- 		//		default value;
 
- 		//
 
- 		//		when used as a setter, the DOM node
 
- 		//
 
- 		// example:
 
- 		//	|	// get the current value of the "foo" property on a node
 
- 		//	|	dojo.prop(dojo.byId("nodeId"), "foo");
 
- 		//	|	// or we can just pass the id:
 
- 		//	|	dojo.prop("nodeId", "foo");
 
- 		//
 
- 		// example:
 
- 		//	|	// use prop() to set the tab index
 
- 		//	|	dojo.prop("nodeId", "tabIndex", 3);
 
- 		//	|
 
- 		//
 
- 		// example:
 
- 		//	Set multiple values at once, including event handlers:
 
- 		//	|	dojo.prop("formId", {
 
- 		//	|		"foo": "bar",
 
- 		//	|		"tabIndex": -1,
 
- 		//	|		"method": "POST",
 
- 		//	|		"onsubmit": function(e){
 
- 		//	|			// stop submitting the form. Note that the IE behavior
 
- 		//	|			// of returning true or false will have no effect here
 
- 		//	|			// since our handler is connect()ed to the built-in
 
- 		//	|			// onsubmit behavior and so we need to use
 
- 		//	|			// dojo.stopEvent() to ensure that the submission
 
- 		//	|			// doesn't proceed.
 
- 		//	|			dojo.stopEvent(e);
 
- 		//	|
 
- 		//	|			// submit the form with Ajax
 
- 		//	|			dojo.xhrPost({ form: "formId" });
 
- 		//	|		}
 
- 		//	|	});
 
- 		//
 
- 		// example:
 
- 		//	Style is s special case: Only set with an object hash of styles
 
- 		//	|	dojo.prop("someNode",{
 
- 		//	|		id:"bar",
 
- 		//	|		style:{
 
- 		//	|			width:"200px", height:"100px", color:"#000"
 
- 		//	|		}
 
- 		//	|	});
 
- 		//
 
- 		// example:
 
- 		//	Again, only set style as an object hash of styles:
 
- 		//	|	var obj = { color:"#fff", backgroundColor:"#000" };
 
- 		//	|	dojo.prop("someNode", "style", obj);
 
- 		//	|
 
- 		//	|	// though shorter to use `dojo.style()` in this case:
 
- 		//	|	dojo.style("someNode", obj);
 
- 		if(arguments.length == 2){
 
- 			return prop[typeof name == "string" ? "get" : "set"](node, name);
 
- 		}
 
- 		// setter
 
- 		return prop.set(node, name, value);
 
- 	};
 
- 	// mix-in dom-style
 
- 	dojo.getStyle = style.get;
 
- 	dojo.setStyle = style.set;
 
- 	dojo.getComputedStyle = style.getComputedStyle;
 
- 	dojo.__toPixelValue = dojo.toPixelValue = style.toPixelValue;
 
- 	dojo.style = function(node, name, value){
 
- 		// summary:
 
- 		//		Accesses styles on a node. If 2 arguments are
 
- 		//		passed, acts as a getter. If 3 arguments are passed, acts
 
- 		//		as a setter.
 
- 		// description:
 
- 		//		Getting the style value uses the computed style for the node, so the value
 
- 		//		will be a calculated value, not just the immediate node.style value.
 
- 		//		Also when getting values, use specific style names,
 
- 		//		like "borderBottomWidth" instead of "border" since compound values like
 
- 		//		"border" are not necessarily reflected as expected.
 
- 		//		If you want to get node dimensions, use `dojo.marginBox()`,
 
- 		//		`dojo.contentBox()` or `dojo.position()`.
 
- 		// node: DOMNode|String
 
- 		//		id or reference to node to get/set style for
 
- 		// name: String?|Object?
 
- 		//		the style property to set in DOM-accessor format
 
- 		//		("borderWidth", not "border-width") or an object with key/value
 
- 		//		pairs suitable for setting each property.
 
- 		// value: String?
 
- 		//		If passed, sets value on the node for style, handling
 
- 		//		cross-browser concerns.  When setting a pixel value,
 
- 		//		be sure to include "px" in the value. For instance, top: "200px".
 
- 		//		Otherwise, in some cases, some browsers will not apply the style.
 
- 		// returns:
 
- 		//		when used as a getter, return the computed style of the node if passing in an ID or node,
 
- 		//		or return the normalized, computed value for the property when passing in a node and a style property
 
- 		// example:
 
- 		//		Passing only an ID or node returns the computed style object of
 
- 		//		the node:
 
- 		//	|	dojo.style("thinger");
 
- 		// example:
 
- 		//		Passing a node and a style property returns the current
 
- 		//		normalized, computed value for that property:
 
- 		//	|	dojo.style("thinger", "opacity"); // 1 by default
 
- 		//
 
- 		// example:
 
- 		//		Passing a node, a style property, and a value changes the
 
- 		//		current display of the node and returns the new computed value
 
- 		//	|	dojo.style("thinger", "opacity", 0.5); // == 0.5
 
- 		//
 
- 		// example:
 
- 		//		Passing a node, an object-style style property sets each of the values in turn and returns the computed style object of the node:
 
- 		//	|	dojo.style("thinger", {
 
- 		//	|		"opacity": 0.5,
 
- 		//	|		"border": "3px solid black",
 
- 		//	|		"height": "300px"
 
- 		//	|	});
 
- 		//
 
- 		// example:
 
- 		//		When the CSS style property is hyphenated, the JavaScript property is camelCased.
 
- 		//		font-size becomes fontSize, and so on.
 
- 		//	|	dojo.style("thinger",{
 
- 		//	|		fontSize:"14pt",
 
- 		//	|		letterSpacing:"1.2em"
 
- 		//	|	});
 
- 		//
 
- 		// example:
 
- 		//		dojo.NodeList implements .style() using the same syntax, omitting the "node" parameter, calling
 
- 		//		dojo.style() on every element of the list. See: `dojo.query()` and `dojo.NodeList()`
 
- 		//	|	dojo.query(".someClassName").style("visibility","hidden");
 
- 		//	|	// or
 
- 		//	|	dojo.query("#baz > div").style({
 
- 		//	|		opacity:0.75,
 
- 		//	|		fontSize:"13pt"
 
- 		//	|	});
 
- 		switch(arguments.length){
 
- 			case 1:
 
- 				return style.get(node);
 
- 			case 2:
 
- 				return style[typeof name == "string" ? "get" : "set"](node, name);
 
- 		}
 
- 		// setter
 
- 		return style.set(node, name, value);
 
- 	};
 
- 	return dojo;
 
- });
 
 
  |