@@ -5,19 +5,30 @@ import { ifDefined } from 'lit/directives/if-defined.js';
55import { themes } from '../../theming/theming-decorator.js' ;
66import IgcButtonComponent from '../button/button.js' ;
77import { registerComponent } from '../common/definitions/register.js' ;
8+ import type { AbstractConstructor } from '../common/mixins/constructor.js' ;
9+ import { EventEmitterMixin } from '../common/mixins/event-emitter.js' ;
810import {
911 type FormValueOf ,
1012 createFormValueState ,
1113 defaultFileListTransformer ,
1214} from '../common/mixins/forms/form-value.js' ;
1315import { partMap } from '../common/part-map.js' ;
1416import { isEmpty } from '../common/util.js' ;
15- import { IgcInputBaseComponent } from '../input/input-base.js' ;
17+ import {
18+ IgcInputBaseComponent ,
19+ type IgcInputComponentEventMap ,
20+ } from '../input/input-base.js' ;
1621import IgcValidationContainerComponent from '../validation-container/validation-container.js' ;
1722import { styles } from './themes/file-input.base.css.js' ;
1823import { all } from './themes/themes.js' ;
1924import { fileValidators } from './validators.js' ;
2025
26+ export interface IgcFileInputComponentEventMap
27+ extends Omit < IgcInputComponentEventMap , 'igcChange' | 'igcInput' > {
28+ igcCancel : CustomEvent < FileList > ;
29+ igcChange : CustomEvent < FileList > ;
30+ }
31+
2132/* blazorSuppress */
2233/**
2334 * @element igc-file-input
@@ -45,9 +56,12 @@ import { fileValidators } from './validators.js';
4556 * @csspart helper-text - The helper text wrapper.
4657 */
4758@themes ( all )
48- export default class IgcFileInputComponent extends IgcInputBaseComponent {
59+ export default class IgcFileInputComponent extends EventEmitterMixin <
60+ IgcFileInputComponentEventMap ,
61+ AbstractConstructor < IgcInputBaseComponent >
62+ > ( IgcInputBaseComponent ) {
4963 public static readonly tagName = 'igc-file-input' ;
50- public static override styles = [ ...IgcInputBaseComponent . styles , styles ] ;
64+ public static styles = [ ...IgcInputBaseComponent . styles , styles ] ;
5165
5266 /* blazorSuppress */
5367 public static register ( ) : void {
@@ -152,15 +166,15 @@ export default class IgcFileInputComponent extends IgcInputBaseComponent {
152166 this . _validate ( ) ;
153167
154168 this . requestUpdate ( ) ;
155- this . emitEvent ( 'igcChange' , { detail : this . value } ) ;
169+ this . emitEvent ( 'igcChange' , { detail : this . files ! } ) ;
156170 }
157171
158172 private _handleCancel ( ) : void {
159173 this . _hasActivation = false ;
160174 this . _validate ( ) ;
161175
162176 this . emitEvent ( 'igcCancel' , {
163- detail : this . value ,
177+ detail : this . files ! ,
164178 } ) ;
165179 }
166180
0 commit comments