11import { App , Component } from 'vue'
2+ import type { FieldPluginOptions } from '@/resources/types/generic'
23
34import FieldText from '@/fields/core/FieldText.vue'
4- import FieldCheckBox from '@/fields/core/FieldCheckbox.vue'
55import FieldPassword from '@/fields/core/FieldPassword.vue'
66import FieldSelect from '@/fields/core/FieldSelect.vue'
77import FieldSelectNative from '@/fields/core/FieldSelectNative.vue'
@@ -21,20 +21,22 @@ import FieldButton from '@/fields/core/FieldButton.vue'
2121
2222
2323const 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
2726} as const
2827
2928type FieldComponentNames = keyof typeof fieldComponents
3029
3130export default {
32- install ( app : App , aliases : Partial < Record < FieldComponentNames , string > > ) {
31+ install ( app : App , options : FieldPluginOptions ) {
3332 const componentEntries = Object . entries ( fieldComponents ) as [ FieldComponentNames , Component ] [ ]
33+ const isExcluded = ( componentName : string ) => options . excludedComponents ? options . excludedComponents . includes ( componentName ) : false
3434
3535 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+ }
3840 }
3941 }
4042}
0 commit comments