@finema/core 1.4.220 → 2.1.0

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 (307) hide show
  1. package/README.md +79 -60
  2. package/dist/module.d.mts +4 -24
  3. package/dist/module.json +4 -3
  4. package/dist/module.mjs +75 -213
  5. package/dist/runtime/components/App.vue +27 -0
  6. package/dist/runtime/components/App.vue.d.ts +12 -0
  7. package/dist/runtime/components/DevToolsWindow/index.vue +312 -0
  8. package/dist/runtime/components/DevToolsWindow/index.vue.d.ts +2 -0
  9. package/dist/runtime/components/Dialog/index.vue +77 -110
  10. package/dist/runtime/components/Dialog/index.vue.d.ts +10 -0
  11. package/dist/runtime/components/Empty.vue +33 -18
  12. package/dist/runtime/components/Empty.vue.d.ts +12 -0
  13. package/dist/runtime/components/FlexDeck/Base.vue +154 -159
  14. package/dist/runtime/components/FlexDeck/Base.vue.d.ts +63 -0
  15. package/dist/runtime/components/FlexDeck/index.vue +67 -68
  16. package/dist/runtime/components/FlexDeck/index.vue.d.ts +43 -0
  17. package/dist/runtime/components/Form/FieldWrapper.vue +35 -23
  18. package/dist/runtime/components/Form/FieldWrapper.vue.d.ts +16 -0
  19. package/dist/runtime/components/Form/Fields.vue +92 -230
  20. package/dist/runtime/components/Form/Fields.vue.d.ts +14 -0
  21. package/dist/runtime/components/Form/InputCheckbox/index.vue +53 -28
  22. package/dist/runtime/components/Form/InputCheckbox/index.vue.d.ts +3 -0
  23. package/dist/runtime/components/Form/InputCheckbox/types.d.ts +5 -1
  24. package/dist/runtime/components/Form/InputDateTime/date_time_field.types.d.ts +1 -1
  25. package/dist/runtime/components/Form/InputDateTime/index.vue +97 -68
  26. package/dist/runtime/components/Form/InputDateTime/index.vue.d.ts +4 -0
  27. package/dist/runtime/components/Form/InputNumber/index.vue +61 -27
  28. package/dist/runtime/components/Form/InputNumber/index.vue.d.ts +5 -0
  29. package/dist/runtime/components/Form/InputNumber/types.d.ts +10 -5
  30. package/dist/runtime/components/Form/InputSelect/index.vue +95 -55
  31. package/dist/runtime/components/Form/InputSelect/index.vue.d.ts +5 -0
  32. package/dist/runtime/components/Form/InputSelect/types.d.ts +14 -8
  33. package/dist/runtime/components/Form/InputSelectMultiple/index.vue +108 -54
  34. package/dist/runtime/components/Form/InputSelectMultiple/index.vue.d.ts +3 -0
  35. package/dist/runtime/components/Form/InputSelectMultiple/types.d.ts +9 -8
  36. package/dist/runtime/components/Form/InputText/index.vue +135 -68
  37. package/dist/runtime/components/Form/InputText/index.vue.d.ts +5 -0
  38. package/dist/runtime/components/Form/InputText/types.d.ts +4 -3
  39. package/dist/runtime/components/Form/InputTextarea/index.vue +57 -25
  40. package/dist/runtime/components/Form/InputTextarea/index.vue.d.ts +3 -0
  41. package/dist/runtime/components/Form/InputTextarea/types.d.ts +7 -2
  42. package/dist/runtime/components/Form/InputToggle/index.vue +51 -27
  43. package/dist/runtime/components/Form/InputToggle/index.vue.d.ts +3 -0
  44. package/dist/runtime/components/Form/InputToggle/types.d.ts +5 -1
  45. package/dist/runtime/components/Form/index.vue +5 -6
  46. package/dist/runtime/components/Form/index.vue.d.ts +12 -0
  47. package/dist/runtime/components/Form/types.d.ts +13 -27
  48. package/dist/runtime/components/Image.vue +51 -36
  49. package/dist/runtime/components/Image.vue.d.ts +13 -0
  50. package/dist/runtime/components/Loader.vue +29 -27
  51. package/dist/runtime/components/Loader.vue.d.ts +22 -0
  52. package/dist/runtime/components/{LogItem.vue → Log/LogItem.vue} +44 -41
  53. package/dist/runtime/components/Log/LogItem.vue.d.ts +6 -0
  54. package/dist/runtime/components/Log/index.vue +28 -0
  55. package/dist/runtime/components/Log/index.vue.d.ts +7 -0
  56. package/dist/runtime/components/Table/Base.vue +166 -161
  57. package/dist/runtime/components/Table/Base.vue.d.ts +47 -0
  58. package/dist/runtime/components/Table/ColumnDate.vue +14 -16
  59. package/dist/runtime/components/Table/ColumnDate.vue.d.ts +8 -0
  60. package/dist/runtime/components/Table/ColumnDateTime.vue +16 -18
  61. package/dist/runtime/components/Table/ColumnDateTime.vue.d.ts +8 -0
  62. package/dist/runtime/components/Table/ColumnImage.vue +16 -15
  63. package/dist/runtime/components/Table/ColumnImage.vue.d.ts +8 -0
  64. package/dist/runtime/components/Table/ColumnNumber.vue +14 -14
  65. package/dist/runtime/components/Table/ColumnNumber.vue.d.ts +8 -0
  66. package/dist/runtime/components/Table/ColumnText.vue +24 -29
  67. package/dist/runtime/components/Table/ColumnText.vue.d.ts +8 -0
  68. package/dist/runtime/components/Table/Simple.vue +69 -70
  69. package/dist/runtime/components/Table/Simple.vue.d.ts +24 -0
  70. package/dist/runtime/components/Table/index.vue +178 -65
  71. package/dist/runtime/components/Table/index.vue.d.ts +25 -0
  72. package/dist/runtime/components/Table/types.d.ts +14 -18
  73. package/dist/runtime/components/Table/{types.mjs → types.js} +1 -0
  74. package/dist/runtime/components/TeleportSafe.vue +42 -40
  75. package/dist/runtime/components/TeleportSafe.vue.d.ts +16 -0
  76. package/dist/runtime/composables/loaderList.d.ts +2 -2
  77. package/dist/runtime/composables/loaderList.js +51 -0
  78. package/dist/runtime/composables/loaderObject.d.ts +1 -1
  79. package/dist/runtime/composables/loaderObject.js +50 -0
  80. package/dist/runtime/composables/loaderPage.d.ts +10 -11
  81. package/dist/runtime/composables/loaderPage.js +243 -0
  82. package/dist/runtime/composables/useApp.d.ts +4 -9
  83. package/dist/runtime/composables/{useApp.mjs → useApp.js} +0 -12
  84. package/dist/runtime/composables/useConfig.d.ts +3 -3
  85. package/dist/runtime/composables/useConfig.js +12 -0
  86. package/dist/runtime/composables/useDialog.d.ts +1 -7
  87. package/dist/runtime/composables/useDialog.js +53 -0
  88. package/dist/runtime/composables/useFlexDeck.d.ts +1 -1
  89. package/dist/runtime/composables/{useFlexDeck.mjs → useFlexDeck.js} +5 -5
  90. package/dist/runtime/composables/useForm.d.ts +5 -2
  91. package/dist/runtime/composables/useForm.js +37 -0
  92. package/dist/runtime/composables/useNotification.d.ts +6 -22
  93. package/dist/runtime/composables/{useNotification.mjs → useNotification.js} +5 -21
  94. package/dist/runtime/composables/useTable.d.ts +12 -11
  95. package/dist/runtime/composables/{useTable.mjs → useTable.js} +3 -8
  96. package/dist/runtime/composables/useUpload.d.ts +2 -2
  97. package/dist/runtime/composables/{useUpload.mjs → useUpload.js} +1 -1
  98. package/dist/runtime/helpers/apiBaseHelper.d.ts +29 -0
  99. package/dist/runtime/helpers/apiBaseHelper.js +63 -0
  100. package/dist/runtime/helpers/apiListHelper.d.ts +4 -6
  101. package/dist/runtime/helpers/apiListHelper.js +50 -0
  102. package/dist/runtime/helpers/apiObjectHelper.d.ts +19 -20
  103. package/dist/runtime/helpers/apiObjectHelper.js +51 -0
  104. package/dist/runtime/helpers/apiPageHelper.d.ts +44 -44
  105. package/dist/runtime/helpers/apiPageHelper.js +287 -0
  106. package/dist/runtime/helpers/componentHelper.d.ts +11 -12
  107. package/dist/runtime/helpers/{componentHelper.mjs → componentHelper.js} +2 -7
  108. package/dist/runtime/i18n/valibot.d.ts +69 -0
  109. package/dist/runtime/i18n/valibot.js +72 -0
  110. package/dist/runtime/plugin.d.ts +1 -1
  111. package/dist/runtime/plugin.js +12 -0
  112. package/dist/runtime/server/tsconfig.json +3 -0
  113. package/dist/runtime/theme/button.d.ts +5 -0
  114. package/dist/runtime/theme/button.js +1 -0
  115. package/dist/runtime/theme/dialog.d.ts +31 -0
  116. package/dist/runtime/theme/dialog.js +21 -0
  117. package/dist/runtime/theme/empty.d.ts +7 -0
  118. package/dist/runtime/theme/empty.js +7 -0
  119. package/dist/runtime/theme/form.d.ts +18 -0
  120. package/dist/runtime/theme/form.js +16 -0
  121. package/dist/runtime/theme/index.d.ts +10 -0
  122. package/dist/runtime/theme/index.js +10 -0
  123. package/dist/runtime/theme/input.d.ts +8 -0
  124. package/dist/runtime/theme/input.js +4 -0
  125. package/dist/runtime/theme/inputNumber.d.ts +8 -0
  126. package/dist/runtime/theme/inputNumber.js +4 -0
  127. package/dist/runtime/theme/loader.d.ts +28 -0
  128. package/dist/runtime/theme/loader.js +18 -0
  129. package/dist/runtime/theme/selectMenu.d.ts +17 -0
  130. package/dist/runtime/theme/selectMenu.js +18 -0
  131. package/dist/runtime/theme/table.d.ts +10 -0
  132. package/dist/runtime/theme/table.js +10 -0
  133. package/dist/runtime/theme/textarea.d.ts +5 -0
  134. package/dist/runtime/theme/textarea.js +1 -0
  135. package/dist/runtime/types/lib.d.ts +1 -1
  136. package/dist/runtime/utils/ArrayHelper.d.ts +1 -1
  137. package/dist/runtime/utils/{ArrayHelper.mjs → ArrayHelper.js} +1 -1
  138. package/dist/runtime/utils/ObjectHelper.d.ts +3 -3
  139. package/dist/runtime/utils/{ObjectHelper.mjs → ObjectHelper.js} +3 -3
  140. package/dist/runtime/utils/ParamHelper.d.ts +1 -1
  141. package/dist/runtime/utils/{ParamHelper.mjs → ParamHelper.js} +1 -1
  142. package/dist/types.d.mts +2 -15
  143. package/package.json +91 -100
  144. package/dist/module.cjs +0 -5
  145. package/dist/module.d.ts +0 -50
  146. package/dist/runtime/components/Alert.vue +0 -48
  147. package/dist/runtime/components/Avatar.vue +0 -27
  148. package/dist/runtime/components/Badge.vue +0 -11
  149. package/dist/runtime/components/Breadcrumb.vue +0 -44
  150. package/dist/runtime/components/Button/Group.vue +0 -37
  151. package/dist/runtime/components/Button/index.vue +0 -75
  152. package/dist/runtime/components/Card.vue +0 -38
  153. package/dist/runtime/components/Core.vue +0 -45
  154. package/dist/runtime/components/Dropdown/index.vue +0 -70
  155. package/dist/runtime/components/Dropdown/types.d.ts +0 -2
  156. package/dist/runtime/components/Dropdown/types.mjs +0 -17
  157. package/dist/runtime/components/Form/InputDateTimeRange/date_range_time_field.types.d.ts +0 -17
  158. package/dist/runtime/components/Form/InputDateTimeRange/index.vue +0 -91
  159. package/dist/runtime/components/Form/InputRadio/index.vue +0 -27
  160. package/dist/runtime/components/Form/InputRadio/types.d.ts +0 -8
  161. package/dist/runtime/components/Form/InputStatic/index.vue +0 -16
  162. package/dist/runtime/components/Form/InputStatic/types.d.ts +0 -4
  163. package/dist/runtime/components/Form/InputTags/index.vue +0 -141
  164. package/dist/runtime/components/Form/InputTags/types.d.ts +0 -11
  165. package/dist/runtime/components/Form/InputTextarea/types.mjs +0 -0
  166. package/dist/runtime/components/Form/InputToggle/types.mjs +0 -0
  167. package/dist/runtime/components/Form/InputUploadDropzone/index.vue +0 -206
  168. package/dist/runtime/components/Form/InputUploadDropzone/types.d.ts +0 -11
  169. package/dist/runtime/components/Form/InputUploadDropzone/types.mjs +0 -0
  170. package/dist/runtime/components/Form/InputUploadDropzoneAuto/index.vue +0 -362
  171. package/dist/runtime/components/Form/InputUploadDropzoneAuto/types.d.ts +0 -23
  172. package/dist/runtime/components/Form/InputUploadDropzoneAuto/types.mjs +0 -0
  173. package/dist/runtime/components/Form/InputUploadDropzoneAutoMultiple/ItemUpload.vue +0 -241
  174. package/dist/runtime/components/Form/InputUploadDropzoneAutoMultiple/ItemView.vue +0 -110
  175. package/dist/runtime/components/Form/InputUploadDropzoneAutoMultiple/index.vue +0 -171
  176. package/dist/runtime/components/Form/InputUploadDropzoneAutoMultiple/types.d.ts +0 -23
  177. package/dist/runtime/components/Form/InputUploadDropzoneAutoMultiple/types.mjs +0 -0
  178. package/dist/runtime/components/Form/InputUploadDropzoneImageAutoMultiple/ItemUpload.vue +0 -161
  179. package/dist/runtime/components/Form/InputUploadDropzoneImageAutoMultiple/ItemView.vue +0 -64
  180. package/dist/runtime/components/Form/InputUploadDropzoneImageAutoMultiple/index.vue +0 -178
  181. package/dist/runtime/components/Form/InputUploadDropzoneImageAutoMultiple/types.d.ts +0 -21
  182. package/dist/runtime/components/Form/InputUploadDropzoneImageAutoMultiple/types.mjs +0 -0
  183. package/dist/runtime/components/Form/InputUploadFileClassic/index.vue +0 -95
  184. package/dist/runtime/components/Form/InputUploadFileClassic/types.d.ts +0 -13
  185. package/dist/runtime/components/Form/InputUploadFileClassic/types.mjs +0 -0
  186. package/dist/runtime/components/Form/InputUploadFileClassicAuto/index.vue +0 -151
  187. package/dist/runtime/components/Form/InputUploadFileClassicAuto/types.d.ts +0 -18
  188. package/dist/runtime/components/Form/InputUploadFileClassicAuto/types.mjs +0 -0
  189. package/dist/runtime/components/Form/InputUploadImageAuto/index.vue +0 -219
  190. package/dist/runtime/components/Form/InputUploadImageAuto/types.d.ts +0 -20
  191. package/dist/runtime/components/Form/InputUploadImageAuto/types.mjs +0 -0
  192. package/dist/runtime/components/Form/InputWYSIWYG/UploadImageForm.vue +0 -55
  193. package/dist/runtime/components/Form/InputWYSIWYG/index.vue +0 -230
  194. package/dist/runtime/components/Form/InputWYSIWYG/types.d.ts +0 -19
  195. package/dist/runtime/components/Form/InputWYSIWYG/types.mjs +0 -0
  196. package/dist/runtime/components/Icon.vue +0 -23
  197. package/dist/runtime/components/Log.vue +0 -22
  198. package/dist/runtime/components/Modal/index.vue +0 -146
  199. package/dist/runtime/components/OTPInput.vue +0 -127
  200. package/dist/runtime/components/QRCode.vue +0 -22
  201. package/dist/runtime/components/SimplePagination.vue +0 -96
  202. package/dist/runtime/components/Slideover/index.vue +0 -110
  203. package/dist/runtime/components/Tabs/index.vue +0 -64
  204. package/dist/runtime/composables/loaderList.mjs +0 -52
  205. package/dist/runtime/composables/loaderObject.mjs +0 -52
  206. package/dist/runtime/composables/loaderPage.mjs +0 -229
  207. package/dist/runtime/composables/useConfig.mjs +0 -9
  208. package/dist/runtime/composables/useDialog.mjs +0 -81
  209. package/dist/runtime/composables/useForm.mjs +0 -18
  210. package/dist/runtime/core.config.d.ts +0 -14
  211. package/dist/runtime/core.config.mjs +0 -14
  212. package/dist/runtime/helpers/apiListHelper.mjs +0 -44
  213. package/dist/runtime/helpers/apiObjectHelper.mjs +0 -46
  214. package/dist/runtime/helpers/apiPageHelper.mjs +0 -270
  215. package/dist/runtime/plugin.mjs +0 -149
  216. package/dist/runtime/types/common.mjs +0 -0
  217. package/dist/runtime/types/config.d.ts +0 -1
  218. package/dist/runtime/types/config.mjs +0 -0
  219. package/dist/runtime/types/lib.mjs +0 -0
  220. package/dist/runtime/ui.config/alert.d.ts +0 -3
  221. package/dist/runtime/ui.config/alert.mjs +0 -6
  222. package/dist/runtime/ui.config/badge.d.ts +0 -3
  223. package/dist/runtime/ui.config/badge.mjs +0 -1
  224. package/dist/runtime/ui.config/breadcrumb.d.ts +0 -1
  225. package/dist/runtime/ui.config/breadcrumb.mjs +0 -7
  226. package/dist/runtime/ui.config/button.d.ts +0 -3
  227. package/dist/runtime/ui.config/button.mjs +0 -8
  228. package/dist/runtime/ui.config/buttonGroup.d.ts +0 -3
  229. package/dist/runtime/ui.config/buttonGroup.mjs +0 -1
  230. package/dist/runtime/ui.config/card.d.ts +0 -1
  231. package/dist/runtime/ui.config/card.mjs +0 -2
  232. package/dist/runtime/ui.config/checkbox.d.ts +0 -3
  233. package/dist/runtime/ui.config/checkbox.mjs +0 -1
  234. package/dist/runtime/ui.config/formGroup.d.ts +0 -3
  235. package/dist/runtime/ui.config/formGroup.mjs +0 -5
  236. package/dist/runtime/ui.config/icon.d.ts +0 -3
  237. package/dist/runtime/ui.config/icon.mjs +0 -3
  238. package/dist/runtime/ui.config/index.d.ts +0 -16
  239. package/dist/runtime/ui.config/index.mjs +0 -16
  240. package/dist/runtime/ui.config/input.d.ts +0 -3
  241. package/dist/runtime/ui.config/input.mjs +0 -5
  242. package/dist/runtime/ui.config/modal.d.ts +0 -1
  243. package/dist/runtime/ui.config/modal.mjs +0 -34
  244. package/dist/runtime/ui.config/notification.d.ts +0 -11
  245. package/dist/runtime/ui.config/notification.mjs +0 -13
  246. package/dist/runtime/ui.config/notifications.d.ts +0 -3
  247. package/dist/runtime/ui.config/notifications.mjs +0 -3
  248. package/dist/runtime/ui.config/pagination.d.ts +0 -3
  249. package/dist/runtime/ui.config/pagination.mjs +0 -37
  250. package/dist/runtime/ui.config/select.d.ts +0 -3
  251. package/dist/runtime/ui.config/select.mjs +0 -5
  252. package/dist/runtime/ui.config/selectMenu.d.ts +0 -3
  253. package/dist/runtime/ui.config/selectMenu.mjs +0 -5
  254. package/dist/runtime/ui.config/slideover.d.ts +0 -1
  255. package/dist/runtime/ui.config/slideover.mjs +0 -16
  256. package/dist/runtime/ui.config/table.d.ts +0 -3
  257. package/dist/runtime/ui.config/table.mjs +0 -47
  258. package/dist/runtime/ui.config/tabs.d.ts +0 -3
  259. package/dist/runtime/ui.config/tabs.mjs +0 -4
  260. package/dist/runtime/ui.config/tags.d.ts +0 -25
  261. package/dist/runtime/ui.config/tags.mjs +0 -25
  262. package/dist/runtime/ui.config/textarea.d.ts +0 -3
  263. package/dist/runtime/ui.config/textarea.mjs +0 -5
  264. package/dist/runtime/ui.config/toggle.d.ts +0 -3
  265. package/dist/runtime/ui.config/toggle.mjs +0 -5
  266. package/dist/runtime/ui.config/uploadDropzoneImage.d.ts +0 -83
  267. package/dist/runtime/ui.config/uploadDropzoneImage.mjs +0 -26
  268. package/dist/runtime/ui.config/uploadFileDropzone.d.ts +0 -61
  269. package/dist/runtime/ui.config/uploadFileDropzone.mjs +0 -61
  270. package/dist/runtime/ui.config/uploadFileInputClassicAuto.d.ts +0 -8
  271. package/dist/runtime/ui.config/uploadFileInputClassicAuto.mjs +0 -8
  272. package/dist/runtime/ui.config/uploadImage.d.ts +0 -34
  273. package/dist/runtime/ui.config/uploadImage.mjs +0 -36
  274. package/dist/runtime/ui.css +0 -1
  275. package/dist/runtime/utils/ArrayHelper.spec.d.ts +0 -1
  276. package/dist/runtime/utils/ArrayHelper.spec.mjs +0 -112
  277. package/dist/runtime/utils/FileHelper.spec.d.ts +0 -1
  278. package/dist/runtime/utils/FileHelper.spec.mjs +0 -14
  279. package/dist/runtime/utils/ObjectHelper.spec.d.ts +0 -1
  280. package/dist/runtime/utils/ObjectHelper.spec.mjs +0 -52
  281. package/dist/runtime/utils/ParamHelper.spec.d.ts +0 -1
  282. package/dist/runtime/utils/ParamHelper.spec.mjs +0 -78
  283. package/dist/runtime/utils/StringHelper.spec.d.ts +0 -1
  284. package/dist/runtime/utils/StringHelper.spec.mjs +0 -76
  285. package/dist/runtime/utils/TimeHelper.spec.d.ts +0 -1
  286. package/dist/runtime/utils/TimeHelper.spec.mjs +0 -79
  287. package/dist/runtime/utils/TimeHelper.thai.spec.d.ts +0 -1
  288. package/dist/runtime/utils/TimeHelper.thai.spec.mjs +0 -31
  289. package/dist/types.d.ts +0 -16
  290. package/dist/runtime/components/FlexDeck/{types.mjs → types.js} +0 -0
  291. package/dist/runtime/components/Form/InputCheckbox/{types.mjs → types.js} +0 -0
  292. package/dist/runtime/components/Form/InputDateTime/{date_time_field.types.mjs → date_time_field.types.js} +0 -0
  293. package/dist/runtime/components/Form/{InputDateTimeRange/date_range_time_field.types.mjs → InputNumber/types.js} +0 -0
  294. package/dist/runtime/components/Form/{InputNumber/types.mjs → InputSelect/types.js} +0 -0
  295. package/dist/runtime/components/Form/{InputRadio/types.mjs → InputSelectMultiple/types.js} +0 -0
  296. package/dist/runtime/components/Form/{InputSelect/types.mjs → InputText/types.js} +0 -0
  297. package/dist/runtime/components/Form/{InputSelectMultiple/types.mjs → InputTextarea/types.js} +0 -0
  298. package/dist/runtime/components/Form/{InputStatic/types.mjs → InputToggle/types.js} +0 -0
  299. package/dist/runtime/components/Form/{types.mjs → types.js} +0 -0
  300. package/dist/runtime/composables/{useWatch.mjs → useWatch.js} +0 -0
  301. package/dist/runtime/lib/{Requester.mjs → Requester.js} +0 -0
  302. package/dist/runtime/{components/Form/InputTags/types.mjs → types/common.js} +0 -0
  303. package/dist/runtime/{components/Form/InputText/types.mjs → types/lib.js} +0 -0
  304. package/dist/runtime/utils/{FileHelper.mjs → FileHelper.js} +0 -0
  305. package/dist/runtime/utils/{StringHelper.mjs → StringHelper.js} +0 -0
  306. package/dist/runtime/utils/{TimeHelper.mjs → TimeHelper.js} +1 -1
  307. /package/dist/runtime/utils/{lodash.mjs → lodash.js} +0 -0
@@ -1,27 +1,29 @@
1
- <template>
2
- <div
3
- v-if="isLoading"
4
- :class="[
5
- 'flex w-full items-center justify-center',
6
- $attrs.class,
7
- {
8
- 'min-h-[200px]': !$attrs.class,
9
- },
10
- ]"
11
- >
12
- <UIcon name="i-svg-spinners:180-ring-with-bg" class="text-primary text-4xl" dynamic />
13
- </div>
14
- <slot v-else />
15
- </template>
16
- <script lang="ts" setup>
17
- defineOptions({
18
- inheritAttrs: false,
19
- })
20
-
21
- defineProps({
22
- isLoading: {
23
- type: Boolean,
24
- default: true,
25
- },
26
- })
27
- </script>
1
+ <template>
2
+ <div
3
+ v-if="loading"
4
+ :class="theme.base({
5
+ class: [ui?.base, props.class]
6
+ })"
7
+ >
8
+ <Icon
9
+ :name="icon"
10
+ :class="[theme.icon({
11
+ class: [ui?.icon]
12
+ })]"
13
+ />
14
+ </div>
15
+ <slot v-else />
16
+ </template>
17
+
18
+ <script setup>
19
+ import { computed } from "vue";
20
+ import { loaderTheme } from "#core/theme/loader";
21
+ import { useUiConfig } from "#core/composables/useConfig";
22
+ const props = defineProps({
23
+ loading: { type: Boolean, required: false, default: true },
24
+ icon: { type: String, required: false, default: "i-svg-spinners:180-ring-with-bg" },
25
+ ui: { type: null, required: false },
26
+ class: { type: null, required: false }
27
+ });
28
+ const theme = computed(() => useUiConfig(loaderTheme, "loader")());
29
+ </script>
@@ -0,0 +1,22 @@
1
+ import { loaderTheme } from '#core/theme/loader';
2
+ type __VLS_Props = {
3
+ loading?: boolean;
4
+ icon?: string;
5
+ ui?: typeof loaderTheme['slots'];
6
+ class?: any;
7
+ };
8
+ declare var __VLS_5: {};
9
+ type __VLS_Slots = {} & {
10
+ default?: (props: typeof __VLS_5) => any;
11
+ };
12
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
13
+ loading: boolean;
14
+ icon: string;
15
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
16
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
17
+ export default _default;
18
+ type __VLS_WithSlots<T, S> = T & {
19
+ new (): {
20
+ $slots: S;
21
+ };
22
+ };
@@ -1,43 +1,46 @@
1
- <template>
2
- <div>
3
- <div class="mb-2 flex items-center justify-between">
4
- <p v-if="title" class="font-semibold">{{ title }}</p>
5
- <Icon
6
- class="cursor-pointer"
7
- :name="isShow ? 'heroicons:minus' : 'heroicons:plus'"
8
- @click="isShow = !isShow"
9
- />
10
- </div>
11
- <VCodeBlock
12
- v-show="isShow"
13
- :code="getCode"
14
- max-height="500"
15
- :browser-window="true"
16
- :indent="2"
17
- lang="json"
18
- highlightjs
19
- />
20
- </div>
21
- </template>
22
- <script lang="ts" setup>
23
- import { computed, ref } from 'vue'
24
- import { VCodeBlock } from '@wdns/vue-code-block'
25
-
26
- const props = defineProps<{
27
- data?: any
28
- title?: string
29
- }>()
30
-
31
- const isShow = ref(true)
32
-
33
- const getCode = computed(() => {
34
- try {
35
- return JSON.stringify(props.data)
36
- } catch (e) {
37
- return JSON.stringify('{}')
38
- }
39
- })
40
- </script>
1
+ <template>
2
+ <div class="text-xs">
3
+ <div class="mb-2 flex items-center justify-between">
4
+ <p
5
+ class="font-semibold"
6
+ >
7
+ {{ title || "Log" }}
8
+ </p>
9
+ <Icon
10
+ class="cursor-pointer"
11
+ :name="isShow ? 'heroicons:minus' : 'heroicons:plus'"
12
+ @click="isShow = !isShow"
13
+ />
14
+ </div>
15
+ <VCodeBlock
16
+ v-show="isShow"
17
+ :code="getCode"
18
+ max-height="500"
19
+ :browser-window="false"
20
+ :indent="2"
21
+ lang="json"
22
+ highlightjs
23
+ />
24
+ </div>
25
+ </template>
26
+
27
+ <script setup>
28
+ import { computed, ref } from "vue";
29
+ import { VCodeBlock } from "@wdns/vue-code-block";
30
+ const props = defineProps({
31
+ data: { type: null, required: false },
32
+ title: { type: String, required: false }
33
+ });
34
+ const isShow = ref(true);
35
+ const getCode = computed(() => {
36
+ try {
37
+ return JSON.stringify(props.data);
38
+ } catch (e) {
39
+ return JSON.stringify("{}");
40
+ }
41
+ });
42
+ </script>
43
+
41
44
  <style>
42
45
  .hljs-string{white-space:break-spaces}
43
- </style>
46
+ </style>
@@ -0,0 +1,6 @@
1
+ type __VLS_Props = {
2
+ data?: any;
3
+ title?: string;
4
+ };
5
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ export default _default;
@@ -0,0 +1,28 @@
1
+ <template>
2
+ <DevOnly>
3
+ <TeleportSafe
4
+ to="#dev-logs"
5
+ >
6
+ <LogItem
7
+ v-if="typeof data !== 'undefined'"
8
+ :data="data"
9
+ :title="title"
10
+ />
11
+ <LogItem
12
+ v-for="(item, index) in dataItems"
13
+ :key="index"
14
+ :data="item"
15
+ :title="`${title} #${index + 1}`"
16
+ />
17
+ </TeleportSafe>
18
+ </DevOnly>
19
+ </template>
20
+
21
+ <script setup>
22
+ import LogItem from "./LogItem.vue";
23
+ defineProps({
24
+ data: { type: null, required: false },
25
+ dataItems: { type: Array, required: false },
26
+ title: { type: String, required: false }
27
+ });
28
+ </script>
@@ -0,0 +1,7 @@
1
+ type __VLS_Props = {
2
+ data?: any;
3
+ dataItems?: any[];
4
+ title?: string;
5
+ };
6
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
+ export default _default;
@@ -1,161 +1,166 @@
1
- <template>
2
- <div v-if="!isHideCaption || !isHideBottomPagination" class="mb-4 text-gray-500">
3
- <span class="font-bold">ผลลัพธ์ทั้งหมด:</span>
4
- จำนวน
5
- <span class="font-bold">{{ pageOptions?.totalCount || 0 }}</span>
6
- รายการ
7
- </div>
8
- <UTable :loading="status.isLoading" :columns="columns" :rows="rawData" v-bind="$attrs">
9
- <template #loading-state>
10
- <div class="flex h-60 items-center justify-center">
11
- <Icon name="i-svg-spinners:180-ring-with-bg" class="text-primary size-8" />
12
- </div>
13
- </template>
14
- <template #empty-state>
15
- <Empty />
16
- </template>
17
- <template v-for="column in columns" #[`${column.key}-data`]="{ row }" :key="column.key">
18
- <ColumnNumber
19
- v-if="column.type === COLUMN_TYPES.NUMBER"
20
- :value="transformValue(column, row)"
21
- :column="column"
22
- :class="column.class"
23
- :row="row"
24
- />
25
- <ColumnImage
26
- v-else-if="column.type === COLUMN_TYPES.IMAGE"
27
- :value="transformValue(column, row)"
28
- :column="column"
29
- :class="column.class"
30
- :row="row"
31
- />
32
- <ColumnDateTime
33
- v-else-if="column.type === COLUMN_TYPES.DATE_TIME"
34
- :value="transformValue(column, row)"
35
- :column="column"
36
- :class="column.class"
37
- :row="row"
38
- />
39
- <ColumnDate
40
- v-else-if="column.type === COLUMN_TYPES.DATE"
41
- :value="transformValue(column, row)"
42
- :column="column"
43
- :class="column.class"
44
- :row="row"
45
- />
46
- <component
47
- :is="column.component"
48
- v-else-if="column.type === COLUMN_TYPES.COMPONENT"
49
- :value="transformValue(column, row)"
50
- :column="column"
51
- :class="column.class"
52
- :row="row"
53
- />
54
- <ColumnText v-else :value="transformValue(column, row)" :column="column" :row="row" />
55
- </template>
56
-
57
- <template v-for="(_, slot) of $slots" #[slot]="scope">
58
- <slot :name="slot" v-bind="scope" />
59
- </template>
60
- </UTable>
61
- <div v-if="pageOptions" class="mt-4 flex justify-between px-3">
62
- <p class="text-sm text-gray-500">
63
- ผลลัพธ์ {{ pageBetween }} ของ {{ totalCountWithComma }} รายการ
64
- </p>
65
- <UPagination
66
- v-if="pageOptions.totalPage > 1 && !isSimplePagination && !isHideBottomPagination"
67
- v-model="page"
68
- :page-count="pageOptions.limit"
69
- :total="pageOptions.totalCount"
70
- />
71
- <SimplePagination
72
- v-if="pageOptions.totalPage > 1 && isSimplePagination"
73
- v-model="page"
74
- :page-count="pageOptions.limit"
75
- :total="pageOptions.totalCount"
76
- />
77
- </div>
78
- </template>
79
-
80
- <script lang="ts" setup>
81
- import { COLUMN_TYPES, type IColumn, type ITableOptions } from '#core/components/Table/types'
82
- import ColumnNumber from '#core/components/Table/ColumnNumber.vue'
83
- import ColumnImage from '#core/components/Table/ColumnImage.vue'
84
- import { computed, type PropType } from 'vue'
85
- import { StringHelper } from '#core/utils/StringHelper'
86
- import { ref, watch } from '#imports'
87
- import ColumnDateTime from '#core/components/Table/ColumnDateTime.vue'
88
- import Empty from '#core/components/Empty.vue'
89
- import ColumnDate from '#core/components/Table/ColumnDate.vue'
90
- import ColumnText from '#core/components/Table/ColumnText.vue'
91
- import { useWatchChange } from '#core/composables/useWatch'
92
-
93
- const emits = defineEmits(['pageChange'])
94
-
95
- const props = defineProps({
96
- status: {
97
- type: Object as PropType<ITableOptions['status']>,
98
- required: true,
99
- },
100
- pageOptions: {
101
- type: Object as PropType<ITableOptions['pageOptions']>,
102
- required: false,
103
- },
104
- columns: {
105
- type: Array as PropType<ITableOptions['columns']>,
106
- required: true,
107
- },
108
- rawData: {
109
- type: Array as PropType<ITableOptions['rawData']>,
110
- required: true,
111
- },
112
- isSimplePagination: {
113
- type: Boolean as PropType<ITableOptions['isSimplePagination']>,
114
- default: false,
115
- },
116
- isHideBottomPagination: {
117
- type: Boolean as PropType<ITableOptions['isHideBottomPagination']>,
118
- default: false,
119
- },
120
- isHideCaption: {
121
- type: Boolean as PropType<ITableOptions['isHideCaption']>,
122
- default: false,
123
- },
124
- })
125
-
126
- const page = ref(props.pageOptions?.currentPage || 1)
127
-
128
- useWatchChange(
129
- () => props.pageOptions?.currentPage,
130
- (value: number) => {
131
- page.value = value
132
- }
133
- )
134
-
135
- const pageBetween = computed((): string => {
136
- const length = props.rawData?.length
137
-
138
- if (length === 0) {
139
- return '0'
140
- }
141
-
142
- const start = (props.pageOptions!.currentPage - 1) * props.pageOptions!.limit + 1
143
- const end = start + length - 1
144
-
145
- return `${start} - ${end}`
146
- })
147
-
148
- const transformValue = (column: IColumn, row: any) => {
149
- return column.transform ? column.transform(row[column.key], row, column) : row[column.key]
150
- }
151
-
152
- const totalCountWithComma = computed((): string => {
153
- return !props.pageOptions!.totalCount
154
- ? '0'
155
- : StringHelper.withComma(props.pageOptions!.totalCount)
156
- })
157
-
158
- watch(page, () => {
159
- emits('pageChange', page.value)
160
- })
161
- </script>
1
+ <template>
2
+ <div
3
+ v-if="!isHideCaption || !isHideBottomPagination"
4
+ class="mb-4 text-gray-500"
5
+ >
6
+ <span class="font-bold">ผลลัพธ์ทั้งหมด:</span>
7
+ จำนวน
8
+ <span class="font-bold">{{ pageOptions?.totalCount || 0 }}</span>
9
+ รายการ
10
+ </div>
11
+ <UTable
12
+ :loading="status.isLoading"
13
+ :columns="uTableCompatibleColumns"
14
+ :rows="rawData"
15
+ v-bind="$attrs"
16
+ >
17
+ <template #loading-state>
18
+ <div class="flex h-60 items-center justify-center">
19
+ <Icon
20
+ name="i-svg-spinners:180-ring-with-bg"
21
+ class="text-primary size-8"
22
+ />
23
+ </div>
24
+ </template>
25
+ <template #empty-state>
26
+ <Empty />
27
+ </template>
28
+ <template
29
+ v-for="column in columns"
30
+ #[`${column.accessorKey}-data`]="{ row }"
31
+ :key="column.accessorKey"
32
+ >
33
+ <component
34
+ :is="column.type === COLUMN_TYPES.COMPONENT ? column.component : column.type ? columnTypeComponents[column.type] : void 0"
35
+ v-if="column.type === COLUMN_TYPES.COMPONENT || column.type && columnTypeComponents[column.type]"
36
+ :value="transformValue(column, row)"
37
+ :column="column"
38
+ :row="row"
39
+ />
40
+ <ColumnText
41
+ v-else
42
+ :value="transformValue(column, row)"
43
+ :column="column"
44
+ :row="row"
45
+ />
46
+ </template>
47
+
48
+ <template
49
+ v-for="(_, slotName) in $slots"
50
+ #[slotName]="scope"
51
+ >
52
+ <slot
53
+ :name="slotName"
54
+ v-bind="scope"
55
+ />
56
+ </template>
57
+ </UTable>
58
+ <div
59
+ v-if="pageOptions"
60
+ class="mt-4 flex justify-between px-3"
61
+ >
62
+ <p class="text-sm text-gray-500">
63
+ ผลลัพธ์ {{ pageBetween }} ของ {{ totalCountWithComma }} รายการ
64
+ </p>
65
+ <Pagination
66
+ v-if="pageOptions.totalPage > 1 && !isSimplePagination && !isHideBottomPagination"
67
+ v-model="page"
68
+ :page-count="pageOptions.limit"
69
+ :total="pageOptions.totalCount"
70
+ />
71
+ <SimplePagination
72
+ v-if="pageOptions.totalPage > 1 && isSimplePagination"
73
+ v-model="page"
74
+ :page-count="pageOptions.limit"
75
+ :total="pageOptions.totalCount"
76
+ />
77
+ </div>
78
+ </template>
79
+
80
+ <script setup>
81
+ import { computed } from "vue";
82
+ import { COLUMN_TYPES } from "#core/components/Table/types";
83
+ import ColumnNumber from "#core/components/Table/ColumnNumber.vue";
84
+ import ColumnImage from "#core/components/Table/ColumnImage.vue";
85
+ import { StringHelper } from "#core/utils/StringHelper";
86
+ import { ref, watch } from "#imports";
87
+ import ColumnDateTime from "#core/components/Table/ColumnDateTime.vue";
88
+ import Empty from "#core/components/Empty.vue";
89
+ import ColumnDate from "#core/components/Table/ColumnDate.vue";
90
+ import ColumnText from "#core/components/Table/ColumnText.vue";
91
+ import { useWatchChange } from "#core/composables/useWatch";
92
+ import UTable from "#ui/components/Table";
93
+ const emits = defineEmits(["pageChange"]);
94
+ const props = defineProps({
95
+ status: {
96
+ type: Object,
97
+ required: true
98
+ },
99
+ pageOptions: {
100
+ type: Object,
101
+ required: false
102
+ },
103
+ columns: {
104
+ type: Array,
105
+ // This resolves to TableColumn[]
106
+ required: true
107
+ },
108
+ rawData: {
109
+ type: Array,
110
+ required: true
111
+ },
112
+ isSimplePagination: {
113
+ type: Boolean,
114
+ default: false
115
+ },
116
+ isHideBottomPagination: {
117
+ type: Boolean,
118
+ default: false
119
+ },
120
+ isHideCaption: {
121
+ type: Boolean,
122
+ default: false
123
+ }
124
+ });
125
+ const page = ref(props.pageOptions?.currentPage || 1);
126
+ const uTableCompatibleColumns = computed(
127
+ () => props.columns.map((col) => ({
128
+ ...col,
129
+ key: col.accessorKey
130
+ // Use accessorKey for UTable's key property
131
+ // label: col.label || col.accessorKey // Optional: ensure label if not present, UTable uses key as fallback for header
132
+ }))
133
+ );
134
+ const columnTypeComponents = {
135
+ [COLUMN_TYPES.NUMBER]: ColumnNumber,
136
+ [COLUMN_TYPES.IMAGE]: ColumnImage,
137
+ [COLUMN_TYPES.DATE_TIME]: ColumnDateTime,
138
+ [COLUMN_TYPES.DATE]: ColumnDate,
139
+ [COLUMN_TYPES.TEXT]: ColumnText
140
+ };
141
+ useWatchChange(
142
+ () => props.pageOptions?.currentPage,
143
+ (value) => {
144
+ page.value = value;
145
+ }
146
+ );
147
+ const pageBetween = computed(() => {
148
+ const length = props.rawData?.length;
149
+ if (length === 0) {
150
+ return "0";
151
+ }
152
+ const start = (props.pageOptions.currentPage - 1) * props.pageOptions.limit + 1;
153
+ const end = start + length - 1;
154
+ return `${start} - ${end}`;
155
+ });
156
+ const transformValue = (column, row) => {
157
+ const value = row[column.accessorKey];
158
+ return column.transform ? column.transform(value, row, column) : value;
159
+ };
160
+ const totalCountWithComma = computed(() => {
161
+ return !props.pageOptions?.totalCount ? "0" : StringHelper.withComma(props.pageOptions.totalCount);
162
+ });
163
+ watch(page, () => {
164
+ emits("pageChange", page.value);
165
+ });
166
+ </script>
@@ -0,0 +1,47 @@
1
+ import { type PropType } from 'vue';
2
+ import { type ITableOptions } from '#core/components/Table/types';
3
+ declare var __VLS_20: any, __VLS_21: any;
4
+ type __VLS_Slots = {} & {
5
+ [K in NonNullable<typeof __VLS_20>]?: (props: typeof __VLS_21) => any;
6
+ };
7
+ declare const __VLS_component: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
8
+ status: {
9
+ type: PropType<ITableOptions["status"]>;
10
+ required: true;
11
+ };
12
+ pageOptions: {
13
+ type: PropType<ITableOptions["pageOptions"]>;
14
+ required: false;
15
+ };
16
+ columns: {
17
+ type: PropType<ITableOptions["columns"]>;
18
+ required: true;
19
+ };
20
+ rawData: {
21
+ type: PropType<ITableOptions["rawData"]>;
22
+ required: true;
23
+ };
24
+ isSimplePagination: {
25
+ type: PropType<ITableOptions["isSimplePagination"]>;
26
+ default: boolean;
27
+ };
28
+ isHideBottomPagination: {
29
+ type: PropType<ITableOptions["isHideBottomPagination"]>;
30
+ default: boolean;
31
+ };
32
+ isHideCaption: {
33
+ type: PropType<ITableOptions["isHideCaption"]>;
34
+ default: boolean;
35
+ };
36
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, any, string, import("vue").PublicProps, any, {
37
+ isHideCaption: boolean | undefined;
38
+ isHideBottomPagination: boolean | undefined;
39
+ isSimplePagination: boolean | undefined;
40
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
41
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
42
+ export default _default;
43
+ type __VLS_WithSlots<T, S> = T & {
44
+ new (): {
45
+ $slots: S;
46
+ };
47
+ };
@@ -1,16 +1,14 @@
1
- <template>
2
- {{ getValue || '-' }}
3
- </template>
4
- <script lang="ts" setup>
5
- import { computed } from 'vue'
6
- import { type IColumn } from '#core/components/Table/types'
7
- import { TimeHelper } from '#core/utils/TimeHelper'
8
-
9
- const props = defineProps<{
10
- value: any
11
- row: any
12
- column: IColumn
13
- }>()
14
-
15
- const getValue = computed<string>(() => TimeHelper.displayDate(props.value))
16
- </script>
1
+ <template>
2
+ {{ getValue || "-" }}
3
+ </template>
4
+
5
+ <script setup>
6
+ import { computed } from "vue";
7
+ import { TimeHelper } from "#core/utils/TimeHelper";
8
+ const props = defineProps({
9
+ value: { type: null, required: true },
10
+ row: { type: null, required: true },
11
+ column: { type: null, required: true }
12
+ });
13
+ const getValue = computed(() => TimeHelper.displayDate(props.value));
14
+ </script>
@@ -0,0 +1,8 @@
1
+ import type { TableColumn } from '@nuxt/ui';
2
+ type __VLS_Props = {
3
+ value: any;
4
+ row: any;
5
+ column: TableColumn<any>;
6
+ };
7
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
8
+ export default _default;