@skyux/forms 11.35.0 → 11.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,9 @@
1
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 { SkyFileDropLinkUploadHarness } from './file-drop-link-upload-harness';
2
5
  /**
3
6
  * Harness for interacting with a file drop component in tests.
4
- * @internal
5
7
  */
6
8
  export class SkyFileDropHarness extends SkyComponentHarness {
7
9
  /**
@@ -9,6 +11,10 @@ export class SkyFileDropHarness extends SkyComponentHarness {
9
11
  */
10
12
  static { this.hostSelector = 'sky-file-drop'; }
11
13
  #getDropTarget = this.locatorFor('.sky-file-drop-target');
14
+ #input = this.locatorFor('input[type="file"]');
15
+ #fileUploadButton = this.locatorFor('button.sky-file-drop-target');
16
+ #label = this.locatorFor('.sky-file-drop-label-text');
17
+ #formErrors = this.locatorForAll(SkyFormErrorsHarness);
12
18
  /**
13
19
  * Gets a `HarnessPredicate` that can be used to search for a
14
20
  * `SkyFileDropHarness` that meets certain criteria.
@@ -17,23 +23,170 @@ export class SkyFileDropHarness extends SkyComponentHarness {
17
23
  return SkyFileDropHarness.getDataSkyIdPredicate(filters);
18
24
  }
19
25
  /**
20
- * Drops a file onto the component's drop target.
26
+ * Clicks the file drop target.
21
27
  */
22
- async dropFile(file) {
28
+ async clickFileDropTarget() {
29
+ return await (await this.#fileUploadButton()).click();
30
+ }
31
+ /**
32
+ * Clicks the help inline button.
33
+ */
34
+ async clickHelpInline() {
35
+ return await (await this.#getHelpInline()).click();
36
+ }
37
+ /**
38
+ * Clicks the link upload `Done` button'.
39
+ */
40
+ async clickLinkUploadDoneButton() {
41
+ return await (await this.#getLinkUpload()).clickDoneButton();
42
+ }
43
+ /**
44
+ * Enters text into the link upload input.
45
+ */
46
+ async enterLinkUploadText(link) {
47
+ return await (await this.#getLinkUpload()).enterText(link);
48
+ }
49
+ /**
50
+ * Gets the accepted file types.
51
+ */
52
+ async getAcceptedTypes() {
53
+ return await (await this.#input()).getAttribute('accept');
54
+ }
55
+ /**
56
+ * Gets the aria-label for the file upload button.
57
+ */
58
+ async getFileUploadAriaLabel() {
59
+ return await (await this.#fileUploadButton()).getAttribute('aria-label');
60
+ }
61
+ /**
62
+ * Gets the help inline popover content.
63
+ */
64
+ async getHelpPopoverContent() {
65
+ const content = await (await this.#getHelpInline()).getPopoverContent();
66
+ return content;
67
+ }
68
+ /**
69
+ * Gets the help inline popover title.
70
+ */
71
+ async getHelpPopoverTitle() {
72
+ return await (await this.#getHelpInline()).getPopoverTitle();
73
+ }
74
+ /**
75
+ * Gets the hint text.
76
+ */
77
+ async getHintText() {
78
+ return (await (await this.locatorFor('.sky-file-drop-hint-text')()).text()).trim();
79
+ }
80
+ /**
81
+ * Gets the label text.
82
+ */
83
+ async getLabelText() {
84
+ return (await (await this.#label()).text()).trim();
85
+ }
86
+ /**
87
+ * Gets the link upload aria-label.
88
+ */
89
+ async getLinkUploadAriaLabel() {
90
+ return await (await this.#getLinkUpload()).getAriaLabel();
91
+ }
92
+ /**
93
+ * Gets the link upload hint text.
94
+ */
95
+ async getLinkUploadHintText() {
96
+ return await (await this.#getLinkUpload()).getHintText();
97
+ }
98
+ /**
99
+ * Whether a custom form error has fired.
100
+ */
101
+ async hasCustomError(errorName) {
102
+ return await (await this.#getFormErrors()).hasError(errorName);
103
+ }
104
+ /**
105
+ * Whether the file type error has fired.
106
+ */
107
+ async hasFileTypeError() {
108
+ return await (await this.#getFormErrors()).hasError('fileType');
109
+ }
110
+ /**
111
+ * Whether the max file size error has fired.
112
+ */
113
+ async hasMaxFileSizeError() {
114
+ return await (await this.#getFormErrors()).hasError('maxFileSize');
115
+ }
116
+ /**
117
+ * Whether the min file size error has fired.
118
+ */
119
+ async hasMinFileSizeError() {
120
+ return await (await this.#getFormErrors()).hasError('minFileSize');
121
+ }
122
+ /**
123
+ * Whether the required error has fired.
124
+ */
125
+ async hasRequiredError() {
126
+ return await (await this.#getFormErrors()).hasError('required');
127
+ }
128
+ /**
129
+ * Whether the validate error from the customer validation has fired.
130
+ */
131
+ async hasValidateFnError() {
132
+ return await (await this.#getFormErrors()).hasError('validate');
133
+ }
134
+ /**
135
+ * Whether label text is hidden.
136
+ */
137
+ async isLabelHidden() {
138
+ return await (await this.locatorFor('legend.sky-control-label')()).hasClass('sky-screen-reader-only');
139
+ }
140
+ /**
141
+ * Whether file drop is required.
142
+ */
143
+ async isRequired() {
144
+ return await (await this.#label()).hasClass('sky-control-label-required');
145
+ }
146
+ /**
147
+ * Whether file drop has stacked enabled.
148
+ */
149
+ async isStacked() {
150
+ return await (await this.host()).hasClass('sky-form-field-stacked');
151
+ }
152
+ /**
153
+ * Loads a single file.
154
+ */
155
+ async loadFile(file) {
23
156
  await this.#dropFiles([file]);
24
157
  }
25
- // Consider making this public when we finalize this harness's public API.
158
+ /**
159
+ * Loads multiple files.
160
+ */
161
+ async loadFiles(files) {
162
+ return await this.#dropFiles(files);
163
+ }
26
164
  async #dropFiles(files) {
27
165
  const dropTarget = await this.#getDropTarget();
28
- const fileList = {
29
- item: (index) => files[index],
30
- length: files.length,
31
- };
166
+ const dataTransfer = new DataTransfer();
167
+ files?.forEach((file) => {
168
+ dataTransfer.items.add(file);
169
+ });
32
170
  await dropTarget.dispatchEvent('drop', {
33
- dataTransfer: {
34
- files: fileList,
35
- },
171
+ dataTransfer,
36
172
  });
37
173
  }
174
+ async #getFormErrors() {
175
+ return (await this.#formErrors())[1];
176
+ }
177
+ async #getHelpInline() {
178
+ const harness = await this.locatorForOptional(SkyHelpInlineHarness)();
179
+ if (harness) {
180
+ return harness;
181
+ }
182
+ throw Error('No help inline found.');
183
+ }
184
+ async #getLinkUpload() {
185
+ const linkUpload = await this.locatorForOptional(SkyFileDropLinkUploadHarness)();
186
+ if (linkUpload) {
187
+ return linkUpload;
188
+ }
189
+ throw new Error('Link upload cannot be found. Set `allowLinks` property to `true`.');
190
+ }
38
191
  }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLWhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvdGVzdGluZy9zcmMvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1kcm9wL2ZpbGUtZHJvcC1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSTFEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxtQkFBbUI7SUFDekQ7O09BRUc7YUFDVyxpQkFBWSxHQUFHLGVBQWUsQ0FBQztJQUU3QyxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBRTFEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLE9BQWtDO1FBRWxDLE9BQU8sa0JBQWtCLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFVO1FBQzlCLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELDBFQUEwRTtJQUMxRSxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQWE7UUFDNUIsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFL0MsTUFBTSxRQUFRLEdBQUc7WUFDZixJQUFJLEVBQUUsQ0FBQyxLQUFhLEVBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDM0MsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1NBQ3JCLENBQUM7UUFFRixNQUFNLFVBQVUsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO1lBQ3JDLFlBQVksRUFBRTtnQkFDWixLQUFLLEVBQUUsUUFBZ0M7YUFDeEM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnREYXRhLCBIYXJuZXNzUHJlZGljYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuaW1wb3J0IHsgU2t5Q29tcG9uZW50SGFybmVzcyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lGaWxlRHJvcEhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9maWxlLWRyb3AtaGFybmVzcy1maWx0ZXJzJztcblxuLyoqXG4gKiBIYXJuZXNzIGZvciBpbnRlcmFjdGluZyB3aXRoIGEgZmlsZSBkcm9wIGNvbXBvbmVudCBpbiB0ZXN0cy5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgU2t5RmlsZURyb3BIYXJuZXNzIGV4dGVuZHMgU2t5Q29tcG9uZW50SGFybmVzcyB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ3NreS1maWxlLWRyb3AnO1xuXG4gICNnZXREcm9wVGFyZ2V0ID0gdGhpcy5sb2NhdG9yRm9yKCcuc2t5LWZpbGUtZHJvcC10YXJnZXQnKTtcblxuICAvKipcbiAgICogR2V0cyBhIGBIYXJuZXNzUHJlZGljYXRlYCB0aGF0IGNhbiBiZSB1c2VkIHRvIHNlYXJjaCBmb3IgYVxuICAgKiBgU2t5RmlsZURyb3BIYXJuZXNzYCB0aGF0IG1lZXRzIGNlcnRhaW4gY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGgoXG4gICAgZmlsdGVyczogU2t5RmlsZURyb3BIYXJuZXNzRmlsdGVycyxcbiAgKTogSGFybmVzc1ByZWRpY2F0ZTxTa3lGaWxlRHJvcEhhcm5lc3M+IHtcbiAgICByZXR1cm4gU2t5RmlsZURyb3BIYXJuZXNzLmdldERhdGFTa3lJZFByZWRpY2F0ZShmaWx0ZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEcm9wcyBhIGZpbGUgb250byB0aGUgY29tcG9uZW50J3MgZHJvcCB0YXJnZXQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZHJvcEZpbGUoZmlsZTogRmlsZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuI2Ryb3BGaWxlcyhbZmlsZV0pO1xuICB9XG5cbiAgLy8gQ29uc2lkZXIgbWFraW5nIHRoaXMgcHVibGljIHdoZW4gd2UgZmluYWxpemUgdGhpcyBoYXJuZXNzJ3MgcHVibGljIEFQSS5cbiAgYXN5bmMgI2Ryb3BGaWxlcyhmaWxlczogRmlsZVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZHJvcFRhcmdldCA9IGF3YWl0IHRoaXMuI2dldERyb3BUYXJnZXQoKTtcblxuICAgIGNvbnN0IGZpbGVMaXN0ID0ge1xuICAgICAgaXRlbTogKGluZGV4OiBudW1iZXIpOiBGaWxlID0+IGZpbGVzW2luZGV4XSxcbiAgICAgIGxlbmd0aDogZmlsZXMubGVuZ3RoLFxuICAgIH07XG5cbiAgICBhd2FpdCBkcm9wVGFyZ2V0LmRpc3BhdGNoRXZlbnQoJ2Ryb3AnLCB7XG4gICAgICBkYXRhVHJhbnNmZXI6IHtcbiAgICAgICAgZmlsZXM6IGZpbGVMaXN0IGFzIHVua25vd24gYXMgRXZlbnREYXRhLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLWhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvdGVzdGluZy9zcmMvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1kcm9wL2ZpbGUtZHJvcC1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWxFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRzVFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRS9FOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGtCQUFtQixTQUFRLG1CQUFtQjtJQUN6RDs7T0FFRzthQUNXLGlCQUFZLEdBQUcsZUFBZSxDQUFDO0lBRTdDLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDMUQsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUMvQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDbkUsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUN0RCxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRXZEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLE9BQWtDO1FBRWxDLE9BQU8sa0JBQWtCLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLG1CQUFtQjtRQUM5QixPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGVBQWU7UUFDMUIsT0FBTyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMseUJBQXlCO1FBQ3BDLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDL0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLG1CQUFtQixDQUFDLElBQVk7UUFDM0MsT0FBTyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGdCQUFnQjtRQUMzQixPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsc0JBQXNCO1FBQ2pDLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLHFCQUFxQjtRQUNoQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXhFLE9BQU8sT0FBNkIsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsbUJBQW1CO1FBQzlCLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDL0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFdBQVc7UUFDdEIsT0FBTyxDQUNMLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsMEJBQTBCLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQ25FLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDWCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsWUFBWTtRQUN2QixPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsc0JBQXNCO1FBQ2pDLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLHFCQUFxQjtRQUNoQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzNELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxjQUFjLENBQUMsU0FBaUI7UUFDM0MsT0FBTyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGdCQUFnQjtRQUMzQixPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsbUJBQW1CO1FBQzlCLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxtQkFBbUI7UUFDOUIsT0FBTyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGdCQUFnQjtRQUMzQixPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsa0JBQWtCO1FBQzdCLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxhQUFhO1FBQ3hCLE9BQU8sTUFBTSxDQUNYLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLENBQ3BELENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFVBQVU7UUFDckIsT0FBTyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsU0FBUztRQUNwQixPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBVTtRQUM5QixNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBb0I7UUFDekMsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBb0I7UUFDbkMsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFJL0MsTUFBTSxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFFNUQsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3RCLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxVQUFVLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRTtZQUNyQyxZQUFZO1NBQ2IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjO1FBQ2xCLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYztRQUNsQixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7UUFFdEUsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxNQUFNLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYztRQUNsQixNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FDOUMsNEJBQTRCLENBQzdCLEVBQUUsQ0FBQztRQUVKLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FDYixtRUFBbUUsQ0FDcEUsQ0FBQztJQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudERhdGEsIEhhcm5lc3NQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lIZWxwSW5saW5lSGFybmVzcyB9IGZyb20gJ0Bza3l1eC9oZWxwLWlubGluZS90ZXN0aW5nJztcblxuaW1wb3J0IHsgU2t5Rm9ybUVycm9yc0hhcm5lc3MgfSBmcm9tICcuLi8uLi9mb3JtLWVycm9yL2Zvcm0tZXJyb3JzLWhhcm5lc3MnO1xuXG5pbXBvcnQgeyBTa3lGaWxlRHJvcEhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9maWxlLWRyb3AtaGFybmVzcy1maWx0ZXJzJztcbmltcG9ydCB7IFNreUZpbGVEcm9wTGlua1VwbG9hZEhhcm5lc3MgfSBmcm9tICcuL2ZpbGUtZHJvcC1saW5rLXVwbG9hZC1oYXJuZXNzJztcblxuLyoqXG4gKiBIYXJuZXNzIGZvciBpbnRlcmFjdGluZyB3aXRoIGEgZmlsZSBkcm9wIGNvbXBvbmVudCBpbiB0ZXN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreUZpbGVEcm9wSGFybmVzcyBleHRlbmRzIFNreUNvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdza3ktZmlsZS1kcm9wJztcblxuICAjZ2V0RHJvcFRhcmdldCA9IHRoaXMubG9jYXRvckZvcignLnNreS1maWxlLWRyb3AtdGFyZ2V0Jyk7XG4gICNpbnB1dCA9IHRoaXMubG9jYXRvckZvcignaW5wdXRbdHlwZT1cImZpbGVcIl0nKTtcbiAgI2ZpbGVVcGxvYWRCdXR0b24gPSB0aGlzLmxvY2F0b3JGb3IoJ2J1dHRvbi5za3ktZmlsZS1kcm9wLXRhcmdldCcpO1xuICAjbGFiZWwgPSB0aGlzLmxvY2F0b3JGb3IoJy5za3ktZmlsZS1kcm9wLWxhYmVsLXRleHQnKTtcbiAgI2Zvcm1FcnJvcnMgPSB0aGlzLmxvY2F0b3JGb3JBbGwoU2t5Rm9ybUVycm9yc0hhcm5lc3MpO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgYEhhcm5lc3NQcmVkaWNhdGVgIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VhcmNoIGZvciBhXG4gICAqIGBTa3lGaWxlRHJvcEhhcm5lc3NgIHRoYXQgbWVldHMgY2VydGFpbiBjcml0ZXJpYS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aChcbiAgICBmaWx0ZXJzOiBTa3lGaWxlRHJvcEhhcm5lc3NGaWx0ZXJzLFxuICApOiBIYXJuZXNzUHJlZGljYXRlPFNreUZpbGVEcm9wSGFybmVzcz4ge1xuICAgIHJldHVybiBTa3lGaWxlRHJvcEhhcm5lc3MuZ2V0RGF0YVNreUlkUHJlZGljYXRlKGZpbHRlcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsaWNrcyB0aGUgZmlsZSBkcm9wIHRhcmdldC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjbGlja0ZpbGVEcm9wVGFyZ2V0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy4jZmlsZVVwbG9hZEJ1dHRvbigpKS5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsaWNrcyB0aGUgaGVscCBpbmxpbmUgYnV0dG9uLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNsaWNrSGVscElubGluZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldEhlbHBJbmxpbmUoKSkuY2xpY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGlja3MgdGhlIGxpbmsgdXBsb2FkIGBEb25lYCBidXR0b24nLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNsaWNrTGlua1VwbG9hZERvbmVCdXR0b24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRMaW5rVXBsb2FkKCkpLmNsaWNrRG9uZUJ1dHRvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVudGVycyB0ZXh0IGludG8gdGhlIGxpbmsgdXBsb2FkIGlucHV0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGVudGVyTGlua1VwbG9hZFRleHQobGluazogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRMaW5rVXBsb2FkKCkpLmVudGVyVGV4dChsaW5rKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBhY2NlcHRlZCBmaWxlIHR5cGVzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEFjY2VwdGVkVHlwZXMoKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNpbnB1dCgpKS5nZXRBdHRyaWJ1dGUoJ2FjY2VwdCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGFyaWEtbGFiZWwgZm9yIHRoZSBmaWxlIHVwbG9hZCBidXR0b24uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0RmlsZVVwbG9hZEFyaWFMYWJlbCgpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2ZpbGVVcGxvYWRCdXR0b24oKSkuZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgaGVscCBpbmxpbmUgcG9wb3ZlciBjb250ZW50LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEhlbHBQb3BvdmVyQ29udGVudCgpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0SGVscElubGluZSgpKS5nZXRQb3BvdmVyQ29udGVudCgpO1xuXG4gICAgcmV0dXJuIGNvbnRlbnQgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGhlbHAgaW5saW5lIHBvcG92ZXIgdGl0bGUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SGVscFBvcG92ZXJUaXRsZSgpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0SGVscElubGluZSgpKS5nZXRQb3BvdmVyVGl0bGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBoaW50IHRleHQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SGludFRleHQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gKFxuICAgICAgYXdhaXQgKGF3YWl0IHRoaXMubG9jYXRvckZvcignLnNreS1maWxlLWRyb3AtaGludC10ZXh0JykoKSkudGV4dCgpXG4gICAgKS50cmltKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgbGFiZWwgdGV4dC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRMYWJlbFRleHQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gKGF3YWl0IChhd2FpdCB0aGlzLiNsYWJlbCgpKS50ZXh0KCkpLnRyaW0oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBsaW5rIHVwbG9hZCBhcmlhLWxhYmVsLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldExpbmtVcGxvYWRBcmlhTGFiZWwoKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRMaW5rVXBsb2FkKCkpLmdldEFyaWFMYWJlbCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGxpbmsgdXBsb2FkIGhpbnQgdGV4dC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRMaW5rVXBsb2FkSGludFRleHQoKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldExpbmtVcGxvYWQoKSkuZ2V0SGludFRleHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGEgY3VzdG9tIGZvcm0gZXJyb3IgaGFzIGZpcmVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGhhc0N1c3RvbUVycm9yKGVycm9yTmFtZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRGb3JtRXJyb3JzKCkpLmhhc0Vycm9yKGVycm9yTmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgZmlsZSB0eXBlIGVycm9yIGhhcyBmaXJlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBoYXNGaWxlVHlwZUVycm9yKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0Rm9ybUVycm9ycygpKS5oYXNFcnJvcignZmlsZVR5cGUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBtYXggZmlsZSBzaXplIGVycm9yIGhhcyBmaXJlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBoYXNNYXhGaWxlU2l6ZUVycm9yKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0Rm9ybUVycm9ycygpKS5oYXNFcnJvcignbWF4RmlsZVNpemUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBtaW4gZmlsZSBzaXplIGVycm9yIGhhcyBmaXJlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBoYXNNaW5GaWxlU2l6ZUVycm9yKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0Rm9ybUVycm9ycygpKS5oYXNFcnJvcignbWluRmlsZVNpemUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSByZXF1aXJlZCBlcnJvciBoYXMgZmlyZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaGFzUmVxdWlyZWRFcnJvcigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldEZvcm1FcnJvcnMoKSkuaGFzRXJyb3IoJ3JlcXVpcmVkJyk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgdmFsaWRhdGUgZXJyb3IgZnJvbSB0aGUgY3VzdG9tZXIgdmFsaWRhdGlvbiBoYXMgZmlyZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaGFzVmFsaWRhdGVGbkVycm9yKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0Rm9ybUVycm9ycygpKS5oYXNFcnJvcigndmFsaWRhdGUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGxhYmVsIHRleHQgaXMgaGlkZGVuLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzTGFiZWxIaWRkZW4oKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGF3YWl0IChcbiAgICAgIGF3YWl0IHRoaXMubG9jYXRvckZvcignbGVnZW5kLnNreS1jb250cm9sLWxhYmVsJykoKVxuICAgICkuaGFzQ2xhc3MoJ3NreS1zY3JlZW4tcmVhZGVyLW9ubHknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGZpbGUgZHJvcCBpcyByZXF1aXJlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBpc1JlcXVpcmVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy4jbGFiZWwoKSkuaGFzQ2xhc3MoJ3NreS1jb250cm9sLWxhYmVsLXJlcXVpcmVkJyk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciBmaWxlIGRyb3AgaGFzIHN0YWNrZWQgZW5hYmxlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBpc1N0YWNrZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLmhvc3QoKSkuaGFzQ2xhc3MoJ3NreS1mb3JtLWZpZWxkLXN0YWNrZWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyBhIHNpbmdsZSBmaWxlLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGxvYWRGaWxlKGZpbGU6IEZpbGUpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLiNkcm9wRmlsZXMoW2ZpbGVdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyBtdWx0aXBsZSBmaWxlcy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBsb2FkRmlsZXMoZmlsZXM6IEZpbGVbXSB8IG51bGwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy4jZHJvcEZpbGVzKGZpbGVzKTtcbiAgfVxuXG4gIGFzeW5jICNkcm9wRmlsZXMoZmlsZXM6IEZpbGVbXSB8IG51bGwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBkcm9wVGFyZ2V0ID0gYXdhaXQgdGhpcy4jZ2V0RHJvcFRhcmdldCgpO1xuXG4gICAgdHlwZSBUZXN0RGF0YVRyYW5zZmVyID0gRGF0YVRyYW5zZmVyICYgeyBba2V5OiBzdHJpbmddOiBFdmVudERhdGEgfTtcblxuICAgIGNvbnN0IGRhdGFUcmFuc2ZlciA9IG5ldyBEYXRhVHJhbnNmZXIoKSBhcyBUZXN0RGF0YVRyYW5zZmVyO1xuXG4gICAgZmlsZXM/LmZvckVhY2goKGZpbGUpID0+IHtcbiAgICAgIGRhdGFUcmFuc2Zlci5pdGVtcy5hZGQoZmlsZSk7XG4gICAgfSk7XG5cbiAgICBhd2FpdCBkcm9wVGFyZ2V0LmRpc3BhdGNoRXZlbnQoJ2Ryb3AnLCB7XG4gICAgICBkYXRhVHJhbnNmZXIsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyAjZ2V0Rm9ybUVycm9ycygpOiBQcm9taXNlPFNreUZvcm1FcnJvcnNIYXJuZXNzPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLiNmb3JtRXJyb3JzKCkpWzFdO1xuICB9XG5cbiAgYXN5bmMgI2dldEhlbHBJbmxpbmUoKTogUHJvbWlzZTxTa3lIZWxwSW5saW5lSGFybmVzcz4ge1xuICAgIGNvbnN0IGhhcm5lc3MgPSBhd2FpdCB0aGlzLmxvY2F0b3JGb3JPcHRpb25hbChTa3lIZWxwSW5saW5lSGFybmVzcykoKTtcblxuICAgIGlmIChoYXJuZXNzKSB7XG4gICAgICByZXR1cm4gaGFybmVzcztcbiAgICB9XG5cbiAgICB0aHJvdyBFcnJvcignTm8gaGVscCBpbmxpbmUgZm91bmQuJyk7XG4gIH1cblxuICBhc3luYyAjZ2V0TGlua1VwbG9hZCgpOiBQcm9taXNlPFNreUZpbGVEcm9wTGlua1VwbG9hZEhhcm5lc3M+IHtcbiAgICBjb25zdCBsaW5rVXBsb2FkID0gYXdhaXQgdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoXG4gICAgICBTa3lGaWxlRHJvcExpbmtVcGxvYWRIYXJuZXNzLFxuICAgICkoKTtcblxuICAgIGlmIChsaW5rVXBsb2FkKSB7XG4gICAgICByZXR1cm4gbGlua1VwbG9hZDtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnTGluayB1cGxvYWQgY2Fubm90IGJlIGZvdW5kLiBTZXQgYGFsbG93TGlua3NgIHByb3BlcnR5IHRvIGB0cnVlYC4nLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,47 @@
1
+ import { SkyComponentHarness } from '@skyux/core/testing';
2
+ import { SkyInputBoxHarness } from '../../input-box/input-box-harness';
3
+ import { SkyFileDropLinkUploadInputHarness } from './file-drop-link-upload-input-harness';
4
+ /**
5
+ * Harness for interacting with file drop component's link upload feature in tests.
6
+ * @internal
7
+ */
8
+ export class SkyFileDropLinkUploadHarness extends SkyComponentHarness {
9
+ /**
10
+ * @internal
11
+ */
12
+ static { this.hostSelector = '.sky-file-drop-link'; }
13
+ #input = this.locatorFor(SkyFileDropLinkUploadInputHarness);
14
+ #inputBoxHarness = this.locatorFor(SkyInputBoxHarness);
15
+ #button = this.locatorFor('button.sky-btn-primary');
16
+ /**
17
+ * Clicks the `Done` button
18
+ */
19
+ async clickDoneButton() {
20
+ if (await this.#isDoneDisabled()) {
21
+ throw new Error('Done button is disabled and cannot be clicked. Enter text to enable link upload.');
22
+ }
23
+ return await (await this.#button()).click();
24
+ }
25
+ /**
26
+ * Enters text into the link upload input.
27
+ */
28
+ async enterText(link) {
29
+ return await (await this.#input()).setValue(link);
30
+ }
31
+ /**
32
+ * Gets the link upload aria-label.
33
+ */
34
+ async getAriaLabel() {
35
+ return await (await this.#input()).getAriaLabel();
36
+ }
37
+ /**
38
+ * Gets the hint text.
39
+ */
40
+ async getHintText() {
41
+ return await (await this.#inputBoxHarness()).getHintText();
42
+ }
43
+ async #isDoneDisabled() {
44
+ return (await (await this.#button()).getAttribute('disabled')) !== null;
45
+ }
46
+ }
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLWxpbmstdXBsb2FkLWhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvdGVzdGluZy9zcmMvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1kcm9wL2ZpbGUtZHJvcC1saW5rLXVwbG9hZC1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRTFGOzs7R0FHRztBQUNILE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxtQkFBbUI7SUFDbkU7O09BRUc7YUFDVyxpQkFBWSxHQUFHLHFCQUFxQixDQUFDO0lBRW5ELE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7SUFDNUQsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3ZELE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFFcEQ7O09BRUc7SUFDSSxLQUFLLENBQUMsZUFBZTtRQUMxQixJQUFJLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7WUFDakMsTUFBTSxJQUFJLEtBQUssQ0FDYixrRkFBa0YsQ0FDbkYsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBWTtRQUNqQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsWUFBWTtRQUN2QixPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxXQUFXO1FBQ3RCLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWU7UUFDbkIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQztJQUMxRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5Q29tcG9uZW50SGFybmVzcyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lJbnB1dEJveEhhcm5lc3MgfSBmcm9tICcuLi8uLi9pbnB1dC1ib3gvaW5wdXQtYm94LWhhcm5lc3MnO1xuXG5pbXBvcnQgeyBTa3lGaWxlRHJvcExpbmtVcGxvYWRJbnB1dEhhcm5lc3MgfSBmcm9tICcuL2ZpbGUtZHJvcC1saW5rLXVwbG9hZC1pbnB1dC1oYXJuZXNzJztcblxuLyoqXG4gKiBIYXJuZXNzIGZvciBpbnRlcmFjdGluZyB3aXRoIGZpbGUgZHJvcCBjb21wb25lbnQncyBsaW5rIHVwbG9hZCBmZWF0dXJlIGluIHRlc3RzLlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBTa3lGaWxlRHJvcExpbmtVcGxvYWRIYXJuZXNzIGV4dGVuZHMgU2t5Q29tcG9uZW50SGFybmVzcyB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJy5za3ktZmlsZS1kcm9wLWxpbmsnO1xuXG4gICNpbnB1dCA9IHRoaXMubG9jYXRvckZvcihTa3lGaWxlRHJvcExpbmtVcGxvYWRJbnB1dEhhcm5lc3MpO1xuICAjaW5wdXRCb3hIYXJuZXNzID0gdGhpcy5sb2NhdG9yRm9yKFNreUlucHV0Qm94SGFybmVzcyk7XG4gICNidXR0b24gPSB0aGlzLmxvY2F0b3JGb3IoJ2J1dHRvbi5za3ktYnRuLXByaW1hcnknKTtcblxuICAvKipcbiAgICogQ2xpY2tzIHRoZSBgRG9uZWAgYnV0dG9uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xpY2tEb25lQnV0dG9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChhd2FpdCB0aGlzLiNpc0RvbmVEaXNhYmxlZCgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdEb25lIGJ1dHRvbiBpcyBkaXNhYmxlZCBhbmQgY2Fubm90IGJlIGNsaWNrZWQuIEVudGVyIHRleHQgdG8gZW5hYmxlIGxpbmsgdXBsb2FkLicsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2J1dHRvbigpKS5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVudGVycyB0ZXh0IGludG8gdGhlIGxpbmsgdXBsb2FkIGlucHV0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGVudGVyVGV4dChsaW5rOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2lucHV0KCkpLnNldFZhbHVlKGxpbmspO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGxpbmsgdXBsb2FkIGFyaWEtbGFiZWwuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0QXJpYUxhYmVsKCk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy4jaW5wdXQoKSkuZ2V0QXJpYUxhYmVsKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgaGludCB0ZXh0LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEhpbnRUZXh0KCk6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNpbnB1dEJveEhhcm5lc3MoKSkuZ2V0SGludFRleHQoKTtcbiAgfVxuXG4gIGFzeW5jICNpc0RvbmVEaXNhYmxlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gKGF3YWl0IChhd2FpdCB0aGlzLiNidXR0b24oKSkuZ2V0QXR0cmlidXRlKCdkaXNhYmxlZCcpKSAhPT0gbnVsbDtcbiAgfVxufVxuIl19
@@ -0,0 +1,17 @@
1
+ import { SkyInputHarness } from '@skyux/core/testing';
2
+ /**
3
+ * Harness to interact with the file drop link upload input harness.
4
+ */
5
+ export class SkyFileDropLinkUploadInputHarness extends SkyInputHarness {
6
+ /**
7
+ * @internal
8
+ */
9
+ static { this.hostSelector = 'input.sky-form-control'; }
10
+ /**
11
+ * Gets the input aria-label
12
+ */
13
+ async getAriaLabel() {
14
+ return await (await this.host()).getAttribute('aria-label');
15
+ }
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLWxpbmstdXBsb2FkLWlucHV0LWhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvdGVzdGluZy9zcmMvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1kcm9wL2ZpbGUtZHJvcC1saW5rLXVwbG9hZC1pbnB1dC1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RDs7R0FFRztBQUNILE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxlQUFlO0lBQ3BFOztPQUVHO2FBQ1csaUJBQVksR0FBRyx3QkFBd0IsQ0FBQztJQUV0RDs7T0FFRztJQUNJLEtBQUssQ0FBQyxZQUFZO1FBQ3ZCLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lJbnB1dEhhcm5lc3MgfSBmcm9tICdAc2t5dXgvY29yZS90ZXN0aW5nJztcblxuLyoqXG4gKiBIYXJuZXNzIHRvIGludGVyYWN0IHdpdGggdGhlIGZpbGUgZHJvcCBsaW5rIHVwbG9hZCBpbnB1dCBoYXJuZXNzLlxuICovXG5leHBvcnQgY2xhc3MgU2t5RmlsZURyb3BMaW5rVXBsb2FkSW5wdXRIYXJuZXNzIGV4dGVuZHMgU2t5SW5wdXRIYXJuZXNzIHtcbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnaW5wdXQuc2t5LWZvcm0tY29udHJvbCc7XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGlucHV0IGFyaWEtbGFiZWxcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRBcmlhTGFiZWwoKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLmhvc3QoKSkuZ2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pdGVtLWhhcm5lc3MtZmlsdGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy90ZXN0aW5nL3NyYy9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWRyb3AvZmlsZS1pdGVtLWhhcm5lc3MtZmlsdGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5SGFybmVzc0ZpbHRlcnMgfSBmcm9tICdAc2t5dXgvY29yZS90ZXN0aW5nJztcblxuLyoqXG4gKiBBIHNldCBvZiBjcml0ZXJpYSB0aGF0IGNhbiBiZSB1c2VkIHRvIGZpbHRlciBhIGxpc3Qgb2YgYFNreUZpbGVJdGVtSGFybmVzc2AgaW5zdGFuY2VzLlxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWludGVyZmFjZSwgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LW9iamVjdC10eXBlXG5leHBvcnQgaW50ZXJmYWNlIFNreUZpbGVJdGVtSGFybmVzc0ZpbHRlcnMgZXh0ZW5kcyBTa3lIYXJuZXNzRmlsdGVycyB7XG4gIC8qKlxuICAgKiBGaW5kcyBmaWxlcyB3aG9zZSBmaWxlIG5hbWUgbWF0Y2hlcyB0aGlzIHZhbHVlLlxuICAgKi9cbiAgZmlsZU5hbWU6IHN0cmluZztcbn1cbiJdfQ==
@@ -0,0 +1,40 @@
1
+ import { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
2
+ /**
3
+ * Harness for interacting with a file item component in tests.
4
+ */
5
+ export class SkyFileItemHarness extends ComponentHarness {
6
+ /**
7
+ * @internal
8
+ */
9
+ static { this.hostSelector = 'sky-file-item'; }
10
+ /**
11
+ * Gets a `HarnessPredicate` that can be used to search for a
12
+ * `SkyFileItemHarness` that meets certain criteria.
13
+ */
14
+ static with(filters) {
15
+ return new HarnessPredicate(SkyFileItemHarness, filters).addOption('fileName', filters.fileName, async (harness, fileName) => {
16
+ const harnessFileName = await harness.getFileName();
17
+ return await HarnessPredicate.stringMatches(harnessFileName, fileName);
18
+ });
19
+ }
20
+ /**
21
+ * Clicks the delete button.
22
+ */
23
+ async clickDeleteButton() {
24
+ return await (await this.locatorFor('.sky-file-item-btn-delete')()).click();
25
+ }
26
+ /**
27
+ * Gets the file name.
28
+ */
29
+ async getFileName() {
30
+ return await (await this.locatorFor('.sky-file-item-name')()).text();
31
+ }
32
+ /**
33
+ * Gets the file size.
34
+ */
35
+ async getFileSize() {
36
+ const size = await (await this.locatorFor('.sky-file-item-size')()).text();
37
+ return size.substring(1, size.length - 1);
38
+ }
39
+ }
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pdGVtLWhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvdGVzdGluZy9zcmMvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1kcm9wL2ZpbGUtaXRlbS1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSTFFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGdCQUFnQjtJQUN0RDs7T0FFRzthQUNXLGlCQUFZLEdBQUcsZUFBZSxDQUFDO0lBRTdDOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLE9BQWtDO1FBRWxDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQ2hFLFVBQVUsRUFDVixPQUFPLENBQUMsUUFBUSxFQUNoQixLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFO1lBQzFCLE1BQU0sZUFBZSxHQUFHLE1BQU0sT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3BELE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3pFLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGlCQUFpQjtRQUM1QixPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDOUUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFdBQVc7UUFDdEIsT0FBTyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxXQUFXO1FBQ3RCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRIYXJuZXNzLCBIYXJuZXNzUHJlZGljYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lGaWxlSXRlbUhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9maWxlLWl0ZW0taGFybmVzcy1maWx0ZXJzJztcblxuLyoqXG4gKiBIYXJuZXNzIGZvciBpbnRlcmFjdGluZyB3aXRoIGEgZmlsZSBpdGVtIGNvbXBvbmVudCBpbiB0ZXN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreUZpbGVJdGVtSGFybmVzcyBleHRlbmRzIENvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdza3ktZmlsZS1pdGVtJztcblxuICAvKipcbiAgICogR2V0cyBhIGBIYXJuZXNzUHJlZGljYXRlYCB0aGF0IGNhbiBiZSB1c2VkIHRvIHNlYXJjaCBmb3IgYVxuICAgKiBgU2t5RmlsZUl0ZW1IYXJuZXNzYCB0aGF0IG1lZXRzIGNlcnRhaW4gY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGgoXG4gICAgZmlsdGVyczogU2t5RmlsZUl0ZW1IYXJuZXNzRmlsdGVycyxcbiAgKTogSGFybmVzc1ByZWRpY2F0ZTxTa3lGaWxlSXRlbUhhcm5lc3M+IHtcbiAgICByZXR1cm4gbmV3IEhhcm5lc3NQcmVkaWNhdGUoU2t5RmlsZUl0ZW1IYXJuZXNzLCBmaWx0ZXJzKS5hZGRPcHRpb24oXG4gICAgICAnZmlsZU5hbWUnLFxuICAgICAgZmlsdGVycy5maWxlTmFtZSxcbiAgICAgIGFzeW5jIChoYXJuZXNzLCBmaWxlTmFtZSkgPT4ge1xuICAgICAgICBjb25zdCBoYXJuZXNzRmlsZU5hbWUgPSBhd2FpdCBoYXJuZXNzLmdldEZpbGVOYW1lKCk7XG4gICAgICAgIHJldHVybiBhd2FpdCBIYXJuZXNzUHJlZGljYXRlLnN0cmluZ01hdGNoZXMoaGFybmVzc0ZpbGVOYW1lLCBmaWxlTmFtZSk7XG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2xpY2tzIHRoZSBkZWxldGUgYnV0dG9uLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNsaWNrRGVsZXRlQnV0dG9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy5sb2NhdG9yRm9yKCcuc2t5LWZpbGUtaXRlbS1idG4tZGVsZXRlJykoKSkuY2xpY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBmaWxlIG5hbWUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0RmlsZU5hbWUoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMubG9jYXRvckZvcignLnNreS1maWxlLWl0ZW0tbmFtZScpKCkpLnRleHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBmaWxlIHNpemUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0RmlsZVNpemUoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBzaXplID0gYXdhaXQgKGF3YWl0IHRoaXMubG9jYXRvckZvcignLnNreS1maWxlLWl0ZW0tc2l6ZScpKCkpLnRleHQoKTtcbiAgICByZXR1cm4gc2l6ZS5zdWJzdHJpbmcoMSwgc2l6ZS5sZW5ndGggLSAxKTtcbiAgfVxufVxuIl19
@@ -7,6 +7,7 @@ export { SkyCheckboxLabelHarness } from './modules/checkbox/checkbox-label-harne
7
7
  export { SkyFileAttachmentHarness } from './modules/file-attachment/file-attachment/file-attachment-harness';
8
8
  export { SkyFileDropHarness } from './modules/file-attachment/file-drop/file-drop-harness';
9
9
  export { provideSkyFileAttachmentTesting } from './modules/file-attachment/shared/provide-file-attachment-testing';
10
+ export { SkyFileItemHarness } from './modules/file-attachment/file-drop/file-item-harness';
10
11
  export { SkyFormErrorsHarness } from './modules/form-error/form-errors-harness';
11
12
  export { SkyFormErrorHarness } from './modules/form-error/form-error-harness';
12
13
  export { SkyFieldGroupHarness } from './modules/field-group/field-group-harness';
@@ -14,4 +15,4 @@ export { SkyRadioFixture } from './legacy/radio-fixture';
14
15
  export { SkyRadioGroupHarness } from './modules/radio/radio-group-harness';
15
16
  export { SkyRadioHarness } from './modules/radio/radio-harness';
16
17
  export { SkyRadioLabelHarness } from './modules/radio/radio-label-harness';
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy90ZXN0aW5nL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBR3RILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXpFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRXBGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBRzdHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRTNGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBRW5ILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBR2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRzlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBR2pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBTa3lJbnB1dEJveEhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvaW5wdXQtYm94L2lucHV0LWJveC1oYXJuZXNzJztcbmV4cG9ydCB7IFNreUlucHV0Qm94SGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvaW5wdXQtYm94L2lucHV0LWJveC1oYXJuZXNzLWZpbHRlcnMnO1xuXG5leHBvcnQgeyBTa3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9ySGFybmVzcyB9IGZyb20gJy4vbW9kdWxlcy9jaGFyYWN0ZXItY291bnRlci9jaGFyYWN0ZXItY291bnRlci1pbmRpY2F0b3ItaGFybmVzcyc7XG5leHBvcnQgeyBTa3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9ySGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvY2hhcmFjdGVyLWNvdW50ZXIvY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLWhhcm5lc3MtZmlsdGVycyc7XG5cbmV4cG9ydCB7IFNreUNoZWNrYm94Rml4dHVyZSB9IGZyb20gJy4vbGVnYWN5L2NoZWNrYm94LWZpeHR1cmUnO1xuZXhwb3J0IHsgU2t5Q2hlY2tib3hHcm91cEhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvY2hlY2tib3gvY2hlY2tib3gtZ3JvdXAtaGFybmVzcyc7XG5leHBvcnQgeyBTa3lDaGVja2JveEdyb3VwSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvY2hlY2tib3gvY2hlY2tib3gtZ3JvdXAtaGFybmVzcy1maWx0ZXJzJztcbmV4cG9ydCB7IFNreUNoZWNrYm94SGFybmVzcyB9IGZyb20gJy4vbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC1oYXJuZXNzJztcbmV4cG9ydCB7IFNreUNoZWNrYm94SGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvY2hlY2tib3gvY2hlY2tib3gtaGFybmVzcy1maWx0ZXJzJztcbmV4cG9ydCB7IFNreUNoZWNrYm94TGFiZWxIYXJuZXNzIH0gZnJvbSAnLi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94LWxhYmVsLWhhcm5lc3MnO1xuXG5leHBvcnQgeyBTa3lGaWxlQXR0YWNobWVudEhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnQtaGFybmVzcyc7XG5leHBvcnQgeyBTa3lGaWxlQXR0YWNobWVudEhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnQvZmlsZS1hdHRhY2htZW50LWhhcm5lc3MtZmlsdGVycyc7XG5cbmV4cG9ydCB7IFNreUZpbGVEcm9wSGFybmVzcyB9IGZyb20gJy4vbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1kcm9wL2ZpbGUtZHJvcC1oYXJuZXNzJztcbmV4cG9ydCB7IFNreUZpbGVEcm9wSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtZHJvcC9maWxlLWRyb3AtaGFybmVzcy1maWx0ZXJzJztcbmV4cG9ydCB7IHByb3ZpZGVTa3lGaWxlQXR0YWNobWVudFRlc3RpbmcgfSBmcm9tICcuL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L3NoYXJlZC9wcm92aWRlLWZpbGUtYXR0YWNobWVudC10ZXN0aW5nJztcblxuZXhwb3J0IHsgU2t5Rm9ybUVycm9yc0hhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvZm9ybS1lcnJvci9mb3JtLWVycm9ycy1oYXJuZXNzJztcbmV4cG9ydCB7IFNreUZvcm1FcnJvcnNIYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vbW9kdWxlcy9mb3JtLWVycm9yL2Zvcm0tZXJyb3JzLWhhcm5lc3MuZmlsdGVycyc7XG5cbmV4cG9ydCB7IFNreUZvcm1FcnJvckhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvZm9ybS1lcnJvci9mb3JtLWVycm9yLWhhcm5lc3MnO1xuZXhwb3J0IHsgU2t5Rm9ybUVycm9ySGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvZm9ybS1lcnJvci9mb3JtLWVycm9yLWhhcm5lc3MuZmlsdGVycyc7XG5cbmV4cG9ydCB7IFNreUZpZWxkR3JvdXBIYXJuZXNzIH0gZnJvbSAnLi9tb2R1bGVzL2ZpZWxkLWdyb3VwL2ZpZWxkLWdyb3VwLWhhcm5lc3MnO1xuZXhwb3J0IHsgU2t5RmllbGRHcm91cEhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9tb2R1bGVzL2ZpZWxkLWdyb3VwL2ZpZWxkLWdyb3VwLWhhcm5lc3MtZmlsdGVycyc7XG5cbmV4cG9ydCB7IFNreVJhZGlvRml4dHVyZSB9IGZyb20gJy4vbGVnYWN5L3JhZGlvLWZpeHR1cmUnO1xuZXhwb3J0IHsgU2t5UmFkaW9Hcm91cEhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvcmFkaW8vcmFkaW8tZ3JvdXAtaGFybmVzcyc7XG5leHBvcnQgeyBTa3lSYWRpb0dyb3VwSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvcmFkaW8vcmFkaW8tZ3JvdXAtaGFybmVzcy1maWx0ZXJzJztcbmV4cG9ydCB7IFNreVJhZGlvSGFybmVzcyB9IGZyb20gJy4vbW9kdWxlcy9yYWRpby9yYWRpby1oYXJuZXNzJztcbmV4cG9ydCB7IFNreVJhZGlvSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvcmFkaW8vcmFkaW8taGFybmVzcy1maWx0ZXJzJztcbmV4cG9ydCB7IFNreVJhZGlvTGFiZWxIYXJuZXNzIH0gZnJvbSAnLi9tb2R1bGVzL3JhZGlvL3JhZGlvLWxhYmVsLWhhcm5lc3MnO1xuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy90ZXN0aW5nL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBR3RILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXpFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRXBGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBRzdHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRTNGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRzNGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBR2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRzlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBR2pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBTa3lJbnB1dEJveEhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvaW5wdXQtYm94L2lucHV0LWJveC1oYXJuZXNzJztcbmV4cG9ydCB7IFNreUlucHV0Qm94SGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvaW5wdXQtYm94L2lucHV0LWJveC1oYXJuZXNzLWZpbHRlcnMnO1xuXG5leHBvcnQgeyBTa3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9ySGFybmVzcyB9IGZyb20gJy4vbW9kdWxlcy9jaGFyYWN0ZXItY291bnRlci9jaGFyYWN0ZXItY291bnRlci1pbmRpY2F0b3ItaGFybmVzcyc7XG5leHBvcnQgeyBTa3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9ySGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvY2hhcmFjdGVyLWNvdW50ZXIvY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLWhhcm5lc3MtZmlsdGVycyc7XG5cbmV4cG9ydCB7IFNreUNoZWNrYm94Rml4dHVyZSB9IGZyb20gJy4vbGVnYWN5L2NoZWNrYm94LWZpeHR1cmUnO1xuZXhwb3J0IHsgU2t5Q2hlY2tib3hHcm91cEhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvY2hlY2tib3gvY2hlY2tib3gtZ3JvdXAtaGFybmVzcyc7XG5leHBvcnQgeyBTa3lDaGVja2JveEdyb3VwSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvY2hlY2tib3gvY2hlY2tib3gtZ3JvdXAtaGFybmVzcy1maWx0ZXJzJztcbmV4cG9ydCB7IFNreUNoZWNrYm94SGFybmVzcyB9IGZyb20gJy4vbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC1oYXJuZXNzJztcbmV4cG9ydCB7IFNreUNoZWNrYm94SGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvY2hlY2tib3gvY2hlY2tib3gtaGFybmVzcy1maWx0ZXJzJztcbmV4cG9ydCB7IFNreUNoZWNrYm94TGFiZWxIYXJuZXNzIH0gZnJvbSAnLi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94LWxhYmVsLWhhcm5lc3MnO1xuXG5leHBvcnQgeyBTa3lGaWxlQXR0YWNobWVudEhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnQtaGFybmVzcyc7XG5leHBvcnQgeyBTa3lGaWxlQXR0YWNobWVudEhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnQvZmlsZS1hdHRhY2htZW50LWhhcm5lc3MtZmlsdGVycyc7XG5cbmV4cG9ydCB7IFNreUZpbGVEcm9wSGFybmVzcyB9IGZyb20gJy4vbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1kcm9wL2ZpbGUtZHJvcC1oYXJuZXNzJztcbmV4cG9ydCB7IFNreUZpbGVEcm9wSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtZHJvcC9maWxlLWRyb3AtaGFybmVzcy1maWx0ZXJzJztcbmV4cG9ydCB7IHByb3ZpZGVTa3lGaWxlQXR0YWNobWVudFRlc3RpbmcgfSBmcm9tICcuL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L3NoYXJlZC9wcm92aWRlLWZpbGUtYXR0YWNobWVudC10ZXN0aW5nJztcbmV4cG9ydCB7IFNreUZpbGVJdGVtSGFybmVzcyB9IGZyb20gJy4vbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1kcm9wL2ZpbGUtaXRlbS1oYXJuZXNzJztcbmV4cG9ydCB7IFNreUZpbGVJdGVtSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtZHJvcC9maWxlLWl0ZW0taGFybmVzcy1maWx0ZXJzJztcblxuZXhwb3J0IHsgU2t5Rm9ybUVycm9yc0hhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvZm9ybS1lcnJvci9mb3JtLWVycm9ycy1oYXJuZXNzJztcbmV4cG9ydCB7IFNreUZvcm1FcnJvcnNIYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vbW9kdWxlcy9mb3JtLWVycm9yL2Zvcm0tZXJyb3JzLWhhcm5lc3MuZmlsdGVycyc7XG5cbmV4cG9ydCB7IFNreUZvcm1FcnJvckhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvZm9ybS1lcnJvci9mb3JtLWVycm9yLWhhcm5lc3MnO1xuZXhwb3J0IHsgU2t5Rm9ybUVycm9ySGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvZm9ybS1lcnJvci9mb3JtLWVycm9yLWhhcm5lc3MuZmlsdGVycyc7XG5cbmV4cG9ydCB7IFNreUZpZWxkR3JvdXBIYXJuZXNzIH0gZnJvbSAnLi9tb2R1bGVzL2ZpZWxkLWdyb3VwL2ZpZWxkLWdyb3VwLWhhcm5lc3MnO1xuZXhwb3J0IHsgU2t5RmllbGRHcm91cEhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9tb2R1bGVzL2ZpZWxkLWdyb3VwL2ZpZWxkLWdyb3VwLWhhcm5lc3MtZmlsdGVycyc7XG5cbmV4cG9ydCB7IFNreVJhZGlvRml4dHVyZSB9IGZyb20gJy4vbGVnYWN5L3JhZGlvLWZpeHR1cmUnO1xuZXhwb3J0IHsgU2t5UmFkaW9Hcm91cEhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvcmFkaW8vcmFkaW8tZ3JvdXAtaGFybmVzcyc7XG5leHBvcnQgeyBTa3lSYWRpb0dyb3VwSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvcmFkaW8vcmFkaW8tZ3JvdXAtaGFybmVzcy1maWx0ZXJzJztcbmV4cG9ydCB7IFNreVJhZGlvSGFybmVzcyB9IGZyb20gJy4vbW9kdWxlcy9yYWRpby9yYWRpby1oYXJuZXNzJztcbmV4cG9ydCB7IFNreVJhZGlvSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvcmFkaW8vcmFkaW8taGFybmVzcy1maWx0ZXJzJztcbmV4cG9ydCB7IFNreVJhZGlvTGFiZWxIYXJuZXNzIH0gZnJvbSAnLi9tb2R1bGVzL3JhZGlvL3JhZGlvLWxhYmVsLWhhcm5lc3MnO1xuIl19