remeasure
Version:
Get position and size of the DOM element for any React Component
149 lines (133 loc) • 3.54 kB
JavaScript
;
exports.__esModule = true;
exports.VOID_ELEMENT_TAG_NAMES = exports.NATURAL_REGEXP = exports.FUNCTION_NAME_REGEXP = exports.KEY_NAMES = exports.KEYS = exports.SOURCES = exports.IS_PRODUCTION = exports.COMPONENT_WILL_RECEIVE_PROPS = exports.COMPONENT_WILL_MOUNT = exports.IS_LEGACY_REACT = void 0;
var _react = _interopRequireDefault(require("react"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// external dependencies
/**
* @constant {boolean} IS_LEGACY_REACT
*/
var IS_LEGACY_REACT = function () {
try {
var MAJOR_MINOR_VERSION = _react.default.version.split('.').slice(0, 2).map(function (number) {
return ~~number;
});
return MAJOR_MINOR_VERSION[0] < 16 || MAJOR_MINOR_VERSION[0] === 16 && MAJOR_MINOR_VERSION[1] < 3;
} catch (error) {
return true;
}
}();
/**
* @constant {string} COMPONENT_WILL_MOUNT
*/
exports.IS_LEGACY_REACT = IS_LEGACY_REACT;
var COMPONENT_WILL_MOUNT = IS_LEGACY_REACT ? 'componentWillMount' : 'UNSAFE_componentWillMount';
/**
* @constant {string} COMPONENT_WILL_RECEIVE_PROPS
*/
exports.COMPONENT_WILL_MOUNT = COMPONENT_WILL_MOUNT;
var COMPONENT_WILL_RECEIVE_PROPS = IS_LEGACY_REACT ? 'componentWillReceiveProps' : 'UNSAFE_componentWillReceiveProps';
/**
* @constant {boolean} IS_PRODUCTION
*/
exports.COMPONENT_WILL_RECEIVE_PROPS = COMPONENT_WILL_RECEIVE_PROPS;
var IS_PRODUCTION = !!(process && process.env && process.env.NODE_ENV === 'production');
/**
* @constant {Object} SOURCES
*/
exports.IS_PRODUCTION = IS_PRODUCTION;
var SOURCES = {
CLIENT_RECT: 'CLIENT_RECT',
ELEMENT: 'ELEMENT'
};
/**
* @constant {Array<Object>} KEYS
*/
exports.SOURCES = SOURCES;
var KEYS = [// client rect keys
{
key: 'bottom',
source: SOURCES.CLIENT_RECT
}, {
key: 'left',
source: SOURCES.CLIENT_RECT
}, {
key: 'height',
source: SOURCES.CLIENT_RECT
}, {
key: 'right',
source: SOURCES.CLIENT_RECT
}, {
key: 'top',
source: SOURCES.CLIENT_RECT
}, {
key: 'width',
source: SOURCES.CLIENT_RECT
}, // element keys
{
key: 'clientLeft',
source: SOURCES.ELEMENT
}, {
key: 'clientHeight',
source: SOURCES.ELEMENT
}, {
key: 'clientTop',
source: SOURCES.ELEMENT
}, {
key: 'clientWidth',
source: SOURCES.ELEMENT
}, {
key: 'naturalHeight',
source: SOURCES.ELEMENT
}, {
key: 'naturalWidth',
source: SOURCES.ELEMENT
}, {
key: 'offsetLeft',
source: SOURCES.ELEMENT
}, {
key: 'offsetHeight',
source: SOURCES.ELEMENT
}, {
key: 'offsetTop',
source: SOURCES.ELEMENT
}, {
key: 'offsetWidth',
source: SOURCES.ELEMENT
}, {
key: 'scrollLeft',
source: SOURCES.ELEMENT
}, {
key: 'scrollHeight',
source: SOURCES.ELEMENT
}, {
key: 'scrollTop',
source: SOURCES.ELEMENT
}, {
key: 'scrollWidth',
source: SOURCES.ELEMENT
}];
/**
* @constant {Array<string>} KEY_NAMES
*/
exports.KEYS = KEYS;
var KEY_NAMES = KEYS.map(function (_ref) {
var key = _ref.key;
return key;
});
/**
* @constant {RegExp} FUNCTION_NAME_REGEXP
*/
exports.KEY_NAMES = KEY_NAMES;
var FUNCTION_NAME_REGEXP = /^\s*function\s*([^\(]*)/i;
/**
* @constant {RegExp} NATURAL_REGEXP
*/
exports.FUNCTION_NAME_REGEXP = FUNCTION_NAME_REGEXP;
var NATURAL_REGEXP = /natural/;
/**
* @constant {Array<string>} VOID_ELEMENT_TAG_NAMES
*/
exports.NATURAL_REGEXP = NATURAL_REGEXP;
var VOID_ELEMENT_TAG_NAMES = ['AREA', 'BASE', 'BR', 'COL', 'EMBED', 'HR', 'IMG', 'INPUT', 'LINK', 'MENUITEM', 'META', 'PARAM', 'SOURCE', 'TRACK', 'WBR'];
exports.VOID_ELEMENT_TAG_NAMES = VOID_ELEMENT_TAG_NAMES;