{"version":3,"file":"tapsellorg-angular-material-library-chart.mjs","sources":["../../projects/pegah-library/chart/chart-parent.ts","../../projects/pegah-library/chart/chart-tooltip.service.ts","../../projects/pegah-library/chart/configs.ts","../../projects/pegah-library/chart/chart-colors.service.ts","../../projects/pegah-library/chart/statbox.service.ts","../../projects/pegah-library/chart/mini-chart/mini-chart.component.ts","../../projects/pegah-library/chart/mini-chart/mini-chart.component.html","../../projects/pegah-library/chart/full-chart/full-chart.component.ts","../../projects/pegah-library/chart/full-chart/full-chart.component.html","../../projects/pegah-library/chart/map-chart/map-chart.component.ts","../../projects/pegah-library/chart/map-chart/map-chart.component.html","../../projects/pegah-library/chart/chart-stat-box.directive.ts","../../projects/pegah-library/chart/models.ts","../../projects/pegah-library/chart/chart-date-range-picker.directive.ts","../../projects/pegah-library/chart/chart-header.directive.ts","../../projects/pegah-library/chart/chart-box/chart-box.component.ts","../../projects/pegah-library/chart/chart-box/chart-box.component.html","../../projects/pegah-library/chart/chart-stat-box/chart-stat-box.component.ts","../../projects/pegah-library/chart/chart-stat-box/chart-stat-box.component.html","../../projects/pegah-library/chart/pie-chart/pie-chart.component.ts","../../projects/pegah-library/chart/pie-chart/pie-chart.component.html","../../projects/pegah-library/chart/chart.module.ts","../../projects/pegah-library/chart/chart.utils.ts","../../projects/pegah-library/chart/tapsellorg-angular-material-library-chart.ts"],"sourcesContent":["import { PghStatBoxService } from './statbox.service';\nimport { PghChartColorsService } from './chart-colors.service';\nimport { PghChartTooltipFormatter, PghSimpleHighchartsSeries } from './models';\nimport Highcharts from 'highcharts';\nimport { ObjectUtils } from '@tapsellorg/angular-material-library/src/lib/common';\nimport { PghChartTooltipService } from './chart-tooltip.service';\nimport { signal, Signal } from '@angular/core';\nimport highchartsMap from 'highcharts/modules/map';\n\nhighchartsMap(Highcharts);\n\nexport abstract class ChartParent {\n  highcharts = Highcharts;\n  abstract series: Signal<PghSimpleHighchartsSeries<any>[]>;\n  protected abstract CHART_PLACEHOLDER_SERIES: any[];\n  protected abstract statBoxService?: PghStatBoxService;\n  protected abstract chartColorsService: PghChartColorsService;\n  protected abstract chartTooltipService: PghChartTooltipService;\n  abstract userCustomChartOptions: Signal<Highcharts.Options>;\n  abstract defaultSeriesType: Signal<string>;\n  tooltip = signal<string | PghChartTooltipFormatter | null>(null);\n\n  get hasNoData() {\n    return (\n      !this.series()?.length ||\n      (this.series().length === 1 && !(this.series()[0] as any).data?.length) ||\n      this.series() === this.CHART_PLACEHOLDER_SERIES\n    );\n  }\n\n  protected getChartSeriesColor(index: number) {\n    const activeStatBoxes = this.statBoxService?.activeStatBoxes;\n\n    if (!activeStatBoxes || activeStatBoxes.length !== this.series()?.length) {\n      return this.chartColorsService.getChartSeriesColor(index);\n    }\n\n    return activeStatBoxes[index].color;\n  }\n\n  protected getChartSeries() {\n    if (this.hasNoData) {\n      return this.CHART_PLACEHOLDER_SERIES;\n    }\n\n    return (this.series() ?? []).map((s, i) => ({\n      ...s,\n      type: s.type ?? this.defaultSeriesType(),\n      data: s.data.slice(),\n      color: this.getChartSeriesColor(i),\n    }));\n  }\n\n  protected createChartOptions(customOptions: Highcharts.Options): Highcharts.Options {\n    const tooltipFormatter = this.getTooltipFormatter();\n    const series = this.getChartSeries();\n\n    return ObjectUtils.mergeDeep(\n      {\n        chart: {\n          backgroundColor: 'var(--fff)',\n          style: {\n            fontFamily: 'inherit',\n          },\n        },\n        colors: this.chartColorsService.chartColors,\n        title: { text: undefined },\n        credits: { enabled: false },\n        tooltip: {\n          borderWidth: 0,\n          backgroundColor: '',\n          useHTML: true,\n          formatter() {\n            return tooltipFormatter(this);\n          },\n          shared: true,\n        },\n        legend: {\n          itemStyle: {\n            cursor: 'pointer',\n            'font-size': '12px',\n            'font-weight': 'bold',\n            color: 'var(--000)',\n            fill: 'var(--000)',\n          },\n        },\n        series,\n      } as Highcharts.Options,\n      customOptions,\n      this.userCustomChartOptions(),\n    );\n  }\n\n  protected getTooltipFormatter(): (data: Highcharts.TooltipFormatterContextObject) => string {\n    if (typeof this.tooltip() === 'function') {\n      return this.chartTooltipService.wrapTemplateOnFormatter(\n        this.tooltip() as PghChartTooltipFormatter,\n        this.series(),\n      );\n    } else {\n      return this.chartTooltipService.wrapTemplateOnFormatter(\n        this.chartTooltipService.getPredefinedFormatter((this.tooltip() as string) ?? 'number'),\n        this.series(),\n      );\n    }\n  }\n}\n","import { CurrencyPipe, DecimalPipe, PercentPipe } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport {\n  PghChartTooltipFormatter,\n  PghChartXAxisTooltipFormat,\n  PghChartYAxisTooltip,\n  PghChartYAxisTooltipFormat,\n  PghChartYAxisTooltipFormatter,\n  PghSimpleHighchartsSeries,\n} from './models';\nimport { DateUtils } from '@tapsellorg/angular-material-library/src/lib/jalali-date-adapter';\nimport { TooltipFormatterContextObject } from 'highcharts';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PghChartTooltipService {\n  constructor(\n    private currencyPipe: CurrencyPipe,\n    private percentPipe: PercentPipe,\n    private decimalPipe: DecimalPipe,\n  ) {}\n\n  getPredefinedYAxisFormatter(tooltipType: PghChartYAxisTooltip): PghChartYAxisTooltipFormatter {\n    if (typeof tooltipType === 'function') {\n      return tooltipType;\n    }\n    return this.yAxisFormatters[tooltipType];\n  }\n\n  getPredefinedFormatter(tooltipType: string): PghChartTooltipFormatter {\n    const [yAxis, xAxis] = tooltipType.split(':');\n    const xAxisFormatter = this.xAxisFormatters[xAxis];\n    const yAxisFormatter = this.yAxisFormatters[yAxis];\n\n    if (!yAxisFormatter && !xAxisFormatter) {\n      throw new Error(`PghChartTooltipService: ${tooltipType} tooltip not found.`);\n    }\n    return (data: TooltipFormatterContextObject) => ({\n      data: (data.points || [data]).map(p => yAxisFormatter?.(p) ?? p.y),\n      name: xAxisFormatter?.(data) ?? data.key,\n    });\n  }\n\n  wrapTemplateOnFormatter(tooltip: PghChartTooltipFormatter, series: PghSimpleHighchartsSeries[]) {\n    return (data: TooltipFormatterContextObject) => {\n      const res = tooltip(data);\n      this.applySeriesTooltipFormatters(res, data, series);\n      // TODO: 'res.name ?? data.key' doesn't satisfy the 'tooltipTemplate' argument type and adding '?? ''' isn't very safe\n      return this.tooltipTemplate(\n        res.data ?? (data.points || [data]).map(p => p.y),\n        res.name ?? data.key ?? '',\n        data,\n      );\n    };\n  }\n\n  private applySeriesTooltipFormatters(\n    res: ReturnType<PghChartTooltipFormatter>,\n    data: TooltipFormatterContextObject,\n    series: PghSimpleHighchartsSeries[],\n  ) {\n    res.data = (data.points || [data]).map((p, i) => {\n      const seriesTooltipFormatter = this.getPredefinedYAxisFormatter(series[i].tooltip || '');\n      return seriesTooltipFormatter ? seriesTooltipFormatter(p) : res.data?.[i];\n    });\n  }\n\n  fillUndefinedAxisFormattersWithDefaults(\n    tooltip: string | PghChartTooltipFormatter,\n    defaultValues: { yAxis?: PghChartYAxisTooltipFormat; xAxis?: PghChartXAxisTooltipFormat },\n  ) {\n    if (typeof tooltip === 'function') return tooltip;\n    const [yAxis, xAxis] = tooltip.split(':');\n\n    return `${yAxis || defaultValues.yAxis}:${xAxis || defaultValues.xAxis}`;\n  }\n\n  //\n  // ***\n  // The followings are formatter util functions. They just get a point and format it\n  // ***\n  //\n\n  tooltipTemplate = (\n    y: (string | number | null | undefined)[],\n    x: string | number,\n    data: TooltipFormatterContextObject,\n  ) => {\n    const yAxisValuesTemplate = (data.points || [data])\n      .map(\n        (point, i) => `<div class=\"pgh-chart-tooltip-point\">\n              <span>${y[i] || ''}</span>\n              <span class=\"pgh-chart-tooltip-point-indicator ms-1\" style=\"--series-color:${\n                point.color\n              }\"></span>\n            </div>`,\n      )\n      .join('');\n    return `<div class=\"pgh-highcharts-tooltip\">\n              <div class=\"pgh-highcharts-tooltip-values\">${yAxisValuesTemplate}</div>\n          <div class=\"tooltip-x\" dir=\"auto\">${x}</div>\n        </div>`;\n  };\n\n  // TODO: 'y' property existence isn't guaranteed\n  numberFormatter = (point: TooltipFormatterContextObject) =>\n    this.decimalPipe.transform(point.y) ?? point.y!.toString();\n\n  // TODO: 'y' property existence isn't guaranteed and adding '?? 0' is not safe\n  percentFormatter = (point: TooltipFormatterContextObject) =>\n    this.percentPipe.transform(point.y ?? 0 / 100, '.2') ?? point.y!.toString();\n\n  percentPieFormatter = (point: TooltipFormatterContextObject) =>\n    `${point.percentage?.toFixed(2)}%`;\n\n  // TODO: 'y' property existence isn't guaranteed\n  currencyFormatter = (point: TooltipFormatterContextObject) =>\n    this.currencyPipe.transform(point.y) ?? point.y!.toString();\n\n  // TODO: 'x' property existence isn't guaranteed\n  xAxisDateTimeFormatter = (data: TooltipFormatterContextObject) => {\n    const x = data.x || data.key;\n    return DateUtils.isValidDate(x)\n      ? `${DateUtils.gregorianToJalali(x).format()} ${DateUtils.format(x, 'HH:MM')}`\n      : x!.toString();\n  };\n\n  // TODO: 'x' property existence isn't guaranteed\n  xAxisDateFormatter = (data: TooltipFormatterContextObject) => {\n    const x = data.x || data.key;\n    return DateUtils.isValidDate(x) ? DateUtils.gregorianToJalali(x).format() : x!.toString();\n  };\n\n  // TODO: 'x' property existence isn't guaranteed\n  xAxisTimeFormatter = (data: TooltipFormatterContextObject) => {\n    const x = data.x || data.key;\n    return DateUtils.isValidDate(x) ? DateUtils.format(x, 'HH:MM') : x!.toString();\n  };\n\n  yAxisFormatters: Record<\n    PghChartYAxisTooltipFormat | string,\n    (data: TooltipFormatterContextObject) => string\n  > = {\n    number: this.numberFormatter,\n    currency: this.currencyFormatter,\n    percent: this.percentFormatter,\n    'percent-pie': this.percentPieFormatter,\n  };\n\n  xAxisFormatters: Record<\n    PghChartXAxisTooltipFormat | string,\n    (data: TooltipFormatterContextObject) => string\n  > = {\n    'date-time': this.xAxisDateTimeFormatter,\n    date: this.xAxisDateFormatter,\n    time: this.xAxisTimeFormatter,\n  };\n}\n","import { InjectionToken } from '@angular/core';\nimport { PghGlobalChartOptions } from './models';\n\nexport const PGH_CHART_COLORS = new InjectionToken<string[]>('chartColors', {\n  providedIn: 'root',\n  factory: () => ['var(--primary)', 'var(--accent)'],\n});\n\nexport const PGH_CHART_OPTIONS = new InjectionToken<PghGlobalChartOptions>('chartOptions', {\n  providedIn: 'root',\n  factory: () => ({}),\n});\n","import { Inject, Injectable } from '@angular/core';\nimport { PGH_CHART_COLORS } from './configs';\nimport { MiscUtils } from '@tapsellorg/angular-material-library/src/lib/common';\n\n@Injectable({ providedIn: 'root' })\nexport class PghChartColorsService {\n  readonly FALL_BACK_COLORS = [...MiscUtils.ALL_MATERIAL_COLORS, ...MiscUtils.RANDOM_COLORS];\n  private colors: string[] = [];\n\n  constructor(@Inject(PGH_CHART_COLORS) colors: string[]) {\n    this.updateColors(colors);\n  }\n\n  get chartColors() {\n    return this.colors;\n  }\n\n  updateColors(colors: string[]) {\n    this.colors = [...colors, ...this.FALL_BACK_COLORS.filter(c => !colors.includes(c))];\n  }\n\n  getStatBoxColor(index: number) {\n    return this.colors[index % this.colors.length];\n  }\n\n  getChartSeriesColor(index: number) {\n    return this.colors[index % this.colors.length];\n  }\n}\n","import { ReplaySubject } from 'rxjs';\nimport { PghChartStatBox } from './models';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class PghStatBoxService {\n  statBoxes: PghChartStatBox[] = [];\n  $activeStatBoxes = new ReplaySubject<PghChartStatBox[]>(1);\n\n  get activeStatBoxes() {\n    return this.statBoxes.filter(sb => sb.isActive);\n  }\n\n  constructor() {}\n\n  setActiveStatBoxes(statBoxes: PghChartStatBox[]) {\n    this.$activeStatBoxes.next(statBoxes);\n  }\n\n  addActiveStatBox(statBox: PghChartStatBox) {\n    statBox.isActive = true;\n    this.setActiveStatBoxes(this.statBoxes.filter(sb => sb.isActive));\n  }\n\n  removeActiveStatBox(statBox: PghChartStatBox) {\n    statBox.isActive = false;\n    this.setActiveStatBoxes(this.statBoxes.filter(sb => sb.isActive));\n  }\n\n  setOnlyActiveStatBox(statBox: PghChartStatBox) {\n    this.statBoxes.forEach(sb => {\n      sb.isActive = false;\n    });\n    statBox.isActive = true;\n    this.setActiveStatBoxes([statBox]);\n  }\n}\n","import {\n  Component,\n  input,\n  OnChanges,\n  Optional,\n  signal,\n  SimpleChanges,\n  ViewEncapsulation,\n} from '@angular/core';\nimport * as Highcharts from 'highcharts';\nimport { PghSimpleHighchartsSeries } from '../models';\nimport { ChartParent } from '../chart-parent';\nimport { PghChartTooltipService } from '../chart-tooltip.service';\nimport { PghStatBoxService } from '../statbox.service';\nimport { PghChartColorsService } from '../chart-colors.service';\n\n@Component({\n  selector: 'pgh-mini-chart',\n  templateUrl: './mini-chart.component.html',\n  styleUrls: ['./mini-chart.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  standalone: false,\n})\nexport class PghMiniChartComponent extends ChartParent implements OnChanges {\n  chartOptions = signal<Highcharts.Options>({});\n  userCustomChartOptions = input<Highcharts.Options>(\n    {},\n    {\n      alias: 'customChartOptions',\n    },\n  );\n  series = input<PghSimpleHighchartsSeries[]>([]);\n  defaultSeriesType = input<'areaspline' | 'column'>('column', {\n    alias: 'seriesType',\n  });\n  protected readonly CHART_PLACEHOLDER_SERIES = [\n    { name: 'name', data: [3, 5, 1, 2, 3, 2, 3, 5, 1, 10, 9, 13], type: this.defaultSeriesType() },\n  ];\n\n  constructor(\n    protected chartTooltipService: PghChartTooltipService,\n    protected chartColorsService: PghChartColorsService,\n    @Optional() protected statBoxService?: PghStatBoxService,\n  ) {\n    super();\n  }\n\n  ngOnChanges(_changes: SimpleChanges) {\n    this.updateChartOptions();\n  }\n\n  private updateChartOptions() {\n    const columnBorderRadius = (this.chartOptions().series?.length ?? 0) > 1 ? 0 : 4;\n\n    this.chartOptions.set(\n      this.createChartOptions({\n        chart: {\n          className: 'mini-chart',\n          width: 90,\n          height: 80,\n        },\n        xAxis: {\n          lineWidth: 0,\n          gridLineWidth: 0,\n          lineColor: 'transparent',\n          minorTickLength: 0,\n          title: { text: undefined },\n          labels: { enabled: false },\n          tickLength: 0,\n        },\n        yAxis: {\n          min: 0,\n          title: { text: '' },\n          lineWidth: 0,\n          gridLineWidth: 0,\n          lineColor: 'transparent',\n          minorTickLength: 0,\n          tickLength: 0,\n          labels: { enabled: false },\n        },\n        plotOptions: {\n          column: {\n            pointPadding: 0.1,\n            borderWidth: 0,\n            stacking: 'normal',\n            borderRadius: columnBorderRadius,\n          },\n        },\n        legend: { enabled: false },\n        tooltip: { enabled: false },\n      }),\n    );\n  }\n}\n","<div class=\"pgh-chart-wrapper\">\n  <div class=\"pgh-chart-content\" [class.pgh-chart-no-data]=\"hasNoData\">\n    <highcharts-chart\n      [Highcharts]=\"highcharts\"\n      constructorType=\"chart\"\n      [options]=\"chartOptions()\"\n      [oneToOne]=\"true\"\n      [runOutsideAngular]=\"true\"\n    ></highcharts-chart>\n  </div>\n</div>\n","import {\n  AfterViewChecked,\n  Component,\n  ElementRef,\n  Inject,\n  input,\n  model,\n  OnChanges,\n  Optional,\n  signal,\n  SimpleChanges,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { ChartParent } from '../chart-parent';\nimport { PghChartTooltipService } from '../chart-tooltip.service';\nimport { PghStatBoxService } from '../statbox.service';\nimport { PghChartColorsService } from '../chart-colors.service';\nimport {\n  PghChartTooltipFormatter,\n  PghFullChartYAxis,\n  PghGlobalChartOptions,\n  PghSimpleHighchartsSeries,\n} from '../models';\nimport { DateUtils } from '@tapsellorg/angular-material-library/src/lib/jalali-date-adapter';\nimport { PGH_CHART_OPTIONS } from '../configs';\nimport { Chart, Options } from 'highcharts';\n\n@Component({\n  selector: 'pgh-full-chart',\n  templateUrl: './full-chart.component.html',\n  styleUrls: ['./full-chart.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  standalone: false,\n})\nexport class PghFullChartComponent extends ChartParent implements OnChanges, AfterViewChecked {\n  private readonly MIN_ZOOM_ENABLED_CHART_SERIES = 8;\n  chartOptions = signal<Options>({});\n  userCustomChartOptions = input<Options>(\n    {},\n    {\n      alias: 'customChartOptions',\n    },\n  );\n\n  series = input<PghSimpleHighchartsSeries[]>([]);\n  defaultSeriesType = input<'areaspline' | 'column'>('areaspline', {\n    alias: 'seriesType',\n  });\n\n  xAxis = input<(string | Date)[]>([]);\n  yAxis = model<PghFullChartYAxis[]>([{}]);\n  // TODO: use typescript's template string `${PghChartTooltipType}:${PghChartTooltipXAxis}`\n  tooltip = model<string | PghChartTooltipFormatter | null>('percent-pie');\n\n  protected readonly CHART_PLACEHOLDER_SERIES = [\n    { name: 'name', data: [3, 5, 1, 2, 3, 2, 3, 5, 1, 10, 9, 13], type: this.defaultSeriesType() },\n  ];\n\n  @ViewChild('chartWrapperRef') chartWrapper?: ElementRef;\n  private lastChartWrapperWidth?: number;\n  private chartInstance?: Chart;\n\n  /** TODO: 'chartColorsService' injected but never used review its usage if the 'updateColors' in its constructor doesn't do anything in this scenario */\n  constructor(\n    protected chartTooltipService: PghChartTooltipService,\n    protected chartColorsService: PghChartColorsService,\n    @Inject(PGH_CHART_OPTIONS) private globalChartOptions: PghGlobalChartOptions,\n    @Optional() protected statBoxService?: PghStatBoxService,\n  ) {\n    super();\n  }\n\n  ngAfterViewChecked() {\n    this.handleChartReflow();\n  }\n\n  private handleChartReflow() {\n    if (\n      !this.chartInstance ||\n      this.lastChartWrapperWidth === this.chartWrapper?.nativeElement.offsetWidth\n    )\n      return;\n\n    this.lastChartWrapperWidth = this.chartWrapper?.nativeElement.offsetWidth;\n    /**\n     * TODO: using ChangeDetectorRef can be a better option instead of setTimeout\n     * see https://stackoverflow.com/questions/73145234/what-to-use-in-angular-instead-of-settimeout-for-certain-changes\n     * The decorator introduced in the above link is quite useful for this purpose\n     * */\n    setTimeout(() => {\n      this.chartInstance?.reflow();\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes.yAxis && this.yAxis().length === 0) {\n      this.yAxis.set([{}]);\n    }\n    this.updateChartOptions();\n  }\n\n  private getXAxis = (xAxisValue: string | Date | number): string =>\n    DateUtils.isValidDate(xAxisValue)\n      ? DateUtils.gregorianToJalali(xAxisValue).format()\n      : xAxisValue.toString();\n\n  private updateChartOptions() {\n    this.tooltip.set(\n      this.chartTooltipService.fillUndefinedAxisFormattersWithDefaults(this.tooltip()!, {\n        xAxis: this.globalChartOptions.fullChartTooltip?.xAxis || 'date',\n        yAxis: this.globalChartOptions.fullChartTooltip?.yAxis,\n      }),\n    );\n    const xAxis = this.xAxis() ?? [];\n    this.chartOptions.set(\n      this.createChartOptions({\n        chart: {\n          zooming: {\n            type: xAxis.length > this.MIN_ZOOM_ENABLED_CHART_SERIES ? 'x' : undefined,\n          },\n          className: 'full-chart',\n          type: 'areaspline',\n        },\n        xAxis: {\n          categories: xAxis as string[],\n          labels: {\n            style: { fontSize: '14px', color: 'var(--444)' },\n            formatter: that => this.getXAxis(that.value),\n          },\n          zoomEnabled: true,\n          crosshair: true,\n        },\n        yAxis: this.yAxis().map(y => ({\n          title: { text: null },\n          labels: {\n            format: y?.labels?.format ?? '',\n            style: { fontSize: '13px', color: 'var(--666)' },\n          },\n          opposite: y.opposite,\n          gridLineColor: 'var(--eee)',\n          gridLineDashStyle: 'LongDashDot',\n        })),\n        plotOptions: {\n          column: {\n            borderColor: 'var(--fff)',\n          },\n        },\n      }),\n    );\n  }\n\n  onSetChartInstance(chartInstance: Chart) {\n    this.chartInstance = chartInstance;\n  }\n}\n","<div #chartWrapperRef class=\"pgh-chart-wrapper\">\n  <span class=\"pgh-chart-placeholder-text\">{{ 'FULL_CHART_PLACEHOLDER_TEXT' | translate }}</span>\n  <div class=\"pgh-chart-content\" [class.pgh-chart-no-data]=\"hasNoData\">\n    <highcharts-chart\n      [Highcharts]=\"highcharts\"\n      constructorType=\"chart\"\n      [options]=\"chartOptions()\"\n      [oneToOne]=\"true\"\n      class=\"w-100 d-block\"\n      [runOutsideAngular]=\"true\"\n      (chartInstance)=\"onSetChartInstance($event)\"\n    ></highcharts-chart>\n  </div>\n</div>\n","import {\n  Component,\n  inject,\n  input,\n  OnChanges,\n  OnInit,\n  Optional,\n  signal,\n  SimpleChanges,\n  ViewEncapsulation,\n} from '@angular/core';\nimport iranMap from '@highcharts/map-collection/countries/ir/ir-all.geo.json';\nimport { ChartParent } from '../chart-parent';\nimport { PghChartTooltipService } from '../chart-tooltip.service';\nimport { PghStatBoxService } from '../statbox.service';\nimport { PghChartColorsService } from '../chart-colors.service';\nimport { PghMapChartDataItem, PghSimpleHighchartsSeries } from '../models';\n\n@Component({\n  selector: 'pgh-map-chart',\n  templateUrl: './map-chart.component.html',\n  styleUrl: './map-chart.component.scss',\n  encapsulation: ViewEncapsulation.None,\n  standalone: false,\n})\nexport class PghMapChartComponent extends ChartParent implements OnChanges, OnInit {\n  chartInstance = signal<Highcharts.Chart | undefined>(undefined);\n\n  chartOptions = signal<Highcharts.Options>({});\n  series = input<PghSimpleHighchartsSeries<PghMapChartDataItem[]>[]>([]);\n  userCustomChartOptions = input<Highcharts.Options>(\n    {},\n    {\n      alias: 'customChartOptions',\n    },\n  );\n  defaultSeriesType = signal<string>('map');\n\n  protected CHART_PLACEHOLDER_SERIES = [];\n  protected chartTooltipService = inject(PghChartTooltipService);\n  protected chartColorsService = inject(PghChartColorsService);\n  constructor(@Optional() protected statBoxService?: PghStatBoxService) {\n    super();\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes['userCustomChartOptions']) {\n      this.setChartOptions();\n    }\n\n    if (changes['series']) {\n      this.updateChartData();\n    }\n  }\n\n  ngOnInit() {\n    this.setChartOptions();\n  }\n\n  private setChartOptions() {\n    this.chartOptions.set(\n      this.createChartOptions({\n        chart: {\n          map: iranMap,\n          backgroundColor: 'transparent',\n        },\n        title: { text: undefined },\n        credits: { enabled: false },\n        legend: { enabled: false },\n        colorAxis: {\n          stops: [\n            [0, '#B3ECDA'],\n            [1, '#00865C'],\n          ],\n        },\n        tooltip: {\n          enabled: false,\n        },\n        plotOptions: {\n          series: {\n            animation: false,\n          },\n        },\n        series: [\n          {\n            type: 'map',\n            animation: false,\n            joinBy: ['hc-key', 'id'],\n            borderColor: '#FFFFFF',\n            borderWidth: 1,\n            states: {\n              hover: {\n                color: '#006042',\n                borderColor: '#FFFFFF',\n                borderWidth: 2,\n              },\n            },\n          },\n        ],\n      }),\n    );\n  }\n\n  updateChartData(): void {\n    const seriesData = this.series()?.[0].data ?? [];\n    const chart = this.chartInstance();\n\n    if (chart && seriesData?.length) {\n      chart.series[0].setData(seriesData, true, false);\n    }\n  }\n\n  onChartInstanceReady(chart: Highcharts.Chart) {\n    this.chartInstance.set(chart);\n    this.updateChartData();\n  }\n}\n","<div #chartWrapperRef class=\"pgh-chart-wrapper\">\n  <div class=\"pgh-chart-content\" [class.pgh-chart-no-data]=\"hasNoData\">\n    <highcharts-chart\n      [Highcharts]=\"highcharts\"\n      constructorType=\"mapChart\"\n      [options]=\"chartOptions()\"\n      [oneToOne]=\"true\"\n      [runOutsideAngular]=\"true\"\n      (chartInstance)=\"onChartInstanceReady($event)\"\n      class=\"pgh-iran-map-chart w-100 d-block\"\n    ></highcharts-chart>\n  </div>\n</div>\n","import { Directive, input, OnChanges, OnInit, SimpleChanges, TemplateRef } from '@angular/core';\n\n@Directive({\n  selector: '[pghStatsBox]',\n  exportAs: 'pghStatsBox',\n  standalone: false,\n})\nexport class PghChartStatBoxDirective implements OnChanges, OnInit {\n  statBoxData = input<any | undefined>(undefined, {\n    alias: 'pghStatsBox',\n  });\n  constructor(public template: TemplateRef<any>) {}\n  ngOnChanges(changes: SimpleChanges) {\n    this.handleNoStatBoxDataError();\n  }\n\n  ngOnInit() {\n    this.handleNoStatBoxDataError();\n  }\n\n  private handleNoStatBoxDataError() {\n    if (!this.statBoxData()) {\n      throw new Error(\n        'Pass a statBox data to *pghStatsBox so you can use it in the (activeStatBoxesChange) listener',\n      );\n    }\n  }\n}\n","import { TooltipFormatterContextObject } from 'highcharts';\nimport { PghChartStatBoxDirective } from './chart-stat-box.directive';\n\nexport type PghChartTooltipFormatter = (data: TooltipFormatterContextObject) => {\n  data?: ReturnType<PghChartYAxisTooltipFormatter>[];\n  name?: string | null | undefined;\n};\n\nexport type PghChartYAxisTooltipFormat = 'number' | 'percent' | 'currency' | 'percent-pie';\nexport type PghChartXAxisTooltipFormat = 'date-time' | 'date' | 'time';\nexport type PghFullChartTooltipFormat =\n  | PghChartYAxisTooltipFormat\n  | `${PghChartYAxisTooltipFormat}:${PghChartXAxisTooltipFormat}`;\n\nexport interface PghChartActiveStatBoxesChangeEvent<D = any> {\n  statBoxes: PghChartStatBox<D>[];\n  indexes: number[];\n}\n\nexport type PghChartYAxisTooltipFormatter = (\n  data: TooltipFormatterContextObject,\n) => string | number | null | undefined;\n\nexport class PghChartStatBox<D = any> {\n  isActive = false;\n  get inputData(): D {\n    return this.markerDirective.statBoxData();\n  }\n  constructor(\n    public markerDirective: PghChartStatBoxDirective,\n    public index: number,\n    public color: string,\n  ) {}\n}\n\nexport type PghChartYAxisTooltip =\n  | PghChartYAxisTooltipFormat\n  | string\n  | PghChartYAxisTooltipFormatter;\n\nexport interface PghSimpleHighchartsSeries<D = PghSimpleChartData> {\n  name: string;\n  data: D;\n  type?: 'areaspline' | 'column' | 'pie' | 'map';\n  yAxis?: number;\n  tooltip?: PghChartYAxisTooltip;\n}\n\nexport interface PghFullChartYAxis {\n  labels?: {\n    format?: string;\n  };\n  opposite?: boolean;\n}\n\nexport type PghSimpleChartData = number[];\nexport type PghPieChartData = { name: string; y: number }[];\n\nexport interface PghGlobalChartOptions {\n  disableChartBoxScroll?: boolean;\n  maxActiveChartBoxes?: PghMaxActiveChartBox;\n  fullChartTooltip?: { xAxis?: PghChartXAxisTooltipFormat; yAxis?: PghChartYAxisTooltipFormat };\n}\n\nexport type PghMaxActiveChartBox = number | 'infinite';\n\nexport interface PghMapChartDataItem {\n  id?: string;\n  name: string;\n  value: number | null;\n  tooltipValue: string | number;\n  changed: boolean;\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n  selector: '[pgh-chart-date-range-picker]',\n  standalone: false,\n})\nexport class PghChartDateRangePickerDirective {\n  constructor() {}\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n  selector: '[pgh-chart-header]',\n  standalone: false,\n})\nexport class PghChartHeaderDirective {\n  constructor() {}\n}\n","import {\n  AfterContentChecked,\n  AfterContentInit,\n  Component,\n  ContentChild,\n  ContentChildren,\n  ElementRef,\n  Inject,\n  input,\n  model,\n  OnChanges,\n  OnInit,\n  output,\n  QueryList,\n  signal,\n  SimpleChanges,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { PghFilterChipsComponent } from '@tapsellorg/angular-material-library/src/lib/filter-chips';\nimport { PghChartColorsService } from '../chart-colors.service';\nimport { PghChartStatBoxDirective } from '../chart-stat-box.directive';\nimport { PghStatBoxService } from '../statbox.service';\nimport {\n  PghChartActiveStatBoxesChangeEvent,\n  PghChartStatBox,\n  PghGlobalChartOptions,\n  PghMaxActiveChartBox,\n} from '../models';\nimport { withDestroy } from '@tapsellorg/angular-material-library/src/lib/common';\nimport { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { PGH_CHART_OPTIONS } from '../configs';\nimport { PghChartDateRangePickerDirective } from '../chart-date-range-picker.directive';\nimport { PghChartHeaderDirective } from '../chart-header.directive';\n\n@Component({\n  selector: 'pgh-chart-box',\n  templateUrl: './chart-box.component.html',\n  styleUrls: ['./chart-box.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  providers: [PghStatBoxService],\n  standalone: false,\n})\nexport class PghChartBoxComponent\n  extends withDestroy()\n  implements OnInit, AfterContentChecked, AfterContentInit, OnChanges\n{\n  @ContentChildren(PghChartStatBoxDirective)\n  statBoxesDirectives?: QueryList<PghChartStatBoxDirective>;\n  @ContentChild(PghFilterChipsComponent) filterChipsComponent?: PghFilterChipsComponent;\n  chartTitle = input<string>();\n  activeMax = model<PghMaxActiveChartBox>(1);\n  colors = input<string[] | undefined>();\n  disableChartBoxScroll = model<boolean>(false);\n  activeStatBoxesChange = output<PghChartActiveStatBoxesChangeEvent>();\n  @ViewChild('statBoxesScroller', { static: true }) statBoxesScroller?: ElementRef<HTMLDivElement>;\n  @ContentChild(PghChartDateRangePickerDirective)\n  dateRangePickerDirective = PghChartDateRangePickerDirective;\n  @ContentChild(PghChartHeaderDirective) headerDirective?: PghChartHeaderDirective;\n  displayStatBoxesVertically = input<boolean>(false);\n\n  isContainerOverflown = signal<boolean>(false);\n  isContainerAtStart = signal(true);\n  isContainerAtEnd = signal(false);\n\n  constructor(\n    public statBoxService: PghStatBoxService,\n    private chartColorsService: PghChartColorsService,\n    @Inject(PGH_CHART_OPTIONS) chartOptions: PghGlobalChartOptions,\n  ) {\n    super();\n    this.activeMax.set(chartOptions.maxActiveChartBoxes ?? this.activeMax());\n    this.disableChartBoxScroll.set(\n      chartOptions.disableChartBoxScroll ?? this.disableChartBoxScroll(),\n    );\n  }\n\n  ngOnInit(): void {\n    this.handleActiveMaxChange();\n    let noDuplicate$ = this.statBoxService.$activeStatBoxes.pipe(\n      takeUntil(this._destroyed$),\n      distinctUntilChanged(),\n    );\n\n    if (this.activeMax() === 'infinite' || Number(this.activeMax()) > 2) {\n      noDuplicate$ = noDuplicate$.pipe(debounceTime(700));\n    }\n\n    noDuplicate$.subscribe(activeStatBoxes => {\n      this.activeStatBoxesChange.emit({\n        statBoxes: activeStatBoxes.map(sb => sb),\n        indexes: activeStatBoxes.map(sb => sb.index),\n      });\n    });\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (changes.color && this.colors()) {\n      this.chartColorsService.updateColors(this.colors()!);\n    }\n    if (changes.activeMax) {\n      this.handleActiveMaxChange();\n    }\n  }\n\n  private handleActiveMaxChange() {\n    if (this.activeMax() === 'infinite') {\n      this.activeMax.set(999999999999999);\n    } else if (Number(this.activeMax()) < 1) {\n      this.activeMax.set(1);\n    }\n  }\n\n  ngAfterContentInit() {\n    this.statBoxesTemplateChanged();\n\n    this.statBoxesDirectives?.changes.pipe(takeUntil(this._destroyed$)).subscribe(() => {\n      this.statBoxesTemplateChanged();\n    });\n  }\n\n  ngAfterContentChecked(): void {\n    this.isContainerOverflown.set(this.isStatBoxesContainerOverflown());\n  }\n\n  private statBoxesTemplateChanged() {\n    this.updateStatBoxesBasedOnDirectives();\n\n    const { activeStatBoxes } = this.statBoxService;\n    if (!activeStatBoxes.length && this.statBoxService.statBoxes.length) {\n      this.changeStatBoxActiveState(this.statBoxService.statBoxes[0]);\n    }\n  }\n\n  private updateStatBoxesBasedOnDirectives() {\n    if (!this.statBoxesDirectives) return;\n\n    this.statBoxService.statBoxes = this.statBoxesDirectives.map((directive, i) => {\n      const existingStatBoxWithSameId = this.statBoxService.statBoxes.find(\n        sb => sb.markerDirective.statBoxData() === directive.statBoxData(),\n      );\n      return (\n        existingStatBoxWithSameId ??\n        new PghChartStatBox(directive, i, this.chartColorsService.getStatBoxColor(i))\n      );\n    });\n  }\n\n  changeStatBoxActiveState(statBox: PghChartStatBox, statBoxContainerElm?: HTMLDivElement) {\n    const activeCount = this.statBoxService.activeStatBoxes.length;\n\n    if (this.activeMax() === 1) {\n      if (statBox.isActive) return;\n      this.statBoxService.setOnlyActiveStatBox(statBox);\n      this.scrollIntoView(statBoxContainerElm);\n      return;\n    }\n\n    const canChangeState =\n      this.activeMax() === 'infinite' ||\n      activeCount < Number(this.activeMax()) ||\n      (statBox.isActive && activeCount > 1);\n    if (!canChangeState) return;\n\n    if (statBox.isActive) {\n      this.statBoxService.removeActiveStatBox(statBox);\n    } else {\n      this.statBoxService.addActiveStatBox(statBox);\n      this.scrollIntoView(statBoxContainerElm);\n    }\n  }\n\n  shift(direction: number) {\n    if (\n      !this.statBoxesScroller ||\n      (direction === 1 && this.isContainerAtStart()) ||\n      (direction === -1 && this.isContainerAtEnd())\n    )\n      return;\n    this.statBoxesScroller.nativeElement.scrollBy({ left: direction * 300 });\n  }\n\n  isStatBoxesContainerOverflown(): boolean {\n    if (!this.statBoxesScroller || this.disableChartBoxScroll()) {\n      return false;\n    }\n\n    const element = this.statBoxesScroller.nativeElement;\n    return element.scrollWidth > element.clientWidth;\n  }\n\n  scrollIntoView(element: HTMLElement | undefined) {\n    if (!element) return;\n    element.scrollIntoView({\n      behavior: 'smooth',\n      block: 'nearest',\n      inline: 'center',\n    });\n  }\n\n  statBoxContainerScrollHandler(): void {\n    if (!this.statBoxesScroller) return;\n    const element = this.statBoxesScroller.nativeElement;\n    this.isContainerAtStart.set(!element.scrollLeft);\n    this.isContainerAtEnd.set(element.scrollWidth + element.scrollLeft === element.clientWidth);\n  }\n}\n","<div class=\"pgh-chart-box\" [class.pgh-chart-box-vertical-stats]=\"displayStatBoxesVertically()\">\n  <div class=\"pgh-chart-box-header\">\n    <div class=\"pgh-chart-box-header-section\" [hidden]=\"!chartTitle() && !headerDirective\">\n      @if (chartTitle()) {\n      <h4>{{ chartTitle() }}</h4>\n      }\n      <ng-content select=\"[pgh-chart-header]\"></ng-content>\n    </div>\n    <div class=\"pgh-chart-box-header-section\" [hidden]=\"!dateRangePickerDirective\">\n      <ng-content select=\"[pgh-chart-date-range-picker]\"></ng-content>\n    </div>\n  </div>\n\n  <div\n    class=\"pgh-filters-wrapper\"\n    [hidden]=\"!filtersWrapperRef.innerHTML.trim() && !actionButtonsWrapperRef.innerHTML.trim()\"\n  >\n    <div #filtersWrapperRef>\n      <ng-content select=\"pgh-filter-chips\"></ng-content>\n      <ng-content select=\"[pgh-chart-filters]\"></ng-content>\n    </div>\n    <div #actionButtonsWrapperRef class=\"pgh-action-buttons\">\n      <ng-content select=\"[pgh-action-buttons]\"></ng-content>\n    </div>\n  </div>\n\n  <div\n    class=\"pgh-stats-container\"\n    [hidden]=\"!statBoxService.statBoxes.length\"\n    [class.pgh-chart-box-no-scroll-stats]=\"disableChartBoxScroll()\"\n  >\n    <div class=\"pgh-chart-stat-boxes\">\n      <div\n        #statBoxesScroller\n        class=\"pgh-chart-stat-scroller\"\n        [class.pgh-chart-stat-boxes-overflow]=\"isContainerOverflown()\"\n        (scroll)=\"statBoxContainerScrollHandler()\"\n      >\n        @for (sb of statBoxService.statBoxes; track sb) {\n        <div\n          class=\"pgh-stat-box-container\"\n          [class.pgh-is-active]=\"sb.isActive\"\n          #statBoxContainerElm\n          (click)=\"changeStatBoxActiveState(sb, statBoxContainerElm)\"\n          [style.--chart-stat-box-bg-color]=\"sb.color\"\n        >\n          <ng-container\n            *ngTemplateOutlet=\"sb.markerDirective.template; context: { isActive: sb.isActive }\"\n          ></ng-container>\n        </div>\n        }\n      </div>\n    </div>\n    @if (isContainerOverflown()) {\n    <div\n      class=\"pgh-slide-button pgh-chart-stat-boxes-slide-right\"\n      [class.pgh-disabled]=\"isContainerAtStart()\"\n      (click)=\"shift(1)\"\n    >\n      <mat-icon svgIcon=\"chevron_right\"></mat-icon>\n    </div>\n    } @if (isContainerOverflown()) {\n    <div\n      class=\"pgh-slide-button pgh-chart-stat-boxes-slide-left\"\n      [class.pgh-disabled]=\"isContainerAtEnd()\"\n      (click)=\"shift(-1)\"\n    >\n      <mat-icon svgIcon=\"chevron_left\"></mat-icon>\n    </div>\n    }\n  </div>\n\n  <div class=\"pgh-chart-container\">\n    <ng-content></ng-content>\n  </div>\n</div>\n","import {\n  Component,\n  Input,\n  ViewEncapsulation,\n  DEFAULT_CURRENCY_CODE,\n  Inject,\n  LOCALE_ID,\n  input,\n  signal,\n} from '@angular/core';\nimport { getCurrencySymbol } from '@angular/common';\n\n@Component({\n  selector: 'pgh-chart-stat-box',\n  templateUrl: './chart-stat-box.component.html',\n  styleUrls: ['./chart-stat-box.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  standalone: false,\n})\nexport class PghChartStatBoxComponent {\n  name = input.required<string>();\n  value = input<number | undefined>();\n  valueType = input<'number' | 'percent' | 'currency'>('number');\n  tooltip = input<string | undefined>();\n\n  currencyCode = signal<string | undefined>(undefined);\n\n  constructor(\n    @Inject(DEFAULT_CURRENCY_CODE) private defaultCurrencyCode: string,\n    @Inject(LOCALE_ID) private localeId: string,\n  ) {\n    this.currencyCode.set(getCurrencySymbol(this.defaultCurrencyCode, 'wide', localeId));\n  }\n}\n","<div class=\"pgh-chart-stat-box\" matRipple>\n  <div class=\"pgh-chart-stat-title\">\n    <span>{{ name() }}</span>\n    <pgh-help-indicator [tooltip]=\"tooltip()\" class=\"ms-2\"></pgh-help-indicator>\n  </div>\n  <div class=\"pgh-chart-stat-value\">\n    @if (valueType() === 'number') {\n    {{ value() | number }}\n    } @if (valueType() === 'percent') {\n    {{ value() | percent : '.0-2' }}\n    } @if (valueType() === 'currency') {\n    <span>{{ value() | number }}</span>\n    <span class=\"pgh-chart-stat-box-currency-label\">{{ currencyCode() }}</span>\n    }\n    <ng-content></ng-content>\n  </div>\n</div>\n","import {\n  AfterViewChecked,\n  Component,\n  ElementRef,\n  input,\n  model,\n  OnChanges,\n  Optional,\n  signal,\n  SimpleChanges,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { StringUtils } from '@tapsellorg/angular-material-library/src/lib/common';\nimport * as Highcharts from 'highcharts';\nimport { Point } from 'highcharts';\nimport { PghChartYAxisTooltipFormat, PghPieChartData, PghSimpleHighchartsSeries } from '../models';\nimport { PghChartTooltipService } from '../chart-tooltip.service';\nimport { ChartParent } from '../chart-parent';\nimport { PghChartColorsService } from '../chart-colors.service';\nimport { PghStatBoxService } from '../statbox.service';\n\n@Component({\n  selector: 'pgh-pie-chart',\n  templateUrl: './pie-chart.component.html',\n  styleUrls: ['./pie-chart.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  standalone: false,\n})\nexport class PghPieChartComponent extends ChartParent implements OnChanges, AfterViewChecked {\n  chartOptions = signal<Highcharts.Options>({});\n  userCustomChartOptions = input<Highcharts.Options>(\n    {},\n    {\n      alias: 'customChartOptions',\n    },\n  );\n  series = input<PghSimpleHighchartsSeries<PghPieChartData>[]>([]);\n\n  tooltip = model<string | PghChartYAxisTooltipFormat | null>('percent-pie');\n\n  pieType = input<'donut' | 'pie'>('pie');\n  defaultSeriesType = signal<string>('pie');\n  @ViewChild('chartWrapperRef') chartWrapper?: ElementRef<HTMLDivElement>;\n  private lastChartWrapperWidth?: number;\n  private chartInstance?: Highcharts.Chart;\n\n  protected CHART_PLACEHOLDER_SERIES = [\n    { name: 'Mobile', value: 1100, type: 'pie' },\n    { name: 'Tablet', value: 3200, type: 'pie' },\n  ];\n  constructor(\n    protected chartTooltipService: PghChartTooltipService,\n    protected chartColorsService: PghChartColorsService,\n    @Optional() protected statBoxService?: PghStatBoxService,\n  ) {\n    super();\n  }\n\n  ngOnChanges(_changes: SimpleChanges) {\n    this.configureChartOptions();\n  }\n\n  ngAfterViewChecked() {\n    this.handleChartReflow();\n  }\n\n  private handleChartReflow() {\n    if (\n      !this.chartInstance ||\n      this.lastChartWrapperWidth === this.chartWrapper?.nativeElement.offsetWidth\n    )\n      return;\n\n    this.lastChartWrapperWidth = this.chartWrapper?.nativeElement.offsetWidth;\n    setTimeout(() => {\n      this.chartInstance?.reflow();\n    });\n  }\n\n  configureChartOptions() {\n    this.chartOptions.set(\n      this.createChartOptions({\n        chart: { className: 'pie-chart', type: 'pie' },\n        plotOptions: {\n          pie: {\n            dataLabels: {\n              enabled: false,\n            },\n            showInLegend: true,\n            innerSize: this.pieType() === 'pie' ? '0' : '80%',\n          },\n        },\n        legend: {\n          useHTML: true,\n          labelFormatter() {\n            const { color, percentage } = this as Point;\n            const percentageLabel = StringUtils.convertEnglishNumbersToPersian(\n              `${Math.round(Number(percentage))}٪`,\n            );\n            return `<div class=\"custom-highcharts-legend\">\n            <div class=\"legend-percentage\" style=\"color:${String(color)}\">${percentageLabel}</div>\n            <div class=\"legend-title\">${this.name}</div>\n          </div>`;\n          },\n        },\n      }),\n    );\n  }\n\n  onSetChartInstance(chartInstance: Highcharts.Chart) {\n    this.chartInstance = chartInstance;\n  }\n}\n","<div #chartWrapperRef class=\"pgh-chart-wrapper\">\n  <div class=\"pgh-chart-content\" [class.pgh-chart-no-data]=\"hasNoData\">\n    <highcharts-chart\n      [Highcharts]=\"highcharts\"\n      constructorType=\"chart\"\n      [options]=\"chartOptions()\"\n      [oneToOne]=\"true\"\n      [runOutsideAngular]=\"true\"\n      (chartInstance)=\"onSetChartInstance($event)\"\n      class=\"pgh-pie-chart w-100 d-block\"\n    ></highcharts-chart>\n  </div>\n</div>\n","import { CommonModule, CurrencyPipe, DecimalPipe, PercentPipe } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { HighchartsChartModule } from 'highcharts-angular';\nimport { PghHelpIndicatorModule } from '@tapsellorg/angular-material-library/src/lib/help-indicator';\nimport { PghMiniChartComponent } from './mini-chart/mini-chart.component';\nimport { PghFullChartComponent } from './full-chart/full-chart.component';\nimport { PghMapChartComponent } from './map-chart/map-chart.component';\nimport { PghChartBoxComponent } from './chart-box/chart-box.component';\nimport { PghChartStatBoxDirective } from './chart-stat-box.directive';\nimport { PghChartStatBoxComponent } from './chart-stat-box/chart-stat-box.component';\nimport { PghPieChartComponent } from './pie-chart/pie-chart.component';\nimport { MatRippleModule } from '@angular/material/core';\nimport { PghChartDateRangePickerDirective } from './chart-date-range-picker.directive';\nimport { PghChartHeaderDirective } from './chart-header.directive';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@tapsellorg/angular-material-library/src/lib/translate';\n\n@NgModule({\n  declarations: [\n    PghMiniChartComponent,\n    PghMapChartComponent,\n    PghFullChartComponent,\n    PghChartBoxComponent,\n    PghChartStatBoxComponent,\n    PghChartStatBoxDirective,\n    PghPieChartComponent,\n    PghChartDateRangePickerDirective,\n    PghChartHeaderDirective,\n  ],\n  imports: [\n    CommonModule,\n    MatRippleModule,\n    HighchartsChartModule,\n    PghHelpIndicatorModule,\n    ObserversModule,\n    MatIconModule,\n    TranslateModule,\n  ],\n  exports: [\n    PghMiniChartComponent,\n    PghFullChartComponent,\n    PghMapChartComponent,\n    PghChartBoxComponent,\n    PghChartStatBoxComponent,\n    PghChartStatBoxDirective,\n    PghPieChartComponent,\n    PghChartDateRangePickerDirective,\n    PghChartHeaderDirective,\n  ],\n  providers: [DecimalPipe, PercentPipe, CurrencyPipe],\n})\nexport class PghChartModule {}\n","import {\n  PghChartYAxisTooltip,\n  PghMapChartDataItem,\n  PghPieChartData,\n  PghSimpleHighchartsSeries,\n} from './models';\n\n// @dynamic\nexport class PghChartUtils {\n  static getChartSeries<T>(\n    data: T[],\n    seriesOptions: {\n      name: string;\n      dataGetter: (item: T) => number;\n      yAxis?: number;\n      tooltip?: PghChartYAxisTooltip;\n    },\n  ): PghSimpleHighchartsSeries {\n    const modifiedData = data.map(item => seriesOptions.dataGetter(item));\n    if (seriesOptions.tooltip === 'percent') {\n      modifiedData.forEach((value, index) => {\n        modifiedData[index] = value * 100;\n      });\n    }\n\n    return {\n      name: seriesOptions.name,\n      yAxis: seriesOptions.yAxis,\n      data: modifiedData,\n      tooltip: seriesOptions.tooltip,\n    };\n  }\n\n  static getPieChartSeries<T>(\n    data: T[],\n    seriesOptions: {\n      name: string;\n      dataGetter: (item: T) => { name: string; y: number };\n      tooltip?: PghChartYAxisTooltip;\n    },\n  ): PghSimpleHighchartsSeries<PghPieChartData> {\n    return {\n      name: seriesOptions.name,\n      type: 'pie',\n      data: data.map(item => seriesOptions.dataGetter(item)),\n      tooltip: seriesOptions.tooltip,\n    };\n  }\n  static getMapChartSeries(\n    data: PghMapChartDataItem[],\n    options: {\n      name: string;\n      yAxis?: number;\n      tooltip?: PghChartYAxisTooltip;\n    },\n  ): PghSimpleHighchartsSeries<PghMapChartDataItem[]> {\n    return {\n      type: 'map',\n      name: options.name,\n      yAxis: options.yAxis,\n      tooltip: options.tooltip,\n      data,\n    };\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PghChartTooltipService","i2.PghChartColorsService","i3.PghStatBoxService","i1.PghStatBoxService","i2","i3","i4","i1"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AASA,aAAa,CAAC,UAAU,CAAC;MAEH,WAAW,CAAA;AAAjC,IAAA,WAAA,GAAA;QACE,IAAA,CAAA,UAAU,GAAG,UAAU;AAQvB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAA2C,IAAI,CAAC;IAsFlE;AApFE,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,QACE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM;aACrB,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAS,CAAC,IAAI,EAAE,MAAM,CAAC;YACvE,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,wBAAwB;IAEnD;AAEU,IAAA,mBAAmB,CAAC,KAAa,EAAA;AACzC,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,eAAe;AAE5D,QAAA,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE;YACxE,OAAO,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,KAAK,CAAC;QAC3D;AAEA,QAAA,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,KAAK;IACrC;IAEU,cAAc,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,IAAI,CAAC,wBAAwB;QACtC;AAEA,QAAA,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM;AAC1C,YAAA,GAAG,CAAC;YACJ,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxC,YAAA,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE;AACpB,YAAA,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;AACnC,SAAA,CAAC,CAAC;IACL;AAEU,IAAA,kBAAkB,CAAC,aAAiC,EAAA;AAC5D,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE;AACnD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE;QAEpC,OAAO,WAAW,CAAC,SAAS,CAC1B;AACE,YAAA,KAAK,EAAE;AACL,gBAAA,eAAe,EAAE,YAAY;AAC7B,gBAAA,KAAK,EAAE;AACL,oBAAA,UAAU,EAAE,SAAS;AACtB,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,WAAW;AAC3C,YAAA,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;AAC1B,YAAA,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;AAC3B,YAAA,OAAO,EAAE;AACP,gBAAA,WAAW,EAAE,CAAC;AACd,gBAAA,eAAe,EAAE,EAAE;AACnB,gBAAA,OAAO,EAAE,IAAI;gBACb,SAAS,GAAA;AACP,oBAAA,OAAO,gBAAgB,CAAC,IAAI,CAAC;gBAC/B,CAAC;AACD,gBAAA,MAAM,EAAE,IAAI;AACb,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,SAAS,EAAE;AACT,oBAAA,MAAM,EAAE,SAAS;AACjB,oBAAA,WAAW,EAAE,MAAM;AACnB,oBAAA,aAAa,EAAE,MAAM;AACrB,oBAAA,KAAK,EAAE,YAAY;AACnB,oBAAA,IAAI,EAAE,YAAY;AACnB,iBAAA;AACF,aAAA;YACD,MAAM;AACe,SAAA,EACvB,aAAa,EACb,IAAI,CAAC,sBAAsB,EAAE,CAC9B;IACH;IAEU,mBAAmB,GAAA;QAC3B,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,UAAU,EAAE;AACxC,YAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,CACrD,IAAI,CAAC,OAAO,EAA8B,EAC1C,IAAI,CAAC,MAAM,EAAE,CACd;QACH;aAAO;YACL,OAAO,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,CACrD,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAE,IAAI,CAAC,OAAO,EAAa,IAAI,QAAQ,CAAC,EACvF,IAAI,CAAC,MAAM,EAAE,CACd;QACH;IACF;AACD;;MC1FY,sBAAsB,CAAA;AACjC,IAAA,WAAA,CACU,YAA0B,EAC1B,WAAwB,EACxB,WAAwB,EAAA;QAFxB,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,WAAW,GAAX,WAAW;;;;;;QAgErB,IAAA,CAAA,eAAe,GAAG,CAChB,CAAyC,EACzC,CAAkB,EAClB,IAAmC,KACjC;YACF,MAAM,mBAAmB,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC;AAC/C,iBAAA,GAAG,CACF,CAAC,KAAK,EAAE,CAAC,KAAK,CAAA;AACA,oBAAA,EAAA,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;AAEhB,yFAAA,EAAA,KAAK,CAAC,KACR,CAAA;mBACK;iBAEZ,IAAI,CAAC,EAAE,CAAC;YACX,OAAO,CAAA;2DACgD,mBAAmB,CAAA;8CAChC,CAAC,CAAA;eAChC;AACb,QAAA,CAAC;;QAGD,IAAA,CAAA,eAAe,GAAG,CAAC,KAAoC,KACrD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAE,CAAC,QAAQ,EAAE;;AAG5D,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,KAAoC,KACtD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,CAAE,CAAC,QAAQ,EAAE;AAE7E,QAAA,IAAA,CAAA,mBAAmB,GAAG,CAAC,KAAoC,KACzD,CAAA,EAAG,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG;;QAGpC,IAAA,CAAA,iBAAiB,GAAG,CAAC,KAAoC,KACvD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAE,CAAC,QAAQ,EAAE;;AAG7D,QAAA,IAAA,CAAA,sBAAsB,GAAG,CAAC,IAAmC,KAAI;YAC/D,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG;AAC5B,YAAA,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC;kBAC1B,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAA,CAAA,EAAI,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;AAC5E,kBAAE,CAAE,CAAC,QAAQ,EAAE;AACnB,QAAA,CAAC;;AAGD,QAAA,IAAA,CAAA,kBAAkB,GAAG,CAAC,IAAmC,KAAI;YAC3D,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG;YAC5B,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAE,CAAC,QAAQ,EAAE;AAC3F,QAAA,CAAC;;AAGD,QAAA,IAAA,CAAA,kBAAkB,GAAG,CAAC,IAAmC,KAAI;YAC3D,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG;YAC5B,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAE,CAAC,QAAQ,EAAE;AAChF,QAAA,CAAC;AAED,QAAA,IAAA,CAAA,eAAe,GAGX;YACF,MAAM,EAAE,IAAI,CAAC,eAAe;YAC5B,QAAQ,EAAE,IAAI,CAAC,iBAAiB;YAChC,OAAO,EAAE,IAAI,CAAC,gBAAgB;YAC9B,aAAa,EAAE,IAAI,CAAC,mBAAmB;SACxC;AAED,QAAA,IAAA,CAAA,eAAe,GAGX;YACF,WAAW,EAAE,IAAI,CAAC,sBAAsB;YACxC,IAAI,EAAE,IAAI,CAAC,kBAAkB;YAC7B,IAAI,EAAE,IAAI,CAAC,kBAAkB;SAC9B;IAxIE;AAEH,IAAA,2BAA2B,CAAC,WAAiC,EAAA;AAC3D,QAAA,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;AACrC,YAAA,OAAO,WAAW;QACpB;AACA,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC;IAC1C;AAEA,IAAA,sBAAsB,CAAC,WAAmB,EAAA;AACxC,QAAA,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC;QAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;QAClD,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AAElD,QAAA,IAAI,CAAC,cAAc,IAAI,CAAC,cAAc,EAAE;AACtC,YAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,WAAW,CAAA,mBAAA,CAAqB,CAAC;QAC9E;AACA,QAAA,OAAO,CAAC,IAAmC,MAAM;YAC/C,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClE,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG;AACzC,SAAA,CAAC;IACJ;IAEA,uBAAuB,CAAC,OAAiC,EAAE,MAAmC,EAAA;QAC5F,OAAO,CAAC,IAAmC,KAAI;AAC7C,YAAA,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;YACzB,IAAI,CAAC,4BAA4B,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC;;AAEpD,YAAA,OAAO,IAAI,CAAC,eAAe,CACzB,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EACjD,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,EAC1B,IAAI,CACL;AACH,QAAA,CAAC;IACH;AAEQ,IAAA,4BAA4B,CAClC,GAAyC,EACzC,IAAmC,EACnC,MAAmC,EAAA;QAEnC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AAC9C,YAAA,MAAM,sBAAsB,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;AACxF,YAAA,OAAO,sBAAsB,GAAG,sBAAsB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;AAC3E,QAAA,CAAC,CAAC;IACJ;IAEA,uCAAuC,CACrC,OAA0C,EAC1C,aAAyF,EAAA;QAEzF,IAAI,OAAO,OAAO,KAAK,UAAU;AAAE,YAAA,OAAO,OAAO;AACjD,QAAA,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AAEzC,QAAA,OAAO,CAAA,EAAG,KAAK,IAAI,aAAa,CAAC,KAAK,CAAA,CAAA,EAAI,KAAK,IAAI,aAAa,CAAC,KAAK,EAAE;IAC1E;+GA5DW,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA,CAAA;;4FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCZY,gBAAgB,GAAG,IAAI,cAAc,CAAW,aAAa,EAAE;AAC1E,IAAA,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAM,CAAC,gBAAgB,EAAE,eAAe,CAAC;AACnD,CAAA;MAEY,iBAAiB,GAAG,IAAI,cAAc,CAAwB,cAAc,EAAE;AACzF,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,OAAO,EAAE,CAAC;AACpB,CAAA;;MCNY,qBAAqB,CAAA;AAIhC,IAAA,WAAA,CAAsC,MAAgB,EAAA;AAH7C,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,GAAG,SAAS,CAAC,mBAAmB,EAAE,GAAG,SAAS,CAAC,aAAa,CAAC;QAClF,IAAA,CAAA,MAAM,GAAa,EAAE;AAG3B,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;IAC3B;AAEA,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,MAAM;IACpB;AAEA,IAAA,YAAY,CAAC,MAAgB,EAAA;QAC3B,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACtF;AAEA,IAAA,eAAe,CAAC,KAAa,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAChD;AAEA,IAAA,mBAAmB,CAAC,KAAa,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAChD;AAtBW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kBAIZ,gBAAgB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAJzB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cADR,MAAM,EAAA,CAAA,CAAA;;4FACnB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;0BAKnB,MAAM;2BAAC,gBAAgB;;;MCJzB,iBAAiB,CAAA;AAI5B,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC;IACjD;AAEA,IAAA,WAAA,GAAA;QAPA,IAAA,CAAA,SAAS,GAAsB,EAAE;AACjC,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,aAAa,CAAoB,CAAC,CAAC;IAM3C;AAEf,IAAA,kBAAkB,CAAC,SAA4B,EAAA;AAC7C,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC;IACvC;AAEA,IAAA,gBAAgB,CAAC,OAAwB,EAAA;AACvC,QAAA,OAAO,CAAC,QAAQ,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;IACnE;AAEA,IAAA,mBAAmB,CAAC,OAAwB,EAAA;AAC1C,QAAA,OAAO,CAAC,QAAQ,GAAG,KAAK;AACxB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;IACnE;AAEA,IAAA,oBAAoB,CAAC,OAAwB,EAAA;AAC3C,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAG;AAC1B,YAAA,EAAE,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,CAAC,QAAQ,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC;IACpC;+GA9BW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAjB,iBAAiB,EAAA,CAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;;ACmBK,MAAO,qBAAsB,SAAQ,WAAW,CAAA;AAgBpD,IAAA,WAAA,CACY,mBAA2C,EAC3C,kBAAyC,EAC7B,cAAkC,EAAA;AAExD,QAAA,KAAK,EAAE;QAJG,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;QACnB,IAAA,CAAA,kBAAkB,GAAlB,kBAAkB;QACN,IAAA,CAAA,cAAc,GAAd,cAAc;AAlBtC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAqB,EAAE,CAAC;AAC7C,QAAA,IAAA,CAAA,sBAAsB,GAAG,KAAK,CAC5B,EAAE,EACF;AACE,YAAA,KAAK,EAAE,oBAAoB;AAC5B,SAAA,CACF;AACD,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAA8B,EAAE,CAAC;AAC/C,QAAA,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAA0B,QAAQ,EAAE;AAC3D,YAAA,KAAK,EAAE,YAAY;AACpB,SAAA,CAAC;AACiB,QAAA,IAAA,CAAA,wBAAwB,GAAG;AAC5C,YAAA,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAE;SAC/F;IAQD;AAEA,IAAA,WAAW,CAAC,QAAuB,EAAA;QACjC,IAAI,CAAC,kBAAkB,EAAE;IAC3B;IAEQ,kBAAkB,GAAA;QACxB,MAAM,kBAAkB,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QAEhF,IAAI,CAAC,YAAY,CAAC,GAAG,CACnB,IAAI,CAAC,kBAAkB,CAAC;AACtB,YAAA,KAAK,EAAE;AACL,gBAAA,SAAS,EAAE,YAAY;AACvB,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,MAAM,EAAE,EAAE;AACX,aAAA;AACD,YAAA,KAAK,EAAE;AACL,gBAAA,SAAS,EAAE,CAAC;AACZ,gBAAA,aAAa,EAAE,CAAC;AAChB,gBAAA,SAAS,EAAE,aAAa;AACxB,gBAAA,eAAe,EAAE,CAAC;AAClB,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;AAC1B,gBAAA,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;AAC1B,gBAAA,UAAU,EAAE,CAAC;AACd,aAAA;AACD,YAAA,KAAK,EAAE;AACL,gBAAA,GAAG,EAAE,CAAC;AACN,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;AACnB,gBAAA,SAAS,EAAE,CAAC;AACZ,gBAAA,aAAa,EAAE,CAAC;AAChB,gBAAA,SAAS,EAAE,aAAa;AACxB,gBAAA,eAAe,EAAE,CAAC;AAClB,gBAAA,UAAU,EAAE,CAAC;AACb,gBAAA,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;AAC3B,aAAA;AACD,YAAA,WAAW,EAAE;AACX,gBAAA,MAAM,EAAE;AACN,oBAAA,YAAY,EAAE,GAAG;AACjB,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,YAAY,EAAE,kBAAkB;AACjC,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;AAC1B,YAAA,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;AAC5B,SAAA,CAAC,CACH;IACH;+GArEW,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,0jBCvBlC,4VAWA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FDYa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,aAAA,EAGX,iBAAiB,CAAC,IAAI,cACzB,KAAK,EAAA,QAAA,EAAA,4VAAA,EAAA;;0BAqBd;;;AEPC,MAAO,qBAAsB,SAAQ,WAAW,CAAA;;AA6BpD,IAAA,WAAA,CACY,mBAA2C,EAC3C,kBAAyC,EAChB,kBAAyC,EACtD,cAAkC,EAAA;AAExD,QAAA,KAAK,EAAE;QALG,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;QACnB,IAAA,CAAA,kBAAkB,GAAlB,kBAAkB;QACO,IAAA,CAAA,kBAAkB,GAAlB,kBAAkB;QAC/B,IAAA,CAAA,cAAc,GAAd,cAAc;QAhCrB,IAAA,CAAA,6BAA6B,GAAG,CAAC;AAClD,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAU,EAAE,CAAC;AAClC,QAAA,IAAA,CAAA,sBAAsB,GAAG,KAAK,CAC5B,EAAE,EACF;AACE,YAAA,KAAK,EAAE,oBAAoB;AAC5B,SAAA,CACF;AAED,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAA8B,EAAE,CAAC;AAC/C,QAAA,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAA0B,YAAY,EAAE;AAC/D,YAAA,KAAK,EAAE,YAAY;AACpB,SAAA,CAAC;AAEF,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAoB,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAsB,CAAC,EAAE,CAAC,CAAC;;AAExC,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAA2C,aAAa,CAAC;AAErD,QAAA,IAAA,CAAA,wBAAwB,GAAG;AAC5C,YAAA,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAE;SAC/F;QA6CO,IAAA,CAAA,QAAQ,GAAG,CAAC,UAAkC,KACpD,SAAS,CAAC,WAAW,CAAC,UAAU;cAC5B,SAAS,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,MAAM;AAChD,cAAE,UAAU,CAAC,QAAQ,EAAE;IAlC3B;IAEA,kBAAkB,GAAA;QAChB,IAAI,CAAC,iBAAiB,EAAE;IAC1B;IAEQ,iBAAiB,GAAA;QACvB,IACE,CAAC,IAAI,CAAC,aAAa;YACnB,IAAI,CAAC,qBAAqB,KAAK,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,WAAW;YAE3E;QAEF,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,WAAW;AACzE;;;;AAIK;QACL,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE;AAC9B,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;QACtB;QACA,IAAI,CAAC,kBAAkB,EAAE;IAC3B;IAOQ,kBAAkB,GAAA;AACxB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CACd,IAAI,CAAC,mBAAmB,CAAC,uCAAuC,CAAC,IAAI,CAAC,OAAO,EAAG,EAAE;YAChF,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,KAAK,IAAI,MAAM;AAChE,YAAA,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,KAAK;AACvD,SAAA,CAAC,CACH;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;QAChC,IAAI,CAAC,YAAY,CAAC,GAAG,CACnB,IAAI,CAAC,kBAAkB,CAAC;AACtB,YAAA,KAAK,EAAE;AACL,gBAAA,OAAO,EAAE;AACP,oBAAA,IAAI,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,6BAA6B,GAAG,GAAG,GAAG,SAAS;AAC1E,iBAAA;AACD,gBAAA,SAAS,EAAE,YAAY;AACvB,gBAAA,IAAI,EAAE,YAAY;AACnB,aAAA;AACD,YAAA,KAAK,EAAE;AACL,gBAAA,UAAU,EAAE,KAAiB;AAC7B,gBAAA,MAAM,EAAE;oBACN,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE;AAChD,oBAAA,SAAS,EAAE,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7C,iBAAA;AACD,gBAAA,WAAW,EAAE,IAAI;AACjB,gBAAA,SAAS,EAAE,IAAI;AAChB,aAAA;AACD,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK;AAC5B,gBAAA,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AACrB,gBAAA,MAAM,EAAE;AACN,oBAAA,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE;oBAC/B,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE;AACjD,iBAAA;gBACD,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACpB,gBAAA,aAAa,EAAE,YAAY;AAC3B,gBAAA,iBAAiB,EAAE,aAAa;AACjC,aAAA,CAAC,CAAC;AACH,YAAA,WAAW,EAAE;AACX,gBAAA,MAAM,EAAE;AACN,oBAAA,WAAW,EAAE,YAAY;AAC1B,iBAAA;AACF,aAAA;AACF,SAAA,CAAC,CACH;IACH;AAEA,IAAA,kBAAkB,CAAC,aAAoB,EAAA;AACrC,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa;IACpC;AAvHW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,uFAgCtB,iBAAiB,EAAA,EAAA,EAAA,KAAA,EAAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAhChB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,slCCnClC,uiBAcA,EAAA,MAAA,EAAA,CAAA,kbAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FDqBa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,aAAA,EAGX,iBAAiB,CAAC,IAAI,cACzB,KAAK,EAAA,QAAA,EAAA,uiBAAA,EAAA,MAAA,EAAA,CAAA,kbAAA,CAAA,EAAA;;0BAkCd,MAAM;2BAAC,iBAAiB;;0BACxB;yCAT2B,YAAY,EAAA,CAAA;sBAAzC,SAAS;uBAAC,iBAAiB;;;AElCxB,MAAO,oBAAqB,SAAQ,WAAW,CAAA;AAgBnD,IAAA,WAAA,CAAkC,cAAkC,EAAA;AAClE,QAAA,KAAK,EAAE;QADyB,IAAA,CAAA,cAAc,GAAd,cAAc;AAfhD,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAA+B,SAAS,CAAC;AAE/D,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAqB,EAAE,CAAC;AAC7C,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAqD,EAAE,CAAC;AACtE,QAAA,IAAA,CAAA,sBAAsB,GAAG,KAAK,CAC5B,EAAE,EACF;AACE,YAAA,KAAK,EAAE,oBAAoB;AAC5B,SAAA,CACF;AACD,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAS,KAAK,CAAC;QAE/B,IAAA,CAAA,wBAAwB,GAAG,EAAE;AAC7B,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,sBAAsB,CAAC;AACpD,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,qBAAqB,CAAC;IAG5D;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,wBAAwB,CAAC,EAAE;YACrC,IAAI,CAAC,eAAe,EAAE;QACxB;AAEA,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;YACrB,IAAI,CAAC,eAAe,EAAE;QACxB;IACF;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,eAAe,EAAE;IACxB;IAEQ,eAAe,GAAA;QACrB,IAAI,CAAC,YAAY,CAAC,GAAG,CACnB,IAAI,CAAC,kBAAkB,CAAC;AACtB,YAAA,KAAK,EAAE;AACL,gBAAA,GAAG,EAAE,OAAO;AACZ,gBAAA,eAAe,EAAE,aAAa;AAC/B,aAAA;AACD,YAAA,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;AAC1B,YAAA,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;AAC3B,YAAA,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;AAC1B,YAAA,SAAS,EAAE;AACT,gBAAA,KAAK,EAAE;oBACL,CAAC,CAAC,EAAE,SAAS,CAAC;oBACd,CAAC,CAAC,EAAE,SAAS,CAAC;AACf,iBAAA;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,OAAO,EAAE,KAAK;AACf,aAAA;AACD,YAAA,WAAW,EAAE;AACX,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,KAAK;AACjB,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA;AACE,oBAAA,IAAI,EAAE,KAAK;AACX,oBAAA,SAAS,EAAE,KAAK;AAChB,oBAAA,MAAM,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;AACxB,oBAAA,WAAW,EAAE,SAAS;AACtB,oBAAA,WAAW,EAAE,CAAC;AACd,oBAAA,MAAM,EAAE;AACN,wBAAA,KAAK,EAAE;AACL,4BAAA,KAAK,EAAE,SAAS;AAChB,4BAAA,WAAW,EAAE,SAAS;AACtB,4BAAA,WAAW,EAAE,CAAC;AACf,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA,CAAC,CACH;IACH;IAEA,eAAe,GAAA;AACb,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;AAChD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE;AAElC,QAAA,IAAI,KAAK,IAAI,UAAU,EAAE,MAAM,EAAE;AAC/B,YAAA,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC;QAClD;IACF;AAEA,IAAA,oBAAoB,CAAC,KAAuB,EAAA;AAC1C,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,eAAe,EAAE;IACxB;+GA1FW,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,oaCzBjC,0dAaA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FDYa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAAA,aAAA,EAGV,iBAAiB,CAAC,IAAI,cACzB,KAAK,EAAA,QAAA,EAAA,0dAAA,EAAA;;0BAkBJ;;;MElCF,wBAAwB,CAAA;AAInC,IAAA,WAAA,CAAmB,QAA0B,EAAA;QAA1B,IAAA,CAAA,QAAQ,GAAR,QAAQ;AAH3B,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAkB,SAAS,EAAE;AAC9C,YAAA,KAAK,EAAE,aAAa;AACrB,SAAA,CAAC;IAC8C;AAChD,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,CAAC,wBAAwB,EAAE;IACjC;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,wBAAwB,EAAE;IACjC;IAEQ,wBAAwB,GAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;AACvB,YAAA,MAAM,IAAI,KAAK,CACb,+FAA+F,CAChG;QACH;IACF;+GAnBW,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAxB,wBAAwB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;;;MCiBY,eAAe,CAAA;AAE1B,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;IAC3C;AACA,IAAA,WAAA,CACS,eAAyC,EACzC,KAAa,EACb,KAAa,EAAA;QAFb,IAAA,CAAA,eAAe,GAAf,eAAe;QACf,IAAA,CAAA,KAAK,GAAL,KAAK;QACL,IAAA,CAAA,KAAK,GAAL,KAAK;QAPd,IAAA,CAAA,QAAQ,GAAG,KAAK;IAQb;AACJ;;MC3BY,gCAAgC,CAAA;AAC3C,IAAA,WAAA,GAAA,EAAe;+GADJ,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAhC,gCAAgC,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAJ5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;;;MCCY,uBAAuB,CAAA;AAClC,IAAA,WAAA,GAAA,EAAe;+GADJ,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAvB,uBAAuB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;;;ACsCK,MAAO,oBACX,SAAQ,WAAW,EAAE,CAAA;AAqBrB,IAAA,WAAA,CACS,cAAiC,EAChC,kBAAyC,EACtB,YAAmC,EAAA;AAE9D,QAAA,KAAK,EAAE;QAJA,IAAA,CAAA,cAAc,GAAd,cAAc;QACb,IAAA,CAAA,kBAAkB,GAAlB,kBAAkB;QAjB5B,IAAA,CAAA,UAAU,GAAG,KAAK,EAAU;AAC5B,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAuB,CAAC,CAAC;QAC1C,IAAA,CAAA,MAAM,GAAG,KAAK,EAAwB;AACtC,QAAA,IAAA,CAAA,qBAAqB,GAAG,KAAK,CAAU,KAAK,CAAC;QAC7C,IAAA,CAAA,qBAAqB,GAAG,MAAM,EAAsC;QAGpE,IAAA,CAAA,wBAAwB,GAAG,gCAAgC;AAE3D,QAAA,IAAA,CAAA,0BAA0B,GAAG,KAAK,CAAU,KAAK,CAAC;AAElD,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAU,KAAK,CAAC;AAC7C,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC;AACjC,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC;AAQ9B,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,mBAAmB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;AACxE,QAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAC5B,YAAY,CAAC,qBAAqB,IAAI,IAAI,CAAC,qBAAqB,EAAE,CACnE;IACH;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,qBAAqB,EAAE;QAC5B,IAAI,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAC1D,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAC3B,oBAAoB,EAAE,CACvB;AAED,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE;YACnE,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACrD;AAEA,QAAA,YAAY,CAAC,SAAS,CAAC,eAAe,IAAG;AACvC,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;gBAC9B,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;AACxC,gBAAA,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC;AAC7C,aAAA,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;YAClC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAG,CAAC;QACtD;AACA,QAAA,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,IAAI,CAAC,qBAAqB,EAAE;QAC9B;IACF;IAEQ,qBAAqB,GAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,UAAU,EAAE;AACnC,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC;QACrC;aAAO,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB;IACF;IAEA,kBAAkB,GAAA;QAChB,IAAI,CAAC,wBAAwB,EAAE;AAE/B,QAAA,IAAI,CAAC,mBAAmB,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACjF,IAAI,CAAC,wBAAwB,EAAE;AACjC,QAAA,CAAC,CAAC;IACJ;IAEA,qBAAqB,GAAA;QACnB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC;IACrE;IAEQ,wBAAwB,GAAA;QAC9B,IAAI,CAAC,gCAAgC,EAAE;AAEvC,QAAA,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,cAAc;AAC/C,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,EAAE;AACnE,YAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACjE;IACF;IAEQ,gCAAgC,GAAA;QACtC,IAAI,CAAC,IAAI,CAAC,mBAAmB;YAAE;AAE/B,QAAA,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,KAAI;YAC5E,MAAM,yBAAyB,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAClE,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,CACnE;AACD,YAAA,QACE,yBAAyB;AACzB,gBAAA,IAAI,eAAe,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AAEjF,QAAA,CAAC,CAAC;IACJ;IAEA,wBAAwB,CAAC,OAAwB,EAAE,mBAAoC,EAAA;QACrF,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,MAAM;AAE9D,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;YAC1B,IAAI,OAAO,CAAC,QAAQ;gBAAE;AACtB,YAAA,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,OAAO,CAAC;AACjD,YAAA,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC;YACxC;QACF;AAEA,QAAA,MAAM,cAAc,GAClB,IAAI,CAAC,SAAS,EAAE,KAAK,UAAU;AAC/B,YAAA,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;aACrC,OAAO,CAAC,QAAQ,IAAI,WAAW,GAAG,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,cAAc;YAAE;AAErB,QAAA,IAAI,OAAO,CAAC,QAAQ,EAAE;AACpB,YAAA,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,OAAO,CAAC;QAClD;aAAO;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,CAAC;AAC7C,YAAA,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC;QAC1C;IACF;AAEA,IAAA,KAAK,CAAC,SAAiB,EAAA;QACrB,IACE,CAAC,IAAI,CAAC,iBAAiB;aACtB,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC7C,SAAS,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAE7C;AACF,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,GAAG,EAAE,CAAC;IAC1E;IAEA,6BAA6B,GAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;AAC3D,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa;AACpD,QAAA,OAAO,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW;IAClD;AAEA,IAAA,cAAc,CAAC,OAAgC,EAAA;AAC7C,QAAA,IAAI,CAAC,OAAO;YAAE;QACd,OAAO,CAAC,cAAc,CAAC;AACrB,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,MAAM,EAAE,QAAQ;AACjB,SAAA,CAAC;IACJ;IAEA,6BAA6B,GAAA;QAC3B,IAAI,CAAC,IAAI,CAAC,iBAAiB;YAAE;AAC7B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa;QACpD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;AAChD,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,KAAK,OAAO,CAAC,WAAW,CAAC;IAC7F;AAlKW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,kFAyBrB,iBAAiB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAzBhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,0BAAA,EAAA,EAAA,iBAAA,EAAA,4BAAA,EAAA,UAAA,EAAA,4BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,6BAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,SAAA,EAHpB,CAAC,iBAAiB,CAAC,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAShB,uBAAuB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,0BAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAOvB,gCAAgC,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAEhC,uBAAuB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,SAAA,EAXpB,wBAAwB,+MC/C3C,qmFA4EA,EAAA,MAAA,EAAA,CAAA,2rGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FDjCa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBARhC,SAAS;+BACE,eAAe,EAAA,aAAA,EAGV,iBAAiB,CAAC,IAAI,aAC1B,CAAC,iBAAiB,CAAC,EAAA,UAAA,EAClB,KAAK,EAAA,QAAA,EAAA,qmFAAA,EAAA,MAAA,EAAA,CAAA,2rGAAA,CAAA,EAAA;;0BA2Bd,MAAM;2BAAC,iBAAiB;yCApB3B,mBAAmB,EAAA,CAAA;sBADlB,eAAe;uBAAC,wBAAwB;gBAEF,oBAAoB,EAAA,CAAA;sBAA1D,YAAY;uBAAC,uBAAuB;gBAMa,iBAAiB,EAAA,CAAA;sBAAlE,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,mBAAmB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAEhD,wBAAwB,EAAA,CAAA;sBADvB,YAAY;uBAAC,gCAAgC;gBAEP,eAAe,EAAA,CAAA;sBAArD,YAAY;uBAAC,uBAAuB;;;MEvC1B,wBAAwB,CAAA;IAQnC,WAAA,CACyC,mBAA2B,EACvC,QAAgB,EAAA;QADJ,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;QAC/B,IAAA,CAAA,QAAQ,GAAR,QAAQ;AATrC,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAU;QAC/B,IAAA,CAAA,KAAK,GAAG,KAAK,EAAsB;AACnC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAoC,QAAQ,CAAC;QAC9D,IAAA,CAAA,OAAO,GAAG,KAAK,EAAsB;AAErC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAqB,SAAS,CAAC;AAMlD,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtF;+GAbW,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EASzB,qBAAqB,EAAA,EAAA,EAAA,KAAA,EACrB,SAAS,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAVR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,ykBCnBrC,8mBAiBA,EAAA,MAAA,EAAA,CAAA,svCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,WAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FDEa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAAA,aAAA,EAGf,iBAAiB,CAAC,IAAI,cACzB,KAAK,EAAA,QAAA,EAAA,8mBAAA,EAAA,MAAA,EAAA,CAAA,svCAAA,CAAA,EAAA;;0BAWd,MAAM;2BAAC,qBAAqB;;0BAC5B,MAAM;2BAAC,SAAS;;;AEAf,MAAO,oBAAqB,SAAQ,WAAW,CAAA;AAsBnD,IAAA,WAAA,CACY,mBAA2C,EAC3C,kBAAyC,EAC7B,cAAkC,EAAA;AAExD,QAAA,KAAK,EAAE;QAJG,IAAA,CAAA,mBAAmB,GAAnB,mBAAmB;QACnB,IAAA,CAAA,kBAAkB,GAAlB,kBAAkB;QACN,IAAA,CAAA,cAAc,GAAd,cAAc;AAxBtC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAqB,EAAE,CAAC;AAC7C,QAAA,IAAA,CAAA,sBAAsB,GAAG,KAAK,CAC5B,EAAE,EACF;AACE,YAAA,KAAK,EAAE,oBAAoB;AAC5B,SAAA,CACF;AACD,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAA+C,EAAE,CAAC;AAEhE,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAA6C,aAAa,CAAC;AAE1E,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAkB,KAAK,CAAC;AACvC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAS,KAAK,CAAC;AAK/B,QAAA,IAAA,CAAA,wBAAwB,GAAG;YACnC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;YAC5C,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;SAC7C;IAOD;AAEA,IAAA,WAAW,CAAC,QAAuB,EAAA;QACjC,IAAI,CAAC,qBAAqB,EAAE;IAC9B;IAEA,kBAAkB,GAAA;QAChB,IAAI,CAAC,iBAAiB,EAAE;IAC1B;IAEQ,iBAAiB,GAAA;QACvB,IACE,CAAC,IAAI,CAAC,aAAa;YACnB,IAAI,CAAC,qBAAqB,KAAK,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,WAAW;YAE3E;QAEF,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,WAAW;QACzE,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE;AAC9B,QAAA,CAAC,CAAC;IACJ;IAEA,qBAAqB,GAAA;QACnB,IAAI,CAAC,YAAY,CAAC,GAAG,CACnB,IAAI,CAAC,kBAAkB,CAAC;YACtB,KAAK,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE;AAC9C,YAAA,WAAW,EAAE;AACX,gBAAA,GAAG,EAAE;AACH,oBAAA,UAAU,EAAE;AACV,wBAAA,OAAO,EAAE,KAAK;AACf,qBAAA;AACD,oBAAA,YAAY,EAAE,IAAI;AAClB,oBAAA,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,KAAK,GAAG,GAAG,GAAG,KAAK;AAClD,iBAAA;AACF,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,OAAO,EAAE,IAAI;gBACb,cAAc,GAAA;AACZ,oBAAA,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,IAAa;AAC3C,oBAAA,MAAM,eAAe,GAAG,WAAW,CAAC,8BAA8B,CAChE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA,CAAA,CAAG,CACrC;oBACD,OAAO,CAAA;AACuC,wDAAA,EAAA,MAAM,CAAC,KAAK,CAAC,CAAA,EAAA,EAAK,eAAe,CAAA;AACnD,sCAAA,EAAA,IAAI,CAAC,IAAI,CAAA;iBAChC;gBACP,CAAC;AACF,aAAA;AACF,SAAA,CAAC,CACH;IACH;AAEA,IAAA,kBAAkB,CAAC,aAA+B,EAAA;AAChD,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa;IACpC;+GAnFW,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAL,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,wzBC7BjC,gdAaA,EAAA,MAAA,EAAA,CAAA,8zBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FDgBa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAAA,aAAA,EAGV,iBAAiB,CAAC,IAAI,cACzB,KAAK,EAAA,QAAA,EAAA,gdAAA,EAAA,MAAA,EAAA,CAAA,8zBAAA,CAAA,EAAA;;0BA2Bd;yCAX2B,YAAY,EAAA,CAAA;sBAAzC,SAAS;uBAAC,iBAAiB;;;MESjB,cAAc,CAAA;+GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,iBAhCvB,qBAAqB;YACrB,oBAAoB;YACpB,qBAAqB;YACrB,oBAAoB;YACpB,wBAAwB;YACxB,wBAAwB;YACxB,oBAAoB;YACpB,gCAAgC;AAChC,YAAA,uBAAuB,aAGvB,YAAY;YACZ,eAAe;YACf,qBAAqB;YACrB,sBAAsB;YACtB,eAAe;YACf,aAAa;AACb,YAAA,eAAe,aAGf,qBAAqB;YACrB,qBAAqB;YACrB,oBAAoB;YACpB,oBAAoB;YACpB,wBAAwB;YACxB,wBAAwB;YACxB,oBAAoB;YACpB,gCAAgC;YAChC,uBAAuB,CAAA,EAAA,CAAA,CAAA;gHAId,cAAc,EAAA,SAAA,EAFd,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,EAAA,OAAA,EAAA,CAnBjD,YAAY;YACZ,eAAe;YACf,qBAAqB;YACrB,sBAAsB;YACtB,eAAe;YACf,aAAa;YACb,eAAe,CAAA,EAAA,CAAA,CAAA;;4FAeN,cAAc,EAAA,UAAA,EAAA,CAAA;kBAlC1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,qBAAqB;wBACrB,oBAAoB;wBACpB,qBAAqB;wBACrB,oBAAoB;wBACpB,wBAAwB;wBACxB,wBAAwB;wBACxB,oBAAoB;wBACpB,gCAAgC;wBAChC,uBAAuB;AACxB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,eAAe;wBACf,qBAAqB;wBACrB,sBAAsB;wBACtB,eAAe;wBACf,aAAa;wBACb,eAAe;AAChB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,qBAAqB;wBACrB,qBAAqB;wBACrB,oBAAoB;wBACpB,oBAAoB;wBACpB,wBAAwB;wBACxB,wBAAwB;wBACxB,oBAAoB;wBACpB,gCAAgC;wBAChC,uBAAuB;AACxB,qBAAA;AACD,oBAAA,SAAS,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC;AACpD,iBAAA;;;AC5CD;MACa,aAAa,CAAA;AACxB,IAAA,OAAO,cAAc,CACnB,IAAS,EACT,aAKC,EAAA;AAED,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACrE,QAAA,IAAI,aAAa,CAAC,OAAO,KAAK,SAAS,EAAE;YACvC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAI;AACpC,gBAAA,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,GAAG;AACnC,YAAA,CAAC,CAAC;QACJ;QAEA,OAAO;YACL,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,KAAK,EAAE,aAAa,CAAC,KAAK;AAC1B,YAAA,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,aAAa,CAAC,OAAO;SAC/B;IACH;AAEA,IAAA,OAAO,iBAAiB,CACtB,IAAS,EACT,aAIC,EAAA;QAED,OAAO;YACL,IAAI,EAAE,aAAa,CAAC,IAAI;AACxB,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtD,OAAO,EAAE,aAAa,CAAC,OAAO;SAC/B;IACH;AACA,IAAA,OAAO,iBAAiB,CACtB,IAA2B,EAC3B,OAIC,EAAA;QAED,OAAO;AACL,YAAA,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI;SACL;IACH;AACD;;AChED;;AAEG;;;;"}