@skyux/forms 5.7.2 → 6.0.0-beta.2

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 (168) hide show
  1. package/documentation.json +630 -630
  2. package/esm2020/index.mjs +43 -0
  3. package/esm2020/lib/modules/character-counter/character-counter-indicator.component.mjs +32 -0
  4. package/esm2020/lib/modules/character-counter/character-counter.directive.mjs +84 -0
  5. package/esm2020/lib/modules/character-counter/character-counter.module.mjs +46 -0
  6. package/esm2020/lib/modules/checkbox/checkbox-change.mjs +6 -0
  7. package/esm2020/lib/modules/checkbox/checkbox-label.component.mjs +14 -0
  8. package/esm2020/lib/modules/checkbox/checkbox-required-validator.directive.mjs +32 -0
  9. package/esm2020/lib/modules/checkbox/checkbox.component.mjs +237 -0
  10. package/esm2020/lib/modules/checkbox/checkbox.module.mjs +34 -0
  11. package/esm2020/lib/modules/file-attachment/file-attachment-label.component.mjs +14 -0
  12. package/esm2020/lib/modules/file-attachment/file-attachment.component.mjs +325 -0
  13. package/esm2020/lib/modules/file-attachment/file-attachment.service.mjs +94 -0
  14. package/esm2020/lib/modules/file-attachment/file-attachments.module.mjs +68 -0
  15. package/esm2020/lib/modules/file-attachment/file-drop.component.mjs +217 -0
  16. package/esm2020/lib/modules/file-attachment/file-item-error-type.mjs +2 -0
  17. package/esm2020/lib/modules/file-attachment/file-item.component.mjs +112 -0
  18. package/esm2020/lib/modules/file-attachment/file-item.mjs +2 -0
  19. package/esm2020/lib/modules/file-attachment/file-item.service.mjs +72 -0
  20. package/esm2020/lib/modules/file-attachment/file-link.mjs +2 -0
  21. package/esm2020/lib/modules/file-attachment/file-size.pipe.mjs +60 -0
  22. package/esm2020/lib/modules/file-attachment/types/file-attachment-change.mjs +2 -0
  23. package/esm2020/lib/modules/file-attachment/types/file-attachment-click.mjs +2 -0
  24. package/esm2020/lib/modules/file-attachment/types/file-drop-change.mjs +2 -0
  25. package/esm2020/lib/modules/input-box/input-box-adapter.service.mjs +35 -0
  26. package/esm2020/lib/modules/input-box/input-box-host.service.mjs +19 -0
  27. package/esm2020/lib/modules/input-box/input-box-populate-args.mjs +2 -0
  28. package/esm2020/lib/modules/input-box/input-box.component.mjs +89 -0
  29. package/esm2020/lib/modules/input-box/input-box.module.mjs +19 -0
  30. package/esm2020/lib/modules/radio/radio-group.component.mjs +220 -0
  31. package/esm2020/lib/modules/radio/radio-label.component.mjs +23 -0
  32. package/esm2020/lib/modules/radio/radio.component.mjs +256 -0
  33. package/esm2020/lib/modules/radio/radio.module.mjs +28 -0
  34. package/esm2020/lib/modules/radio/types/radio-change.mjs +2 -0
  35. package/esm2020/lib/modules/selection-box/selection-box-adapter.service.mjs +124 -0
  36. package/esm2020/lib/modules/selection-box/selection-box-description.component.mjs +14 -0
  37. package/esm2020/lib/modules/selection-box/selection-box-grid.component.mjs +126 -0
  38. package/esm2020/lib/modules/selection-box/selection-box-header.component.mjs +14 -0
  39. package/esm2020/lib/modules/selection-box/selection-box.component.mjs +101 -0
  40. package/esm2020/lib/modules/selection-box/selection-box.module.mjs +40 -0
  41. package/esm2020/lib/modules/selection-box/types/selection-box-grid-align-items-type.mjs +2 -0
  42. package/esm2020/lib/modules/selection-box/types/selection-box-grid-align-items.mjs +2 -0
  43. package/esm2020/lib/modules/shared/forms-utility.mjs +26 -0
  44. package/esm2020/lib/modules/shared/sky-forms-resources.module.mjs +89 -0
  45. package/esm2020/lib/modules/toggle-switch/toggle-switch-label.component.mjs +14 -0
  46. package/esm2020/lib/modules/toggle-switch/toggle-switch.component.mjs +153 -0
  47. package/esm2020/lib/modules/toggle-switch/toggle-switch.module.mjs +20 -0
  48. package/esm2020/lib/modules/toggle-switch/types/toggle-switch-change.mjs +2 -0
  49. package/esm2020/skyux-forms.mjs +5 -0
  50. package/esm2020/testing/checkbox-fixture.mjs +88 -0
  51. package/esm2020/testing/public-api.mjs +2 -0
  52. package/esm2020/testing/skyux-forms-testing.mjs +5 -0
  53. package/fesm2015/{skyux-forms-testing.js → skyux-forms-testing.mjs} +1 -1
  54. package/fesm2015/skyux-forms-testing.mjs.map +1 -0
  55. package/fesm2015/skyux-forms.mjs +2691 -0
  56. package/fesm2015/skyux-forms.mjs.map +1 -0
  57. package/{esm2015/testing/checkbox-fixture.js → fesm2020/skyux-forms-testing.mjs} +9 -2
  58. package/fesm2020/skyux-forms-testing.mjs.map +1 -0
  59. package/fesm2020/skyux-forms.mjs +2685 -0
  60. package/fesm2020/skyux-forms.mjs.map +1 -0
  61. package/package.json +40 -16
  62. package/testing/package.json +5 -5
  63. package/bundles/skyux-forms-testing.umd.js +0 -123
  64. package/bundles/skyux-forms.umd.js +0 -3422
  65. package/esm2015/index.js +0 -43
  66. package/esm2015/index.js.map +0 -1
  67. package/esm2015/lib/modules/character-counter/character-counter-indicator.component.js +0 -37
  68. package/esm2015/lib/modules/character-counter/character-counter-indicator.component.js.map +0 -1
  69. package/esm2015/lib/modules/character-counter/character-counter.directive.js +0 -84
  70. package/esm2015/lib/modules/character-counter/character-counter.directive.js.map +0 -1
  71. package/esm2015/lib/modules/character-counter/character-counter.module.js +0 -46
  72. package/esm2015/lib/modules/character-counter/character-counter.module.js.map +0 -1
  73. package/esm2015/lib/modules/checkbox/checkbox-change.js +0 -6
  74. package/esm2015/lib/modules/checkbox/checkbox-change.js.map +0 -1
  75. package/esm2015/lib/modules/checkbox/checkbox-label.component.js +0 -17
  76. package/esm2015/lib/modules/checkbox/checkbox-label.component.js.map +0 -1
  77. package/esm2015/lib/modules/checkbox/checkbox-required-validator.directive.js +0 -32
  78. package/esm2015/lib/modules/checkbox/checkbox-required-validator.directive.js.map +0 -1
  79. package/esm2015/lib/modules/checkbox/checkbox.component.js +0 -241
  80. package/esm2015/lib/modules/checkbox/checkbox.component.js.map +0 -1
  81. package/esm2015/lib/modules/checkbox/checkbox.module.js +0 -34
  82. package/esm2015/lib/modules/checkbox/checkbox.module.js.map +0 -1
  83. package/esm2015/lib/modules/file-attachment/file-attachment-label.component.js +0 -19
  84. package/esm2015/lib/modules/file-attachment/file-attachment-label.component.js.map +0 -1
  85. package/esm2015/lib/modules/file-attachment/file-attachment.component.js +0 -331
  86. package/esm2015/lib/modules/file-attachment/file-attachment.component.js.map +0 -1
  87. package/esm2015/lib/modules/file-attachment/file-attachment.service.js +0 -94
  88. package/esm2015/lib/modules/file-attachment/file-attachment.service.js.map +0 -1
  89. package/esm2015/lib/modules/file-attachment/file-attachments.module.js +0 -68
  90. package/esm2015/lib/modules/file-attachment/file-attachments.module.js.map +0 -1
  91. package/esm2015/lib/modules/file-attachment/file-drop.component.js +0 -222
  92. package/esm2015/lib/modules/file-attachment/file-drop.component.js.map +0 -1
  93. package/esm2015/lib/modules/file-attachment/file-item-error-type.js +0 -2
  94. package/esm2015/lib/modules/file-attachment/file-item-error-type.js.map +0 -1
  95. package/esm2015/lib/modules/file-attachment/file-item.component.js +0 -116
  96. package/esm2015/lib/modules/file-attachment/file-item.component.js.map +0 -1
  97. package/esm2015/lib/modules/file-attachment/file-item.js +0 -2
  98. package/esm2015/lib/modules/file-attachment/file-item.js.map +0 -1
  99. package/esm2015/lib/modules/file-attachment/file-item.service.js +0 -72
  100. package/esm2015/lib/modules/file-attachment/file-item.service.js.map +0 -1
  101. package/esm2015/lib/modules/file-attachment/file-link.js +0 -2
  102. package/esm2015/lib/modules/file-attachment/file-link.js.map +0 -1
  103. package/esm2015/lib/modules/file-attachment/file-size.pipe.js +0 -60
  104. package/esm2015/lib/modules/file-attachment/file-size.pipe.js.map +0 -1
  105. package/esm2015/lib/modules/file-attachment/types/file-attachment-change.js +0 -2
  106. package/esm2015/lib/modules/file-attachment/types/file-attachment-change.js.map +0 -1
  107. package/esm2015/lib/modules/file-attachment/types/file-attachment-click.js +0 -2
  108. package/esm2015/lib/modules/file-attachment/types/file-attachment-click.js.map +0 -1
  109. package/esm2015/lib/modules/file-attachment/types/file-drop-change.js +0 -2
  110. package/esm2015/lib/modules/file-attachment/types/file-drop-change.js.map +0 -1
  111. package/esm2015/lib/modules/input-box/input-box-adapter.service.js +0 -35
  112. package/esm2015/lib/modules/input-box/input-box-adapter.service.js.map +0 -1
  113. package/esm2015/lib/modules/input-box/input-box-host.service.js +0 -19
  114. package/esm2015/lib/modules/input-box/input-box-host.service.js.map +0 -1
  115. package/esm2015/lib/modules/input-box/input-box-populate-args.js +0 -2
  116. package/esm2015/lib/modules/input-box/input-box-populate-args.js.map +0 -1
  117. package/esm2015/lib/modules/input-box/input-box.component.js +0 -97
  118. package/esm2015/lib/modules/input-box/input-box.component.js.map +0 -1
  119. package/esm2015/lib/modules/input-box/input-box.module.js +0 -19
  120. package/esm2015/lib/modules/input-box/input-box.module.js.map +0 -1
  121. package/esm2015/lib/modules/radio/radio-group.component.js +0 -223
  122. package/esm2015/lib/modules/radio/radio-group.component.js.map +0 -1
  123. package/esm2015/lib/modules/radio/radio-label.component.js +0 -26
  124. package/esm2015/lib/modules/radio/radio-label.component.js.map +0 -1
  125. package/esm2015/lib/modules/radio/radio.component.js +0 -262
  126. package/esm2015/lib/modules/radio/radio.component.js.map +0 -1
  127. package/esm2015/lib/modules/radio/radio.module.js +0 -28
  128. package/esm2015/lib/modules/radio/radio.module.js.map +0 -1
  129. package/esm2015/lib/modules/radio/types/radio-change.js +0 -2
  130. package/esm2015/lib/modules/radio/types/radio-change.js.map +0 -1
  131. package/esm2015/lib/modules/selection-box/selection-box-adapter.service.js +0 -124
  132. package/esm2015/lib/modules/selection-box/selection-box-adapter.service.js.map +0 -1
  133. package/esm2015/lib/modules/selection-box/selection-box-description.component.js +0 -17
  134. package/esm2015/lib/modules/selection-box/selection-box-description.component.js.map +0 -1
  135. package/esm2015/lib/modules/selection-box/selection-box-grid.component.js +0 -132
  136. package/esm2015/lib/modules/selection-box/selection-box-grid.component.js.map +0 -1
  137. package/esm2015/lib/modules/selection-box/selection-box-header.component.js +0 -17
  138. package/esm2015/lib/modules/selection-box/selection-box-header.component.js.map +0 -1
  139. package/esm2015/lib/modules/selection-box/selection-box.component.js +0 -107
  140. package/esm2015/lib/modules/selection-box/selection-box.component.js.map +0 -1
  141. package/esm2015/lib/modules/selection-box/selection-box.module.js +0 -40
  142. package/esm2015/lib/modules/selection-box/selection-box.module.js.map +0 -1
  143. package/esm2015/lib/modules/selection-box/types/selection-box-grid-align-items-type.js +0 -2
  144. package/esm2015/lib/modules/selection-box/types/selection-box-grid-align-items-type.js.map +0 -1
  145. package/esm2015/lib/modules/selection-box/types/selection-box-grid-align-items.js +0 -2
  146. package/esm2015/lib/modules/selection-box/types/selection-box-grid-align-items.js.map +0 -1
  147. package/esm2015/lib/modules/shared/forms-utility.js +0 -26
  148. package/esm2015/lib/modules/shared/forms-utility.js.map +0 -1
  149. package/esm2015/lib/modules/shared/sky-forms-resources.module.js +0 -89
  150. package/esm2015/lib/modules/shared/sky-forms-resources.module.js.map +0 -1
  151. package/esm2015/lib/modules/toggle-switch/toggle-switch-label.component.js +0 -18
  152. package/esm2015/lib/modules/toggle-switch/toggle-switch-label.component.js.map +0 -1
  153. package/esm2015/lib/modules/toggle-switch/toggle-switch.component.js +0 -159
  154. package/esm2015/lib/modules/toggle-switch/toggle-switch.component.js.map +0 -1
  155. package/esm2015/lib/modules/toggle-switch/toggle-switch.module.js +0 -20
  156. package/esm2015/lib/modules/toggle-switch/toggle-switch.module.js.map +0 -1
  157. package/esm2015/lib/modules/toggle-switch/types/toggle-switch-change.js +0 -2
  158. package/esm2015/lib/modules/toggle-switch/types/toggle-switch-change.js.map +0 -1
  159. package/esm2015/skyux-forms.js +0 -5
  160. package/esm2015/skyux-forms.js.map +0 -1
  161. package/esm2015/testing/checkbox-fixture.js.map +0 -1
  162. package/esm2015/testing/public-api.js +0 -2
  163. package/esm2015/testing/public-api.js.map +0 -1
  164. package/esm2015/testing/skyux-forms-testing.js +0 -5
  165. package/esm2015/testing/skyux-forms-testing.js.map +0 -1
  166. package/fesm2015/skyux-forms-testing.js.map +0 -1
  167. package/fesm2015/skyux-forms.js +0 -2765
  168. package/fesm2015/skyux-forms.js.map +0 -1
@@ -0,0 +1,220 @@
1
+ import { ChangeDetectorRef, Component, ContentChildren, Input, Optional, QueryList, Self, } from '@angular/core';
2
+ import { NgControl } from '@angular/forms';
3
+ import { Subject } from 'rxjs';
4
+ import { takeUntil } from 'rxjs/operators';
5
+ import { SkyFormsUtility } from '../shared/forms-utility';
6
+ import { SkyRadioComponent } from './radio.component';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/forms";
9
+ let nextUniqueId = 0;
10
+ /**
11
+ * Organizes radio buttons into a group. It is required for radio
12
+ * buttons on Angular reactive forms, and we recommend using it with all radio buttons.
13
+ * On Angular forms, the component manages the selected values and keeps the forms up-to-date.
14
+ * When users select a radio button, its value is driven through an `ngModel` attribute that you specify on the `sky-radio-group` element.
15
+ */
16
+ export class SkyRadioGroupComponent {
17
+ constructor(changeDetector, ngControl) {
18
+ this.changeDetector = changeDetector;
19
+ this.ngControl = ngControl;
20
+ /**
21
+ * Indicates whether the input is required for form validation.
22
+ * When you set this property to `true`, the component adds `aria-required` and `required`
23
+ * attributes to the input element so that forms display an invalid state until the input element
24
+ * is complete.
25
+ * @default false
26
+ */
27
+ this.required = false;
28
+ this.ngUnsubscribe = new Subject();
29
+ this._disabled = false;
30
+ this._name = `sky-radio-group-${nextUniqueId++}`;
31
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
32
+ this.onChange = () => { };
33
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
34
+ this.onTouched = () => { };
35
+ if (this.ngControl) {
36
+ this.ngControl.valueAccessor = this;
37
+ }
38
+ }
39
+ /**
40
+ * Indicates whether to disable the input.
41
+ * @default false
42
+ */
43
+ set disabled(value) {
44
+ const newDisabledState = SkyFormsUtility.coerceBooleanProperty(value);
45
+ if (this._disabled !== newDisabledState) {
46
+ this._disabled = newDisabledState;
47
+ this.updateRadioButtonDisabled();
48
+ }
49
+ }
50
+ get disabled() {
51
+ return this._disabled;
52
+ }
53
+ /**
54
+ * Specifies a name for the collection of radio buttons that the component groups together.
55
+ * This property overwrites the deprecated `name` property on individual `sky-radio` elements,
56
+ * and it is required unless the `name` property is set on individual `sky-radio` elements.
57
+ * @required
58
+ */
59
+ set name(value) {
60
+ this._name = value;
61
+ this.updateRadioButtonNames();
62
+ }
63
+ get name() {
64
+ return this._name;
65
+ }
66
+ /**
67
+ * Specifies the value of the radio button to select by default when the group loads.
68
+ * The value corresponds to the `value` property of an individual `sky-radio` element within the
69
+ * group.
70
+ */
71
+ set value(value) {
72
+ const isNewValue = value !== this._value;
73
+ /* istanbul ignore else */
74
+ if (isNewValue) {
75
+ this._value = value;
76
+ this.onChange(this._value);
77
+ this.updateCheckedRadioFromValue();
78
+ }
79
+ }
80
+ get value() {
81
+ return this._value;
82
+ }
83
+ /**
84
+ * Specifies an index for all the radio buttons in the group. If the index is not defined,
85
+ * the indices for individual radio buttons are set to their positions on load.
86
+ * This property supports accessibility by placing focus on the currently selected radio
87
+ * button. If no radio button is selected, it places focus on the first or last button
88
+ * depending on how users navigate to the radio button group.
89
+ */
90
+ set tabIndex(value) {
91
+ if (this._tabIndex !== value) {
92
+ this._tabIndex = value;
93
+ this.updateRadioButtonTabIndexes();
94
+ }
95
+ }
96
+ get tabIndex() {
97
+ return this._tabIndex;
98
+ }
99
+ ngAfterContentInit() {
100
+ // Let child radio components render before updating.
101
+ setTimeout(() => {
102
+ this.resetRadioButtons();
103
+ });
104
+ // Watch for radio selections.
105
+ this.watchForSelections();
106
+ this.radios.changes.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {
107
+ // Wait for child radio components to finish any rendering updates.
108
+ setTimeout(() => {
109
+ this.resetRadioButtons();
110
+ });
111
+ // Subscribe to the new radio buttons
112
+ this.watchForSelections();
113
+ });
114
+ }
115
+ ngAfterViewInit() {
116
+ if (this.ngControl) {
117
+ // Backwards compatibility support for anyone still using Validators.Required.
118
+ this.required =
119
+ this.required || SkyFormsUtility.hasRequiredValidation(this.ngControl);
120
+ // Avoid an ExpressionChangedAfterItHasBeenCheckedError.
121
+ this.changeDetector.detectChanges();
122
+ }
123
+ }
124
+ watchForSelections() {
125
+ this.radios.forEach((radio) => {
126
+ radio.change
127
+ .pipe(takeUntil(this.ngUnsubscribe))
128
+ .subscribe((change) => {
129
+ this.onTouched();
130
+ this.writeValue(change.value);
131
+ });
132
+ radio.blur.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {
133
+ this.onTouched();
134
+ this.changeDetector.markForCheck();
135
+ });
136
+ });
137
+ }
138
+ ngOnDestroy() {
139
+ this.ngUnsubscribe.next();
140
+ this.ngUnsubscribe.complete();
141
+ }
142
+ writeValue(value) {
143
+ this.value = value;
144
+ }
145
+ /**
146
+ * @internal
147
+ * Indicates whether to disable the control. Implemented as a part of ControlValueAccessor.
148
+ */
149
+ setDisabledState(isDisabled) {
150
+ this.disabled = isDisabled;
151
+ }
152
+ registerOnChange(fn) {
153
+ this.onChange = fn;
154
+ }
155
+ registerOnTouched(fn) {
156
+ this.onTouched = fn;
157
+ }
158
+ updateRadioButtonDisabled() {
159
+ if (this.radios) {
160
+ this.radios.forEach((radio) => {
161
+ radio.disabled = this.disabled;
162
+ });
163
+ }
164
+ }
165
+ updateRadioButtonNames() {
166
+ if (this.radios) {
167
+ this.radios.forEach((radio) => {
168
+ radio.name = this.name;
169
+ });
170
+ }
171
+ }
172
+ updateRadioButtonTabIndexes() {
173
+ if (this.radios) {
174
+ this.radios.forEach((radio) => {
175
+ radio.groupTabIndex = this.tabIndex;
176
+ });
177
+ }
178
+ }
179
+ updateCheckedRadioFromValue() {
180
+ if (!this.radios) {
181
+ return;
182
+ }
183
+ this.radios.forEach((radio) => {
184
+ radio.checked = this._value === radio.value;
185
+ });
186
+ }
187
+ resetRadioButtons() {
188
+ this.updateCheckedRadioFromValue();
189
+ this.updateRadioButtonNames();
190
+ this.updateRadioButtonTabIndexes();
191
+ }
192
+ }
193
+ SkyRadioGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyRadioGroupComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
194
+ SkyRadioGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyRadioGroupComponent, selector: "sky-radio-group", inputs: { ariaLabelledBy: "ariaLabelledBy", ariaLabel: "ariaLabel", disabled: "disabled", name: "name", required: "required", value: "value", tabIndex: "tabIndex" }, queries: [{ propertyName: "radios", predicate: SkyRadioComponent, descendants: true }], ngImport: i0, template: "<div\n class=\"sky-radio-group\"\n role=\"radiogroup\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-required]=\"required ? true : null\"\n [attr.required]=\"required ? '' : null\"\n>\n <ng-content></ng-content>\n</div>\n" });
195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyRadioGroupComponent, decorators: [{
196
+ type: Component,
197
+ args: [{ selector: 'sky-radio-group', template: "<div\n class=\"sky-radio-group\"\n role=\"radiogroup\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-required]=\"required ? true : null\"\n [attr.required]=\"required ? '' : null\"\n>\n <ng-content></ng-content>\n</div>\n" }]
198
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.NgControl, decorators: [{
199
+ type: Self
200
+ }, {
201
+ type: Optional
202
+ }] }]; }, propDecorators: { ariaLabelledBy: [{
203
+ type: Input
204
+ }], ariaLabel: [{
205
+ type: Input
206
+ }], disabled: [{
207
+ type: Input
208
+ }], name: [{
209
+ type: Input
210
+ }], required: [{
211
+ type: Input
212
+ }], value: [{
213
+ type: Input
214
+ }], tabIndex: [{
215
+ type: Input
216
+ }], radios: [{
217
+ type: ContentChildren,
218
+ args: [SkyRadioComponent, { descendants: true }]
219
+ }] } });
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9yYWRpby9yYWRpby1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3JhZGlvL3JhZGlvLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixLQUFLLEVBRUwsUUFBUSxFQUNSLFNBQVMsRUFDVCxJQUFJLEdBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBR3RELElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQUVyQjs7Ozs7R0FLRztBQUtILE1BQU0sT0FBTyxzQkFBc0I7SUFrSGpDLFlBQ1UsY0FBaUMsRUFDYixTQUFvQjtRQUR4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDYixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBL0RsRDs7Ozs7O1dBTUc7UUFFSSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBMkNoQixrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFOUIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixVQUFLLEdBQUcsbUJBQW1CLFlBQVksRUFBRSxF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MkJBQTJCLEVBQUUsQ0FBQztJQUNyQyxDQUFDOzttSEE3T1Usc0JBQXNCO3VHQUF0QixzQkFBc0Isb1BBcUdoQixpQkFBaUIsZ0RDdklwQyxtUkFVQTsyRkR3QmEsc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNFLGlCQUFpQjs7MEJBdUh4QixJQUFJOzswQkFBSSxRQUFROzRDQTFHWixjQUFjO3NCQURwQixLQUFLO2dCQVVDLFNBQVM7c0JBRGYsS0FBSztnQkFRSyxRQUFRO3NCQURsQixLQUFLO2dCQW9CSyxJQUFJO3NCQURkLEtBQUs7Z0JBaUJDLFFBQVE7c0JBRGQsS0FBSztnQkFTSyxLQUFLO3NCQURmLEtBQUs7Z0JBdUJLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBWUUsTUFBTTtzQkFEYixlQUFlO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFF1ZXJ5TGlzdCxcbiAgU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5Rm9ybXNVdGlsaXR5IH0gZnJvbSAnLi4vc2hhcmVkL2Zvcm1zLXV0aWxpdHknO1xuXG5pbXBvcnQgeyBTa3lSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4vcmFkaW8uY29tcG9uZW50JztcbmltcG9ydCB7IFNreVJhZGlvQ2hhbmdlIH0gZnJvbSAnLi90eXBlcy9yYWRpby1jaGFuZ2UnO1xuXG5sZXQgbmV4dFVuaXF1ZUlkID0gMDtcblxuLyoqXG4gKiBPcmdhbml6ZXMgcmFkaW8gYnV0dG9ucyBpbnRvIGEgZ3JvdXAuIEl0IGlzIHJlcXVpcmVkIGZvciByYWRpb1xuICogYnV0dG9ucyBvbiBBbmd1bGFyIHJlYWN0aXZlIGZvcm1zLCBhbmQgd2UgcmVjb21tZW5kIHVzaW5nIGl0IHdpdGggYWxsIHJhZGlvIGJ1dHRvbnMuXG4gKiBPbiBBbmd1bGFyIGZvcm1zLCB0aGUgY29tcG9uZW50IG1hbmFnZXMgdGhlIHNlbGVjdGVkIHZhbHVlcyBhbmQga2VlcHMgdGhlIGZvcm1zIHVwLXRvLWRhdGUuXG4gKiBXaGVuIHVzZXJzIHNlbGVjdCBhIHJhZGlvIGJ1dHRvbiwgaXRzIHZhbHVlIGlzIGRyaXZlbiB0aHJvdWdoIGFuIGBuZ01vZGVsYCBhdHRyaWJ1dGUgdGhhdCB5b3Ugc3BlY2lmeSBvbiB0aGUgYHNreS1yYWRpby1ncm91cGAgZWxlbWVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXJhZGlvLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UmFkaW9Hcm91cENvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBIVE1MIGVsZW1lbnQgSUQgKHdpdGhvdXQgdGhlIGxlYWRpbmcgYCNgKSBvZiB0aGUgZWxlbWVudCB0aGF0IGxhYmVsc1xuICAgKiB0aGUgcmFkaW8gYnV0dG9uIGdyb3VwLiBUaGlzIHNldHMgdGhlIHJhZGlvIGJ1dHRvbiBncm91cCdzIGBhcmlhLWxhYmVsbGVkYnlgIGF0dHJpYnV0ZVxuICAgKiBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2FjY2Vzc2liaWxpdHkpLlxuICAgKiBJZiB0aGUgcmFkaW8gYnV0dG9uIGdyb3VwIGRvZXMgbm90IGluY2x1ZGUgYSB2aXNpYmxlIGxhYmVsLCB1c2UgYGFyaWFMYWJlbGAgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcmlhTGFiZWxsZWRCeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYW4gQVJJQSBsYWJlbCBmb3IgdGhlIHJhZGlvIGJ1dHRvbiBncm91cC4gVGhpcyBzZXRzIHRoZVxuICAgKiByYWRpbyBidXR0b24gZ3JvdXAncyBgYXJpYS1sYWJlbGAgYXR0cmlidXRlXG4gICAqIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSkuXG4gICAqIElmIHRoZSByYWRpbyBidXR0b24gZ3JvdXAgaW5jbHVkZXMgYSB2aXNpYmxlIGxhYmVsLCB1c2UgYGFyaWFMYWJlbGxlZEJ5YCBpbnN0ZWFkLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFyaWFMYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNhYmxlIHRoZSBpbnB1dC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBuZXdEaXNhYmxlZFN0YXRlID0gU2t5Rm9ybXNVdGlsaXR5LmNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgaWYgKHRoaXMuX2Rpc2FibGVkICE9PSBuZXdEaXNhYmxlZFN0YXRlKSB7XG4gICAgICB0aGlzLl9kaXNhYmxlZCA9IG5ld0Rpc2FibGVkU3RhdGU7XG4gICAgICB0aGlzLnVwZGF0ZVJhZGlvQnV0dG9uRGlzYWJsZWQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSBuYW1lIGZvciB0aGUgY29sbGVjdGlvbiBvZiByYWRpbyBidXR0b25zIHRoYXQgdGhlIGNvbXBvbmVudCBncm91cHMgdG9nZXRoZXIuXG4gICAqIFRoaXMgcHJvcGVydHkgb3ZlcndyaXRlcyB0aGUgZGVwcmVjYXRlZCBgbmFtZWAgcHJvcGVydHkgb24gaW5kaXZpZHVhbCBgc2t5LXJhZGlvYCBlbGVtZW50cyxcbiAgICogYW5kIGl0IGlzIHJlcXVpcmVkIHVubGVzcyB0aGUgYG5hbWVgIHByb3BlcnR5IGlzIHNldCBvbiBpbmRpdmlkdWFsIGBza3ktcmFkaW9gIGVsZW1lbnRzLlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbmFtZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fbmFtZSA9IHZhbHVlO1xuICAgIHRoaXMudXBkYXRlUmFkaW9CdXR0b25OYW1lcygpO1xuICB9XG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9uYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBpbnB1dCBpcyByZXF1aXJlZCBmb3IgZm9ybSB2YWxpZGF0aW9uLlxuICAgKiBXaGVuIHlvdSBzZXQgdGhpcyBwcm9wZXJ0eSB0byBgdHJ1ZWAsIHRoZSBjb21wb25lbnQgYWRkcyBgYXJpYS1yZXF1aXJlZGAgYW5kIGByZXF1aXJlZGBcbiAgICogYXR0cmlidXRlcyB0byB0aGUgaW5wdXQgZWxlbWVudCBzbyB0aGF0IGZvcm1zIGRpc3BsYXkgYW4gaW52YWxpZCBzdGF0ZSB1bnRpbCB0aGUgaW5wdXQgZWxlbWVudFxuICAgKiBpcyBjb21wbGV0ZS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZXF1aXJlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHZhbHVlIG9mIHRoZSByYWRpbyBidXR0b24gdG8gc2VsZWN0IGJ5IGRlZmF1bHQgd2hlbiB0aGUgZ3JvdXAgbG9hZHMuXG4gICAqIFRoZSB2YWx1ZSBjb3JyZXNwb25kcyB0byB0aGUgYHZhbHVlYCBwcm9wZXJ0eSBvZiBhbiBpbmRpdmlkdWFsIGBza3ktcmFkaW9gIGVsZW1lbnQgd2l0aGluIHRoZVxuICAgKiBncm91cC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIGNvbnN0IGlzTmV3VmFsdWUgPSB2YWx1ZSAhPT0gdGhpcy5fdmFsdWU7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChpc05ld1ZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XG4gICAgICB0aGlzLnVwZGF0ZUNoZWNrZWRSYWRpb0Zyb21WYWx1ZSgpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhbiBpbmRleCBmb3IgYWxsIHRoZSByYWRpbyBidXR0b25zIGluIHRoZSBncm91cC4gSWYgdGhlIGluZGV4IGlzIG5vdCBkZWZpbmVkLFxuICAgKiB0aGUgaW5kaWNlcyBmb3IgaW5kaXZpZHVhbCByYWRpbyBidXR0b25zIGFyZSBzZXQgdG8gdGhlaXIgcG9zaXRpb25zIG9uIGxvYWQuXG4gICAqIFRoaXMgcHJvcGVydHkgc3VwcG9ydHMgYWNjZXNzaWJpbGl0eSBieSBwbGFjaW5nIGZvY3VzIG9uIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgcmFkaW9cbiAgICogYnV0dG9uLiBJZiBubyByYWRpbyBidXR0b24gaXMgc2VsZWN0ZWQsIGl0IHBsYWNlcyBmb2N1cyBvbiB0aGUgZmlyc3Qgb3IgbGFzdCBidXR0b25cbiAgICogZGVwZW5kaW5nIG9uIGhvdyB1c2VycyBuYXZpZ2F0ZSB0byB0aGUgcmFkaW8gYnV0dG9uIGdyb3VwLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB0YWJJbmRleCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuX3RhYkluZGV4ICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5fdGFiSW5kZXggPSB2YWx1ZTtcbiAgICAgIHRoaXMudXBkYXRlUmFkaW9CdXR0b25UYWJJbmRleGVzKCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgdGFiSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fdGFiSW5kZXg7XG4gIH1cblxuICBAQ29udGVudENoaWxkcmVuKFNreVJhZGlvQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByaXZhdGUgcmFkaW9zOiBRdWVyeUxpc3Q8U2t5UmFkaW9Db21wb25lbnQ+O1xuXG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIF9uYW1lID0gYHNreS1yYWRpby1ncm91cC0ke25leHRVbmlxdWVJZCsrfWA7XG5cbiAgcHJpdmF0ZSBfdGFiSW5kZXg6IG51bWJlcjtcblxuICBwcml2YXRlIF92YWx1ZTogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBuZ0NvbnRyb2w6IE5nQ29udHJvbFxuICApIHtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgLy8gTGV0IGNoaWxkIHJhZGlvIGNvbXBvbmVudHMgcmVuZGVyIGJlZm9yZSB1cGRhdGluZy5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucmVzZXRSYWRpb0J1dHRvbnMoKTtcbiAgICB9KTtcblxuICAgIC8vIFdhdGNoIGZvciByYWRpbyBzZWxlY3Rpb25zLlxuICAgIHRoaXMud2F0Y2hGb3JTZWxlY3Rpb25zKCk7XG5cbiAgICB0aGlzLnJhZGlvcy5jaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAvLyBXYWl0IGZvciBjaGlsZCByYWRpbyBjb21wb25lbnRzIHRvIGZpbmlzaCBhbnkgcmVuZGVyaW5nIHVwZGF0ZXMuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5yZXNldFJhZGlvQnV0dG9ucygpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIFN1YnNjcmliZSB0byB0aGUgbmV3IHJhZGlvIGJ1dHRvbnNcbiAgICAgIHRoaXMud2F0Y2hGb3JTZWxlY3Rpb25zKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgLy8gQmFja3dhcmRzIGNvbXBhdGliaWxpdHkgc3VwcG9ydCBmb3IgYW55b25lIHN0aWxsIHVzaW5nIFZhbGlkYXRvcnMuUmVxdWlyZWQuXG4gICAgICB0aGlzLnJlcXVpcmVkID1cbiAgICAgICAgdGhpcy5yZXF1aXJlZCB8fCBTa3lGb3Jtc1V0aWxpdHkuaGFzUmVxdWlyZWRWYWxpZGF0aW9uKHRoaXMubmdDb250cm9sKTtcblxuICAgICAgLy8gQXZvaWQgYW4gRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvci5cbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB3YXRjaEZvclNlbGVjdGlvbnMoKSB7XG4gICAgdGhpcy5yYWRpb3MuZm9yRWFjaCgocmFkaW8pID0+IHtcbiAgICAgIHJhZGlvLmNoYW5nZVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoY2hhbmdlOiBTa3lSYWRpb0NoYW5nZSkgPT4ge1xuICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgICAgdGhpcy53cml0ZVZhbHVlKGNoYW5nZS52YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgcmFkaW8uYmx1ci5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGRpc2FibGUgdGhlIGNvbnRyb2wuIEltcGxlbWVudGVkIGFzIGEgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBwcml2YXRlIG9uVG91Y2hlZDogKCkgPT4gYW55ID0gKCkgPT4ge307XG5cbiAgcHJpdmF0ZSB1cGRhdGVSYWRpb0J1dHRvbkRpc2FibGVkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJhZGlvcykge1xuICAgICAgdGhpcy5yYWRpb3MuZm9yRWFjaCgocmFkaW8pID0+IHtcbiAgICAgICAgcmFkaW8uZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVSYWRpb0J1dHRvbk5hbWVzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJhZGlvcykge1xuICAgICAgdGhpcy5yYWRpb3MuZm9yRWFjaCgocmFkaW8pID0+IHtcbiAgICAgICAgcmFkaW8ubmFtZSA9IHRoaXMubmFtZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUmFkaW9CdXR0b25UYWJJbmRleGVzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJhZGlvcykge1xuICAgICAgdGhpcy5yYWRpb3MuZm9yRWFjaCgocmFkaW8pID0+IHtcbiAgICAgICAgcmFkaW8uZ3JvdXBUYWJJbmRleCA9IHRoaXMudGFiSW5kZXg7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNoZWNrZWRSYWRpb0Zyb21WYWx1ZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmFkaW9zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yYWRpb3MuZm9yRWFjaCgocmFkaW8pID0+IHtcbiAgICAgIHJhZGlvLmNoZWNrZWQgPSB0aGlzLl92YWx1ZSA9PT0gcmFkaW8udmFsdWU7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0UmFkaW9CdXR0b25zKCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlQ2hlY2tlZFJhZGlvRnJvbVZhbHVlKCk7XG4gICAgdGhpcy51cGRhdGVSYWRpb0J1dHRvbk5hbWVzKCk7XG4gICAgdGhpcy51cGRhdGVSYWRpb0J1dHRvblRhYkluZGV4ZXMoKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInNreS1yYWRpby1ncm91cFwiXG4gIHJvbGU9XCJyYWRpb2dyb3VwXCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkID8gdHJ1ZSA6IG51bGxcIlxuICBbYXR0ci5yZXF1aXJlZF09XCJyZXF1aXJlZCA/ICcnIDogbnVsbFwiXG4+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
@@ -0,0 +1,23 @@
1
+ import { Component, HostListener } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Specifies a label for the radio button.
5
+ */
6
+ export class SkyRadioLabelComponent {
7
+ // When clicking on a checkbox label, Angular registers two click events.
8
+ // This handler ignores all events except for those that deal
9
+ // with the checkbox input explicitly.
10
+ onClick(event) {
11
+ event.stopPropagation();
12
+ }
13
+ }
14
+ SkyRadioLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyRadioLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
+ SkyRadioLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyRadioLabelComponent, selector: "sky-radio-label", host: { listeners: { "click": "onClick($event)" } }, ngImport: i0, template: "<span class=\"sky-switch-label\">\n <ng-content></ng-content>\n</span>\n" });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyRadioLabelComponent, decorators: [{
17
+ type: Component,
18
+ args: [{ selector: 'sky-radio-label', template: "<span class=\"sky-switch-label\">\n <ng-content></ng-content>\n</span>\n" }]
19
+ }], propDecorators: { onClick: [{
20
+ type: HostListener,
21
+ args: ['click', ['$event']]
22
+ }] } });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tbGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9yYWRpby9yYWRpby1sYWJlbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3JhZGlvL3JhZGlvLWxhYmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV4RDs7R0FFRztBQUtILE1BQU0sT0FBTyxzQkFBc0I7SUFDakMseUVBQXlFO0lBQ3pFLDZEQUE2RDtJQUM3RCxzQ0FBc0M7SUFFL0IsT0FBTyxDQUFDLEtBQWlCO1FBQzlCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDOzttSEFQVSxzQkFBc0I7dUdBQXRCLHNCQUFzQiw0R0NUbkMsMkVBR0E7MkZETWEsc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNFLGlCQUFpQjs4QkFRcEIsT0FBTztzQkFEYixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogU3BlY2lmaWVzIGEgbGFiZWwgZm9yIHRoZSByYWRpbyBidXR0b24uXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1yYWRpby1sYWJlbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYWRpby1sYWJlbC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreVJhZGlvTGFiZWxDb21wb25lbnQge1xuICAvLyBXaGVuIGNsaWNraW5nIG9uIGEgY2hlY2tib3ggbGFiZWwsIEFuZ3VsYXIgcmVnaXN0ZXJzIHR3byBjbGljayBldmVudHMuXG4gIC8vIFRoaXMgaGFuZGxlciBpZ25vcmVzIGFsbCBldmVudHMgZXhjZXB0IGZvciB0aG9zZSB0aGF0IGRlYWxcbiAgLy8gd2l0aCB0aGUgY2hlY2tib3ggaW5wdXQgZXhwbGljaXRseS5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG59XG4iLCI8c3BhbiBjbGFzcz1cInNreS1zd2l0Y2gtbGFiZWxcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9zcGFuPlxuIl19
@@ -0,0 +1,256 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, forwardRef, } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { BehaviorSubject, Observable, Subject } from 'rxjs';
4
+ import { SkyFormsUtility } from '../shared/forms-utility';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@skyux/indicators";
7
+ import * as i2 from "@angular/common";
8
+ /**
9
+ * Auto-incrementing integer that generates unique IDs for radio components.
10
+ */
11
+ let nextUniqueId = 0;
12
+ /**
13
+ * Provider Expression that allows sky-radio to register as a ControlValueAccessor.
14
+ * This allows it to support [(ngModel)].
15
+ */
16
+ // tslint:disable:no-forward-ref no-use-before-declare
17
+ const SKY_RADIO_CONTROL_VALUE_ACCESSOR = {
18
+ provide: NG_VALUE_ACCESSOR,
19
+ useExisting: forwardRef(() => SkyRadioComponent),
20
+ multi: true,
21
+ };
22
+ // tslint:enable
23
+ /**
24
+ * Renders a SKY UX-themed replacement for an HTML `input` element
25
+ * with `type="radio"`. When users select a radio button, its value is driven through an
26
+ * `ngModel` attribute that you specify on the `sky-radio` element or the parent `sky-radio-group` element.
27
+ */
28
+ export class SkyRadioComponent {
29
+ constructor(changeDetector) {
30
+ this.changeDetector = changeDetector;
31
+ /**
32
+ * Fires when users focus off a radio button.
33
+ */
34
+ this.blur = new Subject();
35
+ /**
36
+ * Specifies an ID for the radio button.
37
+ * @default a unique, auto-incrementing integer. For example: `sky-radio-1`
38
+ */
39
+ this.id = `sky-radio-${++nextUniqueId}`;
40
+ this._change = new EventEmitter();
41
+ this._checked = false;
42
+ this._checkedChange = new BehaviorSubject(this._checked);
43
+ this._disabled = false;
44
+ this._disabledChange = new BehaviorSubject(this._disabled);
45
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
46
+ this.removeUniqueSelectionListener = () => { };
47
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
48
+ this.onChangeCallback = (value) => { };
49
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
50
+ this.onTouchedCallback = () => { };
51
+ }
52
+ /**
53
+ * Indicates whether the radio button is selected.
54
+ * @default false
55
+ */
56
+ set checked(value) {
57
+ const newCheckedState = !!value;
58
+ if (this._checked !== newCheckedState) {
59
+ this._checked = newCheckedState;
60
+ this._checkedChange.next(this._checked);
61
+ if (newCheckedState) {
62
+ this.selectedValue = this.value;
63
+ }
64
+ }
65
+ this.changeDetector.markForCheck();
66
+ }
67
+ get checked() {
68
+ return this._checked;
69
+ }
70
+ /**
71
+ * Indicates whether to disable the input.
72
+ * @default false
73
+ */
74
+ set disabled(value) {
75
+ const coercedValue = SkyFormsUtility.coerceBooleanProperty(value);
76
+ if (coercedValue !== this.disabled) {
77
+ this._disabled = coercedValue;
78
+ this._disabledChange.next(this._disabled);
79
+ this.changeDetector.markForCheck();
80
+ }
81
+ }
82
+ get disabled() {
83
+ return this._disabled;
84
+ }
85
+ /**
86
+ * This property is deprecated in favor of the `name` property on the `sky-radio-group element`.
87
+ * We recommend using the `sky-radio-group` element with all radio buttons, but if you opt not to,
88
+ * then this property specifies a name for a group of radio buttons.
89
+ * @deprecated
90
+ */
91
+ set name(value) {
92
+ this._name = value;
93
+ this.changeDetector.markForCheck();
94
+ }
95
+ get name() {
96
+ return this._name;
97
+ }
98
+ /**
99
+ * This property is deprecated in favor of
100
+ * the `tabIndex` property on the `sky-radio-group` element. It specifies an index for the radio
101
+ * button. If the index is not defined, it is set to the position of the radio button on load.
102
+ * @deprecated
103
+ */
104
+ set tabindex(value) {
105
+ console.warn('The sky-radio `tabindex` property is deprecated. Please use the `tabindex` property on the sky-radio-group component.');
106
+ this._tabindex = value;
107
+ this.changeDetector.markForCheck();
108
+ }
109
+ get tabindex() {
110
+ return this._tabindex || 0;
111
+ }
112
+ // For setting the tabindex from the radio group
113
+ set groupTabIndex(value) {
114
+ this._tabindex = value;
115
+ this.changeDetector.markForCheck();
116
+ }
117
+ /**
118
+ * Specifies and binds a value to the radio button's `value` property. The value usually
119
+ * corresponds to the radio button's label, which you specify with the `sky-radio-label`
120
+ * component.
121
+ * @required
122
+ */
123
+ set value(value) {
124
+ /* istanbul ignore else */
125
+ if (this._value !== value) {
126
+ if (this.selectedValue && this.selectedValue === this._value) {
127
+ this.selectedValue = value;
128
+ this.onChangeCallback(this.selectedValue);
129
+ this.onTouchedCallback();
130
+ }
131
+ this._value = value;
132
+ }
133
+ this.changeDetector.markForCheck();
134
+ }
135
+ get value() {
136
+ return this._value;
137
+ }
138
+ /**
139
+ * Specifies a type to set the background color after users select an icon radio button.
140
+ * The valid options correspond
141
+ * [the label component's](https://developer.blackbaud.com/skyux/components/label)
142
+ * label types. `danger` creates a red background, `info` creates a blue background,
143
+ * `success` creates a green background, and `warning` creates an orange background.
144
+ * @default "info"
145
+ */
146
+ get radioType() {
147
+ return this._radioType || 'info';
148
+ }
149
+ set radioType(value) {
150
+ if (value) {
151
+ this._radioType = value.toLowerCase();
152
+ }
153
+ }
154
+ /**
155
+ * Fires when users select a radio button.
156
+ */
157
+ get change() {
158
+ return this._change;
159
+ }
160
+ /**
161
+ * Fires when the selected value changes.
162
+ */
163
+ get checkedChange() {
164
+ return this._checkedChange;
165
+ }
166
+ /**
167
+ * Fires when the selected value changes.
168
+ */
169
+ get disabledChange() {
170
+ return this._disabledChange;
171
+ }
172
+ get inputId() {
173
+ return `sky-radio-${this.id}-input`;
174
+ }
175
+ set selectedValue(value) {
176
+ if (value !== this._selectedValue) {
177
+ this._selectedValue = value;
178
+ }
179
+ }
180
+ get selectedValue() {
181
+ return this._selectedValue;
182
+ }
183
+ ngOnDestroy() {
184
+ this.removeUniqueSelectionListener();
185
+ }
186
+ writeValue(value) {
187
+ if (value === undefined) {
188
+ return;
189
+ }
190
+ this.selectedValue = value;
191
+ this.checked = this.value === this.selectedValue;
192
+ this.changeDetector.markForCheck();
193
+ }
194
+ /**
195
+ * @internal
196
+ * Indicates whether to disable the control. Implemented as a part of ControlValueAccessor.
197
+ */
198
+ setDisabledState(isDisabled) {
199
+ this.disabled = isDisabled;
200
+ }
201
+ registerOnChange(fn) {
202
+ this.onChangeCallback = fn;
203
+ }
204
+ registerOnTouched(fn) {
205
+ this.onTouchedCallback = fn;
206
+ }
207
+ onInputChange(event) {
208
+ event.stopPropagation();
209
+ if (!this.disabled) {
210
+ this.checked = true;
211
+ this._change.emit({
212
+ source: this,
213
+ value: this._value,
214
+ });
215
+ this.onInputFocusChange(undefined);
216
+ this.onChangeCallback(this.value);
217
+ }
218
+ }
219
+ onInputFocusChange(event) {
220
+ this.onTouchedCallback();
221
+ this.blur.next();
222
+ }
223
+ }
224
+ SkyRadioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyRadioComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
225
+ SkyRadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyRadioComponent, selector: "sky-radio", inputs: { checked: "checked", disabled: "disabled", id: "id", label: "label", labelledBy: "labelledBy", name: "name", tabindex: "tabindex", value: "value", icon: "icon", radioType: "radioType" }, outputs: { change: "change", checkedChange: "checkedChange", disabledChange: "disabledChange" }, providers: [SKY_RADIO_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<label\n class=\"sky-radio-wrapper sky-switch\"\n [ngClass]=\"{ 'sky-switch-disabled': disabled }\"\n>\n <input\n class=\"sky-radio-input sky-switch-input\"\n type=\"radio\"\n [attr.aria-label]=\"label\"\n [attr.aria-labelledby]=\"labelledBy\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [id]=\"inputId\"\n [name]=\"name\"\n [tabIndex]=\"tabindex\"\n [value]=\"value\"\n (blur)=\"onInputFocusChange($event)\"\n (change)=\"onInputChange($event)\"\n />\n <span\n class=\"sky-switch-control\"\n [ngClass]=\"{\n 'sky-switch-control-icon': icon,\n 'sky-rounded-corners': icon,\n 'sky-rounded-circle': !icon,\n 'sky-switch-control-info': icon && radioType === 'info',\n 'sky-switch-control-success': icon && radioType === 'success',\n 'sky-switch-control-warning': icon && radioType === 'warning',\n 'sky-switch-control-danger': icon && radioType === 'danger'\n }\"\n >\n <sky-icon *ngIf=\"icon\" fixedWidth=\"true\" [icon]=\"icon\"> </sky-icon>\n </span>\n <ng-content select=\"sky-radio-label\"></ng-content>\n</label>\n", styles: [".sky-switch-control:not(.sky-switch-control-icon) sky-icon{font-size:70%}.sky-switch-input:checked+.sky-switch-control:not(.sky-switch-control-icon):after{content:\"\";display:inline-block;width:10px;height:10px;background:#000000;border-radius:50%}:host-context(.sky-theme-modern) .sky-switch-input:checked+.sky-switch-control:not(.sky-switch-control-icon):after{background:#1870B8}:host-context(.sky-theme-modern) .sky-radio-input:disabled+.sky-switch-control .sky-radio-icon-modern-checked{background-color:#212327}.sky-theme-modern .sky-switch-input:checked+.sky-switch-control:not(.sky-switch-control-icon):after{background:#1870B8}.sky-theme-modern .sky-radio-input:disabled+.sky-switch-control .sky-radio-icon-modern-checked{background-color:#212327}\n"], components: [{ type: i1.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
226
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyRadioComponent, decorators: [{
227
+ type: Component,
228
+ args: [{ selector: 'sky-radio', providers: [SKY_RADIO_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<label\n class=\"sky-radio-wrapper sky-switch\"\n [ngClass]=\"{ 'sky-switch-disabled': disabled }\"\n>\n <input\n class=\"sky-radio-input sky-switch-input\"\n type=\"radio\"\n [attr.aria-label]=\"label\"\n [attr.aria-labelledby]=\"labelledBy\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n [id]=\"inputId\"\n [name]=\"name\"\n [tabIndex]=\"tabindex\"\n [value]=\"value\"\n (blur)=\"onInputFocusChange($event)\"\n (change)=\"onInputChange($event)\"\n />\n <span\n class=\"sky-switch-control\"\n [ngClass]=\"{\n 'sky-switch-control-icon': icon,\n 'sky-rounded-corners': icon,\n 'sky-rounded-circle': !icon,\n 'sky-switch-control-info': icon && radioType === 'info',\n 'sky-switch-control-success': icon && radioType === 'success',\n 'sky-switch-control-warning': icon && radioType === 'warning',\n 'sky-switch-control-danger': icon && radioType === 'danger'\n }\"\n >\n <sky-icon *ngIf=\"icon\" fixedWidth=\"true\" [icon]=\"icon\"> </sky-icon>\n </span>\n <ng-content select=\"sky-radio-label\"></ng-content>\n</label>\n", styles: [".sky-switch-control:not(.sky-switch-control-icon) sky-icon{font-size:70%}.sky-switch-input:checked+.sky-switch-control:not(.sky-switch-control-icon):after{content:\"\";display:inline-block;width:10px;height:10px;background:#000000;border-radius:50%}:host-context(.sky-theme-modern) .sky-switch-input:checked+.sky-switch-control:not(.sky-switch-control-icon):after{background:#1870B8}:host-context(.sky-theme-modern) .sky-radio-input:disabled+.sky-switch-control .sky-radio-icon-modern-checked{background-color:#212327}.sky-theme-modern .sky-switch-input:checked+.sky-switch-control:not(.sky-switch-control-icon):after{background:#1870B8}.sky-theme-modern .sky-radio-input:disabled+.sky-switch-control .sky-radio-icon-modern-checked{background-color:#212327}\n"] }]
229
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { checked: [{
230
+ type: Input
231
+ }], disabled: [{
232
+ type: Input
233
+ }], id: [{
234
+ type: Input
235
+ }], label: [{
236
+ type: Input
237
+ }], labelledBy: [{
238
+ type: Input
239
+ }], name: [{
240
+ type: Input
241
+ }], tabindex: [{
242
+ type: Input
243
+ }], value: [{
244
+ type: Input
245
+ }], icon: [{
246
+ type: Input
247
+ }], radioType: [{
248
+ type: Input
249
+ }], change: [{
250
+ type: Output
251
+ }], checkedChange: [{
252
+ type: Output
253
+ }], disabledChange: [{
254
+ type: Output
255
+ }] } });
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9yYWRpby9yYWRpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvc3JjL2xpYi9tb2R1bGVzL3JhZGlvL3JhZGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7QUFJMUQ7O0dBRUc7QUFDSCxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7QUFFckI7OztHQUdHO0FBQ0gsc0RBQXNEO0FBQ3RELE1BQU0sZ0NBQWdDLEdBQWE7SUFDakQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUNGLGdCQUFnQjtBQUVoQjs7OztHQUlHO0FBUUgsTUFBTSxPQUFPLGlCQUFpQjtJQXNONUIsWUFBb0IsY0FBaUM7UUFBakMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBck5yRDs7V0FFRztRQUNJLFNBQUksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBNENsQzs7O1dBR0c7UUFFSSxPQUFFLEdBQUcsYUFBYSxFQUFFLFlBQVksRUFBRSxDQUFDO1FBc0psQyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFDN0MsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3RCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQVUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBNER2RSxnRUFBZ0U7UUFDeEQsa0NBQTZCLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQ2pELGdFQUFnRTtRQUN4RCxxQkFBZ0IsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQzlDLGdFQUFnRTtRQUN4RCxzQkFBaUIsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUExRG1CLENBQUM7SUFoTnpEOzs7T0FHRztJQUNILElBQ1csT0FBTyxDQUFDLEtBQWM7UUFDL0IsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUVoQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssZUFBZSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV4QyxJQUFJLGVBQWUsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQ2pDO1NBQ0Y7UUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUNXLFFBQVEsQ0FBQyxLQUFjO1FBQ2hDLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRSxJQUFJLFlBQVksS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDO1lBQzlCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQTJCRDs7Ozs7T0FLRztJQUNILElBQ1csSUFBSSxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQ1csUUFBUSxDQUFDLEtBQWE7UUFDL0IsT0FBTyxDQUFDLElBQUksQ0FDVix1SEFBdUgsQ0FDeEgsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUNELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxnREFBZ0Q7SUFDaEQsSUFBVyxhQUFhLENBQUMsS0FBYTtRQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQ1csS0FBSyxDQUFDLEtBQVU7UUFDekIsMEJBQTBCO1FBQzFCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxLQUFLLEVBQUU7WUFDekIsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDNUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2FBQzFCO1lBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7U0FDckI7UUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQVVEOzs7Ozs7O09BT0c7SUFDSCxJQUNXLFNBQVM7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQztJQUNuQyxDQUFDO0lBQ0QsSUFBVyxTQUFTLENBQUMsS0FBYTtRQUNoQyxJQUFJLEtBQUssRUFBRTtZQUNULElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFFVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQ1csYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sYUFBYSxJQUFJLENBQUMsRUFBRSxRQUFRLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQVcsYUFBYSxDQUFDLEtBQVU7UUFDakMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNqQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztTQUM3QjtJQUNILENBQUM7SUFDRCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFlTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBVTtRQUMxQixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDdkIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUM7UUFFakQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZ0JBQWdCLENBQUMsVUFBbUI7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEVBQU87UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0saUJBQWlCLENBQUMsRUFBTztRQUM5QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBWTtRQUMvQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ2hCLE1BQU0sRUFBRSxJQUFJO2dCQUNaLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTTthQUNuQixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNuQztJQUNILENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxLQUFZO1FBQ3BDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7OEdBelFVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHlVQUhqQixDQUFDLGdDQUFnQyxDQUFDLDBCQzdDL0MsNmxDQWtDQTsyRkRjYSxpQkFBaUI7a0JBUDdCLFNBQVM7K0JBQ0UsV0FBVyxhQUdWLENBQUMsZ0NBQWdDLENBQUMsbUJBQzVCLHVCQUF1QixDQUFDLE1BQU07d0dBYXBDLE9BQU87c0JBRGpCLEtBQUs7Z0JBeUJLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBbUJDLEVBQUU7c0JBRFIsS0FBSztnQkFVQyxLQUFLO3NCQURYLEtBQUs7Z0JBVUMsVUFBVTtzQkFEaEIsS0FBSztnQkFVSyxJQUFJO3NCQURkLEtBQUs7Z0JBaUJLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBeUJLLEtBQUs7c0JBRGYsS0FBSztnQkEwQkMsSUFBSTtzQkFEVixLQUFLO2dCQVlLLFNBQVM7c0JBRG5CLEtBQUs7Z0JBZUssTUFBTTtzQkFGaEIsTUFBTTtnQkFVSSxhQUFhO3NCQUR2QixNQUFNO2dCQVNJLGNBQWM7c0JBRHhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFByb3ZpZGVyLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreUZvcm1zVXRpbGl0eSB9IGZyb20gJy4uL3NoYXJlZC9mb3Jtcy11dGlsaXR5JztcblxuaW1wb3J0IHsgU2t5UmFkaW9DaGFuZ2UgfSBmcm9tICcuL3R5cGVzL3JhZGlvLWNoYW5nZSc7XG5cbi8qKlxuICogQXV0by1pbmNyZW1lbnRpbmcgaW50ZWdlciB0aGF0IGdlbmVyYXRlcyB1bmlxdWUgSURzIGZvciByYWRpbyBjb21wb25lbnRzLlxuICovXG5sZXQgbmV4dFVuaXF1ZUlkID0gMDtcblxuLyoqXG4gKiBQcm92aWRlciBFeHByZXNzaW9uIHRoYXQgYWxsb3dzIHNreS1yYWRpbyB0byByZWdpc3RlciBhcyBhIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICogVGhpcyBhbGxvd3MgaXQgdG8gc3VwcG9ydCBbKG5nTW9kZWwpXS5cbiAqL1xuLy8gdHNsaW50OmRpc2FibGU6bm8tZm9yd2FyZC1yZWYgbm8tdXNlLWJlZm9yZS1kZWNsYXJlXG5jb25zdCBTS1lfUkFESU9fQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTa3lSYWRpb0NvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlLFxufTtcbi8vIHRzbGludDplbmFibGVcblxuLyoqXG4gKiBSZW5kZXJzIGEgU0tZIFVYLXRoZW1lZCByZXBsYWNlbWVudCBmb3IgYW4gSFRNTCBgaW5wdXRgIGVsZW1lbnRcbiAqIHdpdGggYHR5cGU9XCJyYWRpb1wiYC4gV2hlbiB1c2VycyBzZWxlY3QgYSByYWRpbyBidXR0b24sIGl0cyB2YWx1ZSBpcyBkcml2ZW4gdGhyb3VnaCBhblxuICogYG5nTW9kZWxgIGF0dHJpYnV0ZSB0aGF0IHlvdSBzcGVjaWZ5IG9uIHRoZSBgc2t5LXJhZGlvYCBlbGVtZW50IG9yIHRoZSBwYXJlbnQgYHNreS1yYWRpby1ncm91cGAgZWxlbWVudC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LXJhZGlvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmFkaW8uY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbU0tZX1JBRElPX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5UmFkaW9Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdXNlcnMgZm9jdXMgb2ZmIGEgcmFkaW8gYnV0dG9uLlxuICAgKi9cbiAgcHVibGljIGJsdXIgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgcmFkaW8gYnV0dG9uIGlzIHNlbGVjdGVkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjaGVja2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgY29uc3QgbmV3Q2hlY2tlZFN0YXRlID0gISF2YWx1ZTtcblxuICAgIGlmICh0aGlzLl9jaGVja2VkICE9PSBuZXdDaGVja2VkU3RhdGUpIHtcbiAgICAgIHRoaXMuX2NoZWNrZWQgPSBuZXdDaGVja2VkU3RhdGU7XG4gICAgICB0aGlzLl9jaGVja2VkQ2hhbmdlLm5leHQodGhpcy5fY2hlY2tlZCk7XG5cbiAgICAgIGlmIChuZXdDaGVja2VkU3RhdGUpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGVja2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jaGVja2VkO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGRpc2FibGUgdGhlIGlucHV0LlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IGNvZXJjZWRWYWx1ZSA9IFNreUZvcm1zVXRpbGl0eS5jb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIGlmIChjb2VyY2VkVmFsdWUgIT09IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlZFZhbHVlO1xuICAgICAgdGhpcy5fZGlzYWJsZWRDaGFuZ2UubmV4dCh0aGlzLl9kaXNhYmxlZCk7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhbiBJRCBmb3IgdGhlIHJhZGlvIGJ1dHRvbi5cbiAgICogQGRlZmF1bHQgYSB1bmlxdWUsIGF1dG8taW5jcmVtZW50aW5nIGludGVnZXIuIEZvciBleGFtcGxlOiBgc2t5LXJhZGlvLTFgXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaWQgPSBgc2t5LXJhZGlvLSR7KytuZXh0VW5pcXVlSWR9YDtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGFuIEFSSUEgbGFiZWwgZm9yIHRoZSByYWRpbyBidXR0b24uIFRoaXMgc2V0cyB0aGUgcmFkaW8gYnV0dG9uJ3MgYGFyaWEtbGFiZWxgXG4gICAqIGF0dHJpYnV0ZSBbdG8gc3VwcG9ydCBhY2Nlc3NpYmlsaXR5XShodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2xlYXJuL2FjY2Vzc2liaWxpdHkpXG4gICAqIHdoZW4gdGhlIHJhZGlvIGJ1dHRvbiBkb2VzIG5vdCBpbmNsdWRlIGEgdmlzaWJsZSBsYWJlbC4gWW91IG11c3Qgc2V0IHRoaXMgcHJvcGVydHkgZm9yIGljb25cbiAgICogcmFkaW8gYnV0dG9ucy4gSWYgdGhlIHJhZGlvIGJ1dHRvbiBpbmNsdWRlcyBhIHZpc2libGUgbGFiZWwsIHVzZSBgbGFiZWxsZWRCeWAgaW5zdGVhZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIEhUTUwgZWxlbWVudCBJRCAod2l0aG91dCB0aGUgbGVhZGluZyBgI2ApIG9mIHRoZSBlbGVtZW50IHRoYXQgbGFiZWxzXG4gICAqIHRoZSByYWRpbyBidXR0b24uIFRoaXMgc2V0cyB0aGUgcmFkaW8gYnV0dG9uJ3MgYGFyaWEtbGFiZWxsZWRieWAgYXR0cmlidXRlXG4gICAqIFt0byBzdXBwb3J0IGFjY2Vzc2liaWxpdHldKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvbGVhcm4vYWNjZXNzaWJpbGl0eSkuXG4gICAqIElmIHRoZSByYWRpbyBidXR0b24gZG9lcyBub3QgaW5jbHVkZSBhIHZpc2libGUgbGFiZWwsIHVzZSBgbGFiZWxgIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbGFiZWxsZWRCeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgdGhlIGBuYW1lYCBwcm9wZXJ0eSBvbiB0aGUgYHNreS1yYWRpby1ncm91cCBlbGVtZW50YC5cbiAgICogV2UgcmVjb21tZW5kIHVzaW5nIHRoZSBgc2t5LXJhZGlvLWdyb3VwYCBlbGVtZW50IHdpdGggYWxsIHJhZGlvIGJ1dHRvbnMsIGJ1dCBpZiB5b3Ugb3B0IG5vdCB0byxcbiAgICogdGhlbiB0aGlzIHByb3BlcnR5IHNwZWNpZmllcyBhIG5hbWUgZm9yIGEgZ3JvdXAgb2YgcmFkaW8gYnV0dG9ucy5cbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbmFtZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fbmFtZSA9IHZhbHVlO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2ZcbiAgICogdGhlIGB0YWJJbmRleGAgcHJvcGVydHkgb24gdGhlIGBza3ktcmFkaW8tZ3JvdXBgIGVsZW1lbnQuIEl0IHNwZWNpZmllcyBhbiBpbmRleCBmb3IgdGhlIHJhZGlvXG4gICAqIGJ1dHRvbi4gSWYgdGhlIGluZGV4IGlzIG5vdCBkZWZpbmVkLCBpdCBpcyBzZXQgdG8gdGhlIHBvc2l0aW9uIG9mIHRoZSByYWRpbyBidXR0b24gb24gbG9hZC5cbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdGFiaW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIGNvbnNvbGUud2FybihcbiAgICAgICdUaGUgc2t5LXJhZGlvIGB0YWJpbmRleGAgcHJvcGVydHkgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSB0aGUgYHRhYmluZGV4YCBwcm9wZXJ0eSBvbiB0aGUgc2t5LXJhZGlvLWdyb3VwIGNvbXBvbmVudC4nXG4gICAgKTtcbiAgICB0aGlzLl90YWJpbmRleCA9IHZhbHVlO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cbiAgcHVibGljIGdldCB0YWJpbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl90YWJpbmRleCB8fCAwO1xuICB9XG5cbiAgLy8gRm9yIHNldHRpbmcgdGhlIHRhYmluZGV4IGZyb20gdGhlIHJhZGlvIGdyb3VwXG4gIHB1YmxpYyBzZXQgZ3JvdXBUYWJJbmRleCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fdGFiaW5kZXggPSB2YWx1ZTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhbmQgYmluZHMgYSB2YWx1ZSB0byB0aGUgcmFkaW8gYnV0dG9uJ3MgYHZhbHVlYCBwcm9wZXJ0eS4gVGhlIHZhbHVlIHVzdWFsbHlcbiAgICogY29ycmVzcG9uZHMgdG8gdGhlIHJhZGlvIGJ1dHRvbidzIGxhYmVsLCB3aGljaCB5b3Ugc3BlY2lmeSB3aXRoIHRoZSBgc2t5LXJhZGlvLWxhYmVsYFxuICAgKiBjb21wb25lbnQuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5fdmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFZhbHVlICYmIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9PT0gdGhpcy5fdmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLnNlbGVjdGVkVmFsdWUpO1xuICAgICAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIGFuIGljb24gdG8gZGlzcGxheSBpbiBwbGFjZSBvZiB0aGUgcmFkaW8gYnV0dG9uLiBUbyBncm91cCByYWRpbyBidXR0b25zIGxpa2UgaW5cbiAgICogdGhlIGRlbW8gYWJvdmUsIHBsYWNlIHRoZSBgc2t5LXN3aXRjaC1pY29uLWdyb3VwYCBjbGFzcyBvbiB0aGUgZGlyZWN0IHBhcmVudCBlbGVtZW50IG9mIHRoZVxuICAgKiByYWRpbyBidXR0b25zLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGljb246IHN0cmluZztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIGEgdHlwZSB0byBzZXQgdGhlIGJhY2tncm91bmQgY29sb3IgYWZ0ZXIgdXNlcnMgc2VsZWN0IGFuIGljb24gcmFkaW8gYnV0dG9uLlxuICAgKiBUaGUgdmFsaWQgb3B0aW9ucyBjb3JyZXNwb25kXG4gICAqIFt0aGUgbGFiZWwgY29tcG9uZW50J3NdKGh0dHBzOi8vZGV2ZWxvcGVyLmJsYWNrYmF1ZC5jb20vc2t5dXgvY29tcG9uZW50cy9sYWJlbClcbiAgICogbGFiZWwgdHlwZXMuIGBkYW5nZXJgIGNyZWF0ZXMgYSByZWQgYmFja2dyb3VuZCwgYGluZm9gIGNyZWF0ZXMgYSBibHVlIGJhY2tncm91bmQsXG4gICAqIGBzdWNjZXNzYCBjcmVhdGVzIGEgZ3JlZW4gYmFja2dyb3VuZCwgYW5kIGB3YXJuaW5nYCBjcmVhdGVzIGFuIG9yYW5nZSBiYWNrZ3JvdW5kLlxuICAgKiBAZGVmYXVsdCBcImluZm9cIlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCByYWRpb1R5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcmFkaW9UeXBlIHx8ICdpbmZvJztcbiAgfVxuICBwdWJsaWMgc2V0IHJhZGlvVHlwZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9yYWRpb1R5cGUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHVzZXJzIHNlbGVjdCBhIHJhZGlvIGJ1dHRvbi5cbiAgICovXG4gIEBPdXRwdXQoKVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgcHVibGljIGdldCBjaGFuZ2UoKTogT2JzZXJ2YWJsZTxTa3lSYWRpb0NoYW5nZT4ge1xuICAgIHJldHVybiB0aGlzLl9jaGFuZ2U7XG4gIH1cblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgc2VsZWN0ZWQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IGNoZWNrZWRDaGFuZ2UoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2NoZWNrZWRDaGFuZ2U7XG4gIH1cblxuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgc2VsZWN0ZWQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IGRpc2FibGVkQ2hhbmdlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZENoYW5nZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5wdXRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgc2t5LXJhZGlvLSR7dGhpcy5pZH0taW5wdXRgO1xuICB9XG5cbiAgcHVibGljIHNldCBzZWxlY3RlZFZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuX3NlbGVjdGVkVmFsdWUpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGVkVmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCBzZWxlY3RlZFZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9jaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNreVJhZGlvQ2hhbmdlPigpO1xuICBwcml2YXRlIF9jaGVja2VkID0gZmFsc2U7XG4gIHByaXZhdGUgX2NoZWNrZWRDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRoaXMuX2NoZWNrZWQpO1xuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9kaXNhYmxlZENoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odGhpcy5fZGlzYWJsZWQpO1xuICBwcml2YXRlIF9uYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgX3JhZGlvVHlwZTogc3RyaW5nO1xuICBwcml2YXRlIF9zZWxlY3RlZFZhbHVlOiBhbnk7XG4gIHByaXZhdGUgX3RhYmluZGV4OiBudW1iZXI7XG4gIHByaXZhdGUgX3ZhbHVlOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVtb3ZlVW5pcXVlU2VsZWN0aW9uTGlzdGVuZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuY2hlY2tlZCA9IHRoaXMudmFsdWUgPT09IHRoaXMuc2VsZWN0ZWRWYWx1ZTtcblxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGRpc2FibGUgdGhlIGNvbnRyb2wuIEltcGxlbWVudGVkIGFzIGEgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgcHVibGljIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuY2hlY2tlZCA9IHRydWU7XG4gICAgICB0aGlzLl9jaGFuZ2UuZW1pdCh7XG4gICAgICAgIHNvdXJjZTogdGhpcyxcbiAgICAgICAgdmFsdWU6IHRoaXMuX3ZhbHVlLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMub25JbnB1dEZvY3VzQ2hhbmdlKHVuZGVmaW5lZCk7XG4gICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodGhpcy52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uSW5wdXRGb2N1c0NoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5ibHVyLm5leHQoKTtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgcHJpdmF0ZSByZW1vdmVVbmlxdWVTZWxlY3Rpb25MaXN0ZW5lciA9ICgpID0+IHt9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjayA9ICh2YWx1ZTogYW55KSA9PiB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrID0gKCkgPT4ge307XG59XG4iLCI8bGFiZWxcbiAgY2xhc3M9XCJza3ktcmFkaW8td3JhcHBlciBza3ktc3dpdGNoXCJcbiAgW25nQ2xhc3NdPVwieyAnc2t5LXN3aXRjaC1kaXNhYmxlZCc6IGRpc2FibGVkIH1cIlxuPlxuICA8aW5wdXRcbiAgICBjbGFzcz1cInNreS1yYWRpby1pbnB1dCBza3ktc3dpdGNoLWlucHV0XCJcbiAgICB0eXBlPVwicmFkaW9cIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWxcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJsYWJlbGxlZEJ5XCJcbiAgICBbY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICBbbmFtZV09XCJuYW1lXCJcbiAgICBbdGFiSW5kZXhdPVwidGFiaW5kZXhcIlxuICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgKGJsdXIpPVwib25JbnB1dEZvY3VzQ2hhbmdlKCRldmVudClcIlxuICAgIChjaGFuZ2UpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgLz5cbiAgPHNwYW5cbiAgICBjbGFzcz1cInNreS1zd2l0Y2gtY29udHJvbFwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3NreS1zd2l0Y2gtY29udHJvbC1pY29uJzogaWNvbixcbiAgICAgICdza3ktcm91bmRlZC1jb3JuZXJzJzogaWNvbixcbiAgICAgICdza3ktcm91bmRlZC1jaXJjbGUnOiAhaWNvbixcbiAgICAgICdza3ktc3dpdGNoLWNvbnRyb2wtaW5mbyc6IGljb24gJiYgcmFkaW9UeXBlID09PSAnaW5mbycsXG4gICAgICAnc2t5LXN3aXRjaC1jb250cm9sLXN1Y2Nlc3MnOiBpY29uICYmIHJhZGlvVHlwZSA9PT0gJ3N1Y2Nlc3MnLFxuICAgICAgJ3NreS1zd2l0Y2gtY29udHJvbC13YXJuaW5nJzogaWNvbiAmJiByYWRpb1R5cGUgPT09ICd3YXJuaW5nJyxcbiAgICAgICdza3ktc3dpdGNoLWNvbnRyb2wtZGFuZ2VyJzogaWNvbiAmJiByYWRpb1R5cGUgPT09ICdkYW5nZXInXG4gICAgfVwiXG4gID5cbiAgICA8c2t5LWljb24gKm5nSWY9XCJpY29uXCIgZml4ZWRXaWR0aD1cInRydWVcIiBbaWNvbl09XCJpY29uXCI+IDwvc2t5LWljb24+XG4gIDwvc3Bhbj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LXJhZGlvLWxhYmVsXCI+PC9uZy1jb250ZW50PlxuPC9sYWJlbD5cbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { SkyIconModule } from '@skyux/indicators';
5
+ import { SkyRadioGroupComponent } from './radio-group.component';
6
+ import { SkyRadioLabelComponent } from './radio-label.component';
7
+ import { SkyRadioComponent } from './radio.component';
8
+ import * as i0 from "@angular/core";
9
+ export class SkyRadioModule {
10
+ }
11
+ SkyRadioModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ SkyRadioModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyRadioModule, declarations: [SkyRadioComponent,
13
+ SkyRadioGroupComponent,
14
+ SkyRadioLabelComponent], imports: [CommonModule, FormsModule, SkyIconModule], exports: [SkyRadioComponent, SkyRadioGroupComponent, SkyRadioLabelComponent] });
15
+ SkyRadioModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyRadioModule, imports: [[CommonModule, FormsModule, SkyIconModule]] });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyRadioModule, decorators: [{
17
+ type: NgModule,
18
+ args: [{
19
+ declarations: [
20
+ SkyRadioComponent,
21
+ SkyRadioGroupComponent,
22
+ SkyRadioLabelComponent,
23
+ ],
24
+ imports: [CommonModule, FormsModule, SkyIconModule],
25
+ exports: [SkyRadioComponent, SkyRadioGroupComponent, SkyRadioLabelComponent],
26
+ }]
27
+ }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9yYWRpby9yYWRpby5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFXdEQsTUFBTSxPQUFPLGNBQWM7OzJHQUFkLGNBQWM7NEdBQWQsY0FBYyxpQkFQdkIsaUJBQWlCO1FBQ2pCLHNCQUFzQjtRQUN0QixzQkFBc0IsYUFFZCxZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWEsYUFDeEMsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCOzRHQUVoRSxjQUFjLFlBSGhCLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxhQUFhLENBQUM7MkZBR3hDLGNBQWM7a0JBVDFCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0QixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsYUFBYSxDQUFDO29CQUNuRCxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsQ0FBQztpQkFDN0UiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2t5SWNvbk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pbmRpY2F0b3JzJztcblxuaW1wb3J0IHsgU2t5UmFkaW9Hcm91cENvbXBvbmVudCB9IGZyb20gJy4vcmFkaW8tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVJhZGlvTGFiZWxDb21wb25lbnQgfSBmcm9tICcuL3JhZGlvLWxhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4vcmFkaW8uY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2t5UmFkaW9Db21wb25lbnQsXG4gICAgU2t5UmFkaW9Hcm91cENvbXBvbmVudCxcbiAgICBTa3lSYWRpb0xhYmVsQ29tcG9uZW50LFxuICBdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgU2t5SWNvbk1vZHVsZV0sXG4gIGV4cG9ydHM6IFtTa3lSYWRpb0NvbXBvbmVudCwgU2t5UmFkaW9Hcm91cENvbXBvbmVudCwgU2t5UmFkaW9MYWJlbENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVJhZGlvTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tY2hhbmdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3NyYy9saWIvbW9kdWxlcy9yYWRpby90eXBlcy9yYWRpby1jaGFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNreVJhZGlvQ29tcG9uZW50IH0gZnJvbSAnLi4vcmFkaW8uY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBTa3lSYWRpb0NoYW5nZSB7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHJhZGlvIGNvbXBvbmVudCB0aGF0IHRyaWdnZXJlZCB0aGUgY2hhbmdlIGV2ZW50LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHNvdXJjZTogU2t5UmFkaW9Db21wb25lbnQ7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHZhbHVlIGZyb20gdGhlIHJhZGlvIGNvbXBvbmVudC5cbiAgICovXG4gIHZhbHVlOiBhbnk7XG59XG4iXX0=