@dasidev/dasi-ui 1.0.19 → 1.0.21

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 (447) hide show
  1. package/README.md +6 -6
  2. package/dist/index.js +1 -1
  3. package/dist/types.js +1766 -1764
  4. package/package.json +2 -3
  5. package/template/index.html +0 -18
  6. package/template/package.json.template +0 -100
  7. package/template/postcss.config.js +0 -0
  8. package/template/public/favicon.ico +0 -0
  9. package/template/public/img/brand/ic_pln.svg +0 -12
  10. package/template/public/img/brand/mapp_power_logo.svg +0 -21
  11. package/template/public/img/common/pltu_ulumbu_flores_ntt.jpeg +0 -0
  12. package/template/public/scripts/pdf.worker.min.js +0 -29
  13. package/template/public/scripts/pdf.worker.min.mjs +0 -29
  14. package/template/public/scripts/pdf.worker.mjs +0 -57722
  15. package/template/public/scripts/pdf.worker.mjs.map +0 -1
  16. package/template/src/App.vue +0 -17
  17. package/template/src/__tests__/index.test.ts +0 -9
  18. package/template/src/api/api.ts +0 -117
  19. package/template/src/assets/app-selector.svg +0 -3
  20. package/template/src/assets/dasi.png +0 -0
  21. package/template/src/assets/foto_ss.svg +0 -21
  22. package/template/src/assets/icons/circle-blue.svg +0 -4
  23. package/template/src/assets/icons/circle-gray.svg +0 -15
  24. package/template/src/assets/icons/circle-green.svg +0 -4
  25. package/template/src/assets/icons/circle-orange.svg +0 -4
  26. package/template/src/assets/icons/circle-purple.svg +0 -4
  27. package/template/src/assets/icons/circle-red.svg +0 -15
  28. package/template/src/assets/icons/harbor.svg +0 -12
  29. package/template/src/assets/icons/ic-box-red.svg +0 -8
  30. package/template/src/assets/icons/ic-chevron-right.svg +0 -1
  31. package/template/src/assets/icons/ic-loading.svg +0 -9
  32. package/template/src/assets/icons/ic-reset.svg +0 -16
  33. package/template/src/assets/icons/ic-sailing.svg +0 -5
  34. package/template/src/assets/icons/icon-app-selector.svg +0 -3
  35. package/template/src/assets/icons/icon-browser-check.svg +0 -4
  36. package/template/src/assets/icons/icon-calendar.svg +0 -3
  37. package/template/src/assets/icons/icon-chart-bar.svg +0 -3
  38. package/template/src/assets/icons/icon-chart-doc.svg +0 -16
  39. package/template/src/assets/icons/icon-chart-line.svg +0 -10
  40. package/template/src/assets/icons/icon-chart-mix.svg +0 -15
  41. package/template/src/assets/icons/icon-chart-pie.svg +0 -11
  42. package/template/src/assets/icons/icon-continue.svg +0 -12
  43. package/template/src/assets/icons/icon-dashboard-2.svg +0 -17
  44. package/template/src/assets/icons/icon-dashboard.svg +0 -3
  45. package/template/src/assets/icons/icon-data-kelistrikan.svg +0 -19
  46. package/template/src/assets/icons/icon-data-sentral.svg +0 -11
  47. package/template/src/assets/icons/icon-database.svg +0 -5
  48. package/template/src/assets/icons/icon-desktop.svg +0 -3
  49. package/template/src/assets/icons/icon-download.svg +0 -13
  50. package/template/src/assets/icons/icon-energi-primer.svg +0 -12
  51. package/template/src/assets/icons/icon-faba-apk2.svg +0 -11
  52. package/template/src/assets/icons/icon-faba.svg +0 -11
  53. package/template/src/assets/icons/icon-factory.svg +0 -14
  54. package/template/src/assets/icons/icon-globe-doc.svg +0 -19
  55. package/template/src/assets/icons/icon-ikk.svg +0 -10
  56. package/template/src/assets/icons/icon-kbb.svg +0 -13
  57. package/template/src/assets/icons/icon-kos.svg +0 -16
  58. package/template/src/assets/icons/icon-kpi-bod.svg +0 -15
  59. package/template/src/assets/icons/icon-kss.svg +0 -14
  60. package/template/src/assets/icons/icon-map.svg +0 -12
  61. package/template/src/assets/icons/icon-monitoring-harian.svg +0 -13
  62. package/template/src/assets/icons/icon-notification.svg +0 -4
  63. package/template/src/assets/icons/icon-overview.svg +0 -17
  64. package/template/src/assets/icons/icon-pltu.svg +0 -13
  65. package/template/src/assets/icons/icon-sebaran-sentral.svg +0 -12
  66. package/template/src/assets/icons/icon-select-data-kelistrikan.svg +0 -19
  67. package/template/src/assets/icons/icon-select-data-sentral.svg +0 -11
  68. package/template/src/assets/icons/icon-select-energi-primer.svg +0 -12
  69. package/template/src/assets/icons/icon-select-faba-apk2.svg +0 -11
  70. package/template/src/assets/icons/icon-select-ikk.svg +0 -10
  71. package/template/src/assets/icons/icon-select-kbb.svg +0 -13
  72. package/template/src/assets/icons/icon-select-kos.svg +0 -16
  73. package/template/src/assets/icons/icon-select-kpi-bod.svg +0 -15
  74. package/template/src/assets/icons/icon-select-kss.svg +0 -14
  75. package/template/src/assets/icons/icon-select-monitoring-harian.svg +0 -13
  76. package/template/src/assets/icons/icon-select-overview.svg +0 -17
  77. package/template/src/assets/icons/icon-select-sebaran-sentral.svg +0 -12
  78. package/template/src/assets/icons/icon-sentral-white.svg +0 -13
  79. package/template/src/assets/icons/icon-shipping.svg +0 -5
  80. package/template/src/assets/icons/icon-sort.svg +0 -5
  81. package/template/src/assets/icons/icon-tree-box.svg +0 -14
  82. package/template/src/assets/icons/icon-warehouse.svg +0 -12
  83. package/template/src/assets/icons/pin-green.svg +0 -3
  84. package/template/src/assets/icons/pin-orange.svg +0 -3
  85. package/template/src/assets/icons/pin-purple.svg +0 -3
  86. package/template/src/assets/icons/ship.svg +0 -3
  87. package/template/src/assets/icons/shipment/icon-antri.svg +0 -15
  88. package/template/src/assets/icons/shipment/icon-bongkar.svg +0 -4
  89. package/template/src/assets/icons/shipment/icon-invoice.svg +0 -6
  90. package/template/src/assets/icons/shipment/icon-loading.svg +0 -8
  91. package/template/src/assets/icons/shipment/icon-pembayaran.svg +0 -13
  92. package/template/src/assets/icons/shipment/icon-pengiriman.svg +0 -4
  93. package/template/src/assets/icons/shipment/icon-sailing.svg +0 -4
  94. package/template/src/assets/icons/shipment/icon-shipment-completed.svg +0 -6
  95. package/template/src/assets/icons/shipment/icon-shipment-in-progress.svg +0 -6
  96. package/template/src/assets/icons/shipment/icon-shipment-over-sla.svg +0 -6
  97. package/template/src/assets/icons/shipment/icon-spt.svg +0 -4
  98. package/template/src/assets/icons/shipment/icon-total-shipment.svg +0 -4
  99. package/template/src/assets/icons/upload_doc_icon.svg +0 -42
  100. package/template/src/assets/icons/upload_icon_blue.svg +0 -14
  101. package/template/src/assets/login-bg-day-min.jpg +0 -0
  102. package/template/src/assets/login-bg-night-min.jpg +0 -0
  103. package/template/src/assets/login-bg.jpg +0 -0
  104. package/template/src/assets/login-day.png +0 -0
  105. package/template/src/assets/login-night.png +0 -0
  106. package/template/src/assets/lucide-circle-plus-blue.svg +0 -1
  107. package/template/src/assets/pdf-logo.svg +0 -11
  108. package/template/src/assets/pemasok-card-bg.svg +0 -6
  109. package/template/src/assets/success_animation.gif +0 -0
  110. package/template/src/assets/success_animation.mp4 +0 -0
  111. package/template/src/assets/success_animation.webm +0 -0
  112. package/template/src/components/button/BtnAddOutline.vue +0 -14
  113. package/template/src/components/button/BtnCircle.vue +0 -10
  114. package/template/src/components/button/BtnOutline.vue +0 -15
  115. package/template/src/components/button/BtnPrimary.vue +0 -25
  116. package/template/src/components/button/BtnSecondary.vue +0 -26
  117. package/template/src/components/detail/AccountDetailTimeline.vue +0 -144
  118. package/template/src/components/detail/ApprovalInfo.vue +0 -288
  119. package/template/src/components/detail/DCI2.vue +0 -164
  120. package/template/src/components/detail/DetailContentHeader.vue +0 -83
  121. package/template/src/components/detail/DetailContentItem.vue +0 -186
  122. package/template/src/components/detail/DetailContentItems.vue +0 -387
  123. package/template/src/components/detail/DetailContentLoading.vue +0 -12
  124. package/template/src/components/detail/DetailContentTablet.vue +0 -10
  125. package/template/src/components/detail/DetailSheet.vue +0 -294
  126. package/template/src/components/detail/DetailTimeline.vue +0 -191
  127. package/template/src/components/detail/DocApprovalDialog.vue +0 -29
  128. package/template/src/components/detail/DocViewerContent.vue +0 -991
  129. package/template/src/components/dialog/ConfirmDialog.vue +0 -96
  130. package/template/src/components/dialog/DialogBase.vue +0 -53
  131. package/template/src/components/dialog/DialogSelect.vue +0 -212
  132. package/template/src/components/dialog/ErrorDialog.vue +0 -63
  133. package/template/src/components/dialog/FormDialog.vue +0 -141
  134. package/template/src/components/dialog/FormInputerDialog.vue +0 -91
  135. package/template/src/components/dialog/InfoDialog.vue +0 -74
  136. package/template/src/components/dialog/SuccessDialog.vue +0 -50
  137. package/template/src/components/examples/TestSchemaExample.vue +0 -288
  138. package/template/src/components/forms/auth/LoginForm.vue +0 -806
  139. package/template/src/components/forms/auth/PwdScore.vue +0 -68
  140. package/template/src/components/helper/ApiTester.vue +0 -153
  141. package/template/src/components/helper/ChangePwd.vue +0 -149
  142. package/template/src/components/helper/CheckboxElement.vue +0 -43
  143. package/template/src/components/helper/ConfigSwitcher.vue +0 -54
  144. package/template/src/components/helper/Copyright.vue +0 -10
  145. package/template/src/components/helper/ErrorScreen.vue +0 -40
  146. package/template/src/components/helper/LucideIcon.vue +0 -27
  147. package/template/src/components/helper/PdfViewer.vue +0 -103
  148. package/template/src/components/helper/PinInputer.vue +0 -205
  149. package/template/src/components/helper/PrivacyPolicy.vue +0 -122
  150. package/template/src/components/layout/PageActivityHeader.vue +0 -48
  151. package/template/src/components/layout/PageHeader.vue +0 -69
  152. package/template/src/components/loadings/LoadingDialog.vue +0 -29
  153. package/template/src/components/loadings/LoadingDialogSpin.vue +0 -25
  154. package/template/src/components/loadings/LoadingIndicator.vue +0 -38
  155. package/template/src/components/loadings/LoadingScreen.vue +0 -23
  156. package/template/src/components/notif/Notif.vue +0 -102
  157. package/template/src/components/notif/NotifItem.vue +0 -40
  158. package/template/src/components/pages/Header.vue +0 -431
  159. package/template/src/components/pages/Leftbar.vue +0 -417
  160. package/template/src/components/pages/PageActivity.vue +0 -108
  161. package/template/src/components/pages/PageActivityContent.vue +0 -597
  162. package/template/src/components/pages/PageContentTable.vue +0 -589
  163. package/template/src/components/pages/PageTab.vue +0 -84
  164. package/template/src/components/selector/BaseSelector.vue +0 -1136
  165. package/template/src/components/selector/ConfigDataSelector.vue +0 -136
  166. package/template/src/components/settings/SettingsItem.vue +0 -38
  167. package/template/src/components/tab/TabView.vue +0 -11
  168. package/template/src/components/tab/TabViewItem.vue +0 -18
  169. package/template/src/components/tab/TabViewItemBar.vue +0 -9
  170. package/template/src/components/tables/CellHover.vue +0 -65
  171. package/template/src/components/tables/DashboardDataTable.vue +0 -707
  172. package/template/src/components/tables/DataStatusTag.vue +0 -52
  173. package/template/src/components/tables/DataTable.vue +0 -156
  174. package/template/src/components/tables/DataTableAccordion.vue +0 -249
  175. package/template/src/components/tables/DataTableActionRow.vue +0 -64
  176. package/template/src/components/tables/DataTableCell.vue +0 -271
  177. package/template/src/components/tables/DataTableHeader.vue +0 -60
  178. package/template/src/components/tables/DataTableRow.vue +0 -213
  179. package/template/src/components/tables/ExpandedTable.vue +0 -259
  180. package/template/src/components/tables/PageTable.vue +0 -73
  181. package/template/src/components/tables/Pagination.vue +0 -98
  182. package/template/src/components/tables/dropdown/BaseDropdownTable.vue +0 -140
  183. package/template/src/components/tables/dropdown/DropdownTableActivity.vue +0 -33
  184. package/template/src/components/tables/dropdown/DropdownTableAsset.vue +0 -30
  185. package/template/src/components/tables/dropdown/DropdownTableConfig.vue +0 -30
  186. package/template/src/components/tables/dropdown/DropdownTableDataKonektor.vue +0 -31
  187. package/template/src/components/tables/dropdown/DropdownTableDataLabel.vue +0 -30
  188. package/template/src/components/tables/dropdown/DropdownTableDataSchema.vue +0 -31
  189. package/template/src/components/tables/dropdown/DropdownTableFabaPemanfaat.vue +0 -30
  190. package/template/src/components/tables/dropdown/DropdownTableGroup.vue +0 -36
  191. package/template/src/components/tables/dropdown/DropdownTableHalaman.vue +0 -33
  192. package/template/src/components/tables/dropdown/DropdownTableLevel.vue +0 -66
  193. package/template/src/components/tables/dropdown/DropdownTableOrganization.vue +0 -47
  194. package/template/src/components/tables/dropdown/DropdownTablePengelola.vue +0 -28
  195. package/template/src/components/tables/dropdown/DropdownTableQueryLayer.vue +0 -29
  196. package/template/src/components/tables/dropdown/DropdownTableSentral.vue +0 -33
  197. package/template/src/components/tables/dropdown/DropdownTableWarehouse.vue +0 -30
  198. package/template/src/components/tables/dropdown/TableDropdown.vue +0 -52
  199. package/template/src/components/ui/accordion/Accordion.vue +0 -19
  200. package/template/src/components/ui/accordion/AccordionContent.vue +0 -24
  201. package/template/src/components/ui/accordion/AccordionItem.vue +0 -24
  202. package/template/src/components/ui/accordion/AccordionTrigger.vue +0 -41
  203. package/template/src/components/ui/accordion/index.ts +0 -4
  204. package/template/src/components/ui/alert-dialog/AlertDialog.vue +0 -14
  205. package/template/src/components/ui/alert-dialog/AlertDialogAction.vue +0 -20
  206. package/template/src/components/ui/alert-dialog/AlertDialogCancel.vue +0 -20
  207. package/template/src/components/ui/alert-dialog/AlertDialogContent.vue +0 -42
  208. package/template/src/components/ui/alert-dialog/AlertDialogDescription.vue +0 -25
  209. package/template/src/components/ui/alert-dialog/AlertDialogFooter.vue +0 -21
  210. package/template/src/components/ui/alert-dialog/AlertDialogHeader.vue +0 -16
  211. package/template/src/components/ui/alert-dialog/AlertDialogTitle.vue +0 -22
  212. package/template/src/components/ui/alert-dialog/AlertDialogTrigger.vue +0 -11
  213. package/template/src/components/ui/alert-dialog/index.ts +0 -9
  214. package/template/src/components/ui/avatar/Avatar.vue +0 -24
  215. package/template/src/components/ui/avatar/AvatarFallback.vue +0 -11
  216. package/template/src/components/ui/avatar/AvatarImage.vue +0 -9
  217. package/template/src/components/ui/avatar/UsersAvatar.vue +0 -27
  218. package/template/src/components/ui/avatar/index.ts +0 -24
  219. package/template/src/components/ui/button/Button.vue +0 -27
  220. package/template/src/components/ui/button/index.ts +0 -34
  221. package/template/src/components/ui/calendar/Calendar.vue +0 -325
  222. package/template/src/components/ui/calendar/index.ts +0 -22
  223. package/template/src/components/ui/checkbox/Checkbox.vue +0 -33
  224. package/template/src/components/ui/checkbox/index.ts +0 -1
  225. package/template/src/components/ui/command/Command.vue +0 -30
  226. package/template/src/components/ui/command/CommandDialog.vue +0 -21
  227. package/template/src/components/ui/command/CommandEmpty.vue +0 -20
  228. package/template/src/components/ui/command/CommandGroup.vue +0 -29
  229. package/template/src/components/ui/command/CommandInput.vue +0 -33
  230. package/template/src/components/ui/command/CommandItem.vue +0 -26
  231. package/template/src/components/ui/command/CommandList.vue +0 -27
  232. package/template/src/components/ui/command/CommandSeparator.vue +0 -23
  233. package/template/src/components/ui/command/CommandShortcut.vue +0 -14
  234. package/template/src/components/ui/command/index.ts +0 -9
  235. package/template/src/components/ui/context-menu/ContextMenu.vue +0 -15
  236. package/template/src/components/ui/context-menu/ContextMenuCheckboxItem.vue +0 -40
  237. package/template/src/components/ui/context-menu/ContextMenuContent.vue +0 -36
  238. package/template/src/components/ui/context-menu/ContextMenuGroup.vue +0 -11
  239. package/template/src/components/ui/context-menu/ContextMenuItem.vue +0 -34
  240. package/template/src/components/ui/context-menu/ContextMenuLabel.vue +0 -25
  241. package/template/src/components/ui/context-menu/ContextMenuPortal.vue +0 -11
  242. package/template/src/components/ui/context-menu/ContextMenuRadioGroup.vue +0 -19
  243. package/template/src/components/ui/context-menu/ContextMenuRadioItem.vue +0 -40
  244. package/template/src/components/ui/context-menu/ContextMenuSeparator.vue +0 -20
  245. package/template/src/components/ui/context-menu/ContextMenuShortcut.vue +0 -14
  246. package/template/src/components/ui/context-menu/ContextMenuSub.vue +0 -19
  247. package/template/src/components/ui/context-menu/ContextMenuSubContent.vue +0 -35
  248. package/template/src/components/ui/context-menu/ContextMenuSubTrigger.vue +0 -34
  249. package/template/src/components/ui/context-menu/ContextMenuTrigger.vue +0 -13
  250. package/template/src/components/ui/context-menu/index.ts +0 -14
  251. package/template/src/components/ui/datetime/DatetimeRangeComponent.vue +0 -52
  252. package/template/src/components/ui/dialog/Dialog.vue +0 -14
  253. package/template/src/components/ui/dialog/DialogClose.vue +0 -11
  254. package/template/src/components/ui/dialog/DialogContent.vue +0 -53
  255. package/template/src/components/ui/dialog/DialogDescription.vue +0 -24
  256. package/template/src/components/ui/dialog/DialogFooter.vue +0 -19
  257. package/template/src/components/ui/dialog/DialogHeader.vue +0 -16
  258. package/template/src/components/ui/dialog/DialogScrollContent.vue +0 -59
  259. package/template/src/components/ui/dialog/DialogTitle.vue +0 -29
  260. package/template/src/components/ui/dialog/DialogTrigger.vue +0 -11
  261. package/template/src/components/ui/dialog/index.ts +0 -9
  262. package/template/src/components/ui/dropdown-menu/DropdownMenu.vue +0 -14
  263. package/template/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +0 -40
  264. package/template/src/components/ui/dropdown-menu/DropdownMenuContent.vue +0 -38
  265. package/template/src/components/ui/dropdown-menu/DropdownMenuGroup.vue +0 -11
  266. package/template/src/components/ui/dropdown-menu/DropdownMenuItem.vue +0 -28
  267. package/template/src/components/ui/dropdown-menu/DropdownMenuLabel.vue +0 -24
  268. package/template/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +0 -19
  269. package/template/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +0 -41
  270. package/template/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue +0 -22
  271. package/template/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue +0 -14
  272. package/template/src/components/ui/dropdown-menu/DropdownMenuSub.vue +0 -19
  273. package/template/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue +0 -30
  274. package/template/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +0 -33
  275. package/template/src/components/ui/dropdown-menu/DropdownMenuTrigger.vue +0 -13
  276. package/template/src/components/ui/dropdown-menu/index.ts +0 -16
  277. package/template/src/components/ui/form/FormControl.vue +0 -16
  278. package/template/src/components/ui/form/FormDescription.vue +0 -20
  279. package/template/src/components/ui/form/FormItem.vue +0 -25
  280. package/template/src/components/ui/form/FormLabel.vue +0 -23
  281. package/template/src/components/ui/form/FormMessage.vue +0 -16
  282. package/template/src/components/ui/form/index.ts +0 -6
  283. package/template/src/components/ui/form/useFormField.ts +0 -30
  284. package/template/src/components/ui/hover-card/HoverCard.vue +0 -14
  285. package/template/src/components/ui/hover-card/HoverCardContent.vue +0 -41
  286. package/template/src/components/ui/hover-card/HoverCardTrigger.vue +0 -11
  287. package/template/src/components/ui/hover-card/index.ts +0 -3
  288. package/template/src/components/ui/input/Input.vue +0 -24
  289. package/template/src/components/ui/input/index.ts +0 -1
  290. package/template/src/components/ui/label/Label.vue +0 -27
  291. package/template/src/components/ui/label/index.ts +0 -1
  292. package/template/src/components/ui/pagination/PaginationEllipsis.vue +0 -22
  293. package/template/src/components/ui/pagination/PaginationFirst.vue +0 -29
  294. package/template/src/components/ui/pagination/PaginationLast.vue +0 -29
  295. package/template/src/components/ui/pagination/PaginationNext.vue +0 -29
  296. package/template/src/components/ui/pagination/PaginationPrev.vue +0 -29
  297. package/template/src/components/ui/pagination/index.ts +0 -10
  298. package/template/src/components/ui/pin-input/PinInput.vue +0 -23
  299. package/template/src/components/ui/pin-input/PinInputGroup.vue +0 -18
  300. package/template/src/components/ui/pin-input/PinInputInput.vue +0 -18
  301. package/template/src/components/ui/pin-input/PinInputSeparator.vue +0 -15
  302. package/template/src/components/ui/pin-input/index.ts +0 -4
  303. package/template/src/components/ui/popover/Popover.vue +0 -15
  304. package/template/src/components/ui/popover/PopoverContent.vue +0 -48
  305. package/template/src/components/ui/popover/PopoverTrigger.vue +0 -11
  306. package/template/src/components/ui/popover/index.ts +0 -4
  307. package/template/src/components/ui/preview/PreviewPdf.vue +0 -118
  308. package/template/src/components/ui/progress/ProgressCircle.vue +0 -27
  309. package/template/src/components/ui/progress/SemiCircularProgressBar.vue +0 -83
  310. package/template/src/components/ui/progress/TotalCalories.vue +0 -31
  311. package/template/src/components/ui/radio-group/RadioGroup.vue +0 -25
  312. package/template/src/components/ui/radio-group/RadioGroupItem.vue +0 -37
  313. package/template/src/components/ui/radio-group/index.ts +0 -2
  314. package/template/src/components/ui/scroll-area/ScrollArea.vue +0 -29
  315. package/template/src/components/ui/scroll-area/ScrollBar.vue +0 -30
  316. package/template/src/components/ui/scroll-area/index.ts +0 -2
  317. package/template/src/components/ui/select/Select.vue +0 -15
  318. package/template/src/components/ui/select/SelectContent.vue +0 -52
  319. package/template/src/components/ui/select/SelectGroup.vue +0 -19
  320. package/template/src/components/ui/select/SelectInline.vue +0 -84
  321. package/template/src/components/ui/select/SelectItem.vue +0 -44
  322. package/template/src/components/ui/select/SelectItemText.vue +0 -11
  323. package/template/src/components/ui/select/SelectLabel.vue +0 -13
  324. package/template/src/components/ui/select/SelectScrollDownButton.vue +0 -24
  325. package/template/src/components/ui/select/SelectScrollUpButton.vue +0 -24
  326. package/template/src/components/ui/select/SelectSeparator.vue +0 -17
  327. package/template/src/components/ui/select/SelectTrigger.vue +0 -31
  328. package/template/src/components/ui/select/SelectTriggerCustom.vue +0 -23
  329. package/template/src/components/ui/select/SelectValue.vue +0 -11
  330. package/template/src/components/ui/select/index.ts +0 -12
  331. package/template/src/components/ui/separator/Separator.vue +0 -20
  332. package/template/src/components/ui/separator/index.ts +0 -1
  333. package/template/src/components/ui/sheet/Sheet.vue +0 -14
  334. package/template/src/components/ui/sheet/SheetClose.vue +0 -11
  335. package/template/src/components/ui/sheet/SheetContent.vue +0 -48
  336. package/template/src/components/ui/sheet/SheetDescription.vue +0 -22
  337. package/template/src/components/ui/sheet/SheetFooter.vue +0 -19
  338. package/template/src/components/ui/sheet/SheetHeader.vue +0 -16
  339. package/template/src/components/ui/sheet/SheetTitle.vue +0 -22
  340. package/template/src/components/ui/sheet/SheetTrigger.vue +0 -11
  341. package/template/src/components/ui/sheet/index.ts +0 -31
  342. package/template/src/components/ui/skeleton/Skeleton.vue +0 -28
  343. package/template/src/components/ui/skeleton/index.ts +0 -1
  344. package/template/src/components/ui/sonner/Sonner.vue +0 -22
  345. package/template/src/components/ui/sonner/index.ts +0 -1
  346. package/template/src/components/ui/star/StarRating.vue +0 -19
  347. package/template/src/components/ui/switch/Switch.vue +0 -37
  348. package/template/src/components/ui/switch/index.ts +0 -1
  349. package/template/src/components/ui/table/Table.vue +0 -16
  350. package/template/src/components/ui/table/TableBody.vue +0 -14
  351. package/template/src/components/ui/table/TableCaption.vue +0 -14
  352. package/template/src/components/ui/table/TableCell.vue +0 -21
  353. package/template/src/components/ui/table/TableEmpty.vue +0 -37
  354. package/template/src/components/ui/table/TableFooter.vue +0 -14
  355. package/template/src/components/ui/table/TableHead.vue +0 -14
  356. package/template/src/components/ui/table/TableHeader.vue +0 -14
  357. package/template/src/components/ui/table/TableRow.vue +0 -14
  358. package/template/src/components/ui/table/index.ts +0 -8
  359. package/template/src/components/ui/tabs/Tabs.vue +0 -15
  360. package/template/src/components/ui/tabs/TabsContent.vue +0 -22
  361. package/template/src/components/ui/tabs/TabsList.vue +0 -25
  362. package/template/src/components/ui/tabs/TabsTrigger.vue +0 -27
  363. package/template/src/components/ui/tabs/index.ts +0 -4
  364. package/template/src/components/ui/tags-input/TagsInput.vue +0 -22
  365. package/template/src/components/ui/tags-input/TagsInputInput.vue +0 -19
  366. package/template/src/components/ui/tags-input/TagsInputItem.vue +0 -22
  367. package/template/src/components/ui/tags-input/TagsInputItemDelete.vue +0 -24
  368. package/template/src/components/ui/tags-input/TagsInputItemText.vue +0 -19
  369. package/template/src/components/ui/tags-input/index.ts +0 -5
  370. package/template/src/components/ui/textarea/Textarea.vue +0 -24
  371. package/template/src/components/ui/textarea/index.ts +0 -1
  372. package/template/src/components/ui/tooltip/Tooltip.vue +0 -14
  373. package/template/src/components/ui/tooltip/TooltipContent.vue +0 -31
  374. package/template/src/components/ui/tooltip/TooltipProvider.vue +0 -11
  375. package/template/src/components/ui/tooltip/TooltipTrigger.vue +0 -11
  376. package/template/src/components/ui/tooltip/index.ts +0 -4
  377. package/template/src/composables/useAppConfig.ts +0 -332
  378. package/template/src/composables/useDarkMode.ts +0 -71
  379. package/template/src/config/app.config.ts +0 -318
  380. package/template/src/config/examples/ecommerce.config.ts +0 -132
  381. package/template/src/config/examples/generic.config.ts +0 -132
  382. package/template/src/config/menu.config.ts +0 -149
  383. package/template/src/config/my-app.config.ts +0 -134
  384. package/template/src/config/test-config.ts +0 -31
  385. package/template/src/config/theme.config.ts +0 -250
  386. package/template/src/docs/index.ts +0 -21
  387. package/template/src/docs.scss +0 -403
  388. package/template/src/index.d.ts +0 -5
  389. package/template/src/index.ts +0 -20
  390. package/template/src/layouts/AuthLayout.vue +0 -68
  391. package/template/src/layouts/DefaultLayout.vue +0 -119
  392. package/template/src/layouts/DocsLayout.vue +0 -681
  393. package/template/src/layouts/FormGlobal.vue +0 -50
  394. package/template/src/layouts/GlobalDialog.vue +0 -122
  395. package/template/src/layouts/RakorConfirmDialog.vue +0 -95
  396. package/template/src/layouts/SettingsLayout.vue +0 -115
  397. package/template/src/lib/constants.ts +0 -2
  398. package/template/src/lib/detail.utils.ts +0 -213
  399. package/template/src/lib/form.utils.ts +0 -1009
  400. package/template/src/lib/page.flow.utils.ts +0 -81
  401. package/template/src/lib/page.utils.ts +0 -864
  402. package/template/src/lib/performance.utils.ts +0 -302
  403. package/template/src/lib/tablerow.utils.ts +0 -51
  404. package/template/src/lib/utils.ts +0 -643
  405. package/template/src/main.scss +0 -717
  406. package/template/src/main.ts +0 -74
  407. package/template/src/menu.ts +0 -78
  408. package/template/src/nestedlist_color.scss +0 -161
  409. package/template/src/router/index.ts +0 -91
  410. package/template/src/stores/auth.ts +0 -117
  411. package/template/src/stores/counter.ts +0 -12
  412. package/template/src/stores/dialog.ts +0 -168
  413. package/template/src/stores/form.ts +0 -103
  414. package/template/src/stores/tabs.ts +0 -52
  415. package/template/src/tw.scss +0 -419
  416. package/template/src/types/form.types.ts +0 -348
  417. package/template/src/types/types.ts +0 -7
  418. package/template/src/utils/config.utils.ts +0 -149
  419. package/template/src/views/NotFound.vue +0 -30
  420. package/template/src/views/PageActivity.vue +0 -15
  421. package/template/src/views/auth/LoginView.vue +0 -8
  422. package/template/src/views/auth/OauthCallback.vue +0 -101
  423. package/template/src/views/dashboard/index.vue +0 -16
  424. package/template/src/views/settings/AccountSettingsView.vue +0 -58
  425. package/template/src/views/settings/AuditLogsSettingsView.vue +0 -116
  426. package/template/src/views/settings/DeviceSettingsView.vue +0 -70
  427. package/template/src/views/settings/MainSettingsView.vue +0 -12
  428. package/template/src/views/settings/ProfileSettingsView.vue +0 -104
  429. package/template/src/vueform/config/informasi-gudang.ts +0 -46
  430. package/template/src/vueform/config/test-schema.ts +0 -7
  431. package/template/src/vueform/config/types.ts +0 -768
  432. package/template/src/vueform/customization/classes.js +0 -46
  433. package/template/src/vueform/customization/tailwind.classes.js +0 -2117
  434. package/template/src/vueform/elements/ConfigDataSelectorElement.vue +0 -50
  435. package/template/src/vueform/elements/DateSelectorElement.vue +0 -323
  436. package/template/src/vueform/elements/SelectorElement.vue +0 -153
  437. package/template/src/vueform/schemas/date-selector-test.ts +0 -103
  438. package/template/src/vueform/schemas/informasi-gudang.ts +0 -158
  439. package/template/src/vueform/schemas/test-schema.ts +0 -483
  440. package/template/src/vueform.config.js +0 -77
  441. package/template/src/vueform.validator.ts +0 -77
  442. package/template/tailwind.config.js +0 -137
  443. package/template/tsconfig.app.json +0 -28
  444. package/template/tsconfig.json +0 -14
  445. package/template/tsconfig.node.json +0 -19
  446. package/template/tsconfig.vitest.json +0 -11
  447. package/template/vite.config.ts +0 -33
@@ -1,597 +0,0 @@
1
- <script setup lang="ts">
2
- import { ref, watch, computed, defineAsyncComponent, nextTick } from "vue";
3
- import api from "../../api/api";
4
- import { type CustomTab } from "../../components/pages/PageTab.vue";
5
- import PageContentTable from "../../components/pages/PageContentTable.vue";
6
- import { type Submenu } from "../../menu";
7
- import type { ColumnRef, FilterForm, PageConfig, SortBy } from "../../vueform/config/types";
8
- import { clearFormSchema, isValidValue } from "../../lib/utils";
9
- import { editFormData, deleteFormData, restoreFormData, addFormData } from "../../lib/form.utils";
10
- import type { DasiV2FormSchema, FormSchemaHooks } from "../../types/form.types";
11
- import { genFilterQuery, type FilterItem, initPageActivity, getPageData, getFilterSeparated, applyToggleChange } from "../../lib/page.utils";
12
- import { useRoute, useRouter } from "vue-router";
13
- import PageActivityHeader from "../../components/layout/PageActivityHeader.vue";
14
- import DataTableAccordion from "../../components/tables/DataTableAccordion.vue";
15
- import { InternalServerError } from "../../lib/constants";
16
-
17
- // Fix: Import Vueform to resolve "Failed to resolve component: Vueform" error
18
- import Vueform from "@vueform/vueform";
19
-
20
- export interface PageActivityInitOptions {
21
- title: string;
22
- pageConfig: PageConfig;
23
- endpoint: string;
24
- query: string;
25
- menuItem?: Submenu;
26
- columns?: ColumnRef[];
27
- formSchema?: DasiV2FormSchema;
28
- }
29
-
30
- const route = useRoute();
31
- const router = useRouter();
32
- const emits = defineEmits<{
33
- (e: "pageInitialized", options: PageActivityInitOptions): void;
34
- (e: "rowActionClick", i: number, item: any, btnId?: string): void;
35
- (e: "checkActionClick", checkedItems: any[], btnId?: string): void;
36
- (e: "groupActionClick", groupId: string, groupItems: any[], btnId?: string): void;
37
- }>();
38
- const props = defineProps(["pageCode", "endpoint"]);
39
-
40
- /**
41
- * Search
42
- *
43
- */
44
- const searchQuery = ref("");
45
- const searchTimer: any = ref(null);
46
-
47
- /**
48
- * Pagination
49
- *
50
- */
51
- const itemsPerPage = ref(25);
52
- const currentPage = ref(1);
53
- const totalData = ref(0);
54
- const totalFilteredData = ref(0);
55
-
56
- /**
57
- * Base config
58
- *
59
- */
60
- const title = ref("");
61
- const endpoint = ref("");
62
-
63
- /**
64
- * Form by Vueform
65
- *
66
- */
67
- const formSchema = defineModel<DasiV2FormSchema>("schema");
68
- const formHooks = defineModel<FormSchemaHooks>("hooks");
69
-
70
- /**
71
- * Display data
72
- *
73
- */
74
- const menuItem = ref<Submenu>();
75
- const pageConfig = ref<PageConfig>({ showAddBtn: false, showDeleted: false });
76
- const pageContentTable = ref<InstanceType<typeof PageContentTable>>();
77
-
78
- /**
79
- * Dynamic component per endpoint
80
- *
81
- */
82
- const formComponent = computed(() => {
83
- if (!pageConfig.value.useCustomViewDetail) return null;
84
- const schemaPath = (pageConfig.value.customComponentPath ?? pageConfig.value.schema ?? endpoint.value ?? "").replace(/^\/+/, "");
85
- if (!schemaPath) return;
86
- return defineAsyncComponent(() => import(`../../components/page-activity/${schemaPath}/Detail.vue`));
87
- });
88
- const $detail = ref();
89
- const detailComponent = computed(() => {
90
- if (!pageConfig.value.useCustomViewDetail) return null;
91
- const schemaPath = (pageConfig.value.customComponentPath ?? pageConfig.value.schema ?? endpoint.value ?? "").replace(/^\/+/, "");
92
- if (!schemaPath) return;
93
- return defineAsyncComponent(() => import(`../../components/page-activity/${schemaPath}/Detail.vue`));
94
- });
95
- const $actionRow = ref();
96
- const actionRowComponent = computed(() => {
97
- if (!pageConfig.value.useActionRowBtnComponent) return null;
98
- const schemaPath = (pageConfig.value.customComponentPath ?? pageConfig.value.schema ?? endpoint.value ?? "").replace(/^\/+/, "");
99
- if (!schemaPath) return;
100
- return defineAsyncComponent(() => import(`../../components/page-activity/${schemaPath}/ActionRow.vue`));
101
- });
102
- const $actionCheck = ref();
103
- const actionCheckComponent = computed(() => {
104
- if (!isValidValue(pageConfig.value.checkboxActionBtn)) return null;
105
- const schemaPath = (pageConfig.value.customComponentPath ?? pageConfig.value.schema ?? endpoint.value ?? "").replace(/^\/+/, "");
106
- if (!schemaPath) return;
107
- return defineAsyncComponent(() => import(`../../components/page-activity/${schemaPath}/ActionCheck.vue`));
108
- });
109
- const $actionGroup = ref();
110
- const actionGroupComponent = computed(() => {
111
- if (!pageConfig.value.tableGroupActionBtn) return null;
112
- const schemaPath = (pageConfig.value.customComponentPath ?? pageConfig.value.schema ?? endpoint.value ?? "").replace(/^\/+/, "");
113
- if (!schemaPath) return;
114
- return defineAsyncComponent(() => import(`../../components/page-activity/${schemaPath}/ActionGroup.vue`));
115
- });
116
-
117
- /**
118
- * Model
119
- *
120
- */
121
- const data = defineModel<any[]>("data", { default: [] });
122
- const customTabs = defineModel<CustomTab[]>("customTabs", { default: [] });
123
-
124
- const columns = defineModel<ColumnRef[]>("columns", { default: [] });
125
- const tab = defineModel<string>("tab", { default: "all" });
126
- const loading = defineModel<boolean>("loading", { default: true });
127
- const dataError = defineModel<string | null>("dataError", { default: null });
128
-
129
- /**
130
- * Filter, sort, and query string
131
- *
132
- */
133
- const filterQueryForm = ref<FilterItem>({});
134
- const filterQueryPageMenu = ref<FilterItem>({});
135
- const filterOnForm = ref<FilterForm>({});
136
- const filterOnPageMenu = ref<FilterForm>({});
137
- const queryParams = ref("");
138
- const sortBy = ref<SortBy>();
139
-
140
- async function addData() {
141
- console.log("pc", pageConfig.value);
142
- await addFormData({
143
- title: title.value,
144
- endpoint: pageConfig.value?.savePath ?? endpoint.value,
145
- formSchema: formSchema as any,
146
- formHooks: formHooks.value,
147
- formDialogClass: pageConfig.value.formDialogClass
148
- });
149
- getData();
150
- }
151
-
152
- /**
153
- * Edit item data based on
154
- * schema and data get by id from API
155
- *
156
- */
157
- async function editItem(i: number, item: any) {
158
- await editFormData({
159
- title: title.value,
160
- endpoint: pageConfig.value?.savePath ?? endpoint.value,
161
- formSchema: formSchema as any,
162
- formHooks: formHooks.value,
163
- formDialogClass: pageConfig.value.formDialogClass,
164
- pageConfig: pageConfig.value,
165
- item
166
- });
167
- getData();
168
- }
169
-
170
- /**
171
- * Edit from router ?edit={id}
172
- *
173
- */
174
- function editFromRoute() {
175
- if (!route.query.edit) return;
176
-
177
- /**
178
- * Call the edit function
179
- *
180
- */
181
- editItem(0, { id: route.query.edit });
182
-
183
- /**
184
- * Remove the edit parameter from the URL to prevent re-triggering on refresh
185
- *
186
- */
187
- router.replace({
188
- path: route.path,
189
- query: { ...route.query, edit: undefined }
190
- });
191
- }
192
-
193
- /**
194
- * Soft delete item
195
- *
196
- */
197
- async function deleteItem(i: number, item: any) {
198
- await deleteFormData({
199
- title: title.value,
200
- endpoint: pageConfig.value?.savePath ?? endpoint.value,
201
- formSchema: formSchema as any,
202
- formHooks: formHooks.value,
203
- allData: data.value,
204
- index: i,
205
- item
206
- });
207
- }
208
-
209
- /**
210
- * Restore item from deleted to all data
211
- *
212
- */
213
- async function restoreItem(i: number, item: any) {
214
- await restoreFormData({
215
- title: title.value,
216
- endpoint: pageConfig.value?.savePath ?? endpoint.value,
217
- formSchema: formSchema as any,
218
- formHooks: formHooks.value,
219
- allData: data.value,
220
- index: i,
221
- item
222
- });
223
- }
224
-
225
- function rowCustomBtnAction(i: number, item: any, btnId?: string) {
226
- if ($actionRow.value) {
227
- $actionRow.value.open(i, item).then((b: boolean) => {
228
- if (b) reloadDataByIds([item.id]);
229
- });
230
- }
231
- emits("rowActionClick", i, item, btnId);
232
- }
233
-
234
- function checkActionClicked(checkedItems: any[], btnId?: string) {
235
- if ($actionCheck.value) {
236
- $actionCheck.value.open(checkedItems, btnId).then((b: boolean) => {
237
- if (b) reloadDataByIds(checkedItems.map(r => r.id));
238
- });
239
- }
240
- emits("checkActionClick", checkedItems, btnId);
241
- }
242
-
243
- function groupActionClicked(groupId: string, groupItems: any[], btnId?: string) {
244
- if ($actionGroup.value) {
245
- $actionGroup.value.open(groupId, groupItems, btnId).then((b: boolean) => {
246
- if (b) reloadDataByIds(groupItems.map(r => r.id));
247
- });
248
- }
249
- emits("groupActionClick", groupId, groupItems, btnId);
250
- }
251
-
252
- /**
253
- * Get data with delayed search
254
- *
255
- */
256
- function search() {
257
- if (searchTimer.value) clearTimeout(searchTimer.value);
258
- searchTimer.value = setTimeout(() => {
259
- getData();
260
- }, 300);
261
- }
262
-
263
- function reloadDataByIds(ids: string[]) {
264
- getPageData({
265
- endpoint: endpoint.value,
266
- tabActive: tab.value,
267
- queryParams: queryParams.value,
268
- searchQuery: searchQuery.value,
269
- columns: columns.value,
270
- sortBy: sortBy.value,
271
- filterQueryForm: filterQueryForm.value,
272
- filterQueryPageMenu: filterQueryPageMenu.value,
273
- pageConfig: pageConfig.value,
274
- pagination: { limit: itemsPerPage.value, page: currentPage.value }
275
- })
276
- .then(r => {
277
- for (const item of r.data.data) {
278
- if (ids.includes(item.id)) {
279
- const idx = data.value.findIndex(r => r.id === item.id);
280
- if (idx >= 0) data.value[idx] = item;
281
- }
282
- }
283
- })
284
- .catch((err: any) => {
285
- dataError.value = err.message || "Internal server error. Please try again later.";
286
- })
287
- .finally(() => {
288
- loading.value = false;
289
- });
290
- }
291
-
292
- function getData() {
293
- /**
294
- * Reset state and display loading
295
- *
296
- */
297
- loading.value = true;
298
- dataError.value = null;
299
- totalData.value = 0;
300
- totalFilteredData.value = 0;
301
- data.value = [];
302
-
303
- getPageData({
304
- endpoint: endpoint.value,
305
- tabActive: tab.value,
306
- queryParams: queryParams.value,
307
- searchQuery: searchQuery.value,
308
- columns: columns.value,
309
- sortBy: sortBy.value,
310
- filterQueryForm: filterQueryForm.value,
311
- filterQueryPageMenu: filterQueryPageMenu.value,
312
- pageConfig: pageConfig.value,
313
- pagination: { limit: itemsPerPage.value, page: currentPage.value }
314
- })
315
- .then(r => {
316
- data.value = r.data.data;
317
- totalData.value = r.data.totalData;
318
- totalFilteredData.value = r.data.data?.length || 0;
319
- })
320
- .catch((err: any) => {
321
- dataError.value = err.message || "Internal server error. Please try again later.";
322
- })
323
- .finally(() => {
324
- loading.value = false;
325
- });
326
- }
327
-
328
- async function tabChanged() {
329
- currentPage.value = 1;
330
- await nextTick();
331
- getData();
332
- }
333
-
334
- /**
335
- * Filter
336
- *
337
- */
338
- function initFilter() {
339
- filterQueryForm.value = {};
340
- filterQueryPageMenu.value = {};
341
- filterOnForm.value = {};
342
- filterOnPageMenu.value = {};
343
- if (!pageConfig.value?.filter) return;
344
-
345
- /**
346
- * Separate filter displayed on form dialog
347
- * and on page action menu
348
- *
349
- */
350
- [filterOnPageMenu.value, filterOnForm.value] = getFilterSeparated(pageConfig.value.filter);
351
- clearFormSchema(Object.entries(filterOnPageMenu.value));
352
- clearFormSchema(Object.entries(filterOnForm.value));
353
- filterQueryForm.value = genFilterQuery(filterOnForm.value);
354
- filterQueryPageMenu.value = genFilterQuery(filterOnPageMenu.value);
355
- }
356
-
357
- function onFilterChanged(formData: any) {
358
- if (!formData || !filterOnForm.value) return;
359
- clearFormSchema(Object.entries(filterOnForm.value));
360
- filterQueryForm.value = genFilterQuery(filterOnForm.value, formData);
361
- getData();
362
- }
363
-
364
- function onFilterPageMenuChanged(formData: any) {
365
- if (!formData || !filterOnPageMenu.value) return;
366
- clearFormSchema(Object.entries(filterOnPageMenu.value));
367
- filterQueryPageMenu.value = genFilterQuery(filterOnPageMenu.value, formData);
368
- getData();
369
- }
370
-
371
- function resetFilter() {
372
- clearFormSchema(Object.entries(filterOnForm.value));
373
- filterQueryForm.value = genFilterQuery(filterOnForm.value);
374
- getData();
375
- }
376
-
377
- /**
378
- * Toggle handling - simple like filter pattern
379
- */
380
- function onToggleChanged(toggleData: any) {
381
- const { checked, config } = toggleData;
382
-
383
- // Use utility function to get new endpoint (just like filter pattern)
384
- endpoint.value = applyToggleChange(config, checked, endpoint.value);
385
-
386
- // Reset to first page and refetch data
387
- currentPage.value = 1;
388
- getData();
389
- }
390
-
391
- /**
392
- * Page initialization
393
- * this will set initialization for page that govern
394
- * - API Endpoint
395
- * - Page config
396
- * - Filter
397
- * - Tab
398
- * - Search
399
- * - Sort
400
- * - Form schema
401
- * - Form hooks
402
- * - Page title
403
- * - Table columns
404
- *
405
- */
406
- async function initPage() {
407
- loading.value = true;
408
-
409
- /**
410
- * Make sure the endpoint and pageCode
411
- * from parent already set
412
- *
413
- */
414
- await nextTick();
415
-
416
- /**
417
- * Reset state before
418
- * initializing with new page data
419
- *
420
- */
421
- customTabs.value = [];
422
- tab.value = "all"; // Reset tab to default when changing pages
423
- searchQuery.value = route.query?.search ? String(route.query?.search) : "";
424
-
425
- /**
426
- * Init page
427
- * Get config from ../../vueform/config/${props.pageCode}/${props.endpoint}
428
- *
429
- */
430
- try {
431
- const pageInit = await initPageActivity({
432
- pageCode: props.pageCode,
433
- endpoint: props.endpoint,
434
- fullPath: route.fullPath,
435
- tabReactive: tab,
436
- onRestore: restoreItem,
437
- onDelete: deleteItem,
438
- onEdit: editItem,
439
- onCustomBtnClick: rowCustomBtnAction
440
- });
441
- title.value = pageInit.title;
442
- pageConfig.value = pageInit.pageConfig;
443
- endpoint.value = pageInit.endpoint;
444
- queryParams.value = pageInit.queryString;
445
- formSchema.value = pageInit.formSchema;
446
- formHooks.value = pageInit.formHooks;
447
- menuItem.value = pageInit.menuItem;
448
- columns.value = pageInit.columns;
449
- sortBy.value = pageInit.pageConfig.sortBy;
450
-
451
- /**
452
- * Await for vue update so
453
- * other using this variables can
454
- * safe to access it
455
- *
456
- */
457
- await nextTick();
458
-
459
- /**
460
- * Notify parent that page has been initilized
461
- *
462
- */
463
- emits("pageInitialized", {
464
- title: pageInit.title,
465
- pageConfig: pageInit.pageConfig,
466
- columns: pageInit.columns,
467
- endpoint: pageInit.endpoint,
468
- query: pageInit.queryString,
469
- menuItem: pageInit.menuItem,
470
- formSchema: pageInit.formSchema
471
- });
472
-
473
- /**
474
- * Notify page content table
475
- * that page are initialized and pageConfig
476
- * is now available
477
- *
478
- */
479
- pageContentTable.value?.pageInitialized();
480
-
481
- /**
482
- * Init filter set with default value
483
- *
484
- */
485
- initFilter();
486
-
487
- /**
488
- * Add handler for query params
489
- *
490
- */
491
- editFromRoute();
492
-
493
- /**
494
- * Fetch data
495
- *
496
- */
497
- // getTotalWaitingApproval();
498
- getData();
499
- } catch (err: any) {
500
- loading.value = false;
501
- dataError.value = err.message ?? InternalServerError;
502
- }
503
- }
504
-
505
- /**
506
- * Reload data when sort are changed
507
- *
508
- */
509
- watch(sortBy, () => {
510
- if (!sortBy.value) return;
511
- setTimeout(() => {
512
- getData();
513
- });
514
- });
515
-
516
- defineExpose({ getData, reloadDataByIds, initPage });
517
- </script>
518
-
519
- <template>
520
- <main>
521
- <PageActivityHeader
522
- v-model:tab="tab"
523
- v-on:tab-changed="tabChanged"
524
- :show-deleted-tab="pageConfig.showDeleted"
525
- :custom-tabs="customTabs"
526
- :title="title"
527
- v-on:reload="getData"
528
- v-on:add-data="addData"
529
- :show-add-btn="pageConfig.showAddBtn" />
530
- <PageContentTable
531
- ref="pageContentTable"
532
- :title="title"
533
- :endpoint="endpoint"
534
- v-model:data="data"
535
- :error="dataError"
536
- :loading="loading"
537
- :page-config="pageConfig"
538
- :show-copyright="true"
539
- v-on:get-data="getData"
540
- v-model:sort-by="sortBy"
541
- v-model:columns="columns"
542
- @check-action-click="checkActionClicked"
543
- @get-data="getData"
544
- @reload-data-by-ids="reloadDataByIds"
545
- @edit-item="editItem"
546
- :total-data="totalData"
547
- :total-filtered-data="totalFilteredData"
548
- v-model:items-per-page="itemsPerPage"
549
- v-model:current-page="currentPage"
550
- :display-search="pageConfig.showSearch"
551
- :search-placeholder="`Cari ${title}...`"
552
- v-model:search="searchQuery"
553
- v-on:search-input="search"
554
- v-on:add-click="addData"
555
- :form-schema="formSchema"
556
- :form-hooks="formHooks"
557
- :filter="filterOnForm"
558
- v-on:filter-change="onFilterChanged"
559
- v-on:reset-filter="resetFilter"
560
- v-on:toggle-change="onToggleChanged"
561
- :show-checkbox-item="false"
562
- :show-view-document-btn="pageConfig?.showViewDocButton"
563
- :view-docs-endpoint="pageConfig?.viewDocsEndpoint">
564
- <template #right-action>
565
- <section class="vueform-page-menu" v-if="Object.keys(filterOnPageMenu).length > 0">
566
- <Vueform :schema="filterOnPageMenu" v-on:change="onFilterPageMenuChanged" />
567
- </section>
568
- </template>
569
- <template #table>
570
- <slot name="table">
571
- <DataTableAccordion
572
- v-model:data="data"
573
- :title="title"
574
- :columns="columns"
575
- :loading="loading"
576
- :error="dataError"
577
- :form-hooks="formHooks"
578
- :form-schema="formSchema"
579
- :endpoint="endpoint"
580
- :page-config="pageConfig"
581
- v-model:sort-by="sortBy"
582
- @get-data="getData"
583
- @group-action-click="groupActionClicked"
584
- @reload-data-by-ids="reloadDataByIds"
585
- @edit="editItem"
586
- :group-by="pageConfig.tableGroupConfig?.by || ''"
587
- :group-labels="pageConfig.tableGroupConfig?.labels"
588
- v-if="pageConfig.tableGrouped && pageConfig.tableGroupConfig" />
589
- </slot>
590
- </template>
591
- </PageContentTable>
592
- </main>
593
- <component :is="detailComponent" v-if="detailComponent" ref="$detail" />
594
- <component :is="actionRowComponent" v-if="actionRowComponent" ref="$actionRow" />
595
- <component :is="actionCheckComponent" v-if="actionCheckComponent" ref="$actionCheck" />
596
- <component :is="actionGroupComponent" v-if="actionGroupComponent" ref="$actionGroup" />
597
- </template>