@@ -80,6 +80,16 @@ export interface ShowSearchType {
80
80
limit ?: number | false ;
81
81
}
82
82
83
+ export interface EmptyFilteredOptionsType {
84
+ disabled : boolean ;
85
+ [ key : string ] : any ;
86
+ }
87
+
88
+ export interface FilteredOptionsType extends EmptyFilteredOptionsType {
89
+ __IS_FILTERED_OPTION : boolean ;
90
+ path : CascaderOptionType [ ] ;
91
+ }
92
+
83
93
// const ShowSearchType = PropTypes.shape({
84
94
// filter: PropTypes.func,
85
95
// render: PropTypes.func,
@@ -217,11 +227,13 @@ const Cascader = defineComponent({
217
227
data ( ) {
218
228
const { value, defaultValue, popupVisible, showSearch, options } = this . $props ;
219
229
return {
220
- sValue : value || defaultValue || [ ] ,
230
+ sValue : ( value || defaultValue || [ ] ) as any [ ] ,
221
231
inputValue : '' ,
222
232
inputFocused : false ,
223
- sPopupVisible : popupVisible ,
224
- flattenOptions : showSearch ? flattenTree ( options , this . $props ) : undefined ,
233
+ sPopupVisible : popupVisible as boolean ,
234
+ flattenOptions : showSearch
235
+ ? flattenTree ( options as CascaderOptionType [ ] , this . $props )
236
+ : undefined ,
225
237
} ;
226
238
} ,
227
239
watch : {
@@ -311,7 +323,7 @@ const Cascader = defineComponent({
311
323
312
324
handleInputClick ( e : MouseEvent & { nativeEvent ?: any } ) {
313
325
const { inputFocused, sPopupVisible } = this ;
314
- // Prevent `Trigger` behaviour .
326
+ // Prevent `Trigger` behavior .
315
327
if ( inputFocused || sPopupVisible ) {
316
328
e . stopPropagation ( ) ;
317
329
if ( e . nativeEvent && e . nativeEvent . stopImmediatePropagation ) {
@@ -346,8 +358,8 @@ const Cascader = defineComponent({
346
358
const displayRender = getComponent ( this , 'displayRender' , { } , false ) || defaultDisplayRender ;
347
359
const value = this . sValue ;
348
360
const unwrappedValue = Array . isArray ( value [ 0 ] ) ? value [ 0 ] : value ;
349
- const selectedOptions = arrayTreeFilter (
350
- options ,
361
+ const selectedOptions = arrayTreeFilter < CascaderOptionType > (
362
+ options as CascaderOptionType [ ] ,
351
363
( o , level ) => o [ names . value ] === unwrappedValue [ level ] ,
352
364
{ childrenKeyName : names . children } ,
353
365
) ;
@@ -366,7 +378,10 @@ const Cascader = defineComponent({
366
378
}
367
379
} ,
368
380
369
- generateFilteredOptions ( prefixCls : string | undefined , renderEmpty : RenderEmptyHandler ) {
381
+ generateFilteredOptions (
382
+ prefixCls : string | undefined ,
383
+ renderEmpty : RenderEmptyHandler ,
384
+ ) : EmptyFilteredOptionsType [ ] | FilteredOptionsType [ ] {
370
385
const { showSearch, notFoundContent } = this ;
371
386
const names : FilledFieldNamesType = getFilledFieldNames ( this . $props ) ;
372
387
const {
0 commit comments