@testgorilla/tgo-ui 4.1.3-beta → 4.1.3

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 (281) hide show
  1. package/components/accordion/accordion.component.d.ts +2 -2
  2. package/components/accordion/accordion.component.module.d.ts +2 -2
  3. package/components/ai-feedback/ai-feedback.module.d.ts +2 -2
  4. package/components/alert-banner/alert-banner.component.d.ts +2 -2
  5. package/components/alert-banner/alert-banner.component.module.d.ts +3 -3
  6. package/components/autocomplete/autocomplete.component.d.ts +2 -2
  7. package/components/autocomplete/autocomplete.component.module.d.ts +10 -9
  8. package/components/avatar/avatar.component.d.ts +2 -2
  9. package/components/avatar/avatar.component.module.d.ts +4 -4
  10. package/components/avatar/avatar.model.d.ts +2 -2
  11. package/components/badge/badge.component.d.ts +2 -2
  12. package/components/badge/badge.component.module.d.ts +1 -1
  13. package/components/breadcrumb/breadcrumb.component.d.ts +5 -3
  14. package/components/breadcrumb/breadcrumb.component.module.d.ts +4 -4
  15. package/components/button/button.component.d.ts +2 -2
  16. package/components/button/button.component.module.d.ts +5 -4
  17. package/components/button/button.model.d.ts +1 -1
  18. package/components/card/card.component.d.ts +2 -2
  19. package/components/card/card.component.module.d.ts +1 -1
  20. package/components/card/card.model.d.ts +1 -1
  21. package/components/checkbox/checkbox.component.d.ts +2 -2
  22. package/components/checkbox/checkbox.component.module.d.ts +8 -6
  23. package/components/checklist/checklist.component.d.ts +2 -2
  24. package/components/confirm-dialog/confirm-dialog.component.d.ts +4 -4
  25. package/components/confirm-dialog/confirm-dialog.component.module.d.ts +2 -2
  26. package/components/confirm-dialog/confirm-dialog.model.d.ts +3 -3
  27. package/components/datepicker/datepicker.component.d.ts +1 -1
  28. package/components/datepicker/datepicker.component.module.d.ts +3 -3
  29. package/components/dialog/dialog.component.d.ts +4 -4
  30. package/components/dialog/dialog.component.module.d.ts +2 -2
  31. package/components/dialog/dialog.model.d.ts +1 -1
  32. package/components/dialog/dialog.service.d.ts +1 -1
  33. package/components/divider/divider.component.d.ts +1 -1
  34. package/components/donut-chart/donut-chart.component.d.ts +5 -17
  35. package/components/dropdown/dropdown.component.d.ts +2 -2
  36. package/components/dropdown/dropdown.component.module.d.ts +6 -5
  37. package/components/elevation-shadow/elevation-shadow.component.d.ts +1 -1
  38. package/components/empty-state/empty-state.component.d.ts +3 -3
  39. package/components/empty-state/empty-state.component.module.d.ts +3 -3
  40. package/components/field/field.component.d.ts +4 -4
  41. package/components/field/field.component.module.d.ts +8 -6
  42. package/components/file-upload/file-upload.component.d.ts +1 -1
  43. package/components/file-upload/file-upload.component.module.d.ts +3 -3
  44. package/components/filter-button/filter-button.component.d.ts +3 -3
  45. package/components/filter-button/filter-button.component.module.d.ts +8 -7
  46. package/components/filter-button/filter-button.model.d.ts +1 -1
  47. package/components/gaussian-chart/gaussian-chart.component.d.ts +1 -1
  48. package/components/gaussian-chart/gaussian-chart.module.d.ts +2 -2
  49. package/components/icon/icon.component.d.ts +2 -2
  50. package/components/icon-label/icon-label.component.d.ts +2 -2
  51. package/components/icon-label/icon-label.component.module.d.ts +1 -1
  52. package/components/inline-field/inline-field.component.d.ts +3 -3
  53. package/components/inline-field/inline-field.component.module.d.ts +3 -3
  54. package/components/inline-field/inline-field.model.d.ts +1 -1
  55. package/components/logo/logo.component.d.ts +1 -1
  56. package/components/multi-input/multi-input.component.module.d.ts +8 -7
  57. package/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.d.ts +2 -2
  58. package/components/navbar/navbar.component.d.ts +3 -3
  59. package/components/navbar/navbar.component.module.d.ts +6 -6
  60. package/components/navbar/navbar.model.d.ts +2 -2
  61. package/components/overflow-menu/overflow-menu.component.d.ts +3 -3
  62. package/components/overflow-menu/overflow-menu.component.module.d.ts +5 -4
  63. package/components/overflow-menu/overflow-menu.model.d.ts +1 -1
  64. package/components/page-header/page-header.component.d.ts +1 -1
  65. package/components/page-header/page-header.component.module.d.ts +2 -2
  66. package/components/paginator/paginator.component.d.ts +1 -1
  67. package/components/password-criteria/password.component.module.d.ts +4 -4
  68. package/components/password-strength/password-strength.component.d.ts +2 -2
  69. package/components/password-strength/password-strength.component.module.d.ts +3 -3
  70. package/components/phone-input/phone-input.component.d.ts +1 -1
  71. package/components/phone-input/phone-input.component.module.d.ts +4 -4
  72. package/components/progress-bar/progress-bar.component.d.ts +1 -1
  73. package/components/progress-bar/progress-bar.component.module.d.ts +1 -1
  74. package/components/prompt/prompt.component.d.ts +1 -1
  75. package/components/prompt/prompt.module.d.ts +7 -7
  76. package/components/radial-progress/radial-progress.component.d.ts +2 -2
  77. package/components/radial-progress/radial-progress.component.module.d.ts +1 -1
  78. package/components/radio-button/radio-button.component.d.ts +2 -2
  79. package/components/radio-button/radio-button.component.module.d.ts +2 -2
  80. package/components/rating/rating.component.d.ts +1 -1
  81. package/components/scale/scale.component.d.ts +1 -1
  82. package/components/scale-table/scale-table.component.d.ts +1 -1
  83. package/components/segmented-bar/segmented-bar.component.d.ts +1 -1
  84. package/components/segmented-bar/segmented-bar.component.module.d.ts +2 -2
  85. package/components/segmented-bar/segmented-bar.model.d.ts +1 -1
  86. package/components/segmented-button/segmented-button.component.d.ts +1 -1
  87. package/components/selectable-card/selectable-card.component.d.ts +6 -2
  88. package/components/selectable-card/selectable-card.component.module.d.ts +2 -2
  89. package/components/side-panel/side-panel.component.d.ts +1 -1
  90. package/components/side-sheet/side-sheet.component.d.ts +1 -1
  91. package/components/side-sheet/side-sheet.component.module.d.ts +4 -4
  92. package/components/skeleton/skeleton.component.d.ts +2 -2
  93. package/components/slider/slider.component.d.ts +1 -1
  94. package/components/snackbar/snackbar.component.d.ts +2 -2
  95. package/components/snackbar/snackbar.component.module.d.ts +3 -3
  96. package/components/snackbar/snackbar.service.d.ts +1 -1
  97. package/components/spider-chart/spider-chart.component.d.ts +1 -1
  98. package/components/spider-chart/spider-chart.module.d.ts +2 -2
  99. package/components/spinner/spinner.component.d.ts +2 -2
  100. package/components/spinner/spinner.module.d.ts +2 -2
  101. package/components/step/step.component.d.ts +3 -3
  102. package/components/step/step.component.module.d.ts +2 -2
  103. package/components/stepper/stepper.component.d.ts +1 -1
  104. package/components/stepper/stepper.component.module.d.ts +3 -3
  105. package/components/stepper/stepper.model.d.ts +1 -1
  106. package/components/table/table.component.d.ts +1 -1
  107. package/components/table/table.component.module.d.ts +5 -5
  108. package/components/tabs/tab.directive.d.ts +1 -1
  109. package/components/tabs/tabs.component.d.ts +1 -1
  110. package/components/tabs/tabs.component.module.d.ts +3 -3
  111. package/components/tabs/tabs.model.d.ts +1 -1
  112. package/components/tag/tag.component.d.ts +2 -2
  113. package/components/tag/tag.component.module.d.ts +3 -3
  114. package/components/toggle/toggle.component.d.ts +1 -1
  115. package/components/toggle/toggle.component.module.d.ts +5 -4
  116. package/components/tooltip/tooltip.component.d.ts +1 -1
  117. package/components/tooltip/tooltip.component.module.d.ts +3 -2
  118. package/components/universal-skills-report/universal-skills-report.component.d.ts +2 -2
  119. package/components/universal-skills-report/universal-skills-report.component.module.d.ts +3 -3
  120. package/components/universal-skills-spider-charts/universal-skills-spider-charts.component.d.ts +2 -2
  121. package/components/universal-skills-spider-charts/universal-skills-spider-charts.component.module.d.ts +4 -4
  122. package/components/validation-error/validation-error.component.d.ts +1 -1
  123. package/components/validation-error/validation-error.module.d.ts +2 -2
  124. package/fesm2022/testgorilla-tgo-ui.mjs +22749 -3564
  125. package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
  126. package/models/application-theme.model.d.ts +1 -0
  127. package/package.json +9 -142
  128. package/{components/core → pipes}/ui-translate.pipe.d.ts +1 -1
  129. package/projects/tgo-canopy-ui/assets/i18n/da-dk.json +820 -0
  130. package/projects/tgo-canopy-ui/assets/i18n/de.json +820 -0
  131. package/projects/tgo-canopy-ui/assets/i18n/en.json +829 -0
  132. package/projects/tgo-canopy-ui/assets/i18n/es.json +820 -0
  133. package/projects/tgo-canopy-ui/assets/i18n/fr.json +820 -0
  134. package/projects/tgo-canopy-ui/assets/i18n/it-it.json +820 -0
  135. package/projects/tgo-canopy-ui/assets/i18n/ja-jp.json +820 -0
  136. package/projects/tgo-canopy-ui/assets/i18n/nb-no.json +820 -0
  137. package/projects/tgo-canopy-ui/assets/i18n/nl.json +820 -0
  138. package/projects/tgo-canopy-ui/assets/i18n/pl-pl.json +820 -0
  139. package/projects/tgo-canopy-ui/assets/i18n/pt-br.json +820 -0
  140. package/projects/tgo-canopy-ui/assets/i18n/sv-se.json +820 -0
  141. package/public-api.d.ts +87 -0
  142. package/utils/alert-bars.utils.d.ts +1 -1
  143. package/components/autocomplete/index.d.ts +0 -5
  144. package/components/autocomplete/public-api.d.ts +0 -4
  145. package/components/avatar/index.d.ts +0 -5
  146. package/components/avatar/public-api.d.ts +0 -4
  147. package/components/badge/index.d.ts +0 -5
  148. package/components/badge/public-api.d.ts +0 -4
  149. package/components/button/color-contrast.d.ts +0 -28
  150. package/components/button/index.d.ts +0 -5
  151. package/components/button/public-api.d.ts +0 -5
  152. package/components/card/index.d.ts +0 -5
  153. package/components/card/public-api.d.ts +0 -4
  154. package/components/checkbox/index.d.ts +0 -5
  155. package/components/checkbox/public-api.d.ts +0 -4
  156. package/components/core/application-theme.model.d.ts +0 -7
  157. package/components/core/has-validation-error.pipe.d.ts +0 -15
  158. package/components/core/index.d.ts +0 -5
  159. package/components/core/keyboard-events.model.d.ts +0 -11
  160. package/components/core/public-api.d.ts +0 -12
  161. package/components/core/select-text.directive.d.ts +0 -19
  162. package/components/divider/index.d.ts +0 -5
  163. package/components/divider/public-api.d.ts +0 -4
  164. package/components/dropdown/index.d.ts +0 -5
  165. package/components/dropdown/public-api.d.ts +0 -4
  166. package/components/elevation-shadow/index.d.ts +0 -5
  167. package/components/elevation-shadow/public-api.d.ts +0 -3
  168. package/components/empty-state/index.d.ts +0 -5
  169. package/components/empty-state/public-api.d.ts +0 -4
  170. package/components/field/index.d.ts +0 -5
  171. package/components/field/public-api.d.ts +0 -4
  172. package/components/filter-button/index.d.ts +0 -5
  173. package/components/filter-button/public-api.d.ts +0 -4
  174. package/components/icon/index.d.ts +0 -5
  175. package/components/icon/public-api.d.ts +0 -5
  176. package/components/inline-field/index.d.ts +0 -5
  177. package/components/inline-field/public-api.d.ts +0 -4
  178. package/components/logo/index.d.ts +0 -5
  179. package/components/logo/public-api.d.ts +0 -4
  180. package/components/paginator/index.d.ts +0 -5
  181. package/components/paginator/public-api.d.ts +0 -3
  182. package/components/progress-bar/index.d.ts +0 -5
  183. package/components/progress-bar/public-api.d.ts +0 -3
  184. package/components/radial-progress/index.d.ts +0 -5
  185. package/components/radial-progress/public-api.d.ts +0 -4
  186. package/components/radio-button/index.d.ts +0 -5
  187. package/components/radio-button/public-api.d.ts +0 -4
  188. package/components/rating/index.d.ts +0 -5
  189. package/components/rating/public-api.d.ts +0 -3
  190. package/components/scale/index.d.ts +0 -5
  191. package/components/scale/public-api.d.ts +0 -3
  192. package/components/segmented-bar/index.d.ts +0 -5
  193. package/components/segmented-bar/public-api.d.ts +0 -4
  194. package/components/segmented-button/index.d.ts +0 -5
  195. package/components/segmented-button/public-api.d.ts +0 -4
  196. package/components/skeleton/index.d.ts +0 -5
  197. package/components/skeleton/public-api.d.ts +0 -3
  198. package/components/slider/index.d.ts +0 -5
  199. package/components/slider/public-api.d.ts +0 -4
  200. package/components/spinner/index.d.ts +0 -5
  201. package/components/spinner/public-api.d.ts +0 -4
  202. package/components/tag/index.d.ts +0 -5
  203. package/components/tag/public-api.d.ts +0 -4
  204. package/components/toggle/index.d.ts +0 -5
  205. package/components/toggle/public-api.d.ts +0 -3
  206. package/components/tooltip/index.d.ts +0 -5
  207. package/components/tooltip/public-api.d.ts +0 -5
  208. package/components/validation-error/index.d.ts +0 -5
  209. package/components/validation-error/public-api.d.ts +0 -3
  210. package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs +0 -1045
  211. package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs.map +0 -1
  212. package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs +0 -173
  213. package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs.map +0 -1
  214. package/fesm2022/testgorilla-tgo-ui-components-badge.mjs +0 -180
  215. package/fesm2022/testgorilla-tgo-ui-components-badge.mjs.map +0 -1
  216. package/fesm2022/testgorilla-tgo-ui-components-button.mjs +0 -635
  217. package/fesm2022/testgorilla-tgo-ui-components-button.mjs.map +0 -1
  218. package/fesm2022/testgorilla-tgo-ui-components-card.mjs +0 -164
  219. package/fesm2022/testgorilla-tgo-ui-components-card.mjs.map +0 -1
  220. package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs +0 -402
  221. package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs.map +0 -1
  222. package/fesm2022/testgorilla-tgo-ui-components-core.mjs +0 -10807
  223. package/fesm2022/testgorilla-tgo-ui-components-core.mjs.map +0 -1
  224. package/fesm2022/testgorilla-tgo-ui-components-divider.mjs +0 -88
  225. package/fesm2022/testgorilla-tgo-ui-components-divider.mjs.map +0 -1
  226. package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs +0 -434
  227. package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs.map +0 -1
  228. package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs +0 -75
  229. package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs.map +0 -1
  230. package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs +0 -326
  231. package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs.map +0 -1
  232. package/fesm2022/testgorilla-tgo-ui-components-field.mjs +0 -638
  233. package/fesm2022/testgorilla-tgo-ui-components-field.mjs.map +0 -1
  234. package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs +0 -314
  235. package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs.map +0 -1
  236. package/fesm2022/testgorilla-tgo-ui-components-icon.mjs +0 -1496
  237. package/fesm2022/testgorilla-tgo-ui-components-icon.mjs.map +0 -1
  238. package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs +0 -367
  239. package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs.map +0 -1
  240. package/fesm2022/testgorilla-tgo-ui-components-logo.mjs +0 -218
  241. package/fesm2022/testgorilla-tgo-ui-components-logo.mjs.map +0 -1
  242. package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs +0 -110
  243. package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs.map +0 -1
  244. package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs +0 -128
  245. package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs.map +0 -1
  246. package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs +0 -152
  247. package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs.map +0 -1
  248. package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs +0 -373
  249. package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs.map +0 -1
  250. package/fesm2022/testgorilla-tgo-ui-components-rating.mjs +0 -150
  251. package/fesm2022/testgorilla-tgo-ui-components-rating.mjs.map +0 -1
  252. package/fesm2022/testgorilla-tgo-ui-components-scale.mjs +0 -158
  253. package/fesm2022/testgorilla-tgo-ui-components-scale.mjs.map +0 -1
  254. package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs +0 -137
  255. package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs.map +0 -1
  256. package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs +0 -128
  257. package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs.map +0 -1
  258. package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs +0 -81
  259. package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs.map +0 -1
  260. package/fesm2022/testgorilla-tgo-ui-components-slider.mjs +0 -274
  261. package/fesm2022/testgorilla-tgo-ui-components-slider.mjs.map +0 -1
  262. package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs +0 -108
  263. package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs.map +0 -1
  264. package/fesm2022/testgorilla-tgo-ui-components-tag.mjs +0 -239
  265. package/fesm2022/testgorilla-tgo-ui-components-tag.mjs.map +0 -1
  266. package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs +0 -216
  267. package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs.map +0 -1
  268. package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs +0 -272
  269. package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs.map +0 -1
  270. package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs +0 -79
  271. package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs.map +0 -1
  272. /package/{components/core → directives}/digits-only.directive.d.ts +0 -0
  273. /package/{components/core → directives}/ellipse-text.directive.d.ts +0 -0
  274. /package/{components/autocomplete → directives}/select-text.directive.d.ts +0 -0
  275. /package/{components/core → models}/checkbox.model.d.ts +0 -0
  276. /package/{components/avatar → pipes}/name-initials.pipe.d.ts +0 -0
  277. /package/{components/icon → services}/icons.service.d.ts +0 -0
  278. /package/{components/core → utils}/autocomplete-utils.d.ts +0 -0
  279. /package/{components/core → utils}/hex-to-rgb.d.ts +0 -0
  280. /package/{components/core → utils/localization}/language.model.d.ts +0 -0
  281. /package/{components/core → utils/localization}/language.service.d.ts +0 -0
@@ -1,239 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { EventEmitter, signal, ViewChild, Output, Input, Optional, Inject, Component, NgModule } from '@angular/core';
3
- import { ReplaySubject, debounceTime, map } from 'rxjs';
4
- import * as i4 from '@testgorilla/tgo-ui/components/core';
5
- import { IKeyboardEvent, UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';
6
- import * as i1 from '@angular/common';
7
- import { CommonModule } from '@angular/common';
8
- import * as i2 from '@testgorilla/tgo-ui/components/icon';
9
- import { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';
10
- import * as i3 from '@angular/material/tooltip';
11
- import { MatTooltipModule } from '@angular/material/tooltip';
12
- import { TooltipComponentModule } from '@testgorilla/tgo-ui/components/tooltip';
13
- import { MatInputModule } from '@angular/material/input';
14
-
15
- class TagComponent {
16
- /**
17
- * Tag's label
18
- *
19
- * @memberof TagComponent
20
- */
21
- set label(value) {
22
- this.labelText = value;
23
- if (this.labelElement) {
24
- this.isLabelEllipseActive();
25
- }
26
- }
27
- constructor(defaultAppTheme) {
28
- this.defaultAppTheme = defaultAppTheme;
29
- /**
30
- * Icon
31
- *
32
- * @type {string}
33
- * @memberof TagComponent
34
- */
35
- this.icon = '';
36
- /**
37
- * Whether to allow the tag to be closed.
38
- *
39
- * @type {boolean}
40
- * @default false
41
- * @memberof TagComponent
42
- */
43
- this.allowClose = false;
44
- /**
45
- * Whether the tag is in read-only mode.
46
- *
47
- * @type {boolean}
48
- * @default false
49
- * @memberof TagComponent
50
- */
51
- this.readOnly = false;
52
- /**
53
- * Whether the tag is selected.
54
- *
55
- * @type {boolean}
56
- * @default false
57
- * @memberof TagComponent
58
- */
59
- this.isSelected = false;
60
- /**
61
- * Display icon when is selected
62
- *
63
- * @type {boolean}
64
- * @default false
65
- * @memberof TagComponent
66
- */
67
- this.showIconWhenSelected = false;
68
- /**
69
- * Specifies whether the element is disabled.
70
- *
71
- * @type {boolean}
72
- * @default false
73
- * @memberof TagComponent
74
- */
75
- this.isDisabled = false;
76
- /**
77
- *
78
- * Defines the application theme
79
- *
80
- * @type {ApplicationTheme}
81
- * @memberof TagComponent
82
- */
83
- this.applicationTheme = 'light';
84
- /**
85
- * A string representing the ARIA requirement for accessibility.
86
- * This attribute is used to indicate whether an input field is required for form submission.
87
- * @type {boolean}
88
- * @memberof TagComponent
89
- */
90
- this.ariaRequired = false;
91
- /**
92
- * Event triggered when the tag should be closed.
93
- *
94
- * @event
95
- * @memberof TagComponent
96
- */
97
- this.close = new EventEmitter();
98
- /**
99
- * Event triggered when a press action occurs.
100
- *
101
- * @event
102
- * @memberof TagComponent
103
- */
104
- this.press = new EventEmitter();
105
- /**
106
- * Subject that needs to be triggered when Label input changes, to check if it's truncated
107
- * @private
108
- * @type {void}
109
- * @memberof TagComponent
110
- */
111
- this.checkLabelEllipsis$ = new ReplaySubject(1);
112
- /**
113
- * Observable that indicates if the Label is truncated
114
- * debounceTime is used to wait for view to be initialized after receiving a new Label input
115
- * @protected
116
- * @type {boolean}
117
- * @memberof TagComponent
118
- */
119
- this.isEllipseActiveObs$ = this.checkLabelEllipsis$.pipe(debounceTime(100), map(() => {
120
- const el = this.labelElement.nativeElement;
121
- return el.offsetWidth < el.scrollWidth;
122
- }));
123
- this.labelText = '';
124
- this.isHovered = false;
125
- this.shrink = false;
126
- this.closeBtnFocused = signal(false);
127
- if (defaultAppTheme) {
128
- this.applicationTheme = defaultAppTheme;
129
- }
130
- }
131
- ngOnInit() {
132
- this.iconToPass = this.icon;
133
- this.iconColor = 'black';
134
- }
135
- ngAfterViewInit() {
136
- this.isLabelEllipseActive();
137
- }
138
- onPress() {
139
- if (!this.readOnly && !this.allowClose) {
140
- this.isSelected = this.showIconWhenSelected ? !this.isSelected : false;
141
- this.press.emit(this.isSelected);
142
- }
143
- }
144
- setHoverState(state) {
145
- this.isHovered = state;
146
- if (this.applicationTheme !== 'classic') {
147
- if (state) {
148
- this.iconToPass = `${this.icon}-filled`;
149
- }
150
- else {
151
- this.iconToPass = this.icon;
152
- }
153
- this.iconColor = this.isHovered ? 'white' : 'black';
154
- }
155
- }
156
- setShrinkState(state) {
157
- this.shrink = state;
158
- }
159
- onClose() {
160
- this.close.emit();
161
- }
162
- isLabelEllipseActive() {
163
- this.checkLabelEllipsis$.next();
164
- }
165
- get tabIndex() {
166
- return this.isDisabled || this.readOnly ? -1 : 0;
167
- }
168
- get filled() {
169
- return this.readOnly || this.allowClose || this.isSelected;
170
- }
171
- onKeydown($event) {
172
- if (($event.key === IKeyboardEvent.ENTER || $event.key === IKeyboardEvent.SPACE) && !this.closeBtnFocused()) {
173
- this.onPress();
174
- }
175
- else if (this.closeBtnFocused() && ($event.key === IKeyboardEvent.ENTER || $event.key === IKeyboardEvent.SPACE)) {
176
- this.onClose();
177
- }
178
- }
179
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TagComponent, deps: [{ token: 'CANOPYUI_DEFAULT_APPLICATION_THEME', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
180
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: TagComponent, isStandalone: false, selector: "ui-tag", inputs: { label: "label", icon: "icon", allowClose: "allowClose", readOnly: "readOnly", isSelected: "isSelected", showIconWhenSelected: "showIconWhenSelected", isDisabled: "isDisabled", applicationTheme: "applicationTheme", ariaLabel: "ariaLabel", ariaRequired: "ariaRequired" }, outputs: { close: "close", press: "press" }, viewQueries: [{ propertyName: "labelElement", first: true, predicate: ["labelElement"], descendants: true }], ngImport: i0, template: "<div class=\"tag-wrapper\">\n <div\n [matTooltip]=\"(isEllipseActiveObs$ | async) ? labelText : ''\" [matTooltipClass]=\"applicationTheme\"\n [tabindex]=\"tabIndex\"\n class=\"tag-container\"\n [attr.data-testid]=\"'tag--container'\"\n [attr.theme]=\"applicationTheme\"\n [ngClass]=\"{\n filled: filled,\n readonly: readOnly,\n disabled: isDisabled,\n outlined: !isSelected,\n shrink\n }\"\n (click)=\"onPress()\"\n (mouseenter)=\"setHoverState(true)\" (mouseleave)=\"setHoverState(false)\"\n (mousedown)=\"setShrinkState(true)\" (mouseup)=\"setShrinkState(false)\"\n (touchstart)=\"setShrinkState(true)\" (touchend)=\"setShrinkState(false)\"\n (keydown)=\"onKeydown($event)\"\n [attr.aria-label]=\"ariaLabel || labelText\"\n [attr.aria-required]=\"ariaRequired\"\n >\n <ui-icon *ngIf=\"icon\" class=\"icon\" [color]=\"iconColor\" [name]=\"iconToPass\" [applicationTheme]=\"applicationTheme\"></ui-icon>\n <ui-icon *ngIf=\"isSelected && showIconWhenSelected\" [color]=\"iconColor\" class=\"icon\" [name]=\"'Check'\" [applicationTheme]=\"applicationTheme\"></ui-icon>\n <span class=\"tag-label\" #labelElement>{{ labelText }}</span>\n <ui-icon (focus)=\"closeBtnFocused.set(true)\" (blur)=\"closeBtnFocused.set(false)\" [tabindex]=\"tabIndex\" *ngIf=\"allowClose\" class=\"delete-icon\"\n [attr.aria-label]=\"'TAG.REMOVE' | uiTranslate | async\"\n [color]=\"iconColor\" (click)=\"onClose()\" [name]=\"'Close'\" [applicationTheme]=\"applicationTheme\"></ui-icon>\n </div>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap\";.bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host .tag-wrapper{max-width:264px}@keyframes focus-ring-animation{0%{outline-width:4px}to{outline-width:2px}}:host .tag-container{height:32px;max-width:264px;border-radius:4px;display:flex;align-items:center;justify-content:center;padding:0 8px;width:fit-content;cursor:pointer;margin:4px}:host .tag-container:focus-visible{outline:2px solid #242424;animation:focus-ring-animation .4s forwards;outline-offset:2px;position:relative}:host .tag-container:focus-visible:after{content:\"\";position:absolute;width:calc(100% + 4px);height:calc(100% + 4px);top:-2px;left:-2px;outline:2px solid #ffffff;border-radius:4px}:host .tag-container.outlined{border:1px solid #6894A0}:host .tag-container.filled{background:#e9f0f1;border:1px solid #E9F0F1}:host .tag-container.filled:hover{background-color:#e9f0f1;border:1px solid #276678}:host .tag-container.filled:active{background:#a9c2c9;border:1px solid #1B4754}:host .tag-container:hover{background:#f6f6f6;border:1px solid #6894A0}:host .tag-container:active{background:#e9f0f1}:host .tag-container.readonly{pointer-events:none}:host .tag-container.disabled{opacity:.5;border:1px solid #276678;background:#e9f0f1;pointer-events:none}:host .tag-container .tag-label{-webkit-user-select:none;user-select:none;font-size:14px;line-height:20px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .tag-container .icon{height:16px;width:16px;min-width:16px;margin-right:8px}:host .tag-container .delete-icon{display:flex;align-items:center;justify-content:center;margin-left:8px;text-align:center;border:1px solid transparent;border-radius:50px;padding:2px}:host .tag-container[theme=dark],:host .tag-container[theme=light]{background:#f4f4f4;border:2px solid transparent}:host .tag-container[theme=dark].filled,:host .tag-container[theme=light].filled{background-color:#fff;border-color:#242424}:host .tag-container[theme=dark]:hover,:host .tag-container[theme=light]:hover{background-color:#666;color:#fff;border-color:#666;border-width:2px}:host .tag-container[theme=dark].shrink,:host .tag-container[theme=light].shrink{transform:scale(.98)}::ng-deep .mat-mdc-tooltip{background-color:#a9c2c9;font-family:Open Sans,serif;font-weight:400;font-size:12px;border-radius:4px;overflow:visible;max-width:248px;padding:6px 2px;--mdc-plain-tooltip-container-color: none;--mdc-plain-tooltip-supporting-text-color: $tgo-black}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "toggleIconStyle", "applicationTheme", "useFullIconName"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.UiTranslatePipe, name: "uiTranslate" }] }); }
181
- }
182
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TagComponent, decorators: [{
183
- type: Component,
184
- args: [{ selector: 'ui-tag', standalone: false, template: "<div class=\"tag-wrapper\">\n <div\n [matTooltip]=\"(isEllipseActiveObs$ | async) ? labelText : ''\" [matTooltipClass]=\"applicationTheme\"\n [tabindex]=\"tabIndex\"\n class=\"tag-container\"\n [attr.data-testid]=\"'tag--container'\"\n [attr.theme]=\"applicationTheme\"\n [ngClass]=\"{\n filled: filled,\n readonly: readOnly,\n disabled: isDisabled,\n outlined: !isSelected,\n shrink\n }\"\n (click)=\"onPress()\"\n (mouseenter)=\"setHoverState(true)\" (mouseleave)=\"setHoverState(false)\"\n (mousedown)=\"setShrinkState(true)\" (mouseup)=\"setShrinkState(false)\"\n (touchstart)=\"setShrinkState(true)\" (touchend)=\"setShrinkState(false)\"\n (keydown)=\"onKeydown($event)\"\n [attr.aria-label]=\"ariaLabel || labelText\"\n [attr.aria-required]=\"ariaRequired\"\n >\n <ui-icon *ngIf=\"icon\" class=\"icon\" [color]=\"iconColor\" [name]=\"iconToPass\" [applicationTheme]=\"applicationTheme\"></ui-icon>\n <ui-icon *ngIf=\"isSelected && showIconWhenSelected\" [color]=\"iconColor\" class=\"icon\" [name]=\"'Check'\" [applicationTheme]=\"applicationTheme\"></ui-icon>\n <span class=\"tag-label\" #labelElement>{{ labelText }}</span>\n <ui-icon (focus)=\"closeBtnFocused.set(true)\" (blur)=\"closeBtnFocused.set(false)\" [tabindex]=\"tabIndex\" *ngIf=\"allowClose\" class=\"delete-icon\"\n [attr.aria-label]=\"'TAG.REMOVE' | uiTranslate | async\"\n [color]=\"iconColor\" (click)=\"onClose()\" [name]=\"'Close'\" [applicationTheme]=\"applicationTheme\"></ui-icon>\n </div>\n</div>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap\";.bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host .tag-wrapper{max-width:264px}@keyframes focus-ring-animation{0%{outline-width:4px}to{outline-width:2px}}:host .tag-container{height:32px;max-width:264px;border-radius:4px;display:flex;align-items:center;justify-content:center;padding:0 8px;width:fit-content;cursor:pointer;margin:4px}:host .tag-container:focus-visible{outline:2px solid #242424;animation:focus-ring-animation .4s forwards;outline-offset:2px;position:relative}:host .tag-container:focus-visible:after{content:\"\";position:absolute;width:calc(100% + 4px);height:calc(100% + 4px);top:-2px;left:-2px;outline:2px solid #ffffff;border-radius:4px}:host .tag-container.outlined{border:1px solid #6894A0}:host .tag-container.filled{background:#e9f0f1;border:1px solid #E9F0F1}:host .tag-container.filled:hover{background-color:#e9f0f1;border:1px solid #276678}:host .tag-container.filled:active{background:#a9c2c9;border:1px solid #1B4754}:host .tag-container:hover{background:#f6f6f6;border:1px solid #6894A0}:host .tag-container:active{background:#e9f0f1}:host .tag-container.readonly{pointer-events:none}:host .tag-container.disabled{opacity:.5;border:1px solid #276678;background:#e9f0f1;pointer-events:none}:host .tag-container .tag-label{-webkit-user-select:none;user-select:none;font-size:14px;line-height:20px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .tag-container .icon{height:16px;width:16px;min-width:16px;margin-right:8px}:host .tag-container .delete-icon{display:flex;align-items:center;justify-content:center;margin-left:8px;text-align:center;border:1px solid transparent;border-radius:50px;padding:2px}:host .tag-container[theme=dark],:host .tag-container[theme=light]{background:#f4f4f4;border:2px solid transparent}:host .tag-container[theme=dark].filled,:host .tag-container[theme=light].filled{background-color:#fff;border-color:#242424}:host .tag-container[theme=dark]:hover,:host .tag-container[theme=light]:hover{background-color:#666;color:#fff;border-color:#666;border-width:2px}:host .tag-container[theme=dark].shrink,:host .tag-container[theme=light].shrink{transform:scale(.98)}::ng-deep .mat-mdc-tooltip{background-color:#a9c2c9;font-family:Open Sans,serif;font-weight:400;font-size:12px;border-radius:4px;overflow:visible;max-width:248px;padding:6px 2px;--mdc-plain-tooltip-container-color: none;--mdc-plain-tooltip-supporting-text-color: $tgo-black}\n"] }]
185
- }], ctorParameters: () => [{ type: undefined, decorators: [{
186
- type: Optional
187
- }, {
188
- type: Inject,
189
- args: ['CANOPYUI_DEFAULT_APPLICATION_THEME']
190
- }] }], propDecorators: { label: [{
191
- type: Input
192
- }], icon: [{
193
- type: Input
194
- }], allowClose: [{
195
- type: Input
196
- }], readOnly: [{
197
- type: Input
198
- }], isSelected: [{
199
- type: Input
200
- }], showIconWhenSelected: [{
201
- type: Input
202
- }], isDisabled: [{
203
- type: Input
204
- }], applicationTheme: [{
205
- type: Input
206
- }], ariaLabel: [{
207
- type: Input
208
- }], ariaRequired: [{
209
- type: Input
210
- }], close: [{
211
- type: Output
212
- }], press: [{
213
- type: Output
214
- }], labelElement: [{
215
- type: ViewChild,
216
- args: ['labelElement']
217
- }] } });
218
-
219
- class TagComponentModule {
220
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TagComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
221
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: TagComponentModule, declarations: [TagComponent], imports: [CommonModule, IconComponentModule, TooltipComponentModule, MatTooltipModule, MatInputModule, UiTranslatePipe], exports: [TagComponent] }); }
222
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TagComponentModule, imports: [CommonModule, IconComponentModule, TooltipComponentModule, MatTooltipModule, MatInputModule] }); }
223
- }
224
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: TagComponentModule, decorators: [{
225
- type: NgModule,
226
- args: [{
227
- declarations: [TagComponent],
228
- imports: [CommonModule, IconComponentModule, TooltipComponentModule, MatTooltipModule, MatInputModule, UiTranslatePipe],
229
- exports: [TagComponent],
230
- providers: [],
231
- }]
232
- }] });
233
-
234
- /**
235
- * Generated bundle index. Do not edit.
236
- */
237
-
238
- export { TagComponent, TagComponentModule };
239
- //# sourceMappingURL=testgorilla-tgo-ui-components-tag.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testgorilla-tgo-ui-components-tag.mjs","sources":["../../../components/tag/tag.component.ts","../../../components/tag/tag.component.html","../../../components/tag/tag.component.module.ts","../../../components/tag/testgorilla-tgo-ui-components-tag.ts"],"sourcesContent":["import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n OnInit,\n Optional,\n Output,\n signal,\n ViewChild\n} from '@angular/core';\nimport { debounceTime, map, ReplaySubject } from 'rxjs';\nimport { IconColor, IconName } from '@testgorilla/tgo-ui/components/icon';\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\nimport { IKeyboardEvent } from '@testgorilla/tgo-ui/components/core';\n\n@Component({\n selector: 'ui-tag',\n templateUrl: './tag.component.html',\n styleUrls: ['./tag.component.scss'],\n standalone: false\n})\nexport class TagComponent implements AfterViewInit, OnInit {\n /**\n * Tag's label\n *\n * @memberof TagComponent\n */\n @Input() set label(value: string) {\n this.labelText = value;\n if (this.labelElement) {\n this.isLabelEllipseActive();\n }\n }\n\n /**\n * Icon\n *\n * @type {string}\n * @memberof TagComponent\n */\n @Input() icon: IconName = '';\n\n /**\n * Whether to allow the tag to be closed.\n *\n * @type {boolean}\n * @default false\n * @memberof TagComponent\n */\n @Input() allowClose = false;\n\n /**\n * Whether the tag is in read-only mode.\n *\n * @type {boolean}\n * @default false\n * @memberof TagComponent\n */\n @Input() readOnly = false;\n\n /**\n * Whether the tag is selected.\n *\n * @type {boolean}\n * @default false\n * @memberof TagComponent\n */\n @Input() isSelected = false;\n\n /**\n * Display icon when is selected\n *\n * @type {boolean}\n * @default false\n * @memberof TagComponent\n */\n @Input() showIconWhenSelected = false;\n\n /**\n * Specifies whether the element is disabled.\n *\n * @type {boolean}\n * @default false\n * @memberof TagComponent\n */\n @Input() isDisabled = false;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof TagComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof TagComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof TagComponent\n */\n @Input() ariaRequired = false;\n\n /**\n * Event triggered when the tag should be closed.\n *\n * @event\n * @memberof TagComponent\n */\n @Output() close = new EventEmitter<void>();\n\n /**\n * Event triggered when a press action occurs.\n *\n * @event\n * @memberof TagComponent\n */\n @Output() press = new EventEmitter<boolean>();\n\n /**\n * Subject that needs to be triggered when Label input changes, to check if it's truncated\n * @private\n * @type {void}\n * @memberof TagComponent\n */\n private checkLabelEllipsis$ = new ReplaySubject<void>(1);\n\n /**\n * Observable that indicates if the Label is truncated\n * debounceTime is used to wait for view to be initialized after receiving a new Label input\n * @protected\n * @type {boolean}\n * @memberof TagComponent\n */\n protected isEllipseActiveObs$ = this.checkLabelEllipsis$.pipe(\n debounceTime(100),\n map(() => {\n const el = this.labelElement.nativeElement;\n return el.offsetWidth < el.scrollWidth;\n })\n );\n protected labelText = '';\n protected isHovered = false;\n protected shrink = false;\n protected iconToPass: IconName;\n protected iconColor: IconColor;\n protected closeBtnFocused = signal(false);\n\n @ViewChild('labelElement') labelElement: ElementRef<HTMLElement>;\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 this.iconToPass = this.icon;\n this.iconColor = 'black';\n }\n\n ngAfterViewInit(): void {\n this.isLabelEllipseActive();\n }\n\n onPress(): void {\n if (!this.readOnly && !this.allowClose) {\n this.isSelected = this.showIconWhenSelected ? !this.isSelected : false;\n this.press.emit(this.isSelected);\n }\n }\n\n setHoverState(state: boolean) {\n this.isHovered = state;\n if (this.applicationTheme !== 'classic') {\n if (state) {\n this.iconToPass = `${this.icon}-filled` as IconName;\n } else {\n this.iconToPass = this.icon;\n }\n this.iconColor = this.isHovered ? 'white' : 'black';\n }\n }\n\n setShrinkState(state: boolean) {\n this.shrink = state;\n }\n\n onClose(): void {\n this.close.emit();\n }\n\n private isLabelEllipseActive(): void {\n this.checkLabelEllipsis$.next();\n }\n\n get tabIndex(): number {\n return this.isDisabled || this.readOnly ? -1 : 0;\n }\n\n get filled(): boolean {\n return this.readOnly || this.allowClose || this.isSelected;\n }\n\n onKeydown($event: KeyboardEvent): void {\n if (($event.key === IKeyboardEvent.ENTER || $event.key === IKeyboardEvent.SPACE) && !this.closeBtnFocused()) {\n this.onPress();\n } else if (this.closeBtnFocused() && ($event.key === IKeyboardEvent.ENTER || $event.key === IKeyboardEvent.SPACE)) {\n this.onClose();\n }\n }\n}\n","<div class=\"tag-wrapper\">\n <div\n [matTooltip]=\"(isEllipseActiveObs$ | async) ? labelText : ''\" [matTooltipClass]=\"applicationTheme\"\n [tabindex]=\"tabIndex\"\n class=\"tag-container\"\n [attr.data-testid]=\"'tag--container'\"\n [attr.theme]=\"applicationTheme\"\n [ngClass]=\"{\n filled: filled,\n readonly: readOnly,\n disabled: isDisabled,\n outlined: !isSelected,\n shrink\n }\"\n (click)=\"onPress()\"\n (mouseenter)=\"setHoverState(true)\" (mouseleave)=\"setHoverState(false)\"\n (mousedown)=\"setShrinkState(true)\" (mouseup)=\"setShrinkState(false)\"\n (touchstart)=\"setShrinkState(true)\" (touchend)=\"setShrinkState(false)\"\n (keydown)=\"onKeydown($event)\"\n [attr.aria-label]=\"ariaLabel || labelText\"\n [attr.aria-required]=\"ariaRequired\"\n >\n <ui-icon *ngIf=\"icon\" class=\"icon\" [color]=\"iconColor\" [name]=\"iconToPass\" [applicationTheme]=\"applicationTheme\"></ui-icon>\n <ui-icon *ngIf=\"isSelected && showIconWhenSelected\" [color]=\"iconColor\" class=\"icon\" [name]=\"'Check'\" [applicationTheme]=\"applicationTheme\"></ui-icon>\n <span class=\"tag-label\" #labelElement>{{ labelText }}</span>\n <ui-icon (focus)=\"closeBtnFocused.set(true)\" (blur)=\"closeBtnFocused.set(false)\" [tabindex]=\"tabIndex\" *ngIf=\"allowClose\" class=\"delete-icon\"\n [attr.aria-label]=\"'TAG.REMOVE' | uiTranslate | async\"\n [color]=\"iconColor\" (click)=\"onClose()\" [name]=\"'Close'\" [applicationTheme]=\"applicationTheme\"></ui-icon>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TagComponent } from './tag.component';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { TooltipComponentModule } from '@testgorilla/tgo-ui/components/tooltip';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatInputModule } from \"@angular/material/input\";\nimport { UiTranslatePipe } from \"@testgorilla/tgo-ui/components/core\";\n\n@NgModule({\n declarations: [TagComponent],\n imports: [CommonModule, IconComponentModule, TooltipComponentModule, MatTooltipModule, MatInputModule, UiTranslatePipe],\n exports: [TagComponent],\n providers: [],\n})\nexport class TagComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,216 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { EventEmitter, forwardRef, Input, Output, HostBinding, Optional, Inject, Component, NgModule } from '@angular/core';
3
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import * as i3 from '@testgorilla/tgo-ui/components/core';
5
- import { IKeyboardEvent, EllipseTextDirective, UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';
6
- import * as i1 from '@angular/common';
7
- import { CommonModule } from '@angular/common';
8
- import * as i2 from '@angular/material/tooltip';
9
- import { MatTooltipModule } from '@angular/material/tooltip';
10
- import * as i4 from '@testgorilla/tgo-ui/components/icon';
11
- import { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';
12
- import * as i5 from '@testgorilla/tgo-ui/components/spinner';
13
- import { SpinnerComponentModule } from '@testgorilla/tgo-ui/components/spinner';
14
- import { MatInputModule } from '@angular/material/input';
15
-
16
- class ToggleComponent {
17
- constructor(defaultAppTheme) {
18
- this.defaultAppTheme = defaultAppTheme;
19
- /**
20
- * The `selected` property determines the current state of the toggle switch.
21
- *
22
- * @type {boolean}
23
- * @default false
24
- * @memberof ToggleComponent
25
- */
26
- this.selected = false;
27
- /**
28
- * The `disabled` property determines whether the toggle switch is disabled.
29
- *
30
- * @type {boolean}
31
- * @default false
32
- * @memberof ToggleComponent
33
- */
34
- this.disabled = false;
35
- /**
36
- * Toggle label
37
- *
38
- * @type {string}
39
- * @default ''
40
- * @memberof ToggleComponent
41
- */
42
- this.label = '';
43
- /**
44
- * Message
45
- *
46
- * @type {string}
47
- * @default ''
48
- * @memberof ToggleComponent
49
- */
50
- this.message = '';
51
- /**
52
- *
53
- * Defines the application theme
54
- *
55
- * @type {ApplicationTheme}
56
- * @memberof ToggleComponent
57
- */
58
- this.applicationTheme = 'light';
59
- /**
60
- * The `toggle` event is triggered when the state of the toggle switch changes. It returns the new state.
61
- *
62
- * @type {event}
63
- * @memberof ToggleComponent
64
- */
65
- this.toggle = new EventEmitter();
66
- /**
67
- * A string representing the ARIA requirement for accessibility.
68
- * This attribute is used to indicate whether an input field is required for form submission.
69
- * @type {boolean}
70
- * @memberof ToggleComponent
71
- */
72
- this.ariaRequired = false;
73
- /**
74
- * disable/enable click on toggle
75
- * @type {boolean}
76
- * @memberof ToggleComponent
77
- */
78
- this.preventClick = false;
79
- /**
80
- * The loading state
81
- *
82
- * @type {boolean}
83
- * @memberof ToggleComponent
84
- */
85
- this.loading = false;
86
- /**
87
- * A string representing the ARIA requirement for accessibility.
88
- * This attribute is used to indicate whether an input field is required for form submission.
89
- * @type {string}
90
- * @memberof ToggleComponent
91
- */
92
- this.ariaDescribedby = '';
93
- this.showLabelTooltip = false;
94
- this.onChange = () => {
95
- };
96
- this.onTouched = () => {
97
- };
98
- if (defaultAppTheme) {
99
- this.applicationTheme = defaultAppTheme;
100
- }
101
- }
102
- ngOnChanges() {
103
- this.setClasses();
104
- }
105
- ngOnInit() {
106
- this.setClasses();
107
- }
108
- onToggle() {
109
- if (this.preventClick) {
110
- this.toggle.emit(this.selected);
111
- }
112
- if (!this.disabled && !this.preventClick) {
113
- this.selected = !this.selected;
114
- this.toggle.emit(this.selected);
115
- this.onChange(this.selected);
116
- }
117
- }
118
- writeValue(state) {
119
- if (state) {
120
- this.selected = state;
121
- }
122
- }
123
- registerOnChange(fn) {
124
- this.onChange = fn;
125
- }
126
- registerOnTouched(fn) {
127
- this.onTouched = fn;
128
- }
129
- setDisabledState(isDisabled) {
130
- this.disabled = isDisabled;
131
- }
132
- changeTextState(state) {
133
- this.showLabelTooltip = state;
134
- }
135
- onKeydown($event) {
136
- if ($event.key === IKeyboardEvent.ENTER || $event.key === IKeyboardEvent.SPACE) {
137
- $event.stopPropagation();
138
- $event.preventDefault();
139
- this.onToggle();
140
- }
141
- }
142
- setClasses() {
143
- this.classes = `${this.disabled ? 'disabled' : ''} ${this.applicationTheme} ${this.loading ? 'loading' : ''} ${!this.label ? 'small-toggle' : ''}`;
144
- }
145
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: ToggleComponent, deps: [{ token: 'CANOPYUI_DEFAULT_APPLICATION_THEME', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
146
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: ToggleComponent, isStandalone: false, selector: "ui-toggle", inputs: { selected: "selected", disabled: "disabled", label: "label", message: "message", maxWidth: "maxWidth", applicationTheme: "applicationTheme", ariaLabel: "ariaLabel", ariaRequired: "ariaRequired", preventClick: "preventClick", loading: "loading", ariaDescribedby: "ariaDescribedby" }, outputs: { toggle: "toggle" }, host: { properties: { "style.--max-width": "this.maxWidth" } }, providers: [
147
- {
148
- provide: NG_VALUE_ACCESSOR,
149
- useExisting: forwardRef(() => ToggleComponent),
150
- multi: true,
151
- },
152
- ], usesOnChanges: true, ngImport: i0, template: "<div class=\"toggle\" [ngClass]=\"classes\">\n <div\n [style.--max-width]=\"maxWidth + 'px'\"\n [tabIndex]=\"0\"\n class=\"toggle-container\"\n [ngClass]=\"{ 'active': selected }\"\n (click)=\"onToggle()\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n (keydown)=\"onKeydown($event)\"\n role=\"switch\"\n [attr.aria-labelledby]=\"'label'\"\n [attr.aria-describedby]=\"'ariaDescribedby'\"\n [attr.aria-checked]=\"selected\"\n >\n <span [style.display]=\"'none'\" id=\"ariaDescribedby\">{{ ariaDescribedby }}</span>\n <div\n class=\"label\"\n uiEllipseText\n [matTooltipShowDelay]=\"800\"\n [matTooltip]=\"showLabelTooltip ? label : ''\"\n (onChangeTextState)=\"changeTextState($event)\"\n id=\"label\"\n >\n {{ label }}\n </div>\n <div class=\"knob\" *ngIf=\"!loading; else loadingTemplate\" [ngClass]=\"{ selected }\">\n <ui-icon [color]=\"disabled ? 'grey' : 'white'\" *ngIf=\"selected && !label\" [size]=\"'16'\" [name]=\"'Check-round-filled'\"></ui-icon>\n </div>\n\n <ng-template #loadingTemplate>\n <ui-spinner [isLoader]=\"false\" [size]=\"'small'\" [applicationTheme]=\"'dark'\"></ui-spinner>\n </ng-template>\n </div>\n <div *ngIf=\"message && selected\" class=\"message\">{{ message }}</div>\n</div>\n\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap\";.bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host{width:fit-content;display:block}:host .toggle{height:auto;width:fit-content;display:flex;flex-direction:column;align-items:center}:host .toggle .toggle-container{border:1px solid transparent}:host .toggle.disabled{opacity:.5}:host .toggle.disabled .label{color:#242424!important}:host .toggle.disabled .toggle-container{background:#e0e0e0;pointer-events:none}:host .toggle.disabled .toggle-container:focus{outline:none}:host .toggle.dark.disabled .toggle-container.active,:host .toggle.light.disabled .toggle-container.active{background:#e9e9e9;border:1px solid #242424}:host .toggle.dark.disabled .toggle-container.active .knob:after,:host .toggle.light.disabled .toggle-container.active .knob:after{background:#242424}:host .toggle.dark .toggle-container,:host .toggle.light .toggle-container{background:transparent;border:1px solid #242424}:host .toggle.dark .toggle-container .label,:host .toggle.light .toggle-container .label{color:#242424}:host .toggle.dark .toggle-container .knob:after,:host .toggle.light .toggle-container .knob:after{background:#242424}:host .toggle.dark .toggle-container.active,:host .toggle.light .toggle-container.active{background:#d410aa;border:1px solid #D410AA}:host .toggle.dark .toggle-container.active .label,:host .toggle.light .toggle-container.active .label{color:#fff}:host .toggle.dark .toggle-container.active .knob:after,:host .toggle.light .toggle-container.active .knob:after{background:#fff}:host .toggle.dark .message,:host .toggle.light .message{color:#242424}:host .toggle.dark.disabled .toggle-container.active{border-color:#fff}:host .toggle.dark.disabled .toggle-container.active .knob:after{background:#fff}:host .toggle.dark .toggle-container{border-color:#fff}:host .toggle.dark .toggle-container .label{color:#fff}:host .toggle.dark .toggle-container .knob:after{background:#fff}:host .toggle.dark .message{color:#fff}:host .toggle .toggle-container{min-height:20px;max-height:24px;max-width:var(--max-width);padding:0 3px 0 20px;width:fit-content;min-width:36px;border-radius:16px;background:#888;display:flex;align-items:center;cursor:pointer;position:relative;transition:transform .3s,padding .3s,background .3s}@keyframes focus-ring-animation{0%{outline-width:4px}to{outline-width:2px}}:host .toggle .toggle-container:focus-visible{position:relative;outline:2px solid #242424;outline-offset:2px;animation:focus-ring-animation .4s forwards}:host .toggle .toggle-container:focus-visible:after{content:\"\";position:absolute;width:calc(100% + 2px);height:calc(100% + 2px);top:-1px;left:-1px;outline:2px solid #ffffff;border-radius:16px}:host .toggle .toggle-container .knob{height:100%;width:100%;position:absolute;left:-1px;top:0;display:flex;align-items:center;padding:3px;max-height:20px;transition:transform .3s}:host .toggle .toggle-container .knob:after{content:\"\";display:block;border-radius:16px;width:12px;height:12px;background:#fff;transition:background .3s}:host .toggle .toggle-container .label{z-index:1;font-size:8px;font-weight:700;color:#fff;text-align:center;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;pointer-events:visible;line-height:16px}:host .toggle .toggle-container.active{background:#276678;padding:0 20px 0 3px}:host .toggle .toggle-container.active .knob{transform:translate(calc(100% - 15px))}:host .toggle .message{margin-top:4px;font-weight:700;font-size:12px;line-height:16px;color:#276678;text-align:justify}:host .toggle.small-toggle .toggle-container .knob{left:0}:host .toggle.small-toggle .toggle-container .knob:after{width:10px;height:10px}:host .toggle.small-toggle .toggle-container .knob.selected{left:-8px}:host .toggle.small-toggle .toggle-container .knob.selected:after{display:none}:host .toggle.small-toggle .toggle-container .knob.selected ui-icon ::ng-deep svg{width:20px;height:20px}:host .toggle.loading .toggle-container{border-color:#d410aa;background-color:#d410aa;padding:0;display:flex;justify-content:center;cursor:default}::ng-deep .mat-mdc-tooltip{background-color:#a9c2c9;font-family:Open Sans,serif;font-weight:400;font-size:12px;border-radius:4px;overflow:visible;max-width:248px;padding:6px 2px;--mdc-plain-tooltip-container-color: none;--mdc-plain-tooltip-supporting-text-color: $tgo-black}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i3.EllipseTextDirective, selector: "[uiEllipseText]", inputs: ["isMultiline", "maxDiffPixels", "refresh"], outputs: ["onChangeTextState"] }, { kind: "component", type: i4.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "toggleIconStyle", "applicationTheme", "useFullIconName"] }, { kind: "component", type: i5.SpinnerComponent, selector: "ui-spinner", inputs: ["size", "isLoader", "text", "applicationTheme", "iconName", "iconSize"] }] }); }
153
- }
154
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: ToggleComponent, decorators: [{
155
- type: Component,
156
- args: [{ selector: 'ui-toggle', providers: [
157
- {
158
- provide: NG_VALUE_ACCESSOR,
159
- useExisting: forwardRef(() => ToggleComponent),
160
- multi: true,
161
- },
162
- ], standalone: false, template: "<div class=\"toggle\" [ngClass]=\"classes\">\n <div\n [style.--max-width]=\"maxWidth + 'px'\"\n [tabIndex]=\"0\"\n class=\"toggle-container\"\n [ngClass]=\"{ 'active': selected }\"\n (click)=\"onToggle()\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n (keydown)=\"onKeydown($event)\"\n role=\"switch\"\n [attr.aria-labelledby]=\"'label'\"\n [attr.aria-describedby]=\"'ariaDescribedby'\"\n [attr.aria-checked]=\"selected\"\n >\n <span [style.display]=\"'none'\" id=\"ariaDescribedby\">{{ ariaDescribedby }}</span>\n <div\n class=\"label\"\n uiEllipseText\n [matTooltipShowDelay]=\"800\"\n [matTooltip]=\"showLabelTooltip ? label : ''\"\n (onChangeTextState)=\"changeTextState($event)\"\n id=\"label\"\n >\n {{ label }}\n </div>\n <div class=\"knob\" *ngIf=\"!loading; else loadingTemplate\" [ngClass]=\"{ selected }\">\n <ui-icon [color]=\"disabled ? 'grey' : 'white'\" *ngIf=\"selected && !label\" [size]=\"'16'\" [name]=\"'Check-round-filled'\"></ui-icon>\n </div>\n\n <ng-template #loadingTemplate>\n <ui-spinner [isLoader]=\"false\" [size]=\"'small'\" [applicationTheme]=\"'dark'\"></ui-spinner>\n </ng-template>\n </div>\n <div *ngIf=\"message && selected\" class=\"message\">{{ message }}</div>\n</div>\n\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap\";.bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host{width:fit-content;display:block}:host .toggle{height:auto;width:fit-content;display:flex;flex-direction:column;align-items:center}:host .toggle .toggle-container{border:1px solid transparent}:host .toggle.disabled{opacity:.5}:host .toggle.disabled .label{color:#242424!important}:host .toggle.disabled .toggle-container{background:#e0e0e0;pointer-events:none}:host .toggle.disabled .toggle-container:focus{outline:none}:host .toggle.dark.disabled .toggle-container.active,:host .toggle.light.disabled .toggle-container.active{background:#e9e9e9;border:1px solid #242424}:host .toggle.dark.disabled .toggle-container.active .knob:after,:host .toggle.light.disabled .toggle-container.active .knob:after{background:#242424}:host .toggle.dark .toggle-container,:host .toggle.light .toggle-container{background:transparent;border:1px solid #242424}:host .toggle.dark .toggle-container .label,:host .toggle.light .toggle-container .label{color:#242424}:host .toggle.dark .toggle-container .knob:after,:host .toggle.light .toggle-container .knob:after{background:#242424}:host .toggle.dark .toggle-container.active,:host .toggle.light .toggle-container.active{background:#d410aa;border:1px solid #D410AA}:host .toggle.dark .toggle-container.active .label,:host .toggle.light .toggle-container.active .label{color:#fff}:host .toggle.dark .toggle-container.active .knob:after,:host .toggle.light .toggle-container.active .knob:after{background:#fff}:host .toggle.dark .message,:host .toggle.light .message{color:#242424}:host .toggle.dark.disabled .toggle-container.active{border-color:#fff}:host .toggle.dark.disabled .toggle-container.active .knob:after{background:#fff}:host .toggle.dark .toggle-container{border-color:#fff}:host .toggle.dark .toggle-container .label{color:#fff}:host .toggle.dark .toggle-container .knob:after{background:#fff}:host .toggle.dark .message{color:#fff}:host .toggle .toggle-container{min-height:20px;max-height:24px;max-width:var(--max-width);padding:0 3px 0 20px;width:fit-content;min-width:36px;border-radius:16px;background:#888;display:flex;align-items:center;cursor:pointer;position:relative;transition:transform .3s,padding .3s,background .3s}@keyframes focus-ring-animation{0%{outline-width:4px}to{outline-width:2px}}:host .toggle .toggle-container:focus-visible{position:relative;outline:2px solid #242424;outline-offset:2px;animation:focus-ring-animation .4s forwards}:host .toggle .toggle-container:focus-visible:after{content:\"\";position:absolute;width:calc(100% + 2px);height:calc(100% + 2px);top:-1px;left:-1px;outline:2px solid #ffffff;border-radius:16px}:host .toggle .toggle-container .knob{height:100%;width:100%;position:absolute;left:-1px;top:0;display:flex;align-items:center;padding:3px;max-height:20px;transition:transform .3s}:host .toggle .toggle-container .knob:after{content:\"\";display:block;border-radius:16px;width:12px;height:12px;background:#fff;transition:background .3s}:host .toggle .toggle-container .label{z-index:1;font-size:8px;font-weight:700;color:#fff;text-align:center;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;pointer-events:visible;line-height:16px}:host .toggle .toggle-container.active{background:#276678;padding:0 20px 0 3px}:host .toggle .toggle-container.active .knob{transform:translate(calc(100% - 15px))}:host .toggle .message{margin-top:4px;font-weight:700;font-size:12px;line-height:16px;color:#276678;text-align:justify}:host .toggle.small-toggle .toggle-container .knob{left:0}:host .toggle.small-toggle .toggle-container .knob:after{width:10px;height:10px}:host .toggle.small-toggle .toggle-container .knob.selected{left:-8px}:host .toggle.small-toggle .toggle-container .knob.selected:after{display:none}:host .toggle.small-toggle .toggle-container .knob.selected ui-icon ::ng-deep svg{width:20px;height:20px}:host .toggle.loading .toggle-container{border-color:#d410aa;background-color:#d410aa;padding:0;display:flex;justify-content:center;cursor:default}::ng-deep .mat-mdc-tooltip{background-color:#a9c2c9;font-family:Open Sans,serif;font-weight:400;font-size:12px;border-radius:4px;overflow:visible;max-width:248px;padding:6px 2px;--mdc-plain-tooltip-container-color: none;--mdc-plain-tooltip-supporting-text-color: $tgo-black}\n"] }]
163
- }], ctorParameters: () => [{ type: undefined, decorators: [{
164
- type: Optional
165
- }, {
166
- type: Inject,
167
- args: ['CANOPYUI_DEFAULT_APPLICATION_THEME']
168
- }] }], propDecorators: { selected: [{
169
- type: Input
170
- }], disabled: [{
171
- type: Input
172
- }], label: [{
173
- type: Input
174
- }], message: [{
175
- type: Input
176
- }], maxWidth: [{
177
- type: HostBinding,
178
- args: ['style.--max-width']
179
- }, {
180
- type: Input
181
- }], applicationTheme: [{
182
- type: Input
183
- }], toggle: [{
184
- type: Output
185
- }], ariaLabel: [{
186
- type: Input
187
- }], ariaRequired: [{
188
- type: Input
189
- }], preventClick: [{
190
- type: Input
191
- }], loading: [{
192
- type: Input
193
- }], ariaDescribedby: [{
194
- type: Input
195
- }] } });
196
-
197
- class ToggleComponentModule {
198
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: ToggleComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
199
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: ToggleComponentModule, declarations: [ToggleComponent], imports: [CommonModule, MatTooltipModule, EllipseTextDirective, MatInputModule, UiTranslatePipe, IconComponentModule, SpinnerComponentModule], exports: [ToggleComponent] }); }
200
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: ToggleComponentModule, imports: [CommonModule, MatTooltipModule, MatInputModule, IconComponentModule, SpinnerComponentModule] }); }
201
- }
202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: ToggleComponentModule, decorators: [{
203
- type: NgModule,
204
- args: [{
205
- declarations: [ToggleComponent],
206
- imports: [CommonModule, MatTooltipModule, EllipseTextDirective, MatInputModule, UiTranslatePipe, IconComponentModule, SpinnerComponentModule],
207
- exports: [ToggleComponent],
208
- }]
209
- }] });
210
-
211
- /**
212
- * Generated bundle index. Do not edit.
213
- */
214
-
215
- export { ToggleComponent, ToggleComponentModule };
216
- //# sourceMappingURL=testgorilla-tgo-ui-components-toggle.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testgorilla-tgo-ui-components-toggle.mjs","sources":["../../../components/toggle/toggle.component.ts","../../../components/toggle/toggle.component.html","../../../components/toggle/toggle.component.module.ts","../../../components/toggle/testgorilla-tgo-ui-components-toggle.ts"],"sourcesContent":["import {\n Component,\n EventEmitter,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n OnChanges,\n OnInit,\n Optional,\n Output,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { RegisterFn } from './toggle.model';\nimport { ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\nimport { IKeyboardEvent } from '@testgorilla/tgo-ui/components/core';\n\n@Component({\n selector: 'ui-toggle',\n templateUrl: './toggle.component.html',\n styleUrls: ['./toggle.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleComponent),\n multi: true,\n },\n ],\n standalone: false\n})\nexport class ToggleComponent implements ControlValueAccessor, OnChanges, OnInit {\n /**\n * The `selected` property determines the current state of the toggle switch.\n *\n * @type {boolean}\n * @default false\n * @memberof ToggleComponent\n */\n @Input() selected = false;\n\n /**\n * The `disabled` property determines whether the toggle switch is disabled.\n *\n * @type {boolean}\n * @default false\n * @memberof ToggleComponent\n */\n @Input() disabled = false;\n\n /**\n * Toggle label\n *\n * @type {string}\n * @default ''\n * @memberof ToggleComponent\n */\n @Input() label = '';\n\n /**\n * Message\n *\n * @type {string}\n * @default ''\n * @memberof ToggleComponent\n */\n @Input() message = '';\n\n /**\n * Max width of the toggle container\n *\n * @type {number}\n * @memberof ToggleComponent\n */\n @HostBinding('style.--max-width')\n @Input()\n maxWidth: number | undefined;\n\n /**\n *\n * Defines the application theme\n *\n * @type {ApplicationTheme}\n * @memberof ToggleComponent\n */\n @Input() applicationTheme: ApplicationTheme = 'light';\n\n /**\n * The `toggle` event is triggered when the state of the toggle switch changes. It returns the new state.\n *\n * @type {event}\n * @memberof ToggleComponent\n */\n @Output() toggle = new EventEmitter<boolean>();\n\n /**\n * A string representing the ARIA label for accessibility.\n * This label is used to provide an accessible name for the input element.\n * @type {string}\n * @memberof ToggleComponent\n */\n @Input() ariaLabel: string;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {boolean}\n * @memberof ToggleComponent\n */\n @Input() ariaRequired = false;\n\n /**\n * disable/enable click on toggle\n * @type {boolean}\n * @memberof ToggleComponent\n */\n @Input() preventClick = false;\n\n /**\n * The loading state\n *\n * @type {boolean}\n * @memberof ToggleComponent\n */\n @Input() loading = false;\n\n /**\n * A string representing the ARIA requirement for accessibility.\n * This attribute is used to indicate whether an input field is required for form submission.\n * @type {string}\n * @memberof ToggleComponent\n */\n @Input() ariaDescribedby = '';\n\n protected showLabelTooltip = false\n protected classes: string;\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 ngOnChanges(): void {\n this.setClasses();\n }\n\n ngOnInit(): void {\n this.setClasses();\n }\n\n onToggle(): void {\n if (this.preventClick) {\n this.toggle.emit(this.selected);\n }\n if (!this.disabled && !this.preventClick) {\n this.selected = !this.selected;\n this.toggle.emit(this.selected);\n this.onChange(this.selected);\n }\n }\n\n writeValue(state: boolean): void {\n if (state) {\n this.selected = state;\n }\n }\n\n registerOnChange(fn: RegisterFn): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: RegisterFn): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n changeTextState(state: boolean): void {\n this.showLabelTooltip = state;\n }\n\n onKeydown($event: KeyboardEvent) {\n if ($event.key === IKeyboardEvent.ENTER || $event.key === IKeyboardEvent.SPACE) {\n $event.stopPropagation();\n $event.preventDefault();\n this.onToggle();\n }\n }\n\n private onChange: RegisterFn = () => {\n };\n private onTouched: RegisterFn = () => {\n };\n\n private setClasses(): void {\n this.classes = `${this.disabled ? 'disabled' : ''} ${this.applicationTheme} ${this.loading ? 'loading' : ''} ${!this.label ? 'small-toggle' : ''}`;\n }\n}\n","<div class=\"toggle\" [ngClass]=\"classes\">\n <div\n [style.--max-width]=\"maxWidth + 'px'\"\n [tabIndex]=\"0\"\n class=\"toggle-container\"\n [ngClass]=\"{ 'active': selected }\"\n (click)=\"onToggle()\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n (keydown)=\"onKeydown($event)\"\n role=\"switch\"\n [attr.aria-labelledby]=\"'label'\"\n [attr.aria-describedby]=\"'ariaDescribedby'\"\n [attr.aria-checked]=\"selected\"\n >\n <span [style.display]=\"'none'\" id=\"ariaDescribedby\">{{ ariaDescribedby }}</span>\n <div\n class=\"label\"\n uiEllipseText\n [matTooltipShowDelay]=\"800\"\n [matTooltip]=\"showLabelTooltip ? label : ''\"\n (onChangeTextState)=\"changeTextState($event)\"\n id=\"label\"\n >\n {{ label }}\n </div>\n <div class=\"knob\" *ngIf=\"!loading; else loadingTemplate\" [ngClass]=\"{ selected }\">\n <ui-icon [color]=\"disabled ? 'grey' : 'white'\" *ngIf=\"selected && !label\" [size]=\"'16'\" [name]=\"'Check-round-filled'\"></ui-icon>\n </div>\n\n <ng-template #loadingTemplate>\n <ui-spinner [isLoader]=\"false\" [size]=\"'small'\" [applicationTheme]=\"'dark'\"></ui-spinner>\n </ng-template>\n </div>\n <div *ngIf=\"message && selected\" class=\"message\">{{ message }}</div>\n</div>\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ToggleComponent } from './toggle.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { EllipseTextDirective } from '@testgorilla/tgo-ui/components/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { SpinnerComponentModule } from '@testgorilla/tgo-ui/components/spinner';\n\n@NgModule({\n declarations: [ToggleComponent],\n imports: [CommonModule, MatTooltipModule, EllipseTextDirective, MatInputModule, UiTranslatePipe, IconComponentModule, SpinnerComponentModule],\n exports: [ToggleComponent],\n})\nexport class ToggleComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}