@dasidev/dasi-ui 1.0.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 (450) hide show
  1. package/README.md +346 -0
  2. package/bin/dasi-cli.cjs +184 -0
  3. package/dist/date-selector-test-BlukYeWl.js +91 -0
  4. package/dist/favicon.ico +0 -0
  5. package/dist/html2canvas.esm-CKxSAI8P.js +4886 -0
  6. package/dist/img/brand/ic_pln.svg +12 -0
  7. package/dist/img/brand/mapp_power_logo.svg +21 -0
  8. package/dist/img/common/pltu_ulumbu_flores_ntt.jpeg +0 -0
  9. package/dist/index-BQSA2aPs.js +126556 -0
  10. package/dist/index.es-DQWt-PZn.js +5769 -0
  11. package/dist/index.es.js +11 -0
  12. package/dist/index.umd.js +8564 -0
  13. package/dist/informasi-gudang-BmoEy2RL.js +164 -0
  14. package/dist/informasi-gudang-DXfS46Nh.js +50 -0
  15. package/dist/purify.es-C-9oolON.js +546 -0
  16. package/dist/scripts/pdf.worker.min.js +29 -0
  17. package/dist/scripts/pdf.worker.min.mjs +29 -0
  18. package/dist/scripts/pdf.worker.mjs +57722 -0
  19. package/dist/scripts/pdf.worker.mjs.map +1 -0
  20. package/dist/style.css +1 -0
  21. package/dist/test-schema-JFghGc0_.js +8 -0
  22. package/dist/test-schema-uusFsJe4.js +438 -0
  23. package/dist/types-l0sNRNKZ.js +1 -0
  24. package/package.json +178 -0
  25. package/src/App.vue +18 -0
  26. package/src/__tests__/index.test.ts +9 -0
  27. package/src/api/api.ts +117 -0
  28. package/src/assets/app-selector.svg +3 -0
  29. package/src/assets/dasi.png +0 -0
  30. package/src/assets/foto_ss.svg +21 -0
  31. package/src/assets/icons/circle-blue.svg +4 -0
  32. package/src/assets/icons/circle-gray.svg +15 -0
  33. package/src/assets/icons/circle-green.svg +4 -0
  34. package/src/assets/icons/circle-orange.svg +4 -0
  35. package/src/assets/icons/circle-purple.svg +4 -0
  36. package/src/assets/icons/circle-red.svg +15 -0
  37. package/src/assets/icons/harbor.svg +12 -0
  38. package/src/assets/icons/ic-box-red.svg +8 -0
  39. package/src/assets/icons/ic-chevron-right.svg +1 -0
  40. package/src/assets/icons/ic-loading.svg +9 -0
  41. package/src/assets/icons/ic-reset.svg +16 -0
  42. package/src/assets/icons/ic-sailing.svg +5 -0
  43. package/src/assets/icons/icon-app-selector.svg +3 -0
  44. package/src/assets/icons/icon-browser-check.svg +4 -0
  45. package/src/assets/icons/icon-calendar.svg +3 -0
  46. package/src/assets/icons/icon-chart-bar.svg +3 -0
  47. package/src/assets/icons/icon-chart-doc.svg +16 -0
  48. package/src/assets/icons/icon-chart-line.svg +10 -0
  49. package/src/assets/icons/icon-chart-mix.svg +15 -0
  50. package/src/assets/icons/icon-chart-pie.svg +11 -0
  51. package/src/assets/icons/icon-continue.svg +12 -0
  52. package/src/assets/icons/icon-dashboard-2.svg +17 -0
  53. package/src/assets/icons/icon-dashboard.svg +3 -0
  54. package/src/assets/icons/icon-data-kelistrikan.svg +19 -0
  55. package/src/assets/icons/icon-data-sentral.svg +11 -0
  56. package/src/assets/icons/icon-database.svg +5 -0
  57. package/src/assets/icons/icon-desktop.svg +3 -0
  58. package/src/assets/icons/icon-download.svg +13 -0
  59. package/src/assets/icons/icon-energi-primer.svg +12 -0
  60. package/src/assets/icons/icon-faba-apk2.svg +11 -0
  61. package/src/assets/icons/icon-faba.svg +11 -0
  62. package/src/assets/icons/icon-factory.svg +14 -0
  63. package/src/assets/icons/icon-globe-doc.svg +19 -0
  64. package/src/assets/icons/icon-ikk.svg +10 -0
  65. package/src/assets/icons/icon-kbb.svg +13 -0
  66. package/src/assets/icons/icon-kos.svg +16 -0
  67. package/src/assets/icons/icon-kpi-bod.svg +15 -0
  68. package/src/assets/icons/icon-kss.svg +14 -0
  69. package/src/assets/icons/icon-map.svg +12 -0
  70. package/src/assets/icons/icon-monitoring-harian.svg +13 -0
  71. package/src/assets/icons/icon-notification.svg +4 -0
  72. package/src/assets/icons/icon-overview.svg +17 -0
  73. package/src/assets/icons/icon-pltu.svg +13 -0
  74. package/src/assets/icons/icon-sebaran-sentral.svg +12 -0
  75. package/src/assets/icons/icon-select-data-kelistrikan.svg +19 -0
  76. package/src/assets/icons/icon-select-data-sentral.svg +11 -0
  77. package/src/assets/icons/icon-select-energi-primer.svg +12 -0
  78. package/src/assets/icons/icon-select-faba-apk2.svg +11 -0
  79. package/src/assets/icons/icon-select-ikk.svg +10 -0
  80. package/src/assets/icons/icon-select-kbb.svg +13 -0
  81. package/src/assets/icons/icon-select-kos.svg +16 -0
  82. package/src/assets/icons/icon-select-kpi-bod.svg +15 -0
  83. package/src/assets/icons/icon-select-kss.svg +14 -0
  84. package/src/assets/icons/icon-select-monitoring-harian.svg +13 -0
  85. package/src/assets/icons/icon-select-overview.svg +17 -0
  86. package/src/assets/icons/icon-select-sebaran-sentral.svg +12 -0
  87. package/src/assets/icons/icon-sentral-white.svg +13 -0
  88. package/src/assets/icons/icon-shipping.svg +5 -0
  89. package/src/assets/icons/icon-sort.svg +5 -0
  90. package/src/assets/icons/icon-tree-box.svg +14 -0
  91. package/src/assets/icons/icon-warehouse.svg +12 -0
  92. package/src/assets/icons/pin-green.svg +3 -0
  93. package/src/assets/icons/pin-orange.svg +3 -0
  94. package/src/assets/icons/pin-purple.svg +3 -0
  95. package/src/assets/icons/ship.svg +3 -0
  96. package/src/assets/icons/shipment/icon-antri.svg +15 -0
  97. package/src/assets/icons/shipment/icon-bongkar.svg +4 -0
  98. package/src/assets/icons/shipment/icon-invoice.svg +6 -0
  99. package/src/assets/icons/shipment/icon-loading.svg +8 -0
  100. package/src/assets/icons/shipment/icon-pembayaran.svg +13 -0
  101. package/src/assets/icons/shipment/icon-pengiriman.svg +4 -0
  102. package/src/assets/icons/shipment/icon-sailing.svg +4 -0
  103. package/src/assets/icons/shipment/icon-shipment-completed.svg +6 -0
  104. package/src/assets/icons/shipment/icon-shipment-in-progress.svg +6 -0
  105. package/src/assets/icons/shipment/icon-shipment-over-sla.svg +6 -0
  106. package/src/assets/icons/shipment/icon-spt.svg +4 -0
  107. package/src/assets/icons/shipment/icon-total-shipment.svg +4 -0
  108. package/src/assets/icons/upload_doc_icon.svg +42 -0
  109. package/src/assets/icons/upload_icon_blue.svg +14 -0
  110. package/src/assets/login-bg-day-min.jpg +0 -0
  111. package/src/assets/login-bg-night-min.jpg +0 -0
  112. package/src/assets/login-bg.jpg +0 -0
  113. package/src/assets/login-day.png +0 -0
  114. package/src/assets/login-night.png +0 -0
  115. package/src/assets/lucide-circle-plus-blue.svg +1 -0
  116. package/src/assets/pdf-logo.svg +11 -0
  117. package/src/assets/pemasok-card-bg.svg +6 -0
  118. package/src/assets/success_animation.gif +0 -0
  119. package/src/assets/success_animation.mp4 +0 -0
  120. package/src/assets/success_animation.webm +0 -0
  121. package/src/components/button/BtnAddOutline.vue +14 -0
  122. package/src/components/button/BtnCircle.vue +10 -0
  123. package/src/components/button/BtnOutline.vue +15 -0
  124. package/src/components/button/BtnPrimary.vue +25 -0
  125. package/src/components/button/BtnSecondary.vue +26 -0
  126. package/src/components/detail/AccountDetailTimeline.vue +144 -0
  127. package/src/components/detail/ApprovalInfo.vue +288 -0
  128. package/src/components/detail/DCI2.vue +164 -0
  129. package/src/components/detail/DetailContentHeader.vue +83 -0
  130. package/src/components/detail/DetailContentItem.vue +186 -0
  131. package/src/components/detail/DetailContentItems.vue +388 -0
  132. package/src/components/detail/DetailContentLoading.vue +12 -0
  133. package/src/components/detail/DetailContentTablet.vue +10 -0
  134. package/src/components/detail/DetailSheet.vue +294 -0
  135. package/src/components/detail/DetailTimeline.vue +191 -0
  136. package/src/components/detail/DocApprovalDialog.vue +29 -0
  137. package/src/components/detail/DocViewerContent.vue +991 -0
  138. package/src/components/dialog/ConfirmDialog.vue +96 -0
  139. package/src/components/dialog/DialogBase.vue +53 -0
  140. package/src/components/dialog/DialogSelect.vue +212 -0
  141. package/src/components/dialog/ErrorDialog.vue +63 -0
  142. package/src/components/dialog/FormDialog.vue +141 -0
  143. package/src/components/dialog/FormInputerDialog.vue +91 -0
  144. package/src/components/dialog/InfoDialog.vue +74 -0
  145. package/src/components/dialog/SuccessDialog.vue +51 -0
  146. package/src/components/examples/TestSchemaExample.vue +288 -0
  147. package/src/components/forms/auth/LoginForm.vue +806 -0
  148. package/src/components/forms/auth/PwdScore.vue +68 -0
  149. package/src/components/helper/ApiTester.vue +153 -0
  150. package/src/components/helper/ChangePwd.vue +150 -0
  151. package/src/components/helper/CheckboxElement.vue +43 -0
  152. package/src/components/helper/ConfigSwitcher.vue +54 -0
  153. package/src/components/helper/Copyright.vue +10 -0
  154. package/src/components/helper/ErrorScreen.vue +40 -0
  155. package/src/components/helper/LucideIcon.vue +27 -0
  156. package/src/components/helper/PdfViewer.vue +103 -0
  157. package/src/components/helper/PinInputer.vue +205 -0
  158. package/src/components/helper/PrivacyPolicy.vue +122 -0
  159. package/src/components/layout/PageActivityHeader.vue +48 -0
  160. package/src/components/layout/PageHeader.vue +70 -0
  161. package/src/components/loadings/LoadingDialog.vue +29 -0
  162. package/src/components/loadings/LoadingDialogSpin.vue +25 -0
  163. package/src/components/loadings/LoadingIndicator.vue +38 -0
  164. package/src/components/loadings/LoadingScreen.vue +23 -0
  165. package/src/components/notif/Notif.vue +103 -0
  166. package/src/components/notif/NotifItem.vue +41 -0
  167. package/src/components/pages/Header.vue +431 -0
  168. package/src/components/pages/Leftbar.vue +417 -0
  169. package/src/components/pages/PageActivity.vue +108 -0
  170. package/src/components/pages/PageActivityContent.vue +597 -0
  171. package/src/components/pages/PageContentTable.vue +589 -0
  172. package/src/components/pages/PageTab.vue +84 -0
  173. package/src/components/selector/BaseSelector.vue +1136 -0
  174. package/src/components/selector/ConfigDataSelector.vue +136 -0
  175. package/src/components/settings/SettingsItem.vue +38 -0
  176. package/src/components/tab/TabView.vue +11 -0
  177. package/src/components/tab/TabViewItem.vue +18 -0
  178. package/src/components/tab/TabViewItemBar.vue +9 -0
  179. package/src/components/tables/CellHover.vue +65 -0
  180. package/src/components/tables/DashboardDataTable.vue +707 -0
  181. package/src/components/tables/DataStatusTag.vue +52 -0
  182. package/src/components/tables/DataTable.vue +156 -0
  183. package/src/components/tables/DataTableAccordion.vue +249 -0
  184. package/src/components/tables/DataTableActionRow.vue +64 -0
  185. package/src/components/tables/DataTableCell.vue +272 -0
  186. package/src/components/tables/DataTableHeader.vue +60 -0
  187. package/src/components/tables/DataTableRow.vue +213 -0
  188. package/src/components/tables/ExpandedTable.vue +259 -0
  189. package/src/components/tables/PageTable.vue +73 -0
  190. package/src/components/tables/Pagination.vue +98 -0
  191. package/src/components/tables/dropdown/BaseDropdownTable.vue +140 -0
  192. package/src/components/tables/dropdown/DropdownTableActivity.vue +33 -0
  193. package/src/components/tables/dropdown/DropdownTableAsset.vue +30 -0
  194. package/src/components/tables/dropdown/DropdownTableConfig.vue +30 -0
  195. package/src/components/tables/dropdown/DropdownTableDataKonektor.vue +31 -0
  196. package/src/components/tables/dropdown/DropdownTableDataLabel.vue +30 -0
  197. package/src/components/tables/dropdown/DropdownTableDataSchema.vue +31 -0
  198. package/src/components/tables/dropdown/DropdownTableFabaPemanfaat.vue +30 -0
  199. package/src/components/tables/dropdown/DropdownTableGroup.vue +36 -0
  200. package/src/components/tables/dropdown/DropdownTableHalaman.vue +33 -0
  201. package/src/components/tables/dropdown/DropdownTableLevel.vue +66 -0
  202. package/src/components/tables/dropdown/DropdownTableOrganization.vue +47 -0
  203. package/src/components/tables/dropdown/DropdownTablePengelola.vue +28 -0
  204. package/src/components/tables/dropdown/DropdownTableQueryLayer.vue +29 -0
  205. package/src/components/tables/dropdown/DropdownTableSentral.vue +33 -0
  206. package/src/components/tables/dropdown/DropdownTableWarehouse.vue +30 -0
  207. package/src/components/tables/dropdown/TableDropdown.vue +52 -0
  208. package/src/components/ui/accordion/Accordion.vue +19 -0
  209. package/src/components/ui/accordion/AccordionContent.vue +24 -0
  210. package/src/components/ui/accordion/AccordionItem.vue +24 -0
  211. package/src/components/ui/accordion/AccordionTrigger.vue +42 -0
  212. package/src/components/ui/accordion/index.ts +4 -0
  213. package/src/components/ui/alert-dialog/AlertDialog.vue +14 -0
  214. package/src/components/ui/alert-dialog/AlertDialogAction.vue +20 -0
  215. package/src/components/ui/alert-dialog/AlertDialogCancel.vue +20 -0
  216. package/src/components/ui/alert-dialog/AlertDialogContent.vue +42 -0
  217. package/src/components/ui/alert-dialog/AlertDialogDescription.vue +25 -0
  218. package/src/components/ui/alert-dialog/AlertDialogFooter.vue +21 -0
  219. package/src/components/ui/alert-dialog/AlertDialogHeader.vue +16 -0
  220. package/src/components/ui/alert-dialog/AlertDialogTitle.vue +22 -0
  221. package/src/components/ui/alert-dialog/AlertDialogTrigger.vue +11 -0
  222. package/src/components/ui/alert-dialog/index.ts +9 -0
  223. package/src/components/ui/avatar/Avatar.vue +24 -0
  224. package/src/components/ui/avatar/AvatarFallback.vue +11 -0
  225. package/src/components/ui/avatar/AvatarImage.vue +9 -0
  226. package/src/components/ui/avatar/UsersAvatar.vue +28 -0
  227. package/src/components/ui/avatar/index.ts +24 -0
  228. package/src/components/ui/button/Button.vue +27 -0
  229. package/src/components/ui/button/index.ts +34 -0
  230. package/src/components/ui/calendar/Calendar.vue +325 -0
  231. package/src/components/ui/calendar/index.ts +22 -0
  232. package/src/components/ui/checkbox/Checkbox.vue +33 -0
  233. package/src/components/ui/checkbox/index.ts +1 -0
  234. package/src/components/ui/command/Command.vue +30 -0
  235. package/src/components/ui/command/CommandDialog.vue +21 -0
  236. package/src/components/ui/command/CommandEmpty.vue +20 -0
  237. package/src/components/ui/command/CommandGroup.vue +29 -0
  238. package/src/components/ui/command/CommandInput.vue +33 -0
  239. package/src/components/ui/command/CommandItem.vue +26 -0
  240. package/src/components/ui/command/CommandList.vue +27 -0
  241. package/src/components/ui/command/CommandSeparator.vue +23 -0
  242. package/src/components/ui/command/CommandShortcut.vue +14 -0
  243. package/src/components/ui/command/index.ts +9 -0
  244. package/src/components/ui/context-menu/ContextMenu.vue +15 -0
  245. package/src/components/ui/context-menu/ContextMenuCheckboxItem.vue +40 -0
  246. package/src/components/ui/context-menu/ContextMenuContent.vue +36 -0
  247. package/src/components/ui/context-menu/ContextMenuGroup.vue +11 -0
  248. package/src/components/ui/context-menu/ContextMenuItem.vue +34 -0
  249. package/src/components/ui/context-menu/ContextMenuLabel.vue +25 -0
  250. package/src/components/ui/context-menu/ContextMenuPortal.vue +11 -0
  251. package/src/components/ui/context-menu/ContextMenuRadioGroup.vue +19 -0
  252. package/src/components/ui/context-menu/ContextMenuRadioItem.vue +40 -0
  253. package/src/components/ui/context-menu/ContextMenuSeparator.vue +20 -0
  254. package/src/components/ui/context-menu/ContextMenuShortcut.vue +14 -0
  255. package/src/components/ui/context-menu/ContextMenuSub.vue +19 -0
  256. package/src/components/ui/context-menu/ContextMenuSubContent.vue +35 -0
  257. package/src/components/ui/context-menu/ContextMenuSubTrigger.vue +34 -0
  258. package/src/components/ui/context-menu/ContextMenuTrigger.vue +13 -0
  259. package/src/components/ui/context-menu/index.ts +14 -0
  260. package/src/components/ui/datetime/DatetimeRangeComponent.vue +52 -0
  261. package/src/components/ui/dialog/Dialog.vue +14 -0
  262. package/src/components/ui/dialog/DialogClose.vue +11 -0
  263. package/src/components/ui/dialog/DialogContent.vue +53 -0
  264. package/src/components/ui/dialog/DialogDescription.vue +24 -0
  265. package/src/components/ui/dialog/DialogFooter.vue +19 -0
  266. package/src/components/ui/dialog/DialogHeader.vue +16 -0
  267. package/src/components/ui/dialog/DialogScrollContent.vue +59 -0
  268. package/src/components/ui/dialog/DialogTitle.vue +29 -0
  269. package/src/components/ui/dialog/DialogTrigger.vue +11 -0
  270. package/src/components/ui/dialog/index.ts +9 -0
  271. package/src/components/ui/dropdown-menu/DropdownMenu.vue +14 -0
  272. package/src/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +40 -0
  273. package/src/components/ui/dropdown-menu/DropdownMenuContent.vue +38 -0
  274. package/src/components/ui/dropdown-menu/DropdownMenuGroup.vue +11 -0
  275. package/src/components/ui/dropdown-menu/DropdownMenuItem.vue +28 -0
  276. package/src/components/ui/dropdown-menu/DropdownMenuLabel.vue +24 -0
  277. package/src/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +19 -0
  278. package/src/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +41 -0
  279. package/src/components/ui/dropdown-menu/DropdownMenuSeparator.vue +22 -0
  280. package/src/components/ui/dropdown-menu/DropdownMenuShortcut.vue +14 -0
  281. package/src/components/ui/dropdown-menu/DropdownMenuSub.vue +19 -0
  282. package/src/components/ui/dropdown-menu/DropdownMenuSubContent.vue +30 -0
  283. package/src/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +33 -0
  284. package/src/components/ui/dropdown-menu/DropdownMenuTrigger.vue +13 -0
  285. package/src/components/ui/dropdown-menu/index.ts +16 -0
  286. package/src/components/ui/form/FormControl.vue +16 -0
  287. package/src/components/ui/form/FormDescription.vue +20 -0
  288. package/src/components/ui/form/FormItem.vue +25 -0
  289. package/src/components/ui/form/FormLabel.vue +23 -0
  290. package/src/components/ui/form/FormMessage.vue +16 -0
  291. package/src/components/ui/form/index.ts +6 -0
  292. package/src/components/ui/form/useFormField.ts +30 -0
  293. package/src/components/ui/hover-card/HoverCard.vue +14 -0
  294. package/src/components/ui/hover-card/HoverCardContent.vue +41 -0
  295. package/src/components/ui/hover-card/HoverCardTrigger.vue +11 -0
  296. package/src/components/ui/hover-card/index.ts +3 -0
  297. package/src/components/ui/input/Input.vue +24 -0
  298. package/src/components/ui/input/index.ts +1 -0
  299. package/src/components/ui/label/Label.vue +27 -0
  300. package/src/components/ui/label/index.ts +1 -0
  301. package/src/components/ui/pagination/PaginationEllipsis.vue +22 -0
  302. package/src/components/ui/pagination/PaginationFirst.vue +29 -0
  303. package/src/components/ui/pagination/PaginationLast.vue +29 -0
  304. package/src/components/ui/pagination/PaginationNext.vue +29 -0
  305. package/src/components/ui/pagination/PaginationPrev.vue +29 -0
  306. package/src/components/ui/pagination/index.ts +10 -0
  307. package/src/components/ui/pin-input/PinInput.vue +23 -0
  308. package/src/components/ui/pin-input/PinInputGroup.vue +18 -0
  309. package/src/components/ui/pin-input/PinInputInput.vue +18 -0
  310. package/src/components/ui/pin-input/PinInputSeparator.vue +15 -0
  311. package/src/components/ui/pin-input/index.ts +4 -0
  312. package/src/components/ui/popover/Popover.vue +15 -0
  313. package/src/components/ui/popover/PopoverContent.vue +48 -0
  314. package/src/components/ui/popover/PopoverTrigger.vue +11 -0
  315. package/src/components/ui/popover/index.ts +4 -0
  316. package/src/components/ui/preview/PreviewPdf.vue +118 -0
  317. package/src/components/ui/progress/ProgressCircle.vue +27 -0
  318. package/src/components/ui/progress/SemiCircularProgressBar.vue +83 -0
  319. package/src/components/ui/progress/TotalCalories.vue +31 -0
  320. package/src/components/ui/radio-group/RadioGroup.vue +25 -0
  321. package/src/components/ui/radio-group/RadioGroupItem.vue +37 -0
  322. package/src/components/ui/radio-group/index.ts +2 -0
  323. package/src/components/ui/scroll-area/ScrollArea.vue +29 -0
  324. package/src/components/ui/scroll-area/ScrollBar.vue +30 -0
  325. package/src/components/ui/scroll-area/index.ts +2 -0
  326. package/src/components/ui/select/Select.vue +15 -0
  327. package/src/components/ui/select/SelectContent.vue +52 -0
  328. package/src/components/ui/select/SelectGroup.vue +19 -0
  329. package/src/components/ui/select/SelectInline.vue +84 -0
  330. package/src/components/ui/select/SelectItem.vue +44 -0
  331. package/src/components/ui/select/SelectItemText.vue +11 -0
  332. package/src/components/ui/select/SelectLabel.vue +13 -0
  333. package/src/components/ui/select/SelectScrollDownButton.vue +24 -0
  334. package/src/components/ui/select/SelectScrollUpButton.vue +24 -0
  335. package/src/components/ui/select/SelectSeparator.vue +17 -0
  336. package/src/components/ui/select/SelectTrigger.vue +31 -0
  337. package/src/components/ui/select/SelectTriggerCustom.vue +23 -0
  338. package/src/components/ui/select/SelectValue.vue +11 -0
  339. package/src/components/ui/select/index.ts +12 -0
  340. package/src/components/ui/separator/Separator.vue +20 -0
  341. package/src/components/ui/separator/index.ts +1 -0
  342. package/src/components/ui/sheet/Sheet.vue +14 -0
  343. package/src/components/ui/sheet/SheetClose.vue +11 -0
  344. package/src/components/ui/sheet/SheetContent.vue +48 -0
  345. package/src/components/ui/sheet/SheetDescription.vue +22 -0
  346. package/src/components/ui/sheet/SheetFooter.vue +19 -0
  347. package/src/components/ui/sheet/SheetHeader.vue +16 -0
  348. package/src/components/ui/sheet/SheetTitle.vue +22 -0
  349. package/src/components/ui/sheet/SheetTrigger.vue +11 -0
  350. package/src/components/ui/sheet/index.ts +31 -0
  351. package/src/components/ui/skeleton/Skeleton.vue +28 -0
  352. package/src/components/ui/skeleton/index.ts +1 -0
  353. package/src/components/ui/sonner/Sonner.vue +22 -0
  354. package/src/components/ui/sonner/index.ts +1 -0
  355. package/src/components/ui/star/StarRating.vue +19 -0
  356. package/src/components/ui/switch/Switch.vue +37 -0
  357. package/src/components/ui/switch/index.ts +1 -0
  358. package/src/components/ui/table/Table.vue +16 -0
  359. package/src/components/ui/table/TableBody.vue +14 -0
  360. package/src/components/ui/table/TableCaption.vue +14 -0
  361. package/src/components/ui/table/TableCell.vue +21 -0
  362. package/src/components/ui/table/TableEmpty.vue +37 -0
  363. package/src/components/ui/table/TableFooter.vue +14 -0
  364. package/src/components/ui/table/TableHead.vue +14 -0
  365. package/src/components/ui/table/TableHeader.vue +14 -0
  366. package/src/components/ui/table/TableRow.vue +14 -0
  367. package/src/components/ui/table/index.ts +8 -0
  368. package/src/components/ui/tabs/Tabs.vue +15 -0
  369. package/src/components/ui/tabs/TabsContent.vue +22 -0
  370. package/src/components/ui/tabs/TabsList.vue +25 -0
  371. package/src/components/ui/tabs/TabsTrigger.vue +27 -0
  372. package/src/components/ui/tabs/index.ts +4 -0
  373. package/src/components/ui/tags-input/TagsInput.vue +22 -0
  374. package/src/components/ui/tags-input/TagsInputInput.vue +19 -0
  375. package/src/components/ui/tags-input/TagsInputItem.vue +22 -0
  376. package/src/components/ui/tags-input/TagsInputItemDelete.vue +24 -0
  377. package/src/components/ui/tags-input/TagsInputItemText.vue +19 -0
  378. package/src/components/ui/tags-input/index.ts +5 -0
  379. package/src/components/ui/textarea/Textarea.vue +24 -0
  380. package/src/components/ui/textarea/index.ts +1 -0
  381. package/src/components/ui/tooltip/Tooltip.vue +14 -0
  382. package/src/components/ui/tooltip/TooltipContent.vue +31 -0
  383. package/src/components/ui/tooltip/TooltipProvider.vue +11 -0
  384. package/src/components/ui/tooltip/TooltipTrigger.vue +11 -0
  385. package/src/components/ui/tooltip/index.ts +4 -0
  386. package/src/composables/useAppConfig.ts +332 -0
  387. package/src/composables/useDarkMode.ts +71 -0
  388. package/src/config/app.config.ts +318 -0
  389. package/src/config/examples/ecommerce.config.ts +132 -0
  390. package/src/config/examples/generic.config.ts +132 -0
  391. package/src/config/menu.config.ts +149 -0
  392. package/src/config/my-app.config.ts +134 -0
  393. package/src/config/test-config.ts +32 -0
  394. package/src/config/theme.config.ts +250 -0
  395. package/src/docs/index.ts +21 -0
  396. package/src/docs.scss +403 -0
  397. package/src/index.d.ts +5 -0
  398. package/src/index.ts +20 -0
  399. package/src/layouts/AuthLayout.vue +68 -0
  400. package/src/layouts/DefaultLayout.vue +119 -0
  401. package/src/layouts/DocsLayout.vue +681 -0
  402. package/src/layouts/FormGlobal.vue +50 -0
  403. package/src/layouts/GlobalDialog.vue +122 -0
  404. package/src/layouts/RakorConfirmDialog.vue +95 -0
  405. package/src/layouts/SettingsLayout.vue +115 -0
  406. package/src/lib/constants.ts +2 -0
  407. package/src/lib/detail.utils.ts +213 -0
  408. package/src/lib/form.utils.ts +1009 -0
  409. package/src/lib/page.flow.utils.ts +81 -0
  410. package/src/lib/page.utils.ts +865 -0
  411. package/src/lib/performance.utils.ts +302 -0
  412. package/src/lib/tablerow.utils.ts +51 -0
  413. package/src/lib/utils.ts +643 -0
  414. package/src/main.scss +717 -0
  415. package/src/main.ts +74 -0
  416. package/src/menu.ts +78 -0
  417. package/src/nestedlist_color.scss +161 -0
  418. package/src/router/index.ts +92 -0
  419. package/src/stores/auth.ts +117 -0
  420. package/src/stores/counter.ts +12 -0
  421. package/src/stores/dialog.ts +168 -0
  422. package/src/stores/form.ts +103 -0
  423. package/src/stores/tabs.ts +52 -0
  424. package/src/tw.scss +419 -0
  425. package/src/types/form.types.ts +348 -0
  426. package/src/types/types.ts +7 -0
  427. package/src/utils/config.utils.ts +149 -0
  428. package/src/views/NotFound.vue +30 -0
  429. package/src/views/PageActivity.vue +15 -0
  430. package/src/views/auth/LoginView.vue +7 -0
  431. package/src/views/auth/OauthCallback.vue +101 -0
  432. package/src/views/dashboard/index.vue +16 -0
  433. package/src/views/settings/AccountSettingsView.vue +70 -0
  434. package/src/views/settings/AuditLogsSettingsView.vue +116 -0
  435. package/src/views/settings/DeviceSettingsView.vue +70 -0
  436. package/src/views/settings/MainSettingsView.vue +12 -0
  437. package/src/views/settings/ProfileSettingsView.vue +104 -0
  438. package/src/vueform/config/informasi-gudang.ts +47 -0
  439. package/src/vueform/config/test-schema.ts +8 -0
  440. package/src/vueform/config/types.ts +768 -0
  441. package/src/vueform/customization/classes.js +46 -0
  442. package/src/vueform/customization/tailwind.classes.js +2117 -0
  443. package/src/vueform/elements/ConfigDataSelectorElement.vue +50 -0
  444. package/src/vueform/elements/DateSelectorElement.vue +323 -0
  445. package/src/vueform/elements/SelectorElement.vue +153 -0
  446. package/src/vueform/schemas/date-selector-test.ts +103 -0
  447. package/src/vueform/schemas/informasi-gudang.ts +160 -0
  448. package/src/vueform/schemas/test-schema.ts +483 -0
  449. package/src/vueform.config.js +77 -0
  450. package/src/vueform.validator.ts +77 -0
@@ -0,0 +1,768 @@
1
+ import type { DasiV2FormSchema } from "@/types/form.types";
2
+
3
+ export interface PageConfigNextOptions {
4
+ nextFormSchema?: any;
5
+ nextFormOpen?: boolean;
6
+ }
7
+
8
+ export interface IIcon {
9
+ name: string;
10
+ class?: string;
11
+ strokeWidth?: number;
12
+ size?: number;
13
+ fill?: boolean;
14
+ }
15
+
16
+ export interface CustomBtnConfig {
17
+ type?: "separator" | "action";
18
+ show?: boolean;
19
+ id?: string;
20
+ label?: string;
21
+ class?: string;
22
+ displayAsOption?: boolean;
23
+ negative?: boolean;
24
+
25
+ // Icon config
26
+ icon?: string;
27
+ iconSize?: number;
28
+ iconFill?: boolean;
29
+ iconClass?: string;
30
+ iconStrokeWidth?: number;
31
+
32
+ // Action
33
+ onClick?: (i: number, row: any, btnId?: string) => void;
34
+ }
35
+
36
+ export interface ColumnAction {
37
+ id?: string; // Identifier when the item are clicked
38
+ label?: string;
39
+ icon?: string;
40
+ iconSize?: number;
41
+ action?: (i: number, row: any) => void;
42
+ negative?: boolean;
43
+ type?: "separator" | "item";
44
+ }
45
+
46
+ export interface ColumnRef {
47
+ /**
48
+ * row's field to be displayed,
49
+ * example:
50
+ * key: 'yellow'
51
+ * then it will render content of row.yellow
52
+ *
53
+ */
54
+ key: string;
55
+
56
+ visible?: boolean;
57
+ headerClass?: string;
58
+ header?: string;
59
+ size?: number;
60
+ bold?: boolean;
61
+ type?: "cell" | "action" | "notifIcon";
62
+ showInDetail?: boolean;
63
+
64
+ /**
65
+ * Text, dasi_v2_date, dasi_v2_organization so more
66
+ *
67
+ */
68
+ cellType?: string;
69
+
70
+ /**
71
+ * Key from the row to be displayed
72
+ * as description
73
+ *
74
+ * example:
75
+ * descriptonKey: code
76
+ * then it will render row.code ?? ''
77
+ *
78
+ */
79
+ descriptonKey?: string;
80
+
81
+ /**
82
+ * String description to be rendered after
83
+ * row title
84
+ *
85
+ */
86
+ description?: (i: number, row: any) => string;
87
+
88
+ /**
89
+ * Data source to be rendered
90
+ * default to row[key]
91
+ *
92
+ */
93
+ dataSource?: (i: number, row: any) => any;
94
+
95
+ /**
96
+ * New for displaying custom button
97
+ * the custom button next to action button
98
+ *
99
+ */
100
+ customBtnConfig?: CustomBtnConfig | ((i: number, row: any) => CustomBtnConfig);
101
+ onCustomBtnClick?: (i: number, row: any, btnId?: string) => void;
102
+
103
+ /**
104
+ * Display action tree dots or not
105
+ *
106
+ */
107
+ showAction?: boolean | ((i: number, row: any) => boolean);
108
+ cellRender?: (i: number, row: any) => void;
109
+ actions?: (i: number, row: any) => ColumnAction[] | ColumnAction[];
110
+
111
+ /**
112
+ * DIsplay loading on row
113
+ *
114
+ */
115
+ itemLoading?: boolean | string | ((i: number, row: any) => boolean | string);
116
+
117
+ /**
118
+ * Display custom actions
119
+ * such as direct delete or edit button
120
+ *
121
+ */
122
+ rowActions?: RowAction[];
123
+
124
+ /**
125
+ * Display order by on table header
126
+ *
127
+ */
128
+ sortKey?: string;
129
+
130
+ /**
131
+ * Used for rendering array value
132
+ *
133
+ */
134
+ items?: any[];
135
+
136
+ /**
137
+ * For displaying cellType: dasi_v2_selector_single
138
+ *
139
+ */
140
+ nameField?: string;
141
+ nameFieldFunc?: (row: any) => string;
142
+ descriptionField?: string;
143
+ descriptionFieldFunc?: (row: any) => string;
144
+
145
+ /**
146
+ * For selector multiple
147
+ *
148
+ * if in dasi_v2_organizations default to organization
149
+ *
150
+ */
151
+ objectKey?: string;
152
+
153
+ /**
154
+ * Header and cell align
155
+ *
156
+ */
157
+ textAlign?: "right" | "left";
158
+ headAlign?: "right" | "left" | "center";
159
+
160
+ mask?: any;
161
+ addons?: any;
162
+
163
+ /**
164
+ * Date Selector props
165
+ */
166
+ pickerType?: "date" | "datetime" | "month" | "year";
167
+ range?: boolean;
168
+ displayFormat?: string;
169
+ yearRange?: [number, number];
170
+ locale?: string;
171
+ autoApply?: boolean;
172
+ textInput?: boolean;
173
+ startDate?: Date;
174
+ minDate?: Date;
175
+ maxDate?: Date;
176
+ isStokReal?: boolean;
177
+
178
+ /**
179
+ * Selector props
180
+ */
181
+ multiple?: boolean;
182
+ showAvatar?: boolean;
183
+ returnObject?: boolean;
184
+ autoFillOrg?: boolean;
185
+ accessLevel?: string;
186
+ params?: Record<string, any>;
187
+ condition?: Record<string, any>;
188
+ orderBy?: string;
189
+ sort?: "asc" | "desc";
190
+ }
191
+
192
+ export interface RowAction {
193
+ label: string;
194
+ class?: string;
195
+ icon?: string;
196
+ iconStrokeWidth?: number;
197
+ iconClass?: string;
198
+ iconSize?: number;
199
+ iconFill?: boolean;
200
+ onClick: (i: number, row: any) => void;
201
+ }
202
+
203
+ export interface ActionItem {
204
+ label: string;
205
+ class?: string;
206
+ icon?: IIcon;
207
+ onClick: (i: number, row: any) => void;
208
+ }
209
+
210
+ export interface PageConfigInitReturn {
211
+ pageConfig: PageConfig;
212
+
213
+ /**
214
+ * Query param string
215
+ * extracted from endpooint
216
+ *
217
+ */
218
+ queryParams: string;
219
+ }
220
+
221
+ export type FilterForm = DasiV2FormSchema & {
222
+ [key: string]: FilterFormSchema;
223
+ };
224
+
225
+ export interface FilterFormSchema {
226
+ filterType: "eq" | "custom" | "condition" | "month|year" | "id" | "asCondition" | "bool";
227
+ mapFilterValue?: (val: string) => any;
228
+
229
+ /**
230
+ * Filter dislayed on pageActionMenu
231
+ * or on filter form dialog
232
+ *
233
+ */
234
+ showOnPageActionMenu?: boolean;
235
+
236
+ /**
237
+ * If this set to true
238
+ * the data will be saved to local / session storage
239
+ *
240
+ */
241
+ saveSate?: boolean;
242
+ stateKey?: string;
243
+
244
+ /**
245
+ * session: Session sotrage, only available on current tab
246
+ * local: Local storage, available on all tab
247
+ * default: session
248
+ *
249
+ */
250
+ stateStorage?: "session" | "local";
251
+ }
252
+
253
+ export interface SortBy {
254
+ key: string;
255
+ by: "asc" | "desc";
256
+ }
257
+
258
+ interface StringMap {
259
+ [key: string]: string;
260
+ }
261
+
262
+ interface TableGroupConfig {
263
+ by?: string;
264
+ labels?: StringMap;
265
+ setGroupLabel?: (row: any, allData?: any[]) => string;
266
+ }
267
+
268
+ export interface PageDetailHooks {
269
+ /**
270
+ * Run right after the detail dialog
271
+ * opened, before get detail data from api
272
+ *
273
+ */
274
+ onDetailOpen?: (schema: DasiV2FormSchema, row?: any) => Promise<boolean>;
275
+
276
+ /**
277
+ * Set endpoint to get detail
278
+ * data from api
279
+ *
280
+ * expected full get data detail api
281
+ * example: /jadwal-pengiriman/f061af0b-3f08-44dc-a710-8a8d6aef6729?extras=abc&condition=def
282
+ *
283
+ */
284
+ setEndpoint?: (schema: DasiV2FormSchema, row?: any) => Promise<string>;
285
+
286
+ /**
287
+ * Run after get data from api
288
+ * but the detail content not rendered yet,
289
+ * still displaying loading
290
+ *
291
+ */
292
+ onBeforeMount?: (schema: DasiV2FormSchema, detailData?: any) => Promise<boolean>;
293
+ }
294
+
295
+ /**
296
+ * Coming soon
297
+ *
298
+ */
299
+ export interface PageHooks {}
300
+
301
+ export interface ToggleConfig {
302
+ /**
303
+ * Show toggle on the page
304
+ */
305
+ show: boolean;
306
+
307
+ /**
308
+ * Toggle options for checked and unchecked states
309
+ */
310
+ options: {
311
+ checked: string;
312
+ unchecked: string;
313
+ };
314
+
315
+ /**
316
+ * URL suffixes to append when toggle state changes
317
+ * These will be appended to the current endpoint
318
+ */
319
+ urlSuffixes?: {
320
+ checked: string;
321
+ unchecked: string;
322
+ };
323
+
324
+ /**
325
+ * Custom hook that runs when toggle state changes
326
+ * Receives the new checked state and should return the new endpoint URL
327
+ */
328
+ onChange?: (checked: boolean, currentEndpoint?: string) => string;
329
+
330
+ /**
331
+ * Default toggle state
332
+ */
333
+ defaultChecked?: boolean;
334
+ }
335
+
336
+ export interface PageConfig {
337
+ /**
338
+ * Unique id,
339
+ * if not set will use endpoint as unique id
340
+ *
341
+ */
342
+ id?: string;
343
+
344
+ /**
345
+ * Get data endpoint
346
+ *
347
+ */
348
+ endpoint?: string;
349
+
350
+ /**
351
+ * Where url api to hit when form was saved from add and edit action
352
+ * add action will hit POST /save-path
353
+ * and edit will hit POST /save-path/:id/edit
354
+ *
355
+ */
356
+ savePath?: string;
357
+
358
+ /**
359
+ * Where form schema to be loaded
360
+ *
361
+ */
362
+ schema?: string;
363
+
364
+ /**
365
+ * If page use custom component,
366
+ * set path here, fallback to schema
367
+ *
368
+ */
369
+ customComponentPath?: string;
370
+
371
+ /**
372
+ * Where tab page deleted show or not
373
+ *
374
+ */
375
+ showDeleted?: boolean;
376
+
377
+ /**
378
+ * Hide approval status on table
379
+ *
380
+ */
381
+ hideApprovalStatus?: boolean;
382
+
383
+ /**
384
+ * Tmp
385
+ *
386
+ */
387
+ role?: string;
388
+
389
+ /**
390
+ * Transform data get from api before
391
+ * displaying it
392
+ *
393
+ */
394
+ dataTransformer?: (data: any[]) => any[];
395
+ dataDetailTransformer?: (data: any) => any;
396
+ pageHooks?: PageHooks;
397
+
398
+ /**
399
+ * Hook that run when user click
400
+ * view detail button
401
+ *
402
+ */
403
+ pageDetailHooks?: PageDetailHooks;
404
+
405
+ /**
406
+ * Table displayed columns
407
+ *
408
+ */
409
+ columns?: ColumnRef[] | DasiV2FormSchema;
410
+
411
+ /**
412
+ * Table displayed columns key for search
413
+ * TODO:
414
+ * Not imlemented yet
415
+ *
416
+ */
417
+ searchColumns?: any;
418
+
419
+ /**
420
+ * Vueform schema for filtering data
421
+ * You can specific filter by setting key of the object
422
+ * as allowed field to be filtered from API, and set vueform object
423
+ * for the filter form, with additional filterType:
424
+ * in, eq, gte, lte, month|year, like, ilike
425
+ *
426
+ * for more available filter please ready docs for each
427
+ * api endpoint
428
+ *
429
+ */
430
+ filter?: FilterForm;
431
+ width?: number | 360;
432
+
433
+ /**
434
+ * @deprecated Use toggleConfig instead
435
+ */
436
+ toggle?: boolean;
437
+ /**
438
+ * @deprecated Use toggleConfig instead
439
+ */
440
+ toggleOptions?: { checked: string; unchecked: string };
441
+
442
+ /**
443
+ * Toggle configuration for dynamic toggle functionality
444
+ * Similar to filter system but for binary toggle states
445
+ */
446
+ toggleConfig?: ToggleConfig;
447
+
448
+ /**
449
+ * @deprecated
450
+ */
451
+ periodeFilter?: boolean;
452
+ periodeFilterName?: string; // Using for filter name
453
+ periodeFilterField?: string; // Using for filter key field
454
+ periodeFilterDefault?: { month: any; year: any } | null;
455
+
456
+ /**
457
+ * Add conditional filtering data
458
+ * some endpoint may has conditional filtering data
459
+ * with string format 'key:value'
460
+ *
461
+ * for more conditional filtering please read docs for
462
+ * each api endpoint
463
+ *
464
+ */
465
+ conditions?: any[];
466
+
467
+ /**
468
+ * @deprecated
469
+ * see nextPath
470
+ *
471
+ */
472
+ nextFunc?: (i: number, row: any) => any;
473
+
474
+ /**
475
+ * @deprecated
476
+ * see nextPath
477
+ *
478
+ */
479
+ next?: string;
480
+
481
+ /**
482
+ * Next front-end path to hit when row button clicked
483
+ * can be string or function that return string
484
+ *
485
+ */
486
+ nextPath?: string[] | ((i: number, row: any) => string[]);
487
+
488
+ /**
489
+ * Field from data item that are required to display
490
+ * open next button in row table
491
+ * this field of a row item is not empty
492
+ * the row button will show go to next and will go to
493
+ * nextPath, else it will show button that open add form
494
+ *
495
+ * Example:
496
+ * nextDataField = 'loadingInfo'
497
+ * if row.loadingInfo is empty -> show row button to open form to add new data
498
+ * else if row.loadingInfo.dibutuhkanPersetujuan -> show ro button to open form edit data
499
+ * else -> display button that go to
500
+ *
501
+ * Notes:
502
+ * Used in pageActivityFlow
503
+ *
504
+ */
505
+ nextDataField?: string;
506
+
507
+ /**
508
+ * Sort key for the "Proses Selanjutnya" action column header
509
+ * When set, the action column header will be sortable just like other columns
510
+ * This allows sorting by the data that determines the next action state
511
+ *
512
+ * Example:
513
+ * nextDataSortkey = 'nextDataField.createdAt'
514
+ * The action column header will be sortable by the creation date of the next data
515
+ *
516
+ */
517
+ nextDataSortkey?: string;
518
+
519
+ /**
520
+ * Used on pageActivityFlow
521
+ * when displaying parent child instead of original data
522
+ *
523
+ */
524
+ parentField?: string;
525
+
526
+ /**
527
+ * Extras data or child included from base data
528
+ * when get all data
529
+ *
530
+ */
531
+ extras?: string[];
532
+
533
+ /**
534
+ * Display add button that open
535
+ * form on front-end
536
+ *
537
+ */
538
+ showAddBtn?: boolean;
539
+
540
+ /**
541
+ * @deprecated
542
+ * now add button label always show
543
+ *
544
+ */
545
+ showAddBtnLabel?: boolean;
546
+
547
+ /**
548
+ * @deprecated
549
+ * see rowActions
550
+ *
551
+ */
552
+ showCustomButtonFunc?: (i: number, row: any) => boolean;
553
+ customButtonLabelFunc?: (i: number, row: any) => any;
554
+ customButtonIconFunc?: (i: number, row: any) => any;
555
+ customButtonClassFunc?: (i: number, row: any) => any;
556
+
557
+ /**
558
+ * @deprecated
559
+ * now use moreRowActions
560
+ *
561
+ */
562
+ rowActions?: RowAction[];
563
+
564
+ /**
565
+ * Not implemented yet
566
+ */
567
+ morePageActions?: any[];
568
+
569
+ /**
570
+ * Display search bar or not
571
+ * if search is hidden,
572
+ * plase add page title, so the header not blank
573
+ *
574
+ */
575
+ showSearch?: boolean;
576
+
577
+ /**
578
+ * To save space, page title only displayed
579
+ * if showSearch set to false
580
+ *
581
+ */
582
+ pageTitle?: string;
583
+
584
+ /**
585
+ * Hide delete option from action dropdown
586
+ *
587
+ */
588
+ hideDeleteAction?: boolean;
589
+
590
+ /**
591
+ * Hide edit action from dropdown
592
+ *
593
+ */
594
+ hideEditAction?: boolean;
595
+
596
+ /**
597
+ * Display button on page, next to pagination
598
+ * and columns display config
599
+ *
600
+ */
601
+ pageActions?: ActionItem[];
602
+
603
+ /**
604
+ * Default data sort by
605
+ *
606
+ */
607
+ sortBy?: SortBy;
608
+
609
+ /**
610
+ * Set custom css class for add/edit dialog
611
+ * to set sizing, color etc
612
+ *
613
+ */
614
+ formDialogClass?: string;
615
+
616
+ /**
617
+ * If approval page is true
618
+ * This will make row button behave different than basic CRUD page, the conditions are:
619
+ * if row[nextvDataField] is empty (mean not approved yet) or
620
+ * row[prevDataField].submitUlang (mean already approved but required re-submission and have the re-submission data)
621
+ * then it will show row button "Mulai Persetujuan" that will show approval dialog
622
+ * else if row[nextDataField].disetujui is false it will not display row button
623
+ * else it will show next
624
+ *
625
+ * Approval page required this option to be available
626
+ * - nextDataField,
627
+ * - prevDataField
628
+ *
629
+ * and optional
630
+ * - nextPath
631
+ *
632
+ */
633
+ approvalPage?: boolean;
634
+ prevDataField?: string;
635
+
636
+ /**
637
+ * Show view document button when row item selected
638
+ *
639
+ */
640
+ showViewDocButton?: boolean;
641
+
642
+ /**
643
+ * Show action export button
644
+ *
645
+ */
646
+ showExportButton?: boolean;
647
+
648
+ /**
649
+ * View document endpoint to get the document data
650
+ * to display for DocViewer dialog
651
+ * Example:
652
+ * viewDocsEndpoint = 'no-loading'
653
+ * The DocViewer will hit /nor-loading/:id/documents
654
+ * and the api of that url should be returned document list array to be displayed
655
+ *
656
+ */
657
+ viewDocsEndpoint?: string;
658
+
659
+ /**
660
+ * Checkbox on each row
661
+ *
662
+ */
663
+ showCheckboxItem?: boolean;
664
+ checkDisabled?: (item: any, data: any[]) => boolean;
665
+ checkboxActionBtn?: CustomBtnConfig[];
666
+
667
+ /**
668
+ * Table displayed as group dropdown
669
+ * when set this to true, you also need to set
670
+ * tableGroupConfig
671
+ *
672
+ */
673
+ tableGrouped?: boolean;
674
+ tableGroupConfig?: TableGroupConfig;
675
+ tableGroupActionBtn?: (groupId: any, items: any[]) => CustomBtnConfig[];
676
+ groupApproval?: boolean;
677
+ groupStatus?: (groupId: any, items: any[]) => string;
678
+
679
+ /**
680
+ * Row action
681
+ *
682
+ */
683
+ showActionRow?: boolean;
684
+ showActionRowOptions?: boolean | ((i: number, row: any) => boolean);
685
+ actionRowConfig?: ColumnRef;
686
+
687
+ /**
688
+ * Add additional action on row when
689
+ * user click 3 dots action row
690
+ *
691
+ * will be displayed after edit button
692
+ *
693
+ */
694
+ moreRowActions?: ColumnAction[] | ((i: number, row: any) => ColumnAction[]);
695
+
696
+ /**
697
+ * Show view detail button or not
698
+ *
699
+ */
700
+ showViewDetail?: boolean | ((i: number, row: any) => boolean);
701
+
702
+ /**
703
+ * Display pagination or not
704
+ *
705
+ */
706
+ showPagination?: boolean;
707
+
708
+ /**
709
+ * API endpoint for view data detail,
710
+ * if not set will use endpoint? value fallback
711
+ * to endpoint get from router.path
712
+ *
713
+ */
714
+ viewDetailEndpoint?: string;
715
+
716
+ /**
717
+ * If this set to true,
718
+ * you must add view detail component
719
+ * at @/components/page-activity/${schemaPath}/Detail.vue
720
+ * and expose open function that will be called when user
721
+ * clicked view detail button
722
+ *
723
+ * open(item: any) => Promise<boolean> // return true will reload the data
724
+ *
725
+ */
726
+ useCustomViewDetail?: boolean;
727
+
728
+ /**
729
+ * Show action button on table row
730
+ * next to view detail button
731
+ *
732
+ * If actionRowConfig are set, this config
733
+ * will be overriden
734
+ *
735
+ */
736
+ showActionRowButton?: boolean | ((i: number, row: any) => boolean);
737
+ actionRowBtnConfig?: CustomBtnConfig | ((i: number, row: any) => CustomBtnConfig);
738
+
739
+ /**
740
+ * By default all action on row will be hidden of
741
+ * data status is approval_reuired, draft, or waiting_approval
742
+ * You can force to display the action button even and ignore data status
743
+ *
744
+ */
745
+ forceDisplayActionRow?: boolean;
746
+
747
+ /**
748
+ * If this set to true,
749
+ * you must add view ActionRow component
750
+ * at @/components/page-activity/${schemaPath}/ActionRow.vue
751
+ * and expose open function that will be called when user
752
+ * clicked view the action row button
753
+ *
754
+ * open(i: number, item: any) => Promise<boolean> // return true will reload the data
755
+ *
756
+ */
757
+ useActionRowBtnComponent?: boolean;
758
+
759
+ /**
760
+ * Function to generate display name for data items
761
+ * Used throughout the application to determine how to display item names
762
+ * in dialogs, headers, and other UI components
763
+ *
764
+ * @param item - The data item/row
765
+ * @returns The display name for the item
766
+ */
767
+ dataName?: (item: any) => string;
768
+ }