@testgorilla/tgo-ui 3.9.4 → 3.9.5-beta-20.0.1

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 (441) hide show
  1. package/fesm2022/testgorilla-tgo-ui.mjs +713 -767
  2. package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
  3. package/index.d.ts +7060 -3
  4. package/package.json +15 -16
  5. package/projects/tgo-canopy-ui/assets/icons/Switch-tab.svg +3 -0
  6. package/projects/tgo-canopy-ui/assets/icons/rebrand/Switch-tab-filled.svg +3 -0
  7. package/projects/tgo-canopy-ui/assets/icons/rebrand/Switch-tab-in-line.svg +3 -0
  8. package/projects/tgo-canopy-ui/theme/_input.scss +1 -1
  9. package/projects/tgo-canopy-ui/theme/_palette.scss +2 -1
  10. package/projects/tgo-canopy-ui/theme/_tooltip.scss +4 -4
  11. package/components/accordion/accordion.component.d.ts +0 -100
  12. package/components/accordion/accordion.component.module.d.ts +0 -12
  13. package/components/accordion/accordion.model.d.ts +0 -2
  14. package/components/ai-feedback/ai-feedback.component.d.ts +0 -15
  15. package/components/ai-feedback/ai-feedback.model.d.ts +0 -1
  16. package/components/ai-feedback/ai-feedback.module.d.ts +0 -10
  17. package/components/alert-banner/alert-banner.component.d.ts +0 -132
  18. package/components/alert-banner/alert-banner.component.module.d.ts +0 -11
  19. package/components/alert-banner/alert-banner.model.d.ts +0 -1
  20. package/components/autocomplete/autocomplete.component.d.ts +0 -314
  21. package/components/autocomplete/autocomplete.component.module.d.ts +0 -24
  22. package/components/autocomplete/autocomplete.model.d.ts +0 -22
  23. package/components/autocomplete/includes.pipe.d.ts +0 -12
  24. package/components/autocomplete/prevent-input.directive.d.ts +0 -7
  25. package/components/autocomplete/transform-Item.pipe.d.ts +0 -11
  26. package/components/avatar/avatar.component.d.ts +0 -67
  27. package/components/avatar/avatar.component.module.d.ts +0 -13
  28. package/components/avatar/avatar.model.d.ts +0 -16
  29. package/components/badge/badge.component.d.ts +0 -59
  30. package/components/badge/badge.component.module.d.ts +0 -10
  31. package/components/badge/badge.model.d.ts +0 -37
  32. package/components/button/button.component.d.ts +0 -235
  33. package/components/button/button.component.module.d.ts +0 -16
  34. package/components/button/button.model.d.ts +0 -14
  35. package/components/card/card.component.d.ts +0 -75
  36. package/components/card/card.component.module.d.ts +0 -9
  37. package/components/card/card.model.d.ts +0 -2
  38. package/components/checkbox/checkbox.component.d.ts +0 -193
  39. package/components/checkbox/checkbox.component.module.d.ts +0 -18
  40. package/components/checkbox/focus-visible.directive.d.ts +0 -12
  41. package/components/checklist/checklist.component.d.ts +0 -85
  42. package/components/checklist/checklist.model.d.ts +0 -9
  43. package/components/confirm-dialog/confirm-dialog.component.d.ts +0 -38
  44. package/components/confirm-dialog/confirm-dialog.component.module.d.ts +0 -12
  45. package/components/confirm-dialog/confirm-dialog.model.d.ts +0 -19
  46. package/components/datepicker/date-adapter.d.ts +0 -34
  47. package/components/datepicker/datepicker.component.d.ts +0 -214
  48. package/components/datepicker/datepicker.component.module.d.ts +0 -18
  49. package/components/datepicker/datepicker.service.d.ts +0 -8
  50. package/components/datepicker/no-date-format.directive.d.ts +0 -11
  51. package/components/deprecated-paginator/deprecated-paginator.component.d.ts +0 -38
  52. package/components/deprecated-paginator/deprecated-paginator.component.module.d.ts +0 -9
  53. package/components/dialog/dialog.component.d.ts +0 -162
  54. package/components/dialog/dialog.component.module.d.ts +0 -11
  55. package/components/dialog/dialog.model.d.ts +0 -12
  56. package/components/dialog/dialog.service.d.ts +0 -14
  57. package/components/divider/divider.component.d.ts +0 -39
  58. package/components/divider/divider.component.module.d.ts +0 -9
  59. package/components/divider/divider.model.d.ts +0 -1
  60. package/components/donut-chart/donut-chart.component.d.ts +0 -34
  61. package/components/donut-chart/donut-chart.component.model.d.ts +0 -6
  62. package/components/donut-chart/donut-chart.component.module.d.ts +0 -8
  63. package/components/dropdown/dropdown.component.d.ts +0 -214
  64. package/components/dropdown/dropdown.component.module.d.ts +0 -17
  65. package/components/dropdown/dropdown.model.d.ts +0 -6
  66. package/components/elevation-shadow/elevation-shadow.component.d.ts +0 -26
  67. package/components/elevation-shadow/elevation-shadow.component.module.d.ts +0 -8
  68. package/components/elevation-shadow/elevation-shadow.constant.d.ts +0 -8
  69. package/components/empty-state/empty-state.component.d.ts +0 -202
  70. package/components/empty-state/empty-state.component.module.d.ts +0 -11
  71. package/components/empty-state/empty-state.model.d.ts +0 -3
  72. package/components/field/field.component.d.ts +0 -361
  73. package/components/field/field.component.module.d.ts +0 -19
  74. package/components/field/field.model.d.ts +0 -1
  75. package/components/file-upload/file-upload.component.d.ts +0 -137
  76. package/components/file-upload/file-upload.component.module.d.ts +0 -14
  77. package/components/filter-button/filter-button.component.d.ts +0 -140
  78. package/components/filter-button/filter-button.component.module.d.ts +0 -18
  79. package/components/filter-button/filter-button.model.d.ts +0 -13
  80. package/components/gaussian-chart/gaussian-chart.component.d.ts +0 -75
  81. package/components/gaussian-chart/gaussian-chart.module.d.ts +0 -13
  82. package/components/icon/icon.component.d.ts +0 -72
  83. package/components/icon/icon.component.module.d.ts +0 -10
  84. package/components/icon/icon.config.d.ts +0 -10
  85. package/components/icon/icon.model.d.ts +0 -7
  86. package/components/icon-label/icon-label.component.d.ts +0 -46
  87. package/components/icon-label/icon-label.component.module.d.ts +0 -9
  88. package/components/logo/logo.component.d.ts +0 -66
  89. package/components/logo/logo.component.module.d.ts +0 -8
  90. package/components/logo/logo.model.d.ts +0 -29
  91. package/components/media-card/media-card.component.d.ts +0 -32
  92. package/components/multi-input/multi-input.component.d.ts +0 -171
  93. package/components/multi-input/multi-input.component.module.d.ts +0 -18
  94. package/components/multi-input/multi-input.model.d.ts +0 -1
  95. package/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.d.ts +0 -27
  96. package/components/navbar/navbar.component.d.ts +0 -126
  97. package/components/navbar/navbar.component.module.d.ts +0 -21
  98. package/components/navbar/navbar.model.d.ts +0 -21
  99. package/components/overflow-menu/overflow-menu.component.d.ts +0 -96
  100. package/components/overflow-menu/overflow-menu.component.module.d.ts +0 -15
  101. package/components/overflow-menu/overflow-menu.model.d.ts +0 -28
  102. package/components/page-header/page-header.component.d.ts +0 -38
  103. package/components/page-header/page-header.component.module.d.ts +0 -10
  104. package/components/paginator/paginator.component.d.ts +0 -58
  105. package/components/paginator/paginator.component.module.d.ts +0 -9
  106. package/components/password-criteria/password.component.d.ts +0 -44
  107. package/components/password-criteria/password.component.module.d.ts +0 -13
  108. package/components/password-strength/password-strength.component.d.ts +0 -45
  109. package/components/password-strength/password-strength.component.module.d.ts +0 -11
  110. package/components/phone-input/join-strings.pipe.d.ts +0 -7
  111. package/components/phone-input/phone-input.component.d.ts +0 -147
  112. package/components/phone-input/phone-input.component.module.d.ts +0 -20
  113. package/components/phone-input/phone-input.model.d.ts +0 -8
  114. package/components/progress-bar/progress-bar.component.d.ts +0 -73
  115. package/components/progress-bar/progress-bar.component.module.d.ts +0 -10
  116. package/components/radial-progress/radial-progress.component.d.ts +0 -75
  117. package/components/radial-progress/radial-progress.component.module.d.ts +0 -10
  118. package/components/radial-progress/radial-progress.model.d.ts +0 -10
  119. package/components/radio-button/radio-button.component.d.ts +0 -182
  120. package/components/radio-button/radio-button.component.module.d.ts +0 -15
  121. package/components/radio-button/radio-button.model.d.ts +0 -4
  122. package/components/rating/half-star.pipe.d.ts +0 -14
  123. package/components/rating/rating.component.d.ts +0 -71
  124. package/components/rating/rating.component.module.d.ts +0 -10
  125. package/components/scale/scale.component.d.ts +0 -54
  126. package/components/scale/scale.component.module.d.ts +0 -8
  127. package/components/scale-table/scale-table.component.d.ts +0 -39
  128. package/components/scale-table/scale-table.model.d.ts +0 -5
  129. package/components/segmented-bar/segmented-bar.component.d.ts +0 -63
  130. package/components/segmented-bar/segmented-bar.component.module.d.ts +0 -12
  131. package/components/segmented-bar/segmented-bar.model.d.ts +0 -12
  132. package/components/segmented-button/segmented-button.component.d.ts +0 -55
  133. package/components/segmented-button/segmented-button.component.module.d.ts +0 -11
  134. package/components/segmented-button/segmented-button.model.d.ts +0 -8
  135. package/components/side-panel/side-panel-data-injection-token.d.ts +0 -2
  136. package/components/side-panel/side-panel.animations.d.ts +0 -3
  137. package/components/side-panel/side-panel.component.d.ts +0 -19
  138. package/components/side-panel/side-panel.model.d.ts +0 -19
  139. package/components/side-panel/side-panel.service.d.ts +0 -21
  140. package/components/side-sheet/side-sheet.component.d.ts +0 -43
  141. package/components/side-sheet/side-sheet.component.module.d.ts +0 -14
  142. package/components/side-sheet/side-sheet.model.d.ts +0 -10
  143. package/components/side-sheet/side-sheet.service.d.ts +0 -14
  144. package/components/skeleton/skeleton.component.d.ts +0 -27
  145. package/components/skeleton/skeleton.model.d.ts +0 -2
  146. package/components/slider/slider.component.d.ts +0 -116
  147. package/components/slider/slider.component.module.d.ts +0 -7
  148. package/components/slider/slider.model.d.ts +0 -5
  149. package/components/snackbar/snackbar.component.d.ts +0 -119
  150. package/components/snackbar/snackbar.component.module.d.ts +0 -13
  151. package/components/snackbar/snackbar.model.d.ts +0 -2
  152. package/components/snackbar/snackbar.service.d.ts +0 -16
  153. package/components/spider-chart/spider-chart.component.d.ts +0 -90
  154. package/components/spider-chart/spider-chart.model.d.ts +0 -12
  155. package/components/spider-chart/spider-chart.module.d.ts +0 -13
  156. package/components/spinner/spinner.component.d.ts +0 -59
  157. package/components/spinner/spinner.model.d.ts +0 -1
  158. package/components/spinner/spinner.module.d.ts +0 -10
  159. package/components/step/step.component.d.ts +0 -184
  160. package/components/step/step.component.module.d.ts +0 -11
  161. package/components/stepper/stepper.component.d.ts +0 -102
  162. package/components/stepper/stepper.component.module.d.ts +0 -15
  163. package/components/stepper/stepper.model.d.ts +0 -23
  164. package/components/table/sentence-case.pipe.d.ts +0 -7
  165. package/components/table/table.component.d.ts +0 -117
  166. package/components/table/table.component.module.d.ts +0 -20
  167. package/components/table/table.model.d.ts +0 -104
  168. package/components/tabs/tab.directive.d.ts +0 -28
  169. package/components/tabs/tabs.component.d.ts +0 -77
  170. package/components/tabs/tabs.component.module.d.ts +0 -13
  171. package/components/tabs/tabs.model.d.ts +0 -20
  172. package/components/tag/tag.component.d.ts +0 -131
  173. package/components/tag/tag.component.module.d.ts +0 -13
  174. package/components/tag/tag.model.d.ts +0 -1
  175. package/components/toggle/toggle.component.d.ts +0 -113
  176. package/components/toggle/toggle.component.module.d.ts +0 -14
  177. package/components/toggle/toggle.model.d.ts +0 -1
  178. package/components/tooltip/tooltip-template.directive.d.ts +0 -27
  179. package/components/tooltip/tooltip.component.d.ts +0 -64
  180. package/components/tooltip/tooltip.component.module.d.ts +0 -12
  181. package/components/tooltip/tooltip.model.d.ts +0 -8
  182. package/components/universal-skills-report/universal-skills-report.component.d.ts +0 -33
  183. package/components/universal-skills-report/universal-skills-report.component.module.d.ts +0 -14
  184. package/components/universal-skills-spider-charts/universal-skills-spider-charts.component.d.ts +0 -47
  185. package/components/universal-skills-spider-charts/universal-skills-spider-charts.component.module.d.ts +0 -16
  186. package/components/validation-error/validation-error.component.d.ts +0 -22
  187. package/components/validation-error/validation-error.model.d.ts +0 -1
  188. package/components/validation-error/validation-error.module.d.ts +0 -10
  189. package/directives/digits-only.directive.d.ts +0 -17
  190. package/directives/drag-drop.directive.d.ts +0 -12
  191. package/directives/dynamic-component.directive.d.ts +0 -20
  192. package/directives/ellipse-text.directive.d.ts +0 -20
  193. package/directives/select-text.directive.d.ts +0 -19
  194. package/directives/step-line-element.directive.d.ts +0 -17
  195. package/esm2022/assets/i18n/da-dk.json +0 -181
  196. package/esm2022/assets/i18n/de.json +0 -181
  197. package/esm2022/assets/i18n/en.json +0 -820
  198. package/esm2022/assets/i18n/es.json +0 -181
  199. package/esm2022/assets/i18n/fr.json +0 -181
  200. package/esm2022/assets/i18n/it-it.json +0 -181
  201. package/esm2022/assets/i18n/ja-jp.json +0 -181
  202. package/esm2022/assets/i18n/nb-no.json +0 -181
  203. package/esm2022/assets/i18n/nl.json +0 -181
  204. package/esm2022/assets/i18n/pl-pl.json +0 -181
  205. package/esm2022/assets/i18n/pt-br.json +0 -181
  206. package/esm2022/assets/i18n/sv-se.json +0 -181
  207. package/esm2022/components/accordion/accordion.component.mjs +0 -135
  208. package/esm2022/components/accordion/accordion.component.module.mjs +0 -40
  209. package/esm2022/components/accordion/accordion.model.mjs +0 -2
  210. package/esm2022/components/ai-feedback/ai-feedback.component.mjs +0 -35
  211. package/esm2022/components/ai-feedback/ai-feedback.model.mjs +0 -2
  212. package/esm2022/components/ai-feedback/ai-feedback.module.mjs +0 -20
  213. package/esm2022/components/alert-banner/alert-banner.component.mjs +0 -198
  214. package/esm2022/components/alert-banner/alert-banner.component.module.mjs +0 -21
  215. package/esm2022/components/alert-banner/alert-banner.model.mjs +0 -2
  216. package/esm2022/components/autocomplete/autocomplete.component.mjs +0 -814
  217. package/esm2022/components/autocomplete/autocomplete.component.module.mjs +0 -77
  218. package/esm2022/components/autocomplete/autocomplete.model.mjs +0 -25
  219. package/esm2022/components/autocomplete/includes.pipe.mjs +0 -25
  220. package/esm2022/components/autocomplete/prevent-input.directive.mjs +0 -27
  221. package/esm2022/components/autocomplete/transform-Item.pipe.mjs +0 -32
  222. package/esm2022/components/avatar/avatar.component.mjs +0 -104
  223. package/esm2022/components/avatar/avatar.component.module.mjs +0 -23
  224. package/esm2022/components/avatar/avatar.model.mjs +0 -21
  225. package/esm2022/components/badge/badge.component.mjs +0 -109
  226. package/esm2022/components/badge/badge.component.module.mjs +0 -20
  227. package/esm2022/components/badge/badge.model.mjs +0 -38
  228. package/esm2022/components/button/button.component.mjs +0 -445
  229. package/esm2022/components/button/button.component.module.mjs +0 -51
  230. package/esm2022/components/button/button.model.mjs +0 -2
  231. package/esm2022/components/card/card.component.mjs +0 -132
  232. package/esm2022/components/card/card.component.module.mjs +0 -19
  233. package/esm2022/components/card/card.model.mjs +0 -2
  234. package/esm2022/components/checkbox/checkbox.component.mjs +0 -329
  235. package/esm2022/components/checkbox/checkbox.component.module.mjs +0 -28
  236. package/esm2022/components/checkbox/focus-visible.directive.mjs +0 -40
  237. package/esm2022/components/checklist/checklist.component.mjs +0 -157
  238. package/esm2022/components/checklist/checklist.model.mjs +0 -2
  239. package/esm2022/components/confirm-dialog/confirm-dialog.component.mjs +0 -66
  240. package/esm2022/components/confirm-dialog/confirm-dialog.component.module.mjs +0 -29
  241. package/esm2022/components/confirm-dialog/confirm-dialog.model.mjs +0 -2
  242. package/esm2022/components/datepicker/date-adapter.mjs +0 -39
  243. package/esm2022/components/datepicker/datepicker.component.mjs +0 -333
  244. package/esm2022/components/datepicker/datepicker.component.module.mjs +0 -60
  245. package/esm2022/components/datepicker/datepicker.service.mjs +0 -20
  246. package/esm2022/components/datepicker/no-date-format.directive.mjs +0 -56
  247. package/esm2022/components/deprecated-paginator/deprecated-paginator.component.mjs +0 -55
  248. package/esm2022/components/deprecated-paginator/deprecated-paginator.component.module.mjs +0 -20
  249. package/esm2022/components/dialog/dialog.component.mjs +0 -274
  250. package/esm2022/components/dialog/dialog.component.module.mjs +0 -23
  251. package/esm2022/components/dialog/dialog.model.mjs +0 -2
  252. package/esm2022/components/dialog/dialog.service.mjs +0 -36
  253. package/esm2022/components/divider/divider.component.mjs +0 -65
  254. package/esm2022/components/divider/divider.component.module.mjs +0 -19
  255. package/esm2022/components/divider/divider.model.mjs +0 -2
  256. package/esm2022/components/donut-chart/donut-chart.component.mjs +0 -122
  257. package/esm2022/components/donut-chart/donut-chart.component.model.mjs +0 -2
  258. package/esm2022/components/donut-chart/donut-chart.component.module.mjs +0 -20
  259. package/esm2022/components/dropdown/dropdown.component.mjs +0 -378
  260. package/esm2022/components/dropdown/dropdown.component.module.mjs +0 -57
  261. package/esm2022/components/dropdown/dropdown.model.mjs +0 -2
  262. package/esm2022/components/elevation-shadow/elevation-shadow.component.mjs +0 -45
  263. package/esm2022/components/elevation-shadow/elevation-shadow.component.module.mjs +0 -18
  264. package/esm2022/components/elevation-shadow/elevation-shadow.constant.mjs +0 -9
  265. package/esm2022/components/empty-state/empty-state.component.mjs +0 -301
  266. package/esm2022/components/empty-state/empty-state.component.module.mjs +0 -21
  267. package/esm2022/components/empty-state/empty-state.model.mjs +0 -2
  268. package/esm2022/components/field/field.component.mjs +0 -544
  269. package/esm2022/components/field/field.component.module.mjs +0 -64
  270. package/esm2022/components/field/field.model.mjs +0 -2
  271. package/esm2022/components/file-upload/file-upload.component.mjs +0 -296
  272. package/esm2022/components/file-upload/file-upload.component.module.mjs +0 -40
  273. package/esm2022/components/filter-button/filter-button.component.mjs +0 -255
  274. package/esm2022/components/filter-button/filter-button.component.module.mjs +0 -58
  275. package/esm2022/components/filter-button/filter-button.model.mjs +0 -2
  276. package/esm2022/components/gaussian-chart/gaussian-chart.component.mjs +0 -246
  277. package/esm2022/components/gaussian-chart/gaussian-chart.module.mjs +0 -42
  278. package/esm2022/components/icon/icon.component.mjs +0 -162
  279. package/esm2022/components/icon/icon.component.module.mjs +0 -21
  280. package/esm2022/components/icon/icon.config.mjs +0 -749
  281. package/esm2022/components/icon/icon.model.mjs +0 -2
  282. package/esm2022/components/icon-label/icon-label.component.mjs +0 -62
  283. package/esm2022/components/icon-label/icon-label.component.module.mjs +0 -20
  284. package/esm2022/components/logo/logo.component.mjs +0 -165
  285. package/esm2022/components/logo/logo.component.module.mjs +0 -18
  286. package/esm2022/components/logo/logo.model.mjs +0 -32
  287. package/esm2022/components/media-card/media-card.component.mjs +0 -47
  288. package/esm2022/components/multi-input/multi-input.component.mjs +0 -331
  289. package/esm2022/components/multi-input/multi-input.component.module.mjs +0 -58
  290. package/esm2022/components/multi-input/multi-input.model.mjs +0 -2
  291. package/esm2022/components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.mjs +0 -86
  292. package/esm2022/components/navbar/navbar.component.mjs +0 -212
  293. package/esm2022/components/navbar/navbar.component.module.mjs +0 -71
  294. package/esm2022/components/navbar/navbar.model.mjs +0 -2
  295. package/esm2022/components/overflow-menu/overflow-menu.component.mjs +0 -214
  296. package/esm2022/components/overflow-menu/overflow-menu.component.module.mjs +0 -25
  297. package/esm2022/components/overflow-menu/overflow-menu.model.mjs +0 -2
  298. package/esm2022/components/page-header/page-header.component.mjs +0 -71
  299. package/esm2022/components/page-header/page-header.component.module.mjs +0 -20
  300. package/esm2022/components/paginator/paginator.component.mjs +0 -87
  301. package/esm2022/components/paginator/paginator.component.module.mjs +0 -19
  302. package/esm2022/components/password-criteria/password.component.mjs +0 -111
  303. package/esm2022/components/password-criteria/password.component.module.mjs +0 -39
  304. package/esm2022/components/password-strength/password-strength.component.mjs +0 -93
  305. package/esm2022/components/password-strength/password-strength.component.module.mjs +0 -21
  306. package/esm2022/components/phone-input/join-strings.pipe.mjs +0 -14
  307. package/esm2022/components/phone-input/phone-input.component.mjs +0 -353
  308. package/esm2022/components/phone-input/phone-input.component.module.mjs +0 -63
  309. package/esm2022/components/phone-input/phone-input.model.mjs +0 -2
  310. package/esm2022/components/progress-bar/progress-bar.component.mjs +0 -103
  311. package/esm2022/components/progress-bar/progress-bar.component.module.mjs +0 -21
  312. package/esm2022/components/radial-progress/radial-progress.component.mjs +0 -118
  313. package/esm2022/components/radial-progress/radial-progress.component.module.mjs +0 -20
  314. package/esm2022/components/radial-progress/radial-progress.model.mjs +0 -11
  315. package/esm2022/components/radio-button/radio-button.component.mjs +0 -329
  316. package/esm2022/components/radio-button/radio-button.component.module.mjs +0 -25
  317. package/esm2022/components/radio-button/radio-button.model.mjs +0 -2
  318. package/esm2022/components/rating/half-star.pipe.mjs +0 -23
  319. package/esm2022/components/rating/rating.component.mjs +0 -106
  320. package/esm2022/components/rating/rating.component.module.mjs +0 -20
  321. package/esm2022/components/scale/scale.component.mjs +0 -136
  322. package/esm2022/components/scale/scale.component.module.mjs +0 -18
  323. package/esm2022/components/scale-table/scale-table.component.mjs +0 -61
  324. package/esm2022/components/scale-table/scale-table.model.mjs +0 -2
  325. package/esm2022/components/segmented-bar/segmented-bar.component.mjs +0 -106
  326. package/esm2022/components/segmented-bar/segmented-bar.component.module.mjs +0 -22
  327. package/esm2022/components/segmented-bar/segmented-bar.model.mjs +0 -2
  328. package/esm2022/components/segmented-button/segmented-button.component.mjs +0 -104
  329. package/esm2022/components/segmented-button/segmented-button.component.module.mjs +0 -21
  330. package/esm2022/components/segmented-button/segmented-button.model.mjs +0 -2
  331. package/esm2022/components/side-panel/side-panel-data-injection-token.mjs +0 -3
  332. package/esm2022/components/side-panel/side-panel.animations.mjs +0 -26
  333. package/esm2022/components/side-panel/side-panel.component.mjs +0 -51
  334. package/esm2022/components/side-panel/side-panel.model.mjs +0 -23
  335. package/esm2022/components/side-panel/side-panel.service.mjs +0 -86
  336. package/esm2022/components/side-sheet/side-sheet.component.mjs +0 -105
  337. package/esm2022/components/side-sheet/side-sheet.component.module.mjs +0 -43
  338. package/esm2022/components/side-sheet/side-sheet.model.mjs +0 -2
  339. package/esm2022/components/side-sheet/side-sheet.service.mjs +0 -31
  340. package/esm2022/components/skeleton/skeleton.component.mjs +0 -74
  341. package/esm2022/components/skeleton/skeleton.model.mjs +0 -2
  342. package/esm2022/components/slider/slider.component.mjs +0 -256
  343. package/esm2022/components/slider/slider.component.module.mjs +0 -16
  344. package/esm2022/components/slider/slider.model.mjs +0 -2
  345. package/esm2022/components/snackbar/snackbar.component.mjs +0 -218
  346. package/esm2022/components/snackbar/snackbar.component.module.mjs +0 -25
  347. package/esm2022/components/snackbar/snackbar.model.mjs +0 -2
  348. package/esm2022/components/snackbar/snackbar.service.mjs +0 -40
  349. package/esm2022/components/spider-chart/spider-chart.component.mjs +0 -443
  350. package/esm2022/components/spider-chart/spider-chart.model.mjs +0 -4
  351. package/esm2022/components/spider-chart/spider-chart.module.mjs +0 -44
  352. package/esm2022/components/spinner/spinner.component.mjs +0 -84
  353. package/esm2022/components/spinner/spinner.model.mjs +0 -2
  354. package/esm2022/components/spinner/spinner.module.mjs +0 -20
  355. package/esm2022/components/step/step.component.mjs +0 -209
  356. package/esm2022/components/step/step.component.module.mjs +0 -21
  357. package/esm2022/components/stepper/stepper.component.mjs +0 -198
  358. package/esm2022/components/stepper/stepper.component.module.mjs +0 -44
  359. package/esm2022/components/stepper/stepper.model.mjs +0 -2
  360. package/esm2022/components/table/sentence-case.pipe.mjs +0 -19
  361. package/esm2022/components/table/table.component.mjs +0 -273
  362. package/esm2022/components/table/table.component.module.mjs +0 -61
  363. package/esm2022/components/table/table.model.mjs +0 -25
  364. package/esm2022/components/tabs/tab.directive.mjs +0 -63
  365. package/esm2022/components/tabs/tabs.component.mjs +0 -219
  366. package/esm2022/components/tabs/tabs.component.module.mjs +0 -23
  367. package/esm2022/components/tabs/tabs.model.mjs +0 -2
  368. package/esm2022/components/tag/tag.component.mjs +0 -212
  369. package/esm2022/components/tag/tag.component.module.mjs +0 -24
  370. package/esm2022/components/tag/tag.model.mjs +0 -2
  371. package/esm2022/components/toggle/toggle.component.mjs +0 -190
  372. package/esm2022/components/toggle/toggle.component.module.mjs +0 -24
  373. package/esm2022/components/toggle/toggle.model.mjs +0 -2
  374. package/esm2022/components/tooltip/tooltip-template.directive.mjs +0 -133
  375. package/esm2022/components/tooltip/tooltip.component.mjs +0 -108
  376. package/esm2022/components/tooltip/tooltip.component.module.mjs +0 -27
  377. package/esm2022/components/tooltip/tooltip.model.mjs +0 -8
  378. package/esm2022/components/universal-skills-report/universal-skills-report.component.mjs +0 -80
  379. package/esm2022/components/universal-skills-report/universal-skills-report.component.module.mjs +0 -43
  380. package/esm2022/components/universal-skills-spider-charts/universal-skills-spider-charts.component.mjs +0 -109
  381. package/esm2022/components/universal-skills-spider-charts/universal-skills-spider-charts.component.module.mjs +0 -52
  382. package/esm2022/components/validation-error/validation-error.component.mjs +0 -55
  383. package/esm2022/components/validation-error/validation-error.model.mjs +0 -2
  384. package/esm2022/components/validation-error/validation-error.module.mjs +0 -20
  385. package/esm2022/directives/digits-only.directive.mjs +0 -77
  386. package/esm2022/directives/drag-drop.directive.mjs +0 -55
  387. package/esm2022/directives/dynamic-component.directive.mjs +0 -40
  388. package/esm2022/directives/ellipse-text.directive.mjs +0 -51
  389. package/esm2022/directives/select-text.directive.mjs +0 -40
  390. package/esm2022/directives/step-line-element.directive.mjs +0 -51
  391. package/esm2022/models/application-theme.model.mjs +0 -2
  392. package/esm2022/models/checkbox.model.mjs +0 -2
  393. package/esm2022/models/colors.model.mjs +0 -78
  394. package/esm2022/models/keyboard-events.model.mjs +0 -13
  395. package/esm2022/models/screen-breakpoints.model.mjs +0 -7
  396. package/esm2022/models/universal-skills-report.model.mjs +0 -33
  397. package/esm2022/pipes/data-property-getter.mjs +0 -33
  398. package/esm2022/pipes/has-validation-error.pipe.mjs +0 -27
  399. package/esm2022/pipes/memoize-func.pipe.mjs +0 -39
  400. package/esm2022/pipes/name-initials.pipe.mjs +0 -25
  401. package/esm2022/pipes/ui-ordinal-suffix.pipe.mjs +0 -31
  402. package/esm2022/pipes/ui-translate.pipe.mjs +0 -81
  403. package/esm2022/providers/is-large-tablet.mjs +0 -11
  404. package/esm2022/providers/is-mobile.mjs +0 -11
  405. package/esm2022/public-api.mjs +0 -239
  406. package/esm2022/services/icons.service.mjs +0 -22
  407. package/esm2022/services/universal-skills.service.mjs +0 -85
  408. package/esm2022/testgorilla-tgo-ui.mjs +0 -5
  409. package/esm2022/utils/alert-bar.model.mjs +0 -2
  410. package/esm2022/utils/alert-bars.utils.mjs +0 -34
  411. package/esm2022/utils/autocomplete-utils.mjs +0 -78
  412. package/esm2022/utils/color-contrast.mjs +0 -131
  413. package/esm2022/utils/hex-to-rgb.mjs +0 -9
  414. package/esm2022/utils/localization/language.model.mjs +0 -16
  415. package/esm2022/utils/localization/language.service.mjs +0 -44
  416. package/esm2022/utils/table.utils.mjs +0 -25
  417. package/models/application-theme.model.d.ts +0 -1
  418. package/models/checkbox.model.d.ts +0 -1
  419. package/models/colors.model.d.ts +0 -63
  420. package/models/keyboard-events.model.d.ts +0 -11
  421. package/models/screen-breakpoints.model.d.ts +0 -5
  422. package/models/universal-skills-report.model.d.ts +0 -44
  423. package/pipes/data-property-getter.d.ts +0 -8
  424. package/pipes/has-validation-error.pipe.d.ts +0 -15
  425. package/pipes/memoize-func.pipe.d.ts +0 -26
  426. package/pipes/name-initials.pipe.d.ts +0 -7
  427. package/pipes/ui-ordinal-suffix.pipe.d.ts +0 -7
  428. package/pipes/ui-translate.pipe.d.ts +0 -32
  429. package/providers/is-large-tablet.d.ts +0 -2
  430. package/providers/is-mobile.d.ts +0 -2
  431. package/public-api.d.ts +0 -168
  432. package/services/icons.service.d.ts +0 -8
  433. package/services/universal-skills.service.d.ts +0 -13
  434. package/utils/alert-bar.model.d.ts +0 -2
  435. package/utils/alert-bars.utils.d.ts +0 -7
  436. package/utils/autocomplete-utils.d.ts +0 -12
  437. package/utils/color-contrast.d.ts +0 -28
  438. package/utils/hex-to-rgb.d.ts +0 -1
  439. package/utils/localization/language.model.d.ts +0 -14
  440. package/utils/localization/language.service.d.ts +0 -20
  441. package/utils/table.utils.d.ts +0 -6
@@ -1,329 +0,0 @@
1
- /* eslint-disable no-underscore-dangle */
2
- import { ChangeDetectionStrategy, Component, EventEmitter, Host, HostBinding, HostListener, Inject, Input, Optional, Output, Self, ViewChild, } from '@angular/core';
3
- import { takeUntilDestroyed } from "@angular/core/rxjs-interop";
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/forms";
6
- import * as i2 from "@angular/cdk/a11y";
7
- import * as i3 from "@angular/common";
8
- import * as i4 from "@angular/material/radio";
9
- import * as i5 from "../../directives/ellipse-text.directive";
10
- import * as i6 from "@angular/material/tooltip";
11
- export class RadioButtonComponent {
12
- onHostClick(event) {
13
- if (event.target?.classList?.value?.includes?.('mat-mdc-radio-button') || event.target?.classList?.value?.includes?.('mdc-form-field')) {
14
- this.radioElement._inputElement.nativeElement.click();
15
- }
16
- }
17
- get selected() {
18
- return this._selected;
19
- }
20
- set selected(selected) {
21
- this._selected = selected;
22
- }
23
- constructor(defaultAppTheme, ngControl, hostNgControl, destroyRef, focusMonitor, ngZone, cdr) {
24
- this.defaultAppTheme = defaultAppTheme;
25
- this.ngControl = ngControl;
26
- this.hostNgControl = hostNgControl;
27
- this.destroyRef = destroyRef;
28
- this.focusMonitor = focusMonitor;
29
- this.ngZone = ngZone;
30
- this.cdr = cdr;
31
- /**
32
- * Determines whether the radio button is disabled.
33
- * Default: false.
34
- *
35
- * @type {boolean}
36
- * @memberof RadioButtonComponent
37
- */
38
- this.disabled = false;
39
- /**
40
- * Determines whether the radio button is checked.
41
- * Default: false.
42
- *
43
- * @type {boolean}
44
- * @memberof RadioButtonComponent
45
- */
46
- //@Input() selected = false;
47
- this._selected = false;
48
- /**
49
- * Determines whether the radio button can be unchecked.
50
- * Default: false.
51
- *
52
- * @type {boolean}
53
- * @memberof RadioButtonComponent
54
- */
55
- this.allowUnselect = false;
56
- /**
57
- * Determines the radio button color.
58
- * Default: Test Gorilla primary color.
59
- *
60
- * @type {string}
61
- * @memberof RadioButtonComponent
62
- */
63
- this.companyColor = null;
64
- /**
65
- * Used to group radios for unique selection.
66
- *
67
- * @type {string}
68
- * @memberof RadioButtonComponent
69
- */
70
- this.name = '';
71
- /**
72
- * Text content will be applied to the input element if present.
73
- *
74
- * @type {string}
75
- * @memberof RadioButtonComponent
76
- */
77
- this.label = '';
78
- /**
79
- * Determines whether the radio button is a multiple choice cell.
80
- * Default: false
81
- *
82
- * @type {boolean}
83
- * @memberof RadioButtonComponent
84
- */
85
- this.multiple = false;
86
- /**
87
- *
88
- * Defines the application theme
89
- *
90
- * @type {ApplicationTheme}
91
- * @memberof RadioButtonComponent
92
- */
93
- this.applicationTheme = 'light';
94
- /**
95
- * A string representing the ARIA requirement for accessibility.
96
- * This attribute is used to indicate whether an input field is required for form submission.
97
- * @type {boolean}
98
- * @memberof RadioButtonComponent
99
- */
100
- this.ariaRequired = false;
101
- /**
102
- * Defines if checkbox has error
103
- *
104
- * @type {boolean}
105
- * @memberof RadioButtonComponent
106
- */
107
- this.hasError = false;
108
- /**
109
- * A string representing the ARIA requirement for accessibility.
110
- * This attribute is used to indicate whether an input field is required for form submission.
111
- * @type {string}
112
- * @memberof RadioButtonComponent
113
- */
114
- this.ariaLabelledby = '';
115
- /**
116
- * A string representing the ARIA requirement for accessibility.
117
- * This attribute is used to indicate whether an input field is required for form submission.
118
- * @type {string}
119
- * @memberof RadioButtonComponent
120
- */
121
- this.ariaDescribedby = '';
122
- /**
123
- * Truncate text if it is too long
124
- * @type {boolean}
125
- * @memberof RadioButtonComponent
126
- */
127
- this.truncateText = false;
128
- /**
129
- * Text alignment
130
- * @type {'center' | 'top'}
131
- * @memberof RadioButtonComponent
132
- */
133
- this.alignment = 'center';
134
- /**
135
- * Sets the tab index for the checkbox component.
136
- * This determines the order in which elements receive focus when the user navigates through them using the Tab key.
137
- * Default value is 0.
138
- *
139
- * @type {number}
140
- * @memberof RadioButtonComponent
141
- */
142
- this.tabIndex = 0;
143
- /**
144
- * Event emitted when the checked state of the radio button changes.
145
- *
146
- * @type {boolean}
147
- * @memberof RadioButtonComponent
148
- */
149
- this.changeRadio = new EventEmitter();
150
- this.showTooltip = false;
151
- this.origin = null;
152
- this.onChange = (_) => { };
153
- /**
154
- * @ignore
155
- */
156
- this.onTouch = () => { };
157
- if (defaultAppTheme) {
158
- this.applicationTheme = defaultAppTheme;
159
- }
160
- if (this.ngControl != null) {
161
- this.ngControl.valueAccessor = this;
162
- }
163
- }
164
- ngOnInit() {
165
- this.checkHost();
166
- this.classMultiple = this.setClass();
167
- }
168
- ngOnChanges(changes) {
169
- if (changes['selected']) {
170
- this.classMultiple = this.setClass();
171
- }
172
- this.setCompanyColor();
173
- }
174
- ngAfterViewInit() {
175
- this.radioElement._inputElement.nativeElement.setAttribute('role', 'radio');
176
- this.radioElement._inputElement.nativeElement.onclick = () => {
177
- this.clickRadio();
178
- };
179
- this.focusMonitor.monitor(this.radioElement._inputElement.nativeElement).pipe(takeUntilDestroyed(this.destroyRef)).subscribe(origin => this.ngZone.run(() => {
180
- this.origin = origin;
181
- this.cdr.markForCheck();
182
- this.onFocus(origin === 'keyboard');
183
- }));
184
- }
185
- ngOnDestroy() {
186
- this.focusMonitor.stopMonitoring(this.radioElement._inputElement.nativeElement);
187
- }
188
- //Click method
189
- clickRadio() {
190
- if (this.allowUnselect) {
191
- this.radioElement.checked = !this.radioElement.checked;
192
- this._selected = this.radioElement.checked;
193
- this.classMultiple = this.setClass();
194
- this.selected = this.radioElement.checked;
195
- this.changeRadio?.emit({ optionName: this.radioElement.value, optionChecked: this.radioElement.checked });
196
- }
197
- else {
198
- this.selected = this.radioElement.checked;
199
- this.changeRadio.emit({ optionName: this.radioElement.value, optionChecked: true });
200
- }
201
- if (this.disabled) {
202
- this._selected = false;
203
- this.changeRadio.emit({ optionName: '', optionChecked: false });
204
- }
205
- this.onChange(this._selected);
206
- }
207
- writeValue(value) {
208
- if (typeof value === 'boolean' || value === this.value) {
209
- this.selected = value;
210
- }
211
- }
212
- registerOnChange(fn) {
213
- this.onChange = fn;
214
- }
215
- registerOnTouched(fn) {
216
- this.onTouch = fn;
217
- }
218
- setDisabledState(isDisabled) {
219
- this.disabled = isDisabled;
220
- }
221
- //Set class for multiple radio
222
- setClass() {
223
- if (this.multiple) {
224
- return this._selected ? 'multiple-checked' : 'multiple-unchecked';
225
- }
226
- return '';
227
- }
228
- onLabelEllipsisChange(isEllipsis) {
229
- this.showTooltip = isEllipsis;
230
- }
231
- checkHost() {
232
- if (this.hostNgControl) {
233
- this.selected = this.value === this.hostNgControl.value;
234
- this.hostNgControl.valueChanges?.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((value) => {
235
- this.selected = value === this.value;
236
- this.classMultiple = this.setClass();
237
- });
238
- }
239
- }
240
- setCompanyColor() {
241
- this.companyColor = this.companyColor ? this.companyColor : this.applicationTheme === 'classic' ? '#46A997' : '#D410AA';
242
- }
243
- onFocus(showTooltip) {
244
- setTimeout(() => {
245
- this.showTooltip && showTooltip ? this.tooltipElement.show() : this.tooltipElement.hide();
246
- }, 0);
247
- }
248
- focus() {
249
- this.radioElement.focus();
250
- }
251
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RadioButtonComponent, deps: [{ token: 'CANOPYUI_DEFAULT_APPLICATION_THEME', optional: true }, { token: i1.NgControl, optional: true, self: true }, { token: i1.NgControl, host: true, optional: true }, { token: i0.DestroyRef }, { token: i2.FocusMonitor }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
252
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RadioButtonComponent, selector: "ui-radio-button", inputs: { disabled: "disabled", selected: "selected", allowUnselect: "allowUnselect", companyColor: "companyColor", name: "name", label: "label", multiple: "multiple", value: "value", applicationTheme: "applicationTheme", ariaLabel: "ariaLabel", ariaRequired: "ariaRequired", hasError: "hasError", ariaLabelledby: "ariaLabelledby", ariaDescribedby: "ariaDescribedby", truncateText: "truncateText", alignment: "alignment", tabIndex: "tabIndex" }, outputs: { changeRadio: "changeRadio" }, host: { listeners: { "focus": "radioElement.focus()", "click": "onHostClick($event)" }, properties: { "attr.tabindex": "null", "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.aria-describedby": "null", "style.--color": "this.companyColor" } }, viewQueries: [{ propertyName: "radioElement", first: true, predicate: ["radio"], descendants: true }, { propertyName: "tooltipElement", first: true, predicate: ["tooltip"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #radioContainer\n [class]=\"multiple ? 'radio-container' : 'radio'\"\n [class.multiple-disabled]=\"disabled && multiple\"\n [ngClass]=\"classMultiple\"\n [attr.alignment]=\"alignment\"\n [attr.truncate-text]=\"truncateText\"\n [attr.theme]=\"applicationTheme\"\n [attr.hasError]=\"hasError\"\n (keydown.enter)=\"clickRadio(); radioContainer.focus()\"\n (keydown.space)=\"clickRadio(); radioContainer.focus()\"\n>\n <mat-radio-button\n #radio\n [checked]=\"selected\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [value]=\"value\"\n class=\"radio-button\"\n [required]=\"ariaRequired\"\n [aria-label]=\"ariaLabel\"\n [aria-labelledby]=\"ariaLabelledby ? ariaLabelledby : label\"\n [aria-describedby]=\"ariaDescribedby\"\n (keydown.enter)=\"$event.preventDefault()\"\n (keydown.space)=\"$event.preventDefault()\"\n [tabIndex]=\"tabIndex\"\n >\n <span\n #tooltip=\"matTooltip\"\n class=\"label\"\n uiEllipseText\n (onChangeTextState)=\"onLabelEllipsisChange($event)\"\n [matTooltip]=\"showTooltip ? label : ''\"\n [matTooltipClass]=\"applicationTheme\"\n >{{ label }}</span>\n <ng-content select=\"[radio-label]\"></ng-content>\n </mat-radio-button>\n</div>\n", styles: [".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}.mat-mdc-radio-button.mat-accent{--mat-radio-checked-ripple-color: var(--color)!important;--mdc-radio-selected-focus-icon-color: var(--color)!important;--mdc-radio-selected-pressed-icon-color: var(--color)!important}::ng-deep .mat-mdc-radio-checked .mdc-radio__outer-circle{border-color:var(--color)!important}::ng-deep .mat-mdc-radio-checked .mdc-radio__inner-circle{background-color:var(--color)!important;border-color:var(--color)!important}::ng-deep .mat-mdc-radio-button .mat-ripple-element{background-color:var(--color)!important}::ng-deep .mat-mdc-radio-button.mat-radio-disabled.mat-radio-checked .mdc-radio__outer-circle,.mat-radio-button.mat-radio-disabled .mdc-radio__outer-circle{border-color:#888!important}::ng-deep .mat-mdc-radio-button.mat-radio-disabled .mdc-radio__inner-circle{background-color:#888!important}[theme=dark] .mat-mdc-radio-button,[theme=light] .mat-mdc-radio-button{width:100%!important}[theme=dark] ::ng-deep .mdc-form-field,[theme=light] ::ng-deep .mdc-form-field{width:100%}[theme=dark] .mat-mdc-radio-button.mat-accent,[theme=light] .mat-mdc-radio-button.mat-accent{--mdc-radio-unselected-icon-color: #242424 !important}[theme=dark] ::ng-deep .mdc-radio.mdc-radio--disabled,[theme=light] ::ng-deep .mdc-radio.mdc-radio--disabled{--mdc-radio-disabled-unselected-icon-color: #919191;--mdc-radio-disabled-selected-icon-opacity: 1;--mdc-radio-disabled-unselected-icon-opacity: 1;--color: #919191}[theme=dark] ::ng-deep .mdc-radio.mdc-radio--disabled .mdc-radio__background,[theme=light] ::ng-deep .mdc-radio.mdc-radio--disabled .mdc-radio__background{background:#e9e9e9;border-radius:100%}[theme=dark] ::ng-deep .mdc-radio__background,[theme=light] ::ng-deep .mdc-radio__background{background:#fff!important;border-radius:100%;scale:.8}[theme=dark] ::ng-deep .mdc-radio__background .mdc-radio__outer-circle,[theme=light] ::ng-deep .mdc-radio__background .mdc-radio__outer-circle{border-width:1px}[theme=dark] ::ng-deep .mat-ripple,[theme=light] ::ng-deep .mat-ripple{display:none}[haserror=true] ::ng-deep .mdc-radio__background .mdc-radio__outer-circle{border-width:2px}.multiple-checked{border:1px solid var(--color);display:flex;flex-direction:row;align-items:center;gap:16px;background:var(--color);border-radius:8px}.multiple-checked ::ng-deep .mat-mdc-radio-button{width:100%;height:100%;padding:8px}.multiple-checked ::ng-deep .mat-mdc-radio-checked .mdc-radio__outer-circle{border:1px solid #ffffff;border-radius:64px;background:#fff}.multiple-checked ::ng-deep label{color:#fff;height:100%;width:100%}.multiple-checked[theme=dark][hasError=false],.multiple-checked[theme=light][hasError=false]{background:#fff;border-color:#242424;outline:1px solid #242424}.multiple-checked[theme=dark][hasError=false] ::ng-deep label,.multiple-checked[theme=light][hasError=false] ::ng-deep label{color:#242424}.multiple-checked[theme=dark][hasError=true],.multiple-checked[theme=light][hasError=true]{border:1px solid #E02800;outline:1px solid #E02800;background:#fff;border-radius:10px}.multiple-checked[theme=dark][hasError=true] ::ng-deep label,.multiple-checked[theme=light][hasError=true] ::ng-deep label{color:#242424}.multiple-checked[theme=classic][hasError=true]{border:1px solid #E02800;outline:1px solid #E02800}.multiple-unchecked{border:1px solid #E0E0E0;display:flex;flex-direction:row;align-items:center;gap:16px;background:#fff;border-radius:8px}.multiple-unchecked ::ng-deep .mat-mdc-radio-button{width:100%;height:100%;padding:8px}.multiple-unchecked:hover{background:#f6f6f6;border:1px solid #E0E0E0}.multiple-unchecked ::ng-deep label{height:100%;width:100%}.multiple-unchecked ::ng-deep .mat-mdc-radio-button .mdc-radio .mdc-radio__background:before{opacity:0!important}.multiple-unchecked[theme=dark][hasError=false],.multiple-unchecked[theme=light][hasError=false]{border:1px solid #919191;background:#fff}.multiple-unchecked[theme=dark][hasError=false]:not(.multiple-disabled):hover,.multiple-unchecked[theme=light][hasError=false]:not(.multiple-disabled):hover{outline:1px solid #242424;background:#fff;border-color:#242424!important}.multiple-unchecked[hasError=true]{border:1px solid #E02800;outline:1px solid #E02800;background:#fff}.multiple-unchecked[hasError=true]:not([theme=classic]){border-radius:10px}.radio-container{cursor:pointer}.radio-container .label,.radio-button .label{cursor:pointer;-webkit-user-select:none;user-select:none}:host *[hasError=true] .mat-mdc-radio-button.mat-accent{--mdc-radio-unselected-icon-color: #E02800 !important;--mdc-radio-unselected-hover-icon-color: #E02800 !important;--mdc-radio-unselected-focus-icon-color: #E02800 !important}:host ::ng-deep .mat-mdc-radio-touch-target{height:40px;width:40px}.radio,.radio-container{--border-width-default-state: 4px;--border-width-animation-state: 6px;width:100%}.radio[alignment=top] ::ng-deep .mdc-form-field,.radio-container[alignment=top] ::ng-deep .mdc-form-field{align-items:start}.radio[alignment=top] .label,.radio-container[alignment=top] .label{margin-top:10px}.radio[truncate-text=true] .label,.radio[truncate-text=true] ::ng-deep label,.radio-container[truncate-text=true] .label,.radio-container[truncate-text=true] ::ng-deep label{-webkit-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes focus-ring-animation{0%{outline-width:var(--border-width-animation-state)}to{outline-width:var(--border-width-default-state)}}.radio-container[hasError=true]{outline:1px solid #E02800}.radio .label{display:block;width:100%;cursor:pointer}::ng-deep .mat-mdc-radio-button.mat-accent.cdk-keyboard-focused{outline:none;--mat-radio-checked-ripple-color: transparent!important;--mat-radio-ripple-color: transparent!important}::ng-deep .mat-mdc-radio-button.mat-accent.cdk-keyboard-focused ::ng-deep .mdc-radio__background{outline:3px solid #242424;animation:focus-ring-animation .4s forwards}::ng-deep .mat-mdc-radio-button.mat-accent.cdk-keyboard-focused ::ng-deep .mdc-radio__background:after{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;outline:2px solid #ffffff;border-radius:100px}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i5.EllipseTextDirective, selector: "[uiEllipseText]", inputs: ["isMultiline", "maxDiffPixels", "refresh"], outputs: ["onChangeTextState"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
253
- }
254
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RadioButtonComponent, decorators: [{
255
- type: Component,
256
- args: [{ selector: 'ui-radio-button', changeDetection: ChangeDetectionStrategy.OnPush, host: {
257
- // Needs to be removed since it causes some a11y issues (https://github.com/angular/components/issues/21266).
258
- '[attr.tabindex]': 'null',
259
- '[attr.aria-label]': 'null',
260
- '[attr.aria-labelledby]': 'null',
261
- '[attr.aria-describedby]': 'null',
262
- // Note: under normal conditions focus shouldn't land on this element, however it may be
263
- // programmatically set, for example inside of a focus trap, in this case we want to forward
264
- // the focus to the mat-radio-button element.
265
- '(focus)': 'radioElement.focus()',
266
- }, template: "<div\n #radioContainer\n [class]=\"multiple ? 'radio-container' : 'radio'\"\n [class.multiple-disabled]=\"disabled && multiple\"\n [ngClass]=\"classMultiple\"\n [attr.alignment]=\"alignment\"\n [attr.truncate-text]=\"truncateText\"\n [attr.theme]=\"applicationTheme\"\n [attr.hasError]=\"hasError\"\n (keydown.enter)=\"clickRadio(); radioContainer.focus()\"\n (keydown.space)=\"clickRadio(); radioContainer.focus()\"\n>\n <mat-radio-button\n #radio\n [checked]=\"selected\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [value]=\"value\"\n class=\"radio-button\"\n [required]=\"ariaRequired\"\n [aria-label]=\"ariaLabel\"\n [aria-labelledby]=\"ariaLabelledby ? ariaLabelledby : label\"\n [aria-describedby]=\"ariaDescribedby\"\n (keydown.enter)=\"$event.preventDefault()\"\n (keydown.space)=\"$event.preventDefault()\"\n [tabIndex]=\"tabIndex\"\n >\n <span\n #tooltip=\"matTooltip\"\n class=\"label\"\n uiEllipseText\n (onChangeTextState)=\"onLabelEllipsisChange($event)\"\n [matTooltip]=\"showTooltip ? label : ''\"\n [matTooltipClass]=\"applicationTheme\"\n >{{ label }}</span>\n <ng-content select=\"[radio-label]\"></ng-content>\n </mat-radio-button>\n</div>\n", styles: [".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}.mat-mdc-radio-button.mat-accent{--mat-radio-checked-ripple-color: var(--color)!important;--mdc-radio-selected-focus-icon-color: var(--color)!important;--mdc-radio-selected-pressed-icon-color: var(--color)!important}::ng-deep .mat-mdc-radio-checked .mdc-radio__outer-circle{border-color:var(--color)!important}::ng-deep .mat-mdc-radio-checked .mdc-radio__inner-circle{background-color:var(--color)!important;border-color:var(--color)!important}::ng-deep .mat-mdc-radio-button .mat-ripple-element{background-color:var(--color)!important}::ng-deep .mat-mdc-radio-button.mat-radio-disabled.mat-radio-checked .mdc-radio__outer-circle,.mat-radio-button.mat-radio-disabled .mdc-radio__outer-circle{border-color:#888!important}::ng-deep .mat-mdc-radio-button.mat-radio-disabled .mdc-radio__inner-circle{background-color:#888!important}[theme=dark] .mat-mdc-radio-button,[theme=light] .mat-mdc-radio-button{width:100%!important}[theme=dark] ::ng-deep .mdc-form-field,[theme=light] ::ng-deep .mdc-form-field{width:100%}[theme=dark] .mat-mdc-radio-button.mat-accent,[theme=light] .mat-mdc-radio-button.mat-accent{--mdc-radio-unselected-icon-color: #242424 !important}[theme=dark] ::ng-deep .mdc-radio.mdc-radio--disabled,[theme=light] ::ng-deep .mdc-radio.mdc-radio--disabled{--mdc-radio-disabled-unselected-icon-color: #919191;--mdc-radio-disabled-selected-icon-opacity: 1;--mdc-radio-disabled-unselected-icon-opacity: 1;--color: #919191}[theme=dark] ::ng-deep .mdc-radio.mdc-radio--disabled .mdc-radio__background,[theme=light] ::ng-deep .mdc-radio.mdc-radio--disabled .mdc-radio__background{background:#e9e9e9;border-radius:100%}[theme=dark] ::ng-deep .mdc-radio__background,[theme=light] ::ng-deep .mdc-radio__background{background:#fff!important;border-radius:100%;scale:.8}[theme=dark] ::ng-deep .mdc-radio__background .mdc-radio__outer-circle,[theme=light] ::ng-deep .mdc-radio__background .mdc-radio__outer-circle{border-width:1px}[theme=dark] ::ng-deep .mat-ripple,[theme=light] ::ng-deep .mat-ripple{display:none}[haserror=true] ::ng-deep .mdc-radio__background .mdc-radio__outer-circle{border-width:2px}.multiple-checked{border:1px solid var(--color);display:flex;flex-direction:row;align-items:center;gap:16px;background:var(--color);border-radius:8px}.multiple-checked ::ng-deep .mat-mdc-radio-button{width:100%;height:100%;padding:8px}.multiple-checked ::ng-deep .mat-mdc-radio-checked .mdc-radio__outer-circle{border:1px solid #ffffff;border-radius:64px;background:#fff}.multiple-checked ::ng-deep label{color:#fff;height:100%;width:100%}.multiple-checked[theme=dark][hasError=false],.multiple-checked[theme=light][hasError=false]{background:#fff;border-color:#242424;outline:1px solid #242424}.multiple-checked[theme=dark][hasError=false] ::ng-deep label,.multiple-checked[theme=light][hasError=false] ::ng-deep label{color:#242424}.multiple-checked[theme=dark][hasError=true],.multiple-checked[theme=light][hasError=true]{border:1px solid #E02800;outline:1px solid #E02800;background:#fff;border-radius:10px}.multiple-checked[theme=dark][hasError=true] ::ng-deep label,.multiple-checked[theme=light][hasError=true] ::ng-deep label{color:#242424}.multiple-checked[theme=classic][hasError=true]{border:1px solid #E02800;outline:1px solid #E02800}.multiple-unchecked{border:1px solid #E0E0E0;display:flex;flex-direction:row;align-items:center;gap:16px;background:#fff;border-radius:8px}.multiple-unchecked ::ng-deep .mat-mdc-radio-button{width:100%;height:100%;padding:8px}.multiple-unchecked:hover{background:#f6f6f6;border:1px solid #E0E0E0}.multiple-unchecked ::ng-deep label{height:100%;width:100%}.multiple-unchecked ::ng-deep .mat-mdc-radio-button .mdc-radio .mdc-radio__background:before{opacity:0!important}.multiple-unchecked[theme=dark][hasError=false],.multiple-unchecked[theme=light][hasError=false]{border:1px solid #919191;background:#fff}.multiple-unchecked[theme=dark][hasError=false]:not(.multiple-disabled):hover,.multiple-unchecked[theme=light][hasError=false]:not(.multiple-disabled):hover{outline:1px solid #242424;background:#fff;border-color:#242424!important}.multiple-unchecked[hasError=true]{border:1px solid #E02800;outline:1px solid #E02800;background:#fff}.multiple-unchecked[hasError=true]:not([theme=classic]){border-radius:10px}.radio-container{cursor:pointer}.radio-container .label,.radio-button .label{cursor:pointer;-webkit-user-select:none;user-select:none}:host *[hasError=true] .mat-mdc-radio-button.mat-accent{--mdc-radio-unselected-icon-color: #E02800 !important;--mdc-radio-unselected-hover-icon-color: #E02800 !important;--mdc-radio-unselected-focus-icon-color: #E02800 !important}:host ::ng-deep .mat-mdc-radio-touch-target{height:40px;width:40px}.radio,.radio-container{--border-width-default-state: 4px;--border-width-animation-state: 6px;width:100%}.radio[alignment=top] ::ng-deep .mdc-form-field,.radio-container[alignment=top] ::ng-deep .mdc-form-field{align-items:start}.radio[alignment=top] .label,.radio-container[alignment=top] .label{margin-top:10px}.radio[truncate-text=true] .label,.radio[truncate-text=true] ::ng-deep label,.radio-container[truncate-text=true] .label,.radio-container[truncate-text=true] ::ng-deep label{-webkit-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes focus-ring-animation{0%{outline-width:var(--border-width-animation-state)}to{outline-width:var(--border-width-default-state)}}.radio-container[hasError=true]{outline:1px solid #E02800}.radio .label{display:block;width:100%;cursor:pointer}::ng-deep .mat-mdc-radio-button.mat-accent.cdk-keyboard-focused{outline:none;--mat-radio-checked-ripple-color: transparent!important;--mat-radio-ripple-color: transparent!important}::ng-deep .mat-mdc-radio-button.mat-accent.cdk-keyboard-focused ::ng-deep .mdc-radio__background{outline:3px solid #242424;animation:focus-ring-animation .4s forwards}::ng-deep .mat-mdc-radio-button.mat-accent.cdk-keyboard-focused ::ng-deep .mdc-radio__background:after{content:\"\";position:absolute;width:100%;height:100%;top:0;left:0;outline:2px solid #ffffff;border-radius:100px}\n"] }]
267
- }], ctorParameters: () => [{ type: undefined, decorators: [{
268
- type: Optional
269
- }, {
270
- type: Inject,
271
- args: ['CANOPYUI_DEFAULT_APPLICATION_THEME']
272
- }] }, { type: i1.NgControl, decorators: [{
273
- type: Optional
274
- }, {
275
- type: Self
276
- }] }, { type: i1.NgControl, decorators: [{
277
- type: Optional
278
- }, {
279
- type: Host
280
- }] }, { type: i0.DestroyRef }, { type: i2.FocusMonitor }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { onHostClick: [{
281
- type: HostListener,
282
- args: ['click', ['$event']]
283
- }], disabled: [{
284
- type: Input
285
- }], selected: [{
286
- type: Input
287
- }], allowUnselect: [{
288
- type: Input
289
- }], companyColor: [{
290
- type: HostBinding,
291
- args: ['style.--color']
292
- }, {
293
- type: Input
294
- }], name: [{
295
- type: Input
296
- }], label: [{
297
- type: Input
298
- }], multiple: [{
299
- type: Input
300
- }], value: [{
301
- type: Input
302
- }], applicationTheme: [{
303
- type: Input
304
- }], ariaLabel: [{
305
- type: Input
306
- }], ariaRequired: [{
307
- type: Input
308
- }], hasError: [{
309
- type: Input
310
- }], ariaLabelledby: [{
311
- type: Input
312
- }], ariaDescribedby: [{
313
- type: Input
314
- }], truncateText: [{
315
- type: Input
316
- }], alignment: [{
317
- type: Input
318
- }], tabIndex: [{
319
- type: Input
320
- }], changeRadio: [{
321
- type: Output
322
- }], radioElement: [{
323
- type: ViewChild,
324
- args: ['radio']
325
- }], tooltipElement: [{
326
- type: ViewChild,
327
- args: ['tooltip']
328
- }] } });
329
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9yYWRpby1idXR0b24vcmFkaW8tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlDQUF5QztBQUN6QyxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osSUFBSSxFQUNKLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFLTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFFSixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFLdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7O0FBc0JoRSxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLHNCQUFzQixDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUN2SSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEQsQ0FBQztJQUNILENBQUM7SUFvQkQsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxRQUFpQjtRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEs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VUcsUUFBUTtzQkFBaEIsS0FBSztnQkFRSSxXQUFXO3NCQUFwQixNQUFNO2dCQU1hLFlBQVk7c0JBQS9CLFNBQVM7dUJBQUMsT0FBTztnQkFDSSxjQUFjO3NCQUFuQyxTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby11bmRlcnNjb3JlLWRhbmdsZSAqL1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdCxcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTZWxmLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0UmFkaW9CdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5pbXBvcnQgeyBSYWRpb0J1dHRvbkV2ZW50VHlwZSB9IGZyb20gJy4vcmFkaW8tYnV0dG9uLm1vZGVsJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uVGhlbWUgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2FwcGxpY2F0aW9uLXRoZW1lLm1vZGVsXCI7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3BcIjtcbmltcG9ydCB7IE1hdFRvb2x0aXAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IEFsaWdubWVudCB9IGZyb20gJy4uLy4uL21vZGVscy9jaGVja2JveC5tb2RlbCc7XG5pbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3VpLXJhZGlvLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYWRpby1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yYWRpby1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICAvLyBOZWVkcyB0byBiZSByZW1vdmVkIHNpbmNlIGl0IGNhdXNlcyBzb21lIGExMXkgaXNzdWVzIChodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2lzc3Vlcy8yMTI2NikuXG4gICAgJ1thdHRyLnRhYmluZGV4XSc6ICdudWxsJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbF0nOiAnbnVsbCcsXG4gICAgJ1thdHRyLmFyaWEtbGFiZWxsZWRieV0nOiAnbnVsbCcsXG4gICAgJ1thdHRyLmFyaWEtZGVzY3JpYmVkYnldJzogJ251bGwnLFxuICAgIC8vIE5vdGU6IHVuZGVyIG5vcm1hbCBjb25kaXRpb25zIGZvY3VzIHNob3VsZG4ndCBsYW5kIG9uIHRoaXMgZWxlbWVudCwgaG93ZXZlciBpdCBtYXkgYmVcbiAgICAvLyBwcm9ncmFtbWF0aWNhbGx5IHNldCwgZm9yIGV4YW1wbGUgaW5zaWRlIG9mIGEgZm9jdXMgdHJhcCwgaW4gdGhpcyBjYXNlIHdlIHdhbnQgdG8gZm9yd2FyZFxuICAgIC8vIHRoZSBmb2N1cyB0byB0aGUgbWF0LXJhZGlvLWJ1dHRvbiBlbGVtZW50LlxuICAgICcoZm9jdXMpJzogJ3JhZGlvRWxlbWVudC5mb2N1cygpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9CdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgb25Ib3N0Q2xpY2soZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmIChldmVudC50YXJnZXQ/LmNsYXNzTGlzdD8udmFsdWU/LmluY2x1ZGVzPy4oJ21hdC1tZGMtcmFkaW8tYnV0dG9uJykgfHwgZXZlbnQudGFyZ2V0Py5jbGFzc0xpc3Q/LnZhbHVlPy5pbmNsdWRlcz8uKCdtZGMtZm9ybS1maWVsZCcpKSB7XG4gICAgICB0aGlzLnJhZGlvRWxlbWVudC5faW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciB0aGUgcmFkaW8gYnV0dG9uIGlzIGRpc2FibGVkLlxuICAgKiBEZWZhdWx0OiBmYWxzZS5cbiAgICpcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBtZW1iZXJvZiBSYWRpb0J1dHRvbkNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSByYWRpbyBidXR0b24gaXMgY2hlY2tlZC5cbiAgICogRGVmYXVsdDogZmFsc2UuXG4gICAqXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgUmFkaW9CdXR0b25Db21wb25lbnRcbiAgICovXG4gIC8vQElucHV0KCkgc2VsZWN0ZWQgPSBmYWxzZTtcblxuICBfc2VsZWN0ZWQgPSBmYWxzZTtcbiAgQElucHV0KClcbiAgZ2V0IHNlbGVjdGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZDtcbiAgfVxuICBzZXQgc2VsZWN0ZWQoc2VsZWN0ZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciB0aGUgcmFkaW8gYnV0dG9uIGNhbiBiZSB1bmNoZWNrZWQuXG4gICAqIERlZmF1bHQ6IGZhbHNlLlxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIFJhZGlvQnV0dG9uQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBhbGxvd1Vuc2VsZWN0ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgdGhlIHJhZGlvIGJ1dHRvbiBjb2xvci5cbiAgICogRGVmYXVsdDogVGVzdCBHb3JpbGxhIHByaW1hcnkgY29sb3IuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBSYWRpb0J1dHRvbkNvbXBvbmVudFxuICAgKi9cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLWNvbG9yJylcbiAgQElucHV0KClcbiAgY29tcGFueUNvbG9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogVXNlZCB0byBncm91cCByYWRpb3MgZm9yIHVuaXF1ZSBzZWxlY3Rpb24uXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBSYWRpb0J1dHRvbkNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgbmFtZSA9ICcnO1xuXG4gIC8qKlxuICAgKiBUZXh0IGNvbnRlbnQgd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBpbnB1dCBlbGVtZW50IGlmIHByZXNlbnQuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBSYWRpb0J1dHRvbkNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgbGFiZWwgPSAnJztcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSByYWRpbyBidXR0b24gaXMgYSBtdWx0aXBsZSBjaG9pY2UgY2VsbC5cbiAgICogRGVmYXVsdDogZmFsc2VcbiAgICpcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBtZW1iZXJvZiBSYWRpb0J1dHRvbkNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgbXVsdGlwbGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB2YWx1ZSBvZiB0aGUgcmFkaW8gYnV0dG9uLlxuICAgKiBEZWZhdWx0OiBmYWxzZVxuICAgKlxuICAgKiBAdHlwZSB7YW55fVxuICAgKiBAbWVtYmVyb2YgUmFkaW9CdXR0b25Db21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIHZhbHVlOiBhbnk7XG5cbiAgLyoqXG4gICAqXG4gICAqIERlZmluZXMgdGhlIGFwcGxpY2F0aW9uIHRoZW1lXG4gICAqXG4gICAqIEB0eXBlIHtBcHBsaWNhdGlvblRoZW1lfVxuICAgKiBAbWVtYmVyb2YgUmFkaW9CdXR0b25Db21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGFwcGxpY2F0aW9uVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUgPSAnbGlnaHQnO1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIEFSSUEgbGFiZWwgZm9yIGFjY2Vzc2liaWxpdHkuXG4gICAqIFRoaXMgbGFiZWwgaXMgdXNlZCB0byBwcm92aWRlIGFuIGFjY2Vzc2libGUgbmFtZSBmb3IgdGhlIGlucHV0IGVsZW1lbnQuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBSYWRpb0J1dHRvbkNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgYXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgQVJJQSByZXF1aXJlbWVudCBmb3IgYWNjZXNzaWJpbGl0eS5cbiAgICogVGhpcyBhdHRyaWJ1dGUgaXMgdXNlZCB0byBpbmRpY2F0ZSB3aGV0aGVyIGFuIGlucHV0IGZpZWxkIGlzIHJlcXVpcmVkIGZvciBmb3JtIHN1Ym1pc3Npb24uXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgUmFkaW9CdXR0b25Db21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGFyaWFSZXF1aXJlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGlmIGNoZWNrYm94IGhhcyBlcnJvclxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIFJhZGlvQnV0dG9uQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBoYXNFcnJvciA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIEFSSUEgcmVxdWlyZW1lbnQgZm9yIGFjY2Vzc2liaWxpdHkuXG4gICAqIFRoaXMgYXR0cmlidXRlIGlzIHVzZWQgdG8gaW5kaWNhdGUgd2hldGhlciBhbiBpbnB1dCBmaWVsZCBpcyByZXF1aXJlZCBmb3IgZm9ybSBzdWJtaXNzaW9uLlxuICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgKiBAbWVtYmVyb2YgUmFkaW9CdXR0b25Db21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGFyaWFMYWJlbGxlZGJ5ID0gJyc7XG5cbiAgLyoqXG4gICAqIEEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgQVJJQSByZXF1aXJlbWVudCBmb3IgYWNjZXNzaWJpbGl0eS5cbiAgICogVGhpcyBhdHRyaWJ1dGUgaXMgdXNlZCB0byBpbmRpY2F0ZSB3aGV0aGVyIGFuIGlucHV0IGZpZWxkIGlzIHJlcXVpcmVkIGZvciBmb3JtIHN1Ym1pc3Npb24uXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBSYWRpb0J1dHRvbkNvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgYXJpYURlc2NyaWJlZGJ5ID0gJyc7XG5cbiAgLyoqXG4gICAqICBUcnVuY2F0ZSB0ZXh0IGlmIGl0IGlzIHRvbyBsb25nXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgUmFkaW9CdXR0b25Db21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIHRydW5jYXRlVGV4dCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUZXh0IGFsaWdubWVudFxuICAgKiBAdHlwZSB7J2NlbnRlcicgfCAndG9wJ31cbiAgICogQG1lbWJlcm9mIFJhZGlvQnV0dG9uQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBhbGlnbm1lbnQ6IEFsaWdubWVudCA9ICdjZW50ZXInO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB0YWIgaW5kZXggZm9yIHRoZSBjaGVja2JveCBjb21wb25lbnQuXG4gICAqIFRoaXMgZGV0ZXJtaW5lcyB0aGUgb3JkZXIgaW4gd2hpY2ggZWxlbWVudHMgcmVjZWl2ZSBmb2N1cyB3aGVuIHRoZSB1c2VyIG5hdmlnYXRlcyB0aHJvdWdoIHRoZW0gdXNpbmcgdGhlIFRhYiBrZXkuXG4gICAqIERlZmF1bHQgdmFsdWUgaXMgMC5cbiAgICpcbiAgICogQHR5cGUge251bWJlcn1cbiAgICogQG1lbWJlcm9mIFJhZGlvQnV0dG9uQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSB0YWJJbmRleCA9IDA7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgY2hlY2tlZCBzdGF0ZSBvZiB0aGUgcmFkaW8gYnV0dG9uIGNoYW5nZXMuXG4gICAqXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgUmFkaW9CdXR0b25Db21wb25lbnRcbiAgICovXG4gIEBPdXRwdXQoKSBjaGFuZ2VSYWRpbyA9IG5ldyBFdmVudEVtaXR0ZXI8UmFkaW9CdXR0b25FdmVudFR5cGU+KCk7XG5cbiAgY2xhc3NNdWx0aXBsZTogc3RyaW5nO1xuICBzaG93VG9vbHRpcCA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgb3JpZ2luOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBAVmlld0NoaWxkKCdyYWRpbycpIHJhZGlvRWxlbWVudDogTWF0UmFkaW9CdXR0b247XG4gIEBWaWV3Q2hpbGQoJ3Rvb2x0aXAnKSB0b29sdGlwRWxlbWVudDogTWF0VG9vbHRpcDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KCdDQU5PUFlVSV9ERUZBVUxUX0FQUExJQ0FUSU9OX1RIRU1FJykgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0QXBwVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUsXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgQE9wdGlvbmFsKCkgQEhvc3QoKSBwdWJsaWMgaG9zdE5nQ29udHJvbDogTmdDb250cm9sLFxuICAgIHByaXZhdGUgZGVzdHJveVJlZjogRGVzdHJveVJlZixcbiAgICBwcml2YXRlIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHtcbiAgICBpZiAoZGVmYXVsdEFwcFRoZW1lKSB7XG4gICAgICB0aGlzLmFwcGxpY2F0aW9uVGhlbWUgPSBkZWZhdWx0QXBwVGhlbWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9IG51bGwpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY2hlY2tIb3N0KCk7XG4gICAgdGhpcy5jbGFzc011bHRpcGxlID0gdGhpcy5zZXRDbGFzcygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydzZWxlY3RlZCddKSB7XG4gICAgICB0aGlzLmNsYXNzTXVsdGlwbGUgPSB0aGlzLnNldENsYXNzKCk7XG4gICAgfVxuICAgIHRoaXMuc2V0Q29tcGFueUNvbG9yKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5yYWRpb0VsZW1lbnQuX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgncm9sZScsICdyYWRpbycpO1xuICAgIHRoaXMucmFkaW9FbGVtZW50Ll9pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5vbmNsaWNrID0gKCkgPT4ge1xuICAgICAgdGhpcy5jbGlja1JhZGlvKCk7XG4gICAgfTtcblxuICAgIHRoaXMuZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5yYWRpb0VsZW1lbnQuX2lucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50KS5waXBlKFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXG4gICAgKS5zdWJzY3JpYmUob3JpZ2luID0+XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICB0aGlzLm9yaWdpbiA9IG9yaWdpbjtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIHRoaXMub25Gb2N1cyhvcmlnaW4gPT09ICdrZXlib2FyZCcpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMucmFkaW9FbGVtZW50Ll9pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICAvL0NsaWNrIG1ldGhvZFxuICBjbGlja1JhZGlvKCkge1xuICAgIGlmICh0aGlzLmFsbG93VW5zZWxlY3QpIHtcbiAgICAgIHRoaXMucmFkaW9FbGVtZW50LmNoZWNrZWQgPSAhdGhpcy5yYWRpb0VsZW1lbnQuY2hlY2tlZDtcbiAgICAgIHRoaXMuX3NlbGVjdGVkID0gdGhpcy5yYWRpb0VsZW1lbnQuY2hlY2tlZDtcbiAgICAgIHRoaXMuY2xhc3NNdWx0aXBsZSA9IHRoaXMuc2V0Q2xhc3MoKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSB0aGlzLnJhZGlvRWxlbWVudC5jaGVja2VkO1xuICAgICAgdGhpcy5jaGFuZ2VSYWRpbz8uZW1pdCh7IG9wdGlvbk5hbWU6IHRoaXMucmFkaW9FbGVtZW50LnZhbHVlLCBvcHRpb25DaGVja2VkOiB0aGlzLnJhZGlvRWxlbWVudC5jaGVja2VkIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkID0gdGhpcy5yYWRpb0VsZW1lbnQuY2hlY2tlZDtcbiAgICAgIHRoaXMuY2hhbmdlUmFkaW8uZW1pdCh7IG9wdGlvbk5hbWU6IHRoaXMucmFkaW9FbGVtZW50LnZhbHVlLCBvcHRpb25DaGVja2VkOiB0cnVlIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5fc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2hhbmdlUmFkaW8uZW1pdCh7IG9wdGlvbk5hbWU6ICcnLCBvcHRpb25DaGVja2VkOiBmYWxzZSB9KTtcbiAgICB9XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLl9zZWxlY3RlZClcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyB8fCB2YWx1ZSA9PT0gdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZCA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgb25Ub3VjaCA9ICgpID0+IHt9O1xuXG4gIC8vU2V0IGNsYXNzIGZvciBtdWx0aXBsZSByYWRpb1xuICBzZXRDbGFzcygpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWQgPyAnbXVsdGlwbGUtY2hlY2tlZCcgOiAnbXVsdGlwbGUtdW5jaGVja2VkJztcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgb25MYWJlbEVsbGlwc2lzQ2hhbmdlKGlzRWxsaXBzaXM6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnNob3dUb29sdGlwID0gaXNFbGxpcHNpcztcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tIb3N0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhvc3ROZ0NvbnRyb2wpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSB0aGlzLnZhbHVlID09PSB0aGlzLmhvc3ROZ0NvbnRyb2wudmFsdWU7XG4gICAgICB0aGlzLmhvc3ROZ0NvbnRyb2wudmFsdWVDaGFuZ2VzPy5waXBlKFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxuICAgICAgKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPSB2YWx1ZSA9PT0gdGhpcy52YWx1ZTtcbiAgICAgICAgdGhpcy5jbGFzc011bHRpcGxlID0gdGhpcy5zZXRDbGFzcygpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRDb21wYW55Q29sb3IoKTogdm9pZCB7XG4gICAgdGhpcy5jb21wYW55Q29sb3IgPSB0aGlzLmNvbXBhbnlDb2xvciA/IHRoaXMuY29tcGFueUNvbG9yIDogdGhpcy5hcHBsaWNhdGlvblRoZW1lID09PSAnY2xhc3NpYycgPyAnIzQ2QTk5NycgOiAnI0Q0MTBBQSc7XG4gIH1cblxuICBvbkZvY3VzKHNob3dUb29sdGlwOiBib29sZWFuKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNob3dUb29sdGlwICYmIHNob3dUb29sdGlwID8gdGhpcy50b29sdGlwRWxlbWVudC5zaG93KCkgOiB0aGlzLnRvb2x0aXBFbGVtZW50LmhpZGUoKTtcbiAgICB9LCAwKVxuICB9XG5cbiAgZm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5yYWRpb0VsZW1lbnQuZm9jdXMoKTtcbiAgfVxufVxuIiwiPGRpdlxuICAjcmFkaW9Db250YWluZXJcbiAgW2NsYXNzXT1cIm11bHRpcGxlID8gJ3JhZGlvLWNvbnRhaW5lcicgOiAncmFkaW8nXCJcbiAgW2NsYXNzLm11bHRpcGxlLWRpc2FibGVkXT1cImRpc2FibGVkICYmIG11bHRpcGxlXCJcbiAgW25nQ2xhc3NdPVwiY2xhc3NNdWx0aXBsZVwiXG4gIFthdHRyLmFsaWdubWVudF09XCJhbGlnbm1lbnRcIlxuICBbYXR0ci50cnVuY2F0ZS10ZXh0XT1cInRydW5jYXRlVGV4dFwiXG4gIFthdHRyLnRoZW1lXT1cImFwcGxpY2F0aW9uVGhlbWVcIlxuICBbYXR0ci5oYXNFcnJvcl09XCJoYXNFcnJvclwiXG4gIChrZXlkb3duLmVudGVyKT1cImNsaWNrUmFkaW8oKTsgcmFkaW9Db250YWluZXIuZm9jdXMoKVwiXG4gIChrZXlkb3duLnNwYWNlKT1cImNsaWNrUmFkaW8oKTsgcmFkaW9Db250YWluZXIuZm9jdXMoKVwiXG4+XG4gIDxtYXQtcmFkaW8tYnV0dG9uXG4gICAgI3JhZGlvXG4gICAgW2NoZWNrZWRdPVwic2VsZWN0ZWRcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW25hbWVdPVwibmFtZVwiXG4gICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICBjbGFzcz1cInJhZGlvLWJ1dHRvblwiXG4gICAgW3JlcXVpcmVkXT1cImFyaWFSZXF1aXJlZFwiXG4gICAgW2FyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICBbYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZGJ5ID8gYXJpYUxhYmVsbGVkYnkgOiBsYWJlbFwiXG4gICAgW2FyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZGJ5XCJcbiAgICAoa2V5ZG93bi5lbnRlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgKGtleWRvd24uc3BhY2UpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgIFt0YWJJbmRleF09XCJ0YWJJbmRleFwiXG4gID5cbiAgICA8c3BhblxuICAgICAgI3Rvb2x0aXA9XCJtYXRUb29sdGlwXCJcbiAgICAgIGNsYXNzPVwibGFiZWxcIlxuICAgICAgdWlFbGxpcHNlVGV4dFxuICAgICAgKG9uQ2hhbmdlVGV4dFN0YXRlKT1cIm9uTGFiZWxFbGxpcHNpc0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFttYXRUb29sdGlwXT1cInNob3dUb29sdGlwID8gbGFiZWwgOiAnJ1wiXG4gICAgICBbbWF0VG9vbHRpcENsYXNzXT1cImFwcGxpY2F0aW9uVGhlbWVcIlxuICAgID57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcmFkaW8tbGFiZWxdXCI+PC9uZy1jb250ZW50PlxuICA8L21hdC1yYWRpby1idXR0b24+XG48L2Rpdj5cbiJdfQ==
@@ -1,25 +0,0 @@
1
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
2
- import { CommonModule } from '@angular/common';
3
- import { NgModule } from '@angular/core';
4
- import { MatRadioModule } from '@angular/material/radio';
5
- import { RadioButtonComponent } from './radio-button.component';
6
- import { MatInputModule } from '@angular/material/input';
7
- import { EllipseTextDirective } from '../../directives/ellipse-text.directive';
8
- import { MatTooltipModule } from '@angular/material/tooltip';
9
- import { MatCheckboxModule } from '@angular/material/checkbox';
10
- import { FocusVisibleDirective } from '../checkbox/focus-visible.directive';
11
- import * as i0 from "@angular/core";
12
- export class RadioButtonComponentModule {
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RadioButtonComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
14
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: RadioButtonComponentModule, declarations: [RadioButtonComponent], imports: [CommonModule, MatRadioModule, FormsModule, ReactiveFormsModule, MatInputModule, EllipseTextDirective, MatTooltipModule, MatCheckboxModule, FocusVisibleDirective], exports: [RadioButtonComponent] }); }
15
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RadioButtonComponentModule, imports: [CommonModule, MatRadioModule, FormsModule, ReactiveFormsModule, MatInputModule, MatTooltipModule, MatCheckboxModule] }); }
16
- }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RadioButtonComponentModule, decorators: [{
18
- type: NgModule,
19
- args: [{
20
- declarations: [RadioButtonComponent],
21
- imports: [CommonModule, MatRadioModule, FormsModule, ReactiveFormsModule, MatInputModule, EllipseTextDirective, MatTooltipModule, MatCheckboxModule, FocusVisibleDirective],
22
- exports: [RadioButtonComponent],
23
- }]
24
- }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLmNvbXBvbmVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Z28tY2Fub3B5LXVpL2NvbXBvbmVudHMvcmFkaW8tYnV0dG9uL3JhZGlvLWJ1dHRvbi5jb21wb25lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQU81RSxNQUFNLE9BQU8sMEJBQTBCOytHQUExQiwwQkFBMEI7Z0hBQTFCLDBCQUEwQixpQkFKdEIsb0JBQW9CLGFBQ3pCLFlBQVksRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsYUFDaEssb0JBQW9CO2dIQUVuQiwwQkFBMEIsWUFIM0IsWUFBWSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUF3QixnQkFBZ0IsRUFBRSxpQkFBaUI7OzRGQUd4SSwwQkFBMEI7a0JBTHRDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQ3BDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsQ0FBQztvQkFDM0ssT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUM7aUJBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFJhZGlvTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xuaW1wb3J0IHsgUmFkaW9CdXR0b25Db21wb25lbnQgfSBmcm9tICcuL3JhZGlvLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBFbGxpcHNlVGV4dERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZWxsaXBzZS10ZXh0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IEZvY3VzVmlzaWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uL2NoZWNrYm94L2ZvY3VzLXZpc2libGUuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUmFkaW9CdXR0b25Db21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRSYWRpb01vZHVsZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE1hdElucHV0TW9kdWxlLCBFbGxpcHNlVGV4dERpcmVjdGl2ZSwgTWF0VG9vbHRpcE1vZHVsZSwgTWF0Q2hlY2tib3hNb2R1bGUsIEZvY3VzVmlzaWJsZURpcmVjdGl2ZV0sXG4gIGV4cG9ydHM6IFtSYWRpb0J1dHRvbkNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvQnV0dG9uQ29tcG9uZW50TW9kdWxlIHt9XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGdvLWNhbm9weS11aS9jb21wb25lbnRzL3JhZGlvLWJ1dHRvbi9yYWRpby1idXR0b24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFJhZGlvQnV0dG9uRXZlbnRUeXBlID0ge1xuICBvcHRpb25OYW1lOiBzdHJpbmc7XG4gIG9wdGlvbkNoZWNrZWQ6IGJvb2xlYW47XG59O1xuIl19
@@ -1,23 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class HalfStarPipe {
4
- /**
5
- * @description Used to indicate whether display half-star icon.
6
- * Returns true if the rounded value of the current element
7
- * is equal to it's index, and value is not integer (e.g. index = 4, value = 3.5),
8
- * @param index the index of the current element
9
- * @param value the value of the current element
10
- */
11
- transform(index, value) {
12
- return Math.ceil(value) === index && !Number.isInteger(value);
13
- }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HalfStarPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
15
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: HalfStarPipe, name: "halfStar" }); }
16
- }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HalfStarPipe, decorators: [{
18
- type: Pipe,
19
- args: [{
20
- name: 'halfStar',
21
- }]
22
- }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFsZi1zdGFyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Z28tY2Fub3B5LXVpL2NvbXBvbmVudHMvcmF0aW5nL2hhbGYtc3Rhci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUtwRCxNQUFNLE9BQU8sWUFBWTtJQUN2Qjs7Ozs7O09BTUc7SUFDSCxTQUFTLENBQUMsS0FBYSxFQUFFLEtBQWE7UUFDcEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEUsQ0FBQzsrR0FWVSxZQUFZOzZHQUFaLFlBQVk7OzRGQUFaLFlBQVk7a0JBSHhCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFVBQVU7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdoYWxmU3RhcicsXG59KVxuZXhwb3J0IGNsYXNzIEhhbGZTdGFyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFVzZWQgdG8gaW5kaWNhdGUgd2hldGhlciBkaXNwbGF5IGhhbGYtc3RhciBpY29uLlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHJvdW5kZWQgdmFsdWUgb2YgdGhlIGN1cnJlbnQgZWxlbWVudFxuICAgKiBpcyBlcXVhbCB0byBpdCdzIGluZGV4LCBhbmQgdmFsdWUgaXMgbm90IGludGVnZXIgKGUuZy4gaW5kZXggPSA0LCB2YWx1ZSA9IDMuNSksXG4gICAqIEBwYXJhbSBpbmRleCB0aGUgaW5kZXggb2YgdGhlIGN1cnJlbnQgZWxlbWVudFxuICAgKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlIG9mIHRoZSBjdXJyZW50IGVsZW1lbnRcbiAgICovXG4gIHRyYW5zZm9ybShpbmRleDogbnVtYmVyLCB2YWx1ZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIE1hdGguY2VpbCh2YWx1ZSkgPT09IGluZGV4ICYmICFOdW1iZXIuaXNJbnRlZ2VyKHZhbHVlKTtcbiAgfVxufVxuIl19
@@ -1,106 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "./half-star.pipe";
5
- export class RatingComponent {
6
- set length(length) {
7
- this.items = Array(Math.max(length, this.MIN_LENGTH))
8
- .fill(0)
9
- .map((x, i) => i);
10
- }
11
- constructor(defaultAppTheme) {
12
- this.defaultAppTheme = defaultAppTheme;
13
- this.MIN_LENGTH = 0;
14
- this.DEFAULT_LENGTH = 5;
15
- this.items = [];
16
- /**
17
- *
18
- * Defines the application theme where accordion is used
19
- *
20
- * @type {ApplicationTheme}
21
- * @memberof AccordionComponent
22
- */
23
- this.applicationTheme = 'light';
24
- /**
25
- * The theme of the rating component. Defaults "block".
26
- * @type {RatingComponentTheme}
27
- * @memberof RatingComponent
28
- */
29
- this.theme = 'block';
30
- /**
31
- * A flag indicating whether the rating component is disabled.
32
- * @type {boolean}
33
- * @memberof RatingComponent
34
- */
35
- this.disabled = false;
36
- /**
37
- * A string representing the ARIA requirement for accessibility.
38
- * This attribute is used to indicate whether an input field is required for form submission.
39
- * @type {boolean}
40
- * @memberof RatingComponent
41
- */
42
- this.ariaRequired = false;
43
- /**
44
- * The width of the rating bar.
45
- * @type {number}
46
- * @memberof RatingComponent
47
- */
48
- this.barWidth = 35;
49
- /**
50
- * A flag indicating whether the rating can be unselected by clicking on the same value.
51
- * When false, clicking on the same value will not change the rating.
52
- * @type {boolean}
53
- * @memberof RatingComponent
54
- */
55
- this.canUnselect = true;
56
- this.valueChange = new EventEmitter();
57
- if (defaultAppTheme) {
58
- this.applicationTheme = defaultAppTheme;
59
- }
60
- this.length = this.DEFAULT_LENGTH;
61
- }
62
- select(index) {
63
- const newValue = index + 1;
64
- // If canUnselect is false and we're clicking on the same value, don't change anything
65
- if (!this.canUnselect && this.value === newValue) {
66
- return;
67
- }
68
- this.value = this.value === newValue ? 0 : newValue;
69
- this.valueChange.emit(this.value);
70
- }
71
- onHover(index) {
72
- this.hoverIndex = index + 1;
73
- }
74
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RatingComponent, deps: [{ token: 'CANOPYUI_DEFAULT_APPLICATION_THEME', optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
75
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RatingComponent, selector: "ui-rating", inputs: { applicationTheme: "applicationTheme", value: "value", theme: "theme", disabled: "disabled", ariaLabel: "ariaLabel", ariaRequired: "ariaRequired", barWidth: "barWidth", canUnselect: "canUnselect", length: "length" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"rating\"\n (mouseleave)=\"onHover(-1)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n>\n <ng-container *ngIf=\"theme === 'block';else stars\">\n <div class=\"rating-item\" [attr.theme]=\"applicationTheme\" *ngFor=\"let item of items\" (click)=\"select(item)\" (mouseenter)=\"onHover(item)\"\n [ngClass]=\"{ 'rating-item-selected': item < value, 'rating-item-hover': item < hoverIndex }\"\n [ngStyle]=\"{'width.px': barWidth}\">\n </div>\n </ng-container>\n\n <ng-template #stars>\n <div class=\"star-container\" [attr.theme]=\"applicationTheme\">\n <div\n #star\n class=\"star\"\n [tabIndex]=\"0\"\n (mouseenter)=\"onHover(item)\"\n (mouseleave)=\"onHover(-1)\"\n [ngClass]=\"{\n filled: value > i,\n hover: item < hoverIndex && (value ? item >= value : true),\n disabled,\n 'filled-half': i + 1 | halfStar : value\n }\"\n *ngFor=\"let item of items; index as i\"\n (click)=\"select(item); star.blur()\"\n ></div>\n </div>\n </ng-template>\n</div>\n", styles: [".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}.rating{display:flex;align-content:center;justify-content:flex-start;align-items:center}.rating-item{width:35px;height:16px;border:1px solid #E0E0E0;border-left:0;cursor:pointer}.rating-item-hover{border:0;background-color:#b5ddd5}.rating-item-hover[theme=dark],.rating-item-hover[theme=light]{background-color:#ffb3ee}.rating-item-hover:not(:first-child){border-left:1px solid #ffffff}.rating-item:first-child{border-radius:4px 0 0 4px}.rating-item:first-child:not(.rating-item-selected):not(.rating-item-hover){border-left:1px solid #E0E0E0}.rating-item:last-child{border-radius:0 4px 4px 0}.rating-item:first-child:last-child{border-radius:4px}.rating-item-selected{border:0;background-color:#46a997}.rating-item-selected[theme=dark],.rating-item-selected[theme=light]{background-color:#d410aa}.rating-item-selected:not(:first-child){border-left:1px solid #ffffff}.rating .star-container{display:flex;flex-direction:row;min-height:24px}.rating .star-container .star{width:24px;height:24px;background:url(/icons/rating-icons/Star-outline.svg) no-repeat center;background-size:100%;margin-right:4px}.rating .star-container .star:last-child{margin-right:0}.rating .star-container .star:focus{outline:1px dashed #888888}.rating .star-container .star:hover,.rating .star-container .star.hover,.rating .star-container .star:focus{opacity:.5}.rating .star-container .star.filled-half{background-image:url(/icons/rating-icons/Star-half.svg)!important}.rating .star-container .star.disabled{pointer-events:none;background-image:url(/icons/rating-icons/Star-filled-disabled.svg)}.rating .star-container .star:active{opacity:1}.rating .star-container .star-filled,.rating .star-container[theme=dark] .star.filled,.rating .star-container[theme=light] .star.filled,.rating .star-container[theme=dark] .star:hover,.rating .star-container[theme=dark] .star.hover,.rating .star-container[theme=dark] .star:focus,.rating .star-container[theme=light] .star:hover,.rating .star-container[theme=light] .star.hover,.rating .star-container[theme=light] .star:focus,.rating .star-container .star:hover,.rating .star-container .star.hover,.rating .star-container .star:focus,.rating .star-container .star.filled,.rating .star-container .star:active{background-image:url(/icons/rating-icons/Star-filled.svg)}.rating .star-container[theme=dark] .star,.rating .star-container[theme=light] .star{cursor:pointer;background:url(/icons/rebrand/Review-star-in-line.svg) no-repeat center}.rating .star-container[theme=dark] .star:hover,.rating .star-container[theme=dark] .star.hover,.rating .star-container[theme=dark] .star:focus,.rating .star-container[theme=light] .star:hover,.rating .star-container[theme=light] .star.hover,.rating .star-container[theme=light] .star:focus{opacity:.5}.rating .star-container[theme=dark] .star:focus,.rating .star-container[theme=light] .star:focus{outline-offset:4px}.rating .star-container[theme=dark] .star.filled-half,.rating .star-container[theme=light] .star.filled-half{background-image:url(/icons/rebrand/Review-half-star-filled.svg)!important}.rating .star-container[theme=dark] .star.disabled,.rating .star-container[theme=light] .star.disabled{background-image:url(/icons/rebrand/Review-star-filled-disabled.svg)}.rating .star-container[theme=dark] .star-filled,.rating .star-container[theme=dark] .star:hover,.rating .star-container[theme=dark] .star.hover,.rating .star-container[theme=dark] .star:focus,.rating .star-container[theme=dark] .star.filled,.rating .star-container[theme=dark] .star:active,.rating .star-container[theme=light] .star-filled,.rating .star-container[theme=light] .star:hover,.rating .star-container[theme=light] .star.hover,.rating .star-container[theme=light] .star:focus,.rating .star-container[theme=light] .star.filled,.rating .star-container[theme=light] .star:active{background-image:url(/icons/rebrand/Review-star-filled.svg)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i2.HalfStarPipe, name: "halfStar" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
76
- }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RatingComponent, decorators: [{
78
- type: Component,
79
- args: [{ selector: 'ui-rating', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"rating\"\n (mouseleave)=\"onHover(-1)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-required]=\"ariaRequired\"\n>\n <ng-container *ngIf=\"theme === 'block';else stars\">\n <div class=\"rating-item\" [attr.theme]=\"applicationTheme\" *ngFor=\"let item of items\" (click)=\"select(item)\" (mouseenter)=\"onHover(item)\"\n [ngClass]=\"{ 'rating-item-selected': item < value, 'rating-item-hover': item < hoverIndex }\"\n [ngStyle]=\"{'width.px': barWidth}\">\n </div>\n </ng-container>\n\n <ng-template #stars>\n <div class=\"star-container\" [attr.theme]=\"applicationTheme\">\n <div\n #star\n class=\"star\"\n [tabIndex]=\"0\"\n (mouseenter)=\"onHover(item)\"\n (mouseleave)=\"onHover(-1)\"\n [ngClass]=\"{\n filled: value > i,\n hover: item < hoverIndex && (value ? item >= value : true),\n disabled,\n 'filled-half': i + 1 | halfStar : value\n }\"\n *ngFor=\"let item of items; index as i\"\n (click)=\"select(item); star.blur()\"\n ></div>\n </div>\n </ng-template>\n</div>\n", styles: [".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}.rating{display:flex;align-content:center;justify-content:flex-start;align-items:center}.rating-item{width:35px;height:16px;border:1px solid #E0E0E0;border-left:0;cursor:pointer}.rating-item-hover{border:0;background-color:#b5ddd5}.rating-item-hover[theme=dark],.rating-item-hover[theme=light]{background-color:#ffb3ee}.rating-item-hover:not(:first-child){border-left:1px solid #ffffff}.rating-item:first-child{border-radius:4px 0 0 4px}.rating-item:first-child:not(.rating-item-selected):not(.rating-item-hover){border-left:1px solid #E0E0E0}.rating-item:last-child{border-radius:0 4px 4px 0}.rating-item:first-child:last-child{border-radius:4px}.rating-item-selected{border:0;background-color:#46a997}.rating-item-selected[theme=dark],.rating-item-selected[theme=light]{background-color:#d410aa}.rating-item-selected:not(:first-child){border-left:1px solid #ffffff}.rating .star-container{display:flex;flex-direction:row;min-height:24px}.rating .star-container .star{width:24px;height:24px;background:url(/icons/rating-icons/Star-outline.svg) no-repeat center;background-size:100%;margin-right:4px}.rating .star-container .star:last-child{margin-right:0}.rating .star-container .star:focus{outline:1px dashed #888888}.rating .star-container .star:hover,.rating .star-container .star.hover,.rating .star-container .star:focus{opacity:.5}.rating .star-container .star.filled-half{background-image:url(/icons/rating-icons/Star-half.svg)!important}.rating .star-container .star.disabled{pointer-events:none;background-image:url(/icons/rating-icons/Star-filled-disabled.svg)}.rating .star-container .star:active{opacity:1}.rating .star-container .star-filled,.rating .star-container[theme=dark] .star.filled,.rating .star-container[theme=light] .star.filled,.rating .star-container[theme=dark] .star:hover,.rating .star-container[theme=dark] .star.hover,.rating .star-container[theme=dark] .star:focus,.rating .star-container[theme=light] .star:hover,.rating .star-container[theme=light] .star.hover,.rating .star-container[theme=light] .star:focus,.rating .star-container .star:hover,.rating .star-container .star.hover,.rating .star-container .star:focus,.rating .star-container .star.filled,.rating .star-container .star:active{background-image:url(/icons/rating-icons/Star-filled.svg)}.rating .star-container[theme=dark] .star,.rating .star-container[theme=light] .star{cursor:pointer;background:url(/icons/rebrand/Review-star-in-line.svg) no-repeat center}.rating .star-container[theme=dark] .star:hover,.rating .star-container[theme=dark] .star.hover,.rating .star-container[theme=dark] .star:focus,.rating .star-container[theme=light] .star:hover,.rating .star-container[theme=light] .star.hover,.rating .star-container[theme=light] .star:focus{opacity:.5}.rating .star-container[theme=dark] .star:focus,.rating .star-container[theme=light] .star:focus{outline-offset:4px}.rating .star-container[theme=dark] .star.filled-half,.rating .star-container[theme=light] .star.filled-half{background-image:url(/icons/rebrand/Review-half-star-filled.svg)!important}.rating .star-container[theme=dark] .star.disabled,.rating .star-container[theme=light] .star.disabled{background-image:url(/icons/rebrand/Review-star-filled-disabled.svg)}.rating .star-container[theme=dark] .star-filled,.rating .star-container[theme=dark] .star:hover,.rating .star-container[theme=dark] .star.hover,.rating .star-container[theme=dark] .star:focus,.rating .star-container[theme=dark] .star.filled,.rating .star-container[theme=dark] .star:active,.rating .star-container[theme=light] .star-filled,.rating .star-container[theme=light] .star:hover,.rating .star-container[theme=light] .star.hover,.rating .star-container[theme=light] .star:focus,.rating .star-container[theme=light] .star.filled,.rating .star-container[theme=light] .star:active{background-image:url(/icons/rebrand/Review-star-filled.svg)}\n"] }]
80
- }], ctorParameters: () => [{ type: undefined, decorators: [{
81
- type: Optional
82
- }, {
83
- type: Inject,
84
- args: ['CANOPYUI_DEFAULT_APPLICATION_THEME']
85
- }] }], propDecorators: { applicationTheme: [{
86
- type: Input
87
- }], value: [{
88
- type: Input
89
- }], theme: [{
90
- type: Input
91
- }], disabled: [{
92
- type: Input
93
- }], ariaLabel: [{
94
- type: Input
95
- }], ariaRequired: [{
96
- type: Input
97
- }], barWidth: [{
98
- type: Input
99
- }], canUnselect: [{
100
- type: Input
101
- }], length: [{
102
- type: Input
103
- }], valueChange: [{
104
- type: Output
105
- }] } });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9yYXRpbmcvcmF0aW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rnby1jYW5vcHktdWkvY29tcG9uZW50cy9yYXRpbmcvcmF0aW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVdsSCxNQUFNLE9BQU8sZUFBZTtJQW1FMUIsSUFBYSxNQUFNLENBQUMsTUFBYztRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDbEQsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUNQLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFJRCxZQUM2RSxlQUFpQztRQUFqQyxvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUEzRTdGLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUMxQixVQUFLLEdBQWEsRUFBRSxDQUFDO1FBRy9COzs7Ozs7V0FNRztRQUNNLHFCQUFnQixHQUFxQixPQUFPLENBQUM7UUFTdEQ7Ozs7V0FJRztRQUNNLFVBQUssR0FBeUIsT0FBTyxDQUFDO1FBRS9DOzs7O1dBSUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBVTFCOzs7OztXQUtHO1FBQ00saUJBQVksR0FBRyxLQUFLLENBQUM7UUFFOUI7Ozs7V0FJRztRQUNNLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFFdkI7Ozs7O1dBS0c7UUFDTSxnQkFBVyxHQUFHLElBQUksQ0FBQztRQVFsQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFLakQsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDO1FBQzFDLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7SUFFcEMsQ0FBQztJQUVTLE1BQU0sQ0FBQyxLQUFhO1FBQzVCLE1BQU0sUUFBUSxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7UUFFM0Isc0ZBQXNGO1FBQ3RGLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDakQsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVTLE9BQU8sQ0FBQyxLQUFhO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDOytHQW5HVSxlQUFlLGtCQTRFSixvQ0FBb0M7bUdBNUUvQyxlQUFlLDRUQ1g1QiwybkNBZ0NBOzs0RkRyQmEsZUFBZTtrQkFOM0IsU0FBUzsrQkFDRSxXQUFXLG1CQUdKLHVCQUF1QixDQUFDLE1BQU07OzBCQThFNUMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxvQ0FBb0M7eUNBL0RqRCxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBT0csS0FBSztzQkFBYixLQUFLO2dCQU9HLEtBQUs7c0JBQWIsS0FBSztnQkFPRyxRQUFRO3NCQUFoQixLQUFLO2dCQVFHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBUUcsWUFBWTtzQkFBcEIsS0FBSztnQkFPRyxRQUFRO3NCQUFoQixLQUFLO2dCQVFHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRU8sTUFBTTtzQkFBbEIsS0FBSztnQkFNSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPcHRpb25hbCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblRoZW1lIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FwcGxpY2F0aW9uLXRoZW1lLm1vZGVsJztcblxuZXhwb3J0IHR5cGUgUmF0aW5nQ29tcG9uZW50VGhlbWUgPSAnc3RhcnMnIHwgJ2Jsb2NrJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndWktcmF0aW5nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhdGluZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JhdGluZy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUmF0aW5nQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBNSU5fTEVOR1RIID0gMDtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX0xFTkdUSCA9IDU7XG4gIHByb3RlY3RlZCBpdGVtczogbnVtYmVyW10gPSBbXTtcbiAgcHJvdGVjdGVkIGhvdmVySW5kZXg6IG51bWJlcjtcblxuICAvKipcbiAgICpcbiAgICogRGVmaW5lcyB0aGUgYXBwbGljYXRpb24gdGhlbWUgd2hlcmUgYWNjb3JkaW9uIGlzIHVzZWRcbiAgICpcbiAgICogQHR5cGUge0FwcGxpY2F0aW9uVGhlbWV9XG4gICAqIEBtZW1iZXJvZiBBY2NvcmRpb25Db21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGFwcGxpY2F0aW9uVGhlbWU6IEFwcGxpY2F0aW9uVGhlbWUgPSAnbGlnaHQnO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSByYXRpbmcuXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBtZW1iZXJvZiBSYXRpbmdDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIHZhbHVlOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB0aGVtZSBvZiB0aGUgcmF0aW5nIGNvbXBvbmVudC4gRGVmYXVsdHMgXCJibG9ja1wiLlxuICAgKiBAdHlwZSB7UmF0aW5nQ29tcG9uZW50VGhlbWV9XG4gICAqIEBtZW1iZXJvZiBSYXRpbmdDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIHRoZW1lOiBSYXRpbmdDb21wb25lbnRUaGVtZSA9ICdibG9jayc7XG5cbiAgLyoqXG4gICAqIEEgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHJhdGluZyBjb21wb25lbnQgaXMgZGlzYWJsZWQuXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAbWVtYmVyb2YgUmF0aW5nQ29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIEFSSUEgbGFiZWwgZm9yIGFjY2Vzc2liaWxpdHkuXG4gICAqIFRoaXMgbGFiZWwgaXMgdXNlZCB0byBwcm92aWRlIGFuIGFjY2Vzc2libGUgbmFtZSBmb3IgdGhlIGlucHV0IGVsZW1lbnQuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBtZW1iZXJvZiBSYXRpbmdDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGFyaWFMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIEFSSUEgcmVxdWlyZW1lbnQgZm9yIGFjY2Vzc2liaWxpdHkuXG4gICAqIFRoaXMgYXR0cmlidXRlIGlzIHVzZWQgdG8gaW5kaWNhdGUgd2hldGhlciBhbiBpbnB1dCBmaWVsZCBpcyByZXF1aXJlZCBmb3IgZm9ybSBzdWJtaXNzaW9uLlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQG1lbWJlcm9mIFJhdGluZ0NvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgYXJpYVJlcXVpcmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSB3aWR0aCBvZiB0aGUgcmF0aW5nIGJhci5cbiAgICogQHR5cGUge251bWJlcn1cbiAgICogQG1lbWJlcm9mIFJhdGluZ0NvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KCkgYmFyV2lkdGggPSAzNTtcblxuICAvKipcbiAgICogQSBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGUgcmF0aW5nIGNhbiBiZSB1bnNlbGVjdGVkIGJ5IGNsaWNraW5nIG9uIHRoZSBzYW1lIHZhbHVlLlxuICAgKiBXaGVuIGZhbHNlLCBjbGlja2luZyBvbiB0aGUgc2FtZSB2YWx1ZSB3aWxsIG5vdCBjaGFuZ2UgdGhlIHJhdGluZy5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBtZW1iZXJvZiBSYXRpbmdDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpIGNhblVuc2VsZWN0ID0gdHJ1ZTtcblxuICBASW5wdXQoKSBzZXQgbGVuZ3RoKGxlbmd0aDogbnVtYmVyKSB7XG4gICAgdGhpcy5pdGVtcyA9IEFycmF5KE1hdGgubWF4KGxlbmd0aCwgdGhpcy5NSU5fTEVOR1RIKSlcbiAgICAgIC5maWxsKDApXG4gICAgICAubWFwKCh4LCBpKSA9PiBpKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoJ0NBTk9QWVVJX0RFRkFVTFRfQVBQTElDQVRJT05fVEhFTUUnKSBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRBcHBUaGVtZTogQXBwbGljYXRpb25UaGVtZSxcbiAgKSB7XG4gICAgaWYgKGRlZmF1bHRBcHBUaGVtZSkge1xuICAgICAgdGhpcy5hcHBsaWNhdGlvblRoZW1lID0gZGVmYXVsdEFwcFRoZW1lO1xuICAgIH1cbiAgICB0aGlzLmxlbmd0aCA9IHRoaXMuREVGQVVMVF9MRU5HVEg7XG5cbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3QoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gaW5kZXggKyAxO1xuICAgIFxuICAgIC8vIElmIGNhblVuc2VsZWN0IGlzIGZhbHNlIGFuZCB3ZSdyZSBjbGlja2luZyBvbiB0aGUgc2FtZSB2YWx1ZSwgZG9uJ3QgY2hhbmdlIGFueXRoaW5nXG4gICAgaWYgKCF0aGlzLmNhblVuc2VsZWN0ICYmIHRoaXMudmFsdWUgPT09IG5ld1ZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlID09PSBuZXdWYWx1ZSA/IDAgOiBuZXdWYWx1ZTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Ib3ZlcihpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5ob3ZlckluZGV4ID0gaW5kZXggKyAxO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicmF0aW5nXCJcbiAgICAgKG1vdXNlbGVhdmUpPVwib25Ib3ZlcigtMSlcIlxuICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwiYXJpYVJlcXVpcmVkXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRoZW1lID09PSAnYmxvY2snO2Vsc2Ugc3RhcnNcIj5cbiAgICA8ZGl2IGNsYXNzPVwicmF0aW5nLWl0ZW1cIiBbYXR0ci50aGVtZV09XCJhcHBsaWNhdGlvblRoZW1lXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIiAoY2xpY2spPVwic2VsZWN0KGl0ZW0pXCIgKG1vdXNlZW50ZXIpPVwib25Ib3ZlcihpdGVtKVwiXG4gICAgICAgICBbbmdDbGFzc109XCJ7ICdyYXRpbmctaXRlbS1zZWxlY3RlZCc6IGl0ZW0gPCB2YWx1ZSwgJ3JhdGluZy1pdGVtLWhvdmVyJzogaXRlbSA8IGhvdmVySW5kZXggfVwiXG4gICAgICAgICBbbmdTdHlsZV09XCJ7J3dpZHRoLnB4JzogYmFyV2lkdGh9XCI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjc3RhcnM+XG4gICAgPGRpdiBjbGFzcz1cInN0YXItY29udGFpbmVyXCIgW2F0dHIudGhlbWVdPVwiYXBwbGljYXRpb25UaGVtZVwiPlxuICAgICAgPGRpdlxuICAgICAgICAjc3RhclxuICAgICAgICBjbGFzcz1cInN0YXJcIlxuICAgICAgICBbdGFiSW5kZXhdPVwiMFwiXG4gICAgICAgIChtb3VzZWVudGVyKT1cIm9uSG92ZXIoaXRlbSlcIlxuICAgICAgICAobW91c2VsZWF2ZSk9XCJvbkhvdmVyKC0xKVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICBmaWxsZWQ6IHZhbHVlID4gaSxcbiAgICAgICAgICBob3ZlcjogaXRlbSA8IGhvdmVySW5kZXggJiYgKHZhbHVlID8gaXRlbSA+PSB2YWx1ZSA6IHRydWUpLFxuICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICdmaWxsZWQtaGFsZic6IGkgKyAxIHwgaGFsZlN0YXIgOiB2YWx1ZVxuICAgICAgICB9XCJcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IGluZGV4IGFzIGlcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0KGl0ZW0pOyBzdGFyLmJsdXIoKVwiXG4gICAgICA+PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==