@finema/core 1.4.70 → 1.4.72

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 (46) hide show
  1. package/README.md +63 -63
  2. package/dist/module.json +1 -1
  3. package/dist/module.mjs +1 -1
  4. package/dist/runtime/components/Alert.vue +48 -48
  5. package/dist/runtime/components/Avatar.vue +27 -27
  6. package/dist/runtime/components/Badge.vue +53 -53
  7. package/dist/runtime/components/Breadcrumb.vue +44 -44
  8. package/dist/runtime/components/Button/Group.vue +37 -37
  9. package/dist/runtime/components/Button/index.vue +76 -76
  10. package/dist/runtime/components/Card.vue +38 -38
  11. package/dist/runtime/components/Core.vue +13 -13
  12. package/dist/runtime/components/Dialog/index.vue +108 -108
  13. package/dist/runtime/components/Dropdown/index.vue +70 -70
  14. package/dist/runtime/components/Form/FieldWrapper.vue +23 -23
  15. package/dist/runtime/components/Form/Fields.vue +153 -153
  16. package/dist/runtime/components/Form/InputCheckbox/index.vue +21 -21
  17. package/dist/runtime/components/Form/InputDateTime/index.vue +60 -60
  18. package/dist/runtime/components/Form/InputRadio/index.vue +27 -27
  19. package/dist/runtime/components/Form/InputSelect/index.vue +36 -36
  20. package/dist/runtime/components/Form/InputStatic/index.vue +16 -16
  21. package/dist/runtime/components/Form/InputText/index.vue +54 -54
  22. package/dist/runtime/components/Form/InputTextarea/index.vue +25 -25
  23. package/dist/runtime/components/Form/InputToggle/index.vue +14 -14
  24. package/dist/runtime/components/Form/InputUploadDropzone/index.vue +158 -157
  25. package/dist/runtime/components/Form/InputUploadDropzoneAuto/index.vue +242 -241
  26. package/dist/runtime/components/Form/InputUploadFileClassic/index.vue +102 -101
  27. package/dist/runtime/components/Form/InputUploadFileClassicAuto/index.vue +166 -165
  28. package/dist/runtime/components/Form/index.vue +6 -6
  29. package/dist/runtime/components/Icon.vue +23 -23
  30. package/dist/runtime/components/Image.vue +36 -36
  31. package/dist/runtime/components/Loader.vue +14 -14
  32. package/dist/runtime/components/Modal/index.vue +146 -146
  33. package/dist/runtime/components/SimplePagination.vue +96 -96
  34. package/dist/runtime/components/Slideover/index.vue +110 -110
  35. package/dist/runtime/components/Table/Base.vue +139 -139
  36. package/dist/runtime/components/Table/ColumnDate.vue +16 -16
  37. package/dist/runtime/components/Table/ColumnDateTime.vue +18 -18
  38. package/dist/runtime/components/Table/ColumnImage.vue +15 -15
  39. package/dist/runtime/components/Table/ColumnNumber.vue +14 -14
  40. package/dist/runtime/components/Table/ColumnText.vue +25 -25
  41. package/dist/runtime/components/Table/Simple.vue +64 -64
  42. package/dist/runtime/components/Table/index.vue +60 -60
  43. package/dist/runtime/components/Tabs/index.vue +64 -64
  44. package/dist/runtime/composables/useForm.d.ts +2 -2
  45. package/dist/runtime/ui.css +32 -32
  46. package/package.json +88 -88
@@ -1,153 +1,153 @@
1
- <template>
2
- <div :class="['fields', $props.class]">
3
- <template
4
- v-for="(option, index) in options.filter((item) => !item.isHide)"
5
- :key="option.props.name + index + option.type"
6
- >
7
- <FormInputStatic
8
- v-if="option.type === INPUT_TYPES.STATIC"
9
- :class="option.class"
10
- :form="form"
11
- v-bind="getFieldBinding(option)"
12
- v-on="option.on ?? {}"
13
- />
14
- <FormInputText
15
- v-else-if="option.type === INPUT_TYPES.TEXT"
16
- :class="option.class"
17
- :form="form"
18
- v-bind="getFieldBinding(option)"
19
- v-on="option.on ?? {}"
20
- />
21
- <FormInputText
22
- v-else-if="option.type === INPUT_TYPES.PASSWORD"
23
- :class="option.class"
24
- type="password"
25
- :form="form"
26
- v-bind="getFieldBinding(option)"
27
- v-on="option.on ?? {}"
28
- />
29
- <FormInputText
30
- v-else-if="option.type === INPUT_TYPES.EMAIL"
31
- :class="option.class"
32
- type="email"
33
- :form="form"
34
- v-bind="getFieldBinding(option)"
35
- v-on="option.on ?? {}"
36
- />
37
- <FormInputTextarea
38
- v-else-if="option.type === INPUT_TYPES.TEXTAREA"
39
- :class="option.class"
40
- :form="form"
41
- v-bind="getFieldBinding(option)"
42
- v-on="option.on ?? {}"
43
- />
44
- <FormInputToggle
45
- v-else-if="option.type === INPUT_TYPES.TOGGLE"
46
- :class="option.class"
47
- :form="form"
48
- v-bind="getFieldBinding(option)"
49
- v-on="option.on ?? {}"
50
- />
51
- <FormInputSelect
52
- v-else-if="option.type === INPUT_TYPES.SELECT"
53
- :class="option.class"
54
- :form="form"
55
- :options="option.props.options"
56
- v-bind="getFieldBinding(option)"
57
- v-on="option.on ?? {}"
58
- />
59
- <FormInputRadio
60
- v-else-if="option.type === INPUT_TYPES.RADIO"
61
- :class="option.class"
62
- :form="form"
63
- :options="option.props.options"
64
- v-bind="getFieldBinding(option)"
65
- v-on="option.on ?? {}"
66
- />
67
- <FormInputCheckbox
68
- v-else-if="option.type === INPUT_TYPES.CHECKBOX"
69
- :class="option.class"
70
- :form="form"
71
- v-bind="getFieldBinding(option)"
72
- v-on="option.on ?? {}"
73
- />
74
- <FormInputDateTime
75
- v-else-if="option.type === INPUT_TYPES.DATE_TIME"
76
- :class="option.class"
77
- :form="form"
78
- v-bind="getFieldBinding(option)"
79
- v-on="option.on ?? {}"
80
- />
81
- <FormInputDateTime
82
- v-else-if="option.type === INPUT_TYPES.DATE"
83
- :class="option.class"
84
- :form="form"
85
- v-bind="getFieldBinding(option)"
86
- :disabled-time="true"
87
- v-on="option.on ?? {}"
88
- />
89
- <FormInputUploadFileClassic
90
- v-else-if="option.type === INPUT_TYPES.UPLOAD_FILE_CLASSIC"
91
- :class="option.class"
92
- :form="form"
93
- v-bind="getFieldBinding(option)"
94
- v-on="option.on ?? {}"
95
- />
96
- <FormInputUploadFileClassicAuto
97
- v-else-if="option.type === INPUT_TYPES.UPLOAD_FILE_CLASSIC_AUTO"
98
- :class="option.class"
99
- :form="form"
100
- v-bind="getFieldBinding(option)"
101
- v-on="option.on ?? {}"
102
- />
103
- <FormInputUploadDropzone
104
- v-else-if="option.type === INPUT_TYPES.UPLOAD_DROPZONE"
105
- :class="option.class"
106
- :form="form"
107
- v-bind="getFieldBinding(option)"
108
- v-on="option.on ?? {}"
109
- />
110
- <FormInputUploadDropzoneAuto
111
- v-else-if="option.type === INPUT_TYPES.UPLOAD_DROPZONE_AUTO"
112
- :class="option.class"
113
- :form="form"
114
- :request-options="option.props.requestOptions"
115
- v-bind="getFieldBinding(option)"
116
- v-on="option.on ?? {}"
117
- />
118
- </template>
119
- </div>
120
- </template>
121
- <script lang="ts" setup>
122
- import { type FormContext } from 'vee-validate'
123
- import { type IFormField, INPUT_TYPES } from '#core/components/Form/types'
124
-
125
- const props = withDefaults(
126
- defineProps<{
127
- form?: FormContext
128
- options: IFormField[]
129
- orientation?: 'horizontal' | 'vertical'
130
- class?: any
131
- }>(),
132
- {
133
- class: 'space-y-4',
134
- orientation: 'vertical',
135
- }
136
- )
137
-
138
- const getFieldBinding = (field: IFormField) => {
139
- if (props.orientation === 'horizontal') {
140
- return {
141
- ...field.props,
142
- containerUi: {
143
- ...field.props.containerUi,
144
- wrapper:
145
- 'lg:grid lg:grid-cols-3 lg:gap-4 lg:items-start ' + field.props.containerUi?.wrapper,
146
- container: 'lg:col-span-2 ' + field.props.containerUi?.container,
147
- },
148
- }
149
- }
150
-
151
- return field.props
152
- }
153
- </script>
1
+ <template>
2
+ <div :class="['fields', $props.class]">
3
+ <template
4
+ v-for="(option, index) in options.filter((item) => !item.isHide)"
5
+ :key="option.props.name + index + option.type"
6
+ >
7
+ <FormInputStatic
8
+ v-if="option.type === INPUT_TYPES.STATIC"
9
+ :class="option.class"
10
+ :form="form"
11
+ v-bind="getFieldBinding(option)"
12
+ v-on="option.on ?? {}"
13
+ />
14
+ <FormInputText
15
+ v-else-if="option.type === INPUT_TYPES.TEXT"
16
+ :class="option.class"
17
+ :form="form"
18
+ v-bind="getFieldBinding(option)"
19
+ v-on="option.on ?? {}"
20
+ />
21
+ <FormInputText
22
+ v-else-if="option.type === INPUT_TYPES.PASSWORD"
23
+ :class="option.class"
24
+ type="password"
25
+ :form="form"
26
+ v-bind="getFieldBinding(option)"
27
+ v-on="option.on ?? {}"
28
+ />
29
+ <FormInputText
30
+ v-else-if="option.type === INPUT_TYPES.EMAIL"
31
+ :class="option.class"
32
+ type="email"
33
+ :form="form"
34
+ v-bind="getFieldBinding(option)"
35
+ v-on="option.on ?? {}"
36
+ />
37
+ <FormInputTextarea
38
+ v-else-if="option.type === INPUT_TYPES.TEXTAREA"
39
+ :class="option.class"
40
+ :form="form"
41
+ v-bind="getFieldBinding(option)"
42
+ v-on="option.on ?? {}"
43
+ />
44
+ <FormInputToggle
45
+ v-else-if="option.type === INPUT_TYPES.TOGGLE"
46
+ :class="option.class"
47
+ :form="form"
48
+ v-bind="getFieldBinding(option)"
49
+ v-on="option.on ?? {}"
50
+ />
51
+ <FormInputSelect
52
+ v-else-if="option.type === INPUT_TYPES.SELECT"
53
+ :class="option.class"
54
+ :form="form"
55
+ :options="option.props.options"
56
+ v-bind="getFieldBinding(option)"
57
+ v-on="option.on ?? {}"
58
+ />
59
+ <FormInputRadio
60
+ v-else-if="option.type === INPUT_TYPES.RADIO"
61
+ :class="option.class"
62
+ :form="form"
63
+ :options="option.props.options"
64
+ v-bind="getFieldBinding(option)"
65
+ v-on="option.on ?? {}"
66
+ />
67
+ <FormInputCheckbox
68
+ v-else-if="option.type === INPUT_TYPES.CHECKBOX"
69
+ :class="option.class"
70
+ :form="form"
71
+ v-bind="getFieldBinding(option)"
72
+ v-on="option.on ?? {}"
73
+ />
74
+ <FormInputDateTime
75
+ v-else-if="option.type === INPUT_TYPES.DATE_TIME"
76
+ :class="option.class"
77
+ :form="form"
78
+ v-bind="getFieldBinding(option)"
79
+ v-on="option.on ?? {}"
80
+ />
81
+ <FormInputDateTime
82
+ v-else-if="option.type === INPUT_TYPES.DATE"
83
+ :class="option.class"
84
+ :form="form"
85
+ v-bind="getFieldBinding(option)"
86
+ :disabled-time="true"
87
+ v-on="option.on ?? {}"
88
+ />
89
+ <FormInputUploadFileClassic
90
+ v-else-if="option.type === INPUT_TYPES.UPLOAD_FILE_CLASSIC"
91
+ :class="option.class"
92
+ :form="form"
93
+ v-bind="getFieldBinding(option)"
94
+ v-on="option.on ?? {}"
95
+ />
96
+ <FormInputUploadFileClassicAuto
97
+ v-else-if="option.type === INPUT_TYPES.UPLOAD_FILE_CLASSIC_AUTO"
98
+ :class="option.class"
99
+ :form="form"
100
+ v-bind="getFieldBinding(option)"
101
+ v-on="option.on ?? {}"
102
+ />
103
+ <FormInputUploadDropzone
104
+ v-else-if="option.type === INPUT_TYPES.UPLOAD_DROPZONE"
105
+ :class="option.class"
106
+ :form="form"
107
+ v-bind="getFieldBinding(option)"
108
+ v-on="option.on ?? {}"
109
+ />
110
+ <FormInputUploadDropzoneAuto
111
+ v-else-if="option.type === INPUT_TYPES.UPLOAD_DROPZONE_AUTO"
112
+ :class="option.class"
113
+ :form="form"
114
+ :request-options="option.props.requestOptions"
115
+ v-bind="getFieldBinding(option)"
116
+ v-on="option.on ?? {}"
117
+ />
118
+ </template>
119
+ </div>
120
+ </template>
121
+ <script lang="ts" setup>
122
+ import { type FormContext } from 'vee-validate'
123
+ import { type IFormField, INPUT_TYPES } from '#core/components/Form/types'
124
+
125
+ const props = withDefaults(
126
+ defineProps<{
127
+ form?: FormContext
128
+ options: IFormField[]
129
+ orientation?: 'horizontal' | 'vertical'
130
+ class?: any
131
+ }>(),
132
+ {
133
+ class: 'space-y-4',
134
+ orientation: 'vertical',
135
+ }
136
+ )
137
+
138
+ const getFieldBinding = (field: IFormField) => {
139
+ if (props.orientation === 'horizontal') {
140
+ return {
141
+ ...field.props,
142
+ containerUi: {
143
+ ...field.props.containerUi,
144
+ wrapper:
145
+ 'lg:grid lg:grid-cols-3 lg:gap-4 lg:items-start ' + field.props.containerUi?.wrapper,
146
+ container: 'lg:col-span-2 ' + field.props.containerUi?.container,
147
+ },
148
+ }
149
+ }
150
+
151
+ return field.props
152
+ }
153
+ </script>
@@ -1,21 +1,21 @@
1
- <template>
2
- <FieldWrapper v-bind="wrapperProps" label="">
3
- <UCheckbox
4
- v-model="value"
5
- :disabled="wrapperProps.isDisabled"
6
- :name="name"
7
- :label="props.label"
8
- :required="isRequired"
9
- :ui="ui"
10
- />
11
- </FieldWrapper>
12
- </template>
13
- <script lang="ts" setup>
14
- import { useFieldHOC } from '#core/composables/useForm'
15
- import FieldWrapper from '#core/components/Form/FieldWrapper.vue'
16
- import { type ICheckboxFieldProps } from '#core/components/Form/InputCheckbox/types'
17
-
18
- const props = withDefaults(defineProps<ICheckboxFieldProps>(), {})
19
-
20
- const { value, wrapperProps } = useFieldHOC<boolean>(props)
21
- </script>
1
+ <template>
2
+ <FieldWrapper v-bind="wrapperProps" label="">
3
+ <UCheckbox
4
+ v-model="value"
5
+ :disabled="wrapperProps.isDisabled"
6
+ :name="name"
7
+ :label="props.label"
8
+ :required="isRequired"
9
+ :ui="ui"
10
+ />
11
+ </FieldWrapper>
12
+ </template>
13
+ <script lang="ts" setup>
14
+ import { useFieldHOC } from '#core/composables/useForm'
15
+ import FieldWrapper from '#core/components/Form/FieldWrapper.vue'
16
+ import { type ICheckboxFieldProps } from '#core/components/Form/InputCheckbox/types'
17
+
18
+ const props = withDefaults(defineProps<ICheckboxFieldProps>(), {})
19
+
20
+ const { value, wrapperProps } = useFieldHOC<boolean>(props)
21
+ </script>
@@ -1,60 +1,60 @@
1
- <template>
2
- <FieldWrapper v-bind="wrapperProps">
3
- <Datepicker
4
- :model-value="value"
5
- :disabled="wrapperProps.isDisabled"
6
- cancel-text="ยกเลิก"
7
- select-text="เลือก"
8
- locale="th"
9
- :enable-time-picker="!disabledTime"
10
- :placeholder="wrapperProps.placeholder"
11
- :format="format"
12
- :min-date="minDate"
13
- :max-date="maxDate"
14
- :min-time="minTime"
15
- :max-time="maxTime"
16
- :start-time="startTime"
17
- :required="isRequired"
18
- time-picker-inline
19
- @update:model-value="onInput"
20
- >
21
- <template #dp-input="{ value: innerValue }">
22
- <UInput
23
- :trailing-icon="innerValue ? undefined : 'i-heroicons-calendar-days'"
24
- type="text"
25
- :value="innerValue"
26
- :placeholder="wrapperProps.placeholder"
27
- :readonly="true"
28
- input-class="cursor-pointer select-none"
29
- />
30
- </template>
31
- </Datepicker>
32
- </FieldWrapper>
33
- </template>
34
- <script lang="ts" setup>
35
- import Datepicker from '@vuepic/vue-datepicker'
36
- import FieldWrapper from '#core/components/Form/FieldWrapper.vue'
37
- import { type IDateTimeFieldProps } from '#core/components/Form/InputDateTime/date_time_field.types'
38
- import { TimeHelper, useFieldHOC } from '#imports'
39
- import '@vuepic/vue-datepicker/dist/main.css'
40
-
41
- const props = withDefaults(defineProps<IDateTimeFieldProps>(), {})
42
-
43
- const { value, wrapperProps } = useFieldHOC<string>(props)
44
-
45
- const format = (date: Date) => {
46
- if (props.disabledTime) {
47
- return TimeHelper.displayDate(date)
48
- }
49
-
50
- return TimeHelper.displayDateTime(date)
51
- }
52
-
53
- const onInput = (_value: any) => {
54
- if (props.disabledTime && !props.isReturnISO) {
55
- value.value = TimeHelper.getDateFormTime(_value)
56
- } else {
57
- value.value = _value
58
- }
59
- }
60
- </script>
1
+ <template>
2
+ <FieldWrapper v-bind="wrapperProps">
3
+ <Datepicker
4
+ :model-value="value"
5
+ :disabled="wrapperProps.isDisabled"
6
+ cancel-text="ยกเลิก"
7
+ select-text="เลือก"
8
+ locale="th"
9
+ :enable-time-picker="!disabledTime"
10
+ :placeholder="wrapperProps.placeholder"
11
+ :format="format"
12
+ :min-date="minDate"
13
+ :max-date="maxDate"
14
+ :min-time="minTime"
15
+ :max-time="maxTime"
16
+ :start-time="startTime"
17
+ :required="isRequired"
18
+ time-picker-inline
19
+ @update:model-value="onInput"
20
+ >
21
+ <template #dp-input="{ value: innerValue }">
22
+ <UInput
23
+ :trailing-icon="innerValue ? undefined : 'i-heroicons-calendar-days'"
24
+ type="text"
25
+ :value="innerValue"
26
+ :placeholder="wrapperProps.placeholder"
27
+ :readonly="true"
28
+ input-class="cursor-pointer select-none"
29
+ />
30
+ </template>
31
+ </Datepicker>
32
+ </FieldWrapper>
33
+ </template>
34
+ <script lang="ts" setup>
35
+ import Datepicker from '@vuepic/vue-datepicker'
36
+ import FieldWrapper from '#core/components/Form/FieldWrapper.vue'
37
+ import { type IDateTimeFieldProps } from '#core/components/Form/InputDateTime/date_time_field.types'
38
+ import { TimeHelper, useFieldHOC } from '#imports'
39
+ import '@vuepic/vue-datepicker/dist/main.css'
40
+
41
+ const props = withDefaults(defineProps<IDateTimeFieldProps>(), {})
42
+
43
+ const { value, wrapperProps } = useFieldHOC<string>(props)
44
+
45
+ const format = (date: Date) => {
46
+ if (props.disabledTime) {
47
+ return TimeHelper.displayDate(date)
48
+ }
49
+
50
+ return TimeHelper.displayDateTime(date)
51
+ }
52
+
53
+ const onInput = (_value: any) => {
54
+ if (props.disabledTime && !props.isReturnISO) {
55
+ value.value = TimeHelper.getDateFormTime(_value)
56
+ } else {
57
+ value.value = _value
58
+ }
59
+ }
60
+ </script>
@@ -1,27 +1,27 @@
1
- <template>
2
- <FieldWrapper v-bind="wrapperProps">
3
- <URadioGroup
4
- v-model="value"
5
- :options="options"
6
- :disabled="wrapperProps.isDisabled"
7
- :required="isRequired"
8
- value-attribute="value"
9
- option-attribute="label"
10
- :icon="icon"
11
- :color="color"
12
- :size="size"
13
- :ui="ui"
14
- :ui-menu="uiMenu"
15
- />
16
- </FieldWrapper>
17
- </template>
18
-
19
- <script lang="ts" setup>
20
- import FieldWrapper from '#core/components/Form/FieldWrapper.vue'
21
- import { useFieldHOC } from '#core/composables/useForm'
22
- import { type ISelectFieldProps } from '#core/components/Form/InputSelect/types'
23
-
24
- const props = withDefaults(defineProps<ISelectFieldProps>(), {})
25
-
26
- const { value, wrapperProps } = useFieldHOC<any>(props)
27
- </script>
1
+ <template>
2
+ <FieldWrapper v-bind="wrapperProps">
3
+ <URadioGroup
4
+ v-model="value"
5
+ :options="options"
6
+ :disabled="wrapperProps.isDisabled"
7
+ :required="isRequired"
8
+ value-attribute="value"
9
+ option-attribute="label"
10
+ :icon="icon"
11
+ :color="color"
12
+ :size="size"
13
+ :ui="ui"
14
+ :ui-menu="uiMenu"
15
+ />
16
+ </FieldWrapper>
17
+ </template>
18
+
19
+ <script lang="ts" setup>
20
+ import FieldWrapper from '#core/components/Form/FieldWrapper.vue'
21
+ import { useFieldHOC } from '#core/composables/useForm'
22
+ import { type ISelectFieldProps } from '#core/components/Form/InputSelect/types'
23
+
24
+ const props = withDefaults(defineProps<ISelectFieldProps>(), {})
25
+
26
+ const { value, wrapperProps } = useFieldHOC<any>(props)
27
+ </script>
@@ -1,36 +1,36 @@
1
- <template>
2
- <FieldWrapper v-bind="wrapperProps">
3
- <USelectMenu
4
- v-model="value"
5
- searchable
6
- :options="options"
7
- :placeholder="placeholder || label"
8
- :disabled="wrapperProps.isDisabled"
9
- :loading="loading"
10
- :searchable-placeholder="searchablePlaceholder"
11
- value-attribute="value"
12
- option-attribute="label"
13
- :icon="icon"
14
- :color="color"
15
- :size="size"
16
- :ui="ui"
17
- :ui-menu="uiMenu"
18
- >
19
- <template #label>
20
- <span v-if="value" class="truncate">
21
- {{ options.find((item) => item.value === value)?.label || value }}
22
- </span>
23
- </template>
24
- </USelectMenu>
25
- </FieldWrapper>
26
- </template>
27
-
28
- <script lang="ts" setup>
29
- import FieldWrapper from '#core/components/Form/FieldWrapper.vue'
30
- import { useFieldHOC } from '#core/composables/useForm'
31
- import { type ISelectFieldProps } from '#core/components/Form/InputSelect/types'
32
-
33
- const props = withDefaults(defineProps<ISelectFieldProps>(), {})
34
-
35
- const { value, wrapperProps } = useFieldHOC<any>(props)
36
- </script>
1
+ <template>
2
+ <FieldWrapper v-bind="wrapperProps">
3
+ <USelectMenu
4
+ v-model="value"
5
+ searchable
6
+ :options="options"
7
+ :placeholder="placeholder || label"
8
+ :disabled="wrapperProps.isDisabled"
9
+ :loading="loading"
10
+ :searchable-placeholder="searchablePlaceholder"
11
+ value-attribute="value"
12
+ option-attribute="label"
13
+ :icon="icon"
14
+ :color="color"
15
+ :size="size"
16
+ :ui="ui"
17
+ :ui-menu="uiMenu"
18
+ >
19
+ <template #label>
20
+ <span v-if="value" class="truncate">
21
+ {{ options.find((item) => item.value === value)?.label || value }}
22
+ </span>
23
+ </template>
24
+ </USelectMenu>
25
+ </FieldWrapper>
26
+ </template>
27
+
28
+ <script lang="ts" setup>
29
+ import FieldWrapper from '#core/components/Form/FieldWrapper.vue'
30
+ import { useFieldHOC } from '#core/composables/useForm'
31
+ import { type ISelectFieldProps } from '#core/components/Form/InputSelect/types'
32
+
33
+ const props = withDefaults(defineProps<ISelectFieldProps>(), {})
34
+
35
+ const { value, wrapperProps } = useFieldHOC<any>(props)
36
+ </script>
@@ -1,16 +1,16 @@
1
- <template>
2
- <FieldWrapper v-bind="wrapperProps" :is-required="false">
3
- <p class="form-control-static">
4
- {{ !value || value.length === 0 ? '-' : value }}
5
- </p>
6
- </FieldWrapper>
7
- </template>
8
- <script lang="ts" setup>
9
- import { type IStaticFieldProps } from '#core/components/Form/InputStatic/types'
10
- import { useFieldHOC } from '#core/composables/useForm'
11
- import FieldWrapper from '#core/components/Form/FieldWrapper.vue'
12
-
13
- const props = withDefaults(defineProps<IStaticFieldProps>(), {})
14
-
15
- const { value, wrapperProps } = useFieldHOC<string>(props)
16
- </script>
1
+ <template>
2
+ <FieldWrapper v-bind="wrapperProps" :is-required="false">
3
+ <p class="form-control-static">
4
+ {{ !value || value.length === 0 ? '-' : value }}
5
+ </p>
6
+ </FieldWrapper>
7
+ </template>
8
+ <script lang="ts" setup>
9
+ import { type IStaticFieldProps } from '#core/components/Form/InputStatic/types'
10
+ import { useFieldHOC } from '#core/composables/useForm'
11
+ import FieldWrapper from '#core/components/Form/FieldWrapper.vue'
12
+
13
+ const props = withDefaults(defineProps<IStaticFieldProps>(), {})
14
+
15
+ const { value, wrapperProps } = useFieldHOC<string>(props)
16
+ </script>