utils.js!eval 5.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. (function() { var __moduleName = "js/common/utils"; var __moduleAddress = "http://projects.delimited.io/webgl-globes/js/common/utils.js";System.register(["d3"], function (_export) {
  2. "use strict";
  3. var d3, getTween;
  4. // adapted from memoize.js by @philogb and @addyosmani
  5. _export("memoize", memoize);
  6. _export("debounce", debounce);
  7. function memoize(fn) {
  8. return function () {
  9. var args = Array.prototype.slice.call(arguments);
  10. var key = "",
  11. len = args.length,
  12. cur = null;
  13. while (len--) {
  14. cur = args[len];
  15. key += cur === Object(cur) ? JSON.stringify(cur) : cur;
  16. fn.memoize || (fn.memoize = {});
  17. }
  18. return key in fn.memoize ? fn.memoize[key] : fn.memoize[key] = fn.apply(this, args);
  19. };
  20. }
  21. function debounce(func, wait, immediate) {
  22. var timeout;
  23. return function () {
  24. var context = this,
  25. args = arguments;
  26. var later = function later() {
  27. timeout = null;
  28. if (!immediate) {
  29. func.apply(context, args);
  30. }
  31. };
  32. var callNow = immediate && !timeout;
  33. clearTimeout(timeout);
  34. timeout = setTimeout(later, wait);
  35. if (callNow) {
  36. func.apply(context, args);
  37. }
  38. };
  39. }
  40. return {
  41. setters: [function (_d3) {
  42. d3 = _d3["default"];
  43. }],
  44. execute: function () {
  45. getTween = function getTween(prop, to, time) {
  46. time = time || 500;
  47. var node = this;
  48. var curr = node[prop];
  49. var interpol = d3.interpolateObject(curr, to);
  50. return function (t) {
  51. node[prop].copy(interpol(t / time));
  52. if (t >= time) {
  53. return true;
  54. }
  55. };
  56. };
  57. _export("getTween", getTween);
  58. }
  59. };
  60. });
  61. //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImh0dHA6Ly9wcm9qZWN0cy5kZWxpbWl0ZWQuaW8vd2ViZ2wtZ2xvYmVzL2pzL2NvbW1vbi91dGlscy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7VUF3Q1csUUFBUTs7OztxQkFyQ0gsT0FBTzs7c0JBa0JQLFFBQVE7O0FBbEJqQixXQUFTLE9BQU8sQ0FBQyxFQUFFLEVBQUU7QUFDMUIsV0FBTyxZQUFZO0FBQ2pCLFVBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzs7QUFFakQsVUFBSSxHQUFHLEdBQUcsRUFBRTtVQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTTtVQUFFLEdBQUcsR0FBRyxJQUFJLENBQUM7O0FBRTVDLGFBQU8sR0FBRyxFQUFFLEVBQUU7QUFDWixXQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2hCLFdBQUcsSUFBSSxBQUFDLEdBQUcsS0FBSyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRSxHQUFHLENBQUM7O0FBRXZELFVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUEsQUFBQyxDQUFDO09BQ2pDOztBQUVELGFBQU8sQUFBQyxHQUFHLElBQUksRUFBRSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUMzQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBQ3hDLENBQUM7R0FDSDs7QUFFTSxXQUFTLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtBQUM5QyxRQUFJLE9BQU8sQ0FBQztBQUNaLFdBQU8sWUFBVztBQUNoQixVQUFJLE9BQU8sR0FBRyxJQUFJO1VBQUUsSUFBSSxHQUFHLFNBQVMsQ0FBQztBQUNyQyxVQUFJLEtBQUssR0FBRyxTQUFSLEtBQUssR0FBYztBQUNyQixlQUFPLEdBQUcsSUFBSSxDQUFDO0FBQ2YsWUFBSSxDQUFDLFNBQVMsRUFBRTtBQUNkLGNBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzNCO09BQ0YsQ0FBQztBQUNGLFVBQUksT0FBTyxHQUFHLFNBQVMsSUFBSSxDQUFDLE9BQU8sQ0FBQztBQUNwQyxrQkFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3RCLGFBQU8sR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2xDLFVBQUksT0FBTyxFQUFFO0FBQ1gsWUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7T0FDM0I7S0FDRixDQUFDO0dBQ0g7Ozs7Ozs7QUFFVSxjQUFRLEdBQUcsU0FBWCxRQUFRLENBQWEsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUU7QUFDOUMsWUFBSSxHQUFHLElBQUksSUFBSSxHQUFHLENBQUM7QUFDbkIsWUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBQ2hCLFlBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUN0QixZQUFJLFFBQVEsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzlDLGVBQU8sVUFBVSxDQUFDLEVBQUU7QUFDbEIsY0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDcEMsY0FBSSxDQUFDLElBQUksSUFBSSxFQUFFO0FBQ2IsbUJBQU8sSUFBSSxDQUFDO1dBQ2I7U0FDRixDQUFDO09BQ0g7OzBCQVhVLFFBQVEiLCJmaWxlIjoiaHR0cDovL3Byb2plY3RzLmRlbGltaXRlZC5pby93ZWJnbC1nbG9iZXMvanMvY29tbW9uL3V0aWxzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGQzIGZyb20gJ2QzJztcblxuLy8gYWRhcHRlZCBmcm9tIG1lbW9pemUuanMgYnkgQHBoaWxvZ2IgYW5kIEBhZGR5b3NtYW5pXG5leHBvcnQgZnVuY3Rpb24gbWVtb2l6ZShmbikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtcblxuICAgIHZhciBrZXkgPSBcIlwiLCBsZW4gPSBhcmdzLmxlbmd0aCwgY3VyID0gbnVsbDtcblxuICAgIHdoaWxlIChsZW4tLSkge1xuICAgICAgY3VyID0gYXJnc1tsZW5dO1xuICAgICAga2V5ICs9IChjdXIgPT09IE9iamVjdChjdXIpKT8gSlNPTi5zdHJpbmdpZnkoY3VyKTogY3VyO1xuXG4gICAgICBmbi5tZW1vaXplIHx8IChmbi5tZW1vaXplID0ge30pO1xuICAgIH1cblxuICAgIHJldHVybiAoa2V5IGluIGZuLm1lbW9pemUpPyBmbi5tZW1vaXplW2tleV06XG4gICAgZm4ubWVtb2l6ZVtrZXldID0gZm4uYXBwbHkodGhpcywgYXJncyk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWJvdW5jZShmdW5jLCB3YWl0LCBpbW1lZGlhdGUpIHtcbiAgdmFyIHRpbWVvdXQ7XG4gIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICB2YXIgY29udGV4dCA9IHRoaXMsIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgdmFyIGxhdGVyID0gZnVuY3Rpb24oKSB7XG4gICAgICB0aW1lb3V0ID0gbnVsbDtcbiAgICAgIGlmICghaW1tZWRpYXRlKSB7XG4gICAgICAgIGZ1bmMuYXBwbHkoY29udGV4dCwgYXJncyk7XG4gICAgICB9XG4gICAgfTtcbiAgICB2YXIgY2FsbE5vdyA9IGltbWVkaWF0ZSAmJiAhdGltZW91dDtcbiAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgdGltZW91dCA9IHNldFRpbWVvdXQobGF0ZXIsIHdhaXQpO1xuICAgIGlmIChjYWxsTm93KSB7XG4gICAgICBmdW5jLmFwcGx5KGNvbnRleHQsIGFyZ3MpO1xuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IHZhciBnZXRUd2VlbiA9IGZ1bmN0aW9uIChwcm9wLCB0bywgdGltZSkge1xuICB0aW1lID0gdGltZSB8fCA1MDA7XG4gIHZhciBub2RlID0gdGhpcztcbiAgdmFyIGN1cnIgPSBub2RlW3Byb3BdO1xuICB2YXIgaW50ZXJwb2wgPSBkMy5pbnRlcnBvbGF0ZU9iamVjdChjdXJyLCB0byk7XG4gIHJldHVybiBmdW5jdGlvbiAodCkge1xuICAgIG5vZGVbcHJvcF0uY29weShpbnRlcnBvbCh0IC8gdGltZSkpO1xuICAgIGlmICh0ID49IHRpbWUpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfTtcbn07XG4iXX0=
  62. }).call(__global);