{"version":3,"file":"gauge.mjs","sources":["../../../../packages/chart/gauge/gauge.component.ts","../../../../packages/chart/gauge/gauge.module.ts","../../../../packages/chart/gauge/gauge.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, numberAttribute } from '@angular/core';\n\nimport type { Chart } from '@antv/g2';\n\nimport { G2BaseComponent } from '@delon/chart/core';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzSkeletonComponent } from 'ng-zorro-antd/skeleton';\n\n@Component({\n  selector: 'g2-gauge',\n  exportAs: 'g2Gauge',\n  template: `@if (!loaded) {\n    <nz-skeleton />\n  }`,\n  host: {\n    '[class.g2-gauge]': 'true'\n  },\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  imports: [NzSkeletonComponent]\n})\nexport class G2GaugeComponent extends G2BaseComponent {\n  // #region fields\n\n  @Input() title?: string;\n  @Input({ transform: numberAttribute }) height?: number;\n  @Input() color = '#2f9cff';\n  @Input() bgColor?: string; // = '#f0f2f5';\n  @Input() format?: (text: string, item: NzSafeAny, index: number) => string;\n  @Input({ transform: numberAttribute }) percent?: number;\n  @Input() padding: number | number[] | 'auto' = [10, 10, 30, 10];\n\n  // #endregion\n\n  install(): void {\n    // 自定义Shape 部分\n    this.winG2.registerShape('point', 'pointer', {\n      draw(cfg: NzSafeAny, container: NzSafeAny) {\n        const group = container.addGroup({});\n        // 获取极坐标系下画布中心点\n        const center = (this as NzSafeAny).parsePoint({ x: 0, y: 0 });\n        // 绘制指针\n        group.addShape('line', {\n          attrs: {\n            x1: center.x,\n            y1: center.y,\n            x2: cfg.x,\n            y2: cfg.y,\n            stroke: cfg.color,\n            lineWidth: 2.5,\n            lineCap: 'round'\n          }\n        });\n        group.addShape('circle', {\n          attrs: {\n            x: center.x,\n            y: center.y,\n            r: 5.75,\n            stroke: cfg.color,\n            lineWidth: 2,\n            fill: '#fff'\n          }\n        });\n        return group;\n      }\n    });\n\n    const { el, height, padding, format, theme } = this;\n\n    const chart: Chart = (this._chart = new this.winG2.Chart({\n      container: el.nativeElement,\n      autoFit: true,\n      height,\n      padding,\n      theme\n    }));\n    chart.legend(false);\n    chart.animate(false);\n    chart.tooltip(false);\n    chart.coordinate('polar', {\n      startAngle: (-9 / 8) * Math.PI,\n      endAngle: (1 / 8) * Math.PI,\n      radius: 0.75\n    });\n    chart.scale('value', {\n      min: 0,\n      max: 100,\n      nice: true,\n      tickCount: 6\n    });\n    chart.axis('1', false);\n    chart.axis('value', {\n      line: null,\n      label: {\n        offset: -14,\n        formatter: format\n      },\n      tickLine: null,\n      grid: null\n    });\n    chart.point().position('value*1').shape('pointer');\n\n    this.ready.next(chart);\n\n    this.changeData();\n\n    chart.render();\n  }\n\n  changeData(): void {\n    const { _chart, percent, color, bgColor, title } = this;\n    if (!_chart) return;\n\n    const data = [{ name: title, value: percent }];\n    const val = data[0].value;\n    _chart.annotation().clear(true);\n    _chart.geometries[0].color(color);\n    // 绘制仪表盘背景\n    _chart.annotation().arc({\n      top: false,\n      start: [0, 0.95],\n      end: [100, 0.95],\n      style: {\n        stroke: bgColor,\n        lineWidth: 12,\n        lineDash: null\n      }\n    });\n    _chart.annotation().arc({\n      start: [0, 0.95],\n      end: [data[0].value!, 0.95],\n      style: {\n        stroke: color,\n        lineWidth: 12,\n        lineDash: null\n      }\n    });\n\n    _chart.annotation().text({\n      position: ['50%', '85%'],\n      content: title,\n      style: {\n        fontSize: 12,\n        fill: this.theme === 'dark' ? 'rgba(255, 255, 255, 0.43)' : 'rgba(0, 0, 0, 0.43)',\n        textAlign: 'center'\n      }\n    });\n    _chart.annotation().text({\n      position: ['50%', '90%'],\n      content: `${val} %`,\n      style: {\n        fontSize: 20,\n        fill: this.theme === 'dark' ? 'rgba(255, 255, 255, 0.85)' : 'rgba(0, 0, 0, 0.85)',\n        textAlign: 'center'\n      },\n      offsetY: 15\n    });\n\n    _chart.changeData(data);\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzSkeletonModule } from 'ng-zorro-antd/skeleton';\n\nimport { G2GaugeComponent } from './gauge.component';\n\nconst COMPONENTS = [G2GaugeComponent];\n\n@NgModule({\n  imports: [CommonModule, NzSkeletonModule, ...COMPONENTS],\n  exports: COMPONENTS\n})\nexport class G2GaugeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;AAqBM,MAAO,gBAAiB,SAAQ,eAAe,CAAA;;AAG1C,IAAA,KAAK;AACyB,IAAA,MAAM;IACpC,KAAK,GAAG,SAAS;IACjB,OAAO,CAAU;AACjB,IAAA,MAAM;AACwB,IAAA,OAAO;IACrC,OAAO,GAA+B,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;;IAI/D,OAAO,GAAA;;QAEL,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE;YAC3C,IAAI,CAAC,GAAc,EAAE,SAAoB,EAAA;gBACvC,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;;AAEpC,gBAAA,MAAM,MAAM,GAAI,IAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;;AAE7D,gBAAA,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;AACrB,oBAAA,KAAK,EAAE;wBACL,EAAE,EAAE,MAAM,CAAC,CAAC;wBACZ,EAAE,EAAE,MAAM,CAAC,CAAC;wBACZ,EAAE,EAAE,GAAG,CAAC,CAAC;wBACT,EAAE,EAAE,GAAG,CAAC,CAAC;wBACT,MAAM,EAAE,GAAG,CAAC,KAAK;AACjB,wBAAA,SAAS,EAAE,GAAG;AACd,wBAAA,OAAO,EAAE;AACV;AACF,iBAAA,CAAC;AACF,gBAAA,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACvB,oBAAA,KAAK,EAAE;wBACL,CAAC,EAAE,MAAM,CAAC,CAAC;wBACX,CAAC,EAAE,MAAM,CAAC,CAAC;AACX,wBAAA,CAAC,EAAE,IAAI;wBACP,MAAM,EAAE,GAAG,CAAC,KAAK;AACjB,wBAAA,SAAS,EAAE,CAAC;AACZ,wBAAA,IAAI,EAAE;AACP;AACF,iBAAA,CAAC;AACF,gBAAA,OAAO,KAAK;YACd;AACD,SAAA,CAAC;AAEF,QAAA,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;AAEnD,QAAA,MAAM,KAAK,IAAW,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YACvD,SAAS,EAAE,EAAE,CAAC,aAAa;AAC3B,YAAA,OAAO,EAAE,IAAI;YACb,MAAM;YACN,OAAO;YACP;AACD,SAAA,CAAC,CAAC;AACH,QAAA,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AACnB,QAAA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AACpB,QAAA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AACpB,QAAA,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE;YACxB,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE;YAC9B,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE;AAC3B,YAAA,MAAM,EAAE;AACT,SAAA,CAAC;AACF,QAAA,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE;AACnB,YAAA,GAAG,EAAE,CAAC;AACN,YAAA,GAAG,EAAE,GAAG;AACR,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,SAAS,EAAE;AACZ,SAAA,CAAC;AACF,QAAA,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC;AACtB,QAAA,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE;AAClB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,KAAK,EAAE;gBACL,MAAM,EAAE,CAAC,EAAE;AACX,gBAAA,SAAS,EAAE;AACZ,aAAA;AACD,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,IAAI,EAAE;AACP,SAAA,CAAC;AACF,QAAA,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;AAElD,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QAEtB,IAAI,CAAC,UAAU,EAAE;QAEjB,KAAK,CAAC,MAAM,EAAE;IAChB;IAEA,UAAU,GAAA;AACR,QAAA,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI;AACvD,QAAA,IAAI,CAAC,MAAM;YAAE;AAEb,QAAA,MAAM,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK;QACzB,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;QAC/B,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;;AAEjC,QAAA,MAAM,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC;AACtB,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC;AAChB,YAAA,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC;AAChB,YAAA,KAAK,EAAE;AACL,gBAAA,MAAM,EAAE,OAAO;AACf,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,QAAQ,EAAE;AACX;AACF,SAAA,CAAC;AACF,QAAA,MAAM,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC;AACtB,YAAA,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC;YAChB,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAM,EAAE,IAAI,CAAC;AAC3B,YAAA,KAAK,EAAE;AACL,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,SAAS,EAAE,EAAE;AACb,gBAAA,QAAQ,EAAE;AACX;AACF,SAAA,CAAC;AAEF,QAAA,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC;AACvB,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;AACxB,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,KAAK,EAAE;AACL,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,KAAK,MAAM,GAAG,2BAA2B,GAAG,qBAAqB;AACjF,gBAAA,SAAS,EAAE;AACZ;AACF,SAAA,CAAC;AACF,QAAA,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC;AACvB,YAAA,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;YACxB,OAAO,EAAE,CAAA,EAAG,GAAG,CAAA,EAAA,CAAI;AACnB,YAAA,KAAK,EAAE;AACL,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,KAAK,MAAM,GAAG,2BAA2B,GAAG,qBAAqB;AACjF,gBAAA,SAAS,EAAE;AACZ,aAAA;AACD,YAAA,OAAO,EAAE;AACV,SAAA,CAAC;AAEF,QAAA,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;IACzB;wGA1IW,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAIP,eAAe,CAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAIf,eAAe,CAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAlBzB,CAAA;;AAER,GAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAMQ,mBAAmB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;4FAElB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAb5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,QAAQ,EAAE,CAAA;;AAER,GAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACJ,wBAAA,kBAAkB,EAAE;AACrB,qBAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,OAAO,EAAE,CAAC,mBAAmB;AAC9B,iBAAA;;sBAIE;;sBACA,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE;;sBACpC;;sBACA;;sBACA;;sBACA,KAAK;uBAAC,EAAE,SAAS,EAAE,eAAe,EAAE;;sBACpC;;;ACvBH,MAAM,UAAU,GAAG,CAAC,gBAAgB,CAAC;MAMxB,aAAa,CAAA;wGAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAHd,YAAY,EAAE,gBAAgB,EAHtB,gBAAgB,aAAhB,gBAAgB,CAAA,EAAA,CAAA;AAMvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAAA,OAAA,EAAA,CAHd,YAAY,EAAE,gBAAgB,EAAK,UAAU,CAAA,EAAA,CAAA;;4FAG5C,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,UAAU,CAAC;AACxD,oBAAA,OAAO,EAAE;AACV,iBAAA;;;ACZD;;AAEG;;;;"}