@seniorsistemas/data-seniorx-core 2.3.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/core/constants/autocomplete.const.d.ts +4 -0
  2. package/core/constants/context-selector.const.d.ts +1 -0
  3. package/core/constants/gantt.const.d.ts +7 -0
  4. package/core/constants/hyperlink.const.d.ts +1 -0
  5. package/core/constants/inline-edit.const.d.ts +4 -0
  6. package/core/constants/kanban.const.d.ts +2 -0
  7. package/core/constants/pin-code-field.const.d.ts +5 -0
  8. package/core/constants/rating-scale.const.d.ts +1 -0
  9. package/core/constants/spotlight.const.d.ts +8 -0
  10. package/core/constants/star-rating.const.d.ts +4 -0
  11. package/core/constants/stepper.const.d.ts +1 -0
  12. package/core/constants/tiered-menu.const.d.ts +3 -0
  13. package/core/types/autocomplete.type.d.ts +9 -0
  14. package/core/types/chat.type.d.ts +12 -0
  15. package/core/types/checkbox-list.type.d.ts +12 -0
  16. package/core/types/gantt.type.d.ts +22 -0
  17. package/core/types/grid-menu.type.d.ts +13 -0
  18. package/core/types/hyperlink.type.d.ts +1 -0
  19. package/core/types/image-cropper.type.d.ts +20 -0
  20. package/core/types/inline-edit.type.d.ts +26 -0
  21. package/core/types/kanban.type.d.ts +36 -0
  22. package/core/types/panel.type.d.ts +16 -0
  23. package/core/types/profile-picture-picker.type.d.ts +9 -0
  24. package/core/types/rating-scale.type.d.ts +5 -0
  25. package/core/types/select-button.type.d.ts +1 -0
  26. package/core/types/spotlight.type.d.ts +34 -0
  27. package/core/types/star-rating.type.d.ts +1 -0
  28. package/core/types/stepper.type.d.ts +20 -0
  29. package/core/types/table-column.type.d.ts +3 -1
  30. package/core/types/table-options.type.d.ts +8 -2
  31. package/core/types/table.type.d.ts +1 -1
  32. package/core/types/tiered-menu.type.d.ts +16 -0
  33. package/core/types/tree.type.d.ts +25 -0
  34. package/core/types/workspace-switch.type.d.ts +6 -0
  35. package/core/utils/body-scroll.util.d.ts +2 -0
  36. package/core/utils/roving-focus.util.d.ts +2 -0
  37. package/core/utils/selection.util.d.ts +3 -0
  38. package/core/utils/tree.util.d.ts +4 -0
  39. package/esm2022/core/constants/autocomplete.const.mjs +5 -0
  40. package/esm2022/core/constants/context-selector.const.mjs +2 -0
  41. package/esm2022/core/constants/gantt.const.mjs +7 -0
  42. package/esm2022/core/constants/hyperlink.const.mjs +2 -1
  43. package/esm2022/core/constants/inline-edit.const.mjs +5 -0
  44. package/esm2022/core/constants/kanban.const.mjs +3 -0
  45. package/esm2022/core/constants/pin-code-field.const.mjs +6 -0
  46. package/esm2022/core/constants/rating-scale.const.mjs +2 -0
  47. package/esm2022/core/constants/spotlight.const.mjs +9 -0
  48. package/esm2022/core/constants/star-rating.const.mjs +5 -0
  49. package/esm2022/core/constants/stepper.const.mjs +2 -0
  50. package/esm2022/core/constants/table.const.mjs +2 -2
  51. package/esm2022/core/constants/tiered-menu.const.mjs +4 -0
  52. package/esm2022/core/types/autocomplete.type.mjs +2 -0
  53. package/esm2022/core/types/chat.type.mjs +2 -0
  54. package/esm2022/core/types/checkbox-list.type.mjs +2 -0
  55. package/esm2022/core/types/gantt.type.mjs +2 -0
  56. package/esm2022/core/types/grid-menu.type.mjs +2 -0
  57. package/esm2022/core/types/hyperlink.type.mjs +1 -1
  58. package/esm2022/core/types/image-cropper.type.mjs +2 -0
  59. package/esm2022/core/types/inline-edit.type.mjs +2 -0
  60. package/esm2022/core/types/kanban.type.mjs +2 -0
  61. package/esm2022/core/types/panel.type.mjs +9 -0
  62. package/esm2022/core/types/profile-picture-picker.type.mjs +2 -0
  63. package/esm2022/core/types/rating-scale.type.mjs +2 -0
  64. package/esm2022/core/types/select-button.type.mjs +1 -1
  65. package/esm2022/core/types/spotlight.type.mjs +2 -0
  66. package/esm2022/core/types/star-rating.type.mjs +2 -0
  67. package/esm2022/core/types/stepper.type.mjs +7 -0
  68. package/esm2022/core/types/table-column.type.mjs +1 -1
  69. package/esm2022/core/types/table-options.type.mjs +1 -1
  70. package/esm2022/core/types/table.type.mjs +1 -1
  71. package/esm2022/core/types/tiered-menu.type.mjs +2 -0
  72. package/esm2022/core/types/tree.type.mjs +2 -0
  73. package/esm2022/core/types/workspace-switch.type.mjs +2 -0
  74. package/esm2022/core/utils/body-scroll.util.mjs +19 -0
  75. package/esm2022/core/utils/combobox.util.mjs +3 -2
  76. package/esm2022/core/utils/roving-focus.util.mjs +20 -0
  77. package/esm2022/core/utils/selection.util.mjs +13 -0
  78. package/esm2022/core/utils/string.util.mjs +8 -3
  79. package/esm2022/core/utils/tree.util.mjs +23 -0
  80. package/esm2022/features/accordion/accordion.component.mjs +2 -2
  81. package/esm2022/features/accordion/{accordion-item.component.mjs → components/accordion-item/accordion-item.component.mjs} +7 -7
  82. package/esm2022/features/autocomplete/autocomplete.component.mjs +501 -0
  83. package/esm2022/features/autocomplete/components/autocomplete-chip/autocomplete-chip.component.mjs +30 -0
  84. package/esm2022/features/breadcrumb/breadcrumb.component.mjs +2 -2
  85. package/esm2022/features/card-list/card/card.component.mjs +63 -99
  86. package/esm2022/features/chat/chat.component.mjs +126 -0
  87. package/esm2022/features/checkbox-list/checkbox-list.component.mjs +125 -0
  88. package/esm2022/features/combobox/combobox.component.mjs +20 -8
  89. package/esm2022/features/context-selector/context-selector.component.mjs +198 -0
  90. package/esm2022/features/filters/filters.component.mjs +1 -1
  91. package/esm2022/features/gantt/components/gantt-side-table/gantt-side-table.component.mjs +17 -0
  92. package/esm2022/features/gantt/gantt-date.utils.mjs +97 -0
  93. package/esm2022/features/gantt/gantt.component.mjs +89 -0
  94. package/esm2022/features/gantt/gantt.engine.mjs +662 -0
  95. package/esm2022/features/grid-menu/grid-menu.component.mjs +104 -0
  96. package/esm2022/features/hyperlink/hyperlink.component.mjs +7 -4
  97. package/esm2022/features/icon-picker/icon-picker.component.mjs +3 -3
  98. package/esm2022/features/image-cropper/image-cropper.component.mjs +218 -0
  99. package/esm2022/features/image-cropper/services/image-cropper.service.mjs +50 -0
  100. package/esm2022/features/infinite-scroll/infinite-scroll.directive.mjs +89 -0
  101. package/esm2022/features/info-sign/info-sign.component.mjs +3 -3
  102. package/esm2022/features/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +38 -0
  103. package/esm2022/features/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.mjs +29 -0
  104. package/esm2022/features/inline-edit/components/fields/inline-edit-textarea/inline-edit-textarea.component.mjs +29 -0
  105. package/esm2022/features/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +131 -0
  106. package/esm2022/features/inline-edit/fields/inline-edit-field.mjs +17 -0
  107. package/esm2022/features/inline-edit/fields/inline-edit-number-field.mjs +15 -0
  108. package/esm2022/features/inline-edit/fields/inline-edit-text-field.mjs +11 -0
  109. package/esm2022/features/inline-edit/fields/inline-edit-textarea-field.mjs +15 -0
  110. package/esm2022/features/inline-edit/inline-edit.component.mjs +27 -0
  111. package/esm2022/features/interactive-content/interactive-content.directive.mjs +140 -0
  112. package/esm2022/features/kanban/components/kanban-column/kanban-column.component.mjs +88 -0
  113. package/esm2022/features/kanban/components/kanban-item/kanban-item.component.mjs +72 -0
  114. package/esm2022/features/kanban/components/kanban-item-dragging/kanban-item-dragging.component.mjs +19 -0
  115. package/esm2022/features/kanban/directives/kanban-template.directive.mjs +22 -0
  116. package/esm2022/features/kanban/kanban.component.mjs +198 -0
  117. package/esm2022/features/kanban/services/kanban-event.service.mjs +27 -0
  118. package/esm2022/features/loading-state/loading-state.component.mjs +3 -62
  119. package/esm2022/features/mouse-events/directives/double-click.directive.mjs +34 -0
  120. package/esm2022/features/mouse-events/directives/long-press.directive.mjs +61 -0
  121. package/esm2022/features/paginator/paginator.component.mjs +8 -3
  122. package/esm2022/features/panel/panel.component.mjs +43 -11
  123. package/esm2022/features/pin-code-field/pin-code-field.component.mjs +234 -0
  124. package/esm2022/features/profile-picture-picker/profile-picture-picker.component.mjs +330 -0
  125. package/esm2022/features/rating-scale/rating-scale.component.mjs +86 -0
  126. package/esm2022/features/row-card-list/row-card/row-card.component.mjs +3 -3
  127. package/esm2022/features/scaffold/scaffold.component.mjs +4 -6
  128. package/esm2022/features/select-button/select-button.component.mjs +7 -4
  129. package/esm2022/features/speech-recognition/services/speech-recognition.service.mjs +148 -0
  130. package/esm2022/features/speech-recognition/services/text-to-speech.service.mjs +88 -0
  131. package/esm2022/features/speech-recognition/speech-recognition.component.mjs +243 -0
  132. package/esm2022/features/spotlight/components/spotlight-overlay/spotlight-overlay.component.mjs +521 -0
  133. package/esm2022/features/spotlight/directives/spotlight-step.directive.mjs +38 -0
  134. package/esm2022/features/spotlight/services/spotlight-tour.service.mjs +179 -0
  135. package/esm2022/features/spotlight/spotlight.component.mjs +160 -0
  136. package/esm2022/features/star-rating/star-rating.component.mjs +95 -0
  137. package/esm2022/features/stepper/stepper.component.mjs +86 -0
  138. package/esm2022/features/switch/switch.component.mjs +12 -8
  139. package/esm2022/features/tab/{tab-item.component.mjs → components/tab-item/tab-item.component.mjs} +1 -1
  140. package/esm2022/features/tab/tab.component.mjs +4 -4
  141. package/esm2022/features/table/components/table-cell-content.component.mjs +14 -5
  142. package/esm2022/features/table/table.component.mjs +220 -29
  143. package/esm2022/features/table/utils/table-data.util.mjs +71 -8
  144. package/esm2022/features/table/utils/table-layout.util.mjs +21 -1
  145. package/esm2022/features/tiered-menu/components/tiered-menu/tiered-menu.component.mjs +367 -0
  146. package/esm2022/features/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.mjs +11 -0
  147. package/esm2022/features/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.mjs +97 -0
  148. package/esm2022/features/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.mjs +181 -0
  149. package/esm2022/features/tiered-menu/directives/tiered-menu.directive.mjs +246 -0
  150. package/esm2022/features/tiered-menu/services/tiered-menu.event.service.mjs +16 -0
  151. package/esm2022/features/tiered-menu/services/tiered-menu.global.service.mjs +12 -0
  152. package/esm2022/features/tiered-menu/services/tiered-menu.service.mjs +49 -0
  153. package/esm2022/features/tree/components/tree-node-item/tree-node-item.component.mjs +169 -0
  154. package/esm2022/features/tree/tree.component.mjs +211 -0
  155. package/esm2022/features/visual-sql-editor/components/visual-sql-editor-field-modal/visual-sql-editor-field-modal.component.mjs +41 -0
  156. package/esm2022/features/visual-sql-editor/components/visual-sql-editor-filter-modal/visual-sql-editor-filter-modal.component.mjs +38 -0
  157. package/esm2022/features/visual-sql-editor/components/visual-sql-editor-join-modal/visual-sql-editor-join-modal.component.mjs +29 -0
  158. package/esm2022/features/visual-sql-editor/components/visual-sql-editor-sort-modal/visual-sql-editor-sort-modal.component.mjs +29 -0
  159. package/esm2022/features/visual-sql-editor/components/visual-sql-editor-source-modal/visual-sql-editor-source-modal.component.mjs +35 -0
  160. package/esm2022/features/visual-sql-editor/services/visual-sql-editor-flow.service.mjs +106 -0
  161. package/esm2022/features/visual-sql-editor/services/visual-sql-editor-state.service.mjs +230 -0
  162. package/esm2022/features/visual-sql-editor/types/visual-sql-editor.types.mjs +2 -0
  163. package/esm2022/features/visual-sql-editor/utils/visual-sql-editor-sanitize.util.mjs +72 -0
  164. package/esm2022/features/visual-sql-editor/utils/visual-sql-editor-sql.util.mjs +281 -0
  165. package/esm2022/features/visual-sql-editor/utils/visual-sql-editor-text.util.mjs +37 -0
  166. package/esm2022/features/visual-sql-editor/utils/visual-sql-editor.constants.mjs +89 -0
  167. package/esm2022/features/visual-sql-editor/visual-sql-editor.component.mjs +172 -630
  168. package/esm2022/locales/en.json +351 -3
  169. package/esm2022/locales/es-CO.json +351 -3
  170. package/esm2022/locales/pt.json +351 -3
  171. package/esm2022/providers/features.provider.mjs +40 -4
  172. package/esm2022/public-api.mjs +56 -3
  173. package/features/accordion/accordion.component.d.ts +1 -1
  174. package/features/accordion/{accordion-item.component.d.ts → components/accordion-item/accordion-item.component.d.ts} +1 -1
  175. package/features/autocomplete/autocomplete.component.d.ts +102 -0
  176. package/features/autocomplete/components/autocomplete-chip/autocomplete-chip.component.d.ts +11 -0
  177. package/features/card-list/card/card.component.d.ts +14 -34
  178. package/features/chat/chat.component.d.ts +31 -0
  179. package/features/checkbox-list/checkbox-list.component.d.ts +26 -0
  180. package/features/combobox/combobox.component.d.ts +2 -1
  181. package/features/context-selector/context-selector.component.d.ts +37 -0
  182. package/features/gantt/components/gantt-side-table/gantt-side-table.component.d.ts +8 -0
  183. package/features/gantt/gantt-date.utils.d.ts +36 -0
  184. package/features/gantt/gantt.component.d.ts +24 -0
  185. package/features/gantt/gantt.engine.d.ts +52 -0
  186. package/features/grid-menu/grid-menu.component.d.ts +29 -0
  187. package/features/hyperlink/hyperlink.component.d.ts +2 -1
  188. package/features/image-cropper/image-cropper.component.d.ts +43 -0
  189. package/features/image-cropper/services/image-cropper.service.d.ts +13 -0
  190. package/features/infinite-scroll/infinite-scroll.directive.d.ts +25 -0
  191. package/features/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.d.ts +13 -0
  192. package/features/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.d.ts +13 -0
  193. package/features/inline-edit/components/fields/inline-edit-textarea/inline-edit-textarea.component.d.ts +13 -0
  194. package/features/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +37 -0
  195. package/features/inline-edit/fields/inline-edit-field.d.ts +12 -0
  196. package/features/inline-edit/fields/inline-edit-number-field.d.ts +9 -0
  197. package/features/inline-edit/fields/inline-edit-text-field.d.ts +7 -0
  198. package/features/inline-edit/fields/inline-edit-textarea-field.d.ts +9 -0
  199. package/features/inline-edit/inline-edit.component.d.ts +13 -0
  200. package/features/interactive-content/interactive-content.directive.d.ts +31 -0
  201. package/features/kanban/components/kanban-column/kanban-column.component.d.ts +22 -0
  202. package/features/kanban/components/kanban-item/kanban-item.component.d.ts +23 -0
  203. package/features/kanban/components/kanban-item-dragging/kanban-item-dragging.component.d.ts +8 -0
  204. package/features/kanban/directives/kanban-template.directive.d.ts +10 -0
  205. package/features/kanban/kanban.component.d.ts +32 -0
  206. package/features/kanban/services/kanban-event.service.d.ts +15 -0
  207. package/features/loading-state/loading-state.component.d.ts +0 -2
  208. package/features/mouse-events/directives/double-click.directive.d.ts +11 -0
  209. package/features/mouse-events/directives/long-press.directive.d.ts +14 -0
  210. package/features/panel/panel.component.d.ts +12 -3
  211. package/features/pin-code-field/pin-code-field.component.d.ts +44 -0
  212. package/features/profile-picture-picker/profile-picture-picker.component.d.ts +77 -0
  213. package/features/rating-scale/rating-scale.component.d.ts +24 -0
  214. package/features/select-button/select-button.component.d.ts +2 -1
  215. package/features/speech-recognition/services/speech-recognition.service.d.ts +29 -0
  216. package/features/speech-recognition/services/text-to-speech.service.d.ts +24 -0
  217. package/features/speech-recognition/speech-recognition.component.d.ts +50 -0
  218. package/features/spotlight/components/spotlight-overlay/spotlight-overlay.component.d.ts +59 -0
  219. package/features/spotlight/directives/spotlight-step.directive.d.ts +13 -0
  220. package/features/spotlight/services/spotlight-tour.service.d.ts +46 -0
  221. package/features/spotlight/spotlight.component.d.ts +59 -0
  222. package/features/star-rating/star-rating.component.d.ts +26 -0
  223. package/features/stepper/stepper.component.d.ts +23 -0
  224. package/features/switch/switch.component.d.ts +2 -1
  225. package/features/tab/tab.component.d.ts +1 -1
  226. package/features/table/components/table-cell-content.component.d.ts +4 -3
  227. package/features/table/table.component.d.ts +40 -5
  228. package/features/table/utils/table-data.util.d.ts +1 -0
  229. package/features/table/utils/table-layout.util.d.ts +1 -0
  230. package/features/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +49 -0
  231. package/features/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.d.ts +5 -0
  232. package/features/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.d.ts +19 -0
  233. package/features/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +26 -0
  234. package/features/tiered-menu/directives/tiered-menu.directive.d.ts +44 -0
  235. package/features/tiered-menu/services/tiered-menu.event.service.d.ts +13 -0
  236. package/features/tiered-menu/services/tiered-menu.global.service.d.ts +7 -0
  237. package/features/tiered-menu/services/tiered-menu.service.d.ts +14 -0
  238. package/features/tree/components/tree-node-item/tree-node-item.component.d.ts +37 -0
  239. package/features/tree/tree.component.d.ts +37 -0
  240. package/features/visual-sql-editor/components/visual-sql-editor-field-modal/visual-sql-editor-field-modal.component.d.ts +18 -0
  241. package/features/visual-sql-editor/components/visual-sql-editor-filter-modal/visual-sql-editor-filter-modal.component.d.ts +17 -0
  242. package/features/visual-sql-editor/components/visual-sql-editor-join-modal/visual-sql-editor-join-modal.component.d.ts +13 -0
  243. package/features/visual-sql-editor/components/visual-sql-editor-sort-modal/visual-sql-editor-sort-modal.component.d.ts +13 -0
  244. package/features/visual-sql-editor/components/visual-sql-editor-source-modal/visual-sql-editor-source-modal.component.d.ts +15 -0
  245. package/features/visual-sql-editor/services/visual-sql-editor-flow.service.d.ts +26 -0
  246. package/features/visual-sql-editor/services/visual-sql-editor-state.service.d.ts +72 -0
  247. package/features/visual-sql-editor/types/visual-sql-editor.types.d.ts +182 -0
  248. package/features/visual-sql-editor/utils/visual-sql-editor-sanitize.util.d.ts +14 -0
  249. package/features/visual-sql-editor/utils/visual-sql-editor-sql.util.d.ts +81 -0
  250. package/features/visual-sql-editor/utils/visual-sql-editor-text.util.d.ts +15 -0
  251. package/features/visual-sql-editor/utils/visual-sql-editor.constants.d.ts +36 -0
  252. package/features/visual-sql-editor/visual-sql-editor.component.d.ts +37 -199
  253. package/fesm2022/seniorsistemas-data-seniorx-core.mjs +14883 -6353
  254. package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
  255. package/package.json +8 -8
  256. package/public-api.d.ts +72 -2
  257. package/src/locales/en.json +353 -15
  258. package/src/locales/es-CO.json +352 -14
  259. package/src/locales/pt.json +352 -14
  260. package/styles/sdc-global-variables.scss +1 -1
  261. package/styles.css +1 -1
  262. /package/features/tab/{tab-item.component.d.ts → components/tab-item/tab-item.component.d.ts} +0 -0
@@ -0,0 +1,104 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation, inject } from '@angular/core';
3
+ import { Router } from '@angular/router';
4
+ import { IconRendererComponent } from '../../core/components/icon-renderer/icon-renderer.component';
5
+ import { InteractiveContentDirective } from '../interactive-content/interactive-content.directive';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ const GRID_MENU_COLUMNS = {
9
+ TWO: 2,
10
+ THREE: 3,
11
+ FOUR: 4
12
+ };
13
+ export class GridMenuComponent {
14
+ router = inject(Router, { optional: true });
15
+ items = [];
16
+ selectable = false;
17
+ selectedId = null;
18
+ columns = GRID_MENU_COLUMNS.THREE;
19
+ compact = false;
20
+ selectedIdChange = new EventEmitter();
21
+ itemActivated = new EventEmitter();
22
+ trackByItemId(_index, item) {
23
+ return item.id;
24
+ }
25
+ isItemDisabled(item) {
26
+ if (typeof item.disabled === 'function') {
27
+ return item.disabled();
28
+ }
29
+ return !!item.disabled;
30
+ }
31
+ isItemSelected(item) {
32
+ if (this.selectable) {
33
+ return this.selectedId === item.id;
34
+ }
35
+ return !!item.selected;
36
+ }
37
+ resolveItemRole(item) {
38
+ if (this.selectable) {
39
+ return 'option';
40
+ }
41
+ if (item.href || item.route) {
42
+ return 'link';
43
+ }
44
+ return 'button';
45
+ }
46
+ onItemActivated(item) {
47
+ if (this.isItemDisabled(item)) {
48
+ return;
49
+ }
50
+ if (this.selectable) {
51
+ this.selectedIdChange.emit(item.id);
52
+ }
53
+ this.itemActivated.emit(item);
54
+ this.dispatchItemAction(item);
55
+ }
56
+ dispatchItemAction(item) {
57
+ if (item.command) {
58
+ item.command(item);
59
+ return;
60
+ }
61
+ if (item.route) {
62
+ if (!this.router) {
63
+ return;
64
+ }
65
+ if (typeof item.route === 'string') {
66
+ this.handleNavigationResult(this.router.navigateByUrl(item.route));
67
+ }
68
+ else {
69
+ this.handleNavigationResult(this.router.navigate(item.route));
70
+ }
71
+ return;
72
+ }
73
+ if (!item.href?.trim()) {
74
+ return;
75
+ }
76
+ globalThis.window?.open(item.href, '_self');
77
+ }
78
+ handleNavigationResult(result) {
79
+ if (result && typeof result !== 'boolean') {
80
+ result.catch(() => undefined);
81
+ }
82
+ }
83
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GridMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
84
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: GridMenuComponent, isStandalone: true, selector: "sdc-grid-menu", inputs: { items: "items", selectable: "selectable", selectedId: "selectedId", columns: "columns", compact: "compact" }, outputs: { selectedIdChange: "selectedIdChange", itemActivated: "itemActivated" }, ngImport: i0, template: "<div\n class=\"sdc-grid-menu\"\n [class.sdc-grid-menu--compact]=\"compact\"\n [attr.data-columns]=\"columns\"\n [style.--sdc-grid-menu-columns]=\"columns\"\n>\n <div\n *ngFor=\"let item of items; trackBy: trackByItemId\"\n class=\"sdc-grid-menu__item\"\n [class.sdc-grid-menu__item--selected]=\"isItemSelected(item)\"\n [class.sdc-grid-menu__item--disabled]=\"isItemDisabled(item)\"\n [attr.aria-disabled]=\"isItemDisabled(item) ? 'true' : null\"\n [attr.aria-selected]=\"selectable ? (isItemSelected(item) ? 'true' : 'false') : null\"\n [attr.data-item-id]=\"item.id\"\n sdcInteractiveContent\n [disabled]=\"isItemDisabled(item)\"\n [role]=\"resolveItemRole(item)\"\n (sdcInteractiveContent)=\"onItemActivated(item)\"\n >\n <span *ngIf=\"item.icon\" class=\"sdc-grid-menu__icon\" aria-hidden=\"true\">\n <sdc-icon-renderer [icon]=\"item.icon\" [iconType]=\"item.iconType\" [size]=\"compact ? 20 : 24\"></sdc-icon-renderer>\n </span>\n\n <span class=\"sdc-grid-menu__content\">\n <span class=\"sdc-grid-menu__label\">{{ item.label }}</span>\n <span *ngIf=\"item.description\" class=\"sdc-grid-menu__description\">{{ item.description }}</span>\n </span>\n </div>\n</div>\n", styles: [":host{display:block}.sdc-grid-menu{--sdc-grid-menu-columns: 3;display:grid;gap:1rem;grid-template-columns:repeat(var(--sdc-grid-menu-columns),minmax(0,1fr))}.sdc-grid-menu__item{align-items:flex-start;background:var(--sdc-surface-bg, #ffffff);border:1px solid var(--sdc-surface-border-color, #dedce5);border-radius:.875rem;box-shadow:var(--sdc-shadow-sm, 0 2px 8px rgba(0, 0, 0, .08));cursor:pointer;display:flex;gap:.875rem;min-height:6.5rem;padding:1rem;transition:background-color var(--sdc-transition-fast, .18s ease),border-color var(--sdc-transition-fast, .18s ease),box-shadow var(--sdc-transition-fast, .18s ease),transform var(--sdc-transition-fast, .18s ease)}.sdc-grid-menu__item:hover,.sdc-grid-menu__item:focus-visible{background:var(--sdc-surface-overlay, rgba(17, 24, 39, .06));border-color:var(--p-primary-color, #428bca);box-shadow:var(--sdc-shadow-sm, 0 2px 8px rgba(0, 0, 0, .08)),var(--sdc-focus-ring, 0 0 0 3px rgba(0, 123, 255, .25));outline:none;transform:translateY(-1px)}.sdc-grid-menu__item--selected{background:#428bca14;border-color:var(--p-primary-color, #428bca)}.sdc-grid-menu__item--disabled{cursor:default;opacity:.55;transform:none}.sdc-grid-menu__item--disabled:hover,.sdc-grid-menu__item--disabled:focus-visible{background:var(--sdc-surface-bg, #ffffff);border-color:var(--sdc-surface-border-color, #dedce5);box-shadow:var(--sdc-shadow-sm, 0 2px 8px rgba(0, 0, 0, .08));transform:none}.sdc-grid-menu__icon{align-items:center;background:#428bca1a;border-radius:.875rem;color:var(--p-primary-color, #428bca);display:inline-flex;flex:0 0 auto;height:3rem;justify-content:center;width:3rem}.sdc-grid-menu__content{display:flex;flex:1 1 auto;flex-direction:column;gap:.3rem;min-width:0}.sdc-grid-menu__label{color:var(--sdc-text-default, #111827);font-size:1rem;font-weight:600;line-height:1.35}.sdc-grid-menu__description{color:var(--sdc-text-muted, #6b7280);font-size:.875rem;line-height:1.45}.sdc-grid-menu--compact{gap:.75rem}.sdc-grid-menu--compact .sdc-grid-menu__item{min-height:5rem;padding:.875rem}.sdc-grid-menu--compact .sdc-grid-menu__icon{border-radius:.75rem;height:2.5rem;width:2.5rem}@media (max-width: 1024px){.sdc-grid-menu{grid-template-columns:repeat(min(2,var(--sdc-grid-menu-columns)),minmax(0,1fr))}}@media (max-width: 640px){.sdc-grid-menu{grid-template-columns:minmax(0,1fr)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconRendererComponent, selector: "sdc-icon-renderer", inputs: ["icon", "iconType", "size"] }, { kind: "directive", type: InteractiveContentDirective, selector: "[sdcInteractiveContent]", inputs: ["focusable", "disabled", "stopPropagation", "role"], outputs: ["sdcInteractiveContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
85
+ }
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GridMenuComponent, decorators: [{
87
+ type: Component,
88
+ args: [{ selector: 'sdc-grid-menu', standalone: true, imports: [CommonModule, IconRendererComponent, InteractiveContentDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div\n class=\"sdc-grid-menu\"\n [class.sdc-grid-menu--compact]=\"compact\"\n [attr.data-columns]=\"columns\"\n [style.--sdc-grid-menu-columns]=\"columns\"\n>\n <div\n *ngFor=\"let item of items; trackBy: trackByItemId\"\n class=\"sdc-grid-menu__item\"\n [class.sdc-grid-menu__item--selected]=\"isItemSelected(item)\"\n [class.sdc-grid-menu__item--disabled]=\"isItemDisabled(item)\"\n [attr.aria-disabled]=\"isItemDisabled(item) ? 'true' : null\"\n [attr.aria-selected]=\"selectable ? (isItemSelected(item) ? 'true' : 'false') : null\"\n [attr.data-item-id]=\"item.id\"\n sdcInteractiveContent\n [disabled]=\"isItemDisabled(item)\"\n [role]=\"resolveItemRole(item)\"\n (sdcInteractiveContent)=\"onItemActivated(item)\"\n >\n <span *ngIf=\"item.icon\" class=\"sdc-grid-menu__icon\" aria-hidden=\"true\">\n <sdc-icon-renderer [icon]=\"item.icon\" [iconType]=\"item.iconType\" [size]=\"compact ? 20 : 24\"></sdc-icon-renderer>\n </span>\n\n <span class=\"sdc-grid-menu__content\">\n <span class=\"sdc-grid-menu__label\">{{ item.label }}</span>\n <span *ngIf=\"item.description\" class=\"sdc-grid-menu__description\">{{ item.description }}</span>\n </span>\n </div>\n</div>\n", styles: [":host{display:block}.sdc-grid-menu{--sdc-grid-menu-columns: 3;display:grid;gap:1rem;grid-template-columns:repeat(var(--sdc-grid-menu-columns),minmax(0,1fr))}.sdc-grid-menu__item{align-items:flex-start;background:var(--sdc-surface-bg, #ffffff);border:1px solid var(--sdc-surface-border-color, #dedce5);border-radius:.875rem;box-shadow:var(--sdc-shadow-sm, 0 2px 8px rgba(0, 0, 0, .08));cursor:pointer;display:flex;gap:.875rem;min-height:6.5rem;padding:1rem;transition:background-color var(--sdc-transition-fast, .18s ease),border-color var(--sdc-transition-fast, .18s ease),box-shadow var(--sdc-transition-fast, .18s ease),transform var(--sdc-transition-fast, .18s ease)}.sdc-grid-menu__item:hover,.sdc-grid-menu__item:focus-visible{background:var(--sdc-surface-overlay, rgba(17, 24, 39, .06));border-color:var(--p-primary-color, #428bca);box-shadow:var(--sdc-shadow-sm, 0 2px 8px rgba(0, 0, 0, .08)),var(--sdc-focus-ring, 0 0 0 3px rgba(0, 123, 255, .25));outline:none;transform:translateY(-1px)}.sdc-grid-menu__item--selected{background:#428bca14;border-color:var(--p-primary-color, #428bca)}.sdc-grid-menu__item--disabled{cursor:default;opacity:.55;transform:none}.sdc-grid-menu__item--disabled:hover,.sdc-grid-menu__item--disabled:focus-visible{background:var(--sdc-surface-bg, #ffffff);border-color:var(--sdc-surface-border-color, #dedce5);box-shadow:var(--sdc-shadow-sm, 0 2px 8px rgba(0, 0, 0, .08));transform:none}.sdc-grid-menu__icon{align-items:center;background:#428bca1a;border-radius:.875rem;color:var(--p-primary-color, #428bca);display:inline-flex;flex:0 0 auto;height:3rem;justify-content:center;width:3rem}.sdc-grid-menu__content{display:flex;flex:1 1 auto;flex-direction:column;gap:.3rem;min-width:0}.sdc-grid-menu__label{color:var(--sdc-text-default, #111827);font-size:1rem;font-weight:600;line-height:1.35}.sdc-grid-menu__description{color:var(--sdc-text-muted, #6b7280);font-size:.875rem;line-height:1.45}.sdc-grid-menu--compact{gap:.75rem}.sdc-grid-menu--compact .sdc-grid-menu__item{min-height:5rem;padding:.875rem}.sdc-grid-menu--compact .sdc-grid-menu__icon{border-radius:.75rem;height:2.5rem;width:2.5rem}@media (max-width: 1024px){.sdc-grid-menu{grid-template-columns:repeat(min(2,var(--sdc-grid-menu-columns)),minmax(0,1fr))}}@media (max-width: 640px){.sdc-grid-menu{grid-template-columns:minmax(0,1fr)}}\n"] }]
89
+ }], propDecorators: { items: [{
90
+ type: Input
91
+ }], selectable: [{
92
+ type: Input
93
+ }], selectedId: [{
94
+ type: Input
95
+ }], columns: [{
96
+ type: Input
97
+ }], compact: [{
98
+ type: Input
99
+ }], selectedIdChange: [{
100
+ type: Output
101
+ }], itemActivated: [{
102
+ type: Output
103
+ }] } });
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvZ3JpZC1tZW51L2dyaWQtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2dyaWQtbWVudS9ncmlkLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixFQUNqQixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBRXBHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDOzs7QUFFbkcsTUFBTSxpQkFBaUIsR0FBRztJQUN4QixHQUFHLEVBQUUsQ0FBQztJQUNOLEtBQUssRUFBRSxDQUFDO0lBQ1IsSUFBSSxFQUFFLENBQUM7Q0FDQyxDQUFDO0FBYVgsTUFBTSxPQUFPLGlCQUFpQjtJQUNYLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFcEQsS0FBSyxHQUFzQixFQUFFLENBQUM7SUFDOUIsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUNuQixVQUFVLEdBQWtCLElBQUksQ0FBQztJQUNqQyxPQUFPLEdBQW9CLGlCQUFpQixDQUFDLEtBQUssQ0FBQztJQUNuRCxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBRWYsZ0JBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7SUFDckQsYUFBYSxHQUFH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MUVERlksWUFBWSxnUUFBRSxxQkFBcUIsb0dBQUUsMkJBQTJCOzs0RkFNL0QsaUJBQWlCO2tCQVQ3QixTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUscUJBQXFCLEVBQUUsMkJBQTJCLENBQUMsbUJBRzFELHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLFFBQVE7OEJBS2hDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBJY29uUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2NvbXBvbmVudHMvaWNvbi1yZW5kZXJlci9pY29uLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgdHlwZSB7IFNkY0dyaWRNZW51SXRlbSB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvZ3JpZC1tZW51LnR5cGUnO1xuaW1wb3J0IHsgSW50ZXJhY3RpdmVDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi4vaW50ZXJhY3RpdmUtY29udGVudC9pbnRlcmFjdGl2ZS1jb250ZW50LmRpcmVjdGl2ZSc7XG5cbmNvbnN0IEdSSURfTUVOVV9DT0xVTU5TID0ge1xuICBUV086IDIsXG4gIFRIUkVFOiAzLFxuICBGT1VSOiA0XG59IGFzIGNvbnN0O1xuXG50eXBlIEdyaWRNZW51Q29sdW1ucyA9ICh0eXBlb2YgR1JJRF9NRU5VX0NPTFVNTlMpW2tleW9mIHR5cGVvZiBHUklEX01FTlVfQ09MVU1OU107XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1ncmlkLW1lbnUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJY29uUmVuZGVyZXJDb21wb25lbnQsIEludGVyYWN0aXZlQ29udGVudERpcmVjdGl2ZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZ3JpZC1tZW51LmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIEdyaWRNZW51Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIEBJbnB1dCgpIGl0ZW1zOiBTZGNHcmlkTWVudUl0ZW1bXSA9IFtdO1xuICBASW5wdXQoKSBzZWxlY3RhYmxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNlbGVjdGVkSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBjb2x1bW5zOiBHcmlkTWVudUNvbHVtbnMgPSBHUklEX01FTlVfQ09MVU1OUy5USFJFRTtcbiAgQElucHV0KCkgY29tcGFjdCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBzZWxlY3RlZElkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPigpO1xuICBAT3V0cHV0KCkgaXRlbUFjdGl2YXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2RjR3JpZE1lbnVJdGVtPigpO1xuXG4gIHByb3RlY3RlZCB0cmFja0J5SXRlbUlkKF9pbmRleDogbnVtYmVyLCBpdGVtOiBTZGNHcmlkTWVudUl0ZW0pOiBzdHJpbmcge1xuICAgIHJldHVybiBpdGVtLmlkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzSXRlbURpc2FibGVkKGl0ZW06IFNkY0dyaWRNZW51SXRlbSk6IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2YgaXRlbS5kaXNhYmxlZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIGl0ZW0uZGlzYWJsZWQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gISFpdGVtLmRpc2FibGVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzSXRlbVNlbGVjdGVkKGl0ZW06IFNkY0dyaWRNZW51SXRlbSk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnNlbGVjdGFibGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSWQgPT09IGl0ZW0uaWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhaXRlbS5zZWxlY3RlZDtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXNvbHZlSXRlbVJvbGUoaXRlbTogU2RjR3JpZE1lbnVJdGVtKTogJ2J1dHRvbicgfCAnbGluaycgfCAnb3B0aW9uJyB7XG4gICAgaWYgKHRoaXMuc2VsZWN0YWJsZSkge1xuICAgICAgcmV0dXJuICdvcHRpb24nO1xuICAgIH1cblxuICAgIGlmIChpdGVtLmhyZWYgfHwgaXRlbS5yb3V0ZSkge1xuICAgICAgcmV0dXJuICdsaW5rJztcbiAgICB9XG5cbiAgICByZXR1cm4gJ2J1dHRvbic7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25JdGVtQWN0aXZhdGVkKGl0ZW06IFNkY0dyaWRNZW51SXRlbSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzSXRlbURpc2FibGVkKGl0ZW0pKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VsZWN0YWJsZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZElkQ2hhbmdlLmVtaXQoaXRlbS5pZCk7XG4gICAgfVxuXG4gICAgdGhpcy5pdGVtQWN0aXZhdGVkLmVtaXQoaXRlbSk7XG4gICAgdGhpcy5kaXNwYXRjaEl0ZW1BY3Rpb24oaXRlbSk7XG4gIH1cblxuICBwcml2YXRlIGRpc3BhdGNoSXRlbUFjdGlvbihpdGVtOiBTZGNHcmlkTWVudUl0ZW0pOiB2b2lkIHtcbiAgICBpZiAoaXRlbS5jb21tYW5kKSB7XG4gICAgICBpdGVtLmNvbW1hbmQoaXRlbSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGl0ZW0ucm91dGUpIHtcbiAgICAgIGlmICghdGhpcy5yb3V0ZXIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGl0ZW0ucm91dGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlTmF2aWdhdGlvblJlc3VsdCh0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGl0ZW0ucm91dGUpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaGFuZGxlTmF2aWdhdGlvblJlc3VsdCh0aGlzLnJvdXRlci5uYXZpZ2F0ZShpdGVtLnJvdXRlKSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFpdGVtLmhyZWY/LnRyaW0oKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGdsb2JhbFRoaXMud2luZG93Py5vcGVuKGl0ZW0uaHJlZiwgJ19zZWxmJyk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU5hdmlnYXRpb25SZXN1bHQocmVzdWx0OiBQcm9taXNlPGJvb2xlYW4+IHwgYm9vbGVhbiB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGlmIChyZXN1bHQgJiYgdHlwZW9mIHJlc3VsdCAhPT0gJ2Jvb2xlYW4nKSB7XG4gICAgICByZXN1bHQuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJzZGMtZ3JpZC1tZW51XCJcbiAgW2NsYXNzLnNkYy1ncmlkLW1lbnUtLWNvbXBhY3RdPVwiY29tcGFjdFwiXG4gIFthdHRyLmRhdGEtY29sdW1uc109XCJjb2x1bW5zXCJcbiAgW3N0eWxlLi0tc2RjLWdyaWQtbWVudS1jb2x1bW5zXT1cImNvbHVtbnNcIlxuPlxuICA8ZGl2XG4gICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IHRyYWNrQnk6IHRyYWNrQnlJdGVtSWRcIlxuICAgIGNsYXNzPVwic2RjLWdyaWQtbWVudV9faXRlbVwiXG4gICAgW2NsYXNzLnNkYy1ncmlkLW1lbnVfX2l0ZW0tLXNlbGVjdGVkXT1cImlzSXRlbVNlbGVjdGVkKGl0ZW0pXCJcbiAgICBbY2xhc3Muc2RjLWdyaWQtbWVudV9faXRlbS0tZGlzYWJsZWRdPVwiaXNJdGVtRGlzYWJsZWQoaXRlbSlcIlxuICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiaXNJdGVtRGlzYWJsZWQoaXRlbSkgPyAndHJ1ZScgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cInNlbGVjdGFibGUgPyAoaXNJdGVtU2VsZWN0ZWQoaXRlbSkgPyAndHJ1ZScgOiAnZmFsc2UnKSA6IG51bGxcIlxuICAgIFthdHRyLmRhdGEtaXRlbS1pZF09XCJpdGVtLmlkXCJcbiAgICBzZGNJbnRlcmFjdGl2ZUNvbnRlbnRcbiAgICBbZGlzYWJsZWRdPVwiaXNJdGVtRGlzYWJsZWQoaXRlbSlcIlxuICAgIFtyb2xlXT1cInJlc29sdmVJdGVtUm9sZShpdGVtKVwiXG4gICAgKHNkY0ludGVyYWN0aXZlQ29udGVudCk9XCJvbkl0ZW1BY3RpdmF0ZWQoaXRlbSlcIlxuICA+XG4gICAgPHNwYW4gKm5nSWY9XCJpdGVtLmljb25cIiBjbGFzcz1cInNkYy1ncmlkLW1lbnVfX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgIDxzZGMtaWNvbi1yZW5kZXJlciBbaWNvbl09XCJpdGVtLmljb25cIiBbaWNvblR5cGVdPVwiaXRlbS5pY29uVHlwZVwiIFtzaXplXT1cImNvbXBhY3QgPyAyMCA6IDI0XCI+PC9zZGMtaWNvbi1yZW5kZXJlcj5cbiAgICA8L3NwYW4+XG5cbiAgICA8c3BhbiBjbGFzcz1cInNkYy1ncmlkLW1lbnVfX2NvbnRlbnRcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwic2RjLWdyaWQtbWVudV9fbGFiZWxcIj57eyBpdGVtLmxhYmVsIH19PC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJzZGMtZ3JpZC1tZW51X19kZXNjcmlwdGlvblwiPnt7IGl0ZW0uZGVzY3JpcHRpb24gfX08L3NwYW4+XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -2,7 +2,7 @@ import { CommonModule } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
3
3
  import { TranslateModule } from '@ngx-translate/core';
4
4
  import { SQL_HELPER } from '../../core/helpers/sql-helper';
5
- import { DEFAULT_HYPERLINK_APPEARANCE, DEFAULT_HYPERLINK_ARIA_LABEL, DEFAULT_HYPERLINK_DISABLED, DEFAULT_HYPERLINK_DOMAIN_FILTER_TOKEN, DEFAULT_HYPERLINK_HOVER_STYLE, DEFAULT_HYPERLINK_HREF, DEFAULT_HYPERLINK_ICON, DEFAULT_HYPERLINK_ICON_POSITION, DEFAULT_HYPERLINK_REL, DEFAULT_HYPERLINK_TARGET, DEFAULT_HYPERLINK_TEXT, DEFAULT_HYPERLINK_UNDERLINE, HYPERLINK_COLOR_VAR, HYPERLINK_REL_NOOPENER } from '../../core/constants/hyperlink.const';
5
+ import { DEFAULT_HYPERLINK_APPEARANCE, DEFAULT_HYPERLINK_ARIA_LABEL, DEFAULT_HYPERLINK_DISABLED, DEFAULT_HYPERLINK_DOMAIN_FILTER_TOKEN, DEFAULT_HYPERLINK_HOVER_STYLE, DEFAULT_HYPERLINK_HREF, DEFAULT_HYPERLINK_ICON, DEFAULT_HYPERLINK_ICON_POSITION, DEFAULT_HYPERLINK_REQUIRED, DEFAULT_HYPERLINK_REL, DEFAULT_HYPERLINK_TARGET, DEFAULT_HYPERLINK_TEXT, DEFAULT_HYPERLINK_UNDERLINE, HYPERLINK_COLOR_VAR, HYPERLINK_REL_NOOPENER } from '../../core/constants/hyperlink.const';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/common";
8
8
  import * as i2 from "@ngx-translate/core";
@@ -17,6 +17,7 @@ export class HyperlinkComponent {
17
17
  target = DEFAULT_HYPERLINK_TARGET;
18
18
  rel = DEFAULT_HYPERLINK_REL;
19
19
  disabled = DEFAULT_HYPERLINK_DISABLED;
20
+ required = DEFAULT_HYPERLINK_REQUIRED;
20
21
  underline = DEFAULT_HYPERLINK_UNDERLINE;
21
22
  appearance = DEFAULT_HYPERLINK_APPEARANCE;
22
23
  hoverStyle = DEFAULT_HYPERLINK_HOVER_STYLE;
@@ -92,11 +93,11 @@ export class HyperlinkComponent {
92
93
  return typeof value === 'string' && value.trim().length > 0;
93
94
  }
94
95
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HyperlinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
95
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: HyperlinkComponent, isStandalone: true, selector: "sdc-hyperlink", inputs: { href: "href", text: "text", ariaLabel: "ariaLabel", domainFilterToken: "domainFilterToken", icon: "icon", iconPosition: "iconPosition", color: "color", target: "target", rel: "rel", disabled: "disabled", underline: "underline", appearance: "appearance", hoverStyle: "hoverStyle" }, outputs: { clicked: "clicked", domainFilterClick: "domainFilterClick" }, ngImport: i0, template: "@if (isAnchor) {\n <a\n class=\"hyperlink\"\n [ngClass]=\"rootClasses\"\n [ngStyle]=\"customStyles\"\n [attr.href]=\"resolvedHref\"\n [attr.target]=\"target\"\n [attr.rel]=\"computedRel\"\n [attr.aria-label]=\"resolvedAriaLabel | translate\"\n [attr.aria-disabled]=\"disabled\"\n [attr.tabindex]=\"disabled ? -1 : null\"\n (click)=\"handleInteraction($event)\"\n >\n @if (iconPosition === 'left' && showIcon) {\n <i [class]=\"iconClass\" class=\"hyperlink__icon\" aria-hidden=\"true\"></i>\n }\n\n <span class=\"hyperlink__text\">{{ resolvedText | translate }}</span>\n\n @if (iconPosition === 'right' && showIcon) {\n <i [class]=\"iconClass\" class=\"hyperlink__icon\" aria-hidden=\"true\"></i>\n }\n </a>\n} @else {\n <button\n type=\"button\"\n class=\"hyperlink\"\n [ngClass]=\"rootClasses\"\n [ngStyle]=\"customStyles\"\n [attr.aria-label]=\"resolvedAriaLabel | translate\"\n [disabled]=\"disabled\"\n (click)=\"handleInteraction($event)\"\n >\n @if (iconPosition === 'left' && showIcon) {\n <i [class]=\"iconClass\" class=\"hyperlink__icon\" aria-hidden=\"true\"></i>\n }\n\n <span class=\"hyperlink__text\">{{ resolvedText | translate }}</span>\n\n @if (iconPosition === 'right' && showIcon) {\n <i [class]=\"iconClass\" class=\"hyperlink__icon\" aria-hidden=\"true\"></i>\n }\n </button>\n}", styles: [".hyperlink{--sdc-hyperlink-link-color: var(--sdc-hyperlink-current-color, var(--sdc-link-color, var(--s-color-primary-600, #2b7de9)));--sdc-hyperlink-neutral-color: var(--sdc-hyperlink-current-color, var(--s-color-neutral-900, #1f2937));--sdc-hyperlink-hover-button-bg-link: var(--s-color-primary-50, #eef6ff);--sdc-hyperlink-hover-button-bg-neutral: var(--s-color-neutral-100, #f3f4f6);display:inline-flex;align-items:center;justify-content:center;gap:.375rem;min-width:24px;min-height:24px;padding:0;border:none;background:transparent;font:inherit;line-height:1.25rem;text-decoration:none;cursor:pointer;border-radius:.375rem;color:var(--sdc-hyperlink-link-color);transition:background-color .2s ease,color .2s ease,box-shadow .2s ease,opacity .2s ease}.hyperlink--button-element{appearance:none}.hyperlink--neutral{color:var(--sdc-hyperlink-neutral-color)}.hyperlink__icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:currentColor;font-size:1em;line-height:1}.hyperlink__text{line-height:1;text-decoration:none;text-decoration-color:currentColor;text-underline-offset:.18em;text-decoration-thickness:1px}.hyperlink--underline .hyperlink__text{text-decoration-line:underline}.hyperlink--hover-underline:hover .hyperlink__text,.hyperlink--hover-underline:focus-visible .hyperlink__text{text-decoration-line:underline}.hyperlink--hover-button{padding:.375rem .625rem;border-radius:9999px}.hyperlink--hover-button:hover,.hyperlink--hover-button:focus-visible{background:var(--sdc-hyperlink-hover-button-bg-link);text-decoration:none}.hyperlink--hover-button.hyperlink--neutral:hover,.hyperlink--hover-button.hyperlink--neutral:focus-visible{background:var(--sdc-hyperlink-hover-button-bg-neutral)}.hyperlink--hover-none:hover .hyperlink__text,.hyperlink--hover-none:focus-visible .hyperlink__text{text-decoration:none}.hyperlink:visited{color:inherit}.hyperlink:focus-visible{outline:2px solid currentColor;outline-offset:2px}.hyperlink--disabled,.hyperlink:disabled{opacity:.56;cursor:not-allowed;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
96
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: HyperlinkComponent, isStandalone: true, selector: "sdc-hyperlink", inputs: { href: "href", text: "text", ariaLabel: "ariaLabel", domainFilterToken: "domainFilterToken", icon: "icon", iconPosition: "iconPosition", color: "color", target: "target", rel: "rel", disabled: "disabled", required: "required", underline: "underline", appearance: "appearance", hoverStyle: "hoverStyle" }, outputs: { clicked: "clicked", domainFilterClick: "domainFilterClick" }, ngImport: i0, template: "@if (isAnchor) {\n <a\n class=\"hyperlink\"\n [ngClass]=\"rootClasses\"\n [ngStyle]=\"customStyles\"\n [attr.href]=\"resolvedHref\"\n [attr.target]=\"target\"\n [attr.rel]=\"computedRel\"\n [attr.aria-label]=\"resolvedAriaLabel | translate\"\n [attr.aria-disabled]=\"disabled\"\n [attr.tabindex]=\"disabled ? -1 : null\"\n (click)=\"handleInteraction($event)\"\n >\n @if (iconPosition === 'left' && showIcon) {\n <i [class]=\"iconClass\" class=\"hyperlink__icon\" aria-hidden=\"true\"></i>\n }\n\n <span class=\"hyperlink__text\">\n {{ resolvedText | translate }}\n @if (required) {\n <span class=\"required-field hyperlink__required\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">{{ 'platform.datacore.accessibility.required_field' | translate }}</span>\n }\n </span>\n\n @if (iconPosition === 'right' && showIcon) {\n <i [class]=\"iconClass\" class=\"hyperlink__icon\" aria-hidden=\"true\"></i>\n }\n </a>\n} @else {\n <button\n type=\"button\"\n class=\"hyperlink\"\n [ngClass]=\"rootClasses\"\n [ngStyle]=\"customStyles\"\n [attr.aria-label]=\"resolvedAriaLabel | translate\"\n [disabled]=\"disabled\"\n (click)=\"handleInteraction($event)\"\n >\n @if (iconPosition === 'left' && showIcon) {\n <i [class]=\"iconClass\" class=\"hyperlink__icon\" aria-hidden=\"true\"></i>\n }\n\n <span class=\"hyperlink__text\">\n {{ resolvedText | translate }}\n @if (required) {\n <span class=\"required-field hyperlink__required\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">{{ 'platform.datacore.accessibility.required_field' | translate }}</span>\n }\n </span>\n\n @if (iconPosition === 'right' && showIcon) {\n <i [class]=\"iconClass\" class=\"hyperlink__icon\" aria-hidden=\"true\"></i>\n }\n </button>\n}", styles: [".hyperlink{--sdc-hyperlink-link-color: var(--sdc-hyperlink-current-color, var(--sdc-link-color, var(--s-color-primary-600, #2b7de9)));--sdc-hyperlink-neutral-color: var(--sdc-hyperlink-current-color, var(--s-color-neutral-900, #1f2937));--sdc-hyperlink-hover-button-bg-link: var(--s-color-primary-50, #eef6ff);--sdc-hyperlink-hover-button-bg-neutral: var(--s-color-neutral-100, #f3f4f6);display:inline-flex;align-items:center;justify-content:center;gap:.375rem;min-width:24px;min-height:24px;padding:0;border:none;background:transparent;font:inherit;line-height:1.25rem;text-decoration:none;cursor:pointer;border-radius:.375rem;color:var(--sdc-hyperlink-link-color);transition:background-color .2s ease,color .2s ease,box-shadow .2s ease,opacity .2s ease}.hyperlink--button-element{appearance:none}.hyperlink--neutral{color:var(--sdc-hyperlink-neutral-color)}.hyperlink__icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:currentColor;font-size:1em;line-height:1}.hyperlink__text{line-height:1;text-decoration:none;text-decoration-color:currentColor;text-underline-offset:.18em;text-decoration-thickness:1px}.hyperlink__required{margin-left:.15rem;display:inline-block;text-decoration:none!important}.hyperlink--underline .hyperlink__text{text-decoration-line:underline}.hyperlink--hover-underline:hover .hyperlink__text,.hyperlink--hover-underline:focus-visible .hyperlink__text{text-decoration-line:underline}.hyperlink--hover-button{padding:.375rem .625rem;border-radius:9999px}.hyperlink--hover-button:hover,.hyperlink--hover-button:focus-visible{background:var(--sdc-hyperlink-hover-button-bg-link);text-decoration:none}.hyperlink--hover-button.hyperlink--neutral:hover,.hyperlink--hover-button.hyperlink--neutral:focus-visible{background:var(--sdc-hyperlink-hover-button-bg-neutral)}.hyperlink--hover-none:hover .hyperlink__text,.hyperlink--hover-none:focus-visible .hyperlink__text{text-decoration:none}.hyperlink:visited{color:inherit}.hyperlink:focus-visible{outline:2px solid currentColor;outline-offset:2px}.hyperlink--disabled,.hyperlink:disabled{opacity:.56;cursor:not-allowed;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
96
97
  }
97
98
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HyperlinkComponent, decorators: [{
98
99
  type: Component,
99
- args: [{ imports: [CommonModule, TranslateModule], standalone: true, selector: 'sdc-hyperlink', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "@if (isAnchor) {\n <a\n class=\"hyperlink\"\n [ngClass]=\"rootClasses\"\n [ngStyle]=\"customStyles\"\n [attr.href]=\"resolvedHref\"\n [attr.target]=\"target\"\n [attr.rel]=\"computedRel\"\n [attr.aria-label]=\"resolvedAriaLabel | translate\"\n [attr.aria-disabled]=\"disabled\"\n [attr.tabindex]=\"disabled ? -1 : null\"\n (click)=\"handleInteraction($event)\"\n >\n @if (iconPosition === 'left' && showIcon) {\n <i [class]=\"iconClass\" class=\"hyperlink__icon\" aria-hidden=\"true\"></i>\n }\n\n <span class=\"hyperlink__text\">{{ resolvedText | translate }}</span>\n\n @if (iconPosition === 'right' && showIcon) {\n <i [class]=\"iconClass\" class=\"hyperlink__icon\" aria-hidden=\"true\"></i>\n }\n </a>\n} @else {\n <button\n type=\"button\"\n class=\"hyperlink\"\n [ngClass]=\"rootClasses\"\n [ngStyle]=\"customStyles\"\n [attr.aria-label]=\"resolvedAriaLabel | translate\"\n [disabled]=\"disabled\"\n (click)=\"handleInteraction($event)\"\n >\n @if (iconPosition === 'left' && showIcon) {\n <i [class]=\"iconClass\" class=\"hyperlink__icon\" aria-hidden=\"true\"></i>\n }\n\n <span class=\"hyperlink__text\">{{ resolvedText | translate }}</span>\n\n @if (iconPosition === 'right' && showIcon) {\n <i [class]=\"iconClass\" class=\"hyperlink__icon\" aria-hidden=\"true\"></i>\n }\n </button>\n}", styles: [".hyperlink{--sdc-hyperlink-link-color: var(--sdc-hyperlink-current-color, var(--sdc-link-color, var(--s-color-primary-600, #2b7de9)));--sdc-hyperlink-neutral-color: var(--sdc-hyperlink-current-color, var(--s-color-neutral-900, #1f2937));--sdc-hyperlink-hover-button-bg-link: var(--s-color-primary-50, #eef6ff);--sdc-hyperlink-hover-button-bg-neutral: var(--s-color-neutral-100, #f3f4f6);display:inline-flex;align-items:center;justify-content:center;gap:.375rem;min-width:24px;min-height:24px;padding:0;border:none;background:transparent;font:inherit;line-height:1.25rem;text-decoration:none;cursor:pointer;border-radius:.375rem;color:var(--sdc-hyperlink-link-color);transition:background-color .2s ease,color .2s ease,box-shadow .2s ease,opacity .2s ease}.hyperlink--button-element{appearance:none}.hyperlink--neutral{color:var(--sdc-hyperlink-neutral-color)}.hyperlink__icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:currentColor;font-size:1em;line-height:1}.hyperlink__text{line-height:1;text-decoration:none;text-decoration-color:currentColor;text-underline-offset:.18em;text-decoration-thickness:1px}.hyperlink--underline .hyperlink__text{text-decoration-line:underline}.hyperlink--hover-underline:hover .hyperlink__text,.hyperlink--hover-underline:focus-visible .hyperlink__text{text-decoration-line:underline}.hyperlink--hover-button{padding:.375rem .625rem;border-radius:9999px}.hyperlink--hover-button:hover,.hyperlink--hover-button:focus-visible{background:var(--sdc-hyperlink-hover-button-bg-link);text-decoration:none}.hyperlink--hover-button.hyperlink--neutral:hover,.hyperlink--hover-button.hyperlink--neutral:focus-visible{background:var(--sdc-hyperlink-hover-button-bg-neutral)}.hyperlink--hover-none:hover .hyperlink__text,.hyperlink--hover-none:focus-visible .hyperlink__text{text-decoration:none}.hyperlink:visited{color:inherit}.hyperlink:focus-visible{outline:2px solid currentColor;outline-offset:2px}.hyperlink--disabled,.hyperlink:disabled{opacity:.56;cursor:not-allowed;pointer-events:none}\n"] }]
100
+ args: [{ imports: [CommonModule, TranslateModule], standalone: true, selector: 'sdc-hyperlink', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "@if (isAnchor) {\n <a\n class=\"hyperlink\"\n [ngClass]=\"rootClasses\"\n [ngStyle]=\"customStyles\"\n [attr.href]=\"resolvedHref\"\n [attr.target]=\"target\"\n [attr.rel]=\"computedRel\"\n [attr.aria-label]=\"resolvedAriaLabel | translate\"\n [attr.aria-disabled]=\"disabled\"\n [attr.tabindex]=\"disabled ? -1 : null\"\n (click)=\"handleInteraction($event)\"\n >\n @if (iconPosition === 'left' && showIcon) {\n <i [class]=\"iconClass\" class=\"hyperlink__icon\" aria-hidden=\"true\"></i>\n }\n\n <span class=\"hyperlink__text\">\n {{ resolvedText | translate }}\n @if (required) {\n <span class=\"required-field hyperlink__required\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">{{ 'platform.datacore.accessibility.required_field' | translate }}</span>\n }\n </span>\n\n @if (iconPosition === 'right' && showIcon) {\n <i [class]=\"iconClass\" class=\"hyperlink__icon\" aria-hidden=\"true\"></i>\n }\n </a>\n} @else {\n <button\n type=\"button\"\n class=\"hyperlink\"\n [ngClass]=\"rootClasses\"\n [ngStyle]=\"customStyles\"\n [attr.aria-label]=\"resolvedAriaLabel | translate\"\n [disabled]=\"disabled\"\n (click)=\"handleInteraction($event)\"\n >\n @if (iconPosition === 'left' && showIcon) {\n <i [class]=\"iconClass\" class=\"hyperlink__icon\" aria-hidden=\"true\"></i>\n }\n\n <span class=\"hyperlink__text\">\n {{ resolvedText | translate }}\n @if (required) {\n <span class=\"required-field hyperlink__required\" aria-hidden=\"true\">*</span>\n <span class=\"sr-only\">{{ 'platform.datacore.accessibility.required_field' | translate }}</span>\n }\n </span>\n\n @if (iconPosition === 'right' && showIcon) {\n <i [class]=\"iconClass\" class=\"hyperlink__icon\" aria-hidden=\"true\"></i>\n }\n </button>\n}", styles: [".hyperlink{--sdc-hyperlink-link-color: var(--sdc-hyperlink-current-color, var(--sdc-link-color, var(--s-color-primary-600, #2b7de9)));--sdc-hyperlink-neutral-color: var(--sdc-hyperlink-current-color, var(--s-color-neutral-900, #1f2937));--sdc-hyperlink-hover-button-bg-link: var(--s-color-primary-50, #eef6ff);--sdc-hyperlink-hover-button-bg-neutral: var(--s-color-neutral-100, #f3f4f6);display:inline-flex;align-items:center;justify-content:center;gap:.375rem;min-width:24px;min-height:24px;padding:0;border:none;background:transparent;font:inherit;line-height:1.25rem;text-decoration:none;cursor:pointer;border-radius:.375rem;color:var(--sdc-hyperlink-link-color);transition:background-color .2s ease,color .2s ease,box-shadow .2s ease,opacity .2s ease}.hyperlink--button-element{appearance:none}.hyperlink--neutral{color:var(--sdc-hyperlink-neutral-color)}.hyperlink__icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:currentColor;font-size:1em;line-height:1}.hyperlink__text{line-height:1;text-decoration:none;text-decoration-color:currentColor;text-underline-offset:.18em;text-decoration-thickness:1px}.hyperlink__required{margin-left:.15rem;display:inline-block;text-decoration:none!important}.hyperlink--underline .hyperlink__text{text-decoration-line:underline}.hyperlink--hover-underline:hover .hyperlink__text,.hyperlink--hover-underline:focus-visible .hyperlink__text{text-decoration-line:underline}.hyperlink--hover-button{padding:.375rem .625rem;border-radius:9999px}.hyperlink--hover-button:hover,.hyperlink--hover-button:focus-visible{background:var(--sdc-hyperlink-hover-button-bg-link);text-decoration:none}.hyperlink--hover-button.hyperlink--neutral:hover,.hyperlink--hover-button.hyperlink--neutral:focus-visible{background:var(--sdc-hyperlink-hover-button-bg-neutral)}.hyperlink--hover-none:hover .hyperlink__text,.hyperlink--hover-none:focus-visible .hyperlink__text{text-decoration:none}.hyperlink:visited{color:inherit}.hyperlink:focus-visible{outline:2px solid currentColor;outline-offset:2px}.hyperlink--disabled,.hyperlink:disabled{opacity:.56;cursor:not-allowed;pointer-events:none}\n"] }]
100
101
  }], propDecorators: { href: [{
101
102
  type: Input
102
103
  }], text: [{
@@ -117,6 +118,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
117
118
  type: Input
118
119
  }], disabled: [{
119
120
  type: Input
121
+ }], required: [{
122
+ type: Input
120
123
  }], underline: [{
121
124
  type: Input
122
125
  }], appearance: [{
@@ -128,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
128
131
  }], domainFilterClick: [{
129
132
  type: Output
130
133
  }] } });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlwZXJsaW5rLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvaHlwZXJsaW5rL2h5cGVybGluay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2h5cGVybGluay9oeXBlcmxpbmsuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLDRCQUE0QixFQUM1QiwwQkFBMEIsRUFDMUIscUNBQXFDLEVBQ3JDLDZCQUE2QixFQUM3QixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLCtCQUErQixFQUMvQixxQkFBcUIsRUFDckIsd0JBQXdCLEVBQ3hCLHNCQUFzQixFQUN0QiwyQkFBMkIsRUFDM0IsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUN2QixNQUFNLHNDQUFzQyxDQUFDOzs7O0FBbUI5QyxNQUFNLE9BQU8sa0JBQWtCO0lBQ3BCLElBQUksR0FBbUIsc0JBQXNCLENBQUM7SUFDOUMsSUFBSSxHQUFtQixzQkFBc0IsQ0FBQztJQUM5QyxTQUFTLEdBQW1CLDRCQUE0QixDQUFDO0lBQ3pELGlCQUFpQixHQUFtQixxQ0FBcUMsQ0FBQztJQUMxRSxJQUFJLEdBQW1CLHNCQUFzQixDQUFDO0lBQzlDLFlBQVksR0FBMEIsK0JBQStCLENBQUM7SUFDdEUsS0FBSyxDQUFVO0lBQ2YsTUFBTSxH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QUUsZUFBZSxDQUFDLGNBQzVCLElBQUksWUFDTixlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLFFBQVE7OEJBR2hDLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHsgU1FMX0hFTFBFUiB9IGZyb20gJy4uLy4uL2NvcmUvaGVscGVycy9zcWwtaGVscGVyJztcbmltcG9ydCB7XG4gIERFRkFVTFRfSFlQRVJMSU5LX0FQUEVBUkFOQ0UsXG4gIERFRkFVTFRfSFlQRVJMSU5LX0FSSUFfTEFCRUwsXG4gIERFRkFVTFRfSFlQRVJMSU5LX0RJU0FCTEVELFxuICBERUZBVUxUX0hZUEVSTElOS19ET01BSU5fRklMVEVSX1RPS0VOLFxuICBERUZBVUxUX0hZUEVSTElOS19IT1ZFUl9TVFlMRSxcbiAgREVGQVVMVF9IWVBFUkxJTktfSFJFRixcbiAgREVGQVVMVF9IWVBFUkxJTktfSUNPTixcbiAgREVGQVVMVF9IWVBFUkxJTktfSUNPTl9QT1NJVElPTixcbiAgREVGQVVMVF9IWVBFUkxJTktfUkVMLFxuICBERUZBVUxUX0hZUEVSTElOS19UQVJHRVQsXG4gIERFRkFVTFRfSFlQRVJMSU5LX1RFWFQsXG4gIERFRkFVTFRfSFlQRVJMSU5LX1VOREVSTElORSxcbiAgSFlQRVJMSU5LX0NPTE9SX1ZBUixcbiAgSFlQRVJMSU5LX1JFTF9OT09QRU5FUlxufSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9oeXBlcmxpbmsuY29uc3QnO1xuaW1wb3J0IHR5cGUge1xuICBIeXBlcmxpbmtBcHBlYXJhbmNlLFxuICBIeXBlcmxpbmtIb3ZlclN0eWxlLFxuICBIeXBlcmxpbmtJY29uUG9zaXRpb24sXG4gIEh5cGVybGlua1RhcmdldCxcbiAgSHlwZXJsaW5rVW5kZXJsaW5lLFxuICBIeXBlcmxpbmtWYWx1ZVxufSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2h5cGVybGluay50eXBlJztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnc2RjLWh5cGVybGluaycsXG4gIHRlbXBsYXRlVXJsOiAnLi9oeXBlcmxpbmsuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vaHlwZXJsaW5rLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIEh5cGVybGlua0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGhyZWY6IEh5cGVybGlua1ZhbHVlID0gREVGQVVMVF9IWVBFUkxJTktfSFJFRjtcbiAgQElucHV0KCkgdGV4dDogSHlwZXJsaW5rVmFsdWUgPSBERUZBVUxUX0hZUEVSTElOS19URVhUO1xuICBASW5wdXQoKSBhcmlhTGFiZWw6IEh5cGVybGlua1ZhbHVlID0gREVGQVVMVF9IWVBFUkxJTktfQVJJQV9MQUJFTDtcbiAgQElucHV0KCkgZG9tYWluRmlsdGVyVG9rZW46IEh5cGVybGlua1ZhbHVlID0gREVGQVVMVF9IWVBFUkxJTktfRE9NQUlOX0ZJTFRFUl9UT0tFTjtcbiAgQElucHV0KCkgaWNvbjogSHlwZXJsaW5rVmFsdWUgPSBERUZBVUxUX0hZUEVSTElOS19JQ09OO1xuICBASW5wdXQoKSBpY29uUG9zaXRpb246IEh5cGVybGlua0ljb25Qb3NpdGlvbiA9IERFRkFVTFRfSFlQRVJMSU5LX0lDT05fUE9TSVRJT047XG4gIEBJbnB1dCgpIGNvbG9yPzogc3RyaW5nO1xuICBASW5wdXQoKSB0YXJnZXQ6IEh5cGVybGlua1RhcmdldCA9IERFRkFVTFRfSFlQRVJMSU5LX1RBUkdFVDtcbiAgQElucHV0KCkgcmVsID0gREVGQVVMVF9IWVBFUkxJTktfUkVMO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IERFRkFVTFRfSFlQRVJMSU5LX0RJU0FCTEVEO1xuICBASW5wdXQoKSB1bmRlcmxpbmU6IEh5cGVybGlua1VuZGVybGluZSA9IERFRkFVTFRfSFlQRVJMSU5LX1VOREVSTElORTtcbiAgQElucHV0KCkgYXBwZWFyYW5jZTogSHlwZXJsaW5rQXBwZWFyYW5jZSA9IERFRkFVTFRfSFlQRVJMSU5LX0FQUEVBUkFOQ0U7XG4gIEBJbnB1dCgpIGhvdmVyU3R5bGU6IEh5cGVybGlua0hvdmVyU3R5bGUgPSBERUZBVUxUX0hZUEVSTElOS19IT1ZFUl9TVFlMRTtcblxuICBAT3V0cHV0KCkgY2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBkb21haW5GaWx0ZXJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGdldCBpc0FuY2hvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXNDb250ZW50KHRoaXMuaHJlZik7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRIcmVmKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmhhc0NvbnRlbnQodGhpcy5ocmVmKSA/ICh0aGlzLmhyZWYgYXMgc3RyaW5nKS50cmltKCkgOiBudWxsO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkVGV4dCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmhhc0NvbnRlbnQodGhpcy50ZXh0KSkge1xuICAgICAgcmV0dXJuICh0aGlzLnRleHQgYXMgc3RyaW5nKS50cmltKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGFzQ29udGVudCh0aGlzLmRvbWFpbkZpbHRlclRva2VuKSkge1xuICAgICAgcmV0dXJuIFNRTF9IRUxQRVIuZm9ybWF0RG9tYWluRmlsdGVyVG9rZW4oKHRoaXMuZG9tYWluRmlsdGVyVG9rZW4gYXMgc3RyaW5nKS50cmltKCkpO1xuICAgIH1cblxuICAgIHJldHVybiBERUZBVUxUX0hZUEVSTElOS19URVhUO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaGFzQ29udGVudCh0aGlzLmFyaWFMYWJlbCkpIHtcbiAgICAgIHJldHVybiAodGhpcy5hcmlhTGFiZWwgYXMgc3RyaW5nKS50cmltKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGFzQ29udGVudCh0aGlzLnRleHQpKSB7XG4gICAgICByZXR1cm4gKHRoaXMudGV4dCBhcyBzdHJpbmcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oYXNDb250ZW50KHRoaXMuZG9tYWluRmlsdGVyVG9rZW4pKSB7XG4gICAgICByZXR1cm4gU1FMX0hFTFBFUi5mb3JtYXREb21haW5GaWx0ZXJUb2tlbigodGhpcy5kb21haW5GaWx0ZXJUb2tlbiBhcyBzdHJpbmcpLnRyaW0oKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIERFRkFVTFRfSFlQRVJMSU5LX0FSSUFfTEFCRUw7XG4gIH1cblxuICBnZXQgc2hvd0ljb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzQ29udGVudCh0aGlzLmljb24pO1xuICB9XG5cbiAgZ2V0IGljb25DbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNob3dJY29uID8gKCh0aGlzLmljb24gYXMgc3RyaW5nKS50cmltKCkgfHwgJycpIDogJyc7XG4gIH1cblxuICBnZXQgY29tcHV0ZWRSZWwoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMucmVsLnRyaW0oKSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVsLnRyaW0oKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy50YXJnZXQgPT09ICdfYmxhbmsnID8gSFlQRVJMSU5LX1JFTF9OT09QRU5FUiA6IG51bGw7XG4gIH1cblxuICBnZXQgcm9vdENsYXNzZXMoKTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4ge1xuICAgIHJldHVybiB7XG4gICAgICAnaHlwZXJsaW5rLS1uZXV0cmFsJzogdGhpcy5hcHBlYXJhbmNlID09PSAnbmV1dHJhbCcsXG4gICAgICAnaHlwZXJsaW5rLS11bmRlcmxpbmUnOiB0aGlzLnVuZGVybGluZSA9PT0gJ2Fsd2F5cycsXG4gICAgICAnaHlwZXJsaW5rLS1ob3Zlci11bmRlcmxpbmUnOiB0aGlzLmhvdmVyU3R5bGUgPT09ICd1bmRlcmxpbmUnICYmIHRoaXMudW5kZXJsaW5lID09PSAnbm9uZScsXG4gICAgICAnaHlwZXJsaW5rLS1ob3Zlci1idXR0b24nOiB0aGlzLmhvdmVyU3R5bGUgPT09ICdidXR0b24nLFxuICAgICAgJ2h5cGVybGluay0taG92ZXItbm9uZSc6IHRoaXMuaG92ZXJTdHlsZSA9PT0gJ25vbmUnLFxuICAgICAgJ2h5cGVybGluay0tZGlzYWJsZWQnOiB0aGlzLmRpc2FibGVkLFxuICAgICAgJ2h5cGVybGluay0tYnV0dG9uLWVsZW1lbnQnOiAhdGhpcy5pc0FuY2hvclxuICAgIH07XG4gIH1cblxuICBnZXQgY3VzdG9tU3R5bGVzKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4ge1xuICAgICAgW0hZUEVSTElOS19DT0xPUl9WQVJdOiB0aGlzLmNvbG9yPy50cmltKCkgfHwgbnVsbFxuICAgIH07XG4gIH1cblxuICBoYW5kbGVJbnRlcmFjdGlvbihldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY2xpY2tlZC5lbWl0KGV2ZW50KTtcblxuICAgIGlmICh0aGlzLmhhc0NvbnRlbnQodGhpcy5kb21haW5GaWx0ZXJUb2tlbikpIHtcbiAgICAgIHRoaXMuZG9tYWluRmlsdGVyQ2xpY2suZW1pdCgodGhpcy5kb21haW5GaWx0ZXJUb2tlbiBhcyBzdHJpbmcpLnRyaW0oKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYXNDb250ZW50KHZhbHVlOiBIeXBlcmxpbmtWYWx1ZSk6IHZhbHVlIGlzIHN0cmluZyB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUudHJpbSgpLmxlbmd0aCA+IDA7XG4gIH1cbn0iLCJAaWYgKGlzQW5jaG9yKSB7XG4gIDxhXG4gICAgY2xhc3M9XCJoeXBlcmxpbmtcIlxuICAgIFtuZ0NsYXNzXT1cInJvb3RDbGFzc2VzXCJcbiAgICBbbmdTdHlsZV09XCJjdXN0b21TdHlsZXNcIlxuICAgIFthdHRyLmhyZWZdPVwicmVzb2x2ZWRIcmVmXCJcbiAgICBbYXR0ci50YXJnZXRdPVwidGFyZ2V0XCJcbiAgICBbYXR0ci5yZWxdPVwiY29tcHV0ZWRSZWxcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVzb2x2ZWRBcmlhTGFiZWwgfCB0cmFuc2xhdGVcIlxuICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFthdHRyLnRhYmluZGV4XT1cImRpc2FibGVkID8gLTEgOiBudWxsXCJcbiAgICAoY2xpY2spPVwiaGFuZGxlSW50ZXJhY3Rpb24oJGV2ZW50KVwiXG4gID5cbiAgICBAaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnICYmIHNob3dJY29uKSB7XG4gICAgICA8aSBbY2xhc3NdPVwiaWNvbkNsYXNzXCIgY2xhc3M9XCJoeXBlcmxpbmtfX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgfVxuXG4gICAgPHNwYW4gY2xhc3M9XCJoeXBlcmxpbmtfX3RleHRcIj57eyByZXNvbHZlZFRleHQgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG5cbiAgICBAaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0JyAmJiBzaG93SWNvbikge1xuICAgICAgPGkgW2NsYXNzXT1cImljb25DbGFzc1wiIGNsYXNzPVwiaHlwZXJsaW5rX19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIH1cbiAgPC9hPlxufSBAZWxzZSB7XG4gIDxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBjbGFzcz1cImh5cGVybGlua1wiXG4gICAgW25nQ2xhc3NdPVwicm9vdENsYXNzZXNcIlxuICAgIFtuZ1N0eWxlXT1cImN1c3RvbVN0eWxlc1wiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXNvbHZlZEFyaWFMYWJlbCB8IHRyYW5zbGF0ZVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAoY2xpY2spPVwiaGFuZGxlSW50ZXJhY3Rpb24oJGV2ZW50KVwiXG4gID5cbiAgICBAaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnICYmIHNob3dJY29uKSB7XG4gICAgICA8aSBbY2xhc3NdPVwiaWNvbkNsYXNzXCIgY2xhc3M9XCJoeXBlcmxpbmtfX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgfVxuXG4gICAgPHNwYW4gY2xhc3M9XCJoeXBlcmxpbmtfX3RleHRcIj57eyByZXNvbHZlZFRleHQgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG5cbiAgICBAaWYgKGljb25Qb3NpdGlvbiA9PT0gJ3JpZ2h0JyAmJiBzaG93SWNvbikge1xuICAgICAgPGkgW2NsYXNzXT1cImljb25DbGFzc1wiIGNsYXNzPVwiaHlwZXJsaW5rX19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIH1cbiAgPC9idXR0b24+XG59Il19
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlwZXJsaW5rLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvaHlwZXJsaW5rL2h5cGVybGluay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2h5cGVybGluay9oeXBlcmxpbmsuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLDRCQUE0QixFQUM1QiwwQkFBMEIsRUFDMUIscUNBQXFDLEVBQ3JDLDZCQUE2QixFQUM3QixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLCtCQUErQixFQUMvQiwwQkFBMEIsRUFDMUIscUJBQXFCLEVBQ3JCLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdEIsMkJBQTJCLEVBQzNCLG1CQUFtQixFQUNuQixzQkFBc0IsRUFDdkIsTUFBTSxzQ0FBc0MsQ0FBQzs7OztBQW1COUMsTUFBTSxPQUFPLGtCQUFrQjtJQUNwQixJQUFJLEdBQW1CLHNCQUFzQixDQUFDO0lBQzlDLElBQUksR0FBbUIsc0JBQXNCLENBQUM7SUFDOUMsU0FBUyxHQUFtQiw0QkFBNEIsQ0FBQztJQUN6RCxpQkFBaUIsR0FBbUIscUNBQXFDLENBQUM7SUFDMUUsSUFBSSxHQUFtQixzQkFBc0IsQ0FBQztJQUM5QyxZQUFZLEdBQTBCLCtCQUErQixDQUFDO0lBQ3RFLEtBQUssQ0FB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QVE1QixrQkFBa0I7a0JBVDlCLFNBQVM7OEJBQ0MsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLGNBQzVCLElBQUksWUFDTixlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLFFBQVE7OEJBR2hDLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBTUUxfSEVMUEVSIH0gZnJvbSAnLi4vLi4vY29yZS9oZWxwZXJzL3NxbC1oZWxwZXInO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9IWVBFUkxJTktfQVBQRUFSQU5DRSxcbiAgREVGQVVMVF9IWVBFUkxJTktfQVJJQV9MQUJFTCxcbiAgREVGQVVMVF9IWVBFUkxJTktfRElTQUJMRUQsXG4gIERFRkFVTFRfSFlQRVJMSU5LX0RPTUFJTl9GSUxURVJfVE9LRU4sXG4gIERFRkFVTFRfSFlQRVJMSU5LX0hPVkVSX1NUWUxFLFxuICBERUZBVUxUX0hZUEVSTElOS19IUkVGLFxuICBERUZBVUxUX0hZUEVSTElOS19JQ09OLFxuICBERUZBVUxUX0hZUEVSTElOS19JQ09OX1BPU0lUSU9OLFxuICBERUZBVUxUX0hZUEVSTElOS19SRVFVSVJFRCxcbiAgREVGQVVMVF9IWVBFUkxJTktfUkVMLFxuICBERUZBVUxUX0hZUEVSTElOS19UQVJHRVQsXG4gIERFRkFVTFRfSFlQRVJMSU5LX1RFWFQsXG4gIERFRkFVTFRfSFlQRVJMSU5LX1VOREVSTElORSxcbiAgSFlQRVJMSU5LX0NPTE9SX1ZBUixcbiAgSFlQRVJMSU5LX1JFTF9OT09QRU5FUlxufSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9oeXBlcmxpbmsuY29uc3QnO1xuaW1wb3J0IHR5cGUge1xuICBIeXBlcmxpbmtBcHBlYXJhbmNlLFxuICBIeXBlcmxpbmtIb3ZlclN0eWxlLFxuICBIeXBlcmxpbmtJY29uUG9zaXRpb24sXG4gIEh5cGVybGlua1RhcmdldCxcbiAgSHlwZXJsaW5rVW5kZXJsaW5lLFxuICBIeXBlcmxpbmtWYWx1ZVxufSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2h5cGVybGluay50eXBlJztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnc2RjLWh5cGVybGluaycsXG4gIHRlbXBsYXRlVXJsOiAnLi9oeXBlcmxpbmsuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vaHlwZXJsaW5rLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIEh5cGVybGlua0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGhyZWY6IEh5cGVybGlua1ZhbHVlID0gREVGQVVMVF9IWVBFUkxJTktfSFJFRjtcbiAgQElucHV0KCkgdGV4dDogSHlwZXJsaW5rVmFsdWUgPSBERUZBVUxUX0hZUEVSTElOS19URVhUO1xuICBASW5wdXQoKSBhcmlhTGFiZWw6IEh5cGVybGlua1ZhbHVlID0gREVGQVVMVF9IWVBFUkxJTktfQVJJQV9MQUJFTDtcbiAgQElucHV0KCkgZG9tYWluRmlsdGVyVG9rZW46IEh5cGVybGlua1ZhbHVlID0gREVGQVVMVF9IWVBFUkxJTktfRE9NQUlOX0ZJTFRFUl9UT0tFTjtcbiAgQElucHV0KCkgaWNvbjogSHlwZXJsaW5rVmFsdWUgPSBERUZBVUxUX0hZUEVSTElOS19JQ09OO1xuICBASW5wdXQoKSBpY29uUG9zaXRpb246IEh5cGVybGlua0ljb25Qb3NpdGlvbiA9IERFRkFVTFRfSFlQRVJMSU5LX0lDT05fUE9TSVRJT047XG4gIEBJbnB1dCgpIGNvbG9yPzogc3RyaW5nO1xuICBASW5wdXQoKSB0YXJnZXQ6IEh5cGVybGlua1RhcmdldCA9IERFRkFVTFRfSFlQRVJMSU5LX1RBUkdFVDtcbiAgQElucHV0KCkgcmVsID0gREVGQVVMVF9IWVBFUkxJTktfUkVMO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IERFRkFVTFRfSFlQRVJMSU5LX0RJU0FCTEVEO1xuICBASW5wdXQoKSByZXF1aXJlZCA9IERFRkFVTFRfSFlQRVJMSU5LX1JFUVVJUkVEO1xuICBASW5wdXQoKSB1bmRlcmxpbmU6IEh5cGVybGlua1VuZGVybGluZSA9IERFRkFVTFRfSFlQRVJMSU5LX1VOREVSTElORTtcbiAgQElucHV0KCkgYXBwZWFyYW5jZTogSHlwZXJsaW5rQXBwZWFyYW5jZSA9IERFRkFVTFRfSFlQRVJMSU5LX0FQUEVBUkFOQ0U7XG4gIEBJbnB1dCgpIGhvdmVyU3R5bGU6IEh5cGVybGlua0hvdmVyU3R5bGUgPSBERUZBVUxUX0hZUEVSTElOS19IT1ZFUl9TVFlMRTtcblxuICBAT3V0cHV0KCkgY2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBkb21haW5GaWx0ZXJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGdldCBpc0FuY2hvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXNDb250ZW50KHRoaXMuaHJlZik7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRIcmVmKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmhhc0NvbnRlbnQodGhpcy5ocmVmKSA/ICh0aGlzLmhyZWYgYXMgc3RyaW5nKS50cmltKCkgOiBudWxsO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkVGV4dCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmhhc0NvbnRlbnQodGhpcy50ZXh0KSkge1xuICAgICAgcmV0dXJuICh0aGlzLnRleHQgYXMgc3RyaW5nKS50cmltKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGFzQ29udGVudCh0aGlzLmRvbWFpbkZpbHRlclRva2VuKSkge1xuICAgICAgcmV0dXJuIFNRTF9IRUxQRVIuZm9ybWF0RG9tYWluRmlsdGVyVG9rZW4oKHRoaXMuZG9tYWluRmlsdGVyVG9rZW4gYXMgc3RyaW5nKS50cmltKCkpO1xuICAgIH1cblxuICAgIHJldHVybiBERUZBVUxUX0hZUEVSTElOS19URVhUO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaGFzQ29udGVudCh0aGlzLmFyaWFMYWJlbCkpIHtcbiAgICAgIHJldHVybiAodGhpcy5hcmlhTGFiZWwgYXMgc3RyaW5nKS50cmltKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGFzQ29udGVudCh0aGlzLnRleHQpKSB7XG4gICAgICByZXR1cm4gKHRoaXMudGV4dCBhcyBzdHJpbmcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oYXNDb250ZW50KHRoaXMuZG9tYWluRmlsdGVyVG9rZW4pKSB7XG4gICAgICByZXR1cm4gU1FMX0hFTFBFUi5mb3JtYXREb21haW5GaWx0ZXJUb2tlbigodGhpcy5kb21haW5GaWx0ZXJUb2tlbiBhcyBzdHJpbmcpLnRyaW0oKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIERFRkFVTFRfSFlQRVJMSU5LX0FSSUFfTEFCRUw7XG4gIH1cblxuICBnZXQgc2hvd0ljb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzQ29udGVudCh0aGlzLmljb24pO1xuICB9XG5cbiAgZ2V0IGljb25DbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNob3dJY29uID8gKCh0aGlzLmljb24gYXMgc3RyaW5nKS50cmltKCkgfHwgJycpIDogJyc7XG4gIH1cblxuICBnZXQgY29tcHV0ZWRSZWwoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMucmVsLnRyaW0oKSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVsLnRyaW0oKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy50YXJnZXQgPT09ICdfYmxhbmsnID8gSFlQRVJMSU5LX1JFTF9OT09QRU5FUiA6IG51bGw7XG4gIH1cblxuICBnZXQgcm9vdENsYXNzZXMoKTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4ge1xuICAgIHJldHVybiB7XG4gICAgICAnaHlwZXJsaW5rLS1uZXV0cmFsJzogdGhpcy5hcHBlYXJhbmNlID09PSAnbmV1dHJhbCcsXG4gICAgICAnaHlwZXJsaW5rLS11bmRlcmxpbmUnOiB0aGlzLnVuZGVybGluZSA9PT0gJ2Fsd2F5cycsXG4gICAgICAnaHlwZXJsaW5rLS1ob3Zlci11bmRlcmxpbmUnOiB0aGlzLmhvdmVyU3R5bGUgPT09ICd1bmRlcmxpbmUnICYmIHRoaXMudW5kZXJsaW5lID09PSAnbm9uZScsXG4gICAgICAnaHlwZXJsaW5rLS1ob3Zlci1idXR0b24nOiB0aGlzLmhvdmVyU3R5bGUgPT09ICdidXR0b24nLFxuICAgICAgJ2h5cGVybGluay0taG92ZXItbm9uZSc6IHRoaXMuaG92ZXJTdHlsZSA9PT0gJ25vbmUnLFxuICAgICAgJ2h5cGVybGluay0tZGlzYWJsZWQnOiB0aGlzLmRpc2FibGVkLFxuICAgICAgJ2h5cGVybGluay0tYnV0dG9uLWVsZW1lbnQnOiAhdGhpcy5pc0FuY2hvclxuICAgIH07XG4gIH1cblxuICBnZXQgY3VzdG9tU3R5bGVzKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4ge1xuICAgICAgW0hZUEVSTElOS19DT0xPUl9WQVJdOiB0aGlzLmNvbG9yPy50cmltKCkgfHwgbnVsbFxuICAgIH07XG4gIH1cblxuICBoYW5kbGVJbnRlcmFjdGlvbihldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY2xpY2tlZC5lbWl0KGV2ZW50KTtcblxuICAgIGlmICh0aGlzLmhhc0NvbnRlbnQodGhpcy5kb21haW5GaWx0ZXJUb2tlbikpIHtcbiAgICAgIHRoaXMuZG9tYWluRmlsdGVyQ2xpY2suZW1pdCgodGhpcy5kb21haW5GaWx0ZXJUb2tlbiBhcyBzdHJpbmcpLnRyaW0oKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYXNDb250ZW50KHZhbHVlOiBIeXBlcmxpbmtWYWx1ZSk6IHZhbHVlIGlzIHN0cmluZyB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUudHJpbSgpLmxlbmd0aCA+IDA7XG4gIH1cbn0iLCJAaWYgKGlzQW5jaG9yKSB7XG4gIDxhXG4gICAgY2xhc3M9XCJoeXBlcmxpbmtcIlxuICAgIFtuZ0NsYXNzXT1cInJvb3RDbGFzc2VzXCJcbiAgICBbbmdTdHlsZV09XCJjdXN0b21TdHlsZXNcIlxuICAgIFthdHRyLmhyZWZdPVwicmVzb2x2ZWRIcmVmXCJcbiAgICBbYXR0ci50YXJnZXRdPVwidGFyZ2V0XCJcbiAgICBbYXR0ci5yZWxdPVwiY29tcHV0ZWRSZWxcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVzb2x2ZWRBcmlhTGFiZWwgfCB0cmFuc2xhdGVcIlxuICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFthdHRyLnRhYmluZGV4XT1cImRpc2FibGVkID8gLTEgOiBudWxsXCJcbiAgICAoY2xpY2spPVwiaGFuZGxlSW50ZXJhY3Rpb24oJGV2ZW50KVwiXG4gID5cbiAgICBAaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnICYmIHNob3dJY29uKSB7XG4gICAgICA8aSBbY2xhc3NdPVwiaWNvbkNsYXNzXCIgY2xhc3M9XCJoeXBlcmxpbmtfX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgfVxuXG4gICAgPHNwYW4gY2xhc3M9XCJoeXBlcmxpbmtfX3RleHRcIj5cbiAgICAgIHt7IHJlc29sdmVkVGV4dCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgQGlmIChyZXF1aXJlZCkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkLWZpZWxkIGh5cGVybGlua19fcmVxdWlyZWRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4qPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj57eyAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5yZXF1aXJlZF9maWVsZCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICB9XG4gICAgPC9zcGFuPlxuXG4gICAgQGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcgJiYgc2hvd0ljb24pIHtcbiAgICAgIDxpIFtjbGFzc109XCJpY29uQ2xhc3NcIiBjbGFzcz1cImh5cGVybGlua19faWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICB9XG4gIDwvYT5cbn0gQGVsc2Uge1xuICA8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJoeXBlcmxpbmtcIlxuICAgIFtuZ0NsYXNzXT1cInJvb3RDbGFzc2VzXCJcbiAgICBbbmdTdHlsZV09XCJjdXN0b21TdHlsZXNcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVzb2x2ZWRBcmlhTGFiZWwgfCB0cmFuc2xhdGVcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgKGNsaWNrKT1cImhhbmRsZUludGVyYWN0aW9uKCRldmVudClcIlxuICA+XG4gICAgQGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0JyAmJiBzaG93SWNvbikge1xuICAgICAgPGkgW2NsYXNzXT1cImljb25DbGFzc1wiIGNsYXNzPVwiaHlwZXJsaW5rX19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIH1cblxuICAgIDxzcGFuIGNsYXNzPVwiaHlwZXJsaW5rX190ZXh0XCI+XG4gICAgICB7eyByZXNvbHZlZFRleHQgfCB0cmFuc2xhdGUgfX1cbiAgICAgIEBpZiAocmVxdWlyZWQpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZC1maWVsZCBoeXBlcmxpbmtfX3JlcXVpcmVkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+Kjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+e3sgJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucmVxdWlyZWRfZmllbGQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cblxuICAgIEBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnICYmIHNob3dJY29uKSB7XG4gICAgICA8aSBbY2xhc3NdPVwiaWNvbkNsYXNzXCIgY2xhc3M9XCJoeXBlcmxpbmtfX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgfVxuICA8L2J1dHRvbj5cbn0iXX0=