1
1
import { App , Component } from 'vue'
2
+ import type { FieldPluginOptions } from '@/resources/types/generic'
2
3
3
4
import FieldText from '@/fields/core/FieldText.vue'
4
- import FieldCheckBox from '@/fields/core/FieldCheckbox.vue'
5
5
import FieldPassword from '@/fields/core/FieldPassword.vue'
6
6
import FieldSelect from '@/fields/core/FieldSelect.vue'
7
7
import FieldSelectNative from '@/fields/core/FieldSelectNative.vue'
@@ -21,20 +21,22 @@ import FieldButton from '@/fields/core/FieldButton.vue'
21
21
22
22
23
23
const fieldComponents = {
24
- FieldColor, FieldText, FieldCheckBox, FieldPassword, FieldSelect, FieldSelectNative, FieldRadio,
25
- FieldNumber, FieldSubmit, FieldReset, FieldButton, FieldSwitch, FieldTextarea, FieldMask, FieldChecklist,
26
- FieldCheckbox, FieldObject
24
+ FieldColor, FieldText, FieldPassword, FieldSelect, FieldSelectNative, FieldRadio, FieldNumber, FieldSubmit,
25
+ FieldReset, FieldButton, FieldSwitch, FieldTextarea, FieldMask, FieldChecklist, FieldCheckbox, FieldObject
27
26
} as const
28
27
29
28
type FieldComponentNames = keyof typeof fieldComponents
30
29
31
30
export default {
32
- install ( app : App , aliases : Partial < Record < FieldComponentNames , string > > ) {
31
+ install ( app : App , options : FieldPluginOptions ) {
33
32
const componentEntries = Object . entries ( fieldComponents ) as [ FieldComponentNames , Component ] [ ]
33
+ const isExcluded = ( componentName : string ) => options . excludedComponents ? options . excludedComponents . includes ( componentName ) : false
34
34
35
35
for ( const [ name , component ] of componentEntries ) {
36
- const alias : string | undefined = aliases [ name ]
37
- app . component ( alias ?? name , component )
36
+ if ( ! isExcluded ( name ) ) {
37
+ const alias : string | undefined = options . aliases ? options . aliases [ name ] : undefined
38
+ app . component ( alias ?? name , component )
39
+ }
38
40
}
39
41
}
40
42
}
0 commit comments