{"version":3,"file":"testgorilla-tgo-ui-components-core.mjs","sources":["../../../components/core/language.model.ts","../../../components/core/language.service.ts","../../../components/core/ellipse-text.directive.ts","../../../components/core/ui-translate.pipe.ts","../../../components/core/keyboard-events.model.ts","../../../components/core/hex-to-rgb.ts","../../../components/core/autocomplete-utils.ts","../../../components/core/digits-only.directive.ts","../../../components/core/has-validation-error.pipe.ts","../../../components/core/directives/select-text.directive.ts","../../../components/core/directives/prevent-input.directive.ts","../../../components/core/pipes/includes.pipe.ts","../../../components/core/pipes/transform-item.pipe.ts","../../../components/core/screen-breakpoints.model.ts","../../../components/core/is-mobile.ts","../../../components/core/is-large-tablet.ts","../../../components/core/colors.model.ts","../../../components/core/memoize-func.pipe.ts","../../../components/core/ui-ordinal-suffix.pipe.ts","../../../components/core/truncate.pipe.ts","../../../components/core/data-property-getter.pipe.ts","../../../components/core/dynamic-component.directive.ts","../../../components/core/color-contrast.ts","../../../components/core/alert-bars.utils.ts","../../../components/core/testgorilla-tgo-ui-components-core.ts"],"sourcesContent":["export enum Language {\n  en = 'en',\n  es = 'es',\n  nl = 'nl',\n  fr = 'fr',\n  de = 'de',\n  'it-it' = 'it-it',\n  'ja-jp' = 'ja-jp',\n  'pt-br' = 'pt-br',\n  'da-dk' = 'da-dk',\n  'nb-no' = 'nb-no',\n  'pl-pl' = 'pl-pl',\n  'sv-se' = 'sv-se',\n}\n","import { Injectable } from '@angular/core';\nimport { Language } from './language.model';\nimport { BehaviorSubject, Observable } from 'rxjs';\n//This type enforces all translations are present when some translation needs to live in the frontend\nexport type TranslationMap = { [key in Language]: string };\n\n//This function retrieves all languages from the enum. It is used to initialize transloco\nexport const getAvailableLangs = () => Object.values(Language);\n\n//This type is intended for UI uses only\nexport type UILanguage = { code: Language | string; label: string };\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class LanguageService {\n  static readonly defaultLanguage = Language.en;\n\n  readonly #currentLang$ = new BehaviorSubject(LanguageService.defaultLanguage);\n\n  readonly defaultLanguageList: UILanguage[] = [\n    { code: Language.en, label: 'English' },\n    { code: Language.es, label: 'Spanish' },\n    { code: Language.de, label: 'German' },\n    { code: Language.fr, label: 'French' },\n    { code: Language.nl, label: 'Dutch' },\n    { code: Language['it-it'], label: 'Italian' },\n    { code: Language['ja-jp'], label: 'Japanese' },\n    { code: Language['pt-br'], label: 'Portuguese' },\n    { code: Language['da-dk'], label: 'Danish' },\n    { code: Language['nb-no'], label: 'Norwegian' },\n    { code: Language['pl-pl'], label: 'Polish' },\n    { code: Language['sv-se'], label: 'Swedish' },\n  ];\n\n  setActiveLang(language: Language): void {\n    this.#currentLang$.next(language);\n  }\n\n  getActiveLang(): Observable<Language> {\n    return this.#currentLang$.asObservable();\n  }\n}\n","import { Directive, ElementRef, EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core';\nimport { debounceTime, startWith, Subject, combineLatest } from 'rxjs';\n\n/**\n * Checks if element ellipsis\n */\n@Directive({\n  selector: '[uiEllipseText]',\n  standalone: true,\n})\nexport class EllipseTextDirective implements OnInit {\n  @Input() isMultiline = false;\n  @Input() maxDiffPixels = 0;\n  checkEllipsis$ = new Subject<void>();\n  refreshEllipsis$ = new Subject<void>();\n\n  @Input() set refresh(_: any) {\n    this.refreshEllipsis$.next();\n  }\n\n  @Output() onChangeTextState = new EventEmitter<boolean>();\n\n  @HostListener('window:resize')\n  resize(): void {\n    this.checkEllipsis$.next();\n  }\n\n  constructor(private el: ElementRef) {}\n\n  ngOnInit() {\n    combineLatest([this.checkEllipsis$.pipe(startWith(null)), this.refreshEllipsis$.pipe(startWith(null))])\n      .pipe(debounceTime(100))\n      .subscribe(() => {\n        const textElement = this.el.nativeElement as HTMLElement;\n        this.onChangeTextState.emit(\n          this.isMultiline\n            ? textElement.clientHeight + this.maxDiffPixels < textElement.scrollHeight\n            : textElement.clientWidth + this.maxDiffPixels < textElement.scrollWidth\n        );\n      });\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport en from './assets/i18n/en.json';\nimport es from './assets/i18n/es.json';\nimport de from './assets/i18n/de.json';\nimport * as daDk from './assets/i18n/da-dk.json';\nimport fr from './assets/i18n/fr.json';\nimport * as itIt from './assets/i18n/it-it.json';\nimport * as jaJp from './assets/i18n/ja-jp.json';\nimport * as nbNo from './assets/i18n/nb-no.json';\nimport nl from './assets/i18n/nl.json';\nimport * as plPl from './assets/i18n/pl-pl.json';\nimport * as ptBr from './assets/i18n/pt-br.json';\nimport * as svSe from './assets/i18n/sv-se.json';\nimport { LanguageService } from './language.service';\nimport { map, Observable } from 'rxjs';\n\n/**\n * Used for translations\n */\n@Pipe({\n  name: 'uiTranslate',\n  standalone: true,\n})\nexport class UiTranslatePipe implements PipeTransform {\n  protected readonly LANGS: { [key: string]: any } = {\n    en,\n    es,\n    de,\n    'da-dk': daDk,\n    fr,\n    'it-it': itIt,\n    'ja-jp': jaJp,\n    'nb-no': nbNo,\n    nl,\n    'pl-pl': plPl,\n    'pt-br': ptBr,\n    'sv-se': svSe,\n  };\n\n  constructor(private readonly languageService: LanguageService) {}\n  /**\n   * Finds the translation by keys with interpolation if provided\n   * @param translateKey key, can have multiple keys separated with '.' eg ('KEY', 'FIRST_LVL_KEY.SECOND_LVL_KEY')\n   * @param activeLang current active language\n   * @param interpolationData data that will be used to replace interpolations in translated variant\n   * For example, for translate text like this\n   * 'You have {{attemptsAmount}} attempts left\n   * the interpolation object should be { attemptsAmount: 10 }\n   */\n  transform(translateKey: string, interpolationData?: any): Observable<string> {\n    return this.languageService.getActiveLang().pipe(\n      map(activeLang => {\n        const currentLangObject = JSON.parse(JSON.stringify(this.LANGS[activeLang]));\n        const enLangObject = JSON.parse(JSON.stringify(this.LANGS['en']));\n        const keys = translateKey.split('.');\n        const translation = keys.reduce((acc, currentKey) => acc && acc[currentKey], currentLangObject);\n\n        if (translation) {\n          return this.interpolate(translation, interpolationData);\n        }\n\n        const englishTranslation = keys.reduce((acc, currentKey) => acc && acc[currentKey], enLangObject);\n        return this.interpolate(englishTranslation, interpolationData);\n      })\n    );\n  }\n\n  /**\n   * Used to find and replace interpolation in text\n   * @param translation the translation text\n   * @param interpolationData the interpolation object\n   */\n  private interpolate(translation: string, interpolationData: { [key: string]: any }): string {\n    return translation?.replace(/{{(.*?)}}/g, (match: string, group: string) => {\n      const value = interpolationData[group.trim()] as string;\n      return value ?? match;\n    });\n  }\n}\n","export enum IKeyboardEvent {\n  ENTER = 'Enter',\n  SPACE = ' ',\n  ARROW_DOWN = 'ArrowDown',\n  ARROW_UP = 'ArrowUp',\n  ESCAPE = 'Escape',\n  HOME = 'Home',\n  END = 'End',\n  PAGE_UP = 'PageUp',\n  PAGE_DOWN = 'PageDown',\n}\n","export const hexToRgbWithAlpha = (hex: string, alpha: number = 0.3): string => {\n  hex = hex.replace(/^#/, '');\n\n  const bigint = parseInt(hex, 16);\n  const r = (bigint >> 16) & 255;\n  const g = (bigint >> 8) & 255;\n  const b = bigint & 255;\n\n  return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n};\n","export class AutocompleteUtils {\n  static transformDisplayValue(value: any, textField: string): any {\n    return AutocompleteUtils.isPrimitive(value) ? value : value?.[textField];\n  }\n\n  static filterItems(items: any, inputValue: string, textField?: string, isGroup = false): any {\n    if (!AutocompleteUtils.isPrimitive(items) && textField) {\n      if (isGroup) {\n        return items.filter((group: any) => {\n          group.filteredItems = group.items.filter((item: any) =>\n            item[textField].toLowerCase().includes(inputValue.toLowerCase())\n          );\n          return group.filteredItems.length;\n        });\n      }\n      return items.filter((item: any) => item[textField].toLowerCase().includes(inputValue.toLowerCase()));\n    } else {\n      if (isGroup) {\n        return items.filter(\n          (group: any) =>\n            group.items.filter((item: any) => item.toLowerCase().includes(inputValue.toLowerCase())).length\n        );\n      }\n      return items.filter((item: any) => item.toLowerCase().includes(inputValue.toLowerCase()));\n    }\n  }\n\n  static isPrimitive(value: any): boolean {\n    if (Array.isArray(value)) {\n      return value.some(item => typeof item !== 'object');\n    } else {\n      return typeof value !== 'object';\n    }\n  }\n\n  static isArray(value: any): boolean {\n    return Array.isArray(value);\n  }\n\n  /// NEW\n  static throwInvalidSetupError(): void {\n    throw new Error(\n      `AutocompleteComponent textField/valueField properties are not provided!\\n\n     Items list that has non primitive values requires textField & valueField to be passed.`\n    );\n  }\n\n  static excludeSuggestions(items: any[], excludeItems: any[], valueField?: string): any[] {\n    if (AutocompleteUtils.isPrimitive(items)) {\n      return items?.filter(item => !excludeItems.find(excludeItem => excludeItem === item));\n    } else {\n      return valueField\n        ? items?.filter(item => !excludeItems.find(excludeItem => excludeItem[valueField] === item[valueField]))\n        : [];\n    }\n  }\n\n  static shouldBeObject(value: any, textField: string, valueField: string): boolean {\n    return !!valueField && !!textField && typeof value !== 'object';\n  }\n\n  static createValueItem(value: any, textField: string, valueField: string): any {\n    return AutocompleteUtils.shouldBeObject(value, textField, valueField)\n      ? { [textField]: value, [valueField]: value }\n      : value;\n  }\n\n  static findDuplicate(value: any, selectedValue: any, lookupKey?: string): any {\n    if (AutocompleteUtils.isArray(value)) {\n      return value.find((v: any) => {\n        if (!AutocompleteUtils.isPrimitive(v) && lookupKey) {\n          return v[lookupKey] === selectedValue[lookupKey];\n        }\n        return v === selectedValue;\n      });\n    } else {\n      return value === selectedValue;\n    }\n  }\n\n  static countMatchingWords(words: any[], query: string, textField?: string, isGroup = false): number {\n    const lowerCaseQuery = query.toLowerCase();\n    if (isGroup) {\n      return words.filter(\n        group =>\n          group.items.filter((item: any) =>\n            typeof item === 'object' && textField\n              ? item[textField].toLowerCase().includes(lowerCaseQuery)\n              : item.toLowerCase().includes(lowerCaseQuery)\n          ).length\n      ).length;\n    }\n    const matchingWords = words.filter(word =>\n      typeof word === 'object' && textField\n        ? word[textField].toLowerCase().includes(lowerCaseQuery)\n        : word.toLowerCase().includes(lowerCaseQuery)\n    );\n    return matchingWords.length;\n  }\n}\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\nconst ARROW_DOWN_KEY_CODE = 40;\n\n@Directive({\n  selector: '[digitsOnly]',\n  standalone: true,\n})\nexport class DigitsOnlyDirective {\n  constructor(private el: ElementRef) {}\n\n  @Input() allowNegative = false;\n  @Input() allowDecimal = false;\n  @Input() allowOnlyDigits = false;\n  regex: RegExp;\n\n  @HostListener('keypress', ['$event'])\n  onKeyPress(event: KeyboardEvent) {\n    this.validate(event, event.key);\n  }\n\n  @HostListener('paste', ['$event'])\n  onPaste(event: Event) {\n    const pastedText = (event as ClipboardEvent) && (event as ClipboardEvent)?.clipboardData?.getData('text/plain'); // Non-IE browsers\n    this.validate(event, pastedText || '');\n  }\n\n  @HostListener('keydown', [`$event`])\n  onKeydown(event: any) {\n    if (!this.allowNegative) {\n      if (event.which === ARROW_DOWN_KEY_CODE && event.target.value && +event.target.value <= 0) {\n        event.preventDefault();\n        return;\n      } else if (event.which === ARROW_DOWN_KEY_CODE && event.target.value === '') {\n        this.el.nativeElement.value = 1;\n        return;\n      }\n    }\n  }\n\n  @HostListener('input', ['$event'])\n  onInput(event: any) {\n    if (!this.allowNegative && event.target.value && +event.target.value < 0) {\n      setTimeout(() => (this.el.nativeElement.value = 0), 0);\n    }\n  }\n\n  validate(event: Event, text: string) {\n    if (this.allowOnlyDigits) {\n      const txtInput = this.el.nativeElement;\n      const newValue =\n        txtInput.value.substring(0, txtInput.selectionStart) + text + txtInput.value.substring(txtInput.selectionEnd);\n      if (!this.regex) {\n        this.regex = // eslint-disable-next-line no-eval\n          eval(\n            `/^${this.allowNegative ? '-?' : ''}${this.allowDecimal ? '((\\\\d+\\\\.?)|(\\\\.?))\\\\d*' : '\\\\d*'}$/g`\n          ) as RegExp;\n      }\n      if (!newValue.match(this.regex)) {\n        event.preventDefault();\n        return;\n      }\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'hasValidationError',\n  standalone: true,\n})\nexport class HasValidationErrorPipe implements PipeTransform {\n  /**\n   * List of the error types that are handled\n   */\n  private readonly errorTypes = ['maxlength', 'minlength', 'min', 'max', 'required', 'email'];\n\n  /**\n   * Checks if the error on the NgControl is in the list of handled error types\n   * @param value\n   */\n  transform(value: Record<string, any> | null | undefined): boolean {\n    return value ? !!Object.keys(value).filter(key => this.errorTypes.includes(key)).length : false;\n  }\n}\n","import { Directive, ElementRef, inject, input, effect } from '@angular/core';\n\nconst escapeRegExp = (str: string): string => str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\n@Directive({\n  selector: '[selectText]',\n  standalone: true,\n})\nexport class SelectTextDirective {\n  selectText = input<string | null>(null);\n\n  private el = inject(ElementRef);\n  private highlighted = false;\n\n  constructor() {\n    effect(() => {\n      this.highlight(this.selectText());\n    });\n  }\n\n  private highlight(term: string | null): void {\n    const el = this.el.nativeElement as HTMLElement;\n\n    if (!term) {\n      // Only restore if we previously replaced Angular's content with highlighted nodes.\n      // Never touch the DOM on init — that destroys Angular's tracked text interpolation\n      // nodes, breaking CDK virtual scroll recycling.\n      if (this.highlighted) {\n        el.replaceChildren(document.createTextNode(el.textContent ?? ''));\n        this.highlighted = false;\n      }\n      return;\n    }\n\n    const plainText = el.textContent ?? '';\n    const escaped = escapeRegExp(term);\n    const regex = new RegExp(escaped, 'gi');\n    const parts = plainText.split(regex);\n    const matches = plainText.match(regex) ?? [];\n\n    const fragment = document.createDocumentFragment();\n    parts.forEach((part, i) => {\n      fragment.appendChild(document.createTextNode(part));\n      if (matches[i]) {\n        const span = document.createElement('span');\n        span.style.fontWeight = 'bold';\n        span.textContent = matches[i];\n        fragment.appendChild(span);\n      }\n    });\n\n    el.replaceChildren(fragment);\n    this.highlighted = true;\n  }\n}\n","import { Directive, HostListener, input } from '@angular/core';\n\n@Directive({\n  selector: '[uiPreventInput]',\n  standalone: true,\n})\nexport class PreventInputDirective {\n  uiPreventInput = input<boolean>(false);\n\n  @HostListener('keydown', ['$event'])\n  onKeyDown(event: KeyboardEvent): void {\n    const allowedKeys = [\n      'ArrowLeft',\n      'ArrowRight',\n      'ArrowUp',\n      'ArrowDown',\n      'Backspace',\n      'Tab',\n      'Delete',\n      'Control',\n      'Shift',\n      'Alt',\n    ];\n    if (!allowedKeys.includes(event.key) && !event.ctrlKey && !event.metaKey && this.uiPreventInput()) {\n      event.preventDefault();\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'includes',\n  standalone: true,\n})\nexport class IncludesPipe implements PipeTransform {\n  transform(\n    value: Record<string, any>,\n    values: Record<string, any> | Record<string, any>[],\n    valueField?: string\n  ): boolean {\n    return Array.isArray(values)\n      ? !!values.find(v => (valueField ? v?.[valueField] === value?.[valueField] : value === v))\n      : valueField\n        ? value?.[valueField] === values?.[valueField]\n        : value === values;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'transformItem',\n  standalone: true,\n})\nexport class TransformItemPipe implements PipeTransform {\n  transform(\n    value: Record<string, any> | Record<string, any>[] | null | undefined,\n    field: string,\n    getValueList: true\n  ): string[];\n  transform(\n    value: Record<string, any> | Record<string, any>[] | null | undefined,\n    field: string,\n    getValueList?: false\n  ): string;\n\n  transform(\n    value: Record<string, any> | Record<string, any>[] | null | undefined,\n    field: string,\n    getValueList: boolean = false\n  ): string | string[] {\n    if (!value) return '';\n\n    if (getValueList) {\n      return Array.isArray(value)\n        ? value.map(item => (field ? (item[field] ?? '') : ''))\n        : field\n          ? (value?.[field] ?? '')\n          : '';\n    }\n\n    if (Array.isArray(value)) {\n      return field ? (value[0]?.[field] ?? '') : '';\n    }\n\n    return field ? (value?.[field] ?? '') : '';\n  }\n}\n","export enum ScreenBreakpoints {\n  MOBILE = 600,\n  TABLET = 1023,\n  LARGE_TABLET = 1280,\n}\n","import { inject, InjectionToken } from '@angular/core';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { map } from 'rxjs';\nimport { ScreenBreakpoints } from './screen-breakpoints.model';\n\nexport const IS_MOBILE_TOKEN = new InjectionToken('Is mobile', {\n  factory: () => {\n    const breakpointObserver = inject(BreakpointObserver);\n    return breakpointObserver.observe(`(max-width: ${ScreenBreakpoints.MOBILE}px)`).pipe(map(v => v.matches));\n  },\n});\n","import { inject, InjectionToken } from '@angular/core';\r\nimport { BreakpointObserver } from '@angular/cdk/layout';\r\nimport { map } from 'rxjs';\r\nimport { ScreenBreakpoints } from './screen-breakpoints.model';\r\n\r\nexport const IS_LARGE_TABLET_TOKEN = new InjectionToken('Is large tablet', {\r\n  factory: () => {\r\n    const breakpointObserver = inject(BreakpointObserver);\r\n    return breakpointObserver.observe(`(max-width: ${ScreenBreakpoints.LARGE_TABLET}px)`).pipe(map(v => v.matches));\r\n  },\r\n});\r\n","export enum Color {\n  // Teal colors\n  TGO_TEAL_60B = '#1C443C',\n  TGO_TEAL_30B = '#31766A',\n  TGO_TEAL_DEFAULT = '#46A997',\n  TGO_TEAL_30W = '#7EC3B6',\n  TGO_TEAL_60W = '#B5DDD5',\n  TGO_TEAL_SECONDARY = '#CBD6CB',\n  TGO_TEAL_90W = '#ECF6F5',\n\n  // Petrol colors\n  TGO_PETROL_60B = '#102930',\n  TGO_PETROL_30B = '#1B4754',\n  TGO_PETROL_DEFAULT = '#276678',\n  TGO_PETROL_30W = '#6894A0',\n  TGO_PETROL_60W = '#A9C2C9',\n  TGO_PETROL_SECONDARY = '#C8D7DE',\n  TGO_PETROL_90W = '#E9F0F1',\n\n  // Error colors\n  TGO_ERROR_60B = '#513131',\n  TGO_ERROR_30B = '#8E5655',\n  TGO_ERROR_60W = '#E3C3C6',\n  TGO_ERROR_SECONDARY = '#F0DAD9',\n  TGO_ERROR_DEFAULT = '#CB7B7A',\n\n  // Warning colors\n  TGO_WARNING_SECONDARY = '#F0D6BB',\n  TGO_WARNING_DEFAULT = '#CCA45F',\n\n  // Black colors - grayscale\n  TGO_BLACK = '#000000',\n  TGO_DARK = '#888888',\n  TGO_MEDIUM = '#E0E0E0',\n  TGO_GREY = '#EDEDED',\n  TGO_LIGHT = '#F6F6F6',\n  TGO_WHITE = '#FFFFFF',\n\n  // Brand colors\n  BRAND_60 = '#A90686',\n  BRAND_50 = '#D410AA',\n  BRAND_40 = '#FF54DA',\n  BRAND_30 = '#FFB3EE',\n  BRAND_20 = '#FFE6FA',\n  BRAND_10 = '#FFF2FC',\n\n  // Grayscale colors\n  GRAYSCALE_50 = '#666666',\n  GRAYSCALE_40 = '#919191',\n  GRAYSCALE_30 = '#D3D3D3',\n  GRAYSCALE_20 = '#E9E9E9',\n  GRAYSCALE_10 = '#F4F4F4',\n\n  // Additional colors\n  BLACK = '#242424',\n\n  // Accent colors\n  ACCENT_20 = '#FFF5ED',\n  ACCENT_10 = '#FFFAF6',\n\n  // Informative colors\n  INFORMATIVE_50 = '#1A47AA',\n  INFORMATIVE_40 = '#0165FC',\n  INFORMATIVE_30 = '#277CFD',\n  INFORMATIVE_20 = '#99C1FE',\n  INFORMATIVE_10 = '#D9E8FF',\n\n  // Success colors\n  SUCCESS_50 = '#3C9A13',\n  SUCCESS_40 = '#56C71A',\n  SUCCESS_30 = '#80D63E',\n  SUCCESS_20 = '#AAE47A',\n  SUCCESS_10 = '#D4F2C3',\n\n  // Error additional colors\n  ERROR_50 = '#E02800',\n  ERROR_40 = '#FF3003',\n  ERROR_30 = '#FF6E4F',\n  ERROR_20 = '#FFAC9A',\n  ERROR_10 = '#FFEAE6',\n\n  // Warning additional colors\n  WARNING_50 = '#D07D00',\n  WARNING_40 = '#FF9A03',\n  WARNING_30 = '#FFC268',\n  WARNING_20 = '#FFE1B3',\n  WARNING_10 = '#FFF5E6',\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n *   USAGE:\n *   {{ argument | memoizeFunc : method [: context] }}\n *\n *   You could provide multiple arguments for the function like that:\n *   {{ [argument1, argument2] | memoizeFunc : method [: context] }}\n *\n *\n *   FUNCTION WITH CONTEXT\n *   We still could have optimization in impure functions with Angular pipes. Just provide context as second parameter\n *   to the memoizeFunc pipe.\n *\n *   {{ argument | memoizeFunc : method : this }}\n *\n *   Alternative variant use 'bind'\n *\n *   {{ argument | memoizeFunc : method.bind(this) }}\n *\n * */\n@Pipe({\n  name: 'memoizeFunc',\n  standalone: true,\n})\nexport class MemoizeFuncPipe implements PipeTransform {\n  transform<T, K>(value: T, handler: (value: T) => K, context?: any): K {\n    if (context) {\n      return handler.call(context, value);\n    }\n\n    return handler(value);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'ordinalSuffix',\n  standalone: true,\n})\nexport class OrdinalSuffixPipe implements PipeTransform {\n  transform(value: number): string {\n    const lastDigit = value % 10;\n    const lastTwoDigits = value % 100;\n\n    if (lastTwoDigits >= 11 && lastTwoDigits <= 13) {\n      return 'PERCENTILE_SUFFIXES.TH';\n    }\n\n    switch (lastDigit) {\n      case 1:\n        return 'PERCENTILE_SUFFIXES.ST';\n      case 2:\n        return 'PERCENTILE_SUFFIXES.ND';\n      case 3:\n        return 'PERCENTILE_SUFFIXES.RD';\n      default:\n        return 'PERCENTILE_SUFFIXES.TH';\n    }\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'truncate',\n  standalone: true,\n})\nexport class TruncatePipe implements PipeTransform {\n  transform(input: any, length?: number, suffix?: string, preserve?: boolean): any {\n    if (typeof input !== 'string') {\n      return input;\n    }\n\n    length = length === undefined ? input.length : length;\n\n    if (input.length <= length) {\n      return input;\n    }\n\n    preserve = preserve || false;\n    suffix = suffix || '';\n    let index = length;\n\n    if (preserve) {\n      if (input.indexOf(' ', length) === -1) {\n        index = input.length;\n      } else {\n        index = input.indexOf(' ', length);\n      }\n    }\n\n    return input.substring(0, index) + suffix;\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'dataPropertyGetter',\n  standalone: true,\n})\nexport class DataPropertyGetterPipe implements PipeTransform {\n  transform(obj: object, keyName: string = '') {\n    return this.getDeepVal(obj, keyName);\n  }\n\n  private getDeepVal(obj: any, path: string) {\n    if (typeof obj === 'undefined' || obj === null) {\n      return '';\n    }\n    const splittedPath = path.split(/[.[\\]\"']{1,2}/);\n    for (let i = 0, l = splittedPath.length; i < l; i++) {\n      if (splittedPath[i] === '') {\n        continue;\n      }\n      obj = obj[splittedPath[i]];\n      if (typeof obj === 'undefined' || obj === null) {\n        return '';\n      }\n    }\n    return obj;\n  }\n}\n","import { ComponentRef, Directive, EventEmitter, Input, OnDestroy, Type, ViewContainerRef } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\ninterface IComponentRenderer {\n  component: Type<any>;\n  inputs?: any;\n  outputs?: { [key: string]: any };\n}\n\n@Directive({\n  selector: '[dynamicComponent]',\n  standalone: true,\n})\nexport class DynamicComponentDirective implements OnDestroy {\n  private subscription = new Subscription();\n  private compRef: ComponentRef<any>;\n\n  @Input() set dynamicComponent(componentRenderer: IComponentRenderer) {\n    if (componentRenderer.component) {\n      this.compRef = this.vcr.createComponent(componentRenderer.component);\n\n      if (componentRenderer.inputs) {\n        // setInput supports both decorator and signal-based inputs; direct instance\n        // assignment overwrites signal inputs (InputSignal functions) with raw values.\n        Object.keys(componentRenderer.inputs).forEach(inputName =>\n          this.compRef.setInput(inputName, componentRenderer.inputs[inputName])\n        );\n      }\n\n      if (componentRenderer.outputs) {\n        Object.keys(componentRenderer.outputs).map(output => {\n          this.subscription.add(\n            (this.compRef.instance[output] as EventEmitter<any>).subscribe(componentRenderer.outputs?.[output])\n          );\n        });\n      }\n    }\n  }\n\n  constructor(private vcr: ViewContainerRef) {}\n\n  ngOnDestroy() {\n    if (this.compRef) {\n      this.compRef.destroy();\n    }\n    this.subscription.unsubscribe();\n  }\n}\n","/**\n * Function for adjusting the lightness of a color based on different events (hover, pressed, disabled).\n * Accepts a hex color, transforms it to HSL, and based on color's L and event darkens or lightens it.\n * Used to manage different colors based on application configuration\n *\n * @param hexColor color in hex format\n * @param typeEvent interaction event\n * @param theme\n */\nexport const adjustLightness = (\n  hexColor: string,\n  typeEvent: 'hover' | 'pressed' | 'disabled',\n  theme: 'new' | 'classic' = 'new'\n): string => {\n  const hexRegex = /^#([0-9A-F]{3}){1,2}$/i;\n  if (hexColor && !hexRegex.test(hexColor)) {\n    throw new Error('Invalid HEX color format');\n  }\n\n  const hslColor = hexToHsl(hexColor);\n  const lightness = hslColor.l * 100;\n\n  if (theme === 'new') {\n    if (lightness > 70 && (typeEvent === 'hover' || typeEvent === 'pressed')) {\n      hslColor.l = clamp(hslColor.l - 10 / 100);\n    } else if (lightness < 30 && (typeEvent === 'hover' || typeEvent === 'pressed')) {\n      hslColor.l = clamp(hslColor.l + 10 / 100);\n    } else if (lightness < 70 && lightness > 30 && (typeEvent === 'hover' || typeEvent === 'pressed')) {\n      hslColor.l = clamp(hslColor.l - 10 / 100);\n    }\n  } else {\n    if (lightness > 70 && typeEvent === 'hover') {\n      hslColor.l = clamp(hslColor.l - 10 / 100);\n    } else if (lightness < 30 && typeEvent === 'hover') {\n      hslColor.l = clamp(hslColor.l + 10 / 100);\n    } else if (lightness < 70 && lightness > 30 && typeEvent === 'hover') {\n      hslColor.l = clamp(hslColor.l - 10 / 100);\n    } else if (lightness > 70 && typeEvent === 'pressed') {\n      hslColor.l = clamp(hslColor.l - 20 / 100);\n    } else if (lightness < 30 && typeEvent === 'pressed') {\n      hslColor.l = clamp(hslColor.l + 30 / 100);\n    } else if (lightness < 70 && lightness > 30 && typeEvent === 'pressed') {\n      hslColor.l = clamp(hslColor.l - 20 / 100);\n    } else if (lightness > 70 && typeEvent === 'disabled') {\n      hslColor.l = clamp(hslColor.l + 10 / 100);\n    } else if (lightness < 30 && typeEvent === 'disabled') {\n      hslColor.l = clamp(hslColor.l + 50 / 100);\n    } else if (lightness < 70 && lightness > 30 && typeEvent === 'disabled') {\n      hslColor.l = clamp(hslColor.l + 20 / 100);\n    }\n  }\n\n  return hslToHex(hslColor);\n};\n\n/**\n * Transforms hex color to HSL in object variation.\n * @param hexColor string value with hex color\n */\nexport const hexToHsl = (hexColor: string): { h: number; s: number; l: number } => {\n  const rgbColor = parseInt(hexColor.slice(1), 16);\n  const r = ((rgbColor >> 16) & 255) / 255;\n  const g = ((rgbColor >> 8) & 255) / 255;\n  const b = (rgbColor & 255) / 255;\n\n  const max = Math.max(r, g, b);\n  const min = Math.min(r, g, b);\n\n  let h = 0;\n  let s;\n  const l = (max + min) / 2;\n\n  if (max === min) {\n    h = s = 0; // grayscale\n  } else {\n    const d = max - min;\n    s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n    switch (max) {\n      case r:\n        h = (g - b) / d + (g < b ? 6 : 0);\n        break;\n      case g:\n        h = (b - r) / d + 2;\n        break;\n      case b:\n        h = (r - g) / d + 4;\n        break;\n    }\n\n    h /= 6;\n  }\n\n  return { h, s, l };\n};\n\n/**\n * Transforms HSL color, represented as an object and transforms it to hex string.\n * @param hslColor accepts the HSL color like an object.\n */\nexport const hslToHex = (hslColor: { h: number; s: number; l: number }): string => {\n  const { h, s, l } = hslColor;\n\n  const hueToRgb = (p: number, q: number, t: number): number => {\n    if (t < 0) {\n      t += 1;\n    }\n    if (t > 1) {\n      t -= 1;\n    }\n    if (t < 1 / 6) {\n      return p + (q - p) * 6 * t;\n    }\n    if (t < 1 / 2) {\n      return q;\n    }\n    if (t < 2 / 3) {\n      return p + (q - p) * (2 / 3 - t) * 6;\n    }\n    return p;\n  };\n\n  const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n  const p = 2 * l - q;\n\n  const r = hueToRgb(p, q, h + 1 / 3);\n  const g = hueToRgb(p, q, h);\n  const b = hueToRgb(p, q, h - 1 / 3);\n\n  const rgbColor = (Math.round(r * 255) << 16) | (Math.round(g * 255) << 8) | Math.round(b * 255);\n\n  return `#${rgbColor.toString(16).padStart(6, '0')}`;\n};\n\n/**\n * Restricts the value to be within the range [0, 1].\n * @param value\n */\nconst clamp = (value: number): number => Math.min(Math.max(value, 0), 1);\n","import { AlertVariant } from './alert-bar.model';\nimport { Color } from './colors.model';\n\nexport const alertBarsUtil = {\n  //Set css class and iconName according type\n  setIcon: (alertType: string): string => {\n    if (alertType === 'success') {\n      return 'Round-check';\n    }\n    if (alertType === 'info') {\n      return 'Info';\n    }\n    if (alertType === 'warning') {\n      return 'Warning';\n    }\n    if (alertType === 'error') {\n      return 'Error';\n    }\n    if (alertType === 'ai') {\n      return 'Ai-fluent-filled';\n    }\n    return '';\n  },\n\n  // Resolves the icon color per alert type.\n  setIconColor: (alertType: string): Color => {\n    if (alertType === 'ai') {\n      return Color.BRAND_60;\n    }\n    return Color.TGO_BLACK;\n  },\n\n  //Set cssClass for fixed or static position\n  setPosition: (fixed: boolean): string => {\n    if (fixed === true) {\n      return 'fixed';\n    } else {\n      return 'static';\n    }\n  },\n\n  //Set css class for alertbanner\n  setCssClass: (fullWidth: boolean, type: string, position: string, variant: AlertVariant = 'banner'): string => {\n    const isFullWidth = fullWidth ? 'full-width' : '';\n    const _type = variant === 'banner' ? type : type === 'success' ? 'info' : type;\n    return `${_type} ${position} ${isFullWidth} ${variant}`;\n  },\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["daDk","itIt","jaJp","nbNo","plPl","ptBr","svSe","i1.LanguageService"],"mappings":"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;sBAEE;;sBACA;;sBAIA;;sBAIA;;sBAEA,YAAY;uBAAC,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}