123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- "use strict";
- define( function() {
- var exports = {
-
-
-
-
-
-
-
-
-
-
-
- canvasFromContent: function( element, xyContent ) {
- var computedStyle = getComputedStyle( element );
- var contentWidth = element.clientWidth -
- ( parseFloat( computedStyle.getPropertyValue( "padding-left" ) ) || 0 ) -
- ( parseFloat( computedStyle.getPropertyValue( "padding-right" ) ) || 0 );
- var contentHeight = element.clientHeight -
- ( parseFloat( computedStyle.getPropertyValue( "padding-top" ) ) || 0 ) -
- ( parseFloat( computedStyle.getPropertyValue( "padding-bottom" ) ) || 0 );
- return {
- x: ( xyContent && xyContent.x || 0 ) / contentWidth * ( element.width || contentWidth ),
- y: ( xyContent && xyContent.y || 0 ) / contentHeight * ( element.height || contentHeight ),
- };
- },
-
-
-
-
-
-
-
-
-
-
-
-
- contentFromPadding: function( element, xyPadding ) {
- var computedStyle = getComputedStyle( element );
- return {
- x: ( xyPadding && xyPadding.x || 0 ) - ( parseFloat( computedStyle.getPropertyValue( "padding-left" ) ) || 0 ) + element.scrollLeft,
- y: ( xyPadding && xyPadding.y || 0 ) - ( parseFloat( computedStyle.getPropertyValue( "padding-top" ) ) || 0 ) + element.scrollTop,
- };
- },
-
-
-
-
-
-
-
-
-
-
-
-
- paddingFromBorder: function( element, xyBorder ) {
- var computedStyle = getComputedStyle( element );
- return {
- x: ( xyBorder && xyBorder.x || 0 ) - ( parseFloat( computedStyle.getPropertyValue( "border-left-width" ) ) || 0 ),
- y: ( xyBorder && xyBorder.y || 0 ) - ( parseFloat( computedStyle.getPropertyValue( "border-top-width" ) ) || 0 ),
- };
- },
-
-
-
-
-
-
-
-
-
-
-
-
- borderFromWindow: function( element, xyWindow ) {
- var bounds = element.getBoundingClientRect();
- return {
- x: ( xyWindow && xyWindow.x || 0 ) - bounds.left,
- y: ( xyWindow && xyWindow.y || 0 ) - bounds.top,
- };
- },
-
-
-
-
-
-
-
-
-
-
- contentFromWindow: function( element, xyWindow ) {
- return this.contentFromPadding( element, this.paddingFromBorder( element,
- this.borderFromWindow( element, xyWindow ) ) );
- },
- };
- return exports;
- } );
|