{"version":3,"file":"core.mjs","sources":["../../../../packages/chart/core/g2.servicce.ts","../../../../packages/chart/core/g2.base.component.ts","../../../../packages/chart/core/utils.ts","../../../../packages/chart/core/core.ts"],"sourcesContent":["import { Injectable, OnDestroy, inject } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\nimport { AlainChartConfig, AlainConfigService } from '@delon/util/config';\nimport { LazyService } from '@delon/util/other';\n\n@Injectable({ providedIn: 'root' })\nexport class G2Service implements OnDestroy {\n  private readonly cogSrv = inject(AlainConfigService);\n  private readonly lazySrv = inject(LazyService);\n\n  private _cog!: AlainChartConfig;\n  private loading = false;\n  private loaded = false;\n  private notify$ = new Subject<void>();\n\n  get cog(): AlainChartConfig {\n    return this._cog;\n  }\n  set cog(val: AlainChartConfig) {\n    this._cog = this.cogSrv.merge(\n      'chart',\n      {\n        theme: '',\n        libs: [\n          'https://gw.alipayobjects.com/os/lib/antv/g2/4.1.46/dist/g2.min.js',\n          'https://gw.alipayobjects.com/os/lib/antv/data-set/0.11.8/dist/data-set.js'\n        ]\n      } as AlainChartConfig,\n      val\n    )!;\n  }\n\n  constructor() {\n    this.cog = { theme: '' };\n  }\n\n  libLoad(): this {\n    if (this.loading) {\n      if (this.loaded) {\n        this.notify$.next();\n      }\n      return this;\n    }\n    this.loading = true;\n    this.lazySrv.load(this.cog.libs!).then(() => {\n      this.loaded = true;\n      this.notify$.next();\n    });\n    return this;\n  }\n\n  get notify(): Observable<void> {\n    return this.notify$.asObservable();\n  }\n\n  ngOnDestroy(): void {\n    this.notify$.unsubscribe();\n  }\n}\n","import { Platform } from '@angular/cdk/platform';\nimport {\n  ChangeDetectorRef,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  Input,\n  NgZone,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  SimpleChanges,\n  ViewChild,\n  booleanAttribute,\n  inject,\n  numberAttribute\n} from '@angular/core';\nimport { Subject, Subscription, filter, takeUntil } from 'rxjs';\n\nimport type { Chart, Types } from '@antv/g2';\n\nimport { ZoneOutside } from '@delon/util/decorator';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { G2Service } from './g2.servicce';\n\n@Directive()\nexport abstract class G2BaseComponent implements OnInit, OnChanges, OnDestroy {\n  protected readonly srv = inject(G2Service);\n  protected readonly el: ElementRef<HTMLElement> = inject(ElementRef<HTMLElement>);\n  protected readonly ngZone = inject(NgZone);\n  protected readonly platform = inject(Platform);\n  protected readonly cdr = inject(ChangeDetectorRef);\n\n  get chart(): Chart {\n    return this._chart;\n  }\n\n  get winG2(): NzSafeAny {\n    return (window as NzSafeAny).G2;\n  }\n\n  constructor() {\n    this.theme = this.srv.cog.theme!;\n    this.srv.notify\n      .pipe(\n        takeUntil(this.destroy$),\n        filter(() => !this.loaded)\n      )\n      .subscribe(() => this.load());\n  }\n  @Input({ transform: booleanAttribute }) repaint = true;\n\n  @ViewChild('container', { static: true }) protected node!: ElementRef;\n  protected resize$?: Subscription;\n  protected destroy$ = new Subject<void>();\n  protected _chart!: Chart;\n  loaded = false;\n\n  @Input({ transform: numberAttribute }) delay = 0;\n  @Input() theme: string | Types.LooseObject;\n  @Output() readonly ready = new EventEmitter<Chart>();\n\n  /** 检查是否只变更数据 */\n  onlyChangeData?: (changes: SimpleChanges) => boolean;\n\n  abstract install(): void;\n\n  /** G2数据变更 */\n  changeData(): void {}\n\n  /** 等同 `ngOnInit` */\n  onInit(): void {}\n\n  /** 等同 `ngOnChanges` */\n  onChanges(_: SimpleChanges): void {}\n\n  @ZoneOutside()\n  private load(): void {\n    this.ngZone.run(() => {\n      this.loaded = true;\n      this.cdr.detectChanges();\n    });\n    setTimeout(() => this.install(), this.delay);\n  }\n\n  ngOnInit(): void {\n    if (!this.platform.isBrowser) {\n      return;\n    }\n    this.onInit();\n    if (this.winG2) {\n      this.load();\n    } else {\n      this.srv.libLoad();\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.onChanges(changes);\n\n    const isOnlyChangeData = this.onlyChangeData\n      ? this.onlyChangeData(changes)\n      : Object.keys(changes).length === 1 && !!changes.data;\n    if (isOnlyChangeData) {\n      this.changeData();\n      return;\n    }\n    if (!this.chart || !this.repaint) return;\n    this.ngZone.runOutsideAngular(() => {\n      this.destroyChart().install();\n    });\n  }\n\n  @ZoneOutside()\n  protected destroyChart(): this {\n    if (this._chart) {\n      this._chart.destroy();\n    }\n    return this;\n  }\n\n  ngOnDestroy(): void {\n    if (this.resize$) {\n      this.resize$.unsubscribe();\n    }\n    this.destroy$.next();\n    this.destroy$.complete();\n    this.destroyChart();\n  }\n}\n","import type { Types } from '@antv/g2';\n\nexport function genMiniTooltipOptions(type: 'mini' | 'default', options?: Types.TooltipCfg): Types.TooltipCfg {\n  const res: Types.TooltipCfg = {\n    showTitle: false,\n    showMarkers: true,\n    enterable: true,\n    domStyles: {\n      'g2-tooltip': { padding: '0px' },\n      'g2-tooltip-title': { display: 'none' },\n      'g2-tooltip-list-item': { margin: '4px' }\n    },\n    ...options\n  };\n  if (type === 'mini') {\n    res.position = 'top';\n    res.domStyles!['g2-tooltip'] = { padding: '0px', backgroundColor: 'transparent', boxShadow: 'none' };\n    res.itemTpl = `<li>{value}</li>`;\n    res.offset = 8;\n  }\n\n  return res;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}