@skyux/forms 12.0.0-alpha.0 → 12.0.0-alpha.10

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 (29) hide show
  1. package/documentation.json +11318 -7163
  2. package/fesm2022/skyux-forms-testing.mjs +266 -31
  3. package/fesm2022/skyux-forms-testing.mjs.map +1 -1
  4. package/fesm2022/skyux-forms.mjs +471 -237
  5. package/fesm2022/skyux-forms.mjs.map +1 -1
  6. package/lib/modules/checkbox/checkbox-group.component.d.ts +1 -1
  7. package/lib/modules/checkbox/checkbox.component.d.ts +11 -4
  8. package/lib/modules/file-attachment/file-attachment/file-attachment.service.d.ts +1 -1
  9. package/lib/modules/file-attachment/file-drop/file-drop.component.d.ts +10 -2
  10. package/lib/modules/form-error/form-error.component.d.ts +1 -0
  11. package/lib/modules/radio/radio.component.d.ts +8 -1
  12. package/package.json +14 -14
  13. package/testing/modules/character-counter/character-counter-indicator-harness-filters.d.ts +0 -1
  14. package/testing/modules/checkbox/checkbox-group-harness-filters.d.ts +0 -1
  15. package/testing/modules/checkbox/checkbox-harness-filters.d.ts +0 -1
  16. package/testing/modules/field-group/field-group-harness-filters.d.ts +0 -1
  17. package/testing/modules/field-group/field-group-harness.d.ts +1 -2
  18. package/testing/modules/file-attachment/file-attachment/file-attachment-harness-filters.d.ts +0 -1
  19. package/testing/modules/file-attachment/file-drop/file-drop-harness-filters.d.ts +0 -1
  20. package/testing/modules/file-attachment/file-drop/file-drop-harness.d.ts +90 -3
  21. package/testing/modules/file-attachment/file-drop/file-drop-link-upload-harness.d.ts +28 -0
  22. package/testing/modules/file-attachment/file-drop/file-drop-link-upload-input-harness.d.ts +14 -0
  23. package/testing/modules/file-attachment/file-drop/file-item-harness-filters.d.ts +10 -0
  24. package/testing/modules/file-attachment/file-drop/file-item-harness.d.ts +28 -0
  25. package/testing/modules/input-box/input-box-harness-filters.d.ts +0 -1
  26. package/testing/modules/input-box/input-box-harness.d.ts +1 -2
  27. package/testing/modules/radio/radio-group-harness-filters.d.ts +0 -1
  28. package/testing/modules/radio/radio-harness-filters.d.ts +0 -1
  29. package/testing/public-api.d.ts +2 -0
@@ -67,7 +67,7 @@ export declare class SkyCheckboxGroupComponent implements Validator {
67
67
  protected formGroup: FormGroup | null | undefined;
68
68
  validate(formGroup: FormGroup): ValidationErrors | null;
69
69
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyCheckboxGroupComponent, never>;
70
- static ɵcmp: i0.ɵɵComponentDeclaration<SkyCheckboxGroupComponent, "sky-checkbox-group", never, { "helpPopoverContent": { "alias": "helpPopoverContent"; "required": false; }; "helpPopoverTitle": { "alias": "helpPopoverTitle"; "required": false; }; "headingText": { "alias": "headingText"; "required": true; }; "headingHidden": { "alias": "headingHidden"; "required": false; }; "headingLevel": { "alias": "headingLevel"; "required": false; }; "headingStyle": { "alias": "headingStyle"; "required": false; }; "hintText": { "alias": "hintText"; "required": false; }; "required": { "alias": "required"; "required": false; }; "stacked": { "alias": "stacked"; "required": false; }; "helpKey": { "alias": "helpKey"; "required": false; }; }, {}, never, ["sky-checkbox[icon]", "sky-checkbox", "sky-form-error"], true, [{ directive: typeof i1.SkyThemeComponentClassDirective; inputs: {}; outputs: {}; }]>;
70
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyCheckboxGroupComponent, "sky-checkbox-group", never, { "helpPopoverContent": { "alias": "helpPopoverContent"; "required": false; }; "helpPopoverTitle": { "alias": "helpPopoverTitle"; "required": false; }; "headingText": { "alias": "headingText"; "required": true; }; "headingHidden": { "alias": "headingHidden"; "required": false; }; "headingLevel": { "alias": "headingLevel"; "required": false; }; "headingStyle": { "alias": "headingStyle"; "required": false; }; "hintText": { "alias": "hintText"; "required": false; }; "required": { "alias": "required"; "required": false; }; "stacked": { "alias": "stacked"; "required": false; }; "helpKey": { "alias": "helpKey"; "required": false; }; }, {}, never, ["sky-checkbox[icon], sky-checkbox[iconName]", "sky-checkbox", "sky-form-error"], true, [{ directive: typeof i1.SkyThemeComponentClassDirective; inputs: {}; outputs: {}; }]>;
71
71
  static ngAcceptInputType_headingHidden: unknown;
72
72
  static ngAcceptInputType_headingLevel: unknown;
73
73
  static ngAcceptInputType_headingStyle: unknown;
@@ -1,4 +1,4 @@
1
- import { ElementRef, EventEmitter, TemplateRef } from '@angular/core';
1
+ import { AfterViewInit, ElementRef, EventEmitter, TemplateRef } from '@angular/core';
2
2
  import { AbstractControl, ControlValueAccessor, ValidationErrors, Validator } from '@angular/forms';
3
3
  import { Observable } from 'rxjs';
4
4
  import { SkyCheckboxChange } from './checkbox-change';
@@ -8,7 +8,7 @@ import * as i1 from "@skyux/theme";
8
8
  * Replaces the HTML input element with `type="checkbox"`. When users select a checkbox, its value
9
9
  * is driven through an `ngModel` attribute that you specify on the `sky-checkbox` element.
10
10
  */
11
- export declare class SkyCheckboxComponent implements ControlValueAccessor, Validator {
11
+ export declare class SkyCheckboxComponent implements AfterViewInit, ControlValueAccessor, Validator {
12
12
  #private;
13
13
  /**
14
14
  * The ARIA label for the checkbox. This sets the checkbox's `aria-label` attribute
@@ -72,8 +72,14 @@ export declare class SkyCheckboxComponent implements ControlValueAccessor, Valid
72
72
  /**
73
73
  * The icon to display in place of the checkbox. To group icon checkboxes
74
74
  * like in the demo, place the checkboxes within a `sky-checkbox-group`.
75
+ * @deprecated Use `iconName` instead.
75
76
  */
76
77
  icon: string | undefined;
78
+ /**
79
+ * The SVG icon to display in place of the checkbox. To group icon checkboxes
80
+ * like in the demo, place the checkboxes within a `sky-checkbox-group`.
81
+ */
82
+ iconName: string | undefined;
77
83
  /**
78
84
  * The background color type after users select a checkbox where the
79
85
  * `icon` property displays an icon in place of the checkbox. The valid options correspond to
@@ -81,7 +87,7 @@ export declare class SkyCheckboxComponent implements ControlValueAccessor, Valid
81
87
  * label types. `"info"` creates a blue background, `"success"` creates a green
82
88
  * background, `"warning"` creates an orange background, and `"danger"` creates a red background.
83
89
  * @default "info"
84
- * @deprecated checkboxType is no longer supported
90
+ * @deprecated The `checkboxType` input is no longer supported.
85
91
  */
86
92
  set checkboxType(value: string | undefined);
87
93
  get checkboxType(): string;
@@ -154,6 +160,7 @@ export declare class SkyCheckboxComponent implements ControlValueAccessor, Valid
154
160
  protected inputId: string;
155
161
  protected readonly errorId: string;
156
162
  constructor();
163
+ ngAfterViewInit(): void;
157
164
  validate(control: AbstractControl<boolean>): ValidationErrors | null;
158
165
  /**
159
166
  * Implemented as part of ControlValueAccessor.
@@ -180,7 +187,7 @@ export declare class SkyCheckboxComponent implements ControlValueAccessor, Valid
180
187
  /** Called when the checkbox is blurred. Needed to properly implement ControlValueAccessor. */
181
188
  onTouched: () => any;
182
189
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyCheckboxComponent, never>;
183
- static ɵcmp: i0.ɵɵComponentDeclaration<SkyCheckboxComponent, "sky-checkbox", never, { "label": { "alias": "label"; "required": false; }; "labelledBy": { "alias": "labelledBy"; "required": false; }; "id": { "alias": "id"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "name": { "alias": "name"; "required": false; }; "helpPopoverContent": { "alias": "helpPopoverContent"; "required": false; }; "helpPopoverTitle": { "alias": "helpPopoverTitle"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "checkboxType": { "alias": "checkboxType"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "indeterminate": { "alias": "indeterminate"; "required": false; }; "required": { "alias": "required"; "required": false; }; "labelText": { "alias": "labelText"; "required": false; }; "labelHidden": { "alias": "labelHidden"; "required": false; }; "hintText": { "alias": "hintText"; "required": false; }; "stacked": { "alias": "stacked"; "required": false; }; "helpKey": { "alias": "helpKey"; "required": false; }; }, { "change": "change"; "checkedChange": "checkedChange"; "disabledChange": "disabledChange"; "indeterminateChange": "indeterminateChange"; }, never, ["sky-checkbox-label", "sky-form-error"], false, [{ directive: typeof i1.SkyThemeComponentClassDirective; inputs: {}; outputs: {}; }]>;
190
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyCheckboxComponent, "sky-checkbox", never, { "label": { "alias": "label"; "required": false; }; "labelledBy": { "alias": "labelledBy"; "required": false; }; "id": { "alias": "id"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "name": { "alias": "name"; "required": false; }; "helpPopoverContent": { "alias": "helpPopoverContent"; "required": false; }; "helpPopoverTitle": { "alias": "helpPopoverTitle"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "iconName": { "alias": "iconName"; "required": false; }; "checkboxType": { "alias": "checkboxType"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "indeterminate": { "alias": "indeterminate"; "required": false; }; "required": { "alias": "required"; "required": false; }; "labelText": { "alias": "labelText"; "required": false; }; "labelHidden": { "alias": "labelHidden"; "required": false; }; "hintText": { "alias": "hintText"; "required": false; }; "stacked": { "alias": "stacked"; "required": false; }; "helpKey": { "alias": "helpKey"; "required": false; }; }, { "change": "change"; "checkedChange": "checkedChange"; "disabledChange": "disabledChange"; "indeterminateChange": "indeterminateChange"; }, never, ["sky-checkbox-label", "sky-form-error"], false, [{ directive: typeof i1.SkyThemeComponentClassDirective; inputs: {}; outputs: {}; }]>;
184
191
  static ngAcceptInputType_disabled: unknown;
185
192
  static ngAcceptInputType_required: unknown;
186
193
  static ngAcceptInputType_labelHidden: unknown;
@@ -6,7 +6,7 @@ import * as i0 from "@angular/core";
6
6
  */
7
7
  export declare class SkyFileAttachmentService {
8
8
  #private;
9
- checkFiles(files: FileList, minFileSize: number, maxFileSize: number, acceptedTypes?: string, validateFn?: SkyFileValidateFn): SkyFileItem[];
9
+ checkFiles(files: SkyFileItem[], minFileSize: number, maxFileSize: number, acceptedTypes?: string, validateFn?: SkyFileValidateFn): SkyFileItem[];
10
10
  /**
11
11
  * Returns `true` if a directory is found in the provided `files` parameter.
12
12
  */
@@ -1,4 +1,5 @@
1
1
  import { ElementRef, EventEmitter, OnDestroy, TemplateRef } from '@angular/core';
2
+ import { ControlValueAccessor, NgControl } from '@angular/forms';
2
3
  import { SkyFileItem } from '../shared/file-item';
3
4
  import { SkyFileValidateFn } from '../shared/file-validate-function';
4
5
  import { SkyFileDropChange } from './file-drop-change';
@@ -14,7 +15,7 @@ import * as i0 from "@angular/core";
14
15
  * outside of the file drop component, you can place the `sky-file-drop-target` CSS class
15
16
  * on the element that receives drop events to exempt it from the drop exclusion rule.
16
17
  */
17
- export declare class SkyFileDropComponent implements OnDestroy {
18
+ export declare class SkyFileDropComponent implements OnDestroy, ControlValueAccessor {
18
19
  #private;
19
20
  /**
20
21
  * Fires when users add or remove files.
@@ -135,8 +136,13 @@ export declare class SkyFileDropComponent implements OnDestroy {
135
136
  acceptedOver: boolean;
136
137
  linkUrl: string | undefined;
137
138
  protected errorId: string;
139
+ protected ngControl: NgControl | null;
138
140
  protected rejectedFiles: SkyFileItem[];
141
+ constructor();
139
142
  ngOnDestroy(): void;
143
+ writeValue(value: unknown): void;
144
+ registerOnChange(fn: any): void;
145
+ registerOnTouched(fn: () => void): void;
140
146
  dropClicked(): void;
141
147
  fileChangeEvent(fileChangeEvent: Event): void;
142
148
  fileDragEnter(dragEnterEvent: DragEvent): void;
@@ -145,9 +151,11 @@ export declare class SkyFileDropComponent implements OnDestroy {
145
151
  fileDragLeave(dragLeaveEvent: any): void;
146
152
  addLinkEnter(event: KeyboardEvent): void;
147
153
  addLink(event: Event): void;
154
+ protected uploadLink(file: SkyFileLink): void;
148
155
  onLinkBlur(): void;
156
+ protected get isRequired(): boolean;
149
157
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyFileDropComponent, never>;
150
- static ɵcmp: i0.ɵɵComponentDeclaration<SkyFileDropComponent, "sky-file-drop", never, { "fileUploadAriaLabel": { "alias": "fileUploadAriaLabel"; "required": false; }; "linkUploadAriaLabel": { "alias": "linkUploadAriaLabel"; "required": false; }; "linkUploadHintText": { "alias": "linkUploadHintText"; "required": false; }; "minFileSize": { "alias": "minFileSize"; "required": false; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "validateFn": { "alias": "validateFn"; "required": false; }; "acceptedTypes": { "alias": "acceptedTypes"; "required": false; }; "acceptedTypesErrorMessage": { "alias": "acceptedTypesErrorMessage"; "required": false; }; "noClick": { "alias": "noClick"; "required": false; }; "allowLinks": { "alias": "allowLinks"; "required": false; }; "labelText": { "alias": "labelText"; "required": false; }; "labelHidden": { "alias": "labelHidden"; "required": false; }; "hintText": { "alias": "hintText"; "required": false; }; "required": { "alias": "required"; "required": false; }; "helpPopoverContent": { "alias": "helpPopoverContent"; "required": false; }; "helpPopoverTitle": { "alias": "helpPopoverTitle"; "required": false; }; "stacked": { "alias": "stacked"; "required": false; }; "helpKey": { "alias": "helpKey"; "required": false; }; }, { "filesChanged": "filesChanged"; "linkInputBlur": "linkInputBlur"; "linkChanged": "linkChanged"; }, never, ["*"], true, never>;
158
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyFileDropComponent, "sky-file-drop", never, { "fileUploadAriaLabel": { "alias": "fileUploadAriaLabel"; "required": false; }; "linkUploadAriaLabel": { "alias": "linkUploadAriaLabel"; "required": false; }; "linkUploadHintText": { "alias": "linkUploadHintText"; "required": false; }; "minFileSize": { "alias": "minFileSize"; "required": false; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "validateFn": { "alias": "validateFn"; "required": false; }; "acceptedTypes": { "alias": "acceptedTypes"; "required": false; }; "acceptedTypesErrorMessage": { "alias": "acceptedTypesErrorMessage"; "required": false; }; "noClick": { "alias": "noClick"; "required": false; }; "allowLinks": { "alias": "allowLinks"; "required": false; }; "labelText": { "alias": "labelText"; "required": false; }; "labelHidden": { "alias": "labelHidden"; "required": false; }; "hintText": { "alias": "hintText"; "required": false; }; "required": { "alias": "required"; "required": false; }; "helpPopoverContent": { "alias": "helpPopoverContent"; "required": false; }; "helpPopoverTitle": { "alias": "helpPopoverTitle"; "required": false; }; "stacked": { "alias": "stacked"; "required": false; }; "helpKey": { "alias": "helpKey"; "required": false; }; }, { "filesChanged": "filesChanged"; "linkInputBlur": "linkInputBlur"; "linkChanged": "linkChanged"; }, never, ["*", "sky-form-error"], true, never>;
151
159
  static ngAcceptInputType_labelHidden: unknown;
152
160
  static ngAcceptInputType_required: unknown;
153
161
  static ngAcceptInputType_stacked: unknown;
@@ -17,6 +17,7 @@ export declare class SkyFormErrorComponent {
17
17
  * @required
18
18
  */
19
19
  errorText: string;
20
+ get hostErrorName(): string;
20
21
  protected readonly formErrors: boolean | null;
21
22
  constructor();
22
23
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyFormErrorComponent, never>;
@@ -94,8 +94,15 @@ export declare class SkyRadioComponent implements OnDestroy, ControlValueAccesso
94
94
  * The icon to display in place of the radio button. To group radio buttons like in
95
95
  * the demo above, place the `sky-switch-icon-group` class on the direct parent element of the
96
96
  * radio buttons.
97
+ * @deprecated Use `iconName` instead.
97
98
  */
98
99
  icon: string | undefined;
100
+ /**
101
+ * The SVG icon to display in place of the radio button. To group radio buttons like in
102
+ * the demo above, place the `sky-switch-icon-group` class on the direct parent element of the
103
+ * radio buttons.
104
+ */
105
+ iconName: string | undefined;
99
106
  /**
100
107
  * The background color type after users select an icon radio button.
101
108
  * The valid options correspond
@@ -156,7 +163,7 @@ export declare class SkyRadioComponent implements OnDestroy, ControlValueAccesso
156
163
  onInputChange(event: Event): void;
157
164
  onInputFocusChange(): void;
158
165
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyRadioComponent, never>;
159
- static ɵcmp: i0.ɵɵComponentDeclaration<SkyRadioComponent, "sky-radio", never, { "checked": { "alias": "checked"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": false; }; "labelledBy": { "alias": "labelledBy"; "required": false; }; "name": { "alias": "name"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "value": { "alias": "value"; "required": false; }; "helpPopoverContent": { "alias": "helpPopoverContent"; "required": false; }; "helpPopoverTitle": { "alias": "helpPopoverTitle"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "radioType": { "alias": "radioType"; "required": false; }; "labelText": { "alias": "labelText"; "required": false; }; "labelHidden": { "alias": "labelHidden"; "required": false; }; "hintText": { "alias": "hintText"; "required": false; }; "helpKey": { "alias": "helpKey"; "required": false; }; }, { "change": "change"; "checkedChange": "checkedChange"; "disabledChange": "disabledChange"; }, never, ["sky-radio-label"], false, [{ directive: typeof i1.SkyThemeComponentClassDirective; inputs: {}; outputs: {}; }]>;
166
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyRadioComponent, "sky-radio", never, { "checked": { "alias": "checked"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": false; }; "labelledBy": { "alias": "labelledBy"; "required": false; }; "name": { "alias": "name"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "value": { "alias": "value"; "required": false; }; "helpPopoverContent": { "alias": "helpPopoverContent"; "required": false; }; "helpPopoverTitle": { "alias": "helpPopoverTitle"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "iconName": { "alias": "iconName"; "required": false; }; "radioType": { "alias": "radioType"; "required": false; }; "labelText": { "alias": "labelText"; "required": false; }; "labelHidden": { "alias": "labelHidden"; "required": false; }; "hintText": { "alias": "hintText"; "required": false; }; "helpKey": { "alias": "helpKey"; "required": false; }; }, { "change": "change"; "checkedChange": "checkedChange"; "disabledChange": "disabledChange"; }, never, ["sky-radio-label"], false, [{ directive: typeof i1.SkyThemeComponentClassDirective; inputs: {}; outputs: {}; }]>;
160
167
  static ngAcceptInputType_disabled: unknown;
161
168
  static ngAcceptInputType_labelHidden: unknown;
162
169
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/forms",
3
- "version": "12.0.0-alpha.0",
3
+ "version": "12.0.0-alpha.10",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -32,19 +32,19 @@
32
32
  }
33
33
  },
34
34
  "peerDependencies": {
35
- "@angular/cdk": "^19.0.4",
36
- "@angular/common": "^19.0.5",
37
- "@angular/core": "^19.0.5",
38
- "@angular/forms": "^19.0.5",
39
- "@angular/platform-browser": "^19.0.5",
40
- "@skyux-sdk/testing": "12.0.0-alpha.0",
41
- "@skyux/core": "12.0.0-alpha.0",
42
- "@skyux/help-inline": "12.0.0-alpha.0",
43
- "@skyux/i18n": "12.0.0-alpha.0",
44
- "@skyux/icon": "12.0.0-alpha.0",
45
- "@skyux/indicators": "12.0.0-alpha.0",
46
- "@skyux/popovers": "12.0.0-alpha.0",
47
- "@skyux/theme": "12.0.0-alpha.0"
35
+ "@angular/cdk": "^19.2.2",
36
+ "@angular/common": "^19.2.1",
37
+ "@angular/core": "^19.2.1",
38
+ "@angular/forms": "^19.2.1",
39
+ "@angular/platform-browser": "^19.2.1",
40
+ "@skyux-sdk/testing": "12.0.0-alpha.10",
41
+ "@skyux/core": "12.0.0-alpha.10",
42
+ "@skyux/help-inline": "12.0.0-alpha.10",
43
+ "@skyux/i18n": "12.0.0-alpha.10",
44
+ "@skyux/icon": "12.0.0-alpha.10",
45
+ "@skyux/indicators": "12.0.0-alpha.10",
46
+ "@skyux/popovers": "12.0.0-alpha.10",
47
+ "@skyux/theme": "12.0.0-alpha.10"
48
48
  },
49
49
  "dependencies": {
50
50
  "tslib": "^2.8.1"
@@ -1,7 +1,6 @@
1
1
  import { SkyHarnessFilters } from '@skyux/core/testing';
2
2
  /**
3
3
  * A set of criteria that can be used to filter a list of SkyCharacterCounterIndicatorHarness instances.
4
- * @internal
5
4
  */
6
5
  export interface SkyCharacterCounterIndicatorHarnessFilters extends SkyHarnessFilters {
7
6
  }
@@ -1,7 +1,6 @@
1
1
  import { SkyHarnessFilters } from '@skyux/core/testing';
2
2
  /**
3
3
  * A set of criteria that can be used to filter a list of `SkyCheckboxGroupHarness` instances.
4
- * @internal
5
4
  */
6
5
  export interface SkyCheckboxGroupHarnessFilters extends SkyHarnessFilters {
7
6
  }
@@ -1,7 +1,6 @@
1
1
  import { SkyHarnessFilters } from '@skyux/core/testing';
2
2
  /**
3
3
  * A set of criteria that can be used to filter a list of `SkyCheckboxHarness` instances.
4
- * @internal
5
4
  */
6
5
  export interface SkyCheckboxHarnessFilters extends SkyHarnessFilters {
7
6
  }
@@ -1,7 +1,6 @@
1
1
  import { SkyHarnessFilters } from '@skyux/core/testing';
2
2
  /**
3
3
  * A set of criteria that can be used to filter a list of `SkyFieldGroupHarness` instances.
4
- * @internal
5
4
  */
6
5
  export interface SkyFieldGroupHarnessFilters extends SkyHarnessFilters {
7
6
  }
@@ -1,5 +1,4 @@
1
1
  import { HarnessPredicate } from '@angular/cdk/testing';
2
- import { TemplateRef } from '@angular/core';
3
2
  import { SkyComponentHarness } from '@skyux/core/testing';
4
3
  import { SkyFieldGroupHeadingLevel, SkyFieldGroupHeadingStyle } from '@skyux/forms';
5
4
  import { SkyFieldGroupHarnessFilters } from './field-group-harness-filters';
@@ -49,7 +48,7 @@ export declare class SkyFieldGroupHarness extends SkyComponentHarness {
49
48
  /**
50
49
  * Gets the help popover content.
51
50
  */
52
- getHelpPopoverContent(): Promise<TemplateRef<unknown> | string | undefined>;
51
+ getHelpPopoverContent(): Promise<string | undefined>;
53
52
  /**
54
53
  * Gets the help popover title.
55
54
  */
@@ -1,7 +1,6 @@
1
1
  import { SkyHarnessFilters } from '@skyux/core/testing';
2
2
  /**
3
3
  * A set of criteria that can be used to filter a list of `SkyFileAttachmentHarness` instances.
4
- * @internal
5
4
  */
6
5
  export interface SkyFileAttachmentHarnessFilters extends SkyHarnessFilters {
7
6
  }
@@ -1,7 +1,6 @@
1
1
  import { SkyHarnessFilters } from '@skyux/core/testing';
2
2
  /**
3
3
  * A set of criteria that can be used to filter a list of `SkyFileDropHarness` instances.
4
- * @internal
5
4
  */
6
5
  export interface SkyFileDropHarnessFilters extends SkyHarnessFilters {
7
6
  }
@@ -3,7 +3,6 @@ import { SkyComponentHarness } from '@skyux/core/testing';
3
3
  import { SkyFileDropHarnessFilters } from './file-drop-harness-filters';
4
4
  /**
5
5
  * Harness for interacting with a file drop component in tests.
6
- * @internal
7
6
  */
8
7
  export declare class SkyFileDropHarness extends SkyComponentHarness {
9
8
  #private;
@@ -17,7 +16,95 @@ export declare class SkyFileDropHarness extends SkyComponentHarness {
17
16
  */
18
17
  static with(filters: SkyFileDropHarnessFilters): HarnessPredicate<SkyFileDropHarness>;
19
18
  /**
20
- * Drops a file onto the component's drop target.
19
+ * Clicks the file drop target.
21
20
  */
22
- dropFile(file: File): Promise<void>;
21
+ clickFileDropTarget(): Promise<void>;
22
+ /**
23
+ * Clicks the help inline button.
24
+ */
25
+ clickHelpInline(): Promise<void>;
26
+ /**
27
+ * Clicks the link upload `Done` button'.
28
+ */
29
+ clickLinkUploadDoneButton(): Promise<void>;
30
+ /**
31
+ * Enters text into the link upload input.
32
+ */
33
+ enterLinkUploadText(link: string): Promise<void>;
34
+ /**
35
+ * Gets the accepted file types.
36
+ */
37
+ getAcceptedTypes(): Promise<string | null>;
38
+ /**
39
+ * Gets the aria-label for the file upload button.
40
+ */
41
+ getFileUploadAriaLabel(): Promise<string | null>;
42
+ /**
43
+ * Gets the help inline popover content.
44
+ */
45
+ getHelpPopoverContent(): Promise<string | undefined>;
46
+ /**
47
+ * Gets the help inline popover title.
48
+ */
49
+ getHelpPopoverTitle(): Promise<string | undefined>;
50
+ /**
51
+ * Gets the hint text.
52
+ */
53
+ getHintText(): Promise<string>;
54
+ /**
55
+ * Gets the label text.
56
+ */
57
+ getLabelText(): Promise<string>;
58
+ /**
59
+ * Gets the link upload aria-label.
60
+ */
61
+ getLinkUploadAriaLabel(): Promise<string | null>;
62
+ /**
63
+ * Gets the link upload hint text.
64
+ */
65
+ getLinkUploadHintText(): Promise<string | undefined>;
66
+ /**
67
+ * Whether a custom form error has fired.
68
+ */
69
+ hasCustomError(errorName: string): Promise<boolean>;
70
+ /**
71
+ * Whether the file type error has fired.
72
+ */
73
+ hasFileTypeError(): Promise<boolean>;
74
+ /**
75
+ * Whether the max file size error has fired.
76
+ */
77
+ hasMaxFileSizeError(): Promise<boolean>;
78
+ /**
79
+ * Whether the min file size error has fired.
80
+ */
81
+ hasMinFileSizeError(): Promise<boolean>;
82
+ /**
83
+ * Whether the required error has fired.
84
+ */
85
+ hasRequiredError(): Promise<boolean>;
86
+ /**
87
+ * Whether the validate error from the customer validation has fired.
88
+ */
89
+ hasValidateFnError(): Promise<boolean>;
90
+ /**
91
+ * Whether label text is hidden.
92
+ */
93
+ isLabelHidden(): Promise<boolean>;
94
+ /**
95
+ * Whether file drop is required.
96
+ */
97
+ isRequired(): Promise<boolean>;
98
+ /**
99
+ * Whether file drop has stacked enabled.
100
+ */
101
+ isStacked(): Promise<boolean>;
102
+ /**
103
+ * Loads a single file.
104
+ */
105
+ loadFile(file: File): Promise<void>;
106
+ /**
107
+ * Loads multiple files.
108
+ */
109
+ loadFiles(files: File[] | null): Promise<void>;
23
110
  }
@@ -0,0 +1,28 @@
1
+ import { SkyComponentHarness } from '@skyux/core/testing';
2
+ /**
3
+ * Harness for interacting with file drop component's link upload feature in tests.
4
+ * @internal
5
+ */
6
+ export declare class SkyFileDropLinkUploadHarness extends SkyComponentHarness {
7
+ #private;
8
+ /**
9
+ * @internal
10
+ */
11
+ static hostSelector: string;
12
+ /**
13
+ * Clicks the `Done` button
14
+ */
15
+ clickDoneButton(): Promise<void>;
16
+ /**
17
+ * Enters text into the link upload input.
18
+ */
19
+ enterText(link: string): Promise<void>;
20
+ /**
21
+ * Gets the link upload aria-label.
22
+ */
23
+ getAriaLabel(): Promise<string | null>;
24
+ /**
25
+ * Gets the hint text.
26
+ */
27
+ getHintText(): Promise<string | undefined>;
28
+ }
@@ -0,0 +1,14 @@
1
+ import { SkyInputHarness } from '@skyux/core/testing';
2
+ /**
3
+ * Harness to interact with the file drop link upload input harness.
4
+ */
5
+ export declare class SkyFileDropLinkUploadInputHarness extends SkyInputHarness {
6
+ /**
7
+ * @internal
8
+ */
9
+ static hostSelector: string;
10
+ /**
11
+ * Gets the input aria-label
12
+ */
13
+ getAriaLabel(): Promise<string | null>;
14
+ }
@@ -0,0 +1,10 @@
1
+ import { SkyHarnessFilters } from '@skyux/core/testing';
2
+ /**
3
+ * A set of criteria that can be used to filter a list of `SkyFileItemHarness` instances.
4
+ */
5
+ export interface SkyFileItemHarnessFilters extends SkyHarnessFilters {
6
+ /**
7
+ * Finds files whose file name matches this value.
8
+ */
9
+ fileName: string;
10
+ }
@@ -0,0 +1,28 @@
1
+ import { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
2
+ import { SkyFileItemHarnessFilters } from './file-item-harness-filters';
3
+ /**
4
+ * Harness for interacting with a file item component in tests.
5
+ */
6
+ export declare class SkyFileItemHarness extends ComponentHarness {
7
+ /**
8
+ * @internal
9
+ */
10
+ static hostSelector: string;
11
+ /**
12
+ * Gets a `HarnessPredicate` that can be used to search for a
13
+ * `SkyFileItemHarness` that meets certain criteria.
14
+ */
15
+ static with(filters: SkyFileItemHarnessFilters): HarnessPredicate<SkyFileItemHarness>;
16
+ /**
17
+ * Clicks the delete button.
18
+ */
19
+ clickDeleteButton(): Promise<void>;
20
+ /**
21
+ * Gets the file name.
22
+ */
23
+ getFileName(): Promise<string>;
24
+ /**
25
+ * Gets the file size.
26
+ */
27
+ getFileSize(): Promise<string>;
28
+ }
@@ -1,7 +1,6 @@
1
1
  import { SkyHarnessFilters } from '@skyux/core/testing';
2
2
  /**
3
3
  * A set of criteria that can be used to filter a list of SkyInputBoxHarness instances.
4
- * @internal
5
4
  */
6
5
  export interface SkyInputBoxHarnessFilters extends SkyHarnessFilters {
7
6
  }
@@ -1,5 +1,4 @@
1
1
  import { HarnessPredicate } from '@angular/cdk/testing';
2
- import { TemplateRef } from '@angular/core';
3
2
  import { SkyQueryableComponentHarness } from '@skyux/core/testing';
4
3
  import { SkyStatusIndicatorHarness } from '@skyux/indicators/testing';
5
4
  import { SkyPopoverHarness } from '@skyux/popovers/testing';
@@ -93,7 +92,7 @@ export declare class SkyInputBoxHarness extends SkyQueryableComponentHarness {
93
92
  /**2
94
93
  * Gets the help popover content.
95
94
  */
96
- getHelpPopoverContent(): Promise<TemplateRef<unknown> | string | undefined>;
95
+ getHelpPopoverContent(): Promise<string | undefined>;
97
96
  /**
98
97
  * Gets the help popover title.
99
98
  */
@@ -1,7 +1,6 @@
1
1
  import { SkyHarnessFilters } from '@skyux/core/testing';
2
2
  /**
3
3
  * A set of criteria that can be used to filter a list of `SkyRadioGroupHarness` instances.
4
- * @internal
5
4
  */
6
5
  export interface SkyRadioGroupHarnessFilters extends SkyHarnessFilters {
7
6
  }
@@ -1,7 +1,6 @@
1
1
  import { SkyHarnessFilters } from '@skyux/core/testing';
2
2
  /**
3
3
  * A set of criteria that can be used to filter a list of `SkyRadioHarness` instances.
4
- * @internal
5
4
  */
6
5
  export interface SkyRadioHarnessFilters extends SkyHarnessFilters {
7
6
  }
@@ -13,6 +13,8 @@ export { SkyFileAttachmentHarnessFilters } from './modules/file-attachment/file-
13
13
  export { SkyFileDropHarness } from './modules/file-attachment/file-drop/file-drop-harness';
14
14
  export { SkyFileDropHarnessFilters } from './modules/file-attachment/file-drop/file-drop-harness-filters';
15
15
  export { provideSkyFileAttachmentTesting } from './modules/file-attachment/shared/provide-file-attachment-testing';
16
+ export { SkyFileItemHarness } from './modules/file-attachment/file-drop/file-item-harness';
17
+ export { SkyFileItemHarnessFilters } from './modules/file-attachment/file-drop/file-item-harness-filters';
16
18
  export { SkyFormErrorsHarness } from './modules/form-error/form-errors-harness';
17
19
  export { SkyFormErrorsHarnessFilters } from './modules/form-error/form-errors-harness.filters';
18
20
  export { SkyFormErrorHarness } from './modules/form-error/form-error-harness';