@skyux/forms 11.27.0 → 11.28.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.
- package/documentation.json +5497 -3711
- package/esm2022/lib/modules/file-attachment/file-attachment/file-attachment.component.mjs +24 -16
- package/esm2022/testing/modules/file-attachment/file-attachment/file-attachment-harness-filters.mjs +2 -0
- package/esm2022/testing/modules/file-attachment/file-attachment/file-attachment-harness.mjs +193 -0
- package/esm2022/testing/modules/file-attachment/file-drop/file-drop-harness.mjs +2 -8
- package/esm2022/testing/modules/file-attachment/shared/provide-file-attachment-testing.mjs +14 -0
- package/esm2022/testing/public-api.mjs +3 -1
- package/fesm2022/skyux-forms-testing.mjs +206 -9
- package/fesm2022/skyux-forms-testing.mjs.map +1 -1
- package/fesm2022/skyux-forms.mjs +23 -15
- package/fesm2022/skyux-forms.mjs.map +1 -1
- package/lib/modules/file-attachment/file-attachment/file-attachment.component.d.ts +1 -1
- package/package.json +9 -9
- package/testing/modules/file-attachment/file-attachment/file-attachment-harness-filters.d.ts +7 -0
- package/testing/modules/file-attachment/file-attachment/file-attachment-harness.d.ts +101 -0
- package/testing/modules/file-attachment/shared/provide-file-attachment-testing.d.ts +11 -0
- package/testing/public-api.d.ts +3 -0
|
@@ -0,0 +1,193 @@
|
|
|
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
|
+
/**
|
|
5
|
+
* Harness for interacting with a file attachment component in tests.
|
|
6
|
+
*/
|
|
7
|
+
export class SkyFileAttachmentHarness extends SkyComponentHarness {
|
|
8
|
+
/**
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
static { this.hostSelector = 'sky-file-attachment'; }
|
|
12
|
+
#getButton = this.locatorFor('button.sky-file-attachment-btn');
|
|
13
|
+
#getLabel = this.locatorFor('.sky-control-label');
|
|
14
|
+
#input = this.locatorFor('input[type="file"]');
|
|
15
|
+
/**
|
|
16
|
+
* Gets a `HarnessPredicate` that can be used to search for a
|
|
17
|
+
* `SkyFileAttachmentHarness` that meets certain criteria.
|
|
18
|
+
*/
|
|
19
|
+
static with(filters) {
|
|
20
|
+
return SkyFileAttachmentHarness.getDataSkyIdPredicate(filters);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Clicks the attach file button if it is visible.
|
|
24
|
+
*/
|
|
25
|
+
async clickAttachFileButton() {
|
|
26
|
+
try {
|
|
27
|
+
const button = await this.#getButton();
|
|
28
|
+
if ((await button.text()).trim() === 'Replace file') {
|
|
29
|
+
throw new Error();
|
|
30
|
+
}
|
|
31
|
+
return await button.click();
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
throw new Error('Cannot click Attach file button, there is currently a file attached.');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Clicks the help inline button.
|
|
39
|
+
*/
|
|
40
|
+
async clickHelpInline() {
|
|
41
|
+
return await (await this.#getHelpInline()).click();
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Clicks the replace file button in default theme.
|
|
45
|
+
*/
|
|
46
|
+
async clickReplaceFileButton() {
|
|
47
|
+
try {
|
|
48
|
+
const button = await this.#getButton();
|
|
49
|
+
if ((await button.text()).trim() !== 'Replace file') {
|
|
50
|
+
throw new Error();
|
|
51
|
+
}
|
|
52
|
+
return await button.click();
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
throw new Error('Cannot click Replace file button, it is not visible.');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Clicks the attached file to download it.
|
|
60
|
+
*/
|
|
61
|
+
async clickAttachedFile() {
|
|
62
|
+
try {
|
|
63
|
+
const file = await this.locatorFor('a')();
|
|
64
|
+
return await file.click();
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
throw new Error('Unable to find the attached file.');
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Clicks the attached file's delete button.
|
|
72
|
+
*/
|
|
73
|
+
async clickAttachedFileDeleteButton() {
|
|
74
|
+
try {
|
|
75
|
+
const deleteButton = await this.locatorFor('button.sky-file-attachment-delete')();
|
|
76
|
+
return await deleteButton.click();
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
throw new Error("Unable to find attached file's delete button. Check if a file is attached.");
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Gets the accepted file types.
|
|
84
|
+
*/
|
|
85
|
+
async getAcceptedTypes() {
|
|
86
|
+
return await (await this.#input()).getAttribute('accept');
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Gets the help inline popover content.
|
|
90
|
+
*/
|
|
91
|
+
async getHelpPopoverContent() {
|
|
92
|
+
const content = await (await this.#getHelpInline()).getPopoverContent();
|
|
93
|
+
return content;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Gets the help inline popover title.
|
|
97
|
+
*/
|
|
98
|
+
async getHelpPopoverTitle() {
|
|
99
|
+
return await (await this.#getHelpInline()).getPopoverTitle();
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Gets the hint text.
|
|
103
|
+
*/
|
|
104
|
+
async getHintText() {
|
|
105
|
+
return (await (await this.locatorFor('.sky-file-attachment-hint-text')()).text()).trim();
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Gets the file attachment label.
|
|
109
|
+
*/
|
|
110
|
+
async getLabelText() {
|
|
111
|
+
return (await (await this.#getLabel()).text()).trim();
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Whether a custom error has fired.
|
|
115
|
+
*/
|
|
116
|
+
async hasCustomError(errorName) {
|
|
117
|
+
return await (await this.#getFormErrors())?.hasError(errorName);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Whether the wrong file type error has fired.
|
|
121
|
+
*/
|
|
122
|
+
async hasFileTypeError() {
|
|
123
|
+
return await (await this.#getFormErrors())?.hasError('fileType');
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Whether the max file size error has fired.
|
|
127
|
+
*/
|
|
128
|
+
async hasMaxFileSizeError() {
|
|
129
|
+
return await (await this.#getFormErrors())?.hasError('maxFileSize');
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Whether the min file size error has fired.
|
|
133
|
+
*/
|
|
134
|
+
async hasMinFileSizeError() {
|
|
135
|
+
return await (await this.#getFormErrors())?.hasError('minFileSize');
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Whether the required error has fired.
|
|
139
|
+
*/
|
|
140
|
+
async hasRequiredError() {
|
|
141
|
+
return await (await this.#getFormErrors())?.hasError('required');
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Whether file attachment is disabled.
|
|
145
|
+
*/
|
|
146
|
+
async isDisabled() {
|
|
147
|
+
return (await (await this.#getButton()).getAttribute('disabled')) !== null;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Whether file attachment is required.
|
|
151
|
+
*/
|
|
152
|
+
async isRequired() {
|
|
153
|
+
return await (await this.#getLabel()).hasClass('sky-control-label-required');
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Whether file attachment has stacked enabled.
|
|
157
|
+
*/
|
|
158
|
+
async isStacked() {
|
|
159
|
+
return await (await this.host()).hasClass('sky-form-field-stacked');
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Attaches a file.
|
|
163
|
+
* Be sure to include `provideSkyFileReaderTesting` as a provider when calling this function in tests.
|
|
164
|
+
* @example
|
|
165
|
+
* ```typescript
|
|
166
|
+
* TestBed.configureTestingModule({
|
|
167
|
+
* providers: [provideSkyFileReaderTesting()]
|
|
168
|
+
* });
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
171
|
+
async attachFile(file) {
|
|
172
|
+
return await this.#dropFile(file);
|
|
173
|
+
}
|
|
174
|
+
async #dropFile(file) {
|
|
175
|
+
const attachLocation = await this.locatorFor('.sky-file-attachment-upload')();
|
|
176
|
+
const dataTransfer = new DataTransfer();
|
|
177
|
+
dataTransfer.items.add(file);
|
|
178
|
+
return await attachLocation.dispatchEvent('drop', {
|
|
179
|
+
dataTransfer,
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
async #getFormErrors() {
|
|
183
|
+
return await this.locatorFor(SkyFormErrorsHarness)();
|
|
184
|
+
}
|
|
185
|
+
async #getHelpInline() {
|
|
186
|
+
const harness = await this.locatorForOptional(SkyHelpInlineHarness)();
|
|
187
|
+
if (harness) {
|
|
188
|
+
return harness;
|
|
189
|
+
}
|
|
190
|
+
throw Error('No help inline found.');
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1hdHRhY2htZW50LWhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvdGVzdGluZy9zcmMvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1hdHRhY2htZW50L2ZpbGUtYXR0YWNobWVudC1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWxFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBTTVFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHdCQUF5QixTQUFRLG1CQUFtQjtJQUMvRDs7T0FFRzthQUNXLGlCQUFZLEdBQUcscUJBQXFCLENBQUM7SUFFbkQsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUMvRCxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFL0M7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FDaEIsT0FBd0M7UUFFeEMsT0FBTyx3QkFBd0IsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMscUJBQXFCO1FBQ2hDLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLGNBQWMsRUFBRSxDQUFDO2dCQUNw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M0MsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFNBQVM7UUFDcEIsT0FBTyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFVO1FBQ2hDLE9BQU8sTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLElBQVU7UUFDeEIsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUMxQyw2QkFBNkIsQ0FDOUIsRUFBRSxDQUFDO1FBRUosTUFBTSxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFDNUQsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFN0IsT0FBTyxNQUFNLGNBQWMsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO1lBQ2hELFlBQVk7U0FDYixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWM7UUFDbEIsT0FBTyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYztRQUNsQixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7UUFFdEUsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxNQUFNLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudERhdGEsIEhhcm5lc3NQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lDb21wb25lbnRIYXJuZXNzIH0gZnJvbSAnQHNreXV4L2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBTa3lIZWxwSW5saW5lSGFybmVzcyB9IGZyb20gJ0Bza3l1eC9oZWxwLWlubGluZS90ZXN0aW5nJztcblxuaW1wb3J0IHsgU2t5Rm9ybUVycm9yc0hhcm5lc3MgfSBmcm9tICcuLi8uLi9mb3JtLWVycm9yL2Zvcm0tZXJyb3JzLWhhcm5lc3MnO1xuXG5pbXBvcnQgeyBTa3lGaWxlQXR0YWNobWVudEhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9maWxlLWF0dGFjaG1lbnQtaGFybmVzcy1maWx0ZXJzJztcblxudHlwZSBUZXN0RGF0YVRyYW5zZmVyID0gRGF0YVRyYW5zZmVyICYgeyBba2V5OiBzdHJpbmddOiBFdmVudERhdGEgfTtcblxuLyoqXG4gKiBIYXJuZXNzIGZvciBpbnRlcmFjdGluZyB3aXRoIGEgZmlsZSBhdHRhY2htZW50IGNvbXBvbmVudCBpbiB0ZXN0cy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreUZpbGVBdHRhY2htZW50SGFybmVzcyBleHRlbmRzIFNreUNvbXBvbmVudEhhcm5lc3Mge1xuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhvc3RTZWxlY3RvciA9ICdza3ktZmlsZS1hdHRhY2htZW50JztcblxuICAjZ2V0QnV0dG9uID0gdGhpcy5sb2NhdG9yRm9yKCdidXR0b24uc2t5LWZpbGUtYXR0YWNobWVudC1idG4nKTtcbiAgI2dldExhYmVsID0gdGhpcy5sb2NhdG9yRm9yKCcuc2t5LWNvbnRyb2wtbGFiZWwnKTtcbiAgI2lucHV0ID0gdGhpcy5sb2NhdG9yRm9yKCdpbnB1dFt0eXBlPVwiZmlsZVwiXScpO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgYEhhcm5lc3NQcmVkaWNhdGVgIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VhcmNoIGZvciBhXG4gICAqIGBTa3lGaWxlQXR0YWNobWVudEhhcm5lc3NgIHRoYXQgbWVldHMgY2VydGFpbiBjcml0ZXJpYS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aChcbiAgICBmaWx0ZXJzOiBTa3lGaWxlQXR0YWNobWVudEhhcm5lc3NGaWx0ZXJzLFxuICApOiBIYXJuZXNzUHJlZGljYXRlPFNreUZpbGVBdHRhY2htZW50SGFybmVzcz4ge1xuICAgIHJldHVybiBTa3lGaWxlQXR0YWNobWVudEhhcm5lc3MuZ2V0RGF0YVNreUlkUHJlZGljYXRlKGZpbHRlcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsaWNrcyB0aGUgYXR0YWNoIGZpbGUgYnV0dG9uIGlmIGl0IGlzIHZpc2libGUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xpY2tBdHRhY2hGaWxlQnV0dG9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBidXR0b24gPSBhd2FpdCB0aGlzLiNnZXRCdXR0b24oKTtcbiAgICAgIGlmICgoYXdhaXQgYnV0dG9uLnRleHQoKSkudHJpbSgpID09PSAnUmVwbGFjZSBmaWxlJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhd2FpdCBidXR0b24uY2xpY2soKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Nhbm5vdCBjbGljayBBdHRhY2ggZmlsZSBidXR0b24sIHRoZXJlIGlzIGN1cnJlbnRseSBhIGZpbGUgYXR0YWNoZWQuJyxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsaWNrcyB0aGUgaGVscCBpbmxpbmUgYnV0dG9uLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNsaWNrSGVscElubGluZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldEhlbHBJbmxpbmUoKSkuY2xpY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGlja3MgdGhlIHJlcGxhY2UgZmlsZSBidXR0b24gaW4gZGVmYXVsdCB0aGVtZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBjbGlja1JlcGxhY2VGaWxlQnV0dG9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBidXR0b24gPSBhd2FpdCB0aGlzLiNnZXRCdXR0b24oKTtcbiAgICAgIGlmICgoYXdhaXQgYnV0dG9uLnRleHQoKSkudHJpbSgpICE9PSAnUmVwbGFjZSBmaWxlJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhd2FpdCBidXR0b24uY2xpY2soKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGNsaWNrIFJlcGxhY2UgZmlsZSBidXR0b24sIGl0IGlzIG5vdCB2aXNpYmxlLicpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbGlja3MgdGhlIGF0dGFjaGVkIGZpbGUgdG8gZG93bmxvYWQgaXQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xpY2tBdHRhY2hlZEZpbGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGZpbGUgPSBhd2FpdCB0aGlzLmxvY2F0b3JGb3IoJ2EnKSgpO1xuICAgICAgcmV0dXJuIGF3YWl0IGZpbGUuY2xpY2soKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIGZpbmQgdGhlIGF0dGFjaGVkIGZpbGUuJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsaWNrcyB0aGUgYXR0YWNoZWQgZmlsZSdzIGRlbGV0ZSBidXR0b24uXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xpY2tBdHRhY2hlZEZpbGVEZWxldGVCdXR0b24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRlbGV0ZUJ1dHRvbiA9IGF3YWl0IHRoaXMubG9jYXRvckZvcihcbiAgICAgICAgJ2J1dHRvbi5za3ktZmlsZS1hdHRhY2htZW50LWRlbGV0ZScsXG4gICAgICApKCk7XG4gICAgICByZXR1cm4gYXdhaXQgZGVsZXRlQnV0dG9uLmNsaWNrKCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiVW5hYmxlIHRvIGZpbmQgYXR0YWNoZWQgZmlsZSdzIGRlbGV0ZSBidXR0b24uIENoZWNrIGlmIGEgZmlsZSBpcyBhdHRhY2hlZC5cIixcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGFjY2VwdGVkIGZpbGUgdHlwZXMuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0QWNjZXB0ZWRUeXBlcygpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2lucHV0KCkpLmdldEF0dHJpYnV0ZSgnYWNjZXB0Jyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgaGVscCBpbmxpbmUgcG9wb3ZlciBjb250ZW50LlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldEhlbHBQb3BvdmVyQ29udGVudCgpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0SGVscElubGluZSgpKS5nZXRQb3BvdmVyQ29udGVudCgpO1xuXG4gICAgcmV0dXJuIGNvbnRlbnQgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGhlbHAgaW5saW5lIHBvcG92ZXIgdGl0bGUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SGVscFBvcG92ZXJUaXRsZSgpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0SGVscElubGluZSgpKS5nZXRQb3BvdmVyVGl0bGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBoaW50IHRleHQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0SGludFRleHQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gKFxuICAgICAgYXdhaXQgKGF3YWl0IHRoaXMubG9jYXRvckZvcignLnNreS1maWxlLWF0dGFjaG1lbnQtaGludC10ZXh0JykoKSkudGV4dCgpXG4gICAgKS50cmltKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZmlsZSBhdHRhY2htZW50IGxhYmVsLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldExhYmVsVGV4dCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiAoYXdhaXQgKGF3YWl0IHRoaXMuI2dldExhYmVsKCkpLnRleHQoKSkudHJpbSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYSBjdXN0b20gZXJyb3IgaGFzIGZpcmVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGhhc0N1c3RvbUVycm9yKGVycm9yTmFtZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRGb3JtRXJyb3JzKCkpPy5oYXNFcnJvcihlcnJvck5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHdyb25nIGZpbGUgdHlwZSBlcnJvciBoYXMgZmlyZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaGFzRmlsZVR5cGVFcnJvcigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gYXdhaXQgKGF3YWl0IHRoaXMuI2dldEZvcm1FcnJvcnMoKSk/Lmhhc0Vycm9yKCdmaWxlVHlwZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIG1heCBmaWxlIHNpemUgZXJyb3IgaGFzIGZpcmVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGhhc01heEZpbGVTaXplRXJyb3IoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRGb3JtRXJyb3JzKCkpPy5oYXNFcnJvcignbWF4RmlsZVNpemUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBtaW4gZmlsZSBzaXplIGVycm9yIGhhcyBmaXJlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBoYXNNaW5GaWxlU2l6ZUVycm9yKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy4jZ2V0Rm9ybUVycm9ycygpKT8uaGFzRXJyb3IoJ21pbkZpbGVTaXplJyk7XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcmVxdWlyZWQgZXJyb3IgaGFzIGZpcmVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGhhc1JlcXVpcmVkRXJyb3IoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGF3YWl0IChhd2FpdCB0aGlzLiNnZXRGb3JtRXJyb3JzKCkpPy5oYXNFcnJvcigncmVxdWlyZWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGZpbGUgYXR0YWNobWVudCBpcyBkaXNhYmxlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBpc0Rpc2FibGVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiAoYXdhaXQgKGF3YWl0IHRoaXMuI2dldEJ1dHRvbigpKS5nZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpICE9PSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgZmlsZSBhdHRhY2htZW50IGlzIHJlcXVpcmVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzUmVxdWlyZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGF3YWl0IChcbiAgICAgIGF3YWl0IHRoaXMuI2dldExhYmVsKClcbiAgICApLmhhc0NsYXNzKCdza3ktY29udHJvbC1sYWJlbC1yZXF1aXJlZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgZmlsZSBhdHRhY2htZW50IGhhcyBzdGFja2VkIGVuYWJsZWQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaXNTdGFja2VkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBhd2FpdCAoYXdhaXQgdGhpcy5ob3N0KCkpLmhhc0NsYXNzKCdza3ktZm9ybS1maWVsZC1zdGFja2VkJyk7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoZXMgYSBmaWxlLlxuICAgKiBCZSBzdXJlIHRvIGluY2x1ZGUgYHByb3ZpZGVTa3lGaWxlUmVhZGVyVGVzdGluZ2AgYXMgYSBwcm92aWRlciB3aGVuIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiBpbiB0ZXN0cy5cbiAgICogIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogVGVzdEJlZC5jb25maWd1cmVUZXN0aW5nTW9kdWxlKHtcbiAgICogICBwcm92aWRlcnM6IFtwcm92aWRlU2t5RmlsZVJlYWRlclRlc3RpbmcoKV1cbiAgICogfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGF0dGFjaEZpbGUoZmlsZTogRmlsZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLiNkcm9wRmlsZShmaWxlKTtcbiAgfVxuXG4gIGFzeW5jICNkcm9wRmlsZShmaWxlOiBGaWxlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYXR0YWNoTG9jYXRpb24gPSBhd2FpdCB0aGlzLmxvY2F0b3JGb3IoXG4gICAgICAnLnNreS1maWxlLWF0dGFjaG1lbnQtdXBsb2FkJyxcbiAgICApKCk7XG5cbiAgICBjb25zdCBkYXRhVHJhbnNmZXIgPSBuZXcgRGF0YVRyYW5zZmVyKCkgYXMgVGVzdERhdGFUcmFuc2ZlcjtcbiAgICBkYXRhVHJhbnNmZXIuaXRlbXMuYWRkKGZpbGUpO1xuXG4gICAgcmV0dXJuIGF3YWl0IGF0dGFjaExvY2F0aW9uLmRpc3BhdGNoRXZlbnQoJ2Ryb3AnLCB7XG4gICAgICBkYXRhVHJhbnNmZXIsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyAjZ2V0Rm9ybUVycm9ycygpOiBQcm9taXNlPFNreUZvcm1FcnJvcnNIYXJuZXNzPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMubG9jYXRvckZvcihTa3lGb3JtRXJyb3JzSGFybmVzcykoKTtcbiAgfVxuXG4gIGFzeW5jICNnZXRIZWxwSW5saW5lKCk6IFByb21pc2U8U2t5SGVscElubGluZUhhcm5lc3M+IHtcbiAgICBjb25zdCBoYXJuZXNzID0gYXdhaXQgdGhpcy5sb2NhdG9yRm9yT3B0aW9uYWwoU2t5SGVscElubGluZUhhcm5lc3MpKCk7XG5cbiAgICBpZiAoaGFybmVzcykge1xuICAgICAgcmV0dXJuIGhhcm5lc3M7XG4gICAgfVxuXG4gICAgdGhyb3cgRXJyb3IoJ05vIGhlbHAgaW5saW5lIGZvdW5kLicpO1xuICB9XG59XG4iXX0=
|
|
@@ -29,17 +29,11 @@ export class SkyFileDropHarness extends SkyComponentHarness {
|
|
|
29
29
|
item: (index) => files[index],
|
|
30
30
|
length: files.length,
|
|
31
31
|
};
|
|
32
|
-
dropTarget.dispatchEvent('drop', {
|
|
32
|
+
await dropTarget.dispatchEvent('drop', {
|
|
33
33
|
dataTransfer: {
|
|
34
34
|
files: fileList,
|
|
35
35
|
},
|
|
36
36
|
});
|
|
37
|
-
// The file drop component's `filesChanged` event happens asynchronously as the
|
|
38
|
-
// result of an event handler which is outside of the test harness async logic,
|
|
39
|
-
// so get in the queue after the event handler, then resolve.
|
|
40
|
-
return await new Promise((resolve) => {
|
|
41
|
-
setTimeout(() => resolve(), 100);
|
|
42
|
-
});
|
|
43
37
|
}
|
|
44
38
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kcm9wLWhhcm5lc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybXMvdGVzdGluZy9zcmMvbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1kcm9wL2ZpbGUtZHJvcC1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBSTFEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxtQkFBbUI7SUFDekQ7O09BRUc7YUFDVyxpQkFBWSxHQUFHLGVBQWUsQ0FBQztJQUU3QyxjQUFjLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBRTFEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxJQUFJLENBQ2hCLE9BQWtDO1FBRWxDLE9BQU8sa0JBQWtCLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFVO1FBQzlCLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELDBFQUEwRTtJQUMxRSxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQWE7UUFDNUIsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFL0MsTUFBTSxRQUFRLEdBQUc7WUFDZixJQUFJLEVBQUUsQ0FBQyxLQUFhLEVBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDM0MsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1NBQ3JCLENBQUM7UUFFRixNQUFNLFVBQVUsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO1lBQ3JDLFlBQVksRUFBRTtnQkFDWixLQUFLLEVBQUUsUUFBZ0M7YUFDeEM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnREYXRhLCBIYXJuZXNzUHJlZGljYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Rlc3RpbmcnO1xuaW1wb3J0IHsgU2t5Q29tcG9uZW50SGFybmVzcyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG5pbXBvcnQgeyBTa3lGaWxlRHJvcEhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9maWxlLWRyb3AtaGFybmVzcy1maWx0ZXJzJztcblxuLyoqXG4gKiBIYXJuZXNzIGZvciBpbnRlcmFjdGluZyB3aXRoIGEgZmlsZSBkcm9wIGNvbXBvbmVudCBpbiB0ZXN0cy5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgU2t5RmlsZURyb3BIYXJuZXNzIGV4dGVuZHMgU2t5Q29tcG9uZW50SGFybmVzcyB7XG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ3NreS1maWxlLWRyb3AnO1xuXG4gICNnZXREcm9wVGFyZ2V0ID0gdGhpcy5sb2NhdG9yRm9yKCcuc2t5LWZpbGUtZHJvcC10YXJnZXQnKTtcblxuICAvKipcbiAgICogR2V0cyBhIGBIYXJuZXNzUHJlZGljYXRlYCB0aGF0IGNhbiBiZSB1c2VkIHRvIHNlYXJjaCBmb3IgYVxuICAgKiBgU2t5RmlsZURyb3BIYXJuZXNzYCB0aGF0IG1lZXRzIGNlcnRhaW4gY3JpdGVyaWEuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGgoXG4gICAgZmlsdGVyczogU2t5RmlsZURyb3BIYXJuZXNzRmlsdGVycyxcbiAgKTogSGFybmVzc1ByZWRpY2F0ZTxTa3lGaWxlRHJvcEhhcm5lc3M+IHtcbiAgICByZXR1cm4gU2t5RmlsZURyb3BIYXJuZXNzLmdldERhdGFTa3lJZFByZWRpY2F0ZShmaWx0ZXJzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEcm9wcyBhIGZpbGUgb250byB0aGUgY29tcG9uZW50J3MgZHJvcCB0YXJnZXQuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZHJvcEZpbGUoZmlsZTogRmlsZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuI2Ryb3BGaWxlcyhbZmlsZV0pO1xuICB9XG5cbiAgLy8gQ29uc2lkZXIgbWFraW5nIHRoaXMgcHVibGljIHdoZW4gd2UgZmluYWxpemUgdGhpcyBoYXJuZXNzJ3MgcHVibGljIEFQSS5cbiAgYXN5bmMgI2Ryb3BGaWxlcyhmaWxlczogRmlsZVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZHJvcFRhcmdldCA9IGF3YWl0IHRoaXMuI2dldERyb3BUYXJnZXQoKTtcblxuICAgIGNvbnN0IGZpbGVMaXN0ID0ge1xuICAgICAgaXRlbTogKGluZGV4OiBudW1iZXIpOiBGaWxlID0+IGZpbGVzW2luZGV4XSxcbiAgICAgIGxlbmd0aDogZmlsZXMubGVuZ3RoLFxuICAgIH07XG5cbiAgICBhd2FpdCBkcm9wVGFyZ2V0LmRpc3BhdGNoRXZlbnQoJ2Ryb3AnLCB7XG4gICAgICBkYXRhVHJhbnNmZXI6IHtcbiAgICAgICAgZmlsZXM6IGZpbGVMaXN0IGFzIHVua25vd24gYXMgRXZlbnREYXRhLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { provideSkyFileReaderTesting } from '@skyux/core/testing';
|
|
2
|
+
/**
|
|
3
|
+
* Provides mocks for file attachment testing.
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* TestBed.configureTestingModule({
|
|
7
|
+
* providers: [provideSkyFileAttachmentTesting()]
|
|
8
|
+
* });
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
export function provideSkyFileAttachmentTesting() {
|
|
12
|
+
return [provideSkyFileReaderTesting()];
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1maWxlLWF0dGFjaG1lbnQtdGVzdGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy90ZXN0aW5nL3NyYy9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9zaGFyZWQvcHJvdmlkZS1maWxlLWF0dGFjaG1lbnQtdGVzdGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRTs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSwrQkFBK0I7SUFDN0MsT0FBTyxDQUFDLDJCQUEyQixFQUFFLENBQUMsQ0FBQztBQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHByb3ZpZGVTa3lGaWxlUmVhZGVyVGVzdGluZyB9IGZyb20gJ0Bza3l1eC9jb3JlL3Rlc3RpbmcnO1xuXG4vKipcbiAqIFByb3ZpZGVzIG1vY2tzIGZvciBmaWxlIGF0dGFjaG1lbnQgdGVzdGluZy5cbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBUZXN0QmVkLmNvbmZpZ3VyZVRlc3RpbmdNb2R1bGUoe1xuICogICBwcm92aWRlcnM6IFtwcm92aWRlU2t5RmlsZUF0dGFjaG1lbnRUZXN0aW5nKCldXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVNreUZpbGVBdHRhY2htZW50VGVzdGluZygpOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIFtwcm92aWRlU2t5RmlsZVJlYWRlclRlc3RpbmcoKV07XG59XG4iXX0=
|
|
@@ -4,7 +4,9 @@ export { SkyCheckboxFixture } from './legacy/checkbox-fixture';
|
|
|
4
4
|
export { SkyCheckboxGroupHarness } from './modules/checkbox/checkbox-group-harness';
|
|
5
5
|
export { SkyCheckboxHarness } from './modules/checkbox/checkbox-harness';
|
|
6
6
|
export { SkyCheckboxLabelHarness } from './modules/checkbox/checkbox-label-harness';
|
|
7
|
+
export { SkyFileAttachmentHarness } from './modules/file-attachment/file-attachment/file-attachment-harness';
|
|
7
8
|
export { SkyFileDropHarness } from './modules/file-attachment/file-drop/file-drop-harness';
|
|
9
|
+
export { provideSkyFileAttachmentTesting } from './modules/file-attachment/shared/provide-file-attachment-testing';
|
|
8
10
|
export { SkyFormErrorsHarness } from './modules/form-error/form-errors-harness';
|
|
9
11
|
export { SkyFormErrorHarness } from './modules/form-error/form-error-harness';
|
|
10
12
|
export { SkyFieldGroupHarness } from './modules/field-group/field-group-harness';
|
|
@@ -12,4 +14,4 @@ export { SkyRadioFixture } from './legacy/radio-fixture';
|
|
|
12
14
|
export { SkyRadioGroupHarness } from './modules/radio/radio-group-harness';
|
|
13
15
|
export { SkyRadioHarness } from './modules/radio/radio-harness';
|
|
14
16
|
export { SkyRadioLabelHarness } from './modules/radio/radio-label-harness';
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3Jtcy90ZXN0aW5nL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBR3RILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXpFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRXBGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBRzdHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRTNGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBRW5ILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBR2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRzlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBR2pGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBTa3lJbnB1dEJveEhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvaW5wdXQtYm94L2lucHV0LWJveC1oYXJuZXNzJztcbmV4cG9ydCB7IFNreUlucHV0Qm94SGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvaW5wdXQtYm94L2lucHV0LWJveC1oYXJuZXNzLWZpbHRlcnMnO1xuXG5leHBvcnQgeyBTa3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9ySGFybmVzcyB9IGZyb20gJy4vbW9kdWxlcy9jaGFyYWN0ZXItY291bnRlci9jaGFyYWN0ZXItY291bnRlci1pbmRpY2F0b3ItaGFybmVzcyc7XG5leHBvcnQgeyBTa3lDaGFyYWN0ZXJDb3VudGVySW5kaWNhdG9ySGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvY2hhcmFjdGVyLWNvdW50ZXIvY2hhcmFjdGVyLWNvdW50ZXItaW5kaWNhdG9yLWhhcm5lc3MtZmlsdGVycyc7XG5cbmV4cG9ydCB7IFNreUNoZWNrYm94Rml4dHVyZSB9IGZyb20gJy4vbGVnYWN5L2NoZWNrYm94LWZpeHR1cmUnO1xuZXhwb3J0IHsgU2t5Q2hlY2tib3hHcm91cEhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvY2hlY2tib3gvY2hlY2tib3gtZ3JvdXAtaGFybmVzcyc7XG5leHBvcnQgeyBTa3lDaGVja2JveEdyb3VwSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvY2hlY2tib3gvY2hlY2tib3gtZ3JvdXAtaGFybmVzcy1maWx0ZXJzJztcbmV4cG9ydCB7IFNreUNoZWNrYm94SGFybmVzcyB9IGZyb20gJy4vbW9kdWxlcy9jaGVja2JveC9jaGVja2JveC1oYXJuZXNzJztcbmV4cG9ydCB7IFNreUNoZWNrYm94SGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvY2hlY2tib3gvY2hlY2tib3gtaGFybmVzcy1maWx0ZXJzJztcbmV4cG9ydCB7IFNreUNoZWNrYm94TGFiZWxIYXJuZXNzIH0gZnJvbSAnLi9tb2R1bGVzL2NoZWNrYm94L2NoZWNrYm94LWxhYmVsLWhhcm5lc3MnO1xuXG5leHBvcnQgeyBTa3lGaWxlQXR0YWNobWVudEhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnQtaGFybmVzcyc7XG5leHBvcnQgeyBTa3lGaWxlQXR0YWNobWVudEhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9tb2R1bGVzL2ZpbGUtYXR0YWNobWVudC9maWxlLWF0dGFjaG1lbnQvZmlsZS1hdHRhY2htZW50LWhhcm5lc3MtZmlsdGVycyc7XG5cbmV4cG9ydCB7IFNreUZpbGVEcm9wSGFybmVzcyB9IGZyb20gJy4vbW9kdWxlcy9maWxlLWF0dGFjaG1lbnQvZmlsZS1kcm9wL2ZpbGUtZHJvcC1oYXJuZXNzJztcbmV4cG9ydCB7IFNreUZpbGVEcm9wSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L2ZpbGUtZHJvcC9maWxlLWRyb3AtaGFybmVzcy1maWx0ZXJzJztcbmV4cG9ydCB7IHByb3ZpZGVTa3lGaWxlQXR0YWNobWVudFRlc3RpbmcgfSBmcm9tICcuL21vZHVsZXMvZmlsZS1hdHRhY2htZW50L3NoYXJlZC9wcm92aWRlLWZpbGUtYXR0YWNobWVudC10ZXN0aW5nJztcblxuZXhwb3J0IHsgU2t5Rm9ybUVycm9yc0hhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvZm9ybS1lcnJvci9mb3JtLWVycm9ycy1oYXJuZXNzJztcbmV4cG9ydCB7IFNreUZvcm1FcnJvcnNIYXJuZXNzRmlsdGVycyB9IGZyb20gJy4vbW9kdWxlcy9mb3JtLWVycm9yL2Zvcm0tZXJyb3JzLWhhcm5lc3MuZmlsdGVycyc7XG5cbmV4cG9ydCB7IFNreUZvcm1FcnJvckhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvZm9ybS1lcnJvci9mb3JtLWVycm9yLWhhcm5lc3MnO1xuZXhwb3J0IHsgU2t5Rm9ybUVycm9ySGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvZm9ybS1lcnJvci9mb3JtLWVycm9yLWhhcm5lc3MuZmlsdGVycyc7XG5cbmV4cG9ydCB7IFNreUZpZWxkR3JvdXBIYXJuZXNzIH0gZnJvbSAnLi9tb2R1bGVzL2ZpZWxkLWdyb3VwL2ZpZWxkLWdyb3VwLWhhcm5lc3MnO1xuZXhwb3J0IHsgU2t5RmllbGRHcm91cEhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9tb2R1bGVzL2ZpZWxkLWdyb3VwL2ZpZWxkLWdyb3VwLWhhcm5lc3MtZmlsdGVycyc7XG5cbmV4cG9ydCB7IFNreVJhZGlvRml4dHVyZSB9IGZyb20gJy4vbGVnYWN5L3JhZGlvLWZpeHR1cmUnO1xuZXhwb3J0IHsgU2t5UmFkaW9Hcm91cEhhcm5lc3MgfSBmcm9tICcuL21vZHVsZXMvcmFkaW8vcmFkaW8tZ3JvdXAtaGFybmVzcyc7XG5leHBvcnQgeyBTa3lSYWRpb0dyb3VwSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvcmFkaW8vcmFkaW8tZ3JvdXAtaGFybmVzcy1maWx0ZXJzJztcbmV4cG9ydCB7IFNreVJhZGlvSGFybmVzcyB9IGZyb20gJy4vbW9kdWxlcy9yYWRpby9yYWRpby1oYXJuZXNzJztcbmV4cG9ydCB7IFNreVJhZGlvSGFybmVzc0ZpbHRlcnMgfSBmcm9tICcuL21vZHVsZXMvcmFkaW8vcmFkaW8taGFybmVzcy1maWx0ZXJzJztcbmV4cG9ydCB7IFNreVJhZGlvTGFiZWxIYXJuZXNzIH0gZnJvbSAnLi9tb2R1bGVzL3JhZGlvL3JhZGlvLWxhYmVsLWhhcm5lc3MnO1xuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HarnessPredicate, ComponentHarness } from '@angular/cdk/testing';
|
|
2
|
-
import { SkyComponentHarness, SkyQueryableComponentHarness } from '@skyux/core/testing';
|
|
2
|
+
import { SkyComponentHarness, SkyQueryableComponentHarness, provideSkyFileReaderTesting } from '@skyux/core/testing';
|
|
3
3
|
import { SkyHelpInlineHarness } from '@skyux/help-inline/testing';
|
|
4
4
|
import { SkyStatusIndicatorHarness } from '@skyux/indicators/testing';
|
|
5
5
|
import { SkyPopoverHarness } from '@skyux/popovers/testing';
|
|
@@ -762,6 +762,196 @@ class SkyCheckboxGroupHarness extends SkyComponentHarness {
|
|
|
762
762
|
}
|
|
763
763
|
}
|
|
764
764
|
|
|
765
|
+
/**
|
|
766
|
+
* Harness for interacting with a file attachment component in tests.
|
|
767
|
+
*/
|
|
768
|
+
class SkyFileAttachmentHarness extends SkyComponentHarness {
|
|
769
|
+
/**
|
|
770
|
+
* @internal
|
|
771
|
+
*/
|
|
772
|
+
static { this.hostSelector = 'sky-file-attachment'; }
|
|
773
|
+
#getButton = this.locatorFor('button.sky-file-attachment-btn');
|
|
774
|
+
#getLabel = this.locatorFor('.sky-control-label');
|
|
775
|
+
#input = this.locatorFor('input[type="file"]');
|
|
776
|
+
/**
|
|
777
|
+
* Gets a `HarnessPredicate` that can be used to search for a
|
|
778
|
+
* `SkyFileAttachmentHarness` that meets certain criteria.
|
|
779
|
+
*/
|
|
780
|
+
static with(filters) {
|
|
781
|
+
return SkyFileAttachmentHarness.getDataSkyIdPredicate(filters);
|
|
782
|
+
}
|
|
783
|
+
/**
|
|
784
|
+
* Clicks the attach file button if it is visible.
|
|
785
|
+
*/
|
|
786
|
+
async clickAttachFileButton() {
|
|
787
|
+
try {
|
|
788
|
+
const button = await this.#getButton();
|
|
789
|
+
if ((await button.text()).trim() === 'Replace file') {
|
|
790
|
+
throw new Error();
|
|
791
|
+
}
|
|
792
|
+
return await button.click();
|
|
793
|
+
}
|
|
794
|
+
catch {
|
|
795
|
+
throw new Error('Cannot click Attach file button, there is currently a file attached.');
|
|
796
|
+
}
|
|
797
|
+
}
|
|
798
|
+
/**
|
|
799
|
+
* Clicks the help inline button.
|
|
800
|
+
*/
|
|
801
|
+
async clickHelpInline() {
|
|
802
|
+
return await (await this.#getHelpInline()).click();
|
|
803
|
+
}
|
|
804
|
+
/**
|
|
805
|
+
* Clicks the replace file button in default theme.
|
|
806
|
+
*/
|
|
807
|
+
async clickReplaceFileButton() {
|
|
808
|
+
try {
|
|
809
|
+
const button = await this.#getButton();
|
|
810
|
+
if ((await button.text()).trim() !== 'Replace file') {
|
|
811
|
+
throw new Error();
|
|
812
|
+
}
|
|
813
|
+
return await button.click();
|
|
814
|
+
}
|
|
815
|
+
catch {
|
|
816
|
+
throw new Error('Cannot click Replace file button, it is not visible.');
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
/**
|
|
820
|
+
* Clicks the attached file to download it.
|
|
821
|
+
*/
|
|
822
|
+
async clickAttachedFile() {
|
|
823
|
+
try {
|
|
824
|
+
const file = await this.locatorFor('a')();
|
|
825
|
+
return await file.click();
|
|
826
|
+
}
|
|
827
|
+
catch {
|
|
828
|
+
throw new Error('Unable to find the attached file.');
|
|
829
|
+
}
|
|
830
|
+
}
|
|
831
|
+
/**
|
|
832
|
+
* Clicks the attached file's delete button.
|
|
833
|
+
*/
|
|
834
|
+
async clickAttachedFileDeleteButton() {
|
|
835
|
+
try {
|
|
836
|
+
const deleteButton = await this.locatorFor('button.sky-file-attachment-delete')();
|
|
837
|
+
return await deleteButton.click();
|
|
838
|
+
}
|
|
839
|
+
catch {
|
|
840
|
+
throw new Error("Unable to find attached file's delete button. Check if a file is attached.");
|
|
841
|
+
}
|
|
842
|
+
}
|
|
843
|
+
/**
|
|
844
|
+
* Gets the accepted file types.
|
|
845
|
+
*/
|
|
846
|
+
async getAcceptedTypes() {
|
|
847
|
+
return await (await this.#input()).getAttribute('accept');
|
|
848
|
+
}
|
|
849
|
+
/**
|
|
850
|
+
* Gets the help inline popover content.
|
|
851
|
+
*/
|
|
852
|
+
async getHelpPopoverContent() {
|
|
853
|
+
const content = await (await this.#getHelpInline()).getPopoverContent();
|
|
854
|
+
return content;
|
|
855
|
+
}
|
|
856
|
+
/**
|
|
857
|
+
* Gets the help inline popover title.
|
|
858
|
+
*/
|
|
859
|
+
async getHelpPopoverTitle() {
|
|
860
|
+
return await (await this.#getHelpInline()).getPopoverTitle();
|
|
861
|
+
}
|
|
862
|
+
/**
|
|
863
|
+
* Gets the hint text.
|
|
864
|
+
*/
|
|
865
|
+
async getHintText() {
|
|
866
|
+
return (await (await this.locatorFor('.sky-file-attachment-hint-text')()).text()).trim();
|
|
867
|
+
}
|
|
868
|
+
/**
|
|
869
|
+
* Gets the file attachment label.
|
|
870
|
+
*/
|
|
871
|
+
async getLabelText() {
|
|
872
|
+
return (await (await this.#getLabel()).text()).trim();
|
|
873
|
+
}
|
|
874
|
+
/**
|
|
875
|
+
* Whether a custom error has fired.
|
|
876
|
+
*/
|
|
877
|
+
async hasCustomError(errorName) {
|
|
878
|
+
return await (await this.#getFormErrors())?.hasError(errorName);
|
|
879
|
+
}
|
|
880
|
+
/**
|
|
881
|
+
* Whether the wrong file type error has fired.
|
|
882
|
+
*/
|
|
883
|
+
async hasFileTypeError() {
|
|
884
|
+
return await (await this.#getFormErrors())?.hasError('fileType');
|
|
885
|
+
}
|
|
886
|
+
/**
|
|
887
|
+
* Whether the max file size error has fired.
|
|
888
|
+
*/
|
|
889
|
+
async hasMaxFileSizeError() {
|
|
890
|
+
return await (await this.#getFormErrors())?.hasError('maxFileSize');
|
|
891
|
+
}
|
|
892
|
+
/**
|
|
893
|
+
* Whether the min file size error has fired.
|
|
894
|
+
*/
|
|
895
|
+
async hasMinFileSizeError() {
|
|
896
|
+
return await (await this.#getFormErrors())?.hasError('minFileSize');
|
|
897
|
+
}
|
|
898
|
+
/**
|
|
899
|
+
* Whether the required error has fired.
|
|
900
|
+
*/
|
|
901
|
+
async hasRequiredError() {
|
|
902
|
+
return await (await this.#getFormErrors())?.hasError('required');
|
|
903
|
+
}
|
|
904
|
+
/**
|
|
905
|
+
* Whether file attachment is disabled.
|
|
906
|
+
*/
|
|
907
|
+
async isDisabled() {
|
|
908
|
+
return (await (await this.#getButton()).getAttribute('disabled')) !== null;
|
|
909
|
+
}
|
|
910
|
+
/**
|
|
911
|
+
* Whether file attachment is required.
|
|
912
|
+
*/
|
|
913
|
+
async isRequired() {
|
|
914
|
+
return await (await this.#getLabel()).hasClass('sky-control-label-required');
|
|
915
|
+
}
|
|
916
|
+
/**
|
|
917
|
+
* Whether file attachment has stacked enabled.
|
|
918
|
+
*/
|
|
919
|
+
async isStacked() {
|
|
920
|
+
return await (await this.host()).hasClass('sky-form-field-stacked');
|
|
921
|
+
}
|
|
922
|
+
/**
|
|
923
|
+
* Attaches a file.
|
|
924
|
+
* Be sure to include `provideSkyFileReaderTesting` as a provider when calling this function in tests.
|
|
925
|
+
* @example
|
|
926
|
+
* ```typescript
|
|
927
|
+
* TestBed.configureTestingModule({
|
|
928
|
+
* providers: [provideSkyFileReaderTesting()]
|
|
929
|
+
* });
|
|
930
|
+
* ```
|
|
931
|
+
*/
|
|
932
|
+
async attachFile(file) {
|
|
933
|
+
return await this.#dropFile(file);
|
|
934
|
+
}
|
|
935
|
+
async #dropFile(file) {
|
|
936
|
+
const attachLocation = await this.locatorFor('.sky-file-attachment-upload')();
|
|
937
|
+
const dataTransfer = new DataTransfer();
|
|
938
|
+
dataTransfer.items.add(file);
|
|
939
|
+
return await attachLocation.dispatchEvent('drop', {
|
|
940
|
+
dataTransfer,
|
|
941
|
+
});
|
|
942
|
+
}
|
|
943
|
+
async #getFormErrors() {
|
|
944
|
+
return await this.locatorFor(SkyFormErrorsHarness)();
|
|
945
|
+
}
|
|
946
|
+
async #getHelpInline() {
|
|
947
|
+
const harness = await this.locatorForOptional(SkyHelpInlineHarness)();
|
|
948
|
+
if (harness) {
|
|
949
|
+
return harness;
|
|
950
|
+
}
|
|
951
|
+
throw Error('No help inline found.');
|
|
952
|
+
}
|
|
953
|
+
}
|
|
954
|
+
|
|
765
955
|
/**
|
|
766
956
|
* Harness for interacting with a file drop component in tests.
|
|
767
957
|
* @internal
|
|
@@ -792,20 +982,27 @@ class SkyFileDropHarness extends SkyComponentHarness {
|
|
|
792
982
|
item: (index) => files[index],
|
|
793
983
|
length: files.length,
|
|
794
984
|
};
|
|
795
|
-
dropTarget.dispatchEvent('drop', {
|
|
985
|
+
await dropTarget.dispatchEvent('drop', {
|
|
796
986
|
dataTransfer: {
|
|
797
987
|
files: fileList,
|
|
798
988
|
},
|
|
799
989
|
});
|
|
800
|
-
// The file drop component's `filesChanged` event happens asynchronously as the
|
|
801
|
-
// result of an event handler which is outside of the test harness async logic,
|
|
802
|
-
// so get in the queue after the event handler, then resolve.
|
|
803
|
-
return await new Promise((resolve) => {
|
|
804
|
-
setTimeout(() => resolve(), 100);
|
|
805
|
-
});
|
|
806
990
|
}
|
|
807
991
|
}
|
|
808
992
|
|
|
993
|
+
/**
|
|
994
|
+
* Provides mocks for file attachment testing.
|
|
995
|
+
* @example
|
|
996
|
+
* ```typescript
|
|
997
|
+
* TestBed.configureTestingModule({
|
|
998
|
+
* providers: [provideSkyFileAttachmentTesting()]
|
|
999
|
+
* });
|
|
1000
|
+
* ```
|
|
1001
|
+
*/
|
|
1002
|
+
function provideSkyFileAttachmentTesting() {
|
|
1003
|
+
return [provideSkyFileReaderTesting()];
|
|
1004
|
+
}
|
|
1005
|
+
|
|
809
1006
|
/**
|
|
810
1007
|
* Harness for interacting with a field group component in tests.
|
|
811
1008
|
*/
|
|
@@ -1297,5 +1494,5 @@ class SkyRadioGroupHarness extends SkyComponentHarness {
|
|
|
1297
1494
|
* Generated bundle index. Do not edit.
|
|
1298
1495
|
*/
|
|
1299
1496
|
|
|
1300
|
-
export { SkyCharacterCounterIndicatorHarness, SkyCheckboxFixture, SkyCheckboxGroupHarness, SkyCheckboxHarness, SkyCheckboxLabelHarness, SkyFieldGroupHarness, SkyFileDropHarness, SkyFormErrorHarness, SkyFormErrorsHarness, SkyInputBoxHarness, SkyRadioFixture, SkyRadioGroupHarness, SkyRadioHarness, SkyRadioLabelHarness };
|
|
1497
|
+
export { SkyCharacterCounterIndicatorHarness, SkyCheckboxFixture, SkyCheckboxGroupHarness, SkyCheckboxHarness, SkyCheckboxLabelHarness, SkyFieldGroupHarness, SkyFileAttachmentHarness, SkyFileDropHarness, SkyFormErrorHarness, SkyFormErrorsHarness, SkyInputBoxHarness, SkyRadioFixture, SkyRadioGroupHarness, SkyRadioHarness, SkyRadioLabelHarness, provideSkyFileAttachmentTesting };
|
|
1301
1498
|
//# sourceMappingURL=skyux-forms-testing.mjs.map
|