motion
Version:
motion - moving development forward
528 lines (425 loc) • 13.4 kB
JavaScript
exports["motiontools-internals"] =
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;
/******/
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ exports: {},
/******/ id: moduleId,
/******/ loaded: false
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.loaded = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ function(module, exports, __webpack_require__) {
var packages = {}
packages["keys"] = __webpack_require__(1);
packages["errors/helpers"] = __webpack_require__(4);
packages["lib/createFilterer"] = __webpack_require__(5);
packages["lib/getType"] = __webpack_require__(8);
packages["lib/inspecting"] = __webpack_require__(9);
packages["lib/lens"] = __webpack_require__(10);
packages["lib/uid"] = __webpack_require__(11);
window.require.setApp("motiontools")
module.exports = packages
/***/ },
/* 1 */
/***/ function(module, exports, __webpack_require__) {
var _interopRequireDefault = __webpack_require__(2).default;
Object.defineProperty(exports, '__esModule', {
value: true
});
var _keycode = __webpack_require__(3);
var _keycode2 = _interopRequireDefault(_keycode);
var keys = {};
exports.keys = keys;
var listeners = {};
var pressListeners = {};
on.keydown(window, function (e) {
var code = (0, _keycode2.default)(e.keyCode);
keys[code] = true;
keyDown(code);
});
on.keyup(window, function (e) {
var code = (0, _keycode2.default)(e.keyCode);
keys[code] = false;
keyUp(code);
});
on.keypress(window, function (e) {
var code = (0, _keycode2.default)(e.keyCode);
var queue = pressListeners[code];
queue && queue.forEach(function (listener) {
return listener();
});
});
function keyDown(code) {
if (!listeners[code]) return;
listeners[code].forEach(function (listener) {
return listener(true);
});
}
function keyUp(code) {
if (!listeners[code]) return;
listeners[code].forEach(function (listener) {
return listener(false);
});
}
function onKey(code, fn) {
listeners[code] = listeners[code] || [];
listeners[code].push(fn);
}
exports.onKey = onKey;
function onKeyPress(code, fn) {
pressListeners[code] = pressListeners[code] || [];
pressListeners[code].push(fn);
}
exports.onKeyPress = onKeyPress;
function onKeyDown(code, fn) {
onKey(code, function (val) {
return val && fn();
});
}
exports.onKeyDown = onKeyDown;
/***/ },
/* 2 */
/***/ function(module, exports) {
module.exports = require("babel-runtime/helpers/interop-require-default");
/***/ },
/* 3 */
/***/ function(module, exports) {
module.exports = require("keycode");
/***/ },
/* 4 */
/***/ function(module, exports) {
Object.defineProperty(exports, '__esModule', {
value: true
});
var browser = window._DT;
exports.browser = browser;
var isLive = function isLive() {
return browser.editor && browser.editor.live;
};
exports.isLive = isLive;
var split = function split(s, i) {
return [s.substring(0, i), s.substring(i, i + 1), s.substring(i + 1)];
};
function showMotionErrorDiv() {
setTimeout(function () {
// avoid showing if error fixed in meantime
if (!browser.curError) return;
var errors = document.querySelectorAll('.__motionError');
if (!errors.length) return;
// add active class to show them
[].forEach.call(errors, function (error) {
if (error.className.indexOf('active') == -1) error.className += ' active';
});
}, isLive() ? 1000 : 100);
}
exports.showMotionErrorDiv = showMotionErrorDiv;
function niceRuntimeError(err) {
if (err.file) err.file = err.file.replace(new RegExp('.*' + window.location.origin + '(\/[_]+\/)?'), '');
if (err.file && err.file === 'motion.dev.js') {
err.file = 'Motion';
err.line = null;
}
if (err.file && err.file.indexOf('internals.js') >= 0) {
if (err.message && err.message.indexOf('Cannot find module') == 0) {
var badModule = err.message.match(/(fs|path)/);
if (badModule && badModule.length) {
err.file = 'imported module:';
err.message = 'Cannot import node-only module: ' + badModule[0];
}
} else {
err.message = 'Error in a locally required file. ' + err.message;
}
}
if (err.message) err.niceMessage = err.message.replace(/Uncaught .*Error:\s*/, '');
return err;
}
exports.niceRuntimeError = niceRuntimeError;
function niceNpmError(_ref) {
var msg = _ref.msg;
var name = _ref.name;
if (msg) msg = msg.replace(/(npm WARN.*\n|ERR\!)/g, '').replace(/npm argv.*\n/g, '').replace(/npm node v.*\n/g, '').replace(/npm npm.*\n/g, '').replace(/npm code.*\n/g, '').replace(/npm peerinvalid /g, '').replace(/npm 404 /g, '');
return { msg: msg, name: name };
}
exports.niceNpmError = niceNpmError;
var niceCompilerError = function niceCompilerError(err) {
return niceCompilerMessage(fullStack(niceStack(err)));
};
exports.niceCompilerError = niceCompilerError;
var replaceCompilerMsg = function replaceCompilerMsg(msg) {
if (!msg) return '';
return msg.replace(/.*\.js\:/, '').replace(/\([0-9]+\:[0-9]+\)/, '').replace(/Line [0-9]+\:\s*/, '');
};
var niceCompilerMessage = function niceCompilerMessage(err) {
err.niceMessage = replaceCompilerMsg(err.message, err.fileName);
return err;
};
exports.niceCompilerMessage = niceCompilerMessage;
var matchErrorLine = /\>?\s*([0-9]*)\s*\|(.*)/g;
var indicator = /\s*\|\s*\^\s*$/g;
function fullStack(err) {
if (!err) return;
if (err.stack) {
(function () {
err.fullStack = ['', '', ''];
var index = 0;
err.stack.split("\n").forEach(function (line) {
if (indicator.test(line)) return;
if (!matchErrorLine.test(line)) return;
var isLine = line[0] === '>';
if (isLine) index = 1;
if (!isLine && index === 1) index = 2;
var result = line.replace(matchErrorLine, '$1$2').replace(/^(\s*[0-9]+\s*)[;]/, '$1 ');
err.fullStack[index] += result + "\n";
});
})();
}
return err;
}
function niceStack(err) {
if (!err) return;
if (err.stack) {
err.stack.split("\n").map(function (line) {
if (line[0] === '>') {
var result = line;
if (!result) return;
// remove the babel " > |" before the line
result = result.replace(/\>\s*[0-9]+\s*\|\s*/, '');
result = replaceCompilerMsg(result);
var colIndex = err.loc.column - 4; // 4 because we remove babel prefix
err.niceStack = split(result, colIndex);
}
});
}
return err;
}
var log = function log() {
if (localStorage.getItem('motiondebug')) console.log.apply(console, arguments);
};
exports.log = log;
/***/ },
/* 5 */
/***/ function(module, exports, __webpack_require__) {
var _Object$assign = __webpack_require__(6).default;
var _Object$keys = __webpack_require__(7).default;
Object.defineProperty(exports, '__esModule', {
value: true
});
var assign = _Object$assign;
var keys = _Object$keys;
function createFilterer(data, options) {
options || (options = {});
var cache = {};
return function (query) {
var subquery;
if (!cache[query]) {
for (var i = query.length - 1; i > 0; i -= 1) {
subquery = query.substr(0, i);
if (cache[subquery]) {
cache[query] = find(cache[subquery], query, options);
break;
}
}
}
if (!cache[query]) {
cache[query] = find(data, query, options);
}
return cache[query];
};
}
exports.default = createFilterer;
;
function find(data, query, options) {
return keys(data).reduce(function (acc, key) {
var value = data[key];
var matches;
if (isPrimitive(value)) {
if (contains(query, key, options) || contains(query, value, options)) {
acc[key] = value;
}
} else {
if (contains(query, key, options)) {
acc[key] = value;
} else {
matches = find(value, query, options);
if (!isEmpty(matches)) {
assign(acc, pair(key, matches));
}
}
}
return acc;
}, {});
}
function contains(query, string, options) {
if (options.ignoreCase) {
query = String(query).toLowerCase();
return string && String(string).toLowerCase().indexOf(query) !== -1;
} else {
return string && String(string).indexOf(query) !== -1;
}
}
function isPrimitive(value) {
var t = getType(value);
return t !== 'Object' && t !== 'Array';
}
function pair(key, value) {
var p = {};
p[key] = value;
return p;
}
module.exports = exports.default;
/***/ },
/* 6 */
/***/ function(module, exports) {
module.exports = require("babel-runtime/core-js/object/assign");
/***/ },
/* 7 */
/***/ function(module, exports) {
module.exports = require("babel-runtime/core-js/object/keys");
/***/ },
/* 8 */
/***/ function(module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
function getType(value) {
return Object.prototype.toString.call(value).slice(8, -1);
}
exports.default = getType;
module.exports = exports.default;
/***/ },
/* 9 */
/***/ function(module, exports, __webpack_require__) {
var _Object$keys = __webpack_require__(7).default;
Object.defineProperty(exports, '__esModule', {
value: true
});
var el = undefined;
var reactKey = null;
var getReactKey = function getReactKey(el) {
return _Object$keys(el).filter(function (k) {
return k.indexOf('__reactInternalInst') == 0;
})[0];
};
function getReactId(el) {
if (!reactKey) reactKey = getReactKey(el);
if (!el[reactKey]) return;
var current = el[reactKey]._currentElement;
if (!current || !current.key) return null;
var key = current.key;
var split = key.split('$');
return split[split.length - 1];
}
var Inspecting = {
set: function set(_) {
el = _;
},
get: function get() {
return el;
},
props: function props(el) {
return {
key: getReactId(el),
el: el.tagName.toLowerCase(),
view: el.className.split(' ').filter(function (s) {
return s.substr(0, 4) != 'View';
}).filter(function (s) {
return s.charAt(0).toUpperCase() == s.charAt(0);
})[0]
};
},
all: function all() {
var cur = el;
var parents = [this.props(cur)];
// walk upwards, find unique views
while (cur.parentNode && cur.parentNode.tagName) {
var _parent = cur.parentNode;
var last = parents[parents.length - 1];
var next = this.props(_parent);
if (next.view && next.view != last.view) {
// filter __motionfocus
if (next.view[0] != '_') {
parents.push(next);
}
}
cur = _parent;
}
return parents;
}
};
exports.default = Inspecting;
module.exports = exports.default;
/***/ },
/* 10 */
/***/ function(module, exports) {
Object.defineProperty(exports, '__esModule', {
value: true
});
var PATH_DELIMITER = '.';
function lens(data, path) {
var p = path.split(PATH_DELIMITER);
var segment = p.shift();
if (!segment) {
return data;
}
var t = getType(data);
if (t === 'Array' && data[integer(segment)]) {
return lens(data[integer(segment)], p.join(PATH_DELIMITER));
} else if (t === 'Object' && data[segment]) {
return lens(data[segment], p.join(PATH_DELIMITER));
}
}
exports.default = lens;
function integer(string) {
return parseInt(string, 10);
}
module.exports = exports.default;
/***/ },
/* 11 */
/***/ function(module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
var id = Math.ceil(Math.random() * 10);
function uid() {
return id++;
}
exports.default = uid;
module.exports = exports.default;
/***/ }
/******/ ]);
//# sourceMappingURL=internals.js.map