{"version":3,"file":"openmina-shared.mjs","sources":["../../../projects/openmina-shared/src/lib/directives/click-outside.directive.ts","../../../projects/openmina-shared/src/lib/helpers/browser.helper.ts","../../../projects/openmina-shared/src/lib/services/tooltip.service.ts","../../../projects/openmina-shared/src/lib/directives/mina-tooltip.directive.ts","../../../projects/openmina-shared/src/lib/directives/copy-to-clipboard.directive.ts","../../../projects/openmina-shared/src/lib/pipes/plural.pipe.ts","../../../projects/openmina-shared/src/lib/openmina-eager-shared.module.ts","../../../projects/openmina-shared/src/lib/pipes/size.pipe.ts","../../../projects/openmina-shared/src/lib/pipes/truncate-mid.pipe.ts","../../../projects/openmina-shared/src/lib/constants/unit-measurements.ts","../../../projects/openmina-shared/src/lib/helpers/values.helper.ts","../../../projects/openmina-shared/src/lib/pipes/sec-duration.pipe.ts","../../../projects/openmina-shared/src/lib/pipes/thousand.pipe.ts","../../../projects/openmina-shared/src/lib/helpers/date.helper.ts","../../../projects/openmina-shared/src/lib/pipes/readable-date.pipe.ts","../../../projects/openmina-shared/src/lib/pipes/safe-html.pipe.ts","../../../projects/openmina-shared/src/lib/openmina-shared.module.ts","../../../projects/openmina-shared/src/lib/base-classes/manual-detection.class.ts","../../../projects/openmina-shared/src/lib/base-classes/base-store-dispatcher.class.ts","../../../projects/openmina-shared/src/lib/types/shared/table-sort.type.ts","../../../projects/openmina-shared/src/lib/components/mina-table/mina-table.component.ts","../../../projects/openmina-shared/src/lib/components/mina-table/mina-table.component.html","../../../projects/openmina-shared/src/lib/helpers/graph.helper.ts","../../../projects/openmina-shared/src/lib/constants/breakpoint-observer.ts","../../../projects/openmina-shared/src/lib/constants/angular.ts","../../../projects/openmina-shared/src/lib/components/bar-graph/bar-graph.component.ts","../../../projects/openmina-shared/src/lib/components/bar-graph/bar-graph.component.html","../../../projects/openmina-shared/src/lib/components/copy/copy.component.ts","../../../projects/openmina-shared/src/lib/components/copy/copy.component.html","../../../projects/openmina-shared/src/lib/components/flame-time-graph/flame-time-graph-tooltip/flame-time-graph-tooltip.component.ts","../../../projects/openmina-shared/src/lib/components/flame-time-graph/flame-time-graph-tooltip/flame-time-graph-tooltip.component.html","../../../projects/openmina-shared/src/lib/components/flame-time-graph/flame-time-graph/flame-time-graph.component.ts","../../../projects/openmina-shared/src/lib/components/flame-time-graph/flame-time-graph/flame-time-graph.component.html","../../../projects/openmina-shared/src/lib/components/horizontal-menu/horizontal-menu.directive.ts","../../../projects/openmina-shared/src/lib/components/horizontal-menu/horizontal-menu.component.ts","../../../projects/openmina-shared/src/lib/components/horizontal-menu/horizontal-menu.component.html","../../../projects/openmina-shared/src/lib/components/horizontal-resizable-container/horizontal-resize.directive.ts","../../../projects/openmina-shared/src/lib/components/horizontal-resizable-container/horizontal-resizable-container.component.ts","../../../projects/openmina-shared/src/lib/components/horizontal-resizable-container/horizontal-resizable-container.component.html","../../../projects/openmina-shared/src/lib/components/interval-select/interval-select.component.ts","../../../projects/openmina-shared/src/lib/components/interval-select/interval-select.component.html","../../../projects/openmina-shared/src/lib/components/mina-json-viewer/mina-json-viewer.component.ts","../../../projects/openmina-shared/src/lib/components/mina-json-viewer/mina-json-viewer.component.html","../../../projects/openmina-shared/src/lib/components/stepper/stepper.component.ts","../../../projects/openmina-shared/src/lib/components/stepper/stepper.component.html","../../../projects/openmina-shared/src/lib/components/mina-side-panel-stepper/mina-side-panel-stepper.component.ts","../../../projects/openmina-shared/src/lib/components/mina-side-panel-stepper/mina-side-panel-stepper.component.html","../../../projects/openmina-shared/src/lib/helpers/user-input.helper.ts","../../../projects/openmina-shared/src/lib/components/json-console/json-console.component.ts","../../../projects/openmina-shared/src/lib/components/json-console/json-console.component.html","../../../projects/openmina-shared/src/lib/types/core/theme/theme-types.type.ts","../../../projects/openmina-shared/src/lib/types/core/theme/theme-css-category.type.ts","../../../projects/openmina-shared/src/lib/services/theme-switcher.service.ts","../../../projects/openmina-shared/src/lib/services/global-error-handler.service.ts","../../../projects/openmina-shared/src/lib/constants/store-functions.ts","../../../projects/openmina-shared/src/lib/base-classes/mina-base.effect.ts","../../../projects/openmina-shared/src/lib/base-classes/mina-table-wrapper.class.ts","../../../projects/openmina-shared/src/lib/helpers/array.helper.ts","../../../projects/openmina-shared/src/lib/helpers/router.helper.ts","../../../projects/openmina-shared/src/lib/helpers/observable.helper.ts","../../../projects/openmina-shared/src/lib/router/merged-route-serialzer.ts","../../../projects/openmina-shared/src/lib/router/ngrx-router.module.ts","../../../projects/openmina-shared/src/lib/router/router-state.selectors.ts","../../../projects/openmina-shared/src/lib/types/shared/virtual-scroll-active-page.type.ts","../../../projects/openmina-shared/src/lib/types/shared/typed-form.type.ts","../../../projects/openmina-shared/src/public-api.ts","../../../projects/openmina-shared/src/openmina-shared.ts"],"sourcesContent":["import { Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\n\n@Directive({\n    selector: '[clickOutside]',\n    standalone: false\n})\nexport class ClickOutsideDirective {\n\n  @Output() clickOutside: EventEmitter<void> = new EventEmitter<void>();\n\n  @HostListener('document:click', ['$event.target'])\n  onClick(target: HTMLElement): void {\n    const clickedInside = this.elementRef.nativeElement.contains(target);\n    if (!clickedInside) {\n      this.clickOutside.emit();\n    }\n  }\n\n  constructor(private elementRef: ElementRef) { }\n\n}\n","export function isBrowser(): boolean {\n  return typeof window !== 'undefined' && typeof window.document !== 'undefined';\n}\n\nexport function getOrigin(): string {\n  if (isBrowser()) {\n    return window.location.origin;\n  }\n  return '';\n}\n\nexport function safelyExecuteInBrowser<T>(fn: () => T, fallback?: T): void {\n  if (isBrowser()) {\n    try {\n      fn();\n    } catch (error) {\n      console.error('Error executing browser function:', error);\n    }\n  }\n}\n\nexport function getWindow(): Window | null {\n  if (isBrowser()) {\n    return window;\n  }\n  return null;\n}\n\nexport function getLocalStorage(): Storage | null {\n  if (isBrowser()) {\n    return window.localStorage;\n  }\n  return null;\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { ReplaySubject, Subject, take } from 'rxjs';\nimport { DOCUMENT } from '@angular/common';\nimport { MinaTooltipDirective } from '../directives/mina-tooltip.directive';\nimport { getLocalStorage } from '../helpers/browser.helper';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class TooltipService {\n\n  openTooltipsWithClipboardClick: number[] = [];\n  justShowedTooltip: boolean = false;\n  userExitedTooltip: boolean = false;\n  openedTooltips: number = 0;\n  private timeout: any;\n  private popup: HTMLDivElement;\n\n  readonly onTooltipChange$: ReplaySubject<boolean> = new ReplaySubject<boolean>();\n\n  private readonly tooltipDisabledKey: string = 'tooltipDisabled';\n\n  constructor(@Inject(DOCUMENT) private document: Document) {\n    this.setInitialTooltipBehaviour();\n    this.appendTooltipContainerToDOM();\n    this.appendGraphTooltipToDOM();\n  }\n\n  private appendTooltipContainerToDOM(): void {\n    const popup = this.document.createElement('div');\n    popup.setAttribute('id', 'mina-tooltip');\n    this.document.body.appendChild(popup);\n    this.popup = popup;\n  }\n\n  private appendGraphTooltipToDOM(): void {\n    const popup = this.document.createElement('div');\n    popup.setAttribute('id', 'mina-graph-tooltip');\n    this.document.body.appendChild(popup);\n  }\n\n  private setInitialTooltipBehaviour(): void {\n    if (getLocalStorage()?.getItem(this.tooltipDisabledKey) === null) {\n      getLocalStorage()?.setItem(this.tooltipDisabledKey, JSON.stringify(false));\n    }\n  }\n\n  get graphTooltip(): HTMLDivElement {\n    return this.document.getElementById('mina-graph-tooltip') as HTMLDivElement;\n  }\n\n  toggleTooltips(): void {\n    const tooltipDisabled = this.getTooltipDisabledSetting();\n    getLocalStorage()?.setItem(this.tooltipDisabledKey, JSON.stringify(!tooltipDisabled));\n    this.onTooltipChange$.next(!tooltipDisabled);\n  }\n\n  getTooltipDisabledSetting(): boolean {\n    return !!JSON.parse(getLocalStorage()?.getItem(this.tooltipDisabledKey));\n  }\n\n  onTooltipShow(): void {\n    this.openedTooltips++;\n    this.justShowedTooltip = true;\n    this.userExitedTooltip = false;\n    clearTimeout(this.timeout);\n    this.timeout = setTimeout(() => {\n      this.justShowedTooltip = false;\n      this.openedTooltips = 0;\n      if (this.userExitedTooltip) {\n        MinaTooltipDirective.hideTooltip(this.popup);\n      }\n    }, 100);\n  }\n}\n","import { Directive, ElementRef, HostListener, Inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { TooltipService } from '../services/tooltip.service';\n\nconst TOOLTIP_OFFSET = 8;\nconst PX = 'px';\n\nexport enum TooltipPosition {\n  TOP = 'top',\n  BOTTOM = 'bottom',\n  LEFT = 'left',\n  RIGHT = 'right',\n}\n\n@Directive({\n    selector: '[tooltip]',\n    standalone: false\n})\nexport class MinaTooltipDirective implements OnInit, OnDestroy {\n\n  @Input() tooltip: string | number = '';\n  @Input() showDelay: number = 0;\n  @Input() hideDelay: number = 0;\n  @Input() tooltipDisabled: boolean = false;\n  @Input() globalTooltip: boolean = true;\n  @Input() cancelFormatting: boolean = false;\n  @Input() maxWidth: number = 250;\n  @Input() position: TooltipPosition = TooltipPosition.BOTTOM;\n  @Input() html: boolean = true;\n  @Input() noAnimation: boolean = false;\n\n  private popup: HTMLDivElement;\n  private timer: any;\n  private cancelShowing: boolean = false;\n\n  constructor(private el: ElementRef,\n              private tooltipService: TooltipService,\n              @Inject(DOCUMENT) private document: Document) {}\n\n  ngOnInit(): void {\n    this.popup = this.document.getElementById('mina-tooltip') as HTMLDivElement;\n    if (this.globalTooltip) {\n      this.tooltipDisabled = this.tooltipService.getTooltipDisabledSetting() || this.tooltipDisabled;\n    }\n    // this.tooltipService.onTooltipChange$\n    //   .asObservable()\n    //   .pipe(untilDestroyed(this))\n    //   .subscribe(value => this.tooltipDisabled = value);\n  }\n\n  @HostListener('mouseenter')\n  private onMouseEnter(): void {\n    if (this.tooltipDisabled || !this.tooltip) {\n      return;\n    }\n    this.timer = setTimeout(() => {\n      if (!this.cancelShowing) {\n        this.tooltipService.onTooltipShow();\n        MinaTooltipDirective.showTooltip(\n          this.popup,\n          this.el.nativeElement,\n          this.tooltip.toString(),\n          this.maxWidth,\n          this.position,\n          this.html,\n          this.noAnimation,\n        );\n        if (this.cancelFormatting) {\n          this.popup.classList.add('cancel-formatting');\n        }\n      }\n    }, this.showDelay);\n  }\n\n  @HostListener('mouseleave')\n  private onMouseLeave(): void {\n    if (this.timer) {\n      clearTimeout(this.timer);\n    }\n    this.tooltipService.userExitedTooltip = true;\n    if (!this.tooltipService.justShowedTooltip || this.tooltipService.openedTooltips === 1) {\n      setTimeout(() => { MinaTooltipDirective.hideTooltip(this.popup); }, this.hideDelay);\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.cancelShowing = true;\n    MinaTooltipDirective.hideTooltip(this.popup);\n  }\n\n  static showTooltip(popup: HTMLDivElement,\n                     nativeElement: HTMLElement,\n                     message: string,\n                     maxWidth: number,\n                     position: TooltipPosition,\n                     html: boolean = true,\n                     noAnimation: boolean = false): void {\n    if (html) {\n      popup.innerHTML = message;\n    } else {\n      popup.innerText = message;\n    }\n    const boundingClientRect = nativeElement.getBoundingClientRect();\n    let x = boundingClientRect.left + (nativeElement.offsetWidth / 2) - (popup.offsetWidth / 2);\n    let y = boundingClientRect.top + nativeElement.offsetHeight + TOOLTIP_OFFSET;\n    let animationName = '';\n\n    switch (position) {\n      case TooltipPosition.TOP:\n        animationName = TooltipPosition.BOTTOM;\n        y = boundingClientRect.top - popup.offsetHeight - TOOLTIP_OFFSET;\n        if (y < 0) {\n          y = boundingClientRect.top + nativeElement.offsetHeight + TOOLTIP_OFFSET;\n          animationName = TooltipPosition.TOP;\n        }\n        break;\n      case TooltipPosition.BOTTOM:\n        animationName = TooltipPosition.TOP;\n        if ((y + popup.offsetHeight) > window.innerHeight) {\n          y = boundingClientRect.top - popup.offsetHeight - TOOLTIP_OFFSET;\n          animationName = TooltipPosition.BOTTOM;\n        }\n        break;\n      case TooltipPosition.LEFT:\n        animationName = TooltipPosition.RIGHT;\n        x = boundingClientRect.left - popup.offsetWidth - TOOLTIP_OFFSET;\n        y = boundingClientRect.top + (nativeElement.offsetHeight / 2) - (popup.offsetHeight / 2);\n        if (x < 0) {\n          x = boundingClientRect.left + nativeElement.offsetWidth + TOOLTIP_OFFSET;\n          animationName = TooltipPosition.LEFT;\n        }\n        break;\n      case TooltipPosition.RIGHT:\n        animationName = TooltipPosition.LEFT;\n        x = boundingClientRect.left + nativeElement.offsetWidth + TOOLTIP_OFFSET;\n        y = boundingClientRect.top + (nativeElement.offsetHeight / 2) - (popup.offsetHeight / 2);\n        if ((x + popup.offsetWidth) > window.innerWidth) {\n          x = boundingClientRect.left - popup.offsetWidth - TOOLTIP_OFFSET;\n          animationName = TooltipPosition.RIGHT;\n        }\n        break;\n    }\n\n    if ((x + popup.offsetWidth) > window.innerWidth) {\n      x = window.innerWidth - popup.offsetWidth - TOOLTIP_OFFSET;\n    } else if (x < 0) {\n      x = TOOLTIP_OFFSET;\n    }\n\n    popup.style.maxWidth = maxWidth + PX;\n    popup.style.top = y + PX;\n    popup.style.left = x + PX;\n    popup.style.animationName = 'tooltip-' + (noAnimation ? 'no-animation' : ('slide-' + animationName));\n  }\n\n  static hideTooltip(popup: HTMLDivElement): void {\n    if (popup) {\n      popup.setAttribute('style', 'top:-1000px;left-1000px');\n    }\n  }\n}\n","import { Directive, ElementRef, HostListener, Inject, Input, OnInit } from '@angular/core';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { DOCUMENT } from '@angular/common';\nimport { TooltipService } from '../services/tooltip.service';\nimport { MinaTooltipDirective, TooltipPosition } from './mina-tooltip.directive';\n\n@Directive({\n    selector: '[copyToClipboard]',\n    standalone: false\n})\nexport class CopyToClipboardDirective implements OnInit {\n\n  @Input() copyToClipboard: string;\n\n  private popup: HTMLDivElement;\n\n  constructor(private el: ElementRef<HTMLElement>,\n              @Inject(DOCUMENT) private document: Document,\n              private tooltipService: TooltipService,\n              private clipboard: Clipboard) { }\n\n  ngOnInit(): void {\n    this.popup = this.document.getElementById('mina-tooltip') as HTMLDivElement;\n  }\n\n  @HostListener('click', ['$event'])\n  private onClick(event: MouseEvent): void {\n    event.stopPropagation();\n    this.clipboard.copy(this.copyToClipboard);\n    this.tooltipService.openTooltipsWithClipboardClick.push(0);\n    MinaTooltipDirective.showTooltip(this.popup, this.el.nativeElement, 'Copied to clipboard', 250, TooltipPosition.BOTTOM);\n\n    setTimeout(() => {\n      this.tooltipService.openTooltipsWithClipboardClick.pop();\n      if (this.tooltipService.openTooltipsWithClipboardClick.length === 0) {\n        MinaTooltipDirective.hideTooltip(this.popup);\n      }\n    }, 1500);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'plural',\n  standalone: true,\n})\nexport class PluralPipe implements PipeTransform {\n\n  transform(value: number, suffix: string = 's'): string {\n    return value === 1 ? '' : suffix;\n  }\n\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { NgModule } from '@angular/core';\nimport { ClickOutsideDirective } from './directives/click-outside.directive';\nimport { MinaTooltipDirective } from './directives/mina-tooltip.directive';\nimport { CopyToClipboardDirective } from './directives/copy-to-clipboard.directive';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { PluralPipe } from './pipes/plural.pipe';\n\nconst EAGER_MODULES = [\n  OverlayModule,\n  ClipboardModule,\n];\n\nconst EAGER_DIRECTIVES = [\n  ClickOutsideDirective,\n  MinaTooltipDirective,\n  CopyToClipboardDirective,\n];\n\nconst EAGER_PIPES = [\n  PluralPipe,\n];\n\n\n/**\n * @description\n * The role of this module is to eagerly load all shared parts that are also required by AppModule.\n * */\n@NgModule({\n  imports: [\n    ...EAGER_MODULES,\n    ...EAGER_PIPES,\n  ],\n  exports: [\n    ...EAGER_MODULES,\n    ...EAGER_DIRECTIVES,\n    ...EAGER_PIPES,\n  ],\n  declarations: [\n    ...EAGER_DIRECTIVES,\n  ],\n})\nexport class OpenminaEagerSharedModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nconst KB_FACTOR = 1024;\nconst MB_FACTOR = 1048576;\nconst GB_FACTOR = 1073741824;\n\n@Pipe({\n    name: 'size',\n    standalone: false\n})\nexport class SizePipe implements PipeTransform {\n\n  transform(value: number, wrapInHTML: boolean = true): string {\n    if (value < 1000) {\n      return value + ' B';\n    } else if (value < 1000000) {\n      const kb = value / KB_FACTOR;\n      const response = `${SizePipe.addDecimals(kb)} KB`;\n      return wrapInHTML ? `<span class=\"warn\">${response}</span>` : response;\n    } else if (value < 1000000000) {\n      const mb = value / MB_FACTOR;\n      const response = `${SizePipe.addDecimals(mb)} MB`;\n      return wrapInHTML ? `<span class=\"error\">${response}</span>` : response;\n    } else {\n      const gb = value / GB_FACTOR;\n      const response = `${SizePipe.addDecimals(gb)} GB`;\n      return wrapInHTML ? `<span class=\"error\">${response}</span>` : response;\n    }\n  }\n\n  private static addDecimals(num: number): string {\n    const decimals = num >= 10 ? (num >= 100 ? 0 : 1) : 2;\n    return num.toFixed(decimals);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'truncateMid',\n    standalone: false\n})\nexport class TruncateMidPipe implements PipeTransform {\n\n  transform(value: string, firstSlice: number = 6, secondSlice: number = 6): string {\n    if (!value) {\n      return '';\n    }\n    return value.length > (firstSlice + secondSlice) ? value.slice(0, firstSlice) + '...' + value.slice(value.length - secondSlice) : value;\n  }\n\n}\n","// @formatter:off\n\n\n// numbers\nexport const ONE_THOUSAND = 1e3;\nexport const ONE_MILLION  = 1e6;\nexport const ONE_BILLION  = 1e9;\nexport const TEN_BILLIONS = 1e10;\n\n// factors\nexport const MILLISEC_IN_1_SEC = ONE_THOUSAND;\nexport const MICROSEC_IN_1_SEC = ONE_MILLION;\nexport const NANOSEC_IN_1_SEC  = ONE_BILLION;\n\n// times in nanoseconds\nexport const ONE_HUNDRED_MS    = 1e8;\n","import { getWindow } from './browser.helper';\n\nexport const hasValue = (value: any): boolean => {\n  return value !== undefined && value !== null;\n}\n\nexport function any(arg: any): any {\n  return arg as any;\n}\n\nexport const isMobile = (): boolean => getWindow()?.innerWidth <= 768;\nexport const isDesktop = (): boolean => !isMobile();\n\nexport const nanOrElse = (value: number, replacement: number | string | null | undefined): any => {\n  if (isNaN(value)) {\n    return replacement;\n  }\n  return value;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { MICROSEC_IN_1_SEC, MILLISEC_IN_1_SEC, NANOSEC_IN_1_SEC } from '../constants/unit-measurements';\nimport { formatNumber } from '@angular/common';\nimport { hasValue } from '../helpers/values.helper';\n\ninterface SecDurationConfigDefinition {\n  severe: number;\n  warn: number;\n  default: number;\n  color: boolean;\n  onlySeconds: boolean;\n  undefinedAlternative: string | number | undefined;\n  includeMinutes: boolean;\n  /**\n   * If true, include minutes is also mandatory!\n   */\n  includeHours: boolean;\n  colors: [string, string, string];\n  valueIsZeroFn: () => string;\n}\n\nexport type SecDurationConfig = Partial<SecDurationConfigDefinition>;\nexport const SEC_CONFIG_DEFAULT_PALETTE: [string, string, string] = ['warn', 'orange', 'error'];\nexport const SEC_CONFIG_GRAY_PALETTE: [string, string, string] = ['tertiary', 'secondary', 'primary'];\n\nconst baseConfig: SecDurationConfig = {\n  severe: 1,\n  warn: 0.3,\n  default: 0.1,\n  color: false,\n  onlySeconds: false,\n  includeMinutes: false,\n  includeHours: false,\n  colors: SEC_CONFIG_DEFAULT_PALETTE,\n  valueIsZeroFn: null,\n};\n\n@Pipe({\n    name: 'secDuration',\n    standalone: false\n})\nexport class SecDurationPipe implements PipeTransform {\n\n  /**\n   * @param value - number in seconds\n   * @param config - configuration object\n   * */\n  transform(value: number, config: SecDurationConfig = baseConfig): string | number {\n    let response;\n\n    if (!value) {\n      if (value === 0) {\n        if (config.valueIsZeroFn) {\n          return config.valueIsZeroFn();\n        }\n        return `${value}s`;\n      } else {\n        return config.undefinedAlternative !== undefined ? config.undefinedAlternative : value;\n      }\n    }\n\n    if ((value >= 1 && !config.includeMinutes) || (config.includeMinutes && value < 60 && value >= 1) || config.onlySeconds || value < 0) {\n      response = SecDurationPipe.format(value) + 's';\n    } else if (value >= 60 && config.includeMinutes) {\n      if (config.includeHours && value >= 3600) {\n        response = formatNumber(value / 3600, 'en-US', '1.0-0') + 'h';\n      } else {\n        response = formatNumber(value / 60, 'en-US', '1.0-0') + 'm';\n      }\n    } else if (value >= 0.001) {\n      response = SecDurationPipe.format(value * MILLISEC_IN_1_SEC) + 'ms';\n    } else if (value >= 0.000001) {\n      response = SecDurationPipe.format(value * MICROSEC_IN_1_SEC) + 'μs';\n    } else {\n      response = SecDurationPipe.format(value * NANOSEC_IN_1_SEC) + 'ns';\n    }\n\n    if (!config.color) {\n      return response;\n    } else if (!hasValue(config.colors)) {\n      config.colors = SEC_CONFIG_DEFAULT_PALETTE;\n    }\n\n    if (value >= config.severe) {\n      return `<span class=\"${config.colors[2]}\">${response}</span>`;\n    } else if (value >= config.warn) {\n      return `<span class=\"${config.colors[1]}\">${response}</span>`;\n    } else if (value >= config.default) {\n      return `<span class=\"${config.colors[0]}\">${response}</span>`;\n    }\n    return response;\n  }\n\n  private static format(value: number): string {\n    return formatNumber(value, 'en-US', '1.0-2');\n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ONE_MILLION, ONE_THOUSAND } from '../constants/unit-measurements';\n\n@Pipe({\n    name: 'thousand',\n    standalone: false\n})\nexport class ThousandPipe implements PipeTransform {\n\n  transform(value: number): string | number {\n    if (value >= ONE_MILLION) {\n      return (value / ONE_MILLION).toFixed(0) + 'm';\n    } else if (value >= ONE_THOUSAND) {\n      return (value / ONE_THOUSAND).toFixed(0) + 'k';\n    }\n    return value;\n  }\n\n}\n","import { formatDate } from '@angular/common';\n\nfunction convertToReadableDate(value: number | string, format: string = 'HH:mm:ss.SSS, dd MMM yy'): string {\n  return formatDate(value, format, 'en-US');\n}\n\nexport const toReadableDate = (value: number | string, format?: string): string => convertToReadableDate(value, format);\nexport const noMillisFormat = 'HH:mm:ss, dd MMM yy';\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ONE_MILLION } from '../constants/unit-measurements';\nimport { toReadableDate } from '../helpers/date.helper';\n\n@Pipe({\n    name: 'readableDate',\n    standalone: false\n})\nexport class ReadableDatePipe implements PipeTransform {\n  transform(value: number, format?: string): string {\n    if (value > 1e13) {\n      value = value / ONE_MILLION;\n    }\n\n    return value ? toReadableDate(value, format) : '-';\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n    name: 'safeHtml',\n    standalone: false\n})\nexport class SafeHtmlPipe implements PipeTransform {\n\n  constructor(protected sanitizer: DomSanitizer) { }\n\n  transform(value: string): SafeHtml {\n    return this.sanitizer.bypassSecurityTrustHtml(value);\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { OpenminaEagerSharedModule } from './openmina-eager-shared.module';\nimport { SizePipe } from './pipes/size.pipe';\nimport { TruncateMidPipe } from './pipes/truncate-mid.pipe';\nimport { SecDurationPipe } from './pipes/sec-duration.pipe';\nimport { ThousandPipe } from './pipes/thousand.pipe';\nimport { ReadableDatePipe } from './pipes/readable-date.pipe';\nimport { PluralPipe } from './pipes/plural.pipe';\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\n\nconst PIPES = [\n  SizePipe,\n  TruncateMidPipe,\n  SecDurationPipe,\n  ThousandPipe,\n  ReadableDatePipe,\n  SafeHtmlPipe,\n];\n\nconst MODULES = [\n  OpenminaEagerSharedModule,\n];\n\n@NgModule({\n  declarations: [\n    ...PIPES,\n  ],\n  imports: [\n    ...MODULES,\n  ],\n  exports: [\n    ...MODULES,\n    ...PIPES,\n  ]\n})\nexport class OpenminaSharedModule {}\n","import { ChangeDetectorRef, inject } from '@angular/core';\n\nexport abstract class ManualDetection {\n\n  private changeDetectorRef: ChangeDetectorRef = inject<ChangeDetectorRef>(ChangeDetectorRef);\n\n  detect(): void {\n    this.changeDetectorRef.detectChanges();\n  };\n\n  mark(): void {\n    this.changeDetectorRef.markForCheck();\n  }\n}\n","import { Action, Store } from '@ngrx/store';\nimport { Directive, inject, OnDestroy } from '@angular/core';\nimport { ManualDetection } from './manual-detection.class';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { Observable, OperatorFunction } from 'rxjs';\nimport { FeatureAction } from '../types/store/feature-action.type';\n\n@UntilDestroy()\n@Directive()\nexport abstract class BaseStoreDispatcher<State> extends ManualDetection implements OnDestroy {\n\n  protected store: Store<State> = inject<Store<State>>(Store<State>);\n\n  protected dispatch<Action extends FeatureAction<any>, P>(actionClass: new (payload?: P) => any, payload?: P): void {\n    this.store.dispatch<Action>(new actionClass(payload));\n  }\n\n  protected dispatch2(action: Action): void {\n    this.store.dispatch(action);\n  }\n\n  protected select$<T>(mapFn: (state: State) => T): Observable<T> {\n    return this.store.select<T>(mapFn).pipe(untilDestroyed(this));\n  }\n\n  protected select<S>(mapFn: (state: State) => S, callback: (result: S) => void): void;\n  protected select<S, R1>(mapFn: (state: State) => S, callback: (result: R1) => void, op1?: OperatorFunction<S, R1>): void;\n  protected select<S, R1, R2>(mapFn: (state: State) => S, callback: (result: R2) => void, op1?: OperatorFunction<S, R1>, op2?: OperatorFunction<R1, R2>): void;\n  protected select<S, R1, R2, R3>(mapFn: (state: State) => S, callback: (result: R3) => void, op1?: OperatorFunction<S, R1>, op2?: OperatorFunction<R1, R2>, op3?: OperatorFunction<R2, R3>): void;\n  protected select<S, R1, R2, R3, R4>(mapFn: (state: State) => S, callback: (result: R4) => void, op1?: OperatorFunction<S, R1>, op2?: OperatorFunction<R1, R2>, op3?: OperatorFunction<R2, R3>, op4?: OperatorFunction<R3, R4>): void;\n  protected select<S, R1, R2, R3, R4, R5>(mapFn: (state: State) => S, callback: (result: R5) => void, op1?: OperatorFunction<S, R1>, op2?: OperatorFunction<R1, R2>, op3?: OperatorFunction<R2, R3>, op4?: OperatorFunction<R3, R4>, op5?: OperatorFunction<R4, R5>): void;\n  protected select<S, R1, R2, R3, R4, R5, R6>(mapFn: (state: State) => S, callback: (result: R6) => void, op1?: OperatorFunction<S, R1>, op2?: OperatorFunction<R1, R2>, op3?: OperatorFunction<R2, R3>, op4?: OperatorFunction<R3, R4>, op5?: OperatorFunction<R4, R5>, op6?: OperatorFunction<R5, R6>): void;\n  protected select<S, R1, R2, R3, R4, R5, R6, R7>(mapFn: (state: State) => S, callback: (result: R7) => void, op1?: OperatorFunction<S, R1>, op2?: OperatorFunction<R1, R2>, op3?: OperatorFunction<R2, R3>, op4?: OperatorFunction<R3, R4>, op5?: OperatorFunction<R4, R5>, op6?: OperatorFunction<R5, R6>, op7?: OperatorFunction<R6, R7>): void;\n  protected select<S, R1, R2, R3, R4, R5, R6, R7, R8>(mapFn: (state: State) => S, callback: (result: R8) => void, op1?: OperatorFunction<S, R1>, op2?: OperatorFunction<R1, R2>, op3?: OperatorFunction<R2, R3>, op4?: OperatorFunction<R3, R4>, op5?: OperatorFunction<R4, R5>, op6?: OperatorFunction<R5, R6>, op7?: OperatorFunction<R6, R7>, op8?: OperatorFunction<R7, R8>): void;\n  protected select<S, R1, R2, R3, R4, R5, R6, R7, R8, R9>(mapFn: (state: State) => S, callback: (result: R9) => void, op1?: OperatorFunction<S, R1>, op2?: OperatorFunction<R1, R2>, op3?: OperatorFunction<R2, R3>, op4?: OperatorFunction<R3, R4>, op5?: OperatorFunction<R4, R5>, op6?: OperatorFunction<R5, R6>, op7?: OperatorFunction<R6, R7>, op8?: OperatorFunction<R7, R8>, op9?: OperatorFunction<R8, R9>): void;\n  protected select<S, R1, R2, R3, R4, R5, R6, R7, R8, R9, R10>(mapFn: (state: State) => S, callback: (result: R10) => void, op1?: OperatorFunction<S, R1>, op2?: OperatorFunction<R1, R2>, op3?: OperatorFunction<R2, R3>, op4?: OperatorFunction<R3, R4>, op5?: OperatorFunction<R4, R5>, op6?: OperatorFunction<R5, R6>, op7?: OperatorFunction<R6, R7>, op8?: OperatorFunction<R7, R8>, op9?: OperatorFunction<R8, R9>, op10?: OperatorFunction<R9, R10>): void {\n\n    let result$: Observable<any> = this.store.select<S>(mapFn);\n\n    if (op1) {\n      result$ = result$.pipe(op1) as Observable<R1>;\n      if (op2) {\n        result$ = result$.pipe(op2) as Observable<R2>;\n        if (op3) {\n          result$ = result$.pipe(op3) as Observable<R3>;\n          if (op4) {\n            result$ = result$.pipe(op4) as Observable<R4>;\n            if (op5) {\n              result$ = result$.pipe(op5) as Observable<R5>;\n              if (op6) {\n                result$ = result$.pipe(op6) as Observable<R6>;\n                if (op7) {\n                  result$ = result$.pipe(op7) as Observable<R7>;\n                  if (op8) {\n                    result$ = result$.pipe(op8) as Observable<R8>;\n                    if (op9) {\n                      result$ = result$.pipe(op9) as Observable<R9>;\n                      if (op10) { result$ = result$.pipe(op10) as Observable<R10>;}\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n\n    result$.pipe(untilDestroyed(this)).subscribe((result: R10) => callback(result));\n  }\n\n  ngOnDestroy(): void {}\n}\n","export interface TableSort<T> {\n  sortBy: keyof T;\n  sortDirection: SortDirection.ASC | SortDirection.DSC;\n}\n\nexport enum SortDirection {\n  ASC = 'ascending',\n  DSC = 'descending'\n}\n","import {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  Inject,\n  TemplateRef,\n  ViewChild,\n} from '@angular/core';\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { untilDestroyed } from '@ngneat/until-destroy';\nimport { debounceTime } from 'rxjs';\nimport { CommonModule, DOCUMENT } from '@angular/common';\nimport { BaseStoreDispatcher } from '../../base-classes/base-store-dispatcher.class';\nimport { TableColumnList } from '../../types/shared/table-head-sorting.type';\nimport { SortDirection, TableSort } from '../../types/shared/table-sort.type';\nimport { hasValue, isMobile } from '../../helpers/values.helper';\nimport { OpenminaEagerSharedModule } from '../../openmina-eager-shared.module';\nimport { ActionCreator, Action } from '@ngrx/store';\n\nconst DESKTOP_ROW_HEIGHT = 36;\n\n@Component({\n    imports: [OpenminaEagerSharedModule, CommonModule],\n    selector: 'mina-table',\n    templateUrl: './mina-table.component.html',\n    styleUrls: ['./mina-table.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: { class: 'h-100 flex-column' }\n})\nexport class MinaTableComponent<T extends object> extends BaseStoreDispatcher<any> implements AfterViewInit {\n\n  rowSize: number = DESKTOP_ROW_HEIGHT;\n  isMobile: boolean;\n\n  rows: T[] = [];\n  activeRow: T;\n  tableHeads: TableColumnList<T>;\n  rowTemplate: TemplateRef<{ row: T, i: number }>;\n  currentSort: TableSort<T>;\n  thGroupsTemplate: TemplateRef<void>;\n  propertyForActiveCheck: keyof T;\n  gridTemplateColumns: Array<number | 'auto' | '1fr'> = [];\n  minWidth: number;\n  sortClz: new (payload: TableSort<T>) => { type: string, payload: TableSort<T> };\n  sortAction: ActionCreator<string, (props: { sort: TableSort<T>; }) => { sort: TableSort<T>; } & Action<string>>;\n  sortSelector: (state: any) => TableSort<T>;\n  rowClickCallback: (row: T) => void;\n  trackByFn: (index: number, row: T) => any = (index: number, row: T) => row;\n\n  tableLevel: number = 1;\n\n  @ViewChild(CdkVirtualScrollViewport) private vs: CdkVirtualScrollViewport;\n  @ViewChild('toTop') private toTop: ElementRef<HTMLDivElement>;\n  private hiddenToTop: boolean = true;\n\n  constructor(@Inject(DOCUMENT) private document: Document,\n              private el: ElementRef) { super(); }\n\n  init(): void {\n    this.minWidth = this.minWidth || this.gridTemplateColumns.reduce<number>((acc: number, curr: number | string) => acc + Number(curr), 0);\n    this.addGridTemplateColumnsInCssFile();\n    this.listenToSortingChanges();\n    this.detect();\n  }\n\n  ngAfterViewInit(): void {\n    this.listenToScrolling();\n    this.positionToTop();\n  }\n\n  private addGridTemplateColumnsInCssFile(): void {\n    let value = `mina-table #table${this.tableLevel}.mina-table .row{grid-template-columns:`;\n    this.gridTemplateColumns.forEach(v => value += typeof v === 'number' ? `${v}px ` : `${v} `);\n    this.document.getElementById('table-style' + this.tableLevel).textContent = value + '}';\n  }\n\n  sortTable(sortBy: string | keyof T): void {\n    const sortDirection = sortBy !== this.currentSort.sortBy\n      ? this.currentSort.sortDirection\n      : this.currentSort.sortDirection === SortDirection.ASC ? SortDirection.DSC : SortDirection.ASC;\n    const sort = { sortBy: sortBy as keyof T, sortDirection };\n    if (this.sortClz) {\n      this.dispatch(this.sortClz, sort);\n    } else if (this.sortAction) {\n      this.dispatch2(this.sortAction({ sort }));\n    }\n  }\n\n  scrollToTop(): void {\n    this.vs.scrollToIndex(0, 'smooth');\n    this.toTop.nativeElement.classList.add('hide');\n    this.hiddenToTop = true;\n  }\n\n  scrollToElement(rowFinder: (row: T) => boolean): void {\n    const topElements = Math.round(this.vs.elementRef.nativeElement.offsetHeight / 2 / this.rowSize) - 3;\n    const jobIndex = this.rows.findIndex(rowFinder);\n    this.vs.scrollToIndex(jobIndex - topElements);\n  }\n\n  get virtualScroll(): CdkVirtualScrollViewport {\n    return this.vs;\n  }\n\n  private listenToScrolling(): void {\n    this.vs.scrolledIndexChange\n      .pipe(debounceTime(this.hiddenToTop ? 200 : 0), untilDestroyed(this))\n      .subscribe(index => {\n        if (index === 0) {\n          this.toTop.nativeElement.classList.add('hide');\n        } else {\n          this.toTop.nativeElement.classList.remove('hide');\n        }\n        this.hiddenToTop = index === 0;\n      });\n  }\n\n  private listenToSortingChanges(): void {\n    if (!this.sortSelector) return;\n    this.select(this.sortSelector, (sort: TableSort<T>) => {\n      this.currentSort = sort;\n      this.detect();\n    });\n  }\n\n  checkViewport(isMobile: boolean): void {\n    if (this.isMobile !== isMobile) {\n      this.isMobile = isMobile;\n      this.rowSize = isMobile ? (26 * this.tableHeads.length + 10) : DESKTOP_ROW_HEIGHT;\n      this.vs?.checkViewportSize();\n      this.detect();\n    }\n  }\n\n  private positionToTop(): void {\n    if (!isMobile()) {\n      return;\n    }\n    const rect = this.el.nativeElement.getBoundingClientRect();\n\n    this.toTop.nativeElement.style.top = `${rect.top + rect.height - 60}px`;\n    this.toTop.nativeElement.style.left = `${rect.left + rect.width - 60}px`;\n  }\n\n  onVsClick(event: MouseEvent): void {\n    let target = event.target as any;\n    let idx: number = null;\n    while (target && target.getAttribute) {\n      let attrValue = target.getAttribute('idx');\n      if (attrValue) {\n        attrValue = Number(attrValue);\n        idx = attrValue;\n      }\n      if (hasValue(idx) || target === this.vs.elementRef.nativeElement) {\n        break;\n      }\n      target = target.parentElement;\n    }\n\n    if (hasValue(idx)) {\n      this.rowClickCallback(this.rows[idx]);\n    }\n  }\n}\n","<div [id]=\"'table' + tableLevel\" class=\"mina-table overflow-x-auto h-100\">\n  <ng-container *ngIf=\"!isMobile\">\n    <ng-container *ngTemplateOutlet=\"thGroupsTemplate\"></ng-container>\n    <div class=\"row head sorting pr-12\" *ngIf=\"currentSort; else noSort\">\n      <span *ngFor=\"let th of tableHeads; let i=index\"\n            (click)=\"sortTable(th.sort ?? th.name)\"\n            [class.active]=\"currentSort.sortBy === (th.sort ?? th.name)\"\n            [class.p-relative]=\"th.tooltip\"\n            class=\"pointer\">\n        {{ th.name }}\n        <span [class.flip]=\"currentSort.sortDirection === 'descending'\"\n              [class.show]=\"currentSort.sortBy === (th.sort ?? th.name)\"\n              class=\"mina-icon f-18 icon-200\">arrow_upward\n        </span>\n        <span *ngIf=\"th.tooltip\" class=\"p-absolute w-100 h-100\" [tooltip]=\"th.tooltip\" [maxWidth]=\"400\"></span>\n      </span>\n    </div>\n    <ng-template #noSort>\n      <div class=\"row head pr-12\">\n        <span *ngFor=\"let th of tableHeads\">{{ th.name }}</span>\n      </div>\n    </ng-template>\n  </ng-container>\n  <cdk-virtual-scroll-viewport *ngIf=\"!isMobile\" class=\"border-bottom overflow-y-scroll h-minus-lg\"\n                               (click)=\"onVsClick($event)\"\n                               [ngClass]=\"'h-minus-lg' + (thGroupsTemplate ? '-doubled' : '')\"\n                               [style.min-width.px]=\"minWidth\"\n                               [itemSize]=\"rowSize\">\n    <div *cdkVirtualFor=\"let row of rows; let i=index; trackBy: trackByFn\"\n         [class.active]=\"activeRow && (propertyForActiveCheck ? activeRow[propertyForActiveCheck] === row[propertyForActiveCheck] : activeRow === row)\"\n         [class.row-even]=\"i % 2 === 0\"\n         [attr.idx]=\"i\"\n         class=\"row\">\n      <ng-container *ngTemplateOutlet=\"rowTemplate; context: { row, i }\"></ng-container>\n    </div>\n  </cdk-virtual-scroll-viewport>\n\n  <cdk-virtual-scroll-viewport *ngIf=\"isMobile\" class=\"h-100 w-100 overflow-y-scroll mt-5 mb-5\"\n                               (click)=\"onVsClick($event)\"\n                               [itemSize]=\"rowSize\">\n    <div *cdkVirtualFor=\"let row of rows; let i=index; trackBy: trackByFn\"\n         [class.active]=\"activeRow && (propertyForActiveCheck ? activeRow[propertyForActiveCheck] === row[propertyForActiveCheck] : activeRow === row)\"\n         [class.row-even]=\"i % 2 === 0\"\n         [attr.idx]=\"i\"\n         class=\"row\">\n      <div class=\"mob-row\">\n        <div class=\"th\">\n          <span *ngFor=\"let header of tableHeads\">{{ header.name }}</span>\n        </div>\n        <div class=\"td\">\n          <ng-container *ngTemplateOutlet=\"rowTemplate; context: { row, i }\"></ng-container>\n        </div>\n      </div>\n    </div>\n  </cdk-virtual-scroll-viewport>\n\n  <div #toTop [class.opacity-0]=\"!rows.length\" class=\"hide to-top bg-surface-top border-rad-6\" (click)=\"scrollToTop()\">\n    <button class=\"h-lg w-lg btn-primary fx-row-full-cent\">\n      <span class=\"mina-icon f-22 icon-200\">last_page</span>\n    </button>\n  </div>\n</div>\n","export const getXTicks = (series: any[], ticksCount: number, xProperty: string): string[] => {\n  const xTicks = [];\n  const delta = Math.floor(series.length / ticksCount);\n  for (let i = 0; i <= series.length; i = i + delta) {\n    if (series[i]) {\n      xTicks.push(series[i][xProperty]);\n    }\n  }\n  return xTicks;\n};\n\n/**\n * Instantiates a new instance of the NiceScale class.\n * Calculate and update values for tick spacing and nice\n * minimum and maximum data points on the axis.\n */\nexport function niceYScale(min: number, max: number, maxTicks: number): [tickSpacing: number, niceMax: number, niceMin: number] {\n  const minPoint = min;\n  const maxPoint = max;\n  const range = niceNum(maxPoint - minPoint, false);\n  const tickSpacing = niceNum(range / (maxTicks - 1), true);\n  const niceMin = Math.floor(minPoint / tickSpacing) * tickSpacing;\n  const niceMax = Math.ceil(maxPoint / tickSpacing) * tickSpacing;\n  return [tickSpacing, niceMax, niceMin];\n}\n\n/**\n * Returns a \"nice\" number approximately equal to range Rounds\n * the number if round = true Takes the ceiling if round = false.\n *  localRange the data range\n *  round whether to round the result\n *  a \"nice\" number to be used for the data range\n */\nfunction niceNum(localRange: number, round: boolean): number {\n  /** exponent of localRange */\n  let exponent: number;\n  /** fractional part of localRange */\n  let fraction: number;\n  /** nice, rounded fraction */\n  let niceFraction: number;\n\n  exponent = Math.floor(Math.log10(localRange));\n  fraction = localRange / Math.pow(10, exponent);\n\n  if (round) {\n    if (fraction < 1.5)\n      niceFraction = 1;\n    else if (fraction < 3)\n      niceFraction = 2;\n    else if (fraction < 7)\n      niceFraction = 5;\n    else\n      niceFraction = 10;\n  } else {\n    if (fraction <= 1)\n      niceFraction = 1;\n    else if (fraction <= 2)\n      niceFraction = 2;\n    else if (fraction <= 5)\n      niceFraction = 5;\n    else\n      niceFraction = 10;\n  }\n\n  return niceFraction * Math.pow(10, exponent);\n}\n","export const MIN_WIDTH_1600 = '(min-width: 1600px)';\nexport const MIN_WIDTH_1200 = '(min-width: 1200px)';\nexport const MIN_WIDTH_1100 = '(min-width: 1100px)';\nexport const MIN_WIDTH_700 = '(min-width: 700px)';\nexport const MAX_WIDTH_700 = '(max-width: 700px)';\n","import { Input } from '@angular/core';\n\nexport const REQUIRED: Pick<Input, 'required'> = { required: true };\n","import {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild,\n  ViewContainerRef,\n} from '@angular/core';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { BreakpointObserver, BreakpointState } from '@angular/cdk/layout';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport { ManualDetection } from '../../base-classes/manual-detection.class';\nimport { getXTicks, niceYScale } from '../../helpers/graph.helper';\nimport { MAX_WIDTH_700 } from '../../constants/breakpoint-observer';\nimport { OpenminaEagerSharedModule } from '../../openmina-eager-shared.module';\nimport { REQUIRED } from '../../constants/angular';\n\nclass ChartColumn {\n  name: string;\n  value: number;\n  range: string;\n  step: number;\n}\n\n@UntilDestroy()\n@Component({\n    imports: [OpenminaEagerSharedModule, CommonModule],\n    selector: 'mina-bar-graph',\n    templateUrl: './bar-graph.component.html',\n    styleUrls: ['./bar-graph.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: { class: 'h-100 mt-10 pt-12 flex-column' }\n})\nexport class BarGraphComponent extends ManualDetection implements OnInit, AfterViewInit, OnChanges, OnDestroy {\n\n  @Input(REQUIRED) values: number[] = [];\n  @Input() xStep: number;\n  @Input() yAxisValues: number[] = [];\n  @Input() xTicksLength: number = 20;\n  @Input() yTicksLength: number = 10;\n  @Input() um: string;\n  @Input() yAxisLabel: string;\n  @Input() decimals: number = 1;\n  @Input() responsive: boolean = true;\n  @Input() color: string = 'var(--base-secondary)';\n  @Input() xTicksSkipper: number = 1;\n\n  chartColumns: ChartColumn[];\n  ticks: Observable<string[]>;\n  maxHeight: number;\n\n  @ViewChild('tooltipTemplate') private tooltipTemplate: TemplateRef<{ count: number, range: string }>;\n  @ViewChild('columnContainer') private columnContainer: ElementRef<HTMLDivElement>;\n\n  private bars: number[];\n  private overlayRef: OverlayRef;\n  private initialXTicksLength: number;\n  private xTicksValues$: BehaviorSubject<string[]> = new BehaviorSubject<string[]>([]);\n  private internalXStep: number;\n\n  constructor(private breakpointObserver: BreakpointObserver,\n              private viewContainerRef: ViewContainerRef,\n              private overlay: Overlay) { super(); }\n\n  ngOnInit(): void {\n    this.initialXTicksLength = this.xTicksLength;\n    this.bars = this.getBars;\n    this.chartColumns = this.initChartColumns();\n    this.xTicksValues$.next(this.xTicks);\n    this.ticks = this.xTicksValues$.asObservable();\n    this.listenToResizeEvent();\n    this.update();\n  }\n\n  ngAfterViewInit(): void {\n    this.maxHeight = this.columnContainer.nativeElement.offsetHeight;\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (this.bars && changes['values']?.currentValue !== changes['values']?.previousValue) {\n      this.update();\n    }\n  }\n\n  private initChartColumns(): ChartColumn[] {\n    const map = new Map<number, { value: number, range: string }>();\n\n    this.bars.forEach((curr: number, i: number) => {\n      const value = {\n        value: 0,\n        range: i === this.bars.length - 1\n          ? `> ${curr.toFixed(this.decimals)}${this.um}`\n          : `${curr.toFixed(this.decimals)}${this.um} - ${(curr + this.internalXStep).toFixed(this.decimals)}${this.um}`,\n      };\n      map.set(curr, value);\n    });\n\n    const chartColumns = [];\n    for (const [key, value] of map.entries()) {\n      chartColumns.push({\n        name: Number(key).toFixed(this.decimals) + this.um,\n        value: value.value,\n        range: value.range,\n        step: Number(Number(key).toFixed(this.decimals)),\n      } as ChartColumn);\n    }\n    return chartColumns;\n  }\n\n  public update(): void {\n    this.chartColumns.forEach(col => col.value = 0);\n    this.values.forEach(time => {\n      const column = this.findClosestSmallerStep(time);\n      column.value++;\n    });\n    this.yAxisValues = this.yTicks;\n    this.maxHeight = this.columnContainer?.nativeElement.offsetHeight;\n  }\n\n  private get xTicks(): string[] {\n    return getXTicks(this.chartColumns, Math.min(this.chartColumns.length, this.xTicksLength), 'name');\n  }\n\n  private get getBars(): number[] {\n    this.internalXStep = this.xStep;\n    const res = [0];\n    let i = this.xStep;\n    while (i <= this.xTicksLength * this.xStep) {\n      res.push(i);\n      i = i + this.xStep;\n    }\n    return res;\n    //get steps and ticks automatically\n    // const [xStep, yMaxTick] = niceYScale(0, 30, this.xTicksLength);\n    // this.internalXStep = xStep;\n    // const xTicks = [];\n    //\n    // for (let i = 0; i <= yMaxTick; i += xStep) {\n    //   xTicks.push(i);\n    // }\n    // return xTicks;\n  }\n\n  private findClosestSmallerStep(value: number): ChartColumn {\n    let closest = null;\n    for (const item of this.chartColumns) {\n      if (item.step <= value) {\n        closest = item;\n      } else {\n        return closest;\n      }\n    }\n    return closest;\n  }\n\n  private listenToResizeEvent(): void {\n    if (!this.responsive) {\n      return;\n    }\n    this.breakpointObserver\n      .observe(MAX_WIDTH_700)\n      .pipe(untilDestroyed(this))\n      .subscribe((value: BreakpointState) => {\n        if (value.breakpoints[MAX_WIDTH_700]) {\n          this.xTicksLength = this.initialXTicksLength;\n        } else {\n          this.xTicksLength = 6;\n        }\n        this.xTicksValues$.next(this.xTicks);\n      });\n  }\n\n  openDetailsOverlay(column: ChartColumn, event: MouseEvent): void {\n    this.detachOverlay();\n\n    this.overlayRef = this.overlay.create({\n      hasBackdrop: false,\n      scrollStrategy: this.overlay.scrollStrategies.close(),\n      positionStrategy: this.overlay.position()\n        .flexibleConnectedTo(event.target as HTMLElement)\n        .withPositions([{\n          originX: 'center',\n          originY: 'bottom',\n          overlayX: 'start',\n          overlayY: 'top',\n          offsetX: 0,\n          offsetY: 10,\n        }]),\n    });\n\n    event.stopPropagation();\n    const context = this.tooltipTemplate\n      .createEmbeddedView({\n        count: column.value,\n        range: column.range,\n      })\n      .context;\n    const portal = new TemplatePortal(this.tooltipTemplate, this.viewContainerRef, context);\n    this.overlayRef.attach(portal);\n  }\n\n  detachOverlay(): void {\n    if (this.overlayRef?.hasAttached()) {\n      this.overlayRef.detach();\n    }\n  }\n\n  private get yTicks(): number[] {\n    const numbers = this.chartColumns.map(c => c.value);\n    const max = Math.max(...numbers);\n    const min = Math.min(...numbers);\n    const [ySpacing, yMaxTick] = niceYScale(min, max, this.yTicksLength);\n    const yTicks = [];\n\n    for (let i = Math.max(yMaxTick, this.yTicksLength); i >= 0; i -= Math.max(1, ySpacing)) {\n      yTicks.push(i);\n    }\n    if (yTicks.length === 0) {\n      yTicks.push(6, 5, 4, 3, 2, 1, 0);\n    }\n\n    return yTicks;\n  }\n\n  ngOnDestroy(): void {\n    this.detachOverlay();\n  }\n}\n","<div class=\"w-100 h-100 flex-column align-end pl-12\">\n  <div class=\"p-relative flex-row flex-grow flex-end w-100 h-100\" #columnContainer>\n    <div class=\"y-grid-marks p-absolute h-100 w-100 secondary f-small\">\n      <div *ngFor=\"let yTick of yAxisValues; let i=index\"\n           class=\"y-tick-line border-top\"\n           [style.height]=\"'calc(100% / ' + (yAxisValues.length - 1) + ')'\">\n        <div class=\"p-relative\">{{ i === 0 ? yAxisLabel : yTick }}</div>\n      </div>\n    </div>\n    <div class=\"flex-row h-100 z-1\" *ngIf=\"chartColumns\" [style.width]=\"'calc(100% - 40px)'\">\n      <div *ngFor=\"let column of chartColumns\"\n           (mouseenter)=\"openDetailsOverlay(column, $event)\"\n           (mouseleave)=\"detachOverlay()\"\n           [style.width.%]=\"100 / xTicksLength\"\n           class=\"histo-col\">\n        <div class=\"histo-bar\"\n             [style.background-color]=\"color\"\n             [style.height.px]=\"maxHeight * column.value / yAxisValues[0] || 0\"></div>\n      </div>\n    </div>\n  </div>\n  <div class=\"h-sm flex-row secondary pt-10 f-small\" [style.width]=\"'calc(100% - 40px)'\">\n    <div *ngFor=\"let tick of ticks | async; let i=index\"\n         [style.width.%]=\"100 / xTicksLength\">\n      {{ i % xTicksSkipper === 0 ? tick : '' }}\n    </div>\n  </div>\n</div>\n\n<ng-template #tooltipTemplate let-range=\"range\" let-count=\"count\">\n  <div class=\"p-8 bg-surface-top popup-box-shadow-weak border-rad-6 border mr-10\">\n    <div class=\"secondary text-nowrap\">\n      <div class=\"pb-10\">\n        <span class=\"tertiary\">Range:</span>\n        {{ range }}\n      </div>\n      <div>\n        <span class=\"tertiary\">{{ yAxisLabel }}:</span>\n        {{ count }}\n      </div>\n    </div>\n  </div>\n</ng-template>\n\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, OnInit } from '@angular/core';\nimport { OpenminaEagerSharedModule } from '../../openmina-eager-shared.module';\nimport { CommonModule } from '@angular/common';\nimport { REQUIRED } from '../../constants/angular';\n\n@Component({\n    selector: 'mina-copy',\n    templateUrl: './copy.component.html',\n    styleUrls: ['./copy.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [OpenminaEagerSharedModule, CommonModule]\n})\nexport class CopyComponent implements OnInit {\n\n  @Input(REQUIRED) value: string;\n  @Input() display: string;\n  @Input() hidden: boolean = true;\n\n  @HostBinding('class.no-hide') get isHidden(): boolean {\n    return !this.hidden;\n  }\n\n  ngOnInit(): void {\n    if (this.display === undefined) {\n      this.display = this.value;\n    }\n  }\n\n}\n","<span class=\"p-relative\">{{ display }}\n  <span [copyToClipboard]=\"value\"\n        tooltip=\"Copy to clipboard\"\n        [showDelay]=\"500\"\n        class=\"cpy ml-5\">\n    <span class=\"mina-icon icon-200\">content_copy</span>\n  </span>\n</span>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { OpenminaSharedModule } from '../../../openmina-shared.module';\nimport { ManualDetection } from '../../../base-classes/manual-detection.class';\nimport { CommonModule } from '@angular/common';\nimport { REQUIRED } from '../../../constants/angular';\n\n@Component({\n    selector: 'mina-flame-time-graph-tooltip',\n    imports: [OpenminaSharedModule, CommonModule],\n    templateUrl: './flame-time-graph-tooltip.component.html',\n    styleUrls: ['./flame-time-graph-tooltip.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: { class: 'bg-surface-top pt-5 f-10 flex-column border-rad-6' }\n})\nexport class FlameTimeGraphTooltipComponent extends ManualDetection {\n\n  @Input(REQUIRED) xSteps: string[];\n  @Input(REQUIRED) activeXPointIndex: number;\n  @Input(REQUIRED) range: string;\n  @Input(REQUIRED) mean: number;\n  @Input(REQUIRED) max: number;\n  @Input(REQUIRED) calls: number;\n  @Input(REQUIRED) totalTime: number;\n\n}\n","<div class=\"x-steps f-small flex-row text-capitalize tertiary pl-5 pr-5\">\n  <div *ngFor=\"let step of xSteps; let i=index\"\n       [class.primary]=\"i === activeXPointIndex\">{{ step }}</div>\n</div>\n<div class=\"pl-5 pr-5 mt-10 border-top\">\n  <div class=\"flex-row flex-between\">\n    <span class=\"tertiary\">Range</span>\n    <span>{{ range }}</span>\n  </div>\n  <div class=\"flex-row flex-between\">\n    <span class=\"tertiary\">Mean</span>\n    <span>{{ mean | secDuration }}</span>\n  </div>\n  <div class=\"flex-row flex-between\">\n    <span class=\"tertiary\">Max</span>\n    <span>{{ max | secDuration }}</span>\n  </div>\n  <div class=\"flex-row flex-between\">\n    <span class=\"tertiary\">Calls</span>\n    <span>{{ calls | thousand }}</span>\n  </div>\n  <div class=\"flex-row flex-between\">\n    <span class=\"tertiary\">Total Time</span>\n    <span>{{ totalTime | secDuration }}</span>\n  </div>\n</div>\n","import { ChangeDetectionStrategy, Component, ComponentRef, EventEmitter, Input } from '@angular/core';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { take } from 'rxjs';\nimport { FlameTimeGraphTooltipComponent } from '../flame-time-graph-tooltip/flame-time-graph-tooltip.component';\nimport { OpenminaSharedModule } from '../../../openmina-shared.module';\nimport { ManualDetection } from '../../../base-classes/manual-detection.class';\nimport { CommonModule } from '@angular/common';\nimport { REQUIRED } from '../../../constants/angular';\n\nexport interface FlameTimeGraph {\n  title: string;\n  totalTime: number;\n  totalCount: number;\n  columns: FlameTimeGraphColumn[];\n}\n\nexport interface FlameTimeGraphColumn {\n  count: number;\n  meanTime: number;\n  maxTime: number;\n  totalTime: number;\n  squareCount: number;\n}\n\nconst Y_STEPS = ['1000s', '100s', '10s', '1s', '100ms', '10ms', '1ms', '100μs', '10μs'];\nconst X_STEPS = ['1μs', '10μs', '100μs', '1ms', '10ms', '100ms', '1s', '10s', '100s'];\nconst RANGES = ['1μs - 10μs', '10μs - 100μs', '100μs - 1ms', '1ms - 10ms', '10ms - 100ms', '100ms - 1s', '1s - 10s', '10s - 100s', '> 100s'];\nconst trackSteps = (index: number) => index;\n\n@Component({\n    imports: [OpenminaSharedModule, CommonModule],\n    selector: 'mina-flame-time-graph',\n    templateUrl: './flame-time-graph.component.html',\n    styleUrls: ['./flame-time-graph.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FlameTimeGraphComponent extends ManualDetection {\n\n  @Input(REQUIRED) checkpoint: FlameTimeGraph;\n  @Input(REQUIRED) condensedView: boolean;\n  @Input() xSteps: string[] = X_STEPS;\n  @Input() ySteps: string[] = Y_STEPS;\n  @Input() ranges: string[] = RANGES;\n  @Input() visible: boolean = true;\n  @Input() menuCollapsed: boolean;\n\n  readonly onClickOutside: EventEmitter<void> = new EventEmitter<void>();\n  readonly trackSteps = trackSteps;\n\n  private hoveredColumn: FlameTimeGraphColumn;\n  private overlayRef: OverlayRef;\n  private tooltipComponent: ComponentRef<FlameTimeGraphTooltipComponent>;\n  private expandedGraphComponent: ComponentRef<FlameTimeGraphComponent>;\n\n  constructor(private overlay: Overlay) { super(); }\n\n  onColumnHover(column: FlameTimeGraphColumn): void {\n    this.hoveredColumn = column;\n    this.tooltipComponent.instance.xSteps = this.xSteps;\n    this.tooltipComponent.instance.range = this.ranges[this.checkpoint.columns.indexOf(column)];\n    this.tooltipComponent.instance.activeXPointIndex = this.checkpoint.columns.indexOf(column);\n    this.tooltipComponent.instance.mean = column.meanTime;\n    this.tooltipComponent.instance.max = column.maxTime;\n    this.tooltipComponent.instance.calls = column.count;\n    this.tooltipComponent.instance.totalTime = column.totalTime;\n    this.tooltipComponent.instance.detect();\n  }\n\n  attachGraphTooltip(xStepsRef: HTMLDivElement): void {\n    if (this.overlayRef?.hasAttached()) {\n      this.detachOverlay();\n      return;\n    }\n    this.overlayRef = this.overlay.create({\n      hasBackdrop: false,\n      positionStrategy: this.overlay.position()\n        .flexibleConnectedTo(xStepsRef)\n        .withPositions([{\n          originX: 'start',\n          originY: 'top',\n          overlayX: 'start',\n          overlayY: 'top',\n          offsetX: -11,\n          offsetY: 2,\n        }]),\n    });\n\n    const portal = new ComponentPortal(FlameTimeGraphTooltipComponent);\n    this.tooltipComponent = this.overlayRef.attach<FlameTimeGraphTooltipComponent>(portal);\n  }\n\n  detachOverlay(): void {\n    if (this.overlayRef?.hasAttached()) {\n      this.overlayRef.detach();\n    }\n  }\n\n  expandCondensedGraph(graphRef: HTMLDivElement, event: MouseEvent): void {\n    if (!this.condensedView) {\n      return;\n    }\n    if (this.overlayRef?.hasAttached()) {\n      this.detachOverlay();\n      return;\n    }\n    this.overlayRef = this.overlay.create({\n      hasBackdrop: true,\n      backdropClass: `tracing-overview-overlay-${this.menuCollapsed ? 'big' : 'small'}`,\n      positionStrategy: this.overlay.position()\n        .flexibleConnectedTo(graphRef)\n        .withPositions([{\n          originX: 'start',\n          originY: 'top',\n          overlayX: 'start',\n          overlayY: 'top',\n        }]),\n    });\n    event.stopPropagation();\n\n    const portal = new ComponentPortal(FlameTimeGraphComponent);\n    this.expandedGraphComponent = this.overlayRef.attach<FlameTimeGraphComponent>(portal);\n    this.expandedGraphComponent.instance.checkpoint = this.checkpoint;\n    this.expandedGraphComponent.instance.xSteps = this.xSteps;\n    this.expandedGraphComponent.instance.ySteps = this.ySteps;\n    this.expandedGraphComponent.instance.visible = false;\n    this.expandedGraphComponent.instance.detect();\n    this.expandedGraphComponent.instance.onClickOutside\n      .pipe(take(1))\n      .subscribe(() => this.detachOverlay());\n\n    setTimeout(() => { // for animation\n      this.expandedGraphComponent.instance.visible = true;\n      this.expandedGraphComponent.instance.detect();\n    });\n  }\n\n  onOutsideClick(): void {\n    this.onClickOutside.emit();\n  }\n}\n","<div #graph class=\"mina-graph border border-rad-6 flex-column p-8\"\n     [class.graph-condensed]=\"condensedView\"\n     [class.visible]=\"visible\"\n     (click)=\"expandCondensedGraph(graph, $event)\"\n     (clickOutside)=\"onOutsideClick()\">\n  <div class=\"title mb-5 f-600 truncate\"\n       [tooltip]=\"$any(checkpoint)['fullTitle'] || checkpoint.title\"\n       [maxWidth]=\"500\"\n       [showDelay]=\"500\">{{ checkpoint.title }}</div>\n  <div class=\"big-graph flex-column\">\n    <div class=\"mb-16 mt-5\">{{ checkpoint.totalTime | secDuration }} <span class=\"divider\">|</span> {{ checkpoint.totalCount | thousand }} calls</div>\n    <span class=\"secondary f-small\">Total time</span>\n    <div class=\"graph-body flex-row\">\n      <div class=\"y-steps flex-column f-small tertiary\">\n        <div *ngFor=\"let step of ySteps; trackBy: trackSteps\">{{ step }}</div>\n      </div>\n      <div class=\"cols-wrap flex-row\"\n           (mouseenter)=\"attachGraphTooltip(xStepsRef)\"\n           (mouseleave)=\"detachOverlay()\">\n        <div *ngFor=\"let col of checkpoint.columns; let i=index; trackBy: trackSteps\"\n             (mouseenter)=\"onColumnHover(col)\"\n             class=\"gr-col flex-column-reverse\">\n          <div *ngFor=\"let square of [].constructor(col.squareCount); let j=index\"\n               [class.b-right]=\"j > checkpoint.columns[i + 1]?.squareCount - 1\"\n               [class.b-left]=\"j > checkpoint.columns[i - 1]?.squareCount - 1\"\n               [class.yellow-red-grey]=\"j > 9 - i - 2\"\n               [class.yellow-red-0]=\"j > 9 - i - 1\"\n               [class.yellow-red-1]=\"j > 9 - i\"\n               [class.yellow-red-2]=\"j > 9 - i + 1\"\n               [class.yellow-red-3]=\"j > 9 - i + 2\"\n               [class.yellow-red-4]=\"j > 9 - i + 3\"\n               [class.yellow-red-5]=\"j > 9 - i + 4\"\n               class=\"square\">\n            <div></div>\n          </div>\n        </div>\n      </div>\n    </div>\n    <div class=\"flex-row tertiary\">\n      <div>\n        <span class=\"mina-icon f-20\">arrow_forward</span>\n        <div class=\"secondary f-small\">Duration</div>\n      </div>\n      <div #xStepsRef class=\"x-steps f-small flex-row text-capitalize\">\n        <div *ngFor=\"let step of xSteps; trackBy: trackSteps\">{{ step }}</div>\n      </div>\n    </div>\n  </div>\n  <div class=\"flames flex-row flex-center\">\n    <div class=\"condensed-square\"\n         *ngFor=\"let column of checkpoint.columns; let i=index\"\n         [class.severity-0]=\"column.squareCount === 0\"\n         [class.severity-1]=\"column.squareCount + i < 9\"\n         [class.severity-2]=\"column.squareCount + i === 9\"\n         [class.severity-3]=\"column.squareCount + i === 10\"\n         [class.severity-4]=\"column.squareCount + i === 11\"\n         [class.severity-5]=\"column.squareCount + i === 12\"\n         [class.severity-6]=\"column.squareCount + i === 13\"\n         [class.severity-7]=\"column.squareCount + i === 14\"\n         [class.severity-8]=\"column.squareCount + i > 14\"\n    ></div>\n  </div>\n</div>\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\n\nexport type ArrowHide = {\n  showLeftArrow: boolean,\n  showRightArrow: boolean,\n};\n\n@UntilDestroy()\n@Directive({\n  selector: '[minaHorizontalMenu]',\n  standalone: true,\n})\nexport class HorizontalMenuDirective implements AfterViewInit {\n\n  @Output() arrows: EventEmitter<ArrowHide> = new EventEmitter<ArrowHide>();\n\n  constructor(private element: ElementRef<HTMLDivElement>) { }\n\n  ngAfterViewInit(): void {\n    this.listenToWindowResize();\n    this.listenToElWidthChange();\n    this.listenToTouchEvents();\n  }\n\n  private listenToWindowResize(): void {\n    fromEvent(window, 'resize').pipe(\n      debounceTime(500),\n      untilDestroyed(this),\n    ).subscribe(() => this.checkArrows());\n  }\n\n  private listenToElWidthChange(): void {\n    const widthChange = 'width-change';\n    const resizeObserver = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n      for (const entry of entries) {\n        const widthChangeEvent = new CustomEvent(widthChange);\n        entry.target.dispatchEvent(widthChangeEvent);\n      }\n    });\n    resizeObserver.observe(this.el);\n\n    fromEvent(this.el, widthChange).pipe(\n      debounceTime(500),\n      untilDestroyed(this),\n    ).subscribe(() => this.checkArrows());\n  }\n\n  private listenToTouchEvents(): void {\n    let startX = 0;\n    let currentX = 0;\n    let diff = 0;\n\n    fromEvent(this.el, 'touchstart')\n      .pipe(untilDestroyed(this))\n      .subscribe((event: any) => {\n        startX = event.touches[0].pageX;\n        currentX = this.el.scrollLeft;\n      });\n\n    fromEvent(this.el, 'touchmove')\n      .pipe(untilDestroyed(this))\n      .subscribe((event: any) => {\n        diff = startX - event.touches[0].pageX;\n        this.el.scrollLeft = currentX + diff;\n        event.preventDefault();\n      });\n\n    fromEvent(this.el, 'touchend')\n      .pipe(untilDestroyed(this))\n      .subscribe(() => this.checkArrows());\n  }\n\n  @HostListener('scroll', ['$event'])\n  private checkArrows(): void {\n    const response: ArrowHide = {\n      showLeftArrow: false,\n      showRightArrow: false,\n    };\n    response.showLeftArrow = this.el.scrollLeft > 0;\n    response.showRightArrow = (Math.ceil(this.el.scrollLeft) + 5) < (this.el.scrollWidth - this.el.clientWidth);\n    this.arrows.emit(response);\n  }\n\n  private get el(): HTMLDivElement {\n    return this.element.nativeElement;\n  }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, TemplateRef, ViewChild } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ArrowHide, HorizontalMenuDirective } from './horizontal-menu.directive';\nimport { ManualDetection } from '../../base-classes/manual-detection.class';\nimport { OpenminaEagerSharedModule } from '../../openmina-eager-shared.module';\nimport { REQUIRED } from '../../constants/angular';\n\n\n@Component({\n    selector: 'mina-horizontal-menu',\n    templateUrl: './horizontal-menu.component.html',\n    styleUrls: ['./horizontal-menu.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [OpenminaEagerSharedModule, CommonModule, HorizontalMenuDirective],\n    host: { class: 'h-100 w-100 flex-column' }\n})\nexport class HorizontalMenuComponent extends ManualDetection {\n\n  @Input(REQUIRED) template: TemplateRef<any>;\n  @Input() showNav: boolean = true;\n  @Input() clz: string | string[];\n  @Input() distance = 250;\n  @Input() scrollSpeed = 100;\n\n  showLeftArrow: boolean = false;\n  showRightArrow: boolean = false;\n\n  @ViewChild('hScroll') private scrollWrapper: ElementRef;\n\n  listenToItemsScroll(e: ArrowHide): void {\n    this.showLeftArrow = e.showLeftArrow;\n    this.showRightArrow = e.showRightArrow;\n  }\n\n  scrollLeft(): void {\n    const leftArrow = this.scrollWrapper.nativeElement;\n    const scrollLeft = leftArrow.scrollLeft;\n    const distance = scrollLeft - this.distance;\n    this.scroll(distance);\n  }\n\n  scrollRight(): void {\n    const listWrapper = this.scrollWrapper.nativeElement;\n    const scrollLeft = listWrapper.scrollLeft;\n    const distance = scrollLeft + this.distance;\n    this.scroll(distance);\n  }\n\n  private scroll(distance: number): void {\n    const listWrapper = this.scrollWrapper.nativeElement;\n    listWrapper.scrollTo({ behavior: 'smooth', left: distance });\n  }\n\n  public checkView(): void {\n    if (this.scrollWrapper.nativeElement.scrollWidth > this.scrollWrapper.nativeElement.clientWidth) {\n      this.showRightArrow = true;\n    } else {\n      this.showRightArrow = false;\n    }\n    this.detect();\n  }\n}\n","<nav class=\"flex-row w-100 h-100 p-relative\"\n     [ngClass]=\"clz\">\n\n  <div class=\"flex-row w-100\">\n    <div #hScroll\n         class=\"fx-row-vert-cent w-100 overflow-hidden\"\n         minaHorizontalMenu\n         (arrows)=\"listenToItemsScroll($event)\">\n      <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n    </div>\n  </div>\n\n  <ng-container *ngIf=\"showNav\">\n    <div *ngIf=\"showLeftArrow\"\n         class=\"control left p-absolute bg-surface flex-row h-100 pointer user-none\"\n         (click)=\"scrollLeft()\">\n      <div class=\"bg-container-hover fx-row-full-cent w-100 h-100\">\n        <span class=\"mina-icon icon-200\">chevron_left</span>\n      </div>\n    </div>\n    <div *ngIf=\"showRightArrow\"\n         (click)=\"scrollRight()\"\n         class=\"control right p-absolute bg-surface flex-row h-100 pointer user-none\">\n      <div class=\"bg-container-hover fx-row-full-cent w-100 h-100\">\n        <span class=\"mina-icon icon-200\">chevron_right</span>\n      </div>\n    </div>\n  </ng-container>\n</nav>\n","import { Directive, ElementRef, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core';\nimport {\n  distinctUntilChanged,\n  filter,\n  fromEvent,\n  map,\n  merge,\n  Observable,\n  Subject,\n  switchMap,\n  takeUntil,\n  tap,\n  throttleTime\n} from 'rxjs';\nimport { DOCUMENT } from '@angular/common';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { getLocalStorage } from '../../helpers/browser.helper';\n\n@UntilDestroy()\n@Directive({\n  selector: '[horizontalResize]',\n  standalone: true,\n})\nexport class HorizontalResizeDirective implements OnInit {\n\n  @Input() minWidth: number | null;\n  @Input() maxWidth: number | null;\n  @Input() maxWidthElement: HTMLElement | null;\n  @Input() localStorageKey: string;\n\n  @Output() horizontalResize: Observable<number>;\n  @Output() startResizing: EventEmitter<void> = new EventEmitter<void>();\n  @Output() endResizing: Observable<MouseEvent>;\n\n  private resizeInProgress: boolean;\n  private windowResize$: Subject<number> = new Subject<number>();\n  private maxCalculatedWidth: number;\n  private initialWidthOnResize: number;\n\n  constructor(@Inject(DOCUMENT) private readonly document: Document,\n              @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>) {\n\n    this.horizontalResize = merge(\n      fromEvent<MouseEvent>(this.elementRef.nativeElement, 'mousedown')\n        .pipe(\n          tap((e: MouseEvent) => e.preventDefault()),\n          switchMap(() => {\n            this.startResizing.emit();\n            this.resizeInProgress = true;\n            const { width, left } = this.elementRef.nativeElement\n              .parentElement.parentElement\n              .getBoundingClientRect();\n            this.initialWidthOnResize = this.elementRef.nativeElement.parentElement.offsetWidth;\n\n            return fromEvent<MouseEvent>(this.document, 'mousemove').pipe(\n              map(({ clientX }: { clientX: number }) => {\n                const newValue = left + width - clientX;\n                if (this.minWidth && this.minWidth > newValue) {\n                  return this.minWidth;\n                } else if (this.maxCalculatedWidth && this.maxCalculatedWidth < newValue) {\n                  return this.maxCalculatedWidth;\n                } else {\n                  return newValue;\n                }\n              }),\n              distinctUntilChanged(),\n              takeUntil(fromEvent(this.document, 'mouseup')),\n            );\n          }),\n        ),\n      this.windowResize$.asObservable(),\n    );\n\n    this.endResizing = fromEvent<MouseEvent>(this.document, 'mouseup')\n      .pipe(\n        filter(() => this.resizeInProgress),\n        tap(() => this.resizeInProgress = false),\n        filter(() => this.initialWidthOnResize !== this.elementRef.nativeElement.parentElement.offsetWidth),\n      );\n  }\n\n  ngOnInit(): void {\n    this.maxCalculatedWidth = this.getMaxCalculatedWidth();\n\n    fromEvent(window, 'resize')\n      .pipe(\n        untilDestroyed(this),\n        throttleTime(50),\n        distinctUntilChanged(),\n      )\n      .subscribe(() => {\n        this.maxCalculatedWidth = this.getMaxCalculatedWidth();\n        const currentWidth = Number(getLocalStorage()?.getItem(this.localStorageKey));\n        if (this.maxCalculatedWidth < this.minWidth) {\n          this.maxCalculatedWidth = this.minWidth;\n          this.windowResize$.next(this.maxCalculatedWidth);\n        } else if (this.maxCalculatedWidth < currentWidth) {\n          this.windowResize$.next(this.maxCalculatedWidth);\n        }\n      });\n  }\n\n  private getMaxCalculatedWidth(): number {\n    return this.maxWidth || (this.maxWidthElement.offsetWidth - 50);\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild,\n} from '@angular/core';\nimport { HorizontalResizeDirective } from './horizontal-resize.directive';\nimport { OpenminaSharedModule } from '../../openmina-shared.module';\nimport { CommonModule } from '@angular/common';\nimport { REQUIRED } from '../../constants/angular';\nimport { getLocalStorage } from '../../helpers/browser.helper';\n\n@Component({\n    selector: 'mina-horizontal-resizable-container',\n    imports: [HorizontalResizeDirective, OpenminaSharedModule, CommonModule],\n    templateUrl: './horizontal-resizable-container.component.html',\n    styleUrls: ['./horizontal-resizable-container.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: { class: 'w-100 h-100 p-relative flex-row' }\n})\nexport class HorizontalResizableContainerComponent implements OnInit, OnChanges {\n\n  @Input() minWidth: number | null = null;\n  @Input() maxWidth: number | null = null;\n  @Input() maxWidthElement: HTMLElement | null = null;\n  @Input(REQUIRED) localStorageKey: string;\n  @Input(REQUIRED) show: boolean;\n  @Input(REQUIRED) leftTemplate: TemplateRef<void>;\n  @Input(REQUIRED) rightTemplate: TemplateRef<void>;\n  @Output() endResizing: EventEmitter<void> = new EventEmitter<void>();\n\n  width: number | null = null;\n\n  private removedClass: boolean;\n\n  @ViewChild('main', { static: true }) private main: ElementRef<HTMLElement>;\n  @ViewChild('aside', { static: true }) private aside: ElementRef<HTMLElement>;\n\n  ngOnInit(): void {\n    const localStorageWidth = Number(getLocalStorage()?.getItem(this.localStorageKey));\n    if (localStorageWidth) {\n      this.onResize(localStorageWidth);\n    } else {\n      this.onResize(this.minWidth);\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (this.show && !this.removedClass) {\n      this.removedClass = true;\n      this.aside.nativeElement.classList.remove('no-transition');\n    }\n    this.setDimensions();\n  }\n\n  onResize(width: number): void {\n    this.width = width;\n    getLocalStorage()?.setItem(this.localStorageKey, width.toString());\n    this.setDimensions();\n  }\n\n  onStartResizing(): void {\n    this.toggleMain();\n  }\n\n  onEndResizing(): void {\n    this.endResizing.emit();\n    this.toggleMain();\n  }\n\n  private toggleMain(): void {\n    this.main.nativeElement.classList.toggle('no-transition');\n  }\n\n  private setDimensions(): void {\n    this.aside.nativeElement.style.width = `${this.width}px`;\n    if (this.show) {\n      this.aside.nativeElement.style.right = '0';\n      this.main.nativeElement.style.width = `calc(100% - ${this.width}px)`;\n    } else {\n      this.aside.nativeElement.style.right = window.innerWidth > 700 ? `-${this.width}px` : '-100%';\n      this.main.nativeElement.style.width = '100%';\n    }\n  }\n}\n","<main #main>\n  <ng-container *ngTemplateOutlet=\"leftTemplate\"></ng-container>\n</main>\n<aside #aside\n       class=\"no-transition h-100 p-absolute bg-surface\">\n  <ng-container *ngTemplateOutlet=\"rightTemplate\"></ng-container>\n  <div class=\"bar\"\n       (horizontalResize)=\"onResize($event)\"\n       (startResizing)=\"onStartResizing()\"\n       (endResizing)=\"onEndResizing()\"\n       [minWidth]=\"minWidth\"\n       [maxWidth]=\"maxWidth\"\n       [maxWidthElement]=\"maxWidthElement\"\n       [localStorageKey]=\"localStorageKey\"></div>\n</aside>\n","import {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewChild\n} from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\nimport { distinctUntilChanged } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport { OpenminaEagerSharedModule } from '../../openmina-eager-shared.module';\nimport { ManualDetection } from '../../base-classes/manual-detection.class';\nimport { TimestampInterval } from '../../types/shared/timestamp-interval.type';\nimport { ONE_THOUSAND, TEN_BILLIONS } from '../../constants/unit-measurements';\nimport { hasValue } from '../../helpers/values.helper';\n\ntype PresetIntervals = { name: string, value: number }[];\n\nconst PRESET_INTERVALS: PresetIntervals = [\n  { name: '1m', value: 1 },\n  { name: '5m', value: 5 },\n  { name: '30m', value: 30 },\n  { name: '1h', value: 60 },\n  { name: '12h', value: 720 },\n  { name: '1d', value: 1440 },\n  { name: '2d', value: 2880 },\n  { name: '7d', value: 10080 },\n  { name: '30d', value: 43200 },\n];\n\ninterface TimeForm {\n  hour: FormControl<number>;\n  minute: FormControl<number>;\n  second: FormControl<number>;\n  year: FormControl<number>;\n  month: FormControl<number>;\n  day: FormControl<number>;\n}\n\nconst hourStr = 'hour';\nconst minuteStr = 'minute';\nconst secondStr = 'second';\nconst dayStr = 'day';\nconst monthStr = 'month';\nconst yearStr = 'year';\n\n@UntilDestroy()\n@Component({\n    imports: [OpenminaEagerSharedModule, CommonModule, ReactiveFormsModule],\n    selector: 'mina-interval-select',\n    templateUrl: './interval-select.component.html',\n    styleUrls: ['./interval-select.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class IntervalSelectComponent extends ManualDetection implements OnInit, AfterViewInit {\n\n  @Input() from: number;\n  @Input() to: number;\n  @Input() animate: boolean;\n  @Input() skipTo: boolean;\n  @Input() skipFrom: boolean;\n\n  @Output() onConfirm: EventEmitter<TimestampInterval> = new EventEmitter<TimestampInterval>();\n\n  readonly presetIntervals: PresetIntervals = PRESET_INTERVALS;\n\n  fromFormGroup: FormGroup<TimeForm>;\n  toFormGroup: FormGroup<TimeForm>;\n  invalidInterval: boolean;\n\n  @ViewChild('firstInput')\n  private firstInput: ElementRef<HTMLInputElement>;\n\n  constructor(private builder: FormBuilder) { super(); }\n\n  ngOnInit(): void {\n    this.initForm();\n  }\n\n  ngAfterViewInit(): void {\n    this.firstInput.nativeElement.focus();\n  }\n\n  private initForm(): void {\n    this.fromFormGroup = this.getFormGroup(this.from < TEN_BILLIONS ? (this.from * ONE_THOUSAND) : this.from);\n    this.toFormGroup = this.getFormGroup(this.to < TEN_BILLIONS ? (this.to * ONE_THOUSAND) : this.to);\n  }\n\n  private getFormGroup(timestamp: number): FormGroup<TimeForm> {\n    const date = timestamp ? new Date(timestamp) : new Date();\n    const formGroup = this.builder.group<TimeForm>({\n      hour: new FormControl(timestamp ? date.getHours() : null, Validators.required),\n      minute: new FormControl(timestamp ? date.getMinutes() : null, Validators.required),\n      second: new FormControl(timestamp ? date.getSeconds() : null, Validators.required),\n      year: new FormControl(date.getFullYear(), Validators.required),\n      month: new FormControl(date.getMonth() + 1, Validators.required),\n      day: new FormControl(date.getDate(), Validators.required),\n    });\n    formGroup.valueChanges\n      .pipe(\n        distinctUntilChanged(),\n        untilDestroyed(this),\n      )\n      .subscribe(value => {\n        formGroup.get(hourStr).setValue(value.hour > 23 ? 23 : value.hour, { emitEvent: false });\n        formGroup.get(minuteStr).setValue(value.minute > 59 ? 59 : value.minute, { emitEvent: false });\n        formGroup.get(secondStr).setValue(value.second > 59 ? 59 : value.second, { emitEvent: false });\n        formGroup.get(monthStr).setValue(value.month > 12 ? 12 : value.month, { emitEvent: false });\n        formGroup.get(dayStr).setValue(value.day > 31 ? 31 : value.day, { emitEvent: false });\n      });\n    return formGroup;\n  };\n\n  presetInterval(value: number): void {\n    const date = new Date(Date.now() - (value * 60000));\n    IntervalSelectComponent.addDateToForm(this.toFormGroup, new Date());\n    IntervalSelectComponent.addDateToForm(this.fromFormGroup, date);\n  }\n\n  onNowClick(formGroup: FormGroup): void {\n    const date = new Date();\n    IntervalSelectComponent.addDateToForm(formGroup, date);\n  }\n\n  private static addDateToForm(formGroup: FormGroup, date: Date): void {\n    formGroup.get(hourStr).setValue(date.getHours());\n    formGroup.get(minuteStr).setValue(date.getMinutes());\n    formGroup.get(secondStr).setValue(date.getSeconds());\n    formGroup.get(yearStr).setValue(date.getFullYear());\n    formGroup.get(monthStr).setValue(date.getMonth() + 1);\n    formGroup.get(dayStr).setValue(date.getDate());\n  }\n\n  confirm(): void {\n    if ((this.fromFormGroup.invalid && !this.skipFrom) || (this.toFormGroup.invalid && !this.skipTo)) {\n      this.fromFormGroup.markAllAsTouched();\n      this.toFormGroup.markAllAsTouched();\n      return;\n    }\n    const fromDate = IntervalSelectComponent.buildDate(this.fromFormGroup);\n    const toDate = IntervalSelectComponent.buildDate(this.toFormGroup);\n\n    if (fromDate?.getTime() > toDate?.getTime()) {\n      this.invalidInterval = true;\n      return;\n    }\n\n    const response: TimestampInterval = {};\n    if (fromDate) {\n      response.from = fromDate.getTime();\n    }\n    if (toDate) {\n      response.to = toDate.getTime();\n    }\n    this.onConfirm.emit(response);\n  }\n\n  private static buildDate(fg: FormGroup<TimeForm>): Date | null {\n    const value = fg.getRawValue();\n    if (!hasValue(value[yearStr])\n      || !hasValue(value[monthStr])\n      || !hasValue(value[dayStr])\n      || !hasValue(value[hourStr])\n      || !hasValue(value[minuteStr])\n      || !hasValue(value[secondStr])) {\n      return null;\n    }\n    return new Date(\n      value[yearStr],\n      value[monthStr] - 1,\n      value[dayStr],\n      value[hourStr],\n      value[minuteStr],\n      value[secondStr],\n    );\n  }\n\n  cancel(): void {\n    this.onConfirm.emit();\n  }\n}\n","<div class=\"container border border-rad-6 bg-surface flex-column\" [class.animate]=\"animate\" (clickOutside)=\"cancel()\">\n  <div class=\"grid-preset-row border-bottom\">\n    <span class=\"f-600 secondary\">Last</span>\n    <button class=\"btn-primary\"\n            *ngFor=\"let interval of presetIntervals\"\n            (click)=\"presetInterval(interval.value)\">{{ interval.name }}</button>\n  </div>\n  <div class=\"m-8 p-8\" *ngFor=\"let formGroup of [fromFormGroup, toFormGroup]; let i=index\">\n    <div class=\"grid-row f-600\">\n      <span class=\"secondary\">{{ i === 0 ? 'From' : 'To' }}</span>\n      <span class=\"tertiary\">Hour</span>\n      <span class=\"tertiary\">Min</span>\n      <span class=\"tertiary\">Sec</span>\n      <span class=\"tertiary\">Year</span>\n      <span class=\"tertiary\">Month</span>\n      <span class=\"tertiary\">Day</span>\n    </div>\n    <form class=\"grid-row f-600\" [formGroup]=\"formGroup\">\n      <span></span>\n      <input #firstInput class=\"mina-input\" type=\"number\" formControlName=\"hour\" placeholder=\"hh\" [ngClass]=\"{'input-error': (i === 0 && !skipFrom || i === 1 && !skipTo) && formGroup.controls['hour'].touched && formGroup.controls['hour'].errors && formGroup.controls['hour'].errors['required'] }\">\n      <input class=\"mina-input\" type=\"number\" formControlName=\"minute\" placeholder=\"mm\" [ngClass]=\"{'input-error': (i === 0 && !skipFrom || i === 1 && !skipTo) && formGroup.controls['minute'].touched && formGroup.controls['minute'].errors && formGroup.controls['minute'].errors['required'] }\">\n      <input class=\"mina-input\" type=\"number\" formControlName=\"second\" placeholder=\"ss\" [ngClass]=\"{'input-error': (i === 0 && !skipFrom || i === 1 && !skipTo) && formGroup.controls['second'].touched && formGroup.controls['second'].errors && formGroup.controls['second'].errors['required'] }\">\n      <input class=\"mina-input\" type=\"number\" formControlName=\"year\" placeholder=\"yy\" [ngClass]=\"{'input-error': (i === 0 && !skipFrom || i === 1 && !skipTo) && formGroup.controls['year'].touched && formGroup.controls['year'].errors && formGroup.controls['year'].errors['required'] }\">\n      <input class=\"mina-input\" type=\"number\" formControlName=\"month\" placeholder=\"mm\" [ngClass]=\"{'input-error': (i === 0 && !skipFrom || i === 1 && !skipTo) && formGroup.controls['month'].touched && formGroup.controls['month'].errors && formGroup.controls['month'].errors['required'] }\">\n      <input class=\"mina-input\" type=\"number\" formControlName=\"day\" placeholder=\"dd\" [ngClass]=\"{'input-error': (i === 0 && !skipFrom || i === 1 && !skipTo) && formGroup.controls['day'].touched && formGroup.controls['day'].errors && formGroup.controls['day'].errors['required'] }\">\n      <div class=\"flex-row flex-end\">\n        <button class=\"now\" (click)=\"onNowClick(formGroup)\">Now</button>\n      </div>\n    </form>\n  </div>\n  <div class=\"flex-row flex-between mb-8 pb-8 mr-8 pr-8\">\n    <div>\n      <span *ngIf=\"invalidInterval\" class=\"error ml-16\">Invalid interval: 'from date' is after 'to date'</span>\n    </div>\n    <button class=\"btn-selected border-rad-6 pl-10 pr-10\" (click)=\"confirm()\">Confirm</button>\n  </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input, OnChanges, OnInit } from '@angular/core';\nimport { NgxJsonViewerComponent, NgxJsonViewerModule } from 'ngx-json-viewer';\nimport { Segment } from 'ngx-json-viewer/src/ngx-json-viewer/ngx-json-viewer.component';\nimport { CommonModule } from '@angular/common';\n\nexport interface ExpandTracking {\n  [p: string]: ExpandTracking;\n}\n\n@Component({\n    selector: 'mina-json-viewer',\n    templateUrl: './mina-json-viewer.component.html',\n    styleUrls: ['./mina-json-viewer.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [CommonModule, NgxJsonViewerModule]\n})\nexport class MinaJsonViewerComponent extends NgxJsonViewerComponent implements OnChanges, OnInit {\n\n  @Input() paddingLimitForNestedElements: number = 1000;\n  @Input() internalDepth: number = 0;\n  @Input() expandTracking: ExpandTracking;\n  @Input() skipDecycle: boolean = false;\n\n  ngOnInit(): void {\n    this.internalDepth++;\n  }\n\n  override ngOnChanges(): void {\n    this.segments = [];\n\n    if (this.skipDecycle) {\n      this.json = this['decycle'](this.json);\n    }\n\n    this['_currentDepth']++;\n\n    if (typeof this.json === 'object') {\n      Object.keys(this.json).forEach(key => {\n        this.segments.push(this.customParseKeyValue(key, this.json[key]));\n      });\n    } else {\n      this.segments.push(this.customParseKeyValue(`(${typeof this.json})`, this.json));\n    }\n\n    if (this.expandTracking) {\n      Object.keys(this.expandTracking).forEach((key: string) => {\n        const segmentToToggle: Segment = this.segments.find(segment => key === segment.key);\n        if (segmentToToggle && !segmentToToggle.expanded) {\n          this.toggle(segmentToToggle);\n        }\n      });\n    }\n  }\n\n  toggleAll(expand: boolean): ExpandTracking {\n    const newExpandTracking = {};\n    this.segments.forEach((segment: Segment) => {\n      segment.expanded = expand;\n      if (expand) {\n        this.appendExpandingRecursively(segment.value, segment.key, newExpandTracking);\n      }\n    });\n    return newExpandTracking;\n  }\n\n  onExpandToggle(segment: Segment): void {\n    this.toggle(segment);\n    this.appendExpandingToExpandTrackingElement(segment);\n  }\n\n  private appendExpandingToExpandTrackingElement(segment: Segment): void {\n    if (!this.expandTracking || !this.isExpandable(segment)) {\n      return;\n    }\n\n    if (this.expandTracking[segment.key]) {\n      delete this.expandTracking[segment.key];\n    } else {\n      this.expandTracking[segment.key] = {};\n    }\n  }\n\n  private customParseKeyValue(key: any, value: any): Segment {\n    /*const segment: Segment =*/\n    return this['parseKeyValue'](key, value);\n    // if (typeof segment.value === 'string' && Number(segment.value) <= 10000000000000000000 && Number(segment.value) >= 10000000000000000) {\n    //   segment.type = 'number';\n    //   segment.description = '' + segment.value;\n    // }\n    // return segment;\n  }\n\n  private appendExpandingRecursively(value: any, keyOfValue: string, tracking: ExpandTracking): void {\n    const isExpandable = (v: any) => typeof v === 'object' || Array.isArray(v);\n    if (value !== null && isExpandable(value)) {\n      tracking[keyOfValue] = {};\n      Object.keys(value).forEach(key => {\n        this.appendExpandingRecursively(value[key], key, tracking[keyOfValue]);\n      });\n    }\n  }\n}\n","<section class=\"ngx-json-viewer\">\n  <section *ngFor=\"let segment of segments\"\n           [class.ml]=\"internalDepth < paddingLimitForNestedElements\"\n           [ngClass]=\"['segment', 'segment-type-' + segment.type]\">\n    <section (click)=\"onExpandToggle(segment)\"\n             [ngClass]=\"{\n                'segment-main': true,\n                'expandable': isExpandable(segment),\n                'expanded': segment.expanded\n             }\">\n      <span *ngIf=\"isExpandable(segment)\" class=\"toggler mina-icon\">arrow_right</span>\n      <span class=\"segment-key\">{{ segment.key }}</span>\n      <span class=\"segment-separator\">:</span>\n      <span *ngIf=\"!segment.expanded || !isExpandable(segment)\" class=\"segment-value\">{{ segment.description }}</span>\n    </section>\n    <section *ngIf=\"segment.expanded && isExpandable(segment)\">\n      <mina-json-viewer [json]=\"segment.value\"\n                        [expanded]=\"expanded\"\n                        [expandTracking]=\"expandTracking ? expandTracking[segment.key] : null\"\n                        [internalDepth]=\"internalDepth\"\n                        [skipDecycle]=\"skipDecycle\"\n                        [paddingLimitForNestedElements]=\"paddingLimitForNestedElements\"></mina-json-viewer>\n    </section>\n  </section>\n</section>\n","import { ChangeDetectionStrategy, Component, Input, TemplateRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OpenminaEagerSharedModule } from '../../openmina-eager-shared.module';\n\n@Component({\n    imports: [OpenminaEagerSharedModule, CommonModule],\n    selector: 'mina-stepper',\n    templateUrl: './stepper.component.html',\n    styleUrls: ['./stepper.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: { class: 'w-100 mt-16 flex-column' }\n})\nexport class StepperComponent {\n\n  @Input() steps: TemplateRef<any>[];\n  /**\n   * @description zero-based index of the active step\n   */\n  @Input() activeStep: number = 0;\n  @Input() stepHeaders: string[];\n  @Input() contentHeaderInfoTemplate: TemplateRef<any>;\n  @Input() footerTemplate: TemplateRef<any>;\n  @Input() height: number = 280;\n\n}\n","<div class=\"stepper-container\">\n\n  <div class=\"stepper-header mb-16 flex-row flex-between p-relative\">\n    <div class=\"step pr-12 fx-row-vert-cent\"\n         *ngFor=\"let step of stepHeaders; let i=index\"\n         [class.active]=\"activeStep === i\"\n         [class.passed]=\"activeStep > i\"\n         [class.pl-12]=\"i !== 0\">\n      <span class=\"mr-8 border-rad-4 text-center\"\n            [ngClass]=\"{ 'mina-icon f-20': activeStep > i }\">{{ activeStep < i + 1 ? i + 1 : 'check_small' }}</span>\n      <span>{{ step }}</span>\n    </div>\n  </div>\n\n  <div class=\"stepper-body w-100 mt-8 overflow-hidden flex-column flex-grow\"\n       [style.height.px]=\"height\">\n    <ng-container *ngTemplateOutlet=\"contentHeaderInfoTemplate\"></ng-container>\n    <div class=\"p-relative flex-grow flex-column\">\n      <div *ngFor=\"let step of steps; let i=index\"\n           class=\"body-step p-absolute h-100 w-100\"\n           [class.active]=\"activeStep === i\"\n           [class.passed]=\"activeStep > i\">\n        <ng-container *ngTemplateOutlet=\"step\"></ng-container>\n      </div>\n    </div>\n  </div>\n\n  <div class=\"stepper-footer\">\n    <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n  </div>\n\n</div>\n","import { ChangeDetectionStrategy, Component, Input, TemplateRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OpenminaSharedModule } from '../../openmina-shared.module';\nimport { REQUIRED } from '../../constants/angular';\n\n\n@Component({\n    selector: 'mina-side-panel-stepper',\n    templateUrl: './mina-side-panel-stepper.component.html',\n    styleUrls: ['./mina-side-panel-stepper.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [CommonModule, OpenminaSharedModule],\n    host: { class: 'w-100 h-100 p-relative overflow-hidden flex-column' }\n})\nexport class MinaSidePanelStepperComponent {\n  /**\n   * @description zero-based index of the active step\n   */\n  @Input(REQUIRED) activeStep: number = 0;\n  @Input(REQUIRED) steps: TemplateRef<void>[];\n}\n","<div class=\"step p-absolute w-100 h-100 flex-column\"\n\t\t *ngFor=\"let step of steps; let i = index\"\n\t\t [class.active]=\"activeStep === i\"\n\t\t [class.before]=\"activeStep > i\"\n\t\t [class.after]=\"activeStep < i\">\n\t<ng-container *ngTemplateOutlet=\"step\"></ng-container>\n</div>\n","export function isStringAValidJson(str: string): boolean {\n  try {\n    JSON.parse(str);\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\nexport function downloadJson(toDownload: object | string, fileName: string): void {\n  const jsonString = typeof toDownload === 'object' ? JSON.stringify(toDownload) : toDownload;\n  const href = 'data:text/json;charset=UTF-8,' + encodeURIComponent(jsonString);\n  downloadFromAnchorElement(href, fileName);\n}\n\nexport function downloadJsonFromURL(url: string, fileName: string, cancelCallback: () => boolean, element?: HTMLElement): void {\n  if (element) {\n    element.textContent = 'Saving ...';\n  }\n  fetch(url)\n    .then(response => response.blob())\n    .then((blob: Blob) => {\n      if (!cancelCallback()) {\n        const blobURL = URL.createObjectURL(blob);\n        downloadFromAnchorElement(blobURL, fileName);\n      }\n      if (element) {\n        element.textContent = 'Save JSON';\n      }\n    });\n}\n\nfunction downloadFromAnchorElement(href: string, fileName: string): void {\n  const element: HTMLAnchorElement = document.createElement('a');\n  element.href = href;\n  element.classList.add('d-none');\n  element.download = fileName;\n  document.body.appendChild(element);\n  element.click();\n  document.body.removeChild(element);\n}\n","import { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OpenminaEagerSharedModule } from '../../openmina-eager-shared.module';\nimport { ExpandTracking, MinaJsonViewerComponent } from '../mina-json-viewer/mina-json-viewer.component';\nimport { downloadJson } from '../../helpers/user-input.helper';\nimport { REQUIRED } from '../../constants/angular';\nimport { HorizontalMenuComponent } from '../horizontal-menu/horizontal-menu.component';\n\n@Component({\n    selector: 'mina-json-console',\n    imports: [MinaJsonViewerComponent, OpenminaEagerSharedModule, CommonModule, HorizontalMenuComponent],\n    templateUrl: './json-console.component.html',\n    styleUrls: ['./json-console.component.scss']\n})\nexport class JsonConsoleComponent implements OnChanges {\n\n  @Input(REQUIRED) json: object | string | number | Array<any> | null | undefined;\n  @Input(REQUIRED) fileName: string;\n  @Input() expanded: boolean = false;\n  @Input() saveBinBtn: boolean = false;\n  @Input() keepExpandingHistory: boolean = true;\n\n  @Output() onDownloadBin: EventEmitter<void> = new EventEmitter<void>();\n\n  jsonString: string;\n  expandTracking: ExpandTracking = {};\n\n  @ViewChild(MinaJsonViewerComponent) private minaJsonViewer: MinaJsonViewerComponent;\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['json']) {\n      setTimeout(() => this.jsonString = JSON.stringify(this.json), 400);\n    }\n  }\n\n  downloadJson(): void {\n    downloadJson(this.jsonString, this.fileName + '.json');\n  }\n\n  expandEntireJSON(): void {\n    this.expandTracking = this.minaJsonViewer.toggleAll(true);\n  }\n\n  collapseEntireJSON(): void {\n    this.expandTracking = this.minaJsonViewer.toggleAll(false);\n  }\n\n  downloadBin(): void {\n    this.onDownloadBin.emit();\n  }\n}\n","<div class=\"h-lg flex-row pb-10\">\n\t<mina-horizontal-menu [template]=\"buttons\" [clz]=\"'pl-12 pr-12'\"></mina-horizontal-menu>\n\t<ng-template #buttons>\n\t\t<button class=\"btn-primary mr-8\" (click)=\"downloadJson()\">Save</button>\n\t\t<button class=\"btn-primary mr-8\" (click)=\"downloadBin()\" *ngIf=\"saveBinBtn\">Save Bin</button>\n\t\t<button class=\"btn-primary mr-8\" [copyToClipboard]=\"jsonString\">Copy</button>\n\t\t<ng-container *ngIf=\"keepExpandingHistory\">\n\t\t\t<button class=\"btn-primary mr-8\" (click)=\"collapseEntireJSON()\">Collapse All</button>\n\t\t\t<button class=\"btn-primary\" (click)=\"expandEntireJSON()\">Expand All</button>\n\t\t</ng-container>\n\t</ng-template>\n</div>\n<div class=\"flex-column h-minus-lg overflow-y-auto pr-5\">\n\t<mina-json-viewer [json]=\"json || {}\"\n\t\t\t\t\t\t\t\t\t\t[expandTracking]=\"expandTracking\"\n\t\t\t\t\t\t\t\t\t\t[expanded]=\"expanded\"></mina-json-viewer>\n</div>\n","export enum ThemeType {\n  DARK = 'dark',\n  LIGHT = 'light'\n}\n","export interface ThemeCssCategory {\n  base: { [p: BaseCssVariable]: string };\n  success: { [p: SuccessCssVariable]: string };\n  aware: { [p: AwareCssVariable]: string };\n  warn: { [p: WarnCssVariable]: string };\n  selected: { [p: SelectedCssVariable]: string };\n  special: { [p: SpecialCssVariable]: string };\n  chart: { [p: ChartCssVariable]: string };\n  code: { [p: CodeCssVariable]: string };\n  cta: { [p: CtaCssVariable]: string };\n}\n\nexport const BASE_CSS_PREFIX = '--base-';\nexport const SUCCESS_CSS_PREFIX = '--success-';\nexport const AWARE_CSS_PREFIX = '--aware-';\nexport const WARN_CSS_PREFIX = '--warn-';\nexport const SELECTED_CSS_PREFIX = '--selected-';\nexport const SPECIAL_CSS_PREFIX = '--special-';\nexport const CHART_CSS_PREFIX = '--chart-';\nexport const CODE_CSS_PREFIX = '--code-';\nexport const CTA_CSS_PREFIX = '--cta-';\n\ntype BaseCssVariable = `${typeof BASE_CSS_PREFIX}${string}`;\ntype SuccessCssVariable = `${typeof SUCCESS_CSS_PREFIX}${string}`;\ntype AwareCssVariable = `${typeof AWARE_CSS_PREFIX}${string}`;\ntype WarnCssVariable = `${typeof WARN_CSS_PREFIX}${string}`;\ntype SelectedCssVariable = `${typeof SELECTED_CSS_PREFIX}${string}`;\ntype SpecialCssVariable = `${typeof SPECIAL_CSS_PREFIX}${string}`;\ntype ChartCssVariable = `${typeof CHART_CSS_PREFIX}${string}`;\ntype CodeCssVariable = `${typeof CODE_CSS_PREFIX}${string}`;\ntype CtaCssVariable = `${typeof CTA_CSS_PREFIX}${string}`;\n","import { APP_INITIALIZER, Inject, Injectable, Provider, Renderer2, RendererFactory2 } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { Theme } from '../types/core/theme/theme.type';\nimport { ThemeType } from '../types/core/theme/theme-types.type';\nimport {\n  AWARE_CSS_PREFIX,\n  BASE_CSS_PREFIX,\n  CHART_CSS_PREFIX,\n  CODE_CSS_PREFIX,\n  CTA_CSS_PREFIX,\n  SELECTED_CSS_PREFIX,\n  SPECIAL_CSS_PREFIX,\n  SUCCESS_CSS_PREFIX,\n  ThemeCssCategory,\n  WARN_CSS_PREFIX,\n} from '../types/core/theme/theme-css-category.type';\nimport { any } from '../helpers/values.helper';\nimport { getLocalStorage } from '../helpers/browser.helper';\n\nconst DARK_PALETTE: Theme = {\n  name: ThemeType.DARK,\n  categories: {\n    base: {\n      [`${BASE_CSS_PREFIX}primary`]: 'rgba(255,255,255,0.8)',\n      [`${BASE_CSS_PREFIX}secondary`]: 'rgba(255,255,255,0.65)',\n      [`${BASE_CSS_PREFIX}tertiary`]: 'rgba(255,255,255,0.4)',\n      [`${BASE_CSS_PREFIX}tertiary2`]: 'rgba(255,255,255,0.2)',\n      [`${BASE_CSS_PREFIX}divider`]: 'rgba(255,255,255,0.07)',\n      [`${BASE_CSS_PREFIX}container`]: 'rgba(255,255,255,0.05)',\n      [`${BASE_CSS_PREFIX}surface`]: '#141414',\n      [`${BASE_CSS_PREFIX}background`]: '#0d0d0d',\n      [`${BASE_CSS_PREFIX}surface-top`]: '#202020',\n    },\n    success: {\n      [`${SUCCESS_CSS_PREFIX}primary`]: '#81e06c',\n      [`${SUCCESS_CSS_PREFIX}secondary`]: 'rgba(129,224,108,0.6)',\n      [`${SUCCESS_CSS_PREFIX}tertiary`]: 'rgba(129,224,108,0.4)',\n      [`${SUCCESS_CSS_PREFIX}divider`]: 'rgba(129,224,108,0.1)',\n      [`${SUCCESS_CSS_PREFIX}container`]: 'rgba(129,224,108,0.05)',\n    },\n    aware: {\n      [`${AWARE_CSS_PREFIX}primary`]: '#ffcc00',\n      [`${AWARE_CSS_PREFIX}secondary`]: 'rgba(255,204,0,0.6)',\n      [`${AWARE_CSS_PREFIX}tertiary`]: 'rgba(255,204,0,0.4)',\n      [`${AWARE_CSS_PREFIX}container`]: 'rgba(255,204,0,0.1)',\n    },\n    warn: {\n      [`${WARN_CSS_PREFIX}primary`]: '#ea4646',\n      [`${WARN_CSS_PREFIX}secondary`]: 'rgba(234,70,70,0.6)',\n      [`${WARN_CSS_PREFIX}tertiary`]: 'rgba(234,70,70,0.4)',\n      [`${WARN_CSS_PREFIX}container`]: 'rgba(234,70,70,0.1)',\n    },\n    selected: {\n      [`${SELECTED_CSS_PREFIX}primary`]: '#61aeee',\n      [`${SELECTED_CSS_PREFIX}secondary`]: 'rgba(97,174,238,0.6)',\n      [`${SELECTED_CSS_PREFIX}tertiary`]: 'rgba(97,174,238,0.4)',\n      [`${SELECTED_CSS_PREFIX}container`]: 'rgba(97,174,238,0.1)',\n    },\n    special: {\n      [`${SPECIAL_CSS_PREFIX}surface`]: '#000000',\n      [`${SPECIAL_CSS_PREFIX}on-surface`]: 'rgba(255,255,255,0.8)',\n      [`${SPECIAL_CSS_PREFIX}overlay`]: 'rgba(0,0,0,0.5)',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-1-primary`]: '#927fb9',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-1-secondary`]: 'rgba(146,127,185,0.6)',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-1-tertiary`]: 'rgba(146,127,185,0.4)',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-1-container`]: 'rgba(146,127,185,0.1)',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-2-primary`]: '#59bfb5',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-2-secondary`]: 'rgba(89,191,181,0.6)',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-2-tertiary`]: 'rgba(89,191,181,0.4)',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-2-container`]: 'rgba(123,204,196,0.1)',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-3-primary`]: '#acdea0',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-3-secondary`]: 'rgba(204,235,197,0.6)',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-3-tertiary`]: 'rgba(204,235,197,0.4)',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-3-container`]: 'rgba(204,235,197,0.1)',\n      [`${SPECIAL_CSS_PREFIX}table-hover`]: '#252525',\n      [`${SPECIAL_CSS_PREFIX}node`]: '#1F281D',\n      [`${SPECIAL_CSS_PREFIX}node-selected`]: '#558E49',\n    },\n    chart: {\n      [`${CHART_CSS_PREFIX}yellow-red-5`]: '#b10026',\n      [`${CHART_CSS_PREFIX}yellow-red-4`]: '#e31a1c',\n      [`${CHART_CSS_PREFIX}yellow-red-3`]: '#fc4e2a',\n      [`${CHART_CSS_PREFIX}yellow-red-2`]: '#fd8d3c',\n      [`${CHART_CSS_PREFIX}yellow-red-1`]: '#feb24c',\n      [`${CHART_CSS_PREFIX}yellow-red-0`]: '#fed976',\n      [`${CHART_CSS_PREFIX}yellow-red-grey`]: '#b9ae90',\n      [`${CHART_CSS_PREFIX}green-blue-5`]: '#08589e',\n      [`${CHART_CSS_PREFIX}green-blue-4`]: '#2b8cbe',\n      [`${CHART_CSS_PREFIX}green-blue-3`]: '#4eb3d3',\n      [`${CHART_CSS_PREFIX}green-blue-2`]: '#7bccc4',\n      [`${CHART_CSS_PREFIX}green-blue-1`]: '#a8ddb5',\n      [`${CHART_CSS_PREFIX}green-blue-0`]: '#ccebc5',\n      [`${CHART_CSS_PREFIX}classic-yellow`]: '#ffcc00',\n      [`${CHART_CSS_PREFIX}classic-yellow-light`]: '#ffeda3',\n      [`${CHART_CSS_PREFIX}classic-purple`]: '#927fb9',\n      [`${CHART_CSS_PREFIX}classic-purple-light`]: '#bba4d1',\n      [`${CHART_CSS_PREFIX}classic-blue`]: '#3399cc',\n      [`${CHART_CSS_PREFIX}classic-blue-light`]: '#99cce5',\n    },\n    code: {\n      [`${CODE_CSS_PREFIX}red`]: '#f0766d',\n      [`${CODE_CSS_PREFIX}green`]: '#85f297',\n      [`${CODE_CSS_PREFIX}yellow`]: '#f5f8a8',\n      [`${CODE_CSS_PREFIX}blue`]: '#abc4f6',\n      [`${CODE_CSS_PREFIX}magenta`]: '#f299ce',\n      [`${CODE_CSS_PREFIX}teal`]: '#abebfc',\n      [`${CODE_CSS_PREFIX}purple`]: '#9d8ee7',\n    },\n    cta: {\n      [`${CTA_CSS_PREFIX}primary`]: '#0d0d0d',\n      [`${CTA_CSS_PREFIX}secondary`]: 'rgba(13,13,13,0.6)',\n      [`${CTA_CSS_PREFIX}container`]: '#5bb3fb',\n    },\n  },\n};\n\nconst LIGHT_PALETTE: Theme = {\n  name: ThemeType.LIGHT,\n  categories: {\n    base: {\n      [`${BASE_CSS_PREFIX}primary`]: '#191A1A',\n      [`${BASE_CSS_PREFIX}secondary`]: 'rgba(0,0,0,0.75)',\n      [`${BASE_CSS_PREFIX}tertiary`]: 'rgba(0,0,0,0.6)',\n      [`${BASE_CSS_PREFIX}tertiary2`]: 'rgba(0,0,0,0.2)',\n      [`${BASE_CSS_PREFIX}divider`]: 'rgba(0,0,0,0.1)',\n      [`${BASE_CSS_PREFIX}container`]: 'rgba(0,0,0,0.06)',\n      [`${BASE_CSS_PREFIX}surface`]: '#ffffff',\n      [`${BASE_CSS_PREFIX}background`]: '#eeeeee',\n      [`${BASE_CSS_PREFIX}surface-top`]: '#f5f5f5',\n    },\n    success: {\n      [`${SUCCESS_CSS_PREFIX}primary`]: '#3A8A28',\n      [`${SUCCESS_CSS_PREFIX}secondary`]: 'rgba(58,138,40,0.8)',\n      [`${SUCCESS_CSS_PREFIX}tertiary`]: 'rgba(58,138,40,0.6)',\n      [`${SUCCESS_CSS_PREFIX}divider`]: 'rgba(58,138,40,0.25)',\n      [`${SUCCESS_CSS_PREFIX}container`]: 'rgba(58,138,40,0.15)',\n    },\n    aware: {\n      [`${AWARE_CSS_PREFIX}primary`]: '#ffcc00',\n      [`${AWARE_CSS_PREFIX}secondary`]: 'rgba(255,204,0,0.6)',\n      [`${AWARE_CSS_PREFIX}tertiary`]: 'rgba(255,204,0,0.4)',\n      [`${AWARE_CSS_PREFIX}container`]: 'rgba(255,204,0,0.1)',\n    },\n    warn: {\n      [`${WARN_CSS_PREFIX}primary`]: '#bb1515',\n      [`${WARN_CSS_PREFIX}secondary`]: 'rgba(187,21,21,0.6)',\n      [`${WARN_CSS_PREFIX}tertiary`]: 'rgba(187,21,21,0.4)',\n      [`${WARN_CSS_PREFIX}container`]: 'rgba(187,21,21,0.1)',\n    },\n    selected: {\n      [`${SELECTED_CSS_PREFIX}primary`]: '#0c8ae4',\n      [`${SELECTED_CSS_PREFIX}secondary`]: 'rgba(12,138,228,0.6)',\n      [`${SELECTED_CSS_PREFIX}tertiary`]: 'rgba(12,138,228,0.45)',\n      [`${SELECTED_CSS_PREFIX}container`]: 'rgba(12,138,228,0.1)',\n    },\n    special: {\n      [`${SPECIAL_CSS_PREFIX}surface`]: '#000000',\n      [`${SPECIAL_CSS_PREFIX}on-surface`]: 'rgba(255,255,255,0.8)',\n      [`${SPECIAL_CSS_PREFIX}overlay`]: 'rgba(13,13,13,0.4)',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-1-primary`]: '#927fb9',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-1-secondary`]: 'rgba(146,127,185,0.6)',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-1-tertiary`]: 'rgba(146,127,185,0.4)',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-1-container`]: 'rgba(146,127,185,0.1)',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-2-primary`]: '#59bfb5',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-2-secondary`]: 'rgba(89,191,181,0.6)',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-2-tertiary`]: 'rgba(89,191,181,0.4)',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-2-container`]: 'rgba(123,204,196,0.1)',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-3-primary`]: '#acdea0',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-3-secondary`]: 'rgba(204,235,197,0.6)',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-3-tertiary`]: 'rgba(204,235,197,0.4)',\n      [`${SPECIAL_CSS_PREFIX}selected-alt-3-container`]: 'rgba(204,235,197,0.1)',\n      [`${SPECIAL_CSS_PREFIX}table-hover`]: '#ededed',\n      [`${SPECIAL_CSS_PREFIX}node`]: '#1F281D',\n      [`${SPECIAL_CSS_PREFIX}node-selected`]: '#558E49',\n    },\n    chart: {\n      [`${CHART_CSS_PREFIX}yellow-red-5`]: '#b10026',\n      [`${CHART_CSS_PREFIX}yellow-red-4`]: '#e31a1c',\n      [`${CHART_CSS_PREFIX}yellow-red-3`]: '#fc4e2a',\n      [`${CHART_CSS_PREFIX}yellow-red-2`]: '#fd8d3c',\n      [`${CHART_CSS_PREFIX}yellow-red-1`]: '#feb24c',\n      [`${CHART_CSS_PREFIX}yellow-red-0`]: '#fed976',\n      [`${CHART_CSS_PREFIX}yellow-red-grey`]: '#b9ae90',\n      [`${CHART_CSS_PREFIX}green-blue-5`]: '#064479',\n      [`${CHART_CSS_PREFIX}green-blue-4`]: '#216b92',\n      [`${CHART_CSS_PREFIX}green-blue-3`]: '#2e97b8',\n      [`${CHART_CSS_PREFIX}green-blue-2`]: '#59bfb5',\n      [`${CHART_CSS_PREFIX}green-blue-1`]: '#7fcd92',\n      [`${CHART_CSS_PREFIX}green-blue-0`]: '#acdea0',\n      [`${CHART_CSS_PREFIX}classic-yellow`]: '#ffcc00',\n      [`${CHART_CSS_PREFIX}classic-yellow-light`]: '#ffeda3',\n      [`${CHART_CSS_PREFIX}classic-purple`]: '#927fb9',\n      [`${CHART_CSS_PREFIX}classic-purple-light`]: '#bba4d1',\n      [`${CHART_CSS_PREFIX}classic-blue`]: '#3399cc',\n      [`${CHART_CSS_PREFIX}classic-blue-light`]: '#99cce5',\n    },\n    code: {\n      [`${CODE_CSS_PREFIX}red`]: '#cc4a41',\n      [`${CODE_CSS_PREFIX}green`]: '#3f8e6e',\n      [`${CODE_CSS_PREFIX}yellow`]: '#dab03c',\n      [`${CODE_CSS_PREFIX}blue`]: '#488dd2',\n      [`${CODE_CSS_PREFIX}magenta`]: '#c64f87',\n      [`${CODE_CSS_PREFIX}teal`]: '#529f99',\n      [`${CODE_CSS_PREFIX}purple`]: '#9d8ee7',\n    },\n    cta: {\n      [`${CTA_CSS_PREFIX}primary`]: '#ffffff',\n      [`${CTA_CSS_PREFIX}secondary`]: 'rgba(255,255,255,0.6)',\n      [`${CTA_CSS_PREFIX}container`]: '#0c8ae4',\n    },\n  },\n};\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ThemeSwitcherService {\n\n  private readonly renderer: Renderer2;\n  private currentTheme: ThemeType;\n\n  constructor(@Inject(DOCUMENT) private document: Document,\n              rendererFactory: RendererFactory2) {\n    this.renderer = rendererFactory.createRenderer(null, null);\n  }\n\n  get activeTheme(): ThemeType {\n    return this.currentTheme;\n  }\n\n  changeTheme(): void {\n    const theme: ThemeType = this.document.body.classList.contains(ThemeType.LIGHT) ? ThemeType.DARK : ThemeType.LIGHT;\n    this.currentTheme = theme;\n    const transitionToken: string = 'theme-transition';\n\n    this.document.body.classList.add(transitionToken);\n    this.document.body.classList.remove(ThemeType.DARK, ThemeType.LIGHT);\n    this.document.body.classList.add(theme);\n\n    getLocalStorage()?.setItem('theme', theme);\n    setTimeout(() => this.document.body.classList.remove(transitionToken), 700);\n  }\n\n  loadThemes(): Promise<void> {\n    const activeTheme = getLocalStorage()?.getItem('theme') as ThemeType ?? ThemeType.DARK;\n    getLocalStorage()?.setItem('theme', activeTheme);\n    this.currentTheme = activeTheme;\n    this.document.body.classList.add(activeTheme);\n    return new Promise<void>((resolve) => {\n      const style = this.renderer.createElement('style');\n      style.type = 'text/css';\n      style.textContent = this.buildThemesCss();\n      style.onload = () => resolve();\n      this.renderer.appendChild(this.document.head, style);\n    });\n  }\n\n  private buildThemesCss(): string {\n    const THEMES = [DARK_PALETTE, LIGHT_PALETTE];\n    let css = '';\n\n    THEMES.forEach((theme: Theme) => {\n      css += `.${theme.name}{`;\n      Object.keys(theme.categories).forEach((key: string) => {\n        Object.keys(theme.categories[key as keyof ThemeCssCategory]).forEach((name: string) => {\n          css += `${name}:${any(theme.categories[key as keyof ThemeCssCategory])[name]};`;\n        });\n      });\n      css += '}';\n    });\n\n    return css;\n  }\n}\n\nfunction loadThemes(themeService: ThemeSwitcherService): Function {\n  return () => themeService.loadThemes();\n}\n\nexport const THEME_PROVIDER: Provider = {\n  provide: APP_INITIALIZER,\n  useFactory: loadThemes,\n  deps: [ThemeSwitcherService],\n  multi: true,\n};\n","import { Injectable } from '@angular/core';\nimport { filter, Observable, Subject } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class GlobalErrorHandlerService {\n\n  private readonly error$: Subject<string> = new Subject<string>();\n\n  handleError(error: any) {\n    const value = error?.message.toString();\n    this.error$.next(value);\n  }\n\n  get errors$(): Observable<string> {\n    return this.error$.asObservable().pipe(filter(Boolean));\n  }\n}\n","import { createEffect } from '@ngrx/effects';\nimport { Store, Action } from '@ngrx/store';\nimport { map, Observable, ObservedValueOf, OperatorFunction } from 'rxjs';\nimport { Selector } from '@ngrx/store/src/models';\nimport { withLatestFrom } from 'rxjs/operators';\nimport { concatLatestFrom } from '@ngrx/operators';\n\nexport const createNonDispatchableEffect = (source: () => any) => createEffect(source, { dispatch: false });\n\n// export const selectActionAndState = <S, A>(store: Store<S>, selector: Selector<S, any>): OperatorFunction<A, { action: A; state: S; }> =>\n//   withLatestFrom(\n//     store.select<S>(selector),\n//     (action: A, state: ObservedValueOf<Store<S>>): { action: A, state: S } => ({ action, state }),\n//   );\n\n\nexport const selectActionAndState = <S, A>(store: Store<S>, selector: Selector<S, any>): OperatorFunction<A, {\n  action: A;\n  state: S\n}> => (\n  source$: Observable<A>,\n): Observable<{ action: A; state: S }> =>\n  source$.pipe(\n    concatLatestFrom(() => store.select(selector)),\n    map(([action, state]: [A, S]) => ({ action, state })),\n  );\n\n// export const selectLatestStateSlice = <R extends object, S, A>(store: Store<S>, selector: Selector<S, any>, path: string): OperatorFunction<A, R> =>\n//   withLatestFrom(\n//     store.select<S>(selector),\n//     (action: A, state: ObservedValueOf<Store<S>>): R => path.split('.').reduce((acc: R, key: string) => acc[key as keyof R], state as unknown as R),\n//   );\n\nexport const selectLatestStateSlice = <R extends object, S, A>(\n  store: Store<S>,\n  selector: Selector<S, any>,\n  path: string,\n): OperatorFunction<A, { action: A; state: R }> => (source$: Observable<A>): Observable<{ action: A; state: R }> =>\n  source$.pipe(\n    selectActionAndState(store, selector),\n    map(({ action, state }: { action: A; state: S }) => ({\n      action,\n      state: path.split('.').reduce((acc: any, key: string) => acc[key], state),\n    })),\n  );\n","import { Store, Action } from '@ngrx/store';\nimport { Selector } from '@ngrx/store/src/models';\nimport { OperatorFunction } from 'rxjs';\nimport { FeatureAction } from '../types/store/feature-action.type';\nimport { selectActionAndState, selectLatestStateSlice } from '../constants/store-functions';\n\nexport abstract class MinaBaseEffect<A extends FeatureAction<any>, State> {\n\n  protected readonly latestActionState = <Action extends A>(): OperatorFunction<Action, { action: Action; state: State; }> => selectActionAndState<State, Action>(this.store, this.selector);\n  protected readonly latestStateSlice = <Slice extends object, Action>(path: string): OperatorFunction<Action, {\n    action: Action;\n    state: Slice\n  }> => selectLatestStateSlice<Slice, State, Action>(this.store, this.selector, path);\n\n  protected constructor(protected store: Store<State>,\n                        private selector: Selector<State, any>) { }\n}\n","import { Directive, OnInit, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { BaseStoreDispatcher } from './base-store-dispatcher.class';\nimport { TableColumnList } from '../types/shared/table-head-sorting.type';\nimport { MinaTableComponent } from '../components/mina-table/mina-table.component';\n\n@Directive()\nexport abstract class MinaTableWrapper<T extends object, State> extends BaseStoreDispatcher<State> implements OnInit {\n\n  protected abstract readonly tableHeads: TableColumnList<T>;\n\n  @ViewChild('rowTemplate') protected rowTemplate: TemplateRef<{ row: T, i: number }>;\n  @ViewChild('minaTable', { read: ViewContainerRef }) protected containerRef: ViewContainerRef;\n\n  public table: MinaTableComponent<T>;\n\n  async ngOnInit(): Promise<void> {\n    await import('../components/mina-table/mina-table.component').then(c => {\n      this.table = this.containerRef.createComponent(c.MinaTableComponent<T>).instance;\n      this.table.tableHeads = this.tableHeads;\n      this.table.rowTemplate = this.rowTemplate;\n      this.table.rowClickCallback = (row: T) => this.onRowClick(row);\n      this.setupTable();\n      this.table.init();\n    });\n  }\n\n  protected checkViewport(isMobile: boolean): void {\n    this.table.checkViewport(isMobile);\n  }\n\n  protected abstract setupTable(): void;\n\n  protected onRowClick(row: T): void { }\n}\n","import { SortDirection, TableSort } from '../types/shared/table-sort.type';\n\nexport function sort<T = any>(inpArray: T[], sort: TableSort<T>, strings: Array<keyof T>, sortNulls: boolean = false): T[] {\n  const sortProperty = sort.sortBy;\n  const isStringSorting = strings.includes(sortProperty);\n  const array: T[] = [...inpArray];\n\n  let toBeSorted: T[];\n  let toNotBeSorted: T[] = [];\n  if (sortNulls) {\n    toBeSorted = array;\n  } else {\n    toBeSorted = isStringSorting ? array : array.filter(e => e[sortProperty] !== undefined && e[sortProperty] !== null);\n    toNotBeSorted = isStringSorting ? [] : array.filter(e => e[sortProperty] === undefined || e[sortProperty] === null);\n  }\n\n  if (isStringSorting) {\n    const stringSort = (o1: T, o2: T) => {\n      const s2 = (o2[sortProperty] || '') as string;\n      const s1 = (o1[sortProperty] || '') as string;\n      return sort.sortDirection === SortDirection.DSC\n        ? (s2).localeCompare(s1)\n        : s1.localeCompare(s2);\n    };\n    toBeSorted.sort(stringSort);\n  } else {\n    const numberSort = (o1: T, o2: T): number => {\n      const o2Sort = (o2[sortProperty] ?? Number.MAX_VALUE) as number;\n      const o1Sort = (o1[sortProperty] ?? Number.MAX_VALUE) as number;\n      return sort.sortDirection === SortDirection.DSC\n        ? o2Sort - o1Sort\n        : o1Sort - o2Sort;\n    };\n    toBeSorted.sort(numberSort);\n  }\n\n  return [...toBeSorted, ...toNotBeSorted];\n}\n\nexport function lastItem<T = any>(array: T[]): T {\n  return array[array.length - 1];\n}\n\nexport function toggleItem<T>(array: T[], item: T, comparator: (curr: T) => boolean = (curr: T) => curr === item): T[] {\n  const index = array.findIndex(comparator);\n  if (index !== -1) {\n    array = [...array.slice(0, index), ...array.slice(index + 1)];\n  } else {\n    array = [...array, item];\n  }\n  return array;\n}\n\nexport function removeLast<T>(arr: T[]): T[] {\n  return arr.slice(0, arr.length - 1);\n}\n","export const removeParamsFromURL = (path: string): string => {\n  if (path?.includes('?')) {\n    return path.split('?')[0];\n  }\n  return path;\n};\n","import { MonoTypeOperatorFunction, pipe, tap } from 'rxjs';\n\nexport function log<T>(): MonoTypeOperatorFunction<T> {\n  return pipe(tap(v => console.log(v)));\n}\n","import { RouterStateSerializer } from '@ngrx/router-store';\nimport { ActivatedRouteSnapshot, Data, Params, RouterStateSnapshot } from '@angular/router';\nimport { MergedRoute } from './merged-route';\n\n\nexport class MergedRouterStateSerializer implements RouterStateSerializer<MergedRoute> {\n  serialize(routerState: RouterStateSnapshot): MergedRoute {\n    return {\n      url: routerState.url,\n      params: mergeRouteParams(routerState.root, r => r.params),\n      queryParams: mergeRouteParams(routerState.root, r => r.queryParams),\n      data: mergeRouteData(routerState.root),\n    };\n  }\n}\n\nfunction mergeRouteParams(route: ActivatedRouteSnapshot, getter: (r: ActivatedRouteSnapshot) => Params): Params {\n  if (!route) {\n    return {};\n  }\n  const currentParams = getter(route);\n  const primaryChild = route.children.find(c => c.outlet === 'primary') || route.firstChild;\n  return { ...currentParams, ...mergeRouteParams(primaryChild, getter) };\n}\n\nfunction mergeRouteData(route: ActivatedRouteSnapshot): Data {\n  if (!route) {\n    return {};\n  }\n\n  const currentData = route.data;\n  const primaryChild = route.children.find(c => c.outlet === 'primary') || route.firstChild;\n  return { ...currentData, ...mergeRouteData(primaryChild) };\n}\n","import { NgModule } from '@angular/core';\nimport { routerReducer, RouterStateSerializer, StoreRouterConnectingModule } from '@ngrx/router-store';\nimport { StoreModule } from '@ngrx/store';\nimport { MergedRouterStateSerializer } from './merged-route-serialzer';\n\nexport const routerStateConfig = {\n  stateKey: 'router', // state-slice name for routing state\n};\n\n@NgModule({\n  imports: [\n    StoreModule.forFeature(routerStateConfig.stateKey, routerReducer),\n    StoreRouterConnectingModule.forRoot(routerStateConfig),\n  ],\n  exports: [\n    StoreModule,\n    StoreRouterConnectingModule\n  ],\n  providers: [\n    {\n      provide: RouterStateSerializer,\n      useClass: MergedRouterStateSerializer,\n    }\n  ]\n})\nexport class NgrxRouterStoreModule {}\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\nimport { routerStateConfig } from './ngrx-router.module';\nimport { MergedRoute, MergedRouteReducerState } from './merged-route';\n\nconst getRouterReducerState = createFeatureSelector<MergedRouteReducerState>(routerStateConfig.stateKey);\n\nexport const getMergedRoute = createSelector(getRouterReducerState, (routerReducerState: MergedRouteReducerState): MergedRoute => routerReducerState?.state);\n","export class VirtualScrollActivePage<T> {\n  id?: number;\n  numberOfRecords?: number;\n  start?: T;\n  end?: T;\n  firstPageIdWithFilters?: number;\n  lastPageIdWithFilters?: number;\n  firstPageIdWithTimestamp?: number;\n  lastPageIdWithTimestamp?: number; //this has value only when you hit directly the last page\n}\n","import { AbstractControl, FormControl, FormGroup } from '@angular/forms';\n\nexport class TypedFormGroup<T extends { [K in keyof T]: AbstractControl<any, any>; } = any> extends FormGroup<T> {\n  override get(path: Array<string | number> | string): FormControl | null {\n    return super.get(path) as FormControl;\n  }\n}\n\nexport interface FormDefinitions {\n  [key: string]: AbstractControl;\n}\n","/* MODULES */\nexport * from './lib/openmina-shared.module';\nexport * from './lib/openmina-eager-shared.module';\n\n/* COMPONENTS */\nexport * from './lib/components/mina-table/mina-table.component';\nexport * from './lib/components/bar-graph/bar-graph.component';\nexport * from './lib/components/copy/copy.component';\nexport * from './lib/components/flame-time-graph/flame-time-graph/flame-time-graph.component';\nexport * from './lib/components/flame-time-graph/flame-time-graph-tooltip/flame-time-graph-tooltip.component';\nexport * from './lib/components/horizontal-menu/horizontal-menu.component';\nexport * from './lib/components/horizontal-resizable-container/horizontal-resizable-container.component';\nexport * from './lib/components/interval-select/interval-select.component';\nexport * from './lib/components/mina-json-viewer/mina-json-viewer.component';\nexport * from './lib/components/stepper/stepper.component';\nexport * from './lib/components/mina-side-panel-stepper/mina-side-panel-stepper.component';\nexport * from './lib/components/json-console/json-console.component';\n\n/* DIRECTIVES */\nexport * from './lib/directives/click-outside.directive';\nexport * from './lib/directives/copy-to-clipboard.directive';\nexport * from './lib/directives/mina-tooltip.directive';\n\n/* PIPES */\nexport * from './lib/pipes/plural.pipe';\nexport * from './lib/pipes/readable-date.pipe';\nexport * from './lib/pipes/safe-html.pipe';\nexport * from './lib/pipes/sec-duration.pipe';\nexport * from './lib/pipes/size.pipe';\nexport * from './lib/pipes/thousand.pipe';\nexport * from './lib/pipes/truncate-mid.pipe';\n\n/* SERVICES */\nexport * from './lib/services/tooltip.service';\nexport * from './lib/services/theme-switcher.service';\nexport * from './lib/services/global-error-handler.service';\n\n/* BASE CLASSES */\nexport * from './lib/base-classes/manual-detection.class';\nexport * from './lib/base-classes/mina-base.effect';\nexport * from './lib/base-classes/mina-table-wrapper.class';\nexport * from './lib/base-classes/base-store-dispatcher.class';\n\n/* CONSTANTS */\nexport * from './lib/constants/breakpoint-observer';\nexport * from './lib/constants/store-functions';\nexport * from './lib/constants/unit-measurements';\nexport * from './lib/constants/angular';\n\n/* HELPERS */\nexport * from './lib/helpers/array.helper';\nexport * from './lib/helpers/date.helper';\nexport * from './lib/helpers/graph.helper';\nexport * from './lib/helpers/router.helper';\nexport * from './lib/helpers/values.helper';\nexport * from './lib/helpers/browser.helper';\nexport * from './lib/helpers/observable.helper';\nexport * from './lib/helpers/user-input.helper';\n\n\n/* ROUTER */\nexport * from './lib/router/router-state.selectors';\nexport * from './lib/router/merged-route';\nexport * from './lib/router/ngrx-router.module';\nexport * from './lib/router/merged-route-serialzer';\n\n/* TYPES */\nexport * from './lib/types/core/theme/theme-types.type';\nexport * from './lib/types/core/theme/theme.type';\nexport * from './lib/types/core/theme/theme-css-category.type';\n\nexport * from './lib/types/shared/table-head-sorting.type';\nexport * from './lib/types/shared/table-sort.type';\nexport * from './lib/types/shared/virtual-scroll-active-page.type';\nexport * from './lib/types/shared/timestamp-interval.type';\nexport * from './lib/types/shared/typed-form.type';\n\nexport * from './lib/types/store/effect.type';\nexport * from './lib/types/store/feature-action.type';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TooltipService","i3","i1","i2","i6","debounceTime","i2.ClickOutsideDirective","i1.CopyToClipboardDirective"],"mappings":"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"}