@finema/core 1.4.152 → 1.4.153

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 (168) hide show
  1. package/README.md +60 -60
  2. package/dist/module.json +1 -5
  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 +37 -37
  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/FlexDeck/Base.vue +143 -143
  15. package/dist/runtime/components/FlexDeck/index.vue +68 -68
  16. package/dist/runtime/components/Form/FieldWrapper.vue +23 -23
  17. package/dist/runtime/components/Form/Fields.vue +230 -230
  18. package/dist/runtime/components/Form/InputCheckbox/index.vue +28 -28
  19. package/dist/runtime/components/Form/InputDateTime/index.vue +60 -60
  20. package/dist/runtime/components/Form/InputDateTimeRange/date_range_time_field.types.d.ts +1 -1
  21. package/dist/runtime/components/Form/InputDateTimeRange/index.vue +83 -83
  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 +45 -45
  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 +145 -145
  28. package/dist/runtime/components/Form/InputText/index.vue +67 -67
  29. package/dist/runtime/components/Form/InputTextarea/index.vue +25 -25
  30. package/dist/runtime/components/Form/InputToggle/index.vue +14 -14
  31. package/dist/runtime/components/Form/InputUploadDropzone/index.vue +206 -206
  32. package/dist/runtime/components/Form/InputUploadDropzone/types.d.ts +1 -1
  33. package/dist/runtime/components/Form/InputUploadDropzoneAuto/index.vue +342 -342
  34. package/dist/runtime/components/Form/InputUploadDropzoneAuto/types.d.ts +1 -1
  35. package/dist/runtime/components/Form/InputUploadDropzoneAutoMultiple/ItemUpload.vue +241 -241
  36. package/dist/runtime/components/Form/InputUploadDropzoneAutoMultiple/ItemView.vue +89 -89
  37. package/dist/runtime/components/Form/InputUploadDropzoneAutoMultiple/index.vue +164 -164
  38. package/dist/runtime/components/Form/InputUploadDropzoneAutoMultiple/types.d.ts +1 -1
  39. package/dist/runtime/components/Form/InputUploadDropzoneImageAutoMultiple/ItemUpload.vue +161 -161
  40. package/dist/runtime/components/Form/InputUploadDropzoneImageAutoMultiple/ItemView.vue +64 -64
  41. package/dist/runtime/components/Form/InputUploadDropzoneImageAutoMultiple/index.vue +172 -172
  42. package/dist/runtime/components/Form/InputUploadDropzoneImageAutoMultiple/types.d.ts +1 -1
  43. package/dist/runtime/components/Form/InputUploadFileClassic/index.vue +95 -95
  44. package/dist/runtime/components/Form/InputUploadFileClassicAuto/index.vue +151 -151
  45. package/dist/runtime/components/Form/InputUploadFileClassicAuto/types.d.ts +1 -1
  46. package/dist/runtime/components/Form/InputUploadImageAuto/index.vue +219 -219
  47. package/dist/runtime/components/Form/InputUploadImageAuto/types.d.ts +1 -1
  48. package/dist/runtime/components/Form/InputWYSIWYG/index.vue +53 -53
  49. package/dist/runtime/components/Form/index.vue +6 -6
  50. package/dist/runtime/components/Icon.vue +23 -23
  51. package/dist/runtime/components/Image.vue +36 -36
  52. package/dist/runtime/components/Loader.vue +27 -27
  53. package/dist/runtime/components/Modal/index.vue +146 -146
  54. package/dist/runtime/components/QRCode.vue +22 -22
  55. package/dist/runtime/components/SimplePagination.vue +96 -96
  56. package/dist/runtime/components/Slideover/index.vue +110 -110
  57. package/dist/runtime/components/Table/Base.vue +139 -139
  58. package/dist/runtime/components/Table/ColumnDate.vue +16 -16
  59. package/dist/runtime/components/Table/ColumnDateTime.vue +18 -18
  60. package/dist/runtime/components/Table/ColumnImage.vue +15 -15
  61. package/dist/runtime/components/Table/ColumnNumber.vue +14 -14
  62. package/dist/runtime/components/Table/ColumnText.vue +25 -25
  63. package/dist/runtime/components/Table/Simple.vue +69 -69
  64. package/dist/runtime/components/Table/index.vue +65 -65
  65. package/dist/runtime/components/Tabs/index.vue +64 -64
  66. package/dist/runtime/components/TeleportSafe.vue +40 -40
  67. package/dist/runtime/composables/loaderList.d.ts +2 -2
  68. package/dist/runtime/composables/{loaderList.js → loaderList.mjs} +2 -2
  69. package/dist/runtime/composables/loaderObject.d.ts +1 -1
  70. package/dist/runtime/composables/{loaderObject.js → loaderObject.mjs} +2 -2
  71. package/dist/runtime/composables/loaderPage.d.ts +1 -1
  72. package/dist/runtime/composables/{loaderPage.js → loaderPage.mjs} +3 -3
  73. package/dist/runtime/composables/useConfig.d.ts +1 -1
  74. package/dist/runtime/composables/useForm.d.ts +1 -1
  75. package/dist/runtime/composables/useTable.d.ts +2 -2
  76. package/dist/runtime/composables/{useTable.js → useTable.mjs} +1 -1
  77. package/dist/runtime/composables/{useUpload.js → useUpload.mjs} +1 -1
  78. package/dist/runtime/helpers/{apiListHelper.js → apiListHelper.mjs} +1 -1
  79. package/dist/runtime/helpers/{apiObjectHelper.js → apiObjectHelper.mjs} +1 -1
  80. package/dist/runtime/helpers/apiPageHelper.d.ts +1 -1
  81. package/dist/runtime/helpers/{apiPageHelper.js → apiPageHelper.mjs} +4 -4
  82. package/dist/runtime/ui.config/index.d.ts +16 -16
  83. package/dist/runtime/ui.config/index.mjs +16 -0
  84. package/dist/runtime/ui.config/{uploadDropzoneImage.js → uploadDropzoneImage.mjs} +1 -1
  85. package/dist/runtime/utils/ArrayHelper.d.ts +1 -1
  86. package/dist/runtime/utils/{ArrayHelper.spec.js → ArrayHelper.spec.mjs} +1 -1
  87. package/dist/runtime/utils/{FileHelper.spec.js → FileHelper.spec.mjs} +1 -1
  88. package/dist/runtime/utils/ObjectHelper.d.ts +2 -2
  89. package/dist/runtime/utils/{ObjectHelper.js → ObjectHelper.mjs} +2 -2
  90. package/dist/runtime/utils/{ObjectHelper.spec.js → ObjectHelper.spec.mjs} +1 -1
  91. package/dist/runtime/utils/ParamHelper.d.ts +1 -1
  92. package/dist/runtime/utils/{ParamHelper.spec.js → ParamHelper.spec.mjs} +1 -1
  93. package/dist/runtime/utils/{StringHelper.spec.js → StringHelper.spec.mjs} +1 -1
  94. package/dist/runtime/utils/{TimeHelper.spec.js → TimeHelper.spec.mjs} +1 -1
  95. package/dist/runtime/utils/{TimeHelper.thai.spec.js → TimeHelper.thai.spec.mjs} +1 -1
  96. package/dist/types.d.mts +16 -1
  97. package/dist/types.d.ts +16 -1
  98. package/package.json +92 -93
  99. package/dist/runtime/ui.config/index.js +0 -16
  100. /package/dist/runtime/components/Dropdown/{types.js → types.mjs} +0 -0
  101. /package/dist/runtime/components/FlexDeck/{types.js → types.mjs} +0 -0
  102. /package/dist/runtime/components/Form/InputCheckbox/{types.js → types.mjs} +0 -0
  103. /package/dist/runtime/components/Form/InputDateTime/{date_time_field.types.js → date_time_field.types.mjs} +0 -0
  104. /package/dist/runtime/components/Form/InputDateTimeRange/{date_range_time_field.types.js → date_range_time_field.types.mjs} +0 -0
  105. /package/dist/runtime/components/Form/InputNumber/{types.js → types.mjs} +0 -0
  106. /package/dist/runtime/components/Form/InputRadio/{types.js → types.mjs} +0 -0
  107. /package/dist/runtime/components/Form/InputSelect/{types.js → types.mjs} +0 -0
  108. /package/dist/runtime/components/Form/InputSelectMultiple/{types.js → types.mjs} +0 -0
  109. /package/dist/runtime/components/Form/InputStatic/{types.js → types.mjs} +0 -0
  110. /package/dist/runtime/components/Form/InputTags/{types.js → types.mjs} +0 -0
  111. /package/dist/runtime/components/Form/InputText/{types.js → types.mjs} +0 -0
  112. /package/dist/runtime/components/Form/InputTextarea/{types.js → types.mjs} +0 -0
  113. /package/dist/runtime/components/Form/InputToggle/{types.js → types.mjs} +0 -0
  114. /package/dist/runtime/components/Form/InputUploadDropzone/{types.js → types.mjs} +0 -0
  115. /package/dist/runtime/components/Form/InputUploadDropzoneAuto/{types.js → types.mjs} +0 -0
  116. /package/dist/runtime/components/Form/InputUploadDropzoneAutoMultiple/{types.js → types.mjs} +0 -0
  117. /package/dist/runtime/components/Form/InputUploadDropzoneImageAutoMultiple/{types.js → types.mjs} +0 -0
  118. /package/dist/runtime/components/Form/InputUploadFileClassic/{types.js → types.mjs} +0 -0
  119. /package/dist/runtime/components/Form/InputUploadFileClassicAuto/{types.js → types.mjs} +0 -0
  120. /package/dist/runtime/components/Form/InputUploadImageAuto/{types.js → types.mjs} +0 -0
  121. /package/dist/runtime/components/Form/InputWYSIWYG/{types.js → types.mjs} +0 -0
  122. /package/dist/runtime/components/Form/{types.js → types.mjs} +0 -0
  123. /package/dist/runtime/components/Table/{types.js → types.mjs} +0 -0
  124. /package/dist/runtime/composables/{useApp.js → useApp.mjs} +0 -0
  125. /package/dist/runtime/composables/{useConfig.js → useConfig.mjs} +0 -0
  126. /package/dist/runtime/composables/{useDialog.js → useDialog.mjs} +0 -0
  127. /package/dist/runtime/composables/{useFlexDeck.js → useFlexDeck.mjs} +0 -0
  128. /package/dist/runtime/composables/{useForm.js → useForm.mjs} +0 -0
  129. /package/dist/runtime/composables/{useNotification.js → useNotification.mjs} +0 -0
  130. /package/dist/runtime/composables/{useWatch.js → useWatch.mjs} +0 -0
  131. /package/dist/runtime/{core.config.js → core.config.mjs} +0 -0
  132. /package/dist/runtime/helpers/{componentHelper.js → componentHelper.mjs} +0 -0
  133. /package/dist/runtime/lib/{Requester.js → Requester.mjs} +0 -0
  134. /package/dist/runtime/{plugin.js → plugin.mjs} +0 -0
  135. /package/dist/runtime/{quill.plugin.js → quill.plugin.mjs} +0 -0
  136. /package/dist/runtime/types/{common.js → common.mjs} +0 -0
  137. /package/dist/runtime/types/{config.js → config.mjs} +0 -0
  138. /package/dist/runtime/types/{lib.js → lib.mjs} +0 -0
  139. /package/dist/runtime/ui.config/{alert.js → alert.mjs} +0 -0
  140. /package/dist/runtime/ui.config/{badge.js → badge.mjs} +0 -0
  141. /package/dist/runtime/ui.config/{breadcrumb.js → breadcrumb.mjs} +0 -0
  142. /package/dist/runtime/ui.config/{button.js → button.mjs} +0 -0
  143. /package/dist/runtime/ui.config/{buttonGroup.js → buttonGroup.mjs} +0 -0
  144. /package/dist/runtime/ui.config/{card.js → card.mjs} +0 -0
  145. /package/dist/runtime/ui.config/{checkbox.js → checkbox.mjs} +0 -0
  146. /package/dist/runtime/ui.config/{formGroup.js → formGroup.mjs} +0 -0
  147. /package/dist/runtime/ui.config/{icon.js → icon.mjs} +0 -0
  148. /package/dist/runtime/ui.config/{input.js → input.mjs} +0 -0
  149. /package/dist/runtime/ui.config/{modal.js → modal.mjs} +0 -0
  150. /package/dist/runtime/ui.config/{notification.js → notification.mjs} +0 -0
  151. /package/dist/runtime/ui.config/{pagination.js → pagination.mjs} +0 -0
  152. /package/dist/runtime/ui.config/{select.js → select.mjs} +0 -0
  153. /package/dist/runtime/ui.config/{selectMenu.js → selectMenu.mjs} +0 -0
  154. /package/dist/runtime/ui.config/{slideover.js → slideover.mjs} +0 -0
  155. /package/dist/runtime/ui.config/{table.js → table.mjs} +0 -0
  156. /package/dist/runtime/ui.config/{tabs.js → tabs.mjs} +0 -0
  157. /package/dist/runtime/ui.config/{tags.js → tags.mjs} +0 -0
  158. /package/dist/runtime/ui.config/{textarea.js → textarea.mjs} +0 -0
  159. /package/dist/runtime/ui.config/{toggle.js → toggle.mjs} +0 -0
  160. /package/dist/runtime/ui.config/{uploadFileDropzone.js → uploadFileDropzone.mjs} +0 -0
  161. /package/dist/runtime/ui.config/{uploadFileInputClassicAuto.js → uploadFileInputClassicAuto.mjs} +0 -0
  162. /package/dist/runtime/ui.config/{uploadImage.js → uploadImage.mjs} +0 -0
  163. /package/dist/runtime/utils/{ArrayHelper.js → ArrayHelper.mjs} +0 -0
  164. /package/dist/runtime/utils/{FileHelper.js → FileHelper.mjs} +0 -0
  165. /package/dist/runtime/utils/{ParamHelper.js → ParamHelper.mjs} +0 -0
  166. /package/dist/runtime/utils/{StringHelper.js → StringHelper.mjs} +0 -0
  167. /package/dist/runtime/utils/{TimeHelper.js → TimeHelper.mjs} +0 -0
  168. /package/dist/runtime/utils/{lodash.js → lodash.mjs} +0 -0
@@ -1,230 +1,230 @@
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
- <FormInputNumber
22
- v-else-if="option.type === INPUT_TYPES.NUMBER"
23
- :class="option.class"
24
- :form="form"
25
- v-bind="getFieldBinding(option)"
26
- v-on="option.on ?? {}"
27
- />
28
- <FormInputText
29
- v-else-if="option.type === INPUT_TYPES.PASSWORD"
30
- :class="option.class"
31
- type="password"
32
- :form="form"
33
- v-bind="getFieldBinding(option)"
34
- v-on="option.on ?? {}"
35
- />
36
- <FormInputText
37
- v-else-if="option.type === INPUT_TYPES.EMAIL"
38
- :class="option.class"
39
- type="email"
40
- :form="form"
41
- v-bind="getFieldBinding(option)"
42
- v-on="option.on ?? {}"
43
- />
44
- <FormInputTextarea
45
- v-else-if="option.type === INPUT_TYPES.TEXTAREA"
46
- :class="option.class"
47
- :form="form"
48
- v-bind="getFieldBinding(option)"
49
- v-on="option.on ?? {}"
50
- />
51
- <FormInputToggle
52
- v-else-if="option.type === INPUT_TYPES.TOGGLE"
53
- :class="option.class"
54
- :form="form"
55
- v-bind="getFieldBinding(option)"
56
- v-on="option.on ?? {}"
57
- />
58
- <FormInputSelect
59
- v-else-if="option.type === INPUT_TYPES.SELECT"
60
- :class="option.class"
61
- :form="form"
62
- :options="option.props.options"
63
- v-bind="getFieldBinding(option)"
64
- v-on="option.on ?? {}"
65
- />
66
- <FormInputSelectMultiple
67
- v-else-if="option.type === INPUT_TYPES.SELECT_MULTIPLE"
68
- :class="option.class"
69
- :form="form"
70
- :options="option.props.options"
71
- v-bind="getFieldBinding(option)"
72
- v-on="option.on ?? {}"
73
- />
74
- <FormInputRadio
75
- v-else-if="option.type === INPUT_TYPES.RADIO"
76
- :class="option.class"
77
- :form="form"
78
- :options="option.props.options"
79
- v-bind="getFieldBinding(option)"
80
- v-on="option.on ?? {}"
81
- />
82
- <FormInputCheckbox
83
- v-else-if="option.type === INPUT_TYPES.CHECKBOX"
84
- :class="option.class"
85
- :form="form"
86
- v-bind="getFieldBinding(option)"
87
- v-on="option.on ?? {}"
88
- />
89
- <FormInputDateTime
90
- v-else-if="option.type === INPUT_TYPES.DATE_TIME"
91
- :class="option.class"
92
- :form="form"
93
- v-bind="getFieldBinding(option)"
94
- v-on="option.on ?? {}"
95
- />
96
- <FormInputDateTime
97
- v-else-if="option.type === INPUT_TYPES.DATE"
98
- :class="option.class"
99
- :form="form"
100
- v-bind="getFieldBinding(option)"
101
- :disabled-time="true"
102
- v-on="option.on ?? {}"
103
- />
104
- <FormInputDateTimeRange
105
- v-else-if="option.type === INPUT_TYPES.DATE_TIME_RANGE"
106
- :class="option.class"
107
- :form="form"
108
- v-bind="getFieldBinding(option)"
109
- v-on="option.on ?? {}"
110
- />
111
- <FormInputDateTimeRange
112
- v-else-if="option.type === INPUT_TYPES.DATE_RANGE"
113
- :class="option.class"
114
- :form="form"
115
- :disabled-time="true"
116
- v-bind="getFieldBinding(option)"
117
- v-on="option.on ?? {}"
118
- />
119
- <FormInputUploadFileClassic
120
- v-else-if="option.type === INPUT_TYPES.UPLOAD_FILE_CLASSIC"
121
- :class="option.class"
122
- :form="form"
123
- v-bind="getFieldBinding(option)"
124
- v-on="option.on ?? {}"
125
- />
126
- <FormInputUploadFileClassicAuto
127
- v-else-if="option.type === INPUT_TYPES.UPLOAD_FILE_CLASSIC_AUTO"
128
- :class="option.class"
129
- :form="form"
130
- :request-options="option.props.requestOptions"
131
- v-bind="getFieldBinding(option)"
132
- v-on="option.on ?? {}"
133
- />
134
- <FormInputUploadImageAuto
135
- v-else-if="option.type === INPUT_TYPES.UPLOAD_IMAGE_AUTO"
136
- :class="option.class"
137
- :form="form"
138
- :request-options="option.props.requestOptions"
139
- v-bind="getFieldBinding(option)"
140
- v-on="option.on ?? {}"
141
- />
142
- <FormInputUploadDropzone
143
- v-else-if="option.type === INPUT_TYPES.UPLOAD_DROPZONE"
144
- :class="option.class"
145
- :form="form"
146
- v-bind="getFieldBinding(option)"
147
- v-on="option.on ?? {}"
148
- />
149
- <FormInputUploadDropzoneAuto
150
- v-else-if="option.type === INPUT_TYPES.UPLOAD_DROPZONE_AUTO"
151
- :class="option.class"
152
- :form="form"
153
- :request-options="option.props.requestOptions"
154
- v-bind="getFieldBinding(option)"
155
- v-on="option.on ?? {}"
156
- />
157
- <FormInputUploadDropzoneAutoMultiple
158
- v-else-if="option.type === INPUT_TYPES.UPLOAD_DROPZONE_AUTO_MULTIPLE"
159
- :class="option.class"
160
- :form="form"
161
- :request-options="option.props.requestOptions"
162
- v-bind="getFieldBinding(option)"
163
- v-on="option.on ?? {}"
164
- />
165
- <FormInputUploadDropzoneImageAutoMultiple
166
- v-else-if="option.type === INPUT_TYPES.UPLOAD_DROPZONE_IMAGE_AUTO_MULTIPLE"
167
- :class="option.class"
168
- :form="form"
169
- :request-options="option.props.requestOptions"
170
- v-bind="getFieldBinding(option)"
171
- v-on="option.on ?? {}"
172
- />
173
- <FormInputWYSIWYG
174
- v-else-if="option.type === INPUT_TYPES.WYSIWYG"
175
- :class="option.class"
176
- :form="form"
177
- v-bind="getFieldBinding(option)"
178
- v-on="option.on ?? {}"
179
- />
180
- <FormInputTags
181
- v-else-if="option.type === INPUT_TYPES.TAGS"
182
- :class="option.class"
183
- :form="form"
184
- v-bind="getFieldBinding(option)"
185
- v-on="option.on ?? {}"
186
- />
187
- <component
188
- :is="option.component"
189
- v-else-if="option.type === INPUT_TYPES.COMPONENT"
190
- :class="option.class"
191
- :form="form"
192
- v-bind="getFieldBinding(option)"
193
- v-on="option.on ?? {}"
194
- />
195
- </template>
196
- </div>
197
- </template>
198
- <script lang="ts" setup>
199
- import { type FormContext } from 'vee-validate'
200
- import { type IFormField, INPUT_TYPES } from '#core/components/Form/types'
201
-
202
- const props = withDefaults(
203
- defineProps<{
204
- form?: FormContext
205
- options: IFormField[]
206
- orientation?: 'horizontal' | 'vertical'
207
- class?: any
208
- }>(),
209
- {
210
- class: 'space-y-4',
211
- orientation: 'vertical',
212
- }
213
- )
214
-
215
- const getFieldBinding = (field: IFormField) => {
216
- if (props.orientation === 'horizontal') {
217
- return {
218
- ...field.props,
219
- containerUi: {
220
- ...field.props.containerUi,
221
- wrapper:
222
- 'lg:grid lg:grid-cols-3 lg:gap-4 lg:items-start ' + field.props.containerUi?.wrapper,
223
- container: 'lg:col-span-2 ' + field.props.containerUi?.container,
224
- },
225
- }
226
- }
227
-
228
- return field.props
229
- }
230
- </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
+ <FormInputNumber
22
+ v-else-if="option.type === INPUT_TYPES.NUMBER"
23
+ :class="option.class"
24
+ :form="form"
25
+ v-bind="getFieldBinding(option)"
26
+ v-on="option.on ?? {}"
27
+ />
28
+ <FormInputText
29
+ v-else-if="option.type === INPUT_TYPES.PASSWORD"
30
+ :class="option.class"
31
+ type="password"
32
+ :form="form"
33
+ v-bind="getFieldBinding(option)"
34
+ v-on="option.on ?? {}"
35
+ />
36
+ <FormInputText
37
+ v-else-if="option.type === INPUT_TYPES.EMAIL"
38
+ :class="option.class"
39
+ type="email"
40
+ :form="form"
41
+ v-bind="getFieldBinding(option)"
42
+ v-on="option.on ?? {}"
43
+ />
44
+ <FormInputTextarea
45
+ v-else-if="option.type === INPUT_TYPES.TEXTAREA"
46
+ :class="option.class"
47
+ :form="form"
48
+ v-bind="getFieldBinding(option)"
49
+ v-on="option.on ?? {}"
50
+ />
51
+ <FormInputToggle
52
+ v-else-if="option.type === INPUT_TYPES.TOGGLE"
53
+ :class="option.class"
54
+ :form="form"
55
+ v-bind="getFieldBinding(option)"
56
+ v-on="option.on ?? {}"
57
+ />
58
+ <FormInputSelect
59
+ v-else-if="option.type === INPUT_TYPES.SELECT"
60
+ :class="option.class"
61
+ :form="form"
62
+ :options="option.props.options"
63
+ v-bind="getFieldBinding(option)"
64
+ v-on="option.on ?? {}"
65
+ />
66
+ <FormInputSelectMultiple
67
+ v-else-if="option.type === INPUT_TYPES.SELECT_MULTIPLE"
68
+ :class="option.class"
69
+ :form="form"
70
+ :options="option.props.options"
71
+ v-bind="getFieldBinding(option)"
72
+ v-on="option.on ?? {}"
73
+ />
74
+ <FormInputRadio
75
+ v-else-if="option.type === INPUT_TYPES.RADIO"
76
+ :class="option.class"
77
+ :form="form"
78
+ :options="option.props.options"
79
+ v-bind="getFieldBinding(option)"
80
+ v-on="option.on ?? {}"
81
+ />
82
+ <FormInputCheckbox
83
+ v-else-if="option.type === INPUT_TYPES.CHECKBOX"
84
+ :class="option.class"
85
+ :form="form"
86
+ v-bind="getFieldBinding(option)"
87
+ v-on="option.on ?? {}"
88
+ />
89
+ <FormInputDateTime
90
+ v-else-if="option.type === INPUT_TYPES.DATE_TIME"
91
+ :class="option.class"
92
+ :form="form"
93
+ v-bind="getFieldBinding(option)"
94
+ v-on="option.on ?? {}"
95
+ />
96
+ <FormInputDateTime
97
+ v-else-if="option.type === INPUT_TYPES.DATE"
98
+ :class="option.class"
99
+ :form="form"
100
+ v-bind="getFieldBinding(option)"
101
+ :disabled-time="true"
102
+ v-on="option.on ?? {}"
103
+ />
104
+ <FormInputDateTimeRange
105
+ v-else-if="option.type === INPUT_TYPES.DATE_TIME_RANGE"
106
+ :class="option.class"
107
+ :form="form"
108
+ v-bind="getFieldBinding(option)"
109
+ v-on="option.on ?? {}"
110
+ />
111
+ <FormInputDateTimeRange
112
+ v-else-if="option.type === INPUT_TYPES.DATE_RANGE"
113
+ :class="option.class"
114
+ :form="form"
115
+ :disabled-time="true"
116
+ v-bind="getFieldBinding(option)"
117
+ v-on="option.on ?? {}"
118
+ />
119
+ <FormInputUploadFileClassic
120
+ v-else-if="option.type === INPUT_TYPES.UPLOAD_FILE_CLASSIC"
121
+ :class="option.class"
122
+ :form="form"
123
+ v-bind="getFieldBinding(option)"
124
+ v-on="option.on ?? {}"
125
+ />
126
+ <FormInputUploadFileClassicAuto
127
+ v-else-if="option.type === INPUT_TYPES.UPLOAD_FILE_CLASSIC_AUTO"
128
+ :class="option.class"
129
+ :form="form"
130
+ :request-options="option.props.requestOptions"
131
+ v-bind="getFieldBinding(option)"
132
+ v-on="option.on ?? {}"
133
+ />
134
+ <FormInputUploadImageAuto
135
+ v-else-if="option.type === INPUT_TYPES.UPLOAD_IMAGE_AUTO"
136
+ :class="option.class"
137
+ :form="form"
138
+ :request-options="option.props.requestOptions"
139
+ v-bind="getFieldBinding(option)"
140
+ v-on="option.on ?? {}"
141
+ />
142
+ <FormInputUploadDropzone
143
+ v-else-if="option.type === INPUT_TYPES.UPLOAD_DROPZONE"
144
+ :class="option.class"
145
+ :form="form"
146
+ v-bind="getFieldBinding(option)"
147
+ v-on="option.on ?? {}"
148
+ />
149
+ <FormInputUploadDropzoneAuto
150
+ v-else-if="option.type === INPUT_TYPES.UPLOAD_DROPZONE_AUTO"
151
+ :class="option.class"
152
+ :form="form"
153
+ :request-options="option.props.requestOptions"
154
+ v-bind="getFieldBinding(option)"
155
+ v-on="option.on ?? {}"
156
+ />
157
+ <FormInputUploadDropzoneAutoMultiple
158
+ v-else-if="option.type === INPUT_TYPES.UPLOAD_DROPZONE_AUTO_MULTIPLE"
159
+ :class="option.class"
160
+ :form="form"
161
+ :request-options="option.props.requestOptions"
162
+ v-bind="getFieldBinding(option)"
163
+ v-on="option.on ?? {}"
164
+ />
165
+ <FormInputUploadDropzoneImageAutoMultiple
166
+ v-else-if="option.type === INPUT_TYPES.UPLOAD_DROPZONE_IMAGE_AUTO_MULTIPLE"
167
+ :class="option.class"
168
+ :form="form"
169
+ :request-options="option.props.requestOptions"
170
+ v-bind="getFieldBinding(option)"
171
+ v-on="option.on ?? {}"
172
+ />
173
+ <FormInputWYSIWYG
174
+ v-else-if="option.type === INPUT_TYPES.WYSIWYG"
175
+ :class="option.class"
176
+ :form="form"
177
+ v-bind="getFieldBinding(option)"
178
+ v-on="option.on ?? {}"
179
+ />
180
+ <FormInputTags
181
+ v-else-if="option.type === INPUT_TYPES.TAGS"
182
+ :class="option.class"
183
+ :form="form"
184
+ v-bind="getFieldBinding(option)"
185
+ v-on="option.on ?? {}"
186
+ />
187
+ <component
188
+ :is="option.component"
189
+ v-else-if="option.type === INPUT_TYPES.COMPONENT"
190
+ :class="option.class"
191
+ :form="form"
192
+ v-bind="getFieldBinding(option)"
193
+ v-on="option.on ?? {}"
194
+ />
195
+ </template>
196
+ </div>
197
+ </template>
198
+ <script lang="ts" setup>
199
+ import { type FormContext } from 'vee-validate'
200
+ import { type IFormField, INPUT_TYPES } from '#core/components/Form/types'
201
+
202
+ const props = withDefaults(
203
+ defineProps<{
204
+ form?: FormContext
205
+ options: IFormField[]
206
+ orientation?: 'horizontal' | 'vertical'
207
+ class?: any
208
+ }>(),
209
+ {
210
+ class: 'space-y-4',
211
+ orientation: 'vertical',
212
+ }
213
+ )
214
+
215
+ const getFieldBinding = (field: IFormField) => {
216
+ if (props.orientation === 'horizontal') {
217
+ return {
218
+ ...field.props,
219
+ containerUi: {
220
+ ...field.props.containerUi,
221
+ wrapper:
222
+ 'lg:grid lg:grid-cols-3 lg:gap-4 lg:items-start ' + field.props.containerUi?.wrapper,
223
+ container: 'lg:col-span-2 ' + field.props.containerUi?.container,
224
+ },
225
+ }
226
+ }
227
+
228
+ return field.props
229
+ }
230
+ </script>
@@ -1,28 +1,28 @@
1
- <template>
2
- <FieldWrapper v-bind="wrapperProps" label="">
3
- <UCheckbox
4
- :model-value="value"
5
- :disabled="wrapperProps.isDisabled"
6
- :name="name"
7
- :label="props.label"
8
- :required="isRequired"
9
- :ui="ui"
10
- @update:modelValue="onChange"
11
- />
12
- </FieldWrapper>
13
- </template>
14
- <script lang="ts" setup>
15
- import { useFieldHOC } from '#core/composables/useForm'
16
- import FieldWrapper from '#core/components/Form/FieldWrapper.vue'
17
- import { type ICheckboxFieldProps } from '#core/components/Form/InputCheckbox/types'
18
-
19
- const emits = defineEmits(['change'])
20
- const props = withDefaults(defineProps<ICheckboxFieldProps>(), {})
21
-
22
- const { value, wrapperProps, handleChange } = useFieldHOC<boolean>(props)
23
-
24
- const onChange = (value: any) => {
25
- handleChange(value)
26
- emits('change', value)
27
- }
28
- </script>
1
+ <template>
2
+ <FieldWrapper v-bind="wrapperProps" label="">
3
+ <UCheckbox
4
+ :model-value="value"
5
+ :disabled="wrapperProps.isDisabled"
6
+ :name="name"
7
+ :label="props.label"
8
+ :required="isRequired"
9
+ :ui="ui"
10
+ @update:modelValue="onChange"
11
+ />
12
+ </FieldWrapper>
13
+ </template>
14
+ <script lang="ts" setup>
15
+ import { useFieldHOC } from '#core/composables/useForm'
16
+ import FieldWrapper from '#core/components/Form/FieldWrapper.vue'
17
+ import { type ICheckboxFieldProps } from '#core/components/Form/InputCheckbox/types'
18
+
19
+ const emits = defineEmits(['change'])
20
+ const props = withDefaults(defineProps<ICheckboxFieldProps>(), {})
21
+
22
+ const { value, wrapperProps, handleChange } = useFieldHOC<boolean>(props)
23
+
24
+ const onChange = (value: any) => {
25
+ handleChange(value)
26
+ emits('change', value)
27
+ }
28
+ </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,5 +1,5 @@
1
1
  import { type IFormFieldBase, type INPUT_TYPES } from '#core/components/Form/types';
2
- import type { IDateTimeFieldProps } from '../InputDateTime/date_time_field.types.js';
2
+ import type { IDateTimeFieldProps } from '../InputDateTime/date_time_field.types';
3
3
  export interface ITimeOption {
4
4
  hours?: number | string;
5
5
  minutes?: number | string;