text: "use strict";
  exports.__esModule = true;
  function createLinearGradient(ctx, obj, rect) {
      var x = obj.x == null ? 0 : obj.x;
      var x2 = obj.x2 == null ? 1 : obj.x2;
      var y = obj.y == null ? 0 : obj.y;
      var y2 = obj.y2 == null ? 0 : obj.y2;
      if (!obj.global) {
          x = x * rect.width + rect.x;
          x2 = x2 * rect.width + rect.x;
          y = y * rect.height + rect.y;
          y2 = y2 * rect.height + rect.y;
      }
      x = isNaN(x) ? 0 : x;
      x2 = isNaN(x2) ? 1 : x2;
      y = isNaN(y) ? 0 : y;
      y2 = isNaN(y2) ? 0 : y2;
      var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);
      return canvasGradient;
  }
  exports.createLinearGradient = createLinearGradient;
  function createRadialGradient(ctx, obj, rect) {
      var width = rect.width;
      var height = rect.height;
      var min = Math.min(width, height);
      var x = obj.x == null ? 0.5 : obj.x;
      var y = obj.y == null ? 0.5 : obj.y;
      var r = obj.r == null ? 0.5 : obj.r;
      if (!obj.global) {
          x = x * width + rect.x;
          y = y * height + rect.y;
          r = r * min;
      }
      var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);
      return canvasGradient;
  }
  exports.createRadialGradient = createRadialGradient;
  function getCanvasGradient(ctx, obj, rect) {
      var canvasGradient = obj.type === 'radial'
          ? createRadialGradient(ctx, obj, rect)
          : createLinearGradient(ctx, obj, rect);
      var colorStops = obj.colorStops;
      for (var i = 0; i < colorStops.length; i++) {
          canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);
      }
      return canvasGradient;
  }
  exports.getCanvasGradient = getCanvasGradient;
  function isClipPathChanged(clipPaths, prevClipPaths) {
      if (clipPaths === prevClipPaths || (!clipPaths && !prevClipPaths)) {
          return false;
      }
      if (!clipPaths || !prevClipPaths || (clipPaths.length !== prevClipPaths.length)) {
          return true;
      }
      for (var i = 0; i < clipPaths.length; i++) {
          if (clipPaths[i] !== prevClipPaths[i]) {
              return true;
          }
      }
      return false;
  }
  exports.isClipPathChanged = isClipPathChanged;
  