{"version":3,"file":"ng2-charts.mjs","sources":["../../../../libs/ng2-charts/src/lib/ng-charts.provider.ts","../../../../libs/ng2-charts/src/lib/theme.service.ts","../../../../libs/ng2-charts/src/lib/base-chart.directive.ts","../../../../libs/ng2-charts/src/lib/utils.ts","../../../../libs/ng2-charts/src/index.ts","../../../../libs/ng2-charts/src/ng2-charts.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport {\n  ChartComponentLike,\n  Defaults,\n  registerables as defaultRegisterables,\n} from 'chart.js';\nimport { DeepPartial } from './utils';\nimport { merge } from 'es-toolkit';\n\nexport const NG_CHARTS_CONFIGURATION =\n  new InjectionToken<NgChartsConfiguration>('Configuration for ngCharts');\n\nexport type NgChartsConfiguration = {\n  /**\n   * Any registerable that can be used with `Chart.register()`, such as plugins, controllers, scales, and elements.\n   */\n  registerables?: readonly ChartComponentLike[];\n\n  /**\n   * Default configuration that can be used with `defaults.set()`.\n   */\n  defaults?: DeepPartial<Defaults>;\n};\n\n/**\n * Provide all the default registerable as defined by Chart.js\n */\nexport function withDefaultRegisterables(\n  ...registerables: ChartComponentLike[]\n): NgChartsConfiguration {\n  return { registerables: [...defaultRegisterables, ...registerables] };\n}\n\n/**\n * Provide configuration for ngCharts. In most cases, you have to pass it some registerables. So either\n * `withDefaultRegisterables()`, or a custom list of registerables tailored to your needs to reduce bundle size.\n */\nexport function provideCharts(\n  ...configurations: readonly NgChartsConfiguration[]\n) {\n  const config: NgChartsConfiguration = configurations.reduce(merge, {});\n  return { provide: NG_CHARTS_CONFIGURATION, useValue: config };\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { ChartConfiguration, ChartOptions } from 'chart.js';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ThemeService {\n  private pColorschemesOptions?: ChartOptions;\n  public colorschemesOptions: BehaviorSubject<ChartOptions | undefined> =\n    new BehaviorSubject<ChartOptions | undefined>(undefined);\n\n  setColorschemesOptions(options: ChartConfiguration['options']): void {\n    this.pColorschemesOptions = options;\n    this.colorschemesOptions.next(options);\n  }\n\n  getColorschemesOptions(): ChartConfiguration['options'] {\n    return this.pColorschemesOptions;\n  }\n}\n","import {\n  Directive,\n  ElementRef,\n  EventEmitter,\n  Input,\n  NgZone,\n  OnChanges,\n  OnDestroy,\n  Output,\n  SimpleChanges,\n  inject,\n  PLATFORM_ID,\n} from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n  Chart,\n  ChartConfiguration,\n  ChartEvent,\n  ChartType,\n  DefaultDataPoint,\n  defaults,\n  Plugin,\n  UpdateMode,\n} from 'chart.js';\nimport { ThemeService } from './theme.service';\nimport { Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { merge } from 'es-toolkit';\nimport {\n  NG_CHARTS_CONFIGURATION,\n  NgChartsConfiguration,\n} from './ng-charts.provider';\n\n@Directive({\n  // eslint-disable-next-line @angular-eslint/directive-selector\n  selector: 'canvas[baseChart]',\n  exportAs: 'base-chart',\n  standalone: true,\n})\nexport class BaseChartDirective<\n  TType extends ChartType = ChartType,\n  TData = DefaultDataPoint<TType>,\n  TLabel = unknown,\n>\n  implements OnDestroy, OnChanges\n{\n  @Input() public type: ChartConfiguration<TType, TData, TLabel>['type'] =\n    'bar' as TType;\n  @Input() public legend?: boolean;\n  @Input() public data?: ChartConfiguration<TType, TData, TLabel>['data'];\n  @Input() public options: ChartConfiguration<TType, TData, TLabel>['options'];\n  @Input() public plugins: Plugin<TType>[] = [];\n\n  @Input() public labels?: ChartConfiguration<\n    TType,\n    TData,\n    TLabel\n  >['data']['labels'];\n  @Input() public datasets?: ChartConfiguration<\n    TType,\n    TData,\n    TLabel\n  >['data']['datasets'];\n\n  @Output() public chartClick: EventEmitter<{\n    event?: ChartEvent;\n    active?: object[];\n  }> = new EventEmitter();\n  @Output() public chartHover: EventEmitter<{\n    event: ChartEvent;\n    active: object[];\n  }> = new EventEmitter();\n\n  public ctx: CanvasRenderingContext2D | null = null;\n  public chart?: Chart<TType, TData, TLabel>;\n\n  private subs: Subscription[] = [];\n  private themeOverrides: ChartConfiguration['options'] = {};\n  private element = inject(ElementRef);\n  private zone = inject(NgZone);\n  private themeService = inject(ThemeService);\n  private config = inject(NG_CHARTS_CONFIGURATION, { optional: true }) as\n    | NgChartsConfiguration\n    | undefined;\n  private platformId = inject(PLATFORM_ID);\n  private isBrowser = isPlatformBrowser(this.platformId);\n\n  public constructor() {\n    if (this.config?.registerables) {\n      Chart.register(...this.config.registerables);\n    }\n\n    if (this.config?.defaults) {\n      defaults.set(this.config.defaults);\n    }\n\n    // Only get canvas context in browser environment\n    if (this.isBrowser) {\n      this.ctx = this.element.nativeElement.getContext('2d');\n    }\n\n    this.subs.push(\n      this.themeService.colorschemesOptions\n        .pipe(distinctUntilChanged())\n        .subscribe((r) => this.themeChanged(r)),\n    );\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (!this.isBrowser) {\n      return; // Skip chart operations in SSR\n    }\n\n    const requireRender = ['type'];\n    const propertyNames = Object.getOwnPropertyNames(changes);\n\n    if (\n      propertyNames.some((key) => requireRender.includes(key)) ||\n      propertyNames.every((key) => changes[key].isFirstChange())\n    ) {\n      this.render();\n    } else {\n      // For legend changes, we need to update the chart options and re-render\n      if (this.chart && changes['legend']) {\n        const config = this.getChartConfiguration();\n        if (config.options) {\n          this.chart.options = config.options;\n        }\n        this.update();\n      } else if (this.chart) {\n        const config = this.getChartConfiguration();\n\n        // Using assign to avoid changing the original object reference\n        if (config.data && this.chart.config.data) {\n          Object.assign(this.chart.config.data, config.data);\n        }\n        if (config.plugins && this.chart.config.plugins) {\n          Object.assign(this.chart.config.plugins, config.plugins);\n        }\n        if (config.options && this.chart.config.options) {\n          Object.assign(this.chart.config.options, config.options);\n        }\n\n        this.update();\n      }\n    }\n  }\n\n  public ngOnDestroy(): void {\n    if (this.chart) {\n      this.chart.destroy();\n      this.chart = void 0;\n    }\n    this.subs.forEach((s) => s.unsubscribe());\n  }\n\n  public render(): Chart<TType, TData, TLabel> | undefined {\n    if (!this.isBrowser || !this.ctx) {\n      return undefined;\n    }\n\n    if (this.chart) {\n      this.chart.destroy();\n    }\n\n    return this.zone.runOutsideAngular(\n      () =>\n        (this.chart = new Chart(\n          this.ctx as CanvasRenderingContext2D,\n          this.getChartConfiguration(),\n        )),\n    );\n  }\n\n  public update(mode?: UpdateMode): void {\n    if (this.chart && this.isBrowser) {\n      this.zone.runOutsideAngular(() => this.chart?.update(mode));\n    }\n  }\n\n  public hideDataset(index: number, hidden: boolean): void {\n    if (this.chart && this.isBrowser) {\n      this.chart.getDatasetMeta(index).hidden = hidden;\n      this.update();\n    }\n  }\n\n  public isDatasetHidden(index: number): boolean | undefined {\n    return this.chart?.getDatasetMeta(index)?.hidden;\n  }\n\n  public toBase64Image(): string | undefined {\n    return this.chart?.toBase64Image();\n  }\n\n  private themeChanged(options: ChartConfiguration['options']): void {\n    this.themeOverrides = options;\n    if (this.chart) {\n      if (this.chart.config.options) {\n        Object.assign(this.chart.config.options, this.getChartOptions());\n      }\n\n      this.update();\n    }\n  }\n\n  private getChartOptions(): ChartConfiguration<\n    TType,\n    TData,\n    TLabel\n  >['options'] {\n    return [\n      {\n        onHover: (event: ChartEvent, active: object[]) => {\n          if (!this.chartHover.observed && !this.chartHover.observers?.length) {\n            return;\n          }\n\n          this.zone.run(() => this.chartHover.emit({ event, active }));\n        },\n        onClick: (event?: ChartEvent, active?: object[]) => {\n          if (!this.chartClick.observed && !this.chartClick.observers?.length) {\n            return;\n          }\n\n          this.zone.run(() => this.chartClick.emit({ event, active }));\n        },\n      },\n      this.themeOverrides ?? {},\n      this.options ?? {},\n      {\n        plugins: {\n          legend: {\n            display: this.legend,\n          },\n        },\n      },\n    ].reduce(merge, {}) as ChartConfiguration<TType, TData, TLabel>['options'];\n  }\n\n  private getChartConfiguration(): ChartConfiguration<TType, TData, TLabel> {\n    return {\n      type: this.type,\n      data: this.getChartData(),\n      options: this.getChartOptions(),\n      plugins: this.plugins,\n    };\n  }\n\n  private getChartData(): ChartConfiguration<TType, TData, TLabel>['data'] {\n    return this.data\n      ? this.data\n      : {\n          labels: this.labels || [],\n          datasets: this.datasets || [],\n        };\n  }\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-function-type */\n\n// DeepPartial implementation taken from the utility-types NPM package, which is\n// Copyright (c) 2016 Piotr Witek <piotrek.witek@gmail.com> (http://piotrwitek.github.io)\n// and used under the terms of the MIT license\nexport type DeepPartial<T> = T extends Function\n  ? T\n  : T extends Array<infer U>\n    ? _DeepPartialArray<U>\n    : T extends object\n      ? _DeepPartialObject<T>\n      : T | undefined;\n\ntype _DeepPartialArray<T> = Array<DeepPartial<T>>;\ntype _DeepPartialObject<T> = { [P in keyof T]?: DeepPartial<T[P]> };\n","/*\n * Public API Surface of ng2-charts\n */\n\nexport * from './lib/ng-charts.provider';\nexport * from './lib/base-chart.directive';\nexport * from './lib/theme.service';\nexport * from './lib/utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["registerables","defaultRegisterables"],"mappings":";;;;;;;;MASa,uBAAuB,GAClC,IAAI,cAAc,CAAwB,4BAA4B;AAcxE;;AAEG;AACG,SAAU,wBAAwB,CACtC,GAAGA,eAAmC,EAAA;IAEtC,OAAO,EAAE,aAAa,EAAE,CAAC,GAAGC,aAAoB,EAAE,GAAGD,eAAa,CAAC,EAAE;AACvE;AAEA;;;AAGG;AACG,SAAU,aAAa,CAC3B,GAAG,cAAgD,EAAA;IAEnD,MAAM,MAAM,GAA0B,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;IACtE,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,EAAE;AAC/D;;MCnCa,YAAY,CAAA;AAHzB,IAAA,WAAA,GAAA;AAKS,QAAA,IAAA,CAAA,mBAAmB,GACxB,IAAI,eAAe,CAA2B,SAAS,CAAC;AAU3D,IAAA;AARC,IAAA,sBAAsB,CAAC,OAAsC,EAAA;AAC3D,QAAA,IAAI,CAAC,oBAAoB,GAAG,OAAO;AACnC,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC;IACxC;IAEA,sBAAsB,GAAA;QACpB,OAAO,IAAI,CAAC,oBAAoB;IAClC;8GAZW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA;;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCiCY,kBAAkB,CAAA;AAgD7B,IAAA,WAAA,GAAA;QAzCgB,IAAA,CAAA,IAAI,GAClB,KAAc;QAIA,IAAA,CAAA,OAAO,GAAoB,EAAE;AAa5B,QAAA,IAAA,CAAA,UAAU,GAGtB,IAAI,YAAY,EAAE;AACN,QAAA,IAAA,CAAA,UAAU,GAGtB,IAAI,YAAY,EAAE;QAEhB,IAAA,CAAA,GAAG,GAAoC,IAAI;QAG1C,IAAA,CAAA,IAAI,GAAmB,EAAE;QACzB,IAAA,CAAA,cAAc,GAAkC,EAAE;AAClD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;AAC5B,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;AACrB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACnC,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAEtD;AACL,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;AAChC,QAAA,IAAA,CAAA,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;AAGpD,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE;YAC9B,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;QAC9C;AAEA,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE;YACzB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QACpC;;AAGA,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC;QACxD;QAEA,IAAI,CAAC,IAAI,CAAC,IAAI,CACZ,IAAI,CAAC,YAAY,CAAC;aACf,IAAI,CAAC,oBAAoB,EAAE;AAC3B,aAAA,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAC1C;IACH;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,YAAA,OAAO;QACT;AAEA,QAAA,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC;QAC9B,MAAM,aAAa,GAAG,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC;AAEzD,QAAA,IACE,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACxD,YAAA,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,EAC1D;YACA,IAAI,CAAC,MAAM,EAAE;QACf;aAAO;;YAEL,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;AACnC,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,EAAE;AAC3C,gBAAA,IAAI,MAAM,CAAC,OAAO,EAAE;oBAClB,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;gBACrC;gBACA,IAAI,CAAC,MAAM,EAAE;YACf;AAAO,iBAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACrB,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,EAAE;;AAG3C,gBAAA,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE;AACzC,oBAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;gBACpD;AACA,gBAAA,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;AAC/C,oBAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;gBAC1D;AACA,gBAAA,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;AAC/C,oBAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;gBAC1D;gBAEA,IAAI,CAAC,MAAM,EAAE;YACf;QACF;IACF;IAEO,WAAW,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACpB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3C;IAEO,MAAM,GAAA;QACX,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AAChC,YAAA,OAAO,SAAS;QAClB;AAEA,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;QACtB;AAEA,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAChC,OACG,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CACrB,IAAI,CAAC,GAA+B,EACpC,IAAI,CAAC,qBAAqB,EAAE,CAC7B,CAAC,CACL;IACH;AAEO,IAAA,MAAM,CAAC,IAAiB,EAAA;QAC7B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE;AAChC,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7D;IACF;IAEO,WAAW,CAAC,KAAa,EAAE,MAAe,EAAA;QAC/C,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE;YAChC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,MAAM;YAChD,IAAI,CAAC,MAAM,EAAE;QACf;IACF;AAEO,IAAA,eAAe,CAAC,KAAa,EAAA;QAClC,OAAO,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM;IAClD;IAEO,aAAa,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE;IACpC;AAEQ,IAAA,YAAY,CAAC,OAAsC,EAAA;AACzD,QAAA,IAAI,CAAC,cAAc,GAAG,OAAO;AAC7B,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;AAC7B,gBAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC;YAClE;YAEA,IAAI,CAAC,MAAM,EAAE;QACf;IACF;IAEQ,eAAe,GAAA;QAKrB,OAAO;AACL,YAAA;AACE,gBAAA,OAAO,EAAE,CAAC,KAAiB,EAAE,MAAgB,KAAI;AAC/C,oBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE;wBACnE;oBACF;oBAEA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC9D,CAAC;AACD,gBAAA,OAAO,EAAE,CAAC,KAAkB,EAAE,MAAiB,KAAI;AACjD,oBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE;wBACnE;oBACF;oBAEA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC9D,CAAC;AACF,aAAA;YACD,IAAI,CAAC,cAAc,IAAI,EAAE;YACzB,IAAI,CAAC,OAAO,IAAI,EAAE;AAClB,YAAA;AACE,gBAAA,OAAO,EAAE;AACP,oBAAA,MAAM,EAAE;wBACN,OAAO,EAAE,IAAI,CAAC,MAAM;AACrB,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAwD;IAC5E;IAEQ,qBAAqB,GAAA;QAC3B,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE;AACzB,YAAA,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE;YAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB;IACH;IAEQ,YAAY,GAAA;QAClB,OAAO,IAAI,CAAC;cACR,IAAI,CAAC;AACP,cAAE;AACE,gBAAA,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;AACzB,gBAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;aAC9B;IACP;8GAzNW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAET,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;sBAQE;;sBAEA;;sBACA;;sBACA;;sBACA;;sBAEA;;sBAKA;;sBAMA;;sBAIA;;;ACpEH;;ACAA;;AAEG;;ACFH;;AAEG;;;;"}