@sebgroup/green-angular 4.6.0 → 4.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/esm2022/index.mjs +1 -19
  2. package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.component.mjs +3 -3
  3. package/esm2022/src/v-angular/button/button.component.mjs +3 -3
  4. package/esm2022/src/v-angular/card/card.component.mjs +3 -3
  5. package/esm2022/src/v-angular/checkbox/checkbox.component.mjs +3 -3
  6. package/esm2022/src/v-angular/core/core.globals.mjs +5 -2
  7. package/esm2022/src/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +3 -3
  8. package/esm2022/src/v-angular/dropdown/dropdown.component.mjs +3 -3
  9. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +3 -3
  10. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +3 -3
  11. package/esm2022/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +3 -3
  12. package/esm2022/src/v-angular/info-circle/info-circle.component.mjs +3 -3
  13. package/esm2022/src/v-angular/input/input.component.mjs +3 -3
  14. package/esm2022/src/v-angular/modal/dialog/dialog.component.mjs +3 -3
  15. package/esm2022/src/v-angular/modal/fold-out/fold-out.component.mjs +3 -3
  16. package/esm2022/src/v-angular/modal/modal.globals.mjs +5 -2
  17. package/esm2022/src/v-angular/modal/slide-out/slide-out.component.mjs +4 -4
  18. package/esm2022/src/v-angular/radio/radio.component.mjs +3 -3
  19. package/esm2022/src/v-angular/textarea/textarea.component.mjs +3 -3
  20. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs +2 -2
  21. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs.map +1 -1
  22. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs +2 -2
  23. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs.map +1 -1
  24. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs +2 -2
  25. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs.map +1 -1
  26. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs +2 -2
  27. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs.map +1 -1
  28. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs +4 -1
  29. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs.map +1 -1
  30. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +10 -10
  31. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
  32. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs +2 -2
  33. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs.map +1 -1
  34. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +2 -2
  35. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -1
  36. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +11 -8
  37. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -1
  38. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs +2 -2
  39. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs.map +1 -1
  40. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +2 -2
  41. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
  42. package/fesm2022/sebgroup-green-angular.mjs +13 -3105
  43. package/fesm2022/sebgroup-green-angular.mjs.map +1 -1
  44. package/index.d.ts +0 -18
  45. package/package.json +3 -3
  46. package/src/v-angular/breadcrumbs/breadcrumbs.component.d.ts +1 -1
  47. package/src/v-angular/button/button.component.d.ts +1 -1
  48. package/src/v-angular/card/card.component.d.ts +1 -1
  49. package/src/v-angular/checkbox/checkbox.component.d.ts +1 -1
  50. package/src/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +1 -1
  51. package/src/v-angular/dropdown/dropdown.component.d.ts +1 -1
  52. package/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +1 -1
  53. package/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +1 -1
  54. package/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +1 -1
  55. package/src/v-angular/info-circle/info-circle.component.d.ts +1 -1
  56. package/src/v-angular/input/input.component.d.ts +1 -1
  57. package/src/v-angular/modal/dialog/dialog.component.d.ts +1 -1
  58. package/src/v-angular/modal/fold-out/fold-out.component.d.ts +1 -1
  59. package/src/v-angular/modal/slide-out/slide-out.component.d.ts +2 -2
  60. package/src/v-angular/radio/radio.component.d.ts +1 -1
  61. package/src/v-angular/textarea/textarea.component.d.ts +1 -1
  62. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +0 -287
  63. package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +0 -17
  64. package/esm2022/v-angular/base-control-value-accessor/index.mjs +0 -3
  65. package/esm2022/v-angular/breadcrumbs/breadcrumbs.component.mjs +0 -25
  66. package/esm2022/v-angular/breadcrumbs/breadcrumbs.module.mjs +0 -20
  67. package/esm2022/v-angular/breadcrumbs/index.mjs +0 -3
  68. package/esm2022/v-angular/button/button.component.mjs +0 -108
  69. package/esm2022/v-angular/button/button.module.mjs +0 -20
  70. package/esm2022/v-angular/button/index.mjs +0 -3
  71. package/esm2022/v-angular/card/card.component.mjs +0 -11
  72. package/esm2022/v-angular/card/card.module.mjs +0 -18
  73. package/esm2022/v-angular/card/index.mjs +0 -3
  74. package/esm2022/v-angular/checkbox/checkbox.component.mjs +0 -72
  75. package/esm2022/v-angular/checkbox/checkbox.module.mjs +0 -19
  76. package/esm2022/v-angular/checkbox/index.mjs +0 -3
  77. package/esm2022/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +0 -256
  78. package/esm2022/v-angular/dropdown/dropdown-list/index.mjs +0 -2
  79. package/esm2022/v-angular/dropdown/dropdown.component.mjs +0 -239
  80. package/esm2022/v-angular/dropdown/dropdown.module.mjs +0 -22
  81. package/esm2022/v-angular/dropdown/index.mjs +0 -6
  82. package/esm2022/v-angular/dropdown/typeahead/index.mjs +0 -3
  83. package/esm2022/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +0 -98
  84. package/esm2022/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +0 -85
  85. package/esm2022/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +0 -132
  86. package/esm2022/v-angular/dropdown/typeahead/typeahead.module.mjs +0 -33
  87. package/esm2022/v-angular/i18n/i18n.json +0 -12
  88. package/esm2022/v-angular/i18n/i18n.module.mjs +0 -83
  89. package/esm2022/v-angular/i18n/i18n.test.module.mjs +0 -89
  90. package/esm2022/v-angular/i18n/index.mjs +0 -3
  91. package/esm2022/v-angular/info-circle/index.mjs +0 -3
  92. package/esm2022/v-angular/info-circle/info-circle.component.mjs +0 -28
  93. package/esm2022/v-angular/info-circle/info-circle.module.mjs +0 -21
  94. package/esm2022/v-angular/input/index.mjs +0 -3
  95. package/esm2022/v-angular/input/input.component.mjs +0 -221
  96. package/esm2022/v-angular/input/input.module.mjs +0 -32
  97. package/esm2022/v-angular/input-mask/config.mjs +0 -9
  98. package/esm2022/v-angular/input-mask/constants.mjs +0 -2
  99. package/esm2022/v-angular/input-mask/index.mjs +0 -6
  100. package/esm2022/v-angular/input-mask/input-mask-format.pipe.mjs +0 -20
  101. package/esm2022/v-angular/input-mask/input-mask.directive.mjs +0 -165
  102. package/esm2022/v-angular/input-mask/input-mask.module.mjs +0 -35
  103. package/esm2022/v-angular/input-mask/input-mask.types.mjs +0 -2
  104. package/esm2022/v-angular/modal/dialog/dialog.component.mjs +0 -190
  105. package/esm2022/v-angular/modal/fold-out/fold-out.component.mjs +0 -56
  106. package/esm2022/v-angular/modal/fold-out/fold-out.directive.mjs +0 -19
  107. package/esm2022/v-angular/modal/index.mjs +0 -6
  108. package/esm2022/v-angular/modal/modal.globals.mjs +0 -17
  109. package/esm2022/v-angular/modal/modal.module.mjs +0 -40
  110. package/esm2022/v-angular/modal/modal.types.mjs +0 -2
  111. package/esm2022/v-angular/modal/slide-out/slide-out.component.mjs +0 -229
  112. package/esm2022/v-angular/radio/index.mjs +0 -3
  113. package/esm2022/v-angular/radio/radio.component.mjs +0 -130
  114. package/esm2022/v-angular/radio/radio.module.mjs +0 -20
  115. package/esm2022/v-angular/textarea/index.mjs +0 -3
  116. package/esm2022/v-angular/textarea/textarea.component.mjs +0 -101
  117. package/esm2022/v-angular/textarea/textarea.module.mjs +0 -18
  118. package/esm2022/v-angular/tooltip/index.mjs +0 -3
  119. package/esm2022/v-angular/tooltip/tooltip.directive.mjs +0 -273
  120. package/esm2022/v-angular/tooltip/tooltip.module.mjs +0 -18
  121. package/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +0 -124
  122. package/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +0 -7
  123. package/v-angular/base-control-value-accessor/index.d.ts +0 -2
  124. package/v-angular/breadcrumbs/breadcrumbs.component.d.ts +0 -18
  125. package/v-angular/breadcrumbs/breadcrumbs.module.d.ts +0 -10
  126. package/v-angular/breadcrumbs/index.d.ts +0 -2
  127. package/v-angular/button/button.component.d.ts +0 -62
  128. package/v-angular/button/button.module.d.ts +0 -10
  129. package/v-angular/button/index.d.ts +0 -2
  130. package/v-angular/card/card.component.d.ts +0 -5
  131. package/v-angular/card/card.module.d.ts +0 -8
  132. package/v-angular/card/index.d.ts +0 -2
  133. package/v-angular/checkbox/checkbox.component.d.ts +0 -27
  134. package/v-angular/checkbox/checkbox.module.d.ts +0 -9
  135. package/v-angular/checkbox/index.d.ts +0 -2
  136. package/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +0 -89
  137. package/v-angular/dropdown/dropdown-list/index.d.ts +0 -1
  138. package/v-angular/dropdown/dropdown.component.d.ts +0 -99
  139. package/v-angular/dropdown/dropdown.module.d.ts +0 -12
  140. package/v-angular/dropdown/index.d.ts +0 -5
  141. package/v-angular/dropdown/typeahead/index.d.ts +0 -2
  142. package/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +0 -34
  143. package/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +0 -34
  144. package/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +0 -59
  145. package/v-angular/dropdown/typeahead/typeahead.module.d.ts +0 -11
  146. package/v-angular/i18n/i18n.module.d.ts +0 -15
  147. package/v-angular/i18n/i18n.test.module.d.ts +0 -27
  148. package/v-angular/i18n/index.d.ts +0 -2
  149. package/v-angular/info-circle/index.d.ts +0 -2
  150. package/v-angular/info-circle/info-circle.component.d.ts +0 -16
  151. package/v-angular/info-circle/info-circle.module.d.ts +0 -10
  152. package/v-angular/input/index.d.ts +0 -2
  153. package/v-angular/input/input.component.d.ts +0 -90
  154. package/v-angular/input/input.module.d.ts +0 -11
  155. package/v-angular/input-mask/config.d.ts +0 -6
  156. package/v-angular/input-mask/constants.d.ts +0 -2
  157. package/v-angular/input-mask/index.d.ts +0 -5
  158. package/v-angular/input-mask/input-mask-format.pipe.d.ts +0 -8
  159. package/v-angular/input-mask/input-mask.directive.d.ts +0 -39
  160. package/v-angular/input-mask/input-mask.module.d.ts +0 -11
  161. package/v-angular/input-mask/input-mask.types.d.ts +0 -20
  162. package/v-angular/modal/dialog/dialog.component.d.ts +0 -55
  163. package/v-angular/modal/fold-out/fold-out.component.d.ts +0 -24
  164. package/v-angular/modal/fold-out/fold-out.directive.d.ts +0 -6
  165. package/v-angular/modal/index.d.ts +0 -5
  166. package/v-angular/modal/modal.globals.d.ts +0 -13
  167. package/v-angular/modal/modal.module.d.ts +0 -13
  168. package/v-angular/modal/modal.types.d.ts +0 -5
  169. package/v-angular/modal/slide-out/slide-out.component.d.ts +0 -76
  170. package/v-angular/radio/index.d.ts +0 -2
  171. package/v-angular/radio/radio.component.d.ts +0 -48
  172. package/v-angular/radio/radio.module.d.ts +0 -9
  173. package/v-angular/textarea/index.d.ts +0 -2
  174. package/v-angular/textarea/textarea.component.d.ts +0 -44
  175. package/v-angular/textarea/textarea.module.d.ts +0 -8
  176. package/v-angular/tooltip/index.d.ts +0 -2
  177. package/v-angular/tooltip/tooltip.directive.d.ts +0 -106
  178. package/v-angular/tooltip/tooltip.module.d.ts +0 -8
@@ -1,256 +0,0 @@
1
- import { Component, EventEmitter, HostBinding, HostListener, Inject, Input, Optional, Output, ViewChildren, } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import scrollIntoView from 'scroll-into-view-if-needed';
4
- import { TRANSLOCO_SCOPE } from '@ngneat/transloco';
5
- import { DropdownUtils, } from '@sebgroup/green-angular/src/v-angular/core';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- import * as i2 from "../typeahead/typeahead-highlight/typeahead-highlight.component";
9
- import * as i3 from "@sebgroup/green-angular/src/v-angular/tooltip";
10
- import * as i4 from "@ngneat/transloco";
11
- export class NgvDropdownListComponent {
12
- set expanded(state) {
13
- this.setExpanded(state);
14
- }
15
- get expanded() {
16
- return this._expanded;
17
- }
18
- constructor(translocoScope) {
19
- this.translocoScope = translocoScope;
20
- /** The additional amount to show when option is scrolled into view. */
21
- this.scrollOffset = 24;
22
- /** Id of the host element and is accessible by the children, automatically generated if not provided. */
23
- this.id = window.ngv?.nextId();
24
- /** Special property used for selecting DOM elements during automated UI testing. */
25
- this.thook = 'dropdown';
26
- this.selectedValueChanged = new EventEmitter();
27
- this.closed = new EventEmitter();
28
- /** The current active option based on numeric index. */
29
- this.activeIndex = -1;
30
- this.dropdownUtils = new DropdownUtils();
31
- this._expanded = false;
32
- this.closed$ = new Subject();
33
- if (this.translocoScope)
34
- this.scope = this.translocoScope.toString();
35
- }
36
- ngOnInit() {
37
- if (this.state)
38
- this.activeIndex = this.options.findIndex((option) => option.key === this.state.key);
39
- }
40
- ngOnChanges(changes) {
41
- if (!!changes.state && !changes.state.firstChange)
42
- this.selectedValue = changes.state.currentValue;
43
- if (!!changes.options?.currentValue?.length && this.expanded)
44
- this.refreshSelectedOption();
45
- }
46
- /**
47
- * Returns true if argument is an {@link OptionGroup}.
48
- * @param option the object to check.
49
- */
50
- isGroup(option) {
51
- return 'options' in option;
52
- }
53
- /** @internal */
54
- updateState(option, event) {
55
- if (option.disabled)
56
- return;
57
- this.selectedValue = option;
58
- this.state = option;
59
- this.selectedValueChanged.emit(option);
60
- this.setExpanded(false);
61
- event.stopPropagation();
62
- }
63
- /**
64
- * @internal
65
- */
66
- setExpanded(expanded = true) {
67
- // update expanded state
68
- this._expanded = expanded;
69
- if (expanded)
70
- this.refreshSelectedOption();
71
- else {
72
- this.closed$.next(true);
73
- this.onClickSubscription?.unsubscribe();
74
- }
75
- }
76
- /**
77
- * @internal
78
- */
79
- refreshSelectedOption() {
80
- const options = this.dropdownUtils.flattenOptions(this.options, !this.optionContentTpl);
81
- this.activeIndex = this.getActiveIndex();
82
- this.state = options[this.activeIndex];
83
- this.scrollToResult(this.state);
84
- }
85
- /**
86
- * @internal
87
- * @returns The active index (number) if option is found, -1 otherwise.
88
- * - If a selectedValue exists that's not nullish and that options is found, return that index
89
- * - Else, return first non nullish index
90
- * - If none of the above criterias are met, -1 are returned
91
- */
92
- getActiveIndex() {
93
- if (!!this.selectedValue && this.selectedValue?.key != null) {
94
- const selectedIndex = this.dropdownUtils
95
- .flattenOptions(this.options, !this.optionContentTpl)
96
- .findIndex((option) => option.key != null && option.key === this.selectedValue?.key);
97
- if (selectedIndex > -1)
98
- return selectedIndex;
99
- }
100
- return this.dropdownUtils
101
- .flattenOptions(this.options, !this.optionContentTpl)
102
- .findIndex((option) => option.key != null);
103
- }
104
- /**
105
- * @internal
106
- * evaluates wether the HTML element overflows
107
- * @param elem The HTMLElement to evaluate
108
- * */
109
- isOverflow(elem) {
110
- return elem.offsetWidth < elem.scrollWidth;
111
- }
112
- /**
113
- * Typecast anything to an {@link OptionGroup}.
114
- * @param group the object to typecast.
115
- */
116
- castGroup(group) {
117
- return group;
118
- }
119
- /**
120
- * @internal
121
- * Disables default events.
122
- * @param event fired containing which key was pressed.
123
- */
124
- onKeyDown(event) {
125
- switch (event.key) {
126
- case 'Enter': // Disable form submission
127
- case 'ArrowUp': // Disable scrolling up
128
- case 'ArrowDown': // Disable scrolling down
129
- event.preventDefault();
130
- event.stopPropagation();
131
- return false;
132
- }
133
- return true;
134
- }
135
- /**
136
- * @internal
137
- * Enter toggles the dropdown, home, end, and, arrows change the index.
138
- * @param event fired containing which key was released.
139
- */
140
- onKeyUp(event) {
141
- if (!this.expanded)
142
- return;
143
- const options = this.dropdownUtils.flattenOptions(this.options, !this.optionContentTpl);
144
- let option;
145
- switch (event.key) {
146
- case 'Escape':
147
- this.setExpanded(false);
148
- this.closed.emit();
149
- break;
150
- case 'Enter': // Select the currently chosen value
151
- option = options[this.activeIndex];
152
- this.updateState(option, event);
153
- break;
154
- case 'Home': // Move to the first option
155
- this.activeIndex = 0;
156
- option = options[this.activeIndex];
157
- this.state = option;
158
- this.scrollToResult(option);
159
- break;
160
- case 'ArrowUp': // Move up one step to the previous option
161
- if (this.activeIndex > 0)
162
- this.activeIndex--;
163
- else if (this.activeIndex === 0)
164
- this.activeIndex = options.length - 1;
165
- option = options[this.activeIndex];
166
- this.state = option;
167
- this.scrollToResult(option);
168
- break;
169
- case 'ArrowDown': // Move down one step to the next option
170
- if (options.length > this.activeIndex + 1)
171
- this.activeIndex++;
172
- else if (this.activeIndex === options.length - 1)
173
- this.activeIndex = 0;
174
- option = options[this.activeIndex];
175
- this.state = option;
176
- this.scrollToResult(option);
177
- break;
178
- case 'End': // Move to the last options
179
- this.activeIndex = options.length - 1;
180
- option = options[this.activeIndex];
181
- this.state = option;
182
- this.scrollToResult(option);
183
- break;
184
- }
185
- }
186
- /**
187
- * Scrolls focused result into view with a specified offset.
188
- * @param key the result index which to scroll to.
189
- */
190
- scrollToResult(option) {
191
- if (!this.optionRefs || !option)
192
- return;
193
- const optionRef = this.optionRefs.find((li) => li.nativeElement.id === this.id + '-option-' + option.key);
194
- const offset = this.scrollOffset;
195
- if (optionRef) {
196
- let delta = window.scrollY || document.documentElement.scrollTop;
197
- // The list seems not to be visible at the time of scrolling, but this setTimeout "hack" makes it work...
198
- setTimeout(() => {
199
- scrollIntoView(optionRef.nativeElement, {
200
- scrollMode: 'if-needed',
201
- block: 'nearest',
202
- });
203
- delta -= window.scrollY || document.documentElement.scrollTop;
204
- if (delta)
205
- window.scrollBy(0, delta > 0 ? -offset : offset);
206
- }, 0);
207
- }
208
- }
209
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvDropdownListComponent, deps: [{ token: TRANSLOCO_SCOPE, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
210
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NgvDropdownListComponent, selector: "ngv-dropdown-list", inputs: { expanded: "expanded", state: "state", scrollOffset: "scrollOffset", optionContentTpl: "optionContentTpl", id: "id", thook: "thook", options: "options", textToHighlight: "textToHighlight" }, outputs: { selectedValueChanged: "selectedValueChanged", closed: "closed" }, host: { listeners: { "document:keydown": "onKeyDown($event)", "document:keyup": "onKeyUp($event)" }, properties: { "attr.id": "this.id", "attr.data-thook": "this.thook" } }, viewQueries: [{ propertyName: "optionRefs", predicate: ["optionRefs"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *transloco=\"let t; read: scope\">\n <ul\n class=\"gds-dropdown__options card options gds-reset\"\n [class.gds-dropdown__options-expanded]=\"expanded\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.data-thook]=\"thook + '-options'\"\n [attr.aria-labelledby]=\"id + '-label'\"\n [attr.aria-activedescendant]=\"\n state ? id + '-option-' + state?.key : undefined\n \"\n >\n <ng-container *ngFor=\"let item of options\">\n <!-- OPTION -->\n <ng-container *ngIf=\"!isGroup(item)\">\n <ng-template\n *ngTemplateOutlet=\"listItemTemplate; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n\n <!-- OPTION GROUP -->\n <li\n class=\"gds-dropdown__options__label group\"\n [attr.data-thook]=\"thook + '-option-group'\"\n *ngIf=\"isGroup(item)\"\n >\n <div class=\"sdv-list__label\">{{ t(item.label) }}</div>\n <ul [attr.aria-disabled]=\"item.disabled\">\n <ng-container *ngFor=\"let option of castGroup(item).options\">\n <ng-template\n *ngTemplateOutlet=\"\n listItemTemplate;\n context: { $implicit: option }\n \"\n ></ng-template>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n\n <!-- TEMPLATE -->\n <ng-template #listItemTemplate let-option>\n <li\n #optionRefs\n *ngIf=\"!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n [ngvTooltip]=\"isOverflow(liElem) ? t(option.label) : undefined\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"\n basicOptionContentTpl;\n context: { $implicit: option }\n \"\n >\n </ng-template>\n </li>\n <!-- Checking overflow on custom templates do not work skip adding ngvToolTip if custom template is provided -->\n <li\n #optionRefs\n *ngIf=\"!!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"optionContentTpl; context: { $implicit: option }\"\n >\n </ng-template>\n </li>\n </ng-template>\n\n <ng-template #basicOptionContentTpl let-option>\n <ngv-typeahead-highlight\n *ngIf=\"!!textToHighlight\"\n [textToHighlight]=\"textToHighlight\"\n [textContent]=\"t(option.label)\"\n >\n </ngv-typeahead-highlight>\n <ng-container *ngIf=\"!textToHighlight\">\n {{ t(option.label) }}\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [":host{position:absolute;bottom:0;transform:translateY(calc(100% + .5rem));--z-index: var(--sg-z-index-dropdown)}:host .hidden{visibility:hidden;display:none}:host ul[role=menu] [role=menuitem]{padding:.75rem;cursor:pointer}:host ul[role=menu] [role=menuitem]:hover,:host ul[role=menu] [role=menuitem]:focus-visible{background-color:var(--gds-ref-pallet-base200)}:host ul[role=menu] [role=menuitem]:active{background-color:var(--gds-ref-pallet-base300)}:host ul[role=menu] [role=menuitem]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox]{--z-index: var(--sg-z-index-popover);background-color:var(--sg-popover-background);flex-direction:column;justify-content:flex-end;inset:auto;z-index:var(--z-index);box-shadow:var(--sg-popover-box-shadow);color:var(--text-primary-color);padding:0;border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--text-primary-color);--sg-border-color: var(--text-primary-color);border-radius:var(--sg-border-radius)}:host ul[role=listbox] [role=option]{padding:.75rem 1rem;line-height:1.25;cursor:pointer}:host ul[role=listbox] [role=option]:hover,:host ul[role=listbox] [role=option]:focus-visible{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:active{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox] [role=option].active.sg-highlighted,:host ul[role=listbox] [role=option][aria-selected=true]{background:var(--grey-1000);color:#fff}:host .sg-fieldset-container{overflow-y:auto}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option]{display:flex;width:100%}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option].active.sg-highlighted input[type=checkbox]~i{border-color:#007ac7!important;box-shadow:0 0 .25em .0625em #41b0ee;outline-color:transparent;outline-style:solid}:host .gds-dropdown__options{padding-left:0;margin-bottom:0;margin-top:0;display:flex;flex-direction:column;list-style:none;display:none}:host .gds-dropdown__options>li{padding-bottom:.5rem;padding-top:.5rem;border:0;display:block;position:relative}:host .gds-dropdown__options>li:before{font-weight:500;display:inline-block;left:0;position:absolute;text-align:center}:host .gds-dropdown__options-expanded{display:block}:host .gds-dropdown__options__label:hover,:host .gds-dropdown__options__label:focus-visible{background-color:var(--grey-400)}:host .gds-dropdown__options__label:active{background-color:var(--grey-500)}:host .gds-dropdown__options__label:focus-visible{outline-color:#000;outline-offset:-.25rem}:host .gds-dropdown__options__label[aria-hidden=true]{display:none}:host .gds-dropdown__options__label[highlighted]{color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.NgvTypeaheadHighlightComponent, selector: "ngv-typeahead-highlight", inputs: ["textContent", "textToHighlight"] }, { kind: "directive", type: i3.NgvTooltipDirective, selector: "[ngvTooltip]", inputs: ["ngvTooltip", "thook", "placement", "shown", "offset", "resizeThrottle", "maxWidth"], outputs: ["ngvShow", "ngvHide"] }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }] }); }
211
- }
212
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NgvDropdownListComponent, decorators: [{
213
- type: Component,
214
- args: [{ selector: 'ngv-dropdown-list', template: "<ng-container *transloco=\"let t; read: scope\">\n <ul\n class=\"gds-dropdown__options card options gds-reset\"\n [class.gds-dropdown__options-expanded]=\"expanded\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.data-thook]=\"thook + '-options'\"\n [attr.aria-labelledby]=\"id + '-label'\"\n [attr.aria-activedescendant]=\"\n state ? id + '-option-' + state?.key : undefined\n \"\n >\n <ng-container *ngFor=\"let item of options\">\n <!-- OPTION -->\n <ng-container *ngIf=\"!isGroup(item)\">\n <ng-template\n *ngTemplateOutlet=\"listItemTemplate; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n\n <!-- OPTION GROUP -->\n <li\n class=\"gds-dropdown__options__label group\"\n [attr.data-thook]=\"thook + '-option-group'\"\n *ngIf=\"isGroup(item)\"\n >\n <div class=\"sdv-list__label\">{{ t(item.label) }}</div>\n <ul [attr.aria-disabled]=\"item.disabled\">\n <ng-container *ngFor=\"let option of castGroup(item).options\">\n <ng-template\n *ngTemplateOutlet=\"\n listItemTemplate;\n context: { $implicit: option }\n \"\n ></ng-template>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n\n <!-- TEMPLATE -->\n <ng-template #listItemTemplate let-option>\n <li\n #optionRefs\n *ngIf=\"!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n [ngvTooltip]=\"isOverflow(liElem) ? t(option.label) : undefined\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"\n basicOptionContentTpl;\n context: { $implicit: option }\n \"\n >\n </ng-template>\n </li>\n <!-- Checking overflow on custom templates do not work skip adding ngvToolTip if custom template is provided -->\n <li\n #optionRefs\n *ngIf=\"!!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"optionContentTpl; context: { $implicit: option }\"\n >\n </ng-template>\n </li>\n </ng-template>\n\n <ng-template #basicOptionContentTpl let-option>\n <ngv-typeahead-highlight\n *ngIf=\"!!textToHighlight\"\n [textToHighlight]=\"textToHighlight\"\n [textContent]=\"t(option.label)\"\n >\n </ngv-typeahead-highlight>\n <ng-container *ngIf=\"!textToHighlight\">\n {{ t(option.label) }}\n </ng-container>\n </ng-template>\n</ng-container>\n", styles: [":host{position:absolute;bottom:0;transform:translateY(calc(100% + .5rem));--z-index: var(--sg-z-index-dropdown)}:host .hidden{visibility:hidden;display:none}:host ul[role=menu] [role=menuitem]{padding:.75rem;cursor:pointer}:host ul[role=menu] [role=menuitem]:hover,:host ul[role=menu] [role=menuitem]:focus-visible{background-color:var(--gds-ref-pallet-base200)}:host ul[role=menu] [role=menuitem]:active{background-color:var(--gds-ref-pallet-base300)}:host ul[role=menu] [role=menuitem]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox]{--z-index: var(--sg-z-index-popover);background-color:var(--sg-popover-background);flex-direction:column;justify-content:flex-end;inset:auto;z-index:var(--z-index);box-shadow:var(--sg-popover-box-shadow);color:var(--text-primary-color);padding:0;border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--text-primary-color);--sg-border-color: var(--text-primary-color);border-radius:var(--sg-border-radius)}:host ul[role=listbox] [role=option]{padding:.75rem 1rem;line-height:1.25;cursor:pointer}:host ul[role=listbox] [role=option]:hover,:host ul[role=listbox] [role=option]:focus-visible{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:active{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox] [role=option].active.sg-highlighted,:host ul[role=listbox] [role=option][aria-selected=true]{background:var(--grey-1000);color:#fff}:host .sg-fieldset-container{overflow-y:auto}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option]{display:flex;width:100%}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option].active.sg-highlighted input[type=checkbox]~i{border-color:#007ac7!important;box-shadow:0 0 .25em .0625em #41b0ee;outline-color:transparent;outline-style:solid}:host .gds-dropdown__options{padding-left:0;margin-bottom:0;margin-top:0;display:flex;flex-direction:column;list-style:none;display:none}:host .gds-dropdown__options>li{padding-bottom:.5rem;padding-top:.5rem;border:0;display:block;position:relative}:host .gds-dropdown__options>li:before{font-weight:500;display:inline-block;left:0;position:absolute;text-align:center}:host .gds-dropdown__options-expanded{display:block}:host .gds-dropdown__options__label:hover,:host .gds-dropdown__options__label:focus-visible{background-color:var(--grey-400)}:host .gds-dropdown__options__label:active{background-color:var(--grey-500)}:host .gds-dropdown__options__label:focus-visible{outline-color:#000;outline-offset:-.25rem}:host .gds-dropdown__options__label[aria-hidden=true]{display:none}:host .gds-dropdown__options__label[highlighted]{color:#fff}\n"] }]
215
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
216
- type: Optional
217
- }, {
218
- type: Inject,
219
- args: [TRANSLOCO_SCOPE]
220
- }] }]; }, propDecorators: { expanded: [{
221
- type: Input
222
- }], state: [{
223
- type: Input
224
- }], scrollOffset: [{
225
- type: Input
226
- }], optionContentTpl: [{
227
- type: Input
228
- }], optionRefs: [{
229
- type: ViewChildren,
230
- args: ['optionRefs']
231
- }], id: [{
232
- type: HostBinding,
233
- args: ['attr.id']
234
- }, {
235
- type: Input
236
- }], thook: [{
237
- type: HostBinding,
238
- args: ['attr.data-thook']
239
- }, {
240
- type: Input
241
- }], options: [{
242
- type: Input
243
- }], textToHighlight: [{
244
- type: Input
245
- }], selectedValueChanged: [{
246
- type: Output
247
- }], closed: [{
248
- type: Output
249
- }], onKeyDown: [{
250
- type: HostListener,
251
- args: ['document:keydown', ['$event']]
252
- }], onKeyUp: [{
253
- type: HostListener,
254
- args: ['document:keyup', ['$event']]
255
- }] } });
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9kcm9wZG93bi9kcm9wZG93bi1saXN0L2Ryb3Bkb3duLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJvcGRvd24vZHJvcGRvd24tbGlzdC9kcm9wZG93bi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUlOLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQTtBQUV0QixPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQTtBQUM1QyxPQUFPLGNBQWMsTUFBTSw0QkFBNEIsQ0FBQTtBQUV2RCxPQUFPLEVBQUUsZUFBZSxFQUFrQixNQUFNLG1CQUFtQixDQUFBO0FBRW5FLE9BQU8sRUFDTCxhQUFhLEdBR2QsTUFBTSw0Q0FBNEMsQ0FBQTs7Ozs7O0FBUW5ELE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsSUFBYSxRQUFRLENBQUMsS0FBYztRQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3pCLENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUE7SUFDdkIsQ0FBQztJQXlDRCxZQUdZLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQXpDMUMsdUVBQXVFO1FBQzlELGlCQUFZLEdBQUcsRUFBRSxDQUFBO1FBUzFCLHlHQUF5RztRQUN4RSxPQUFFLEdBQUksTUFBYyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQTtRQUVu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QUdXLEtBQUs7c0JBQTdDLFdBQVc7dUJBQUMsaUJBQWlCOztzQkFBRyxLQUFLO2dCQUU3QixPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFFSSxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBRUcsTUFBTTtzQkFBZixNQUFNO2dCQWlJUCxTQUFTO3NCQURSLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBbUI1QyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuaW1wb3J0IHsgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcydcbmltcG9ydCBzY3JvbGxJbnRvVmlldyBmcm9tICdzY3JvbGwtaW50by12aWV3LWlmLW5lZWRlZCdcblxuaW1wb3J0IHsgVFJBTlNMT0NPX1NDT1BFLCBUcmFuc2xvY29TY29wZSB9IGZyb20gJ0BuZ25lYXQvdHJhbnNsb2NvJ1xuXG5pbXBvcnQge1xuICBEcm9wZG93blV0aWxzLFxuICBPcHRpb24sXG4gIE9wdGlvbkJhc2UsXG59IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvY29yZSdcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbmd2LWRyb3Bkb3duLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24tbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd2RHJvcGRvd25MaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBzZXQgZXhwYW5kZWQoc3RhdGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNldEV4cGFuZGVkKHN0YXRlKVxuICB9XG4gIGdldCBleHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZXhwYW5kZWRcbiAgfVxuICBASW5wdXQoKSBzdGF0ZTogYW55XG5cbiAgLyoqIFRoZSBhZGRpdGlvbmFsIGFtb3VudCB0byBzaG93IHdoZW4gb3B0aW9uIGlzIHNjcm9sbGVkIGludG8gdmlldy4gKi9cbiAgQElucHV0KCkgc2Nyb2xsT2Zmc2V0ID0gMjRcblxuICBASW5wdXQoKSBvcHRpb25Db250ZW50VHBsOiBUZW1wbGF0ZVJlZjxPcHRpb25CYXNlPGFueT4+IHwgdW5kZWZpbmVkXG5cbiAgLyoqIEBpbnRlcm5hbCBMaXN0IG9mIHJlZmVyZW5jZXMgdG8gdGhlIG9wdGlvbiBlbGVtZW50cy4gKi9cbiAgQFZpZXdDaGlsZHJlbignb3B0aW9uUmVmcycpIG9wdGlvblJlZnM6XG4gICAgfCBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MTElFbGVtZW50Pj5cbiAgICB8IHVuZGVmaW5lZFxuXG4gIC8qKiBJZCBvZiB0aGUgaG9zdCBlbGVtZW50IGFuZCBpcyBhY2Nlc3NpYmxlIGJ5IHRoZSBjaGlsZHJlbiwgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgbm90IHByb3ZpZGVkLiAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBASW5wdXQoKSBpZCA9ICh3aW5kb3cgYXMgYW55KS5uZ3Y/Lm5leHRJZCgpXG5cbiAgLyoqIFNwZWNpYWwgcHJvcGVydHkgdXNlZCBmb3Igc2VsZWN0aW5nIERPTSBlbGVtZW50cyBkdXJpbmcgYXV0b21hdGVkIFVJIHRlc3RpbmcuICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXRob29rJykgQElucHV0KCkgdGhvb2sgPSAnZHJvcGRvd24nXG5cbiAgQElucHV0KCkgb3B0aW9ucyE6IGFueVtdXG5cbiAgQElucHV0KCkgdGV4dFRvSGlnaGxpZ2h0Pzogc3RyaW5nXG5cbiAgQE91dHB1dCgpIHNlbGVjdGVkVmFsdWVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcblxuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpXG5cbiAgLyoqIFRoZSBjdXJyZW50IGFjdGl2ZSBvcHRpb24gYmFzZWQgb24gbnVtZXJpYyBpbmRleC4gKi9cbiAgcHVibGljIGFjdGl2ZUluZGV4ID0gLTFcblxuICBzY29wZTogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgcHJpdmF0ZSBkcm9wZG93blV0aWxzOiBEcm9wZG93blV0aWxzPHN0cmluZyB8IG51bGwsIHN0cmluZywgYW55PiA9XG4gICAgbmV3IERyb3Bkb3duVXRpbHM8c3RyaW5nIHwgbnVsbCwgc3RyaW5nLCBhbnk+KClcbiAgcHJpdmF0ZSBfZXhwYW5kZWQgPSBmYWxzZVxuICBwcml2YXRlIGNsb3NlZCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpXG4gIHB1YmxpYyBzZWxlY3RlZFZhbHVlPzogT3B0aW9uPHN0cmluZywgYW55PlxuXG4gIC8qKiBTdWJzY3JpYmUgaWYgZHJvcGRvd24gZXhwYW5kZWQgdG8gbGlzdGVuIHRvIGNsaWNrIG91dHNpZGUgdG8gY2xvc2UgZHJvcGRvd24uICovXG4gIHByb3RlY3RlZCBvbkNsaWNrU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWRcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoVFJBTlNMT0NPX1NDT1BFKVxuICAgIHByb3RlY3RlZCB0cmFuc2xvY29TY29wZTogVHJhbnNsb2NvU2NvcGUsXG4gICkge1xuICAgIGlmICh0aGlzLnRyYW5zbG9jb1Njb3BlKSB0aGlzLnNjb3BlID0gdGhpcy50cmFuc2xvY29TY29wZS50b1N0cmluZygpXG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSlcbiAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSB0aGlzLm9wdGlvbnMuZmluZEluZGV4KFxuICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24ua2V5ID09PSB0aGlzLnN0YXRlLmtleSxcbiAgICAgIClcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoISFjaGFuZ2VzLnN0YXRlICYmICFjaGFuZ2VzLnN0YXRlLmZpcnN0Q2hhbmdlKVxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gY2hhbmdlcy5zdGF0ZS5jdXJyZW50VmFsdWVcbiAgICBpZiAoISFjaGFuZ2VzLm9wdGlvbnM/LmN1cnJlbnRWYWx1ZT8ubGVuZ3RoICYmIHRoaXMuZXhwYW5kZWQpXG4gICAgICB0aGlzLnJlZnJlc2hTZWxlY3RlZE9wdGlvbigpXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIGFyZ3VtZW50IGlzIGFuIHtAbGluayBPcHRpb25Hcm91cH0uXG4gICAqIEBwYXJhbSBvcHRpb24gdGhlIG9iamVjdCB0byBjaGVjay5cbiAgICovXG4gIGlzR3JvdXAob3B0aW9uOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gJ29wdGlvbnMnIGluIG9wdGlvblxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICB1cGRhdGVTdGF0ZShvcHRpb246IGFueSwgZXZlbnQ6IEV2ZW50KSB7XG4gICAgaWYgKG9wdGlvbi5kaXNhYmxlZCkgcmV0dXJuXG5cbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBvcHRpb25cbiAgICB0aGlzLnN0YXRlID0gb3B0aW9uXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlQ2hhbmdlZC5lbWl0KG9wdGlvbilcbiAgICB0aGlzLnNldEV4cGFuZGVkKGZhbHNlKVxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBzZXRFeHBhbmRlZChleHBhbmRlZCA9IHRydWUpIHtcbiAgICAvLyB1cGRhdGUgZXhwYW5kZWQgc3RhdGVcbiAgICB0aGlzLl9leHBhbmRlZCA9IGV4cGFuZGVkXG5cbiAgICBpZiAoZXhwYW5kZWQpIHRoaXMucmVmcmVzaFNlbGVjdGVkT3B0aW9uKClcbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuY2xvc2VkJC5uZXh0KHRydWUpXG4gICAgICB0aGlzLm9uQ2xpY2tTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICByZWZyZXNoU2VsZWN0ZWRPcHRpb24oKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZHJvcGRvd25VdGlscy5mbGF0dGVuT3B0aW9ucyhcbiAgICAgIHRoaXMub3B0aW9ucyxcbiAgICAgICF0aGlzLm9wdGlvbkNvbnRlbnRUcGwsXG4gICAgKVxuICAgIHRoaXMuYWN0aXZlSW5kZXggPSB0aGlzLmdldEFjdGl2ZUluZGV4KClcbiAgICB0aGlzLnN0YXRlID0gb3B0aW9uc1t0aGlzLmFjdGl2ZUluZGV4XVxuICAgIHRoaXMuc2Nyb2xsVG9SZXN1bHQodGhpcy5zdGF0ZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogQHJldHVybnMgVGhlIGFjdGl2ZSBpbmRleCAobnVtYmVyKSBpZiBvcHRpb24gaXMgZm91bmQsIC0xIG90aGVyd2lzZS5cbiAgICogLSBJZiBhIHNlbGVjdGVkVmFsdWUgZXhpc3RzIHRoYXQncyBub3QgbnVsbGlzaCBhbmQgdGhhdCBvcHRpb25zIGlzIGZvdW5kLCByZXR1cm4gdGhhdCBpbmRleFxuICAgKiAtIEVsc2UsIHJldHVybiBmaXJzdCBub24gbnVsbGlzaCBpbmRleFxuICAgKiAtIElmIG5vbmUgb2YgdGhlIGFib3ZlIGNyaXRlcmlhcyBhcmUgbWV0LCAtMSBhcmUgcmV0dXJuZWRcbiAgICovXG4gIGdldEFjdGl2ZUluZGV4KCk6IG51bWJlciB7XG4gICAgaWYgKCEhdGhpcy5zZWxlY3RlZFZhbHVlICYmIHRoaXMuc2VsZWN0ZWRWYWx1ZT8ua2V5ICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSB0aGlzLmRyb3Bkb3duVXRpbHNcbiAgICAgICAgLmZsYXR0ZW5PcHRpb25zKHRoaXMub3B0aW9ucywgIXRoaXMub3B0aW9uQ29udGVudFRwbClcbiAgICAgICAgLmZpbmRJbmRleChcbiAgICAgICAgICAob3B0aW9uKSA9PlxuICAgICAgICAgICAgb3B0aW9uLmtleSAhPSBudWxsICYmIG9wdGlvbi5rZXkgPT09IHRoaXMuc2VsZWN0ZWRWYWx1ZT8ua2V5LFxuICAgICAgICApXG4gICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSByZXR1cm4gc2VsZWN0ZWRJbmRleFxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5kcm9wZG93blV0aWxzXG4gICAgICAuZmxhdHRlbk9wdGlvbnModGhpcy5vcHRpb25zLCAhdGhpcy5vcHRpb25Db250ZW50VHBsKVxuICAgICAgLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24ua2V5ICE9IG51bGwpXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIGV2YWx1YXRlcyB3ZXRoZXIgdGhlIEhUTUwgZWxlbWVudCBvdmVyZmxvd3NcbiAgICogQHBhcmFtIGVsZW0gVGhlIEhUTUxFbGVtZW50IHRvIGV2YWx1YXRlXG4gICAqICovXG4gIGlzT3ZlcmZsb3coZWxlbTogSFRNTEVsZW1lbnQpIHtcbiAgICByZXR1cm4gZWxlbS5vZmZzZXRXaWR0aCA8IGVsZW0uc2Nyb2xsV2lkdGhcbiAgfVxuXG4gIC8qKlxuICAgKiBUeXBlY2FzdCBhbnl0aGluZyB0byBhbiB7QGxpbmsgT3B0aW9uR3JvdXB9LlxuICAgKiBAcGFyYW0gZ3JvdXAgdGhlIG9iamVjdCB0byB0eXBlY2FzdC5cbiAgICovXG4gIGNhc3RHcm91cChncm91cDogYW55KTogYW55IHtcbiAgICByZXR1cm4gZ3JvdXBcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogRGlzYWJsZXMgZGVmYXVsdCBldmVudHMuXG4gICAqIEBwYXJhbSBldmVudCBmaXJlZCBjb250YWluaW5nIHdoaWNoIGtleSB3YXMgcHJlc3NlZC5cbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnRW50ZXInOiAvLyAgRGlzYWJsZSBmb3JtIHN1Ym1pc3Npb25cbiAgICAgIGNhc2UgJ0Fycm93VXAnOiAvLyBEaXNhYmxlIHNjcm9sbGluZyB1cFxuICAgICAgY2FzZSAnQXJyb3dEb3duJzogLy8gRGlzYWJsZSBzY3JvbGxpbmcgZG93blxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBFbnRlciB0b2dnbGVzIHRoZSBkcm9wZG93biwgaG9tZSwgZW5kLCBhbmQsIGFycm93cyBjaGFuZ2UgdGhlIGluZGV4LlxuICAgKiBAcGFyYW0gZXZlbnQgZmlyZWQgY29udGFpbmluZyB3aGljaCBrZXkgd2FzIHJlbGVhc2VkLlxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5dXAnLCBbJyRldmVudCddKVxuICBvbktleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKCF0aGlzLmV4cGFuZGVkKSByZXR1cm5cbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5kcm9wZG93blV0aWxzLmZsYXR0ZW5PcHRpb25zKFxuICAgICAgdGhpcy5vcHRpb25zLFxuICAgICAgIXRoaXMub3B0aW9uQ29udGVudFRwbCxcbiAgICApXG4gICAgbGV0IG9wdGlvblxuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgIHRoaXMuc2V0RXhwYW5kZWQoZmFsc2UpXG4gICAgICAgIHRoaXMuY2xvc2VkLmVtaXQoKVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnRW50ZXInOiAvLyBTZWxlY3QgdGhlIGN1cnJlbnRseSBjaG9zZW4gdmFsdWVcbiAgICAgICAgb3B0aW9uID0gb3B0aW9uc1t0aGlzLmFjdGl2ZUluZGV4XVxuICAgICAgICB0aGlzLnVwZGF0ZVN0YXRlKG9wdGlvbiwgZXZlbnQpXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgJ0hvbWUnOiAvLyBNb3ZlIHRvIHRoZSBmaXJzdCBvcHRpb25cbiAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IDBcblxuICAgICAgICBvcHRpb24gPSBvcHRpb25zW3RoaXMuYWN0aXZlSW5kZXhdXG4gICAgICAgIHRoaXMuc3RhdGUgPSBvcHRpb25cbiAgICAgICAgdGhpcy5zY3JvbGxUb1Jlc3VsdChvcHRpb24pXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgJ0Fycm93VXAnOiAvLyBNb3ZlIHVwIG9uZSBzdGVwIHRvIHRoZSBwcmV2aW91cyBvcHRpb25cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW5kZXggPiAwKSB0aGlzLmFjdGl2ZUluZGV4LS1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5hY3RpdmVJbmRleCA9PT0gMCkgdGhpcy5hY3RpdmVJbmRleCA9IG9wdGlvbnMubGVuZ3RoIC0gMVxuXG4gICAgICAgIG9wdGlvbiA9IG9wdGlvbnNbdGhpcy5hY3RpdmVJbmRleF1cbiAgICAgICAgdGhpcy5zdGF0ZSA9IG9wdGlvblxuICAgICAgICB0aGlzLnNjcm9sbFRvUmVzdWx0KG9wdGlvbilcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAnQXJyb3dEb3duJzogLy8gTW92ZSBkb3duIG9uZSBzdGVwIHRvIHRoZSBuZXh0IG9wdGlvblxuICAgICAgICBpZiAob3B0aW9ucy5sZW5ndGggPiB0aGlzLmFjdGl2ZUluZGV4ICsgMSkgdGhpcy5hY3RpdmVJbmRleCsrXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuYWN0aXZlSW5kZXggPT09IG9wdGlvbnMubGVuZ3RoIC0gMSkgdGhpcy5hY3RpdmVJbmRleCA9IDBcblxuICAgICAgICBvcHRpb24gPSBvcHRpb25zW3RoaXMuYWN0aXZlSW5kZXhdXG4gICAgICAgIHRoaXMuc3RhdGUgPSBvcHRpb25cbiAgICAgICAgdGhpcy5zY3JvbGxUb1Jlc3VsdChvcHRpb24pXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgJ0VuZCc6IC8vIE1vdmUgdG8gdGhlIGxhc3Qgb3B0aW9uc1xuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gb3B0aW9ucy5sZW5ndGggLSAxXG5cbiAgICAgICAgb3B0aW9uID0gb3B0aW9uc1t0aGlzLmFjdGl2ZUluZGV4XVxuICAgICAgICB0aGlzLnN0YXRlID0gb3B0aW9uXG4gICAgICAgIHRoaXMuc2Nyb2xsVG9SZXN1bHQob3B0aW9uKVxuICAgICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTY3JvbGxzIGZvY3VzZWQgcmVzdWx0IGludG8gdmlldyB3aXRoIGEgc3BlY2lmaWVkIG9mZnNldC5cbiAgICogQHBhcmFtIGtleSB0aGUgcmVzdWx0IGluZGV4IHdoaWNoIHRvIHNjcm9sbCB0by5cbiAgICovXG4gIHNjcm9sbFRvUmVzdWx0KG9wdGlvbjogYW55KSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvblJlZnMgfHwgIW9wdGlvbikgcmV0dXJuXG4gICAgY29uc3Qgb3B0aW9uUmVmID0gdGhpcy5vcHRpb25SZWZzLmZpbmQoXG4gICAgICAobGkpID0+IGxpLm5hdGl2ZUVsZW1lbnQuaWQgPT09IHRoaXMuaWQgKyAnLW9wdGlvbi0nICsgb3B0aW9uLmtleSxcbiAgICApXG4gICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy5zY3JvbGxPZmZzZXRcbiAgICBpZiAob3B0aW9uUmVmKSB7XG4gICAgICBsZXQgZGVsdGEgPSB3aW5kb3cuc2Nyb2xsWSB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wXG5cbiAgICAgIC8vIFRoZSBsaXN0IHNlZW1zIG5vdCB0byBiZSB2aXNpYmxlIGF0IHRoZSB0aW1lIG9mIHNjcm9sbGluZywgYnV0IHRoaXMgc2V0VGltZW91dCBcImhhY2tcIiBtYWtlcyBpdCB3b3JrLi4uXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2Nyb2xsSW50b1ZpZXcob3B0aW9uUmVmLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgICBzY3JvbGxNb2RlOiAnaWYtbmVlZGVkJyxcbiAgICAgICAgICBibG9jazogJ25lYXJlc3QnLFxuICAgICAgICB9KVxuXG4gICAgICAgIGRlbHRhIC09IHdpbmRvdy5zY3JvbGxZIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3BcbiAgICAgICAgaWYgKGRlbHRhKSB3aW5kb3cuc2Nyb2xsQnkoMCwgZGVsdGEgPiAwID8gLW9mZnNldCA6IG9mZnNldClcbiAgICAgIH0sIDApXG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogc2NvcGVcIj5cbiAgPHVsXG4gICAgY2xhc3M9XCJnZHMtZHJvcGRvd25fX29wdGlvbnMgY2FyZCBvcHRpb25zIGdkcy1yZXNldFwiXG4gICAgW2NsYXNzLmdkcy1kcm9wZG93bl9fb3B0aW9ucy1leHBhbmRlZF09XCJleHBhbmRlZFwiXG4gICAgcm9sZT1cImxpc3Rib3hcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLW9wdGlvbnMnXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaWQgKyAnLWxhYmVsJ1wiXG4gICAgW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XT1cIlxuICAgICAgc3RhdGUgPyBpZCArICctb3B0aW9uLScgKyBzdGF0ZT8ua2V5IDogdW5kZWZpbmVkXG4gICAgXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3B0aW9uc1wiPlxuICAgICAgPCEtLSBPUFRJT04gLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzR3JvdXAoaXRlbSlcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsaXN0SXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCJcbiAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBPUFRJT04gR1JPVVAgLS0+XG4gICAgICA8bGlcbiAgICAgICAgY2xhc3M9XCJnZHMtZHJvcGRvd25fX29wdGlvbnNfX2xhYmVsIGdyb3VwXCJcbiAgICAgICAgW2F0dHIuZGF0YS10aG9va109XCJ0aG9vayArICctb3B0aW9uLWdyb3VwJ1wiXG4gICAgICAgICpuZ0lmPVwiaXNHcm91cChpdGVtKVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZHYtbGlzdF9fbGFiZWxcIj57eyB0KGl0ZW0ubGFiZWwpIH19PC9kaXY+XG4gICAgICAgIDx1bCBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgY2FzdEdyb3VwKGl0ZW0pLm9wdGlvbnNcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgIGxpc3RJdGVtVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IG9wdGlvbiB9XG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvdWw+XG5cbiAgPCEtLSBURU1QTEFURSAtLT5cbiAgPG5nLXRlbXBsYXRlICNsaXN0SXRlbVRlbXBsYXRlIGxldC1vcHRpb24+XG4gICAgPGxpXG4gICAgICAjb3B0aW9uUmVmc1xuICAgICAgKm5nSWY9XCIhb3B0aW9uQ29udGVudFRwbFwiXG4gICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgIFtpZF09XCJpZCArICctb3B0aW9uLScgKyBvcHRpb24ua2V5XCJcbiAgICAgIGNsYXNzPVwiZ2RzLWRyb3Bkb3duX19vcHRpb25zX19sYWJlbCBvcHRpb25cIlxuICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAjbGlFbGVtXG4gICAgICBbYXR0ci5kYXRhLXRob29rXT1cInRob29rICsgJy1vcHRpb24tJyArIG9wdGlvbi5rZXlcIlxuICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJvcHRpb24uZGlzYWJsZWRcIlxuICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJcbiAgICAgICAgb3B0aW9uLmtleSA9PT0gc2VsZWN0ZWRWYWx1ZT8ua2V5ICYmICEhc2VsZWN0ZWRWYWx1ZT8ua2V5XG4gICAgICBcIlxuICAgICAgW2F0dHIuYXJpYS1mb2N1c109XCJvcHRpb24ua2V5ID09PSBzdGF0ZT8ua2V5ICYmICFvcHRpb24uZGlzYWJsZWRcIlxuICAgICAgW25ndlRvb2x0aXBdPVwiaXNPdmVyZmxvdyhsaUVsZW0pID8gdChvcHRpb24ubGFiZWwpIDogdW5kZWZpbmVkXCJcbiAgICAgIChjbGljayk9XCJ1cGRhdGVTdGF0ZShvcHRpb24sICRldmVudClcIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgIGJhc2ljT3B0aW9uQ29udGVudFRwbDtcbiAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogb3B0aW9uIH1cbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9saT5cbiAgICA8IS0tIENoZWNraW5nIG92ZXJmbG93IG9uIGN1c3RvbSB0ZW1wbGF0ZXMgZG8gbm90IHdvcmsgc2tpcCBhZGRpbmcgbmd2VG9vbFRpcCBpZiBjdXN0b20gdGVtcGxhdGUgaXMgcHJvdmlkZWQgLS0+XG4gICAgPGxpXG4gICAgICAjb3B0aW9uUmVmc1xuICAgICAgKm5nSWY9XCIhIW9wdGlvbkNvbnRlbnRUcGxcIlxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICBbaWRdPVwiaWQgKyAnLW9wdGlvbi0nICsgb3B0aW9uLmtleVwiXG4gICAgICBjbGFzcz1cImdkcy1kcm9wZG93bl9fb3B0aW9uc19fbGFiZWwgb3B0aW9uXCJcbiAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgI2xpRWxlbVxuICAgICAgW2F0dHIuZGF0YS10aG9va109XCJ0aG9vayArICctb3B0aW9uLScgKyBvcHRpb24ua2V5XCJcbiAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwib3B0aW9uLmRpc2FibGVkXCJcbiAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiXG4gICAgICAgIG9wdGlvbi5rZXkgPT09IHNlbGVjdGVkVmFsdWU/LmtleSAmJiAhIXNlbGVjdGVkVmFsdWU/LmtleVxuICAgICAgXCJcbiAgICAgIFthdHRyLmFyaWEtZm9jdXNdPVwib3B0aW9uLmtleSA9PT0gc3RhdGU/LmtleSAmJiAhb3B0aW9uLmRpc2FibGVkXCJcbiAgICAgIChjbGljayk9XCJ1cGRhdGVTdGF0ZShvcHRpb24sICRldmVudClcIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIm9wdGlvbkNvbnRlbnRUcGw7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBvcHRpb24gfVwiXG4gICAgICA+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbGk+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPG5nLXRlbXBsYXRlICNiYXNpY09wdGlvbkNvbnRlbnRUcGwgbGV0LW9wdGlvbj5cbiAgICA8bmd2LXR5cGVhaGVhZC1oaWdobGlnaHRcbiAgICAgICpuZ0lmPVwiISF0ZXh0VG9IaWdobGlnaHRcIlxuICAgICAgW3RleHRUb0hpZ2hsaWdodF09XCJ0ZXh0VG9IaWdobGlnaHRcIlxuICAgICAgW3RleHRDb250ZW50XT1cInQob3B0aW9uLmxhYmVsKVwiXG4gICAgPlxuICAgIDwvbmd2LXR5cGVhaGVhZC1oaWdobGlnaHQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF0ZXh0VG9IaWdobGlnaHRcIj5cbiAgICAgIHt7IHQob3B0aW9uLmxhYmVsKSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -1,2 +0,0 @@
1
- export * from './dropdown-list.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9kcm9wZG93bi9kcm9wZG93bi1saXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Ryb3Bkb3duLWxpc3QuY29tcG9uZW50J1xuIl19