@finema/core 1.4.219 → 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 +58 -39
  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 +67 -100
  10. package/dist/runtime/components/Dialog/index.vue.d.ts +10 -0
  11. package/dist/runtime/components/Empty.vue +29 -14
  12. package/dist/runtime/components/Empty.vue.d.ts +12 -0
  13. package/dist/runtime/components/FlexDeck/Base.vue +82 -87
  14. package/dist/runtime/components/FlexDeck/Base.vue.d.ts +63 -0
  15. package/dist/runtime/components/FlexDeck/index.vue +38 -39
  16. package/dist/runtime/components/FlexDeck/index.vue.d.ts +43 -0
  17. package/dist/runtime/components/Form/FieldWrapper.vue +21 -9
  18. package/dist/runtime/components/Form/FieldWrapper.vue.d.ts +16 -0
  19. package/dist/runtime/components/Form/Fields.vue +84 -222
  20. package/dist/runtime/components/Form/Fields.vue.d.ts +14 -0
  21. package/dist/runtime/components/Form/InputCheckbox/index.vue +43 -18
  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 +59 -30
  26. package/dist/runtime/components/Form/InputDateTime/index.vue.d.ts +4 -0
  27. package/dist/runtime/components/Form/InputNumber/index.vue +51 -17
  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 +77 -37
  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 +91 -37
  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 +103 -36
  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 +43 -11
  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 +41 -17
  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 +0 -1
  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 +47 -32
  49. package/dist/runtime/components/Image.vue.d.ts +13 -0
  50. package/dist/runtime/components/Loader.vue +21 -19
  51. package/dist/runtime/components/Loader.vue.d.ts +22 -0
  52. package/dist/runtime/components/{LogItem.vue → Log/LogItem.vue} +19 -16
  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 +103 -98
  57. package/dist/runtime/components/Table/Base.vue.d.ts +47 -0
  58. package/dist/runtime/components/Table/ColumnDate.vue +10 -12
  59. package/dist/runtime/components/Table/ColumnDate.vue.d.ts +8 -0
  60. package/dist/runtime/components/Table/ColumnDateTime.vue +11 -13
  61. package/dist/runtime/components/Table/ColumnDateTime.vue.d.ts +8 -0
  62. package/dist/runtime/components/Table/ColumnImage.vue +12 -11
  63. package/dist/runtime/components/Table/ColumnImage.vue.d.ts +8 -0
  64. package/dist/runtime/components/Table/ColumnNumber.vue +12 -12
  65. package/dist/runtime/components/Table/ColumnNumber.vue.d.ts +8 -0
  66. package/dist/runtime/components/Table/ColumnText.vue +19 -24
  67. package/dist/runtime/components/Table/ColumnText.vue.d.ts +8 -0
  68. package/dist/runtime/components/Table/Simple.vue +41 -42
  69. package/dist/runtime/components/Table/Simple.vue.d.ts +24 -0
  70. package/dist/runtime/components/Table/index.vue +159 -46
  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 +31 -29
  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 +54 -63
  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
@@ -0,0 +1,63 @@
1
+ import { ObjectHelper } from "../utils/ObjectHelper.js";
2
+ import { ParamHelper } from "../utils/ParamHelper.js";
3
+ import { NewRequester } from "../lib/Requester.js";
4
+ export const checkExpiration = (timestamp, expire) => {
5
+ if (!expire || !timestamp) return false;
6
+ return timestamp + expire > Date.now();
7
+ };
8
+ export const bindParamsToUrl = (urlTemplate, urlParams = {}) => {
9
+ let resultUrl = urlTemplate;
10
+ Object.entries(urlParams).forEach(([key, value]) => {
11
+ resultUrl = resultUrl.replace(`:${key}`, String(value));
12
+ });
13
+ return resultUrl;
14
+ };
15
+ export const prepareRequestOptions = (baseOptions, requestOptions, params) => {
16
+ const options = {
17
+ ...baseOptions || {},
18
+ ...requestOptions || {}
19
+ };
20
+ options.params = ParamHelper.getParams({ params }, options);
21
+ return options;
22
+ };
23
+ export const handleApiRequest = async (requestContext, mockData, callbacks) => {
24
+ const {
25
+ url,
26
+ method,
27
+ data,
28
+ options
29
+ } = requestContext;
30
+ try {
31
+ if (mockData) {
32
+ await new Promise((resolve) => setTimeout(resolve, 300));
33
+ callbacks.onSuccess(mockData);
34
+ } else {
35
+ const response = await NewRequester.create(method, url, data, options);
36
+ callbacks.onSuccess(response.data, response.status);
37
+ }
38
+ } catch (error) {
39
+ callbacks.onError(error);
40
+ } finally {
41
+ callbacks.onComplete?.();
42
+ }
43
+ };
44
+ export const updateLoaderState = {
45
+ setLoading: (status) => ObjectHelper.toLoadingStatus(
46
+ status
47
+ ),
48
+ setSuccess: (status) => ObjectHelper.toSuccessStatus(
49
+ status
50
+ ),
51
+ setError: (status, error) => ObjectHelper.toErrorStatus(
52
+ status,
53
+ error
54
+ ),
55
+ setComplete: (status) => ObjectHelper.toCompleteStatus(
56
+ status
57
+ ),
58
+ setOptions: (options, updates) => ({
59
+ ...options,
60
+ ...updates,
61
+ _timestamp: Date.now()
62
+ })
63
+ };
@@ -1,13 +1,11 @@
1
- import { type IAPIListState, type IAPIOptions, type IStatus } from '#core/types/lib';
2
1
  import type { AxiosRequestConfig } from 'axios';
3
- export interface IListRunLoaderOptions<T, D = Record<string, any>> {
2
+ import type { IAPIListState, IAPIOptions, IStatus } from '../types/lib.js';
3
+ import { type IBaseLoaderOptions } from './apiBaseHelper.js';
4
+ export interface IListRunLoaderOptions<T = any, D = Record<string, any>> extends IBaseLoaderOptions {
4
5
  mockItems?: T[];
5
- isMock?: boolean;
6
- params?: Record<string, any>;
7
- expire?: number;
8
6
  data?: D;
9
7
  }
10
- export interface IListLoaderOptions<T, O> {
8
+ export interface IListLoaderOptions<T = any, O = any> {
11
9
  url: string;
12
10
  primary?: string;
13
11
  mockItems?: T[];
@@ -0,0 +1,50 @@
1
+ import { bindParamsToUrl } from "./apiBaseHelper.js";
2
+ import {
3
+ checkExpiration,
4
+ prepareRequestOptions,
5
+ handleApiRequest,
6
+ updateLoaderState
7
+ } from "./apiBaseHelper.js";
8
+ export const apiListHelper = async (state, onUpdateStatus, onUpdateOptions, onUpdateItems, opts) => {
9
+ if (checkExpiration(state().options._timestamp, opts.expire)) {
10
+ onUpdateStatus(updateLoaderState.setComplete(state().status));
11
+ return;
12
+ }
13
+ onUpdateStatus(updateLoaderState.setLoading(state().status));
14
+ onUpdateOptions({});
15
+ const requestOptions = prepareRequestOptions(
16
+ {},
17
+ opts.getRequestOptions?.(opts),
18
+ opts.params
19
+ );
20
+ const url = bindParamsToUrl(opts.getURL ? opts.getURL(opts) : opts.url, opts.urlBind || {});
21
+ await handleApiRequest(
22
+ {
23
+ url,
24
+ method: "GET",
25
+ options: requestOptions
26
+ },
27
+ opts.isMock ? opts.mockItems || [] : null,
28
+ {
29
+ onSuccess: (items, status) => {
30
+ onUpdateItems(items);
31
+ onUpdateStatus(updateLoaderState.setSuccess(state().status));
32
+ onUpdateOptions({
33
+ _timestamp: Date.now(),
34
+ _status: status,
35
+ request: requestOptions
36
+ });
37
+ },
38
+ onError: (error) => {
39
+ onUpdateStatus(updateLoaderState.setError(state().status, error));
40
+ onUpdateOptions({
41
+ _status: error.response?.status,
42
+ request: requestOptions
43
+ });
44
+ },
45
+ onComplete: () => {
46
+ onUpdateStatus(updateLoaderState.setComplete(state().status));
47
+ }
48
+ }
49
+ );
50
+ };
@@ -1,38 +1,37 @@
1
- import { type IAPIObjectState, type IAPIOptions, type IStatus } from '#core/types/lib';
2
1
  import type { AxiosRequestConfig, Method } from 'axios';
3
- import type { Ref, UnwrapRef } from 'vue';
4
- import { type IListRunLoaderOptions } from '#core/helpers/apiListHelper';
5
- export interface IObjectRunLoaderOptions<T, D = Record<string, any>> {
2
+ import type { ComputedRef } from 'vue';
3
+ import type { IAPIObjectState, IAPIOptions, IStatus } from '../types/lib.js';
4
+ import { type IBaseLoaderOptions } from './apiBaseHelper.js';
5
+ import type { IListRunLoaderOptions } from './apiListHelper.js';
6
+ export interface IObjectRunLoaderOptions<T = any, B = any> extends IBaseLoaderOptions {
6
7
  mockItem?: T;
7
- isMock?: boolean;
8
- params?: Record<string, any>;
9
- expire?: number;
10
- data?: D;
8
+ data?: B;
9
+ urlBind?: Record<string, any>;
11
10
  }
12
- export interface IObjectLoaderOptions<T, B, O> {
11
+ export interface IObjectLoaderOptions<T = any, B = any, _O = any> {
13
12
  url: string;
14
13
  method: Method;
15
14
  primary?: string;
16
15
  mockItem?: T;
17
- getURL?: (data: B | undefined, opts: IObjectRunLoaderOptions<T, O>) => string;
18
- getRequestOptions?: (data: B | undefined, opts: IObjectRunLoaderOptions<T, O>) => AxiosRequestConfig;
16
+ getURL?: (data: B | undefined, opts: IObjectRunLoaderOptions<T, B>) => string;
17
+ getRequestOptions?: (data: B | undefined, opts: IObjectRunLoaderOptions<T, B>) => AxiosRequestConfig;
19
18
  }
20
- export interface IUseObjectLoader<T, B, O> {
21
- status: Ref<IStatus>;
22
- data: Ref<UnwrapRef<T | null>>;
23
- options: Ref<IAPIOptions>;
24
- run: (data?: B, opts?: IObjectRunLoaderOptions<T, O>) => Promise<void>;
19
+ export interface IUseObjectLoader<T, B, _O> {
20
+ status: ComputedRef<IStatus>;
21
+ data: ComputedRef<T | null>;
22
+ options: ComputedRef<IAPIOptions>;
23
+ run: (payload?: IObjectRunLoaderOptions<T, B>) => Promise<void>;
25
24
  clear: () => void;
26
25
  setLoading: () => void;
27
26
  setData: (data: T | null) => void;
28
27
  }
29
28
  export interface IUseListLoader<T, O> {
30
- status: Ref<IStatus>;
31
- items: Ref<UnwrapRef<T[]>>;
32
- options: Ref<Record<string, any>>;
29
+ status: ComputedRef<IStatus>;
30
+ items: ComputedRef<T[]>;
31
+ options: ComputedRef<Record<string, any>>;
33
32
  run: (opts?: IListRunLoaderOptions<T, O>) => void;
34
33
  setItems: (items: T[]) => void;
35
34
  clear: () => void;
36
35
  setLoading: () => void;
37
36
  }
38
- export declare const apiObjectHelper: <T, B, O>(state: () => IAPIObjectState<T>, onUpdateStatus: (status: IStatus) => void, onUpdateOptions: (options: IAPIOptions) => void, onUpdateData: (data: any) => void, data: B | undefined, opts: IObjectLoaderOptions<T, B, O> & IObjectRunLoaderOptions<T, O>) => Promise<void>;
37
+ export declare const apiObjectHelper: <T, B, _O>(state: () => IAPIObjectState<T>, onUpdateStatus: (status: IStatus) => void, onUpdateOptions: (options: IAPIOptions) => void, onUpdateData: (data?: T) => void, payload: B | undefined, opts: IObjectLoaderOptions<T, B, _O> & IObjectRunLoaderOptions<T, B>) => Promise<void>;
@@ -0,0 +1,51 @@
1
+ import { bindParamsToUrl } from "./apiBaseHelper.js";
2
+ import {
3
+ checkExpiration,
4
+ handleApiRequest,
5
+ prepareRequestOptions,
6
+ updateLoaderState
7
+ } from "./apiBaseHelper.js";
8
+ export const apiObjectHelper = async (state, onUpdateStatus, onUpdateOptions, onUpdateData, payload, opts) => {
9
+ if (checkExpiration(state().options._timestamp, opts.expire)) {
10
+ onUpdateStatus(updateLoaderState.setComplete(state().status));
11
+ return;
12
+ }
13
+ onUpdateStatus(updateLoaderState.setLoading(state().status));
14
+ onUpdateOptions({});
15
+ const requestOptions = prepareRequestOptions(
16
+ {},
17
+ opts.getRequestOptions?.(payload, opts),
18
+ opts.params
19
+ );
20
+ const url = bindParamsToUrl(opts.getURL ? opts.getURL(payload, opts) : opts.url, opts.urlBind || {});
21
+ await handleApiRequest(
22
+ {
23
+ url,
24
+ method: opts.method,
25
+ data: payload,
26
+ options: requestOptions
27
+ },
28
+ opts.isMock ? opts.mockItem || null : null,
29
+ {
30
+ onSuccess: (item, status) => {
31
+ onUpdateData(item);
32
+ onUpdateStatus(updateLoaderState.setSuccess(state().status));
33
+ onUpdateOptions({
34
+ request: requestOptions,
35
+ _timestamp: Date.now(),
36
+ _status: status
37
+ });
38
+ },
39
+ onError: (error) => {
40
+ onUpdateStatus(updateLoaderState.setError(state().status, error));
41
+ onUpdateOptions({
42
+ request: requestOptions,
43
+ _status: error.response?.status
44
+ });
45
+ },
46
+ onComplete: () => {
47
+ onUpdateStatus(updateLoaderState.setComplete(state().status));
48
+ }
49
+ }
50
+ );
51
+ };
@@ -1,31 +1,19 @@
1
- import { type IAPIAddState, type IAPIDeleteState, type IAPIFetchState, type IAPIFindState, type IAPIOptions, type IAPIUpdateState, type IPageOptions, type IStatus } from '../types/lib';
2
1
  import type { AxiosRequestConfig } from 'axios';
3
- import type { Ref, UnwrapRef } from 'vue';
4
- export interface IPageFetchLoaderOptions<D = Record<string, any>> {
5
- isMock?: boolean;
6
- params?: Record<string, any>;
7
- expire?: number;
2
+ import type { IAPIAddState, IAPIDeleteState, IAPIFetchState, IAPIFindState, IAPIOptions, IAPIUpdateState, IPageOptions, IStatus } from '../types/lib.js';
3
+ import { type IBaseLoaderOptions } from './apiBaseHelper.js';
4
+ export interface IPageFetchLoaderOptions<D = Record<string, any>> extends IBaseLoaderOptions {
8
5
  data?: D;
9
6
  }
10
- export interface IPageFindLoaderOptions<D = Record<string, any>> {
11
- isMock?: boolean;
12
- params?: Record<string, any>;
13
- expire?: number;
7
+ export interface IPageFindLoaderOptions<D = Record<string, any>> extends IBaseLoaderOptions {
14
8
  data?: D;
15
9
  }
16
- export interface IPageUpdateLoaderOptions<D = Record<string, any>> {
17
- isMock?: boolean;
18
- params?: Record<string, any>;
10
+ export interface IPageUpdateLoaderOptions<D = Record<string, any>> extends IBaseLoaderOptions {
19
11
  data?: D;
20
12
  }
21
- export interface IPageDeleteLoaderOptions<D = Record<string, any>> {
22
- isMock?: boolean;
23
- params?: Record<string, any>;
13
+ export interface IPageDeleteLoaderOptions<D = Record<string, any>> extends IBaseLoaderOptions {
24
14
  data?: D;
25
15
  }
26
- export interface IPageAddLoaderOptions<D = Record<string, any>> {
27
- isMock?: boolean;
28
- params?: Record<string, any>;
16
+ export interface IPageAddLoaderOptions<D = Record<string, any>> extends IBaseLoaderOptions {
29
17
  data?: D;
30
18
  }
31
19
  export interface IPageLoaderOptions<T> {
@@ -56,33 +44,45 @@ export interface IPageLoaderOptions<T> {
56
44
  };
57
45
  }
58
46
  export interface IUsePageLoader<T> {
59
- fetchStatus: Ref<IStatus>;
60
- findStatus: Ref<IStatus>;
61
- addStatus: Ref<IStatus>;
62
- updateStatus: Ref<IStatus>;
63
- deleteStatus: Ref<IStatus>;
64
- fetchOptions: Ref<IPageOptions>;
65
- deleteOptions: Ref<IAPIOptions>;
66
- addOptions: Ref<IAPIOptions>;
67
- findOptions: Ref<IAPIOptions>;
68
- updateOptions: Ref<IAPIOptions>;
69
- clear: () => void;
70
- fetch: (page?: number, query?: string, opts?: IPageFetchLoaderOptions) => Promise<void>;
71
- search: (query: string, opts?: IPageFetchLoaderOptions) => Promise<void>;
72
- find: (id: string, opts?: any) => Promise<void>;
73
- update: (id: string, data: any, opts?: any) => Promise<void>;
74
- add: (data: any, opts?: IPageAddLoaderOptions) => Promise<void>;
75
- remove: (id: string, opts?: IPageDeleteLoaderOptions) => Promise<void>;
76
- setFetchLoading: () => void;
77
- setFindLoading: () => void;
78
- fetchItems: Ref<UnwrapRef<T[]>>;
79
- findItem: Ref<UnwrapRef<T | null>>;
80
- deleteItem: Ref<UnwrapRef<T | null>>;
81
- addItem: Ref<UnwrapRef<T | null>>;
82
- updateItem: Ref<UnwrapRef<T | null>>;
47
+ fetch: {
48
+ status: IStatus;
49
+ items: T[];
50
+ options: IPageOptions;
51
+ };
52
+ find: {
53
+ status: IStatus;
54
+ item: T | null;
55
+ options: IAPIOptions;
56
+ value: (id: string, opts?: any) => Promise<void>;
57
+ };
58
+ add: {
59
+ status: IStatus;
60
+ item: T | null;
61
+ options: IAPIOptions;
62
+ };
63
+ update: {
64
+ status: IStatus;
65
+ item: T | null;
66
+ options: IAPIOptions;
67
+ };
68
+ delete: {
69
+ status: IStatus;
70
+ item: T | null;
71
+ options: IAPIOptions;
72
+ };
73
+ fetchPage: (page?: number, query?: string, opts?: IPageFetchLoaderOptions) => Promise<void>;
74
+ fetchPageChange: (page: number, opts?: IPageFetchLoaderOptions) => Promise<void>;
75
+ fetchSearch: (query: string, opts?: IPageFetchLoaderOptions) => Promise<void>;
76
+ fetchSetLoading: () => void;
77
+ findSetLoading: () => void;
78
+ findRun: (id: string, opts?: any) => Promise<void>;
79
+ addRun: (data: any, opts?: IPageAddLoaderOptions) => Promise<void>;
80
+ updateRun: (id: string, data: any, opts?: any) => Promise<void>;
81
+ deleteRun: (id: string, opts?: IPageDeleteLoaderOptions) => Promise<void>;
82
+ clearAll: () => void;
83
83
  }
84
84
  export declare const apiAddHelper: <T>(state: () => IAPIAddState<T>, onUpdateStatus: (status: IStatus) => void, onUpdateOptions: (options: IAPIOptions) => void, onUpdateData: (data: any) => void, onUpdateItems: (data: any[]) => void, data: any, opts: IPageLoaderOptions<any> & IPageFetchLoaderOptions) => Promise<void>;
85
85
  export declare const apiDeleteHelper: <T>(state: () => IAPIDeleteState<T>, onUpdateStatus: (status: IStatus) => void, onUpdateOptions: (options: IAPIOptions) => void, _onUpdateData: (data: T) => void, onUpdateItems: (data: T[]) => void, id: string | number, opts: IPageLoaderOptions<any> & IPageDeleteLoaderOptions) => Promise<void>;
86
86
  export declare const apiFetchHelper: <T>(state: () => IAPIFetchState<T>, onUpdateStatus: (status: IStatus) => void, onUpdateOptions: (options: IPageOptions) => void, onUpdateItems: (items: T[]) => void, page: number, query: string, opts: IPageLoaderOptions<T> & IPageFetchLoaderOptions<any>) => Promise<void>;
87
87
  export declare const apiFindHelper: <T>(state: () => IAPIFindState<T>, onUpdateStatus: (status: IStatus) => void, onUpdateOptions: (options: IAPIOptions) => void, onUpdateData: (data: any) => void, id: string | number, opts: IPageLoaderOptions<T> & IPageFindLoaderOptions) => Promise<void>;
88
- export declare const updateHelper: <T>(state: () => IAPIUpdateState<T>, onUpdateStatus: (status: IStatus) => void, onUpdateOptions: (options: IAPIOptions) => void, onUpdateData: (data: T) => void, _onUpdateItems: (data: T[]) => void, onUpdateOldData: (data: T) => void, id: string | number, data: any, opts: IPageLoaderOptions<any> & IPageUpdateLoaderOptions) => Promise<void>;
88
+ export declare const updateHelper: <T>(state: () => IAPIUpdateState<T>, onUpdateStatus: (status: IStatus) => void, onUpdateOptions: (options: IAPIOptions) => void, onUpdateData: (data: T) => void, onUpdateItems: (data: T[]) => void, onUpdateOldData: (data: T) => void, id: string | number, data: any, opts: IPageLoaderOptions<any> & IPageUpdateLoaderOptions) => Promise<void>;
@@ -0,0 +1,287 @@
1
+ import { useCoreConfig } from "../composables/useConfig.js";
2
+ import { bindParamsToUrl } from "./apiBaseHelper.js";
3
+ import {
4
+ checkExpiration,
5
+ handleApiRequest,
6
+ prepareRequestOptions,
7
+ updateLoaderState
8
+ } from "./apiBaseHelper.js";
9
+ import { _findIndex, _get, _shuffle } from "#imports";
10
+ export const apiAddHelper = async (state, onUpdateStatus, onUpdateOptions, onUpdateData, onUpdateItems, data, opts) => {
11
+ onUpdateStatus(updateLoaderState.setLoading(state().status));
12
+ onUpdateOptions({});
13
+ const requestOptions = prepareRequestOptions(
14
+ opts.getBaseRequestOptions?.() || {},
15
+ opts.add?.getRequestOptions?.(data, opts),
16
+ opts.params
17
+ );
18
+ const url = bindParamsToUrl(opts.add?.getURL ? opts.add.getURL(data, opts) : opts.baseURL, opts.pathBind);
19
+ await handleApiRequest(
20
+ {
21
+ url,
22
+ method: "POST",
23
+ data,
24
+ options: requestOptions
25
+ },
26
+ opts.isMock ? opts.mockItems?.[0] || null : null,
27
+ {
28
+ onSuccess: (item, status) => {
29
+ onUpdateData(item);
30
+ if (state().items) {
31
+ onUpdateItems([item, ...state().items]);
32
+ }
33
+ onUpdateStatus(updateLoaderState.setSuccess(state().status));
34
+ onUpdateOptions({
35
+ _timestamp: Date.now(),
36
+ _status: status,
37
+ request: requestOptions
38
+ });
39
+ },
40
+ onError: (error) => {
41
+ onUpdateStatus(updateLoaderState.setError(state().status, error));
42
+ onUpdateOptions({
43
+ _status: error.response?.status,
44
+ request: requestOptions
45
+ });
46
+ },
47
+ onComplete: () => {
48
+ onUpdateStatus(updateLoaderState.setComplete(state().status));
49
+ }
50
+ }
51
+ );
52
+ };
53
+ export const apiDeleteHelper = async (state, onUpdateStatus, onUpdateOptions, _onUpdateData, onUpdateItems, id, opts) => {
54
+ const primaryKey = opts.primary ?? "id";
55
+ const getPrimaryKey = (item) => _get(item, primaryKey, "");
56
+ onUpdateStatus(updateLoaderState.setLoading(state().status));
57
+ onUpdateOptions({});
58
+ const requestOptions = prepareRequestOptions(
59
+ opts.getBaseRequestOptions?.() || {},
60
+ opts.delete?.getRequestOptions?.(id, opts),
61
+ opts.params
62
+ );
63
+ const url = bindParamsToUrl(opts.delete?.getURL ? opts.delete.getURL(id, opts) : `${opts.baseURL}/${id}`, opts.pathBind);
64
+ await handleApiRequest(
65
+ {
66
+ url,
67
+ method: "DELETE",
68
+ options: requestOptions
69
+ },
70
+ opts.isMock ? null : null,
71
+ // No mock data needed for delete
72
+ {
73
+ onSuccess: (_, status) => {
74
+ if (state().items) {
75
+ onUpdateItems(
76
+ state().items.filter((item) => getPrimaryKey(item) !== id)
77
+ );
78
+ }
79
+ onUpdateStatus(updateLoaderState.setSuccess(state().status));
80
+ onUpdateOptions({
81
+ _timestamp: Date.now(),
82
+ _status: status,
83
+ request: requestOptions
84
+ });
85
+ },
86
+ onError: (error) => {
87
+ onUpdateStatus(updateLoaderState.setError(state().status, error));
88
+ onUpdateOptions({
89
+ _status: error.response?.status,
90
+ request: requestOptions
91
+ });
92
+ },
93
+ onComplete: () => {
94
+ onUpdateStatus(updateLoaderState.setComplete(state().status));
95
+ }
96
+ }
97
+ );
98
+ };
99
+ export const apiFetchHelper = async (state, onUpdateStatus, onUpdateOptions, onUpdateItems, page, query, opts) => {
100
+ const config = useCoreConfig();
101
+ if (checkExpiration(state().options._timestamp, opts.expire)) {
102
+ onUpdateStatus(updateLoaderState.setComplete(state().status));
103
+ return;
104
+ }
105
+ onUpdateStatus(updateLoaderState.setLoading(state().status));
106
+ onUpdateOptions({
107
+ ...state().options,
108
+ ...opts,
109
+ currentPage: page,
110
+ search: query,
111
+ primary: opts.primary ?? "id",
112
+ _status: void 0
113
+ });
114
+ const getOptions = (data) => {
115
+ const {
116
+ total,
117
+ limit: limit2,
118
+ ...more
119
+ } = data;
120
+ return {
121
+ ...state().options,
122
+ ...more,
123
+ currentPageCount: state().items?.length || 0,
124
+ currentPage: page,
125
+ totalCount: total,
126
+ limit: limit2,
127
+ search: query,
128
+ totalPage: Math.ceil(total / data.limit)
129
+ };
130
+ };
131
+ const baseRequestOptions = {
132
+ ...opts.getBaseRequestOptions?.() || {},
133
+ ...opts.fetch?.getRequestOptions?.(page, query, opts) || {}
134
+ };
135
+ const limit = baseRequestOptions.params?.limit || config.limit_per_page;
136
+ const requestOptions = prepareRequestOptions(
137
+ baseRequestOptions,
138
+ {
139
+ params: {
140
+ limit,
141
+ q: (query || "").trim(),
142
+ page
143
+ }
144
+ },
145
+ opts.params
146
+ );
147
+ const url = bindParamsToUrl(opts.fetch?.getURL ? opts.fetch.getURL(page, query, opts) : opts.baseURL, opts.pathBind);
148
+ await handleApiRequest(
149
+ {
150
+ url,
151
+ method: "GET",
152
+ options: requestOptions
153
+ },
154
+ opts.isMock ? {
155
+ items: _shuffle(opts.mockItems || []),
156
+ totalCount: (opts.mockItems || []).length,
157
+ limit
158
+ } : null,
159
+ {
160
+ onSuccess: (response, status) => {
161
+ const {
162
+ items,
163
+ ...moreOptions
164
+ } = response;
165
+ onUpdateItems(items);
166
+ onUpdateOptions({
167
+ ...getOptions(moreOptions),
168
+ _timestamp: Date.now(),
169
+ _status: status,
170
+ request: requestOptions
171
+ });
172
+ onUpdateStatus(updateLoaderState.setSuccess(state().status));
173
+ },
174
+ onError: (error) => {
175
+ onUpdateStatus(updateLoaderState.setError(state().status, error));
176
+ onUpdateOptions({
177
+ ...state().options,
178
+ _status: error.response?.status,
179
+ request: requestOptions
180
+ });
181
+ },
182
+ onComplete: () => {
183
+ onUpdateStatus(updateLoaderState.setComplete(state().status));
184
+ }
185
+ }
186
+ );
187
+ };
188
+ export const apiFindHelper = async (state, onUpdateStatus, onUpdateOptions, onUpdateData, id, opts) => {
189
+ if (checkExpiration(state().options._timestamp, opts.expire)) {
190
+ onUpdateStatus(updateLoaderState.setComplete(state().status));
191
+ return;
192
+ }
193
+ onUpdateStatus(updateLoaderState.setLoading(state().status));
194
+ onUpdateOptions({});
195
+ const requestOptions = prepareRequestOptions(
196
+ opts.getBaseRequestOptions?.() || {},
197
+ opts.find?.getRequestOptions?.(id, opts),
198
+ opts.params
199
+ );
200
+ const url = bindParamsToUrl(opts.find?.getURL ? opts.find.getURL(id, opts) : `${opts.baseURL}/${id}`, opts.pathBind);
201
+ await handleApiRequest(
202
+ {
203
+ url,
204
+ method: "GET",
205
+ options: requestOptions
206
+ },
207
+ opts.isMock ? opts.mockItems?.[0] || null : null,
208
+ {
209
+ onSuccess: (item, status) => {
210
+ onUpdateData(item);
211
+ onUpdateStatus(updateLoaderState.setSuccess(state().status));
212
+ onUpdateOptions({
213
+ _timestamp: Date.now(),
214
+ _status: status,
215
+ request: requestOptions
216
+ });
217
+ },
218
+ onError: (error) => {
219
+ onUpdateStatus(updateLoaderState.setError(state().status, error));
220
+ onUpdateOptions({
221
+ _status: error.response?.status,
222
+ request: requestOptions
223
+ });
224
+ },
225
+ onComplete: () => {
226
+ onUpdateStatus(updateLoaderState.setComplete(state().status));
227
+ }
228
+ }
229
+ );
230
+ };
231
+ export const updateHelper = async (state, onUpdateStatus, onUpdateOptions, onUpdateData, onUpdateItems, onUpdateOldData, id, data, opts) => {
232
+ if (checkExpiration(state().options._timestamp, opts.expire)) {
233
+ onUpdateStatus(updateLoaderState.setComplete(state().status));
234
+ return;
235
+ }
236
+ onUpdateStatus(updateLoaderState.setLoading(state().status));
237
+ onUpdateOptions({});
238
+ const requestOptions = prepareRequestOptions(
239
+ opts.getBaseRequestOptions?.() || {},
240
+ opts.update?.getRequestOptions?.(id, data, opts),
241
+ opts.params
242
+ );
243
+ const url = bindParamsToUrl(opts.update?.getURL ? opts.update.getURL(id, data, opts) : `${opts.baseURL}/${id}`, opts.pathBind);
244
+ await handleApiRequest(
245
+ {
246
+ url,
247
+ method: "PUT",
248
+ data,
249
+ options: requestOptions
250
+ },
251
+ opts.isMock ? opts.mockItems?.[0] || null : null,
252
+ {
253
+ onSuccess: (item, status) => {
254
+ onUpdateData(item);
255
+ const finalItem = item;
256
+ if (state().oldData) {
257
+ onUpdateOldData(finalItem);
258
+ }
259
+ const currentItems = state().items;
260
+ if (currentItems) {
261
+ const index = _findIndex(currentItems, (existingItem) => existingItem.id === id);
262
+ if (index !== -1) {
263
+ const itemsTemp = [...currentItems];
264
+ itemsTemp[index] = finalItem;
265
+ onUpdateItems(itemsTemp);
266
+ }
267
+ }
268
+ onUpdateStatus(updateLoaderState.setSuccess(state().status));
269
+ onUpdateOptions({
270
+ _timestamp: Date.now(),
271
+ _status: status,
272
+ request: requestOptions
273
+ });
274
+ },
275
+ onError: (error) => {
276
+ onUpdateStatus(updateLoaderState.setError(state().status, error));
277
+ onUpdateOptions({
278
+ _status: error.response?.status,
279
+ request: requestOptions
280
+ });
281
+ },
282
+ onComplete: () => {
283
+ onUpdateStatus(updateLoaderState.setComplete(state().status));
284
+ }
285
+ }
286
+ );
287
+ };
@@ -4,27 +4,26 @@ export declare const checkFileType: (file: File, acceptFileType: string | string
4
4
  export declare const generateURL: (file: File) => string;
5
5
  export declare const isImage: (file: File) => boolean;
6
6
  export declare const isImageFromPath: (path?: string) => boolean;
7
- export declare const isVideoFromPath: (path?: string) => boolean;
8
7
  export declare const isPDFFromPath: (path?: string) => boolean;
9
8
  export declare const useFileAllocate: (selectedFile: Ref<File | undefined | null>, props: {
10
9
  accept?: string | string[];
11
10
  maxSize?: number;
12
11
  }) => {
13
- selectedFileSizeKb: any;
14
- selectedFileSizeMb: any;
15
- isSelectedFileUseMb: any;
16
- acceptFileSizeKb: any;
17
- acceptFileSizeMb: any;
18
- isAcceptFileUseMb: any;
19
- acceptFile: any;
12
+ selectedFileSizeKb: import("vue").ComputedRef<string>;
13
+ selectedFileSizeMb: import("vue").ComputedRef<string>;
14
+ isSelectedFileUseMb: import("vue").ComputedRef<boolean>;
15
+ acceptFileSizeKb: import("vue").ComputedRef<number>;
16
+ acceptFileSizeMb: import("vue").ComputedRef<string>;
17
+ isAcceptFileUseMb: import("vue").ComputedRef<boolean | 0>;
18
+ acceptFile: import("vue").ComputedRef<string | undefined>;
20
19
  };
21
20
  export declare const useFileSize: (size?: number) => {
22
- isSelectedFileUseMb: any;
23
- selectedFileSizeKb: any;
24
- selectedFileSizeMb: any;
21
+ isSelectedFileUseMb: import("vue").ComputedRef<boolean>;
22
+ selectedFileSizeKb: import("vue").ComputedRef<string>;
23
+ selectedFileSizeMb: import("vue").ComputedRef<string>;
25
24
  };
26
25
  export declare const useFileProgress: () => {
27
- percent: any;
26
+ percent: Ref<number, number>;
28
27
  onUploadProgress: (progressEvent: ProgressEvent) => void;
29
28
  onDownloadProgress: (progressEvent: ProgressEvent) => void;
30
29
  };