{"version":3,"file":"zhongmiao-ngx-puzzle.mjs","sources":["../../../projects/puzzle/src/console-override.ts","../../../projects/puzzle/src/core/enums/base.enum.ts","../../../projects/puzzle/src/core/enums/chart-option.enum.ts","../../../projects/puzzle/src/core/enums/chart-types.enum.ts","../../../projects/puzzle/src/core/enums/chart-axes-types.enum.ts","../../../projects/puzzle/src/core/enums/table-types.enum.ts","../../../projects/puzzle/src/core/enums/text-types.enum.ts","../../../projects/puzzle/src/core/enums/tab-types.enum.ts","../../../projects/puzzle/src/core/enums/control-types.enum.ts","../../../projects/puzzle/src/core/enums/operation-history.enum.ts","../../../projects/puzzle/src/core/enums/refresh.enum.ts","../../../projects/puzzle/src/core/constants/chart-list.ts","../../../projects/puzzle/src/core/constants/init-setting.data.ts","../../../projects/puzzle/src/core/constants/editor-fields-map.ts","../../../projects/puzzle/src/core/constants/select-options.const.ts","../../../projects/puzzle/src/core/constants/control-list.ts","../../../projects/puzzle/src/core/constants/chart-urls-map.ts","../../../projects/puzzle/src/core/constants/table-list.ts","../../../projects/puzzle/src/core/constants/text-list.ts","../../../projects/puzzle/src/core/constants/background-images.ts","../../../projects/puzzle/src/core/constants/fields/base-style-fields.ts","../../../projects/puzzle/src/core/constants/fields/canvas/base.ts","../../../projects/puzzle/src/core/constants/fields/canvas/style.ts","../../../projects/puzzle/src/core/constants/fields/chart/title.ts","../../../projects/puzzle/src/core/constants/fields/chart/legend.ts","../../../projects/puzzle/src/core/constants/fields/chart/grid.ts","../../../projects/puzzle/src/core/constants/fields/chart/x-axis.ts","../../../projects/puzzle/src/core/constants/fields/chart/y-axis.ts","../../../projects/puzzle/src/core/constants/fields/chart/series/bar.ts","../../../projects/puzzle/src/core/constants/fields/chart/series/line.ts","../../../projects/puzzle/src/core/constants/fields/chart/series/pie.ts","../../../projects/puzzle/src/core/constants/fields/chart/series/scatter.ts","../../../projects/puzzle/src/core/constants/fields/chart/series/box-plot.ts","../../../projects/puzzle/src/core/constants/fields/chart/series/candlestick.ts","../../../projects/puzzle/src/core/constants/fields/chart/series/chord.ts","../../../projects/puzzle/src/core/constants/fields/chart/series/effect-scatter.ts","../../../projects/puzzle/src/core/constants/fields/chart/series/funnel.ts","../../../projects/puzzle/src/core/constants/fields/chart/series/gauge.ts","../../../projects/puzzle/src/core/constants/fields/chart/series/graph.ts","../../../projects/puzzle/src/core/constants/fields/chart/series/heatmap.ts","../../../projects/puzzle/src/core/constants/fields/chart/series/lines.ts","../../../projects/puzzle/src/core/constants/fields/chart/series/map.ts","../../../projects/puzzle/src/core/constants/fields/chart/series/parallel.ts","../../../projects/puzzle/src/core/constants/fields/chart/series/pictorial-bar.ts","../../../projects/puzzle/src/core/constants/fields/chart/series/sankey.ts","../../../projects/puzzle/src/core/constants/fields/chart/series/sunburst.ts","../../../projects/puzzle/src/core/constants/fields/chart/series/theme-river.ts","../../../projects/puzzle/src/core/constants/fields/chart/series/tree.ts","../../../projects/puzzle/src/core/constants/fields/chart/series/treemap.ts","../../../projects/puzzle/src/core/constants/fields/chart/series/radar.ts","../../../projects/puzzle/src/core/constants/fields/chart/tooltip.ts","../../../projects/puzzle/src/core/constants/fields/chart/base.ts","../../../projects/puzzle/src/core/constants/fields/chart/style.ts","../../../projects/puzzle/src/core/constants/fields/table/data-source.ts","../../../projects/puzzle/src/core/constants/fields/table/slice.ts","../../../projects/puzzle/src/core/constants/fields/table/options.ts","../../../projects/puzzle/src/core/constants/fields/table/conditions.ts","../../../projects/puzzle/src/core/constants/fields/table/formats.ts","../../../projects/puzzle/src/core/constants/fields/table/table-sizes.ts","../../../projects/puzzle/src/core/constants/fields/table/base.ts","../../../projects/puzzle/src/core/constants/fields/table/style.ts","../../../projects/puzzle/src/core/constants/fields/control/basic.ts","../../../projects/puzzle/src/core/constants/fields/control/date-picker.ts","../../../projects/puzzle/src/core/constants/fields/control/date-time.ts","../../../projects/puzzle/src/core/constants/fields/control/input.ts","../../../projects/puzzle/src/core/constants/fields/control/label.ts","../../../projects/puzzle/src/core/constants/fields/control/multi-select.ts","../../../projects/puzzle/src/core/constants/fields/control/select.ts","../../../projects/puzzle/src/core/constants/fields/control/base.ts","../../../projects/puzzle/src/core/constants/fields/control/style.ts","../../../projects/puzzle/src/core/constants/fields/text/content.ts","../../../projects/puzzle/src/core/constants/fields/text/text-style.ts","../../../projects/puzzle/src/core/constants/fields/text/base.ts","../../../projects/puzzle/src/core/constants/fields/text/style.ts","../../../projects/puzzle/src/core/constants/fields/text/index.ts","../../../projects/puzzle/src/core/constants/fields/refresh/refresh.ts","../../../projects/puzzle/src/core/constants/fields/refresh/bind-control.ts","../../../projects/puzzle/src/core/constants/field-configs/base-editor.ts","../../../projects/puzzle/src/core/constants/field-configs/chart-editor-fields-config.ts","../../../projects/puzzle/src/core/constants/field-configs/control-editor-fields-config.ts","../../../projects/puzzle/src/core/constants/field-configs/refresh-fields-config.ts","../../../projects/puzzle/src/core/constants/field-configs/table-editor-fields-config.ts","../../../projects/puzzle/src/core/constants/field-configs/text-editor-fields-config.ts","../../../projects/puzzle/src/core/constants/mock-data/chart-mock.data.ts","../../../projects/puzzle/src/core/constants/mock-data/control-mock.data.ts","../../../projects/puzzle/src/core/constants/mock-data/map-mock.data.ts","../../../projects/puzzle/src/core/constants/mock-data/table-mock.data.ts","../../../projects/puzzle/src/core/constants/mock-data/text-mock.data.ts","../../../projects/puzzle/src/core/utils/editor.util.ts","../../../projects/puzzle/src/core/utils/map.util.ts","../../../projects/puzzle/src/core/utils/time-field-detector.ts","../../../projects/puzzle/src/core/utils/debounce.util.ts","../../../projects/puzzle/src/core/utils/throttle.util.ts","../../../projects/puzzle/src/core/utils/html-document.util.ts","../../../projects/puzzle/src/core/utils/controls.util.ts","../../../projects/puzzle/src/core/utils/util.ts","../../../projects/puzzle/src/core/factories/abstract-component-factory.ts","../../../projects/puzzle/src/core/factories/concrete/ngx-puzzle-control-factory.service.ts","../../../projects/puzzle/src/core/factories/concrete/ngx-puzzle-table-factory.service.ts","../../../projects/puzzle/src/core/factories/concrete/ngx-puzzle-text-factory.service.ts","../../../projects/puzzle/src/core/factories/concrete/ngx-puzzle-chart-factory.service.ts","../../../projects/puzzle/src/core/services/internal/component-registry.service.ts","../../../projects/puzzle/src/core/services/internal/canvas-mediator.service.ts","../../../projects/puzzle/src/core/services/internal/component-inject.service.ts","../../../projects/puzzle/src/core/services/internal/session-indexed-db.service.ts","../../../projects/puzzle/src/core/services/internal/controls.service.ts","../../../projects/puzzle/src/core/services/internal/data-search.service.ts","../../../projects/puzzle/src/core/services/internal/zoom-scale.service.ts","../../../projects/puzzle/src/core/services/internal/index.ts","../../../projects/puzzle/src/core/services/external/ngx-puzzle-external.service.ts","../../../projects/puzzle/src/core/services/external/ngx-puzzle-data-binding.service.ts","../../../projects/puzzle/src/core/services/external/index.ts","../../../projects/puzzle/src/core/services/internal/http.service.ts","../../../projects/puzzle/src/core/services/mock-data/bar-data.ts","../../../projects/puzzle/src/core/services/mock-data/line-data.ts","../../../projects/puzzle/src/core/services/mock-data/scatter-data.ts","../../../projects/puzzle/src/core/services/mock-data/pie-chart-data.ts","../../../projects/puzzle/src/core/services/mock-data/box-plot-data.ts","../../../projects/puzzle/src/core/services/mock-data/candlestick-data.ts","../../../projects/puzzle/src/core/services/mock-data/heatmap-data.ts","../../../projects/puzzle/src/core/services/mock-data/sunburst-data.ts","../../../projects/puzzle/src/core/services/mock-data/treemap-data.ts","../../../projects/puzzle/src/core/services/mock-data/sankey-data.ts","../../../projects/puzzle/src/core/services/mock-data/chord-data.ts","../../../projects/puzzle/src/core/services/mock-data/funnel-data.ts","../../../projects/puzzle/src/core/services/mock-data/effect-scatter-data.ts","../../../projects/puzzle/src/core/services/mock-data/parallel-data.ts","../../../projects/puzzle/src/core/services/mock-data/theme-river-data.ts","../../../projects/puzzle/src/core/services/mock-data/tree-data.ts","../../../projects/puzzle/src/core/services/mock-data/gauge-data.ts","../../../projects/puzzle/src/core/services/mock-data/graph-data.ts","../../../projects/puzzle/src/core/services/mock-data/radar-data.ts","../../../projects/puzzle/src/core/services/mock-data/table-data.ts","../../../projects/puzzle/src/core/services/mock-data/index.ts","../../../projects/puzzle/src/core/services/mock.service.ts","../../../projects/puzzle/src/core/services/table.service.ts","../../../projects/puzzle/src/pipes/option-format.pipe.ts","../../../projects/puzzle/src/pipes/styles-format.pipe.ts","../../../projects/puzzle/src/pipes/value-format.pipe.ts","../../../projects/puzzle/src/components/canvas/ngx-puzzle-canvas.component.ts","../../../projects/puzzle/src/components/canvas/ngx-puzzle-canvas.component.html","../../../projects/puzzle/src/components/canvas/dynamic-components/drag-wrapper/ngx-puzzle-drag-wrapper.component.ts","../../../projects/puzzle/src/components/canvas/dynamic-components/drag-wrapper/ngx-puzzle-drag-wrapper.component.html","../../../projects/puzzle/src/components/canvas/dynamic-components/base/ngx-puzzle-canvas-base.component.ts","../../../projects/puzzle/src/components/primitives/puzzle-charts/puzzle-charts.component.ts","../../../projects/puzzle/src/components/primitives/puzzle-charts/puzzle-charts.component.html","../../../projects/puzzle/src/components/canvas/dynamic-components/chart/ngx-puzzle-chart.component.ts","../../../projects/puzzle/src/components/canvas/dynamic-components/chart/ngx-puzzle-chart.component.html","../../../projects/puzzle/src/components/primitives/puzzle-form-renderer/puzzle-form-renderer.component.ts","../../../projects/puzzle/src/components/primitives/puzzle-form-renderer/puzzle-form-renderer.component.html","../../../projects/puzzle/src/components/primitives/puzzle-datetime/puzzle-datetime.component.ts","../../../projects/puzzle/src/components/primitives/puzzle-datetime/puzzle-datetime.component.html","../../../projects/puzzle/src/components/primitives/puzzle-pivot-table/puzzle-pivot-table.component.ts","../../../projects/puzzle/src/components/primitives/puzzle-pivot-table/puzzle-pivot-table.component.html","../../../projects/puzzle/src/components/canvas/dynamic-components/control/ngx-puzzle-control.component.ts","../../../projects/puzzle/src/components/canvas/dynamic-components/control/ngx-puzzle-control.component.html","../../../projects/puzzle/src/components/canvas/dynamic-components/table/ngx-puzzle-table.component.ts","../../../projects/puzzle/src/components/canvas/dynamic-components/table/ngx-puzzle-table.component.html","../../../projects/puzzle/src/components/canvas/dynamic-components/text/ngx-puzzle-text.component.ts","../../../projects/puzzle/src/components/canvas/dynamic-components/text/ngx-puzzle-text.component.html","../../../projects/puzzle/src/components/editor/dynamic-editor/base/editor-base.component.ts","../../../projects/puzzle/src/components/editor/dynamic-editor/chart-editor/ngx-puzzle-chart-editor.component.ts","../../../projects/puzzle/src/components/editor/dynamic-editor/chart-editor/ngx-puzzle-chart-editor.component.html","../../../projects/puzzle/src/components/editor/dynamic-editor/control-editor/ngx-puzzle-control-editor.component.ts","../../../projects/puzzle/src/components/editor/dynamic-editor/control-editor/ngx-puzzle-control-editor.component.html","../../../projects/puzzle/src/components/editor/dynamic-editor/refresh-editor/ngx-puzzle-refresh-editor.component.ts","../../../projects/puzzle/src/components/editor/dynamic-editor/refresh-editor/ngx-puzzle-refresh-editor.component.html","../../../projects/puzzle/src/components/editor/dynamic-editor/table-editor/ngx-puzzle-table-editor.component.ts","../../../projects/puzzle/src/components/editor/dynamic-editor/table-editor/ngx-puzzle-table-editor.component.html","../../../projects/puzzle/src/components/editor/dynamic-editor/text-editor/ngx-puzzle-text-editor.component.ts","../../../projects/puzzle/src/components/editor/dynamic-editor/text-editor/ngx-puzzle-text-editor.component.html","../../../projects/puzzle/src/components/editor/ngx-puzzle-props-editor.component.ts","../../../projects/puzzle/src/components/editor/ngx-puzzle-props-editor.component.html","../../../projects/puzzle/src/components/panel/ngx-puzzle-panel.component.ts","../../../projects/puzzle/src/components/panel/ngx-puzzle-panel.component.html","../../../projects/puzzle/src/features/editor/ngx-puzzle-editor.component.ts","../../../projects/puzzle/src/features/editor/ngx-puzzle-editor.component.html","../../../projects/puzzle/src/features/preview/ngx-puzzle-preview.component.ts","../../../projects/puzzle/src/features/preview/ngx-puzzle-preview.component.html","../../../projects/puzzle/src/lib/providers.ts","../../../projects/puzzle/src/public-api.ts","../../../projects/puzzle/src/zhongmiao-ngx-puzzle.ts"],"sourcesContent":["/**\n * 生产环境下禁用 console 输出的工具\n * 在主模块中导入此文件以在生产环境禁用 console\n */\n\n// 声明全局变量\ndeclare const ngDevMode: boolean | undefined;\n\nexport function disableConsoleInProduction(): void {\n  // 检查是否为生产环境\n  // Angular 18+ 中，ngDevMode 在生产环境下为 false 或 undefined\n  const isProduction = !ngDevMode;\n\n  if (isProduction) {\n    // 生产环境下禁用所有 console 方法\n    const noop = () => {};\n\n    console.log = noop;\n    console.warn = noop;\n    console.error = noop;\n    console.info = noop;\n    console.debug = noop;\n    console.trace = noop;\n    console.table = noop;\n    console.group = noop;\n    console.groupCollapsed = noop;\n    console.groupEnd = noop;\n    console.time = noop;\n    console.timeEnd = noop;\n    console.count = noop;\n    console.assert = noop;\n    console.clear = noop;\n    console.dir = noop;\n    console.dirxml = noop;\n\n    // 只覆盖存在的方法\n    if ('profile' in console) {\n      (console as any).profile = noop;\n    }\n    if ('profileEnd' in console) {\n      (console as any).profileEnd = noop;\n    }\n    if ('timeStamp' in console) {\n      (console as any).timeStamp = noop;\n    }\n  }\n}\n\n// 自动执行禁用函数\ndisableConsoleInProduction();","export enum Is {\n  yes = 1,\n  no = 0\n}\n","export enum LabelFormatterEnum {\n  // 默认\n  default = 'default',\n  // 长度\n  lengthCm = 'lengthCm',\n  // 长度米\n  lengthM = 'lengthM',\n  // 质量\n  massKg = 'massKg',\n  // 百分比\n  percentage = 'percentage'\n}\n\nexport enum NumberFormatterEnum {\n  // 默认\n  default = 'default'\n}\n","export enum ChartTypesEnum {\n  /**\n   * 折线图 - 用直线连接数据点来展示信息\n   */\n  line = 'line',\n\n  /**\n   * 柱状图 - 用长度与数值成比例的矩形条展示数据\n   */\n  bar = 'bar',\n\n  /**\n   * 箱线图（盒须图） - 通过四分位展示数据分布\n   */\n  boxPlot = 'box-plot',\n\n  /**\n   * K线图 - 常用于展示金融数据的开盘价、最高价、最低价和收盘价\n   */\n  candlestick = 'candlestick',\n\n  /**\n   * 雷达图\n   */\n  radar = 'radar',\n\n  /**\n   * 漏斗图 - 展示数据在不同阶段的逐步减少情况\n   */\n  funnel = 'funnel',\n\n  /**\n   * 热力图 - 用颜色矩阵展示数据值\n   */\n  heatmap = 'heatmap',\n\n  /**\n   * 散点图 - 用点表示两个不同数值变量的值\n   */\n  scatter = 'scatter',\n\n  /**\n   * 饼图 - 圆形统计图，分割成扇形以展示比例\n   */\n  pie = 'pie',\n\n  /**\n   * 矩形树图 - 用嵌套矩形展示层次结构数据\n   */\n  treemap = 'treemap',\n\n  /**\n   * 旭日图 - 层次结构数据的径向空间填充可视化\n   */\n  sunburst = 'sunburst',\n\n  /**\n   * 桑基图 - 通过连接路径展示实体间的流动\n   */\n  sankey = 'sankey',\n\n  /**\n   * 弦图 - 可视化实体间的相互关系\n   */\n  chord = 'chord',\n\n  /**\n   * 涟漪散点图 - 带动态涟漪效果的散点数据可视化\n   */\n  effectScatter = 'effect-scatter',\n  /**\n   * 线段图 - 用起点和终点的线段表示流向/轨迹\n   */\n  lines = 'lines',\n  /**\n   * 地图 - 基于地理坐标的数据可视化\n   */\n  map = 'map',\n  /**\n   * 平行坐标 - 多维数据的对比分析\n   */\n  parallel = 'parallel',\n  /**\n   * 象形柱图 - 使用图形符号渲染的柱状图\n   */\n  pictorialBar = 'pictorial-bar',\n  /**\n   * 主题河流图 - 展示主题随时间变化的流量\n   */\n  themeRiver = 'theme-river',\n  /**\n   * 树图 - 层级结构数据的节点连接图\n   */\n  tree = 'tree',\n  /**\n   * 仪表盘 - 指针式数值显示\n   */\n  gauge = 'gauge',\n  /**\n   * 关系图 - 节点-边关系网络可视化\n   */\n  graph = 'graph'\n}\n","/**\n * 图表坐标轴类型枚举\n * 定义不同类型的坐标轴，适用于各种图表（如折线图、柱状图、雷达图等）\n */\nexport enum ChartAxesTypesEnum {\n  /**\n   * 序数时间轴\n   * - 适用于时间数据，但按离散的序数（如分类）处理\n   * - 例如：`[\"2023-01\", \"2023-02\", ...]`\n   */\n  ordinalTime = 'ordinal-time',\n\n  /**\n   * 常规数值轴\n   * - 适用于连续的数值数据（如温度、销售额）\n   * - 默认的线性刻度\n   */\n  number = 'number',\n\n  /**\n   * 对数轴\n   * - 适用于数值范围跨度极大的数据（如指数增长）\n   * - 刻度按对数比例计算（如 1, 10, 100, 1000）\n   */\n  log = 'log',\n\n  /**\n   * 分类轴\n   * - 适用于离散的类别数据（如产品名称、城市）\n   * - 例如：`[\"苹果\", \"香蕉\", \"橙子\"]`\n   */\n  category = 'category',\n\n  /**\n   * 分组分类轴\n   * - 适用于嵌套分类数据（如多级目录）\n   * - 例如：`[\"水果/苹果\", \"水果/香蕉\", \"蔬菜/胡萝卜\"]`\n   */\n  groupedCategory = 'grouped-category',\n\n  /**\n   * 时间轴\n   * - 适用于连续时间数据（如时间序列）\n   * - 自动处理时间格式（如 `Date` 对象或时间戳）\n   */\n  time = 'time',\n\n  /**\n   * 极坐标角度轴（分类）\n   * - 适用于雷达图/极坐标图的分类角度\n   * - 例如：将分类均匀分布在圆周上\n   */\n  angleCategory = 'angle-category',\n\n  /**\n   * 极坐标角度轴（数值）\n   * - 适用于雷达图/极坐标图的数值角度\n   * - 例如：用数值控制角度位置（0°~360°）\n   */\n  angleNumber = 'angle-number',\n\n  /**\n   * 极坐标半径轴（分类）\n   * - 适用于雷达图的分层半径（离散值）\n   * - 例如：`[\"内圈\", \"中圈\", \"外圈\"]`\n   */\n  radiusCategory = 'radius-category',\n\n  /**\n   * 极坐标半径轴（数值）\n   * - 适用于雷达图的连续半径（如数值大小）\n   * - 例如：数值越大，离中心越远\n   */\n  radiusNumber = 'radius-number'\n}\n","export enum TableTypesEnum {\n  // 默认\n  default = 'table',\n\n  // pivot-table\n  pivotTable = 'pivot-table',\n}\n","export enum TextTypesEnum {\n  // 标题\n  headTitle = 'head-title',\n  // 文本\n  text = 'text'\n}\n","export enum TabTypesEnum {\n  // 外观设置\n  appearanceSettings = 'appearance-settings',\n  // 高级设置\n  advancedSettings = 'advanced-settings',\n  // 文本设置\n  textSettings = 'text-settings'\n}\n","export enum ControlTypesEnum {\n  datePick = 'date-pick',\n  select = 'select',\n  multiSelect = 'multi-select',\n  input = 'input',\n  dateTime = 'date-time'\n}\n","export enum OperationHistoryEnum {\n  props = 'props_history',\n  move = 'move_history',\n  resize = 'resize_history',\n  null = 'null'\n}\n","export enum RefreshIntervalUnitEnum {\n  seconds = 'seconds',\n  minutes = 'minutes',\n  hours = 'hours',\n  days = 'days'\n}\n","import { ChartAxesTypeOption, BaseSelectOption } from '../interfaces';\nimport { ChartAxesTypesEnum, ChartTypesEnum } from '../enums';\nimport { keyBy } from 'lodash';\n\nexport const CHART_SERIES_TYPE_OPTIONS: BaseSelectOption<ChartTypesEnum>[] = [\n  { label: '柱状图', val: ChartTypesEnum.bar },\n  { label: '折线图', val: ChartTypesEnum.line },\n  { label: '散点图', val: ChartTypesEnum.scatter },\n  { label: '饼图', val: ChartTypesEnum.pie },\n  { label: '箱线图（盒须图）', val: ChartTypesEnum.boxPlot },\n  { label: 'K线图', val: ChartTypesEnum.candlestick },\n  { label: '雷达图', val: ChartTypesEnum.radar },\n  { label: '热力图', val: ChartTypesEnum.heatmap },\n  { label: '旭日图', val: ChartTypesEnum.sunburst },\n  { label: '矩形树图', val: ChartTypesEnum.treemap },\n  { label: '桑基图', val: ChartTypesEnum.sankey },\n  { label: '弦图', val: ChartTypesEnum.chord },\n  { label: '漏斗图', val: ChartTypesEnum.funnel },\n  { label: '涟漪散点图', val: ChartTypesEnum.effectScatter },\n  // { label: '线段图', val: ChartTypesEnum.lines },\n  // { label: '地图', val: ChartTypesEnum.map },\n  { label: '平行坐标', val: ChartTypesEnum.parallel },\n  // { label: '象形柱图', val: ChartTypesEnum.pictorialBar },\n  { label: '主题河流图', val: ChartTypesEnum.themeRiver },\n  { label: '树图', val: ChartTypesEnum.tree },\n  { label: '仪表盘', val: ChartTypesEnum.gauge },\n  { label: '关系图', val: ChartTypesEnum.graph }\n];\n\nexport const CHART_SERIES_TYPE_OPTIONS_BY_KEY: { [key in ChartTypesEnum]: BaseSelectOption<ChartTypesEnum> } = keyBy(\n  CHART_SERIES_TYPE_OPTIONS,\n  'val'\n) as {\n  [key in ChartTypesEnum]: BaseSelectOption<ChartTypesEnum>;\n};\n\nexport const CHART_AXES_TYPE_OPTIONS: ChartAxesTypeOption[] = [\n  {\n    label: '序数时间轴',\n    val: ChartAxesTypesEnum.ordinalTime\n  },\n  {\n    label: '数值轴',\n    val: ChartAxesTypesEnum.number\n  },\n  {\n    label: '对数轴',\n    val: ChartAxesTypesEnum.log\n  },\n  {\n    label: '分类轴',\n    val: ChartAxesTypesEnum.category\n  },\n  {\n    label: '分组分类轴',\n    val: ChartAxesTypesEnum.groupedCategory\n  },\n  {\n    label: '时间轴',\n    val: ChartAxesTypesEnum.time\n  },\n  {\n    label: '极坐标角度轴（分类）',\n    val: ChartAxesTypesEnum.angleCategory\n  },\n  {\n    label: '极坐标角度轴（数值）',\n    val: ChartAxesTypesEnum.angleNumber\n  },\n  {\n    label: '极坐标半径轴（分类）',\n    val: ChartAxesTypesEnum.radiusCategory\n  },\n  {\n    label: '极坐标半径轴（数值）',\n    val: ChartAxesTypesEnum.radiusNumber\n  }\n];\n\nexport const CHART_AXES_TYPE_OPTIONS_BY_KEY: { [key in ChartAxesTypesEnum]: ChartAxesTypeOption } = keyBy(\n  CHART_AXES_TYPE_OPTIONS,\n  'val'\n) as {\n  [key in ChartAxesTypesEnum]: ChartAxesTypeOption;\n};\n","import { ComponentConfig } from '../interfaces';\nimport { mainTypes, SafeAny } from '../types';\nimport { RefreshIntervalUnitEnum } from '../enums';\n\nconst BASIC_STYLES: Record<string, SafeAny> = {\n  backgroundColor: '',\n  backgroundColorAlpha: 1,\n  backgroundImage: '',\n  backgroundPositionX: 0, // %\n  backgroundPositionY: 100, // %\n  backgroundSize: 100, // %\n  backgroundRepeat: 'no-repeat',\n  paddingTop: 0, // px\n  paddingBottom: 0, // px\n  paddingLeft: 0, // px\n  paddingRight: 0 // px\n};\n\nexport const INIT_SETTINGS_CONFIG: { [key in mainTypes]: ComponentConfig } = {\n  canvas: {\n    id: 'canvas',\n    size: { width: 1920, height: 1080 },\n    type: 'canvas',\n    subType: '',\n    position: { x: 0, y: 0 },\n    props: {\n      styles: {\n        backgroundColor: '',\n        backgroundImage: '',\n        backgroundColorAlpha: 1\n      }\n    }\n  },\n  chart: {\n    id: '',\n    type: 'chart',\n    subType: '',\n    position: { x: 0, y: 0 },\n    size: { width: 300, height: 300 },\n    props: {\n      styles: { ...BASIC_STYLES }\n    },\n    refreshConfig: { enabled: false, interval: 30, intervalUnit: RefreshIntervalUnitEnum.minutes, controlIds: [] }\n  },\n  table: {\n    id: '',\n    type: 'table',\n    subType: '',\n    position: { x: 0, y: 0 },\n    size: { width: 600, height: 300 },\n    props: {\n      styles: { ...BASIC_STYLES }\n    },\n    refreshConfig: { enabled: false, interval: 30, intervalUnit: RefreshIntervalUnitEnum.minutes, controlIds: [] }\n  },\n  text: {\n    id: '',\n    type: 'text',\n    subType: '', // 标题，文字\n    position: { x: 0, y: 0 },\n    size: { width: 150, height: 50 },\n    props: {\n      styles: { ...BASIC_STYLES }\n    }\n  },\n  control: {\n    id: '',\n    type: 'control',\n    subType: '',\n    position: { x: 0, y: 0 },\n    size: { width: 200, height: 40 },\n    props: {\n      styles: { ...BASIC_STYLES }\n    }\n  }\n};\n","import { EditorTab } from '../interfaces';\nimport { mainTypes } from '../types';\n\n// 通用样式设置\n\nexport const BASE_TAB: EditorTab = { title: '外观', value: 'appearance', icon: 'table-column-equal-width' };\n\nexport const DATA_TAB: EditorTab = { title: '数据', value: 'advanced', icon: 'number' };\n\nexport const STYLE_TAB: EditorTab = { title: '样式', value: 'styles', icon: 'browser' };\n\nexport const REFRESH_TAB: EditorTab = { title: '自动化', value: 'refresh', icon: 'clock-circle-open' };\n\nexport const CONTROL_TAB: EditorTab = { title: '控件', value: 'control', icon: 'solution' };\n\nexport const EDITOR_TAB_MAP: Partial<Record<mainTypes, EditorTab[]>> = {\n  chart: [BASE_TAB, DATA_TAB, REFRESH_TAB],\n  table: [BASE_TAB, DATA_TAB, REFRESH_TAB],\n  text: [BASE_TAB, STYLE_TAB],\n  control: [BASE_TAB, CONTROL_TAB]\n};\n","import { BaseSelectOption } from '../interfaces';\nimport {\n  datePickSelectionType,\n  pivotingAggregationTypes,\n  pivotingPanelShowTypes,\n  rowGroupingDisplayType,\n  rowGroupPanelShowTypes\n} from '../types';\nimport { Is, RefreshIntervalUnitEnum } from '../enums';\n\n/**\n * 图表\n */\nexport const ENABLE_OPTIONS: BaseSelectOption<boolean>[] = [\n  { label: '启用', val: true },\n  { label: '禁用', val: false }\n];\n\nexport const YES_OR_NO_OPTIONS: BaseSelectOption<boolean>[] = [\n  { label: '是', val: true },\n  { label: '否', val: false }\n];\n\nexport const IS_OPTIONS: BaseSelectOption<Is>[] = [\n  { label: '是', val: Is.yes },\n  { label: '否', val: Is.no }\n];\n\nexport const FONT_WEIGHT_OPTIONS: BaseSelectOption[] = [\n  { label: '默认', val: 'normal' },\n  { label: '加粗', val: 'bold' }\n];\n\nexport const FONT_WEIGHT_CSS_OPTIONS: BaseSelectOption[] = [\n  { label: '正常', val: 'normal' },\n  { label: '加粗', val: 'bold' },\n  { label: '细体', val: '300' },\n  { label: '中等', val: '500' },\n  { label: '粗体', val: '600' },\n  { label: '特粗', val: '700' }\n];\n\nexport const AXIS_POSITION_OPTIONS: BaseSelectOption[] = [\n  { label: '底部', val: 'bottom' },\n  { label: '顶部', val: 'top' },\n  { label: '左侧', val: 'left' },\n  { label: '右侧', val: 'right' }\n];\n\nexport const AGGREGATION_OPTIONS: BaseSelectOption[] = [\n  { label: '求和', val: 'sum' },\n  { label: '平均值', val: 'mean' },\n  { label: '计数', val: 'count' }\n];\n\nexport const ORIENTATION_OPTIONS: BaseSelectOption[] = [\n  { label: '固定', val: 'fixed' },\n  { label: '平行', val: 'parallel' },\n  { label: '垂直', val: 'perpendicular' }\n];\n\nexport const DIRECTION_OPTIONS: BaseSelectOption[] = [\n  { label: '水平排列', val: 'horizontal' },\n  { label: '垂直排列', val: 'vertical' }\n];\n\nexport const POLAR_AXIS_SHAPE_OPTIONS: BaseSelectOption[] = [\n  { label: '多边形', val: 'polygon' },\n  { label: '圆形', val: 'circle' }\n];\n\nexport const ROW_GROUP_PANEL_OPTIONS: BaseSelectOption<rowGroupPanelShowTypes>[] = [\n  { label: '总是', val: 'always' },\n  { label: '仅分组时', val: 'onlyWhenGrouping' },\n  { label: '从不', val: 'never' }\n];\n\nexport const PIVOTING_PANEL_OPTIONS: BaseSelectOption<pivotingPanelShowTypes>[] = [\n  { label: '总是', val: 'always' },\n  { label: '仅数据透视时', val: 'onlyWhenPivoting' },\n  { label: '从不', val: 'never' }\n];\n\n// 聚合函数\nexport const AGG_FUNC_OPTIONS: BaseSelectOption<pivotingAggregationTypes>[] = [\n  { label: '求和', val: 'sum' },\n  { label: '第一个', val: 'first' },\n  { label: '最后一个', val: 'last' },\n  { label: '最小值', val: 'min' },\n  { label: '最大值', val: 'max' },\n  { label: '计数', val: 'count' },\n  { label: '平均值', val: 'avg' }\n];\n\nexport const GROUP_DISPLAY_TYPE_OPTIONS: BaseSelectOption<rowGroupingDisplayType>[] = [\n  { label: '简单分组', val: 'singleColumn' },\n  { label: '多选列', val: 'multipleColumns' },\n  { label: '分组行', val: 'groupRows' }\n];\n\nexport const CHART_MARKER_SHAPE_OPTIONS: BaseSelectOption[] = [\n  { label: '圆形', val: 'circle' },\n  { label: '十字', val: 'cross' },\n  { label: '菱形', val: 'diamond' },\n  { label: '心形', val: 'heart' },\n  { label: '加号', val: 'plus' },\n  { label: '图钉', val: 'pin' },\n  { label: '方形', val: 'square' },\n  { label: '星形', val: 'star' },\n  { label: '三角形', val: 'triangle' }\n];\n\nexport const COLOR_OPTIONS: BaseSelectOption[] = [\n  { label: '纯白', val: '#FFFFFF' },\n  { label: '黑色', val: '#000000' },\n  { label: '红色', val: '#FF0000' },\n  { label: '深红', val: '#8B0000' },\n  { label: '玫瑰红', val: '#FF007F' },\n  { label: '番茄红', val: '#FF6347' },\n  { label: '珊瑚红', val: '#FF7F50' },\n  { label: '印度红', val: '#CD5C5C' },\n  { label: '栗色', val: '#800000' },\n  { label: '粉红', val: '#FFC0CB' },\n  { label: '亮粉', val: '#FF69B4' },\n  { label: '深粉', val: '#FF1493' },\n  { label: '紫红', val: '#C71585' },\n  { label: '薰衣草紫', val: '#E6E6FA' },\n  { label: '紫色', val: '#800080' },\n  { label: '深紫', val: '#9400D3' },\n  { label: '蓝紫', val: '#8A2BE2' },\n  { label: '靛蓝', val: '#4B0082' },\n  { label: '蓝色', val: '#0000FF' },\n  { label: '深蓝', val: '#00008B' },\n  { label: '天蓝', val: '#87CEEB' },\n  { label: '浅蓝', val: '#ADD8E6' },\n  { label: '钢蓝', val: '#4682B4' },\n  { label: '皇家蓝', val: '#4169E1' },\n  { label: '矢车菊蓝', val: '#6495ED' },\n  { label: '绿松石', val: '#40E0D0' },\n  { label: '青色', val: '#00FFFF' },\n  { label: '深青', val: '#008B8B' },\n  { label: '蓝绿', val: '#008080' },\n  { label: '绿色', val: '#00FF00' },\n  { label: '深绿', val: '#006400' },\n  { label: '黄绿', val: '#9ACD32' },\n  { label: '春绿', val: '#00FF7F' },\n  { label: '薄荷绿', val: '#98FF98' },\n  { label: '橄榄绿', val: '#808000' },\n  { label: '深橄榄', val: '#556B2F' },\n  { label: '柠檬绿', val: '#32CD32' },\n  { label: '酸橙绿', val: '#00FF00' },\n  { label: '黄色', val: '#FFFF00' },\n  { label: '金色', val: '#FFD700' },\n  { label: '浅黄', val: '#FFFFE0' },\n  { label: '卡其色', val: '#F0E68C' },\n  { label: '深卡其', val: '#BDB76B' },\n  { label: '橙色', val: '#FFA500' },\n  { label: '深橙', val: '#FF8C00' },\n  { label: '珊瑚橙', val: '#FF7F50' },\n  { label: '番茄橙', val: '#FF6347' },\n  { label: '巧克力色', val: '#D2691E' },\n  { label: '棕色', val: '#A52A2A' },\n  { label: '深棕', val: '#8B4513' },\n  { label: '红木色', val: '#CD853F' },\n  { label: '沙棕色', val: '#F4A460' },\n  { label: '玫瑰棕', val: '#BC8F8F' },\n  { label: '银灰色', val: '#C0C0C0' },\n  { label: '灰色', val: '#808080' },\n  { label: '深灰', val: '#A9A9A9' },\n  { label: '浅灰', val: '#D3D3D3' },\n  { label: '暗灰', val: '#696969' },\n  { label: '石板灰', val: '#708090' },\n  { label: '亮珊瑚', val: '#F08080' },\n  { label: '桃红色', val: '#FFDAB9' },\n  { label: '秘鲁色', val: '#CD853F' },\n  { label: '粉珊瑚', val: '#F08080' },\n  { label: '深粉红', val: '#FF1493' },\n  { label: '热粉红', val: '#FF69B4' },\n  { label: '兰花紫', val: '#DA70D6' },\n  { label: '紫罗兰', val: '#EE82EE' },\n  { label: '洋红', val: '#FF00FF' },\n  { label: '深洋红', val: '#8B008B' },\n  { label: '紫水晶', val: '#9966CC' },\n  { label: '中紫', val: '#9370DB' },\n  { label: '中蓝', val: '#0000CD' },\n  { label: '午夜蓝', val: '#191970' },\n  { label: '海军蓝', val: '#000080' },\n  { label: '道奇蓝', val: '#1E90FF' },\n  { label: '爱丽丝蓝', val: '#F0F8FF' },\n  { label: '天青蓝', val: '#00BFFF' },\n  { label: '淡蓝', val: '#B0E0E6' },\n  { label: '粉蓝', val: '#87CEFA' },\n  { label: '浅天蓝', val: '#87CEFA' },\n  { label: '孔雀蓝', val: '#33A1C9' },\n  { label: '宝石蓝', val: '#007BA7' },\n  { label: '深宝石蓝', val: '#0047AB' },\n  { label: '绿松石蓝', val: '#00CED1' },\n  { label: '中绿松石', val: '#48D1CC' },\n  { label: '暗绿松石', val: '#00CED1' },\n  { label: '浅海绿', val: '#20B2AA' },\n  { label: '中春绿', val: '#00FA9A' },\n  { label: '海洋绿', val: '#3CB371' },\n  { label: '浅海洋绿', val: '#20B2AA' },\n  { label: '深海洋绿', val: '#8FBC8F' },\n  { label: '淡绿', val: '#90EE90' },\n  { label: '黄绿色', val: '#ADFF2F' },\n  { label: '暗橄榄绿', val: '#556B2F' },\n  { label: '深黄绿', val: '#9ACD32' },\n  { label: '黄柠檬', val: '#FFFACD' },\n  { label: '浅金黄', val: '#FAFAD2' },\n  { label: '金菊黄', val: '#DAA520' },\n  { label: '暗金黄', val: '#B8860B' },\n  { label: '玫瑰金', val: '#E6BE8A' },\n  { label: '古铜色', val: '#CD7F32' },\n  { label: '铜色', val: '#B87333' },\n  { label: '浅铜', val: '#D2691E' },\n  { label: '赤陶色', val: '#CC4E5C' },\n  { label: '砖红色', val: '#B22222' },\n  { label: '深红木', val: '#E97451' },\n  { label: '印度红木', val: '#CD5C5C' },\n  { label: '鲑鱼红', val: '#FA8072' },\n  { label: '深鲑鱼', val: '#E9967A' },\n  { label: '浅鲑鱼', val: '#FFA07A' },\n  { label: '珊瑚粉', val: '#FF6F61' },\n  { label: '橙红色', val: '#FF4500' },\n  { label: '深橙红', val: '#FF8C00' },\n  { label: '霓虹橙', val: '#FF5F1F' },\n  { label: '琥珀色', val: '#FFBF00' },\n  { label: '蜂蜜色', val: '#F5B700' },\n  { label: '芥末黄', val: '#FFDB58' },\n  { label: '玉米黄', val: '#FFF380' },\n  { label: '松石绿', val: '#0FCDC0' },\n  { label: '翡翠绿', val: '#50C878' },\n  { label: '孔雀绿', val: '#00A693' },\n  { label: '薄荷蓝', val: '#B2F7EF' },\n  { label: '冰川蓝', val: '#78C7EB' },\n  { label: '钴蓝色', val: '#0047AB' },\n  { label: '电蓝色', val: '#7DF9FF' },\n  { label: '长春花蓝', val: '#CCCCFF' },\n  { label: '薰衣草灰', val: '#C4C3D0' },\n  { label: '紫藤色', val: '#B399D4' },\n  { label: '兰花色', val: '#E6CFE6' },\n  { label: '淡紫色', val: '#E0B0FF' },\n  { label: '紫水晶色', val: '#9966CC' },\n  { label: '深兰花紫', val: '#9932CC' },\n  { label: '深紫罗兰', val: '#9400D3' },\n  { label: '靛青色', val: '#4B0082' },\n  { label: '石板蓝', val: '#6A5ACD' },\n  { label: '中石板蓝', val: '#7B68EE' },\n  { label: '暗岩灰', val: '#2F4F4F' },\n  { label: '浅岩灰', val: '#778899' },\n  { label: '亮钢蓝', val: '#B0C4DE' },\n  { label: '淡钢蓝', val: '#4682B4' },\n  { label: '白烟色', val: '#F5F5F5' },\n  { label: '亮灰色', val: '#DCDCDC' },\n  { label: '浅灰色', val: '#D3D3D3' },\n  { label: '庚斯博罗灰', val: '#D3D3D3' },\n  { label: '暗灰色', val: '#A9A9A9' },\n  { label: '银白色', val: '#C0C0C0' },\n  { label: '亮银色', val: '#D3D3D3' },\n  { label: '枪灰色', val: '#818589' },\n  { label: '冷灰色', val: '#848482' },\n  { label: '石板黑', val: '#1C1C1C' },\n  { label: '暗石板灰', val: '#2F4F4F' },\n  { label: '深石板灰', val: '#708090' },\n  { label: '淡石板灰', val: '#778899' },\n  { label: '亮石板灰', val: '#B0C4DE' },\n  { label: '雪白色', val: '#FFFAFA' },\n  { label: '蜂蜜露', val: '#F0FFF0' },\n  { label: '薄荷霜', val: '#F5FFFA' },\n  { label: '天蓝色', val: '#F0FFFF' },\n  { label: '淡紫色', val: '#F8F8FF' },\n  { label: '幽灵白', val: '#F8F8FF' },\n  { label: '贝壳白', val: '#FFF5EE' },\n  { label: '亚麻色', val: '#FAF0E6' },\n  { label: '老花色', val: '#FDF5E6' },\n  { label: '花白色', val: '#FFFAF0' },\n  { label: '玉米丝色', val: '#FFF8DC' },\n  { label: '古董白', val: '#FAEBD7' },\n  { label: '米白色', val: '#F5F5DC' },\n  { label: '浅米色', val: '#FAF0BE' },\n  { label: '香槟金', val: '#F7E7CE' },\n  { label: '羊皮纸色', val: '#F1E9D2' },\n  { label: '奶油色', val: '#FFFDD0' },\n  { label: '柠檬绸', val: '#FFFACD' },\n  { label: '浅金黄', val: '#FAFAD2' },\n  { label: '浅黄色', val: '#FFFFE0' },\n  { label: '象牙色', val: '#FFFFF0' },\n  { label: '亮黄色', val: '#FFFF00' },\n  { label: '镉黄色', val: '#FFF600' },\n  { label: '金丝雀黄', val: '#FFEF00' },\n  { label: '香蕉黄', val: '#FFE135' },\n  { label: '鲜黄色', val: '#FFD700' },\n  { label: '校车黄', val: '#FFD800' },\n  { label: '霓虹黄', val: '#FFFF33' },\n  { label: '芒果黄', val: '#FFC324' },\n  { label: '火焰橙', val: '#FF7F49' },\n  { label: '南瓜橙', val: '#FF7518' },\n  { label: '万圣节橙', val: '#FF6700' },\n  { label: '深橙色', val: '#FF5800' },\n  { label: '国际橙', val: '#FF4F00' },\n  { label: '红橙色', val: '#FF4500' },\n  { label: '法拉利红', val: '#FF2800' },\n  { label: '胭脂红', val: '#960018' },\n  { label: '深红色', val: '#8B0000' },\n  { label: '火砖红', val: '#8E2323' },\n  { label: '栗色', val: '#800000' },\n  { label: '玫瑰木色', val: '#65000B' },\n  { label: '勃艮第红', val: '#900020' },\n  { label: '酒红色', val: '#722F37' },\n  { label: '深玫瑰红', val: '#C21E56' },\n  { label: '覆盆子红', val: '#E30B5D' },\n  { label: '宝石红', val: '#CC0000' },\n  { label: '石榴红', val: '#F34723' },\n  { label: '朱红色', val: '#FF4D00' },\n  { label: '猩红色', val: '#FF2400' }\n];\n\n/**\n * 表格\n */\nexport const TABLE_SIDE_BAR_OPTIONS: BaseSelectOption<undefined | string>[] = [\n  { label: '禁用', val: undefined },\n  { label: '列侧栏', val: 'columns' },\n  { label: '过滤器侧栏', val: 'filters' }\n];\n\n/**\n * 文本样式选项\n */\n\nexport const TEXT_FONT_WEIGHT_OPTIONS: BaseSelectOption[] = [\n  { label: '细体', val: '100' },\n  { label: '正常', val: '400' },\n  { label: '加粗', val: '700' },\n  { label: '特粗', val: '900' }\n];\n\nexport const TEXT_FONT_STYLE_OPTIONS: BaseSelectOption[] = [\n  { label: '正常', val: 'normal' },\n  { label: '斜体', val: 'italic' },\n  { label: '倾斜', val: 'oblique' }\n];\n\nexport const TEXT_ALIGN_OPTIONS: BaseSelectOption[] = [\n  { label: '左对齐', val: 'left' },\n  { label: '居中', val: 'center' },\n  { label: '右对齐', val: 'right' },\n  { label: '两端对齐', val: 'justify' }\n];\n\nexport const TEXT_DECORATIONS_OPTIONS: BaseSelectOption[] = [\n  { label: '无', val: 'none' },\n  { label: '下划线', val: 'underline' },\n  { label: '上划线', val: 'overline' },\n  { label: '删除线', val: 'line-through' }\n];\n\nexport const TEXT_WHITE_SPACE_OPTIONS: BaseSelectOption[] = [\n  { label: '正常', val: 'normal' },\n  { label: '不换行', val: 'nowrap' },\n  { label: '预格式', val: 'pre' },\n  { label: '预格式换行', val: 'pre-wrap' },\n  { label: '保留空格', val: 'pre-line' }\n];\n\n/**\n * 自定义组件\n */\n\nexport const DATE_PICKER_SELECTION_MODE_OPTIONS: BaseSelectOption<datePickSelectionType>[] = [\n  {\n    label: `日期单选`,\n    val: `single`\n  },\n  {\n    label: `日期区间`,\n    val: `range`\n  }\n];\n\nexport const SIZE_OPTIONS: BaseSelectOption[] = [\n  {\n    label: `小号`,\n    val: `small`\n  },\n  {\n    label: `默认`,\n    val: `normal`\n  },\n  {\n    label: `大号`,\n    val: `large`\n  }\n];\n\nexport const VIEW_OPTIONS = [\n  { label: '日期', val: 'date' },\n  { label: '月份', val: 'month' },\n  { label: '年份', val: 'year' }\n];\n\n// 刷新\nexport const INTERVAL_UNIT_OPTIONS: BaseSelectOption<RefreshIntervalUnitEnum>[] = [\n  { label: '秒', val: RefreshIntervalUnitEnum.seconds },\n  { label: '分钟', val: RefreshIntervalUnitEnum.minutes },\n  { label: '小时', val: RefreshIntervalUnitEnum.hours },\n  { label: '天', val: RefreshIntervalUnitEnum.days }\n];\n","import { BaseSelectOption } from '../interfaces';\nimport { ControlTypesEnum } from '../enums';\n\nexport const CONTROL_TYPE_OPTIONS: BaseSelectOption<ControlTypesEnum>[] = [\n  {\n    label: '时间选择',\n    val: ControlTypesEnum.datePick\n  },\n  {\n    label: '单选',\n    val: ControlTypesEnum.select\n  },\n  {\n    label: '多选',\n    val: ControlTypesEnum.multiSelect\n  },\n  {\n    label: '输入',\n    val: ControlTypesEnum.input\n  },\n  {\n    label: '时间',\n    val: ControlTypesEnum.dateTime\n  }\n];\n","import { ChartTypesEnum } from '../enums';\n\nexport const CHART_DEFAULT_MOCKS_MAP: Partial<{ [key in ChartTypesEnum]: string[] }> = {\n  [ChartTypesEnum.bar]: ['bar2012', 'bar2013', 'bar2014', 'bar2015', 'bar2016'],\n  [ChartTypesEnum.line]: ['lineSubscriptions', 'lineServices', 'lineProducts'],\n  [ChartTypesEnum.radar]: ['radarData', 'radarData2'],\n  [ChartTypesEnum.scatter]: ['scatterMale', 'scatterFemale'],\n  [ChartTypesEnum.pie]: ['pieData'],\n  [ChartTypesEnum.boxPlot]: ['boxPlotData'],\n  [ChartTypesEnum.candlestick]: ['candlestickData'],\n  [ChartTypesEnum.heatmap]: ['heatmapData'],\n  [ChartTypesEnum.sunburst]: ['sunburstData'],\n  [ChartTypesEnum.treemap]: ['treemapData'],\n  [ChartTypesEnum.sankey]: ['sankeyData'],\n  [ChartTypesEnum.chord]: ['chordData'],\n  [ChartTypesEnum.funnel]: ['funnelData'],\n  [ChartTypesEnum.effectScatter]: ['effectScatterData'],\n  [ChartTypesEnum.parallel]: ['parallelData'],\n  [ChartTypesEnum.themeRiver]: ['themeRiverData'],\n  [ChartTypesEnum.tree]: ['treeData'],\n  [ChartTypesEnum.gauge]: ['gaugeData'],\n  [ChartTypesEnum.graph]: ['graphNodes']\n};\n","import { BaseSelectOption } from '../interfaces';\nimport { TableTypesEnum } from '../enums';\n\nexport const TABLE_TYPE_OPTIONS: BaseSelectOption<TableTypesEnum>[] = [\n  // { label: '普通表格', val: TableTypesEnum.default },\n  { label: '聚合分组', val: TableTypesEnum.pivotTable },\n  // { label: '行分组表格', val: TableTypesEnum.rowGrouping },\n  // { label: '数据透视表', val: TableTypesEnum.pivoting },\n];\n","import { BaseSelectOption } from '../interfaces';\nimport { TextTypesEnum } from '../enums';\n\nexport const TEXT_TYPE_OPTIONS: BaseSelectOption<TextTypesEnum>[] = [\n  { label: '标题', val: TextTypesEnum.headTitle },\n  { label: '文本', val: TextTypesEnum.text }\n];\n","// 自动生成的背景图片常量文件\nimport { BaseSelectOption } from '../interfaces';\n\n// 原始图片数据\nexport const BACKGROUND_IMAGES = {\n  'canvas-bg-1': {\n    label: `画布背景 1`,\n    val: `url(assets/images/backgrounds/bg1.png)`,\n    className: ['canvas-bg-1']\n  }\n};\n\n// 获取画布背景图片\nexport function getCanvasBackgroundOptions(): BaseSelectOption[] {\n  return Object.entries(BACKGROUND_IMAGES)\n    .filter(([key]) => key.startsWith('canvas-'))\n    .map(([, config]) => config);\n}\n\n// 获取标题背景图片\nexport function getHeaderBackgroundOptions(): BaseSelectOption[] {\n  return Object.entries(BACKGROUND_IMAGES)\n    .filter(([key]) => key.startsWith('header-'))\n    .map(([, config]) => config);\n}\n\n// 获取文本背景图片\nexport function getTextBackgroundOptions(): BaseSelectOption[] {\n  return Object.entries(BACKGROUND_IMAGES)\n    .filter(([key]) => key.startsWith('text-'))\n    .map(([, config]) => config);\n}\n\n// 获取数据可视化背景图片（chart 和 table 通用）\nexport function getDataBackgroundOptions(): BaseSelectOption[] {\n  return Object.entries(BACKGROUND_IMAGES)\n    .filter(([key]) => key.startsWith('data-'))\n    .map(([, config]) => config);\n}\n\n// 兼容旧版本的函数\nexport function getBackgroundImageOptions(): BaseSelectOption[] {\n  return getDataBackgroundOptions();\n}\n\n// 获取所有背景图片选项\nexport function getAllBackgroundOptions(): BaseSelectOption[] {\n  return Object.values(BACKGROUND_IMAGES);\n}\n","import { EditorBaseField } from '../../interfaces';\n\nexport const BASE_STYLE_FIELDS: EditorBaseField[] = [\n  { label: '背景图片X轴偏移', key: 'backgroundPositionX', schemaType: 'number', path: 'props.styles.backgroundPositionX', suffix: '%' },\n  { label: '背景图片Y轴偏移', key: 'backgroundPositionY', schemaType: 'number', path: 'props.styles.backgroundPositionY', suffix: '%' },\n  { label: '背景图片缩放比例', key: 'backgroundSize', schemaType: 'number', path: 'props.styles.backgroundSize', suffix: '%' },\n  { label: '上内边距', key: 'paddingTop', schemaType: 'number', path: 'props.styles.paddingTop', suffix: 'px' },\n  { label: '下内边距', key: 'paddingBottom', schemaType: 'number', path: 'props.styles.paddingBottom', suffix: 'px' },\n  { label: '左内边距', key: 'paddingLeft', schemaType: 'number', path: 'props.styles.paddingLeft', suffix: 'px' },\n  { label: '右内边距', key: 'paddingRight', schemaType: 'number', path: 'props.styles.paddingRight', suffix: 'px' }\n];\n\nexport const BASE_WIDTH_FIELDS: EditorBaseField[] = [\n  { label: '宽度', key: 'width', schemaType: 'number', path: 'size.width', min: 0, step: 1, suffix: 'px' },\n  { label: '高度', key: 'height', schemaType: 'number', path: 'size.height', min: 0, step: 1, suffix: 'px' }\n];\n\nexport const BASE_POSITION_FIELDS: EditorBaseField[] = [\n  { label: 'X', key: 'positionX', schemaType: 'number', path: 'position.x', min: 0, step: 1, suffix: 'px' },\n  { label: 'Y', key: 'positionY', schemaType: 'number', path: 'position.y', min: 0, step: 1, suffix: 'px' }\n];\n","import { EditorBaseField } from '../../../interfaces';\nimport { BASE_WIDTH_FIELDS } from '../base-style-fields';\n\nexport const CANVAS_EDITOR_BASE_FIELD: EditorBaseField = {\n  label: '基础属性',\n  key: 'base',\n  path: 'base',\n  schemaType: 'group',\n  children: [\n    ...BASE_WIDTH_FIELDS,\n  ]\n}\n","import { EditorBaseField } from '../../../interfaces';\nimport { getCanvasBackgroundOptions } from '../../background-images';\n\nexport const CANVAS_EDITOR_STYLE_FIELD: EditorBaseField = {\n  label: '样式外观',\n  key: 'style',\n  path: 'style',\n  schemaType: 'group',\n  children: [\n    { label: '背景颜色', key: 'backgroundColor', schemaType: 'color', path: 'props.styles.backgroundColor' },\n    {\n      label: '背景颜色透明度',\n      key: 'backgroundColorAlpha',\n      schemaType: 'number',\n      path: 'props.styles.backgroundColorAlpha',\n      step: 0.1,\n      min: 0,\n      max: 1\n    },\n    {\n      label: '背景图片',\n      key: 'backgroundImage',\n      schemaType: 'select-image',\n      path: 'props.styles.backgroundImage',\n      options: getCanvasBackgroundOptions()\n    }\n  ]\n};\n","import { EditorChartField } from '../../../interfaces';\nimport { ENABLE_OPTIONS, FONT_WEIGHT_OPTIONS } from '../../select-options.const';\n\n// 标题设置 - 轻量化: 仅保留常用选项\nexport const CHART_TITLE: EditorChartField = {\n  label: '标题设置',\n  key: 'title',\n  schemaType: 'group',\n  children: [\n    {\n      label: '显示标题',\n      key: 'titleShow',\n      path: 'title.show',\n      schemaType: 'select',\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '主标题文本',\n      key: 'titleText',\n      path: 'title.text',\n      schemaType: 'text'\n    },\n    {\n      label: '副标题文本',\n      key: 'titleSubtext',\n      path: 'title.subtext',\n      schemaType: 'text'\n    },\n    {\n      label: '水平对齐',\n      key: 'titleTextAlign',\n      path: 'title.textAlign',\n      schemaType: 'select',\n      options: [\n        { label: '自动', val: 'auto' },\n        { label: '左对齐', val: 'left' },\n        { label: '居中', val: 'center' },\n        { label: '右对齐', val: 'right' }\n      ]\n    },\n    {\n      label: '垂直对齐',\n      key: 'titleTextVerticalAlign',\n      path: 'title.textVerticalAlign',\n      schemaType: 'select',\n      options: [\n        { label: '自动', val: 'auto' },\n        { label: '顶部', val: 'top' },\n        { label: '中间', val: 'middle' },\n        { label: '底部', val: 'bottom' }\n      ]\n    },\n    // 主标题样式\n    {\n      label: '主标题字体颜色',\n      key: 'titleTextStyleColor',\n      path: 'title.textStyle.color',\n      schemaType: 'color'\n    },\n    {\n      label: '主标题字体大小',\n      key: 'titleTextStyleFontSize',\n      path: 'title.textStyle.fontSize',\n      schemaType: 'number',\n      min: 8,\n      max: 100,\n      step: 1\n    },\n    {\n      label: '主标题字体粗细',\n      key: 'titleTextStyleFontWeight',\n      path: 'title.textStyle.fontWeight',\n      schemaType: 'select',\n      options: FONT_WEIGHT_OPTIONS\n    },\n    // 副标题样式\n    {\n      label: '副标题字体颜色',\n      key: 'titleSubtextStyleColor',\n      path: 'title.subtextStyle.color',\n      schemaType: 'color'\n    },\n    {\n      label: '副标题字体大小',\n      key: 'titleSubtextStyleFontSize',\n      path: 'title.subtextStyle.fontSize',\n      schemaType: 'number',\n      min: 8,\n      max: 100,\n      step: 1\n    },\n    {\n      label: '副标题字体粗细',\n      key: 'titleSubtextStyleFontWeight',\n      path: 'title.subtextStyle.fontWeight',\n      schemaType: 'select',\n      options: FONT_WEIGHT_OPTIONS\n    }\n  ]\n};\n","import { EditorChartField } from '../../../interfaces';\nimport { ENABLE_OPTIONS, FONT_WEIGHT_OPTIONS } from '../../select-options.const';\n\n// 图例设置 - 轻量化: 仅保留常用选项\nexport const CHART_LEGEND: EditorChartField = {\n  label: '图例设置',\n  key: 'legend',\n  schemaType: 'group',\n  children: [\n    {\n      label: '显示图例',\n      key: 'legendShow',\n      path: 'legend.show',\n      schemaType: 'select',\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '布局方向',\n      key: 'legendOrient',\n      path: 'legend.orient',\n      schemaType: 'select',\n      options: [\n        { label: '水平', val: 'horizontal' },\n        { label: '垂直', val: 'vertical' }\n      ]\n    },\n    {\n      label: '对齐方式',\n      key: 'legendAlign',\n      path: 'legend.align',\n      schemaType: 'select',\n      options: [\n        { label: '自动', val: 'auto' },\n        { label: '左对齐', val: 'left' },\n        { label: '右对齐', val: 'right' }\n      ]\n    },\n    {\n      label: '水平位置',\n      key: 'legendLeft',\n      path: 'legend.left',\n      schemaType: 'select',\n      options: [\n        { label: '左侧', val: 'left' },\n        { label: '居中', val: 'center' },\n        { label: '右侧', val: 'right' },\n        { label: '自定义', val: 'auto' }\n      ]\n    },\n    {\n      label: '垂直位置',\n      key: 'legendTop',\n      path: 'legend.top',\n      schemaType: 'select',\n      options: [\n        { label: '顶部', val: 'top' },\n        { label: '中间', val: 'middle' },\n        { label: '底部', val: 'bottom' },\n        { label: '自定义', val: 'auto' }\n      ]\n    },\n    {\n      label: '图例项间距',\n      key: 'legendItemGap',\n      path: 'legend.itemGap',\n      schemaType: 'number',\n      min: 0,\n      step: 1\n    },\n    {\n      label: '图例标记宽度',\n      key: 'legendItemWidth',\n      path: 'legend.itemWidth',\n      schemaType: 'number',\n      min: 0,\n      step: 1\n    },\n    {\n      label: '图例标记高度',\n      key: 'legendItemHeight',\n      path: 'legend.itemHeight',\n      schemaType: 'number',\n      min: 0,\n      step: 1\n    },\n    {\n      label: '选择模式',\n      key: 'legendSelectedMode',\n      path: 'legend.selectedMode',\n      schemaType: 'select',\n      options: [\n        { label: '禁用选择', val: false },\n        { label: '允许选择', val: true },\n        { label: '单选', val: 'single' },\n        { label: '多选', val: 'multiple' }\n      ]\n    },\n    // 图例文字样式（基础）\n    {\n      label: '图例文字颜色',\n      key: 'legendTextStyleColor',\n      path: 'legend.textStyle.color',\n      schemaType: 'color'\n    },\n    {\n      label: '图例文字大小',\n      key: 'legendTextStyleFontSize',\n      path: 'legend.textStyle.fontSize',\n      schemaType: 'number',\n      min: 8,\n      max: 100,\n      step: 1\n    },\n    {\n      label: '图例文字粗细',\n      key: 'legendTextStyleFontWeight',\n      path: 'legend.textStyle.fontWeight',\n      schemaType: 'select',\n      options: FONT_WEIGHT_OPTIONS\n    }\n  ]\n};\n","import { EditorChartField } from '../../../interfaces';\nimport { ENABLE_OPTIONS } from '../../select-options.const';\n\nexport const CHART_GRID: EditorChartField = {\n  label: '网格设置',\n  key: 'grid',\n  schemaType: 'group',\n  children: [\n    {\n      label: '显示网格',\n      key: 'gridShow',\n      path: 'grid.show',\n      schemaType: 'select',\n      options: ENABLE_OPTIONS\n    },\n    // 位置与尺寸（常用）\n    {\n      label: '左侧距离',\n      key: 'gridLeft',\n      path: 'grid.left',\n      schemaType: 'text'\n    },\n    {\n      label: '顶部距离',\n      key: 'gridTop',\n      path: 'grid.top',\n      schemaType: 'text'\n    },\n    {\n      label: '右侧距离',\n      key: 'gridRight',\n      path: 'grid.right',\n      schemaType: 'text'\n    },\n    {\n      label: '底部距离',\n      key: 'gridBottom',\n      path: 'grid.bottom',\n      schemaType: 'text'\n    },\n    {\n      label: '网格宽度',\n      key: 'gridWidth',\n      path: 'grid.width',\n      schemaType: 'text'\n    },\n    {\n      label: '网格高度',\n      key: 'gridHeight',\n      path: 'grid.height',\n      schemaType: 'text'\n    },\n    {\n      label: '包含标签',\n      key: 'gridContainLabel',\n      path: 'grid.containLabel',\n      schemaType: 'select',\n      options: ENABLE_OPTIONS\n    },\n    // 外观样式（基础）\n    {\n      label: '背景颜色',\n      key: 'gridBackgroundColor',\n      path: 'grid.backgroundColor',\n      schemaType: 'color'\n    },\n    {\n      label: '边框颜色',\n      key: 'gridBorderColor',\n      path: 'grid.borderColor',\n      schemaType: 'color'\n    },\n    {\n      label: '边框宽度',\n      key: 'gridBorderWidth',\n      path: 'grid.borderWidth',\n      schemaType: 'number',\n      min: 0,\n      step: 0.5\n    }\n  ]\n};\n","import { EditorChartField } from '../../../interfaces';\nimport { ENABLE_OPTIONS, FONT_WEIGHT_OPTIONS } from '../../select-options.const';\n\nexport const CHART_X_AXIS: EditorChartField = {\n  label: 'X轴设置',\n  key: 'xAxis',\n  schemaType: 'group',\n  children: [\n    {\n      label: '轴类型',\n      key: 'xAxisType',\n      path: 'xAxis.type',\n      schemaType: 'select',\n      options: [\n        { label: '数值轴', val: 'value' },\n        { label: '类目轴', val: 'category' },\n        { label: '时间轴', val: 'time' },\n        { label: '对数轴', val: 'log' }\n      ]\n    },\n    {\n      label: '显示X轴',\n      key: 'xAxisShow',\n      path: 'xAxis.show',\n      schemaType: 'select',\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '反向坐标轴',\n      key: 'xAxisInverse',\n      path: 'xAxis.inverse',\n      schemaType: 'select',\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '轴名称',\n      key: 'xAxisName',\n      path: 'xAxis.name',\n      schemaType: 'text'\n    },\n    {\n      label: '轴名称位置',\n      key: 'xAxisNameLocation',\n      path: 'xAxis.nameLocation',\n      schemaType: 'select',\n      options: [\n        { label: '开始', val: 'start' },\n        { label: '中间', val: 'middle' },\n        { label: '居中', val: 'center' },\n        { label: '结束', val: 'end' }\n      ]\n    },\n    {\n      label: '轴名称间距',\n      key: 'xAxisNameGap',\n      path: 'xAxis.nameGap',\n      schemaType: 'number',\n      min: 0,\n      step: 1\n    },\n    {\n      label: '最小值',\n      key: 'xAxisMin',\n      path: 'xAxis.min',\n      schemaType: 'text'\n    },\n    {\n      label: '最大值',\n      key: 'xAxisMax',\n      path: 'xAxis.max',\n      schemaType: 'text'\n    },\n    // 轴名称文字样式（基础）\n    {\n      label: '轴名称文字颜色',\n      key: 'xAxisNameTextStyleColor',\n      path: 'xAxis.nameTextStyle.color',\n      schemaType: 'color'\n    },\n    {\n      label: '轴名称文字大小',\n      key: 'xAxisNameTextStyleFontSize',\n      path: 'xAxis.nameTextStyle.fontSize',\n      schemaType: 'number',\n      min: 8,\n      max: 100,\n      step: 1\n    },\n    {\n      label: '轴名称文字粗细',\n      key: 'xAxisNameTextStyleFontWeight',\n      path: 'xAxis.nameTextStyle.fontWeight',\n      schemaType: 'select',\n      options: FONT_WEIGHT_OPTIONS\n    },\n    // 轴标签样式（常用）\n    {\n      label: '显示轴标签',\n      key: 'xAxisAxisLabelShow',\n      path: 'xAxis.axisLabel.show',\n      schemaType: 'select',\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '标签旋转角度',\n      key: 'xAxisAxisLabelRotate',\n      path: 'xAxis.axisLabel.rotate',\n      schemaType: 'number',\n      min: -90,\n      max: 90,\n      step: 1\n    },\n    {\n      label: '标签内边距',\n      key: 'xAxisAxisLabelMargin',\n      path: 'xAxis.axisLabel.margin',\n      schemaType: 'number',\n      min: 0,\n      step: 1\n    },\n    {\n      label: '标签文字颜色',\n      key: 'xAxisAxisLabelColor',\n      path: 'xAxis.axisLabel.color',\n      schemaType: 'color'\n    },\n    {\n      label: '标签文字大小',\n      key: 'xAxisAxisLabelFontSize',\n      path: 'xAxis.axisLabel.fontSize',\n      schemaType: 'number',\n      min: 8,\n      max: 100,\n      step: 1\n    },\n    {\n      label: '标签文字粗细',\n      key: 'xAxisAxisLabelFontWeight',\n      path: 'xAxis.axisLabel.fontWeight',\n      schemaType: 'select',\n      options: FONT_WEIGHT_OPTIONS\n    },\n    // 轴线样式（基础）\n    {\n      label: '显示轴线',\n      key: 'xAxisAxisLineShow',\n      path: 'xAxis.axisLine.show',\n      schemaType: 'select',\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '轴线颜色',\n      key: 'xAxisAxisLineLineStyleColor',\n      path: 'xAxis.axisLine.lineStyle.color',\n      schemaType: 'color'\n    },\n    {\n      label: '轴线宽度',\n      key: 'xAxisAxisLineLineStyleWidth',\n      path: 'xAxis.axisLine.lineStyle.width',\n      schemaType: 'number',\n      min: 0,\n      step: 0.5\n    },\n    {\n      label: '轴线类型',\n      key: 'xAxisAxisLineLineStyleType',\n      path: 'xAxis.axisLine.lineStyle.type',\n      schemaType: 'select',\n      options: [\n        { label: '实线', val: 'solid' },\n        { label: '虚线', val: 'dashed' },\n        { label: '点线', val: 'dotted' }\n      ]\n    },\n    // 分割线样式（基础）\n    {\n      label: '显示分割线',\n      key: 'xAxisSplitLineShow',\n      path: 'xAxis.splitLine.show',\n      schemaType: 'select',\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '分割线颜色',\n      key: 'xAxisSplitLineLineStyleColor',\n      path: 'xAxis.splitLine.lineStyle.color',\n      schemaType: 'color'\n    },\n    {\n      label: '分割线宽度',\n      key: 'xAxisSplitLineLineStyleWidth',\n      path: 'xAxis.splitLine.lineStyle.width',\n      schemaType: 'number',\n      min: 0,\n      step: 0.5\n    },\n    {\n      label: '分割线类型',\n      key: 'xAxisSplitLineLineStyleType',\n      path: 'xAxis.splitLine.lineStyle.type',\n      schemaType: 'select',\n      options: [\n        { label: '实线', val: 'solid' },\n        { label: '虚线', val: 'dashed' },\n        { label: '点线', val: 'dotted' }\n      ]\n    }\n  ]\n};\n\n","import { EditorChartField } from '../../../interfaces';\nimport { ENABLE_OPTIONS, FONT_WEIGHT_OPTIONS } from '../../select-options.const';\nexport const CHART_Y_AXIS: EditorChartField = {\n  label: 'Y轴设置',\n  key: 'yAxis',\n  schemaType: 'group',\n  children: [\n    {\n      label: '轴类型',\n      key: 'yAxisType',\n      path: 'yAxis.type',\n      schemaType: 'select',\n      options: [\n        { label: '数值轴', val: 'value' },\n        { label: '类目轴', val: 'category' },\n        { label: '时间轴', val: 'time' },\n        { label: '对数轴', val: 'log' }\n      ]\n    },\n    {\n      label: '显示Y轴',\n      key: 'yAxisShow',\n      path: 'yAxis.show',\n      schemaType: 'select',\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '反向坐标轴',\n      key: 'yAxisInverse',\n      path: 'yAxis.inverse',\n      schemaType: 'select',\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '轴名称',\n      key: 'yAxisName',\n      path: 'yAxis.name',\n      schemaType: 'text'\n    },\n    {\n      label: '轴名称位置',\n      key: 'yAxisNameLocation',\n      path: 'yAxis.nameLocation',\n      schemaType: 'select',\n      options: [\n        { label: '开始', val: 'start' },\n        { label: '中间', val: 'middle' },\n        { label: '居中', val: 'center' },\n        { label: '结束', val: 'end' }\n      ]\n    },\n    {\n      label: '轴名称间距',\n      key: 'yAxisNameGap',\n      path: 'yAxis.nameGap',\n      schemaType: 'number',\n      min: 0,\n      step: 1\n    },\n    {\n      label: '最小值',\n      key: 'yAxisMin',\n      path: 'yAxis.min',\n      schemaType: 'text'\n    },\n    {\n      label: '最大值',\n      key: 'yAxisMax',\n      path: 'yAxis.max',\n      schemaType: 'text'\n    },\n    // 轴名称文字样式（基础）\n    {\n      label: '轴名称文字颜色',\n      key: 'yAxisNameTextStyleColor',\n      path: 'yAxis.nameTextStyle.color',\n      schemaType: 'color'\n    },\n    {\n      label: '轴名称文字大小',\n      key: 'yAxisNameTextStyleFontSize',\n      path: 'yAxis.nameTextStyle.fontSize',\n      schemaType: 'number',\n      min: 8,\n      max: 100,\n      step: 1\n    },\n    {\n      label: '轴名称文字粗细',\n      key: 'yAxisNameTextStyleFontWeight',\n      path: 'yAxis.nameTextStyle.fontWeight',\n      schemaType: 'select',\n      options: FONT_WEIGHT_OPTIONS\n    },\n    // 轴标签样式（常用）\n    {\n      label: '显示轴标签',\n      key: 'yAxisAxisLabelShow',\n      path: 'yAxis.axisLabel.show',\n      schemaType: 'select',\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '标签旋转角度',\n      key: 'yAxisAxisLabelRotate',\n      path: 'yAxis.axisLabel.rotate',\n      schemaType: 'number',\n      min: -90,\n      max: 90,\n      step: 1\n    },\n    {\n      label: '标签内边距',\n      key: 'yAxisAxisLabelMargin',\n      path: 'yAxis.axisLabel.margin',\n      schemaType: 'number',\n      min: 0,\n      step: 1\n    },\n    {\n      label: '标签文字颜色',\n      key: 'yAxisAxisLabelColor',\n      path: 'yAxis.axisLabel.color',\n      schemaType: 'color'\n    },\n    {\n      label: '标签文字大小',\n      key: 'yAxisAxisLabelFontSize',\n      path: 'yAxis.axisLabel.fontSize',\n      schemaType: 'number',\n      min: 8,\n      max: 100,\n      step: 1\n    },\n    {\n      label: '标签文字粗细',\n      key: 'yAxisAxisLabelFontWeight',\n      path: 'yAxis.axisLabel.fontWeight',\n      schemaType: 'select',\n      options: FONT_WEIGHT_OPTIONS\n    },\n    // 轴线样式（基础）\n    {\n      label: '显示轴线',\n      key: 'yAxisAxisLineShow',\n      path: 'yAxis.axisLine.show',\n      schemaType: 'select',\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '轴线颜色',\n      key: 'yAxisAxisLineLineStyleColor',\n      path: 'yAxis.axisLine.lineStyle.color',\n      schemaType: 'color'\n    },\n    {\n      label: '轴线宽度',\n      key: 'yAxisAxisLineLineStyleWidth',\n      path: 'yAxis.axisLine.lineStyle.width',\n      schemaType: 'number',\n      min: 0,\n      step: 0.5\n    },\n    {\n      label: '轴线类型',\n      key: 'yAxisAxisLineLineStyleType',\n      path: 'yAxis.axisLine.lineStyle.type',\n      schemaType: 'select',\n      options: [\n        { label: '实线', val: 'solid' },\n        { label: '虚线', val: 'dashed' },\n        { label: '点线', val: 'dotted' }\n      ]\n    },\n    // 分割线样式（基础）\n    {\n      label: '显示分割线',\n      key: 'yAxisSplitLineShow',\n      path: 'yAxis.splitLine.show',\n      schemaType: 'select',\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '分割线颜色',\n      key: 'yAxisSplitLineLineStyleColor',\n      path: 'yAxis.splitLine.lineStyle.color',\n      schemaType: 'color'\n    },\n    {\n      label: '分割线宽度',\n      key: 'yAxisSplitLineLineStyleWidth',\n      path: 'yAxis.splitLine.lineStyle.width',\n      schemaType: 'number',\n      min: 0,\n      step: 0.5\n    },\n    {\n      label: '分割线类型',\n      key: 'yAxisSplitLineLineStyleType',\n      path: 'yAxis.splitLine.lineStyle.type',\n      schemaType: 'select',\n      options: [\n        { label: '实线', val: 'solid' },\n        { label: '虚线', val: 'dashed' },\n        { label: '点线', val: 'dotted' }\n      ]\n    }\n  ]\n};\n","// TypeScript\nimport { EditorChartField } from '../../../../interfaces';\n\nexport const CHART_BAR_SERIES: EditorChartField = {\n  label: '数据系列配置',\n  key: 'seriesGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据系列（柱状图）',\n      key: 'series',\n      path: 'series',\n      schemaType: 'array',\n      removeActive: true,\n      children: [\n        // 基础（保留常用 8-9 项）\n        { label: '类型', key: 'type', path: 'type', schemaType: 'select', disabled: true, options: [{ label: '柱状图', val: 'bar' }] },\n        { label: '系列名称', key: 'name', path: 'name', schemaType: 'text' },\n\n        // 柱体与堆叠（基础）\n        { label: '柱宽', key: 'barWidth', path: 'barWidth', schemaType: 'number', min: 0, max: 2000, step: 1 },\n        { label: '堆叠分组', key: 'stack', path: 'stack', schemaType: 'text' },\n\n        // 柱体样式（基础）\n        { label: '填充颜色', key: 'itemColor', path: 'itemStyle.color', schemaType: 'color' },\n        { label: '柱体圆角', key: 'itemBorderRadius', path: 'itemStyle.borderRadius', schemaType: 'number', min: 0, max: 2000, step: 1 },\n\n        // 数值标签（基础）\n        {\n          label: '显示数值标签',\n          key: 'labelShow',\n          path: 'label.show',\n          schemaType: 'select',\n          options: [\n            { label: '禁用', val: false },\n            { label: '启用', val: true }\n          ]\n        },\n        {\n          label: '数值标签位置',\n          key: 'labelPosition',\n          path: 'label.position',\n          schemaType: 'select',\n          options: [\n            { label: '顶部', val: 'top' },\n            { label: '内部', val: 'inside' },\n            { label: '底部', val: 'bottom' }\n          ]\n        },\n        {\n          label: '设置数据源',\n          key: 'data',\n          path: 'data',\n          schemaType: 'button'\n        }\n      ]\n    }\n  ]\n};\n","import { EditorChartField } from '../../../../interfaces';\n\nexport const CHART_LINE_SERIES: EditorChartField = {\n  label: '数据系列配置',\n  key: 'seriesGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据系列（折线图）',\n      key: 'series',\n      path: 'series',\n      schemaType: 'array',\n      removeActive: true,\n      children: [\n        { label: '设置数据源', key: 'data', path: 'data', schemaType: 'button' },\n        // 基础（保留常用 8 项）\n        { label: '类型', key: 'type', path: 'type', schemaType: 'select', disabled: true, options: [{ label: '折线图', val: 'line' }] },\n        { label: '系列名称', key: 'name', path: 'name', schemaType: 'text' },\n\n        // 折线常用配置\n        {\n          label: '平滑',\n          key: 'smooth',\n          path: 'smooth',\n          schemaType: 'select',\n          options: [\n            { label: '关闭', val: false },\n            { label: '开启', val: true }\n          ]\n        },\n        {\n          label: '连接空值',\n          key: 'connectNulls',\n          path: 'connectNulls',\n          schemaType: 'select',\n          options: [\n            { label: '禁用', val: false },\n            { label: '启用', val: true }\n          ]\n        },\n\n        // 线条样式（基础）\n        { label: '线条颜色', key: 'lineColor', path: 'lineStyle.color', schemaType: 'color' },\n        { label: '线条宽度', key: 'lineWidth', path: 'lineStyle.width', schemaType: 'number', min: 0, max: 100, step: 1 },\n\n        // 面积开关（常用）\n        {\n          label: '开启面积填充',\n          key: 'areaEnable',\n          path: 'areaStyle.__enable__',\n          schemaType: 'select',\n          options: [\n            { label: '禁用', val: false },\n            { label: '启用', val: true }\n          ]\n        }\n      ]\n    }\n  ]\n};\n","import { EditorChartField } from '../../../../interfaces';\n\nexport const CHART_PIE_SERIES: EditorChartField = {\n  label: '数据系列配置',\n  key: 'seriesGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据系列（饼图）',\n      key: 'series',\n      path: 'series',\n      schemaType: 'array',\n      removeActive: true,\n      children: [\n        // 基础（保留常用 8-9 项）\n        { label: '类型', key: 'type', path: 'type', schemaType: 'select', disabled: true, options: [{ label: '饼图', val: 'pie' }] },\n        { label: '系列名称', key: 'name', path: 'name', schemaType: 'text' },\n\n        // 几何/布局（基础）\n        { label: '半径', key: 'radius', path: 'radius', schemaType: 'text' },\n        { label: '圆心', key: 'center', path: 'center', schemaType: 'text' },\n        {\n          label: '玫瑰图',\n          key: 'roseType',\n          path: 'roseType',\n          schemaType: 'select',\n          options: [\n            { label: '关闭', val: false },\n            { label: '半径模式', val: 'radius' },\n            { label: '面积模式', val: 'area' }\n          ]\n        },\n\n        // 样式与标签（基础）\n        { label: '填充颜色', key: 'itemColor', path: 'itemStyle.color', schemaType: 'color' },\n        {\n          label: '显示数值标签',\n          key: 'labelShow',\n          path: 'label.show',\n          schemaType: 'select',\n          options: [\n            { label: '禁用', val: false },\n            { label: '启用', val: true }\n          ]\n        },\n        {\n          label: '数值标签位置',\n          key: 'labelPosition',\n          path: 'label.position',\n          schemaType: 'select',\n          options: [\n            { label: '外部', val: 'outside' },\n            { label: '内部', val: 'inside' },\n            { label: '居中', val: 'center' }\n          ]\n        }\n      ]\n    }\n  ]\n};\n","import { EditorChartField } from '../../../../interfaces';\n\nexport const CHART_SCATTER_SERIES: EditorChartField = {\n  label: '数据系列配置',\n  key: 'seriesGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据系列（散点图）',\n      key: 'series',\n      path: 'series',\n      schemaType: 'array',\n      removeActive: true,\n      children: [\n        // 基础（保留常用 8-9 项）\n        { label: '类型', key: 'type', path: 'type', schemaType: 'select', disabled: true, options: [{ label: '散点图', val: 'scatter' }] },\n        { label: '系列名称', key: 'name', path: 'name', schemaType: 'text' },\n\n        // 符号（基础）\n        {\n          label: '标记形状',\n          key: 'symbol',\n          path: 'symbol',\n          schemaType: 'select',\n          options: [\n            { label: '圆形', val: 'circle' },\n            { label: '方形', val: 'rect' },\n            { label: '三角形', val: 'triangle' },\n            { label: '菱形', val: 'diamond' },\n            { label: '无', val: 'none' }\n          ]\n        },\n        { label: '标记大小', key: 'symbolSize', path: 'symbolSize', schemaType: 'number', min: 1, max: 200, step: 1 },\n\n        // 样式与标签（基础）\n        { label: '填充颜色', key: 'itemColor', path: 'itemStyle.color', schemaType: 'color' },\n        {\n          label: '显示标签',\n          key: 'labelShow',\n          path: 'label.show',\n          schemaType: 'select',\n          options: [\n            { label: '禁用', val: false },\n            { label: '启用', val: true }\n          ]\n        },\n        {\n          label: '标签位置',\n          key: 'labelPosition',\n          path: 'label.position',\n          schemaType: 'select',\n          options: [\n            { label: '顶部', val: 'top' },\n            { label: '内部', val: 'inside' },\n            { label: '中心', val: 'center' }\n          ]\n        },\n        {\n          label: '设置数据源',\n          key: 'data',\n          path: 'data',\n          schemaType: 'button'\n        }\n      ]\n    }\n  ]\n};\n","import { EditorChartField } from '../../../../interfaces';\n\nexport const CHART_BOX_PLOT_SERIES: EditorChartField = {\n  label: '数据系列配置',\n  key: 'seriesGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据系列（箱线图）',\n      key: 'series',\n      path: 'series',\n      schemaType: 'array',\n      removeActive: true,\n      children: [\n        { label: '类型', key: 'type', path: 'type', schemaType: 'select', disabled: true, options: [{ label: '箱线图', val: 'boxplot' }] },\n        { label: '系列名称', key: 'name', path: 'name', schemaType: 'text' },\n        {\n          label: '数据项名称映射',\n          key: 'encodeItemName',\n          path: 'encode.itemName',\n          schemaType: 'text',\n          description: '用于图例/提示框等展示的数据项名称维度；可填维度名或索引，支持单个或多个'\n        },\n        {\n          label: '数值维度映射',\n          key: 'encodeValue',\n          path: 'encode.value',\n          schemaType: 'text',\n          description: '用于视觉/提示框的数值维度；可填维度名或索引，支持单个或多个'\n        }\n      ]\n    }\n  ]\n};\n","import { EditorChartField } from '../../../../interfaces';\n\nexport const CHART_CANDLESTICK_SERIES: EditorChartField = {\n  label: '数据系列配置',\n  key: 'seriesGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据系列（K 线）',\n      key: 'series',\n      path: 'series',\n      schemaType: 'array',\n      removeActive: true,\n      children: [\n        { label: '类型', key: 'type', path: 'type', schemaType: 'select', disabled: true, options: [{ label: 'K 线', val: 'candlestick' }] },\n        { label: '系列名称', key: 'name', path: 'name', schemaType: 'text' },\n        {\n          label: '数据项名称映射',\n          key: 'encodeItemName',\n          path: 'encode.itemName',\n          schemaType: 'text',\n          description: '用于图例/提示框等展示的数据项名称维度；可填维度名或索引，支持单个或多个'\n        },\n        {\n          label: '数值维度映射',\n          key: 'encodeValue',\n          path: 'encode.value',\n          schemaType: 'text',\n          description: '用于视觉/提示框的数值维度；可填维度名或索引，支持单个或多个'\n        }\n      ]\n    }\n  ]\n};\n","import { EditorChartField } from '../../../../interfaces';\n\nexport const CHART_CHORD_SERIES: EditorChartField = {\n  label: '数据系列配置',\n  key: 'seriesGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据系列（弦图）',\n      key: 'series',\n      path: 'series',\n      schemaType: 'array',\n      removeActive: true,\n      children: [\n        { label: '类型', key: 'type', path: 'type', schemaType: 'select', disabled: true, options: [{ label: '弦图', val: 'chord' }] },\n        { label: '系列名称', key: 'name', path: 'name', schemaType: 'text' },\n        {\n          label: '数据项名称映射',\n          key: 'encodeItemName',\n          path: 'encode.itemName',\n          schemaType: 'text',\n          description: '用于图例/提示框等展示的数据项名称维度；可填维度名或索引，支持单个或多个'\n        },\n        {\n          label: '数值维度映射',\n          key: 'encodeValue',\n          path: 'encode.value',\n          schemaType: 'text',\n          description: '用于视觉/提示框的数值维度；可填维度名或索引，支持单个或多个'\n        }\n      ]\n    }\n  ]\n};\n","import { EditorChartField } from '../../../../interfaces';\n\nexport const CHART_EFFECT_SCATTER_SERIES: EditorChartField = {\n  label: '数据系列配置',\n  key: 'seriesGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据系列（涟漪散点）',\n      key: 'series',\n      path: 'series',\n      schemaType: 'array',\n      removeActive: true,\n      children: [\n        {\n          label: '类型',\n          key: 'type',\n          path: 'type',\n          schemaType: 'select',\n          disabled: true,\n          options: [{ label: '涟漪散点', val: 'effectScatter' }]\n        },\n        { label: '系列名称', key: 'name', path: 'name', schemaType: 'text' },\n        {\n          label: '数据项名称映射',\n          key: 'encodeItemName',\n          path: 'encode.itemName',\n          schemaType: 'text',\n          description: '用于图例/提示框等展示的数据项名称维度；可填维度名或索引，支持单个或多个'\n        },\n        {\n          label: '数值维度映射',\n          key: 'encodeValue',\n          path: 'encode.value',\n          schemaType: 'text',\n          description: '用于视觉/提示框的数值维度；可填维度名或索引，支持单个或多个'\n        },\n        { label: '设置数据源', key: 'data', path: 'data', schemaType: 'button' }\n      ]\n    }\n  ]\n};\n","import { EditorChartField } from '../../../../interfaces';\n\nexport const CHART_FUNNEL_SERIES: EditorChartField = {\n  label: '数据系列配置',\n  key: 'seriesGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据系列（漏斗图）',\n      key: 'series',\n      path: 'series',\n      schemaType: 'array',\n      removeActive: true,\n      children: [\n        { label: '类型', key: 'type', path: 'type', schemaType: 'select', disabled: true, options: [{ label: '漏斗图', val: 'funnel' }] },\n        { label: '系列名称', key: 'name', path: 'name', schemaType: 'text' },\n        {\n          label: '数据项名称映射',\n          key: 'encodeItemName',\n          path: 'encode.itemName',\n          schemaType: 'text',\n          description: '用于图例/提示框等展示的数据项名称维度；可填维度名或索引，支持单个或多个'\n        },\n        {\n          label: '数值维度映射',\n          key: 'encodeValue',\n          path: 'encode.value',\n          schemaType: 'text',\n          description: '用于视觉/提示框的数值维度；可填维度名或索引，支持单个或多个'\n        }\n      ]\n    }\n  ]\n};\n","import { EditorChartField } from '../../../../interfaces';\n\nexport const CHART_GAUGE_SERIES: EditorChartField = {\n  label: '数据系列配置',\n  key: 'seriesGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据系列（仪表盘）',\n      key: 'series',\n      path: 'series',\n      schemaType: 'array',\n      removeActive: true,\n      children: [\n        { label: '类型', key: 'type', path: 'type', schemaType: 'select', disabled: true, options: [{ label: '仪表盘', val: 'gauge' }] },\n        { label: '系列名称', key: 'name', path: 'name', schemaType: 'text' },\n        {\n          label: '数据项名称映射',\n          key: 'encodeItemName',\n          path: 'encode.itemName',\n          schemaType: 'text',\n          description: '用于图例/提示框等展示的数据项名称维度；可填维度名或索引，支持单个或多个'\n        },\n        {\n          label: '数值维度映射',\n          key: 'encodeValue',\n          path: 'encode.value',\n          schemaType: 'text',\n          description: '用于视觉/提示框的数值维度；可填维度名或索引，支持单个或多个'\n        }\n      ]\n    }\n  ]\n};\n","import { EditorChartField } from '../../../../interfaces';\n\nexport const CHART_GRAPH_SERIES: EditorChartField = {\n  label: '数据系列配置',\n  key: 'seriesGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据系列（关系图）',\n      key: 'series',\n      path: 'series',\n      schemaType: 'array',\n      removeActive: true,\n      children: [\n        { label: '类型', key: 'type', path: 'type', schemaType: 'select', disabled: true, options: [{ label: '关系图', val: 'graph' }] },\n        { label: '系列名称', key: 'name', path: 'name', schemaType: 'text' },\n        {\n          label: '数据项名称映射',\n          key: 'encodeItemName',\n          path: 'encode.itemName',\n          schemaType: 'text',\n          description: '用于图例/提示框等展示的数据项名称维度；可填维度名或索引，支持单个或多个'\n        },\n        {\n          label: '数值维度映射',\n          key: 'encodeValue',\n          path: 'encode.value',\n          schemaType: 'text',\n          description: '用于视觉/提示框的数值维度；可填维度名或索引，支持单个或多个'\n        }\n      ]\n    }\n  ]\n};\n","import { EditorChartField } from '../../../../interfaces';\n\nexport const CHART_HEATMAP_SERIES: EditorChartField = {\n  label: '数据系列配置',\n  key: 'seriesGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据系列（热力图）',\n      key: 'series',\n      path: 'series',\n      schemaType: 'array',\n      removeActive: true,\n      children: [\n        { label: '类型', key: 'type', path: 'type', schemaType: 'select', disabled: true, options: [{ label: '热力图', val: 'heatmap' }] },\n        { label: '系列名称', key: 'name', path: 'name', schemaType: 'text' },\n        {\n          label: '数据项名称映射',\n          key: 'encodeItemName',\n          path: 'encode.itemName',\n          schemaType: 'text',\n          description: '用于图例/提示框等展示的数据项名称维度；可填维度名或索引，支持单个或多个'\n        },\n        {\n          label: '数值维度映射',\n          key: 'encodeValue',\n          path: 'encode.value',\n          schemaType: 'text',\n          description: '用于视觉/提示框的数值维度；可填维度名或索引，支持单个或多个'\n        }\n      ]\n    }\n  ]\n};\n","import { EditorChartField } from '../../../../interfaces';\n\nexport const CHART_LINES_SERIES: EditorChartField = {\n  label: '数据系列配置',\n  key: 'seriesGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据系列（线段图）',\n      key: 'series',\n      path: 'series',\n      schemaType: 'array',\n      removeActive: true,\n      children: [\n        { label: '类型', key: 'type', path: 'type', schemaType: 'select', disabled: true, options: [{ label: '线段图', val: 'lines' }] },\n        { label: '系列名称', key: 'name', path: 'name', schemaType: 'text' },\n        {\n          label: '数据项名称映射',\n          key: 'encodeItemName',\n          path: 'encode.itemName',\n          schemaType: 'text',\n          description: '用于图例/提示框等展示的数据项名称维度；可填维度名或索引，支持单个或多个'\n        },\n        {\n          label: '数值维度映射',\n          key: 'encodeValue',\n          path: 'encode.value',\n          schemaType: 'text',\n          description: '用于视觉/提示框的数值维度；可填维度名或索引，支持单个或多个'\n        }\n      ]\n    }\n  ]\n};\n","import { EditorChartField } from '../../../../interfaces';\n\nexport const CHART_MAP_SERIES: EditorChartField = {\n  label: '数据系列配置',\n  key: 'seriesGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据系列（地图）',\n      key: 'series',\n      path: 'series',\n      schemaType: 'array',\n      removeActive: true,\n      children: [\n        { label: '类型', key: 'type', path: 'type', schemaType: 'select', disabled: true, options: [{ label: '地图', val: 'map' }] },\n        { label: '系列名称', key: 'name', path: 'name', schemaType: 'text' },\n        { label: '地图名称', key: 'map', path: 'map', schemaType: 'text' },\n        {\n          label: '数据项名称映射',\n          key: 'encodeItemName',\n          path: 'encode.itemName',\n          schemaType: 'text',\n          description: '用于图例/提示框等展示的数据项名称维度；可填维度名或索引，支持单个或多个'\n        },\n        {\n          label: '数值维度映射',\n          key: 'encodeValue',\n          path: 'encode.value',\n          schemaType: 'text',\n          description: '用于视觉/提示框的数值维度；可填维度名或索引，支持单个或多个'\n        }\n      ]\n    }\n  ]\n};\n","import { EditorChartField } from '../../../../interfaces';\n\nexport const CHART_PARALLEL_SERIES: EditorChartField = {\n  label: '数据系列配置',\n  key: 'seriesGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据系列（平行坐标）',\n      key: 'series',\n      path: 'series',\n      schemaType: 'array',\n      removeActive: true,\n      children: [\n        { label: '类型', key: 'type', path: 'type', schemaType: 'select', disabled: true, options: [{ label: '平行坐标', val: 'parallel' }] },\n        { label: '系列名称', key: 'name', path: 'name', schemaType: 'text' },\n        {\n          label: '数据项名称映射',\n          key: 'encodeItemName',\n          path: 'encode.itemName',\n          schemaType: 'text',\n          description: '用于图例/提示框等展示的数据项名称维度；可填维度名或索引，支持单个或多个'\n        },\n        {\n          label: '数值维度映射',\n          key: 'encodeValue',\n          path: 'encode.value',\n          schemaType: 'text',\n          description: '用于视觉/提示框的数值维度；可填维度名或索引，支持单个或多个'\n        }\n      ]\n    }\n  ]\n};\n","import { EditorChartField } from '../../../../interfaces';\n\nexport const CHART_PICTORIAL_BAR_SERIES: EditorChartField = {\n  label: '数据系列配置',\n  key: 'seriesGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据系列（象形柱图）',\n      key: 'series',\n      path: 'series',\n      schemaType: 'array',\n      removeActive: true,\n      children: [\n        {\n          label: '类型',\n          key: 'type',\n          path: 'type',\n          schemaType: 'select',\n          disabled: true,\n          options: [{ label: '象形柱图', val: 'pictorialBar' }]\n        },\n        { label: '系列名称', key: 'name', path: 'name', schemaType: 'text' },\n        {\n          label: '数据项名称映射',\n          key: 'encodeItemName',\n          path: 'encode.itemName',\n          schemaType: 'text',\n          description: '用于图例/提示框等展示的数据项名称维度；可填维度名或索引，支持单个或多个'\n        },\n        {\n          label: '数值维度映射',\n          key: 'encodeValue',\n          path: 'encode.value',\n          schemaType: 'text',\n          description: '用于视觉/提示框的数值维度；可填维度名或索引，支持单个或多个'\n        }\n      ]\n    }\n  ]\n};\n","import { EditorChartField } from '../../../../interfaces';\n\nexport const CHART_SANKEY_SERIES: EditorChartField = {\n  label: '数据系列配置',\n  key: 'seriesGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据系列（桑基图）',\n      key: 'series',\n      path: 'series',\n      schemaType: 'array',\n      removeActive: true,\n      children: [\n        { label: '类型', key: 'type', path: 'type', schemaType: 'select', disabled: true, options: [{ label: '桑基图', val: 'sankey' }] },\n        { label: '系列名称', key: 'name', path: 'name', schemaType: 'text' },\n        {\n          label: '数据项名称映射',\n          key: 'encodeItemName',\n          path: 'encode.itemName',\n          schemaType: 'text',\n          description: '用于图例/提示框等展示的数据项名称维度；可填维度名或索引，支持单个或多个'\n        },\n        {\n          label: '数值维度映射',\n          key: 'encodeValue',\n          path: 'encode.value',\n          schemaType: 'text',\n          description: '用于视觉/提示框的数值维度；可填维度名或索引，支持单个或多个'\n        },\n        { label: '设置数据源', key: 'data', path: 'data', schemaType: 'button' }\n      ]\n    }\n  ]\n};\n","import { EditorChartField } from '../../../../interfaces';\n\nexport const CHART_SUNBURST_SERIES: EditorChartField = {\n  label: '数据系列配置',\n  key: 'seriesGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据系列（旭日图）',\n      key: 'series',\n      path: 'series',\n      schemaType: 'array',\n      removeActive: true,\n      children: [\n        { label: '类型', key: 'type', path: 'type', schemaType: 'select', disabled: true, options: [{ label: '旭日图', val: 'sunburst' }] },\n        { label: '系列名称', key: 'name', path: 'name', schemaType: 'text' },\n        {\n          label: '数据项名称映射',\n          key: 'encodeItemName',\n          path: 'encode.itemName',\n          schemaType: 'text',\n          description: '用于图例/提示框等展示的数据项名称维度；可填维度名或索引，支持单个或多个'\n        },\n        {\n          label: '数值维度映射',\n          key: 'encodeValue',\n          path: 'encode.value',\n          schemaType: 'text',\n          description: '用于视觉/提示框的数值维度；可填维度名或索引，支持单个或多个'\n        },\n        { label: '设置数据源', key: 'data', path: 'data', schemaType: 'button' }\n      ]\n    }\n  ]\n};\n","import { EditorChartField } from '../../../../interfaces';\n\nexport const CHART_THEME_RIVER_SERIES: EditorChartField = {\n  label: '数据系列配置',\n  key: 'seriesGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据系列（主题河流）',\n      key: 'series',\n      path: 'series',\n      schemaType: 'array',\n      removeActive: true,\n      children: [\n        { label: '类型', key: 'type', path: 'type', schemaType: 'select', disabled: true, options: [{ label: '主题河流', val: 'themeRiver' }] },\n        { label: '系列名称', key: 'name', path: 'name', schemaType: 'text' },\n        {\n          label: '数据项名称映射',\n          key: 'encodeItemName',\n          path: 'encode.itemName',\n          schemaType: 'text',\n          description: '用于图例/提示框等展示的数据项名称维度；可填维度名或索引，支持单个或多个'\n        },\n        {\n          label: '数值维度映射',\n          key: 'encodeValue',\n          path: 'encode.value',\n          schemaType: 'text',\n          description: '用于视觉/提示框的数值维度；可填维度名或索引，支持单个或多个'\n        }\n      ]\n    }\n  ]\n};\n","import { EditorChartField } from '../../../../interfaces';\n\nexport const CHART_TREE_SERIES: EditorChartField = {\n  label: '数据系列配置',\n  key: 'seriesGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据系列（树图）',\n      key: 'series',\n      path: 'series',\n      schemaType: 'array',\n      removeActive: true,\n      children: [\n        { label: '类型', key: 'type', path: 'type', schemaType: 'select', disabled: true, options: [{ label: '树图', val: 'tree' }] },\n        { label: '系列名称', key: 'name', path: 'name', schemaType: 'text' },\n        {\n          label: '数据项名称映射',\n          key: 'encodeItemName',\n          path: 'encode.itemName',\n          schemaType: 'text',\n          description: '用于图例/提示框等展示的数据项名称维度；可填维度名或索引，支持单个或多个'\n        },\n        {\n          label: '数值维度映射',\n          key: 'encodeValue',\n          path: 'encode.value',\n          schemaType: 'text',\n          description: '用于视觉/提示框的数值维度；可填维度名或索引，支持单个或多个'\n        }\n      ]\n    }\n  ]\n};\n","import { EditorChartField } from '../../../../interfaces';\n\nexport const CHART_TREEMAP_SERIES: EditorChartField = {\n  label: '数据系列配置',\n  key: 'seriesGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据系列（矩形树图）',\n      key: 'series',\n      path: 'series',\n      schemaType: 'array',\n      removeActive: true,\n      children: [\n        { label: '类型', key: 'type', path: 'type', schemaType: 'select', disabled: true, options: [{ label: '矩形树图', val: 'treemap' }] },\n        { label: '系列名称', key: 'name', path: 'name', schemaType: 'text' },\n        {\n          label: '数据项名称映射',\n          key: 'encodeItemName',\n          path: 'encode.itemName',\n          schemaType: 'text',\n          description: '用于图例/提示框等展示的数据项名称维度；可填维度名或索引，支持单个或多个'\n        },\n        {\n          label: '数值维度映射',\n          key: 'encodeValue',\n          path: 'encode.value',\n          schemaType: 'text',\n          description: '用于视觉/提示框的数值维度；可填维度名或索引，支持单个或多个'\n        }\n      ]\n    }\n  ]\n};\n","import { EditorChartField } from '../../../../interfaces';\n\nexport const CHART_RADAR_SERIES: EditorChartField = {\n  label: '数据系列配置',\n  key: 'seriesGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据系列（雷达图）',\n      key: 'series',\n      path: 'series',\n      schemaType: 'array',\n      removeActive: true,\n      children: [\n        { label: '类型', key: 'type', path: 'type', schemaType: 'select', disabled: true, options: [{ label: '雷达图', val: 'radar' }] },\n        { label: '系列名称', key: 'name', path: 'name', schemaType: 'text' },\n        {\n          label: '数据项名称映射',\n          key: 'encodeItemName',\n          path: 'encode.itemName',\n          schemaType: 'text',\n          description: '用于图例/提示框等展示的数据项名称维度；可填维度名或索引，支持单个或多个'\n        },\n        {\n          label: '数值维度映射',\n          key: 'encodeValue',\n          path: 'encode.value',\n          schemaType: 'text',\n          description: '用于视觉/提示框的数值维度；可填维度名或索引，支持单个或多个'\n        }\n      ]\n    }\n  ]\n};\n","import { EditorChartField } from '../../../interfaces';\nimport { ENABLE_OPTIONS, FONT_WEIGHT_OPTIONS } from '../../select-options.const';\n\n// 提示框设置 - 轻量化: 仅保留常用选项\nexport const CHART_TOOLTIP: EditorChartField = {\n  label: '提示框设置',\n  key: 'tooltip',\n  schemaType: 'group',\n  children: [\n    {\n      label: '显示提示框',\n      key: 'tooltipShow',\n      path: 'tooltip.show',\n      schemaType: 'select',\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '触发类型',\n      key: 'tooltipTrigger',\n      path: 'tooltip.trigger',\n      schemaType: 'select',\n      options: [\n        { label: '数据项触发', val: 'item' },\n        { label: '坐标轴触发', val: 'axis' },\n        { label: '不触发', val: 'none' }\n      ],\n      description: '触发类型，只在坐标系中有效'\n    },\n    {\n      label: '内容格式化器',\n      key: 'tooltipFormatter',\n      path: 'tooltip.formatter',\n      schemaType: 'text',\n      description: '提示框浮层内容格式器，支持字符串模板和回调函数'\n    },\n    {\n      label: '数值格式化器',\n      key: 'tooltipValueFormatter',\n      path: 'tooltip.valueFormatter',\n      schemaType: 'text',\n      description: '数值的格式化器，当 formatter 未指定时生效'\n    },\n    // 外观样式（基础）\n    {\n      label: '背景颜色',\n      key: 'tooltipBackgroundColor',\n      path: 'tooltip.backgroundColor',\n      schemaType: 'color'\n    },\n    // 文字样式（基础）\n    {\n      label: '文字颜色',\n      key: 'tooltipTextStyleColor',\n      path: 'tooltip.textStyle.color',\n      schemaType: 'color'\n    },\n    {\n      label: '文字大小',\n      key: 'tooltipTextStyleFontSize',\n      path: 'tooltip.textStyle.fontSize',\n      schemaType: 'number',\n      min: 8,\n      max: 100,\n      step: 1\n    },\n    {\n      label: '文字粗细',\n      key: 'tooltipTextStyleFontWeight',\n      path: 'tooltip.textStyle.fontWeight',\n      schemaType: 'select',\n      options: FONT_WEIGHT_OPTIONS\n    },\n    // 轴指示器（常用）\n    {\n      label: '轴指示器类型',\n      key: 'tooltipAxisPointerType',\n      path: 'tooltip.axisPointer.type',\n      schemaType: 'select',\n      options: [\n        { label: '直线指示器', val: 'line' },\n        { label: '阴影指示器', val: 'shadow' },\n        { label: '无指示器', val: 'none' },\n        { label: '十字准星', val: 'cross' }\n      ]\n    }\n  ]\n};\n","import { EditorBaseField } from '../../../interfaces';\nimport { BASE_POSITION_FIELDS, BASE_WIDTH_FIELDS } from '../base-style-fields';\n\nexport const CHART_EDITOR_BASE_FIELD: EditorBaseField = {\n  label: '基础属性',\n  key: 'base',\n  path: 'base',\n  schemaType: 'group',\n  children: [\n    ...BASE_POSITION_FIELDS,\n    ...BASE_WIDTH_FIELDS\n  ]\n}\n","import { EditorBaseField } from '../../../interfaces';\nimport { BASE_STYLE_FIELDS } from '../base-style-fields';\nimport { getDataBackgroundOptions } from '../../background-images';\nexport const CHART_EDITOR_STYLE_FIELD: EditorBaseField = {\n  label: '样式外观',\n  key: 'style',\n  path: 'style',\n  schemaType: 'group',\n  children: [\n    { label: '背景颜色', key: 'backgroundColor', schemaType: 'color', path: 'props.styles.backgroundColor' },\n    {\n      label: '背景颜色透明度',\n      key: 'backgroundColorAlpha',\n      schemaType: 'number',\n      path: 'props.styles.backgroundColorAlpha',\n      step: 0.1,\n      min: 0.1,\n      max: 1\n    },\n    {\n      label: '背景图片',\n      key: 'backgroundImage',\n      schemaType: 'select-image',\n      path: 'props.styles.backgroundImage',\n      options: getDataBackgroundOptions()\n    },\n    ...BASE_STYLE_FIELDS\n  ]\n};\n","import { EditorTableField } from '../../../interfaces';\n\nexport const TABLE_DATA_SOURCE: EditorTableField = {\n  label: '数据源配置',\n  key: 'dataSourceGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据源',\n      key: 'dataSource',\n      path: 'dataSource',\n      schemaType: 'group',\n      description: '配置表格数据源，支持多种数据格式和来源',\n      children: [\n        {\n          label: '数据源类型',\n          key: 'dataSourceType',\n          path: 'dataSourceType',\n          schemaType: 'select',\n          defaultValue: 'json',\n          options: [\n            { label: 'JSON 数据', val: 'json' },\n            { label: 'CSV 文件', val: 'csv' },\n            { label: 'Excel 文件', val: 'excel' },\n            { label: '本地数组数据', val: 'array' }\n          ],\n          description: '选择数据源的格式类型'\n        },\n\n        // 文件相关配置\n        {\n          label: '文件路径/URL',\n          key: 'filename',\n          path: 'filename',\n          schemaType: 'text',\n          visibleWhen: (values: any) => ['csv', 'json', 'excel'].includes(values.dataSourceType),\n          description: '输入数据文件的完整 URL 或相对路径',\n          defaultValue: 'https://cdn.webdatarocks.com/data/data.json'\n        },\n\n        {\n          label: '启用文件浏览器',\n          key: 'browseForFile',\n          path: 'browseForFile',\n          schemaType: 'select',\n          visibleWhen: (values: any) => ['csv', 'json', 'excel'].includes(values.dataSourceType),\n          options: [\n            { label: '禁用', val: false },\n            { label: '启用', val: true }\n          ],\n          defaultValue: false,\n          description: '是否启用文件浏览器选择本地文件'\n        },\n\n        // CSV 特有配置\n        {\n          label: 'CSV 解析配置',\n          key: 'csvConfig',\n          schemaType: 'group',\n          visibleWhen: (values: any) => values.dataSourceType === 'csv',\n          children: [\n            {\n              label: '字段分隔符',\n              key: 'fieldSeparator',\n              path: 'fieldSeparator',\n              schemaType: 'select',\n              options: [\n                { label: '逗号 (,)', val: ',' },\n                { label: '分号 (;)', val: ';' },\n                { label: '制表符 (Tab)', val: '\\t' },\n                { label: '竖线 (|)', val: '|' },\n                { label: '自定义', val: 'custom' }\n              ],\n              defaultValue: ',',\n              description: '设置 CSV 文件的字段分隔符'\n            },\n\n            {\n              label: '自定义分隔符',\n              key: 'customFieldSeparator',\n              schemaType: 'text',\n              visibleWhen: (values: any) => values.fieldSeparator === 'custom',\n              description: '输入自定义的字段分隔符',\n              defaultValue: ','\n            },\n\n            {\n              label: '记录分隔符',\n              key: 'recordsetDelimiter',\n              path: 'recordsetDelimiter',\n              schemaType: 'select',\n              options: [\n                { label: '换行符 (\\\\n)', val: '\\n' },\n                { label: '回车换行 (\\\\r\\\\n)', val: '\\r\\n' },\n                { label: '回车符 (\\\\r)', val: '\\r' },\n                { label: '自定义', val: 'custom' }\n              ],\n              defaultValue: '\\n',\n              description: '设置记录（行）之间的分隔符'\n            },\n\n            {\n              label: '自定义记录分隔符',\n              key: 'customRecordsetDelimiter',\n              schemaType: 'text',\n              visibleWhen: (values: any) => values.recordsetDelimiter === 'custom',\n              description: '输入自定义的记录分隔符',\n              defaultValue: '\\n'\n            },\n\n            {\n              label: '忽略引号内换行',\n              key: 'ignoreQuotedLineBreaks',\n              path: 'ignoreQuotedLineBreaks',\n              schemaType: 'select',\n              options: [\n                { label: '否', val: false },\n                { label: '是', val: true }\n              ],\n              defaultValue: true,\n              description: '是否忽略被引号包围的字段内的换行符'\n            }\n          ]\n        },\n\n        // 本地数组数据配置\n        {\n          label: '数组数据',\n          key: 'data',\n          path: 'data',\n          schemaType: 'code',\n          visibleWhen: (values: any) => values.dataSourceType === 'array',\n          description: '输入 JSON 格式的数组数据',\n          defaultValue: JSON.stringify([\n            { \"Country\": \"Australia\", \"Color\": \"red\", \"Price\": 1000 },\n            { \"Country\": \"Australia\", \"Color\": \"blue\", \"Price\": 2000 },\n            { \"Country\": \"United States\", \"Color\": \"red\", \"Price\": 3000 }\n          ], null, 2)\n        },\n        // 高级选项\n        {\n          label: '高级选项',\n          key: 'advancedOptions',\n          schemaType: 'group',\n          children: [\n            {\n              label: '请求头设置',\n              key: 'requestHeaders',\n              schemaType: 'code',\n              visibleWhen: (values: any) => ['csv', 'json', 'excel'].includes(values.dataSourceType),\n              description: '设置请求数据源时的 HTTP 头部信息（JSON 格式）',\n              defaultValue: JSON.stringify({\n                \"Content-Type\": \"application/json\",\n                \"Accept\": \"application/json\"\n              }, null, 2)\n            },\n\n            {\n              label: '请求方法',\n              key: 'requestMethod',\n              schemaType: 'select',\n              visibleWhen: (values: any) => ['csv', 'json', 'excel'].includes(values.dataSourceType),\n              options: [\n                { label: 'GET', val: 'GET' },\n                { label: 'POST', val: 'POST' }\n              ],\n              defaultValue: 'GET',\n              description: '设置请求数据源的 HTTP 方法'\n            },\n\n            {\n              label: '请求体数据',\n              key: 'requestBody',\n              schemaType: 'textarea',\n              visibleWhen: (values: any) => values.requestMethod === 'POST',\n              description: '设置 POST 请求的请求体数据'\n            },\n\n            {\n              label: '超时时间',\n              key: 'timeout',\n              schemaType: 'number',\n              visibleWhen: (values: any) => ['csv', 'json', 'excel'].includes(values.dataSourceType),\n              min: 1000,\n              max: 300000,\n              step: 1000,\n              suffix: 'ms',\n              defaultValue: 30000,\n              description: '设置请求超时时间（毫秒）'\n            },\n\n            {\n              label: '缓存策略',\n              key: 'cacheStrategy',\n              schemaType: 'select',\n              options: [\n                { label: '不缓存', val: 'no-cache' },\n                { label: '浏览器缓存', val: 'default' },\n                { label: '强制缓存', val: 'force-cache' },\n                { label: '仅缓存', val: 'only-if-cached' }\n              ],\n              defaultValue: 'default',\n              description: '设置数据请求的缓存策略'\n            }\n          ]\n        }\n      ]\n    }\n  ]\n};\n","import { EditorTableField } from '../../../interfaces';\nimport { ENABLE_OPTIONS } from '../../select-options.const';\n\nexport const TABLE_SLICE: EditorTableField = {\n  label: '切片',\n  key: 'slice',\n  path: 'slice',\n  schemaType: 'group',\n  children: [\n    {\n      label: '行',\n      key: 'sliceRows', // slice.rows -> sliceRows\n      path: 'slice.rows',\n      schemaType: 'array',\n      children: [\n        { label: '标题', key: 'caption', path: 'caption', schemaType: 'text' },\n        { label: '维度名称', key: 'dimensionName', path: 'dimensionName', schemaType: 'text' },\n        { label: '唯一名', key: 'uniqueName', path: 'uniqueName', schemaType: 'text' },\n        {\n          label: '排序',\n          key: 'sort',\n          path: 'sort',\n          schemaType: 'select',\n          options: [\n            { label: '升序', val: 'asc' },\n            { label: '降序', val: 'desc' },\n            { label: '不排序', val: 'unsorted' }\n          ]\n        }\n      ]\n    },\n    {\n      label: '列',\n      key: 'sliceColumns', // slice.columns -> sliceColumns\n      path: 'slice.columns',\n      schemaType: 'array',\n      children: [\n        { label: '标题', key: 'caption', path: 'caption', schemaType: 'text' },\n        { label: '维度名称', key: 'dimensionName', path: 'dimensionName', schemaType: 'text' },\n        { label: '唯一名', key: 'uniqueName', path: 'uniqueName', schemaType: 'text' },\n        {\n          label: '排序',\n          key: 'sort',\n          path: 'sort',\n          schemaType: 'select',\n          options: [\n            { label: '升序', val: 'asc' },\n            { label: '降序', val: 'desc' },\n            { label: '不排序', val: 'unsorted' }\n          ]\n        },\n        {\n          label: '筛选',\n          key: 'filter',\n          path: 'filter',\n          schemaType: 'group',\n          children: [\n            {\n              label: '成员',\n              key: 'filterMembers', // filter.members -> filterMembers\n              path: 'filter.members',\n              schemaType: 'multiSelect', // todo 这里未来在 editor 中自动识别生成,以共多选\n              description: '字符串数组，如 [\"Color.blue\", \"Color.red\"]'\n            },\n            { label: '取反', key: 'filterNegation', path: 'filter.negation', schemaType: 'select', options: ENABLE_OPTIONS },\n            { label: '度量', key: 'filterMeasure', path: 'filter.measure', schemaType: 'text' },\n            { label: '数量', key: 'filterQuantity', path: 'filter.quantity', schemaType: 'number', min: 0, step: 1 },\n            { label: '类型', key: 'filterType', path: 'filter.type', schemaType: 'text' }\n          ]\n        }\n      ]\n    },\n    {\n      label: '度量',\n      key: 'sliceMeasures', // slice.measures -> sliceMeasures\n      path: 'slice.measures',\n      schemaType: 'array',\n      children: [\n        { label: '唯一名', key: 'uniqueName', path: 'uniqueName', schemaType: 'text' },\n        { label: '启用', key: 'active', path: 'active', schemaType: 'select', options: ENABLE_OPTIONS },\n        {\n          label: '聚合方式',\n          key: 'aggregation',\n          path: 'aggregation',\n          schemaType: 'select',\n          options: [\n            { label: '求和', val: 'sum' },\n            { label: '平均值', val: 'avg' },\n            { label: '计数', val: 'count' },\n            { label: '最小值', val: 'min' },\n            { label: '最大值', val: 'max' },\n            { label: '第一个', val: 'first' },\n            { label: '最后一个', val: 'last' }\n          ]\n        },\n        { label: '标题', key: 'caption', path: 'caption', schemaType: 'text' },\n        { label: '公式', key: 'formula', path: 'formula', schemaType: 'text' },\n        { label: '格式', key: 'format', path: 'format', schemaType: 'text' },\n        { label: '总计标题', key: 'grandTotalCaption', path: 'grandTotalCaption', schemaType: 'text' }\n      ]\n    }\n  ]\n};\n","import { EditorTableField } from '../../../interfaces';\n\nexport const TABLE_OPTIONS: EditorTableField = {\n  label: '表格选项配置',\n  key: 'optionsGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '表格选项',\n      key: 'options',\n      path: 'options',\n      schemaType: 'group',\n      description: '配置透视表的显示选项和行为设置',\n      children: [\n        // grid 选项\n        {\n          label: '网格选项',\n          key: 'optionsGrid',\n          path: 'grid',\n          schemaType: 'group',\n          children: [\n            {\n              label: '显示过滤器',\n              key: 'gridShowFilter',\n              path: 'showFilter',\n              schemaType: 'select',\n              options: [\n                { label: '显示', val: true },\n                { label: '隐藏', val: false }\n              ],\n              defaultValue: true,\n              description: '是否显示字段过滤器'\n            },\n            {\n              label: '显示总计',\n              key: 'gridShowGrandTotals',\n              path: 'showGrandTotals',\n              schemaType: 'select',\n              options: [\n                { label: '显示', val: 'on' },\n                { label: '隐藏', val: 'off' },\n                { label: '仅行总计', val: 'rows' },\n                { label: '仅列总计', val: 'columns' },\n                { label: '显示（布尔）', val: true },\n                { label: '隐藏（布尔）', val: false }\n              ],\n              defaultValue: 'on',\n              description: '控制总计行和总计列的显示'\n            },\n            {\n              label: '显示表头',\n              key: 'gridShowHeaders',\n              path: 'showHeaders',\n              schemaType: 'select',\n              options: [\n                { label: '显示', val: true },\n                { label: '隐藏', val: false }\n              ],\n              defaultValue: true,\n              description: '是否显示表头'\n            },\n            {\n              label: '显示层级标题',\n              key: 'gridShowHierarchies',\n              path: 'showHierarchies',\n              schemaType: 'select',\n              options: [\n                { label: '显示', val: true },\n                { label: '隐藏', val: false }\n              ],\n              defaultValue: true,\n              description: '是否显示层级字段的标题'\n            },\n            {\n              label: '显示层级标题说明',\n              key: 'gridShowHierarchyCaptions',\n              path: 'showHierarchyCaptions',\n              schemaType: 'select',\n              options: [\n                { label: '显示', val: true },\n                { label: '隐藏', val: false }\n              ],\n              defaultValue: true,\n              description: '是否显示层级标题说明'\n            },\n            {\n              label: '显示报表过滤器区域',\n              key: 'gridShowReportFiltersArea',\n              path: 'showReportFiltersArea',\n              schemaType: 'select',\n              options: [\n                { label: '显示', val: true },\n                { label: '隐藏', val: false }\n              ],\n              defaultValue: true,\n              description: '是否显示报表过滤器区域'\n            },\n            {\n              label: '显示小计',\n              key: 'gridShowTotals',\n              path: 'showTotals',\n              schemaType: 'select',\n              options: [\n                { label: '显示', val: 'on' },\n                { label: '隐藏', val: 'off' },\n                { label: '仅行小计', val: 'rows' },\n                { label: '仅列小计', val: 'columns' },\n                { label: '显示（布尔）', val: true },\n                { label: '隐藏（布尔）', val: false }\n              ],\n              defaultValue: 'on',\n              description: '控制小计行和小计列的显示'\n            },\n            {\n              label: '表格标题',\n              key: 'gridTitle',\n              path: 'title',\n              schemaType: 'text',\n              description: '设置表格的标题'\n            },\n            {\n              label: '网格布局类型',\n              key: 'gridType',\n              path: 'type',\n              schemaType: 'select',\n              options: [\n                { label: '紧凑布局', val: 'compact' },\n                { label: '经典布局', val: 'classic' },\n                { label: '扁平布局', val: 'flat' }\n              ],\n              defaultValue: 'compact',\n              description: '选择透视表的布局类型'\n            }\n          ]\n        },\n\n        // 其他选项\n        {\n          label: '配置器选项',\n          key: 'configuratorActive',\n          path: 'configuratorActive',\n          schemaType: 'select',\n          options: [\n            { label: '启用', val: true },\n            { label: '禁用', val: false }\n          ],\n          defaultValue: false,\n          description: '是否启用配置器'\n        },\n        {\n          label: '配置器按钮',\n          key: 'configuratorButton',\n          path: 'configuratorButton',\n          schemaType: 'select',\n          options: [\n            { label: '显示', val: true },\n            { label: '隐藏', val: false }\n          ],\n          defaultValue: true,\n          description: '是否显示配置器按钮'\n        },\n        {\n          label: '日期格式',\n          key: 'datePattern',\n          path: 'datePattern',\n          schemaType: 'text',\n          defaultValue: 'dd/MM/yyyy',\n          description: '设置日期显示格式'\n        },\n        {\n          label: '日期时间格式',\n          key: 'dateTimePattern',\n          path: 'dateTimePattern',\n          schemaType: 'text',\n          defaultValue: 'dd/MM/yyyy HH:mm:ss',\n          description: '设置日期时间显示格式'\n        },\n        {\n          label: '默认层级排序名',\n          key: 'defaultHierarchySortName',\n          path: 'defaultHierarchySortName',\n          schemaType: 'text',\n          description: '设置默认的层级排序字段名'\n        },\n        {\n          label: '启用钻取',\n          key: 'drillThrough',\n          path: 'drillThrough',\n          schemaType: 'select',\n          options: [\n            { label: '启用', val: true },\n            { label: '禁用', val: false }\n          ],\n          defaultValue: true,\n          description: '是否允许双击单元格查看明细数据'\n        },\n        {\n          label: '启用编辑',\n          key: 'editing',\n          path: 'editing',\n          schemaType: 'select',\n          options: [\n            { label: '启用', val: true },\n            { label: '禁用', val: false }\n          ],\n          defaultValue: false,\n          description: '是否允许编辑单元格'\n        },\n        {\n          label: '选择空单元格',\n          key: 'selectEmptyCells',\n          path: 'selectEmptyCells',\n          schemaType: 'select',\n          options: [\n            { label: '允许', val: true },\n            { label: '不允许', val: false }\n          ],\n          defaultValue: true,\n          description: '是否允许选择空单元格'\n        },\n        {\n          label: '显示聚合函数',\n          key: 'showAggregations',\n          path: 'showAggregations',\n          schemaType: 'select',\n          options: [\n            { label: '显示', val: true },\n            { label: '隐藏', val: false }\n          ],\n          defaultValue: false,\n          description: '是否显示聚合函数名称'\n        },\n        {\n          label: '显示计算值按钮',\n          key: 'showCalculatedValuesButton',\n          path: 'showCalculatedValuesButton',\n          schemaType: 'select',\n          options: [\n            { label: '显示', val: true },\n            { label: '隐藏', val: false }\n          ],\n          defaultValue: true,\n          description: '是否显示计算值按钮'\n        },\n        {\n          label: '显示默认切片',\n          key: 'showDefaultSlice',\n          path: 'showDefaultSlice',\n          schemaType: 'select',\n          options: [\n            { label: '显示', val: true },\n            { label: '隐藏', val: false }\n          ],\n          defaultValue: true,\n          description: '是否显示默认切片'\n        },\n        {\n          label: '排序方式',\n          key: 'sorting',\n          path: 'sorting',\n          schemaType: 'select',\n          options: [\n            { label: '启用', val: 'on' },\n            { label: '禁用', val: 'off' }\n          ],\n          defaultValue: 'on',\n          description: '设置排序方式'\n        },\n        {\n          label: '显示聚合标签',\n          key: 'showAggregationLabels',\n          path: 'showAggregationLabels',\n          schemaType: 'select',\n          options: [\n            { label: '显示', val: true },\n            { label: '隐藏', val: false }\n          ],\n          defaultValue: true,\n          description: '是否显示聚合函数标签'\n        }\n      ]\n    }\n  ]\n};\n","import { EditorTableField } from '../../../interfaces';\n\nexport const TABLE_CONDITIONS: EditorTableField = {\n  label: '条件格式配置',\n  key: 'conditionsGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '条件格式',\n      key: 'conditions',\n      path: 'conditions',\n      schemaType: 'array',\n      description: '设置基于数值或公式的条件格式，自动高亮符合条件的单元格',\n      children: [\n        // ConditionalFormat 的 9 个字段\n        {\n          label: '公式',\n          key: 'formula',\n          path: 'formula',\n          schemaType: 'textarea',\n          description: '输入条件公式，如：#value > 1000 或 AND(#value > 1000, #value < 3000)'\n        },\n        {\n          label: '行号',\n          key: 'row',\n          path: 'row',\n          schemaType: 'number',\n          min: 0,\n          step: 1,\n          description: '指定行号（从0开始）'\n        },\n        {\n          label: '列号',\n          key: 'column',\n          path: 'column',\n          schemaType: 'number',\n          min: 0,\n          step: 1,\n          description: '指定列号（从0开始）'\n        },\n        {\n          label: '度量值',\n          key: 'measure',\n          path: 'measure',\n          schemaType: 'text',\n          description: '指定度量值名称'\n        },\n        {\n          label: '层级',\n          key: 'hierarchy',\n          path: 'hierarchy',\n          schemaType: 'text',\n          description: '指定层级名称'\n        },\n        {\n          label: '成员',\n          key: 'member',\n          path: 'member',\n          schemaType: 'text',\n          description: '指定成员名称'\n        },\n        {\n          label: '是否汇总行',\n          key: 'isTotal',\n          path: 'isTotal',\n          schemaType: 'select',\n          options: [\n            { label: '所有单元格', val: 0 },\n            { label: '仅汇总行', val: 1 },\n            { label: '仅非汇总行', val: -1 }\n          ],\n          defaultValue: 0,\n          description: '指定条件是否仅应用于汇总行'\n        },\n\n        // format 对象 - 简化为最常用的样式\n        {\n          label: '背景颜色',\n          key: 'formatBackgroundColor',\n          path: 'format.backgroundColor',\n          schemaType: 'color',\n          defaultValue: '#0598df',\n          description: '设置符合条件单元格的背景颜色'\n        },\n        {\n          label: '字体颜色',\n          key: 'formatColor',\n          path: 'format.color',\n          schemaType: 'color',\n          defaultValue: '#FFFFFF',\n          description: '设置符合条件单元格的字体颜色'\n        },\n\n        // formatCSS 字符串\n        {\n          label: 'CSS 样式',\n          key: 'formatCSS',\n          path: 'formatCSS',\n          schemaType: 'textarea',\n          description: '直接输入 CSS 样式字符串，如：background-color: red; color: white;'\n        }\n      ]\n    }\n  ]\n};\n","import { EditorTableField } from '../../../interfaces';\n\nexport const TABLE_FORMATS: EditorTableField = {\n  label: '数据格式配置',\n  key: 'formatsGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '数据格式',\n      key: 'formats',\n      path: 'formats',\n      schemaType: 'array',\n      description: '定义数据的显示格式，包括货币、百分比、日期等格式规则',\n      children: [\n        {\n          label: '格式名称',\n          key: 'name',\n          path: 'name',\n          schemaType: 'text',\n          description: '格式的唯一标识符，用于在度量值中引用此格式',\n          defaultValue: 'custom_format'\n        },\n\n        {\n          label: '格式类型',\n          key: 'formatType',\n          schemaType: 'select',\n          defaultValue: 'number',\n          options: [\n            { label: '数值格式', val: 'number' },\n            { label: '货币格式', val: 'currency' },\n            { label: '百分比格式', val: 'percent' },\n            { label: '日期格式', val: 'date' },\n            { label: '时间格式', val: 'time' },\n            { label: '自定义格式', val: 'custom' }\n          ],\n          description: '选择数据格式的类型'\n        },\n\n        // 数值格式配置\n        {\n          label: '数值配置',\n          key: 'numberConfig',\n          schemaType: 'group',\n          visibleWhen: (values: any) => ['number', 'currency', 'percent'].includes(values.formatType),\n          children: [\n            {\n              label: '小数位数',\n              key: 'decimalPlaces',\n              path: 'decimalPlaces',\n              schemaType: 'number',\n              min: 0,\n              max: 10,\n              step: 1,\n              defaultValue: 2,\n              description: '设置小数点后的位数'\n            },\n\n            {\n              label: '千位分隔符',\n              key: 'thousandsSeparator',\n              path: 'thousandsSeparator',\n              schemaType: 'select',\n              options: [\n                { label: '逗号 (,)', val: ',' },\n                { label: '空格 ( )', val: ' ' },\n                { label: '点号 (.)', val: '.' },\n                { label: '无', val: '' }\n              ],\n              defaultValue: ',',\n              description: '设置千位数分隔符'\n            },\n\n            {\n              label: '小数分隔符',\n              key: 'decimalSeparator',\n              path: 'decimalSeparator',\n              schemaType: 'select',\n              options: [\n                { label: '点号 (.)', val: '.' },\n                { label: '逗号 (,)', val: ',' }\n              ],\n              defaultValue: '.',\n              description: '设置小数点分隔符'\n            },\n\n            {\n              label: '负数格式',\n              key: 'negativeNumberFormat',\n              path: 'negativeNumberFormat',\n              schemaType: 'select',\n              options: [\n                { label: '-1234', val: 'minus' },\n                { label: '(1234)', val: 'parentheses' },\n                { label: '1234-', val: 'trailing_minus' },\n                { label: '[1234]', val: 'brackets' }\n              ],\n              defaultValue: 'minus',\n              description: '设置负数的显示格式'\n            },\n\n            {\n              label: '零值显示',\n              key: 'nullValue',\n              path: 'nullValue',\n              schemaType: 'text',\n              defaultValue: '0',\n              description: '设置零值或空值的显示文本'\n            }\n          ]\n        },\n\n        // 货币格式配置\n        {\n          label: '货币配置',\n          key: 'currencyConfig',\n          schemaType: 'group',\n          visibleWhen: (values: any) => values.formatType === 'currency',\n          children: [\n            {\n              label: '货币符号',\n              key: 'currencySymbol',\n              path: 'currencySymbol',\n              schemaType: 'select',\n              options: [\n                { label: '美元 ($)', val: '$' },\n                { label: '人民币 (¥)', val: '¥' },\n                { label: '欧元 (€)', val: '€' },\n                { label: '英镑 (£)', val: '£' },\n                { label: '日元 (¥)', val: '¥' },\n                { label: '韩元 (₩)', val: '₩' },\n                { label: '自定义', val: 'custom' }\n              ],\n              defaultValue: '$',\n              description: '选择货币符号'\n            },\n\n            {\n              label: '自定义货币符号',\n              key: 'customCurrencySymbol',\n              schemaType: 'text',\n              visibleWhen: (values: any) => values.currencySymbol === 'custom',\n              description: '输入自定义的货币符号',\n              defaultValue: '$'\n            },\n\n            {\n              label: '货币符号位置',\n              key: 'currencySymbolAlign',\n              path: 'currencySymbolAlign',\n              schemaType: 'select',\n              options: [\n                { label: '左侧', val: 'left' },\n                { label: '右侧', val: 'right' }\n              ],\n              defaultValue: 'left',\n              description: '设置货币符号的位置'\n            },\n\n            {\n              label: '货币符号间距',\n              key: 'currencySymbolSpace',\n              schemaType: 'select',\n              options: [\n                { label: '无间距', val: 'none' },\n                { label: '一个空格', val: 'space' },\n                { label: '不换行空格', val: 'nbsp' }\n              ],\n              defaultValue: 'none',\n              description: '设置货币符号与数值之间的间距'\n            }\n          ]\n        },\n\n        // 百分比格式配置\n        {\n          label: '百分比配置',\n          key: 'percentConfig',\n          schemaType: 'group',\n          visibleWhen: (values: any) => values.formatType === 'percent',\n          children: [\n            {\n              label: '乘数',\n              key: 'multiplier',\n              schemaType: 'number',\n              defaultValue: 100,\n              min: 1,\n              max: 1000,\n              step: 1,\n              description: '将原始值乘以此数后再显示（通常为100）'\n            },\n\n            {\n              label: '百分号位置',\n              key: 'percentSymbolAlign',\n              schemaType: 'select',\n              options: [\n                { label: '右侧', val: 'right' },\n                { label: '左侧', val: 'left' }\n              ],\n              defaultValue: 'right',\n              description: '设置百分号(%)的位置'\n            }\n          ]\n        },\n\n        // 日期时间格式配置\n        {\n          label: '日期时间配置',\n          key: 'dateTimeConfig',\n          schemaType: 'group',\n          visibleWhen: (values: any) => ['date', 'time'].includes(values.formatType),\n          children: [\n            {\n              label: '日期格式模板',\n              key: 'datePattern',\n              schemaType: 'select',\n              visibleWhen: (values: any) => values.formatType === 'date',\n              options: [\n                { label: 'YYYY-MM-DD', val: 'YYYY-MM-DD' },\n                { label: 'MM/DD/YYYY', val: 'MM/DD/YYYY' },\n                { label: 'DD/MM/YYYY', val: 'DD/MM/YYYY' },\n                { label: 'YYYY年MM月DD日', val: 'YYYY年MM月DD日' },\n                { label: 'MM月DD日', val: 'MM月DD日' },\n                { label: '自定义', val: 'custom' }\n              ],\n              defaultValue: 'YYYY-MM-DD',\n              description: '选择日期显示格式'\n            },\n\n            {\n              label: '时间格式模板',\n              key: 'timePattern',\n              schemaType: 'select',\n              visibleWhen: (values: any) => values.formatType === 'time',\n              options: [\n                { label: 'HH:mm:ss', val: 'HH:mm:ss' },\n                { label: 'HH:mm', val: 'HH:mm' },\n                { label: 'hh:mm:ss A', val: 'hh:mm:ss A' },\n                { label: 'hh:mm A', val: 'hh:mm A' },\n                { label: '自定义', val: 'custom' }\n              ],\n              defaultValue: 'HH:mm:ss',\n              description: '选择时间显示格式'\n            },\n\n            {\n              label: '自定义模板',\n              key: 'customPattern',\n              schemaType: 'text',\n              visibleWhen: (values: any) => values.datePattern === 'custom' || values.timePattern === 'custom',\n              description: '输入自定义的日期时间格式模板',\n              defaultValue: 'YYYY-MM-DD HH:mm:ss'\n            }\n          ]\n        },\n\n        // 自定义格式配置\n        {\n          label: '自定义格式',\n          key: 'customFormatConfig',\n          schemaType: 'group',\n          visibleWhen: (values: any) => values.formatType === 'custom',\n          children: [\n            {\n              label: '格式表达式',\n              key: 'format',\n              path: 'format',\n              schemaType: 'text',\n              description: '输入自定义格式表达式，如：#,##0.00',\n              defaultValue: '#,##0.00'\n            },\n\n            {\n              label: '正数格式',\n              key: 'positiveFormat',\n              schemaType: 'text',\n              description: '正数的显示格式',\n              defaultValue: '#,##0.00'\n            },\n\n            {\n              label: '负数格式',\n              key: 'negativeFormat',\n              schemaType: 'text',\n              description: '负数的显示格式',\n              defaultValue: '-#,##0.00'\n            },\n\n            {\n              label: '零值格式',\n              key: 'zeroFormat',\n              schemaType: 'text',\n              description: '零值的显示格式',\n              defaultValue: '0.00'\n            }\n          ]\n        },\n\n        // 高级选项\n        {\n          label: '高级选项',\n          key: 'advancedOptions',\n          schemaType: 'group',\n          children: [\n            {\n              label: '格式条件',\n              key: 'condition',\n              schemaType: 'text',\n              description: '设置应用此格式的条件表达式，如：#value > 1000',\n            },\n\n            {\n              label: '格式优先级',\n              key: 'priority',\n              schemaType: 'number',\n              min: 1,\n              max: 100,\n              defaultValue: 10,\n              description: '当多个格式匹配时的优先级（数值越大优先级越高）'\n            },\n\n            {\n              label: '启用格式',\n              key: 'enabled',\n              schemaType: 'select',\n              options: [\n                { label: '启用', val: true },\n                { label: '禁用', val: false }\n              ],\n              defaultValue: true,\n              description: '是否启用此格式配置'\n            }\n          ]\n        }\n      ]\n    }\n  ]\n};\n\n","import { EditorTableField } from '../../../interfaces';\n\nexport const TABLE_SIZES: EditorTableField = {\n  label: '表格尺寸配置',\n  key: 'tableSizesGroup',\n  schemaType: 'group',\n  children: [\n    {\n      label: '表格尺寸',\n      key: 'tableSizes',\n      path: 'tableSizes',\n      schemaType: 'group',\n      description: '配置透视表中行和列的自定义尺寸',\n      children: [\n        // 列宽配置\n        {\n          label: '列宽设置',\n          key: 'columns',\n          path: 'columns',\n          schemaType: 'array',\n          description: '为特定列设置自定义宽度',\n          children: [\n            {\n              label: '匹配类型',\n              key: 'matchType',\n              schemaType: 'select',\n              defaultValue: 'tuple',\n              options: [\n                { label: '元组匹配', val: 'tuple' },\n                { label: '度量值匹配', val: 'measure' },\n                { label: '层级匹配', val: 'hierarchy' },\n                { label: '索引匹配', val: 'index' }\n              ],\n              description: '选择列匹配的方式'\n            },\n\n            // 元组匹配配置\n            {\n              label: '元组配置',\n              key: 'tupleConfig',\n              schemaType: 'group',\n              visibleWhen: (values: any) => values.matchType === 'tuple',\n              children: [\n                {\n                  label: '元组值',\n                  key: 'tuple',\n                  path: 'tuple',\n                  schemaType: 'textarea',\n                  description: '输入元组数组，如：[\"Color.blue\", \"Country.USA\"]',\n                  defaultValue: JSON.stringify(['Color.blue'], null, 2)\n                },\n\n                {\n                  label: '关联度量值',\n                  key: 'measure',\n                  path: 'measure',\n                  schemaType: 'text',\n                  description: '指定关联的度量值名称（可选）',\n                  defaultValue: 'Price'\n                }\n              ]\n            },\n\n            // 度量值匹配配置\n            {\n              label: '度量值名称',\n              key: 'measureName',\n              path: 'measure',\n              schemaType: 'text',\n              visibleWhen: (values: any) => values.matchType === 'measure',\n              description: '指定度量值名称',\n              defaultValue: 'Price'\n            },\n\n            // 层级匹配配置\n            {\n              label: '层级配置',\n              key: 'hierarchyConfig',\n              schemaType: 'group',\n              visibleWhen: (values: any) => values.matchType === 'hierarchy',\n              children: [\n                {\n                  label: '层级名称',\n                  key: 'hierarchy',\n                  path: 'hierarchy',\n                  schemaType: 'text',\n                  description: '指定层级名称',\n                  defaultValue: 'Country'\n                },\n\n                {\n                  label: '成员值',\n                  key: 'member',\n                  path: 'member',\n                  schemaType: 'text',\n                  description: '指定层级成员值（可选）'\n                }\n              ]\n            },\n\n            // 索引匹配配置\n            {\n              label: '列索引',\n              key: 'columnIndex',\n              path: 'idx',\n              schemaType: 'number',\n              visibleWhen: (values: any) => values.matchType === 'index',\n              min: 0,\n              step: 1,\n              description: '指定列的索引位置（从0开始）',\n              defaultValue: 0\n            },\n\n            // 通用宽度设置\n            {\n              label: '列宽',\n              key: 'width',\n              path: 'width',\n              schemaType: 'number',\n              min: 50,\n              max: 1000,\n              step: 10,\n              suffix: 'px',\n              defaultValue: 150,\n              description: '设置列的宽度（像素）'\n            },\n\n            // 高级选项\n            {\n              label: '高级选项',\n              key: 'columnAdvanced',\n              schemaType: 'group',\n              children: [\n                {\n                  label: '最小宽度',\n                  key: 'minWidth',\n                  path: 'minWidth',\n                  schemaType: 'number',\n                  min: 30,\n                  max: 500,\n                  step: 5,\n                  suffix: 'px',\n                  description: '设置列的最小宽度'\n                },\n\n                {\n                  label: '最大宽度',\n                  key: 'maxWidth',\n                  path: 'maxWidth',\n                  schemaType: 'number',\n                  min: 100,\n                  max: 2000,\n                  step: 10,\n                  suffix: 'px',\n                  description: '设置列的最大宽度'\n                },\n\n                {\n                  label: '自动调整',\n                  key: 'autoResize',\n                  path: 'autoResize',\n                  schemaType: 'select',\n                  options: [\n                    { label: '启用', val: true },\n                    { label: '禁用', val: false }\n                  ],\n                  defaultValue: false,\n                  description: '是否根据内容自动调整宽度'\n                },\n\n                {\n                  label: '可调整大小',\n                  key: 'resizable',\n                  path: 'resizable',\n                  schemaType: 'select',\n                  options: [\n                    { label: '允许', val: true },\n                    { label: '禁止', val: false }\n                  ],\n                  defaultValue: true,\n                  description: '用户是否可以手动调整列宽'\n                }\n              ]\n            }\n          ]\n        },\n\n        // 行高配置\n        {\n          label: '行高设置',\n          key: 'rows',\n          path: 'rows',\n          schemaType: 'array',\n          description: '为特定行设置自定义高度',\n          children: [\n            {\n              label: '行匹配类型',\n              key: 'rowMatchType',\n              schemaType: 'select',\n              defaultValue: 'index',\n              options: [\n                { label: '索引匹配', val: 'index' },\n                { label: '元组匹配', val: 'tuple' },\n                { label: '层级匹配', val: 'hierarchy' },\n                { label: '范围匹配', val: 'range' }\n              ],\n              description: '选择行匹配的方式'\n            },\n\n            // 索引匹配配置\n            {\n              label: '行索引',\n              key: 'idx',\n              path: 'idx',\n              schemaType: 'number',\n              visibleWhen: (values: any) => values.rowMatchType === 'index',\n              min: 0,\n              step: 1,\n              description: '指定行的索引位置（从0开始）',\n              defaultValue: 0\n            },\n\n            // 元组匹配配置\n            {\n              label: '行元组值',\n              key: 'rowTuple',\n              path: 'tuple',\n              schemaType: 'textarea',\n              visibleWhen: (values: any) => values.rowMatchType === 'tuple',\n              description: '输入行元组数组，如：[\"Country.USA\", \"Year.2023\"]',\n              defaultValue: JSON.stringify(['Country.USA'], null, 2)\n            },\n\n            // 层级匹配配置\n            {\n              label: '行层级配置',\n              key: 'rowHierarchyConfig',\n              schemaType: 'group',\n              visibleWhen: (values: any) => values.rowMatchType === 'hierarchy',\n              children: [\n                {\n                  label: '层级名称',\n                  key: 'rowHierarchy',\n                  path: 'hierarchy',\n                  schemaType: 'text',\n                  description: '指定行层级名称',\n                  defaultValue: 'Country'\n                },\n\n                {\n                  label: '成员值',\n                  key: 'rowMember',\n                  path: 'member',\n                  schemaType: 'text',\n                  description: '指定层级成员值（可选）'\n                }\n              ]\n            },\n\n            // 范围匹配配置\n            {\n              label: '行范围配置',\n              key: 'rowRangeConfig',\n              schemaType: 'group',\n              visibleWhen: (values: any) => values.rowMatchType === 'range',\n              children: [\n                {\n                  label: '起始行',\n                  key: 'startIdx',\n                  path: 'startIdx',\n                  schemaType: 'number',\n                  min: 0,\n                  step: 1,\n                  description: '范围起始行索引',\n                  defaultValue: 0\n                },\n\n                {\n                  label: '结束行',\n                  key: 'endIdx',\n                  path: 'endIdx',\n                  schemaType: 'number',\n                  min: 0,\n                  step: 1,\n                  description: '范围结束行索引',\n                  defaultValue: 10\n                }\n              ]\n            },\n\n            // 通用行高设置\n            {\n              label: '行高',\n              key: 'height',\n              path: 'height',\n              schemaType: 'number',\n              min: 20,\n              max: 500,\n              step: 5,\n              suffix: 'px',\n              defaultValue: 35,\n              description: '设置行的高度（像素）'\n            },\n\n            // 高级选项\n            {\n              label: '行高级选项',\n              key: 'rowAdvanced',\n              schemaType: 'group',\n              children: [\n                {\n                  label: '最小行高',\n                  key: 'minHeight',\n                  path: 'minHeight',\n                  schemaType: 'number',\n                  min: 15,\n                  max: 200,\n                  step: 5,\n                  suffix: 'px',\n                  description: '设置行的最小高度'\n                },\n\n                {\n                  label: '最大行高',\n                  key: 'maxHeight',\n                  path: 'maxHeight',\n                  schemaType: 'number',\n                  min: 30,\n                  max: 1000,\n                  step: 5,\n                  suffix: 'px',\n                  description: '设置行的最大高度'\n                },\n\n                {\n                  label: '自动高度',\n                  key: 'autoHeight',\n                  path: 'autoHeight',\n                  schemaType: 'select',\n                  options: [\n                    { label: '启用', val: true },\n                    { label: '禁用', val: false }\n                  ],\n                  defaultValue: false,\n                  description: '是否根据内容自动调整行高'\n                },\n\n                {\n                  label: '可调整高度',\n                  key: 'heightResizable',\n                  path: 'resizable',\n                  schemaType: 'select',\n                  options: [\n                    { label: '允许', val: true },\n                    { label: '禁止', val: false }\n                  ],\n                  defaultValue: true,\n                  description: '用户是否可以手动调整行高'\n                }\n              ]\n            }\n          ]\n        },\n\n        // 全局尺寸设置\n        {\n          label: '全局尺寸设置',\n          key: 'globalSizes',\n          schemaType: 'group',\n          children: [\n            {\n              label: '默认列宽',\n              key: 'defaultColumnWidth',\n              schemaType: 'number',\n              min: 50,\n              max: 500,\n              step: 10,\n              suffix: 'px',\n              defaultValue: 120,\n              description: '设置所有列的默认宽度'\n            },\n\n            {\n              label: '默认行高',\n              key: 'defaultRowHeight',\n              schemaType: 'number',\n              min: 20,\n              max: 200,\n              step: 5,\n              suffix: 'px',\n              defaultValue: 28,\n              description: '设置所有行的默认高度'\n            },\n\n            {\n              label: '表头行高',\n              key: 'headerRowHeight',\n              schemaType: 'number',\n              min: 25,\n              max: 150,\n              step: 5,\n              suffix: 'px',\n              defaultValue: 35,\n              description: '设置表头行的高度'\n            },\n\n            {\n              label: '汇总行高',\n              key: 'totalRowHeight',\n              schemaType: 'number',\n              min: 25,\n              max: 150,\n              step: 5,\n              suffix: 'px',\n              defaultValue: 32,\n              description: '设置汇总行的高度'\n            },\n\n            {\n              label: '统一列宽',\n              key: 'uniformColumnWidth',\n              schemaType: 'select',\n              options: [\n                { label: '启用', val: true },\n                { label: '禁用', val: false }\n              ],\n              defaultValue: false,\n              description: '是否让所有列保持相同宽度'\n            },\n\n            {\n              label: '统一行高',\n              key: 'uniformRowHeight',\n              schemaType: 'select',\n              options: [\n                { label: '启用', val: true },\n                { label: '禁用', val: false }\n              ],\n              defaultValue: true,\n              description: '是否让所有行保持相同高度'\n            }\n          ]\n        },\n\n      ]\n    }\n  ]\n};\n","import { EditorBaseField } from '../../../interfaces';\nimport { BASE_POSITION_FIELDS, BASE_WIDTH_FIELDS } from '../base-style-fields';\n\nexport const TABLE_EDITOR_BASE_FIELD: EditorBaseField = {\n  label: '基础属性',\n  key: 'base',\n  path: 'base',\n  schemaType: 'group',\n  children: [\n    ...BASE_POSITION_FIELDS,\n    ...BASE_WIDTH_FIELDS\n  ]\n}\n","import { EditorBaseField } from '../../../interfaces';\nimport { BASE_STYLE_FIELDS } from '../base-style-fields';\nimport { getHeaderBackgroundOptions } from '../../background-images';\n\nexport const TABLE_EDITOR_STYLE_FIELD: EditorBaseField = {\n  label: '样式外观',\n  key: 'style',\n  path: 'style',\n  schemaType: 'group',\n  children: [\n    { label: '背景颜色', key: 'backgroundColor', schemaType: 'color', path: 'props.styles.backgroundColor' },\n    { label: '背景颜色透明度', key: 'backgroundColorAlpha', schemaType: 'number', path: 'props.styles.backgroundColorAlpha', step: 0.1, min: 0.1, max: 1 },\n    {\n      label: '背景图片',\n      key: 'backgroundImage',\n      schemaType: 'select-image',\n      path: 'props.styles.backgroundImage',\n      options: getHeaderBackgroundOptions()\n    },\n    ...BASE_STYLE_FIELDS\n  ]\n};\n","// 基本配置\nimport { EditorBaseField } from '../../../interfaces';\nimport { ENABLE_OPTIONS } from '../../select-options.const';\n\nexport const CONTROL_BASIC_FIELDS: EditorBaseField = {\n  label: '基本配置',\n  key: 'basicConfig',\n  path: 'basicConfig',\n  schemaType: 'group',\n  children: [\n    {\n      label: '别名',\n      key: 'alias',\n      path: 'alias',\n      schemaType: 'text',\n      defaultValue: '测试时间选择器'\n    },\n    {\n      label: '绑定字段',\n      key: 'bindField',\n      path: 'bindField',\n      schemaType: 'text',\n      defaultValue: 'testField'\n    },\n    {\n      label: '启用控件',\n      key: 'isActive',\n      path: 'isActive',\n      schemaType: 'select',\n      defaultValue: true,\n      options: ENABLE_OPTIONS\n    }\n  ]\n};\n","// 日期选择器属性配置\nimport { EditorBaseField } from '../../../interfaces';\nimport { ENABLE_OPTIONS, SIZE_OPTIONS, DATE_PICKER_SELECTION_MODE_OPTIONS } from '../../select-options.const';\n\nexport const CONTROL_DATEPICKER_FIELDS: EditorBaseField = {\n  label: '控件属性',\n  key: 'props',\n  path: 'props',\n  schemaType: 'group',\n  children: [\n    {\n      label: '选取模式',\n      key: 'selectionMode',\n      path: 'props.selectionMode',\n      schemaType: 'select',\n      defaultValue: 'range',\n      options: DATE_PICKER_SELECTION_MODE_OPTIONS\n    },\n    {\n      label: '组件大小',\n      key: 'size',\n      path: 'props.size',\n      schemaType: 'select',\n      defaultValue: 'large',\n      options: SIZE_OPTIONS\n    },\n    {\n      label: '日期格式',\n      key: 'dateFormat',\n      path: 'props.dateFormat',\n      schemaType: 'text',\n      defaultValue: 'yy-mm-dd'\n    },\n    {\n      label: '显示时间',\n      key: 'showTime',\n      path: 'props.showTime',\n      schemaType: 'select',\n      defaultValue: false,\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '显示秒',\n      key: 'showSeconds',\n      path: 'props.showSeconds',\n      schemaType: 'select',\n      defaultValue: false,\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '占位符',\n      key: 'placeholder',\n      path: 'props.placeholder',\n      schemaType: 'text',\n      defaultValue: '请选择日期'\n    },\n    {\n      label: '显示清除按钮',\n      key: 'showButtonBar',\n      path: 'props.showButtonBar',\n      schemaType: 'select',\n      defaultValue: false,\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '最小日期',\n      key: 'minDate',\n      path: 'props.minDate',\n      schemaType: 'date',\n      defaultValue: null\n    },\n    {\n      label: '最大日期',\n      key: 'maxDate',\n      path: 'props.maxDate',\n      schemaType: 'date',\n      defaultValue: null\n    }\n  ]\n};\n","import { EditorBaseField } from '../../../interfaces';\nimport { ENABLE_OPTIONS, FONT_WEIGHT_CSS_OPTIONS } from '../../select-options.const';\n\nexport const CONTROL_DATETIME_FIELDS_DISPLAY: EditorBaseField = {\n  label: '显示与顺序',\n  key: 'props',\n  path: 'props',\n  schemaType: 'group',\n  children: [\n    { label: '显示日期', key: 'showDate', path: 'props.show.date', schemaType: 'select', defaultValue: true, options: ENABLE_OPTIONS },\n    { label: '显示时间', key: 'showTime', path: 'props.show.time', schemaType: 'select', defaultValue: true, options: ENABLE_OPTIONS },\n    {\n      label: '显示星期',\n      key: 'showWeekday',\n      path: 'props.show.weekday',\n      schemaType: 'select',\n      defaultValue: false,\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '排列顺序',\n      key: 'order',\n      path: 'props.order',\n      schemaType: 'select',\n      defaultValue: 'date-time',\n      options: [\n        { label: '日期在前', val: 'date-time' },\n        { label: '时间在前', val: 'time-date' }\n      ]\n    },\n    {\n      label: '显示布局',\n      key: 'layout',\n      path: 'props.layout',\n      schemaType: 'select',\n      defaultValue: 'single',\n      options: [\n        { label: '同一行', val: 'single' },\n        { label: '分别占行', val: 'separate' },\n        { label: '日期+星期同一行, 时间下一行', val: 'date-week-same-time-next' }\n      ]\n    }\n  ]\n};\n\nexport const CONTROL_DATETIME_FIELDS_DATE: EditorBaseField = {\n  label: '日期设置',\n  key: 'props',\n  path: 'props',\n  schemaType: 'group',\n  children: [\n    // 年份\n    {\n      label: '两位年份',\n      key: 'yearTwoDigits',\n      path: 'props.year.twoDigits',\n      schemaType: 'select',\n      defaultValue: false,\n      options: ENABLE_OPTIONS\n    },\n    { label: '年份前缀', key: 'yearPrefix', path: 'props.year.prefix', schemaType: 'text', defaultValue: '' },\n    { label: '年份后缀', key: 'yearSuffix', path: 'props.year.suffix', schemaType: 'text', defaultValue: '' },\n\n    // 月份\n    {\n      label: '月份显示模式',\n      key: 'monthMode',\n      path: 'props.month.mode',\n      schemaType: 'select',\n      defaultValue: 'number',\n      options: [\n        { label: '数字', val: 'number' },\n        { label: '英文', val: 'en' },\n        { label: '中文', val: 'zh' }\n      ]\n    },\n    {\n      label: '月份补零(数字)',\n      key: 'monthPadZero',\n      path: 'props.month.padZero',\n      schemaType: 'select',\n      defaultValue: true,\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '英文月份样式',\n      key: 'monthEnglish',\n      path: 'props.month.english',\n      schemaType: 'select',\n      defaultValue: 'long',\n      options: [\n        { label: '全称', val: 'long' },\n        { label: '缩写', val: 'short' }\n      ]\n    },\n\n    // 日期\n    { label: '日期补零', key: 'dayPadZero', path: 'props.day.padZero', schemaType: 'select', defaultValue: true, options: ENABLE_OPTIONS },\n    { label: '日期后缀', key: 'daySuffix', path: 'props.day.suffix', schemaType: 'text', defaultValue: '' },\n\n    // 星期\n    {\n      label: '星期语言',\n      key: 'weekdayLang',\n      path: 'props.weekday.lang',\n      schemaType: 'select',\n      defaultValue: 'zh',\n      options: [\n        { label: '中文', val: 'zh' },\n        { label: '英文', val: 'en' },\n        { label: '数字', val: 'number' }\n      ]\n    },\n    {\n      label: '中文星期样式',\n      key: 'weekdayZhStyle',\n      path: 'props.weekday.zhStyle',\n      schemaType: 'select',\n      defaultValue: '星期',\n      options: [\n        { label: '星期', val: '星期' },\n        { label: '周', val: '周' },\n        { label: '仅数字', val: 'none' }\n      ]\n    },\n    {\n      label: '英文星期样式',\n      key: 'weekdayEnStyle',\n      path: 'props.weekday.enStyle',\n      schemaType: 'select',\n      defaultValue: 'long',\n      options: [\n        { label: '全称', val: 'long' },\n        { label: '缩写', val: 'short' },\n        { label: '首字母', val: 'narrow' }\n      ]\n    },\n    {\n      label: '星期数字样式',\n      key: 'weekdayNumberStyle',\n      path: 'props.weekday.numberStyle',\n      schemaType: 'select',\n      defaultValue: 'mon-1-7',\n      options: [\n        { label: '周一=1..周日=7', val: 'mon-1-7' },\n        { label: '周日=0..周六=6', val: 'sun-0-6' }\n      ]\n    }\n  ]\n};\n\nexport const CONTROL_DATETIME_FIELDS_TIME: EditorBaseField = {\n  label: '时间设置',\n  key: 'props',\n  path: 'props',\n  schemaType: 'group',\n  children: [\n    {\n      label: '时制',\n      key: 'hourCycle',\n      path: 'props.hourCycle',\n      schemaType: 'select',\n      defaultValue: 24,\n      options: [\n        { label: '24小时制', val: 24 },\n        { label: '12小时制', val: 12 }\n      ]\n    },\n    {\n      label: '小时补零',\n      key: 'hourPadZero',\n      path: 'props.hour.padZero',\n      schemaType: 'select',\n      defaultValue: true,\n      options: ENABLE_OPTIONS\n    },\n    { label: '显示分钟', key: 'minuteShow', path: 'props.minute.show', schemaType: 'select', defaultValue: true, options: ENABLE_OPTIONS },\n    {\n      label: '分钟补零',\n      key: 'minutePadZero',\n      path: 'props.minute.padZero',\n      schemaType: 'select',\n      defaultValue: true,\n      options: ENABLE_OPTIONS\n    },\n    { label: '显示秒', key: 'secondShow', path: 'props.second.show', schemaType: 'select', defaultValue: true, options: ENABLE_OPTIONS },\n    {\n      label: '秒补零',\n      key: 'secondPadZero',\n      path: 'props.second.padZero',\n      schemaType: 'select',\n      defaultValue: true,\n      options: ENABLE_OPTIONS\n    }\n  ]\n};\n\nexport const CONTROL_DATETIME_FIELDS_FORMAT: EditorBaseField = {\n  label: '格式化',\n  key: 'props',\n  path: 'props',\n  schemaType: 'group',\n  children: [\n    { label: '自定义模板', key: 'customFormat', path: 'props.customFormat', schemaType: 'text', defaultValue: '' },\n    { label: '日期分隔符', key: 'dateSeparator', path: 'props.dateSeparator', schemaType: 'text', defaultValue: '-' },\n    { label: '时间分隔符', key: 'timeSeparator', path: 'props.timeSeparator', schemaType: 'text', defaultValue: ':' },\n    {\n      label: '中文日期样式',\n      key: 'useChineseDate',\n      path: 'props.useChineseDate',\n      schemaType: 'select',\n      defaultValue: false,\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '中文时间样式',\n      key: 'useChineseTime',\n      path: 'props.useChineseTime',\n      schemaType: 'select',\n      defaultValue: false,\n      options: ENABLE_OPTIONS\n    }\n  ]\n};\n\nexport const CONTROL_DATETIME_FIELDS_UPDATE_TZ: EditorBaseField = {\n  label: '自动更新与时区',\n  key: 'props',\n  path: 'props',\n  schemaType: 'group',\n  children: [\n    {\n      label: '启用自动更新',\n      key: 'autoUpdateEnabled',\n      path: 'props.autoUpdate.enabled',\n      schemaType: 'select',\n      defaultValue: true,\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '更新间隔(秒)',\n      key: 'autoUpdateIntervalSeconds',\n      path: 'props.autoUpdate.intervalSeconds',\n      schemaType: 'number',\n      min: 1,\n      max: 3600,\n      step: 1,\n      defaultValue: 1\n    },\n    {\n      label: '初始化即更新',\n      key: 'updateOnLoad',\n      path: 'props.updateOnLoad',\n      schemaType: 'select',\n      defaultValue: true,\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '时区模式',\n      key: 'timezoneMode',\n      path: 'props.timezone.mode',\n      schemaType: 'select',\n      defaultValue: 'local',\n      options: [\n        { label: '本地', val: 'local' },\n        { label: 'UTC', val: 'utc' },\n        { label: '自定义偏移', val: 'offset' }\n      ]\n    },\n    {\n      label: '偏移(分钟)',\n      key: 'timezoneOffsetMinutes',\n      path: 'props.timezone.offsetMinutes',\n      schemaType: 'number',\n      min: -840,\n      max: 840,\n      step: 1,\n      defaultValue: 0\n    }\n  ]\n};\n\nexport const CONTROL_DATETIME_FIELDS_STYLES: EditorBaseField = {\n  label: '样式',\n  key: 'props',\n  path: 'props',\n  schemaType: 'group',\n  children: [\n    { label: '颜色', key: 'color', path: 'props.styles.color', schemaType: 'color' },\n    { label: '字体大小(px)', key: 'fontSize', path: 'props.styles.fontSize', schemaType: 'number' },\n    {\n      label: '字重',\n      key: 'fontWeight',\n      path: 'props.styles.fontWeight',\n      schemaType: 'select',\n      defaultValue: 'normal',\n      options: FONT_WEIGHT_CSS_OPTIONS\n    },\n    {\n      label: '字体',\n      key: 'fontFamily',\n      path: 'props.styles.fontFamily',\n      schemaType: 'select',\n      defaultValue: undefined,\n      options: [\n        { label: '默认项', val: undefined },\n        { label: 'DS-Digital', val: 'DS-Digital' },\n        { label: 'QTypeCond-Medium', val: 'QTypeCond-Medium' },\n        { label: 'TitilliumWeb-Black', val: 'TitilliumWeb-Black' }\n      ]\n    },\n    {\n      label: '对齐',\n      key: 'textAlign',\n      path: 'props.styles.textAlign',\n      schemaType: 'select',\n      defaultValue: 'left',\n      options: [\n        { label: '左对齐', val: 'left' },\n        { label: '居中', val: 'center' },\n        { label: '右对齐', val: 'right' }\n      ]\n    },\n    { label: '背景色', key: 'backgroundColor', path: 'props.styles.backgroundColor', schemaType: 'color' },\n    { label: '边框粗细(px)', key: 'borderWidth', path: 'props.styles.borderWidth', schemaType: 'number' },\n    { label: '边框颜色', key: 'borderColor', path: 'props.styles.borderColor', schemaType: 'color' },\n    {\n      label: '边框样式',\n      key: 'borderStyle',\n      path: 'props.styles.borderStyle',\n      schemaType: 'select',\n      defaultValue: 'solid',\n      options: [\n        { label: '无', val: 'none' },\n        { label: '实线', val: 'solid' },\n        { label: '虚线', val: 'dashed' },\n        { label: '点线', val: 'dotted' },\n        { label: '双线', val: 'double' }\n      ]\n    },\n    { label: '圆角', key: 'borderRadius', path: 'props.styles.borderRadius', schemaType: 'number' },\n    { label: '内边距', key: 'padding', path: 'props.styles.padding', schemaType: 'number' }\n  ]\n};\n\n// 兼容旧引用：保留聚合版本（不再在 config 中使用）\nexport const CONTROL_DATETIME_FIELDS: EditorBaseField = {\n  label: '控件属性',\n  key: 'props',\n  path: 'props',\n  schemaType: 'group',\n  children: [\n    // 显示控制 & 排列\n    { label: '显示日期', key: 'showDate', path: 'props.show.date', schemaType: 'select', defaultValue: true, options: ENABLE_OPTIONS },\n    { label: '显示时间', key: 'showTime', path: 'props.show.time', schemaType: 'select', defaultValue: true, options: ENABLE_OPTIONS },\n    {\n      label: '显示星期',\n      key: 'showWeekday',\n      path: 'props.show.weekday',\n      schemaType: 'select',\n      defaultValue: false,\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '排列顺序',\n      key: 'order',\n      path: 'props.order',\n      schemaType: 'select',\n      defaultValue: 'date-time',\n      options: [\n        { label: '日期在前', val: 'date-time' },\n        { label: '时间在前', val: 'time-date' }\n      ]\n    },\n\n    // 年份\n    {\n      label: '两位年份',\n      key: 'yearTwoDigits',\n      path: 'props.year.twoDigits',\n      schemaType: 'select',\n      defaultValue: false,\n      options: ENABLE_OPTIONS\n    },\n    { label: '年份前缀', key: 'yearPrefix', path: 'props.year.prefix', schemaType: 'text', defaultValue: '' },\n    { label: '年份后缀', key: 'yearSuffix', path: 'props.year.suffix', schemaType: 'text', defaultValue: '' },\n\n    // 月份\n    {\n      label: '月份显示模式',\n      key: 'monthMode',\n      path: 'props.month.mode',\n      schemaType: 'select',\n      defaultValue: 'number',\n      options: [\n        { label: '数字', val: 'number' },\n        { label: '英文', val: 'en' },\n        { label: '中文', val: 'zh' }\n      ]\n    },\n    {\n      label: '月份补零(数字)',\n      key: 'monthPadZero',\n      path: 'props.month.padZero',\n      schemaType: 'select',\n      defaultValue: true,\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '英文月份样式',\n      key: 'monthEnglish',\n      path: 'props.month.english',\n      schemaType: 'select',\n      defaultValue: 'long',\n      options: [\n        { label: '全称', val: 'long' },\n        { label: '缩写', val: 'short' }\n      ]\n    },\n\n    // 日期\n    { label: '日期补零', key: 'dayPadZero', path: 'props.day.padZero', schemaType: 'select', defaultValue: true, options: ENABLE_OPTIONS },\n    { label: '日期后缀', key: 'daySuffix', path: 'props.day.suffix', schemaType: 'text', defaultValue: '' },\n\n    // 星期\n    {\n      label: '显示星期',\n      key: 'weekdayShow',\n      path: 'props.weekday.show',\n      schemaType: 'select',\n      defaultValue: false,\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '星期语言',\n      key: 'weekdayLang',\n      path: 'props.weekday.lang',\n      schemaType: 'select',\n      defaultValue: 'zh',\n      options: [\n        { label: '中文', val: 'zh' },\n        { label: '英文', val: 'en' },\n        { label: '数字', val: 'number' }\n      ]\n    },\n    {\n      label: '中文星期样式',\n      key: 'weekdayZhStyle',\n      path: 'props.weekday.zhStyle',\n      schemaType: 'select',\n      defaultValue: '星期',\n      options: [\n        { label: '星期', val: '星期' },\n        { label: '周', val: '周' },\n        { label: '仅数字', val: 'none' }\n      ]\n    },\n    {\n      label: '英文星期样式',\n      key: 'weekdayEnStyle',\n      path: 'props.weekday.enStyle',\n      schemaType: 'select',\n      defaultValue: 'long',\n      options: [\n        { label: '全称', val: 'long' },\n        { label: '缩写', val: 'short' },\n        { label: '首字母', val: 'narrow' }\n      ]\n    },\n    {\n      label: '星期数字样式',\n      key: 'weekdayNumberStyle',\n      path: 'props.weekday.numberStyle',\n      schemaType: 'select',\n      defaultValue: 'mon-1-7',\n      options: [\n        { label: '周一=1..周日=7', val: 'mon-1-7' },\n        { label: '周日=0..周六=6', val: 'sun-0-6' }\n      ]\n    },\n\n    // 时间显示\n    {\n      label: '时制',\n      key: 'hourCycle',\n      path: 'props.hourCycle',\n      schemaType: 'select',\n      defaultValue: 24,\n      options: [\n        { label: '24小时制', val: 24 },\n        { label: '12小时制', val: 12 }\n      ]\n    },\n    {\n      label: '小时补零',\n      key: 'hourPadZero',\n      path: 'props.hour.padZero',\n      schemaType: 'select',\n      defaultValue: true,\n      options: ENABLE_OPTIONS\n    },\n    { label: '显示分钟', key: 'minuteShow', path: 'props.minute.show', schemaType: 'select', defaultValue: true, options: ENABLE_OPTIONS },\n    {\n      label: '分钟补零',\n      key: 'minutePadZero',\n      path: 'props.minute.padZero',\n      schemaType: 'select',\n      defaultValue: true,\n      options: ENABLE_OPTIONS\n    },\n    { label: '显示秒', key: 'secondShow', path: 'props.second.show', schemaType: 'select', defaultValue: true, options: ENABLE_OPTIONS },\n    {\n      label: '秒补零',\n      key: 'secondPadZero',\n      path: 'props.second.padZero',\n      schemaType: 'select',\n      defaultValue: true,\n      options: ENABLE_OPTIONS\n    },\n\n    // 格式化\n    { label: '自定义模板', key: 'customFormat', path: 'props.customFormat', schemaType: 'text', defaultValue: '' },\n    { label: '日期分隔符', key: 'dateSeparator', path: 'props.dateSeparator', schemaType: 'text', defaultValue: '-' },\n    { label: '时间分隔符', key: 'timeSeparator', path: 'props.timeSeparator', schemaType: 'text', defaultValue: ':' },\n    {\n      label: '中文日期样式',\n      key: 'useChineseDate',\n      path: 'props.useChineseDate',\n      schemaType: 'select',\n      defaultValue: false,\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '中文时间样式',\n      key: 'useChineseTime',\n      path: 'props.useChineseTime',\n      schemaType: 'select',\n      defaultValue: false,\n      options: ENABLE_OPTIONS\n    },\n\n    // 自动更新 & 时区\n    {\n      label: '启用自动更新',\n      key: 'autoUpdateEnabled',\n      path: 'props.autoUpdate.enabled',\n      schemaType: 'select',\n      defaultValue: true,\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '更新间隔(秒)',\n      key: 'autoUpdateIntervalSeconds',\n      path: 'props.autoUpdate.intervalSeconds',\n      schemaType: 'number',\n      min: 1,\n      max: 3600,\n      step: 1,\n      defaultValue: 1\n    },\n    {\n      label: '初始化即更新',\n      key: 'updateOnLoad',\n      path: 'props.updateOnLoad',\n      schemaType: 'select',\n      defaultValue: true,\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '时区模式',\n      key: 'timezoneMode',\n      path: 'props.timezone.mode',\n      schemaType: 'select',\n      defaultValue: 'local',\n      options: [\n        { label: '本地', val: 'local' },\n        { label: 'UTC', val: 'utc' },\n        { label: '自定义偏移', val: 'offset' }\n      ]\n    },\n    {\n      label: '偏移(分钟)',\n      key: 'timezoneOffsetMinutes',\n      path: 'props.timezone.offsetMinutes',\n      schemaType: 'number',\n      min: -840,\n      max: 840,\n      step: 1,\n      defaultValue: 0\n    },\n\n    // 样式\n    { label: '颜色', key: 'color', path: 'props.styles.color', schemaType: 'color' },\n    { label: '字体大小(px)', key: 'fontSize', path: 'props.styles.fontSize', schemaType: 'number' },\n    {\n      label: '字重',\n      key: 'fontWeight',\n      path: 'props.styles.fontWeight',\n      schemaType: 'select',\n      defaultValue: 'normal',\n      options: FONT_WEIGHT_CSS_OPTIONS\n    },\n    {\n      label: '字体',\n      key: 'fontFamily',\n      path: 'props.styles.fontFamily',\n      schemaType: 'select',\n      defaultValue: undefined,\n      options: [\n        { label: '默认项', val: undefined },\n        { label: 'DS-Digital', val: 'DS-Digital' },\n        { label: 'QTypeCond-Medium', val: 'QTypeCond-Medium' },\n        { label: 'TitilliumWeb-Black', val: 'TitilliumWeb-Black' }\n      ]\n    },\n    {\n      label: '对齐',\n      key: 'textAlign',\n      path: 'props.styles.textAlign',\n      schemaType: 'select',\n      defaultValue: 'left',\n      options: [\n        { label: '左对齐', val: 'left' },\n        { label: '居中', val: 'center' },\n        { label: '右对齐', val: 'right' }\n      ]\n    },\n    { label: '背景色', key: 'backgroundColor', path: 'props.styles.backgroundColor', schemaType: 'color' },\n    { label: '边框粗细(px)', key: 'borderWidth', path: 'props.styles.borderWidth', schemaType: 'number' },\n    { label: '边框颜色', key: 'borderColor', path: 'props.styles.borderColor', schemaType: 'color' },\n    {\n      label: '边框样式',\n      key: 'borderStyle',\n      path: 'props.styles.borderStyle',\n      schemaType: 'select',\n      defaultValue: 'solid',\n      options: [\n        { label: '无', val: 'none' },\n        { label: '实线', val: 'solid' },\n        { label: '虚线', val: 'dashed' },\n        { label: '点线', val: 'dotted' },\n        { label: '双线', val: 'double' }\n      ]\n    },\n    { label: '圆角', key: 'borderRadius', path: 'props.styles.borderRadius', schemaType: 'number' },\n    { label: '内边距', key: 'padding', path: 'props.styles.padding', schemaType: 'number' }\n  ]\n};\n","// Input 组件属性配置\nimport { EditorBaseField } from '../../../interfaces';\n\nexport const CONTROL_INPUT_FIELDS: EditorBaseField = {\n  label: '控件属性',\n  key: 'props',\n  path: 'props',\n  schemaType: 'group',\n  children: [\n    {\n      label: '占位符',\n      key: 'placeholder',\n      path: 'props.placeholder',\n      schemaType: 'text',\n      defaultValue: '请输入内容'\n    }\n  ]\n};\n","// 标签配置\nimport { EditorBaseField } from '../../../interfaces';\nimport {ENABLE_OPTIONS, FONT_WEIGHT_CSS_OPTIONS} from '../../select-options.const';\n\nexport const CONTROL_LABEL_FIELDS: EditorBaseField = {\n  label: '标签配置',\n  key: 'label',\n  path: 'label',\n  schemaType: 'group',\n  children: [\n    {\n      label: '显示标签',\n      key: 'labelEnable',\n      path: 'label.enable',\n      schemaType: 'select',\n      defaultValue: true,\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '标签文本',\n      key: 'labelText',\n      path: 'label.text',\n      schemaType: 'text',\n      defaultValue: '标签'\n    },\n    {\n      label: '标签描述',\n      key: 'labelDescription',\n      path: 'label.description',\n      schemaType: 'text',\n      defaultValue: '这是一个标签'\n    },\n    {\n      label: '标签宽度 (px)',\n      key: 'labelWidth',\n      path: 'label.styles.width',\n      schemaType: 'number',\n      min: 30,\n      max: 300,\n      step: 1,\n      defaultValue: 80\n    },\n    {\n      label: '字体大小 (px)',\n      key: 'labelFontSize',\n      path: 'label.styles.fontSize',\n      schemaType: 'number',\n      min: 10,\n      max: 48,\n      step: 1,\n      defaultValue: 14\n    },\n    {\n      label: '是否加粗',\n      key: 'labelFontWeight',\n      path: 'label.styles.fontWeight',\n      schemaType: 'select',\n      defaultValue: 'normal',\n      options: FONT_WEIGHT_CSS_OPTIONS\n    },\n    {\n      label: '行高',\n      key: 'labelLineHeight',\n      path: 'label.styles.lineHeight',\n      schemaType: 'number'\n    },\n    {\n      label: '标签颜色',\n      key: 'labelColor',\n      path: 'label.styles.color',\n      schemaType: 'color'\n    }\n  ]\n};\n","// MultiSelect 组件属性配置\nimport { EditorBaseField } from '../../../interfaces';\nimport { ENABLE_OPTIONS } from '../../select-options.const';\n\nexport const CONTROL_MULTISELECT_FIELDS: EditorBaseField = {\n  label: '控件属性',\n  key: 'props',\n  path: 'props',\n  schemaType: 'group',\n  children: [\n    {\n      label: '占位符',\n      key: 'placeholder',\n      path: 'props.placeholder',\n      schemaType: 'text',\n      defaultValue: '请选择'\n    },\n    {\n      label: '显示清除按钮',\n      key: 'showClear',\n      path: 'props.showClear',\n      schemaType: 'select',\n      defaultValue: false,\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '可过滤',\n      key: 'filter',\n      path: 'props.filter',\n      schemaType: 'select',\n      defaultValue: false,\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '过滤占位符',\n      key: 'filterPlaceholder',\n      path: 'props.filterPlaceholder',\n      schemaType: 'text',\n      defaultValue: '搜索选项'\n    },\n    {\n      label: '显示方式',\n      key: 'display',\n      path: 'props.display',\n      schemaType: 'select',\n      defaultValue: 'comma',\n      options: [\n        { label: '逗号分隔', val: 'comma' },\n        { label: '标签显示', val: 'chip' }\n      ]\n    },\n    {\n      label: '最大显示标签数',\n      key: 'maxSelectedLabels',\n      path: 'props.maxSelectedLabels',\n      schemaType: 'number',\n      min: 1,\n      max: 10,\n      step: 1,\n      defaultValue: 3\n    },\n    {\n      label: '禁用状态',\n      key: 'disabled',\n      path: 'props.disabled',\n      schemaType: 'select',\n      defaultValue: false,\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '选项标签字段',\n      key: 'optionLabel',\n      path: 'props.optionLabel',\n      schemaType: 'text',\n      defaultValue: 'label'\n    },\n    {\n      label: '选项值字段',\n      key: 'optionValue',\n      path: 'props.optionValue',\n      schemaType: 'text',\n      defaultValue: 'value'\n    },\n    {\n      label: '关闭图标',\n      key: 'showToggleAll',\n      path: 'props.showToggleAll',\n      schemaType: 'select',\n      defaultValue: true,\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '选项',\n      key: 'propsOptions',\n      path: 'props.options',\n      schemaType: 'options-editor',\n      defaultValue: []\n    }\n  ]\n};\n","import { EditorBaseField } from '../../../interfaces';\nimport { ENABLE_OPTIONS } from '../../select-options.const';\n\nexport const CONTROL_SELECT_FIELDS: EditorBaseField = {\n  label: '控件属性',\n  key: 'props',\n  path: 'props',\n  schemaType: 'group',\n  children: [\n    {\n      label: '占位符',\n      key: 'placeholder',\n      path: 'props.placeholder',\n      schemaType: 'text',\n      defaultValue: '请选择'\n    },\n    {\n      label: '显示清除按钮',\n      key: 'showClear',\n      path: 'props.showClear',\n      schemaType: 'select',\n      defaultValue: false,\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '可过滤',\n      key: 'filter',\n      path: 'props.filter',\n      schemaType: 'select',\n      defaultValue: false,\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '过滤占位符',\n      key: 'filterPlaceholder',\n      path: 'props.filterPlaceholder',\n      schemaType: 'text',\n      defaultValue: '搜索选项'\n    },\n    {\n      label: '禁用状态',\n      key: 'disabled',\n      path: 'props.disabled',\n      schemaType: 'select',\n      defaultValue: false,\n      options: ENABLE_OPTIONS\n    },\n    {\n      label: '选项标签字段',\n      key: 'optionLabel',\n      path: 'props.optionLabel',\n      schemaType: 'text',\n      defaultValue: 'label'\n    },\n    {\n      label: '选项值字段',\n      key: 'optionValue',\n      path: 'props.optionValue',\n      schemaType: 'text',\n      defaultValue: 'value'\n    },\n    {\n      label: '选项',\n      key: 'propsOptions',\n      path: 'props.options',\n      schemaType: 'options-editor',\n      defaultValue: []\n    }\n  ]\n};\n","import { EditorBaseField } from '../../../interfaces';\nimport { BASE_POSITION_FIELDS, BASE_WIDTH_FIELDS } from '../base-style-fields';\n\nexport const CONTROL_EDITOR_BASE_FIELD: EditorBaseField = {\n  label: '基础属性',\n  key: 'base',\n  path: 'base',\n  schemaType: 'group',\n  children: [\n    ...BASE_POSITION_FIELDS,\n    ...BASE_WIDTH_FIELDS\n  ]\n}\n","import { EditorBaseField } from '../../../interfaces';\nimport { BASE_STYLE_FIELDS } from '../base-style-fields';\nimport { getDataBackgroundOptions } from '../../background-images';\n\nexport const CONTROL_EDITOR_STYLE_FIELD: EditorBaseField = {\n  label: '样式外观',\n  key: 'style',\n  path: 'style',\n  schemaType: 'group',\n  children: [\n    { label: '背景颜色', key: 'backgroundColor', schemaType: 'color', path: 'props.styles.backgroundColor' },\n    { label: '背景颜色透明度', key: 'backgroundColorAlpha', schemaType: 'number', path: 'props.styles.backgroundColorAlpha', step: 0.1, min: 0.1, max: 1 },\n    {\n      label: '背景图片',\n      key: 'backgroundImage',\n      schemaType: 'select-image',\n      path: 'props.styles.backgroundImage',\n      options: getDataBackgroundOptions()\n    },\n    ...BASE_STYLE_FIELDS\n  ]\n};\n","import { EditorBaseField } from '../../../interfaces';\n\nexport const TEXT_CONTENT_FIELDS: EditorBaseField = {\n  label: '文本内容',\n  key: 'textContent',\n  path: 'textContent',\n  schemaType: 'group',\n  children: [\n    {\n      label: '文本内容',\n      key: 'content',\n      path: 'content',\n      schemaType: 'textarea'\n    }\n  ]\n};\n","import { EditorBaseField } from '../../../interfaces';\n\nimport {\n  TEXT_ALIGN_OPTIONS,\n  TEXT_DECORATIONS_OPTIONS,\n  TEXT_FONT_STYLE_OPTIONS,\n  TEXT_FONT_WEIGHT_OPTIONS,\n  TEXT_WHITE_SPACE_OPTIONS\n} from '../../select-options.const';\n\nexport const TEXT_STYLE_FIELDS: EditorBaseField = {\n  label: '基本样式',\n  key: 'basicStyle',\n  path: 'basicStyle',\n  schemaType: 'group',\n  children: [\n    {\n      label: '字体颜色',\n      key: 'color',\n      path: 'styles.color',\n      schemaType: 'color'\n    },\n    {\n      label: '字体大小',\n      key: 'fontSize',\n      path: 'styles.fontSize',\n      schemaType: 'number'\n    },\n    {\n      label: '字体粗细',\n      key: 'fontWeight',\n      path: 'styles.fontWeight',\n      schemaType: 'select',\n      options: TEXT_FONT_WEIGHT_OPTIONS\n    },\n    {\n      label: '字体样式',\n      key: 'fontStyle',\n      path: 'styles.fontStyle',\n      schemaType: 'select',\n      options: TEXT_FONT_STYLE_OPTIONS\n    },\n    // {\n    // \tlabel: '字体',\n    // \tkey: 'fontFamily',\n    // \tpath: 'styles.fontFamily',\n    // \tschemaType: 'text',\n    // },\n    {\n      label: '文本对齐',\n      key: 'textAlign',\n      path: 'styles.textAlign',\n      schemaType: 'select',\n      options: TEXT_ALIGN_OPTIONS\n    },\n    {\n      label: '行高',\n      key: 'lineHeight',\n      path: 'styles.lineHeight',\n      schemaType: 'number'\n    },\n    {\n      label: '字间距',\n      key: 'letterSpacing',\n      path: 'styles.letterSpacing',\n      schemaType: 'number'\n    },\n    {\n      label: '文字装饰',\n      key: 'textDecoration',\n      path: 'styles.textDecoration',\n      schemaType: 'select',\n      options: TEXT_DECORATIONS_OPTIONS\n    },\n    {\n      label: '文本换行',\n      key: 'whiteSpace',\n      path: 'styles.whiteSpace',\n      schemaType: 'select',\n      options: TEXT_WHITE_SPACE_OPTIONS\n    }\n  ]\n};\n","import { EditorBaseField } from '../../../interfaces';\nimport { BASE_POSITION_FIELDS, BASE_WIDTH_FIELDS } from '../base-style-fields';\n\nexport const TEXT_EDITOR_BASE_FIELD: EditorBaseField = {\n  label: '基础属性',\n  key: 'base',\n  path: 'base',\n  schemaType: 'group',\n  children: [\n    ...BASE_POSITION_FIELDS,\n    ...BASE_WIDTH_FIELDS\n  ]\n}\n","import { EditorBaseField } from '../../../interfaces';\n\nexport const TEXT_EDITOR_STYLE_FIELD: EditorBaseField = {\n  label: '样式外观',\n  key: 'style',\n  path: 'style',\n  schemaType: 'group',\n  children: [\n    { label: '背景颜色', key: 'backgroundColor', schemaType: 'color', path: 'props.styles.backgroundColor' },\n    { label: '背景颜色透明度', key: 'backgroundColorAlpha', schemaType: 'number', path: 'props.styles.backgroundColorAlpha', step: 0.1, min: 0.1, max: 1 }\n  ]\n};\n","export * from './content';\nexport * from './text-style';\nexport * from './base';\nexport * from './style';\n// todo hover?\n// todo animation?\n","import { EditorBaseField } from '../../../interfaces';\nimport { ENABLE_OPTIONS, INTERVAL_UNIT_OPTIONS } from '../../select-options.const';\nexport const REFRESH_FIELDS: EditorBaseField = {\n  label: '定时刷新设置',\n  key: 'refreshConfig',\n  path: 'refreshConfig',\n  schemaType: 'group',\n  children: [\n    {\n      label: '启用定时刷新',\n      key: 'enabled',\n      path: 'enabled',\n      schemaType: 'select',\n      options: ENABLE_OPTIONS,\n      defaultValue: false\n    },\n    {\n      label: '刷新间隔',\n      key: 'interval',\n      path: 'interval',\n      schemaType: 'number',\n      min: 1,\n      max: 9999,\n      step: 1,\n      defaultValue: 30\n    },\n    {\n      label: '时间单位',\n      key: 'intervalUnit',\n      path: 'intervalUnit',\n      schemaType: 'select',\n      defaultValue: 'minutes',\n      options: INTERVAL_UNIT_OPTIONS\n    },\n    {\n      label: '最大刷新次数',\n      key: 'maxRefreshCount',\n      path: 'maxRefreshCount',\n      schemaType: 'number',\n      min: 1,\n      max: 10000,\n      step: 1,\n      description: '达到此次数后停止自动刷新，留空则无限制'\n    }\n  ]\n};\n","import { EditorBaseField } from '../../../interfaces';\nimport { ENABLE_OPTIONS } from '../../select-options.const';\n\nexport const CONTROL_BIND_FIELDS: EditorBaseField = {\n  label: '控件绑定',\n  key: 'refreshConfig',\n  path: 'refreshConfig',\n  schemaType: 'group',\n  children: [\n    {\n      label: '绑定控件',\n      key: 'controlIds',\n      path: 'controlIds',\n      schemaType: 'multiSelect',\n      options: ENABLE_OPTIONS,\n      defaultValue: []\n    }\n  ]\n};\n","import {\n  CANVAS_EDITOR_BASE_FIELD,\n  CANVAS_EDITOR_STYLE_FIELD,\n  CHART_EDITOR_BASE_FIELD,\n  CHART_EDITOR_STYLE_FIELD,\n  CONTROL_EDITOR_BASE_FIELD,\n  CONTROL_EDITOR_STYLE_FIELD,\n  TABLE_EDITOR_BASE_FIELD,\n  TABLE_EDITOR_STYLE_FIELD,\n  TEXT_EDITOR_BASE_FIELD,\n  TEXT_EDITOR_STYLE_FIELD\n} from '../fields';\nimport { mainTypes } from '../../types';\nimport { EditorBaseField } from '../../interfaces';\n\n\nexport const EDITOR_BASE_FIELDS: Record<mainTypes, EditorBaseField[]> = {\n  canvas: [CANVAS_EDITOR_BASE_FIELD, CANVAS_EDITOR_STYLE_FIELD],\n  chart: [CHART_EDITOR_BASE_FIELD, CHART_EDITOR_STYLE_FIELD],\n  table: [TABLE_EDITOR_BASE_FIELD, TABLE_EDITOR_STYLE_FIELD],\n  text: [TEXT_EDITOR_BASE_FIELD, TEXT_EDITOR_STYLE_FIELD],\n  control: [CONTROL_EDITOR_BASE_FIELD, CONTROL_EDITOR_STYLE_FIELD]\n};\n","import { ChartTypesEnum } from '../../enums';\nimport {\n  CHART_TITLE,\n  CHART_LEGEND,\n  CHART_X_AXIS,\n  CHART_Y_AXIS,\n  CHART_GRID,\n  CHART_TOOLTIP,\n\n  // series\n  CHART_BAR_SERIES,\n  CHART_LINE_SERIES,\n  CHART_SCATTER_SERIES,\n  CHART_PIE_SERIES,\n  CHART_BOX_PLOT_SERIES,\n  CHART_CANDLESTICK_SERIES,\n  CHART_CHORD_SERIES,\n  CHART_EFFECT_SCATTER_SERIES,\n  CHART_FUNNEL_SERIES,\n  CHART_GAUGE_SERIES,\n  CHART_GRAPH_SERIES,\n  CHART_HEATMAP_SERIES,\n  CHART_LINES_SERIES,\n  CHART_MAP_SERIES,\n  CHART_PARALLEL_SERIES,\n  CHART_PICTORIAL_BAR_SERIES,\n  CHART_SANKEY_SERIES,\n  CHART_SUNBURST_SERIES,\n  CHART_THEME_RIVER_SERIES,\n  CHART_TREE_SERIES,\n  CHART_TREEMAP_SERIES,\n  CHART_RADAR_SERIES\n} from '../fields';\nimport { EditorChartField } from '../../interfaces';\n\nexport const CHART_FIELDS_MAP: Record<ChartTypesEnum, EditorChartField[]> = {\n  [ChartTypesEnum.bar]: [CHART_TITLE, CHART_BAR_SERIES, CHART_LEGEND, CHART_X_AXIS, CHART_Y_AXIS, CHART_GRID, CHART_TOOLTIP],\n  [ChartTypesEnum.line]: [CHART_TITLE, CHART_LINE_SERIES, CHART_LEGEND, CHART_X_AXIS, CHART_Y_AXIS, CHART_GRID, CHART_TOOLTIP],\n  [ChartTypesEnum.scatter]: [CHART_TITLE, CHART_SCATTER_SERIES, CHART_LEGEND, CHART_X_AXIS, CHART_Y_AXIS, CHART_GRID, CHART_TOOLTIP],\n  [ChartTypesEnum.pie]: [CHART_TITLE, CHART_PIE_SERIES, CHART_LEGEND, CHART_X_AXIS, CHART_Y_AXIS, CHART_GRID, CHART_TOOLTIP],\n  [ChartTypesEnum.boxPlot]: [CHART_TITLE, CHART_BOX_PLOT_SERIES, CHART_LEGEND, CHART_X_AXIS, CHART_Y_AXIS, CHART_GRID, CHART_TOOLTIP],\n  [ChartTypesEnum.candlestick]: [\n    CHART_TITLE,\n    CHART_CANDLESTICK_SERIES,\n    CHART_LEGEND,\n    CHART_X_AXIS,\n    CHART_Y_AXIS,\n    CHART_GRID,\n    CHART_TOOLTIP\n  ],\n  [ChartTypesEnum.radar]: [CHART_TITLE, CHART_RADAR_SERIES, CHART_LEGEND, CHART_X_AXIS, CHART_Y_AXIS, CHART_GRID, CHART_TOOLTIP],\n  [ChartTypesEnum.chord]: [CHART_TITLE, CHART_CHORD_SERIES, CHART_LEGEND, CHART_X_AXIS, CHART_Y_AXIS, CHART_GRID, CHART_TOOLTIP],\n  [ChartTypesEnum.effectScatter]: [\n    CHART_TITLE,\n    CHART_EFFECT_SCATTER_SERIES,\n    CHART_LEGEND,\n    CHART_X_AXIS,\n    CHART_Y_AXIS,\n    CHART_GRID,\n    CHART_TOOLTIP\n  ],\n  [ChartTypesEnum.funnel]: [CHART_TITLE, CHART_FUNNEL_SERIES, CHART_LEGEND, CHART_X_AXIS, CHART_Y_AXIS, CHART_GRID, CHART_TOOLTIP],\n  [ChartTypesEnum.gauge]: [CHART_TITLE, CHART_GAUGE_SERIES, CHART_LEGEND, CHART_X_AXIS, CHART_Y_AXIS, CHART_GRID, CHART_TOOLTIP],\n  [ChartTypesEnum.graph]: [CHART_TITLE, CHART_GRAPH_SERIES, CHART_LEGEND, CHART_X_AXIS, CHART_Y_AXIS, CHART_GRID, CHART_TOOLTIP],\n  [ChartTypesEnum.heatmap]: [CHART_TITLE, CHART_HEATMAP_SERIES, CHART_LEGEND, CHART_X_AXIS, CHART_Y_AXIS, CHART_GRID, CHART_TOOLTIP],\n  [ChartTypesEnum.lines]: [CHART_TITLE, CHART_LINES_SERIES, CHART_LEGEND, CHART_X_AXIS, CHART_Y_AXIS, CHART_GRID, CHART_TOOLTIP],\n  [ChartTypesEnum.map]: [CHART_TITLE, CHART_MAP_SERIES, CHART_LEGEND, CHART_X_AXIS, CHART_Y_AXIS, CHART_GRID, CHART_TOOLTIP],\n  [ChartTypesEnum.parallel]: [CHART_TITLE, CHART_PARALLEL_SERIES, CHART_LEGEND, CHART_X_AXIS, CHART_Y_AXIS, CHART_GRID, CHART_TOOLTIP],\n  [ChartTypesEnum.pictorialBar]: [\n    CHART_TITLE,\n    CHART_PICTORIAL_BAR_SERIES,\n    CHART_LEGEND,\n    CHART_X_AXIS,\n    CHART_Y_AXIS,\n    CHART_GRID,\n    CHART_TOOLTIP\n  ],\n  [ChartTypesEnum.sankey]: [CHART_TITLE, CHART_SANKEY_SERIES, CHART_LEGEND, CHART_X_AXIS, CHART_Y_AXIS, CHART_GRID, CHART_TOOLTIP],\n  [ChartTypesEnum.sunburst]: [CHART_TITLE, CHART_SUNBURST_SERIES, CHART_LEGEND, CHART_X_AXIS, CHART_Y_AXIS, CHART_GRID, CHART_TOOLTIP],\n  [ChartTypesEnum.themeRiver]: [CHART_TITLE, CHART_THEME_RIVER_SERIES, CHART_LEGEND, CHART_X_AXIS, CHART_Y_AXIS, CHART_GRID, CHART_TOOLTIP],\n  [ChartTypesEnum.tree]: [CHART_TITLE, CHART_TREE_SERIES, CHART_LEGEND, CHART_X_AXIS, CHART_Y_AXIS, CHART_GRID, CHART_TOOLTIP],\n  [ChartTypesEnum.treemap]: [CHART_TITLE, CHART_TREEMAP_SERIES, CHART_LEGEND, CHART_X_AXIS, CHART_Y_AXIS, CHART_GRID, CHART_TOOLTIP]\n};\n","import { ControlTypesEnum } from '../../enums';\nimport {\n  CONTROL_BASIC_FIELDS,\n  CONTROL_DATEPICKER_FIELDS,\n  CONTROL_INPUT_FIELDS,\n  CONTROL_LABEL_FIELDS,\n  CONTROL_MULTISELECT_FIELDS,\n  CONTROL_SELECT_FIELDS,\n  CONTROL_DATETIME_FIELDS_DISPLAY,\n  CONTROL_DATETIME_FIELDS_DATE,\n  CONTROL_DATETIME_FIELDS_TIME,\n  CONTROL_DATETIME_FIELDS_FORMAT,\n  CONTROL_DATETIME_FIELDS_UPDATE_TZ,\n  CONTROL_DATETIME_FIELDS_STYLES\n} from '../fields';\nimport { SafeAny } from '../../types';\n\nexport const CONTROL_COMPONENT_FIELDS: Partial<Record<ControlTypesEnum, SafeAny>> = {\n  [ControlTypesEnum.datePick]: [CONTROL_BASIC_FIELDS, CONTROL_LABEL_FIELDS, CONTROL_DATEPICKER_FIELDS],\n  [ControlTypesEnum.select]: [CONTROL_BASIC_FIELDS, CONTROL_LABEL_FIELDS, CONTROL_SELECT_FIELDS],\n  [ControlTypesEnum.multiSelect]: [CONTROL_BASIC_FIELDS, CONTROL_LABEL_FIELDS, CONTROL_MULTISELECT_FIELDS],\n  [ControlTypesEnum.input]: [CONTROL_BASIC_FIELDS, CONTROL_LABEL_FIELDS, CONTROL_INPUT_FIELDS],\n  [ControlTypesEnum.dateTime]: [\n    CONTROL_BASIC_FIELDS,\n    CONTROL_DATETIME_FIELDS_DISPLAY,\n    CONTROL_DATETIME_FIELDS_DATE,\n    CONTROL_DATETIME_FIELDS_TIME,\n    CONTROL_DATETIME_FIELDS_FORMAT,\n    CONTROL_DATETIME_FIELDS_UPDATE_TZ,\n    CONTROL_DATETIME_FIELDS_STYLES\n  ]\n};\n","import { EditorBaseField } from '../../interfaces';\nimport { REFRESH_FIELDS } from '../fields';\nimport { RefreshIntervalUnitEnum } from '../../enums';\n\nexport const REFRESH_CONFIG: EditorBaseField[] = [REFRESH_FIELDS];\n\nexport const DEFAULT_INTERVAL_MULTIPLIERS: Record<RefreshIntervalUnitEnum, number> = {\n  [RefreshIntervalUnitEnum.seconds]: 1000,\n  [RefreshIntervalUnitEnum.minutes]: 60 * 1000,\n  [RefreshIntervalUnitEnum.hours]: 60 * 60 * 1000,\n  [RefreshIntervalUnitEnum.days]: 24 * 60 * 60 * 1000\n};\n","import { TableTypesEnum } from '../../enums';\nimport { SafeAny } from '../../types';\nimport { TABLE_CONDITIONS, TABLE_DATA_SOURCE, TABLE_FORMATS, TABLE_OPTIONS, TABLE_SIZES, TABLE_SLICE } from '../fields';\n\nexport const TABLE_FIELDS_MAP: Partial<Record<TableTypesEnum, SafeAny>> = {\n  [TableTypesEnum.default]: [],\n  [TableTypesEnum.pivotTable]: [TABLE_SLICE, TABLE_CONDITIONS,TABLE_FORMATS,TABLE_DATA_SOURCE,TABLE_OPTIONS,TABLE_SIZES\n    //\n  ]\n};\n","import { TextTypesEnum } from '../../enums';\nimport { SafeAny } from '../../types';\nimport { TEXT_CONTENT_FIELDS, TEXT_STYLE_FIELDS } from '../fields';\n\nexport const TEXT_FIELDS_MAP: Partial<Record<TextTypesEnum, SafeAny>> = {\n  [TextTypesEnum.headTitle]: [TEXT_CONTENT_FIELDS, TEXT_STYLE_FIELDS],\n  [TextTypesEnum.text]: [TEXT_CONTENT_FIELDS, TEXT_STYLE_FIELDS]\n};\n","import { ChartTypesEnum } from '../../enums';\n\nexport const CHART_DATA_OPTIONS: Partial<{ [key in ChartTypesEnum]: object }> = {\n  [ChartTypesEnum.bar]: {\n    legend: {},\n    tooltip: { trigger: 'axis' },\n    xAxis: { type: 'category', axisTick: { show: false }, data: ['Forest', 'Steppe', 'Desert', 'Wetland'] },\n    yAxis: {},\n    series: [\n      { type: 'bar', name: '2012', data: [], itemStyle: { color: '#003366' } },\n      { type: 'bar', name: '2013', data: [], itemStyle: { color: '#006699' } },\n      { type: 'bar', name: '2014', data: [], itemStyle: { color: '#4cabce' } },\n      { type: 'bar', name: '2015', data: [], itemStyle: { color: '#e5323e' } },\n      { type: 'bar', name: '2016', data: [] }\n    ]\n  },\n  [ChartTypesEnum.line]: {\n    tooltip: { trigger: 'axis' },\n    legend: {},\n    xAxis: { type: 'category', boundaryGap: false, data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] },\n    yAxis: { type: 'value' },\n    series: [\n      { type: 'line', smooth: true, name: 'Subscriptions', data: [] },\n      { type: 'line', smooth: true, name: 'Services', data: [] },\n      { type: 'line', smooth: true, name: 'Products', data: [] }\n    ]\n  },\n  [ChartTypesEnum.radar]: {\n    title: {\n      text: 'Basic Radar Chart'\n    },\n    tooltip: { trigger: 'item' },\n    legend: {\n      data: ['Allocated Budget', 'Actual Spending']\n    },\n    radar: {\n      // shape: 'circle',\n      indicator: [\n        { name: 'Sales', min: 0, max: 6500, alignTicks: true },\n        { name: 'Administration', min: 0, max: 16000, alignTicks: true },\n        { name: 'Information Technology', min: 0, max: 30000, alignTicks: true },\n        { name: 'Customer Support', min: 0, max: 38000, alignTicks: true },\n        { name: 'Development', min: 0, max: 52000, alignTicks: true },\n        { name: 'Marketing', min: 0, max: 25000, alignTicks: true }\n      ]\n    },\n    series: [\n      {\n        name: 'Budget',\n        type: 'radar',\n        data: []\n      },\n      {\n        name: 'Spending',\n        type: 'radar',\n        data: []\n      }\n    ]\n  },\n  [ChartTypesEnum.scatter]: {\n    tooltip: { trigger: 'item' },\n    legend: {},\n    xAxis: { type: 'value', axisLabel: { formatter: '{value} cm' } },\n    yAxis: { type: 'value', axisLabel: { formatter: '{value} kg' } },\n    series: [\n      {\n        name: 'Male',\n        type: 'scatter',\n        data: []\n      },\n      {\n        name: 'Female',\n        type: 'scatter',\n        data: []\n      }\n    ]\n  },\n  [ChartTypesEnum.pie]: {\n    tooltip: { trigger: 'item' },\n    legend: {},\n    series: [\n      {\n        type: 'pie',\n        radius: '60%',\n        label: { show: true },\n        data: []\n      }\n    ]\n  },\n  [ChartTypesEnum.boxPlot]: {\n    tooltip: { trigger: 'item' },\n    xAxis: { type: 'category', boundaryGap: true, splitArea: { show: false }, data: ['A', 'B', 'C'] },\n    yAxis: { type: 'value', splitArea: { show: true } },\n    series: [{ type: 'boxplot', data: [] }]\n  },\n  [ChartTypesEnum.candlestick]: {\n    tooltip: { trigger: 'axis' },\n    xAxis: { type: 'category', data: ['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-04', '2020-01-05'] },\n    yAxis: { scale: true },\n    series: [{ type: 'candlestick', data: [] }]\n  },\n  [ChartTypesEnum.heatmap]: {\n    tooltip: {},\n    grid: { height: '50%', top: '10%' },\n    xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'] },\n    yAxis: { type: 'category', data: ['1', '2'] },\n    visualMap: { min: 0, max: 100, calculable: true, orient: 'horizontal', left: 'center', bottom: '5%' },\n    series: [{ type: 'heatmap', label: { show: false }, data: [] }]\n  },\n  [ChartTypesEnum.sunburst]: {\n    series: {\n      type: 'sunburst',\n      radius: [0, '90%'],\n      label: { rotate: 'radial' },\n      data: []\n    }\n  },\n  [ChartTypesEnum.treemap]: {\n    series: [{ type: 'treemap', leafDepth: 2, data: [] }]\n  },\n  [ChartTypesEnum.sankey]: {\n    series: [\n      {\n        type: 'sankey',\n        emphasis: { focus: 'adjacency' },\n        data: [{ name: 'A' }, { name: 'B' }, { name: 'C' }, { name: 'D' }, { name: 'E' }],\n        links: [\n          { source: 'A', target: 'B', value: 5 },\n          { source: 'A', target: 'C', value: 3 },\n          { source: 'B', target: 'D', value: 2 },\n          { source: 'C', target: 'D', value: 2 },\n          { source: 'C', target: 'E', value: 1 }\n        ]\n      }\n    ]\n  },\n  [ChartTypesEnum.chord]: {\n    series: [\n      {\n        type: 'chord',\n        data: [{ name: 'Group1' }, { name: 'Group2' }, { name: 'Group3' }, { name: 'Group4' }],\n        links: [\n          { source: 'Group1', target: 'Group2', value: 10 },\n          { source: 'Group2', target: 'Group3', value: 8 },\n          { source: 'Group3', target: 'Group1', value: 6 },\n          { source: 'Group1', target: 'Group4', value: 4 }\n        ]\n      }\n    ]\n  },\n  [ChartTypesEnum.funnel]: {\n    tooltip: { trigger: 'item' },\n    series: [\n      {\n        type: 'funnel',\n        data: [\n          { name: 'Visit', value: 100 },\n          { name: 'Click', value: 80 },\n          { name: 'Inquiry', value: 60 },\n          { name: 'Order', value: 40 },\n          { name: 'Deal', value: 20 }\n        ]\n      }\n    ]\n  },\n  [ChartTypesEnum.effectScatter]: {\n    tooltip: { trigger: 'item' },\n    xAxis: { type: 'value' },\n    yAxis: { type: 'value' },\n    series: [\n      {\n        type: 'effectScatter',\n        rippleEffect: { brushType: 'stroke', scale: 3 },\n        symbolSize: 12,\n        data: [\n          [10, 8],\n          [15, 20],\n          [20, 18],\n          [25, 30],\n          [30, 22]\n        ]\n      }\n    ]\n  },\n  [ChartTypesEnum.parallel]: {\n    parallelAxis: [\n      { dim: 0, name: 'Price' },\n      { dim: 1, name: 'Net Weight' },\n      { dim: 2, name: 'Amount' },\n      { dim: 3, name: 'Score' }\n    ],\n    series: [\n      {\n        type: 'parallel',\n        lineStyle: { width: 1 },\n        data: [\n          [12.99, 100, 80, 90],\n          [9.99, 60, 50, 70],\n          [22.5, 120, 110, 88],\n          [5.5, 40, 30, 60]\n        ]\n      }\n    ]\n  },\n  [ChartTypesEnum.themeRiver]: {\n    tooltip: { trigger: 'axis' },\n    singleAxis: { type: 'time' },\n    series: [\n      {\n        type: 'themeRiver',\n        data: [\n          ['2020-01-01', 10, 'A'],\n          ['2020-01-02', 15, 'A'],\n          ['2020-01-03', 13, 'A'],\n          ['2020-01-01', 8, 'B'],\n          ['2020-01-02', 12, 'B'],\n          ['2020-01-03', 10, 'B'],\n          ['2020-01-01', 5, 'C'],\n          ['2020-01-02', 6, 'C'],\n          ['2020-01-03', 7, 'C']\n        ]\n      }\n    ]\n  },\n  [ChartTypesEnum.tree]: {\n    series: [\n      {\n        type: 'tree',\n        orient: 'LR',\n        expandAndCollapse: true,\n        label: { position: 'left', verticalAlign: 'middle', align: 'right' },\n        leaves: { label: { position: 'right', verticalAlign: 'middle', align: 'left' } },\n        data: [\n          {\n            name: 'Root',\n            children: [\n              { name: 'Child A', children: [{ name: 'A1' }, { name: 'A2' }] },\n              { name: 'Child B', children: [{ name: 'B1' }, { name: 'B2' }] }\n            ]\n          }\n        ]\n      }\n    ]\n  },\n  [ChartTypesEnum.gauge]: {\n    series: [\n      {\n        type: 'gauge',\n        progress: { show: true },\n        detail: { valueAnimation: true, formatter: '{value}%' },\n        data: [{ value: 37, name: 'Completion' }]\n      }\n    ]\n  },\n  [ChartTypesEnum.graph]: {\n    tooltip: {},\n    series: [\n      {\n        type: 'graph',\n        layout: 'force',\n        roam: true,\n        label: { show: true },\n        data: [\n          { name: 'Node1', value: 10 },\n          { name: 'Node2', value: 20 },\n          { name: 'Node3', value: 15 },\n          { name: 'Node4', value: 12 }\n        ],\n        links: [\n          { source: 'Node1', target: 'Node2' },\n          { source: 'Node2', target: 'Node3' },\n          { source: 'Node3', target: 'Node4' },\n          { source: 'Node1', target: 'Node4' }\n        ]\n      }\n    ]\n  }\n};\n","import { ControlTypesEnum } from '../../enums';\nimport { ControlConfig } from '../../interfaces';\n\nexport const CONTROL_MOCK_DATA: Partial<{ [key in ControlTypesEnum]: ControlConfig }> = {\n  [ControlTypesEnum.datePick]: {\n    controlId: '',\n    controlType: ControlTypesEnum.datePick,\n    isActive: true,\n    alias: '时间选择器',\n    props: {\n      selectionMode: 'range',\n      dateFormat: 'yy-mm-dd',\n      placeholder: '请选择日期',\n      showButtonBar: false,\n      size: `normal`,\n      minDate: null,\n      maxDate: null\n    },\n    label: {\n      enable: true,\n      text: '时间',\n      description: '这是一个时间标签',\n      styles: {\n        width: 80\n      }\n    },\n    bindField: 'testField',\n    defaultValue: null\n  },\n  [ControlTypesEnum.select]: {\n    controlId: '',\n    controlType: ControlTypesEnum.select,\n    isActive: true,\n    alias: '下拉选择器',\n    props: {\n      placeholder: '请选择',\n      showClear: false,\n      filter: false,\n      filterPlaceholder: '搜索选项',\n      disabled: false,\n      options: [],\n      optionLabel: 'label',\n      optionValue: 'value'\n    },\n    label: {\n      enable: true,\n      text: '单选',\n      description: '这是一个单选标签',\n      styles: {\n        width: 80\n      }\n    },\n    bindField: 'testSelectField',\n    defaultValue: null\n  },\n  [ControlTypesEnum.multiSelect]: {\n    controlId: '',\n    controlType: ControlTypesEnum.multiSelect,\n    isActive: true,\n    alias: '多选下拉器',\n    props: {\n      placeholder: '请选择',\n      showClear: false,\n      filter: false,\n      filterPlaceholder: '搜索选项',\n      display: 'comma',\n      maxSelectedLabels: 3,\n      disabled: false,\n      options: [],\n      optionLabel: 'label',\n      optionValue: 'value',\n      showToggleAll: true\n    },\n    label: {\n      enable: true,\n      text: '多选',\n      description: '这是一个多选标签',\n      styles: {\n        width: 80\n      }\n    },\n    bindField: 'testMultiSelectField',\n    defaultValue: []\n  },\n  [ControlTypesEnum.input]: {\n    controlId: '',\n    controlType: ControlTypesEnum.input,\n    isActive: true,\n    alias: '输入框',\n    props: {\n      placeholder: '请输入内容'\n    },\n    label: {\n      enable: true,\n      text: '输入框',\n      description: '这是一个输入框',\n      styles: {\n        width: 80\n      }\n    },\n    bindField: 'testInput',\n    defaultValue: null\n  },\n  [ControlTypesEnum.dateTime]: {\n    controlId: '',\n    controlType: ControlTypesEnum.dateTime,\n    isActive: true,\n    alias: '时间',\n    props: {\n      year: { twoDigits: false, prefix: '', suffix: '' },\n      month: { mode: 'number', padZero: true, english: 'long' },\n      day: { padZero: true, suffix: '' },\n      weekday: { show: false, lang: 'zh', zhStyle: '星期', enStyle: 'long', numberStyle: 'mon-1-7' },\n      hourCycle: 24,\n      hour: { padZero: true },\n      minute: { show: true, padZero: true },\n      second: { show: true, padZero: true },\n      dateSeparator: '-',\n      timeSeparator: ':',\n      useChineseDate: false,\n      useChineseTime: false,\n      customFormat: undefined,\n      autoUpdate: { enabled: true, intervalSeconds: 1 },\n      updateOnLoad: true,\n      timezone: { mode: 'local', offsetMinutes: 0 },\n      show: { date: true, time: true, weekday: false },\n      order: 'date-time',\n      layout: 'single',\n      styles: {\n        color: undefined,\n        fontSize: 13,\n        fontWeight: 'normal',\n        fontFamily: undefined,\n        textAlign: 'left',\n        backgroundColor: undefined,\n        borderWidth: 0,\n        borderColor: undefined,\n        borderStyle: 'solid',\n        borderRadius: undefined,\n        padding: undefined\n      }\n    }\n  }\n};\n","import { GeoJSONFeatureCollection } from '../../interfaces';\n\nexport const ALL_CITIES = [\n  {\n    city: '北京市'\n  },\n  {\n    city: '天津市'\n  },\n  {\n    city: '上海市'\n  },\n  {\n    city: '重庆市'\n  },\n  {\n    city: '河北省'\n  },\n  {\n    city: '山西省'\n  },\n  {\n    city: '辽宁省'\n  },\n  {\n    city: '吉林省'\n  },\n  {\n    city: '黑龙江省'\n  },\n  {\n    city: '江苏省'\n  },\n  {\n    city: '浙江省'\n  },\n  {\n    city: '安徽省'\n  },\n  {\n    city: '福建省'\n  },\n  {\n    city: '江西省'\n  },\n  {\n    city: '山东省'\n  },\n  {\n    city: '河南省'\n  },\n  {\n    city: '湖北省'\n  },\n  {\n    city: '湖南省'\n  },\n  {\n    city: '广东省'\n  },\n  {\n    city: '海南省'\n  },\n  {\n    city: '四川省'\n  },\n  {\n    city: '贵州省'\n  },\n  {\n    city: '云南省'\n  },\n  {\n    city: '陕西省'\n  },\n  {\n    city: '甘肃省'\n  },\n  {\n    city: '青海省'\n  },\n  {\n    city: '台湾省'\n  },\n  {\n    city: '内蒙古自治区'\n  },\n  {\n    city: '广西壮族自治区'\n  },\n  {\n    city: '西藏自治区'\n  },\n  {\n    city: '宁夏回族自治区'\n  },\n  {\n    city: '新疆维吾尔自治区'\n  },\n  {\n    city: '香港特别行政区'\n  },\n  {\n    city: '澳门特别行政区'\n  }\n];\n\nexport const POINTS: GeoJSONFeatureCollection = {\n  type: 'FeatureCollection',\n  features: [\n    {\n      type: 'Feature',\n      id: 1,\n      bbox: [95.48226414, 39.94298939, 95.48226414, 39.94298939],\n      properties: {\n        gid: 1,\n        geometry: 'Point',\n        count: 84\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [95.48226414, 39.94298939]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 2,\n      bbox: [100.81961077, 39.77227468, 100.81961077, 39.77227468],\n      properties: {\n        gid: 2,\n        geometry: 'Point',\n        count: 61\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [100.81961077, 39.77227468]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 3,\n      bbox: [96.26062719, 36.62735797, 96.26062719, 36.62735797],\n      properties: {\n        gid: 3,\n        geometry: 'Point',\n        count: 90\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [96.26062719, 36.62735797]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 4,\n      bbox: [100.59722133, 37.69074056, 100.59722133, 37.69074056],\n      properties: {\n        gid: 4,\n        geometry: 'Point',\n        count: 58\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [100.59722133, 37.69074056]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 5,\n      bbox: [89.25535973, 37.86651338, 89.25535973, 37.86651338],\n      properties: {\n        gid: 5,\n        geometry: 'Point',\n        count: 43\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [89.25535973, 37.86651338]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 6,\n      bbox: [94.03673276, 38.21680352, 94.03673276, 38.21680352],\n      properties: {\n        gid: 6,\n        geometry: 'Point',\n        count: 41\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [94.03673276, 38.21680352]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 7,\n      bbox: [89.47774918, 41.70976321, 89.47774918, 41.70976321],\n      properties: {\n        gid: 7,\n        geometry: 'Point',\n        count: 38\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [89.47774918, 41.70976321]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 8,\n      bbox: [100.15244244, 31.84993642, 100.15244244, 31.84993642],\n      properties: {\n        gid: 8,\n        geometry: 'Point',\n        count: 43\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [100.15244244, 31.84993642]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 9,\n      bbox: [92.59120138, 32.32098643, 92.59120138, 32.32098643],\n      properties: {\n        gid: 9,\n        geometry: 'Point',\n        count: 2\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [92.59120138, 32.32098643]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 10,\n      bbox: [89.22967636, 37.87634342, 89.22967636, 37.87634342],\n      properties: {\n        gid: 10,\n        geometry: 'Point',\n        count: 11\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [89.22967636, 37.87634342]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 11,\n      bbox: [89.28868151, 37.87634342, 89.28868151, 37.87634342],\n      properties: {\n        gid: 11,\n        geometry: 'Point',\n        count: 79\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [89.28868151, 37.87634342]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 12,\n      bbox: [89.20986119, 37.86017943, 89.20986119, 37.86017943],\n      properties: {\n        gid: 12,\n        geometry: 'Point',\n        count: 54\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [89.20986119, 37.86017943]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 13,\n      bbox: [89.24817051, 37.84974916, 89.24817051, 37.84974916],\n      properties: {\n        gid: 13,\n        geometry: 'Point',\n        count: 98\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [89.24817051, 37.84974916]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 14,\n      bbox: [89.19696648, 37.87320778, 89.19696648, 37.87320778],\n      properties: {\n        gid: 14,\n        geometry: 'Point',\n        count: 72\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [89.19696648, 37.87320778]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 15,\n      bbox: [89.22801617, 37.86644616, 89.22801617, 37.86644616],\n      properties: {\n        gid: 15,\n        geometry: 'Point',\n        count: 91\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [89.22801617, 37.86644616]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 16,\n      bbox: [89.18947172, 37.84136642, 89.18947172, 37.84136642],\n      properties: {\n        gid: 16,\n        geometry: 'Point',\n        count: 32\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [89.18947172, 37.84136642]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 17,\n      bbox: [89.18162008, 37.86531917, 89.18162008, 37.86531917],\n      properties: {\n        gid: 17,\n        geometry: 'Point',\n        count: 52\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [89.18162008, 37.86531917]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 18,\n      bbox: [89.17662358, 37.88447576, 89.17662358, 37.88447576],\n      properties: {\n        gid: 18,\n        geometry: 'Point',\n        count: 2\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [89.17662358, 37.88447576]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 19,\n      bbox: [89.21017152, 37.90024804, 89.21017152, 37.90024804],\n      properties: {\n        gid: 19,\n        geometry: 'Point',\n        count: 0\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [89.21017152, 37.90024804]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 20,\n      bbox: [89.25799518, 37.9013745, 89.25799518, 37.9013745],\n      properties: {\n        gid: 20,\n        geometry: 'Point',\n        count: 27\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [89.25799518, 37.9013745]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 21,\n      bbox: [89.271914, 37.8822223, 89.271914, 37.8822223],\n      properties: {\n        gid: 21,\n        geometry: 'Point',\n        count: 14\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [89.271914, 37.8822223]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 22,\n      bbox: [89.27655361, 37.85771149, 89.27655361, 37.85771149],\n      properties: {\n        gid: 22,\n        geometry: 'Point',\n        count: 10\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [89.27655361, 37.85771149]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 23,\n      bbox: [89.14807214, 37.84869397, 89.14807214, 37.84869397],\n      properties: {\n        gid: 23,\n        geometry: 'Point',\n        count: 37\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [89.14807214, 37.84869397]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 24,\n      bbox: [89.15842203, 37.87658836, 89.15842203, 37.87658836],\n      properties: {\n        gid: 24,\n        geometry: 'Point',\n        count: 18\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [89.15842203, 37.87658836]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 25,\n      bbox: [89.12380341, 37.88109555, 89.12380341, 37.88109555],\n      properties: {\n        gid: 25,\n        geometry: 'Point',\n        count: 90\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [89.12380341, 37.88109555]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 26,\n      bbox: [89.14271874, 37.90278255, 89.14271874, 37.90278255],\n      properties: {\n        gid: 26,\n        geometry: 'Point',\n        count: 26\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [89.14271874, 37.90278255]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 27,\n      bbox: [115.64773072, 38.37852141, 115.64773072, 38.37852141],\n      properties: {\n        gid: 27,\n        geometry: 'Point',\n        count: 65\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [115.64773072, 38.37852141]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 28,\n      bbox: [117.16506474, 37.25985083, 117.16506474, 37.25985083],\n      properties: {\n        gid: 28,\n        geometry: 'Point',\n        count: 84\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [117.16506474, 37.25985083]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 29,\n      bbox: [115.39484172, 36.12431576, 115.39484172, 36.12431576],\n      properties: {\n        gid: 29,\n        geometry: 'Point',\n        count: 77\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [115.39484172, 36.12431576]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 30,\n      bbox: [118.53066536, 36.24678115, 118.53066536, 36.24678115],\n      properties: {\n        gid: 30,\n        geometry: 'Point',\n        count: 0\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [118.53066536, 36.24678115]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 31,\n      bbox: [117.82257615, 34.51495318, 117.82257615, 34.51495318],\n      properties: {\n        gid: 31,\n        geometry: 'Point',\n        count: 73\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [117.82257615, 34.51495318]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 32,\n      bbox: [116.35581993, 32.70381744, 116.35581993, 32.70381744],\n      properties: {\n        gid: 32,\n        geometry: 'Point',\n        count: 10\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [116.35581993, 32.70381744]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 33,\n      bbox: [114.13039671, 33.12839966, 114.13039671, 33.12839966],\n      properties: {\n        gid: 33,\n        geometry: 'Point',\n        count: 19\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [114.13039671, 33.12839966]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 34,\n      bbox: [114.73733031, 34.09716276, 114.73733031, 34.09716276],\n      properties: {\n        gid: 34,\n        geometry: 'Point',\n        count: 58\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [114.73733031, 34.09716276]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 35,\n      bbox: [110.69110626, 34.09716276, 110.69110626, 34.09716276],\n      properties: {\n        gid: 35,\n        geometry: 'Point',\n        count: 26\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [110.69110626, 34.09716276]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 36,\n      bbox: [105.936793, 33.50877694, 105.936793, 33.50877694],\n      properties: {\n        gid: 36,\n        geometry: 'Point',\n        count: 64\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [105.936793, 33.50877694]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 37,\n      bbox: [108.16221623, 35.67364096, 108.16221623, 35.67364096],\n      properties: {\n        gid: 37,\n        geometry: 'Point',\n        count: 4\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [108.16221623, 35.67364096]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 38,\n      bbox: [110.18532826, 37.54110663, 110.18532826, 37.54110663],\n      properties: {\n        gid: 38,\n        geometry: 'Point',\n        count: 59\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [110.18532826, 37.54110663]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 39,\n      bbox: [109.17377224, 34.84768525, 109.17377224, 34.84768525],\n      properties: {\n        gid: 39,\n        geometry: 'Point',\n        count: 54\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [109.17377224, 34.84768525]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 40,\n      bbox: [109.17377224, 31.54734646, 109.17377224, 31.54734646],\n      properties: {\n        gid: 40,\n        geometry: 'Point',\n        count: 14\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [109.17377224, 31.54734646]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 41,\n      bbox: [112.51190709, 30.24537397, 112.51190709, 30.24537397],\n      properties: {\n        gid: 41,\n        geometry: 'Point',\n        count: 50\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [112.51190709, 30.24537397]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 42,\n      bbox: [117.01333134, 29.89521006, 117.01333134, 29.89521006],\n      properties: {\n        gid: 42,\n        geometry: 'Point',\n        count: 97\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [117.01333134, 29.89521006]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 43,\n      bbox: [106.44257101, 29.80747582, 106.44257101, 29.80747582],\n      properties: {\n        gid: 43,\n        geometry: 'Point',\n        count: 99\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [106.44257101, 29.80747582]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 44,\n      bbox: [104.11599218, 31.28837181, 104.11599218, 31.28837181],\n      properties: {\n        gid: 44,\n        geometry: 'Point',\n        count: 77\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [104.11599218, 31.28837181]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 45,\n      bbox: [103.35732517, 35.30300284, 103.35732517, 35.30300284],\n      properties: {\n        gid: 45,\n        geometry: 'Point',\n        count: 6\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [103.35732517, 35.30300284]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 46,\n      bbox: [104.82408139, 38.25947586, 104.82408139, 38.25947586],\n      properties: {\n        gid: 46,\n        geometry: 'Point',\n        count: 97\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [104.82408139, 38.25947586]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 47,\n      bbox: [99.81687913, 34.51495318, 99.81687913, 34.51495318],\n      properties: {\n        gid: 47,\n        geometry: 'Point',\n        count: 44\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [99.81687913, 34.51495318]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 48,\n      bbox: [96.88336669, 34.97211463, 96.88336669, 34.97211463],\n      properties: {\n        gid: 48,\n        geometry: 'Point',\n        count: 73\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [96.88336669, 34.97211463]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 49,\n      bbox: [95.72007728, 32.06314254, 95.72007728, 32.06314254],\n      properties: {\n        gid: 49,\n        geometry: 'Point',\n        count: 57\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [95.72007728, 32.06314254]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 50,\n      bbox: [99.05821212, 30.02666669, 99.05821212, 30.02666669],\n      properties: {\n        gid: 50,\n        geometry: 'Point',\n        count: 41\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [99.05821212, 30.02666669]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 51,\n      bbox: [101.68825775, 29.04749445, 101.68825775, 29.04749445],\n      properties: {\n        gid: 51,\n        geometry: 'Point',\n        count: 8\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [101.68825775, 29.04749445]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 52,\n      bbox: [103.55963637, 28.11480824, 103.55963637, 28.11480824],\n      properties: {\n        gid: 52,\n        geometry: 'Point',\n        count: 6\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [103.55963637, 28.11480824]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 53,\n      bbox: [103.81252538, 26.54223767, 103.81252538, 26.54223767],\n      properties: {\n        gid: 53,\n        geometry: 'Point',\n        count: 67\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [103.81252538, 26.54223767]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 54,\n      bbox: [102.75039156, 26.3157792, 102.75039156, 26.3157792],\n      properties: {\n        gid: 54,\n        geometry: 'Point',\n        count: 27\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [102.75039156, 26.3157792]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 55,\n      bbox: [101.75720433, 27.2725045, 101.75720433, 27.2725045],\n      properties: {\n        gid: 55,\n        geometry: 'Point',\n        count: 38\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [101.75720433, 27.2725045]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 56,\n      bbox: [102.61702694, 27.40728888, 102.61702694, 27.40728888],\n      properties: {\n        gid: 56,\n        geometry: 'Point',\n        count: 27\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [102.61702694, 27.40728888]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 57,\n      bbox: [103.57800516, 27.40728888, 103.57800516, 27.40728888],\n      properties: {\n        gid: 57,\n        geometry: 'Point',\n        count: 98\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [103.57800516, 27.40728888]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 58,\n      bbox: [105.85400618, 27.13755647, 105.85400618, 27.13755647],\n      properties: {\n        gid: 58,\n        geometry: 'Point',\n        count: 85\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [105.85400618, 27.13755647]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 59,\n      bbox: [115.66134146, 40.69391663, 115.66134146, 40.69391663],\n      properties: {\n        gid: 59,\n        geometry: 'Point',\n        count: 90\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [115.66134146, 40.69391663]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 60,\n      bbox: [116.42000847, 40.65555732, 116.42000847, 40.65555732],\n      properties: {\n        gid: 60,\n        geometry: 'Point',\n        count: 51\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [116.42000847, 40.65555732]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 61,\n      bbox: [117.12809767, 40.65555732, 117.12809767, 40.65555732],\n      properties: {\n        gid: 61,\n        geometry: 'Point',\n        count: 77\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [117.12809767, 40.65555732]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 62,\n      bbox: [117.07751987, 40.46342988, 117.07751987, 40.46342988],\n      properties: {\n        gid: 62,\n        geometry: 'Point',\n        count: 8\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [117.07751987, 40.46342988]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 63,\n      bbox: [116.87520867, 39.53355771, 116.87520867, 39.53355771],\n      properties: {\n        gid: 63,\n        geometry: 'Point',\n        count: 80\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [116.87520867, 39.53355771]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 64,\n      bbox: [115.81009027, 39.45114336, 115.81009027, 39.45114336],\n      properties: {\n        gid: 64,\n        geometry: 'Point',\n        count: 39\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [115.81009027, 39.45114336]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 65,\n      bbox: [115.70893467, 39.99743434, 115.70893467, 39.99743434],\n      properties: {\n        gid: 65,\n        geometry: 'Point',\n        count: 31\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [115.70893467, 39.99743434]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 66,\n      bbox: [115.91124587, 40.42231245, 115.91124587, 40.42231245],\n      properties: {\n        gid: 66,\n        geometry: 'Point',\n        count: 5\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [115.91124587, 40.42231245]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 67,\n      bbox: [113.68582264, 40.22951623, 113.68582264, 40.22951623],\n      properties: {\n        gid: 67,\n        geometry: 'Point',\n        count: 67\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [113.68582264, 40.22951623]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 68,\n      bbox: [114.34333405, 39.64782794, 114.34333405, 39.64782794],\n      properties: {\n        gid: 68,\n        geometry: 'Point',\n        count: 51\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [114.34333405, 39.64782794]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 69,\n      bbox: [114.84911206, 39.33557498, 114.84911206, 39.33557498],\n      properties: {\n        gid: 69,\n        geometry: 'Point',\n        count: 59\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [114.84911206, 39.33557498]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 70,\n      bbox: [116.11086328, 38.56071151, 116.11086328, 38.56071151],\n      properties: {\n        gid: 70,\n        geometry: 'Point',\n        count: 5\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [116.11086328, 38.56071151]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 71,\n      bbox: [116.66721909, 38.71873419, 116.66721909, 38.71873419],\n      properties: {\n        gid: 71,\n        geometry: 'Point',\n        count: 13\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [116.66721909, 38.71873419]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 72,\n      bbox: [118.30719237, 39.58153623, 118.30719237, 39.58153623],\n      properties: {\n        gid: 72,\n        geometry: 'Point',\n        count: 45\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [118.30719237, 39.58153623]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 73,\n      bbox: [119.21759278, 40.20242601, 119.21759278, 40.20242601],\n      properties: {\n        gid: 73,\n        geometry: 'Point',\n        count: 96\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [119.21759278, 40.20242601]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 74,\n      bbox: [119.16701498, 40.39529947, 119.16701498, 40.39529947],\n      properties: {\n        gid: 74,\n        geometry: 'Point',\n        count: 22\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [119.16701498, 40.39529947]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 75,\n      bbox: [118.20603677, 41.08507834, 118.20603677, 41.08507834],\n      properties: {\n        gid: 75,\n        geometry: 'Point',\n        count: 4\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [118.20603677, 41.08507834]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 76,\n      bbox: [117.49794756, 41.16127858, 117.49794756, 41.16127858],\n      properties: {\n        gid: 76,\n        geometry: 'Point',\n        count: 60\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [117.49794756, 41.16127858]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 77,\n      bbox: [115.07021313, 41.35139194, 115.07021313, 41.35139194],\n      properties: {\n        gid: 77,\n        geometry: 'Point',\n        count: 99\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [115.07021313, 41.35139194]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 78,\n      bbox: [114.66559073, 41.31341354, 114.66559073, 41.31341354],\n      properties: {\n        gid: 78,\n        geometry: 'Point',\n        count: 60\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [114.66559073, 41.31341354]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 79,\n      bbox: [108.17799295, 38.99080221, 108.17799295, 38.99080221],\n      properties: {\n        gid: 79,\n        geometry: 'Point',\n        count: 30\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [108.17799295, 38.99080221]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 80,\n      bbox: [108.68377096, 40.16029278, 108.68377096, 40.16029278],\n      properties: {\n        gid: 80,\n        geometry: 'Point',\n        count: 32\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [108.68377096, 40.16029278]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 81,\n      bbox: [108.68377096, 40.16029278, 108.68377096, 40.16029278],\n      properties: {\n        gid: 81,\n        geometry: 'Point',\n        count: 35\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [108.68377096, 40.16029278]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 82,\n      bbox: [108.94212106, 40.33775823, 108.94212106, 40.33775823],\n      properties: {\n        gid: 82,\n        geometry: 'Point',\n        count: 54\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [108.94212106, 40.33775823]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 83,\n      bbox: [109.61946027, 40.43032952, 109.61946027, 40.43032952],\n      properties: {\n        gid: 83,\n        geometry: 'Point',\n        count: 20\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [109.61946027, 40.43032952]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 84,\n      bbox: [110.60572738, 40.27615495, 110.60572738, 40.27615495],\n      properties: {\n        gid: 84,\n        geometry: 'Point',\n        count: 91\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [110.60572738, 40.27615495]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 85,\n      bbox: [110.68159408, 39.81151852, 110.68159408, 39.81151852],\n      properties: {\n        gid: 85,\n        geometry: 'Point',\n        count: 27\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [110.68159408, 39.81151852]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 86,\n      bbox: [110.63101628, 39.08879056, 110.63101628, 39.08879056],\n      properties: {\n        gid: 86,\n        geometry: 'Point',\n        count: 20\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [110.63101628, 39.08879056]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 87,\n      bbox: [110.40341618, 38.41827017, 110.40341618, 38.41827017],\n      properties: {\n        gid: 87,\n        geometry: 'Point',\n        count: 13\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [110.40341618, 38.41827017]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 88,\n      bbox: [110.22639388, 38.06074344, 110.22639388, 38.06074344],\n      properties: {\n        gid: 88,\n        geometry: 'Point',\n        count: 91\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [110.22639388, 38.06074344]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 89,\n      bbox: [109.94821597, 37.64141066, 109.94821597, 37.64141066],\n      properties: {\n        gid: 89,\n        geometry: 'Point',\n        count: 66\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [109.94821597, 37.64141066]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 90,\n      bbox: [109.61946027, 37.17941051, 109.61946027, 37.17941051],\n      properties: {\n        gid: 90,\n        geometry: 'Point',\n        count: 83\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [109.61946027, 37.17941051]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 91,\n      bbox: [109.11368226, 36.79561337, 109.11368226, 36.79561337],\n      properties: {\n        gid: 91,\n        geometry: 'Point',\n        count: 36\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [109.11368226, 36.79561337]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 92,\n      bbox: [108.83550436, 36.71456745, 108.83550436, 36.71456745],\n      properties: {\n        gid: 92,\n        geometry: 'Point',\n        count: 75\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [108.83550436, 36.71456745]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 93,\n      bbox: [107.82394835, 39.01023295, 107.82394835, 39.01023295],\n      properties: {\n        gid: 93,\n        geometry: 'Point',\n        count: 65\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [107.82394835, 39.01023295]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 94,\n      bbox: [106.88825904, 39.63624389, 106.88825904, 39.63624389],\n      properties: {\n        gid: 94,\n        geometry: 'Point',\n        count: 1\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [106.88825904, 39.63624389]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 95,\n      bbox: [106.91354794, 39.79187022, 106.91354794, 39.79187022],\n      properties: {\n        gid: 95,\n        geometry: 'Point',\n        count: 97\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [106.91354794, 39.79187022]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 96,\n      bbox: [106.48363663, 39.85013954, 106.48363663, 39.85013954],\n      properties: {\n        gid: 96,\n        geometry: 'Point',\n        count: 33\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [106.48363663, 39.85013954]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 97,\n      bbox: [106.25603653, 39.81129882, 106.25603653, 39.81129882],\n      properties: {\n        gid: 97,\n        geometry: 'Point',\n        count: 97\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [106.25603653, 39.81129882]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 98,\n      bbox: [105.57323622, 39.48026663, 105.57323622, 39.48026663],\n      properties: {\n        gid: 98,\n        geometry: 'Point',\n        count: 10\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [105.57323622, 39.48026663]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 99,\n      bbox: [105.47208062, 38.97092139, 105.47208062, 38.97092139],\n      properties: {\n        gid: 99,\n        geometry: 'Point',\n        count: 3\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [105.47208062, 38.97092139]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 100,\n      bbox: [105.67439182, 38.41827017, 105.67439182, 38.41827017],\n      properties: {\n        gid: 100,\n        geometry: 'Point',\n        count: 86\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [105.67439182, 38.41827017]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 101,\n      bbox: [105.77554742, 38.06074344, 105.77554742, 38.06074344],\n      properties: {\n        gid: 101,\n        geometry: 'Point',\n        count: 98\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [105.77554742, 38.06074344]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 102,\n      bbox: [106.02843642, 37.62138298, 106.02843642, 37.62138298],\n      properties: {\n        gid: 102,\n        geometry: 'Point',\n        count: 94\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [106.02843642, 37.62138298]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 103,\n      bbox: [106.40776993, 37.25996294, 106.40776993, 37.25996294],\n      properties: {\n        gid: 103,\n        geometry: 'Point',\n        count: 3\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [106.40776993, 37.25996294]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 104,\n      bbox: [106.96412574, 37.01804776, 106.96412574, 37.01804776],\n      properties: {\n        gid: 104,\n        geometry: 'Point',\n        count: 98\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [106.96412574, 37.01804776]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 105,\n      bbox: [107.44461484, 36.91702161, 107.44461484, 36.91702161],\n      properties: {\n        gid: 105,\n        geometry: 'Point',\n        count: 36\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [107.44461484, 36.91702161]\n      }\n    },\n    {\n      type: 'Feature',\n      id: 106,\n      bbox: [108.07683735, 36.77535991, 108.07683735, 36.77535991],\n      properties: {\n        gid: 106,\n        geometry: 'Point',\n        count: 0\n      },\n      geometry: {\n        type: 'Point',\n        coordinates: [108.07683735, 36.77535991]\n      }\n    }\n  ]\n};\n","import { Is, TableTypesEnum } from '../../enums';\n\nexport const TABLE_DATA_OPTIONS: Partial<{ [key in TableTypesEnum]: object }> = {\n  [TableTypesEnum.default]: {\n    rowDataUrl: 'https://www.ag-grid.com/example-assets/olympic-winners.json',\n    defaultColDef: {\n      flex: 1,\n      minWidth: 100,\n      filter: false,\n      floatingFilter: false\n      // editable: false,\n    },\n    autoGroupColumnDef: {\n      minWidth: 200\n    },\n    pivotMode: false,\n    pivotPanelShow: 'never',\n    rowGroupPanelShow: 'onlyWhenGrouping',\n    groupDefaultExpanded: Is.no,\n    showOpenedGroup: Is.yes,\n    groupDisplayType: 'singleColumn'\n  },\n  [TableTypesEnum.pivotTable]: {\n    dataSource: {\n      dataSourceType: 'json',\n      filename: 'https://cdn.webdatarocks.com/data/data.json'\n    },\n    slice: {\n      rows: [\n        {\n          uniqueName: 'Country',\n          caption: '国家'\n        }\n      ],\n      columns: [\n        {\n          uniqueName: 'Color'\n        },\n        {\n          uniqueName: 'Measures'\n        }\n      ],\n      measures: [\n        {\n          uniqueName: 'Price',\n          aggregation: 'sum',\n          format: 'currency'\n        },\n        {\n          uniqueName: 'Discount',\n          aggregation: 'sum',\n          format: 'currency'\n        }\n      ]\n    },\n    options: {\n      grid: {\n        showGrandTotals: 'off'\n      }\n    },\n    conditions: [\n      {\n        formula: '#value > 350000',\n        format: {\n          backgroundColor: '#0598df',\n          color: '#FFFFFF'\n        }\n      },\n      {\n        formula: 'AND(#value > 1000, #value < 3000)',\n        format: {\n          backgroundColor: '#f45328',\n          color: '#FFFFFF'\n        }\n      }\n    ],\n    formats: [\n      {\n        name: 'currency',\n        thousandsSeparator: ',',\n        decimalPlaces: 2,\n        currencySymbol: '$',\n        currencySymbolAlign: 'left'\n      }\n    ],\n    tableSizes: {\n      columns: [\n        {\n          tuple: ['Color.blue'],\n          measure: 'Price',\n          width: 200\n        }\n      ],\n      rows: [\n        {\n          idx: 4,\n          height: 80\n        }\n      ]\n    }\n  }\n  // [TableTypesEnum.pivoting]: {\n  // \trowDataUrl: 'https://www.ag-grid.com/example-assets/olympic-winners.json',\n  // \tdefaultColDef: {\n  // \t\tflex: 1,\n  // \t\tminWidth: 150,\n  // \t\tfilter: false,\n  // \t\tfloatingFilter: false,\n  // \t\teditable: false,\n  // \t},\n  // \tautoGroupColumnDef: {\n  // \t\tminWidth: 200,\n  // \t},\n  // \tgroupDefaultExpanded: Is.yes,\n  // \tshowOpenedGroup: Is.yes,\n  // \tgroupDisplayType: 'singleColumn',\n  // },\n};\n","import { TextTypesEnum } from '../../enums';\nimport { TextConfig } from '../../interfaces';\n\nexport const TEXT_DATA_OPTIONS: Partial<{ [key in TextTypesEnum]: TextConfig }> = {\n  [TextTypesEnum.headTitle]: {\n    content: '标题',\n    styles: {\n      color: '#333333',\n      fontSize: 18,\n      fontWeight: '400',\n      fontStyle: 'normal',\n      textAlign: 'left',\n      lineHeight: 25,\n      letterSpacing: 0,\n      textDecoration: 'none',\n      whiteSpace: 'normal'\n    }\n  },\n  [TextTypesEnum.text]: {\n    content: '这是一段文本',\n    styles: {\n      color: '#333333',\n      fontSize: 14,\n      fontWeight: '400',\n      fontStyle: 'normal',\n      textAlign: 'left',\n      lineHeight: 18,\n      letterSpacing: 0,\n      textDecoration: 'none',\n      whiteSpace: 'normal'\n    }\n  }\n};\n","import { EditorBaseField } from '../interfaces';\nimport { isEqual } from 'lodash';\n\nexport function convertFormDataToOptions<TOptions, TEditorField extends EditorBaseField>(\n  form: Record<string, any>,\n  editorOptions: TOptions,\n  editorFields: TEditorField[]\n): TOptions {\n  const newOptions = { ...editorOptions };\n\n  const processFields = (fields: any[], formData: Record<string, any>, options: TOptions) => {\n    for (const field of fields) {\n      // 跳过标记为不转换的字段\n      if (field?.skipConversion) {\n        continue;\n      }\n      if (field.schemaType === 'group' && field.children) {\n        processFields(field.children, formData, options);\n      } else if (field.schemaType === 'array') {\n        const arrayForm = formData[field.key] || [];\n        const arrayValue = arrayForm.map((itemForm: any) => {\n          const item: Record<string, any> = {};\n          // 使用 children 而不是 itemSchema\n          for (const itemField of field.children || []) {\n            // 没有值就不赋值了\n            const value = itemForm[itemField.key];\n            if (\n              value === undefined ||\n              (itemField.schemaType === 'color' && itemForm[itemField.key] === '') ||\n              (itemField.schemaType === 'multiColorSelect' && !itemForm[itemField.key].length)\n            ) {\n              continue;\n            }\n            if (itemField.path?.includes('.')) {\n              setOptionValue(item, itemField.path, itemForm[itemField.key]);\n            } else {\n              item[itemField.key] = itemForm[itemField.key];\n            }\n          }\n          return item;\n        });\n        // 添加 path 检查\n        if (field.path) {\n          setOptionValue(options, field.path, arrayValue);\n        } else {\n          console.warn('convertFormDataToOptions: field.path is missing for array field', field);\n        }\n      } else {\n        const value = formData[field.key];\n        if (\n          value === undefined ||\n          (field.schemaType === 'color' && value === '') ||\n          (field.schemaType === 'multiColorSelect' && Array.isArray(value) && value.length === 0)\n        ) {\n          continue;\n        }\n        // 添加 path 检查\n        if (field.path) {\n          setOptionValue(options, field.path, value);\n        } else {\n          console.warn('convertFormDataToOptions: field.path is missing for field', field);\n        }\n      }\n    }\n  };\n\n  // 直接处理 editorFields，不再区分 section 层级\n  processFields(editorFields, form, newOptions);\n\n  return newOptions;\n}\n\n\nexport function convertOptionsToFormData<TOptions, TEditorField extends EditorBaseField>(\n  options: TOptions | null | undefined,\n  editorFields: TEditorField[]\n): Record<string, any> {\n  const form: Record<string, any> = {};\n  const safeOptions = options || ({} as TOptions);\n\n  const processFields = (fields: any[], formData: Record<string, any>) => {\n    for (const field of fields) {\n      // 跳过标记为不转换的字段\n      if (field?.skipConversion) {\n        continue;\n      }\n\n      if (field.schemaType === 'group' && field.children) {\n        processFields(field.children, formData);\n      } else if (field.schemaType === 'array') {\n        const arrayData = getOptionValue(field.path, safeOptions) || [];\n        formData[field.key] = arrayData.map((item: any) => {\n          const itemForm: Record<string, any> = {};\n          // 使用 children 而不是 itemSchema\n          for (const itemField of field.children || []) {\n            if (itemField.path?.includes('.')) {\n              itemForm[itemField.key] = getOptionValue(itemField.path, item, itemField.defaultValue);\n            } else {\n              const value = item[itemField.key];\n              itemForm[itemField.key] = value === undefined && itemField.defaultValue !== undefined ? itemField.defaultValue : value;\n            }\n          }\n          return itemForm;\n        });\n      } else {\n        formData[field.key] = getOptionValue(field.path, safeOptions, field.defaultValue);\n      }\n    }\n  };\n\n  // 直接处理 editorFields，不再区分 section 层级\n  processFields(editorFields, form);\n\n  return form;\n}\n\nexport function setOptionValue(options: any, path: string, value: any): void {\n  // 添加安全检查\n  if (!path) {\n    console.warn('setOptionValue: path is invalid', path);\n    return;\n  }\n\n  const keys = path.split('.');\n  let obj = options;\n  for (let i = 0; i < keys.length - 1; i++) {\n    obj[keys[i]] ??= {};\n    obj = obj[keys[i]];\n  }\n  obj[keys[keys.length - 1]] = value;\n}\n\nexport function getOptionValue(path: string, options: any, defaultValue?: any): any {\n  // 添加安全检查\n  if (!path) {\n    console.warn('getOptionValue: path is invalid', path);\n    return defaultValue;\n  }\n\n  let value = path.split('.').reduce((o, p) => o?.[p], options);\n  if (defaultValue !== undefined) {\n    value = value ?? defaultValue;\n  }\n  return value;\n}\n\nexport function updateFormData(\n  formData: Record<string, any>,\n  key: string,\n  value: any,\n  parentKey?: string,\n  index?: number\n): Record<string, any> {\n  let currentValue: any;\n\n  // 获取当前值用于比较\n  if (parentKey !== undefined && index !== undefined) {\n    // 数组字段中的某项的某个字段\n    currentValue = formData[parentKey]?.[index]?.[key];\n  } else {\n    // 普通字段\n    currentValue = formData[key];\n  }\n\n  // 使用 lodash 的 isEqual 进行深度比较\n  if (isEqual(currentValue, value)) {\n    // 值没有变化，直接返回原始 formData\n    return formData;\n  }\n\n  // 先复制一份当前表单数据（或 _options）用于更新\n  let updatedFormData = { ...formData };\n\n  if (parentKey !== undefined && index !== undefined) {\n    // 更新数组字段中的某项的某个字段\n    const arrayCopy = [...updatedFormData[parentKey]]; // 克隆数组\n    const itemCopy = { ...arrayCopy[index] }; // 克隆当前项\n    itemCopy[key] = value; // 修改子字段\n    arrayCopy[index] = itemCopy; // 替换原数组中的项\n    updatedFormData[parentKey] = arrayCopy; // 替换更新后的数组\n  } else {\n    // 普通字段更新\n    updatedFormData[key] = value;\n  }\n  return updatedFormData;\n}\n\nexport function valueFormatter() {}\n","import { GeoJSONFeatureCollection, OutputPoint } from '../interfaces';\n\n/**\n * 将 GeoJSON FeatureCollection 转换为目标格式的点数组\n * @param geoJsonData GeoJSON 数据\n * @returns 转换后的点数组（包含 lat, lon 及所有 properties）\n */\nexport function convertGeoJSONToCustomFormat(geoJsonData: GeoJSONFeatureCollection): OutputPoint[] {\n  return geoJsonData.features\n    .filter((feature) => feature.geometry.type === 'Point')\n    .map((feature) => ({\n      lat: feature.geometry.coordinates[1], // 纬度\n      lon: feature.geometry.coordinates[0], // 经度\n      ...feature.properties // 展开所有属性\n    }));\n}\n","export class SafeTimeConverter {\n  private static readonly TIME_FIELD_PATTERNS = [\n    /.*date$/i,\n    /.*time$/i,\n    /.*at$/i,\n    /^date.*/i,\n    /^time.*/i,\n    /timestamp/i,\n    /expire/i,\n    /start/i,\n    /end/i,\n    /begin/i,\n    /finish/i,\n    /created/i,\n    /updated/i,\n    /modified/i,\n    /deleted/i,\n    /published/i,\n    /scheduled/i,\n    /deadline/i,\n    /due/i,\n    /expires/i,\n    /valid/i\n  ];\n\n  private static readonly ISO_DATE_REGEX = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?Z?$/;\n\n  /**\n   * 时区偏移量（小时）- 默认减去8小时（UTC+8转换为UTC）\n   */\n  private static readonly TIMEZONE_OFFSET_HOURS = 8;\n\n  /**\n   * 转换数据中的时间字段，统一减去8小时\n   * @param data 原始数据数组\n   * @returns 转换后的数据数组\n   */\n  static convertTimeFields(data: any[]): any[] {\n    if (!data || !Array.isArray(data)) {\n      return [];\n    }\n\n    return data.map((item) => {\n      if (!item || typeof item !== 'object') {\n        return item;\n      }\n\n      const convertedItem = { ...item };\n\n      Object.keys(convertedItem).forEach((key) => {\n        const value = convertedItem[key];\n\n        if (this.isTimeField(key) && this.isTimeString(value)) {\n          convertedItem[key] = this.parseAndAdjustTime(value);\n        }\n      });\n\n      return convertedItem;\n    });\n  }\n\n  /**\n   * 解析时间字符串并减去8小时\n   * @param dateString ISO 格式的时间字符串\n   * @returns 调整后的 Date 对象\n   */\n  private static parseAndAdjustTime(dateString: string): Date {\n    if (!dateString) {\n      return new Date(dateString);\n    }\n\n    // 解析 ISO 字符串的各个部分\n    const match = dateString.match(/^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})(\\.\\d{3})?Z?$/);\n\n    if (match) {\n      const [, year, month, day, hour, minute, second, millisecond] = match;\n\n      // 创建 UTC 时间戳\n      const utcTimestamp = Date.UTC(\n        parseInt(year, 10),\n        parseInt(month, 10) - 1, // 月份从0开始\n        parseInt(day, 10),\n        parseInt(hour, 10),\n        parseInt(minute, 10),\n        parseInt(second, 10),\n        millisecond ? parseInt(millisecond.slice(1), 10) : 0\n      );\n\n      // 减去8小时 (8 * 60 * 60 * 1000 毫秒)\n      const adjustedTimestamp = utcTimestamp - this.TIMEZONE_OFFSET_HOURS * 60 * 60 * 1000;\n\n      return new Date(adjustedTimestamp);\n    }\n\n    // 如果格式不匹配，使用原生解析方式，然后减去8小时\n    const originalDate = new Date(dateString);\n\n    if (!isNaN(originalDate.getTime())) {\n      const adjustedTimestamp = originalDate.getTime() - this.TIMEZONE_OFFSET_HOURS * 60 * 60 * 1000;\n      return new Date(adjustedTimestamp);\n    }\n\n    return originalDate;\n  }\n\n  /**\n   * 判断字段名是否为时间字段\n   * @param fieldName 字段名\n   * @returns 是否为时间字段\n   */\n  private static isTimeField(fieldName: string): boolean {\n    if (!fieldName) {\n      return false;\n    }\n\n    return this.TIME_FIELD_PATTERNS.some((pattern) => pattern.test(fieldName));\n  }\n\n  /**\n   * 判断值是否为时间字符串\n   * @param value 待判断的值\n   * @returns 是否为时间字符串\n   */\n  private static isTimeString(value: any): boolean {\n    return typeof value === 'string' && this.ISO_DATE_REGEX.test(value);\n  }\n\n  /**\n   * 手动调整指定 Date 对象的时间（减去8小时）\n   * @param date 原始 Date 对象\n   * @returns 调整后的 Date 对象\n   */\n  static adjustTimeZone(date: Date): Date {\n    if (!date || isNaN(date.getTime())) {\n      return date;\n    }\n\n    const adjustedTimestamp = date.getTime() - this.TIMEZONE_OFFSET_HOURS * 60 * 60 * 1000;\n    return new Date(adjustedTimestamp);\n  }\n\n  /**\n   * 将调整后的时间转换为显示格式\n   * @param date 调整后的 Date 对象\n   * @param format 格式化选项\n   * @returns 格式化后的时间字符串\n   */\n  static formatAdjustedTime(date: Date, format: 'date' | 'datetime' | 'time' = 'datetime'): string {\n    if (!date || isNaN(date.getTime())) {\n      return '';\n    }\n\n    const options: Intl.DateTimeFormatOptions = {\n      timeZone: 'UTC', // 使用 UTC 时区显示\n      year: 'numeric',\n      month: '2-digit',\n      day: '2-digit'\n    };\n\n    if (format === 'datetime' || format === 'time') {\n      options.hour = '2-digit';\n      options.minute = '2-digit';\n      options.second = '2-digit';\n      options.hour12 = false;\n    }\n\n    if (format === 'time') {\n      delete options.year;\n      delete options.month;\n      delete options.day;\n    }\n\n    return new Intl.DateTimeFormat('sv-SE', options).format(date);\n  }\n\n  /**\n   * 批量调整时间数组\n   * @param dates Date 对象数组\n   * @returns 调整后的 Date 对象数组\n   */\n  static adjustTimeArray(dates: Date[]): Date[] {\n    if (!dates || !Array.isArray(dates)) {\n      return [];\n    }\n\n    return dates.map((date) => this.adjustTimeZone(date));\n  }\n}\n\n/**\n * 处理图表数据，转换时间字段并按时间排序\n * @param rawData 原始数据数组\n * @param sortField 排序字段，默认为 'prodDate'\n * @param sortOrder 排序顺序，'asc' 为升序，'desc' 为降序\n * @returns 处理后的数据数组\n */\nexport function processChartData(rawData: any[], sortField: string = 'prodDate', sortOrder: 'asc' | 'desc' = 'asc'): any[] {\n  if (!rawData || !Array.isArray(rawData)) {\n    console.warn('processChartData: 输入数据不是有效数组');\n    return [];\n  }\n\n  try {\n    // 转换时间字段（减去8小时）\n    const convertedData = SafeTimeConverter.convertTimeFields(rawData);\n\n    return convertedData.sort((a, b) => {\n      const valueA = a[sortField];\n      const valueB = b[sortField];\n\n      // 处理空值\n      if (!valueA && !valueB) return 0;\n      if (!valueA) return sortOrder === 'asc' ? 1 : -1;\n      if (!valueB) return sortOrder === 'asc' ? -1 : 1;\n\n      // 获取时间戳进行比较\n      const timeA = valueA instanceof Date ? valueA.getTime() : new Date(valueA).getTime();\n      const timeB = valueB instanceof Date ? valueB.getTime() : new Date(valueB).getTime();\n\n      // 处理无效日期\n      if (isNaN(timeA) && isNaN(timeB)) return 0;\n      if (isNaN(timeA)) return sortOrder === 'asc' ? 1 : -1;\n      if (isNaN(timeB)) return sortOrder === 'asc' ? -1 : 1;\n\n      const diff = timeA - timeB;\n      return sortOrder === 'asc' ? diff : -diff;\n    });\n  } catch (error) {\n    console.error('processChartData: 处理数据时发生错误', error);\n    return rawData; // 出错时返回原始数据\n  }\n}\n\n/**\n * 批量处理多个数据源的时间字段\n * @param dataSources 数据源数组\n * @returns 处理后的数据源数组\n */\nexport function processMultipleDataSources(dataSources: any[][]): any[][] {\n  if (!dataSources || !Array.isArray(dataSources)) {\n    return [];\n  }\n\n  return dataSources.map((dataSource) => processChartData(dataSource));\n}\n\n/**\n * 验证和修复时间数据\n * @param data 数据数组\n * @param timeFields 时间字段数组\n * @returns 验证和修复结果\n */\nexport function validateAndFixTimeData(\n  data: any[],\n  timeFields: string[]\n): {\n  isValid: boolean;\n  fixedData: any[];\n  errors: string[];\n  statistics: {\n    totalRecords: number;\n    validRecords: number;\n    fixedRecords: number;\n    invalidRecords: number;\n  };\n} {\n  const errors: string[] = [];\n  const fixedData: any[] = [];\n  let validRecords = 0;\n  let fixedRecords = 0;\n\n  data.forEach((item, index) => {\n    const fixedItem = { ...item };\n    let itemNeedsFix = false;\n\n    timeFields.forEach((field) => {\n      const value = fixedItem[field];\n\n      if (value) {\n        if (typeof value === 'string' && SafeTimeConverter['isTimeString'](value)) {\n          // 正常的时间字符串，进行时区调整\n          fixedItem[field] = SafeTimeConverter['parseAndAdjustTime'](value);\n        } else if (value instanceof Date) {\n          // 已经是 Date 对象，进行时区调整\n          fixedItem[field] = SafeTimeConverter.adjustTimeZone(value);\n        } else {\n          // 尝试修复无效的时间格式\n          try {\n            const parsedDate = new Date(value);\n            if (!isNaN(parsedDate.getTime())) {\n              fixedItem[field] = SafeTimeConverter.adjustTimeZone(parsedDate);\n              itemNeedsFix = true;\n            } else {\n              errors.push(`记录 ${index + 1} 的字段 \"${field}\" 无法解析: ${value}`);\n            }\n          } catch (e) {\n            errors.push(`记录 ${index + 1} 的字段 \"${field}\" 解析失败: ${value}`);\n          }\n        }\n      }\n    });\n\n    if (itemNeedsFix) {\n      fixedRecords++;\n    } else {\n      validRecords++;\n    }\n\n    fixedData.push(fixedItem);\n  });\n\n  return {\n    isValid: errors.length === 0,\n    fixedData,\n    errors,\n    statistics: {\n      totalRecords: data.length,\n      validRecords,\n      fixedRecords,\n      invalidRecords: data.length - validRecords - fixedRecords\n    }\n  };\n}\n","import { OperationHistoryEnum } from '../enums';\nimport { SafeAny } from '../types';\n\n/**\n * 防抖工具类\n */\nexport class DebounceUtil {\n  public static timeoutMap = new Map<string, SafeAny>();\n\n  /**\n   * 创建防抖函数\n   * @param func 需要防抖的函数\n   * @param delay 延迟时间（毫秒）\n   * @param key 可选的唯一标识符，用于管理多个防抖实例\n   * @returns 防抖后的函数\n   */\n  static create<T extends (...args: SafeAny[]) => SafeAny>(func: T, delay: number, key?: string): (...args: Parameters<T>) => void {\n    const timeoutKey = key || func.toString();\n\n    return function (this: SafeAny, ...args: Parameters<T>) {\n      const context = this;\n\n      // 清除之前的定时器\n      if (DebounceUtil.timeoutMap.has(timeoutKey)) {\n        clearTimeout(DebounceUtil.timeoutMap.get(timeoutKey));\n      }\n\n      // 设置新的定时器\n      const timeoutId = setTimeout(() => {\n        func.apply(context, args);\n        DebounceUtil.timeoutMap.delete(timeoutKey);\n      }, delay);\n\n      DebounceUtil.timeoutMap.set(timeoutKey, timeoutId);\n    };\n  }\n\n  /**\n   * 创建带有返回值的防抖函数（使用 Promise）\n   * @param func 需要防抖的函数\n   * @param delay 延迟时间（毫秒）\n   * @param key 可选的唯一标识符\n   * @returns 返回 Promise 的防抖函数\n   */\n  static createWithPromise<T extends (...args: SafeAny[]) => SafeAny>(\n    func: T,\n    delay: number,\n    key?: string\n  ): (...args: Parameters<T>) => Promise<ReturnType<T>> {\n    const timeoutKey = key || func.toString();\n    let promiseResolve: ((value: ReturnType<T>) => void) | null = null;\n    let promiseReject: ((reason?: SafeAny) => void) | null = null;\n\n    return function (this: SafeAny, ...args: Parameters<T>): Promise<ReturnType<T>> {\n      const context = this;\n\n      return new Promise<ReturnType<T>>((resolve, reject) => {\n        // 如果有之前的 Promise，先 reject\n        if (promiseReject) {\n          promiseReject(new Error('Debounced'));\n        }\n\n        promiseResolve = resolve;\n        promiseReject = reject;\n\n        // 清除之前的定时器\n        if (DebounceUtil.timeoutMap.has(timeoutKey)) {\n          clearTimeout(DebounceUtil.timeoutMap.get(timeoutKey));\n        }\n\n        // 设置新的定时器\n        const timeoutId = setTimeout(async () => {\n          try {\n            const result = await func.apply(context, args);\n            promiseResolve?.(result);\n            DebounceUtil.timeoutMap.delete(timeoutKey);\n          } catch (error) {\n            promiseReject?.(error);\n            DebounceUtil.timeoutMap.delete(timeoutKey);\n          }\n        }, delay);\n\n        DebounceUtil.timeoutMap.set(timeoutKey, timeoutId);\n      });\n    };\n  }\n\n  /**\n   * 立即执行防抖函数（跳过延迟）\n   * @param key 防抖函数的唯一标识符\n   */\n  static flush(key: OperationHistoryEnum): void {\n    if (DebounceUtil.timeoutMap.has(key)) {\n      const timeoutId = DebounceUtil.timeoutMap.get(key);\n      clearTimeout(timeoutId);\n      DebounceUtil.timeoutMap.delete(key);\n    }\n  }\n\n  /**\n   * 取消防抖函数的执行\n   * @param key 防抖函数的唯一标识符\n   */\n  static cancel(key: string): void {\n    if (DebounceUtil.timeoutMap.has(key)) {\n      clearTimeout(DebounceUtil.timeoutMap.get(key));\n      DebounceUtil.timeoutMap.delete(key);\n    }\n  }\n\n  /**\n   * 清除所有防抖定时器\n   */\n  static clearAll(): void {\n    DebounceUtil.timeoutMap.forEach((timeoutId) => {\n      clearTimeout(timeoutId);\n    });\n    DebounceUtil.timeoutMap.clear();\n  }\n\n  /**\n   * 获取当前活跃的防抖实例数量\n   * @returns 活跃的防抖实例数量\n   */\n  static getActiveCount(): number {\n    return DebounceUtil.timeoutMap.size;\n  }\n}\n\n/**\n * 防抖装饰器\n * @param delay 延迟时间（毫秒）\n * @param key 可选的唯一标识符\n * @returns 装饰器函数\n */\nexport function Debounce(delay: number, key?: string) {\n  return function (target: SafeAny, propertyKey: string, descriptor: PropertyDescriptor) {\n    const originalMethod = descriptor.value;\n    const debounceKey = key || `${target.constructor.name}.${propertyKey}`;\n\n    descriptor.value = function (this: SafeAny, ...args: SafeAny[]) {\n      const context = this;\n\n      // 清除之前的定时器\n      if (DebounceUtil.timeoutMap.has(debounceKey)) {\n        clearTimeout(DebounceUtil.timeoutMap.get(debounceKey));\n      }\n\n      // 设置新的定时器\n      const timeoutId = setTimeout(() => {\n        originalMethod.apply(context, args);\n        DebounceUtil.timeoutMap.delete(debounceKey);\n      }, delay);\n\n      DebounceUtil.timeoutMap.set(debounceKey, timeoutId);\n    };\n\n    return descriptor;\n  };\n}\n\n// 导出便捷函数\nexport const debounce = DebounceUtil.create;\n","import { SafeAny } from '../types';\n\n/**\n * 节流工具类\n */\nexport class ThrottleUtil {\n  static lastCallMap = new Map<string, number>();\n  static timeoutMap = new Map<string, SafeAny>();\n\n  /**\n   * 创建节流函数\n   * @param func 需要节流的函数\n   * @param delay 延迟时间（毫秒）\n   * @param key 可选的唯一标识符\n   * @returns 节流后的函数\n   */\n  static create<T extends (...args: SafeAny[]) => SafeAny>(func: T, delay: number, key?: string): (...args: Parameters<T>) => void {\n    const throttleKey = key || func.toString();\n\n    return function (this: SafeAny, ...args: Parameters<T>) {\n      const context = this;\n      const now = Date.now();\n      const lastCall = ThrottleUtil.lastCallMap.get(throttleKey) || 0;\n\n      if (now - lastCall >= delay) {\n        // 立即执行\n        ThrottleUtil.lastCallMap.set(throttleKey, now);\n        func.apply(context, args);\n      } else {\n        // 清除之前的延迟执行\n        if (ThrottleUtil.timeoutMap.has(throttleKey)) {\n          clearTimeout(ThrottleUtil.timeoutMap.get(throttleKey));\n        }\n\n        // 设置延迟执行\n        const timeoutId = setTimeout(\n          () => {\n            ThrottleUtil.lastCallMap.set(throttleKey, Date.now());\n            func.apply(context, args);\n            ThrottleUtil.timeoutMap.delete(throttleKey);\n          },\n          delay - (now - lastCall)\n        );\n\n        ThrottleUtil.timeoutMap.set(throttleKey, timeoutId);\n      }\n    };\n  }\n\n  /**\n   * 清除所有节流定时器\n   */\n  static clearAll(): void {\n    ThrottleUtil.timeoutMap.forEach((timeoutId) => {\n      clearTimeout(timeoutId);\n    });\n    ThrottleUtil.timeoutMap.clear();\n    ThrottleUtil.lastCallMap.clear();\n  }\n\n  /**\n   * 取消特定的节流函数\n   * @param key 节流函数的唯一标识符\n   */\n  static cancel(key: string): void {\n    if (ThrottleUtil.timeoutMap.has(key)) {\n      clearTimeout(ThrottleUtil.timeoutMap.get(key));\n      ThrottleUtil.timeoutMap.delete(key);\n    }\n    ThrottleUtil.lastCallMap.delete(key);\n  }\n\n  /**\n   * 获取当前活跃的节流实例数量\n   * @returns 活跃的节流实例数量\n   */\n  static getActiveCount(): number {\n    return ThrottleUtil.timeoutMap.size;\n  }\n}\n\n/**\n * 节流装饰器\n * @param delay 延迟时间（毫秒）\n * @param key 可选的唯一标识符\n * @returns 装饰器函数\n */\nexport function Throttle(delay: number, key?: string) {\n  return function (target: SafeAny, propertyKey: string, descriptor: PropertyDescriptor) {\n    const originalMethod = descriptor.value;\n    const throttleKey = key || `${target.constructor.name}.${propertyKey}`;\n\n    descriptor.value = function (this: SafeAny, ...args: SafeAny[]) {\n      const context = this;\n      const now = Date.now();\n      const lastCall = ThrottleUtil.lastCallMap.get(throttleKey) || 0;\n\n      if (now - lastCall >= delay) {\n        // 立即执行\n        ThrottleUtil.lastCallMap.set(throttleKey, now);\n        originalMethod.apply(context, args);\n      } else {\n        // 清除之前的延迟执行\n        if (ThrottleUtil.timeoutMap.has(throttleKey)) {\n          clearTimeout(ThrottleUtil.timeoutMap.get(throttleKey));\n        }\n\n        // 设置延迟执行\n        const timeoutId = setTimeout(\n          () => {\n            ThrottleUtil.lastCallMap.set(throttleKey, Date.now());\n            originalMethod.apply(context, args);\n            ThrottleUtil.timeoutMap.delete(throttleKey);\n          },\n          delay - (now - lastCall)\n        );\n\n        ThrottleUtil.timeoutMap.set(throttleKey, timeoutId);\n      }\n    };\n\n    return descriptor;\n  };\n}\n\n// 导出便捷函数\nexport const throttle = ThrottleUtil.create;\n","/**\n * 检查目标元素是否为输入类型元素\n */\nexport function isTargetInputElement(target: HTMLElement): boolean {\n  if (!target) return false;\n\n  return (\n    target.tagName === 'INPUT' ||\n    target.tagName === 'TEXTAREA' ||\n    target.contentEditable === 'true' ||\n    target.closest('.codemirror') !== null ||\n    target.closest('[contenteditable=\"true\"]') !== null ||\n    target.closest('input') !== null ||\n    target.closest('textarea') !== null ||\n    target.closest('p-select') !== null ||\n    target.closest('p-multiselect') !== null ||\n    target.closest('.p-dropdown') !== null ||\n    target.closest('.p-multiselect') !== null ||\n    target.closest('[role=\"listbox\"]') !== null ||\n    target.closest('[role=\"option\"]') !== null ||\n    target.closest('ag-grid-angular') !== null ||\n    target.closest('.p-colorpicker') !== null ||\n    target.closest('.p-inputnumber') !== null ||\n    target.closest('.p-calendar') !== null ||\n    target.closest('.p-cascadeselect') !== null ||\n    target.closest('.p-treeselect') !== null ||\n    target.closest('[data-pc-section=\"panel\"]') !== null\n  );\n}\n","import { cloneDeep, isArray } from 'lodash';\nimport { ControlConfig, ControlFilterCondition, DatePickerControlProps, EditorBaseField } from '../interfaces';\nimport { SafeAny } from '../types';\nimport { ControlTypesEnum } from '../enums';\n\n/**\n * 格式化日期为 yyyy-MM-dd 格式\n * @param date Date对象\n * @returns 格式化后的日期字符串\n */\nexport function formatDateToString(date: Date): string {\n  const year = date.getFullYear();\n  const month = String(date.getMonth() + 1).padStart(2, '0');\n  const day = String(date.getDate()).padStart(2, '0');\n  return `${year}-${month}-${day}`;\n}\n\nexport function convertDateToString(value?: Date | Date[]) {\n  if (!value) return null;\n\n  if (isArray(value)) {\n    return value.map((date) => {\n      if (!date) return null;\n      return formatDateToString(date);\n    });\n  }\n  return formatDateToString(value);\n}\n\nexport function convertStringToDate(value?: string | string[]): Date | Date[] | null {\n  if (!value) return null;\n\n  if (isArray(value)) {\n    return value.map((dateStr) => new Date(dateStr));\n  }\n\n  return new Date(value);\n}\n\n/**\n * 更新字段配置中 children 的特定子字段\n * @param baseField 基础字段配置\n * @param childrenConfig 子字段配置更新对象，key为子字段的key，value为要更新的属性\n * @returns 更新后的字段配置\n */\nexport function updateFieldChildren(baseField: EditorBaseField, childrenConfig: Record<string, Partial<EditorBaseField>>): EditorBaseField {\n  // 深度复制，避免修改原始配置\n  const updatedField = cloneDeep(baseField);\n\n  if (!updatedField.children || !Array.isArray(updatedField.children)) {\n    return updatedField;\n  }\n\n  // 遍历子字段，根据 key 更新对应的配置\n  updatedField.children = updatedField.children.map((child) => {\n    const childKey = child.key;\n    const childUpdates = childrenConfig[childKey];\n\n    if (childUpdates) {\n      return {\n        ...child,\n        ...childUpdates\n      };\n    }\n\n    return child;\n  });\n\n  return updatedField;\n}\n\n/**\n * 便捷方法：专门用于更新 optionsStream\n */\nexport function updateFieldChildrenStream(baseField: EditorBaseField, streamConfig: Record<string, SafeAny>): EditorBaseField {\n  const childrenConfig: Record<string, Partial<EditorBaseField>> = {};\n\n  Object.keys(streamConfig).forEach((key) => {\n    childrenConfig[key] = {\n      optionsStream: streamConfig[key],\n      // 清除 options，优先使用 optionsStream\n      options: undefined\n    };\n  });\n\n  return updateFieldChildren(baseField, childrenConfig);\n}\n\n/**\n * 检查控件的 defaultValue 是否为有效值\n * @param value 控件的 defaultValue\n * @returns 是否为有效值\n */\nfunction isValidValue(value: SafeAny): boolean {\n  // null 或 undefined - 无效\n  if (value === null || value === undefined) {\n    return false;\n  }\n\n  // 空字符串 - 无效\n  if (value === '') {\n    return false;\n  }\n\n  // 空数组 - 无效\n  return !(Array.isArray(value) && value.length === 0);\n}\n\n/**\n * 过滤出有效的控件配置\n * @param controls 控件配置数组\n * @returns 有效的控件配置数组\n */\nfunction filterValidControls(controls: ControlConfig[]): ControlConfig[] {\n  return controls.filter((control) => {\n    return control.isActive && control.bindField && isValidValue(control.defaultValue);\n  });\n}\n\n/**\n * 检查是否为日期选择器控件\n * @param control 控件配置\n * @returns 是否为日期选择器控件\n */\nfunction isDatePickerControl(control: ControlConfig): boolean {\n  return control.controlType === ControlTypesEnum.datePick || (control.props && 'selectionMode' in control.props);\n}\n\n/**\n * 处理日期选择器控件的过滤条件\n * @param control 控件配置\n * @param baseFilter 基础过滤条件\n * @returns 日期过滤条件或null\n */\nfunction createDatePickerFilter(control: ControlConfig, baseFilter: ControlFilterCondition): ControlFilterCondition | null {\n  const dateProps = control.props as DatePickerControlProps;\n  const value = control.defaultValue;\n\n  // 区间选择模式\n  if (dateProps.selectionMode === 'range' && Array.isArray(value) && value.length === 2) {\n    const [startDate, endDate] = convertDateToString(value as Date[])!;\n    return {\n      ...baseFilter,\n      type: 'inRange',\n      from: startDate!,\n      to: endDate!\n    };\n  }\n\n  // 单选模式\n  if (dateProps.selectionMode === 'single') {\n    return {\n      ...baseFilter,\n      type: 'equals',\n      fiter: convertDateToString(value as Date)!\n    };\n  }\n\n  return null;\n}\n\n/**\n * 处理多选控件的过滤条件\n * @param control 控件配置\n * @param baseFilter 基础过滤条件\n * @returns 多选过滤条件\n */\nfunction createMultiSelectFilter(control: ControlConfig, baseFilter: ControlFilterCondition): ControlFilterCondition {\n  return {\n    ...baseFilter,\n    type: 'in',\n    fiter: control.defaultValue\n  };\n}\n\n/**\n * 处理单选控件的过滤条件\n * @param control 控件配置\n * @param baseFilter 基础过滤条件\n * @returns 单选过滤条件\n */\nfunction createSelectFilter(control: ControlConfig, baseFilter: ControlFilterCondition): ControlFilterCondition {\n  return {\n    ...baseFilter,\n    type: 'equals',\n    fiter: control.defaultValue\n  };\n}\n\n/**ss\n * 处理文本类控件的过滤条件\n * @param control 控件配置\n * @param baseFilter 基础过滤条件\n * @returns 文本过滤条件\n */\nfunction createTextFilter(control: ControlConfig, baseFilter: ControlFilterCondition): ControlFilterCondition {\n  return {\n    ...baseFilter,\n    type: 'contains',\n    fiter: control.defaultValue\n  };\n}\n\n/**\n * 根据控件类型创建相应的过滤条件\n * @param control 控件配置\n * @param baseFilter 基础过滤条件\n * @returns 过滤条件\n */\nfunction createControlFilter(control: ControlConfig, baseFilter: ControlFilterCondition): ControlFilterCondition | null {\n  // 日期选择器控件\n  if (isDatePickerControl(control)) {\n    return createDatePickerFilter(control, baseFilter);\n  }\n\n  // 多选控件\n  if (control.controlType === ControlTypesEnum.multiSelect) {\n    return createMultiSelectFilter(control, baseFilter);\n  }\n\n  // 单选控件\n  if (control.controlType === ControlTypesEnum.select) {\n    return createSelectFilter(control, baseFilter);\n  }\n\n  // 文本及其他类型控件\n  return createTextFilter(control, baseFilter);\n}\n\n/**\n * 将控件配置数组转换为过滤条件对象\n * @param controls 控件配置数组\n * @returns 过滤条件对象 {[controlId: string]: ControlFilterCondition}\n */\nexport function convertControlsToFilters(controls: ControlConfig[]): { [controlId: string]: ControlFilterCondition } {\n  const filterMap: { [controlId: string]: ControlFilterCondition } = {};\n  const validControls = filterValidControls(controls);\n\n  validControls.forEach((control) => {\n    const baseFilter: ControlFilterCondition = {\n      columnField: control.bindField\n    };\n\n    const controlFilter = createControlFilter(control, baseFilter);\n    if (controlFilter) {\n      filterMap[control.controlId] = controlFilter;\n    }\n  });\n\n  return filterMap;\n}\n","export function generateUUID(): string {\n  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n    const r = (Math.random() * 16) | 0;\n    const v = c === 'x' ? r : (r & 0x3) | 0x8;\n    return v.toString(16);\n  });\n}\n","import { ComponentInstance, ComponentConfig } from '../interfaces';\n\nexport abstract class AbstractComponentFactory {\n  abstract create(config: ComponentConfig): ComponentInstance;\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractComponentFactory } from '../abstract-component-factory';\nimport { ComponentConfig, ComponentInstance } from '../../interfaces';\nimport { NgxPuzzleControlComponent } from '../../../components';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxPuzzleControlFactoryService extends AbstractComponentFactory {\n  create(config: ComponentConfig): ComponentInstance {\n    return {\n      component: NgxPuzzleControlComponent,\n      config\n    };\n  }\n}\n","import { AbstractComponentFactory } from '../abstract-component-factory';\nimport { ComponentConfig, ComponentInstance } from '../../interfaces';\nimport { Injectable } from '@angular/core';\nimport { NgxPuzzleTableComponent } from '../../../components';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxPuzzleTableFactoryService extends AbstractComponentFactory {\n  create(config: ComponentConfig): ComponentInstance {\n    return {\n      component: NgxPuzzleTableComponent,\n      config\n    };\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractComponentFactory } from '../abstract-component-factory';\nimport { ComponentConfig, ComponentInstance } from '../../interfaces';\nimport { NgxPuzzleTextComponent } from '../../../components';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxPuzzleTextFactoryService extends AbstractComponentFactory {\n  override create(config: ComponentConfig): ComponentInstance {\n    return {\n      component: NgxPuzzleTextComponent,\n      config\n    };\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractComponentFactory } from '../abstract-component-factory';\nimport { ComponentConfig, ComponentInstance } from '../../interfaces';\nimport { NgxPuzzleChartComponent } from '../../../components';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxPuzzleChartFactoryService extends AbstractComponentFactory {\n  create(config: ComponentConfig): ComponentInstance {\n    return {\n      component: NgxPuzzleChartComponent,\n      config\n    };\n  }\n}\n","import { inject, Injectable } from '@angular/core';\nimport {\n  AbstractComponentFactory,\n  NgxPuzzleControlFactoryService,\n  NgxPuzzleTableFactoryService,\n  NgxPuzzleTextFactoryService,\n  NgxPuzzleChartFactoryService\n} from '../../factories';\nimport { ComponentBaseProps, ComponentConfig, DataRequestConfig, Position, Size } from '../../interfaces';\n\nimport { mainTypes } from '../../types';\nimport { INIT_SETTINGS_CONFIG } from '../../constants';\n\n@Injectable({ providedIn: 'root' })\nexport class ComponentRegistryService<TConfigProps extends ComponentBaseProps = ComponentBaseProps, TSubType = string> {\n  private chartFactory = inject(NgxPuzzleChartFactoryService);\n  private tableFactory = inject(NgxPuzzleTableFactoryService);\n  private textFactory = inject(NgxPuzzleTextFactoryService);\n  private controlFactory = inject(NgxPuzzleControlFactoryService);\n\n  private factories: Partial<{ [key in mainTypes]: AbstractComponentFactory }> = {};\n  private components: Map<string, ComponentConfig<TConfigProps, TSubType>> = new Map<string, ComponentConfig<TConfigProps, TSubType>>();\n\n  constructor() {\n    this.initializeDefaultComponents();\n  }\n\n  private initializeDefaultComponents(): void {\n    this.components.set('canvas', structuredClone(INIT_SETTINGS_CONFIG['canvas'] as ComponentConfig<TConfigProps, TSubType>));\n    this.factories['chart'] = this.chartFactory;\n    this.factories['table'] = this.tableFactory;\n    this.factories['text'] = this.textFactory;\n    this.factories['control'] = this.controlFactory;\n  }\n\n  getFactory(type: mainTypes): AbstractComponentFactory {\n    return this.factories[type]!;\n  }\n\n  register(config: ComponentConfig<TConfigProps, TSubType>): void {\n    this.components.set(config.id, structuredClone(config));\n  }\n\n  update(config: ComponentConfig<TConfigProps, TSubType>): void {\n    const { id } = config;\n    const existing = this.components.get(id);\n    if (!existing) return;\n\n    const updated: ComponentConfig<TConfigProps, TSubType> = {\n      ...existing,\n      ...config,\n      props: { ...existing.props, ...config.props }\n    };\n    this.components.set(id, structuredClone(updated));\n  }\n\n  updateProps(id: string, props: TConfigProps): void {\n    const existing = this.components.get(id);\n    if (!existing) return;\n    const updated: ComponentConfig<TConfigProps, TSubType> = {\n      ...existing,\n      props: {\n        ...existing.props,\n        ...props\n      }\n    };\n    this.components.set(id, structuredClone(updated));\n  }\n\n  updatePosition(id: string, pos: Position): void {\n    const existing = this.components.get(id);\n    if (!existing) return;\n\n    const updated: ComponentConfig<TConfigProps, TSubType> = {\n      ...existing,\n      position: pos\n    };\n\n    this.components.set(id, structuredClone(updated));\n  }\n\n  updateSize(id: string, size: Size, position: Position): void {\n    const existing = this.components.get(id);\n    if (!existing) return;\n    const updated: ComponentConfig<TConfigProps, TSubType> = {\n      ...existing,\n      size,\n      position\n    };\n\n    this.components.set(id, structuredClone(updated));\n  }\n\n  updateDataRequest(id: string, dataRequest: DataRequestConfig): void {\n    const existing = this.components.get(id);\n    if (!existing) return;\n    const updated: ComponentConfig<TConfigProps, TSubType> = {\n      ...existing,\n      dataRequest\n    };\n    this.components.set(id, structuredClone(updated));\n  }\n\n  getAll(): ComponentConfig<TConfigProps, TSubType>[] {\n    return Array.from(this.components.values());\n  }\n\n  getById(id: string): ComponentConfig<TConfigProps, TSubType> | undefined {\n    return this.components.get(id);\n  }\n\n  getPropsById(id: string): TConfigProps | undefined {\n    const config = this.getById(id);\n    return config?.props;\n  }\n\n  remove(id: string): void {\n    if (this.components.has(id)) {\n      this.components.delete(id);\n    }\n  }\n\n  /**\n   * 清理所有组件配置，重新初始化为默认状态\n   */\n  clearAll(): void {\n    console.log('[注册表] 开始清理所有组件');\n\n    // 获取需要清理的组件列表\n    const componentIds = Array.from(this.components.keys());\n    console.log('[注册表] 待清理的组件:', componentIds);\n\n    // 清空所有组件\n    this.components.clear();\n\n    // 重新初始化默认组件（如canvas）\n    this.initializeDefaultComponents();\n\n    console.log('[注册表] 所有组件已清理完成，默认组件已恢复');\n  }\n\n  /**\n   * 重置到初始状态，保留工厂但清空组件\n   */\n  reset(): void {\n    this.clearAll();\n  }\n\n  /**\n   * 获取组件数量，用于调试\n   */\n  getComponentCount(): number {\n    return this.components.size;\n  }\n\n  /**\n   * 检查是否有指定ID的组件\n   */\n  hasComponent(id: string): boolean {\n    return this.components.has(id);\n  }\n}\n","import { Injectable } from '@angular/core';\nimport {\n  CanvasMediator,\n  ComponentBaseProps,\n  ComponentConfig,\n  DataRequestConfig,\n  ControlConfig,\n  HistoryActionStack,\n  Position,\n  Size\n} from '../../interfaces';\nimport { ComponentRegistryService } from './component-registry.service';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { isEqual } from 'lodash';\nimport { actionTypes, controlType } from '../../types';\nimport { INIT_SETTINGS_CONFIG } from '../../constants';\nimport { OperationHistoryEnum } from '../../enums';\nimport { DebounceUtil, isTargetInputElement } from '../../utils';\n\n@Injectable({ providedIn: 'root' })\nexport class PuzzleCanvasMediatorService<TConfigProps extends ComponentBaseProps = ComponentBaseProps, TSubType = string>\n  implements CanvasMediator<TConfigProps, TSubType>\n{\n  private actionSnapshot: ComponentConfig<TConfigProps, TSubType> | null = null;\n\n  // 操作记录\n  private historyActionStacks: HistoryActionStack<TConfigProps, TSubType>[] = [];\n\n  // 当前正在进行的操作类型\n  private currentOperationType: OperationHistoryEnum = OperationHistoryEnum.null;\n\n  private addComponentSubject: Subject<ComponentConfig<TConfigProps, TSubType>> = new Subject<ComponentConfig<TConfigProps, TSubType>>();\n  public readonly componentAdd$: Observable<ComponentConfig<TConfigProps, TSubType>> = this.addComponentSubject.asObservable();\n\n  private componentSelectSubject: Subject<ComponentConfig<TConfigProps, TSubType>> = new BehaviorSubject<\n    ComponentConfig<TConfigProps, TSubType>\n  >(INIT_SETTINGS_CONFIG['canvas'] as ComponentConfig<TConfigProps, TSubType>);\n  public readonly componentSelect$: Observable<ComponentConfig<TConfigProps, TSubType>> = this.componentSelectSubject.asObservable();\n\n  private updateComponentPropsSubject: Subject<{ id: string; props: TConfigProps }> = new Subject<{ id: string; props: TConfigProps }>();\n  public readonly componentUpdateProps$: Observable<{ id: string; props: TConfigProps }> = this.updateComponentPropsSubject.asObservable();\n\n  private updateComponentConfigSubject: Subject<ComponentConfig<TConfigProps, TSubType>> = new Subject<\n    ComponentConfig<TConfigProps, TSubType>\n  >();\n  public readonly componentUpdateConfig$: Observable<ComponentConfig<TConfigProps, TSubType>> =\n    this.updateComponentConfigSubject.asObservable();\n\n  private movingComponentSubject: Subject<{ id: string; position: Position }> = new Subject<{ id: string; position: Position }>();\n  public readonly componentMoving$: Observable<{ id: string; position: Position }> = this.movingComponentSubject.asObservable();\n\n  private resizeComponentSubject: Subject<{ id: string; position: Position; size: Size }> = new Subject<{\n    id: string;\n    position: Position;\n    size: Size;\n  }>();\n  public readonly componentResize$: Observable<{ id: string; position: Position; size: Size }> = this.resizeComponentSubject.asObservable();\n\n  private removeComponentSubject: Subject<string> = new Subject<string>();\n  public readonly componentRemove$: Observable<string> = this.removeComponentSubject.asObservable();\n\n  // private UndoComponentSubject: Subject<void> = new Subject<void>();\n  // public readonly componentUndo$: Observable<void> = this.UndoComponentSubject.asObservable();\n\n  // 抽屉切换\n  private drawerWideModeSubject = new BehaviorSubject<boolean>(false);\n  public readonly drawerWideMode$ = this.drawerWideModeSubject.asObservable();\n\n  // 数据参数\n  private dataRequestSubject = new Subject<{ id: string; dataRequest: DataRequestConfig }>();\n  public readonly dataRequest$ = this.dataRequestSubject.asObservable();\n\n  // 控件\n  private controlsSubject = new Subject<{ id: string; controls: Record<controlType, ControlConfig> }>();\n  public readonly controls$ = this.controlsSubject.asObservable();\n\n  private _currentSelectId!: string;\n\n  constructor(private registry: ComponentRegistryService<TConfigProps, TSubType>) {}\n\n  /**\n   * 刷新指定操作类型的防抖历史记录\n   */\n  private flushPendingHistory(excludeType?: OperationHistoryEnum): void {\n    // 刷新所有其他类型的防抖历史记录\n    if (excludeType !== OperationHistoryEnum.props) {\n      DebounceUtil.flush(OperationHistoryEnum.props);\n    }\n    if (excludeType !== OperationHistoryEnum.move) {\n      DebounceUtil.flush(OperationHistoryEnum.move);\n    }\n    if (excludeType !== OperationHistoryEnum.resize) {\n      DebounceUtil.flush(OperationHistoryEnum.resize);\n    }\n  }\n\n  /**\n   * 开始新操作前的准备工作\n   */\n  private prepareForNewOperation(newOperationType: OperationHistoryEnum): void {\n    // 如果切换到不同类型的操作，立即执行之前操作的防抖历史记录\n    if (this.currentOperationType && this.currentOperationType !== newOperationType) {\n      console.log(`[中介器] 操作类型切换: ${this.currentOperationType} -> ${newOperationType}，立即记录前一操作历史`);\n      this.flushPendingHistory(newOperationType);\n    }\n    this.currentOperationType = newOperationType;\n  }\n\n  /**\n   * 防抖记录属性更新历史 - 使用 actionSnapshot 的快照\n   */\n  private debouncedRecordPropsHistory = DebounceUtil.create(\n    (id: string) => {\n      // 使用选中时保存的快照来记录历史\n      if (this.actionSnapshot && this.actionSnapshot.id === id) {\n        this.recordHistory(this.actionSnapshot, 'update');\n        console.log(`[中介器] 防抖记录属性历史: update`, {\n          id,\n          stackLength: this.historyActionStacks.length,\n          actionSnapshot: this.actionSnapshot\n        });\n\n        // 更新快照为当前状态，为下一次操作做准备\n        const currentConfig = this.registry.getById(id);\n        if (currentConfig) {\n          this.actionSnapshot = structuredClone(currentConfig);\n        }\n      }\n      this.currentOperationType = OperationHistoryEnum.null;\n    },\n    500,\n    OperationHistoryEnum.props\n  );\n\n  /**\n   * 防抖记录移动历史\n   */\n  private debouncedRecordMoveHistory = DebounceUtil.create(\n    (id: string) => {\n      if (this.actionSnapshot && this.actionSnapshot.id === id) {\n        this.recordHistory(this.actionSnapshot, 'move');\n        console.log(`[中介器] 防抖记录移动历史: move`, {\n          id,\n          stackLength: this.historyActionStacks.length\n        });\n\n        // 更新快照为当前状态\n        const currentConfig = this.registry.getById(id);\n        if (currentConfig) {\n          this.actionSnapshot = structuredClone(currentConfig);\n        }\n      }\n      this.currentOperationType = OperationHistoryEnum.null;\n    },\n    500,\n    OperationHistoryEnum.move\n  );\n\n  /**\n   * 防抖记录缩放历史\n   */\n  private debouncedRecordResizeHistory = DebounceUtil.create(\n    (id: string) => {\n      if (this.actionSnapshot && this.actionSnapshot.id === id) {\n        this.recordHistory(this.actionSnapshot, 'resize');\n        console.log(`[中介器] 防抖记录缩放历史: resize`, {\n          id,\n          stackLength: this.historyActionStacks.length\n        });\n\n        // 更新快照为当前状态\n        const currentConfig = this.registry.getById(id);\n        if (currentConfig) {\n          this.actionSnapshot = structuredClone(currentConfig);\n        }\n      }\n      this.currentOperationType = OperationHistoryEnum.null;\n    },\n    500,\n    OperationHistoryEnum.resize\n  );\n\n  getCurrentSelect(): ComponentConfig<TConfigProps, TSubType> {\n    return this.registry.getById(this._currentSelectId)!;\n  }\n\n  addComponent(config: ComponentConfig<TConfigProps, TSubType>, recordHistory = true): void {\n    this.registry.register(config);\n    this.addComponentSubject.next(config);\n    if (recordHistory) {\n      this.recordHistory(config, 'add');\n    }\n  }\n\n  /**\n   * 全量更新,慎用\n   * @param config\n   */\n  updateComponentConfig(config: ComponentConfig<TConfigProps, TSubType>): void {\n    this.registry.update(config);\n    this.updateComponentConfigSubject.next(config);\n  }\n\n  /**\n   * 更新但不通知\n   * @param config\n   */\n  updateComponentData(config: ComponentConfig<TConfigProps, TSubType>) {\n    this.registry.update(config);\n  }\n\n  /**\n   * 主要用于右侧面板更新通知子组件\n   * @param id\n   * @param props\n   * @param recordHistory 更新历史记录\n   */\n  updateComponentProps(id: string, props: TConfigProps, recordHistory = true): void {\n    const prev = this.registry.getPropsById(id);\n    if (!prev) return;\n    const hasChanges = !isEqual(prev, props);\n    if (!hasChanges) return;\n    this.registry.updateProps(id, props);\n    this.updateComponentPropsSubject.next({ id, props });\n\n    if (recordHistory) {\n      this.prepareForNewOperation(OperationHistoryEnum.props);\n      this.debouncedRecordPropsHistory(id);\n    }\n  }\n\n  selectComponent(id: string): void {\n    if (this._currentSelectId === id && id !== 'canvas') return;\n    this._currentSelectId = id;\n    const config = this.registry.getById(id);\n\n    if (!config) {\n      console.warn(`[中介器] 组件 ${id} 不存在，无法选中`);\n      return;\n    }\n\n    // 选中时立即刷新所有防抖历史记录\n    this.flushPendingHistory();\n    this.currentOperationType = OperationHistoryEnum.null;\n    console.log(`selectComponent`, config);\n    // 每次选中时更新快照\n    this.actionSnapshot = structuredClone(config);\n    this.componentSelectSubject.next(config);\n    this.clearAllInputFocus();\n    console.log(`[中介器] 组件选中，更新快照: ${id}`);\n  }\n\n  /**\n   * 移动结束时防抖记录历史\n   */\n  movingComponent(id: string, position: Position, recordHistory = true): void {\n    try {\n      this.registry.updatePosition(id, position);\n      this.movingComponentSubject.next({ id, position });\n      // 使用防抖记录历史\n      if (recordHistory) {\n        this.prepareForNewOperation(OperationHistoryEnum.move);\n        this.debouncedRecordMoveHistory(id);\n      }\n    } catch (error) {\n      console.warn(`[中介器] 移动组件时出错: ${id}`, error);\n    }\n  }\n\n  /**\n   * 缩放结束时防抖记录历史\n   */\n  resizeComponent(id: string, size: Size, position: Position, recordHistory = true): void {\n    try {\n      this.registry.updateSize(id, size, position);\n      this.resizeComponentSubject.next({ id, size, position });\n      // 使用防抖记录历史\n      if (recordHistory) {\n        this.prepareForNewOperation(OperationHistoryEnum.resize);\n        this.debouncedRecordResizeHistory(id);\n      }\n    } catch (error) {\n      console.warn(`[中介器] 缩放组件时出错: ${id}`, error);\n    }\n  }\n\n  // 移除\n  removeComponent(id: string, recordHistory = true): void {\n    // 检查组件是否存在\n    const config = this.registry.getById(id);\n    if (!config) {\n      console.warn(`[中介器] 尝试删除不存在的组件: ${id}`);\n      return;\n    }\n\n    // 删除前立即刷新所有防抖历史记录\n    if (recordHistory) {\n      this.flushPendingHistory();\n      this.currentOperationType = OperationHistoryEnum.null;\n      this.recordHistory(config, 'remove');\n    }\n\n    this.registry.remove(id);\n    this.removeComponentSubject.next(id);\n\n    // 如果删除的是当前选中的组件，需要重置选中状态\n    if (this._currentSelectId === id) {\n      this.selectComponent('canvas'); // 选中画布\n    }\n  }\n\n  /**\n   * 处理删除键按下事件\n   */\n  handleDeleteKeyPress(event: KeyboardEvent): void {\n    const currentSelectedId = this.getCurrentSelectedId();\n\n    if (!currentSelectedId || currentSelectedId === 'canvas') {\n      console.log('[中介器] 没有选中的组件可以删除');\n      return;\n    }\n\n    // 检查是否在输入元素中\n    const isInputElement = isTargetInputElement(event.target as HTMLElement);\n\n    if (isInputElement) {\n      return;\n    }\n\n    this.removeComponent(currentSelectedId);\n\n    event.preventDefault();\n  }\n\n  // 记录历史操作\n  recordHistory(config: ComponentConfig<TConfigProps, TSubType>, activeType: actionTypes): void {\n    this.historyActionStacks.push({\n      type: activeType,\n      config,\n      timestamp: Date.now()\n    });\n    console.log(`[中介器] 记录历史操作: ${activeType}`, { id: config.id, stackLength: this.historyActionStacks.length });\n  }\n\n  handleUndoKeyPress(event: KeyboardEvent): void {\n    // 检查是否在输入元素中\n    const isInputElement = isTargetInputElement(event.target as HTMLElement);\n    if (isInputElement) {\n      return;\n    }\n\n    this.undoComponent();\n    event.preventDefault();\n  }\n\n  // 撤销 - 修改撤销逻辑，确保不会重复记录历史\n  undoComponent(): void {\n    if (this.historyActionStacks.length > 0) {\n      // 撤销前先刷新所有防抖历史记录\n      this.flushPendingHistory();\n      this.currentOperationType = OperationHistoryEnum.null;\n\n      const undoHistoryAction: HistoryActionStack<TConfigProps, TSubType> = this.historyActionStacks.pop()!;\n      const { type, config } = undoHistoryAction;\n      const { id, size, position, props } = config;\n\n      console.log(`[中介器] 执行撤销操作: ${type}`, { id, stackLength: this.historyActionStacks.length });\n\n      switch (type) {\n        case 'add':\n          this.removeComponent(id, false);\n          break;\n        case 'remove':\n          this.addComponent(config, false);\n          break;\n        case 'resize':\n          // 撤销时不记录历史\n          this.resizeComponent(id, size, position, false);\n          break;\n        case 'move':\n          // 移动操作撤销时也要避免记录历史\n          this.movingComponent(id, position, false);\n          break;\n        case 'update':\n          // 属性更新撤销\n          this.updateComponentProps(id, props, false);\n          break;\n        default:\n          break;\n      }\n\n      // 撤销后更新快照\n      if (id === this._currentSelectId) {\n        this.actionSnapshot = structuredClone(config);\n      }\n    } else {\n      console.log(`[中介器] 没有可撤销的操作`);\n    }\n  }\n\n  // set 抽屉状态\n  setDrawerWideMode(isWide: boolean): void {\n    this.drawerWideModeSubject.next(isWide);\n  }\n\n  updateDataRequest(id: string, dataRequest: DataRequestConfig) {\n    this.registry.updateDataRequest(id, dataRequest);\n    this.dataRequestSubject.next({ id, dataRequest });\n  }\n\n  // updateControls(id: string, controls: Record<controlType, ControlConfig>) {\n  // \tthis.registry.updateControls(id, controls);\n  // \tthis.controlsSubject.next({ id, controls });\n  // }\n\n  // 清除聚焦\n  clearAllInputFocus() {\n    const inputs = document.querySelectorAll('input');\n    inputs.forEach((input) => input.blur());\n  }\n\n  /**\n   * 重置 mediator 到初始状态\n   */\n  reset(): void {\n    console.log('[中介器] 开始重置到初始状态');\n\n    // 取消所有防抖\n    DebounceUtil.clearAll();\n    this.currentOperationType = OperationHistoryEnum.null;\n\n    // 清空历史记录栈\n    this.historyActionStacks = [];\n\n    // 重置快照\n    this.actionSnapshot = null;\n\n    // 重置当前选中状态到默认（canvas）\n    this._currentSelectId = 'canvas';\n\n    // 重置抽屉状态\n    this.drawerWideModeSubject.next(false);\n\n    // 重新发送默认选中状态\n    const canvasConfig = INIT_SETTINGS_CONFIG['canvas'] as ComponentConfig<TConfigProps, TSubType>;\n    this.componentSelectSubject.next(canvasConfig);\n\n    console.log('[中介器] 重置完成');\n  }\n\n  /**\n   * 清空历史记录栈\n   */\n  clearHistory(): void {\n    this.historyActionStacks = [];\n    console.log('[中介器] 历史记录已清空');\n  }\n\n  /**\n   * 获取历史记录数量，用于调试\n   */\n  getHistoryCount(): number {\n    return this.historyActionStacks.length;\n  }\n\n  /**\n   * 获取当前选中的组件ID\n   */\n  getCurrentSelectedId(): string {\n    return this._currentSelectId;\n  }\n}\n","import { Injectable, ViewContainerRef, ComponentRef, EnvironmentInjector } from '@angular/core';\nimport { ComponentInstance } from '../../interfaces';\n\n@Injectable({ providedIn: 'root' })\nexport class ComponentInjectorService {\n  private containerRef: ViewContainerRef | null = null;\n  private componentRefs = new Map<string, ComponentRef<any>>();\n\n  constructor(private envInjector: EnvironmentInjector) {}\n\n  setContainerRef(ref: ViewContainerRef) {\n    this.containerRef = ref;\n  }\n\n  createComponent(instance: ComponentInstance, isEdit = true): ComponentRef<any> | null {\n    if (!this.containerRef) return null;\n\n    const compRef = this.containerRef.createComponent(instance.component, {\n      injector: this.envInjector\n    });\n    compRef.instance.config = instance.config;\n    compRef.instance.isEdit = isEdit;\n    this.componentRefs.set(instance.config.id, compRef);\n    return compRef;\n  }\n\n  destroyComponent(id: string): void {\n    const compRef = this.componentRefs.get(id);\n    if (compRef) {\n      compRef.destroy();\n      this.componentRefs.delete(id);\n      console.log('[注入器] 已销毁组件:', id);\n    }\n  }\n\n  /**\n   * 清理所有组件引用和容器\n   */\n  clearAll(): void {\n    console.log('[注入器] 正在清理所有组件');\n\n    // 销毁所有组件引用\n    this.componentRefs.forEach((compRef, id) => {\n      try {\n        compRef.destroy();\n        console.log('[注入器] 已销毁组件:', id);\n      } catch (error) {\n        console.warn('[注入器] 销毁组件时出错:', id, error);\n      }\n    });\n\n    // 清空组件引用Map\n    this.componentRefs.clear();\n\n    // 清空容器内容\n    if (this.containerRef) {\n      this.containerRef.clear();\n    }\n\n    console.log('[注入器] 所有组件已清理完成');\n  }\n\n  /**\n   * 获取所有组件引用的数量，用于调试\n   */\n  getComponentCount(): number {\n    return this.componentRefs.size;\n  }\n\n  /**\n   * 检查是否有指定ID的组件\n   */\n  hasComponent(id: string): boolean {\n    return this.componentRefs.has(id);\n  }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SessionIndexedDbService {\n  private dbName = 'biSessionDB';\n  private dbVersion = 1;\n  private db: IDBDatabase | null = null;\n  private readonly sessionId: string;\n\n  constructor() {\n    // 创建或获取本次会话的唯一ID\n    this.sessionId = this.getOrCreateSessionId();\n  }\n\n  private getOrCreateSessionId(): string {\n    // 使用 session cookie 存储会话ID\n    const sessionId = document.cookie\n      .split('; ')\n      .find((row) => row.startsWith('sessionId='))\n      ?.split('=')[1];\n\n    if (sessionId) {\n      return sessionId;\n    } else {\n      const newId = 'session-' + Math.random().toString(36).substring(2, 11);\n      document.cookie = `sessionId=${newId}; path=/; SameSite=Lax`;\n      return newId;\n    }\n  }\n\n  public async initDatabase(): Promise<IDBDatabase> {\n    return new Promise((resolve, reject) => {\n      const request = indexedDB.open(this.dbName, this.dbVersion);\n\n      request.onupgradeneeded = (event: IDBVersionChangeEvent) => {\n        const db = (event.target as IDBOpenDBRequest).result;\n\n        if (!db.objectStoreNames.contains('sessionData')) {\n          const store = db.createObjectStore('sessionData', { keyPath: 'id' });\n          store.createIndex('sessionId', 'sessionId', { unique: false });\n          store.createIndex('expires', 'expires', { unique: false });\n        }\n      };\n\n      request.onsuccess = (event: Event) => {\n        this.db = (event.target as IDBOpenDBRequest).result;\n        this.cleanupExpiredData(); // 初始化时清理过期数据\n        resolve(this.db);\n      };\n\n      request.onerror = (event: Event) => {\n        reject('IndexedDB error: ' + (event.target as IDBOpenDBRequest).error);\n      };\n    });\n  }\n\n  // 存储数据并设置过期时间（单位：毫秒）\n  public async setItem(key: string, value: any, ttl?: number): Promise<void> {\n    if (!this.db) await this.initDatabase();\n\n    const transaction = this.db!.transaction('sessionData', 'readwrite');\n    const store = transaction.objectStore('sessionData');\n\n    const expires = ttl ? Date.now() + ttl : undefined;\n\n    store.put({\n      id: key,\n      sessionId: this.sessionId,\n      value,\n      expires,\n      createdAt: Date.now()\n    });\n  }\n\n  // 获取数据（自动过滤过期数据）\n  public async getItem(key: string): Promise<any> {\n    if (!this.db) await this.initDatabase();\n    console.log(`getItem: ${key}`);\n    const transaction = this.db!.transaction('sessionData', 'readonly');\n    const store = transaction.objectStore('sessionData');\n    const request = store.get(key);\n\n    return new Promise((resolve, reject) => {\n      request.onsuccess = () => {\n        const item = request.result;\n        if (item && (!item.expires || item.expires > Date.now())) {\n          resolve(item.value);\n        } else {\n          if (item) this.deleteItem(key); // 自动删除过期数据\n          resolve(null);\n        }\n      };\n      request.onerror = () => reject(request.error);\n    });\n  }\n\n  // 清理过期数据和旧会话数据\n  private async cleanupExpiredData(): Promise<void> {\n    if (!this.db) return;\n\n    const transaction = this.db.transaction('sessionData', 'readwrite');\n    const store = transaction.objectStore('sessionData');\n    const now = Date.now();\n\n    // 删除过期数据\n    const expiresIndex = store.index('expires');\n    const expiresRequest = expiresIndex.openCursor(IDBKeyRange.upperBound(now));\n\n    expiresRequest.onsuccess = (event: Event) => {\n      const cursor = (event.target as IDBRequest).result;\n      if (cursor) {\n        cursor.delete();\n        cursor.continue();\n      }\n    };\n\n    // 删除非当前会话的数据（模拟sessionStorage行为）\n    const sessionIndex = store.index('sessionId');\n    const sessionRequest = sessionIndex.openCursor();\n\n    sessionRequest.onsuccess = (event: Event) => {\n      const cursor = (event.target as IDBRequest).result;\n      if (cursor) {\n        if (cursor.value.sessionId !== this.sessionId) {\n          cursor.delete();\n        }\n        cursor.continue();\n      }\n    };\n  }\n\n  // 删除数据\n  public async deleteItem(key: string): Promise<void> {\n    if (!this.db) await this.initDatabase();\n\n    const transaction = this.db!.transaction('sessionData', 'readwrite');\n    const store = transaction.objectStore('sessionData');\n    await store.delete(key);\n  }\n\n  // 清空当前会话的所有数据\n  public async clearSession(): Promise<void> {\n    if (!this.db) await this.initDatabase();\n\n    const transaction = this.db!.transaction('sessionData', 'readwrite');\n    const store = transaction.objectStore('sessionData');\n    const index = store.index('sessionId');\n    const request = index.openCursor(IDBKeyRange.only(this.sessionId));\n\n    return new Promise((resolve, reject) => {\n      request.onsuccess = (event: Event) => {\n        const cursor = (event.target as IDBRequest).result;\n        if (cursor) {\n          cursor.delete();\n          cursor.continue();\n        } else {\n          resolve();\n        }\n      };\n      request.onerror = () => reject(request.error);\n    });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseSelectOption, ControlConfig, ControlFilterCondition } from '../../interfaces';\nimport { BehaviorSubject, Observable, shareReplay, Subject } from 'rxjs';\nimport { SafeAny } from '../../types';\nimport { map } from 'rxjs/operators';\nimport { convertControlsToFilters } from '../../utils';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ControlsService {\n  private _controlMap = new Map<string, ControlConfig>();\n\n  private controlsSubject = new BehaviorSubject<ControlConfig[]>([]);\n  public controls$ = this.controlsSubject.asObservable();\n\n  private controlValueChangeSubject = new Subject<{ controlId: string; controlFilters: { [controlId: string]: ControlFilterCondition } }>();\n  public controlValueChange$ = this.controlValueChangeSubject.asObservable();\n\n  public availableControlOptions$: Observable<BaseSelectOption[]> = this.controls$.pipe(\n    map((controls) => {\n      return controls\n        .filter((control) => control?.isActive)\n        .map((control) => ({\n          label: control?.alias || `控件_${control.controlId.slice(-4)}`,\n          val: control.controlId\n        }));\n    }),\n    shareReplay(1)\n  );\n\n  constructor() {}\n\n  /**\n   * 添加或更新控件\n   */\n  setControl(control: ControlConfig): void {\n    // console.log(`添加或更新控件`, control);\n    this._controlMap.set(control.controlId, control);\n    this.emitControlsUpdate();\n  }\n\n  /**\n   * 控件值变化通知\n   */\n  notifyControlValueChange(controlId: string, value: SafeAny): void {\n    const control = this._controlMap.get(controlId);\n    if (control) {\n      // 更新控件值\n      const updatedControl = { ...control, defaultValue: value };\n      this._controlMap.set(control.controlId, updatedControl);\n\n      // 多播控件值变化 - 传递全量的过滤条件对象\n      this.controlValueChangeSubject.next({\n        controlId,\n        controlFilters: convertControlsToFilters(Array.from(this._controlMap.values()))\n      });\n      // 更新响应式流\n      this.emitControlsUpdate();\n    }\n  }\n\n  /**\n   * 获取当前所有过滤条件\n   */\n  getCurrentControlFilters(): { [controlId: string]: ControlFilterCondition } {\n    return convertControlsToFilters(Array.from(this._controlMap.values()));\n  }\n\n  /**\n   * 获取单个控件\n   */\n  getControl(controlId: string): ControlConfig | undefined {\n    return this._controlMap.get(controlId);\n  }\n\n  /**\n   * 获取控件当前值\n   */\n  getControlValue(controlId: string): SafeAny {\n    return this._controlMap.get(controlId)?.defaultValue || null;\n  }\n\n  /**\n   * 删除控件\n   * @param controlId\n   */\n  deleteControlByControlId(controlId: string): void {\n    this._controlMap.delete(controlId);\n    this.emitControlsUpdate();\n  }\n\n  /**\n   * 清理所有控件（页面切换时使用）\n   */\n  clearAll(): void {\n    this._controlMap.clear();\n    this.emitControlsUpdate();\n  }\n\n  // ===== 私有方法 =====\n\n  /**\n   * 更新响应式流\n   */\n  private emitControlsUpdate(): void {\n    const controlsArray = Array.from(this._controlMap.values());\n    this.controlsSubject.next(controlsArray);\n  }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, of, shareReplay } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { SafeAny } from '../../types';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DataSearchService {\n  private http: HttpClient = inject(HttpClient);\n\n  private orgCache = new Map<number, string>();\n\n  webSearchMap(params: SafeAny): Observable<any> {\n    return this.http.post('searchMap', params).pipe(\n      map((response: any) => {\n        return response;\n      })\n    );\n  }\n\n  rfd(orgId: number): Observable<string> {\n    // 先检查缓存\n    if (this.orgCache.has(orgId)) {\n      return of(this.orgCache.get(orgId)!);\n    }\n\n    const rfdParams = {\n      modelName: 'pmOrg',\n      labelField: 'orgName',\n      valueField: 'id',\n      type: '=',\n      fiter: orgId,\n      whereField: 'id'\n    };\n\n    // 创建请求，提取 label 并缓存\n    return this.http.post('RFD', rfdParams).pipe(\n      map((response: any) => {\n        const orgName = response[0]?.label || '';\n        this.orgCache.set(orgId, orgName);\n        return orgName;\n      }),\n      shareReplay(1)\n    );\n  }\n\n  /**\n   * 清空组织缓存\n   */\n  clearOrgCache() {\n    this.orgCache.clear();\n  }\n}\n","import { Injectable, signal } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ZoomScaleService {\n  // 正向缩放（外层缩放）\n  private readonly _scale = signal(1);\n  readonly scale = this._scale.asReadonly();\n\n  setScale(value: number) {\n    console.log(`setScale: ${value}`);\n    this._scale.set(value);\n  }\n\n  get reverseZoom() {\n    const s = this._scale();\n    return s === 0 ? 1 : 1 / s;\n  }\n}\n","// 内部服务 - 不对外暴露\nexport { PuzzleCanvasMediatorService } from './canvas-mediator.service';\nexport { ComponentRegistryService } from './component-registry.service';\nexport { ComponentInjectorService } from './component-inject.service';\nexport { SessionIndexedDbService } from './session-indexed-db.service';\nexport { ControlsService } from './controls.service';\nexport { DataSearchService } from './data-search.service';\nexport { ZoomScaleService } from './zoom-scale.service';\n","import { Injectable } from '@angular/core';\nimport { ComponentConfig } from '../../interfaces';\nimport { ComponentRegistryService, SessionIndexedDbService, ComponentInjectorService, PuzzleCanvasMediatorService } from '../internal';\nimport { generateUUID } from '../../utils';\n\n/**\n * 向其他模块暴露BI功能的外部服务\n */\n@Injectable({\n  providedIn: 'root'\n})\nexport class NgxPuzzleExternalService {\n  constructor(\n    private sessionService: SessionIndexedDbService,\n    private injector: ComponentInjectorService,\n    private registry: ComponentRegistryService,\n    private mediator: PuzzleCanvasMediatorService\n  ) {}\n\n  /**\n   * 获取所有当前组件配置\n   * @returns 组件配置数组\n   */\n  public getAllConfigs(): ComponentConfig[] {\n    return this.registry.getAll();\n  }\n\n  /**\n   * 使用给定配置初始化组件\n   * @param configs 组件配置数组或单个组件配置\n   */\n  public initializeComponent(configs: ComponentConfig[] | ComponentConfig): void {\n    this.resetAllComponents();\n\n    // 处理单个配置的情况\n    if (!Array.isArray(configs)) {\n      configs = [configs];\n    }\n\n    // 处理配置数组\n    configs.forEach((config) => {\n      if (config.type === 'canvas') {\n        // 对于canvas类型组件，使用mediator更新配置\n        this.mediator.updateComponentConfig(config);\n        console.log(`[BI服务] 初始化canvas组件`, config);\n        // 延迟选择组件\n        setTimeout(() => {\n          this.mediator.selectComponent('canvas');\n        }, 200);\n      } else {\n        // 对于其他类型组件，使用标准创建方法\n        this.createComponent(config);\n      }\n    });\n  }\n\n  /**\n   * 创建单个组件\n   * @param config 组件配置\n   * @private\n   */\n  private createComponent(config: ComponentConfig): void {\n    const factory = this.registry.getFactory(config.type);\n    if (!factory) {\n      console.error(`[BI服务] 未找到组件类型的工厂: ${config.type}`);\n      return;\n    }\n\n    const instance = factory.create(config);\n    this.registry.register(config);\n    this.injector.createComponent(instance, true);\n  }\n\n  /**\n   * 生成预览ID并存储当前组件配置\n   * @param ttl 可选的生存时间（毫秒）\n   * @returns 包含生成的预览ID的Promise\n   */\n  public async generatePreviewId(ttl?: number): Promise<string> {\n    const allConfigs = this.registry.getAll();\n    const uuid = generateUUID();\n\n    await this.sessionService.setItem(uuid, allConfigs, ttl);\n\n    return uuid;\n  }\n\n  /**\n   * 通过预览ID获取组件配置\n   * @param previewId 预览ID\n   * @returns 包含组件配置的Promise，如果未找到则为null\n   */\n  public async getConfigsByPreviewId(previewId: string): Promise<ComponentConfig[] | null> {\n    return this.sessionService.getItem(previewId);\n  }\n\n  /**\n   * 通过清除注册表、注入器和中介者状态来重置所有组件\n   * 此方法可用于将BI编辑器初始化为干净状态\n   */\n  public resetAllComponents(): void {\n    console.log('[BI服务] 开始重置所有组件');\n\n    // 清除组件注册表\n    this.registry.clearAll();\n\n    // 清除注入的组件\n    this.injector.clearAll();\n\n    // 重置中介者状态\n    this.mediator.reset();\n\n    console.log('[BI服务] 所有组件重置成功');\n  }\n\n  // private initializeConfigData(config: ComponentConfig): ComponentConfig {\n  // \tif (!config?.controls?.datePick) {\n  // \t\treturn config;s\n  // \t}\n  //\n  // \tconst datePickControl = config.controls.datePick;\n  //\n  // \tconfig.controls.datePick = {\n  // \t\t...datePickControl,\n  // \t\tprops: {\n  // \t\t\t...datePickControl.props,\n  // \t\t\tminDate: parseDate(datePickControl.props?.minDate),\n  // \t\t\tmaxDate: parseDate(datePickControl.props?.maxDate),\n  // \t\t},\n  // \t\tdefaultValue: parseDate(datePickControl.defaultValue),\n  // \t};\n  //\n  // \treturn config;\n  // }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject, BehaviorSubject } from 'rxjs';\nimport {\n  DataRequestConfig,\n  NgxPuzzleControlChangeNotification,\n  NgxPuzzleDataBindingRequest,\n  NgxPuzzleDataBindingResponse\n} from '../../interfaces';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { PuzzleCanvasMediatorService } from '../internal';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class NgxPuzzleDataBindingService {\n  // 数据绑定请求流\n  private bindingRequestSubject = new Subject<NgxPuzzleDataBindingRequest>();\n  public readonly bindingRequest$ = this.bindingRequestSubject.asObservable();\n\n  // 数据绑定响应流\n  private bindingResponseSubject = new Subject<NgxPuzzleDataBindingResponse>();\n  public readonly bindingResponse$ = this.bindingResponseSubject.asObservable();\n\n  // 控件变化通知流 - 通知外部控件变化了\n  private controlChangeSubject = new Subject<NgxPuzzleControlChangeNotification>();\n  public readonly controlChange$ = this.controlChangeSubject.asObservable();\n\n  // 当前激活的绑定请求\n  private activeRequestSubject = new BehaviorSubject<NgxPuzzleDataBindingRequest | null>(null);\n  public readonly activeRequest$ = this.activeRequestSubject.asObservable();\n\n  // 组件数据请求存储 - 用于 hash 对比\n  private componentDataRequests = new Map<string, DataRequestConfig>();\n\n  // 数据绑定删除通知流\n  private bindingDeleteSubject = new Subject<{ componentId: string; seriesIndex: number }>();\n  public readonly bindingDelete$ = this.bindingDeleteSubject.asObservable();\n\n  constructor(private mediator: PuzzleCanvasMediatorService) {}\n\n  /**\n   * 请求数据绑定\n   */\n  requestBinding(request: NgxPuzzleDataBindingRequest): void {\n    console.log('[NgxPuzzle数据绑定] 发起绑定请求:', request);\n    this.activeRequestSubject.next(request);\n    this.bindingRequestSubject.next(request);\n  }\n\n  /**\n   * 响应数据绑定 - 外部传入数据流\n   */\n  responseBinding(response: NgxPuzzleDataBindingResponse): void {\n    console.log('[NgxPuzzle数据绑定] 完成绑定响应:', response);\n    const { componentId, dataRequest } = response;\n    this.mediator.updateDataRequest(componentId, dataRequest);\n\n    this.componentDataRequests.set(componentId, dataRequest);\n\n    this.bindingResponseSubject.next(response);\n    this.activeRequestSubject.next(null);\n  }\n\n  /**\n   * 通知控件变化 - 内部调用，通知外部\n   */\n  notifyControlChange(componentId: string, controlId: string, controlFilters: SafeAny): void {\n    console.log('[NgxPuzzle数据绑定] 通知控件变化:', { componentId, controlId, controlFilters });\n\n    this.controlChangeSubject.next({\n      componentId,\n      controlId,\n      controlFilters\n    });\n  }\n\n  /**\n   * 获取数据流的 hash - 用于对比\n   */\n  getDataStreamHash(dataStream: Observable<SafeAny>): string {\n    // 简单使用流的引用作为标识\n    return `stream_${(dataStream as any).__streamId || Math.random().toString(36)}`;\n  }\n\n  /**\n   * 删除特定系列的数据绑定\n   */\n  removeSeriesBinding(componentId: string, seriesIndex: number): void {\n    console.log('[NgxPuzzle数据绑定] 删除系列绑定:', { componentId, seriesIndex });\n\n    const dataRequest = this.componentDataRequests.get(componentId);\n    if (dataRequest && dataRequest.apiSources) {\n      // 删除对应索引的数据流\n      dataRequest.apiSources.splice(seriesIndex, 1);\n\n      this.componentDataRequests.set(componentId, dataRequest);\n      this.bindingDeleteSubject.next({ componentId, seriesIndex });\n      this.bindingResponseSubject.next({ componentId, dataRequest });\n    }\n  }\n\n  /**\n   * 插入系列绑定\n   */\n  insertSeriesBinding(componentId: string, seriesIndex: number): void {\n    console.log('[NgxPuzzle数据绑定] 插入系列绑定:', { componentId, seriesIndex });\n\n    const dataRequest = this.componentDataRequests.get(componentId);\n    if (dataRequest) {\n      if (dataRequest.apiSources) {\n        // 插入占位的 API 源（外部需要后续配置）\n        dataRequest.apiSources.splice(seriesIndex, 0, { url: '', method: 'GET', params: {} } as any);\n      }\n\n      this.componentDataRequests.set(componentId, dataRequest);\n      this.bindingResponseSubject.next({ componentId, dataRequest });\n    }\n  }\n\n  /**\n   * 获取组件的数据请求配置\n   */\n  getComponentDataRequest(componentId: string): DataRequestConfig | undefined {\n    return this.componentDataRequests.get(componentId);\n  }\n\n  /**\n   * 删除组件的所有数据请求配置\n   */\n  removeComponentDataRequest(componentId: string): void {\n    this.componentDataRequests.delete(componentId);\n  }\n\n  /**\n   * 获取当前激活的请求\n   */\n  getActiveRequest(): NgxPuzzleDataBindingRequest | null {\n    return this.activeRequestSubject.value;\n  }\n}\n","// 外部服务 - 对外暴露\nexport { NgxPuzzleExternalService } from './ngx-puzzle-external.service';\nexport { NgxPuzzleDataBindingService } from './ngx-puzzle-data-binding.service';\n","import { inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable, catchError, throwError } from 'rxjs';\nimport { ApiSource } from '../../interfaces';\nimport { SafeAny } from '../../types';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxPuzzleHttpService {\n  private http = inject(HttpClient);\n\n  request<T = SafeAny>(api: ApiSource): Observable<T> {\n    const method = (api.method || 'GET').toUpperCase();\n    const url = api.url;\n    const params = api.params || {};\n\n    if (!url) {\n      return throwError(() => new Error('NgxPuzzleHttpService: url is required'));\n    }\n\n    switch (method) {\n      case 'POST':\n        return this.http.post<T>(url, params).pipe(\n          catchError((err: SafeAny) => {\n            console.warn('[NgxPuzzleHttpService] POST error', { url, err });\n            return throwError(() => err);\n          })\n        );\n      case 'GET':\n      default: {\n        // For GET, params go to querystring\n        const httpParams = new HttpParams({ fromObject: params as Record<string, string> });\n        return this.http.get<T>(url, { params: httpParams as SafeAny }).pipe(\n          catchError((err) => {\n            console.warn('[NgxPuzzleHttpService] GET error', { url, err });\n            return throwError(() => err);\n          })\n        );\n      }\n    }\n  }\n}\n","// Bar chart mock series data per series\nexport const bar2012: number[] = [320, 220, 150, 98];\nexport const bar2013: number[] = [332, 182, 232, 77];\nexport const bar2014: number[] = [301, 191, 201, 101];\nexport const bar2015: number[] = [334, 234, 154, 99];\nexport const bar2016: number[] = [390, 290, 190, 40];\n","// Line chart mock series data per series\nexport const lineSubscriptions: number[] = [120, 132, 101, 134, 90, 230, 210];\nexport const lineServices: number[] = [220, 182, 191, 234, 290, 330, 310];\nexport const lineProducts: number[] = [150, 232, 201, 154, 190, 330, 410];\n","// Scatter chart mock series data\nexport const scatterMale: number[][] = [\n  [172, 65],\n  [181, 75],\n  [174, 70],\n  [169, 62],\n  [178, 80]\n];\n\nexport const scatterFemale: number[][] = [\n  [168, 59],\n  [160, 50],\n  [155, 48],\n  [165, 55],\n  [158, 52]\n];\n","// Pie chart mock data\nexport interface PieItem {\n  name: string;\n  value: number;\n}\nexport const pieData: PieItem[] = [\n  { name: 'Direct', value: 335 },\n  { name: 'Email', value: 310 },\n  { name: 'Affiliate', value: 234 },\n  { name: 'Video Ads', value: 135 },\n  { name: 'Search', value: 1548 }\n];\n","// Box plot mock data\nexport const boxPlotData: number[][] = [\n  [850, 940, 980, 1040, 1160],\n  [740, 800, 850, 890, 970],\n  [900, 990, 1040, 1100, 1200]\n];\n","// Candlestick mock data [open, close, low, high]\nexport const candlestickData: number[][] = [\n  [2320.26, 2302.6, 2287.3, 2362.94],\n  [2300, 2291.3, 2288.26, 2308.38],\n  [2295.35, 2346.5, 2295.35, 2346.92],\n  [2347.22, 2358.98, 2337.35, 2363.8],\n  [2360.75, 2382.48, 2347.89, 2383.76]\n];\n","// Heatmap mock data [xIndex, yIndex, value]\nexport const heatmapData: number[][] = [\n  [0, 0, 10],\n  [1, 0, 20],\n  [2, 0, 30],\n  [3, 0, 40],\n  [4, 0, 50],\n  [0, 1, 20],\n  [1, 1, 10],\n  [2, 1, 60],\n  [3, 1, 80],\n  [4, 1, 30]\n];\n","// Sunburst mock hierarchical data\nexport interface SunburstNode {\n  name: string;\n  value?: number;\n  children?: SunburstNode[];\n}\nexport const sunburstData: SunburstNode[] = [\n  {\n    name: 'Grand',\n    children: [\n      {\n        name: 'A',\n        value: 6,\n        children: [\n          { name: 'A1', value: 2 },\n          { name: 'A2', value: 4 }\n        ]\n      },\n      {\n        name: 'B',\n        value: 4,\n        children: [\n          { name: 'B1', value: 2 },\n          { name: 'B2', value: 2 }\n        ]\n      }\n    ]\n  }\n];\n","// Treemap mock hierarchical data (flat for treemap data prop)\nexport interface TreemapNode {\n  name: string;\n  value?: number;\n  children?: TreemapNode[];\n}\nexport const treemapData: TreemapNode[] = [\n  {\n    name: 'Category A',\n    value: 10,\n    children: [\n      { name: 'A1', value: 4 },\n      { name: 'A2', value: 6 }\n    ]\n  },\n  {\n    name: 'Category B',\n    value: 8,\n    children: [\n      { name: 'B1', value: 3 },\n      { name: 'B2', value: 5 }\n    ]\n  }\n];\n","// Sankey nodes mock data; links remain configured in options\nexport interface SankeyNode {\n  name: string;\n}\nexport const sankeyData: SankeyNode[] = [{ name: 'A' }, { name: 'B' }, { name: 'C' }, { name: 'D' }, { name: 'E' }];\n","// Chord nodes mock data; links remain configured in options\nexport interface ChordNode {\n  name: string;\n}\nexport const chordData: ChordNode[] = [{ name: 'Group1' }, { name: 'Group2' }, { name: 'Group3' }, { name: 'Group4' }];\n","// Funnel mock data\nexport interface FunnelItem {\n  name: string;\n  value: number;\n}\nexport const funnelData: FunnelItem[] = [\n  { name: 'Visit', value: 100 },\n  { name: 'Click', value: 80 },\n  { name: 'Inquiry', value: 60 },\n  { name: 'Order', value: 40 },\n  { name: 'Deal', value: 20 }\n];\n","/**\n * Effect Scatter mock data: array of [x, y]\n */\nexport const effectScatterData: number[][] = [\n  [10, 8],\n  [15, 20],\n  [20, 18],\n  [25, 30],\n  [30, 22]\n];\n","/**\n * Parallel coordinates mock data: array of dimensions per sample\n */\nexport const parallelData: number[][] = [\n  [12.99, 100, 80, 90],\n  [9.99, 60, 50, 70],\n  [22.5, 120, 110, 88],\n  [5.5, 40, 30, 60]\n];\n","/**\n * Theme River mock data: [time, value, name]\n */\nexport type ThemeRiverDataItem = [string, number, string];\n\nexport const themeRiverData: ThemeRiverDataItem[] = [\n  ['2020-01-01', 10, 'A'],\n  ['2020-01-02', 15, 'A'],\n  ['2020-01-03', 13, 'A'],\n  ['2020-01-01', 8, 'B'],\n  ['2020-01-02', 12, 'B'],\n  ['2020-01-03', 10, 'B'],\n  ['2020-01-01', 5, 'C'],\n  ['2020-01-02', 6, 'C'],\n  ['2020-01-03', 7, 'C']\n];\n","/**\n * Tree mock data: hierarchical structure\n */\nexport interface TreeNode {\n  name: string;\n  children?: TreeNode[];\n}\n\nexport const treeData: TreeNode[] = [\n  {\n    name: 'Root',\n    children: [\n      { name: 'Child A', children: [{ name: 'A1' }, { name: 'A2' }] },\n      { name: 'Child B', children: [{ name: 'B1' }, { name: 'B2' }] }\n    ]\n  }\n];\n","/**\n * Gauge mock data: array with single object for gauge value\n */\nexport interface GaugeDataItem {\n  value: number;\n  name: string;\n}\n\nexport const gaugeData: GaugeDataItem[] = [{ value: 37, name: 'Completion' }];\n","/**\n * Graph mock data: node list for series.data; links remain in options.\n */\nexport interface GraphNode {\n  name: string;\n  value: number;\n}\nexport const graphNodes: GraphNode[] = [\n  { name: 'Node1', value: 10 },\n  { name: 'Node2', value: 20 },\n  { name: 'Node3', value: 15 },\n  { name: 'Node4', value: 12 }\n];\n","// Radar mock data (series[0].data items)\nexport interface RadarSeriesItem {\n  name: string;\n  value: number[];\n}\nexport const radarData: RadarSeriesItem[] = [\n  {\n    value: [4200, 3000, 20000, 35000, 50000, 18000],\n    name: 'Allocated Budget'\n  }\n];\n\nexport const radarData2: RadarSeriesItem[] = [\n  {\n    value: [5000, 14000, 28000, 26000, 42000, 21000],\n    name: 'Actual Spending'\n  }\n];\n","// Mock data for table component\n// Provide an array of objects that matches typical table usage in this project\n// Includes orgId to exercise processOrgIds mapping logic in the component\n\nexport const tableMockRows = [\n  { id: 1, name: 'Alice', orgId: 101, role: 'Engineer', score: 88, date: '2024-05-01 10:30:00' },\n  { id: 2, name: 'Bob', orgId: 102, role: 'Designer', score: 92, date: '2024-05-02 11:00:00' },\n  { id: 3, name: 'Charlie', orgId: 101, role: 'Engineer', score: 76, date: '2024-05-03 09:15:00' },\n  { id: 4, name: 'Diana', orgId: 103, role: 'Product', score: 85, date: '2024-05-04 14:05:00' },\n  { id: 5, name: 'Evan', orgId: 104, role: 'QA', score: 79, date: '2024-05-05 16:45:00' }\n];\n","// Central export for mock-data keys consumed by MockService\nexport * from './bar-data';\nexport * from './line-data';\nexport * from './scatter-data';\nexport * from './pie-chart-data';\nexport * from './box-plot-data';\nexport * from './candlestick-data';\nexport * from './heatmap-data';\nexport * from './sunburst-data';\nexport * from './treemap-data';\nexport * from './sankey-data';\nexport * from './chord-data';\nexport * from './funnel-data';\nexport * from './effect-scatter-data';\nexport * from './parallel-data';\nexport * from './theme-river-data';\nexport * from './tree-data';\nexport * from './gauge-data';\nexport * from './graph-data';\nexport * from './radar-data';\nexport * from './table-data';\n","import { Injectable } from '@angular/core';\nimport * as MockData from './mock-data';\nimport { ChartTypesEnum } from '../enums';\nimport { CHART_DEFAULT_MOCKS_MAP } from '../constants';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MockService {\n  private mockData = MockData;\n\n  constructor() {}\n\n  /**\n   * 获取特定的 mock 数据\n   * @param subType 图表类型\n   * @param index 系列索引\n   * @param seriesName 系列名称（可选，用于智能匹配）\n   * @returns 请求的 mock 数据\n   */\n  getMockData(subType: ChartTypesEnum, index: number, seriesName?: string): any {\n    // 方案1：基于系列名称的智能匹配\n    if (seriesName) {\n      const mockKey = this.getMockKeyBySeriesName(subType, seriesName);\n      if (mockKey && (this.mockData as any)[mockKey]) {\n        console.log(`getMockData by name: ${seriesName} -> ${mockKey}`);\n        return (this.mockData as any)[mockKey];\n      }\n    }\n\n    // 回退到索引方式\n    const mockKeys = CHART_DEFAULT_MOCKS_MAP[subType];\n    if (!mockKeys || index >= mockKeys.length) {\n      console.warn(`getMockData: 索引 ${index} 超出范围或不存在 mock 数据`);\n      return [];\n    }\n\n    const key = mockKeys[index];\n    console.log(`getMockData by index: ${index} -> ${key}`);\n    return (this.mockData as any)[key];\n  }\n\n  /**\n   * 根据系列名称获取对应的 mock 数据键\n   */\n  private getMockKeyBySeriesName(subType: ChartTypesEnum, seriesName: string): string | null {\n    // 定义系列名称到 mock 数据键的映射\n    const seriesNameMappings: Partial<{ [key in ChartTypesEnum]: Record<string, string> }> = {\n      [ChartTypesEnum.bar]: {\n        '2012': 'bar2012',\n        '2013': 'bar2013',\n        '2014': 'bar2014',\n        '2015': 'bar2015',\n        '2016': 'bar2016'\n      },\n      [ChartTypesEnum.line]: {\n        Subscriptions: 'lineSubscriptions',\n        Services: 'lineServices',\n        Products: 'lineProducts'\n      },\n      [ChartTypesEnum.radar]: {\n        'Allocated Budget': 'radarData',\n        'Actual Spending': 'radarData2'\n      },\n      [ChartTypesEnum.scatter]: {\n        Male: 'scatterMale',\n        Female: 'scatterFemale'\n      }\n    };\n\n    const mapping = seriesNameMappings[subType];\n    return mapping?.[seriesName] || null;\n  }\n\n  /**\n   * 获取所有可用的 mock 数据键\n   */\n  getAvailableMockKeys(subType: ChartTypesEnum): string[] {\n    return CHART_DEFAULT_MOCKS_MAP[subType] || [];\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { SafeAny } from '../types';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class TableService {\n  constructor(private http: HttpClient) {}\n\n  getRowGroupingData(url: string): Observable<SafeAny> {\n    return this.http.get(url);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ChartAxesTypesEnum, ChartTypesEnum, SafeAny } from '../core';\n\n@Pipe({\n  name: 'optionFormat',\n  standalone: true\n})\nexport class OptionFormatPipe implements PipeTransform {\n  transform(value: SafeAny, type: ChartTypesEnum): SafeAny {\n    if (type === ChartTypesEnum.candlestick) {\n      value = convertDataForCandlestick(value);\n    }\n    return value;\n  }\n}\n\nfunction convertDataForCandlestick(value: SafeAny) {\n  const axes = 'axes' in value ? value.axes : [];\n  let isDateAxe = false;\n  for (const axe of axes!) {\n    if (axe.type === ChartAxesTypesEnum.ordinalTime || axe.type === ChartAxesTypesEnum.time) {\n      isDateAxe = true;\n    }\n  }\n  if (isDateAxe) {\n    const xKey: string = 'xKey' in value.series![0] ? (value.series?.[0].xKey as string) : 'date';\n    value.data = value.data?.map((item: any) => {\n      return {\n        ...item,\n        [xKey]: new Date(item[xKey])\n      };\n    });\n  }\n  return value;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { SafeAny } from '../core';\n\n@Pipe({\n  name: 'stylesFormat',\n  standalone: true,\n  pure: false\n})\nexport class StylesFormatPipe implements PipeTransform {\n  private cache = new Map<string, { [key: string]: any }>();\n\n  transform(styles?: Record<string, SafeAny>): { [key: string]: any } {\n    if (!styles) return {};\n\n    const cacheKey = JSON.stringify(styles);\n\n    if (this.cache.has(cacheKey)) {\n      return this.cache.get(cacheKey)!;\n    }\n\n    let newStyles: { [key: string]: SafeAny } = {};\n\n    for (const styleName in styles) {\n      switch (styleName) {\n        case 'backgroundImage':\n          newStyles[styleName] = styles[styleName];\n          break;\n        case 'backgroundPositionX':\n        case 'backgroundPositionY':\n        case 'backgroundSize':\n          newStyles[styleName] = `${styles[styleName]}%`;\n          break;\n        default:\n          const value = typeof styles[styleName] === 'number' ? `${styles[styleName]}px` : styles[styleName];\n          newStyles[styleName] = value;\n          break;\n      }\n    }\n\n    if (this.cache.size > 50) {\n      const firstKey = this.cache.keys().next().value;\n      this.cache.delete(firstKey);\n    }\n    this.cache.set(cacheKey, newStyles);\n\n    console.log(`StylesFormatPipe 转换结果:`, newStyles);\n    return newStyles;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { BaseSelectOption, fieldComponentTypes } from '../core';\n\n@Pipe({\n  name: 'valueFormat',\n  standalone: true\n})\nexport class ValueFormatPipe implements PipeTransform {\n  transform(val: string | number | boolean, options: BaseSelectOption[], schemaType: fieldComponentTypes): string {\n    let label: string = '';\n    if (schemaType === 'text') {\n      return val as string;\n    }\n    for (const option of options) {\n      if (val === option.val) {\n        label = option.label;\n        break;\n      }\n    }\n    return label;\n  }\n}\n","import {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  OnDestroy,\n  Renderer2,\n  signal,\n  ViewChild,\n  ViewContainerRef,\n  WritableSignal,\n  computed\n} from '@angular/core';\n\nimport { NgStyle } from '@angular/common';\nimport { fromEvent, Subject, takeUntil } from 'rxjs';\nimport { StylesFormatPipe } from '../../pipes';\nimport {\n  INIT_SETTINGS_CONFIG,\n  ComponentBaseProps,\n  ComponentConfig,\n  Position,\n  Size,\n  Tick,\n  TooltipPosition,\n  ComponentInjectorService,\n  ComponentRegistryService,\n  PuzzleCanvasMediatorService\n} from '../../core';\n\n@Component({\n  selector: 'ngx-puzzle-canvas, puzzle-canvas',\n  standalone: true,\n  imports: [NgStyle, StylesFormatPipe],\n  templateUrl: './ngx-puzzle-canvas.component.html',\n  styleUrl: './ngx-puzzle-canvas.component.scss'\n})\nexport class NgxPuzzleCanvasComponent implements AfterViewInit, OnDestroy {\n  @ViewChild('rulerHorizontal', { static: true }) hRuler!: ElementRef<HTMLElement>;\n  @ViewChild('rulerVertical', { static: true }) vRuler!: ElementRef<HTMLElement>;\n  @ViewChild('canvasContent', { read: ViewContainerRef, static: true }) canvasContent!: ViewContainerRef;\n  @ViewChild('canvasContainer', { static: true }) canvasContainer!: ElementRef<HTMLElement>;\n\n  private destroy$ = new Subject<void>();\n  private _config: ComponentConfig = INIT_SETTINGS_CONFIG['canvas'];\n  private selectedId: string = 'canvas';\n\n  props = signal<ComponentBaseProps>(this._config.props);\n\n  positionSignal: WritableSignal<TooltipPosition> = signal({ x: 0, y: 0, left: 0, top: 0, width: 0, height: 0 });\n\n  horizontalCursorStyle = computed(() => {\n    const pos = this.positionSignal();\n    return {\n      left: `${pos.left}px`,\n      width: `${pos.width}px`\n    };\n  });\n\n  verticalCursorStyle = computed(() => {\n    const pos = this.positionSignal();\n    return {\n      top: `${pos.top}px`,\n      height: `${pos.height}px`\n    };\n  });\n\n  horizontalLabels = computed(() => {\n    const pos = this.positionSignal();\n    return {\n      left: pos.left,\n      right: pos.left + pos.width\n    };\n  });\n\n  verticalLabels = computed(() => {\n    const pos = this.positionSignal();\n    return {\n      top: pos.top,\n      bottom: pos.top + pos.height\n    };\n  });\n\n  showGuideSignal: WritableSignal<boolean> = signal(false);\n\n  hTicks: WritableSignal<Tick[]> = signal<Tick[]>([]);\n\n  vTicks: WritableSignal<Tick[]> = signal<Tick[]>([]);\n\n  set size(size: Size) {\n    this._config = {\n      ...this._config,\n      size\n    };\n    this.updateRulers();\n  }\n\n  set config(value: ComponentConfig) {\n    this._config = value;\n  }\n\n  get config(): ComponentConfig {\n    return this._config;\n  }\n\n  constructor(\n    private injector: ComponentInjectorService,\n    private registry: ComponentRegistryService,\n    private mediator: PuzzleCanvasMediatorService,\n    private renderer: Renderer2\n  ) {}\n\n  ngAfterViewInit(): void {\n    this.injector.setContainerRef(this.canvasContent);\n    this.renderAll();\n    this.updateRulers();\n    this.setupObservables();\n  }\n\n  private setupObservables(): void {\n    fromEvent(this.canvasContainer.nativeElement, 'scroll')\n      .pipe(takeUntil(this.destroy$))\n      .subscribe(() => this.updateRulerPosition());\n\n    // 全量更新 仅一次\n    this.mediator.componentUpdateConfig$.subscribe((config) => {\n      if (config.id === this.config.id) {\n        this.config = config;\n        this.updateRulers();\n      }\n    });\n\n    // 添加元素\n    this.mediator.componentAdd$.subscribe((config) => {\n      console.log(`componentAdd$`, config);\n      this.createComponent(config);\n    });\n\n    // 选中\n    this.mediator.componentSelect$.pipe(takeUntil(this.destroy$)).subscribe((config) => {\n      if (config.id !== this.config.id) {\n        this.showGuideSignal.set(true);\n        this.positionSignal.set(this.covertPosition(config.size, config.position));\n        console.log(`canvas componentSelect$`);\n      } else {\n        this.showGuideSignal.set(false);\n      }\n      this.selectedId = config.id;\n    });\n\n    // 移动\n    this.mediator.componentMoving$.pipe(takeUntil(this.destroy$)).subscribe(({ position }) => {\n      this.positionSignal.set({ ...this.positionSignal(), left: position.x, top: position.y });\n    });\n\n    // 缩放\n    this.mediator.componentResize$.pipe(takeUntil(this.destroy$)).subscribe(({ id, position, size }) => {\n      if (id === this.config.id) {\n        this.size = size;\n      }\n      this.positionSignal.set(this.covertPosition(size, position));\n    });\n\n    // 更新\n    this.mediator.componentUpdateProps$.pipe(takeUntil(this.destroy$)).subscribe((config) => {\n      if (config.id === this.config.id) {\n        this.props.set(config.props);\n      }\n    });\n\n    // 删除\n    this.mediator.componentRemove$.pipe(takeUntil(this.destroy$)).subscribe((id) => {\n      this.injector.destroyComponent(id);\n      if (id === this.selectedId && id !== 'canvas') {\n        this.showGuideSignal.set(false);\n        this.mediator.selectComponent(this.config.id);\n      }\n    });\n  }\n\n  private updateRulers() {\n    // 更新标尺刻度\n    this.hTicks.set(this.generateTicks(this.config.size.width, 100));\n    this.vTicks.set(this.generateTicks(this.config.size.height, 100));\n  }\n\n  private updateRulerPosition() {\n    const { scrollLeft, scrollTop } = this.canvasContainer.nativeElement;\n    this.renderer.setStyle(this.hRuler.nativeElement, 'transform', `translateX(-${scrollLeft}px)`);\n    this.renderer.setStyle(this.vRuler.nativeElement, 'transform', `translateY(-${scrollTop}px)`);\n  }\n\n  private generateTicks(length: number, interval: number) {\n    const ticks: Tick[] = [];\n    for (let pos = 0; pos <= length; pos += interval) {\n      ticks.push({\n        position: pos,\n        label: pos.toString()\n      });\n    }\n    return ticks;\n  }\n\n  private renderAll(): void {\n    this.canvasContent.clear();\n    const allConfigs = this.registry.getAll();\n    allConfigs.forEach((config) => {\n      if (config.id !== 'canvas') {\n        this.createComponent(config);\n      }\n    });\n  }\n\n  private createComponent(config: ComponentConfig) {\n    const factory = this.registry.getFactory(config.type);\n    const instance = factory.create(config);\n    this.injector.createComponent(instance);\n  }\n\n  private covertPosition(size: Size, position: Position): TooltipPosition {\n    return {\n      width: size.width,\n      height: size.height,\n      x: position.x,\n      y: position.y,\n      left: position.x,\n      top: position.y\n    };\n  }\n\n  public canvasHandleSelect(event: MouseEvent) {\n    this.mediator.selectComponent(this.config.id);\n    event.preventDefault();\n    event.stopPropagation();\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n}\n","<div class=\"puzzle-canvas-wrapper\">\n  <div class=\"puzzle-ruler-horizontal-wrapper\">\n    <div #rulerHorizontal class=\"puzzle-ruler-horizontal\">\n      @for (tick of hTicks(); track tick.label) {\n        <div class=\"puzzle-tick\" [style.left.px]=\"tick.position\">\n          <span>\n            {{ tick.label }}\n          </span>\n        </div>\n      }\n      @if (showGuideSignal()) {\n        <div [ngStyle]=\"horizontalCursorStyle()\" class=\"puzzle-cursor puzzle-horizontal-cursor\">\n          <span class=\"puzzle-left\">{{ horizontalLabels().left }}</span>\n          <span class=\"puzzle-right\">{{ horizontalLabels().right }}</span>\n        </div>\n      }\n    </div>\n  </div>\n  <div class=\"puzzle-ruler-vertical-wrapper\">\n    <div #rulerVertical class=\"puzzle-ruler-vertical\">\n      @for (tick of vTicks(); track tick.label) {\n        <div class=\"puzzle-tick\" [style.top.px]=\"tick.position\">\n          <span>\n            {{ tick.label }}\n          </span>\n        </div>\n      }\n      @if (showGuideSignal()) {\n        <div [ngStyle]=\"verticalCursorStyle()\" class=\"puzzle-cursor puzzle-vertical-cursor\">\n          <span class=\"puzzle-top\">{{ verticalLabels().top }}</span>\n          <span class=\"puzzle-bottom\">{{ verticalLabels().bottom }}</span>\n        </div>\n      }\n    </div>\n  </div>\n  <div #canvasContainer id=\"canvas-container\" class=\"puzzle-canvas-container\">\n    <div\n      (mousedown)=\"canvasHandleSelect($event)\"\n      class=\"puzzle-canvas-content-wrapper\"\n      [style.width.px]=\"config.size.width\"\n      [style.height.px]=\"config.size.height\"\n      [ngStyle]=\"props().styles | stylesFormat\"\n    >\n      <ng-template #canvasContent></ng-template>\n    </div>\n  </div>\n</div>\n","import { AfterViewInit, Component, effect, inject, input, model, OnDestroy, signal, ViewChild } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StylesFormatPipe } from '../../../../pipes';\nimport { CdkDrag } from '@angular/cdk/drag-drop';\nimport {\n  ComponentBaseProps,\n  ComponentConfig,\n  Position,\n  Size,\n  mainTypes,\n  PuzzleCanvasMediatorService,\n  ZoomScaleService\n} from '../../../../core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ThyIcon } from 'ngx-tethys/icon';\n\n@Component({\n  selector: 'puzzle-drag-wrapper',\n  standalone: true,\n  imports: [CommonModule, StylesFormatPipe, CdkDrag, ThyIcon],\n  templateUrl: './ngx-puzzle-drag-wrapper.component.html',\n  styleUrl: './ngx-puzzle-drag-wrapper.component.scss'\n})\nexport class NgxPuzzleDragWrapperComponent<TConfigProps extends ComponentBaseProps = ComponentBaseProps, TSubType = string>\n  implements AfterViewInit, OnDestroy\n{\n  @ViewChild(CdkDrag, { static: false }) private dragRef!: CdkDrag;\n\n  private mediator = inject(PuzzleCanvasMediatorService<TConfigProps, TSubType>);\n  private zoom = inject(ZoomScaleService);\n  private destroy$ = new Subject<void>();\n\n  readonly componentId = input<string>('');\n  readonly isEdit = input<boolean>(false);\n  readonly styles = input<Record<string, SafeAny>>({});\n  readonly mainType = input<mainTypes>();\n  readonly zIndex = input<number>(0);\n\n  reverseZoom = signal<number>(1); // 逆向缩放比例 (用于图表组件)\n  forwardScale = signal<number>(1); // 正向缩放比例 (用于尺寸调整)\n\n  size = model<Size>({ width: 0, height: 0 });\n  position = model<Position>({ x: 0, y: 0 });\n\n  private isMoving: boolean = false;\n  private currentResizeDir: string | null = null;\n  private resizing = false;\n  private startX = 0;\n  private startY = 0;\n  private startWidth = 0;\n  private startHeight = 0;\n  private startLeft = 0;\n  private startTop = 0;\n\n  public isSelected = signal<boolean>(false);\n\n  public directions = [\n    { className: 'top-left', direction: 'nw' },\n    { className: 'top', direction: 'n' },\n    { className: 'top-right', direction: 'ne' },\n    { className: 'right', direction: 'e' },\n    { className: 'bottom-right', direction: 'se' },\n    { className: 'bottom', direction: 's' },\n    { className: 'bottom-left', direction: 'sw' },\n    { className: 'left', direction: 'w' }\n  ];\n\n  get hasDragRef() {\n    return !!this?.dragRef;\n  }\n\n  get wrapperClassMap() {\n    return {\n      'drag-wrapper-component': true,\n      edit: this.isEdit(),\n      disabled: !this.isEdit(),\n      'chart-wrapper': this.mainType() === 'chart',\n      'table-wrapper': this.mainType() === 'table',\n      'text-wrapper': this.mainType() === 'text',\n      'control-wrapper': this.mainType() === 'control'\n    };\n  }\n\n  constructor() {\n    effect(\n      () => {\n        const zoom = this.zoom.scale();\n        if (this.mainType() === 'chart') {\n          this.reverseZoom.set(1 / zoom);\n          this.forwardScale.set(zoom);\n        }\n      },\n      { allowSignalWrites: true }\n    );\n  }\n\n  ngAfterViewInit(): void {\n    this.setupObservables();\n  }\n\n  private setupObservables() {\n    // 使用 takeUntil 确保在组件销毁时自动取消订阅\n    this.mediator.componentMoving$.pipe(takeUntil(this.destroy$)).subscribe(({ id, position }) => {\n      if (!this.isMoving && !this.resizing && id === this.componentId()) {\n        this.position.set(position);\n        this.updatePosition();\n      }\n    });\n\n    this.mediator.componentResize$.pipe(takeUntil(this.destroy$)).subscribe(({ id, position, size }) => {\n      if (!this.isMoving && !this.resizing && id === this.componentId()) {\n        this.size.set(size);\n        this.position.set(position);\n        this.updatePosition();\n      }\n    });\n\n    this.mediator.componentSelect$.pipe(takeUntil(this.destroy$)).subscribe((config: ComponentConfig<TConfigProps, TSubType>) => {\n      this.isSelected.set(config.id === this.componentId());\n    });\n  }\n\n  private getDragPosition(drag: CdkDrag): Position {\n    const { x, y } = drag.getFreeDragPosition();\n    return {\n      x: Math.round(x) | 0,\n      y: Math.round(y) | 0\n    };\n  }\n\n  // 进行缩放 - 过程中不记录历史\n  private onResizeMove = (event: MouseEvent) => {\n    if (!this.resizing || !this.currentResizeDir) return;\n\n    const dx = event.clientX - this.startX;\n    const dy = event.clientY - this.startY;\n\n    let newWidth = this.startWidth;\n    let newHeight = this.startHeight;\n    let newX = this.startLeft;\n    let newY = this.startTop;\n\n    const dir = this.currentResizeDir;\n\n    if (dir.includes('e')) newWidth += dx;\n    if (dir.includes('s')) newHeight += dy;\n    if (dir.includes('w')) {\n      newWidth -= dx;\n      newX += dx;\n    }\n    if (dir.includes('n')) {\n      newHeight -= dy;\n      newY += dy;\n    }\n\n    if (newWidth < 20 || newHeight < 20) return;\n    const size = { width: newWidth, height: newHeight };\n    const position = { x: newX, y: newY };\n    this.size.set(size);\n    this.position.set(position);\n\n    // 实时更新但不记录历史\n    if (!this.destroy$.closed) {\n      this.mediator.resizeComponent(this.componentId(), size, position, false);\n    }\n  };\n\n  // 停止缩放 - 防抖记录历史\n  private stopResize = () => {\n    if (!this.destroy$.closed) {\n      const currentSize = this.size();\n      const currentPosition = this.position();\n\n      // 使用防抖记录历史\n      this.mediator.resizeComponent(this.componentId(), currentSize, currentPosition);\n    }\n\n    this.resizing = false;\n    this.currentResizeDir = null;\n    this.detachResizeListeners();\n  };\n\n  private detachResizeListeners() {\n    document.removeEventListener('mousemove', this.onResizeMove);\n    document.removeEventListener('mouseup', this.stopResize);\n  }\n\n  private updatePosition() {\n    if (this.hasDragRef) {\n      this.dragRef.setFreeDragPosition(this.position());\n    }\n  }\n\n  /**\n   * 选取\n   * @param event\n   */\n  componentHandleSelect(event: MouseEvent): void {\n    if (!this.hasDragRef || this.destroy$.closed) return;\n    this.mediator.selectComponent(this.componentId());\n    event.preventDefault();\n    event.stopPropagation();\n  }\n\n  /**\n   * 拖拽过程中\n   */\n  componentHandleDrag() {\n    if (!this.hasDragRef || this.destroy$.closed) return;\n    this.isMoving = true;\n    const position = this.getDragPosition(this.dragRef);\n    // 拖拽过程中不记录历史\n    this.mediator.movingComponent(this.componentId(), position, false);\n  }\n\n  /**\n   * 拖拽结束\n   */\n  componentHandleDragEnd() {\n    if (!this.hasDragRef || this.destroy$.closed) return;\n    this.isMoving = false;\n    const position = this.getDragPosition(this.dragRef);\n    // 拖拽结束时防抖记录历史\n    this.mediator.movingComponent(this.componentId(), position);\n  }\n\n  /**\n   * 移除\n   * @param event\n   * @param id\n   */\n  componentHandleRemove(event: MouseEvent, id: string) {\n    event.preventDefault();\n    event.stopPropagation();\n    if (!this.destroy$.closed) {\n      this.mediator.removeComponent(id);\n    }\n  }\n\n  // 启动缩放\n  startResize(event: MouseEvent, direction: string): void {\n    if (this.destroy$.closed) return;\n\n    event.preventDefault();\n    event.stopPropagation();\n\n    this.currentResizeDir = direction;\n    this.resizing = true;\n\n    this.mediator.selectComponent(this.componentId());\n\n    this.startX = event.clientX;\n    this.startY = event.clientY;\n    this.startWidth = this.size().width;\n    this.startHeight = this.size().height;\n    this.startLeft = this.position().x;\n    this.startTop = this.position().y;\n\n    document.addEventListener('mousemove', this.onResizeMove);\n    document.addEventListener('mouseup', this.stopResize);\n  }\n\n  // 禁止冒泡\n  mouseDownStopPropagation(event: MouseEvent): void {\n    event.preventDefault();\n    event.stopPropagation();\n  }\n\n  ngOnDestroy() {\n    // 发送销毁信号，取消所有订阅\n    this.destroy$.next();\n    this.destroy$.complete();\n\n    // 清理事件监听器\n    this.detachResizeListeners();\n\n    // 重置状态\n    this.isMoving = false;\n    this.resizing = false;\n  }\n}\n","@if (isEdit()) {\n  <div\n    cdkDrag\n    cdkDragBoundary=\".puzzle-canvas-content-wrapper\"\n    (mousedown)=\"componentHandleSelect($event)\"\n    (cdkDragMoved)=\"componentHandleDrag()\"\n    (cdkDragEnded)=\"componentHandleDragEnd()\"\n    class=\"drag-wrapper-component edit\"\n    [class]=\"isSelected() ? 'selected' : ''\"\n    [cdkDragFreeDragPosition]=\"position()\"\n    [ngStyle]=\"styles() | stylesFormat\"\n    [style.width.px]=\"size().width\"\n    [style.height.px]=\"size().height\"\n  >\n    <div class=\"mask\">\n      <thy-icon\n        class=\"close-btn\"\n        thyIconName=\"close\"\n        (mousedown)=\"mouseDownStopPropagation($event)\"\n        (click)=\"componentHandleRemove($event, componentId())\"\n      ></thy-icon>\n    </div>\n    <div class=\"drag-wrapper-container\">\n      <ng-container *ngTemplateOutlet=\"viewContent\"></ng-container>\n    </div>\n    @for (dir of directions; track dir.direction) {\n      <div class=\"resize-handle\" [ngClass]=\"[dir.className]\" (mousedown)=\"startResize($event, dir.direction)\"></div>\n    }\n  </div>\n} @else {\n  <div\n    class=\"drag-wrapper-component disabled\"\n    [style.left.px]=\"position().x\"\n    [style.top.px]=\"position().y\"\n    [style.width.px]=\"size().width\"\n    [style.height.px]=\"size().height\"\n    [ngStyle]=\"styles() | stylesFormat\"\n  >\n    <div class=\"drag-wrapper-container\">\n      <ng-container *ngTemplateOutlet=\"viewContent\"></ng-container>\n    </div>\n  </div>\n}\n\n<ng-template #viewContent>\n  <ng-content></ng-content>\n</ng-template>\n","import { ChangeDetectorRef, Component, inject, OnDestroy } from '@angular/core';\nimport {\n  ComponentBaseProps,\n  ComponentConfig,\n  ControlFilterCondition,\n  DataRequestConfig,\n  NgxPuzzleDataBindingResponse,\n  mainTypes,\n  ControlsService,\n  DEFAULT_INTERVAL_MULTIPLIERS,\n  PuzzleCanvasMediatorService,\n  RefreshIntervalUnitEnum,\n  NgxPuzzleDataBindingService,\n  SafeAny\n} from '../../../../core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n  template: ``\n})\nexport abstract class NgxPuzzleCanvasBaseComponent<TConfigProps extends ComponentBaseProps = ComponentBaseProps, TSubType = string>\n  implements OnDestroy\n{\n  private refreshTimer: SafeAny | null = null;\n  private currentControlFilters: ControlFilterCondition[] = [];\n  private currentDataStreamsHash: string[] = []; // 存储数据流的 hash\n\n  protected controlsService = inject(ControlsService);\n  protected dataBindingService = inject(NgxPuzzleDataBindingService);\n  protected cdr = inject(ChangeDetectorRef);\n\n  protected abstract get dataKey(): mainTypes;\n\n  protected _config!: ComponentConfig<TConfigProps, TSubType>;\n  protected _isEdit: boolean = false;\n  protected readonly destroy$ = new Subject<void>();\n\n  protected set isEdit(value: boolean) {\n    this._isEdit = value;\n  }\n\n  protected get isEdit(): boolean {\n    return this._isEdit;\n  }\n\n  protected constructor(public mediator: PuzzleCanvasMediatorService<TConfigProps, TSubType>) {\n    this.setupObservables();\n  }\n\n  protected abstract getDefaultOptions(subType: TSubType): SafeAny;\n  protected abstract updateData(requestData: DataRequestConfig): void;\n\n  protected setBaseDataRequest(): void {}\n  protected afterUpdateConfig(): void {}\n\n  initConfig(config: ComponentConfig<TConfigProps, TSubType>): void {\n    this._config = config;\n    this.setBaseProps();\n    this.setBaseDataRequest();\n    this.afterUpdateConfig();\n  }\n\n  updateProps(props: TConfigProps): void {\n    if (this.destroy$.closed) return;\n    console.log(props.styles)\n    this._config.props = props;\n    this.cdr.markForCheck();\n    this.afterUpdateConfig();\n  }\n\n  setBaseProps(): void {\n    if (!this._config.props?.[this.dataKey]) {\n      this._config = {\n        ...this._config,\n        props: {\n          ...this._config.props,\n          [this.dataKey]: this.getDefaultOptions(this._config.subType)\n        }\n      };\n      this.mediator.updateComponentData(this._config);\n    }\n  }\n\n  protected setupObservables() {\n    // 监听组件属性更新\n    this.mediator.componentUpdateProps$.pipe(takeUntil(this.destroy$)).subscribe(({ id, props }) => {\n      if (id === this._config.id) {\n        console.log(`componentUpdateProps$`, { id, props });\n        this.updateProps(props);\n      }\n    });\n\n    // 监听数据请求更新\n    this.mediator.dataRequest$.pipe(takeUntil(this.destroy$)).subscribe(({ id, dataRequest }) => {\n      if (id === this._config.id) {\n        this._config.dataRequest = dataRequest;\n        this.updateDataWithStreamCheck(dataRequest);\n      }\n    });\n\n    // 监听控件值变化 - 只通知外部，不处理业务逻辑\n    this.controlsService.controlValueChange$.pipe(takeUntil(this.destroy$)).subscribe(({ controlId, controlFilters }) => {\n      if (this._config.type === 'control') return;\n      this.handleControlValueChange(controlId, controlFilters);\n    });\n\n    // 监听数据绑定响应\n    this.dataBindingService.bindingResponse$.pipe(takeUntil(this.destroy$)).subscribe((response) => {\n      if (response.componentId === this._config.id) {\n        this.handleBindingResponse(response);\n      }\n    });\n\n    // 监听系列绑定删除事件\n    this.dataBindingService.bindingDelete$.pipe(takeUntil(this.destroy$)).subscribe(({ componentId, seriesIndex }) => {\n      if (componentId === this._config.id) {\n        this.handleSeriesBindingDelete(seriesIndex);\n      }\n    });\n  }\n\n  /**\n   * 处理控件值变化 - 只通知外部\n   */\n  private handleControlValueChange(controlId: string, controlFilters: SafeAny): void {\n    console.log(`[组件-${this._config.id}] 控件值变化:`, { controlId, controlFilters });\n\n    // 检查当前组件是否需要响应这个控件变化\n    if (this._config.refreshConfig?.controlIds?.includes(controlId)) {\n      console.log(`[组件-${this._config.id}] 通知外部控件变化`);\n\n      // 更新当前的控件过滤条件\n      this.currentControlFilters = this._config.refreshConfig.controlIds.map((id) => controlFilters[id]).filter(Boolean);\n\n      // 通知外部控件变化，让外部处理业务逻辑\n      this.dataBindingService.notifyControlChange(this._config.id, controlId, this.currentControlFilters);\n    }\n  }\n\n  /**\n   * 处理数据绑定响应\n   */\n  private handleBindingResponse(response: NgxPuzzleDataBindingResponse): void {\n    console.log(`[组件-${this._config.id}] 收到数据绑定响应:`, response);\n\n    // 更新数据请求配置\n    this.mediator.updateDataRequest(this._config.id, response.dataRequest);\n  }\n\n  /**\n   * 带流检查的数据更新\n   */\n  private updateDataWithStreamCheck(dataRequest: DataRequestConfig): void {\n    const { apiSources } = dataRequest;\n\n    if (this.isEdit) {\n      // 编辑模式：仅对比 URL/方法/参数是否变化\n      const hasChanged = this.hasApiSourcesChanged(apiSources || []);\n      if (hasChanged) {\n        console.log(`[组件-${this._config.id}] 数据源已变化，执行更新`);\n        this.updateData(dataRequest);\n        this.updateApiSourcesHash(apiSources || []);\n      } else {\n        console.log(`[组件-${this._config.id}] 数据源未变化，跳过更新`);\n      }\n    } else {\n      // 预览模式：直接更新\n      this.updateData(dataRequest);\n      this.updateApiSourcesHash(apiSources || []);\n    }\n  }\n\n  /**\n   * 检查数据源是否变化（仅比较 url/method/params 的 JSON 序列化结果）\n   */\n  private hasApiSourcesChanged(dataStreams: { url: string; method: string; params?: Record<string, SafeAny> }[]): boolean {\n    const serialize = (s: { url: string; method: string; params?: Record<string, SafeAny> }) =>\n      `${s?.method || ''}|${s?.url || ''}|${JSON.stringify(s?.params || {})}`;\n    const newHashes = dataStreams.map(serialize);\n\n    if (this.currentDataStreamsHash.length !== newHashes.length) {\n      return true;\n    }\n\n    return !newHashes.every((hash, index) => hash === this.currentDataStreamsHash[index]);\n  }\n\n  /**\n   * 更新数据源 hash\n   */\n  private updateApiSourcesHash(dataStreams: { url: string; method: string; params?: Record<string, SafeAny> }[]): void {\n    const serialize = (s: { url: string; method: string; params?: Record<string, SafeAny> }) =>\n      `${s?.method || ''}|${s?.url || ''}|${JSON.stringify(s?.params || {})}`;\n    this.currentDataStreamsHash = dataStreams.map(serialize);\n  }\n\n  /**\n   * 处理系列绑定删除 - 子类可重写\n   */\n  protected handleSeriesBindingDelete(seriesIndex: number): void {\n    console.log(`[组件-${this._config.id}] 系列绑定已删除:`, seriesIndex);\n  }\n\n  // ==================== 定时刷新逻辑 ====================\n\n  private setupRefreshTimer(): void {\n    this.clearRefreshTimer();\n\n    const refreshConfig = this._config.refreshConfig;\n    if (!refreshConfig?.enabled || this.isEdit) {\n      return;\n    }\n\n    const intervalMs = this.getIntervalInMilliseconds(refreshConfig.interval, refreshConfig.intervalUnit);\n    console.log(`[组件-${this._config.id}] 启动定时刷新，间隔: ${refreshConfig.interval}${refreshConfig.intervalUnit}`);\n\n    this.refreshTimer = setInterval(() => {\n      this.handleScheduledRefresh();\n    }, intervalMs);\n  }\n\n  private handleScheduledRefresh(): void {\n    if (!this.shouldContinueRefresh()) {\n      this.clearRefreshTimer();\n      return;\n    }\n\n    console.log(`[组件-${this._config.id}] 执行定时刷新`);\n    this.executeRefresh();\n  }\n\n  private shouldContinueRefresh(): boolean {\n    const refreshConfig = this._config.refreshConfig;\n    if (!refreshConfig) return false;\n\n    if (!refreshConfig.enabled) {\n      console.log(`[组件-${this._config.id}] 定时刷新已禁用，停止刷新`);\n      return false;\n    }\n\n    if (\n      refreshConfig.maxRefreshCount &&\n      refreshConfig.currentRefreshCount &&\n      refreshConfig.currentRefreshCount >= refreshConfig.maxRefreshCount\n    ) {\n      console.log(`[组件-${this._config.id}] 达到最大刷新次数，停止刷新`);\n      return false;\n    }\n\n    return true;\n  }\n\n  private executeRefresh(): void {\n    this.updateRefreshStats();\n\n    const dataRequest = this._config.dataRequest;\n    if (dataRequest) {\n      // 简单地直接执行刷新，外部负责提供新的数据流\n      console.log(`[组件-${this._config.id}] 执行刷新，数据请求:`, dataRequest);\n      this.updateData(dataRequest);\n    }\n  }\n\n  private updateRefreshStats(): void {\n    if (this._config.refreshConfig) {\n      this._config.refreshConfig.currentRefreshCount = (this._config.refreshConfig.currentRefreshCount || 0) + 1;\n      this._config.refreshConfig.lastRefreshTime = new Date();\n    }\n  }\n\n  private clearRefreshTimer(): void {\n    if (this.refreshTimer) {\n      clearInterval(this.refreshTimer);\n      this.refreshTimer = null;\n      console.log(`[组件-${this._config.id}] 清除定时器`);\n    }\n  }\n\n  private getIntervalInMilliseconds(interval: number, unit: RefreshIntervalUnitEnum): number {\n    const multiplier = DEFAULT_INTERVAL_MULTIPLIERS[unit] || DEFAULT_INTERVAL_MULTIPLIERS[RefreshIntervalUnitEnum.minutes];\n    return interval * multiplier;\n  }\n\n  public restartRefreshTimer(): void {\n    this.setupRefreshTimer();\n  }\n\n  ngOnDestroy(): void {\n    this.clearRefreshTimer();\n\n    if (this._config?.id) {\n      this.dataBindingService.removeComponentDataRequest(this._config.id);\n    }\n\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n}\n","import { AfterViewInit, Component, effect, ElementRef, inject, input, OnDestroy } from '@angular/core';\nimport * as echarts from 'echarts';\nimport { EChartsType, EChartsOption } from 'echarts';\n\n@Component({\n  selector: 'ngx-puzzle-charts,puzzle-charts',\n  standalone: true,\n  imports: [],\n  templateUrl: './puzzle-charts.component.html',\n  styleUrl: './puzzle-charts.component.scss'\n})\nexport class PuzzleChartsComponent implements AfterViewInit, OnDestroy {\n  private el = inject(ElementRef);\n  private chartInstance!: EChartsType;\n  private resizeObserver?: ResizeObserver;\n\n  options = input<EChartsOption>(); // 接收 ECharts 配置\n  theme = input<string>(); // 支持主题\n  autoResize = input<boolean>(true); // 是否自动适应\n\n  constructor() {\n    effect(() => {\n      const options = this.options();\n      const theme = this.theme();\n\n      if (this.chartInstance && options) {\n        console.log('options', options);\n        this.chartInstance.setOption(options, true);\n      }\n\n      if (this.chartInstance && theme) {\n        this.chartInstance.setTheme(theme);\n      }\n    });\n  }\n\n  ngAfterViewInit() {\n    this.initChart();\n    if (this.autoResize()) {\n      const container: HTMLElement = this.el.nativeElement.querySelector('.echarts-container') ?? this.el.nativeElement;\n      this.resizeObserver = new ResizeObserver(() => {\n        if (!this.chartInstance) return;\n        this.chartInstance.resize();\n      });\n      this.resizeObserver.observe(container);\n    }\n  }\n\n  ngOnDestroy(): void {\n    if (this.chartInstance) {\n      this.chartInstance.dispose();\n    }\n    if (this.resizeObserver) {\n      this.resizeObserver.disconnect();\n      this.resizeObserver = undefined;\n    }\n  }\n\n  private initChart(): void {\n    const el = this.el.nativeElement.querySelector('.echarts-container');\n    this.chartInstance = echarts.init(el, this.theme());\n    if (this.options()) {\n      this.chartInstance.setOption(this.options()!, { notMerge: true });\n    }\n  }\n}\n","<div class=\"echarts-container\"></div>\n","import { Component, inject, OnDestroy } from '@angular/core';\nimport {\n  NgxPuzzleHttpService,\n  mainTypes,\n  ComponentChartProps,\n  ComponentConfig,\n  DataRequestConfig,\n  ApiSource,\n  MockService,\n  PuzzleCanvasMediatorService,\n  CHART_DATA_OPTIONS,\n  CHART_DEFAULT_MOCKS_MAP,\n  ChartTypesEnum\n} from '../../../../core';\nimport { SafeAny } from 'ngx-tethys/types';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\nimport { NgxPuzzleDragWrapperComponent } from '../drag-wrapper/ngx-puzzle-drag-wrapper.component';\nimport { NgxPuzzleCanvasBaseComponent } from '../base/ngx-puzzle-canvas-base.component';\nimport { PuzzleChartsComponent } from '../../../primitives/puzzle-charts/puzzle-charts.component';\n\n@Component({\n  selector: 'puzzle-chart',\n  standalone: true,\n  imports: [NgxPuzzleDragWrapperComponent, PuzzleChartsComponent],\n  templateUrl: './ngx-puzzle-chart.component.html',\n  styleUrl: './ngx-puzzle-chart.component.scss'\n})\nexport class NgxPuzzleChartComponent extends NgxPuzzleCanvasBaseComponent<ComponentChartProps, ChartTypesEnum> implements OnDestroy {\n  dataKey: mainTypes = 'chart';\n\n  private mockService = inject(MockService);\n\n  // 数据缓存：索引 -> 数据\n  private cacheData: Map<number, SafeAny> = new Map();\n\n  // 数据流订阅管理：索引 -> 订阅\n  private dataStreamSubscriptions: Map<number, Subscription> = new Map();\n\n  // 上一次的 API 源快照，用于计算增量变化（编辑模式）\n  private lastApiSources: ApiSource[] = [];\n\n  set config(config: ComponentConfig<ComponentChartProps, ChartTypesEnum>) {\n    this.initConfig(config);\n  }\n\n  get config(): ComponentConfig<ComponentChartProps, ChartTypesEnum> {\n    return this._config;\n  }\n\n  private httpService = inject(NgxPuzzleHttpService);\n\n  constructor(mediator: PuzzleCanvasMediatorService<ComponentChartProps, ChartTypesEnum>) {\n    super(mediator);\n  }\n\n  // 实现抽象方法：获取默认配置\n  getDefaultOptions(subType: ChartTypesEnum): SafeAny {\n    return CHART_DATA_OPTIONS[subType];\n  }\n\n  // 实现抽象方法：更新数据\n  updateData(requestData: DataRequestConfig): void {\n    const { apiSources } = requestData;\n\n    if (this.isEdit) {\n      // 编辑模式：使用上一份快照与新的 apiSources 计算差异\n      const prevSources = this.lastApiSources || [];\n      this.updateDataIncrementallyByApi(prevSources, apiSources || []);\n      // 同步快照\n      this.lastApiSources = (apiSources || []).map((s) => (s ? { ...s, params: s.params ? { ...s.params } : undefined } : s));\n    } else {\n      // 预览模式：全量更新并刷新快照\n      this.updateDataCompletelyByApi(apiSources);\n      this.lastApiSources = (apiSources || []).map((s) => (s ? { ...s, params: s.params ? { ...s.params } : undefined } : s));\n    }\n  }\n\n  override afterUpdateConfig(): void {\n    // 检测系列变化并补全数据\n    this.handleSeriesChanges();\n    this.restartRefreshTimer();\n  }\n\n  override setBaseDataRequest(): void {\n    const dataRequest = this.config.dataRequest || {};\n    this.mediator.updateDataRequest(this.config.id, dataRequest);\n  }\n\n  /**\n   * 处理系列变化，检测哪些系列缺少数据并进行补全\n   */\n  private handleSeriesChanges(): void {\n    const series = this.normalizeSeries();\n    const { apiSources } = this.config.dataRequest || {};\n\n    // 找出需要补全数据的系列信息（包含索引和名称）\n    const seriesToUpdate: Array<{ index: number; name?: string }> = [];\n\n    series.forEach((seriesItem, index) => {\n      // 如果系列的 data 为空或者未定义，需要补全数据\n      if (!seriesItem.data || (Array.isArray(seriesItem.data) && seriesItem.data.length === 0)) {\n        seriesToUpdate.push({\n          index,\n          name: seriesItem.name\n        });\n      }\n    });\n\n    console.log(`[图表] 检测到需要补全数据的系列:`, seriesToUpdate);\n\n    // 为需要的系列补全数据\n    if (seriesToUpdate.length > 0) {\n      this.updateDataForSeriesWithNames(seriesToUpdate, apiSources);\n    }\n  }\n\n  /**\n   * 为指定的系列更新数据（支持系列名称智能匹配）\n   */\n  private updateDataForSeriesWithNames(seriesToUpdate: Array<{ index: number; name?: string }>, dataStreams?: ApiSource[]): void {\n    seriesToUpdate.forEach(({ index, name }) => {\n      this.processDataForIndex(index, dataStreams, name);\n    });\n  }\n\n  private updateDataIncrementallyByApi(prevStreams: ApiSource[], newStreamsInput?: ApiSource[]): void {\n    const newDataStreams = newStreamsInput || [];\n\n    // 检测变化并同步缓存（基于上一次与本次）\n    this.syncDataCacheWithStreams(prevStreams, newDataStreams);\n\n    // 对比数据流变化（基于上一次与本次）\n    const dataStreamChanges = this.getDataStreamChanges(prevStreams, newDataStreams);\n\n    console.log(`[图表] 编辑模式 - 数据流变化:`, dataStreamChanges);\n\n    if (dataStreamChanges.length === 0) {\n      console.log(`[图表] 没有数据变化`);\n      return;\n    }\n\n    console.log(`[图表] 需要更新的索引:`, dataStreamChanges);\n\n    this.updateDataByIndexes(dataStreamChanges, newDataStreams);\n  }\n\n  private updateDataCompletelyByApi(dataStreams?: ApiSource[]): void {\n    let allIndexes: number[];\n\n    if (!dataStreams || dataStreams.length === 0) {\n      // 使用 mock 数据的默认索引\n      allIndexes = CHART_DEFAULT_MOCKS_MAP[this.config.subType]?.map((_, index) => index) || [];\n    } else {\n      // 使用数据流的索引\n      allIndexes = dataStreams.map((_, index) => index);\n    }\n\n    this.updateDataByIndexes(allIndexes, dataStreams);\n  }\n\n  /**\n   * 同步数据缓存与数据流变化\n   */\n  private syncDataCacheWithStreams(currentStreams: ApiSource[], newStreams: ApiSource[]): void {\n    console.log(`[图表缓存] 同步缓存`, {\n      currentLength: currentStreams.length,\n      newLength: newStreams.length,\n      cacheSize: this.cacheData.size\n    });\n\n    // 1. 如果新数组比旧数组短，删除多余的缓存\n    if (newStreams.length < currentStreams.length) {\n      for (let i = newStreams.length; i < currentStreams.length; i++) {\n        this.removeCachedData(i);\n      }\n    }\n\n    // 2. 检测被删除/插入的项，重新排列缓存\n    const maxLength = Math.max(currentStreams.length, newStreams.length);\n    const newCacheData = new Map<number, SafeAny>();\n\n    for (let i = 0; i < maxLength; i++) {\n      const currentStream = currentStreams[i];\n      const newStream = newStreams[i];\n\n      if (newStream && currentStream && currentStream === newStream) {\n        // 数据流没变，保持缓存\n        if (this.cacheData.has(i)) {\n          newCacheData.set(i, this.cacheData.get(i));\n        }\n      }\n      // 如果数据流变了或者是新增的，不复制缓存（让后续重新请求）\n    }\n\n    // 更新缓存\n    this.cacheData.clear();\n    newCacheData.forEach((value, key) => {\n      this.cacheData.set(key, value);\n    });\n\n    console.log(`[图表缓存] 缓存同步完成`, { newCacheSize: this.cacheData.size });\n  }\n\n  /**\n   * 检测数据流变化，返回变化的索引\n   */\n  private getDataStreamChanges(current: ApiSource[], updated: ApiSource[]): number[] {\n    const changes: number[] = [];\n    const maxLength = Math.max(current.length, updated.length);\n\n    for (let i = 0; i < maxLength; i++) {\n      const currentStream = current[i];\n      const updatedStream = updated[i];\n\n      // 如果索引超出范围，认为是变化\n      if (!currentStream || !updatedStream) {\n        changes.push(i);\n        continue;\n      }\n\n      // 对比数据源是否有变化（url/method/params）\n      const serialize = (s: ApiSource) => `${s?.method || ''}|${s?.url || ''}|${JSON.stringify(s?.params || {})}`;\n      if (serialize(currentStream) !== serialize(updatedStream)) {\n        changes.push(i);\n      }\n    }\n\n    return changes;\n  }\n\n  /**\n   * 根据索引数组更新数据\n   */\n  private updateDataByIndexes(indexes: number[], dataStreams?: ApiSource[]): void {\n    const series = this.normalizeSeries();\n\n    indexes.forEach((index) => {\n      const seriesName = series[index]?.name;\n      this.processDataForIndex(index, dataStreams, seriesName);\n    });\n  }\n\n  /**\n   * 处理指定索引的数据\n   */\n  private processDataForIndex(index: number, dataStreams?: ApiSource[], seriesName?: string): void {\n    console.log(`processDataForIndex`, { index, subType: this.config.subType, seriesName, hasDataStreams: !!dataStreams });\n\n    // 获取对应索引的数据源\n    const apiSource = dataStreams?.[index];\n\n    if (!apiSource) {\n      // 没有数据源，使用模拟数据\n      const mockData = this.mockService.getMockData(this.config.subType, index, seriesName);\n      console.log(`processDataForIndex mockData:`, { seriesName, mockData });\n      this.setCachedData(index, mockData);\n      this.updateChartData(mockData, index);\n    } else {\n      // 清理旧的订阅\n      this.cleanupSubscription(index);\n\n      // 基于数据源发起请求\n      const request$ = this.httpService.request(apiSource);\n\n      const subscription = request$.pipe(takeUntil(this.destroy$)).subscribe((data) => {\n        console.log(`processDataForIndex: API 返回数据`, { index, data });\n        this.setCachedData(index, data);\n        this.updateChartData(data, index);\n      });\n\n      // 保存订阅引用\n      this.dataStreamSubscriptions.set(index, subscription);\n    }\n  }\n\n  /**\n   * 设置缓存数据\n   */\n  private setCachedData(index: number, data: SafeAny): void {\n    this.cacheData.set(index, data);\n    console.log(`[图表缓存] 设置缓存数据`, { index, cacheSize: this.cacheData.size });\n  }\n\n  /**\n   * 删除缓存数据\n   */\n  private removeCachedData(index: number): void {\n    this.cacheData.delete(index);\n    this.cleanupSubscription(index);\n    console.log(`[图表缓存] 删除缓存数据`, { index, cacheSize: this.cacheData.size });\n  }\n\n  /**\n   * 清理指定索引的订阅\n   */\n  private cleanupSubscription(index: number): void {\n    const subscription = this.dataStreamSubscriptions.get(index);\n    if (subscription && !subscription.closed) {\n      subscription.unsubscribe();\n    }\n    this.dataStreamSubscriptions.delete(index);\n  }\n\n  /**\n   * 清理所有订阅和缓存\n   */\n  private cleanupAll(): void {\n    console.log(`[图表缓存] 清理所有缓存和订阅`);\n\n    // 清理所有订阅\n    this.dataStreamSubscriptions.forEach((subscription) => {\n      if (!subscription.closed) {\n        subscription.unsubscribe();\n      }\n    });\n    this.dataStreamSubscriptions.clear();\n\n    // 清理所有缓存\n    this.cacheData.clear();\n  }\n\n  // 统一的图表数据更新方法：始终写入 series[index].data\n  private updateChartData(data: SafeAny, index: number): void {\n    this.updateDataForSeries(data, index);\n  }\n\n  private normalizeSeries(): SafeAny[] {\n    const chart = this.config.props.chart as SafeAny;\n    let series = chart.series;\n    if (!Array.isArray(series)) {\n      // 将单个对象标准化为数组，便于统一写入逻辑\n      series = series ? [series] : [];\n      chart.series = series;\n    }\n    return series as SafeAny[];\n  }\n\n  private extractSeriesDataPayload(raw: SafeAny): SafeAny {\n    console.log('extractSeriesDataPayload 原始数据:', raw);\n\n    // 当返回对象中包含 data/values/seriesData 字段时，优先取这些常用数据字段\n    if (raw && typeof raw === 'object' && !Array.isArray(raw)) {\n      // 检查 success 字段，确保是成功的响应\n      if (raw.success !== false) {\n        if (Array.isArray(raw.data)) {\n          console.log('提取到 data 字段:', raw.data);\n          return raw.data;\n        }\n        if (Array.isArray(raw.values)) {\n          console.log('提取到 values 字段:', raw.values);\n          return raw.values;\n        }\n        if (Array.isArray(raw.seriesData)) {\n          console.log('提取到 seriesData 字段:', raw.seriesData);\n          return raw.seriesData;\n        }\n      }\n\n      // 如果响应失败，返回空数组避免图表报错\n      if (raw.success === false) {\n        console.warn('API 响应失败:', raw.message || '未知错误');\n        return [];\n      }\n    }\n\n    // 默认直接返回，支持数值数组、二维数组或对象数组\n    console.log('使用原始数据:', raw);\n    return raw;\n  }\n\n  private ensureSeriesItem(index: number): SafeAny {\n    const series = this.normalizeSeries();\n    while (series.length <= index) {\n      series.push({});\n    }\n    return series[index];\n  }\n\n  private updateDataForSeries(data: SafeAny, index: number = 0): void {\n    console.log(`updateDataForSeries`, { data, index });\n\n    const seriesItem = this.ensureSeriesItem(index);\n    const payload = this.extractSeriesDataPayload(data);\n\n    console.log(`更新系列 ${index} 的数据:`, payload);\n\n    seriesItem['data'] = payload;\n    this.config.props.chart = {\n      ...this.config.props.chart\n    };\n\n    console.log(`updateDataForSeries 直接更新 config.props.chart:`, this.config.props.chart);\n    console.log(`当前系列配置:`, this.config.props.chart.series);\n  }\n\n  /**\n   * 处理系列绑定删除 - 重写基类方法\n   */\n  protected override handleSeriesBindingDelete(seriesIndex: number): void {\n    console.log(`[组件-${this._config.id}] 系列绑定已删除:`, seriesIndex);\n\n    // 删除对应的缓存数据\n    this.removeCachedData(seriesIndex);\n\n    // 重新排列缓存：将后面的数据往前移\n    const newCacheData = new Map<number, SafeAny>();\n    const newSubscriptions = new Map<number, Subscription>();\n\n    this.cacheData.forEach((value, key) => {\n      if (key < seriesIndex) {\n        // 保持位置不变\n        newCacheData.set(key, value);\n      } else if (key > seriesIndex) {\n        // 往前移一位\n        newCacheData.set(key - 1, value);\n      }\n      // key === seriesIndex 的项被跳过（删除）\n    });\n\n    this.dataStreamSubscriptions.forEach((subscription, key) => {\n      if (key < seriesIndex) {\n        // 保持位置不变\n        newSubscriptions.set(key, subscription);\n      } else if (key > seriesIndex) {\n        // 往前移一位\n        newSubscriptions.set(key - 1, subscription);\n      }\n      // key === seriesIndex 的项被跳过（删除）\n    });\n\n    // 更新缓存和订阅\n    this.cacheData = newCacheData;\n    this.dataStreamSubscriptions = newSubscriptions;\n\n    console.log(`[图表缓存] 删除系列后重新排列`, {\n      deletedIndex: seriesIndex,\n      newCacheSize: this.cacheData.size\n    });\n  }\n\n  override ngOnDestroy(): void {\n    this.cleanupAll();\n    super.ngOnDestroy();\n  }\n}\n","<puzzle-drag-wrapper\n  [isEdit]=\"isEdit\"\n  [size]=\"config.size\"\n  [position]=\"config.position\"\n  [componentId]=\"config.id\"\n  [styles]=\"config.props.styles\"\n>\n  <!--  <ag-charts-->\n  <!--    [style.width.%]=\"100\"-->\n  <!--    [style.height.%]=\"100\"-->\n  <!--    [style.display]=\"'block'\"-->\n  <!--    [options]=\"options\">-->\n  <!--  </ag-charts>-->\n\n  <puzzle-charts [options]=\"config.props.chart\"></puzzle-charts>\n</puzzle-drag-wrapper>\n","import { Component, input, output } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgStyle, NgTemplateOutlet } from '@angular/common';\nimport { EditorBaseField, SafeAny, BaseSelectOption } from '../../../core';\nimport { ThyCollapseModule } from 'ngx-tethys/collapse';\nimport { ThyInputDirective, ThyInputModule } from 'ngx-tethys/input';\nimport { ThyInputNumber } from 'ngx-tethys/input-number';\nimport { ThySelect, ThySelectModule } from 'ngx-tethys/select';\nimport { ThyOption } from 'ngx-tethys/shared';\nimport { ThyTooltipModule } from 'ngx-tethys/tooltip';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyGridModule } from 'ngx-tethys/grid';\nimport { ThyLayoutModule } from 'ngx-tethys/layout';\nimport { ThyColorPickerDirective } from 'ngx-tethys/color-picker';\nimport { ThyDatePickerModule } from 'ngx-tethys/date-picker';\n\n@Component({\n  selector: 'ngx-puzzle-form-renderer, puzzle-form-renderer',\n  templateUrl: './puzzle-form-renderer.component.html',\n  styleUrl: './puzzle-form-renderer.component.scss',\n  standalone: true,\n  imports: [\n    FormsModule,\n    ReactiveFormsModule,\n    NgTemplateOutlet,\n    ThyCollapseModule,\n    ThyInputModule,\n    ThyInputDirective,\n    ThyInputNumber,\n    ThySelectModule,\n    ThySelect,\n    ThyOption,\n    ThyTooltipModule,\n    ThyButtonModule,\n    ThyGridModule,\n    ThyLayoutModule,\n    ThyColorPickerDirective,\n    ThyDatePickerModule,\n    NgStyle,\n  ]\n})\nexport class PuzzleFormRendererComponent {\n  /**\n   * 表单字段配置数组\n   */\n  sections = input.required<EditorBaseField[]>();\n\n  /**\n   * 表单数据对象\n   */\n  formData = input.required<SafeAny>();\n\n  accordion = input<boolean>(true);\n\n  /**\n   * 表单字段值变化事件\n   */\n  fieldChange = output<{\n    key: string;\n    value: SafeAny;\n    parentKey?: string;\n    index?: number;\n  }>();\n\n  /**\n   * 数组项添加事件\n   */\n  arrayItemAdd = output<{\n    fieldKey: string;\n    children: EditorBaseField[];\n  }>();\n\n  /**\n   * 数组项删除事件\n   */\n  arrayItemRemove = output<{\n    fieldKey: string;\n    index: number;\n  }>();\n\n  /**\n   * 按钮点击事件\n   */\n  buttonClick = output<{\n    field: EditorBaseField;\n    data: SafeAny;\n  }>();\n\n  /**\n   * 日期变化事件（特殊处理）\n   */\n  dateChange = output<{\n    key: string;\n    value: SafeAny;\n  }>();\n\n  /**\n   * 选项编辑事件\n   */\n  optionAdd = output<{ fieldKey: string }>();\n  optionRemove = output<{ fieldKey: string; index: number }>();\n\n  /**\n   * 字段值变化处理\n   */\n  onFormFieldChange(key: string, value: SafeAny, parentKey?: string, index?: number): void {\n    this.fieldChange.emit({ key, value, parentKey, index });\n  }\n\n  /**\n   * 添加数组项\n   */\n  onAddArrayItem(fieldKey: string, children: EditorBaseField[] = []): void {\n    this.arrayItemAdd.emit({ fieldKey, children });\n  }\n\n  /**\n   * 删除数组项\n   */\n  onRemoveArrayItem(fieldKey: string, index: number): void {\n    this.arrayItemRemove.emit({ fieldKey, index });\n  }\n\n  /**\n   * 按钮点击处理\n   */\n  onButtonClick(field: EditorBaseField, data: SafeAny): void {\n    this.buttonClick.emit({ field, data });\n  }\n\n  /**\n   * 日期变化处理\n   */\n  onDateChange(key: string, value: SafeAny): void {\n    this.dateChange.emit({ key, value });\n  }\n\n  /**\n   * 添加选项\n   */\n  onAddOption(fieldKey: string): void {\n    this.optionAdd.emit({ fieldKey });\n  }\n\n  /**\n   * 删除选项\n   */\n  onRemoveOption(fieldKey: string, index: number): void {\n    this.optionRemove.emit({ fieldKey, index });\n  }\n\n  /**\n   * 检查字段是否可见\n   */\n  isFieldVisible(field: EditorBaseField): boolean {\n    if (!field.visibleWhen) {\n      return true;\n    }\n    return field.visibleWhen(this.formData());\n  }\n\n  /**\n   * 获取字段的选项列表\n   */\n  getFieldOptions(field: EditorBaseField): BaseSelectOption[] {\n    if (field.optionsStream) {\n      // TODO: 处理流式选项，这里可能需要异步处理\n      return field.options || [];\n    }\n    return field.options || [];\n  }\n}\n","<div class=\"dynamic-form-renderer\">\n  <thy-collapse [thyAccordion]=\"accordion()\">\n    @for (section of sections();let i = $index; track section.label) {\n      <thy-collapse-item [thyTitle]=\"section.label\" [thyActive]=\"i === 0\">\n        @if (section?.children && section.children!.length > 0) {\n          <ng-container\n            [ngTemplateOutlet]=\"fieldRenderer\"\n            [ngTemplateOutletContext]=\"{\n              fields: section.children,\n              formData: formData(),\n              parentKey: '',\n              level: 0\n            }\"\n          >\n          </ng-container>\n        }\n      </thy-collapse-item>\n    }\n  </thy-collapse>\n</div>\n\n<!-- 递归字段渲染器模板 -->\n<ng-template #fieldRenderer let-fields=\"fields\" let-formData=\"formData\" let-parentKey=\"parentKey\" let-level=\"level\">\n  <div thyRow [thyGutter]=\"16\" [style.margin-left.px]=\"level * 16\">\n    @for (field of fields; track field.key) {\n      @if (isFieldVisible(field)) {\n        @switch (field.schemaType) {\n          @case ('group') {\n            <div [thyCol]=\"24\" class=\"group-field mb-3\">\n              <div class=\"group-header mb-2\">\n                <h6 class=\"mb-1\">{{ field.label }}</h6>\n                @if (field?.description) {\n                  <i [thyTooltip]=\"field?.description!\" thyTooltipPlacement=\"top\" class=\"field-label-icon pi pi-question-circle\"></i>\n                }\n              </div>\n              @if (field.children) {\n                <ng-container\n                  [ngTemplateOutlet]=\"fieldRenderer\"\n                  [ngTemplateOutletContext]=\"{\n                    fields: field.children,\n                    formData: formData,\n                    parentKey: parentKey,\n                    level: level + 1\n                  }\"\n                >\n                </ng-container>\n              }\n            </div>\n          }\n\n          @case ('array') {\n            <div [thyCol]=\"24\" class=\"array-field mb-3\">\n              <div class=\"array-header d-flex justify-content-between align-items-center mb-2\">\n                <label class=\"mb-0\">\n                  {{ field.label }}\n                  @if (field?.description) {\n                    <i [thyTooltip]=\"field?.description!\" thyTooltipPlacement=\"top\" class=\"field-label-icon pi pi-question-circle\"></i>\n                  }\n                </label>\n                <thy-button thySize=\"sm\" thyIcon=\"plus\" (click)=\"onAddArrayItem(field.key, field.children || [])\"> 添加 </thy-button>\n              </div>\n\n              @for (item of formData[field.key] || []; track $index) {\n                <div class=\"array-item border rounded p-3 mb-2\">\n                  <div class=\"d-flex justify-content-between align-items-center mb-2\">\n                    <span class=\"text-muted\">{{ field.label }} #{{ $index + 1 }}</span>\n                    <thy-button thySize=\"sm\" thyIcon=\"trash\" [thyType]=\"'danger'\" (click)=\"onRemoveArrayItem(field.key, $index)\">\n                      删除\n                    </thy-button>\n                  </div>\n\n                  @if (field.children) {\n                    <ng-container\n                      [ngTemplateOutlet]=\"arrayItemRenderer\"\n                      [ngTemplateOutletContext]=\"{\n                        fields: field.children,\n                        itemData: item,\n                        parentKey: field.key,\n                        index: $index\n                      }\"\n                    >\n                    </ng-container>\n                  }\n                </div>\n              }\n            </div>\n          }\n\n          @default {\n            <div [thyCol]=\"field.schemaType === 'textarea' || field.schemaType === 'code' ? 24 : 12\" class=\"input-item\">\n              <label class=\"block mb-1 mt-1 font-size-sm\">\n                {{ field.label }}\n                @if (field?.description) {\n                  <i [thyTooltip]=\"field?.description!\" thyTooltipPlacement=\"top\" class=\"field-label-icon pi pi-question-circle\"></i>\n                }\n              </label>\n\n              @switch (field.schemaType) {\n                @case ('text') {\n                  <input\n                    thyInput\n                    [attr.id]=\"field.key\"\n                    type=\"text\"\n                    thySize=\"sm\"\n                    [(ngModel)]=\"formData[field.key]\"\n                    (ngModelChange)=\"onFormFieldChange(field.key, $event, parentKey)\"\n                    [class]=\"field.className?.join(' ')\"\n                  />\n                }\n\n                @case ('textarea') {\n                  <textarea\n                    thyInput\n                    thySize=\"sm\"\n                    [attr.id]=\"field.key\"\n                    [(ngModel)]=\"formData[field.key]\"\n                    (ngModelChange)=\"onFormFieldChange(field.key, $event, parentKey)\"\n                    [class]=\"field.className?.join(' ')\"\n                    rows=\"4\"\n                  >\n                  </textarea>\n                }\n\n                @case ('select') {\n                  <thy-select\n                    [(ngModel)]=\"formData[field.key]\"\n                    thySize=\"sm\"\n                    [thyPlaceHolder]=\"field?.placeholder || ''\"\n                    (ngModelChange)=\"onFormFieldChange(field.key, $event, parentKey)\"\n                    [class]=\"field.className?.join(' ')\"\n                  >\n                    @for (opt of getFieldOptions(field); track opt.val) {\n                      <thy-option [thyValue]=\"opt.val\" [thyLabelText]=\"opt.label\"></thy-option>\n                    }\n                  </thy-select>\n                }\n\n                @case ('multiSelect') {\n                  <thy-select\n                    thyMode=\"multiple\"\n                    thySize=\"sm\"\n                    [thyPlaceHolder]=\"field?.placeholder || ''\"\n                    [(ngModel)]=\"formData[field.key]\"\n                    (ngModelChange)=\"onFormFieldChange(field.key, $event, parentKey)\"\n                    [class]=\"field.className?.join(' ')\"\n                  >\n                    @for (opt of getFieldOptions(field); track opt.val) {\n                      <thy-option [thyValue]=\"opt.val\" [thyLabelText]=\"opt.label\">\n                      </thy-option>\n                    }\n                  </thy-select>\n                }\n\n                @case ('multiColorSelect') {\n                  <thy-select\n                    thyMode=\"multiple\"\n                    thySize=\"sm\"\n                    [(ngModel)]=\"formData[field.key]\"\n                    (ngModelChange)=\"onFormFieldChange(field.key, $event, parentKey)\"\n                    [class]=\"field.className?.join(' ')\"\n                  >\n                    @for (opt of getFieldOptions(field); track opt.val) {\n                      <thy-option [thyValue]=\"opt.val\">\n                        <span class=\"color-option\">\n                          <span class=\"color-dot\" [style.background-color]=\"opt.val\"></span>\n                          {{ opt.label }}\n                        </span>\n                      </thy-option>\n                    }\n                  </thy-select>\n                }\n\n                @case ('color') {\n                  <div\n                    class=\"color-picker-box\"\n                    [ngStyle]=\"{ background: formData[field.key] }\"\n                    thyColorPicker\n                    [thyOffset]=\"10\"\n                    [attr.id]=\"field.key\"\n                    [(ngModel)]=\"formData[field.key]\"\n                    (ngModelChange)=\"onFormFieldChange(field.key, $event, parentKey)\"\n                    [class]=\"field.className?.join(' ')\"\n                  ></div>\n                }\n\n                @case ('number') {\n                  <thy-input-number\n                    [(ngModel)]=\"formData[field.key]\"\n                    (ngModelChange)=\"onFormFieldChange(field.key, $event, parentKey)\"\n                    [thyMin]=\"field?.min || 0\"\n                    [thyMax]=\"field?.max || 999999\"\n                    [thyStep]=\"field?.step || 1\"\n                    [thySize]=\"'sm'\"\n                    [thySuffix]=\"field?.suffix || ''\"\n                    [class]=\"field.className?.join(' ')\"\n                  ></thy-input-number>\n                }\n\n                @case ('date') {\n                  <thy-date-picker\n                    [(ngModel)]=\"formData[field.key]\"\n                    (ngModelChange)=\"onDateChange(field.key, $event)\"\n                    [class]=\"field.className?.join(' ')\"\n                  ></thy-date-picker>\n                }\n\n                @case ('button') {\n                  <thy-button thySize=\"sm\" (click)=\"onButtonClick(field, formData)\" [class]=\"field.className?.join(' ')\">\n                    {{ field.label }}\n                  </thy-button>\n                }\n\n                @case ('select-image') {\n                  <thy-select\n                    thyPlaceHolder=\"请选择\"\n                    [(ngModel)]=\"formData[field.key]\"\n                    [thyAllowClear]=\"true\"\n                    (ngModelChange)=\"onFormFieldChange(field.key, $event, parentKey)\"\n                    [class]=\"field.className?.join(' ')\"\n                  >\n                    @for (opt of getFieldOptions(field); track opt.val) {\n                      <thy-option [thyValue]=\"opt.val\" [thyShowOptionCustom]=\"true\">\n                        <div class=\"option-image\" [style.background-image]=\"opt.val\"></div>\n                      </thy-option>\n                    }\n                    <ng-template #selectedDisplay let-value>\n                      @if (!value) {\n                        <span class=\"empty-placeholder\">请选择图片</span>\n                      } @else {\n                        <div class=\"selected-image-display\">\n                          <div class=\"selected-option-image\" [style.background-image]=\"value\"></div>\n                        </div>\n                      }\n                    </ng-template>\n                  </thy-select>\n\n                }\n\n                @case ('cascade-select') {\n                  <!-- 级联选择器 - 可以根据需要实现 -->\n                  <thy-select\n                    [(ngModel)]=\"formData[field.key]\"\n                    thySize=\"sm\"\n                    (ngModelChange)=\"onFormFieldChange(field.key, $event, parentKey)\"\n                    [class]=\"field.className?.join(' ')\"\n                  >\n                    @for (opt of getFieldOptions(field); track opt.val) {\n                      <thy-option [thyValue]=\"opt.val\" [thyLabelText]=\"opt.label\"></thy-option>\n                    }\n                  </thy-select>\n                }\n\n                @case ('code') {\n                  <textarea\n                    thyInput\n                    [attr.id]=\"field.key\"\n                    [(ngModel)]=\"formData[field.key]\"\n                    (ngModelChange)=\"onFormFieldChange(field.key, $event, parentKey)\"\n                    class=\"code-editor\"\n                    [class]=\"field.className?.join(' ')\"\n                    rows=\"8\"\n                    placeholder=\"请输入代码...\"\n                    style=\"font-family: 'Monaco', 'Menlo', monospace\"\n                  >\n                  </textarea>\n                }\n\n                @case ('options-editor') {\n                  <div class=\"options-editor\">\n                    @for (option of formData[field.key] || []; track $index) {\n                      <div class=\"option-item d-flex align-items-center mb-2\">\n                        <input\n                          thyInput\n                          placeholder=\"标签\"\n                          [(ngModel)]=\"option.label\"\n                          (ngModelChange)=\"onFormFieldChange(field.key, formData[field.key], parentKey)\"\n                          class=\"me-2\"\n                        />\n                        <input\n                          thyInput\n                          placeholder=\"值\"\n                          [(ngModel)]=\"option.value\"\n                          (ngModelChange)=\"onFormFieldChange(field.key, formData[field.key], parentKey)\"\n                          class=\"me-2\"\n                        />\n                        <thy-button thySize=\"sm\" thyIcon=\"delete\" [thyType]=\"'danger'\" (click)=\"onRemoveOption(field.key, $index)\">\n                        </thy-button>\n                      </div>\n                    }\n                    <thy-button thySize=\"sm\" thyIcon=\"plus\" (click)=\"onAddOption(field.key)\"> 添加选项 </thy-button>\n                  </div>\n                }\n              }\n            </div>\n          }\n        }\n      }\n    }\n  </div>\n</ng-template>\n\n<!-- 数组项渲染器模板 -->\n<ng-template #arrayItemRenderer let-fields=\"fields\" let-itemData=\"itemData\" let-parentKey=\"parentKey\" let-index=\"index\">\n  <div thyRow [thyGutter]=\"8\">\n    @for (field of fields; track field.key) {\n      @if (isFieldVisible(field)) {\n        @switch (field.schemaType) {\n          @case ('group') {\n            <div [thyCol]=\"24\" class=\"group-field-in-array mb-2\">\n              <div class=\"group-header-small mb-1\">\n                <strong>{{ field.label }}</strong>\n                @if (field?.description) {\n                  <i [thyTooltip]=\"field?.description!\" thyTooltipPlacement=\"top\" class=\"field-label-icon pi pi-question-circle\"></i>\n                }\n              </div>\n              @if (field.children) {\n                <ng-container\n                  [ngTemplateOutlet]=\"arrayItemRenderer\"\n                  [ngTemplateOutletContext]=\"{\n                    fields: field.children,\n                    itemData: itemData,\n                    parentKey: parentKey,\n                    index: index\n                  }\"\n                >\n                </ng-container>\n              }\n            </div>\n          }\n\n          @default {\n            <div [thyCol]=\"field.schemaType === 'textarea' || field.schemaType === 'code' ? 24 : 12\" class=\"input-item-small\">\n              <label class=\"block mb-1 text-xs text-muted\">{{ field.label }}</label>\n\n              @switch (field.schemaType) {\n                @case ('text') {\n                  <input\n                    thyInput\n                    thySize=\"sm\"\n                    type=\"text\"\n                    [(ngModel)]=\"itemData[field.key]\"\n                    (ngModelChange)=\"onFormFieldChange(field.key, $event, parentKey, index)\"\n                    [class]=\"field.className?.join(' ')\"\n                  />\n                }\n\n                @case ('textarea') {\n                  <textarea\n                    thyInput\n                    thySize=\"sm\"\n                    [(ngModel)]=\"itemData[field.key]\"\n                    (ngModelChange)=\"onFormFieldChange(field.key, $event, parentKey, index)\"\n                    [class]=\"field.className?.join(' ')\"\n                    rows=\"3\"\n                  >\n                  </textarea>\n                }\n\n                @case ('select') {\n                  <thy-select\n                    [(ngModel)]=\"itemData[field.key]\"\n                    (ngModelChange)=\"onFormFieldChange(field.key, $event, parentKey, index)\"\n                    thySize=\"sm\"\n                    [class]=\"field.className?.join(' ')\"\n                  >\n                    @for (opt of getFieldOptions(field); track opt.val) {\n                      <thy-option [thyValue]=\"opt.val\" [thyLabelText]=\"opt.label\"></thy-option>\n                    }\n                  </thy-select>\n                }\n\n                @case ('multiSelect') {\n                  <thy-select\n                    thyMode=\"multiple\"\n                    [(ngModel)]=\"itemData[field.key]\"\n                    (ngModelChange)=\"onFormFieldChange(field.key, $event, parentKey, index)\"\n                    thySize=\"sm\"\n                    [class]=\"field.className?.join(' ')\"\n                  >\n                    @for (opt of getFieldOptions(field); track opt.val) {\n                      <thy-option [thyValue]=\"opt.val\" [thyLabelText]=\"opt.label\">\n                      </thy-option>\n                    }\n                  </thy-select>\n                }\n\n                @case ('color') {\n                  <div\n                    class=\"color-picker-box\"\n                    [ngStyle]=\"{ background: itemData[field.key] }\"\n                    thyColorPicker\n                    [thyOffset]=\"10\"\n                    [(ngModel)]=\"itemData[field.key]\"\n                    (ngModelChange)=\"onFormFieldChange(field.key, $event, parentKey, index)\"\n                    [class]=\"field.className?.join(' ')\"\n                  ></div>\n                }\n\n                @case ('number') {\n                  <thy-input-number\n                    [(ngModel)]=\"itemData[field.key]\"\n                    (ngModelChange)=\"onFormFieldChange(field.key, $event, parentKey, index)\"\n                    [thyMin]=\"field?.min || 0\"\n                    [thyMax]=\"field?.max || 999999\"\n                    [thyStep]=\"field?.step || 1\"\n                    [thySize]=\"'sm'\"\n                    [thySuffix]=\"field?.suffix || ''\"\n                    [class]=\"field.className?.join(' ')\"\n                  ></thy-input-number>\n                }\n\n                @case ('date') {\n                  <thy-date-picker\n                    [(ngModel)]=\"itemData[field.key]\"\n                    (ngModelChange)=\"onDateChange(field.key, $event)\"\n                    thySize=\"sm\"\n                    [class]=\"field.className?.join(' ')\"\n                  ></thy-date-picker>\n                }\n              }\n            </div>\n          }\n        }\n      }\n    }\n  </div>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, computed, effect, input, OnDestroy, signal } from '@angular/core';\nimport { NgStyle } from '@angular/common';\nimport { DateTimeConfig, SafeAny } from '../../../core';\nimport { StylesFormatPipe } from '../../../pipes';\n\nconst DEFAULTS: DateTimeConfig = {\n  layout: 'single',\n  year: { twoDigits: false, prefix: '', suffix: '' },\n  month: { mode: 'number', padZero: true, english: 'long' },\n  day: { padZero: true, suffix: '' },\n  weekday: { show: false, lang: 'zh', zhStyle: '星期', enStyle: 'long', numberStyle: 'mon-1-7' },\n  hourCycle: 24,\n  hour: { padZero: true },\n  minute: { show: true, padZero: true },\n  second: { show: true, padZero: true },\n  dateSeparator: '-',\n  timeSeparator: ':',\n  useChineseDate: false,\n  useChineseTime: false,\n  customFormat: undefined,\n  autoUpdate: { enabled: true, intervalSeconds: 1 },\n  updateOnLoad: true,\n  timezone: { mode: 'local', offsetMinutes: 0 },\n  show: { date: true, time: true, weekday: false },\n  order: 'date-time',\n  styles: { textAlign: 'left' }\n};\n\n@Component({\n  selector: 'ngx-puzzle-datetime, puzzle-datetime',\n  standalone: true,\n  imports: [NgStyle, StylesFormatPipe],\n  templateUrl: './puzzle-datetime.component.html',\n  styleUrls: ['./puzzle-datetime.component.css'],\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PuzzleDatetimeComponent implements OnDestroy {\n  // Split first-level inputs (undefined by default; when provided, override defaults)\n  year = input<DateTimeConfig['year'] | undefined>();\n  month = input<DateTimeConfig['month'] | undefined>();\n  day = input<DateTimeConfig['day'] | undefined>();\n  weekday = input<DateTimeConfig['weekday'] | undefined>();\n\n  hourCycle = input<DateTimeConfig['hourCycle'] | undefined>();\n  hour = input<DateTimeConfig['hour'] | undefined>();\n  minute = input<DateTimeConfig['minute'] | undefined>();\n  second = input<DateTimeConfig['second'] | undefined>();\n\n  dateSeparator = input<DateTimeConfig['dateSeparator'] | undefined>();\n  timeSeparator = input<DateTimeConfig['timeSeparator'] | undefined>();\n  useChineseDate = input<DateTimeConfig['useChineseDate'] | undefined>();\n  useChineseTime = input<DateTimeConfig['useChineseTime'] | undefined>();\n  customFormat = input<DateTimeConfig['customFormat'] | undefined>();\n\n  autoUpdate = input<DateTimeConfig['autoUpdate'] | undefined>();\n  updateOnLoad = input<DateTimeConfig['updateOnLoad'] | undefined>();\n  timezone = input<DateTimeConfig['timezone'] | undefined>();\n\n  show = input<DateTimeConfig['show'] | undefined>();\n  order = input<DateTimeConfig['order'] | undefined>();\n\n  layout = input<DateTimeConfig['layout'] | undefined>();\n\n  styles = input<DateTimeConfig['styles'] | undefined>();\n\n  constructor() {\n    effect(\n      () => {\n        const cfg = this.effectiveConfig();\n        if (this.timerId) {\n          clearInterval(this.timerId);\n          this.timerId = null;\n        }\n        const enabled = cfg.autoUpdate?.enabled ?? false;\n        let effectiveSeconds = Math.max(1, cfg.autoUpdate?.intervalSeconds ?? 1);\n\n        // Determine if minutes/seconds are shown\n        let showsMinutes = cfg.minute?.show ?? true;\n        let showsSeconds = cfg.second?.show ?? true;\n        if (cfg.customFormat) {\n          const tpl = cfg.customFormat;\n          const hasMinToken = /(mm|\\bm\\b)/.test(tpl);\n          const hasSecToken = /(ss|\\bs\\b)/.test(tpl);\n          showsMinutes = hasMinToken;\n          showsSeconds = hasSecToken;\n        }\n        if (!(cfg.show?.time ?? true)) {\n          showsMinutes = false;\n          showsSeconds = false;\n        }\n        if (!showsSeconds && showsMinutes) {\n          effectiveSeconds = 60;\n        } else if (!showsSeconds && !showsMinutes) {\n          effectiveSeconds = 3600;\n        }\n\n        if (cfg.updateOnLoad) {\n          this.tick();\n        }\n        if (enabled) {\n          this.timerId = setInterval(() => this.tick(), effectiveSeconds * 1000);\n        }\n      },\n      { allowSignalWrites: true }\n    );\n  }\n\n  // Internal state as signals\n  private now = signal<Date>(new Date());\n  private timerId: SafeAny = null;\n\n  // Build effective config by merging DEFAULTS <- individual inputs (no aggregate config)\n  private effectiveConfig = computed<DateTimeConfig>(() => {\n    return {\n      ...DEFAULTS,\n      year: this.year() ?? DEFAULTS.year,\n      month: this.month() ?? DEFAULTS.month,\n      day: this.day() ?? DEFAULTS.day,\n      weekday: this.weekday() ?? DEFAULTS.weekday,\n      hourCycle: this.hourCycle() ?? DEFAULTS.hourCycle,\n      hour: this.hour() ?? DEFAULTS.hour,\n      minute: this.minute() ?? DEFAULTS.minute,\n      second: this.second() ?? DEFAULTS.second,\n      dateSeparator: this.dateSeparator() ?? DEFAULTS.dateSeparator,\n      timeSeparator: this.timeSeparator() ?? DEFAULTS.timeSeparator,\n      useChineseDate: this.useChineseDate() ?? DEFAULTS.useChineseDate,\n      useChineseTime: this.useChineseTime() ?? DEFAULTS.useChineseTime,\n      customFormat: this.customFormat() ?? DEFAULTS.customFormat,\n      autoUpdate: this.autoUpdate() ?? DEFAULTS.autoUpdate,\n      updateOnLoad: this.updateOnLoad() ?? DEFAULTS.updateOnLoad,\n      timezone: this.timezone() ?? DEFAULTS.timezone,\n      show: this.show() ?? DEFAULTS.show,\n      order: this.order() ?? DEFAULTS.order,\n      layout: this.layout() ?? DEFAULTS.layout,\n      styles: this.styles() ?? DEFAULTS.styles\n    };\n  });\n\n  // Derived timezone-adjusted date\n  private zonedNow = computed(() => this.applyTimezone(this.now(), this.effectiveConfig().timezone));\n\n  // Core formatted output according to config\n  formatted = computed(() => this.formatDateTime(this.zonedNow(), this.effectiveConfig()));\n\n  // Multi-line formatted output based on layout selection\n  formattedLines = computed(() => {\n    const cfg = this.effectiveConfig();\n    if (cfg.customFormat) return [this.formatted()];\n    const d = this.zonedNow();\n    const showWeek = (cfg.show?.weekday ?? false) || (cfg.weekday?.show ?? false);\n    const showDate = cfg.show?.date ?? true;\n    const showTime = cfg.show?.time ?? true;\n    const lines: string[] = [];\n    switch (cfg.layout) {\n      case 'separate': {\n        // 独占一行: 年月日在上，星期在年月日下面，时间在最下面\n        if (showDate) lines.push(this.getDatePart(d, cfg));\n        if (showWeek) lines.push(this.getWeekday(d, cfg));\n        if (showTime) lines.push(this.getTimePart(d, cfg));\n        break;\n      }\n      case 'date-week-same-time-next': {\n        const l1Parts: string[] = [];\n        if (showDate) l1Parts.push(this.getDatePart(d, cfg));\n        if (showWeek) l1Parts.push(this.getWeekday(d, cfg));\n        const line1 = l1Parts.join(' ').trim();\n        if (line1) lines.push(line1);\n        if (showTime) lines.push(this.getTimePart(d, cfg));\n        break;\n      }\n      case 'single':\n      default: {\n        lines.push(this.formatted());\n      }\n    }\n    return lines.filter(Boolean);\n  });\n\n  private tick() {\n    this.now.set(new Date());\n  }\n\n  ngOnDestroy() {\n    if (this.timerId) {\n      clearInterval(this.timerId);\n    }\n  }\n\n  private applyTimezone(date: Date, tz?: DateTimeConfig['timezone']): Date {\n    const mode = tz?.mode ?? 'local';\n    if (mode === 'utc') {\n      // Return a new Date representing the same UTC time\n      return new Date(\n        Date.UTC(\n          date.getUTCFullYear(),\n          date.getUTCMonth(),\n          date.getUTCDate(),\n          date.getUTCHours(),\n          date.getUTCMinutes(),\n          date.getUTCSeconds(),\n          date.getUTCMilliseconds()\n        )\n      );\n    } else if (mode === 'offset') {\n      const offsetMin = tz?.offsetMinutes ?? 0; // minutes east of UTC\n      const localMs = date.getTime();\n      const localOffsetMin = date.getTimezoneOffset(); // minutes west of UTC\n      const targetOffsetDiffMin = -offsetMin - localOffsetMin; // adjust from local to target\n      return new Date(localMs + targetOffsetDiffMin * 60_000);\n    }\n    return date; // local\n  }\n\n  private pad(num: number, width = 2): string {\n    const s = String(Math.floor(Math.abs(num)));\n    return (num < 0 ? '-' : '') + s.padStart(width, '0');\n  }\n\n  private formatDateTime(d: Date, cfg: DateTimeConfig): string {\n    // Custom format takes precedence\n    if (cfg.customFormat) {\n      return this.formatWithTemplate(d, cfg);\n    }\n\n    const parts: string[] = [];\n    const showWeek = (cfg.show?.weekday ?? false) || (cfg.weekday?.show ?? false);\n\n    const seq: string[] = [];\n    if (cfg.show?.date) seq.push(this.getDatePart(d, cfg));\n    if (cfg.show?.time) seq.push(this.getTimePart(d, cfg));\n\n    const ordered = cfg.order === 'time-date' ? seq.reverse() : seq;\n    parts.push(ordered.filter(Boolean).join(' '));\n\n    // Always append weekday after the main date/time when enabled\n    if (showWeek) {\n      parts.push(this.getWeekday(d, cfg));\n    }\n\n    return parts.filter(Boolean).join(' ');\n  }\n\n  private getDatePart(d: Date, cfg: DateTimeConfig): string {\n    const y = d.getFullYear();\n    const yearNumStr = cfg.year?.twoDigits ? String(y).slice(-2) : String(y);\n    const yWithAffix = `${cfg.year?.prefix ?? ''}${yearNumStr}${cfg.year?.suffix ?? ''}`;\n\n    const monthNum = d.getMonth() + 1;\n    const dayNum = d.getDate();\n\n    let monthStr: string;\n    if (cfg.month?.mode === 'number') {\n      monthStr = cfg.month?.padZero ? this.pad(monthNum) : String(monthNum);\n    } else if (cfg.month?.mode === 'en') {\n      monthStr = this.getEnglishMonth(d.getMonth(), cfg.month?.english ?? 'long');\n    } else {\n      // zh\n      monthStr = this.getChineseMonth(monthNum);\n    }\n\n    const dayStr = (cfg.day?.padZero ? this.pad(dayNum) : String(dayNum)) + (cfg.day?.suffix ?? '');\n\n    if (cfg.useChineseDate) {\n      // 2025年01月15日 style, with year affixes applied around the numeric year\n      const m = cfg.month?.mode === 'number' ? (cfg.month?.padZero ? this.pad(monthNum) : String(monthNum)) : monthStr;\n      const dStr = cfg.day?.padZero ? this.pad(dayNum) : String(dayNum);\n      return `${yWithAffix}年${m}月${dStr}日`;\n    }\n\n    const sep = cfg.dateSeparator ?? '-';\n    // Construct as YYYY-MM-DD (apply year affixes even in numeric mode)\n    const mForNum = cfg.month?.mode === 'number' ? monthStr : monthNum;\n    const dd = cfg.day?.padZero ? this.pad(dayNum) : String(dayNum);\n    const dateCore = [yWithAffix, mForNum, dd].join(sep);\n\n    // If month/day are non-numeric language strings, present as \"{month}{sep}{day} {yearWithAffix}\"\n    if (cfg.month?.mode !== 'number') {\n      return `${monthStr}${sep}${dayStr} ${yWithAffix}`.trim();\n    }\n\n    return dateCore;\n  }\n\n  private getTimePart(d: Date, cfg: DateTimeConfig): string {\n    const is12 = cfg.hourCycle === 12;\n    let hours = d.getHours();\n    const minutes = d.getMinutes();\n    const seconds = d.getSeconds();\n\n    let ampm = '';\n    if (is12) {\n      ampm = hours >= 12 ? 'PM' : 'AM';\n      hours = hours % 12 || 12;\n    }\n\n    const hh = cfg.hour?.padZero ? this.pad(hours) : String(hours);\n    const mm = cfg.minute?.show ? (cfg.minute?.padZero ? this.pad(minutes) : String(minutes)) : null;\n    const ss = cfg.second?.show ? (cfg.second?.padZero ? this.pad(seconds) : String(seconds)) : null;\n\n    if (cfg.useChineseTime) {\n      // 14时30分25秒\n      const h = `${hh}时`;\n      const m = mm != null ? `${mm}分` : '';\n      const s = ss != null ? `${ss}秒` : '';\n      return `${h}${m}${s}`.trim();\n    }\n\n    const sep = cfg.timeSeparator ?? ':';\n    const core = [hh, mm, ss].filter((v) => v != null).join(sep);\n    return is12 ? `${core} ${ampm}` : core;\n  }\n\n  private getWeekday(d: Date, cfg: DateTimeConfig): string {\n    const day = d.getDay(); // 0 (Sun) - 6 (Sat)\n    const zhMap = ['日', '一', '二', '三', '四', '五', '六'];\n    const enLong = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];\n    const enShort = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n    const enNarrow = ['S', 'M', 'T', 'W', 'T', 'F', 'S'];\n\n    if (cfg.weekday?.lang === 'zh') {\n      const base = zhMap[day];\n      const style = cfg.weekday.zhStyle ?? '星期';\n      if (style === 'none') return base;\n      return `${style}${base}`;\n    }\n    if (cfg.weekday?.lang === 'en') {\n      const s = cfg.weekday.enStyle ?? 'long';\n      if (s === 'long') return enLong[day];\n      if (s === 'short') return enShort[day];\n      return enNarrow[day];\n    }\n    // number\n    const style = cfg.weekday?.numberStyle ?? 'mon-1-7';\n    if (style === 'mon-1-7') {\n      return String(((day + 6) % 7) + 1); // Mon=1..Sun=7\n    }\n    return String(day); // Sun=0..Sat=6\n  }\n\n  private getEnglishMonth(idx: number, style: 'short' | 'long'): string {\n    const long = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n    const short = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n    return style === 'long' ? long[idx] : short[idx];\n  }\n\n  private getChineseMonth(n: number): string {\n    const cn = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'];\n    return cn[n - 1];\n  }\n\n  // Custom template formatter supporting common tokens\n  private formatWithTemplate(d: Date, cfg: DateTimeConfig): string {\n    const tpl = cfg.customFormat!;\n    const is12 = cfg.hourCycle === 12;\n    const rawH = d.getHours();\n    const h12 = rawH % 12 || 12;\n    const map: Record<string, string> = {\n      YYYY: String(d.getFullYear()),\n      YY: String(d.getFullYear()).slice(-2),\n      MM: this.pad(d.getMonth() + 1),\n      M: String(d.getMonth() + 1),\n      DD: this.pad(d.getDate()),\n      D: String(d.getDate()),\n      HH: this.pad(is12 ? h12 : rawH),\n      H: String(is12 ? h12 : rawH),\n      hh: this.pad(h12),\n      h: String(h12),\n      mm: this.pad(d.getMinutes()),\n      m: String(d.getMinutes()),\n      ss: this.pad(d.getSeconds()),\n      s: String(d.getSeconds()),\n      A: rawH >= 12 ? 'PM' : 'AM',\n      a: rawH >= 12 ? 'pm' : 'am',\n      dddd: this.getWeekday(d, { weekday: { lang: 'en', enStyle: 'long', show: true } } as any),\n      ddd: this.getWeekday(d, { weekday: { lang: 'en', enStyle: 'short', show: true } } as any),\n      E: this.getWeekday(d, { weekday: { lang: 'number', numberStyle: 'mon-1-7', show: true } } as any),\n      e: this.getWeekday(d, { weekday: { lang: 'number', numberStyle: 'sun-0-6', show: true } } as any),\n      MMM: this.getEnglishMonth(d.getMonth(), 'short'),\n      MMMM: this.getEnglishMonth(d.getMonth(), 'long'),\n      CM: this.getChineseMonth(d.getMonth() + 1), // custom: Chinese month\n      Cw: this.getWeekday(d, { weekday: { lang: 'zh', zhStyle: '星期', show: true } } as any) // custom Chinese weekday\n    };\n\n    // Replace tokens by descending length to avoid partial overlaps\n    const tokens = Object.keys(map).sort((a, b) => b.length - a.length);\n    let out = tpl;\n    for (const t of tokens) {\n      out = out.split(t).join(map[t]);\n    }\n\n    // Affixes if needed (year prefix/suffix and day suffix)\n    if (cfg.year?.prefix || cfg.year?.suffix) {\n      const year = cfg.year?.twoDigits ? String(d.getFullYear()).slice(-2) : String(d.getFullYear());\n      out = out.replace(year, `${cfg.year?.prefix ?? ''}${year}${cfg.year?.suffix ?? ''}`);\n    }\n    if (cfg.day?.suffix) {\n      const dd = this.pad(d.getDate());\n      const dStr = String(d.getDate());\n      out = out.replace(`${dd}`, `${dd}${cfg.day.suffix}`);\n      out = out.replace(`${dStr}`, `${dStr}${cfg.day.suffix}`);\n    }\n\n    return out;\n  }\n}\n","<div [ngStyle]=\"styles() | stylesFormat\">\n  @if (layout() === 'single' || customFormat()) {\n    {{ formatted() }}\n  } @else {\n    @for (line of formattedLines(); track $index) {\n      <div>{{ line }}</div>\n    }\n  }\n</div>\n","import { AfterViewInit, Component, ElementRef, OnDestroy, computed, effect, inject, input, output } from '@angular/core';\nimport WebDataRocks, { CellBuilder, CellData, Params, Pivot, Report } from '@webdatarocks/webdatarocks';\n\n@Component({\n  selector: 'ngx-puzzle-pivot-table, puzzle-pivot-table',\n  standalone: true,\n  imports: [],\n  templateUrl: './puzzle-pivot-table.component.html',\n  styleUrl: './puzzle-pivot-table.component.scss'\n})\nexport class PuzzlePivotTableComponent implements AfterViewInit, OnDestroy {\n  private readonly el = inject(ElementRef<HTMLElement>);\n\n  private localization = 'https://cdn.webdatarocks.com/loc/zh.json';\n\n  toolbar = input<boolean>(false);\n  width = input<string | number>('100%');\n  height = input<string | number>('100%');\n  report = input<Report>();\n  global = input<Report | undefined>({\n    localization: this.localization\n  });\n  customizeCell = input<((cell: CellBuilder, data: CellData) => void) | undefined>(undefined);\n\n  readonly cellClick = output<CellData>();\n  readonly cellDoubleClick = output<CellData>();\n  readonly dataError = output<object>();\n  readonly dataFileCancelled = output<void>();\n  readonly dataLoaded = output<void>();\n  readonly dataChanged = output<object>();\n  readonly fieldsListClose = output<void>();\n  readonly fieldsListOpen = output<void>();\n  readonly filterOpen = output<void>();\n  readonly fullScreen = output<void>();\n  readonly loadingData = output<void>();\n  readonly loadingLocalization = output<void>();\n  readonly loadingReportFile = output<void>();\n  readonly localizationError = output<void>();\n  readonly localizationLoaded = output<void>();\n  readonly openingReportFile = output<void>();\n  readonly queryComplete = output<void>();\n  readonly queryError = output<void>();\n  readonly ready = output<Pivot>();\n  readonly reportChange = output<void>();\n  readonly reportComplete = output<void>();\n  readonly reportFileCancelled = output<void>();\n  readonly reportFileError = output<void>();\n  readonly reportFileLoaded = output<void>();\n  readonly runningQuery = output<void>();\n  readonly update = output<void>();\n  readonly beforeToolbarCreated = output<object>();\n  readonly afterGridDraw = output<object>();\n  readonly beforeGridDraw = output<object>();\n  readonly exportComplete = output<void>();\n  readonly exportStart = output<void>();\n  readonly filterClose = output<void>();\n  readonly loadingOlapStructure = output<void>();\n  readonly printComplete = output<void>();\n  readonly printStart = output<void>();\n\n  private instance: Pivot | null = null;\n\n  private containerEl = computed<HTMLElement | null>(() => {\n    const root = this.el.nativeElement;\n    return root.querySelector('.wbr-ng-wrapper');\n  });\n\n  constructor() {\n    effect(() => {\n      const rpt = this.report();\n      if (this.instance && rpt) {\n        try {\n          this.instance.setReport?.(rpt as Report);\n        } catch {\n          // ignore if not supported\n        }\n      }\n    });\n  }\n\n  ngAfterViewInit(): void {\n    this.instance = new WebDataRocks({\n      container: this.containerEl(),\n      width: this.width(),\n      height: this.height(),\n      toolbar: this.toolbar(),\n      report: this.report(),\n      global: this.global(),\n      customizeCell: this.customizeCell(),\n      cellclick: (cell: CellData) => this.cellClick.emit(cell),\n      celldoubleclick: (cell: CellData) => this.cellDoubleClick.emit(cell),\n      dataerror: (event: object) => this.dataError.emit(event),\n      datafilecancelled: () => this.dataFileCancelled.emit(),\n      dataloaded: () => this.dataLoaded.emit(),\n      datachanged: (event: object) => this.dataChanged.emit(event),\n      fieldslistclose: () => this.fieldsListClose.emit(),\n      fieldslistopen: () => this.fieldsListOpen.emit(),\n      filteropen: () => this.filterOpen.emit(),\n      loadingdata: () => this.loadingData.emit(),\n      loadinglocalization: () => this.loadingLocalization.emit(),\n      loadingreportfile: () => this.loadingReportFile.emit(),\n      localizationerror: () => this.localizationError.emit(),\n      localizationloaded: () => this.localizationLoaded.emit(),\n      openingreportfile: () => this.openingReportFile.emit(),\n      querycomplete: () => this.queryComplete.emit(),\n      queryerror: () => this.queryError.emit(),\n      ready: () => this.ready.emit(this.instance!),\n      reportchange: () => this.reportChange.emit(),\n      reportcomplete: () => this.reportComplete.emit(),\n      reportfilecancelled: () => this.reportFileCancelled.emit(),\n      reportfileerror: () => this.reportFileError.emit(),\n      reportfileloaded: () => this.reportFileLoaded.emit(),\n      runningquery: () => this.runningQuery.emit(),\n      update: () => this.update.emit(),\n      beforetoolbarcreated: (toolbar: object) => this.beforeToolbarCreated.emit(toolbar),\n      aftergriddraw: (event: object) => this.afterGridDraw.emit(event),\n      beforegriddraw: (event: object) => this.beforeGridDraw.emit(event),\n      exportcomplete: () => this.exportComplete.emit(),\n      exportstart: () => this.exportStart.emit(),\n      filterclose: () => this.filterClose.emit(),\n      loadingolapstructure: () => this.loadingOlapStructure.emit(),\n      printcomplete: () => this.printComplete.emit(),\n      printstart: () => this.printStart.emit()\n    } as Params);\n  }\n\n  ngOnDestroy(): void {\n    if (this.instance) {\n      try {\n        this.instance.dispose?.();\n      } catch {\n        // ignore\n      }\n      this.instance = null;\n    }\n  }\n}\n","<div #pivotContainer class=\"wbr-ng-wrapper\"></div>\n","import { Component, ChangeDetectionStrategy, inject, signal } from '@angular/core';\nimport { NgxPuzzleCanvasBaseComponent } from '../base/ngx-puzzle-canvas-base.component';\nimport {\n  PuzzleCanvasMediatorService,\n  ComponentConfig,\n  ComponentControlProps,\n  ControlConfig,\n  ControlTypesEnum,\n  DataRequestConfig,\n  mainTypes,\n  SafeAny,\n  CONTROL_MOCK_DATA,\n  ControlsService,\n  Debounce,\n  convertStringToDate\n} from '../../../../core';\nimport { NgxPuzzleDragWrapperComponent } from '../drag-wrapper/ngx-puzzle-drag-wrapper.component';\nimport { NgStyle, NgTemplateOutlet } from '@angular/common';\nimport { StylesFormatPipe } from '../../../../pipes';\nimport { FormsModule } from '@angular/forms';\nimport { ThySelectModule } from 'ngx-tethys/select';\nimport { ThyDatePickerModule } from 'ngx-tethys/date-picker';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { ThyTooltipModule } from 'ngx-tethys/tooltip';\nimport { PuzzleDatetimeComponent } from '../../../primitives';\n\n@Component({\n  selector: 'puzzle-control',\n  standalone: true,\n  imports: [\n    NgxPuzzleDragWrapperComponent,\n    NgStyle,\n    StylesFormatPipe,\n    FormsModule,\n    ThyDatePickerModule,\n    NgTemplateOutlet,\n    ThySelectModule,\n    ThyInputModule,\n    PuzzleDatetimeComponent,\n    ThyTooltipModule\n  ],\n  templateUrl: './ngx-puzzle-control.component.html',\n  styleUrls: ['./ngx-puzzle-control.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgxPuzzleControlComponent extends NgxPuzzleCanvasBaseComponent<ComponentControlProps, ControlTypesEnum> {\n  private controlService = inject(ControlsService);\n\n  zIndex = signal(0);\n\n  dataKey: mainTypes = 'control';\n\n  set config(config: ComponentConfig<ComponentControlProps, ControlTypesEnum>) {\n    this.initConfig(config);\n  }\n\n  get config() {\n    return this._config;\n  }\n\n  get control(): ControlConfig {\n    return this.config.props.control;\n  }\n\n  controlValue: SafeAny;\n\n  constructor(mediator: PuzzleCanvasMediatorService<ComponentControlProps, ControlTypesEnum>) {\n    super(mediator);\n  }\n\n  updateData(requestData: DataRequestConfig) {}\n\n  @Debounce(1000)\n  controlValueChange() {\n    this.panelOnShow(false);\n    this.controlService.notifyControlValueChange(this.config.id, this.controlValue);\n  }\n\n  initControlValue() {\n    if (this.config.subType === ControlTypesEnum.datePick) {\n      this.controlValue = convertStringToDate(this.config.props.control.defaultValue);\n    } else {\n      this.controlValue = this.config.props.control.defaultValue;\n    }\n  }\n\n  protected override afterUpdateConfig() {\n    if (this.config.subType === ControlTypesEnum.dateTime) return;\n    this.controlService.setControl(this.config.props.control);\n    this.initControlValue();\n  }\n\n  protected override getDefaultOptions(subType: ControlTypesEnum) {\n    return {\n      ...CONTROL_MOCK_DATA[subType],\n      controlId: this.config.id\n    };\n  }\n\n  panelOnShow(event: boolean) {\n    if (event) {\n      this.zIndex.set(99);\n    } else {\n      this.zIndex.set(0);\n    }\n  }\n}\n","<puzzle-drag-wrapper\n  [isEdit]=\"isEdit\"\n  [size]=\"config.size\"\n  [position]=\"config.position\"\n  [componentId]=\"config.id\"\n  [zIndex]=\"zIndex()\"\n  [styles]=\"config.props.styles\"\n>\n  <div class=\"control-wrapper\" [attr.data-control-type]=\"config.subType\">\n    @if (control.label?.enable) {\n      <div class=\"control-field\">\n        <div class=\"control-label-container\">\n          <label\n            class=\"control-label-text\"\n            [ngStyle]=\"control.label?.styles | stylesFormat\"\n            [thyTooltip]=\"control.label?.description!\"\n            thyTooltipPlacement=\"top\"\n          >\n            {{ control.label?.text }}\n          </label>\n        </div>\n        <div class=\"control-input-container\">\n          <ng-container *ngTemplateOutlet=\"viewControl\"></ng-container>\n        </div>\n      </div>\n    } @else {\n      <ng-container *ngTemplateOutlet=\"viewControl\"></ng-container>\n    }\n  </div>\n</puzzle-drag-wrapper>\n\n<ng-template #viewControl>\n  @switch (config.subType) {\n    @case ('date-pick') {\n      <thy-date-picker\n        style=\"width: 100%\"\n        [(ngModel)]=\"controlValue\"\n        [thyShowTime]=\"control.props['showTime']\"\n        [thyPlaceHolder]=\"control.props['placeholder']\"\n        [thyDisabled]=\"control.props['disabled']\"\n        (ngModelChange)=\"controlValueChange()\"\n      />\n    }\n    @case ('select') {\n      <thy-select\n        style=\"width: 100%\"\n        [(ngModel)]=\"controlValue\"\n        [thyPlaceHolder]=\"control.props['placeholder']\"\n        [thyDisabled]=\"control.props['disabled']\"\n        (ngModelChange)=\"controlValueChange()\"\n      >\n        @for (opt of control.props['options']; track opt) {\n          <thy-option [thyValue]=\"opt[control.props['optionValue']]\" [thyLabelText]=\"opt[control.props['optionLabel']]\"></thy-option>\n        }\n      </thy-select>\n    }\n    @case ('multi-select') {\n      <thy-select\n        style=\"width: 100%\"\n        [(ngModel)]=\"controlValue\"\n        [thyPlaceHolder]=\"control.props['placeholder']\"\n        [thyDisabled]=\"control.props['disabled']\"\n        [thyMode]=\"'multiple'\"\n        (ngModelChange)=\"controlValueChange()\"\n      >\n        @for (opt of control.props['options']; track opt) {\n          <thy-option [thyValue]=\"opt[control.props['optionValue']]\" [thyLabelText]=\"opt[control.props['optionLabel']]\"></thy-option>\n        }\n      </thy-select>\n    }\n    @case ('input') {\n      <input\n        style=\"width: 100%\"\n        [(ngModel)]=\"controlValue\"\n        thyInput\n        type=\"text\"\n        [placeholder]=\"control.props['placeholder']\"\n        (ngModelChange)=\"controlValueChange()\"\n      />\n    }\n    @case ('date-time') {\n      <puzzle-datetime\n        [year]=\"control.props['year']\"\n        [month]=\"control.props['month']\"\n        [day]=\"control.props['day']\"\n        [weekday]=\"control.props['weekday']\"\n        [hourCycle]=\"control.props['hourCycle']\"\n        [hour]=\"control.props['hour']\"\n        [minute]=\"control.props['minute']\"\n        [second]=\"control.props['second']\"\n        [dateSeparator]=\"control.props['dateSeparator']\"\n        [timeSeparator]=\"control.props['timeSeparator']\"\n        [useChineseDate]=\"control.props['useChineseDate']\"\n        [useChineseTime]=\"control.props['useChineseTime']\"\n        [customFormat]=\"control.props['customFormat']\"\n        [autoUpdate]=\"control.props['autoUpdate']\"\n        [updateOnLoad]=\"control.props['updateOnLoad']\"\n        [timezone]=\"control.props['timezone']\"\n        [show]=\"control.props['show']\"\n        [order]=\"control.props['order']\"\n        [layout]=\"control.props['layout']\"\n        [styles]=\"control.props['styles']\"\n      ></puzzle-datetime>\n    }\n  }\n</ng-template>\n","import { Component, inject, OnDestroy, ChangeDetectionStrategy } from '@angular/core';\nimport { NgxPuzzleCanvasBaseComponent } from '../base/ngx-puzzle-canvas-base.component';\nimport {\n  ComponentConfig,\n  DataRequestConfig,\n  ComponentTableProps,\n  mainTypes,\n  SafeAny,\n  TableTypesEnum,\n  PuzzleCanvasMediatorService,\n  TABLE_DATA_OPTIONS,\n  ApiSource,\n  NgxPuzzleHttpService,\n  tableMockRows\n} from '../../../../core';\nimport { CommonModule } from '@angular/common';\nimport { Observable, takeUntil } from 'rxjs';\nimport { ThyTableModule } from 'ngx-tethys/table';\nimport { NgxPuzzleDragWrapperComponent } from '../drag-wrapper/ngx-puzzle-drag-wrapper.component';\nimport { PuzzlePivotTableComponent } from '../../../primitives/puzzle-pivot-table/puzzle-pivot-table.component';\n\n@Component({\n  selector: 'puzzle-table',\n  standalone: true,\n  imports: [CommonModule, NgxPuzzleDragWrapperComponent, ThyTableModule, PuzzlePivotTableComponent],\n  templateUrl: './ngx-puzzle-table.component.html',\n  styleUrls: ['./ngx-puzzle-table.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NgxPuzzleTableComponent extends NgxPuzzleCanvasBaseComponent<ComponentTableProps, TableTypesEnum> implements OnDestroy {\n  dataKey: mainTypes = 'table';\n\n  private httpService = inject(NgxPuzzleHttpService);\n  private _tableData$!: Observable<SafeAny>;\n  private isInit = false;\n\n  public columnDefs!: { field: string }[];\n  public rowData!: SafeAny[];\n\n  set config(config: ComponentConfig<ComponentTableProps, TableTypesEnum>) {\n    this.initConfig(config);\n  }\n\n  get config(): ComponentConfig<ComponentTableProps, TableTypesEnum> {\n    return this._config;\n  }\n\n  constructor(mediator: PuzzleCanvasMediatorService<ComponentTableProps, TableTypesEnum>) {\n    super(mediator);\n  }\n\n  override ngOnDestroy(): void {\n    super.ngOnDestroy?.();\n  }\n\n  override setBaseDataRequest(): void {\n    const dataRequest = this.config.dataRequest || {};\n    this.mediator.updateDataRequest(this.config.id, dataRequest);\n  }\n\n  override afterUpdateConfig() {\n    const { dataRequest, props } = this.config;\n    const { columns } = props.table as any;\n\n    // New dataRequest apiSources flow\n    this.updateData(dataRequest || ({} as DataRequestConfig));\n\n    if (columns) {\n      // map TableColumnDef[] to local light-weight columnDefs used by template rendering\n      this.columnDefs = (columns as any[]).map((col: any) => ({ field: col.field }));\n    }\n\n    this.restartRefreshTimer();\n  }\n\n  private setColumnDefs(data: SafeAny[]): void {\n    if (!data?.length) return;\n    const firstRow = data[0];\n    const columnDefs = Object.keys(firstRow).map((field) => ({ field }));\n    this.columnDefs = columnDefs;\n    // Persist to config as TableColumnDef[] using new 'columns' key\n    (this.config.props.table as any).columns = columnDefs.map((col) => ({ field: col.field, header: col.field })) as SafeAny;\n    if (!this.isInit) {\n      this.mediator.updateComponentData(this.config);\n      this.isInit = true;\n    }\n  }\n\n  private extractTablePayload(raw: SafeAny): SafeAny[] {\n    if (raw && typeof raw === 'object' && !Array.isArray(raw)) {\n      if (raw.success === false) return [];\n      if (Array.isArray(raw.data)) return raw.data;\n      if (Array.isArray(raw.rows)) return raw.rows;\n      if (Array.isArray(raw.list)) return raw.list;\n      if (Array.isArray(raw.values)) return raw.values;\n    }\n    return Array.isArray(raw) ? raw : [];\n  }\n\n  private handleIncomingData(data: SafeAny[]): void {\n    if (!data || !data.length) {\n      this.rowData = [];\n      return;\n    }\n    if (this.isEdit && !this.columnDefs?.length) {\n      this.setColumnDefs(data);\n    }\n    this.rowData = data;\n  }\n\n  public updateData(requestData: DataRequestConfig) {\n    const { apiSources } = requestData || ({} as DataRequestConfig);\n    const apiSource: ApiSource | undefined = apiSources?.[0];\n\n    if (!apiSource) {\n      // fallback to table mock data when no api source is configured\n      this.handleIncomingData(tableMockRows as SafeAny[]);\n      return;\n    }\n\n    const request$ = this.httpService.request(apiSource);\n    this._tableData$ = request$ as unknown as Observable<SafeAny>;\n    this.loadData();\n  }\n\n  public getDefaultOptions(subType: TableTypesEnum) {\n    return TABLE_DATA_OPTIONS[subType];\n  }\n\n  private loadData() {\n    if (this._tableData$) {\n      this._tableData$.pipe(takeUntil(this.destroy$)).subscribe({\n        next: (data) => this.handleIncomingData(Array.isArray(data) ? data : this.extractTablePayload(data)),\n        error: (err) => console.error('Failed to load table data:', err)\n      });\n    }\n  }\n}\n","<puzzle-drag-wrapper\n  [isEdit]=\"isEdit\"\n  [size]=\"config.size\"\n  [position]=\"config.position\"\n  [componentId]=\"config.id\"\n  [styles]=\"config.props.styles\"\n>\n  @if (!!this.config.props) {\n    <puzzle-pivot-table [report]=\"config.props.table\"></puzzle-pivot-table>\n  }\n</puzzle-drag-wrapper>\n","import { Component } from '@angular/core';\nimport { NgxPuzzleCanvasBaseComponent } from '../base/ngx-puzzle-canvas-base.component';\nimport { CommonModule } from '@angular/common';\nimport {\n  TextTypesEnum,\n  ComponentConfig,\n  ComponentTextProps,\n  DataRequestConfig,\n  mainTypes,\n  TEXT_DATA_OPTIONS,\n  PuzzleCanvasMediatorService\n} from '../../../../core';\nimport { NgxPuzzleDragWrapperComponent } from '../drag-wrapper/ngx-puzzle-drag-wrapper.component';\nimport { StylesFormatPipe } from '../../../../pipes';\n\n@Component({\n  selector: 'puzzle-text',\n  standalone: true,\n  imports: [CommonModule, NgxPuzzleDragWrapperComponent, StylesFormatPipe],\n  templateUrl: './ngx-puzzle-text.component.html',\n  styleUrl: './ngx-puzzle-text.component.scss'\n})\nexport class NgxPuzzleTextComponent extends NgxPuzzleCanvasBaseComponent<ComponentTextProps, TextTypesEnum> {\n  override dataKey: mainTypes = 'text';\n\n  set config(config: ComponentConfig<ComponentTextProps, TextTypesEnum>) {\n    console.log('config', config);\n    this.initConfig(config);\n  }\n\n  get config() {\n    return this._config;\n  }\n\n  constructor(mediator: PuzzleCanvasMediatorService<ComponentTextProps, TextTypesEnum>) {\n    super(mediator);\n  }\n\n  updateData(requestData: DataRequestConfig) {}\n\n  getDefaultOptions(subType: TextTypesEnum) {\n    return TEXT_DATA_OPTIONS[subType];\n  }\n}\n","<puzzle-drag-wrapper\n  [isEdit]=\"isEdit\"\n  [size]=\"config.size\"\n  [position]=\"config.position\"\n  [componentId]=\"config.id\"\n  [styles]=\"config.props.styles\"\n  [mainType]=\"config.type\"\n>\n  <div [ngStyle]=\"config.props.text.styles | stylesFormat\">{{ config.props.text.content }}</div>\n</puzzle-drag-wrapper>\n","import { Component, effect, input, output, model, OnDestroy, inject, signal } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport {\n  DataRequestConfig,\n  SafeAny,\n  EditorBaseField,\n  NgxPuzzleDataBindingRequest,\n  convertFormDataToOptions,\n  convertOptionsToFormData,\n  updateFormData,\n  ControlsService,\n  NgxPuzzleDataBindingService\n} from '../../../../core';\nimport { isEqual } from 'lodash';\n\n/**\n * 编辑器基类，提供通用的编辑器功能\n * @template TConfig 具体的配置对象类型\n * @template TSubType 子类型枚举\n * @template TField 字段类型，继承自 EditorBaseField\n */\n@Component({\n  template: ``\n})\nexport abstract class EditorBaseComponent<\n  TConfig extends Record<string, SafeAny> = Record<string, SafeAny>,\n  TSubType extends string = string,\n  TSection extends EditorBaseField = EditorBaseField\n> implements OnDestroy\n{\n  protected controlsService = inject(ControlsService);\n  protected dataBindingService = inject(NgxPuzzleDataBindingService);\n\n  // 通用输入属性\n  componentId = input<string>();\n  options = model<TConfig>();\n  subType = input<string>();\n  requestOptions = input<DataRequestConfig>({ apiSources: [] });\n\n  // 通用输出事件\n  readonly onChange = output<TConfig>();\n  readonly requestOptionsChange = output<DataRequestConfig>();\n\n  // 统一的字段属性名\n  public sections: TSection[] = [];\n\n  // 通用公共属性\n  public formData = signal<Record<string, SafeAny>>({});\n\n  // 生命周期管理\n  protected destroy$ = new Subject<void>();\n\n  constructor() {\n    effect(() => {\n      const dataRequest = this.requestOptions();\n      console.log(`EditorBaseComponent dataRequest`, dataRequest);\n    });\n    this.setupEffects();\n  }\n\n  /**\n   * 设置 effect 监听\n   */\n  private setupEffects(): void {\n    effect(() => {\n      const opts = this.options();\n      const type = this.subType();\n      this.setFields(type as TSubType);\n\n      this.updateFormData(opts);\n\n      this.afterConfigUpdate(opts, this.requestOptions());\n    }, { allowSignalWrites: true });\n  }\n\n  /**\n   * 抽象方法：设置字段配置 - 子类必须实现\n   */\n  protected abstract setFields(type?: TSubType): void;\n\n  /**\n   * 获取组件类型 - 子类需要实现\n   */\n  protected abstract getComponentType(): string;\n\n  /**\n   * 更新表单数据 - 子类可重写\n   */\n  protected updateFormData(config?: TConfig): void {\n    // 先转换新的 formData\n    const newFormData = convertOptionsToFormData(config, this.sections);\n    console.log(`updateFormData`, newFormData);\n    if (!isEqual(this.formData, newFormData)) {\n      this.formData.set(newFormData);\n      console.log(`updateFormData`, this.formData);\n    }\n  }\n\n  /**\n   * 配置更新后的钩子方法 - 子类可重写\n   */\n  protected afterConfigUpdate(config?: TConfig, requestOptions?: DataRequestConfig): void {\n    // 子类可重写此方法\n  }\n\n  /**\n   * 表单字段变更处理 - 子类可重写\n   */\n  onFormFieldChange(key: string, value: SafeAny, parentKey?: string, index?: number): void {\n    this.formData.set(updateFormData(this.formData, key, value, parentKey, index));\n    console.log(`onFormFieldChange`, this.formData());\n    const updated = convertFormDataToOptions(this.formData(), structuredClone(this.options()), this.sections)!;\n    this.onChange.emit(updated);\n  }\n\n  /**\n   * 删除数组项 - 支持数据绑定同步\n   */\n  protected removeArrayItem(key: string, index: number): void {\n    this.formData.set(this.formData()[key].splice(index, 1));\n    this.options.set(convertFormDataToOptions(this.formData(), this.options(), this.sections));\n    console.log(`removeArrayItem`, this.options());\n    this.onChange.emit(this.options()!);\n\n    // 如果删除的是系列数据，同步删除数据绑定\n    if (key === 'series' && this.componentId()) {\n      this.dataBindingService.removeSeriesBinding(this.componentId()!, index);\n    }\n  }\n\n  onDataBtnClick<T extends EditorBaseField>(field: T, i: number) {\n    console.log(`onDataBtnClick`, field, i);\n\n    // 简化的数据绑定请求，只传递必要信息\n    const request: NgxPuzzleDataBindingRequest = {\n      componentId: this.componentId() || '',\n      componentType: this.getComponentType(),\n      seriesIndex: i,\n      apiSource: this.requestOptions()?.apiSources?.[i]\n    };\n\n    // 发起数据绑定请求\n    this.dataBindingService.requestBinding(request);\n  }\n\n  ngOnDestroy(): void {\n    // 清理组件的数据绑定\n    if (this.componentId()) {\n      this.dataBindingService.removeComponentDataRequest(this.componentId()!);\n    }\n\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n}\n","import { Component, HostBinding } from '@angular/core';\nimport { EditorChartField, ChartTypesEnum, CHART_FIELDS_MAP, SafeAny } from '../../../../core';\nimport { ThyCollapseModule } from 'ngx-tethys/collapse';\nimport { ThyCardModule } from 'ngx-tethys/card';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { FormsModule } from '@angular/forms';\nimport { EditorBaseComponent } from '../base/editor-base.component';\nimport { PuzzleFormRendererComponent } from '../../../primitives';\n\n@Component({\n  selector: 'ngx-puzzle-chart-editor',\n  standalone: true,\n  imports: [ThyCollapseModule, ThyCardModule, ThyButtonModule, FormsModule, PuzzleFormRendererComponent],\n  templateUrl: './ngx-puzzle-chart-editor.component.html',\n  styleUrl: './ngx-puzzle-chart-editor.component.scss'\n})\nexport class NgxPuzzleChartEditorComponent extends EditorBaseComponent<SafeAny, ChartTypesEnum, EditorChartField> {\n  @HostBinding('class.chart-editor-component') isEditorComponent = true;\n\n  public chartType!: ChartTypesEnum;\n\n  protected setFields(type: ChartTypesEnum): void {\n    if (this.chartType === type) return;\n    this.chartType = type;\n    this.sections = CHART_FIELDS_MAP[type]!;\n  }\n\n  protected getComponentType(): string {\n    return 'chart';\n  }\n\n  /**\n   * 处理表单字段变化\n   */\n  onFieldChange(event: { key: string; value: SafeAny; parentKey?: string; index?: number }): void {\n    this.onFormFieldChange(event.key, event.value, event.parentKey, event.index);\n  }\n\n  /**\n   * 处理数组项添加\n   */\n  onArrayItemAdd(event: { fieldKey: string; children: any[] }): void {\n    this.addArrayItem(event.fieldKey, event.children);\n  }\n\n  /**\n   * 处理数组项删除\n   */\n  onArrayItemRemove(event: { fieldKey: string; index: number }): void {\n    this.removeArrayItem(event.fieldKey, event.index);\n  }\n\n  addArrayItem(key: string, schema: any[]) {\n    const currentData = this.formData();\n    const fieldArray = currentData[key] || [];\n\n    const defaultType = schema[0]?.options?.[0].val as string;\n    const item: any = {};\n    for (const field of schema) {\n      item[field.key] = field.defaultValue || '';\n    }\n    item['type'] = defaultType;\n\n    fieldArray.push(item);\n    this.onFormFieldChange(key, fieldArray);\n  }\n\n  // removeArrayItem(key: string, index: number) {\n  //   if (this.formData[key] && Array.isArray(this.formData[key])) {\n  //     this.formData[key].splice(index, 1);\n  //     this.onFormFieldChange(key, this.formData[key]);\n  //   }\n  // }\n}\n","<div class=\"chart-editor\">\n  <puzzle-form-renderer\n    [sections]=\"sections\"\n    [formData]=\"formData()\"\n    (fieldChange)=\"onFieldChange($event)\"\n    (arrayItemAdd)=\"onArrayItemAdd($event)\"\n    (arrayItemRemove)=\"onArrayItemRemove($event)\"\n  />\n</div>\n","import { Component } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { isArray } from 'lodash';\nimport { ThyCollapseModule } from 'ngx-tethys/collapse';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { ThyDatePickerModule } from 'ngx-tethys/date-picker';\nimport { ThyTooltipModule } from 'ngx-tethys/tooltip';\nimport { ThyGridModule } from 'ngx-tethys/grid';\nimport { ThyLayoutModule } from 'ngx-tethys/layout';\n\nimport { EditorBaseComponent } from '../base/editor-base.component';\nimport { CONTROL_COMPONENT_FIELDS, ControlConfig, ControlTypesEnum, SafeAny, convertDateToString } from '../../../../core';\nimport { PuzzleFormRendererComponent } from '../../../primitives';\n\n@Component({\n  selector: 'ngx-puzzle-control-editor, puzzle-control-editor',\n  standalone: true,\n  imports: [\n    ThyCollapseModule,\n    ThyButtonModule,\n    ReactiveFormsModule,\n    FormsModule,\n    ThyDatePickerModule,\n    ThyTooltipModule,\n    ThyGridModule,\n    ThyLayoutModule,\n    PuzzleFormRendererComponent\n  ],\n  templateUrl: './ngx-puzzle-control-editor.component.html',\n  styleUrl: './ngx-puzzle-control-editor.component.scss'\n})\nexport class NgxPuzzleControlEditorComponent extends EditorBaseComponent<ControlConfig, ControlTypesEnum> {\n  protected setFields(subType?: ControlTypesEnum): void {\n    if (!subType) return;\n    this.sections = CONTROL_COMPONENT_FIELDS[subType];\n  }\n\n  protected getComponentType(): string {\n    return 'control';\n  }\n\n  /**\n   * 处理表单字段变化\n   */\n  onFieldChange(event: { key: string; value: SafeAny; parentKey?: string; index?: number }): void {\n    this.onFormFieldChange(event.key, event.value, event.parentKey, event.index);\n  }\n\n  /**\n   * 处理日期变化\n   */\n  onDateChange(event: { key: string; value: SafeAny }): void {\n    this.dateChange(event.key, event.value);\n  }\n\n  /**\n   * 处理选项添加\n   */\n  onOptionAdd(event: { fieldKey: string }): void {\n    this.addOption(event.fieldKey);\n  }\n\n  /**\n   * 处理选项删除\n   */\n  onOptionRemove(event: { fieldKey: string; index: number }): void {\n    this.removeOption(event.fieldKey, event.index);\n  }\n\n  /**\n   * 处理表格编辑完成\n   */\n  onTableEditComplete(event: { fieldKey: string }): void {\n    this.tableEditComplete(event.fieldKey);\n  }\n\n  public dateChange(key: string, value: SafeAny) {\n    let newValue: SafeAny | undefined;\n    if (value instanceof Date || (isArray(value) && value.length > 0 && value[0] instanceof Date)) {\n      newValue = convertDateToString(value as any);\n    }\n    this.onFormFieldChange(key, newValue ?? value);\n  }\n\n  addOption(fieldKey: string) {\n    const currentData = this.formData();\n    const fieldArray = currentData[fieldKey] || [];\n    fieldArray.push({ label: '', value: '' });\n    this.onFormFieldChange(fieldKey, structuredClone(fieldArray));\n  }\n\n  removeOption(fieldKey: string, index: number) {\n    const currentData = this.formData();\n    const fieldArray = [...(currentData[fieldKey] || [])];\n    fieldArray.splice(index, 1);\n    this.onFormFieldChange(fieldKey, fieldArray);\n  }\n\n  tableEditComplete(fieldKey: string) {\n    const currentData = this.formData();\n    const newValue = structuredClone(currentData[fieldKey]);\n    this.onFormFieldChange(fieldKey, newValue);\n  }\n}\n","<div class=\"control-editor\">\n  <puzzle-form-renderer\n    [sections]=\"sections\"\n    [formData]=\"formData()\"\n    (fieldChange)=\"onFieldChange($event)\"\n    (dateChange)=\"onDateChange($event)\"\n    (optionAdd)=\"onOptionAdd($event)\"\n    (optionRemove)=\"onOptionRemove($event)\"\n  />\n</div>\n","import { Component } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ThyCollapseModule } from 'ngx-tethys/collapse';\nimport { ThyDatePickerModule } from 'ngx-tethys/date-picker';\nimport { ThyTooltipModule } from 'ngx-tethys/tooltip';\nimport { ThyGridModule } from 'ngx-tethys/grid';\nimport { ThyLayoutModule } from 'ngx-tethys/layout';\nimport { CONTROL_BIND_FIELDS, SafeAny, updateFieldChildrenStream, REFRESH_CONFIG, RefreshConfig } from '../../../../core';\n\nimport { EditorBaseComponent } from '../base/editor-base.component';\nimport { PuzzleFormRendererComponent } from '../../../primitives';\n\n@Component({\n  selector: 'ngx-puzzle-refresh-editor, puzzle-refresh-editor',\n  standalone: true,\n  imports: [\n    ThyCollapseModule,\n    ReactiveFormsModule,\n    FormsModule,\n    ThyDatePickerModule,\n    ThyTooltipModule,\n    ThyGridModule,\n    ThyLayoutModule,\n    PuzzleFormRendererComponent\n  ],\n  templateUrl: './ngx-puzzle-refresh-editor.component.html',\n  styleUrl: './ngx-puzzle-refresh-editor.component.scss'\n})\nexport class NgxPuzzleRefreshEditorComponent extends EditorBaseComponent<RefreshConfig> {\n  protected setFields(): void {\n    this.sections = [\n      ...REFRESH_CONFIG,\n      updateFieldChildrenStream(CONTROL_BIND_FIELDS, {\n        controlIds: this.controlsService.availableControlOptions$\n      })\n    ];\n  }\n\n  protected getComponentType(): string {\n    return 'refresh';\n  }\n\n  /**\n   * 处理表单字段变化\n   */\n  onFieldChange(event: { key: string; value: SafeAny; parentKey?: string; index?: number }): void {\n    this.onFormFieldChange(event.key, event.value, event.parentKey, event.index);\n  }\n}\n","<div class=\"refresh-editor\">\n  <puzzle-form-renderer\n    [sections]=\"sections\"\n    [formData]=\"formData()\"\n    (fieldChange)=\"onFieldChange($event)\"\n  />\n</div>\n","import { Component } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { EditorBaseComponent } from '../base/editor-base.component';\nimport { EditorTableField, TableTypesEnum, TABLE_FIELDS_MAP, SafeAny, convertFormDataToOptions } from '../../../../core';\nimport { Report } from '@webdatarocks/webdatarocks';\nimport { PuzzleFormRendererComponent } from '../../../primitives';\n\n@Component({\n  selector: 'ngx-puzzle-table-editor, puzzle-table-editor',\n  standalone: true,\n  imports: [FormsModule, ReactiveFormsModule, PuzzleFormRendererComponent],\n  templateUrl: './ngx-puzzle-table-editor.component.html',\n  styleUrl: './ngx-puzzle-table-editor.component.scss'\n})\nexport class NgxPuzzleTableEditorComponent extends EditorBaseComponent<Report, TableTypesEnum, EditorTableField> {\n  protected setFields(type?: TableTypesEnum): void {\n    if (!type) return;\n    this.sections = TABLE_FIELDS_MAP[type];\n  }\n\n  protected getComponentType(): string {\n    return 'table';\n  }\n\n  protected override afterConfigUpdate(tableConfig?: Report): void {}\n\n  /**\n   * 添加数组项\n   */\n  addArrayItem(fieldKey: string, fieldChildren: any[]): void {\n    if (!this.formData()[fieldKey]) {\n      this.formData.set({ ...this.formData(), [fieldKey]: null });\n    }\n\n    // 创建新项的默认值\n    const newItem: Record<string, any> = {};\n    for (const child of fieldChildren) {\n      if (child.schemaType === 'group' && child.children) {\n        // 递归处理 group 类型的默认值\n        const groupDefaults = this.createGroupDefaults(child.children);\n        Object.assign(newItem, groupDefaults);\n      } else {\n        newItem[child.key] = child.defaultValue;\n      }\n    }\n\n    this.formData.set(this.formData()[fieldKey].push(newItem));\n    const updated = convertFormDataToOptions(this.formData, structuredClone(this.options()), this.sections)!;\n    this.onChange.emit(updated);\n  }\n\n  /**\n   * 创建组字段的默认值\n   */\n  private createGroupDefaults(children: any[]): Record<string, any> {\n    const defaults: Record<string, any> = {};\n    for (const child of children) {\n      if (child.schemaType === 'group' && child.children) {\n        Object.assign(defaults, this.createGroupDefaults(child.children));\n      } else {\n        defaults[child.key] = child.defaultValue;\n      }\n    }\n    return defaults;\n  }\n\n  /**\n   * 处理表单字段变化\n   */\n  onFieldChange(event: { key: string; value: SafeAny; parentKey?: string; index?: number }): void {\n    this.onFormFieldChange(event.key, event.value, event.parentKey, event.index);\n  }\n\n  /**\n   * 处理数组项添加\n   */\n  onArrayItemAdd(event: { fieldKey: string; children: any[] }): void {\n    this.addArrayItem(event.fieldKey, event.children);\n  }\n\n  /**\n   * 处理数组项删除\n   */\n  onArrayItemRemove(event: { fieldKey: string; index: number }): void {\n    this.removeArrayItem(event.fieldKey, event.index);\n  }\n}\n","\n<div class=\"table-editor\">\n  <puzzle-form-renderer\n    [sections]=\"sections\"\n    [formData]=\"formData()\"\n    (fieldChange)=\"onFieldChange($event)\"\n    (arrayItemAdd)=\"onArrayItemAdd($event)\"\n    (arrayItemRemove)=\"onArrayItemRemove($event)\"\n  />\n</div>\n","import { Component } from '@angular/core';\nimport { EditorBaseComponent } from '../base/editor-base.component';\nimport { TEXT_FIELDS_MAP, TextConfig, TextTypesEnum, SafeAny } from '../../../../core';\nimport { PuzzleFormRendererComponent } from '../../../primitives';\n\n@Component({\n  selector: 'ngx-puzzle-text-editor, puzzle-text-editor',\n  standalone: true,\n  imports: [\n    PuzzleFormRendererComponent\n  ],\n  templateUrl: './ngx-puzzle-text-editor.component.html',\n  styleUrl: './ngx-puzzle-text-editor.component.scss'\n})\nexport class NgxPuzzleTextEditorComponent extends EditorBaseComponent<TextConfig, TextTypesEnum> {\n  protected setFields(type?: TextTypesEnum): void {\n    if (!type) return;\n    this.sections = TEXT_FIELDS_MAP[type];\n  }\n\n  protected getComponentType(): string {\n    return 'text';\n  }\n\n  /**\n   * 处理表单字段变化\n   */\n  onFieldChange(event: { key: string; value: SafeAny; parentKey?: string; index?: number }): void {\n    this.onFormFieldChange(event.key, event.value, event.parentKey, event.index);\n  }\n}\n","<div class=\"text-editor\">\n  <puzzle-form-renderer\n    [sections]=\"sections\"\n    [formData]=\"formData()\"\n    (fieldChange)=\"onFieldChange($event)\"\n  />\n</div>\n","import { AfterViewInit, Component, OnDestroy, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n  ComponentBaseProps,\n  ComponentConfig,\n  DataRequestConfig,\n  EditorTab,\n  Position,\n  RefreshConfig,\n  Size,\n  TextConfig,\n  ControlConfig,\n  EditorBaseField,\n  basicTypes,\n  editorTabTypes,\n  mainTypes,\n  SafeAny,\n  BASE_TAB,\n  EDITOR_TAB_MAP,\n  EDITOR_BASE_FIELDS,\n  convertFormDataToOptions,\n  convertOptionsToFormData,\n  PuzzleCanvasMediatorService,\n  updateFormData\n} from '../../core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ThyTabsModule } from 'ngx-tethys/tabs';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { cloneDeep, isEqual } from 'lodash';\nimport { ThyLayoutModule } from 'ngx-tethys/layout';\nimport { ThyGridModule } from 'ngx-tethys/grid';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { ThyInputNumberModule } from 'ngx-tethys/input-number';\nimport { ThyColorPickerModule } from 'ngx-tethys/color-picker';\nimport { ThySelectModule } from 'ngx-tethys/select';\nimport {\n  NgxPuzzleChartEditorComponent,\n  NgxPuzzleRefreshEditorComponent,\n  NgxPuzzleTextEditorComponent,\n  NgxPuzzleTableEditorComponent,\n  NgxPuzzleControlEditorComponent\n} from './dynamic-editor/';\nimport { PuzzleFormRendererComponent } from '../primitives';\nimport { Report } from '@webdatarocks/webdatarocks';\n\n@Component({\n  selector: 'ngx-puzzle-props-editor, puzzle-props-editor',\n  standalone: true,\n  imports: [\n    FormsModule,\n    ThyTabsModule,\n    ThyIcon,\n    ThyLayoutModule,\n    ThyGridModule,\n    ThyInputNumberModule,\n    ThyColorPickerModule,\n    ThyInputModule,\n    ThySelectModule,\n    NgxPuzzleChartEditorComponent,\n    NgxPuzzleControlEditorComponent,\n    NgxPuzzleRefreshEditorComponent,\n    NgxPuzzleTextEditorComponent,\n    NgxPuzzleTableEditorComponent,\n    PuzzleFormRendererComponent\n  ],\n  templateUrl: './ngx-puzzle-props-editor.component.html',\n  styleUrl: './ngx-puzzle-props-editor.component.scss',\n  host: {\n    '[class.ngx-puzzle-editor]': `true`\n  }\n})\nexport class NgxPuzzlePropsEditorComponent implements AfterViewInit, OnDestroy {\n  private destroy$: Subject<void> = new Subject<void>();\n\n  public config!: ComponentConfig;\n\n  public fields: EditorBaseField[] = [];\n  // 样式字段\n  public styleFields: EditorBaseField[] = [];\n\n  public sections: EditorBaseField[] = [];\n\n  public formData: Record<string, SafeAny> = {};\n\n  public tabs = signal<EditorTab[]>([]);\n\n  public activeTab: editorTabTypes = 'appearance';\n\n  constructor(private mediator: PuzzleCanvasMediatorService) {}\n\n  ngAfterViewInit(): void {\n    const config = this.mediator.getCurrentSelect();\n    if (!!config) {\n      this.resetConfig(config);\n    }\n    this.setupObservables();\n  }\n\n  private setupTabs(config: ComponentConfig): void {\n    this.tabs.set(EDITOR_TAB_MAP[config.type] || [BASE_TAB]);\n    this.onTabChange(this.tabs()[0].value);\n  }\n\n  private resetConfig(config: ComponentConfig): void {\n    // 检查是否需要更新配置\n    const shouldUpdate = this.shouldUpdateConfig(config);\n\n    if (shouldUpdate) {\n      this.setupTabs(config);\n      this.updateAllConfig(config);\n    }\n  }\n\n  private shouldUpdateConfig(newConfig: ComponentConfig): boolean {\n    // 如果当前没有配置，需要更新\n    if (!this.config) {\n      return true;\n    }\n\n    // 如果 ID 不同，需要更新\n    if (this.config.id !== newConfig.id) {\n      return true;\n    }\n\n    // 如果配置内容发生变化，需要更新\n    return !isEqual(this.config, newConfig);\n  }\n\n  private setupObservables(): void {\n    this.mediator.componentSelect$.pipe(takeUntil(this.destroy$)).subscribe((config: ComponentConfig) => {\n      this.resetConfig(config);\n    });\n    this.mediator.componentUpdateProps$.pipe(takeUntil(this.destroy$)).subscribe(({ id, props }) => {\n      if (id === this.config.id) {\n        this.updateProps(props);\n      }\n    });\n    this.mediator.componentMoving$.pipe(takeUntil(this.destroy$)).subscribe(({ id, position }) => {\n      if (id === this.config.id) {\n        this.updatePosition(position);\n      }\n    });\n    this.mediator.componentResize$.pipe(takeUntil(this.destroy$)).subscribe((config) => {\n      const { id, size, position } = config;\n      if (id === this.config.id) {\n        this.updateSize(size);\n        this.updatePosition(position);\n      }\n    });\n    this.mediator.dataRequest$.pipe(takeUntil(this.destroy$)).subscribe(({ id, dataRequest }) => {\n      if (id === this.config.id) {\n        this.config.dataRequest = {\n          ...dataRequest\n        };\n      }\n    });\n  }\n\n  private updateAllConfig(config: ComponentConfig): void {\n    const configCopy = cloneDeep(config);\n    console.log(`updateAllConfig`, configCopy);\n    this.config = {\n      ...this.config,\n      ...configCopy\n    };\n    this.sections = EDITOR_BASE_FIELDS[config.type];\n    this.formData = convertOptionsToFormData(this.config, this.sections);\n  }\n\n  private updateProps<TConfigProps extends ComponentBaseProps>(props: TConfigProps): void {\n    this.config.props = {\n      ...this.config.props,\n      ...props\n    };\n\n    this.formData = convertOptionsToFormData(this.config, this.sections);\n  }\n\n  private updatePosition(position: Position) {\n    this.config = {\n      ...this.config,\n      position\n    };\n    this.formData = convertOptionsToFormData(this.config, this.sections);\n  }\n\n  private updateSize(size: Size) {\n    this.config = {\n      ...this.config,\n      size\n    };\n    this.formData = convertOptionsToFormData(this.config, this.sections);\n  }\n\n  basicDataChange(val: number | string, field: basicTypes): void {\n    // Create a deep copy for history recording before making changes\n    const configForHistory = cloneDeep(this.config);\n    let actionType: 'resize' | 'move' | null = null;\n\n    switch (field) {\n      case 'width':\n      case 'height':\n        actionType = 'resize';\n        break;\n      case 'positionX':\n      case 'positionY':\n        actionType = 'move';\n        break;\n    }\n    if (actionType) {\n      this.mediator.recordHistory(configForHistory, actionType);\n      const { id, size, position } = this.config;\n      actionType === 'resize' ? this.mediator.resizeComponent(id, size, position) : this.mediator.movingComponent(id, position);\n    }\n  }\n\n  // 更新刷新评率\n  updateRefreshOptions(refreshOptions: RefreshConfig): void {\n    this.config['refreshConfig'] = refreshOptions;\n    this.mediator.updateComponentData(this.config);\n  }\n\n  // 更新 props\n  updateOptions(options: SafeAny | Report | TextConfig | ControlConfig, type: mainTypes): void {\n    const optionsCopy = cloneDeep(options);\n\n    switch (type) {\n      case 'chart':\n        this.config.props = {\n          ...this.config.props,\n          chart: optionsCopy\n        };\n        break;\n      case 'table':\n        this.config.props = {\n          ...this.config.props,\n          table: optionsCopy\n        };\n        break;\n      case 'text':\n        this.config.props = {\n          ...this.config.props,\n          text: optionsCopy\n        };\n        break;\n      case 'control':\n        this.config.props = {\n          ...this.config.props,\n          control: optionsCopy\n        };\n        break;\n    }\n    this.emitUpdateProps(this.config.props);\n  }\n\n  private emitUpdateProps<TProps extends ComponentBaseProps>(props: TProps): void {\n    this.mediator.updateComponentProps(this.config.id, props);\n  }\n\n  onTabChange(event: any): void {\n    this.activeTab = event;\n    const isWideMode = event === 'advanced' && this.config.type === 'table';\n    this.mediator.setDrawerWideMode(isWideMode);\n  }\n\n  requestChange(dateRequest: DataRequestConfig): void {\n    this.mediator.updateDataRequest(this.config.id, dateRequest);\n  }\n\n  onFieldChange(event: { key: string; value: SafeAny; parentKey?: string; index?: number }): void {\n    this.formData = updateFormData(this.formData, event.key, event.value, event?.parentKey, event?.index);\n    const updated = convertFormDataToOptions(this.formData, this.config, this.sections);\n    this.config = {\n      ...this.config,\n      ...updated\n    };\n    const basicKeys: basicTypes[] = ['width', 'height', 'positionX', 'positionY'];\n    if ((basicKeys as string[]).includes(event.key)) {\n      this.basicDataChange(event.value as number | string, event.key as basicTypes);\n    } else {\n      console.log(updated.props);\n      this.mediator.updateComponentProps(this.config.id, updated.props);\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n}\n","<div class=\"ngx-puzzle-editor-component\">\n  <thy-tabs [thyActiveTab]=\"activeTab\" (thyActiveTabChange)=\"onTabChange($event)\">\n    @for (tab of tabs(); let i = $index; track i) {\n      <thy-tab [id]=\"tab.value\">\n        <ng-template #title>\n          <thy-icon [thyIconName]=\"tab.icon\"></thy-icon>\n          {{ tab.title }}\n        </ng-template>\n        @switch (tab.value) {\n          @case ('appearance') {\n            <puzzle-form-renderer [sections]=\"sections\" [formData]=\"formData\" (fieldChange)=\"onFieldChange($event)\" />\n          }\n          @case ('advanced') {\n            @if (config.type === 'chart' && config.props['chart']) {\n              <ngx-puzzle-chart-editor\n                [componentId]=\"config.id\"\n                [options]=\"config.props['chart']\"\n                [subType]=\"config.subType\"\n                [requestOptions]=\"config.dataRequest || {}\"\n                (onChange)=\"updateOptions($event, 'chart')\"\n              ></ngx-puzzle-chart-editor>\n            } @else if (config.type === 'table') {\n              <ngx-puzzle-table-editor\n                [componentId]=\"config.id\"\n                [options]=\"config.props['table']\"\n                [subType]=\"config.subType\"\n                [requestOptions]=\"config.dataRequest || {}\"\n                (onChange)=\"updateOptions($event, 'table')\"\n                (requestOptionsChange)=\"requestChange($event)\"\n              ></ngx-puzzle-table-editor>\n            }\n          }\n          @case ('styles') {\n            @if (config.type === 'text') {\n              <ngx-puzzle-text-editor\n                [options]=\"config.props['text']\"\n                [subType]=\"config.subType\"\n                (onChange)=\"updateOptions($event, 'text')\"\n              ></ngx-puzzle-text-editor>\n            }\n          }\n          @case ('control') {\n            <puzzle-control-editor\n              [options]=\"config.props['control']\"\n              [subType]=\"config.subType\"\n              (onChange)=\"updateOptions($event, 'control')\"\n            ></puzzle-control-editor>\n          }\n          @case ('refresh') {\n            <ngx-puzzle-refresh-editor\n              [options]=\"config.refreshConfig\"\n              (onChange)=\"updateRefreshOptions($event)\"\n            ></ngx-puzzle-refresh-editor>\n          }\n        }\n      </thy-tab>\n    }\n  </thy-tabs>\n</div>\n","import { AfterViewInit, Component } from '@angular/core';\nimport {\n  CHART_SERIES_TYPE_OPTIONS,\n  INIT_SETTINGS_CONFIG,\n  TEXT_TYPE_OPTIONS,\n  TABLE_TYPE_OPTIONS,\n  CONTROL_TYPE_OPTIONS,\n  ComponentConfig,\n  mainTypes,\n  ChartTypesEnum,\n  TextTypesEnum,\n  TableTypesEnum,\n  ControlTypesEnum,\n  PuzzleCanvasMediatorService,\n  generateUUID\n} from '../../core';\nimport { CdkDrag, CdkDragEnd, CdkDropList } from '@angular/cdk/drag-drop';\nimport { ThyTooltipModule } from 'ngx-tethys/tooltip';\nimport { ThyIcon } from 'ngx-tethys/icon';\n\n@Component({\n  selector: 'ngx-puzzle-panel, puzzle-panel',\n  standalone: true,\n  imports: [CdkDropList, CdkDrag, ThyTooltipModule, ThyIcon],\n  templateUrl: './ngx-puzzle-panel.component.html',\n  styleUrl: './ngx-puzzle-panel.component.scss',\n  host: {\n    '[class.ngx-puzzle-panel]': `true`\n  }\n})\nexport class NgxPuzzlePanelComponent implements AfterViewInit {\n  private canvasElement!: HTMLElement;\n\n  private canvasContainer!: HTMLElement;\n\n  public chartList = CHART_SERIES_TYPE_OPTIONS;\n\n  public tableList = TABLE_TYPE_OPTIONS;\n\n  public textList = TEXT_TYPE_OPTIONS;\n\n  public controlList = CONTROL_TYPE_OPTIONS;\n\n  constructor(private mediator: PuzzleCanvasMediatorService) {}\n\n  ngAfterViewInit() {\n    this.canvasElement = document.getElementById('puzzle-canvas') as HTMLElement;\n    this.canvasContainer = document.getElementById('canvas-container') as HTMLElement;\n  }\n\n  onDragEnded(event: CdkDragEnd, type: mainTypes, subType: ChartTypesEnum | TableTypesEnum | TextTypesEnum | ControlTypesEnum) {\n    const canvasEleRect = this.canvasElement.getBoundingClientRect();\n    const offsetTop = this.canvasContainer.scrollTop;\n    const offsetLeft = this.canvasContainer.scrollLeft;\n    const { dropPoint } = event;\n\n    const isInCanvas =\n      dropPoint.x >= canvasEleRect.left &&\n      dropPoint.x <= canvasEleRect.right &&\n      dropPoint.y >= canvasEleRect.top &&\n      dropPoint.y <= canvasEleRect.bottom;\n    if (isInCanvas) {\n      const config: ComponentConfig = {\n        ...INIT_SETTINGS_CONFIG[type],\n        id: generateUUID(),\n        subType,\n        position: {\n          x: parseInt(`${dropPoint.x - canvasEleRect.left - 25 + offsetLeft}`),\n          y: parseInt(`${dropPoint.y - canvasEleRect.top - 20 + offsetTop}`)\n        }\n      };\n      console.log(`config`, config);\n      this.mediator.addComponent(config);\n    }\n  }\n}\n","<div class=\"ngx-puzzle-panel-component\">\n  <h5 class=\"font-size-md font-weight-normal\">图表</h5>\n  <ul class=\"panel-list\">\n    @for (chart of chartList; track chart.val) {\n      <li cdkDropList>\n        <div class=\"drop-item\" cdkDrag (cdkDragEnded)=\"onDragEnded($event, 'chart', chart.val)\">\n          <thy-icon class=\"panel-icon\" [thyIconName]=\"'chart:' + chart.val\"></thy-icon>\n        </div>\n        <p [thyTooltip]=\"chart.label\">{{ chart.label }}</p>\n      </li>\n    }\n  </ul>\n  <h5 class=\"font-size-md font-weight-normal\">数据展示</h5>\n  <ul class=\"panel-list\">\n    @for (table of tableList; track table.val) {\n      <li cdkDropList>\n        <div class=\"drop-item\" cdkDrag (cdkDragEnded)=\"onDragEnded($event, 'table', table.val)\">\n          <thy-icon class=\"panel-icon\" [thyIconName]=\"'table:' + table.val\"></thy-icon>\n        </div>\n        <p [thyTooltip]=\"table.label\">{{ table.label }}</p>\n      </li>\n    }\n  </ul>\n  <h5 class=\"font-size-md font-weight-normal\">文本</h5>\n  <ul class=\"panel-list\">\n    @for (text of textList; track text.val) {\n      <li cdkDropList>\n        <div class=\"drop-item\" cdkDrag (cdkDragEnded)=\"onDragEnded($event, 'text', text.val)\">\n          <thy-icon class=\"panel-icon\" [thyIconName]=\"'text:' + text.val\"></thy-icon>\n        </div>\n        <p [thyTooltip]=\"text.label\">{{ text.label }}</p>\n      </li>\n    }\n  </ul>\n  <h5 class=\"font-size-md font-weight-normal\">控件</h5>\n  <ul class=\"panel-list\">\n    @for (control of controlList; track control.val) {\n      <li cdkDropList>\n        <div class=\"drop-item\" cdkDrag (cdkDragEnded)=\"onDragEnded($event, 'control', control.val)\">\n          <thy-icon class=\"panel-icon\" [thyIconName]=\"'control:' + control.val\"></thy-icon>\n        </div>\n        <p [thyTooltip]=\"control.label\">{{ control.label }}</p>\n      </li>\n    }\n  </ul>\n</div>\n","import {  Component, HostBinding, signal } from '@angular/core';\nimport { ThySlideModule } from 'ngx-tethys/slide';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyButtonModule } from 'ngx-tethys/button';\nimport { NgxPuzzlePanelComponent,NgxPuzzlePropsEditorComponent,NgxPuzzleCanvasComponent } from '../../components';\n\n@Component({\n  selector: 'ngx-puzzle-editor, puzzle-editor',\n  imports: [\n    ThySlideModule,\n    ThyButtonModule,\n    ThyIconModule,\n    NgxPuzzlePanelComponent,\n    NgxPuzzlePropsEditorComponent,\n    NgxPuzzleCanvasComponent\n  ],\n  templateUrl: './ngx-puzzle-editor.component.html',\n  styleUrls: ['./ngx-puzzle-editor.component.scss'],\n  standalone: true,\n})\nexport class NgxPuzzleEditorComponent {\n  @HostBinding() className = 'ngx-puzzle-component';\n\n  protected readonly MIN_WIDTH = 100;\n  protected readonly MIN_HEIGHT = 100;\n\n  public width = this.MIN_WIDTH;\n  public height = this.MIN_HEIGHT;\n\n  // -------------------new----------------------\n  leftCollapsed = signal<boolean>(false);\n  rightCollapsed = signal<boolean>(false);\n\n  constructor() {}\n}\n","<div class=\"ngx-puzzle-wrapper\">\n  <div class=\"drawer left-drawer\" [class.collapsed]=\"leftCollapsed()\">\n    @if (!leftCollapsed()) {\n      <div class=\"slide-wrapper\">\n        <thy-slide-layout>\n          <thy-slide-header>\n            <ng-template #thyHeader>\n              <h2 class=\"thy-slide-header-title text-center font-size-md font-weight-bold w-100\">组件</h2>\n            </ng-template>\n          </thy-slide-header>\n          <thy-slide-body>\n            <ngx-puzzle-panel></ngx-puzzle-panel>\n          </thy-slide-body>\n        </thy-slide-layout>\n      </div>\n    }\n    <thy-icon\n      class=\"toggle-btn\"\n      thyIconName=\"angle-left-bold\"\n      [thyIconRotate]=\"leftCollapsed() ? 180 : 0\"\n      (click)=\"leftCollapsed.set(!this.leftCollapsed())\"\n    >\n    </thy-icon>\n  </div>\n  <div class=\"main-content\">\n    <ngx-puzzle-canvas id=\"puzzle-canvas\"></ngx-puzzle-canvas>\n  </div>\n  <div class=\"drawer right-drawer\" [class.collapsed]=\"rightCollapsed()\">\n    @if (!rightCollapsed()) {\n      <div class=\"slide-wrapper\">\n        <thy-slide-layout>\n          <thy-slide-header>\n            <ng-template #thyHeader>\n              <h2 class=\"thy-slide-header-title font-size-md font-weight-bold text-center w-100\">编辑</h2>\n            </ng-template>\n          </thy-slide-header>\n          <thy-slide-body>\n            <ngx-puzzle-props-editor></ngx-puzzle-props-editor>\n          </thy-slide-body>\n        </thy-slide-layout>\n      </div>\n    }\n\n    <thy-icon\n      class=\"toggle-btn\"\n      thyIconName=\"angle-right-bold\"\n      [thyIconRotate]=\"rightCollapsed() ? 180 : 0\"\n      (click)=\"rightCollapsed.set(!this.rightCollapsed())\"\n    ></thy-icon>\n  </div>\n</div>\n","import {\n  AfterViewInit,\n  Component,\n  signal,\n  ViewChild,\n  ViewContainerRef,\n  WritableSignal,\n  OnDestroy,\n  HostListener,\n  ChangeDetectorRef,\n  input,\n  effect,\n  model,\n  ElementRef\n} from '@angular/core';\nimport { NgStyle } from '@angular/common';\nimport {\n  ComponentConfig,\n  ComponentInjectorService,\n  ComponentRegistryService,\n  Debounce,\n  previewType,\n  SessionIndexedDbService,\n  ZoomScaleService\n} from '../../core';\nimport { isEqual } from 'lodash';\nimport { StylesFormatPipe } from '../../pipes';\n\n@Component({\n  selector: 'ngx-puzzle-preview, puzzle-preview',\n  standalone: true,\n  imports: [NgStyle, StylesFormatPipe],\n  templateUrl: './ngx-puzzle-preview.component.html',\n  styleUrl: './ngx-puzzle-preview.component.scss'\n})\nexport class NgxPuzzlePreviewComponent implements AfterViewInit, OnDestroy {\n  @ViewChild('canvasContent', { read: ViewContainerRef, static: true }) canvasContent!: ViewContainerRef;\n  @ViewChild('canvasWrapper', { static: true }) canvasWrapperRef!: ElementRef<HTMLElement>;\n\n  /**\n   * 控制是否启用缩放功能的输入信号\n   * true: 启用缩放，内容按比例缩放适应窗口宽度，智能控制纵向滚动\n   * false: 禁用缩放，显示原始尺寸，释放横纵滚动条\n   */\n  enableZoom = model<boolean>(true);\n\n  /**\n   * 用于确定缩放按钮功能是否启用。\n   * 设置为 true 时，缩放按钮处于活动状态，并允许用户与其交互。\n   * 设置为 false 时，缩放按钮处于禁用状态，无法使用。\n   */\n  enableZoomBtn = input<boolean>(false);\n\n  /**\n   * 是否启用全屏按钮\n   */\n  enableFullscreenBtn = input<boolean>(true);\n\n  /**\n   * 预览ID输入信号（仅编辑模式使用）\n   */\n  previewId = input<string>();\n\n  /**\n   * 预览模式输入信号\n   * normal: 正常预览模式，只接受传入的 config\n   * edit: 编辑预览模式，使用 sessionService 处理临时数据\n   */\n  previewMode = input<previewType>('normal');\n\n  /**\n   * 传入的配置数据（正常预览模式使用）\n   */\n  passedConfig = input<ComponentConfig[]>();\n\n  allConfigs: WritableSignal<ComponentConfig[]> = signal([]);\n  config!: ComponentConfig;\n  previousConfigs: ComponentConfig[] = [];\n\n  scaleRatio: number = 1;\n  canvasWidth: number = 2000; // 默认画布宽度\n  canvasHeight: number = 2000; // 默认画布高度\n\n  private componentsLoaded = false;\n  private containerRefReady = false; // 标记容器是否已准备好\n  private fullscreenActive = false;\n  private originalContainerRef: ViewContainerRef | null = null; // 保存原始容器引用\n  private previewComponentRefs = new Map<string, any>(); // 追踪预览组件引用\n\n  constructor(\n    private zoom: ZoomScaleService,\n    private ele: ElementRef,\n    private injector: ComponentInjectorService,\n    private registry: ComponentRegistryService,\n    private sessionService: SessionIndexedDbService,\n    private cdr: ChangeDetectorRef\n  )\n  {\n    // 监听配置变化，并在容器准备好后生成画布\n    effect(() => {\n      const configs = this.allConfigs();\n      if (configs && configs.length > 0 && this.containerRefReady && !isEqual(configs, this.previousConfigs)) {\n        this.previousConfigs = structuredClone(configs);\n        this.generateCanvas();\n      }\n    });\n\n    // 处理输入参数变化\n    effect(\n      () => {\n        const enableZoomValue = this.enableZoom();\n        const previewId = this.previewId();\n        const mode = this.previewMode();\n        const passedConfig = this.passedConfig();\n\n        // 当缩放模式改变且组件已加载时，更新缩放状态\n        if (this.componentsLoaded) {\n          this.updateZoomState(enableZoomValue);\n        }\n\n        // 根据预览模式决定如何加载配置\n        if (mode === 'edit') {\n          // 编辑预览模式：使用 sessionService 处理临时数据\n          if (previewId) {\n            this.loadConfigsFromSession(previewId);\n          }\n        } else {\n          // 正常预览模式：只接受传入的配置\n          if (passedConfig && passedConfig.length > 0) {\n            this.allConfigs.set(passedConfig);\n          } else {\n            console.warn('[预览组件] 正常预览模式但未提供配置数据');\n            this.allConfigs.set([]);\n          }\n        }\n      },\n      { allowSignalWrites: true }\n    );\n  }\n\n  ngAfterViewInit() {\n    // 保存原始容器引用\n    this.originalContainerRef = (this.injector as any).containerRef;\n\n    // 设置预览容器引用\n    this.injector.setContainerRef(this.canvasContent);\n    this.containerRefReady = true;\n  }\n\n  ngOnDestroy() {\n    // 清理预览组件但不影响主编辑器\n    this.clearPreviewComponents();\n\n    // 恢复原始容器引用\n    if (this.originalContainerRef) {\n      this.injector.setContainerRef(this.originalContainerRef);\n    }\n  }\n\n  /**\n   * 清理预览组件而不影响主编辑器\n   */\n  private clearPreviewComponents(): void {\n    // 清空预览容器内容\n    if (this.canvasContent) {\n      this.canvasContent.clear();\n    }\n\n    // 清理预览组件引用\n    this.previewComponentRefs.clear();\n  }\n\n  @HostListener('document:fullscreenchange')\n  onFullscreenChange() {\n    this.fullscreenActive = !!document.fullscreenElement;\n    this.cdr.detectChanges();\n  }\n\n  // 兼容性处理（部分浏览器）\n  @HostListener('document:webkitfullscreenchange')\n  onWebkitFullscreenChange() {\n    this.fullscreenActive = !!(document as any).webkitFullscreenElement || !!document.fullscreenElement;\n    this.cdr.detectChanges();\n  }\n\n  @HostListener('window:resize', ['$event'])\n  @Debounce(500)\n  onWindowResize() {\n    if (this.componentsLoaded) {\n      this.calculateScale();\n    }\n  }\n\n  /**\n   * 从 SessionService 加载配置数据（编辑预览模式）\n   */\n  private async loadConfigsFromSession(previewId: string) {\n    try {\n      const response = await this.sessionService.getItem(previewId);\n      console.log(`loadConfigsFromSession`, response)\n      if (response && response.length > 0) {\n        this.allConfigs.set(response);\n      } else {\n        console.warn('[预览组件] session 中未找到配置数据');\n        this.allConfigs.set([]);\n      }\n    } catch (error) {\n      console.error('[预览组件] 从 session 加载配置失败:', error);\n      this.allConfigs.set([]);\n    }\n  }\n\n  /**\n   * 根据缩放状态更新视图\n   */\n  private updateZoomState(enableZoom: boolean): void {\n    if (enableZoom) {\n      this.calculateScale();\n    }\n  }\n\n  /**\n   * 生成画布并创建组件\n   */\n  generateCanvas() {\n    // 使用当前的配置数据\n    const configs = this.allConfigs();\n    if (!configs || configs.length === 0) {\n      console.warn('[预览组件] 没有配置数据可用于生成画布');\n      return;\n    }\n\n    this.processConfigs(configs);\n  }\n\n  /**\n   * 处理配置数据并创建组件\n   */\n  private processConfigs(configs: ComponentConfig[]): void {\n    // 设置画布配置\n    this.config = configs.find((config) => config.id === 'canvas')!;\n    if (this.config) {\n      this.canvasWidth = this.config.size?.width || 2000;\n      this.canvasHeight = this.config.size?.height || 2000;\n    }\n\n    // 创建子组件\n    const childComponents = configs.filter((config) => config.type !== 'canvas');\n\n    // 创建组件并设置缩放\n    const setupComponents = () => {\n      if (childComponents.length > 0) {\n        this.createAllComponents(childComponents);\n      }\n\n      this.componentsLoaded = true;\n\n      // 等待下一个事件循环，确保所有组件都已渲染到DOM\n      setTimeout(() => {\n        this.updateZoomState(this.enableZoom());\n      }, 300);\n    };\n\n    setupComponents();\n  }\n\n  /**\n   * 创建所有子组件\n   */\n  createAllComponents(configs: ComponentConfig[]) {\n    configs.map((config) => this.createComponent(config));\n  }\n\n  /**\n   * 创建单个组件\n   */\n  private createComponent(config: ComponentConfig): Promise<void> {\n    return new Promise((resolve) => {\n      try {\n        const factory = this.registry.getFactory(config.type);\n        const instance = factory.create(config);\n        this.injector.createComponent(instance, false);\n\n        // 根据组件类型设置不同的延迟时间\n        const delay = this.isAsyncComponent(config.type) ? 200 : 50;\n        setTimeout(resolve, delay);\n      } catch (error) {\n        console.error('组件创建失败:', error);\n        resolve();\n      }\n    });\n  }\n\n  /**\n   * 判断是否为异步渲染的组件类型\n   */\n  private isAsyncComponent(type: string): boolean {\n    return ['chart', 'table'].includes(type.toLowerCase());\n  }\n\n  /**\n   * 计算缩放比例\n   */\n  private calculateScale() {\n    // 只在启用缩放时计算缩放比例\n    if (!this.enableZoom()) {\n      return;\n    }\n\n    // 获取父容器尺寸并计算缩放比例\n    const parentElement = this.ele.nativeElement.parentElement;\n    if (!parentElement) {\n      return;\n    }\n\n    const parentWidth = parentElement.clientWidth;\n    const availableWidth = parentWidth - 20; // 预留20px用于滚动条和边距\n\n    const scaleX = availableWidth / this.canvasWidth;\n\n    // 缩放比例不超过1（即不放大），取较小的缩放比例以确保内容完全适应容器\n    this.scaleRatio = Math.min(scaleX, 1);\n    this.zoom.setScale(this.scaleRatio);\n\n    this.cdr.detectChanges();\n  }\n\n  /**\n   * 切换缩放模式\n   */\n  toggleZoomMode() {\n    const newValue = !this.enableZoom();\n    if (!newValue) {\n      this.zoom.setScale(1);\n    }\n    this.enableZoom.set(newValue);\n    // 缩放状态会通过 effect 自动更新\n  }\n\n  // 全屏相关\n  isFullscreen(): boolean {\n    return this.fullscreenActive;\n  }\n\n  async toggleFullscreen() {\n    if (this.isFullscreen()) {\n      await this.exitFullscreen();\n    } else {\n      this.enterFullscreen();\n    }\n  }\n\n  private enterFullscreen() {\n    try {\n      // 使用组件宿主元素作为全屏目标，这样控制按钮也在全屏范围内可见\n      const el = this.ele?.nativeElement || document.documentElement;\n      if (el?.requestFullscreen) {\n        el.requestFullscreen();\n      } else if (el?.webkitRequestFullscreen) {\n        el.webkitRequestFullscreen();\n      }\n    } catch (e) {\n      console.warn('进入全屏失败:', e);\n    }\n  }\n\n  private async exitFullscreen() {\n    try {\n      if (document.exitFullscreen) {\n        await document.exitFullscreen();\n      } else if ((document as any).webkitExitFullscreen) {\n        (document as any).webkitExitFullscreen();\n      }\n    } catch (e) {\n      console.warn('退出全屏失败:', e);\n    }\n  }\n}\n","<div\n  class=\"bi-preview-container\"\n  [class.enable-zoom]=\"enableZoom()\"\n  [class.enable-scroll]=\"!enableZoom()\"\n  [class.fullscreen]=\"isFullscreen()\"\n>\n  <div class=\"bi-preview-component\" [style.zoom]=\"enableZoom() ? scaleRatio : 1\">\n    <div\n      class=\"canvas-content-wrapper\"\n      #canvasWrapper\n      [style.width.px]=\"canvasWidth\"\n      [style.height.px]=\"canvasHeight\"\n      [ngStyle]=\"(config && config.props.styles) || {} | stylesFormat\"\n    >\n      <ng-template #canvasContent></ng-template>\n    </div>\n  </div>\n\n  @if (enableZoomBtn() || enableFullscreenBtn()) {\n    <!-- 顶部右侧控制按钮（缩放模式切换 + 全屏切换） -->\n    <div class=\"zoom-toggle-btn\" [class.fullscreen-hidden]=\"isFullscreen()\">\n      @if (enableZoomBtn() && scaleRatio !== 1) {\n        <button type=\"button\" class=\"toggle-button\" (click)=\"toggleZoomMode()\">\n          <span\n            class=\"icon\"\n            [class]=\"\n              enableZoom() ? 'pi pi-arrow-up-right-and-arrow-down-left-from-center' : 'pi pi-arrow-down-left-and-arrow-up-right-to-center'\n            \"\n          ></span>\n          <span class=\"text\">{{ enableZoom() ? '滚动' : '缩放' }}</span>\n        </button>\n      }\n\n      @if (enableFullscreenBtn()) {\n        <button type=\"button\" class=\"toggle-button\" (click)=\"toggleFullscreen()\">\n          <span class=\"icon\" [class]=\"isFullscreen() ? 'pi pi-window-minimize' : 'pi pi-window-maximize'\"></span>\n          <span class=\"text\">{{ isFullscreen() ? '还原' : '全屏' }}</span>\n        </button>\n      }\n    </div>\n  }\n</div>\n","import { APP_INITIALIZER, EnvironmentProviders, importProvidersFrom, makeEnvironmentProviders } from '@angular/core';\nimport { ThyTooltipModule, THY_TOOLTIP_DEFAULT_CONFIG_TOKEN, thyTooltipDefaultConfig } from 'ngx-tethys/tooltip';\nimport { ThyIconModule, ThyIconRegistry } from 'ngx-tethys/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { provideAnimations, provideNoopAnimations } from '@angular/platform-browser/animations';\nimport { ChartTypesEnum, ControlTypesEnum, TableTypesEnum, TextTypesEnum, TabTypesEnum } from '../core';\n\nexport interface PuzzleLibConfig {\n  tooltip?: Partial<typeof thyTooltipDefaultConfig>;\n  animations?: 'browser' | 'noop';\n}\n\nfunction registerIcons(iconRegistry: ThyIconRegistry, sanitizer: DomSanitizer) {\n  const iconSvgUrl = `/assets/icons/defs/svg/sprite.defs.svg`;\n  iconRegistry.addSvgIconSet(sanitizer.bypassSecurityTrustResourceUrl(iconSvgUrl));\n\n  const registerIconsForType = (namespace: string, enumType: any, iconPath: string) => {\n    for (const key in enumType) {\n      if (Object.prototype.hasOwnProperty.call(enumType, key)) {\n        const enumValue = (enumType as any)[key];\n        iconRegistry.addSvgIconInNamespace(\n          namespace,\n          `${enumValue}`,\n          sanitizer.bypassSecurityTrustResourceUrl(`/assets/icons/${iconPath}/${enumValue}.svg`)\n        );\n      }\n    }\n  };\n\n  registerIconsForType('chart', ChartTypesEnum, 'charts');\n  registerIconsForType('table', TableTypesEnum, 'tables');\n  registerIconsForType('text', TextTypesEnum, 'text');\n  registerIconsForType('editor', TabTypesEnum, 'editor');\n  registerIconsForType('control', ControlTypesEnum, 'controls');\n}\n\n/**\n * 提供 puzzle 库依赖的 Angular providers\n */\nexport function providePuzzleLib(config: PuzzleLibConfig = {}): EnvironmentProviders {\n  return makeEnvironmentProviders([\n    importProvidersFrom(ThyTooltipModule, ThyIconModule),\n    config.animations === 'noop' ? provideNoopAnimations() : provideAnimations(),\n    {\n      provide: THY_TOOLTIP_DEFAULT_CONFIG_TOKEN,\n      useValue: {\n        ...thyTooltipDefaultConfig,\n        ...config.tooltip\n      }\n    },\n    {\n      provide: APP_INITIALIZER,\n      multi: true,\n      useFactory: (iconRegistry: ThyIconRegistry, sanitizer: DomSanitizer) => () => {\n        registerIcons(iconRegistry, sanitizer);\n      },\n      deps: [ThyIconRegistry, DomSanitizer]\n    }\n  ]);\n}\n","/*\n * Public API Surface of puzzle\n */\n\n// 在生产环境下禁用 console 输出\nimport './console-override';\n\n// export * from './puzzle.module';\nexport * from './features';\nexport * from './core';\nexport * from './pipes';\nexport * from './lib';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ComponentRegistryService","i1.SessionIndexedDbService","i1.ComponentInjectorService","i1.PuzzleCanvasMediatorService","i1","takeUntil","i3","i6","i7","i2","i1.ZoomScaleService"],"mappings":"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,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE;AAC/B,IAAA,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE;AAC/B,IAAA,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE;AAC/B,IAAA,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE;AAC/B,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE;AAC/B,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE;AAC/B,IAAA,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE;AAC/B,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAA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EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE;AACjC,IAAA,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE;AACjC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE;AACjC,IAAA,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE;AACjC,IAAA,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE;AACjC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE;AACjC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE;AAClC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE;AACjC,IAAA,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE;AACjC,IAAA,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE;AACjC,IAAA,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE;AACjC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE;AACjC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE;AACjC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE;AACjC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;AAChC,IAAA,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;A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"}