@skyux/forms 11.39.0 → 12.0.0-alpha.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 (113) hide show
  1. package/documentation.json +3994 -4130
  2. package/fesm2022/skyux-forms-testing.mjs +0 -9
  3. package/fesm2022/skyux-forms-testing.mjs.map +1 -1
  4. package/fesm2022/skyux-forms.mjs +181 -186
  5. package/fesm2022/skyux-forms.mjs.map +1 -1
  6. package/lib/modules/form-error/form-error.component.d.ts +0 -1
  7. package/package.json +15 -19
  8. package/testing/modules/form-error/form-error-harness.d.ts +0 -5
  9. package/esm2022/index.mjs +0 -44
  10. package/esm2022/lib/modules/character-counter/character-counter-indicator.component.mjs +0 -38
  11. package/esm2022/lib/modules/character-counter/character-counter-screen-reader.pipe.mjs +0 -46
  12. package/esm2022/lib/modules/character-counter/character-counter.directive.mjs +0 -96
  13. package/esm2022/lib/modules/character-counter/character-counter.module.mjs +0 -43
  14. package/esm2022/lib/modules/checkbox/checkbox-change.mjs +0 -2
  15. package/esm2022/lib/modules/checkbox/checkbox-group-heading-level.mjs +0 -2
  16. package/esm2022/lib/modules/checkbox/checkbox-group-heading-style.mjs +0 -2
  17. package/esm2022/lib/modules/checkbox/checkbox-group.component.mjs +0 -156
  18. package/esm2022/lib/modules/checkbox/checkbox-label-text-label.component.mjs +0 -29
  19. package/esm2022/lib/modules/checkbox/checkbox-label.component.mjs +0 -18
  20. package/esm2022/lib/modules/checkbox/checkbox.component.mjs +0 -397
  21. package/esm2022/lib/modules/checkbox/checkbox.module.mjs +0 -75
  22. package/esm2022/lib/modules/field-group/field-group-heading-level.mjs +0 -2
  23. package/esm2022/lib/modules/field-group/field-group-heading-style.mjs +0 -2
  24. package/esm2022/lib/modules/field-group/field-group.component.mjs +0 -75
  25. package/esm2022/lib/modules/field-group/field-group.module.mjs +0 -16
  26. package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment-change.mjs +0 -2
  27. package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment-click.mjs +0 -2
  28. package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment-join-ids.pipe.mjs +0 -22
  29. package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment-label.component.mjs +0 -31
  30. package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment.component.mjs +0 -494
  31. package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment.module.mjs +0 -24
  32. package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment.service.mjs +0 -100
  33. package/esm2022/lib/modules/file-attachment/file-attachments.module.mjs +0 -20
  34. package/esm2022/lib/modules/file-attachment/file-drop/file-drop-change.mjs +0 -2
  35. package/esm2022/lib/modules/file-attachment/file-drop/file-drop.component.mjs +0 -412
  36. package/esm2022/lib/modules/file-attachment/file-drop/file-drop.module.mjs +0 -18
  37. package/esm2022/lib/modules/file-attachment/file-drop/file-item.component.mjs +0 -156
  38. package/esm2022/lib/modules/file-attachment/file-drop/file-link.mjs +0 -2
  39. package/esm2022/lib/modules/file-attachment/shared/file-item-error-type.mjs +0 -2
  40. package/esm2022/lib/modules/file-attachment/shared/file-item.mjs +0 -2
  41. package/esm2022/lib/modules/file-attachment/shared/file-item.service.mjs +0 -71
  42. package/esm2022/lib/modules/file-attachment/shared/file-size.pipe.mjs +0 -61
  43. package/esm2022/lib/modules/file-attachment/shared/file-validate-function.mjs +0 -2
  44. package/esm2022/lib/modules/form-error/form-error.component.mjs +0 -62
  45. package/esm2022/lib/modules/form-error/form-error.module.mjs +0 -16
  46. package/esm2022/lib/modules/form-error/form-errors-enabled-token.mjs +0 -6
  47. package/esm2022/lib/modules/form-error/form-errors.component.mjs +0 -50
  48. package/esm2022/lib/modules/form-error/form-errors.module.mjs +0 -20
  49. package/esm2022/lib/modules/input-box/input-box-adapter.service.mjs +0 -63
  50. package/esm2022/lib/modules/input-box/input-box-control.directive.mjs +0 -33
  51. package/esm2022/lib/modules/input-box/input-box-hint-text.pipe.mjs +0 -23
  52. package/esm2022/lib/modules/input-box/input-box-host.service.mjs +0 -72
  53. package/esm2022/lib/modules/input-box/input-box-populate-args.mjs +0 -2
  54. package/esm2022/lib/modules/input-box/input-box.component.mjs +0 -276
  55. package/esm2022/lib/modules/input-box/input-box.module.mjs +0 -58
  56. package/esm2022/lib/modules/radio/radio-group-id.service.mjs +0 -50
  57. package/esm2022/lib/modules/radio/radio-group.component.mjs +0 -390
  58. package/esm2022/lib/modules/radio/radio-label.component.mjs +0 -34
  59. package/esm2022/lib/modules/radio/radio.component.mjs +0 -357
  60. package/esm2022/lib/modules/radio/radio.module.mjs +0 -71
  61. package/esm2022/lib/modules/radio/types/radio-change.mjs +0 -2
  62. package/esm2022/lib/modules/radio/types/radio-group-heading-level.mjs +0 -2
  63. package/esm2022/lib/modules/radio/types/radio-group-heading-style.mjs +0 -2
  64. package/esm2022/lib/modules/radio/types/radio-type.mjs +0 -2
  65. package/esm2022/lib/modules/required-state/required-state.directive.mjs +0 -34
  66. package/esm2022/lib/modules/selection-box/selection-box-adapter.service.mjs +0 -128
  67. package/esm2022/lib/modules/selection-box/selection-box-description.component.mjs +0 -14
  68. package/esm2022/lib/modules/selection-box/selection-box-grid.component.mjs +0 -141
  69. package/esm2022/lib/modules/selection-box/selection-box-header.component.mjs +0 -14
  70. package/esm2022/lib/modules/selection-box/selection-box.component.mjs +0 -132
  71. package/esm2022/lib/modules/selection-box/selection-box.module.mjs +0 -40
  72. package/esm2022/lib/modules/selection-box/types/selection-box-grid-align-items-type.mjs +0 -2
  73. package/esm2022/lib/modules/selection-box/types/selection-box-grid-align-items.mjs +0 -2
  74. package/esm2022/lib/modules/shared/sky-forms-resources.module.mjs +0 -142
  75. package/esm2022/lib/modules/toggle-switch/toggle-switch-label.component.mjs +0 -25
  76. package/esm2022/lib/modules/toggle-switch/toggle-switch.component.mjs +0 -202
  77. package/esm2022/lib/modules/toggle-switch/toggle-switch.module.mjs +0 -36
  78. package/esm2022/lib/modules/toggle-switch/types/toggle-switch-change.mjs +0 -2
  79. package/esm2022/skyux-forms.mjs +0 -5
  80. package/esm2022/testing/legacy/checkbox-fixture.mjs +0 -92
  81. package/esm2022/testing/legacy/radio-fixture.mjs +0 -85
  82. package/esm2022/testing/modules/character-counter/character-counter-indicator-harness-filters.mjs +0 -2
  83. package/esm2022/testing/modules/character-counter/character-counter-indicator-harness.mjs +0 -53
  84. package/esm2022/testing/modules/checkbox/checkbox-group-harness-filters.mjs +0 -2
  85. package/esm2022/testing/modules/checkbox/checkbox-group-harness.mjs +0 -158
  86. package/esm2022/testing/modules/checkbox/checkbox-harness-filters.mjs +0 -2
  87. package/esm2022/testing/modules/checkbox/checkbox-harness.mjs +0 -196
  88. package/esm2022/testing/modules/checkbox/checkbox-label-harness.mjs +0 -19
  89. package/esm2022/testing/modules/checkbox/checkbox-label-text-label.harness.mjs +0 -19
  90. package/esm2022/testing/modules/field-group/field-group-harness-filters.mjs +0 -2
  91. package/esm2022/testing/modules/field-group/field-group-harness.mjs +0 -92
  92. package/esm2022/testing/modules/file-attachment/file-attachment/file-attachment-harness-filters.mjs +0 -2
  93. package/esm2022/testing/modules/file-attachment/file-attachment/file-attachment-harness.mjs +0 -193
  94. package/esm2022/testing/modules/file-attachment/file-drop/file-drop-harness-filters.mjs +0 -2
  95. package/esm2022/testing/modules/file-attachment/file-drop/file-drop-harness.mjs +0 -192
  96. package/esm2022/testing/modules/file-attachment/file-drop/file-drop-link-upload-harness.mjs +0 -47
  97. package/esm2022/testing/modules/file-attachment/file-drop/file-drop-link-upload-input-harness.mjs +0 -17
  98. package/esm2022/testing/modules/file-attachment/file-drop/file-item-harness-filters.mjs +0 -2
  99. package/esm2022/testing/modules/file-attachment/file-drop/file-item-harness.mjs +0 -40
  100. package/esm2022/testing/modules/file-attachment/shared/provide-file-attachment-testing.mjs +0 -14
  101. package/esm2022/testing/modules/form-error/form-error-harness.filters.mjs +0 -2
  102. package/esm2022/testing/modules/form-error/form-error-harness.mjs +0 -31
  103. package/esm2022/testing/modules/form-error/form-errors-harness.filters.mjs +0 -2
  104. package/esm2022/testing/modules/form-error/form-errors-harness.mjs +0 -34
  105. package/esm2022/testing/modules/input-box/input-box-harness-filters.mjs +0 -2
  106. package/esm2022/testing/modules/input-box/input-box-harness.mjs +0 -188
  107. package/esm2022/testing/modules/radio/radio-group-harness-filters.mjs +0 -2
  108. package/esm2022/testing/modules/radio/radio-group-harness.mjs +0 -156
  109. package/esm2022/testing/modules/radio/radio-harness-filters.mjs +0 -2
  110. package/esm2022/testing/modules/radio/radio-harness.mjs +0 -147
  111. package/esm2022/testing/modules/radio/radio-label-harness.mjs +0 -19
  112. package/esm2022/testing/public-api.mjs +0 -18
  113. package/esm2022/testing/skyux-forms-testing.mjs +0 -5
@@ -1,188 +0,0 @@
1
- import { HarnessPredicate } from '@angular/cdk/testing';
2
- import { SkyQueryableComponentHarness } from '@skyux/core/testing';
3
- import { SkyHelpInlineHarness } from '@skyux/help-inline/testing';
4
- import { SkyStatusIndicatorHarness } from '@skyux/indicators/testing';
5
- import { SkyPopoverHarness } from '@skyux/popovers/testing';
6
- import { SkyCharacterCounterIndicatorHarness } from '../character-counter/character-counter-indicator-harness';
7
- import { SkyFormErrorsHarness } from '../form-error/form-errors-harness';
8
- /**
9
- * Harness for interacting with an input box component in tests.
10
- */
11
- export class SkyInputBoxHarness extends SkyQueryableComponentHarness {
12
- /**
13
- * @internal
14
- */
15
- static { this.hostSelector = 'sky-input-box'; }
16
- #getHintText = this.locatorForOptional('.sky-input-box-hint-text');
17
- #getLabel = this.locatorForOptional('.sky-control-label');
18
- #getWrapper = this.locatorFor('.sky-input-box');
19
- async #getFormError() {
20
- return await this.locatorFor(SkyFormErrorsHarness)();
21
- }
22
- /**
23
- * Gets a `HarnessPredicate` that can be used to search for a
24
- * `SkyInputBoxHarness` that meets certain criteria.
25
- */
26
- static with(filters) {
27
- return SkyInputBoxHarness.getDataSkyIdPredicate(filters);
28
- }
29
- /**
30
- * Clicks the help inline button.
31
- */
32
- async clickHelpInline() {
33
- await (await this.#getHelpInline()).click();
34
- }
35
- /**
36
- * Gets the character counter indicator for the input box or throws an error if
37
- * a character limit is not specified.
38
- */
39
- async getCharacterCounter() {
40
- const characterCounter = await this.locatorForOptional(new HarnessPredicate(SkyCharacterCounterIndicatorHarness, {
41
- ancestor: '.sky-input-box-label-wrapper',
42
- }))();
43
- if (!characterCounter) {
44
- throw new Error('The input box does not have a character limit specified.');
45
- }
46
- return characterCounter;
47
- }
48
- /**
49
- * Gets a list of status indicator harnesses for errors not automatically
50
- * handled by input box.
51
- */
52
- async getCustomErrors() {
53
- const errors = await this.locatorForAll(new HarnessPredicate(SkyStatusIndicatorHarness, {
54
- selector: 'sky-status-indicator:not(sky-form-error sky-status-indicator)',
55
- }))();
56
- return errors;
57
- }
58
- /**
59
- * Whether the custom error is triggered.
60
- */
61
- async hasCustomFormError(errorName) {
62
- return await (await this.#getFormError()).hasError(errorName);
63
- }
64
- /**
65
- * Whether the required field is empty.
66
- */
67
- async hasRequiredError() {
68
- return await (await this.#getFormError()).hasError('required');
69
- }
70
- /**
71
- * Whether the field has more characters than allowed.
72
- */
73
- async hasMaxLengthError() {
74
- return await (await this.#getFormError()).hasError('maxlength');
75
- }
76
- /**
77
- * Whether the field has fewer characters than allowed.
78
- */
79
- async hasMinLengthError() {
80
- return await (await this.#getFormError()).hasError('minlength');
81
- }
82
- /**
83
- * Whether the field is set to an invalid email address.
84
- */
85
- async hasEmailError() {
86
- return await (await this.#getFormError()).hasError('email');
87
- }
88
- /**
89
- * Whether the field is set to an invalid URL.
90
- */
91
- async hasUrlError() {
92
- return await (await this.#getFormError()).hasError('url');
93
- }
94
- /**
95
- * Whether the field is set to an invalid date.
96
- */
97
- async hasInvalidDateError() {
98
- return await (await this.#getFormError()).hasError('invalidDate');
99
- }
100
- /**
101
- * Whether the field is set to an invalid minimum date.
102
- */
103
- async hasMinDateError() {
104
- return await (await this.#getFormError()).hasError('minDate');
105
- }
106
- /**
107
- * Whether the field is set to an invalid maximum date.
108
- */
109
- async hasMaxDateError() {
110
- return await (await this.#getFormError()).hasError('maxDate');
111
- }
112
- /**
113
- * Whether the field is set to an invalid phone number.
114
- */
115
- async hasPhoneFieldError() {
116
- return await (await this.#getFormError()).hasError('phone');
117
- }
118
- /**
119
- * Whether the field is set to an invalid time.
120
- */
121
- async hasTimeError() {
122
- return await (await this.#getFormError()).hasError('time');
123
- }
124
- /**
125
- * Indicates whether the input box has disabled styles applied.
126
- */
127
- async getDisabled() {
128
- const wrapper = await this.#getWrapper();
129
- return await wrapper.hasClass('sky-input-box-disabled');
130
- }
131
- /**
132
- * Gets the text for the input box label.
133
- */
134
- async getLabelText() {
135
- const label = await this.#getLabel();
136
- return await this.#getElementTextOrDefault(label);
137
- }
138
- /**
139
- * Gets the help popover for the input box or throws an error if
140
- * the help popover is not configured.
141
- */
142
- async getHelpPopover() {
143
- const helpPopover = await this.locatorForOptional(new HarnessPredicate(SkyPopoverHarness, {
144
- ancestor: '.sky-control-help',
145
- }))();
146
- if (!helpPopover) {
147
- throw new Error('The input box does not have a help popover configured.');
148
- }
149
- return helpPopover;
150
- }
151
- /**2
152
- * Gets the help popover content.
153
- */
154
- async getHelpPopoverContent() {
155
- return await (await this.#getHelpInline()).getPopoverContent();
156
- }
157
- /**
158
- * Gets the help popover title.
159
- */
160
- async getHelpPopoverTitle() {
161
- return await (await this.#getHelpInline()).getPopoverTitle();
162
- }
163
- /**
164
- * Gets the hint text for the input box.
165
- */
166
- async getHintText() {
167
- const hintText = await this.#getHintText();
168
- return await this.#getElementTextOrDefault(hintText);
169
- }
170
- /**
171
- * Indicates whether the input box has stacked styles applied.
172
- */
173
- async getStacked() {
174
- const host = await this.host();
175
- return await host.hasClass('sky-form-field-stacked');
176
- }
177
- async #getElementTextOrDefault(el) {
178
- return (await el?.text())?.trim() ?? '';
179
- }
180
- async #getHelpInline() {
181
- const harness = await this.locatorForOptional(SkyHelpInlineHarness)();
182
- if (harness) {
183
- return harness;
184
- }
185
- throw Error('No help inline found.');
186
- }
187
- }
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtYm94LWhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvdGVzdGluZy9zcmMvbW9kdWxlcy9pbnB1dC1ib3gvaW5wdXQtYm94LWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFlLE1BQU0sc0JBQXNCLENBQUM7QUFFckUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFNUQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDL0csT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJekU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsNEJBQTRCO0lBQ2xFOztPQUVHO2FBQ1csaUJBQVksR0FBRyxlQUFlLENBQUM7SUFFN0MsWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ25FLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUMxRCxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRWhELEtBQUssQ0FBQyxhQUFhO1FBQ2pCLE9BQU8sTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FDaEIsT0FBa0M7UUFFbEMsT0FBTyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsZUFBZTtRQUMxQixNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLG1CQUFtQjtRQUM5QixNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUNwRCxJQUFJLGdCQUFnQixDQUFDLG1DQUFtQyxFQUFFO1lBQ3hELFFBQVEsRUFBRSw4QkFBOEI7U0FDekMsQ0FBQyxDQUNILEVBQUUsQ0FBQztRQUVKLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQ2IsMERBQTBELENBQzNELENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLGVBQWU7UUFDMUIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUNyQyxJQUFJLGdCQUFnQixDQUFDLHlCQUF5QixFQUFFO1lBQzlDLFFBQVEsRUFDTiwrREFBK0Q7U0FDbEUsQ0FBQyxDQUNILEVBQUUsQ0FBQztRQUVKLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxTQUFpQjtRQUMvQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsZ0JBQWdCO1FBQzNCLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxpQkFBaUI7UUFDNUIsT0FBTyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGlCQUFpQjtRQUM1QixPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsYUFBYTtRQUN4QixPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsV0FBVztRQUN0QixPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsbUJBQW1CO1FBQzlCLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxlQUFlO1FBQzFCLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxlQUFlO1FBQzFCLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxrQkFBa0I7UUFDN0IsT0FBTyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFlBQVk7UUFDdkIsT0FBTyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFdBQVc7UUFDdEIsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFekMsT0FBTyxNQUFNLE9BQU8sQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsWUFBWTtRQUN2QixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVyQyxPQUFPLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsY0FBYztRQUN6QixNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FDL0MsSUFBSSxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRTtZQUN0QyxRQUFRLEVBQUUsbUJBQW1CO1NBQzlCLENBQUMsQ0FDSCxFQUFFLENBQUM7UUFFSixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMscUJBQXFCO1FBR2hDLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsbUJBQW1CO1FBQzlCLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDL0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFdBQVc7UUFDdEIsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFM0MsT0FBTyxNQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsVUFBVTtRQUNyQixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUUvQixPQUFPLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxLQUFLLENBQUMsd0JBQXdCLENBQUMsRUFBc0I7UUFDbkQsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYztRQUNsQixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7UUFFdEUsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxNQUFNLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYXJuZXNzUHJlZGljYXRlLCBUZXN0RWxlbWVudCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcbmltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lRdWVyeWFibGVDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lIZWxwSW5saW5lSGFybmVzcyB9IGZyb20gJ0Bza3l1eC9oZWxwLWlubGluZS90ZXN0aW5nJztcbmltcG9ydCB7IFNreVN0YXR1c0luZGljYXRvckhhcm5lc3MgfSBmcm9tICdAc2t5dXgvaW5kaWNhdG9ycy90ZXN0aW5nJztcbmltcG9ydCB7IFNreVBvcG92ZXJIYXJuZXNzIH0gZnJvbSAnQHNreXV4L3BvcG92ZXJzL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9ySGFybmVzcyB9IGZyb20gJy4uL2NoYXJhY3Rlci1jb3VudGVyL2NoYXJhY3Rlci1jb3VudGVyLWluZGljYXRvci1oYXJuZXNzJztcbmltcG9ydCB7IFNreUZvcm1FcnJvcnNIYXJuZXNzIH0gZnJvbSAnLi4vZm9ybS1lcnJvci9mb3JtLWVycm9ycy1oYXJuZXNzJztcblxuaW1wb3J0IHsgU2t5SW5wdXRCb3hIYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vaW5wdXQtYm94LWhhcm5lc3MtZmlsdGVycyc7XG5cbi8qKlxuICogSGFybmVzcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBhbiBpbnB1dCBib3ggY29tcG9uZW50IGluIHRlc3RzLlxuICovXG5leHBvcnQgY2xhc3MgU2t5SW5wdXRCb3hIYXJuZXNzIGV4dGVuZHMgU2t5UXVlcnlhYmxlQ29tcG9uZW50SGFybmVzcyB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ3NreS1pbnB1dC1ib3gnO1xuXG4gICNnZXRIaW50VGV4dCA9IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKCcuc2t5LWlucHV0LWJveC1oaW50LXRleHQnKTtcbiAgI2dldExhYmVsID0gdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoJy5za3ktY29udHJvbC1sYWJlbCcpO1xuICAjZ2V0V3JhcHBlciA9IHRoaXMubG9jYXRvckZvcignLnNreS1pbnB1dC1ib3gnKTtcblxuICBhc3luYyAjZ2V0Rm9ybUVycm9yKCk6IFByb21pc2U8U2t5Rm9ybUVycm9yc0hhcm5lc3M+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5sb2NhdG9yRm9yKFNreUZvcm1FcnJvcnNIYXJuZXNzKSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYSBgSGFybmVzc1ByZWRpY2F0ZWAgdGhhdCBjYW4gYmUgdXNlZCB0byBzZWFyY2ggZm9yIGFcbiAgICogYFNreUlucHV0Qm94SGFybmVzc2AgdGhhdCBtZWV0cyBjZXJ0YWluIGNyaXRlcmlhLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoKFxuICAgIGZpbHRlcnM6IFNreUlucHV0Qm94SGFybmVzc0ZpbHRlcnMsXG4gICk6IEhhcm5lc3NQcmVkaWNhdGU8U2t5SW5wdXRCb3hIYXJuZXNzPiB7XG4gICAgcmV0dXJuIFNreUlucHV0Qm94SGFybmVzcy5nZXREYXRhU2t5SWRQcmVkaWNhdGUoZmlsdGVycyk7XG4gIH1cblxuICAvKipcbiAgICogQ2xpY2tzIHRoZSBoZWxwIGlubGluZSBidXR0b24uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xpY2tIZWxwSW5saW5lKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRIZWxwSW5saW5lKCkpLmNsaWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgY2hhcmFjdGVyIGNvdW50ZXIgaW5kaWNhdG9yIGZvciB0aGUgaW5wdXQgYm94IG9yIHRocm93cyBhbiBlcnJvciBpZlxuICAgKiBhIGNoYXJhY3RlciBsaW1pdCBpcyBub3Qgc3BlY2lmaWVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldENoYXJhY3RlckNvdW50ZXIoKTogUHJvbWlzZTxTa3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9ySGFybmVzcz4ge1xuICAgIGNvbnN0IGNoYXJhY3RlckNvdW50ZXIgPSBhd2FpdCB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChcbiAgICAgIG5ldyBIYXJuZXNzUHJlZGljYXRlKFNreUNoYXJhY3RlckNvdW50ZXJJbmRpY2F0b3JIYXJuZXNzLCB7XG4gICAgICAgIGFuY2VzdG9yOiAnLnNreS1pbnB1dC1ib3gtbGFiZWwtd3JhcHBlcicsXG4gICAgICB9KSxcbiAgICApKCk7XG5cbiAgICBpZiAoIWNoYXJhY3RlckNvdW50ZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1RoZSBpbnB1dCBib3ggZG9lcyBub3QgaGF2ZSBhIGNoYXJhY3RlciBsaW1pdCBzcGVjaWZpZWQuJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNoYXJhY3RlckNvdW50ZXI7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIGxpc3Qgb2Ygc3RhdHVzIGluZGljYXRvciBoYXJuZXNzZXMgZm9yIGVycm9ycyBub3QgYXV0b21hdGljYWxseVxuICAgKiBoYW5kbGVkIGJ5IGlucHV0IGJveC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRDdXN0b21FcnJvcnMoKTogUHJvbWlzZTxTa3lTdGF0dXNJbmRpY2F0b3JIYXJuZXNzW10+IHtcbiAgICBjb25zdCBlcnJvcnMgPSBhd2FpdCB0aGlzLmxvY2F0b3JGb3JBbGwoXG4gICAgICBuZXcgSGFybmVzc1ByZWRpY2F0ZShTa3lTdGF0dXNJbmRpY2F0b3JIYXJuZXNzLCB7XG4gICAgICAgIHNlbGVjdG9yOlxuICAgICAgICAgICdza3ktc3RhdHVzLWluZGljYXRvcjpub3Qoc2t5LWZvcm0tZXJyb3Igc2t5LXN0YXR1cy1pbmRpY2F0b3IpJyxcbiAgICAgIH0pLFxuICAgICkoKTtcblxuICAgIHJldHVybiBlcnJvcnM7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgY3VzdG9tIGVycm9yIGlzIHRyaWdnZXJlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBoYXNDdXN0b21Gb3JtRXJyb3IoZXJyb3JOYW1lOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldEZvcm1FcnJvcigpKS5oYXNFcnJvcihlcnJvck5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHJlcXVpcmVkIGZpZWxkIGlzIGVtcHR5LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGhhc1JlcXVpcmVkRXJyb3IoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRGb3JtRXJyb3IoKSkuaGFzRXJyb3IoJ3JlcXVpcmVkJyk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZmllbGQgaGFzIG1vcmUgY2hhcmFjdGVycyB0aGFuIGFsbG93ZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaGFzTWF4TGVuZ3RoRXJyb3IoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRGb3JtRXJyb3IoKSkuaGFzRXJyb3IoJ21heGxlbmd0aCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGZpZWxkIGhhcyBmZXdlciBjaGFyYWN0ZXJzIHRoYW4gYWxsb3dlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBoYXNNaW5MZW5ndGhFcnJvcigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldEZvcm1FcnJvcigpKS5oYXNFcnJvcignbWlubGVuZ3RoJyk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZmllbGQgaXMgc2V0IHRvIGFuIGludmFsaWQgZW1haWwgYWRkcmVzcy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBoYXNFbWFpbEVycm9yKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0Rm9ybUVycm9yKCkpLmhhc0Vycm9yKCdlbWFpbCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGZpZWxkIGlzIHNldCB0byBhbiBpbnZhbGlkIFVSTC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBoYXNVcmxFcnJvcigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldEZvcm1FcnJvcigpKS5oYXNFcnJvcigndXJsJyk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZmllbGQgaXMgc2V0IHRvIGFuIGludmFsaWQgZGF0ZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBoYXNJbnZhbGlkRGF0ZUVycm9yKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0Rm9ybUVycm9yKCkpLmhhc0Vycm9yKCdpbnZhbGlkRGF0ZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGZpZWxkIGlzIHNldCB0byBhbiBpbnZhbGlkIG1pbmltdW0gZGF0ZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBoYXNNaW5EYXRlRXJyb3IoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRGb3JtRXJyb3IoKSkuaGFzRXJyb3IoJ21pbkRhdGUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBmaWVsZCBpcyBzZXQgdG8gYW4gaW52YWxpZCBtYXhpbXVtIGRhdGUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaGFzTWF4RGF0ZUVycm9yKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0Rm9ybUVycm9yKCkpLmhhc0Vycm9yKCdtYXhEYXRlJyk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZmllbGQgaXMgc2V0IHRvIGFuIGludmFsaWQgcGhvbmUgbnVtYmVyLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGhhc1Bob25lRmllbGRFcnJvcigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldEZvcm1FcnJvcigpKS5oYXNFcnJvcigncGhvbmUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBmaWVsZCBpcyBzZXQgdG8gYW4gaW52YWxpZCB0aW1lLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGhhc1RpbWVFcnJvcigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldEZvcm1FcnJvcigpKS5oYXNFcnJvcigndGltZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBpbnB1dCBib3ggaGFzIGRpc2FibGVkIHN0eWxlcyBhcHBsaWVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldERpc2FibGVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHdyYXBwZXIgPSBhd2FpdCB0aGlzLiNnZXRXcmFwcGVyKCk7XG5cbiAgICByZXR1cm4gYXdhaXQgd3JhcHBlci5oYXNDbGFzcygnc2t5LWlucHV0LWJveC1kaXNhYmxlZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHRleHQgZm9yIHRoZSBpbnB1dCBib3ggbGFiZWwuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0TGFiZWxUZXh0KCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgbGFiZWwgPSBhd2FpdCB0aGlzLiNnZXRMYWJlbCgpO1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuI2dldEVsZW1lbnRUZXh0T3JEZWZhdWx0KGxhYmVsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBoZWxwIHBvcG92ZXIgZm9yIHRoZSBpbnB1dCBib3ggb3IgdGhyb3dzIGFuIGVycm9yIGlmXG4gICAqIHRoZSBoZWxwIHBvcG92ZXIgaXMgbm90IGNvbmZpZ3VyZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SGVscFBvcG92ZXIoKTogUHJvbWlzZTxTa3lQb3BvdmVySGFybmVzcz4ge1xuICAgIGNvbnN0IGhlbHBQb3BvdmVyID0gYXdhaXQgdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoXG4gICAgICBuZXcgSGFybmVzc1ByZWRpY2F0ZShTa3lQb3BvdmVySGFybmVzcywge1xuICAgICAgICBhbmNlc3RvcjogJy5za3ktY29udHJvbC1oZWxwJyxcbiAgICAgIH0pLFxuICAgICkoKTtcblxuICAgIGlmICghaGVscFBvcG92ZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGlucHV0IGJveCBkb2VzIG5vdCBoYXZlIGEgaGVscCBwb3BvdmVyIGNvbmZpZ3VyZWQuJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhlbHBQb3BvdmVyO1xuICB9XG5cbiAgLyoqMlxuICAgKiBHZXRzIHRoZSBoZWxwIHBvcG92ZXIgY29udGVudC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRIZWxwUG9wb3ZlckNvbnRlbnQoKTogUHJvbWlzZTxcbiAgICBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHN0cmluZyB8IHVuZGVmaW5lZFxuICA+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldEhlbHBJbmxpbmUoKSkuZ2V0UG9wb3ZlckNvbnRlbnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBoZWxwIHBvcG92ZXIgdGl0bGUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SGVscFBvcG92ZXJUaXRsZSgpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0SGVscElubGluZSgpKS5nZXRQb3BvdmVyVGl0bGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBoaW50IHRleHQgZm9yIHRoZSBpbnB1dCBib3guXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SGludFRleHQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBoaW50VGV4dCA9IGF3YWl0IHRoaXMuI2dldEhpbnRUZXh0KCk7XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jZ2V0RWxlbWVudFRleHRPckRlZmF1bHQoaGludFRleHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBpbnB1dCBib3ggaGFzIHN0YWNrZWQgc3R5bGVzIGFwcGxpZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0U3RhY2tlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBob3N0ID0gYXdhaXQgdGhpcy5ob3N0KCk7XG5cbiAgICByZXR1cm4gYXdhaXQgaG9zdC5oYXNDbGFzcygnc2t5LWZvcm0tZmllbGQtc3RhY2tlZCcpO1xuICB9XG5cbiAgYXN5bmMgI2dldEVsZW1lbnRUZXh0T3JEZWZhdWx0KGVsOiBUZXN0RWxlbWVudCB8IG51bGwpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiAoYXdhaXQgZWw/LnRleHQoKSk/LnRyaW0oKSA/PyAnJztcbiAgfVxuXG4gIGFzeW5jICNnZXRIZWxwSW5saW5lKCk6IFByb21pc2U8U2t5SGVscElubGluZUhhcm5lc3M+IHtcbiAgICBjb25zdCBoYXJuZXNzID0gYXdhaXQgdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoU2t5SGVscElubGluZUhhcm5lc3MpKCk7XG5cbiAgICBpZiAoaGFybmVzcykge1xuICAgICAgcmV0dXJuIGhhcm5lc3M7XG4gICAgfVxuXG4gICAgdGhyb3cgRXJyb3IoJ05vIGhlbHAgaW5saW5lIGZvdW5kLicpO1xuICB9XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAtaGFybmVzcy1maWx0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3Rlc3Rpbmcvc3JjL21vZHVsZXMvcmFkaW8vcmFkaW8tZ3JvdXAtaGFybmVzcy1maWx0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lIYXJuZXNzRmlsdGVycyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG4vKipcbiAqIEEgc2V0IG9mIGNyaXRlcmlhIHRoYXQgY2FuIGJlIHVzZWQgdG8gZmlsdGVyIGEgbGlzdCBvZiBgU2t5UmFkaW9Hcm91cEhhcm5lc3NgIGluc3RhbmNlcy5cbiAqIEBpbnRlcm5hbFxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWludGVyZmFjZSwgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LW9iamVjdC10eXBlXG5leHBvcnQgaW50ZXJmYWNlIFNreVJhZGlvR3JvdXBIYXJuZXNzRmlsdGVycyBleHRlbmRzIFNreUhhcm5lc3NGaWx0ZXJzIHt9XG4iXX0=
@@ -1,156 +0,0 @@
1
- import { SkyComponentHarness } from '@skyux/core/testing';
2
- import { SkyHelpInlineHarness } from '@skyux/help-inline/testing';
3
- import { SkyFormErrorsHarness } from '../form-error/form-errors-harness';
4
- import { SkyRadioHarness } from './radio-harness';
5
- /**
6
- * Harness for interacting with a radio group component in tests.
7
- */
8
- export class SkyRadioGroupHarness extends SkyComponentHarness {
9
- /**
10
- * @internal
11
- */
12
- static { this.hostSelector = 'sky-radio-group'; }
13
- #getHeading = this.locatorFor('.sky-radio-group-legend span');
14
- #getHeadingWrapper = this.locatorForOptional('.sky-radio-group-legend');
15
- #getHintText = this.locatorForOptional('.sky-radio-group-hint-text');
16
- #getLegendDefault = this.locatorForOptional('legend .sky-radio-group-heading-text');
17
- #getLegendH3 = this.locatorForOptional('legend h3');
18
- #getLegendH4 = this.locatorForOptional('legend h4');
19
- #getLegendH5 = this.locatorForOptional('legend h5');
20
- #getLegendHeading = this.locatorForOptional('legend h3,h4,h5,.sky-radio-group-heading-text');
21
- #getRadioButtons = this.locatorForAll(SkyRadioHarness);
22
- /**
23
- * Gets a `HarnessPredicate` that can be used to search for a
24
- * `SkyRadioGroupHarness` that meets certain criteria.
25
- */
26
- static with(filters) {
27
- return SkyRadioGroupHarness.getDataSkyIdPredicate(filters);
28
- }
29
- /**
30
- * Clicks the help inline button.
31
- */
32
- async clickHelpInline() {
33
- await (await this.#getHelpInline()).click();
34
- }
35
- /**
36
- * Whether the heading is hidden.
37
- */
38
- async getHeadingHidden() {
39
- return await ((await this.#getHeadingWrapper())?.hasClass('sky-screen-reader-only') ?? true);
40
- }
41
- /**
42
- * The semantic heading level used for the radio group. Returns undefined if heading level is not set.
43
- */
44
- async getHeadingLevel() {
45
- const h3 = await this.#getLegendH3();
46
- const h4 = await this.#getLegendH4();
47
- const h5 = await this.#getLegendH5();
48
- if (h3) {
49
- return 3;
50
- }
51
- else if (h4) {
52
- return 4;
53
- }
54
- else if (h5) {
55
- return 5;
56
- }
57
- else {
58
- return undefined;
59
- }
60
- }
61
- /**
62
- * The heading style used for the radio group.
63
- */
64
- async getHeadingStyle() {
65
- const headingOrLabel = (await this.#getLegendH3()) ||
66
- (await this.#getLegendH4()) ||
67
- (await this.#getLegendH5()) ||
68
- (await this.#getLegendDefault());
69
- const isHeadingStyle3 = await headingOrLabel?.hasClass('sky-font-heading-3');
70
- const isHeadingStyle4 = await headingOrLabel?.hasClass('sky-font-heading-4');
71
- if (isHeadingStyle3) {
72
- return 3;
73
- }
74
- else if (isHeadingStyle4) {
75
- return 4;
76
- }
77
- else {
78
- return 5;
79
- }
80
- }
81
- /**
82
- * Gets the radio group's heading text. If `headingHidden` is true,
83
- * the text will still be returned.
84
- */
85
- async getHeadingText() {
86
- return await ((await this.#getLegendHeading())?.text() ?? '');
87
- }
88
- /**
89
- * Gets the help popover content.
90
- */
91
- async getHelpPopoverContent() {
92
- const content = await (await this.#getHelpInline()).getPopoverContent();
93
- /* istanbul ignore if */
94
- if (typeof content === 'object') {
95
- throw Error('Unexpected template ref');
96
- }
97
- return content;
98
- }
99
- /**
100
- * Gets the help popover title.
101
- */
102
- async getHelpPopoverTitle() {
103
- return await (await this.#getHelpInline()).getPopoverTitle();
104
- }
105
- /**
106
- * Gets the radio group's hint text.
107
- */
108
- async getHintText() {
109
- const hintText = await this.#getHintText();
110
- return (await hintText?.text())?.trim() ?? '';
111
- }
112
- /**
113
- * Gets an array of harnesses for the radio buttons in the radio group.
114
- */
115
- async getRadioButtons() {
116
- return await this.#getRadioButtons();
117
- }
118
- /**
119
- * Whether the radio group is required.
120
- */
121
- async getRequired() {
122
- const headingWrapper = await this.#getHeading();
123
- return await headingWrapper.hasClass('sky-control-label-required');
124
- }
125
- /**
126
- * Whether the radio group is stacked.
127
- */
128
- async getStacked() {
129
- const host = await this.host();
130
- const heading = (await this.#getLegendH3()) ||
131
- (await this.#getLegendH4()) ||
132
- (await this.#getLegendH5());
133
- const label = await this.#getLegendDefault();
134
- return (((await host.hasClass('sky-form-field-stacked')) && !!label) ||
135
- ((await host.hasClass('sky-field-group-stacked')) && !!heading));
136
- }
137
- /**
138
- * Whether the radio group has errors.
139
- */
140
- async hasError(errorName) {
141
- return await (await this.#getFormErrors()).hasError(errorName);
142
- }
143
- async #getFormErrors() {
144
- return await this.locatorFor(SkyFormErrorsHarness)();
145
- }
146
- async #getHelpInline() {
147
- const harness = await this.locatorForOptional(SkyHelpInlineHarness.with({
148
- ancestor: '.sky-radio-group > .sky-radio-group-legend',
149
- }))();
150
- if (harness) {
151
- return harness;
152
- }
153
- throw Error('No help inline found.');
154
- }
155
- }
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tZ3JvdXAtaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy90ZXN0aW5nL3NyYy9tb2R1bGVzL3JhZGlvL3JhZGlvLWdyb3VwLWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFLMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWxEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG1CQUFtQjtJQUMzRDs7T0FFRzthQUNXLGlCQUFZLEdBQUcsaUJBQWlCLENBQUM7SUFFL0MsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUM5RCxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUN4RSxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDckUsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUN6QyxzQ0FBc0MsQ0FDdkMsQ0FBQztJQUNGLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEQsWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwRCxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BELGlCQUFpQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FDekMsK0NBQStDLENBQ2hELENBQUM7SUFD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QUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFpQjtRQUNyQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWM7UUFDbEIsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYztRQUNsQixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FDM0Msb0JBQW9CLENBQUMsSUFBSSxDQUFDO1lBQ3hCLFFBQVEsRUFBRSw0Q0FBNEM7U0FDdkQsQ0FBQyxDQUNILEVBQUUsQ0FBQztRQUVKLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBRUQsTUFBTSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGFybmVzc1ByZWRpY2F0ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcbmltcG9ydCB7IFNreUNvbXBvbmVudEhhcm5lc3MgfSBmcm9tICdAc2t5dXgvY29yZS90ZXN0aW5nJztcbmltcG9ydCB7XG4gIFNreVJhZGlvR3JvdXBIZWFkaW5nTGV2ZWwsXG4gIFNreVJhZGlvR3JvdXBIZWFkaW5nU3R5bGUsXG59IGZyb20gJ0Bza3l1eC9mb3Jtcyc7XG5pbXBvcnQgeyBTa3lIZWxwSW5saW5lSGFybmVzcyB9IGZyb20gJ0Bza3l1eC9oZWxwLWlubGluZS90ZXN0aW5nJztcblxuaW1wb3J0IHsgU2t5Rm9ybUVycm9yc0hhcm5lc3MgfSBmcm9tICcuLi9mb3JtLWVycm9yL2Zvcm0tZXJyb3JzLWhhcm5lc3MnO1xuXG5pbXBvcnQgeyBTa3lSYWRpb0dyb3VwSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL3JhZGlvLWdyb3VwLWhhcm5lc3MtZmlsdGVycyc7XG5pbXBvcnQgeyBTa3lSYWRpb0hhcm5lc3MgfSBmcm9tICcuL3JhZGlvLWhhcm5lc3MnO1xuXG4vKipcbiAqIEhhcm5lc3MgZm9yIGludGVyYWN0aW5nIHdpdGggYSByYWRpbyBncm91cCBjb21wb25lbnQgaW4gdGVzdHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lSYWRpb0dyb3VwSGFybmVzcyBleHRlbmRzIFNreUNvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdza3ktcmFkaW8tZ3JvdXAnO1xuXG4gICNnZXRIZWFkaW5nID0gdGhpcy5sb2NhdG9yRm9yKCcuc2t5LXJhZGlvLWdyb3VwLWxlZ2VuZCBzcGFuJyk7XG4gICNnZXRIZWFkaW5nV3JhcHBlciA9IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKCcuc2t5LXJhZGlvLWdyb3VwLWxlZ2VuZCcpO1xuICAjZ2V0SGludFRleHQgPSB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbCgnLnNreS1yYWRpby1ncm91cC1oaW50LXRleHQnKTtcbiAgI2dldExlZ2VuZERlZmF1bHQgPSB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChcbiAgICAnbGVnZW5kIC5za3ktcmFkaW8tZ3JvdXAtaGVhZGluZy10ZXh0JyxcbiAgKTtcbiAgI2dldExlZ2VuZEgzID0gdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoJ2xlZ2VuZCBoMycpO1xuICAjZ2V0TGVnZW5kSDQgPSB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbCgnbGVnZW5kIGg0Jyk7XG4gICNnZXRMZWdlbmRINSA9IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKCdsZWdlbmQgaDUnKTtcbiAgI2dldExlZ2VuZEhlYWRpbmcgPSB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChcbiAgICAnbGVnZW5kIGgzLGg0LGg1LC5za3ktcmFkaW8tZ3JvdXAtaGVhZGluZy10ZXh0JyxcbiAgKTtcbiAgI2dldFJhZGlvQnV0dG9ucyA9IHRoaXMubG9jYXRvckZvckFsbChTa3lSYWRpb0hhcm5lc3MpO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgYEhhcm5lc3NQcmVkaWNhdGVgIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VhcmNoIGZvciBhXG4gICAqIGBTa3lSYWRpb0dyb3VwSGFybmVzc2AgdGhhdCBtZWV0cyBjZXJ0YWluIGNyaXRlcmlhLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoKFxuICAgIGZpbHRlcnM6IFNreVJhZGlvR3JvdXBIYXJuZXNzRmlsdGVycyxcbiAgKTogSGFybmVzc1ByZWRpY2F0ZTxTa3lSYWRpb0dyb3VwSGFybmVzcz4ge1xuICAgIHJldHVybiBTa3lSYWRpb0dyb3VwSGFybmVzcy5nZXREYXRhU2t5SWRQcmVkaWNhdGUoZmlsdGVycyk7XG4gIH1cblxuICAvKipcbiAgICogQ2xpY2tzIHRoZSBoZWxwIGlubGluZSBidXR0b24uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xpY2tIZWxwSW5saW5lKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRIZWxwSW5saW5lKCkpLmNsaWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgaGVhZGluZyBpcyBoaWRkZW4uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SGVhZGluZ0hpZGRlbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gYXdhaXQgKChcbiAgICAgIGF3YWl0IHRoaXMuI2dldEhlYWRpbmdXcmFwcGVyKClcbiAgICApPy5oYXNDbGFzcygnc2t5LXNjcmVlbi1yZWFkZXItb25seScpID8/IHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBzZW1hbnRpYyBoZWFkaW5nIGxldmVsIHVzZWQgZm9yIHRoZSByYWRpbyBncm91cC4gUmV0dXJucyB1bmRlZmluZWQgaWYgaGVhZGluZyBsZXZlbCBpcyBub3Qgc2V0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEhlYWRpbmdMZXZlbCgpOiBQcm9taXNlPFxuICAgIFNreVJhZGlvR3JvdXBIZWFkaW5nTGV2ZWwgfCB1bmRlZmluZWRcbiAgPiB7XG4gICAgY29uc3QgaDMgPSBhd2FpdCB0aGlzLiNnZXRMZWdlbmRIMygpO1xuICAgIGNvbnN0IGg0ID0gYXdhaXQgdGhpcy4jZ2V0TGVnZW5kSDQoKTtcbiAgICBjb25zdCBoNSA9IGF3YWl0IHRoaXMuI2dldExlZ2VuZEg1KCk7XG5cbiAgICBpZiAoaDMpIHtcbiAgICAgIHJldHVybiAzO1xuICAgIH0gZWxzZSBpZiAoaDQpIHtcbiAgICAgIHJldHVybiA0O1xuICAgIH0gZWxzZSBpZiAoaDUpIHtcbiAgICAgIHJldHVybiA1O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaGVhZGluZyBzdHlsZSB1c2VkIGZvciB0aGUgcmFkaW8gZ3JvdXAuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SGVhZGluZ1N0eWxlKCk6IFByb21pc2U8U2t5UmFkaW9Hcm91cEhlYWRpbmdTdHlsZT4ge1xuICAgIGNvbnN0IGhlYWRpbmdPckxhYmVsID1cbiAgICAgIChhd2FpdCB0aGlzLiNnZXRMZWdlbmRIMygpKSB8fFxuICAgICAgKGF3YWl0IHRoaXMuI2dldExlZ2VuZEg0KCkpIHx8XG4gICAgICAoYXdhaXQgdGhpcy4jZ2V0TGVnZW5kSDUoKSkgfHxcbiAgICAgIChhd2FpdCB0aGlzLiNnZXRMZWdlbmREZWZhdWx0KCkpO1xuXG4gICAgY29uc3QgaXNIZWFkaW5nU3R5bGUzID1cbiAgICAgIGF3YWl0IGhlYWRpbmdPckxhYmVsPy5oYXNDbGFzcygnc2t5LWZvbnQtaGVhZGluZy0zJyk7XG4gICAgY29uc3QgaXNIZWFkaW5nU3R5bGU0ID1cbiAgICAgIGF3YWl0IGhlYWRpbmdPckxhYmVsPy5oYXNDbGFzcygnc2t5LWZvbnQtaGVhZGluZy00Jyk7XG5cbiAgICBpZiAoaXNIZWFkaW5nU3R5bGUzKSB7XG4gICAgICByZXR1cm4gMztcbiAgICB9IGVsc2UgaWYgKGlzSGVhZGluZ1N0eWxlNCkge1xuICAgICAgcmV0dXJuIDQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiA1O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSByYWRpbyBncm91cCdzIGhlYWRpbmcgdGV4dC4gSWYgYGhlYWRpbmdIaWRkZW5gIGlzIHRydWUsXG4gICAqIHRoZSB0ZXh0IHdpbGwgc3RpbGwgYmUgcmV0dXJuZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SGVhZGluZ1RleHQoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gYXdhaXQgKChhd2FpdCB0aGlzLiNnZXRMZWdlbmRIZWFkaW5nKCkpPy50ZXh0KCkgPz8gJycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGhlbHAgcG9wb3ZlciBjb250ZW50LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEhlbHBQb3BvdmVyQ29udGVudCgpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0SGVscElubGluZSgpKS5nZXRQb3BvdmVyQ29udGVudCgpO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnb2JqZWN0Jykge1xuICAgICAgdGhyb3cgRXJyb3IoJ1VuZXhwZWN0ZWQgdGVtcGxhdGUgcmVmJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgaGVscCBwb3BvdmVyIHRpdGxlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEhlbHBQb3BvdmVyVGl0bGUoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldEhlbHBJbmxpbmUoKSkuZ2V0UG9wb3ZlclRpdGxlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgcmFkaW8gZ3JvdXAncyBoaW50IHRleHQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SGludFRleHQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBoaW50VGV4dCA9IGF3YWl0IHRoaXMuI2dldEhpbnRUZXh0KCk7XG5cbiAgICByZXR1cm4gKGF3YWl0IGhpbnRUZXh0Py50ZXh0KCkpPy50cmltKCkgPz8gJyc7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhbiBhcnJheSBvZiBoYXJuZXNzZXMgZm9yIHRoZSByYWRpbyBidXR0b25zIGluIHRoZSByYWRpbyBncm91cC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRSYWRpb0J1dHRvbnMoKTogUHJvbWlzZTxTa3lSYWRpb0hhcm5lc3NbXT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLiNnZXRSYWRpb0J1dHRvbnMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSByYWRpbyBncm91cCBpcyByZXF1aXJlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRSZXF1aXJlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBoZWFkaW5nV3JhcHBlciA9IGF3YWl0IHRoaXMuI2dldEhlYWRpbmcoKTtcblxuICAgIHJldHVybiBhd2FpdCBoZWFkaW5nV3JhcHBlci5oYXNDbGFzcygnc2t5LWNvbnRyb2wtbGFiZWwtcmVxdWlyZWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSByYWRpbyBncm91cCBpcyBzdGFja2VkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFN0YWNrZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgaG9zdCA9IGF3YWl0IHRoaXMuaG9zdCgpO1xuICAgIGNvbnN0IGhlYWRpbmcgPVxuICAgICAgKGF3YWl0IHRoaXMuI2dldExlZ2VuZEgzKCkpIHx8XG4gICAgICAoYXdhaXQgdGhpcy4jZ2V0TGVnZW5kSDQoKSkgfHxcbiAgICAgIChhd2FpdCB0aGlzLiNnZXRMZWdlbmRINSgpKTtcbiAgICBjb25zdCBsYWJlbCA9IGF3YWl0IHRoaXMuI2dldExlZ2VuZERlZmF1bHQoKTtcblxuICAgIHJldHVybiAoXG4gICAgICAoKGF3YWl0IGhvc3QuaGFzQ2xhc3MoJ3NreS1mb3JtLWZpZWxkLXN0YWNrZWQnKSkgJiYgISFsYWJlbCkgfHxcbiAgICAgICgoYXdhaXQgaG9zdC5oYXNDbGFzcygnc2t5LWZpZWxkLWdyb3VwLXN0YWNrZWQnKSkgJiYgISFoZWFkaW5nKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcmFkaW8gZ3JvdXAgaGFzIGVycm9ycy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBoYXNFcnJvcihlcnJvck5hbWU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0Rm9ybUVycm9ycygpKS5oYXNFcnJvcihlcnJvck5hbWUpO1xuICB9XG5cbiAgYXN5bmMgI2dldEZvcm1FcnJvcnMoKTogUHJvbWlzZTxTa3lGb3JtRXJyb3JzSGFybmVzcz4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmxvY2F0b3JGb3IoU2t5Rm9ybUVycm9yc0hhcm5lc3MpKCk7XG4gIH1cblxuICBhc3luYyAjZ2V0SGVscElubGluZSgpOiBQcm9taXNlPFNreUhlbHBJbmxpbmVIYXJuZXNzPiB7XG4gICAgY29uc3QgaGFybmVzcyA9IGF3YWl0IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKFxuICAgICAgU2t5SGVscElubGluZUhhcm5lc3Mud2l0aCh7XG4gICAgICAgIGFuY2VzdG9yOiAnLnNreS1yYWRpby1ncm91cCA+IC5za3ktcmFkaW8tZ3JvdXAtbGVnZW5kJyxcbiAgICAgIH0pLFxuICAgICkoKTtcblxuICAgIGlmIChoYXJuZXNzKSB7XG4gICAgICByZXR1cm4gaGFybmVzcztcbiAgICB9XG5cbiAgICB0aHJvdyBFcnJvcignTm8gaGVscCBpbmxpbmUgZm91bmQuJyk7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8taGFybmVzcy1maWx0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm1zL3Rlc3Rpbmcvc3JjL21vZHVsZXMvcmFkaW8vcmFkaW8taGFybmVzcy1maWx0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lIYXJuZXNzRmlsdGVycyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG4vKipcbiAqIEEgc2V0IG9mIGNyaXRlcmlhIHRoYXQgY2FuIGJlIHVzZWQgdG8gZmlsdGVyIGEgbGlzdCBvZiBgU2t5UmFkaW9IYXJuZXNzYCBpbnN0YW5jZXMuXG4gKiBAaW50ZXJuYWxcbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1pbnRlcmZhY2UsIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1vYmplY3QtdHlwZVxuZXhwb3J0IGludGVyZmFjZSBTa3lSYWRpb0hhcm5lc3NGaWx0ZXJzIGV4dGVuZHMgU2t5SGFybmVzc0ZpbHRlcnMge31cbiJdfQ==
@@ -1,147 +0,0 @@
1
- import { SkyComponentHarness } from '@skyux/core/testing';
2
- import { SkyHelpInlineHarness } from '@skyux/help-inline/testing';
3
- import { SkyRadioLabelHarness } from './radio-label-harness';
4
- /**
5
- * Harness for interacting with a radio button component in tests.
6
- */
7
- export class SkyRadioHarness extends SkyComponentHarness {
8
- /**
9
- * @internal
10
- */
11
- static { this.hostSelector = 'sky-radio'; }
12
- #getHintText = this.locatorForOptional('.sky-radio-hint-text');
13
- #getInput = this.locatorFor('input.sky-radio-input');
14
- #getLabel = this.locatorForOptional(SkyRadioLabelHarness);
15
- #getLabelText = this.locatorForOptional('span.sky-switch-label.sky-radio-label-text');
16
- /**
17
- * Gets a `HarnessPredicate` that can be used to search for a
18
- * `SkyRadioHarness` that meets certain criteria.
19
- */
20
- static with(filters) {
21
- return SkyRadioHarness.getDataSkyIdPredicate(filters);
22
- }
23
- /**
24
- * Blurs the radio button.
25
- */
26
- async blur() {
27
- await (await this.#getInput()).blur();
28
- }
29
- /**
30
- * Puts the radio button in a checked state if it is currently unchecked.
31
- */
32
- async check() {
33
- if (await this.isDisabled()) {
34
- throw new Error('Could not check the radio button because it is disabled.');
35
- }
36
- else if (!(await this.isChecked())) {
37
- await (await this.#getInput()).click();
38
- }
39
- }
40
- /**
41
- * Clicks the help inline button.
42
- */
43
- async clickHelpInline() {
44
- await (await this.#getHelpInline()).click();
45
- }
46
- /**
47
- * Focuses the radio button.
48
- */
49
- async focus() {
50
- await (await this.#getInput()).focus();
51
- }
52
- /**
53
- * Gets the radio button's aria-label.
54
- */
55
- async getAriaLabel() {
56
- return await (await this.#getInput()).getAttribute('aria-label');
57
- }
58
- /**
59
- * Gets the radio button's aria-labelledby.
60
- */
61
- async getAriaLabelledby() {
62
- return await (await this.#getInput()).getAttribute('aria-labelledby');
63
- }
64
- /**
65
- * Gets the help popover content.
66
- */
67
- async getHelpPopoverContent() {
68
- const content = await (await this.#getHelpInline()).getPopoverContent();
69
- /* istanbul ignore if */
70
- if (typeof content === 'object') {
71
- throw Error('Unexpected template ref');
72
- }
73
- return content;
74
- }
75
- /**
76
- * Gets the help popover title.
77
- */
78
- async getHelpPopoverTitle() {
79
- return await (await this.#getHelpInline()).getPopoverTitle();
80
- }
81
- /**
82
- * Gets the radio button's hint text.
83
- */
84
- async getHintText() {
85
- const hintText = await this.#getHintText();
86
- return (await hintText?.text())?.trim() ?? '';
87
- }
88
- /**
89
- * Whether the label is hidden. Only supported when using the `labelText` input to set the label.
90
- */
91
- async getLabelHidden() {
92
- const labelText = await this.#getLabelText();
93
- const label = await this.#getLabel();
94
- if (label) {
95
- throw new Error('`labelIsHidden` is only supported when setting the radio label via the `labelText` input.');
96
- }
97
- else {
98
- return !!(await labelText?.hasClass('sky-screen-reader-only'));
99
- }
100
- }
101
- /**
102
- * Gets the radio button's label text. If the label is set via `labelText` and `labelHidden` is true,
103
- * the text will still be returned.
104
- */
105
- async getLabelText() {
106
- const labelText = await this.#getLabelText();
107
- if (labelText) {
108
- return await labelText.text();
109
- }
110
- else {
111
- return await (await this.#getLabel())?.getText();
112
- }
113
- }
114
- /**
115
- * Gets the radio button's name.
116
- */
117
- async getName() {
118
- return await (await this.#getInput()).getAttribute('name');
119
- }
120
- /**
121
- * Whether the radio button is checked.
122
- */
123
- async isChecked() {
124
- return await (await this.#getInput()).getProperty('checked');
125
- }
126
- /**
127
- * Whether the radio button is disabled.
128
- */
129
- async isDisabled() {
130
- const disabled = await (await this.#getInput()).getAttribute('disabled');
131
- return disabled !== null;
132
- }
133
- /**
134
- * Whether the radio button is focused.
135
- */
136
- async isFocused() {
137
- return await (await this.#getInput()).isFocused();
138
- }
139
- async #getHelpInline() {
140
- const harness = await this.locatorForOptional(SkyHelpInlineHarness)();
141
- if (harness) {
142
- return harness;
143
- }
144
- throw Error('No help inline found.');
145
- }
146
- }
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8taGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy90ZXN0aW5nL3NyYy9tb2R1bGVzL3JhZGlvL3JhZGlvLWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFN0Q7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxtQkFBbUI7SUFDdEQ7O09BRUc7YUFDVyxpQkFBWSxHQUFHLFdBQVcsQ0FBQztJQUV6QyxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFFL0QsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUVyRCxTQUFTLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFMUQsYUFBYSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FDckMsNENBQTRDLENBQzdDLENBQUM7SUFFRjs7O09BR0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUNoQixPQUErQjtRQUUvQixPQUFPLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsSUFBSTtRQUNmLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLElBQUksTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUs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QUssQ0FBQyxPQUFPO1FBQ2xCLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxTQUFTO1FBQ3BCLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFVLFNBQVMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxVQUFVO1FBQ3JCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RSxPQUFPLFFBQVEsS0FBSyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFNBQVM7UUFDcEIsT0FBTyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWM7UUFDbEIsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO1FBRXRFLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBRUQsTUFBTSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGFybmVzc1ByZWRpY2F0ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcbmltcG9ydCB7IFNreUNvbXBvbmVudEhhcm5lc3MgfSBmcm9tICdAc2t5dXgvY29yZS90ZXN0aW5nJztcbmltcG9ydCB7IFNreUhlbHBJbmxpbmVIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2hlbHAtaW5saW5lL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lSYWRpb0hhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9yYWRpby1oYXJuZXNzLWZpbHRlcnMnO1xuaW1wb3J0IHsgU2t5UmFkaW9MYWJlbEhhcm5lc3MgfSBmcm9tICcuL3JhZGlvLWxhYmVsLWhhcm5lc3MnO1xuXG4vKipcbiAqIEhhcm5lc3MgZm9yIGludGVyYWN0aW5nIHdpdGggYSByYWRpbyBidXR0b24gY29tcG9uZW50IGluIHRlc3RzLlxuICovXG5leHBvcnQgY2xhc3MgU2t5UmFkaW9IYXJuZXNzIGV4dGVuZHMgU2t5Q29tcG9uZW50SGFybmVzcyB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ3NreS1yYWRpbyc7XG5cbiAgI2dldEhpbnRUZXh0ID0gdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoJy5za3ktcmFkaW8taGludC10ZXh0Jyk7XG5cbiAgI2dldElucHV0ID0gdGhpcy5sb2NhdG9yRm9yKCdpbnB1dC5za3ktcmFkaW8taW5wdXQnKTtcblxuICAjZ2V0TGFiZWwgPSB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChTa3lSYWRpb0xhYmVsSGFybmVzcyk7XG5cbiAgI2dldExhYmVsVGV4dCA9IHRoaXMubG9jYXRvckZvck9wdGlvbmFsKFxuICAgICdzcGFuLnNreS1zd2l0Y2gtbGFiZWwuc2t5LXJhZGlvLWxhYmVsLXRleHQnLFxuICApO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgYEhhcm5lc3NQcmVkaWNhdGVgIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VhcmNoIGZvciBhXG4gICAqIGBTa3lSYWRpb0hhcm5lc3NgIHRoYXQgbWVldHMgY2VydGFpbiBjcml0ZXJpYS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aChcbiAgICBmaWx0ZXJzOiBTa3lSYWRpb0hhcm5lc3NGaWx0ZXJzLFxuICApOiBIYXJuZXNzUHJlZGljYXRlPFNreVJhZGlvSGFybmVzcz4ge1xuICAgIHJldHVybiBTa3lSYWRpb0hhcm5lc3MuZ2V0RGF0YVNreUlkUHJlZGljYXRlKGZpbHRlcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJsdXJzIHRoZSByYWRpbyBidXR0b24uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYmx1cigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0SW5wdXQoKSkuYmx1cigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFB1dHMgdGhlIHJhZGlvIGJ1dHRvbiBpbiBhIGNoZWNrZWQgc3RhdGUgaWYgaXQgaXMgY3VycmVudGx5IHVuY2hlY2tlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjaGVjaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoYXdhaXQgdGhpcy5pc0Rpc2FibGVkKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0NvdWxkIG5vdCBjaGVjayB0aGUgcmFkaW8gYnV0dG9uIGJlY2F1c2UgaXQgaXMgZGlzYWJsZWQuJyxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICghKGF3YWl0IHRoaXMuaXNDaGVja2VkKCkpKSB7XG4gICAgICBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0SW5wdXQoKSkuY2xpY2soKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xpY2tzIHRoZSBoZWxwIGlubGluZSBidXR0b24uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xpY2tIZWxwSW5saW5lKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRIZWxwSW5saW5lKCkpLmNsaWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogRm9jdXNlcyB0aGUgcmFkaW8gYnV0dG9uLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGZvY3VzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRJbnB1dCgpKS5mb2N1cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHJhZGlvIGJ1dHRvbidzIGFyaWEtbGFiZWwuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0QXJpYUxhYmVsKCk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0SW5wdXQoKSkuZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgcmFkaW8gYnV0dG9uJ3MgYXJpYS1sYWJlbGxlZGJ5LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEFyaWFMYWJlbGxlZGJ5KCk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0SW5wdXQoKSkuZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsbGVkYnknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBoZWxwIHBvcG92ZXIgY29udGVudC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRIZWxwUG9wb3ZlckNvbnRlbnQoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgKGF3YWl0IHRoaXMuI2dldEhlbHBJbmxpbmUoKSkuZ2V0UG9wb3ZlckNvbnRlbnQoKTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICh0eXBlb2YgY29udGVudCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHRocm93IEVycm9yKCdVbmV4cGVjdGVkIHRlbXBsYXRlIHJlZicpO1xuICAgIH1cblxuICAgIHJldHVybiBjb250ZW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGhlbHAgcG9wb3ZlciB0aXRsZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRIZWxwUG9wb3ZlclRpdGxlKCk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRIZWxwSW5saW5lKCkpLmdldFBvcG92ZXJUaXRsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHJhZGlvIGJ1dHRvbidzIGhpbnQgdGV4dC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRIaW50VGV4dCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGhpbnRUZXh0ID0gYXdhaXQgdGhpcy4jZ2V0SGludFRleHQoKTtcblxuICAgIHJldHVybiAoYXdhaXQgaGludFRleHQ/LnRleHQoKSk/LnRyaW0oKSA/PyAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBsYWJlbCBpcyBoaWRkZW4uIE9ubHkgc3VwcG9ydGVkIHdoZW4gdXNpbmcgdGhlIGBsYWJlbFRleHRgIGlucHV0IHRvIHNldCB0aGUgbGFiZWwuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0TGFiZWxIaWRkZW4oKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgbGFiZWxUZXh0ID0gYXdhaXQgdGhpcy4jZ2V0TGFiZWxUZXh0KCk7XG4gICAgY29uc3QgbGFiZWwgPSBhd2FpdCB0aGlzLiNnZXRMYWJlbCgpO1xuXG4gICAgaWYgKGxhYmVsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdgbGFiZWxJc0hpZGRlbmAgaXMgb25seSBzdXBwb3J0ZWQgd2hlbiBzZXR0aW5nIHRoZSByYWRpbyBsYWJlbCB2aWEgdGhlIGBsYWJlbFRleHRgIGlucHV0LicsXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gISEoYXdhaXQgbGFiZWxUZXh0Py5oYXNDbGFzcygnc2t5LXNjcmVlbi1yZWFkZXItb25seScpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgcmFkaW8gYnV0dG9uJ3MgbGFiZWwgdGV4dC4gSWYgdGhlIGxhYmVsIGlzIHNldCB2aWEgYGxhYmVsVGV4dGAgYW5kIGBsYWJlbEhpZGRlbmAgaXMgdHJ1ZSxcbiAgICogdGhlIHRleHQgd2lsbCBzdGlsbCBiZSByZXR1cm5lZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRMYWJlbFRleHQoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBsYWJlbFRleHQgPSBhd2FpdCB0aGlzLiNnZXRMYWJlbFRleHQoKTtcblxuICAgIGlmIChsYWJlbFRleHQpIHtcbiAgICAgIHJldHVybiBhd2FpdCBsYWJlbFRleHQudGV4dCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldExhYmVsKCkpPy5nZXRUZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHJhZGlvIGJ1dHRvbidzIG5hbWUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0TmFtZSgpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldElucHV0KCkpLmdldEF0dHJpYnV0ZSgnbmFtZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHJhZGlvIGJ1dHRvbiBpcyBjaGVja2VkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzQ2hlY2tlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldElucHV0KCkpLmdldFByb3BlcnR5PGJvb2xlYW4+KCdjaGVja2VkJyk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcmFkaW8gYnV0dG9uIGlzIGRpc2FibGVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzRGlzYWJsZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgZGlzYWJsZWQgPSBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0SW5wdXQoKSkuZ2V0QXR0cmlidXRlKCdkaXNhYmxlZCcpO1xuICAgIHJldHVybiBkaXNhYmxlZCAhPT0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSByYWRpbyBidXR0b24gaXMgZm9jdXNlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBpc0ZvY3VzZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRJbnB1dCgpKS5pc0ZvY3VzZWQoKTtcbiAgfVxuXG4gIGFzeW5jICNnZXRIZWxwSW5saW5lKCk6IFByb21pc2U8U2t5SGVscElubGluZUhhcm5lc3M+IHtcbiAgICBjb25zdCBoYXJuZXNzID0gYXdhaXQgdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoU2t5SGVscElubGluZUhhcm5lc3MpKCk7XG5cbiAgICBpZiAoaGFybmVzcykge1xuICAgICAgcmV0dXJuIGhhcm5lc3M7XG4gICAgfVxuXG4gICAgdGhyb3cgRXJyb3IoJ05vIGhlbHAgaW5saW5lIGZvdW5kLicpO1xuICB9XG59XG4iXX0=
@@ -1,19 +0,0 @@
1
- import { ComponentHarness } from '@angular/cdk/testing';
2
- /**
3
- * Harness for interacting with a radio label component in tests.
4
- * @internal
5
- */
6
- export class SkyRadioLabelHarness extends ComponentHarness {
7
- /**
8
- * @internal
9
- */
10
- static { this.hostSelector = 'sky-radio-label'; }
11
- #getLabelContent = this.locatorFor('.sky-switch-label');
12
- /**
13
- * Gets the text content of the radio label.
14
- */
15
- async getText() {
16
- return await (await this.#getLabelContent()).text();
17
- }
18
- }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tbGFiZWwtaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy90ZXN0aW5nL3NyYy9tb2R1bGVzL3JhZGlvL3JhZGlvLWxhYmVsLWhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGdCQUFnQjtJQUN4RDs7T0FFRzthQUNXLGlCQUFZLEdBQUcsaUJBQWlCLENBQUM7SUFFL0MsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRXhEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLE9BQU87UUFDbEIsT0FBTyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuXG4vKipcbiAqIEhhcm5lc3MgZm9yIGludGVyYWN0aW5nIHdpdGggYSByYWRpbyBsYWJlbCBjb21wb25lbnQgaW4gdGVzdHMuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIFNreVJhZGlvTGFiZWxIYXJuZXNzIGV4dGVuZHMgQ29tcG9uZW50SGFybmVzcyB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ3NreS1yYWRpby1sYWJlbCc7XG5cbiAgI2dldExhYmVsQ29udGVudCA9IHRoaXMubG9jYXRvckZvcignLnNreS1zd2l0Y2gtbGFiZWwnKTtcblxuICAvKipcbiAgICogR2V0cyB0aGUgdGV4dCBjb250ZW50IG9mIHRoZSByYWRpbyBsYWJlbC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRUZXh0KCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRMYWJlbENvbnRlbnQoKSkudGV4dCgpO1xuICB9XG59XG4iXX0=
@@ -1,18 +0,0 @@
1
- export { SkyInputBoxHarness } from './modules/input-box/input-box-harness';
2
- export { SkyCharacterCounterIndicatorHarness } from './modules/character-counter/character-counter-indicator-harness';
3
- export { SkyCheckboxFixture } from './legacy/checkbox-fixture';
4
- export { SkyCheckboxGroupHarness } from './modules/checkbox/checkbox-group-harness';
5
- export { SkyCheckboxHarness } from './modules/checkbox/checkbox-harness';
6
- export { SkyCheckboxLabelHarness } from './modules/checkbox/checkbox-label-harness';
7
- export { SkyFileAttachmentHarness } from './modules/file-attachment/file-attachment/file-attachment-harness';
8
- export { SkyFileDropHarness } from './modules/file-attachment/file-drop/file-drop-harness';
9
- export { provideSkyFileAttachmentTesting } from './modules/file-attachment/shared/provide-file-attachment-testing';
10
- export { SkyFileItemHarness } from './modules/file-attachment/file-drop/file-item-harness';
11
- export { SkyFormErrorsHarness } from './modules/form-error/form-errors-harness';
12
- export { SkyFormErrorHarness } from './modules/form-error/form-error-harness';
13
- export { SkyFieldGroupHarness } from './modules/field-group/field-group-harness';
14
- export { SkyRadioFixture } from './legacy/radio-fixture';
15
- export { SkyRadioGroupHarness } from './modules/radio/radio-group-harness';
16
- export { SkyRadioHarness } from './modules/radio/radio-harness';
17
- export { SkyRadioLabelHarness } from './modules/radio/radio-label-harness';
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy90ZXN0aW5nL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBR3RILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXpFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRXBGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBRzdHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRTNGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRzNGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBR2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRzlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBR2pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBTa3lJbnB1dEJveEhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvaW5wdXQtYm94L2lucHV0LWJveC1oYXJuZXNzJztcbmV4cG9ydCB7IFNreUlucHV0Qm94SGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvaW5wdXQtYm94L2lucHV0LWJveC1oYXJuZXNzLWZpbHRlcnMnO1xuXG5leHBvcnQgeyBTa3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9ySGFybmVzcyB9IGZyb20gJy4vbW9kdWxlcy9jaGFyYWN0ZXItY291bnRlci9jaGFyYWN0ZXItY291bnRlci1pbmRpY2F0b3ItaGFybmVzcyc7XG5leHBvcnQgeyBTa3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9ySGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvY2hhcmFjdGVyLWNvdW50ZXIvY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLWhhcm5lc3MtZmlsdGVycyc7XG5cbmV4cG9ydCB7IFNreUNoZWNrYm94Rml4dHVyZSB9IGZyb20gJy4vbGVnYWN5L2NoZWNrYm94LWZpeHR1cmUnO1xuZXhwb3J0IHsgU2t5Q2hlY2tib3hHcm91cEhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvY2hlY2tib3gvY2hlY2tib3gtZ3JvdXAtaGFybmVzcyc7XG5leHBvcnQgeyBTa3lDaGVja2JveEdyb3VwSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvY2hlY2tib3gvY2hlY2tib3gtZ3JvdXAtaGFybmVzcy1maWx0ZXJzJztcbmV4cG9ydCB7IFNreUNoZWNrYm94SGFybmVzcyB9IGZyb20gJy4vbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC1oYXJuZXNzJztcbmV4cG9ydCB7IFNreUNoZWNrYm94SGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvY2hlY2tib3gvY2hlY2tib3gtaGFybmVzcy1maWx0ZXJzJztcbmV4cG9ydCB7IFNreUNoZWNrYm94TGFiZWxIYXJuZXNzIH0gZnJvbSAnLi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94LWxhYmVsLWhhcm5lc3MnO1xuXG5leHBvcnQgeyBTa3lGaWxlQXR0YWNobWVudEhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnQtaGFybmVzcyc7XG5leHBvcnQgeyBTa3lGaWxlQXR0YWNobWVudEhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnQvZmlsZS1hdHRhY2htZW50LWhhcm5lc3MtZmlsdGVycyc7XG5cbmV4cG9ydCB7IFNreUZpbGVEcm9wSGFybmVzcyB9IGZyb20gJy4vbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1kcm9wL2ZpbGUtZHJvcC1oYXJuZXNzJztcbmV4cG9ydCB7IFNreUZpbGVEcm9wSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtZHJvcC9maWxlLWRyb3AtaGFybmVzcy1maWx0ZXJzJztcbmV4cG9ydCB7IHByb3ZpZGVTa3lGaWxlQXR0YWNobWVudFRlc3RpbmcgfSBmcm9tICcuL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L3NoYXJlZC9wcm92aWRlLWZpbGUtYXR0YWNobWVudC10ZXN0aW5nJztcbmV4cG9ydCB7IFNreUZpbGVJdGVtSGFybmVzcyB9IGZyb20gJy4vbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1kcm9wL2ZpbGUtaXRlbS1oYXJuZXNzJztcbmV4cG9ydCB7IFNreUZpbGVJdGVtSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtZHJvcC9maWxlLWl0ZW0taGFybmVzcy1maWx0ZXJzJztcblxuZXhwb3J0IHsgU2t5Rm9ybUVycm9yc0hhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvZm9ybS1lcnJvci9mb3JtLWVycm9ycy1oYXJuZXNzJztcbmV4cG9ydCB7IFNreUZvcm1FcnJvcnNIYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vbW9kdWxlcy9mb3JtLWVycm9yL2Zvcm0tZXJyb3JzLWhhcm5lc3MuZmlsdGVycyc7XG5cbmV4cG9ydCB7IFNreUZvcm1FcnJvckhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvZm9ybS1lcnJvci9mb3JtLWVycm9yLWhhcm5lc3MnO1xuZXhwb3J0IHsgU2t5Rm9ybUVycm9ySGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvZm9ybS1lcnJvci9mb3JtLWVycm9yLWhhcm5lc3MuZmlsdGVycyc7XG5cbmV4cG9ydCB7IFNreUZpZWxkR3JvdXBIYXJuZXNzIH0gZnJvbSAnLi9tb2R1bGVzL2ZpZWxkLWdyb3VwL2ZpZWxkLWdyb3VwLWhhcm5lc3MnO1xuZXhwb3J0IHsgU2t5RmllbGRHcm91cEhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9tb2R1bGVzL2ZpZWxkLWdyb3VwL2ZpZWxkLWdyb3VwLWhhcm5lc3MtZmlsdGVycyc7XG5cbmV4cG9ydCB7IFNreVJhZGlvRml4dHVyZSB9IGZyb20gJy4vbGVnYWN5L3JhZGlvLWZpeHR1cmUnO1xuZXhwb3J0IHsgU2t5UmFkaW9Hcm91cEhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvcmFkaW8vcmFkaW8tZ3JvdXAtaGFybmVzcyc7XG5leHBvcnQgeyBTa3lSYWRpb0dyb3VwSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvcmFkaW8vcmFkaW8tZ3JvdXAtaGFybmVzcy1maWx0ZXJzJztcbmV4cG9ydCB7IFNreVJhZGlvSGFybmVzcyB9IGZyb20gJy4vbW9kdWxlcy9yYWRpby9yYWRpby1oYXJuZXNzJztcbmV4cG9ydCB7IFNreVJhZGlvSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvcmFkaW8vcmFkaW8taGFybmVzcy1maWx0ZXJzJztcbmV4cG9ydCB7IFNreVJhZGlvTGFiZWxIYXJuZXNzIH0gZnJvbSAnLi9tb2R1bGVzL3JhZGlvL3JhZGlvLWxhYmVsLWhhcm5lc3MnO1xuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5dXgtZm9ybXMtdGVzdGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy90ZXN0aW5nL3NyYy9za3l1eC1mb3Jtcy10ZXN0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=