File: node/js/node-region.js
- /**
- * @module node
- * @submodule node-screen
- */
-
- /**
- * Returns a region object for the node
- * @config region
- * @for Node
- * @type Node
- */
- Y.Node.ATTRS.region = {
- getter: function() {
- var node = this.getDOMNode(),
- region;
-
- if (node && !node.tagName) {
- if (node.nodeType === 9) { // document
- node = node.documentElement;
- }
- }
- if (Y.DOM.isWindow(node)) {
- region = Y.DOM.viewportRegion(node);
- } else {
- region = Y.DOM.region(node);
- }
- return region;
- }
- };
-
- /**
- * Returns a region object for the node's viewport
- * @config viewportRegion
- * @type Node
- */
- Y.Node.ATTRS.viewportRegion = {
- getter: function() {
- return Y.DOM.viewportRegion(Y.Node.getDOMNode(this));
- }
- };
-
- Y.Node.importMethod(Y.DOM, 'inViewportRegion');
-
- // these need special treatment to extract 2nd node arg
- /**
- * Compares the intersection of the node with another node or region
- * @method intersect
- * @for Node
- * @param {Node|Object} node2 The node or region to compare with.
- * @param {Object} altRegion An alternate region to use (rather than this node's).
- * @return {Object} An object representing the intersection of the regions.
- */
- Y.Node.prototype.intersect = function(node2, altRegion) {
- var node1 = Y.Node.getDOMNode(this);
- if (Y.instanceOf(node2, Y.Node)) { // might be a region object
- node2 = Y.Node.getDOMNode(node2);
- }
- return Y.DOM.intersect(node1, node2, altRegion);
- };
-
- /**
- * Determines whether or not the node is within the given region.
- * @method inRegion
- * @param {Node|Object} node2 The node or region to compare with.
- * @param {Boolean} all Whether or not all of the node must be in the region.
- * @param {Object} altRegion An alternate region to use (rather than this node's).
- * @return {Boolean} True if in region, false if not.
- */
- Y.Node.prototype.inRegion = function(node2, all, altRegion) {
- var node1 = Y.Node.getDOMNode(this);
- if (Y.instanceOf(node2, Y.Node)) { // might be a region object
- node2 = Y.Node.getDOMNode(node2);
- }
- return Y.DOM.inRegion(node1, node2, all, altRegion);
- };
-
-