@seniorsistemas/data-seniorx-core 3.0.0 → 3.1.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 (180) hide show
  1. package/core/constants/editable-overlay.const.d.ts +4 -0
  2. package/core/constants/help-popover.const.d.ts +7 -0
  3. package/core/constants/input-mask.const.d.ts +5 -0
  4. package/core/constants/navigation-button.const.d.ts +3 -0
  5. package/core/constants/object-card.const.d.ts +21 -0
  6. package/core/constants/thumbnail.const.d.ts +6 -0
  7. package/core/constants/thumbnails.const.d.ts +4 -0
  8. package/core/constants/token-list.const.d.ts +3 -0
  9. package/core/types/button.type.d.ts +1 -1
  10. package/core/types/datepicker.type.d.ts +28 -0
  11. package/core/types/dynamic-form.type.d.ts +29 -0
  12. package/core/types/editable-overlay.type.d.ts +15 -0
  13. package/core/types/help-popover.type.d.ts +2 -0
  14. package/core/types/input-mask.type.d.ts +6 -0
  15. package/core/types/lookup.type.d.ts +45 -0
  16. package/core/types/navigation-button.type.d.ts +9 -0
  17. package/core/types/row-card.type.d.ts +5 -0
  18. package/core/types/semantics.type.d.ts +1 -1
  19. package/core/types/table-options.type.d.ts +1 -0
  20. package/core/types/thumbnail.type.d.ts +1 -0
  21. package/core/types/thumbnails.type.d.ts +20 -0
  22. package/core/types/token-list.type.d.ts +6 -0
  23. package/core/utils/emoji-support.util.d.ts +12 -0
  24. package/core/utils/overlay-dismiss.util.d.ts +25 -0
  25. package/esm2022/core/config/row-card.type.config.mjs +3 -1
  26. package/esm2022/core/constants/country-phone-picker.const.mjs +6 -6
  27. package/esm2022/core/constants/editable-overlay.const.mjs +5 -0
  28. package/esm2022/core/constants/help-popover.const.mjs +7 -0
  29. package/esm2022/core/constants/input-mask.const.mjs +6 -0
  30. package/esm2022/core/constants/navigation-button.const.mjs +4 -0
  31. package/esm2022/core/constants/object-card.const.mjs +23 -0
  32. package/esm2022/core/constants/thumbnail.const.mjs +14 -0
  33. package/esm2022/core/constants/thumbnails.const.mjs +5 -0
  34. package/esm2022/core/constants/token-list.const.mjs +4 -0
  35. package/esm2022/core/types/button.type.mjs +1 -1
  36. package/esm2022/core/types/datepicker.type.mjs +2 -0
  37. package/esm2022/core/types/dynamic-form.type.mjs +2 -0
  38. package/esm2022/core/types/editable-overlay.type.mjs +2 -0
  39. package/esm2022/core/types/help-popover.type.mjs +2 -0
  40. package/esm2022/core/types/input-mask.type.mjs +2 -0
  41. package/esm2022/core/types/lookup.type.mjs +2 -0
  42. package/esm2022/core/types/navigation-button.type.mjs +2 -0
  43. package/esm2022/core/types/row-card.type.mjs +1 -1
  44. package/esm2022/core/types/semantics.type.mjs +1 -1
  45. package/esm2022/core/types/table-options.type.mjs +1 -1
  46. package/esm2022/core/types/thumbnail.type.mjs +2 -0
  47. package/esm2022/core/types/thumbnails.type.mjs +2 -0
  48. package/esm2022/core/types/token-list.type.mjs +2 -0
  49. package/esm2022/core/utils/emoji-support.util.mjs +48 -0
  50. package/esm2022/core/utils/mask.util.mjs +2 -2
  51. package/esm2022/core/utils/overlay-dismiss.util.mjs +38 -0
  52. package/esm2022/features/alert/alert.component.mjs +5 -2
  53. package/esm2022/features/autocomplete/autocomplete.component.mjs +30 -8
  54. package/esm2022/features/bignumber-input/bignumber-input.component.mjs +1 -1
  55. package/esm2022/features/button/button.component.mjs +13 -5
  56. package/esm2022/features/card-list/card/card.component.mjs +2 -2
  57. package/esm2022/features/card-list/card-list.component.mjs +2 -2
  58. package/esm2022/features/checkbox-list/checkbox-list.component.mjs +25 -5
  59. package/esm2022/features/chips/chips.component.mjs +3 -3
  60. package/esm2022/features/code-editor/code-editor.component.mjs +12 -3
  61. package/esm2022/features/combobox/combobox.component.mjs +3 -3
  62. package/esm2022/features/confirm/confirm.component.mjs +2 -2
  63. package/esm2022/features/context-selector/context-selector.component.mjs +1 -1
  64. package/esm2022/features/country-phone-picker/country-phone-picker.component.mjs +22 -18
  65. package/esm2022/features/currency/currency.component.mjs +3 -3
  66. package/esm2022/features/datepicker/datepicker.component.mjs +814 -0
  67. package/esm2022/features/dynamic-form/dynamic-form-field.directive.mjs +178 -0
  68. package/esm2022/features/dynamic-form/dynamic-form.component.mjs +60 -0
  69. package/esm2022/features/dynamic-form/dynamic-form.registry.mjs +13 -0
  70. package/esm2022/features/editable-overlay/editable-overlay-editor.directive.mjs +31 -0
  71. package/esm2022/features/editable-overlay/editable-overlay.component.mjs +217 -0
  72. package/esm2022/features/editor/editor.component.mjs +173 -0
  73. package/esm2022/features/empty-state/empty-state.component.mjs +3 -3
  74. package/esm2022/features/fileupload/fileupload.component.mjs +3 -3
  75. package/esm2022/features/help-popover/help-popover.component.mjs +204 -0
  76. package/esm2022/features/hyperlink/hyperlink.component.mjs +3 -3
  77. package/esm2022/features/icon-picker/icon-picker.component.mjs +4 -4
  78. package/esm2022/features/image-cropper/image-cropper.component.mjs +2 -2
  79. package/esm2022/features/info-sign/info-sign.component.mjs +6 -3
  80. package/esm2022/features/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +1 -1
  81. package/esm2022/features/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +2 -2
  82. package/esm2022/features/input-mask/input-mask.directive.mjs +510 -0
  83. package/esm2022/features/list/list.component.mjs +2 -2
  84. package/esm2022/features/localized-number-input/localized-number-input.component.mjs +3 -3
  85. package/esm2022/features/lookup/lookup.component.mjs +351 -0
  86. package/esm2022/features/modal/modal.component.mjs +6 -3
  87. package/esm2022/features/modalc/modalc.component.mjs +6 -3
  88. package/esm2022/features/navigation-button/navigation-button.component.mjs +172 -0
  89. package/esm2022/features/number-input/number-input.component.mjs +10 -4
  90. package/esm2022/features/object-card/components/object-card-field/object-card-field.component.mjs +89 -0
  91. package/esm2022/features/object-card/components/object-card-main/object-card-main.component.mjs +114 -0
  92. package/esm2022/features/object-card/object-card.component.mjs +199 -0
  93. package/esm2022/features/password-strength/password-strength.component.mjs +3 -3
  94. package/esm2022/features/pin-code-field/pin-code-field.component.mjs +14 -4
  95. package/esm2022/features/popover/popover.component.mjs +29 -3
  96. package/esm2022/features/profile-picture-picker/profile-picture-picker.component.mjs +13 -4
  97. package/esm2022/features/rating-scale/rating-scale.component.mjs +24 -4
  98. package/esm2022/features/row-card-list/row-card/row-card.component.mjs +19 -4
  99. package/esm2022/features/row-card-list/row-card-list.component.mjs +12 -3
  100. package/esm2022/features/scaffold/scaffold.component.mjs +3 -3
  101. package/esm2022/features/searchbox/searchbox.component.mjs +2 -2
  102. package/esm2022/features/select-button/select-button.component.mjs +26 -4
  103. package/esm2022/features/slider/slider.component.mjs +3 -3
  104. package/esm2022/features/split-button/split-button.component.mjs +1 -1
  105. package/esm2022/features/spotlight/components/spotlight-overlay/spotlight-overlay.component.mjs +15 -18
  106. package/esm2022/features/spotlight/spotlight.component.mjs +2 -2
  107. package/esm2022/features/star-rating/star-rating.component.mjs +25 -4
  108. package/esm2022/features/table/components/table-cell-content.component.mjs +2 -2
  109. package/esm2022/features/table/table.component.mjs +30 -9
  110. package/esm2022/features/textarea/textarea.component.mjs +3 -3
  111. package/esm2022/features/thumbnail/thumbnail.component.mjs +86 -0
  112. package/esm2022/features/thumbnails/components/thumbnail-item/thumbnail-item.component.mjs +59 -0
  113. package/esm2022/features/thumbnails/components/thumbnail-item-image/thumbnail-item-image.component.mjs +25 -0
  114. package/esm2022/features/thumbnails/components/thumbnail-item-video/thumbnail-item-video.component.mjs +50 -0
  115. package/esm2022/features/thumbnails/thumbnails.component.mjs +76 -0
  116. package/esm2022/features/tiered-menu/directives/tiered-menu.directive.mjs +13 -1
  117. package/esm2022/features/token-list/token-list.component.mjs +64 -0
  118. package/esm2022/features/visual-sql-editor/visual-sql-editor.component.mjs +2 -2
  119. package/esm2022/locales/en.json +409 -1
  120. package/esm2022/locales/es-CO.json +423 -2
  121. package/esm2022/locales/pt.json +1037 -630
  122. package/esm2022/providers/features.provider.mjs +20 -2
  123. package/esm2022/providers/primeng-config.provider.mjs +14 -128
  124. package/esm2022/providers/translate.provider.mjs +2 -2
  125. package/esm2022/public-api.mjs +31 -1
  126. package/features/alert/alert.component.d.ts +1 -0
  127. package/features/autocomplete/autocomplete.component.d.ts +9 -3
  128. package/features/button/button.component.d.ts +3 -1
  129. package/features/checkbox-list/checkbox-list.component.d.ts +8 -1
  130. package/features/code-editor/code-editor.component.d.ts +5 -1
  131. package/features/country-phone-picker/country-phone-picker.component.d.ts +3 -0
  132. package/features/datepicker/datepicker.component.d.ts +118 -0
  133. package/features/dynamic-form/dynamic-form-field.directive.d.ts +26 -0
  134. package/features/dynamic-form/dynamic-form.component.d.ts +15 -0
  135. package/features/dynamic-form/dynamic-form.registry.d.ts +11 -0
  136. package/features/editable-overlay/editable-overlay-editor.directive.d.ts +22 -0
  137. package/features/editable-overlay/editable-overlay.component.d.ts +60 -0
  138. package/features/editor/editor.component.d.ts +47 -0
  139. package/features/help-popover/help-popover.component.d.ts +81 -0
  140. package/features/info-sign/info-sign.component.d.ts +2 -1
  141. package/features/input-mask/input-mask.directive.d.ts +117 -0
  142. package/features/lookup/lookup.component.d.ts +104 -0
  143. package/features/modal/modal.component.d.ts +2 -1
  144. package/features/modalc/modalc.component.d.ts +2 -1
  145. package/features/navigation-button/navigation-button.component.d.ts +58 -0
  146. package/features/number-input/number-input.component.d.ts +3 -1
  147. package/features/object-card/components/object-card-field/object-card-field.component.d.ts +48 -0
  148. package/features/object-card/components/object-card-main/object-card-main.component.d.ts +57 -0
  149. package/features/object-card/object-card.component.d.ts +70 -0
  150. package/features/pin-code-field/pin-code-field.component.d.ts +6 -1
  151. package/features/popover/popover.component.d.ts +4 -1
  152. package/features/profile-picture-picker/profile-picture-picker.component.d.ts +5 -1
  153. package/features/rating-scale/rating-scale.component.d.ts +9 -1
  154. package/features/row-card-list/row-card/row-card.component.d.ts +6 -1
  155. package/features/row-card-list/row-card-list.component.d.ts +4 -1
  156. package/features/select-button/select-button.component.d.ts +9 -1
  157. package/features/star-rating/star-rating.component.d.ts +9 -1
  158. package/features/table/table.component.d.ts +2 -1
  159. package/features/thumbnail/thumbnail.component.d.ts +48 -0
  160. package/features/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +29 -0
  161. package/features/thumbnails/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +13 -0
  162. package/features/thumbnails/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +19 -0
  163. package/features/thumbnails/thumbnails.component.d.ts +46 -0
  164. package/features/tiered-menu/directives/tiered-menu.directive.d.ts +2 -0
  165. package/features/token-list/token-list.component.d.ts +31 -0
  166. package/fesm2022/seniorsistemas-data-seniorx-core.mjs +11288 -6613
  167. package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
  168. package/package.json +12 -3
  169. package/providers/primeng-config.provider.d.ts +12 -0
  170. package/public-api.d.ts +38 -0
  171. package/src/locales/en.json +409 -1
  172. package/src/locales/es-CO.json +423 -2
  173. package/src/locales/pt.json +1037 -630
  174. package/styles/sdc-global-variables.scss +38 -0
  175. package/styles.css +132 -0
  176. package/styles.scss +2 -0
  177. package/esm2022/providers/custom/button.mjs +0 -93
  178. package/esm2022/providers/custom/toast.mjs +0 -75
  179. package/providers/custom/button.d.ts +0 -16
  180. package/providers/custom/toast.d.ts +0 -14
@@ -0,0 +1,204 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, TemplateRef, ViewChild, ViewEncapsulation, inject } from '@angular/core';
3
+ import { TranslateModule } from '@ngx-translate/core';
4
+ import { HELP_POPOVER_CLOSE_ARIA_LABEL_KEY, HELP_POPOVER_DEFAULT_ARIA_LABEL_KEY, HELP_POPOVER_DEFAULT_ARROW_POSITION, HELP_POPOVER_DEFAULT_POSITION, HELP_POPOVER_PANEL_HOST_CLASS } from '../../core/constants/help-popover.const';
5
+ import { ButtonComponent } from '../button/button.component';
6
+ import { PopoverComponent } from '../popover/popover.component';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "@ngx-translate/core";
10
+ /**
11
+ * @description Balão de ajuda contextual acionado a partir de um elemento projetado (trigger).
12
+ * Reutiliza o `sdc-popover` como motor de overlay/posicionamento (abertura, clique fora, escape,
13
+ * anexação ao body/appendTo, foco). O `sdc-help-popover` é responsável apenas pela apresentação
14
+ * do balão (cabeçalho, conteúdo, rodapé e seta indicativa) e pelo cálculo visual adicional
15
+ * necessário para as posições `left`/`right`, que o `sdc-popover` não modela nativamente.
16
+ *
17
+ * @example
18
+ * ```html
19
+ * <sdc-help-popover content="Informe aqui o seu CPF" position="right">
20
+ * <button sdc-help-popover-trigger type="button">?</button>
21
+ * </sdc-help-popover>
22
+ * ```
23
+ */
24
+ export class HelpPopoverComponent {
25
+ cdr = inject(ChangeDetectorRef);
26
+ /** Conteúdo do balão: texto simples (chave de tradução ou texto literal) ou `TemplateRef`. */
27
+ content = null;
28
+ /** Exibe o botão de fechar (X) no cabeçalho do balão. */
29
+ closeButton = true;
30
+ /** Classe de ícone (ex: Font Awesome) exibida no cabeçalho. */
31
+ icon = '';
32
+ /** Texto (chave de tradução) exibido no cabeçalho. */
33
+ header = '';
34
+ /** Texto (chave de tradução) exibido no rodapé. */
35
+ footer = '';
36
+ /** Texto (chave de tradução) do botão de ação do rodapé. */
37
+ buttonText = '';
38
+ /** Posição do balão em relação ao elemento de trigger. */
39
+ position = HELP_POPOVER_DEFAULT_POSITION;
40
+ /** Alinhamento da seta indicadora em relação ao lado do balão. */
41
+ arrowPosition = HELP_POPOVER_DEFAULT_ARROW_POSITION;
42
+ /** Desabilita a abertura do balão. */
43
+ disabled = false;
44
+ /** Fecha o balão ao clicar fora dele. */
45
+ closeOnOutsideClick = true;
46
+ /** Seletor do elemento onde o painel do balão será anexado (padrão: `document.body`). */
47
+ appendTo;
48
+ /** Sobrescreve o texto (chave de tradução) usado como `aria-label` do balão. */
49
+ ariaLabel;
50
+ /** Classes adicionais aplicadas ao painel do balão. */
51
+ panelClass;
52
+ /** Emitido quando o usuário clica no botão de ação do rodapé. */
53
+ buttonClicked = new EventEmitter();
54
+ /** Emitido quando o estado de abertura do balão muda (clique no trigger, X, fora, ou show()/hide()). */
55
+ openChange = new EventEmitter();
56
+ popoverRef;
57
+ closeAriaLabelKey = HELP_POPOVER_CLOSE_ARIA_LABEL_KEY;
58
+ open = false;
59
+ triggerWidth = 0;
60
+ triggerHeight = 0;
61
+ get contentIsString() {
62
+ return typeof this.content === 'string';
63
+ }
64
+ get contentText() {
65
+ return typeof this.content === 'string' ? this.content : '';
66
+ }
67
+ get contentTemplate() {
68
+ return this.content instanceof TemplateRef ? this.content : null;
69
+ }
70
+ get hasIcon() {
71
+ return !!this.icon;
72
+ }
73
+ get hasHeaderText() {
74
+ return !!this.header;
75
+ }
76
+ get hasHeader() {
77
+ return this.hasHeaderText || this.hasIcon || this.closeButton;
78
+ }
79
+ get hasFooterText() {
80
+ return !!this.footer;
81
+ }
82
+ get hasButtonText() {
83
+ return !!this.buttonText;
84
+ }
85
+ get hasFooter() {
86
+ return this.hasFooterText || this.hasButtonText;
87
+ }
88
+ get isTopOrBottom() {
89
+ return this.position === 'top' || this.position === 'bottom';
90
+ }
91
+ get isLeftOrRight() {
92
+ return this.position === 'left' || this.position === 'right';
93
+ }
94
+ get resolvedPlacement() {
95
+ if (this.position === 'top') {
96
+ return this.arrowPosition === 'end' ? 'top-end' : 'top-start';
97
+ }
98
+ if (this.isLeftOrRight) {
99
+ return 'bottom-start';
100
+ }
101
+ return this.arrowPosition === 'end' ? 'bottom-end' : 'bottom-start';
102
+ }
103
+ get resolvedAriaLabel() {
104
+ if (this.ariaLabel) {
105
+ return this.ariaLabel;
106
+ }
107
+ if (this.header) {
108
+ return this.header;
109
+ }
110
+ return HELP_POPOVER_DEFAULT_ARIA_LABEL_KEY;
111
+ }
112
+ get resolvedPanelClass() {
113
+ return this.panelClass ? [HELP_POPOVER_PANEL_HOST_CLASS, this.panelClass] : [HELP_POPOVER_PANEL_HOST_CLASS];
114
+ }
115
+ /** Abre o balão programaticamente. */
116
+ show() {
117
+ if (this.disabled || this.open) {
118
+ return;
119
+ }
120
+ this.open = true;
121
+ this.openChange.emit(true);
122
+ queueMicrotask(() => this.measureTrigger());
123
+ this.cdr.markForCheck();
124
+ }
125
+ /** Fecha o balão programaticamente. */
126
+ hide() {
127
+ if (!this.open) {
128
+ return;
129
+ }
130
+ this.open = false;
131
+ this.openChange.emit(false);
132
+ this.cdr.markForCheck();
133
+ }
134
+ /** Alterna a visibilidade do balão. */
135
+ toggle() {
136
+ if (this.open) {
137
+ this.hide();
138
+ }
139
+ else {
140
+ this.show();
141
+ }
142
+ }
143
+ onButtonClicked() {
144
+ this.buttonClicked.emit();
145
+ }
146
+ onOpenChange(isOpen) {
147
+ this.open = isOpen;
148
+ this.openChange.emit(isOpen);
149
+ if (isOpen) {
150
+ queueMicrotask(() => this.measureTrigger());
151
+ }
152
+ this.cdr.markForCheck();
153
+ }
154
+ measureTrigger() {
155
+ const trigger = this.popoverRef?.triggerRef?.nativeElement;
156
+ if (!trigger) {
157
+ return;
158
+ }
159
+ const rect = trigger.getBoundingClientRect();
160
+ this.triggerWidth = rect.width;
161
+ this.triggerHeight = rect.height;
162
+ this.cdr.markForCheck();
163
+ }
164
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HelpPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
165
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: HelpPopoverComponent, isStandalone: true, selector: "sdc-help-popover", inputs: { content: "content", closeButton: "closeButton", icon: "icon", header: "header", footer: "footer", buttonText: "buttonText", position: "position", arrowPosition: "arrowPosition", disabled: "disabled", closeOnOutsideClick: "closeOnOutsideClick", appendTo: "appendTo", ariaLabel: "ariaLabel", panelClass: "panelClass" }, outputs: { buttonClicked: "buttonClicked", openChange: "openChange" }, viewQueries: [{ propertyName: "popoverRef", first: true, predicate: PopoverComponent, descendants: true }], ngImport: i0, template: "<sdc-popover\n [open]=\"open\"\n [disabled]=\"disabled\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n [placement]=\"resolvedPlacement\"\n [appendTo]=\"appendTo\"\n [panelClass]=\"resolvedPanelClass\"\n [ariaLabel]=\"resolvedAriaLabel\"\n (openChange)=\"onOpenChange($event)\"\n>\n <div sdc-popover-trigger class=\"sdc-help-popover__trigger\">\n <ng-content select=\"[sdc-help-popover-trigger]\"></ng-content>\n </div>\n\n <div\n sdc-popover-content\n class=\"sdc-help-popover__balloon\"\n [class.sdc-help-popover__balloon--top]=\"position === 'top'\"\n [class.sdc-help-popover__balloon--right]=\"position === 'right'\"\n [class.sdc-help-popover__balloon--bottom]=\"position === 'bottom'\"\n [class.sdc-help-popover__balloon--left]=\"position === 'left'\"\n [class.sdc-help-popover__balloon--center-h]=\"isTopOrBottom && arrowPosition === 'middle'\"\n [class.sdc-help-popover__balloon--valign-beginning]=\"isLeftOrRight && arrowPosition === 'beginning'\"\n [class.sdc-help-popover__balloon--valign-middle]=\"isLeftOrRight && arrowPosition === 'middle'\"\n [class.sdc-help-popover__balloon--valign-end]=\"isLeftOrRight && arrowPosition === 'end'\"\n [style.--sdc-help-popover-trigger-width.px]=\"triggerWidth\"\n [style.--sdc-help-popover-trigger-height.px]=\"triggerHeight\"\n >\n <div\n class=\"sdc-help-popover__arrow-wrapper\"\n [class.sdc-help-popover__arrow-wrapper--beginning]=\"arrowPosition === 'beginning'\"\n [class.sdc-help-popover__arrow-wrapper--middle]=\"arrowPosition === 'middle'\"\n [class.sdc-help-popover__arrow-wrapper--end]=\"arrowPosition === 'end'\"\n >\n <div class=\"sdc-help-popover__arrow\"></div>\n </div>\n\n <div class=\"sdc-help-popover__panel\">\n @if (hasHeader) {\n <div\n class=\"sdc-help-popover__header\"\n [class.sdc-help-popover__header--space-between]=\"hasHeaderText || hasIcon\"\n [class.sdc-help-popover__header--end]=\"!(hasHeaderText || hasIcon) && closeButton\"\n >\n @if (hasHeaderText || hasIcon) {\n <div class=\"sdc-help-popover__header-text\">\n @if (hasIcon) {\n <i class=\"sdc-help-popover__icon\" [class]=\"icon\" aria-hidden=\"true\"></i>\n }\n\n @if (hasHeaderText) {\n <span class=\"sdc-help-popover__header-label\">{{ header | translate }}</span>\n }\n </div>\n }\n\n @if (closeButton) {\n <button\n type=\"button\"\n class=\"sdc-help-popover__close\"\n [attr.aria-label]=\"closeAriaLabelKey | translate\"\n (click)=\"hide()\"\n >\n <i class=\"fas fa-times\" aria-hidden=\"true\"></i>\n </button>\n }\n </div>\n }\n\n <div class=\"sdc-help-popover__content\">\n @if (contentIsString) {\n {{ contentText | translate }}\n } @else if (contentTemplate) {\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"></ng-container>\n }\n </div>\n\n @if (hasFooter) {\n <div class=\"sdc-help-popover__separator\"></div>\n\n <div\n class=\"sdc-help-popover__footer\"\n [class.sdc-help-popover__footer--space-between]=\"hasFooterText\"\n [class.sdc-help-popover__footer--end]=\"!hasFooterText\"\n >\n @if (hasFooterText) {\n <p class=\"sdc-help-popover__footer-text\">{{ footer | translate }}</p>\n }\n\n @if (hasButtonText) {\n <sdc-button\n class=\"sdc-help-popover__footer-button\"\n [label]=\"buttonText\"\n priority=\"primary\"\n size=\"small\"\n (clicked)=\"onButtonClicked()\"\n ></sdc-button>\n }\n </div>\n }\n </div>\n </div>\n</sdc-popover>\n", styles: [":host{display:block;width:fit-content}.sdc-help-popover__trigger{cursor:pointer;display:block;width:fit-content}.sdc-help-popover__balloon{position:relative}.sdc-help-popover__arrow-wrapper{display:flex}.sdc-help-popover__arrow{height:0;position:relative;width:0;filter:drop-shadow(var(--sdc-help-popover-arrow-shadow, 1px 1px 2px rgba(0, 0, 0, .15)))}.sdc-help-popover__panel{background:var(--sdc-help-popover-bg, #fff);border-radius:var(--sdc-help-popover-radius, 3px);box-shadow:var(--sdc-help-popover-shadow, 0 1px 5px 0 rgba(0, 0, 0, .25));box-sizing:border-box;max-width:var(--sdc-help-popover-max-width, 305px);min-width:var(--sdc-help-popover-min-width, 200px);width:fit-content}.sdc-help-popover__header,.sdc-help-popover__content,.sdc-help-popover__footer{padding:var(--sdc-help-popover-padding, 8px)}.sdc-help-popover__header{display:flex}.sdc-help-popover__header-text{display:flex;gap:var(--sdc-help-popover-header-gap, 8px);justify-content:space-between;min-width:0}.sdc-help-popover__icon{color:var(--sdc-help-popover-icon-color, inherit)}.sdc-help-popover__header-label{color:var(--sdc-help-popover-header-color, #212533);font-family:var(--sdc-font-family, \"Open Sans\", sans-serif);font-size:var(--sdc-help-popover-header-font-size, 13px);font-weight:var(--sdc-help-popover-header-font-weight, 600)}.sdc-help-popover__close{align-items:center;background:transparent;border:0;color:var(--sdc-help-popover-close-color, #212533);cursor:pointer;display:inline-flex;height:1rem;justify-content:center;padding:0;width:1rem}.sdc-help-popover__close:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:2px}.sdc-help-popover__content{color:var(--sdc-help-popover-content-color, #212533);font-family:var(--sdc-font-family, \"Open Sans\", sans-serif);font-size:var(--sdc-help-popover-content-font-size, 13px)}.sdc-help-popover__separator{border-top:1px solid var(--sdc-help-popover-separator-color, #dedce5);width:100%}.sdc-help-popover__footer{align-items:center;display:flex;gap:var(--sdc-help-popover-footer-gap, 8px)}.sdc-help-popover__footer-text{color:var(--sdc-help-popover-footer-color, #212533);font-family:var(--sdc-font-family, \"Open Sans\", sans-serif);font-size:var(--sdc-help-popover-footer-font-size, 12px);font-weight:400;margin:0}.sdc-help-popover__header--space-between,.sdc-help-popover__footer--space-between{justify-content:space-between}.sdc-help-popover__header--end,.sdc-help-popover__footer--end{justify-content:flex-end}.sdc-help-popover__arrow-wrapper--beginning{justify-content:flex-start}.sdc-help-popover__arrow-wrapper--middle{align-items:center;justify-content:center}.sdc-help-popover__arrow-wrapper--end{justify-content:flex-end}.sdc-help-popover__balloon--top{display:flex;flex-direction:column-reverse}.sdc-help-popover__balloon--left{align-items:center;display:flex;flex-direction:row-reverse;transform:translate(calc(-100% - var(--sdc-help-popover-gap, 8px)))}.sdc-help-popover__balloon--right{align-items:center;display:flex;transform:translate(calc(var(--sdc-help-popover-trigger-width, 0px) + var(--sdc-help-popover-gap, 8px)))}.sdc-help-popover__balloon--top .sdc-help-popover__arrow{border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px solid var(--sdc-help-popover-bg, #fff);margin-left:12px}.sdc-help-popover__balloon--bottom .sdc-help-popover__arrow{border-bottom:10px solid var(--sdc-help-popover-bg, #fff);border-left:10px solid transparent;border-right:10px solid transparent;margin-left:12px}.sdc-help-popover__balloon--left .sdc-help-popover__arrow{border-bottom:10px solid transparent;border-left:10px solid var(--sdc-help-popover-bg, #fff);border-top:10px solid transparent;margin-top:12px}.sdc-help-popover__balloon--right .sdc-help-popover__arrow{border-bottom:10px solid transparent;border-right:10px solid var(--sdc-help-popover-bg, #fff);border-top:10px solid transparent;margin-top:12px}.sdc-help-popover__balloon--top .sdc-help-popover__arrow-wrapper--end .sdc-help-popover__arrow{margin-left:0;margin-right:12px}.sdc-help-popover__balloon--top .sdc-help-popover__arrow-wrapper--middle .sdc-help-popover__arrow{margin-left:0}.sdc-help-popover__balloon--bottom .sdc-help-popover__arrow-wrapper--end .sdc-help-popover__arrow{margin-left:0;margin-right:12px}.sdc-help-popover__balloon--bottom .sdc-help-popover__arrow-wrapper--middle .sdc-help-popover__arrow{margin-left:0}.sdc-help-popover__balloon--left .sdc-help-popover__arrow-wrapper--end .sdc-help-popover__arrow{margin-bottom:12px;margin-top:0}.sdc-help-popover__balloon--left .sdc-help-popover__arrow-wrapper--middle .sdc-help-popover__arrow{margin-top:0}.sdc-help-popover__balloon--right .sdc-help-popover__arrow-wrapper--end .sdc-help-popover__arrow{margin-bottom:12px;margin-top:0}.sdc-help-popover__balloon--right .sdc-help-popover__arrow-wrapper--middle .sdc-help-popover__arrow{margin-top:0}.sdc-help-popover__balloon--center-h{transform:translate(calc(var(--sdc-help-popover-trigger-width, 0px) / 2 - 50%))}.sdc-help-popover__balloon--valign-beginning{transform:translateY(calc(var(--sdc-help-popover-trigger-height, 0px) * -1 - var(--sdc-help-popover-gap, 8px)))}.sdc-help-popover__balloon--valign-middle{transform:translateY(calc(-50% - var(--sdc-help-popover-trigger-height, 0px) / 2 - var(--sdc-help-popover-gap, 8px)))}.sdc-help-popover__balloon--valign-end{transform:translateY(calc(-100% - var(--sdc-help-popover-gap, 8px)))}.sdc-help-popover__balloon--left.sdc-help-popover__balloon--valign-beginning{transform:translate(calc(-100% - var(--sdc-help-popover-gap, 8px)),calc(var(--sdc-help-popover-trigger-height, 0px) * -1 - var(--sdc-help-popover-gap, 8px)))}.sdc-help-popover__balloon--left.sdc-help-popover__balloon--valign-middle{transform:translate(calc(-100% - var(--sdc-help-popover-gap, 8px)),calc(-50% - var(--sdc-help-popover-trigger-height, 0px) / 2 - var(--sdc-help-popover-gap, 8px)))}.sdc-help-popover__balloon--left.sdc-help-popover__balloon--valign-end{transform:translate(calc(-100% - var(--sdc-help-popover-gap, 8px)),calc(-100% - var(--sdc-help-popover-gap, 8px)))}.sdc-help-popover__balloon--right.sdc-help-popover__balloon--valign-beginning{transform:translate(calc(var(--sdc-help-popover-trigger-width, 0px) + var(--sdc-help-popover-gap, 8px)),calc(var(--sdc-help-popover-trigger-height, 0px) * -1 - var(--sdc-help-popover-gap, 8px)))}.sdc-help-popover__balloon--right.sdc-help-popover__balloon--valign-middle{transform:translate(calc(var(--sdc-help-popover-trigger-width, 0px) + var(--sdc-help-popover-gap, 8px)),calc(-50% - var(--sdc-help-popover-trigger-height, 0px) / 2 - var(--sdc-help-popover-gap, 8px)))}.sdc-help-popover__balloon--right.sdc-help-popover__balloon--valign-end{transform:translate(calc(var(--sdc-help-popover-trigger-width, 0px) + var(--sdc-help-popover-gap, 8px)),calc(-100% - var(--sdc-help-popover-gap, 8px)))}::ng-deep .sdc-popover__panel.sdc-help-popover-panel-host{background:transparent;border:0;border-radius:0;box-shadow:none;max-width:none;overflow:visible;padding:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "loading", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }, { kind: "component", type: PopoverComponent, selector: "sdc-popover", inputs: ["open", "disabled", "toggleOnTriggerClick", "closeOnOutsideClick", "closeOnScroll", "closeOnEscape", "trapFocus", "focusOnOpen", "restoreFocusOnClose", "ariaLabel", "appendTo", "zIndex", "offset", "placement", "role", "matchTriggerWidth", "panelWidth", "panelMinWidth", "panelMaxWidth", "panelMaxHeight", "panelClass"], outputs: ["openChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
166
+ }
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HelpPopoverComponent, decorators: [{
168
+ type: Component,
169
+ args: [{ selector: 'sdc-help-popover', standalone: true, imports: [CommonModule, TranslateModule, ButtonComponent, PopoverComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<sdc-popover\n [open]=\"open\"\n [disabled]=\"disabled\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n [placement]=\"resolvedPlacement\"\n [appendTo]=\"appendTo\"\n [panelClass]=\"resolvedPanelClass\"\n [ariaLabel]=\"resolvedAriaLabel\"\n (openChange)=\"onOpenChange($event)\"\n>\n <div sdc-popover-trigger class=\"sdc-help-popover__trigger\">\n <ng-content select=\"[sdc-help-popover-trigger]\"></ng-content>\n </div>\n\n <div\n sdc-popover-content\n class=\"sdc-help-popover__balloon\"\n [class.sdc-help-popover__balloon--top]=\"position === 'top'\"\n [class.sdc-help-popover__balloon--right]=\"position === 'right'\"\n [class.sdc-help-popover__balloon--bottom]=\"position === 'bottom'\"\n [class.sdc-help-popover__balloon--left]=\"position === 'left'\"\n [class.sdc-help-popover__balloon--center-h]=\"isTopOrBottom && arrowPosition === 'middle'\"\n [class.sdc-help-popover__balloon--valign-beginning]=\"isLeftOrRight && arrowPosition === 'beginning'\"\n [class.sdc-help-popover__balloon--valign-middle]=\"isLeftOrRight && arrowPosition === 'middle'\"\n [class.sdc-help-popover__balloon--valign-end]=\"isLeftOrRight && arrowPosition === 'end'\"\n [style.--sdc-help-popover-trigger-width.px]=\"triggerWidth\"\n [style.--sdc-help-popover-trigger-height.px]=\"triggerHeight\"\n >\n <div\n class=\"sdc-help-popover__arrow-wrapper\"\n [class.sdc-help-popover__arrow-wrapper--beginning]=\"arrowPosition === 'beginning'\"\n [class.sdc-help-popover__arrow-wrapper--middle]=\"arrowPosition === 'middle'\"\n [class.sdc-help-popover__arrow-wrapper--end]=\"arrowPosition === 'end'\"\n >\n <div class=\"sdc-help-popover__arrow\"></div>\n </div>\n\n <div class=\"sdc-help-popover__panel\">\n @if (hasHeader) {\n <div\n class=\"sdc-help-popover__header\"\n [class.sdc-help-popover__header--space-between]=\"hasHeaderText || hasIcon\"\n [class.sdc-help-popover__header--end]=\"!(hasHeaderText || hasIcon) && closeButton\"\n >\n @if (hasHeaderText || hasIcon) {\n <div class=\"sdc-help-popover__header-text\">\n @if (hasIcon) {\n <i class=\"sdc-help-popover__icon\" [class]=\"icon\" aria-hidden=\"true\"></i>\n }\n\n @if (hasHeaderText) {\n <span class=\"sdc-help-popover__header-label\">{{ header | translate }}</span>\n }\n </div>\n }\n\n @if (closeButton) {\n <button\n type=\"button\"\n class=\"sdc-help-popover__close\"\n [attr.aria-label]=\"closeAriaLabelKey | translate\"\n (click)=\"hide()\"\n >\n <i class=\"fas fa-times\" aria-hidden=\"true\"></i>\n </button>\n }\n </div>\n }\n\n <div class=\"sdc-help-popover__content\">\n @if (contentIsString) {\n {{ contentText | translate }}\n } @else if (contentTemplate) {\n <ng-container [ngTemplateOutlet]=\"contentTemplate\"></ng-container>\n }\n </div>\n\n @if (hasFooter) {\n <div class=\"sdc-help-popover__separator\"></div>\n\n <div\n class=\"sdc-help-popover__footer\"\n [class.sdc-help-popover__footer--space-between]=\"hasFooterText\"\n [class.sdc-help-popover__footer--end]=\"!hasFooterText\"\n >\n @if (hasFooterText) {\n <p class=\"sdc-help-popover__footer-text\">{{ footer | translate }}</p>\n }\n\n @if (hasButtonText) {\n <sdc-button\n class=\"sdc-help-popover__footer-button\"\n [label]=\"buttonText\"\n priority=\"primary\"\n size=\"small\"\n (clicked)=\"onButtonClicked()\"\n ></sdc-button>\n }\n </div>\n }\n </div>\n </div>\n</sdc-popover>\n", styles: [":host{display:block;width:fit-content}.sdc-help-popover__trigger{cursor:pointer;display:block;width:fit-content}.sdc-help-popover__balloon{position:relative}.sdc-help-popover__arrow-wrapper{display:flex}.sdc-help-popover__arrow{height:0;position:relative;width:0;filter:drop-shadow(var(--sdc-help-popover-arrow-shadow, 1px 1px 2px rgba(0, 0, 0, .15)))}.sdc-help-popover__panel{background:var(--sdc-help-popover-bg, #fff);border-radius:var(--sdc-help-popover-radius, 3px);box-shadow:var(--sdc-help-popover-shadow, 0 1px 5px 0 rgba(0, 0, 0, .25));box-sizing:border-box;max-width:var(--sdc-help-popover-max-width, 305px);min-width:var(--sdc-help-popover-min-width, 200px);width:fit-content}.sdc-help-popover__header,.sdc-help-popover__content,.sdc-help-popover__footer{padding:var(--sdc-help-popover-padding, 8px)}.sdc-help-popover__header{display:flex}.sdc-help-popover__header-text{display:flex;gap:var(--sdc-help-popover-header-gap, 8px);justify-content:space-between;min-width:0}.sdc-help-popover__icon{color:var(--sdc-help-popover-icon-color, inherit)}.sdc-help-popover__header-label{color:var(--sdc-help-popover-header-color, #212533);font-family:var(--sdc-font-family, \"Open Sans\", sans-serif);font-size:var(--sdc-help-popover-header-font-size, 13px);font-weight:var(--sdc-help-popover-header-font-weight, 600)}.sdc-help-popover__close{align-items:center;background:transparent;border:0;color:var(--sdc-help-popover-close-color, #212533);cursor:pointer;display:inline-flex;height:1rem;justify-content:center;padding:0;width:1rem}.sdc-help-popover__close:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:2px}.sdc-help-popover__content{color:var(--sdc-help-popover-content-color, #212533);font-family:var(--sdc-font-family, \"Open Sans\", sans-serif);font-size:var(--sdc-help-popover-content-font-size, 13px)}.sdc-help-popover__separator{border-top:1px solid var(--sdc-help-popover-separator-color, #dedce5);width:100%}.sdc-help-popover__footer{align-items:center;display:flex;gap:var(--sdc-help-popover-footer-gap, 8px)}.sdc-help-popover__footer-text{color:var(--sdc-help-popover-footer-color, #212533);font-family:var(--sdc-font-family, \"Open Sans\", sans-serif);font-size:var(--sdc-help-popover-footer-font-size, 12px);font-weight:400;margin:0}.sdc-help-popover__header--space-between,.sdc-help-popover__footer--space-between{justify-content:space-between}.sdc-help-popover__header--end,.sdc-help-popover__footer--end{justify-content:flex-end}.sdc-help-popover__arrow-wrapper--beginning{justify-content:flex-start}.sdc-help-popover__arrow-wrapper--middle{align-items:center;justify-content:center}.sdc-help-popover__arrow-wrapper--end{justify-content:flex-end}.sdc-help-popover__balloon--top{display:flex;flex-direction:column-reverse}.sdc-help-popover__balloon--left{align-items:center;display:flex;flex-direction:row-reverse;transform:translate(calc(-100% - var(--sdc-help-popover-gap, 8px)))}.sdc-help-popover__balloon--right{align-items:center;display:flex;transform:translate(calc(var(--sdc-help-popover-trigger-width, 0px) + var(--sdc-help-popover-gap, 8px)))}.sdc-help-popover__balloon--top .sdc-help-popover__arrow{border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px solid var(--sdc-help-popover-bg, #fff);margin-left:12px}.sdc-help-popover__balloon--bottom .sdc-help-popover__arrow{border-bottom:10px solid var(--sdc-help-popover-bg, #fff);border-left:10px solid transparent;border-right:10px solid transparent;margin-left:12px}.sdc-help-popover__balloon--left .sdc-help-popover__arrow{border-bottom:10px solid transparent;border-left:10px solid var(--sdc-help-popover-bg, #fff);border-top:10px solid transparent;margin-top:12px}.sdc-help-popover__balloon--right .sdc-help-popover__arrow{border-bottom:10px solid transparent;border-right:10px solid var(--sdc-help-popover-bg, #fff);border-top:10px solid transparent;margin-top:12px}.sdc-help-popover__balloon--top .sdc-help-popover__arrow-wrapper--end .sdc-help-popover__arrow{margin-left:0;margin-right:12px}.sdc-help-popover__balloon--top .sdc-help-popover__arrow-wrapper--middle .sdc-help-popover__arrow{margin-left:0}.sdc-help-popover__balloon--bottom .sdc-help-popover__arrow-wrapper--end .sdc-help-popover__arrow{margin-left:0;margin-right:12px}.sdc-help-popover__balloon--bottom .sdc-help-popover__arrow-wrapper--middle .sdc-help-popover__arrow{margin-left:0}.sdc-help-popover__balloon--left .sdc-help-popover__arrow-wrapper--end .sdc-help-popover__arrow{margin-bottom:12px;margin-top:0}.sdc-help-popover__balloon--left .sdc-help-popover__arrow-wrapper--middle .sdc-help-popover__arrow{margin-top:0}.sdc-help-popover__balloon--right .sdc-help-popover__arrow-wrapper--end .sdc-help-popover__arrow{margin-bottom:12px;margin-top:0}.sdc-help-popover__balloon--right .sdc-help-popover__arrow-wrapper--middle .sdc-help-popover__arrow{margin-top:0}.sdc-help-popover__balloon--center-h{transform:translate(calc(var(--sdc-help-popover-trigger-width, 0px) / 2 - 50%))}.sdc-help-popover__balloon--valign-beginning{transform:translateY(calc(var(--sdc-help-popover-trigger-height, 0px) * -1 - var(--sdc-help-popover-gap, 8px)))}.sdc-help-popover__balloon--valign-middle{transform:translateY(calc(-50% - var(--sdc-help-popover-trigger-height, 0px) / 2 - var(--sdc-help-popover-gap, 8px)))}.sdc-help-popover__balloon--valign-end{transform:translateY(calc(-100% - var(--sdc-help-popover-gap, 8px)))}.sdc-help-popover__balloon--left.sdc-help-popover__balloon--valign-beginning{transform:translate(calc(-100% - var(--sdc-help-popover-gap, 8px)),calc(var(--sdc-help-popover-trigger-height, 0px) * -1 - var(--sdc-help-popover-gap, 8px)))}.sdc-help-popover__balloon--left.sdc-help-popover__balloon--valign-middle{transform:translate(calc(-100% - var(--sdc-help-popover-gap, 8px)),calc(-50% - var(--sdc-help-popover-trigger-height, 0px) / 2 - var(--sdc-help-popover-gap, 8px)))}.sdc-help-popover__balloon--left.sdc-help-popover__balloon--valign-end{transform:translate(calc(-100% - var(--sdc-help-popover-gap, 8px)),calc(-100% - var(--sdc-help-popover-gap, 8px)))}.sdc-help-popover__balloon--right.sdc-help-popover__balloon--valign-beginning{transform:translate(calc(var(--sdc-help-popover-trigger-width, 0px) + var(--sdc-help-popover-gap, 8px)),calc(var(--sdc-help-popover-trigger-height, 0px) * -1 - var(--sdc-help-popover-gap, 8px)))}.sdc-help-popover__balloon--right.sdc-help-popover__balloon--valign-middle{transform:translate(calc(var(--sdc-help-popover-trigger-width, 0px) + var(--sdc-help-popover-gap, 8px)),calc(-50% - var(--sdc-help-popover-trigger-height, 0px) / 2 - var(--sdc-help-popover-gap, 8px)))}.sdc-help-popover__balloon--right.sdc-help-popover__balloon--valign-end{transform:translate(calc(var(--sdc-help-popover-trigger-width, 0px) + var(--sdc-help-popover-gap, 8px)),calc(-100% - var(--sdc-help-popover-gap, 8px)))}::ng-deep .sdc-popover__panel.sdc-help-popover-panel-host{background:transparent;border:0;border-radius:0;box-shadow:none;max-width:none;overflow:visible;padding:0}\n"] }]
170
+ }], propDecorators: { content: [{
171
+ type: Input
172
+ }], closeButton: [{
173
+ type: Input
174
+ }], icon: [{
175
+ type: Input
176
+ }], header: [{
177
+ type: Input
178
+ }], footer: [{
179
+ type: Input
180
+ }], buttonText: [{
181
+ type: Input
182
+ }], position: [{
183
+ type: Input
184
+ }], arrowPosition: [{
185
+ type: Input
186
+ }], disabled: [{
187
+ type: Input
188
+ }], closeOnOutsideClick: [{
189
+ type: Input
190
+ }], appendTo: [{
191
+ type: Input
192
+ }], ariaLabel: [{
193
+ type: Input
194
+ }], panelClass: [{
195
+ type: Input
196
+ }], buttonClicked: [{
197
+ type: Output
198
+ }], openChange: [{
199
+ type: Output
200
+ }], popoverRef: [{
201
+ type: ViewChild,
202
+ args: [PopoverComponent]
203
+ }] } });
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC1wb3BvdmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvaGVscC1wb3BvdmVyL2hlbHAtcG9wb3Zlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2hlbHAtcG9wb3Zlci9oZWxwLXBvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFDTCxpQ0FBaUMsRUFDakMsbUNBQW1DLEVBQ25DLG1DQUFtQyxFQUNuQyw2QkFBNkIsRUFDN0IsNkJBQTZCLEVBQzlCLE1BQU0seUNBQXlDLENBQUM7QUFHakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7O0FBRWhFOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFVSCxNQUFNLE9BQU8sb0JBQW9CO0lBQ2QsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRWpELDhGQUE4RjtJQUNyRixPQUFPLEdBQXlDLElBQUksQ0FBQztJQUU5RCx5REFBeUQ7SUFDaEQsV0FBVyxHQUFHLElBQUksQ0FBQztJQUU1QiwrREFBK0Q7SUFDdEQsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUVuQixzREFBc0Q7SUFDN0MsTUFBTSxHQUFHLEVBQUUs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LFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDLG1CQUcxRCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFROzhCQU1oQyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxJQUFJO3NCQUFaLEtBQUs7Z0JBR0csTUFBTTtzQkFBZCxLQUFLO2dCQUdHLE1BQU07c0JBQWQsS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csVUFBVTtzQkFBbEIsS0FBSztnQkFHSSxhQUFhO3NCQUF0QixNQUFNO2dCQUdHLFVBQVU7c0JBQW5CLE1BQU07Z0JBRXVDLFVBQVU7c0JBQXZELFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHtcbiAgSEVMUF9QT1BPVkVSX0NMT1NFX0FSSUFfTEFCRUxfS0VZLFxuICBIRUxQX1BPUE9WRVJfREVGQVVMVF9BUklBX0xBQkVMX0tFWSxcbiAgSEVMUF9QT1BPVkVSX0RFRkFVTFRfQVJST1dfUE9TSVRJT04sXG4gIEhFTFBfUE9QT1ZFUl9ERUZBVUxUX1BPU0lUSU9OLFxuICBIRUxQX1BPUE9WRVJfUEFORUxfSE9TVF9DTEFTU1xufSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9oZWxwLXBvcG92ZXIuY29uc3QnO1xuaW1wb3J0IHR5cGUgeyBIZWxwUG9wb3ZlckFycm93UG9zaXRpb24sIEhlbHBQb3BvdmVyUG9zaXRpb24gfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2hlbHAtcG9wb3Zlci50eXBlJztcbmltcG9ydCB0eXBlIHsgUG9wb3ZlclBsYWNlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvcG9wb3Zlci50eXBlJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuLi9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50JztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQmFsw6NvIGRlIGFqdWRhIGNvbnRleHR1YWwgYWNpb25hZG8gYSBwYXJ0aXIgZGUgdW0gZWxlbWVudG8gcHJvamV0YWRvICh0cmlnZ2VyKS5cbiAqIFJldXRpbGl6YSBvIGBzZGMtcG9wb3ZlcmAgY29tbyBtb3RvciBkZSBvdmVybGF5L3Bvc2ljaW9uYW1lbnRvIChhYmVydHVyYSwgY2xpcXVlIGZvcmEsIGVzY2FwZSxcbiAqIGFuZXhhw6fDo28gYW8gYm9keS9hcHBlbmRUbywgZm9jbykuIE8gYHNkYy1oZWxwLXBvcG92ZXJgIMOpIHJlc3BvbnPDoXZlbCBhcGVuYXMgcGVsYSBhcHJlc2VudGHDp8Ojb1xuICogZG8gYmFsw6NvIChjYWJlw6dhbGhvLCBjb250ZcO6ZG8sIHJvZGFww6kgZSBzZXRhIGluZGljYXRpdmEpIGUgcGVsbyBjw6FsY3VsbyB2aXN1YWwgYWRpY2lvbmFsXG4gKiBuZWNlc3PDoXJpbyBwYXJhIGFzIHBvc2nDp8O1ZXMgYGxlZnRgL2ByaWdodGAsIHF1ZSBvIGBzZGMtcG9wb3ZlcmAgbsOjbyBtb2RlbGEgbmF0aXZhbWVudGUuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxzZGMtaGVscC1wb3BvdmVyIGNvbnRlbnQ9XCJJbmZvcm1lIGFxdWkgbyBzZXUgQ1BGXCIgcG9zaXRpb249XCJyaWdodFwiPlxuICogICA8YnV0dG9uIHNkYy1oZWxwLXBvcG92ZXItdHJpZ2dlciB0eXBlPVwiYnV0dG9uXCI+PzwvYnV0dG9uPlxuICogPC9zZGMtaGVscC1wb3BvdmVyPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1oZWxwLXBvcG92ZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIEJ1dHRvbkNvbXBvbmVudCwgUG9wb3ZlckNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWxwLXBvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vaGVscC1wb3BvdmVyLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIEhlbHBQb3BvdmVyQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIC8qKiBDb250ZcO6ZG8gZG8gYmFsw6NvOiB0ZXh0byBzaW1wbGVzIChjaGF2ZSBkZSB0cmFkdcOnw6NvIG91IHRleHRvIGxpdGVyYWwpIG91IGBUZW1wbGF0ZVJlZmAuICovXG4gIEBJbnB1dCgpIGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIEV4aWJlIG8gYm90w6NvIGRlIGZlY2hhciAoWCkgbm8gY2FiZcOnYWxobyBkbyBiYWzDo28uICovXG4gIEBJbnB1dCgpIGNsb3NlQnV0dG9uID0gdHJ1ZTtcblxuICAvKiogQ2xhc3NlIGRlIMOtY29uZSAoZXg6IEZvbnQgQXdlc29tZSkgZXhpYmlkYSBubyBjYWJlw6dhbGhvLiAqL1xuICBASW5wdXQoKSBpY29uID0gJyc7XG5cbiAgLyoqIFRleHRvIChjaGF2ZSBkZSB0cmFkdcOnw6NvKSBleGliaWRvIG5vIGNhYmXDp2FsaG8uICovXG4gIEBJbnB1dCgpIGhlYWRlciA9ICcnO1xuXG4gIC8qKiBUZXh0byAoY2hhdmUgZGUgdHJhZHXDp8OjbykgZXhpYmlkbyBubyByb2RhcMOpLiAqL1xuICBASW5wdXQoKSBmb290ZXIgPSAnJztcblxuICAvKiogVGV4dG8gKGNoYXZlIGRlIHRyYWR1w6fDo28pIGRvIGJvdMOjbyBkZSBhw6fDo28gZG8gcm9kYXDDqS4gKi9cbiAgQElucHV0KCkgYnV0dG9uVGV4dCA9ICcnO1xuXG4gIC8qKiBQb3Npw6fDo28gZG8gYmFsw6NvIGVtIHJlbGHDp8OjbyBhbyBlbGVtZW50byBkZSB0cmlnZ2VyLiAqL1xuICBASW5wdXQoKSBwb3NpdGlvbjogSGVscFBvcG92ZXJQb3NpdGlvbiA9IEhFTFBfUE9QT1ZFUl9ERUZBVUxUX1BPU0lUSU9OO1xuXG4gIC8qKiBBbGluaGFtZW50byBkYSBzZXRhIGluZGljYWRvcmEgZW0gcmVsYcOnw6NvIGFvIGxhZG8gZG8gYmFsw6NvLiAqL1xuICBASW5wdXQoKSBhcnJvd1Bvc2l0aW9uOiBIZWxwUG9wb3ZlckFycm93UG9zaXRpb24gPSBIRUxQX1BPUE9WRVJfREVGQVVMVF9BUlJPV19QT1NJVElPTjtcblxuICAvKiogRGVzYWJpbGl0YSBhIGFiZXJ0dXJhIGRvIGJhbMOjby4gKi9cbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAvKiogRmVjaGEgbyBiYWzDo28gYW8gY2xpY2FyIGZvcmEgZGVsZS4gKi9cbiAgQElucHV0KCkgY2xvc2VPbk91dHNpZGVDbGljayA9IHRydWU7XG5cbiAgLyoqIFNlbGV0b3IgZG8gZWxlbWVudG8gb25kZSBvIHBhaW5lbCBkbyBiYWzDo28gc2Vyw6EgYW5leGFkbyAocGFkcsOjbzogYGRvY3VtZW50LmJvZHlgKS4gKi9cbiAgQElucHV0KCkgYXBwZW5kVG8/OiBzdHJpbmc7XG5cbiAgLyoqIFNvYnJlc2NyZXZlIG8gdGV4dG8gKGNoYXZlIGRlIHRyYWR1w6fDo28pIHVzYWRvIGNvbW8gYGFyaWEtbGFiZWxgIGRvIGJhbMOjby4gKi9cbiAgQElucHV0KCkgYXJpYUxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKiBDbGFzc2VzIGFkaWNpb25haXMgYXBsaWNhZGFzIGFvIHBhaW5lbCBkbyBiYWzDo28uICovXG4gIEBJbnB1dCgpIHBhbmVsQ2xhc3M/OiBzdHJpbmc7XG5cbiAgLyoqIEVtaXRpZG8gcXVhbmRvIG8gdXN1w6FyaW8gY2xpY2Egbm8gYm90w6NvIGRlIGHDp8OjbyBkbyByb2RhcMOpLiAqL1xuICBAT3V0cHV0KCkgYnV0dG9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKiogRW1pdGlkbyBxdWFuZG8gbyBlc3RhZG8gZGUgYWJlcnR1cmEgZG8gYmFsw6NvIG11ZGEgKGNsaXF1ZSBubyB0cmlnZ2VyLCBYLCBmb3JhLCBvdSBzaG93KCkvaGlkZSgpKS4gKi9cbiAgQE91dHB1dCgpIG9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQFZpZXdDaGlsZChQb3BvdmVyQ29tcG9uZW50KSBwcml2YXRlIHJlYWRvbmx5IHBvcG92ZXJSZWY/OiBQb3BvdmVyQ29tcG9uZW50O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjbG9zZUFyaWFMYWJlbEtleSA9IEhFTFBfUE9QT1ZFUl9DTE9TRV9BUklBX0xBQkVMX0tFWTtcblxuICBwcm90ZWN0ZWQgb3BlbiA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgdHJpZ2dlcldpZHRoID0gMDtcbiAgcHJvdGVjdGVkIHRyaWdnZXJIZWlnaHQgPSAwO1xuXG4gIHByb3RlY3RlZCBnZXQgY29udGVudElzU3RyaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5jb250ZW50ID09PSAnc3RyaW5nJztcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgY29udGVudFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMuY29udGVudCA9PT0gJ3N0cmluZycgPyB0aGlzLmNvbnRlbnQgOiAnJztcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgY29udGVudFRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmID8gdGhpcy5jb250ZW50IDogbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaGFzSWNvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmljb247XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGhhc0hlYWRlclRleHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5oZWFkZXI7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGhhc0hlYWRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXNIZWFkZXJUZXh0IHx8IHRoaXMuaGFzSWNvbiB8fCB0aGlzLmNsb3NlQnV0dG9uO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBoYXNGb290ZXJUZXh0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZm9vdGVyO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBoYXNCdXR0b25UZXh0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuYnV0dG9uVGV4dDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaGFzRm9vdGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhc0Zvb3RlclRleHQgfHwgdGhpcy5oYXNCdXR0b25UZXh0O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBpc1RvcE9yQm90dG9tKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBvc2l0aW9uID09PSAndG9wJyB8fCB0aGlzLnBvc2l0aW9uID09PSAnYm90dG9tJztcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaXNMZWZ0T3JSaWdodCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wb3NpdGlvbiA9PT0gJ2xlZnQnIHx8IHRoaXMucG9zaXRpb24gPT09ICdyaWdodCc7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHJlc29sdmVkUGxhY2VtZW50KCk6IFBvcG92ZXJQbGFjZW1lbnQge1xuICAgIGlmICh0aGlzLnBvc2l0aW9uID09PSAndG9wJykge1xuICAgICAgcmV0dXJuIHRoaXMuYXJyb3dQb3NpdGlvbiA9PT0gJ2VuZCcgPyAndG9wLWVuZCcgOiAndG9wLXN0YXJ0JztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0xlZnRPclJpZ2h0KSB7XG4gICAgICByZXR1cm4gJ2JvdHRvbS1zdGFydCc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYXJyb3dQb3NpdGlvbiA9PT0gJ2VuZCcgPyAnYm90dG9tLWVuZCcgOiAnYm90dG9tLXN0YXJ0JztcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgcmVzb2x2ZWRBcmlhTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5hcmlhTGFiZWwpIHtcbiAgICAgIHJldHVybiB0aGlzLmFyaWFMYWJlbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oZWFkZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmhlYWRlcjtcbiAgICB9XG5cbiAgICByZXR1cm4gSEVMUF9QT1BPVkVSX0RFRkFVTFRfQVJJQV9MQUJFTF9LRVk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHJlc29sdmVkUGFuZWxDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMucGFuZWxDbGFzcyA/IFtIRUxQX1BPUE9WRVJfUEFORUxfSE9TVF9DTEFTUywgdGhpcy5wYW5lbENsYXNzXSA6IFtIRUxQX1BPUE9WRVJfUEFORUxfSE9TVF9DTEFTU107XG4gIH1cblxuICAvKiogQWJyZSBvIGJhbMOjbyBwcm9ncmFtYXRpY2FtZW50ZS4gKi9cbiAgc2hvdygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLm9wZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KHRydWUpO1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMubWVhc3VyZVRyaWdnZXIoKSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKiogRmVjaGEgbyBiYWzDo28gcHJvZ3JhbWF0aWNhbWVudGUuICovXG4gIGhpZGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9wZW4pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB0aGlzLm9wZW5DaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKiogQWx0ZXJuYSBhIHZpc2liaWxpZGFkZSBkbyBiYWzDo28uICovXG4gIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICB0aGlzLmhpZGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zaG93KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmJ1dHRvbkNsaWNrZWQuZW1pdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uT3BlbkNoYW5nZShpc09wZW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLm9wZW4gPSBpc09wZW47XG4gICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQoaXNPcGVuKTtcblxuICAgIGlmIChpc09wZW4pIHtcbiAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMubWVhc3VyZVRyaWdnZXIoKSk7XG4gICAgfVxuXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIG1lYXN1cmVUcmlnZ2VyKCk6IHZvaWQge1xuICAgIGNvbnN0IHRyaWdnZXIgPSB0aGlzLnBvcG92ZXJSZWY/LnRyaWdnZXJSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBpZiAoIXRyaWdnZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZWN0ID0gdHJpZ2dlci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB0aGlzLnRyaWdnZXJXaWR0aCA9IHJlY3Qud2lkdGg7XG4gICAgdGhpcy50cmlnZ2VySGVpZ2h0ID0gcmVjdC5oZWlnaHQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxzZGMtcG9wb3ZlclxuICBbb3Blbl09XCJvcGVuXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2Nsb3NlT25PdXRzaWRlQ2xpY2tdPVwiY2xvc2VPbk91dHNpZGVDbGlja1wiXG4gIFtwbGFjZW1lbnRdPVwicmVzb2x2ZWRQbGFjZW1lbnRcIlxuICBbYXBwZW5kVG9dPVwiYXBwZW5kVG9cIlxuICBbcGFuZWxDbGFzc109XCJyZXNvbHZlZFBhbmVsQ2xhc3NcIlxuICBbYXJpYUxhYmVsXT1cInJlc29sdmVkQXJpYUxhYmVsXCJcbiAgKG9wZW5DaGFuZ2UpPVwib25PcGVuQ2hhbmdlKCRldmVudClcIlxuPlxuICA8ZGl2IHNkYy1wb3BvdmVyLXRyaWdnZXIgY2xhc3M9XCJzZGMtaGVscC1wb3BvdmVyX190cmlnZ2VyXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NkYy1oZWxwLXBvcG92ZXItdHJpZ2dlcl1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICBzZGMtcG9wb3Zlci1jb250ZW50XG4gICAgY2xhc3M9XCJzZGMtaGVscC1wb3BvdmVyX19iYWxsb29uXCJcbiAgICBbY2xhc3Muc2RjLWhlbHAtcG9wb3Zlcl9fYmFsbG9vbi0tdG9wXT1cInBvc2l0aW9uID09PSAndG9wJ1wiXG4gICAgW2NsYXNzLnNkYy1oZWxwLXBvcG92ZXJfX2JhbGxvb24tLXJpZ2h0XT1cInBvc2l0aW9uID09PSAncmlnaHQnXCJcbiAgICBbY2xhc3Muc2RjLWhlbHAtcG9wb3Zlcl9fYmFsbG9vbi0tYm90dG9tXT1cInBvc2l0aW9uID09PSAnYm90dG9tJ1wiXG4gICAgW2NsYXNzLnNkYy1oZWxwLXBvcG92ZXJfX2JhbGxvb24tLWxlZnRdPVwicG9zaXRpb24gPT09ICdsZWZ0J1wiXG4gICAgW2NsYXNzLnNkYy1oZWxwLXBvcG92ZXJfX2JhbGxvb24tLWNlbnRlci1oXT1cImlzVG9wT3JCb3R0b20gJiYgYXJyb3dQb3NpdGlvbiA9PT0gJ21pZGRsZSdcIlxuICAgIFtjbGFzcy5zZGMtaGVscC1wb3BvdmVyX19iYWxsb29uLS12YWxpZ24tYmVnaW5uaW5nXT1cImlzTGVmdE9yUmlnaHQgJiYgYXJyb3dQb3NpdGlvbiA9PT0gJ2JlZ2lubmluZydcIlxuICAgIFtjbGFzcy5zZGMtaGVscC1wb3BvdmVyX19iYWxsb29uLS12YWxpZ24tbWlkZGxlXT1cImlzTGVmdE9yUmlnaHQgJiYgYXJyb3dQb3NpdGlvbiA9PT0gJ21pZGRsZSdcIlxuICAgIFtjbGFzcy5zZGMtaGVscC1wb3BvdmVyX19iYWxsb29uLS12YWxpZ24tZW5kXT1cImlzTGVmdE9yUmlnaHQgJiYgYXJyb3dQb3NpdGlvbiA9PT0gJ2VuZCdcIlxuICAgIFtzdHlsZS4tLXNkYy1oZWxwLXBvcG92ZXItdHJpZ2dlci13aWR0aC5weF09XCJ0cmlnZ2VyV2lkdGhcIlxuICAgIFtzdHlsZS4tLXNkYy1oZWxwLXBvcG92ZXItdHJpZ2dlci1oZWlnaHQucHhdPVwidHJpZ2dlckhlaWdodFwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNkYy1oZWxwLXBvcG92ZXJfX2Fycm93LXdyYXBwZXJcIlxuICAgICAgW2NsYXNzLnNkYy1oZWxwLXBvcG92ZXJfX2Fycm93LXdyYXBwZXItLWJlZ2lubmluZ109XCJhcnJvd1Bvc2l0aW9uID09PSAnYmVnaW5uaW5nJ1wiXG4gICAgICBbY2xhc3Muc2RjLWhlbHAtcG9wb3Zlcl9fYXJyb3ctd3JhcHBlci0tbWlkZGxlXT1cImFycm93UG9zaXRpb24gPT09ICdtaWRkbGUnXCJcbiAgICAgIFtjbGFzcy5zZGMtaGVscC1wb3BvdmVyX19hcnJvdy13cmFwcGVyLS1lbmRdPVwiYXJyb3dQb3NpdGlvbiA9PT0gJ2VuZCdcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtaGVscC1wb3BvdmVyX19hcnJvd1wiPjwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInNkYy1oZWxwLXBvcG92ZXJfX3BhbmVsXCI+XG4gICAgICBAaWYgKGhhc0hlYWRlcikge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzZGMtaGVscC1wb3BvdmVyX19oZWFkZXJcIlxuICAgICAgICAgIFtjbGFzcy5zZGMtaGVscC1wb3BvdmVyX19oZWFkZXItLXNwYWNlLWJldHdlZW5dPVwiaGFzSGVhZGVyVGV4dCB8fCBoYXNJY29uXCJcbiAgICAgICAgICBbY2xhc3Muc2RjLWhlbHAtcG9wb3Zlcl9faGVhZGVyLS1lbmRdPVwiIShoYXNIZWFkZXJUZXh0IHx8IGhhc0ljb24pICYmIGNsb3NlQnV0dG9uXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBpZiAoaGFzSGVhZGVyVGV4dCB8fCBoYXNJY29uKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2RjLWhlbHAtcG9wb3Zlcl9faGVhZGVyLXRleHRcIj5cbiAgICAgICAgICAgICAgQGlmIChoYXNJY29uKSB7XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJzZGMtaGVscC1wb3BvdmVyX19pY29uXCIgW2NsYXNzXT1cImljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBAaWYgKGhhc0hlYWRlclRleHQpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1oZWxwLXBvcG92ZXJfX2hlYWRlci1sYWJlbFwiPnt7IGhlYWRlciB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChjbG9zZUJ1dHRvbikge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzZGMtaGVscC1wb3BvdmVyX19jbG9zZVwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY2xvc2VBcmlhTGFiZWxLZXkgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiaGlkZSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLWhlbHAtcG9wb3Zlcl9fY29udGVudFwiPlxuICAgICAgICBAaWYgKGNvbnRlbnRJc1N0cmluZykge1xuICAgICAgICAgIHt7IGNvbnRlbnRUZXh0IHwgdHJhbnNsYXRlIH19XG4gICAgICAgIH0gQGVsc2UgaWYgKGNvbnRlbnRUZW1wbGF0ZSkge1xuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuXG4gICAgICBAaWYgKGhhc0Zvb3Rlcikge1xuICAgICAgICA8ZGl2IGNsYXNzPVwic2RjLWhlbHAtcG9wb3Zlcl9fc2VwYXJhdG9yXCI+PC9kaXY+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwic2RjLWhlbHAtcG9wb3Zlcl9fZm9vdGVyXCJcbiAgICAgICAgICBbY2xhc3Muc2RjLWhlbHAtcG9wb3Zlcl9fZm9vdGVyLS1zcGFjZS1iZXR3ZWVuXT1cImhhc0Zvb3RlclRleHRcIlxuICAgICAgICAgIFtjbGFzcy5zZGMtaGVscC1wb3BvdmVyX19mb290ZXItLWVuZF09XCIhaGFzRm9vdGVyVGV4dFwiXG4gICAgICAgID5cbiAgICAgICAgICBAaWYgKGhhc0Zvb3RlclRleHQpIHtcbiAgICAgICAgICAgIDxwIGNsYXNzPVwic2RjLWhlbHAtcG9wb3Zlcl9fZm9vdGVyLXRleHRcIj57eyBmb290ZXIgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChoYXNCdXR0b25UZXh0KSB7XG4gICAgICAgICAgICA8c2RjLWJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cInNkYy1oZWxwLXBvcG92ZXJfX2Zvb3Rlci1idXR0b25cIlxuICAgICAgICAgICAgICBbbGFiZWxdPVwiYnV0dG9uVGV4dFwiXG4gICAgICAgICAgICAgIHByaW9yaXR5PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgIChjbGlja2VkKT1cIm9uQnV0dG9uQ2xpY2tlZCgpXCJcbiAgICAgICAgICAgID48L3NkYy1idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3NkYy1wb3BvdmVyPlxuIl19
@@ -93,11 +93,11 @@ export class HyperlinkComponent {
93
93
  return typeof value === 'string' && value.trim().length > 0;
94
94
  }
95
95
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HyperlinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
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
+ 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-link-hover-color: var(--s-color-primary-700, #1e63c4);--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}.hyperlink:not(.hyperlink--neutral):hover,.hyperlink:not(.hyperlink--neutral):focus-visible{color:var(--sdc-hyperlink-link-hover-color)}\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 });
97
97
  }
98
98
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HyperlinkComponent, decorators: [{
99
99
  type: Component,
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
+ 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-link-hover-color: var(--s-color-primary-700, #1e63c4);--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}.hyperlink:not(.hyperlink--neutral):hover,.hyperlink:not(.hyperlink--neutral):focus-visible{color:var(--sdc-hyperlink-link-hover-color)}\n"] }]
101
101
  }], propDecorators: { href: [{
102
102
  type: Input
103
103
  }], text: [{
@@ -131,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
131
131
  }], domainFilterClick: [{
132
132
  type: Output
133
133
  }] } });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlwZXJsaW5rLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvaHlwZXJsaW5rL2h5cGVybGluay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2h5cGVybGluay9oeXBlcmxpbmsuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLDRCQUE0QixFQUM1QiwwQkFBMEIsRUFDMUIscUNBQXFDLEVBQ3JDLDZCQUE2QixFQUM3QixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLCtCQUErQixFQUMvQiwwQkFBMEIsRUFDMUIscUJBQXFCLEVBQ3JCLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdEIsMkJBQTJCLEVBQzNCLG1CQUFtQixFQUNuQixzQkFBc0IsRUFDdkIsTUFBTSxzQ0FBc0MsQ0FBQzs7OztBQW1COUMsTUFBTSxPQUFPLGtCQUFrQjtJQUNwQixJQUFJLEdBQW1CLHNCQUFzQixDQUFDO0lBQzlDLElBQUksR0FBbUIsc0JBQXNCLENBQUM7SUFDOUMsU0FBUyxHQUFtQiw0QkFBNEIsQ0FBQztJQUN6RCxpQkFBaUIsR0FBbUIscUNBQXFDLENBQUM7SUFDMUUsSUFBSSxHQUFtQixzQkFBc0IsQ0FBQztJQUM5QyxZQUFZLEdBQTBCLCtCQUErQixDQUFDO0lBQ3RFLEtBQUssQ0FB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QVE1QixrQkFBa0I7a0JBVDlCLFNBQVM7OEJBQ0MsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLGNBQzVCLElBQUksWUFDTixlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLFFBQVE7OEJBR2hDLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBTUUxfSEVMUEVSIH0gZnJvbSAnLi4vLi4vY29yZS9oZWxwZXJzL3NxbC1oZWxwZXInO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9IWVBFUkxJTktfQVBQRUFSQU5DRSxcbiAgREVGQVVMVF9IWVBFUkxJTktfQVJJQV9MQUJFTCxcbiAgREVGQVVMVF9IWVBFUkxJTktfRElTQUJMRUQsXG4gIERFRkFVTFRfSFlQRVJMSU5LX0RPTUFJTl9GSUxURVJfVE9LRU4sXG4gIERFRkFVTFRfSFlQRVJMSU5LX0hPVkVSX1NUWUxFLFxuICBERUZBVUxUX0hZUEVSTElOS19IUkVGLFxuICBERUZBVUxUX0hZUEVSTElOS19JQ09OLFxuICBERUZBVUxUX0hZUEVSTElOS19JQ09OX1BPU0lUSU9OLFxuICBERUZBVUxUX0hZUEVSTElOS19SRVFVSVJFRCxcbiAgREVGQVVMVF9IWVBFUkxJTktfUkVMLFxuICBERUZBVUxUX0hZUEVSTElOS19UQVJHRVQsXG4gIERFRkFVTFRfSFlQRVJMSU5LX1RFWFQsXG4gIERFRkFVTFRfSFlQRVJMSU5LX1VOREVSTElORSxcbiAgSFlQRVJMSU5LX0NPTE9SX1ZBUixcbiAgSFlQRVJMSU5LX1JFTF9OT09QRU5FUlxufSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9oeXBlcmxpbmsuY29uc3QnO1xuaW1wb3J0IHR5cGUge1xuICBIeXBlcmxpbmtBcHBlYXJhbmNlLFxuICBIeXBlcmxpbmtIb3ZlclN0eWxlLFxuICBIeXBlcmxpbmtJY29uUG9zaXRpb24sXG4gIEh5cGVybGlua1RhcmdldCxcbiAgSHlwZXJsaW5rVW5kZXJsaW5lLFxuICBIeXBlcmxpbmtWYWx1ZVxufSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2h5cGVybGluay50eXBlJztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnc2RjLWh5cGVybGluaycsXG4gIHRlbXBsYXRlVXJsOiAnLi9oeXBlcmxpbmsuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vaHlwZXJsaW5rLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIEh5cGVybGlua0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGhyZWY6IEh5cGVybGlua1ZhbHVlID0gREVGQVVMVF9IWVBFUkxJTktfSFJFRjtcbiAgQElucHV0KCkgdGV4dDogSHlwZXJsaW5rVmFsdWUgPSBERUZBVUxUX0hZUEVSTElOS19URVhUO1xuICBASW5wdXQoKSBhcmlhTGFiZWw6IEh5cGVybGlua1ZhbHVlID0gREVGQVVMVF9IWVBFUkxJTktfQVJJQV9MQUJFTDtcbiAgQElucHV0KCkgZG9tYWluRmlsdGVyVG9rZW46IEh5cGVybGlua1ZhbHVlID0gREVGQVVMVF9IWVBFUkxJTktfRE9NQUlOX0ZJTFRFUl9UT0tFTjtcbiAgQElucHV0KCkgaWNvbjogSHlwZXJsaW5rVmFsdWUgPSBERUZBVUxUX0hZUEVSTElOS19JQ09OO1xuICBASW5wdXQoKSBpY29uUG9zaXRpb246IEh5cGVybGlua0ljb25Qb3NpdGlvbiA9IERFRkFVTFRfSFlQRVJMSU5LX0lDT05fUE9TSVRJT047XG4gIEBJbnB1dCgpIGNvbG9yPzogc3RyaW5nO1xuICBASW5wdXQoKSB0YXJnZXQ6IEh5cGVybGlua1RhcmdldCA9IERFRkFVTFRfSFlQRVJMSU5LX1RBUkdFVDtcbiAgQElucHV0KCkgcmVsID0gREVGQVVMVF9IWVBFUkxJTktfUkVMO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IERFRkFVTFRfSFlQRVJMSU5LX0RJU0FCTEVEO1xuICBASW5wdXQoKSByZXF1aXJlZCA9IERFRkFVTFRfSFlQRVJMSU5LX1JFUVVJUkVEO1xuICBASW5wdXQoKSB1bmRlcmxpbmU6IEh5cGVybGlua1VuZGVybGluZSA9IERFRkFVTFRfSFlQRVJMSU5LX1VOREVSTElORTtcbiAgQElucHV0KCkgYXBwZWFyYW5jZTogSHlwZXJsaW5rQXBwZWFyYW5jZSA9IERFRkFVTFRfSFlQRVJMSU5LX0FQUEVBUkFOQ0U7XG4gIEBJbnB1dCgpIGhvdmVyU3R5bGU6IEh5cGVybGlua0hvdmVyU3R5bGUgPSBERUZBVUxUX0hZUEVSTElOS19IT1ZFUl9TVFlMRTtcblxuICBAT3V0cHV0KCkgY2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBkb21haW5GaWx0ZXJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGdldCBpc0FuY2hvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXNDb250ZW50KHRoaXMuaHJlZik7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRIcmVmKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmhhc0NvbnRlbnQodGhpcy5ocmVmKSA/ICh0aGlzLmhyZWYgYXMgc3RyaW5nKS50cmltKCkgOiBudWxsO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkVGV4dCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmhhc0NvbnRlbnQodGhpcy50ZXh0KSkge1xuICAgICAgcmV0dXJuICh0aGlzLnRleHQgYXMgc3RyaW5nKS50cmltKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGFzQ29udGVudCh0aGlzLmRvbWFpbkZpbHRlclRva2VuKSkge1xuICAgICAgcmV0dXJuIFNRTF9IRUxQRVIuZm9ybWF0RG9tYWluRmlsdGVyVG9rZW4oKHRoaXMuZG9tYWluRmlsdGVyVG9rZW4gYXMgc3RyaW5nKS50cmltKCkpO1xuICAgIH1cblxuICAgIHJldHVybiBERUZBVUxUX0hZUEVSTElOS19URVhUO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaGFzQ29udGVudCh0aGlzLmFyaWFMYWJlbCkpIHtcbiAgICAgIHJldHVybiAodGhpcy5hcmlhTGFiZWwgYXMgc3RyaW5nKS50cmltKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGFzQ29udGVudCh0aGlzLnRleHQpKSB7XG4gICAgICByZXR1cm4gKHRoaXMudGV4dCBhcyBzdHJpbmcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oYXNDb250ZW50KHRoaXMuZG9tYWluRmlsdGVyVG9rZW4pKSB7XG4gICAgICByZXR1cm4gU1FMX0hFTFBFUi5mb3JtYXREb21haW5GaWx0ZXJUb2tlbigodGhpcy5kb21haW5GaWx0ZXJUb2tlbiBhcyBzdHJpbmcpLnRyaW0oKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIERFRkFVTFRfSFlQRVJMSU5LX0FSSUFfTEFCRUw7XG4gIH1cblxuICBnZXQgc2hvd0ljb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzQ29udGVudCh0aGlzLmljb24pO1xuICB9XG5cbiAgZ2V0IGljb25DbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNob3dJY29uID8gKCh0aGlzLmljb24gYXMgc3RyaW5nKS50cmltKCkgfHwgJycpIDogJyc7XG4gIH1cblxuICBnZXQgY29tcHV0ZWRSZWwoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMucmVsLnRyaW0oKSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVsLnRyaW0oKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy50YXJnZXQgPT09ICdfYmxhbmsnID8gSFlQRVJMSU5LX1JFTF9OT09QRU5FUiA6IG51bGw7XG4gIH1cblxuICBnZXQgcm9vdENsYXNzZXMoKTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4ge1xuICAgIHJldHVybiB7XG4gICAgICAnaHlwZXJsaW5rLS1uZXV0cmFsJzogdGhpcy5hcHBlYXJhbmNlID09PSAnbmV1dHJhbCcsXG4gICAgICAnaHlwZXJsaW5rLS11bmRlcmxpbmUnOiB0aGlzLnVuZGVybGluZSA9PT0gJ2Fsd2F5cycsXG4gICAgICAnaHlwZXJsaW5rLS1ob3Zlci11bmRlcmxpbmUnOiB0aGlzLmhvdmVyU3R5bGUgPT09ICd1bmRlcmxpbmUnICYmIHRoaXMudW5kZXJsaW5lID09PSAnbm9uZScsXG4gICAgICAnaHlwZXJsaW5rLS1ob3Zlci1idXR0b24nOiB0aGlzLmhvdmVyU3R5bGUgPT09ICdidXR0b24nLFxuICAgICAgJ2h5cGVybGluay0taG92ZXItbm9uZSc6IHRoaXMuaG92ZXJTdHlsZSA9PT0gJ25vbmUnLFxuICAgICAgJ2h5cGVybGluay0tZGlzYWJsZWQnOiB0aGlzLmRpc2FibGVkLFxuICAgICAgJ2h5cGVybGluay0tYnV0dG9uLWVsZW1lbnQnOiAhdGhpcy5pc0FuY2hvclxuICAgIH07XG4gIH1cblxuICBnZXQgY3VzdG9tU3R5bGVzKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4ge1xuICAgICAgW0hZUEVSTElOS19DT0xPUl9WQVJdOiB0aGlzLmNvbG9yPy50cmltKCkgfHwgbnVsbFxuICAgIH07XG4gIH1cblxuICBoYW5kbGVJbnRlcmFjdGlvbihldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY2xpY2tlZC5lbWl0KGV2ZW50KTtcblxuICAgIGlmICh0aGlzLmhhc0NvbnRlbnQodGhpcy5kb21haW5GaWx0ZXJUb2tlbikpIHtcbiAgICAgIHRoaXMuZG9tYWluRmlsdGVyQ2xpY2suZW1pdCgodGhpcy5kb21haW5GaWx0ZXJUb2tlbiBhcyBzdHJpbmcpLnRyaW0oKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYXNDb250ZW50KHZhbHVlOiBIeXBlcmxpbmtWYWx1ZSk6IHZhbHVlIGlzIHN0cmluZyB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUudHJpbSgpLmxlbmd0aCA+IDA7XG4gIH1cbn0iLCJAaWYgKGlzQW5jaG9yKSB7XG4gIDxhXG4gICAgY2xhc3M9XCJoeXBlcmxpbmtcIlxuICAgIFtuZ0NsYXNzXT1cInJvb3RDbGFzc2VzXCJcbiAgICBbbmdTdHlsZV09XCJjdXN0b21TdHlsZXNcIlxuICAgIFthdHRyLmhyZWZdPVwicmVzb2x2ZWRIcmVmXCJcbiAgICBbYXR0ci50YXJnZXRdPVwidGFyZ2V0XCJcbiAgICBbYXR0ci5yZWxdPVwiY29tcHV0ZWRSZWxcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVzb2x2ZWRBcmlhTGFiZWwgfCB0cmFuc2xhdGVcIlxuICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFthdHRyLnRhYmluZGV4XT1cImRpc2FibGVkID8gLTEgOiBudWxsXCJcbiAgICAoY2xpY2spPVwiaGFuZGxlSW50ZXJhY3Rpb24oJGV2ZW50KVwiXG4gID5cbiAgICBAaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnICYmIHNob3dJY29uKSB7XG4gICAgICA8aSBbY2xhc3NdPVwiaWNvbkNsYXNzXCIgY2xhc3M9XCJoeXBlcmxpbmtfX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgfVxuXG4gICAgPHNwYW4gY2xhc3M9XCJoeXBlcmxpbmtfX3RleHRcIj5cbiAgICAgIHt7IHJlc29sdmVkVGV4dCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgQGlmIChyZXF1aXJlZCkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkLWZpZWxkIGh5cGVybGlua19fcmVxdWlyZWRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4qPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj57eyAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5yZXF1aXJlZF9maWVsZCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICB9XG4gICAgPC9zcGFuPlxuXG4gICAgQGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcgJiYgc2hvd0ljb24pIHtcbiAgICAgIDxpIFtjbGFzc109XCJpY29uQ2xhc3NcIiBjbGFzcz1cImh5cGVybGlua19faWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICB9XG4gIDwvYT5cbn0gQGVsc2Uge1xuICA8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJoeXBlcmxpbmtcIlxuICAgIFtuZ0NsYXNzXT1cInJvb3RDbGFzc2VzXCJcbiAgICBbbmdTdHlsZV09XCJjdXN0b21TdHlsZXNcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVzb2x2ZWRBcmlhTGFiZWwgfCB0cmFuc2xhdGVcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgKGNsaWNrKT1cImhhbmRsZUludGVyYWN0aW9uKCRldmVudClcIlxuICA+XG4gICAgQGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0JyAmJiBzaG93SWNvbikge1xuICAgICAgPGkgW2NsYXNzXT1cImljb25DbGFzc1wiIGNsYXNzPVwiaHlwZXJsaW5rX19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIH1cblxuICAgIDxzcGFuIGNsYXNzPVwiaHlwZXJsaW5rX190ZXh0XCI+XG4gICAgICB7eyByZXNvbHZlZFRleHQgfCB0cmFuc2xhdGUgfX1cbiAgICAgIEBpZiAocmVxdWlyZWQpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZC1maWVsZCBoeXBlcmxpbmtfX3JlcXVpcmVkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+Kjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+e3sgJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucmVxdWlyZWRfZmllbGQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cblxuICAgIEBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnICYmIHNob3dJY29uKSB7XG4gICAgICA8aSBbY2xhc3NdPVwiaWNvbkNsYXNzXCIgY2xhc3M9XCJoeXBlcmxpbmtfX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgfVxuICA8L2J1dHRvbj5cbn0iXX0=
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlwZXJsaW5rLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvaHlwZXJsaW5rL2h5cGVybGluay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2h5cGVybGluay9oeXBlcmxpbmsuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsNEJBQTRCLEVBQzVCLDRCQUE0QixFQUM1QiwwQkFBMEIsRUFDMUIscUNBQXFDLEVBQ3JDLDZCQUE2QixFQUM3QixzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLCtCQUErQixFQUMvQiwwQkFBMEIsRUFDMUIscUJBQXFCLEVBQ3JCLHdCQUF3QixFQUN4QixzQkFBc0IsRUFDdEIsMkJBQTJCLEVBQzNCLG1CQUFtQixFQUNuQixzQkFBc0IsRUFDdkIsTUFBTSxzQ0FBc0MsQ0FBQzs7OztBQW1COUMsTUFBTSxPQUFPLGtCQUFrQjtJQUNwQixJQUFJLEdBQW1CLHNCQUFzQixDQUFDO0lBQzlDLElBQUksR0FBbUIsc0JBQXNCLENBQUM7SUFDOUMsU0FBUyxHQUFtQiw0QkFBNEIsQ0FBQztJQUN6RCxpQkFBaUIsR0FBbUIscUNBQXFDLENBQUM7SUFDMUUsSUFBSSxHQUFtQixzQkFBc0IsQ0FBQztJQUM5QyxZQUFZLEdBQTBCLCtCQUErQixDQUFDO0lBQ3RFLEtBQUssQ0FB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QVE1QixrQkFBa0I7a0JBVDlCLFNBQVM7OEJBQ0MsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLGNBQzVCLElBQUksWUFDTixlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLFFBQVE7OEJBR2hDLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBTUUxfSEVMUEVSIH0gZnJvbSAnLi4vLi4vY29yZS9oZWxwZXJzL3NxbC1oZWxwZXInO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9IWVBFUkxJTktfQVBQRUFSQU5DRSxcbiAgREVGQVVMVF9IWVBFUkxJTktfQVJJQV9MQUJFTCxcbiAgREVGQVVMVF9IWVBFUkxJTktfRElTQUJMRUQsXG4gIERFRkFVTFRfSFlQRVJMSU5LX0RPTUFJTl9GSUxURVJfVE9LRU4sXG4gIERFRkFVTFRfSFlQRVJMSU5LX0hPVkVSX1NUWUxFLFxuICBERUZBVUxUX0hZUEVSTElOS19IUkVGLFxuICBERUZBVUxUX0hZUEVSTElOS19JQ09OLFxuICBERUZBVUxUX0hZUEVSTElOS19JQ09OX1BPU0lUSU9OLFxuICBERUZBVUxUX0hZUEVSTElOS19SRVFVSVJFRCxcbiAgREVGQVVMVF9IWVBFUkxJTktfUkVMLFxuICBERUZBVUxUX0hZUEVSTElOS19UQVJHRVQsXG4gIERFRkFVTFRfSFlQRVJMSU5LX1RFWFQsXG4gIERFRkFVTFRfSFlQRVJMSU5LX1VOREVSTElORSxcbiAgSFlQRVJMSU5LX0NPTE9SX1ZBUixcbiAgSFlQRVJMSU5LX1JFTF9OT09QRU5FUlxufSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9oeXBlcmxpbmsuY29uc3QnO1xuaW1wb3J0IHR5cGUge1xuICBIeXBlcmxpbmtBcHBlYXJhbmNlLFxuICBIeXBlcmxpbmtIb3ZlclN0eWxlLFxuICBIeXBlcmxpbmtJY29uUG9zaXRpb24sXG4gIEh5cGVybGlua1RhcmdldCxcbiAgSHlwZXJsaW5rVW5kZXJsaW5lLFxuICBIeXBlcmxpbmtWYWx1ZVxufSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2h5cGVybGluay50eXBlJztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnc2RjLWh5cGVybGluaycsXG4gIHRlbXBsYXRlVXJsOiAnLi9oeXBlcmxpbmsuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vaHlwZXJsaW5rLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIEh5cGVybGlua0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGhyZWY6IEh5cGVybGlua1ZhbHVlID0gREVGQVVMVF9IWVBFUkxJTktfSFJFRjtcbiAgQElucHV0KCkgdGV4dDogSHlwZXJsaW5rVmFsdWUgPSBERUZBVUxUX0hZUEVSTElOS19URVhUO1xuICBASW5wdXQoKSBhcmlhTGFiZWw6IEh5cGVybGlua1ZhbHVlID0gREVGQVVMVF9IWVBFUkxJTktfQVJJQV9MQUJFTDtcbiAgQElucHV0KCkgZG9tYWluRmlsdGVyVG9rZW46IEh5cGVybGlua1ZhbHVlID0gREVGQVVMVF9IWVBFUkxJTktfRE9NQUlOX0ZJTFRFUl9UT0tFTjtcbiAgQElucHV0KCkgaWNvbjogSHlwZXJsaW5rVmFsdWUgPSBERUZBVUxUX0hZUEVSTElOS19JQ09OO1xuICBASW5wdXQoKSBpY29uUG9zaXRpb246IEh5cGVybGlua0ljb25Qb3NpdGlvbiA9IERFRkFVTFRfSFlQRVJMSU5LX0lDT05fUE9TSVRJT047XG4gIEBJbnB1dCgpIGNvbG9yPzogc3RyaW5nO1xuICBASW5wdXQoKSB0YXJnZXQ6IEh5cGVybGlua1RhcmdldCA9IERFRkFVTFRfSFlQRVJMSU5LX1RBUkdFVDtcbiAgQElucHV0KCkgcmVsID0gREVGQVVMVF9IWVBFUkxJTktfUkVMO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IERFRkFVTFRfSFlQRVJMSU5LX0RJU0FCTEVEO1xuICBASW5wdXQoKSByZXF1aXJlZCA9IERFRkFVTFRfSFlQRVJMSU5LX1JFUVVJUkVEO1xuICBASW5wdXQoKSB1bmRlcmxpbmU6IEh5cGVybGlua1VuZGVybGluZSA9IERFRkFVTFRfSFlQRVJMSU5LX1VOREVSTElORTtcbiAgQElucHV0KCkgYXBwZWFyYW5jZTogSHlwZXJsaW5rQXBwZWFyYW5jZSA9IERFRkFVTFRfSFlQRVJMSU5LX0FQUEVBUkFOQ0U7XG4gIEBJbnB1dCgpIGhvdmVyU3R5bGU6IEh5cGVybGlua0hvdmVyU3R5bGUgPSBERUZBVUxUX0hZUEVSTElOS19IT1ZFUl9TVFlMRTtcblxuICBAT3V0cHV0KCkgY2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBkb21haW5GaWx0ZXJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIGdldCBpc0FuY2hvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXNDb250ZW50KHRoaXMuaHJlZik7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRIcmVmKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmhhc0NvbnRlbnQodGhpcy5ocmVmKSA/ICh0aGlzLmhyZWYgYXMgc3RyaW5nKS50cmltKCkgOiBudWxsO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkVGV4dCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmhhc0NvbnRlbnQodGhpcy50ZXh0KSkge1xuICAgICAgcmV0dXJuICh0aGlzLnRleHQgYXMgc3RyaW5nKS50cmltKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGFzQ29udGVudCh0aGlzLmRvbWFpbkZpbHRlclRva2VuKSkge1xuICAgICAgcmV0dXJuIFNRTF9IRUxQRVIuZm9ybWF0RG9tYWluRmlsdGVyVG9rZW4oKHRoaXMuZG9tYWluRmlsdGVyVG9rZW4gYXMgc3RyaW5nKS50cmltKCkpO1xuICAgIH1cblxuICAgIHJldHVybiBERUZBVUxUX0hZUEVSTElOS19URVhUO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaGFzQ29udGVudCh0aGlzLmFyaWFMYWJlbCkpIHtcbiAgICAgIHJldHVybiAodGhpcy5hcmlhTGFiZWwgYXMgc3RyaW5nKS50cmltKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGFzQ29udGVudCh0aGlzLnRleHQpKSB7XG4gICAgICByZXR1cm4gKHRoaXMudGV4dCBhcyBzdHJpbmcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oYXNDb250ZW50KHRoaXMuZG9tYWluRmlsdGVyVG9rZW4pKSB7XG4gICAgICByZXR1cm4gU1FMX0hFTFBFUi5mb3JtYXREb21haW5GaWx0ZXJUb2tlbigodGhpcy5kb21haW5GaWx0ZXJUb2tlbiBhcyBzdHJpbmcpLnRyaW0oKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIERFRkFVTFRfSFlQRVJMSU5LX0FSSUFfTEFCRUw7XG4gIH1cblxuICBnZXQgc2hvd0ljb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzQ29udGVudCh0aGlzLmljb24pO1xuICB9XG5cbiAgZ2V0IGljb25DbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNob3dJY29uID8gKCh0aGlzLmljb24gYXMgc3RyaW5nKS50cmltKCkgfHwgJycpIDogJyc7XG4gIH1cblxuICBnZXQgY29tcHV0ZWRSZWwoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMucmVsLnRyaW0oKSkge1xuICAgICAgcmV0dXJuIHRoaXMucmVsLnRyaW0oKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy50YXJnZXQgPT09ICdfYmxhbmsnID8gSFlQRVJMSU5LX1JFTF9OT09QRU5FUiA6IG51bGw7XG4gIH1cblxuICBnZXQgcm9vdENsYXNzZXMoKTogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4ge1xuICAgIHJldHVybiB7XG4gICAgICAnaHlwZXJsaW5rLS1uZXV0cmFsJzogdGhpcy5hcHBlYXJhbmNlID09PSAnbmV1dHJhbCcsXG4gICAgICAnaHlwZXJsaW5rLS11bmRlcmxpbmUnOiB0aGlzLnVuZGVybGluZSA9PT0gJ2Fsd2F5cycsXG4gICAgICAnaHlwZXJsaW5rLS1ob3Zlci11bmRlcmxpbmUnOiB0aGlzLmhvdmVyU3R5bGUgPT09ICd1bmRlcmxpbmUnICYmIHRoaXMudW5kZXJsaW5lID09PSAnbm9uZScsXG4gICAgICAnaHlwZXJsaW5rLS1ob3Zlci1idXR0b24nOiB0aGlzLmhvdmVyU3R5bGUgPT09ICdidXR0b24nLFxuICAgICAgJ2h5cGVybGluay0taG92ZXItbm9uZSc6IHRoaXMuaG92ZXJTdHlsZSA9PT0gJ25vbmUnLFxuICAgICAgJ2h5cGVybGluay0tZGlzYWJsZWQnOiB0aGlzLmRpc2FibGVkLFxuICAgICAgJ2h5cGVybGluay0tYnV0dG9uLWVsZW1lbnQnOiAhdGhpcy5pc0FuY2hvclxuICAgIH07XG4gIH1cblxuICBnZXQgY3VzdG9tU3R5bGVzKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4ge1xuICAgICAgW0hZUEVSTElOS19DT0xPUl9WQVJdOiB0aGlzLmNvbG9yPy50cmltKCkgfHwgbnVsbFxuICAgIH07XG4gIH1cblxuICBoYW5kbGVJbnRlcmFjdGlvbihldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY2xpY2tlZC5lbWl0KGV2ZW50KTtcblxuICAgIGlmICh0aGlzLmhhc0NvbnRlbnQodGhpcy5kb21haW5GaWx0ZXJUb2tlbikpIHtcbiAgICAgIHRoaXMuZG9tYWluRmlsdGVyQ2xpY2suZW1pdCgodGhpcy5kb21haW5GaWx0ZXJUb2tlbiBhcyBzdHJpbmcpLnRyaW0oKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYXNDb250ZW50KHZhbHVlOiBIeXBlcmxpbmtWYWx1ZSk6IHZhbHVlIGlzIHN0cmluZyB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUudHJpbSgpLmxlbmd0aCA+IDA7XG4gIH1cbn0iLCJAaWYgKGlzQW5jaG9yKSB7XG4gIDxhXG4gICAgY2xhc3M9XCJoeXBlcmxpbmtcIlxuICAgIFtuZ0NsYXNzXT1cInJvb3RDbGFzc2VzXCJcbiAgICBbbmdTdHlsZV09XCJjdXN0b21TdHlsZXNcIlxuICAgIFthdHRyLmhyZWZdPVwicmVzb2x2ZWRIcmVmXCJcbiAgICBbYXR0ci50YXJnZXRdPVwidGFyZ2V0XCJcbiAgICBbYXR0ci5yZWxdPVwiY29tcHV0ZWRSZWxcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVzb2x2ZWRBcmlhTGFiZWwgfCB0cmFuc2xhdGVcIlxuICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFthdHRyLnRhYmluZGV4XT1cImRpc2FibGVkID8gLTEgOiBudWxsXCJcbiAgICAoY2xpY2spPVwiaGFuZGxlSW50ZXJhY3Rpb24oJGV2ZW50KVwiXG4gID5cbiAgICBAaWYgKGljb25Qb3NpdGlvbiA9PT0gJ2xlZnQnICYmIHNob3dJY29uKSB7XG4gICAgICA8aSBbY2xhc3NdPVwiaWNvbkNsYXNzXCIgY2xhc3M9XCJoeXBlcmxpbmtfX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgfVxuXG4gICAgPHNwYW4gY2xhc3M9XCJoeXBlcmxpbmtfX3RleHRcIj5cbiAgICAgIHt7IHJlc29sdmVkVGV4dCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgQGlmIChyZXF1aXJlZCkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkLWZpZWxkIGh5cGVybGlua19fcmVxdWlyZWRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4qPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj57eyAncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS5yZXF1aXJlZF9maWVsZCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICB9XG4gICAgPC9zcGFuPlxuXG4gICAgQGlmIChpY29uUG9zaXRpb24gPT09ICdyaWdodCcgJiYgc2hvd0ljb24pIHtcbiAgICAgIDxpIFtjbGFzc109XCJpY29uQ2xhc3NcIiBjbGFzcz1cImh5cGVybGlua19faWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICB9XG4gIDwvYT5cbn0gQGVsc2Uge1xuICA8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJoeXBlcmxpbmtcIlxuICAgIFtuZ0NsYXNzXT1cInJvb3RDbGFzc2VzXCJcbiAgICBbbmdTdHlsZV09XCJjdXN0b21TdHlsZXNcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVzb2x2ZWRBcmlhTGFiZWwgfCB0cmFuc2xhdGVcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgKGNsaWNrKT1cImhhbmRsZUludGVyYWN0aW9uKCRldmVudClcIlxuICA+XG4gICAgQGlmIChpY29uUG9zaXRpb24gPT09ICdsZWZ0JyAmJiBzaG93SWNvbikge1xuICAgICAgPGkgW2NsYXNzXT1cImljb25DbGFzc1wiIGNsYXNzPVwiaHlwZXJsaW5rX19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIH1cblxuICAgIDxzcGFuIGNsYXNzPVwiaHlwZXJsaW5rX190ZXh0XCI+XG4gICAgICB7eyByZXNvbHZlZFRleHQgfCB0cmFuc2xhdGUgfX1cbiAgICAgIEBpZiAocmVxdWlyZWQpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZC1maWVsZCBoeXBlcmxpbmtfX3JlcXVpcmVkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+Kjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+e3sgJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucmVxdWlyZWRfZmllbGQnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cblxuICAgIEBpZiAoaWNvblBvc2l0aW9uID09PSAncmlnaHQnICYmIHNob3dJY29uKSB7XG4gICAgICA8aSBbY2xhc3NdPVwiaWNvbkNsYXNzXCIgY2xhc3M9XCJoeXBlcmxpbmtfX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgfVxuICA8L2J1dHRvbj5cbn0iXX0=