{"version":3,"file":"line.cjs","sources":["../../../../../src/elements/oscilloscope/renderers/line.js"],"sourcesContent":["import paper from '@chnak/paper';\n\n/**\n * 线条样式默认配置\n */\nexport const defaultConfig = {};\n\n/**\n * 线条波形渲染器\n * @param {Object} element - 元素实例\n * @param {Array} data - 波形数据\n * @param {number} x - X坐标\n * @param {number} y - Y坐标\n * @param {number} width - 宽度\n * @param {number} height - 高度\n * @param {number} time - 当前时间\n * @param {Object} config - 配置对象（合并了默认配置和用户配置）\n */\nexport default function renderLine(element, data, x, y, width, height, time, config = {}) {\n  // 合并默认配置\n  const cfg = { ...defaultConfig, ...config };\n  const centerY = y + height / 2;\n  const stepX = width / data.length;\n  const amplitude = (height / 2) * element.sensitivity;\n\n  // 创建波形路径\n  const path = new paper.Path();\n  path.strokeColor = element.waveColor;\n  path.strokeWidth = element.lineWidth;\n\n  // 绘制上半部分\n  for (let i = 0; i < data.length; i++) {\n    const px = x + i * stepX;\n    const py = centerY - data[i] * amplitude;\n    if (i === 0) {\n      path.moveTo(new paper.Point(px, py));\n    } else {\n      path.lineTo(new paper.Point(px, py));\n    }\n  }\n\n  // 如果启用镜像，绘制下半部分\n  if (element.mirror) {\n    for (let i = data.length - 1; i >= 0; i--) {\n      const px = x + i * stepX;\n      const py = centerY + data[i] * amplitude;\n      path.lineTo(new paper.Point(px, py));\n    }\n    path.closePath();\n    path.fillColor = element.waveColor;\n    path.fillColor.alpha = 0.3;\n  }\n}\n\n// 设置样式名称\nrenderLine.style = 'line';\n\n"],"names":[],"mappings":";;;;;;AAEA;AACA;AACA;AACY,MAAC,aAAa,GAAG;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,EAAE;AAC1F;AACA,GAAc,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM;AAC3C,EAAE,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC;AAChC,EAAE,MAAM,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM;AACnC,EAAE,MAAM,SAAS,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,WAAW;;AAEtD;AACA,EAAE,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE;AAC/B,EAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,SAAS;AACtC,EAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,SAAS;;AAEtC;AACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,IAAI,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AAC5B,IAAI,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS;AAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACjB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1C,IAAI,CAAC,MAAM;AACX,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1C,IAAI;AACJ,EAAE;;AAEF;AACA,EAAE,IAAI,OAAO,CAAC,MAAM,EAAE;AACtB,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC/C,MAAM,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AAC9B,MAAM,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS;AAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1C,IAAI;AACJ,IAAI,IAAI,CAAC,SAAS,EAAE;AACpB,IAAI,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;AACtC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,GAAG;AAC9B,EAAE;AACF;;AAEA;AACA,UAAU,CAAC,KAAK,GAAG,MAAM;;;;;"}