{"ast":null,"code":"import clamp from 'lodash-es/clamp';\nimport { setStyle } from '../../utils/set-style';\nvar GLOW_MAX_OPACITY = 0.75;\nvar GLOW_MAX_OFFSET = 0.25;\nvar Glow = /** @class */function () {\n  function Glow(_scrollbar) {\n    this._scrollbar = _scrollbar;\n    this._canvas = document.createElement('canvas');\n    this._ctx = this._canvas.getContext('2d');\n    setStyle(this._canvas, {\n      position: 'absolute',\n      top: 0,\n      left: 0,\n      width: '100%',\n      height: '100%',\n      display: 'none'\n    });\n  }\n  Glow.prototype.mount = function () {\n    this._scrollbar.containerEl.appendChild(this._canvas);\n  };\n  Glow.prototype.unmount = function () {\n    if (this._canvas.parentNode) {\n      this._canvas.parentNode.removeChild(this._canvas);\n    }\n  };\n  Glow.prototype.adjust = function () {\n    var size = this._scrollbar.size;\n    var DPR = window.devicePixelRatio || 1;\n    var nextWidth = size.container.width * DPR;\n    var nextHeight = size.container.height * DPR;\n    if (nextWidth === this._canvas.width && nextHeight === this._canvas.height) {\n      return;\n    }\n    this._canvas.width = nextWidth;\n    this._canvas.height = nextHeight;\n    this._ctx.scale(DPR, DPR);\n  };\n  Glow.prototype.recordTouch = function (event) {\n    var touch = event.touches[event.touches.length - 1];\n    this._touchX = touch.clientX;\n    this._touchY = touch.clientY;\n  };\n  Glow.prototype.render = function (_a, color) {\n    var _b = _a.x,\n      x = _b === void 0 ? 0 : _b,\n      _c = _a.y,\n      y = _c === void 0 ? 0 : _c;\n    if (!x && !y) {\n      setStyle(this._canvas, {\n        display: 'none'\n      });\n      return;\n    }\n    setStyle(this._canvas, {\n      display: 'block'\n    });\n    var size = this._scrollbar.size;\n    this._ctx.clearRect(0, 0, size.container.width, size.container.height);\n    this._ctx.fillStyle = color;\n    this._renderX(x);\n    this._renderY(y);\n  };\n  Glow.prototype._getMaxOverscroll = function () {\n    var options = this._scrollbar.options.plugins.overscroll;\n    return options && options.maxOverscroll ? options.maxOverscroll : 150;\n  };\n  Glow.prototype._renderX = function (strength) {\n    var size = this._scrollbar.size;\n    var maxOverscroll = this._getMaxOverscroll();\n    var _a = size.container,\n      width = _a.width,\n      height = _a.height;\n    var ctx = this._ctx;\n    ctx.save();\n    if (strength > 0) {\n      // glow on right side\n      // horizontally flip\n      ctx.transform(-1, 0, 0, 1, width, 0);\n    }\n    var opacity = clamp(Math.abs(strength) / maxOverscroll, 0, GLOW_MAX_OPACITY);\n    var startOffset = clamp(opacity, 0, GLOW_MAX_OFFSET) * width;\n    // controll point\n    var x = Math.abs(strength);\n    var y = this._touchY || height / 2;\n    ctx.globalAlpha = opacity;\n    ctx.beginPath();\n    ctx.moveTo(0, -startOffset);\n    ctx.quadraticCurveTo(x, y, 0, height + startOffset);\n    ctx.fill();\n    ctx.closePath();\n    ctx.restore();\n  };\n  Glow.prototype._renderY = function (strength) {\n    var size = this._scrollbar.size;\n    var maxOverscroll = this._getMaxOverscroll();\n    var _a = size.container,\n      width = _a.width,\n      height = _a.height;\n    var ctx = this._ctx;\n    ctx.save();\n    if (strength > 0) {\n      // glow on bottom side\n      // vertically flip\n      ctx.transform(1, 0, 0, -1, 0, height);\n    }\n    var opacity = clamp(Math.abs(strength) / maxOverscroll, 0, GLOW_MAX_OPACITY);\n    var startOffset = clamp(opacity, 0, GLOW_MAX_OFFSET) * width;\n    // controll point\n    var x = this._touchX || width / 2;\n    var y = Math.abs(strength);\n    ctx.globalAlpha = opacity;\n    ctx.beginPath();\n    ctx.moveTo(-startOffset, 0);\n    ctx.quadraticCurveTo(x, y, width + startOffset, 0);\n    ctx.fill();\n    ctx.closePath();\n    ctx.restore();\n  };\n  return Glow;\n}();\nexport { Glow };","map":{"version":3,"names":["clamp","setStyle","GLOW_MAX_OPACITY","GLOW_MAX_OFFSET","Glow","_scrollbar","_canvas","document","createElement","_ctx","getContext","position","top","left","width","height","display","prototype","mount","containerEl","appendChild","unmount","parentNode","removeChild","adjust","size","DPR","window","devicePixelRatio","nextWidth","container","nextHeight","scale","recordTouch","event","touch","touches","length","_touchX","clientX","_touchY","clientY","render","_a","color","_b","x","_c","y","clearRect","fillStyle","_renderX","_renderY","_getMaxOverscroll","options","plugins","overscroll","maxOverscroll","strength","ctx","save","transform","opacity","Math","abs","startOffset","globalAlpha","beginPath","moveTo","quadraticCurveTo","fill","closePath","restore"],"sources":["C:\\Users\\user\\Desktop\\000newport\\node_modules\\smooth-scrollbar\\src\\plugins\\overscroll\\glow.ts"],"sourcesContent":["import clamp from 'lodash-es/clamp';\nimport Scrollbar from 'smooth-scrollbar';\n\nimport { setStyle } from '../../utils/set-style';\n\nconst GLOW_MAX_OPACITY = 0.75;\nconst GLOW_MAX_OFFSET = 0.25;\n\nexport class Glow {\n  private _canvas = document.createElement('canvas');\n  private _ctx = this._canvas.getContext('2d') as CanvasRenderingContext2D;\n\n  private _touchX: number;\n  private _touchY: number;\n\n  constructor(\n    private _scrollbar: Scrollbar,\n  ) {\n    setStyle(this._canvas, {\n      position: 'absolute',\n      top: 0,\n      left: 0,\n      width: '100%',\n      height: '100%',\n      display: 'none',\n    });\n  }\n\n  mount() {\n    this._scrollbar.containerEl.appendChild(this._canvas);\n  }\n\n  unmount() {\n    if (this._canvas.parentNode) {\n      this._canvas.parentNode.removeChild(this._canvas);\n    }\n  }\n\n  adjust() {\n    const {\n      size,\n    } = this._scrollbar;\n\n    const DPR = window.devicePixelRatio || 1;\n\n    const nextWidth = size.container.width * DPR;\n    const nextHeight = size.container.height * DPR;\n\n    if (nextWidth === this._canvas.width && nextHeight === this._canvas.height) {\n      return;\n    }\n\n    this._canvas.width = nextWidth;\n    this._canvas.height = nextHeight;\n\n    this._ctx.scale(DPR, DPR);\n  }\n\n  recordTouch(event: TouchEvent) {\n    const touch = event.touches[event.touches.length - 1];\n\n    this._touchX = touch.clientX;\n    this._touchY = touch.clientY;\n  }\n\n  render({ x = 0, y = 0 }, color: string) {\n    if (!x && !y) {\n      setStyle(this._canvas, {\n        display: 'none',\n      });\n\n      return;\n    }\n\n    setStyle(this._canvas, {\n      display: 'block',\n    });\n\n    const {\n      size,\n    } = this._scrollbar;\n\n    this._ctx.clearRect(0, 0, size.container.width, size.container.height);\n    this._ctx.fillStyle = color;\n\n    this._renderX(x);\n    this._renderY(y);\n  }\n\n  private _getMaxOverscroll(): number {\n    const options = this._scrollbar.options.plugins.overscroll;\n\n    return options && options.maxOverscroll ? options.maxOverscroll : 150;\n  }\n\n  private _renderX(strength: number) {\n    const {\n      size,\n    } = this._scrollbar;\n\n    const maxOverscroll = this._getMaxOverscroll();\n    const { width, height } = size.container;\n    const ctx = this._ctx;\n\n    ctx.save();\n\n    if (strength > 0) {\n      // glow on right side\n      // horizontally flip\n      ctx.transform(-1, 0, 0, 1, width, 0);\n    }\n\n    const opacity = clamp(Math.abs(strength) / maxOverscroll, 0, GLOW_MAX_OPACITY);\n    const startOffset = clamp(opacity, 0, GLOW_MAX_OFFSET) * width;\n\n    // controll point\n    const x = Math.abs(strength);\n    const y = this._touchY || (height / 2);\n\n    ctx.globalAlpha = opacity;\n    ctx.beginPath();\n    ctx.moveTo(0, -startOffset);\n    ctx.quadraticCurveTo(x, y, 0, height + startOffset);\n    ctx.fill();\n    ctx.closePath();\n    ctx.restore();\n  }\n\n  private _renderY(strength: number) {\n    const {\n      size,\n    } = this._scrollbar;\n\n    const maxOverscroll = this._getMaxOverscroll();\n    const { width, height } = size.container;\n    const ctx = this._ctx;\n\n    ctx.save();\n\n    if (strength > 0) {\n      // glow on bottom side\n      // vertically flip\n      ctx.transform(1, 0, 0, -1, 0, height);\n    }\n\n    const opacity = clamp(Math.abs(strength) / maxOverscroll, 0, GLOW_MAX_OPACITY);\n    const startOffset = clamp(opacity, 0, GLOW_MAX_OFFSET) * width;\n\n    // controll point\n    const x = this._touchX || (width / 2);\n    const y = Math.abs(strength);\n\n    ctx.globalAlpha = opacity;\n    ctx.beginPath();\n    ctx.moveTo(-startOffset, 0);\n    ctx.quadraticCurveTo(x, y, width + startOffset, 0);\n    ctx.fill();\n    ctx.closePath();\n    ctx.restore();\n  }\n}\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}