@testgorilla/tgo-ui 8.19.1 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. package/components/accordion/index.d.ts +7 -7
  2. package/components/ai-audio-circle/index.d.ts +3 -3
  3. package/components/ai-caveat/index.d.ts +5 -5
  4. package/components/ai-feedback/index.d.ts +14 -14
  5. package/components/alert-banner/index.d.ts +8 -8
  6. package/components/autocomplete/index.d.ts +15 -16
  7. package/components/autocomplete-v2/index.d.ts +36 -32
  8. package/components/avatar/index.d.ts +7 -7
  9. package/components/badge/index.d.ts +6 -6
  10. package/components/breadcrumb/index.d.ts +11 -11
  11. package/components/button/index.d.ts +23 -13
  12. package/components/card/index.d.ts +4 -4
  13. package/components/checkbox/index.d.ts +24 -24
  14. package/components/core/index.d.ts +39 -31
  15. package/components/datepicker/index.d.ts +18 -18
  16. package/components/dialog/index.d.ts +29 -21
  17. package/components/divider/index.d.ts +4 -4
  18. package/components/donut-chart/index.d.ts +3 -3
  19. package/components/dropdown/index.d.ts +37 -33
  20. package/components/elevation-shadow/index.d.ts +3 -3
  21. package/components/empty-state/index.d.ts +7 -7
  22. package/components/field/index.d.ts +33 -44
  23. package/components/file-upload/index.d.ts +14 -13
  24. package/components/filter-button/index.d.ts +19 -19
  25. package/components/gaussian-chart/index.d.ts +8 -8
  26. package/components/icon/index.d.ts +20 -18
  27. package/components/icon-label/index.d.ts +5 -5
  28. package/components/inline-field/index.d.ts +20 -24
  29. package/components/logo/index.d.ts +2 -3
  30. package/components/media-dialog/index.d.ts +3 -3
  31. package/components/multi-input/index.d.ts +25 -16
  32. package/components/navbar/index.d.ts +30 -30
  33. package/components/overflow-menu/index.d.ts +20 -19
  34. package/components/page-header/index.d.ts +5 -5
  35. package/components/paginator/index.d.ts +4 -4
  36. package/components/password-criteria/index.d.ts +13 -12
  37. package/components/password-strength/index.d.ts +6 -6
  38. package/components/phone-input/index.d.ts +28 -30
  39. package/components/progress-bar/index.d.ts +5 -5
  40. package/components/prompt/index.d.ts +25 -25
  41. package/components/radial-progress/index.d.ts +5 -5
  42. package/components/radio-button/index.d.ts +28 -29
  43. package/components/rating/index.d.ts +5 -5
  44. package/components/scale/index.d.ts +4 -4
  45. package/components/segmented-bar/index.d.ts +8 -8
  46. package/components/segmented-button/index.d.ts +17 -16
  47. package/components/selectable-card/index.d.ts +6 -6
  48. package/components/side-navigation/index.d.ts +14 -14
  49. package/components/side-panel/index.d.ts +8 -8
  50. package/components/side-sheet/index.d.ts +19 -17
  51. package/components/snackbar/index.d.ts +16 -15
  52. package/components/spider-chart/index.d.ts +12 -12
  53. package/components/spinner/index.d.ts +5 -5
  54. package/components/stepper/index.d.ts +35 -35
  55. package/components/table/index.d.ts +36 -34
  56. package/components/tabs/index.d.ts +18 -17
  57. package/components/tag/index.d.ts +10 -10
  58. package/components/toggle/index.d.ts +10 -9
  59. package/components/tooltip/index.d.ts +16 -18
  60. package/components/universal-skills/index.d.ts +16 -16
  61. package/components/validation-error/index.d.ts +22 -10
  62. package/components/write-with-ai/index.d.ts +1 -1
  63. package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs +36 -15
  64. package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs.map +1 -1
  65. package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs +9 -12
  66. package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs.map +1 -1
  67. package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs +7 -10
  68. package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs.map +1 -1
  69. package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs +39 -27
  70. package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs.map +1 -1
  71. package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs +25 -14
  72. package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs.map +1 -1
  73. package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs +4 -2
  74. package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs.map +1 -1
  75. package/fesm2022/testgorilla-tgo-ui-components-autocomplete-v2.mjs +134 -117
  76. package/fesm2022/testgorilla-tgo-ui-components-autocomplete-v2.mjs.map +1 -1
  77. package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs +47 -48
  78. package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs.map +1 -1
  79. package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs +30 -18
  80. package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs.map +1 -1
  81. package/fesm2022/testgorilla-tgo-ui-components-badge.mjs +9 -12
  82. package/fesm2022/testgorilla-tgo-ui-components-badge.mjs.map +1 -1
  83. package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs +25 -18
  84. package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs.map +1 -1
  85. package/fesm2022/testgorilla-tgo-ui-components-button.mjs +155 -120
  86. package/fesm2022/testgorilla-tgo-ui-components-button.mjs.map +1 -1
  87. package/fesm2022/testgorilla-tgo-ui-components-card.mjs +7 -9
  88. package/fesm2022/testgorilla-tgo-ui-components-card.mjs.map +1 -1
  89. package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs +51 -47
  90. package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs.map +1 -1
  91. package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs +1 -1
  92. package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs.map +1 -1
  93. package/fesm2022/testgorilla-tgo-ui-components-core.mjs +2232 -2210
  94. package/fesm2022/testgorilla-tgo-ui-components-core.mjs.map +1 -1
  95. package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs +44 -25
  96. package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs.map +1 -1
  97. package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs +55 -31
  98. package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs.map +1 -1
  99. package/fesm2022/testgorilla-tgo-ui-components-divider.mjs +8 -11
  100. package/fesm2022/testgorilla-tgo-ui-components-divider.mjs.map +1 -1
  101. package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs +8 -10
  102. package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs.map +1 -1
  103. package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs +105 -90
  104. package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs.map +1 -1
  105. package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs +5 -7
  106. package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs.map +1 -1
  107. package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs +24 -13
  108. package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs.map +1 -1
  109. package/fesm2022/testgorilla-tgo-ui-components-field.mjs +65 -57
  110. package/fesm2022/testgorilla-tgo-ui-components-field.mjs.map +1 -1
  111. package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs +35 -23
  112. package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs.map +1 -1
  113. package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs +34 -27
  114. package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs.map +1 -1
  115. package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs +26 -16
  116. package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs.map +1 -1
  117. package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs +6 -7
  118. package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs.map +1 -1
  119. package/fesm2022/testgorilla-tgo-ui-components-icon.mjs +63 -57
  120. package/fesm2022/testgorilla-tgo-ui-components-icon.mjs.map +1 -1
  121. package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs +24 -24
  122. package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs.map +1 -1
  123. package/fesm2022/testgorilla-tgo-ui-components-logo.mjs +6 -6
  124. package/fesm2022/testgorilla-tgo-ui-components-logo.mjs.map +1 -1
  125. package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs +6 -6
  126. package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs.map +1 -1
  127. package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs +4 -4
  128. package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs.map +1 -1
  129. package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs +42 -21
  130. package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs.map +1 -1
  131. package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs +44 -32
  132. package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs.map +1 -1
  133. package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs +39 -21
  134. package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs.map +1 -1
  135. package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs +10 -14
  136. package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs.map +1 -1
  137. package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs +7 -9
  138. package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs.map +1 -1
  139. package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs +33 -20
  140. package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs.map +1 -1
  141. package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs +9 -12
  142. package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs.map +1 -1
  143. package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs +82 -73
  144. package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs.map +1 -1
  145. package/fesm2022/testgorilla-tgo-ui-components-popover.mjs.map +1 -1
  146. package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs +8 -11
  147. package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs.map +1 -1
  148. package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs +47 -40
  149. package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs.map +1 -1
  150. package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs +7 -10
  151. package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs.map +1 -1
  152. package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs +43 -48
  153. package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs.map +1 -1
  154. package/fesm2022/testgorilla-tgo-ui-components-rating.mjs +7 -12
  155. package/fesm2022/testgorilla-tgo-ui-components-rating.mjs.map +1 -1
  156. package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs +1 -1
  157. package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs.map +1 -1
  158. package/fesm2022/testgorilla-tgo-ui-components-scale.mjs +6 -10
  159. package/fesm2022/testgorilla-tgo-ui-components-scale.mjs.map +1 -1
  160. package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs +30 -16
  161. package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs.map +1 -1
  162. package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs +15 -14
  163. package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs.map +1 -1
  164. package/fesm2022/testgorilla-tgo-ui-components-segmented-toggle.mjs.map +1 -1
  165. package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs +8 -11
  166. package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs.map +1 -1
  167. package/fesm2022/testgorilla-tgo-ui-components-side-navigation.mjs +27 -21
  168. package/fesm2022/testgorilla-tgo-ui-components-side-navigation.mjs.map +1 -1
  169. package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs +5 -2
  170. package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs.map +1 -1
  171. package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs +34 -26
  172. package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs.map +1 -1
  173. package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs +5 -5
  174. package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs.map +1 -1
  175. package/fesm2022/testgorilla-tgo-ui-components-slider.mjs +10 -10
  176. package/fesm2022/testgorilla-tgo-ui-components-slider.mjs.map +1 -1
  177. package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs +31 -20
  178. package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs.map +1 -1
  179. package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs +28 -23
  180. package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs.map +1 -1
  181. package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs +9 -12
  182. package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs.map +1 -1
  183. package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs +85 -79
  184. package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs.map +1 -1
  185. package/fesm2022/testgorilla-tgo-ui-components-table.mjs +74 -51
  186. package/fesm2022/testgorilla-tgo-ui-components-table.mjs.map +1 -1
  187. package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs +57 -25
  188. package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs.map +1 -1
  189. package/fesm2022/testgorilla-tgo-ui-components-tag.mjs +16 -17
  190. package/fesm2022/testgorilla-tgo-ui-components-tag.mjs.map +1 -1
  191. package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs +25 -17
  192. package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs.map +1 -1
  193. package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs +44 -28
  194. package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs.map +1 -1
  195. package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs +34 -27
  196. package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs.map +1 -1
  197. package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs +30 -14
  198. package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs.map +1 -1
  199. package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs +13 -11
  200. package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs.map +1 -1
  201. package/fesm2022/testgorilla-tgo-ui.mjs +6 -8
  202. package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
  203. package/index.d.ts +4 -4
  204. package/mcp/catalog.json +1 -1
  205. package/package.json +1 -2
@@ -1 +1 @@
1
- {"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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"}
1
+ {"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":["/* eslint-disable @typescript-eslint/naming-convention -- enum members mirror BCP-47 locale codes, which are also the serialized values and the public API */\nexport 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/* eslint-enable @typescript-eslint/naming-convention */\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { Language } from './language.model';\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 {\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\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(_: unknown) {\n this.refreshEllipsis$.next();\n }\n\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix -- public output; dropping on- prefix is breaking, deferred to the breaking-change MAJOR (see plan)\n @Output() onChangeTextState = new EventEmitter<boolean>();\n\n @HostListener('window:resize')\n resize(): void {\n this.checkEllipsis$.next();\n }\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(private readonly el: ElementRef) {}\n\n ngOnInit() {\n combineLatest([this.checkEllipsis$.pipe(startWith(null)), this.refreshEllipsis$.pipe(startWith(null))])\n .pipe(debounceTime(100), takeUntilDestroyed(this.destroyRef))\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 { map, Observable } from 'rxjs';\n\nimport * as daDk from './assets/i18n/da-dk.json';\nimport de from './assets/i18n/de.json';\nimport en from './assets/i18n/en.json';\nimport es from './assets/i18n/es.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';\n\n/** A translation JSON node: a leaf string or a nested map of further nodes. */\ntype TranslationNode = string | { [key: string]: TranslationNode };\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]: unknown } = {\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?: Record<string, unknown>): Observable<string> {\n return this.languageService.getActiveLang().pipe(\n map(activeLang => {\n const currentLangObject = JSON.parse(JSON.stringify(this.LANGS[activeLang])) as TranslationNode;\n const enLangObject = JSON.parse(JSON.stringify(this.LANGS['en'])) as TranslationNode;\n const keys = translateKey.split('.');\n const drill = (root: TranslationNode): TranslationNode | undefined =>\n keys.reduce<TranslationNode | undefined>(\n (acc, currentKey) => (acc && typeof acc === 'object' ? acc[currentKey] : undefined),\n root\n );\n const translation = drill(currentLangObject);\n\n if (translation) {\n return this.interpolate(translation as string, interpolationData);\n }\n\n return this.interpolate(drill(enLangObject) as string, 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?: Record<string, unknown>): 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 const normalizedHex = hex.replace(/^#/, '');\n\n const bigint = parseInt(normalizedHex, 16);\n /* eslint-disable no-bitwise -- standard RGB channel extraction from a packed 24-bit integer */\n const r = (bigint >> 16) & 255;\n const g = (bigint >> 8) & 255;\n const b = bigint & 255;\n /* eslint-enable no-bitwise */\n\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n};\n","/** A keyed autocomplete option (accessed by a runtime text/value field name). */\ntype UnknownRecord = Record<string, unknown>;\n\n/** A group of options; `filteredItems` is populated in place by `filterItems`. */\ninterface AutocompleteGroupLike {\n items: unknown[];\n filteredItems?: unknown[];\n}\n\nexport class AutocompleteUtils {\n static transformDisplayValue(value: unknown, textField: string): unknown {\n return AutocompleteUtils.isPrimitive(value) ? value : (value as UnknownRecord | null)?.[textField];\n }\n\n static filterItems<T>(items: T[], inputValue: string, textField?: string, isGroup = false): T[] {\n const query = inputValue.toLowerCase();\n if (!AutocompleteUtils.isPrimitive(items) && textField) {\n if (isGroup) {\n return items.filter(item => {\n const group = item as unknown as AutocompleteGroupLike;\n const filtered = group.items.filter(member =>\n AutocompleteUtils.toLower((member as UnknownRecord)[textField]).includes(query)\n );\n group.filteredItems = filtered;\n return filtered.length;\n });\n }\n return items.filter(item => AutocompleteUtils.toLower((item as UnknownRecord)[textField]).includes(query));\n } else {\n if (isGroup) {\n return items.filter(\n item =>\n (item as unknown as AutocompleteGroupLike).items.filter(member =>\n AutocompleteUtils.toLower(member).includes(query)\n ).length\n );\n }\n return items.filter(item => AutocompleteUtils.toLower(item).includes(query));\n }\n }\n\n static isPrimitive(value: unknown): 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: unknown): 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<T>(items: T[], excludeItems: T[], valueField?: string): T[] {\n if (AutocompleteUtils.isPrimitive(items)) {\n return items?.filter(item => !excludeItems.find(excludeItem => excludeItem === item)) ?? [];\n } else {\n return valueField\n ? (items?.filter(\n item =>\n !excludeItems.find(\n excludeItem => (excludeItem as UnknownRecord)[valueField] === (item as UnknownRecord)[valueField]\n )\n ) ?? [])\n : [];\n }\n }\n\n static shouldBeObject(value: unknown, textField: string, valueField: string): boolean {\n return Boolean(valueField) && Boolean(textField) && typeof value !== 'object';\n }\n\n static createValueItem(value: unknown, textField: string, valueField: string): unknown {\n return AutocompleteUtils.shouldBeObject(value, textField, valueField)\n ? { [textField]: value, [valueField]: value }\n : value;\n }\n\n static findDuplicate(value: unknown, selectedValue: unknown, lookupKey?: string): unknown {\n if (AutocompleteUtils.isArray(value)) {\n return (value as unknown[]).find(v => {\n if (!AutocompleteUtils.isPrimitive(v) && lookupKey) {\n return (v as UnknownRecord)[lookupKey] === (selectedValue as UnknownRecord)[lookupKey];\n }\n return v === selectedValue;\n });\n } else {\n return value === selectedValue;\n }\n }\n\n static countMatchingWords(words: unknown[], query: string, textField?: string, isGroup = false): number {\n const lowerCaseQuery = query.toLowerCase();\n if (isGroup) {\n return words.filter(\n word =>\n (word as AutocompleteGroupLike).items.filter(item =>\n typeof item === 'object' && textField\n ? AutocompleteUtils.toLower((item as UnknownRecord)[textField]).includes(lowerCaseQuery)\n : AutocompleteUtils.toLower(item).includes(lowerCaseQuery)\n ).length\n ).length;\n }\n const matchingWords = words.filter(word =>\n typeof word === 'object' && textField\n ? AutocompleteUtils.toLower((word as UnknownRecord)[textField]).includes(lowerCaseQuery)\n : AutocompleteUtils.toLower(word).includes(lowerCaseQuery)\n );\n return matchingWords.length;\n }\n\n /**\n * Faithful to the previous `any` behaviour: text/value fields are expected to\n * be strings, and calling `.toLowerCase()` on a non-string throws exactly as\n * it did before. Kept private so it is not part of the public API surface.\n */\n private static toLower(value: unknown): string {\n return (value as string).toLowerCase();\n }\n}\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\nconst ARROW_DOWN_KEY_CODE = 40;\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector -- public directive selector; ui-prefix rename is breaking, deferred to the breaking-change MAJOR (see plan)\n selector: '[digitsOnly]',\n standalone: true,\n})\nexport class DigitsOnlyDirective {\n constructor(private readonly el: ElementRef<HTMLInputElement>) {}\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: KeyboardEvent) {\n const target = event.target as HTMLInputElement;\n // eslint-disable-next-line @typescript-eslint/no-deprecated -- KeyboardEvent.which is deprecated in favor of .key/.code; migrating this keyboard-nav check is behaviour-sensitive and out of scope for this lint pass\n const isArrowDown = event.which === ARROW_DOWN_KEY_CODE;\n if (!this.allowNegative) {\n if (isArrowDown && target.value && Number(target.value) <= 0) {\n event.preventDefault();\n } else if (isArrowDown && target.value === '') {\n this.el.nativeElement.value = '1';\n }\n }\n }\n\n @HostListener('input', ['$event'])\n onInput(event: Event) {\n const target = event.target as HTMLInputElement;\n if (!this.allowNegative && target.value && Number(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 ?? 0) +\n text +\n txtInput.value.substring(txtInput.selectionEnd ?? 0);\n if (!this.regex) {\n this.regex = new RegExp(\n `^${this.allowNegative ? '-?' : ''}${this.allowDecimal ? '((\\\\d+\\\\.?)|(\\\\.?))\\\\d*' : '\\\\d*'}$`,\n 'g'\n );\n }\n if (!newValue.match(this.regex)) {\n event.preventDefault();\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, unknown> | null | undefined): boolean {\n return value ? Boolean(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 // eslint-disable-next-line @angular-eslint/directive-selector -- public directive selector; ui-prefix rename is breaking, deferred to the breaking-change MAJOR (see plan)\n selector: '[selectText]',\n standalone: true,\n})\nexport class SelectTextDirective {\n selectText = input<string | null>(null);\n\n private readonly 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, unknown>,\n values: Record<string, unknown> | Record<string, unknown>[],\n valueField?: string\n ): boolean {\n return Array.isArray(values)\n ? Boolean(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, unknown> | Record<string, unknown>[] | null | undefined,\n field: string,\n getValueList: true\n ): string[];\n transform(\n value: Record<string, unknown> | Record<string, unknown>[] | null | undefined,\n field: string,\n getValueList?: false\n ): string;\n\n transform(\n value: Record<string, unknown> | Record<string, unknown>[] | null | undefined,\n field: string,\n getValueList: boolean = false\n ): string | string[] {\n if (!value) {\n return '';\n }\n\n if (getValueList) {\n return Array.isArray(value)\n ? value.map(item => (field ? ((item[field] as string) ?? '') : ''))\n : field\n ? ((value[field] as string) ?? '')\n : '';\n }\n\n if (Array.isArray(value)) {\n return field ? ((value[0]?.[field] as string) ?? '') : '';\n }\n\n return field ? ((value[field] as string) ?? '') : '';\n }\n}\n","export enum ScreenBreakpoints {\n MOBILE = 600,\n TABLET = 1023,\n LARGE_TABLET = 1280,\n}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { inject, InjectionToken } from '@angular/core';\nimport { map } from 'rxjs';\n\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 { BreakpointObserver } from '@angular/cdk/layout';\r\nimport { inject, InjectionToken } from '@angular/core';\r\nimport { map } from 'rxjs';\r\n\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?: unknown): 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: unknown, length?: number, suffix?: string, preserve?: boolean): unknown {\n if (typeof input !== 'string') {\n return input;\n }\n\n const maxLength = length ?? input.length;\n\n if (input.length <= maxLength) {\n return input;\n }\n\n const shouldPreserve = preserve ?? false;\n const suffixStr = suffix ?? '';\n let index = maxLength;\n\n if (shouldPreserve) {\n if (!input.includes(' ', maxLength)) {\n index = input.length;\n } else {\n index = input.indexOf(' ', maxLength);\n }\n }\n\n return input.substring(0, index) + suffixStr;\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: unknown, path: string): unknown {\n let current = obj;\n if (typeof current === 'undefined' || current === 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 current = (current as Record<string, unknown>)[splittedPath[i]];\n if (typeof current === 'undefined' || current === null) {\n return '';\n }\n }\n return current;\n }\n}\n","import { ComponentRef, Directive, EventEmitter, Input, OnDestroy, Type, ViewContainerRef } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\ninterface IComponentRenderer {\n component: Type<unknown>;\n inputs?: Record<string, unknown>;\n outputs?: { [key: string]: (event: unknown) => void };\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector -- public directive selector; ui-prefix rename is breaking, deferred to the breaking-change MAJOR (see plan)\n selector: '[dynamicComponent]',\n standalone: true,\n})\nexport class DynamicComponentDirective implements OnDestroy {\n private readonly subscription = new Subscription();\n private compRef: ComponentRef<unknown>;\n\n @Input() set dynamicComponent(componentRenderer: IComponentRenderer) {\n if (componentRenderer.component) {\n this.compRef = this.vcr.createComponent(componentRenderer.component);\n\n const inputs = componentRenderer.inputs;\n if (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(inputs).forEach(inputName => this.compRef.setInput(inputName, inputs[inputName]));\n }\n\n const outputs = componentRenderer.outputs;\n if (outputs) {\n const instance = this.compRef.instance as Record<string, EventEmitter<unknown>>;\n Object.keys(outputs).forEach(output => {\n this.subscription.add(instance[output].subscribe(outputs[output]));\n });\n }\n }\n }\n\n constructor(private readonly 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 */\ntype LightnessEvent = 'hover' | 'pressed' | 'disabled';\n\n/** Lightness band of a colour, in percent. `null` = exactly on a 30/70 boundary (no adjustment). */\nconst lightnessBand = (lightness: number): 'high' | 'low' | 'mid' | null => {\n if (lightness > 70) {\n return 'high';\n }\n if (lightness < 30) {\n return 'low';\n }\n if (lightness < 70 && lightness > 30) {\n return 'mid';\n }\n return null;\n};\n\n/** Lightness delta (in percent points) for the `new` theme. */\nconst getNewThemeDelta = (lightness: number, typeEvent: LightnessEvent): number => {\n if (typeEvent !== 'hover' && typeEvent !== 'pressed') {\n return 0;\n }\n const band = lightnessBand(lightness);\n return band === 'low' ? 10 : band ? -10 : 0;\n};\n\n/** Lightness delta (in percent points) for the `classic` theme. */\nconst getClassicThemeDelta = (lightness: number, typeEvent: LightnessEvent): number => {\n const deltasByEvent: Record<LightnessEvent, { high: number; low: number; mid: number }> = {\n hover: { high: -10, low: 10, mid: -10 },\n pressed: { high: -20, low: 30, mid: -20 },\n disabled: { high: 10, low: 50, mid: 20 },\n };\n const band = lightnessBand(lightness);\n if (!band) {\n return 0;\n }\n // typeEvent is LightnessEvent at compile time, but callers may pass an\n // out-of-range button state at runtime (matches the original no-op behaviour).\n const eventDeltas: { high: number; low: number; mid: number } | undefined = deltasByEvent[typeEvent];\n return eventDeltas ? eventDeltas[band] : 0;\n};\n\nexport const adjustLightness = (\n hexColor: string,\n typeEvent: LightnessEvent,\n theme: 'new' | 'classic' = 'new'\n): string => {\n const hexRegex = /^#(?:[0-9A-F]{3}|[0-9A-F]{6})$/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 const delta = theme === 'new' ? getNewThemeDelta(lightness, typeEvent) : getClassicThemeDelta(lightness, typeEvent);\n hslColor.l = clamp(hslColor.l + delta / 100);\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 /* eslint-disable no-bitwise -- standard RGB channel extraction from a packed 24-bit integer */\n const r = ((rgbColor >> 16) & 255) / 255;\n const g = ((rgbColor >> 8) & 255) / 255;\n const b = (rgbColor & 255) / 255;\n /* eslint-enable no-bitwise */\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 let tNorm = t;\n if (tNorm < 0) {\n tNorm += 1;\n }\n if (tNorm > 1) {\n tNorm -= 1;\n }\n if (tNorm < 1 / 6) {\n return p + (q - p) * 6 * tNorm;\n }\n if (tNorm < 1 / 2) {\n return q;\n }\n if (tNorm < 2 / 3) {\n return p + (q - p) * (2 / 3 - tNorm) * 6;\n }\n return p;\n };\n\n const qBase = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const pBase = 2 * l - qBase;\n\n const r = hueToRgb(pBase, qBase, h + 1 / 3);\n const g = hueToRgb(pBase, qBase, h);\n const b = hueToRgb(pBase, qBase, h - 1 / 3);\n\n // eslint-disable-next-line no-bitwise -- standard RGB channel packing into a 24-bit integer\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 resolvedType = variant === 'banner' ? type : type === 'success' ? 'info' : type;\n return `${resolvedType} ${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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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}