spiritjs
Version:
The animation toolkit for the web
41 lines (40 loc) • 1.96 kB
JavaScript
;
exports.__esModule = true;
exports.resolveElement = resolveElement;
var _debug = _interopRequireDefault(require("./debug"));
var xpath = _interopRequireWildcard(require("./xpath"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
/**
* Resolve element relative to root
*
* @param {Element} root
* @param {{ path, id }} data
* @param {boolean} throwException
*/
function resolveElement(root, data, throwException) {
if (throwException === void 0) {
throwException = false;
}
var transformObject = null;
var path = data.path,
id = data.id;
if (id) {
transformObject = root.querySelector("[data-spirit-id=\"" + id + "\"]");
}
if (!transformObject && path) {
transformObject = xpath.getElement(path, root === document.body ? undefined : root);
}
if (!transformObject) {
if ((0, _debug["default"])()) {
console.group('Unable to resolve element');
console.warn('Timeline: ', data);
console.groupEnd();
}
if (throwException) {
throw new Error('Cannot find element.');
}
}
return transformObject;
}