@testgorilla/tgo-ui 6.2.3 → 6.2.4

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 (161) hide show
  1. package/components/autocomplete/autocomplete.component.d.ts +2 -2
  2. package/components/badge/badge.component.d.ts +6 -6
  3. package/components/button/button.component.d.ts +4 -4
  4. package/components/checklist/checklist.component.d.ts +4 -5
  5. package/components/deprecated-paginator/deprecated-paginator.component.d.ts +2 -6
  6. package/components/dialog/dialog.component.d.ts +1 -1
  7. package/components/dialog/dialog.model.d.ts +2 -2
  8. package/components/dropdown/dropdown.component.d.ts +2 -2
  9. package/components/empty-state/empty-state.component.d.ts +2 -2
  10. package/components/file-upload/file-upload.component.d.ts +1 -1
  11. package/components/icon/icon.component.d.ts +2 -2
  12. package/components/icon/icon.model.d.ts +3 -3
  13. package/components/icon-label/icon-label.component.d.ts +1 -3
  14. package/components/logo/logo.component.d.ts +1 -1
  15. package/components/multi-input/multi-input.component.d.ts +1 -1
  16. package/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.d.ts +3 -3
  17. package/components/password-criteria/password.component.d.ts +1 -1
  18. package/components/radial-progress/radial-progress.component.d.ts +2 -2
  19. package/components/radio-button/radio-button.component.d.ts +3 -3
  20. package/components/segmented-bar/segmented-bar.component.d.ts +1 -1
  21. package/components/segmented-button/segmented-button.component.d.ts +1 -1
  22. package/components/side-panel/side-panel.model.d.ts +1 -1
  23. package/components/side-sheet/side-sheet.component.d.ts +1 -1
  24. package/components/spider-chart/spider-chart.component.d.ts +2 -2
  25. package/components/spider-chart/spider-chart.model.d.ts +2 -2
  26. package/components/stepper/step-line-element.directive.d.ts +1 -1
  27. package/components/stepper/step.component.d.ts +1 -1
  28. package/components/stepper/stepper.component.d.ts +2 -2
  29. package/components/table/table.component.d.ts +2 -2
  30. package/components/tabs/tabs.component.d.ts +2 -2
  31. package/components/universal-skills/universal-skills-report.component.d.ts +1 -1
  32. package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs +7 -25
  33. package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs.map +1 -1
  34. package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs +2 -2
  35. package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs.map +1 -1
  36. package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs +0 -1
  37. package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs.map +1 -1
  38. package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs.map +1 -1
  39. package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs +31 -18
  40. package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs.map +1 -1
  41. package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs +1 -1
  42. package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs.map +1 -1
  43. package/fesm2022/testgorilla-tgo-ui-components-badge.mjs +6 -6
  44. package/fesm2022/testgorilla-tgo-ui-components-badge.mjs.map +1 -1
  45. package/fesm2022/testgorilla-tgo-ui-components-button.mjs +39 -19
  46. package/fesm2022/testgorilla-tgo-ui-components-button.mjs.map +1 -1
  47. package/fesm2022/testgorilla-tgo-ui-components-card.mjs +2 -2
  48. package/fesm2022/testgorilla-tgo-ui-components-card.mjs.map +1 -1
  49. package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs +38 -10
  50. package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs.map +1 -1
  51. package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs +2 -2
  52. package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs.map +1 -1
  53. package/fesm2022/testgorilla-tgo-ui-components-core.mjs +22 -16
  54. package/fesm2022/testgorilla-tgo-ui-components-core.mjs.map +1 -1
  55. package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs +6 -6
  56. package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs.map +1 -1
  57. package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs +8 -8
  58. package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs.map +1 -1
  59. package/fesm2022/testgorilla-tgo-ui-components-divider.mjs +2 -2
  60. package/fesm2022/testgorilla-tgo-ui-components-divider.mjs.map +1 -1
  61. package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs +2 -2
  62. package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs.map +1 -1
  63. package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs +18 -5
  64. package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs.map +1 -1
  65. package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs +2 -2
  66. package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs.map +1 -1
  67. package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs.map +1 -1
  68. package/fesm2022/testgorilla-tgo-ui-components-field.mjs +2 -3
  69. package/fesm2022/testgorilla-tgo-ui-components-field.mjs.map +1 -1
  70. package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs +5 -5
  71. package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs.map +1 -1
  72. package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs +2 -3
  73. package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs.map +1 -1
  74. package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs +8 -7
  75. package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs.map +1 -1
  76. package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs +0 -1
  77. package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs.map +1 -1
  78. package/fesm2022/testgorilla-tgo-ui-components-icon.mjs.map +1 -1
  79. package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs +1 -1
  80. package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs.map +1 -1
  81. package/fesm2022/testgorilla-tgo-ui-components-logo.mjs +2 -2
  82. package/fesm2022/testgorilla-tgo-ui-components-logo.mjs.map +1 -1
  83. package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs +2 -7
  84. package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs.map +1 -1
  85. package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs +2 -2
  86. package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs.map +1 -1
  87. package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs +1 -3
  88. package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs.map +1 -1
  89. package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs +5 -5
  90. package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs.map +1 -1
  91. package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs +25 -4
  92. package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs.map +1 -1
  93. package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs +2 -2
  94. package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs.map +1 -1
  95. package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs.map +1 -1
  96. package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs +4 -4
  97. package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs.map +1 -1
  98. package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs +3 -3
  99. package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs.map +1 -1
  100. package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs +6 -6
  101. package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs.map +1 -1
  102. package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs.map +1 -1
  103. package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs +1 -1
  104. package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs.map +1 -1
  105. package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs +5 -3
  106. package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs.map +1 -1
  107. package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs +42 -10
  108. package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs.map +1 -1
  109. package/fesm2022/testgorilla-tgo-ui-components-rating.mjs +3 -3
  110. package/fesm2022/testgorilla-tgo-ui-components-rating.mjs.map +1 -1
  111. package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs +2 -2
  112. package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs.map +1 -1
  113. package/fesm2022/testgorilla-tgo-ui-components-scale.mjs +3 -3
  114. package/fesm2022/testgorilla-tgo-ui-components-scale.mjs.map +1 -1
  115. package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs +4 -4
  116. package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs.map +1 -1
  117. package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs +1 -1
  118. package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs.map +1 -1
  119. package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs.map +1 -1
  120. package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs +3 -3
  121. package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs.map +1 -1
  122. package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs +4 -4
  123. package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs.map +1 -1
  124. package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs.map +1 -1
  125. package/fesm2022/testgorilla-tgo-ui-components-slider.mjs +2 -2
  126. package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs +21 -5
  127. package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs.map +1 -1
  128. package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs +3 -3
  129. package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs.map +1 -1
  130. package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs.map +1 -1
  131. package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs +14 -11
  132. package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs.map +1 -1
  133. package/fesm2022/testgorilla-tgo-ui-components-table.mjs +5 -5
  134. package/fesm2022/testgorilla-tgo-ui-components-table.mjs.map +1 -1
  135. package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs +3 -3
  136. package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs.map +1 -1
  137. package/fesm2022/testgorilla-tgo-ui-components-tag.mjs +25 -7
  138. package/fesm2022/testgorilla-tgo-ui-components-tag.mjs.map +1 -1
  139. package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs +25 -9
  140. package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs.map +1 -1
  141. package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs +14 -15
  142. package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs.map +1 -1
  143. package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs +6 -6
  144. package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs.map +1 -1
  145. package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs +2 -2
  146. package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs.map +1 -1
  147. package/fesm2022/testgorilla-tgo-ui.mjs +2 -7
  148. package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
  149. package/package.json +46 -40
  150. package/projects/tgo-canopy-ui/theme/_alert-bars.scss +2 -1
  151. package/projects/tgo-canopy-ui/theme/_breakpoints-mixin.scss +6 -6
  152. package/projects/tgo-canopy-ui/theme/_core.scss +1 -1
  153. package/projects/tgo-canopy-ui/theme/_icon.scss +1 -1
  154. package/projects/tgo-canopy-ui/theme/_input.scss +108 -65
  155. package/projects/tgo-canopy-ui/theme/_lib-styles.scss +8 -7
  156. package/projects/tgo-canopy-ui/theme/_mat-paginator.scss +11 -10
  157. package/projects/tgo-canopy-ui/theme/_palette.scss +41 -29
  158. package/projects/tgo-canopy-ui/theme/_tooltip.scss +30 -30
  159. package/projects/tgo-canopy-ui/theme/_typography.scss +24 -14
  160. package/projects/tgo-canopy-ui/theme/_variables.scss +56 -56
  161. package/projects/tgo-canopy-ui/theme/theme.scss +19 -18
@@ -1 +1 @@
1
- {"version":3,"file":"testgorilla-tgo-ui-components-gaussian-chart.mjs","sources":["../../../components/gaussian-chart/gaussian-chart.component.ts","../../../components/gaussian-chart/gaussian-chart.component.html","../../../components/gaussian-chart/gaussian-chart.module.ts","../../../components/gaussian-chart/testgorilla-tgo-ui-components-gaussian-chart.ts"],"sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport { ApplicationTheme, Color } from '@testgorilla/tgo-ui/components/core';\nimport { Chart, ChartData, ChartOptions, TooltipOptions } from 'chart.js';\nimport { _DeepPartialObject } from 'chart.js/dist/types/utils';\nimport gaussian from 'gaussian';\n\nenum PercentileThreshold {\n LOWEST = 20,\n LOWER = 40,\n AVERAGE = 60,\n HIGHER = 80,\n HIGHEST = 100,\n}\n\nexport type LegendPosition = 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end';\n\n@Component({\n selector: 'ui-gaussian-chart',\n templateUrl: './gaussian-chart.component.html',\n styleUrls: ['./gaussian-chart.component.scss'],\n standalone: false\n})\nexport class GaussianChartComponent implements OnInit {\n /**\n * The candidate score to be displayed on the chart.\n * @type {number}\n * @memberof GaussianChartComponent\n */\n @Input() score!: number;\n\n /**\n * The best candidate score to be displayed on the chart.\n * @type {number}\n * @memberof GaussianChartComponent\n */\n @Input() bestCandidateScore!: number;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof SpinnerComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Controls the position of the legend relative to the chart.\n * @type {LegendPosition}\n * @memberof GaussianChartComponent\n */\n @Input() legendPosition: LegendPosition = 'bottom-start';\n\n readonly minXValue = -3;\n readonly maxXValue = 3;\n readonly minYValue = 0;\n readonly stepSize = 0.1;\n readonly pointsToSkip = 2;\n readonly actualMinXvalue = this.minXValue + this.pointsToSkip * this.stepSize;\n readonly actualMaxXvalue = this.maxXValue - this.pointsToSkip * this.stepSize;\n readonly normalContainerPadding = 50; //in px\n readonly bestScoreThreshold = 92;\n readonly bestScoreSpacingRight = '4px';\n readonly bestScoreSpacingLeft = '-39px';\n\n PercentileThreshold = PercentileThreshold;\n chart: Chart;\n gaussianDistribution: gaussian.Gaussian;\n activeBucket: PercentileThreshold;\n overlayXValue: number;\n overlayYValue: number;\n overlayXBestScoreValue: number;\n overlayYBestScoreValue: number;\n maxYValue: number;\n\n gaussianChartData: ChartData<'line'> = {\n labels: [],\n datasets: [],\n };\n gaussianChartOptions: ChartOptions<'line'>;\n protected readonly translationContext = 'CHARTS.GAUSSIAN_CHART.';\n\n ngOnInit(): void {\n if (this.score === undefined || this.score === null) {\n throw new Error('Input \"score\" is required for GaussianChartComponent.');\n }\n if (this.bestCandidateScore === undefined || this.bestCandidateScore === null) {\n throw new Error('Input \"bestCandidateScore\" is required for GaussianChartComponent.');\n }\n this.setActiveBucket();\n this.gaussianDistribution = gaussian(0, 1);\n this.maxYValue = this.gaussianDistribution.pdf(0);\n this.setOverlayValues();\n this.setOverlayValuesForBestScore();\n this.setChartData();\n this.setChartOptions();\n }\n\n private setChartData() {\n const xValues: number[] = [];\n const yValues: number[] = [];\n const labels = this.generateLabels(this.minXValue, this.maxXValue, this.stepSize);\n\n for (let x = this.minXValue; x < this.maxXValue + this.stepSize; x = Number((x + this.stepSize).toFixed(2))) {\n xValues.push(x);\n yValues.push(this.gaussianDistribution.pdf(x));\n }\n\n this.gaussianChartData = {\n labels,\n datasets: this.generateDataset(yValues),\n };\n }\n\n private setChartOptions() {\n this.gaussianChartOptions = {\n responsive: true,\n maintainAspectRatio: false,\n scales: this.getScale(),\n plugins: {\n // To be used only for dev purpose\n // tooltip: this.getTooltip(),\n // Comment the below line if you enable the call for tooltip\n tooltip: {\n enabled: false,\n },\n legend: {\n display: false,\n },\n },\n };\n }\n\n private getTooltip(): _DeepPartialObject<TooltipOptions<'line'>> {\n return {\n intersect: false,\n mode: 'nearest',\n displayColors: false,\n callbacks: {\n label: tooltipItem => {\n const value = (this.gaussianDistribution.cdf(parseFloat(tooltipItem.label)) * 100).toFixed(2);\n return `${value}%`;\n },\n title: () => '', // Disable the default title\n },\n };\n }\n\n private getScale(): {\n x: { display: boolean; grid: { display: boolean } };\n y: { display: boolean; grid: { display: boolean } };\n } {\n return {\n x: {\n display: false,\n grid: {\n display: false, // Disable grid lines for x-axis\n },\n },\n y: {\n display: false,\n grid: {\n display: false, // Disable grid lines for y-axis\n },\n },\n };\n }\n\n private generateDataset(\n yValues: number[]\n ): { data: any[]; label: string; borderColor: Color; borderWidth: number; pointRadius: number; fill: boolean }[] {\n return [\n {\n data: [...yValues.slice(0, this.pointsToSkip), ...Array(yValues.length - this.pointsToSkip).fill(null)],\n label: '',\n borderColor: this.activeBucket === PercentileThreshold.LOWEST ? Color.ACCENT_20 : Color.TGO_WHITE,\n borderWidth: 2,\n pointRadius: 0,\n fill: false,\n },\n {\n data: [\n ...Array(this.pointsToSkip).fill(null),\n ...yValues.slice(this.pointsToSkip, yValues.length - this.pointsToSkip),\n ...Array(this.pointsToSkip).fill(null),\n ],\n label: '',\n borderColor: Color.BLACK,\n borderWidth: 2,\n pointRadius: 0,\n fill: false,\n },\n {\n data: [\n ...Array(yValues.length - this.pointsToSkip).fill(null),\n ...yValues.slice(yValues.length - this.pointsToSkip, yValues.length),\n ],\n label: '',\n borderColor: this.activeBucket === PercentileThreshold.HIGHEST ? Color.ACCENT_20 : Color.TGO_WHITE,\n borderWidth: 2,\n pointRadius: 0,\n fill: false,\n },\n ];\n }\n\n private generateLabels(min: number, max: number, step: number): string[] {\n const labels = [];\n for (let x = min; x < max + step; x = Number((x + step).toFixed(2))) {\n labels.push(x.toFixed(1));\n }\n return labels;\n }\n\n private setActiveBucket(): void {\n if (this.score < PercentileThreshold.LOWEST) {\n this.activeBucket = PercentileThreshold.LOWEST;\n } else if (this.score >= PercentileThreshold.LOWEST && this.score < PercentileThreshold.LOWER) {\n this.activeBucket = PercentileThreshold.LOWER;\n } else if (this.score >= PercentileThreshold.LOWER && this.score < PercentileThreshold.AVERAGE) {\n this.activeBucket = PercentileThreshold.AVERAGE;\n } else if (this.score >= PercentileThreshold.AVERAGE && this.score < PercentileThreshold.HIGHER) {\n this.activeBucket = PercentileThreshold.HIGHER;\n } else if (this.score >= PercentileThreshold.HIGHER) {\n this.activeBucket = PercentileThreshold.HIGHEST;\n }\n }\n\n // For more context: https://testgorilla.atlassian.net/wiki/spaces/SR/pages/1813905736/Percentiles+curve+FE+implementation\n private setOverlayValues(): void {\n const { overlayXValue, overlayYValue } = this.calculateOverlayValues(this.score);\n this.overlayXValue = overlayXValue;\n this.overlayYValue = overlayYValue;\n }\n\n private setOverlayValuesForBestScore(): void {\n const { overlayXValue, overlayYValue } = this.calculateOverlayValues(this.bestCandidateScore);\n this.overlayXBestScoreValue = overlayXValue;\n this.overlayYBestScoreValue = overlayYValue;\n }\n\n private calculateOverlayValues(score: number): { overlayXValue: number; overlayYValue: number } {\n const xValue = this.mapRange(score, 0, 100, this.minXValue, this.maxXValue);\n const yValue = this.gaussianDistribution.pdf(xValue);\n let overlayXValue = score;\n let overlayYValue = this.mapRange(yValue, this.minYValue, this.maxYValue, 0, 100);\n\n if (xValue <= this.actualMinXvalue || xValue >= this.actualMaxXvalue) {\n const xValueExtreme = xValue <= this.actualMinXvalue ? this.actualMinXvalue : this.actualMaxXvalue;\n const yValueExtreme = this.gaussianDistribution.pdf(xValueExtreme);\n overlayXValue = this.mapRange(xValueExtreme, this.minXValue, this.maxXValue, 0, 100);\n overlayYValue = this.mapRange(yValueExtreme, this.minYValue, this.maxYValue, 0, 100);\n }\n\n return { overlayXValue, overlayYValue };\n }\n\n private mapRange(value: number, inMin: number, inMax: number, outMin: number, outMax: number): number {\n return ((value - inMin) * (outMax - outMin)) / (inMax - inMin) + outMin;\n }\n\n getCalcPosition([percentage, pixels, operation = 'add']: [number, number, 'add' | 'subtract']): string {\n const operator = operation === 'add' ? '+' : '-';\n return `calc(${percentage}% ${operator} ${pixels}px)`;\n }\n\n getBestScoreContentPosition(bestScore: number): string {\n return bestScore < this.bestScoreThreshold ? this.bestScoreSpacingRight : this.bestScoreSpacingLeft;\n }\n\n getScoreTranslationKey(score: number): string {\n if (score < PercentileThreshold.LOWEST) {\n return 'PERCENTILE_LABEL_TYPES.WELL_BELOW_AVERAGE';\n } else if (score >= PercentileThreshold.LOWEST && score < PercentileThreshold.LOWER) {\n return 'PERCENTILE_LABEL_TYPES.BELOW_AVERAGE';\n } else if (score >= PercentileThreshold.LOWER && score < PercentileThreshold.AVERAGE) {\n return 'PERCENTILE_LABEL_TYPES.AVERAGE';\n } else if (score >= PercentileThreshold.AVERAGE && score < PercentileThreshold.HIGHER) {\n return 'PERCENTILE_LABEL_TYPES.ABOVE_AVERAGE';\n } else {\n return 'PERCENTILE_LABEL_TYPES.WELL_ABOVE_AVERAGE';\n }\n }\n}\n","<div\n class=\"chart-section\"\n *ngIf=\"score\"\n [attr.aria-label]=\"\n translationContext + 'ARIA_LABEL'\n | uiTranslate\n : {\n score: score,\n activeBucket: getScoreTranslationKey(score) | uiTranslate | async,\n bestCandidateScore: bestCandidateScore,\n activeBucketBestScore: getScoreTranslationKey(bestCandidateScore) | uiTranslate | async,\n }\n | async\n \"\n tabindex=\"0\"\n>\n <!-- Legend positioned at top -->\n @if (legendPosition === 'top-start' || legendPosition === 'top-end') {\n <ng-container [ngTemplateOutlet]=\"legendTemplate\"></ng-container>\n }\n\n <div class=\"chart-range-wrapper\">\n <div class=\"normal-chart-container\">\n <div class=\"normal-chart\">\n <canvas baseChart [data]=\"gaussianChartData\" [options]=\"gaussianChartOptions\" type=\"line\" class=\"chart\">\n </canvas>\n <div\n class=\"overlay-icon\"\n [style.bottom]=\"[overlayYValue, 3, 'subtract'] | memoizeFunc: getCalcPosition\"\n [style.left]=\"[overlayXValue, 20, 'subtract'] | memoizeFunc: getCalcPosition\"\n >\n <div class=\"drop-icon\">\n <ui-icon name=\"Pin-marker\" size=\"40\"></ui-icon>\n <span class=\"curve-score\">{{ score }}</span>\n </div>\n </div>\n <div\n class=\"best-score\"\n [style.height]=\"[100 - overlayYBestScoreValue, normalContainerPadding, 'add'] | memoizeFunc: getCalcPosition\"\n [style.bottom]=\"overlayYBestScoreValue + '%'\"\n [style.left]=\"overlayXBestScoreValue + '%'\"\n >\n <div\n class=\"best-score-content\"\n [style.left]=\"bestCandidateScore | memoizeFunc: getBestScoreContentPosition : this\"\n >\n <ui-icon name=\"Trophy\"></ui-icon>\n {{ bestCandidateScore }}\n </div>\n </div>\n </div>\n <div class=\"overlay\">\n <div class=\"overlay-column\" [class.active]=\"activeBucket === PercentileThreshold.LOWEST\">\n <div\n class=\"column-item\"\n [class.text-bold]=\"activeBucket === PercentileThreshold.LOWEST\"\n [matTooltip]=\"(translationContext + 'PERCENTAGE_BUCKETS_GRAPH.LOWEST_TOOLTIP' | uiTranslate | async) || ''\"\n >\n {{ translationContext + 'PERCENTAGE_BUCKETS_GRAPH.LOWEST' | uiTranslate | async }}\n </div>\n </div>\n <div class=\"overlay-column\" [class.active]=\"activeBucket === PercentileThreshold.LOWER\">\n <div\n class=\"column-item\"\n [class.text-bold]=\"activeBucket === PercentileThreshold.LOWER\"\n [matTooltip]=\"(translationContext + 'PERCENTAGE_BUCKETS_GRAPH.LOWER_TOOLTIP' | uiTranslate | async) || ''\"\n >\n {{ translationContext + 'PERCENTAGE_BUCKETS_GRAPH.LOWER' | uiTranslate | async }}\n </div>\n </div>\n <div class=\"overlay-column\" [class.active]=\"activeBucket === PercentileThreshold.AVERAGE\">\n <div\n class=\"column-item\"\n [class.text-bold]=\"activeBucket === PercentileThreshold.AVERAGE\"\n [matTooltip]=\"(translationContext + 'PERCENTAGE_BUCKETS_GRAPH.AVERAGE_TOOLTIP' | uiTranslate | async) || ''\"\n >\n {{ translationContext + 'PERCENTAGE_BUCKETS_GRAPH.AVERAGE' | uiTranslate | async }}\n </div>\n </div>\n <div class=\"overlay-column\" [class.active]=\"activeBucket === PercentileThreshold.HIGHER\">\n <div\n class=\"column-item\"\n [class.text-bold]=\"activeBucket === PercentileThreshold.HIGHER\"\n [matTooltip]=\"(translationContext + 'PERCENTAGE_BUCKETS_GRAPH.HIGHER_TOOLTIP' | uiTranslate | async) || ''\"\n >\n {{ translationContext + 'PERCENTAGE_BUCKETS_GRAPH.HIGHER' | uiTranslate | async }}\n </div>\n </div>\n <div class=\"overlay-column\" [class.active]=\"activeBucket === PercentileThreshold.HIGHEST\">\n <div\n class=\"column-item\"\n [class.text-bold]=\"activeBucket === PercentileThreshold.HIGHEST\"\n [matTooltip]=\"(translationContext + 'PERCENTAGE_BUCKETS_GRAPH.HIGHEST_TOOLTIP' | uiTranslate | async) || ''\"\n >\n {{ translationContext + 'PERCENTAGE_BUCKETS_GRAPH.HIGHEST' | uiTranslate | async }}\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"range\">\n <div>1</div>\n <div>20</div>\n <div>40</div>\n <div>60</div>\n <div>80</div>\n <div>99</div>\n </div>\n </div>\n\n <!-- Legend positioned at bottom -->\n @if (legendPosition === 'bottom-start' || legendPosition === 'bottom-end') {\n <ng-container [ngTemplateOutlet]=\"legendTemplate\"></ng-container>\n }\n</div>\n\n<!-- Reusable legend template -->\n<ng-template #legendTemplate>\n <div class=\"legend-container\" [ngClass]=\"'legend-' + legendPosition\">\n <div class=\"legend\">\n <ui-icon name=\"Dot\" color=\"gray\"></ui-icon>\n {{ translationContext + 'CANDIDATE_SCORE' | uiTranslate | async }}\n </div>\n <div class=\"legend\">\n <ui-icon name=\"Trophy\" color=\"gray\"></ui-icon>\n {{ translationContext + 'HIGHEST_SCORE' | uiTranslate | async }}\n </div>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';\nimport { GaussianChartComponent } from './gaussian-chart.component';\nimport { NgChartsModule } from 'ng2-charts';\nimport { Chart, registerables } from 'chart.js';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { CommonModule, NgClass } from '@angular/common';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { MemoizeFuncPipe } from '@testgorilla/tgo-ui/components/core';\n\nChart.register(...registerables);\n\n@NgModule({\n declarations: [GaussianChartComponent],\n exports: [GaussianChartComponent],\n imports: [\n NgClass,\n UiTranslatePipe,\n NgChartsModule,\n MatTooltipModule,\n CommonModule,\n IconComponentModule,\n MemoizeFuncPipe,\n ],\n})\nexport class GaussianChartComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testgorilla-tgo-ui-components-gaussian-chart.mjs","sources":["../../../components/gaussian-chart/gaussian-chart.component.ts","../../../components/gaussian-chart/gaussian-chart.component.html","../../../components/gaussian-chart/gaussian-chart.module.ts","../../../components/gaussian-chart/testgorilla-tgo-ui-components-gaussian-chart.ts"],"sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\nimport { ApplicationTheme, Color } from '@testgorilla/tgo-ui/components/core';\nimport { Chart, ChartData, ChartOptions, TooltipOptions } from 'chart.js';\nimport { _DeepPartialObject } from 'chart.js/dist/types/utils';\nimport gaussian from 'gaussian';\n\nenum PercentileThreshold {\n LOWEST = 20,\n LOWER = 40,\n AVERAGE = 60,\n HIGHER = 80,\n HIGHEST = 100,\n}\n\nexport type LegendPosition = 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end';\n\n@Component({\n selector: 'ui-gaussian-chart',\n templateUrl: './gaussian-chart.component.html',\n styleUrls: ['./gaussian-chart.component.scss'],\n standalone: false,\n})\nexport class GaussianChartComponent implements OnInit {\n /**\n * The candidate score to be displayed on the chart.\n * @type {number}\n * @memberof GaussianChartComponent\n */\n @Input() score!: number;\n\n /**\n * The best candidate score to be displayed on the chart.\n * @type {number}\n * @memberof GaussianChartComponent\n */\n @Input() bestCandidateScore!: number;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof SpinnerComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * Controls the position of the legend relative to the chart.\n * @type {LegendPosition}\n * @memberof GaussianChartComponent\n */\n @Input() legendPosition: LegendPosition = 'bottom-start';\n\n readonly minXValue = -3;\n readonly maxXValue = 3;\n readonly minYValue = 0;\n readonly stepSize = 0.1;\n readonly pointsToSkip = 2;\n readonly actualMinXvalue = this.minXValue + this.pointsToSkip * this.stepSize;\n readonly actualMaxXvalue = this.maxXValue - this.pointsToSkip * this.stepSize;\n readonly normalContainerPadding = 50; //in px\n readonly bestScoreThreshold = 92;\n readonly bestScoreSpacingRight = '4px';\n readonly bestScoreSpacingLeft = '-39px';\n\n PercentileThreshold = PercentileThreshold;\n chart: Chart;\n gaussianDistribution: gaussian.Gaussian;\n activeBucket: PercentileThreshold;\n overlayXValue: number;\n overlayYValue: number;\n overlayXBestScoreValue: number;\n overlayYBestScoreValue: number;\n maxYValue: number;\n\n gaussianChartData: ChartData<'line'> = {\n labels: [],\n datasets: [],\n };\n gaussianChartOptions: ChartOptions<'line'>;\n protected readonly translationContext = 'CHARTS.GAUSSIAN_CHART.';\n\n ngOnInit(): void {\n if (this.score === undefined || this.score === null) {\n throw new Error('Input \"score\" is required for GaussianChartComponent.');\n }\n if (this.bestCandidateScore === undefined || this.bestCandidateScore === null) {\n throw new Error('Input \"bestCandidateScore\" is required for GaussianChartComponent.');\n }\n this.setActiveBucket();\n this.gaussianDistribution = gaussian(0, 1);\n this.maxYValue = this.gaussianDistribution.pdf(0);\n this.setOverlayValues();\n this.setOverlayValuesForBestScore();\n this.setChartData();\n this.setChartOptions();\n }\n\n private setChartData() {\n const xValues: number[] = [];\n const yValues: number[] = [];\n const labels = this.generateLabels(this.minXValue, this.maxXValue, this.stepSize);\n\n for (let x = this.minXValue; x < this.maxXValue + this.stepSize; x = Number((x + this.stepSize).toFixed(2))) {\n xValues.push(x);\n yValues.push(this.gaussianDistribution.pdf(x));\n }\n\n this.gaussianChartData = {\n labels,\n datasets: this.generateDataset(yValues),\n };\n }\n\n private setChartOptions() {\n this.gaussianChartOptions = {\n responsive: true,\n maintainAspectRatio: false,\n scales: this.getScale(),\n plugins: {\n // To be used only for dev purpose\n // tooltip: this.getTooltip(),\n // Comment the below line if you enable the call for tooltip\n tooltip: {\n enabled: false,\n },\n legend: {\n display: false,\n },\n },\n };\n }\n\n private getTooltip(): _DeepPartialObject<TooltipOptions<'line'>> {\n return {\n intersect: false,\n mode: 'nearest',\n displayColors: false,\n callbacks: {\n label: tooltipItem => {\n const value = (this.gaussianDistribution.cdf(parseFloat(tooltipItem.label)) * 100).toFixed(2);\n return `${value}%`;\n },\n title: () => '', // Disable the default title\n },\n };\n }\n\n private getScale(): {\n x: { display: boolean; grid: { display: boolean } };\n y: { display: boolean; grid: { display: boolean } };\n } {\n return {\n x: {\n display: false,\n grid: {\n display: false, // Disable grid lines for x-axis\n },\n },\n y: {\n display: false,\n grid: {\n display: false, // Disable grid lines for y-axis\n },\n },\n };\n }\n\n private generateDataset(\n yValues: number[]\n ): { data: any[]; label: string; borderColor: Color; borderWidth: number; pointRadius: number; fill: boolean }[] {\n return [\n {\n data: [...yValues.slice(0, this.pointsToSkip), ...Array(yValues.length - this.pointsToSkip).fill(null)],\n label: '',\n borderColor: this.activeBucket === PercentileThreshold.LOWEST ? Color.ACCENT_20 : Color.TGO_WHITE,\n borderWidth: 2,\n pointRadius: 0,\n fill: false,\n },\n {\n data: [\n ...Array(this.pointsToSkip).fill(null),\n ...yValues.slice(this.pointsToSkip, yValues.length - this.pointsToSkip),\n ...Array(this.pointsToSkip).fill(null),\n ],\n label: '',\n borderColor: Color.BLACK,\n borderWidth: 2,\n pointRadius: 0,\n fill: false,\n },\n {\n data: [\n ...Array(yValues.length - this.pointsToSkip).fill(null),\n ...yValues.slice(yValues.length - this.pointsToSkip, yValues.length),\n ],\n label: '',\n borderColor: this.activeBucket === PercentileThreshold.HIGHEST ? Color.ACCENT_20 : Color.TGO_WHITE,\n borderWidth: 2,\n pointRadius: 0,\n fill: false,\n },\n ];\n }\n\n private generateLabels(min: number, max: number, step: number): string[] {\n const labels = [];\n for (let x = min; x < max + step; x = Number((x + step).toFixed(2))) {\n labels.push(x.toFixed(1));\n }\n return labels;\n }\n\n private setActiveBucket(): void {\n const score = this.score;\n if (score < (PercentileThreshold.LOWEST as number)) {\n this.activeBucket = PercentileThreshold.LOWEST;\n } else if (score >= (PercentileThreshold.LOWEST as number) && score < (PercentileThreshold.LOWER as number)) {\n this.activeBucket = PercentileThreshold.LOWER;\n } else if (score >= (PercentileThreshold.LOWER as number) && score < (PercentileThreshold.AVERAGE as number)) {\n this.activeBucket = PercentileThreshold.AVERAGE;\n } else if (score >= (PercentileThreshold.AVERAGE as number) && score < (PercentileThreshold.HIGHER as number)) {\n this.activeBucket = PercentileThreshold.HIGHER;\n } else if (score >= (PercentileThreshold.HIGHER as number)) {\n this.activeBucket = PercentileThreshold.HIGHEST;\n }\n }\n\n // For more context: https://testgorilla.atlassian.net/wiki/spaces/SR/pages/1813905736/Percentiles+curve+FE+implementation\n private setOverlayValues(): void {\n const { overlayXValue, overlayYValue } = this.calculateOverlayValues(this.score);\n this.overlayXValue = overlayXValue;\n this.overlayYValue = overlayYValue;\n }\n\n private setOverlayValuesForBestScore(): void {\n const { overlayXValue, overlayYValue } = this.calculateOverlayValues(this.bestCandidateScore);\n this.overlayXBestScoreValue = overlayXValue;\n this.overlayYBestScoreValue = overlayYValue;\n }\n\n private calculateOverlayValues(score: number): { overlayXValue: number; overlayYValue: number } {\n const xValue = this.mapRange(score, 0, 100, this.minXValue, this.maxXValue);\n const yValue = this.gaussianDistribution.pdf(xValue);\n let overlayXValue = score;\n let overlayYValue = this.mapRange(yValue, this.minYValue, this.maxYValue, 0, 100);\n\n if (xValue <= this.actualMinXvalue || xValue >= this.actualMaxXvalue) {\n const xValueExtreme = xValue <= this.actualMinXvalue ? this.actualMinXvalue : this.actualMaxXvalue;\n const yValueExtreme = this.gaussianDistribution.pdf(xValueExtreme);\n overlayXValue = this.mapRange(xValueExtreme, this.minXValue, this.maxXValue, 0, 100);\n overlayYValue = this.mapRange(yValueExtreme, this.minYValue, this.maxYValue, 0, 100);\n }\n\n return { overlayXValue, overlayYValue };\n }\n\n private mapRange(value: number, inMin: number, inMax: number, outMin: number, outMax: number): number {\n return ((value - inMin) * (outMax - outMin)) / (inMax - inMin) + outMin;\n }\n\n getCalcPosition([percentage, pixels, operation = 'add']: [number, number, 'add' | 'subtract']): string {\n const operator = operation === 'add' ? '+' : '-';\n return `calc(${percentage}% ${operator} ${pixels}px)`;\n }\n\n getBestScoreContentPosition(bestScore: number): string {\n return bestScore < this.bestScoreThreshold ? this.bestScoreSpacingRight : this.bestScoreSpacingLeft;\n }\n\n getScoreTranslationKey(score: number): string {\n if (score < (PercentileThreshold.LOWEST as number)) {\n return 'PERCENTILE_LABEL_TYPES.WELL_BELOW_AVERAGE';\n } else if (score >= (PercentileThreshold.LOWEST as number) && score < (PercentileThreshold.LOWER as number)) {\n return 'PERCENTILE_LABEL_TYPES.BELOW_AVERAGE';\n } else if (score >= (PercentileThreshold.LOWER as number) && score < (PercentileThreshold.AVERAGE as number)) {\n return 'PERCENTILE_LABEL_TYPES.AVERAGE';\n } else if (score >= (PercentileThreshold.AVERAGE as number) && score < (PercentileThreshold.HIGHER as number)) {\n return 'PERCENTILE_LABEL_TYPES.ABOVE_AVERAGE';\n } else {\n return 'PERCENTILE_LABEL_TYPES.WELL_ABOVE_AVERAGE';\n }\n }\n}\n","<div\n class=\"chart-section\"\n *ngIf=\"score\"\n [attr.aria-label]=\"\n translationContext + 'ARIA_LABEL'\n | uiTranslate\n : {\n score: score,\n activeBucket: getScoreTranslationKey(score) | uiTranslate | async,\n bestCandidateScore: bestCandidateScore,\n activeBucketBestScore: getScoreTranslationKey(bestCandidateScore) | uiTranslate | async,\n }\n | async\n \"\n tabindex=\"0\"\n>\n <!-- Legend positioned at top -->\n @if (legendPosition === 'top-start' || legendPosition === 'top-end') {\n <ng-container [ngTemplateOutlet]=\"legendTemplate\"></ng-container>\n }\n\n <div class=\"chart-range-wrapper\">\n <div class=\"normal-chart-container\">\n <div class=\"normal-chart\">\n <canvas baseChart [data]=\"gaussianChartData\" [options]=\"gaussianChartOptions\" type=\"line\" class=\"chart\">\n </canvas>\n <div\n class=\"overlay-icon\"\n [style.bottom]=\"[overlayYValue, 3, 'subtract'] | memoizeFunc: getCalcPosition\"\n [style.left]=\"[overlayXValue, 20, 'subtract'] | memoizeFunc: getCalcPosition\"\n >\n <div class=\"drop-icon\">\n <ui-icon name=\"Pin-marker\" size=\"40\"></ui-icon>\n <span class=\"curve-score\">{{ score }}</span>\n </div>\n </div>\n <div\n class=\"best-score\"\n [style.height]=\"[100 - overlayYBestScoreValue, normalContainerPadding, 'add'] | memoizeFunc: getCalcPosition\"\n [style.bottom]=\"overlayYBestScoreValue + '%'\"\n [style.left]=\"overlayXBestScoreValue + '%'\"\n >\n <div\n class=\"best-score-content\"\n [style.left]=\"bestCandidateScore | memoizeFunc: getBestScoreContentPosition : this\"\n >\n <ui-icon name=\"Trophy\"></ui-icon>\n {{ bestCandidateScore }}\n </div>\n </div>\n </div>\n <div class=\"overlay\">\n <div class=\"overlay-column\" [class.active]=\"activeBucket === PercentileThreshold.LOWEST\">\n <div\n class=\"column-item\"\n [class.text-bold]=\"activeBucket === PercentileThreshold.LOWEST\"\n [matTooltip]=\"(translationContext + 'PERCENTAGE_BUCKETS_GRAPH.LOWEST_TOOLTIP' | uiTranslate | async) || ''\"\n >\n {{ translationContext + 'PERCENTAGE_BUCKETS_GRAPH.LOWEST' | uiTranslate | async }}\n </div>\n </div>\n <div class=\"overlay-column\" [class.active]=\"activeBucket === PercentileThreshold.LOWER\">\n <div\n class=\"column-item\"\n [class.text-bold]=\"activeBucket === PercentileThreshold.LOWER\"\n [matTooltip]=\"(translationContext + 'PERCENTAGE_BUCKETS_GRAPH.LOWER_TOOLTIP' | uiTranslate | async) || ''\"\n >\n {{ translationContext + 'PERCENTAGE_BUCKETS_GRAPH.LOWER' | uiTranslate | async }}\n </div>\n </div>\n <div class=\"overlay-column\" [class.active]=\"activeBucket === PercentileThreshold.AVERAGE\">\n <div\n class=\"column-item\"\n [class.text-bold]=\"activeBucket === PercentileThreshold.AVERAGE\"\n [matTooltip]=\"(translationContext + 'PERCENTAGE_BUCKETS_GRAPH.AVERAGE_TOOLTIP' | uiTranslate | async) || ''\"\n >\n {{ translationContext + 'PERCENTAGE_BUCKETS_GRAPH.AVERAGE' | uiTranslate | async }}\n </div>\n </div>\n <div class=\"overlay-column\" [class.active]=\"activeBucket === PercentileThreshold.HIGHER\">\n <div\n class=\"column-item\"\n [class.text-bold]=\"activeBucket === PercentileThreshold.HIGHER\"\n [matTooltip]=\"(translationContext + 'PERCENTAGE_BUCKETS_GRAPH.HIGHER_TOOLTIP' | uiTranslate | async) || ''\"\n >\n {{ translationContext + 'PERCENTAGE_BUCKETS_GRAPH.HIGHER' | uiTranslate | async }}\n </div>\n </div>\n <div class=\"overlay-column\" [class.active]=\"activeBucket === PercentileThreshold.HIGHEST\">\n <div\n class=\"column-item\"\n [class.text-bold]=\"activeBucket === PercentileThreshold.HIGHEST\"\n [matTooltip]=\"(translationContext + 'PERCENTAGE_BUCKETS_GRAPH.HIGHEST_TOOLTIP' | uiTranslate | async) || ''\"\n >\n {{ translationContext + 'PERCENTAGE_BUCKETS_GRAPH.HIGHEST' | uiTranslate | async }}\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"range\">\n <div>1</div>\n <div>20</div>\n <div>40</div>\n <div>60</div>\n <div>80</div>\n <div>99</div>\n </div>\n </div>\n\n <!-- Legend positioned at bottom -->\n @if (legendPosition === 'bottom-start' || legendPosition === 'bottom-end') {\n <ng-container [ngTemplateOutlet]=\"legendTemplate\"></ng-container>\n }\n</div>\n\n<!-- Reusable legend template -->\n<ng-template #legendTemplate>\n <div class=\"legend-container\" [ngClass]=\"'legend-' + legendPosition\">\n <div class=\"legend\">\n <ui-icon name=\"Dot\" color=\"gray\"></ui-icon>\n {{ translationContext + 'CANDIDATE_SCORE' | uiTranslate | async }}\n </div>\n <div class=\"legend\">\n <ui-icon name=\"Trophy\" color=\"gray\"></ui-icon>\n {{ translationContext + 'HIGHEST_SCORE' | uiTranslate | async }}\n </div>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';\nimport { GaussianChartComponent } from './gaussian-chart.component';\nimport { NgChartsModule } from 'ng2-charts';\nimport { Chart, registerables } from 'chart.js';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { CommonModule, NgClass } from '@angular/common';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { MemoizeFuncPipe } from '@testgorilla/tgo-ui/components/core';\n\nChart.register(...registerables);\n\n@NgModule({\n declarations: [GaussianChartComponent],\n exports: [GaussianChartComponent],\n imports: [\n NgClass,\n UiTranslatePipe,\n NgChartsModule,\n MatTooltipModule,\n CommonModule,\n IconComponentModule,\n MemoizeFuncPipe,\n ],\n})\nexport class GaussianChartComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -46,7 +46,6 @@ class IconLabelComponent {
46
46
  this.applicationTheme = defaultAppTheme;
47
47
  }
48
48
  }
49
- ngOnInit() { }
50
49
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.19", ngImport: i0, type: IconLabelComponent, deps: [{ token: 'CANOPYUI_DEFAULT_APPLICATION_THEME', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
51
50
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.19", type: IconLabelComponent, isStandalone: false, selector: "ui-icon-label", inputs: { iconSize: "iconSize", iconName: "iconName", text: "text", iconColor: "iconColor", iconIndent: "iconIndent", applicationTheme: "applicationTheme" }, host: { properties: { "style.--icon-indent": "this.iconIndent" } }, ngImport: i0, template: "<ui-icon [name]=\"iconName\" [size]=\"iconSize\" [color]=\"iconColor\" aria-hidden=\"true\"></ui-icon>\n<span>{{ text }}</span>\n", styles: [":host{display:flex;align-items:center}:host ui-icon{margin-right:calc(var(--icon-indent) * 1px)}\n"], dependencies: [{ kind: "component", type: i1.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "toggleIconStyle", "applicationTheme", "useFullIconName"] }] }); }
52
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"testgorilla-tgo-ui-components-icon-label.mjs","sources":["../../../components/icon-label/icon-label.component.ts","../../../components/icon-label/icon-label.component.html","../../../components/icon-label/icon-label.component.module.ts","../../../components/icon-label/testgorilla-tgo-ui-components-icon-label.ts"],"sourcesContent":["import { Component, HostBinding, Inject, Input, OnInit, Optional } from '@angular/core';\nimport { IconName, IconSize } from '@testgorilla/tgo-ui/components/icon';\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\n\n@Component({\n selector: 'ui-icon-label',\n templateUrl: './icon-label.component.html',\n styleUrls: ['./icon-label.component.scss'],\n standalone: false\n})\nexport class IconLabelComponent implements OnInit {\n /**\n * Icon size\n *\n * @type {IconSize}\n * @memberof IconLabelComponent\n */\n @Input() iconSize: IconSize = '16';\n\n /**\n * Icon name\n *\n * @type {IconName}\n * @memberof IconLabelComponent\n */\n @Input() iconName: IconName;\n\n /**\n * Label\n *\n * @memberof IconLabelComponent\n */\n @Input() text = '';\n\n /**\n * Icon color\n *\n * @type {IconColor}\n * @memberof IconLabelComponent\n */\n @Input() iconColor? = '';\n\n /**\n * Indent between icon and label\n *\n * @type {string}\n * @memberof IconLabelComponent\n */\n @HostBinding('style.--icon-indent')\n @Input()\n iconIndent? = '8';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof IconLabelComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n\n ngOnInit(): void {}\n}\n","<ui-icon [name]=\"iconName\" [size]=\"iconSize\" [color]=\"iconColor\" aria-hidden=\"true\"></ui-icon>\n<span>{{ text }}</span>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { IconLabelComponent } from './icon-label.component';\n\n@NgModule({\n declarations: [IconLabelComponent],\n imports: [CommonModule, IconComponentModule],\n exports: [IconLabelComponent],\n providers: [],\n})\nexport class IconLabelComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testgorilla-tgo-ui-components-icon-label.mjs","sources":["../../../components/icon-label/icon-label.component.ts","../../../components/icon-label/icon-label.component.html","../../../components/icon-label/icon-label.component.module.ts","../../../components/icon-label/testgorilla-tgo-ui-components-icon-label.ts"],"sourcesContent":["import { Component, HostBinding, Inject, Input, Optional } from '@angular/core';\nimport { IconName, IconSize } from '@testgorilla/tgo-ui/components/icon';\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\n\n@Component({\n selector: 'ui-icon-label',\n templateUrl: './icon-label.component.html',\n styleUrls: ['./icon-label.component.scss'],\n standalone: false,\n})\nexport class IconLabelComponent {\n /**\n * Icon size\n *\n * @type {IconSize}\n * @memberof IconLabelComponent\n */\n @Input() iconSize: IconSize = '16';\n\n /**\n * Icon name\n *\n * @type {IconName}\n * @memberof IconLabelComponent\n */\n @Input() iconName: IconName;\n\n /**\n * Label\n *\n * @memberof IconLabelComponent\n */\n @Input() text = '';\n\n /**\n * Icon color\n *\n * @type {IconColor}\n * @memberof IconLabelComponent\n */\n @Input() iconColor? = '';\n\n /**\n * Indent between icon and label\n *\n * @type {string}\n * @memberof IconLabelComponent\n */\n @HostBinding('style.--icon-indent')\n @Input()\n iconIndent? = '8';\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof IconLabelComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n constructor(\n @Optional() @Inject('CANOPYUI_DEFAULT_APPLICATION_THEME') private readonly defaultAppTheme: ApplicationTheme\n ) {\n if (defaultAppTheme) {\n this.applicationTheme = defaultAppTheme;\n }\n }\n}\n","<ui-icon [name]=\"iconName\" [size]=\"iconSize\" [color]=\"iconColor\" aria-hidden=\"true\"></ui-icon>\n<span>{{ text }}</span>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { IconLabelComponent } from './icon-label.component';\n\n@NgModule({\n declarations: [IconLabelComponent],\n imports: [CommonModule, IconComponentModule],\n exports: [IconLabelComponent],\n providers: [],\n})\nexport class IconLabelComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}