@finema/core 1.4.217 → 1.4.218

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 (67) hide show
  1. package/README.md +60 -60
  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 +11 -11
  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 +75 -75
  10. package/dist/runtime/components/Card.vue +38 -38
  11. package/dist/runtime/components/Core.vue +45 -45
  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/Empty.vue +18 -18
  15. package/dist/runtime/components/FlexDeck/Base.vue +159 -159
  16. package/dist/runtime/components/FlexDeck/index.vue +68 -68
  17. package/dist/runtime/components/Form/FieldWrapper.vue +23 -23
  18. package/dist/runtime/components/Form/Fields.vue +230 -230
  19. package/dist/runtime/components/Form/InputCheckbox/index.vue +28 -28
  20. package/dist/runtime/components/Form/InputDateTime/index.vue +68 -68
  21. package/dist/runtime/components/Form/InputDateTimeRange/index.vue +91 -91
  22. package/dist/runtime/components/Form/InputNumber/index.vue +27 -27
  23. package/dist/runtime/components/Form/InputRadio/index.vue +27 -27
  24. package/dist/runtime/components/Form/InputSelect/index.vue +55 -55
  25. package/dist/runtime/components/Form/InputSelectMultiple/index.vue +54 -54
  26. package/dist/runtime/components/Form/InputStatic/index.vue +16 -16
  27. package/dist/runtime/components/Form/InputTags/index.vue +141 -141
  28. package/dist/runtime/components/Form/InputText/index.vue +68 -68
  29. package/dist/runtime/components/Form/InputTextarea/index.vue +25 -25
  30. package/dist/runtime/components/Form/InputToggle/index.vue +27 -27
  31. package/dist/runtime/components/Form/InputUploadDropzone/index.vue +206 -206
  32. package/dist/runtime/components/Form/InputUploadDropzoneAuto/index.vue +362 -350
  33. package/dist/runtime/components/Form/InputUploadDropzoneAutoMultiple/ItemUpload.vue +241 -241
  34. package/dist/runtime/components/Form/InputUploadDropzoneAutoMultiple/ItemView.vue +110 -102
  35. package/dist/runtime/components/Form/InputUploadDropzoneAutoMultiple/index.vue +171 -171
  36. package/dist/runtime/components/Form/InputUploadDropzoneImageAutoMultiple/ItemUpload.vue +161 -161
  37. package/dist/runtime/components/Form/InputUploadDropzoneImageAutoMultiple/ItemView.vue +64 -64
  38. package/dist/runtime/components/Form/InputUploadDropzoneImageAutoMultiple/index.vue +178 -178
  39. package/dist/runtime/components/Form/InputUploadFileClassic/index.vue +95 -95
  40. package/dist/runtime/components/Form/InputUploadFileClassicAuto/index.vue +151 -151
  41. package/dist/runtime/components/Form/InputUploadImageAuto/index.vue +219 -219
  42. package/dist/runtime/components/Form/InputWYSIWYG/UploadImageForm.vue +55 -55
  43. package/dist/runtime/components/Form/InputWYSIWYG/index.vue +228 -228
  44. package/dist/runtime/components/Form/index.vue +6 -6
  45. package/dist/runtime/components/Icon.vue +23 -23
  46. package/dist/runtime/components/Image.vue +36 -36
  47. package/dist/runtime/components/Loader.vue +27 -27
  48. package/dist/runtime/components/Log.vue +22 -22
  49. package/dist/runtime/components/LogItem.vue +41 -41
  50. package/dist/runtime/components/Modal/index.vue +146 -146
  51. package/dist/runtime/components/OTPInput.vue +127 -127
  52. package/dist/runtime/components/QRCode.vue +22 -22
  53. package/dist/runtime/components/SimplePagination.vue +96 -96
  54. package/dist/runtime/components/Slideover/index.vue +110 -110
  55. package/dist/runtime/components/Table/Base.vue +161 -161
  56. package/dist/runtime/components/Table/ColumnDate.vue +16 -16
  57. package/dist/runtime/components/Table/ColumnDateTime.vue +18 -18
  58. package/dist/runtime/components/Table/ColumnImage.vue +15 -15
  59. package/dist/runtime/components/Table/ColumnNumber.vue +14 -14
  60. package/dist/runtime/components/Table/ColumnText.vue +29 -29
  61. package/dist/runtime/components/Table/Simple.vue +70 -70
  62. package/dist/runtime/components/Table/index.vue +65 -65
  63. package/dist/runtime/components/Tabs/index.vue +64 -64
  64. package/dist/runtime/components/TeleportSafe.vue +40 -40
  65. package/dist/runtime/helpers/componentHelper.d.ts +1 -0
  66. package/dist/runtime/helpers/componentHelper.mjs +5 -0
  67. package/package.json +100 -100
@@ -1,91 +1,91 @@
1
- <template>
2
- <FieldWrapper v-bind="wrapperProps">
3
- <Datepicker
4
- ref="datepicker"
5
- v-model="innerValueRef"
6
- :disabled="wrapperProps.isDisabled"
7
- cancel-text="ยกเลิก"
8
- select-text="เลือก"
9
- locale="th"
10
- :format="format"
11
- :enable-time-picker="!disabledTime"
12
- :placeholder="wrapperProps.placeholder"
13
- :min-date="minDate"
14
- :max-date="maxDate"
15
- :min-time="minTime"
16
- :max-time="maxTime"
17
- :start-time="startTime"
18
- :multi-calendars="!isDisabledMultiCalendar"
19
- :required="isRequired"
20
- time-picker-inline
21
- range
22
- @update:model-value="onInput"
23
- >
24
- <template v-if="appConfig.core?.is_thai_year" #year="{ value }">
25
- {{ value + 543 }}
26
- </template>
27
- <template v-if="appConfig.core?.is_thai_year" #year-overlay-value="{ value }">
28
- {{ value + 543 }}
29
- </template>
30
- <template #dp-input="{ value: innerValue }">
31
- <UInput
32
- :trailing-icon="innerValue ? undefined : 'i-heroicons-calendar-days'"
33
- type="text"
34
- :model-value="innerValue"
35
- :placeholder="wrapperProps.placeholder"
36
- :readonly="true"
37
- input-class="cursor-pointer select-none"
38
- />
39
- </template>
40
- </Datepicker>
41
- </FieldWrapper>
42
- </template>
43
- <script lang="ts" setup>
44
- import Datepicker from '@vuepic/vue-datepicker'
45
- import FieldWrapper from '#core/components/Form/FieldWrapper.vue'
46
- import { TimeHelper, ref, useFieldHOC, useAppConfig } from '#imports'
47
- import '@vuepic/vue-datepicker/dist/main.css'
48
- import type {
49
- IDateTimeRangeFieldProps,
50
- IDateTimeRangeResponse,
51
- } from './date_range_time_field.types'
52
-
53
- const props = withDefaults(defineProps<IDateTimeRangeFieldProps>(), {})
54
-
55
- const appConfig = useAppConfig()
56
- const { value, wrapperProps } = useFieldHOC<IDateTimeRangeResponse | null>(props)
57
-
58
- const innerValueRef = ref<Date[]>([])
59
-
60
- const format = (date: Date[]) => {
61
- if (props.disabledTime) {
62
- return date.length > 0
63
- ? TimeHelper.displayDate(date[0]) + ' - ' + TimeHelper.displayDate(date[1] ?? date[0])
64
- : ''
65
- }
66
-
67
- return date.length > 0
68
- ? TimeHelper.displayDateTime(date[0]) + ' - ' + TimeHelper.displayDateTime(date[1] ?? date[0])
69
- : ''
70
- }
71
-
72
- const onInput = (_value: Date[]) => {
73
- if (_value === null) {
74
- value.value = null
75
-
76
- return
77
- }
78
-
79
- if (props.disabledTime && !props.isReturnISO) {
80
- value.value = <IDateTimeRangeResponse>{
81
- start: TimeHelper.getDateFormTime(_value[0]),
82
- end: TimeHelper.getDateFormTime(_value[1] || _value[0]),
83
- }
84
- } else {
85
- value.value = <IDateTimeRangeResponse>{
86
- start: _value[0],
87
- end: _value[1] || _value[0],
88
- }
89
- }
90
- }
91
- </script>
1
+ <template>
2
+ <FieldWrapper v-bind="wrapperProps">
3
+ <Datepicker
4
+ ref="datepicker"
5
+ v-model="innerValueRef"
6
+ :disabled="wrapperProps.isDisabled"
7
+ cancel-text="ยกเลิก"
8
+ select-text="เลือก"
9
+ locale="th"
10
+ :format="format"
11
+ :enable-time-picker="!disabledTime"
12
+ :placeholder="wrapperProps.placeholder"
13
+ :min-date="minDate"
14
+ :max-date="maxDate"
15
+ :min-time="minTime"
16
+ :max-time="maxTime"
17
+ :start-time="startTime"
18
+ :multi-calendars="!isDisabledMultiCalendar"
19
+ :required="isRequired"
20
+ time-picker-inline
21
+ range
22
+ @update:model-value="onInput"
23
+ >
24
+ <template v-if="appConfig.core?.is_thai_year" #year="{ value }">
25
+ {{ value + 543 }}
26
+ </template>
27
+ <template v-if="appConfig.core?.is_thai_year" #year-overlay-value="{ value }">
28
+ {{ value + 543 }}
29
+ </template>
30
+ <template #dp-input="{ value: innerValue }">
31
+ <UInput
32
+ :trailing-icon="innerValue ? undefined : 'i-heroicons-calendar-days'"
33
+ type="text"
34
+ :model-value="innerValue"
35
+ :placeholder="wrapperProps.placeholder"
36
+ :readonly="true"
37
+ input-class="cursor-pointer select-none"
38
+ />
39
+ </template>
40
+ </Datepicker>
41
+ </FieldWrapper>
42
+ </template>
43
+ <script lang="ts" setup>
44
+ import Datepicker from '@vuepic/vue-datepicker'
45
+ import FieldWrapper from '#core/components/Form/FieldWrapper.vue'
46
+ import { TimeHelper, ref, useFieldHOC, useAppConfig } from '#imports'
47
+ import '@vuepic/vue-datepicker/dist/main.css'
48
+ import type {
49
+ IDateTimeRangeFieldProps,
50
+ IDateTimeRangeResponse,
51
+ } from './date_range_time_field.types'
52
+
53
+ const props = withDefaults(defineProps<IDateTimeRangeFieldProps>(), {})
54
+
55
+ const appConfig = useAppConfig()
56
+ const { value, wrapperProps } = useFieldHOC<IDateTimeRangeResponse | null>(props)
57
+
58
+ const innerValueRef = ref<Date[]>([])
59
+
60
+ const format = (date: Date[]) => {
61
+ if (props.disabledTime) {
62
+ return date.length > 0
63
+ ? TimeHelper.displayDate(date[0]) + ' - ' + TimeHelper.displayDate(date[1] ?? date[0])
64
+ : ''
65
+ }
66
+
67
+ return date.length > 0
68
+ ? TimeHelper.displayDateTime(date[0]) + ' - ' + TimeHelper.displayDateTime(date[1] ?? date[0])
69
+ : ''
70
+ }
71
+
72
+ const onInput = (_value: Date[]) => {
73
+ if (_value === null) {
74
+ value.value = null
75
+
76
+ return
77
+ }
78
+
79
+ if (props.disabledTime && !props.isReturnISO) {
80
+ value.value = <IDateTimeRangeResponse>{
81
+ start: TimeHelper.getDateFormTime(_value[0]),
82
+ end: TimeHelper.getDateFormTime(_value[1] || _value[0]),
83
+ }
84
+ } else {
85
+ value.value = <IDateTimeRangeResponse>{
86
+ start: _value[0],
87
+ end: _value[1] || _value[0],
88
+ }
89
+ }
90
+ }
91
+ </script>
@@ -1,27 +1,27 @@
1
- <template>
2
- <FieldWrapper v-bind="wrapperProps">
3
- <UInput
4
- v-model.number="value"
5
- type="number"
6
- :disabled="wrapperProps.isDisabled"
7
- :leading-icon="leadingIcon"
8
- :trailing-icon="trailingIcon"
9
- :name="name"
10
- :placeholder="wrapperProps.placeholder"
11
- :autofocus="!!autoFocus"
12
- :icon="icon"
13
- :readonly="isReadonly"
14
- :ui="defu(ui, { icon: { trailing: { pointer: '' } } })"
15
- />
16
- </FieldWrapper>
17
- </template>
18
- <script lang="ts" setup>
19
- import { useFieldHOC } from '#core/composables/useForm'
20
- import FieldWrapper from '#core/components/Form/FieldWrapper.vue'
21
- import type { INumberFieldProps } from '#core/components/Form/InputNumber/types'
22
- import { defu } from 'defu'
23
-
24
- const props = withDefaults(defineProps<INumberFieldProps>(), {})
25
-
26
- const { value, wrapperProps } = useFieldHOC<number>(props)
27
- </script>
1
+ <template>
2
+ <FieldWrapper v-bind="wrapperProps">
3
+ <UInput
4
+ v-model.number="value"
5
+ type="number"
6
+ :disabled="wrapperProps.isDisabled"
7
+ :leading-icon="leadingIcon"
8
+ :trailing-icon="trailingIcon"
9
+ :name="name"
10
+ :placeholder="wrapperProps.placeholder"
11
+ :autofocus="!!autoFocus"
12
+ :icon="icon"
13
+ :readonly="isReadonly"
14
+ :ui="defu(ui, { icon: { trailing: { pointer: '' } } })"
15
+ />
16
+ </FieldWrapper>
17
+ </template>
18
+ <script lang="ts" setup>
19
+ import { useFieldHOC } from '#core/composables/useForm'
20
+ import FieldWrapper from '#core/components/Form/FieldWrapper.vue'
21
+ import type { INumberFieldProps } from '#core/components/Form/InputNumber/types'
22
+ import { defu } from 'defu'
23
+
24
+ const props = withDefaults(defineProps<INumberFieldProps>(), {})
25
+
26
+ const { value, wrapperProps } = useFieldHOC<number>(props)
27
+ </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,55 +1,55 @@
1
- <template>
2
- <FieldWrapper v-bind="wrapperProps">
3
- <USelectMenu
4
- :model-value="value"
5
- :searchable="searchable as any"
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
- @update:modelValue="onChange"
19
- >
20
- <template #label>
21
- <div v-if="value" class="flex w-full items-center justify-between">
22
- <span class="truncate">
23
- {{ options.find((item) => item.value === value)?.label || value }}
24
- </span>
25
-
26
- <Icon
27
- v-if="clearable"
28
- name="ph:x-circle-fill"
29
- class="size-4 cursor-pointer text-gray-300 hover:text-gray-200"
30
- @click.stop="onChange('')"
31
- />
32
- </div>
33
- </template>
34
- </USelectMenu>
35
- </FieldWrapper>
36
- </template>
37
-
38
- <script lang="ts" setup>
39
- import FieldWrapper from '#core/components/Form/FieldWrapper.vue'
40
- import { useFieldHOC } from '#core/composables/useForm'
41
- import { type ISelectFieldProps } from '#core/components/Form/InputSelect/types'
42
-
43
- const emits = defineEmits(['change'])
44
- const props = withDefaults(defineProps<ISelectFieldProps>(), {
45
- searchablePlaceholder: 'ค้นหา...',
46
- searchable: true,
47
- })
48
-
49
- const { value, wrapperProps, handleChange } = useFieldHOC<any>(props)
50
-
51
- const onChange = (value: any) => {
52
- handleChange(value)
53
- emits('change', value)
54
- }
55
- </script>
1
+ <template>
2
+ <FieldWrapper v-bind="wrapperProps">
3
+ <USelectMenu
4
+ :model-value="value"
5
+ :searchable="searchable as any"
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
+ @update:modelValue="onChange"
19
+ >
20
+ <template #label>
21
+ <div v-if="value" class="flex w-full items-center justify-between">
22
+ <span class="truncate">
23
+ {{ options.find((item) => item.value === value)?.label || value }}
24
+ </span>
25
+
26
+ <Icon
27
+ v-if="clearable"
28
+ name="ph:x-circle-fill"
29
+ class="size-4 cursor-pointer text-gray-300 hover:text-gray-200"
30
+ @click.stop="onChange('')"
31
+ />
32
+ </div>
33
+ </template>
34
+ </USelectMenu>
35
+ </FieldWrapper>
36
+ </template>
37
+
38
+ <script lang="ts" setup>
39
+ import FieldWrapper from '#core/components/Form/FieldWrapper.vue'
40
+ import { useFieldHOC } from '#core/composables/useForm'
41
+ import { type ISelectFieldProps } from '#core/components/Form/InputSelect/types'
42
+
43
+ const emits = defineEmits(['change'])
44
+ const props = withDefaults(defineProps<ISelectFieldProps>(), {
45
+ searchablePlaceholder: 'ค้นหา...',
46
+ searchable: true,
47
+ })
48
+
49
+ const { value, wrapperProps, handleChange } = useFieldHOC<any>(props)
50
+
51
+ const onChange = (value: any) => {
52
+ handleChange(value)
53
+ emits('change', value)
54
+ }
55
+ </script>
@@ -1,54 +1,54 @@
1
- <template>
2
- <FieldWrapper v-bind="wrapperProps">
3
- <USelectMenu
4
- :model-value="value || []"
5
- searchable
6
- multiple
7
- :options="options"
8
- :placeholder="placeholder || label"
9
- :disabled="wrapperProps.isDisabled"
10
- :loading="loading"
11
- :searchable-placeholder="searchablePlaceholder"
12
- value-attribute="value"
13
- option-attribute="label"
14
- :icon="icon"
15
- :color="color"
16
- :size="size"
17
- :ui="ui"
18
- :ui-menu="uiMenu"
19
- @update:model-value="value = $event"
20
- >
21
- <template #label>
22
- <div v-if="ArrayHelper.toArray(value).length > 0" class="flex flex-wrap gap-x-2 gap-y-1">
23
- <Badge v-for="_value in ArrayHelper.toArray(value)" :key="_value" size="xs" :ui="badgeUi">
24
- <div class="flex items-center gap-x-1">
25
- {{ options.find((item) => item.value === _value)?.label || _value }}
26
- <Icon
27
- name="ph:x"
28
- class="size-3 cursor-pointer hover:text-gray-200"
29
- @click.prevent="handleDelete(_value)"
30
- />
31
- </div>
32
- </Badge>
33
- </div>
34
- </template>
35
- </USelectMenu>
36
- </FieldWrapper>
37
- </template>
38
-
39
- <script lang="ts" setup>
40
- import FieldWrapper from '#core/components/Form/FieldWrapper.vue'
41
- import { useFieldHOC } from '#core/composables/useForm'
42
- import type { ISelectMultipleFieldProps } from '#core/components/Form/InputSelectMultiple/types'
43
- import { ArrayHelper } from '#core/utils/ArrayHelper'
44
-
45
- const props = withDefaults(defineProps<ISelectMultipleFieldProps>(), {
46
- searchablePlaceholder: 'ค้นหา...',
47
- })
48
-
49
- const { value, wrapperProps } = useFieldHOC<any[]>(props)
50
-
51
- const handleDelete = (_value: any) => {
52
- value.value = ArrayHelper.toArray(value.value).filter((item: any) => item !== _value)
53
- }
54
- </script>
1
+ <template>
2
+ <FieldWrapper v-bind="wrapperProps">
3
+ <USelectMenu
4
+ :model-value="value || []"
5
+ searchable
6
+ multiple
7
+ :options="options"
8
+ :placeholder="placeholder || label"
9
+ :disabled="wrapperProps.isDisabled"
10
+ :loading="loading"
11
+ :searchable-placeholder="searchablePlaceholder"
12
+ value-attribute="value"
13
+ option-attribute="label"
14
+ :icon="icon"
15
+ :color="color"
16
+ :size="size"
17
+ :ui="ui"
18
+ :ui-menu="uiMenu"
19
+ @update:model-value="value = $event"
20
+ >
21
+ <template #label>
22
+ <div v-if="ArrayHelper.toArray(value).length > 0" class="flex flex-wrap gap-x-2 gap-y-1">
23
+ <Badge v-for="_value in ArrayHelper.toArray(value)" :key="_value" size="xs" :ui="badgeUi">
24
+ <div class="flex items-center gap-x-1">
25
+ {{ options.find((item) => item.value === _value)?.label || _value }}
26
+ <Icon
27
+ name="ph:x"
28
+ class="size-3 cursor-pointer hover:text-gray-200"
29
+ @click.prevent="handleDelete(_value)"
30
+ />
31
+ </div>
32
+ </Badge>
33
+ </div>
34
+ </template>
35
+ </USelectMenu>
36
+ </FieldWrapper>
37
+ </template>
38
+
39
+ <script lang="ts" setup>
40
+ import FieldWrapper from '#core/components/Form/FieldWrapper.vue'
41
+ import { useFieldHOC } from '#core/composables/useForm'
42
+ import type { ISelectMultipleFieldProps } from '#core/components/Form/InputSelectMultiple/types'
43
+ import { ArrayHelper } from '#core/utils/ArrayHelper'
44
+
45
+ const props = withDefaults(defineProps<ISelectMultipleFieldProps>(), {
46
+ searchablePlaceholder: 'ค้นหา...',
47
+ })
48
+
49
+ const { value, wrapperProps } = useFieldHOC<any[]>(props)
50
+
51
+ const handleDelete = (_value: any) => {
52
+ value.value = ArrayHelper.toArray(value.value).filter((item: any) => item !== _value)
53
+ }
54
+ </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>