@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,681 +0,0 @@
1
- <script setup lang="ts">
2
- import ScrollArea from '../components/ui/scroll-area/ScrollArea.vue';
3
- import { ref, onMounted, watch, onUnmounted } from 'vue';
4
- import { RouterLink, useRoute, useRouter } from 'vue-router'
5
- import { marked } from 'marked';
6
- import doscMenu from '../docs/index';
7
- import { CurlGenerator } from 'curl-generator';
8
- import Copyright from '../components/helper/Copyright.vue';
9
- import ApiTester from '../components/helper/ApiTester.vue';
10
- import { LucideLoader2, LucidePlaneTakeoff, LucideScrollText, LucideSearch } from 'lucide-vue-next';
11
- import api from '../api/api';
12
-
13
- interface Menu {
14
- title: string
15
- code?: string
16
- items?: Menu[]
17
- type?: 'page' | 'api' | null
18
- openApi?: any
19
- }
20
-
21
- interface CodeBlock {
22
- start: number
23
- end: number
24
- }
25
-
26
- const route = useRoute();
27
- const router = useRouter();
28
-
29
- const ms = ref<Menu | null>(null); // menuSelected
30
- const msc = ref(''); // menuSelectedCode
31
- const leftbar = ref<Menu[]>([]);
32
- const ls = ref<Menu | null>(null); // leftbarSelected
33
- const lsc = ref(''); // leftbarSelectedCode
34
- const indexHtml = ref('');
35
- const rightbar = ref<Menu[]>([]);
36
- const rsi = ref(0); // rightbarSelectedIndex
37
- const apiUrl = ref(import.meta.env.VITE_API_URL);
38
- const exampleType = ref('cURL');
39
- const sendingApi = ref(false);
40
- const q = ref('');
41
-
42
- /**
43
- * El
44
- *
45
- */
46
- const apiTesterEl: any = ref(null);
47
-
48
- /**
49
- * Extract all header h2 (##)
50
- * from markdown string
51
- *
52
- */
53
- function loadRightbar(markdown: string) {
54
- rightbar.value = [];
55
-
56
- /**
57
- * Regular expressions to match h2 (##) headers
58
- * and skip ## on code block
59
- *
60
- */
61
- const h2Regex = /^##\s(.+)$/gm;
62
- const codeBlockRegex = /```[\s\S]*?```|`[\s\S]*?`/g;
63
-
64
- // Find all code blocks to ignore
65
- const codeBlocks: CodeBlock[] = [];
66
- let match;
67
- while ((match = codeBlockRegex.exec(markdown)) !== null) {
68
- codeBlocks.push({ start: match.index, end: codeBlockRegex.lastIndex });
69
- }
70
-
71
- // Helper function to check if a position is inside a code block
72
- function isInCodeBlock(index: number) {
73
- return codeBlocks.some(block => index >= block.start && index < block.end);
74
- }
75
-
76
- // Reset the regex lastIndex to start searching from the beginning
77
- h2Regex.lastIndex = 0;
78
-
79
- // Match all ## headers
80
- while ((match = h2Regex.exec(markdown)) !== null) {
81
- if (!isInCodeBlock(match.index)) {
82
- rightbar.value.push({ title: match[1] });
83
- }
84
- }
85
- }
86
-
87
- async function loadContent() {
88
- lsc.value = route.path.split('/')[3];
89
- if (!lsc.value && leftbar.value.length > 0 && leftbar.value[0].items && leftbar.value[0].items.length > 0) {
90
- lsc.value = String(leftbar.value[0].items[0].code);
91
- }
92
-
93
- if (ms.value?.type === 'api') {
94
- /**
95
- * Find leftbar selected
96
- * from leftbar array
97
- *
98
- */
99
- for (const item of leftbar.value) {
100
- if (!item.items) continue;
101
- for (const sub of item.items) {
102
- if (sub.code === lsc.value) {
103
- ls.value = sub;
104
- /**
105
- * Format api for example
106
- *
107
- */
108
- ls.value.openApi.endpointExample = ls.value.openApi.endpoint;
109
- ls.value.openApi.headers = {};
110
- if (ls.value.openApi.requestBody && ls.value.openApi.requestBody.content) {
111
- const rbc = ls.value.openApi.requestBody.content;
112
- for (const rb in rbc) {
113
- ls.value.openApi.requestBodyContentType = rb;
114
- ls.value.openApi.headers['Content-Type'] = rb;
115
- if (rbc[rb].example) {
116
- ls.value.openApi.requestBodyExample = rbc[rb].example;
117
- } else if (rbc[rb].schema && rbc[rb].schema.example) {
118
- ls.value.openApi.requestBodyExample = rbc[rb].schema.example;
119
- }
120
- }
121
- }
122
- let queryParams = [];
123
- if (ls.value.openApi.parameters) {
124
- for (const param of ls.value.openApi.parameters) {
125
- if (param.in === 'path') {
126
- if (param.example) {
127
- ls.value.openApi.endpointExample = ls.value.openApi.endpointExample.replace(`{${param.name}}`, param.example);
128
- }
129
- } else if (param.in === 'header') {
130
- ls.value.openApi.headers[param.name] = param.example || '';
131
- } else if (param.in === 'query') {
132
- queryParams.push(`${param.name}=${param.example || `{${param.name}}`}`);
133
- }
134
- }
135
- }
136
- const qm = queryParams.length > 0 ? '?' : '';
137
- ls.value.openApi.endpointExample = `${ls.value.openApi.endpointExample}${qm}${queryParams.join('&')}`;
138
-
139
- for (const key in ls.value.openApi.responses) {
140
- if (Number(key) === 200) {
141
- const item = ls.value.openApi.responses[key];
142
- for (const k2 in item.content) {
143
- ls.value.openApi.responseContentType = k2;
144
- if (item.content[k2].examples) {
145
- for (const k3 in item.content[k2].examples) {
146
- ls.value.openApi.okResponseExample = item.content[k2].examples[k3];
147
- }
148
- }
149
- }
150
- break;
151
- }
152
- }
153
- break;
154
- }
155
- }
156
- }
157
-
158
- return;
159
- }
160
-
161
- // Reset content
162
- indexHtml.value = '';
163
-
164
- if (!msc.value || !lsc.value) return;
165
-
166
- try {
167
- /* @vite-ignore */
168
- const md = (await import(`@/docs/${msc.value}/${lsc.value}.md`)).default;
169
- const htmlTmp = await marked(md);
170
- let i = 0;
171
- indexHtml.value = htmlTmp.replace(/<h2>/g, () => {
172
- const id = `h2-${i}`;
173
- i += 1;
174
- return `<h2 id="${id}">`;
175
- });
176
- loadRightbar(md);
177
- } catch (error) {
178
- console.error('Failed to load module:', error);
179
- }
180
- }
181
-
182
- function camelCaseToSpace(text: string) {
183
- return text.replace(/([A-Z])/g, ' $1').replace(/^./, str => str.toUpperCase());
184
- }
185
-
186
- async function loadLeftbar() {
187
- if (!ms.value) return;
188
-
189
- // Reset selected leftbar menu
190
- ls.value = null
191
- lsc.value = '';
192
- leftbar.value = [];
193
-
194
- if (ms.value.type === 'api') {
195
- /**
196
- * Load json open api
197
- *
198
- */
199
- const jsonData = (await import(`@/docs/${msc.value}/${msc.value}.json`)).default;
200
- for (const key in jsonData.paths) {
201
- console.log(key);
202
- const category = camelCaseToSpace(key.split('/')[1]);
203
- let itemFound = false;
204
- for (const item of leftbar.value) {
205
- if (item.title === category) {
206
- const items: Menu[] = [];
207
- for (const method in jsonData.paths[key]) {
208
- const openApi = jsonData.paths[key][method];
209
- openApi.endpoint = key;
210
- openApi.method = method;
211
- const code = `${method}${key.replace(/\//g, '-')}`;
212
- items.push({ title: openApi.summary, openApi, code: code.toLowerCase() })
213
- }
214
- item.items?.push(...items);
215
- itemFound = true;
216
- break;
217
- }
218
- }
219
- if (!itemFound) {
220
- const items: Menu[] = [];
221
- for (const method in jsonData.paths[key]) {
222
- const openApi = jsonData.paths[key][method];
223
- openApi.endpoint = key;
224
- openApi.method = method;
225
- const code = `${method}${key.replace(/\//g, '-')}`;
226
- items.push({
227
- title: openApi.summary,
228
- openApi: openApi,
229
- code: code.toLowerCase(),
230
- })
231
- }
232
- leftbar.value.push({ title: category, items });
233
- }
234
- }
235
- loadContent();
236
- return;
237
- }
238
-
239
- try {
240
- // Dynamically import the TypeScript file from the specified folder
241
- leftbar.value = (await import(`@/docs/${msc.value}/${msc.value}.ts`)).default;
242
- loadContent();
243
- } catch (error) {
244
- console.error('Failed to load module:', error);
245
- }
246
- }
247
-
248
- function findMenuOpen(path: string) {
249
- if (!route.path.split('/')[2]) {
250
- if (doscMenu.length > 0) router.push(`/docs/${doscMenu[0].code}`);
251
- return;
252
- }
253
-
254
- const newMenu = path.split('/')[2];
255
- if (msc.value === newMenu) {
256
- loadContent();
257
- return;
258
- }
259
- msc.value = newMenu;
260
-
261
- /**
262
- * Set menu selected
263
- * find from docMenu
264
- *
265
- */
266
- for (const item of doscMenu) {
267
- if (item.code === msc.value) {
268
- ms.value = item as Menu;
269
- break;
270
- }
271
- }
272
-
273
- loadLeftbar();
274
- }
275
-
276
- function gotoH2(idx: number) {
277
- const el: any = document.getElementById(`h2-${idx}`);
278
- if (el) window.scrollTo({ top: el.offsetTop, behavior: 'smooth' });
279
- }
280
-
281
- function winScrolled() {
282
- const docsEl = document.getElementById('dasi-docs');
283
- if (!docsEl) return;
284
-
285
- const els: any = [...docsEl.getElementsByTagName('h2')];
286
- let i = els.length - 1;
287
- for (const item of els.reverse()) {
288
- if (window.scrollY >= item.offsetTop) {
289
- if (rsi.value !== i) rsi.value = i;
290
- break;
291
- }
292
- i -= 1;
293
- }
294
- }
295
-
296
- function tryApi(api: any) {
297
- apiTesterEl.value.open(api);
298
- // sendingApi.value = true;
299
- // api.get(api.endpointExample).then((r) => {
300
-
301
- // }).catch((err) => {
302
-
303
- // }).finally(() => {
304
- // sendingApi.value = false;
305
- // })
306
- }
307
-
308
- watch(route, (to) => {
309
- findMenuOpen(to.path);
310
- });
311
-
312
- onMounted(async () => {
313
- findMenuOpen(route.path);
314
- window.addEventListener('scroll', winScrolled);
315
- });
316
-
317
- onUnmounted(() => {
318
- window.removeEventListener('scroll', winScrolled);
319
- });
320
- </script>
321
-
322
- <template>
323
- <section class="fixed top-24 left-20 right-0 h-10 border-b bg-white flex items-center pl-6 pr-3 z-9">
324
- <h4 class="font-medium">Dokumentasi</h4>
325
- <div class="flex items-center ml-auto">
326
- <RouterLink :to="`/docs/${item.code}`"
327
- class="block text-sm py-1 rounded-full px-4 ml-1 hover:bg-hover_main cursor-pointer"
328
- :class="{'bg-active_main text-primary_main': msc === item.code}"
329
- v-for="(item, i) in doscMenu" :key="i">
330
- {{ item.title }}
331
- </RouterLink>
332
- </div>
333
- </section>
334
- <section class="z-9 fixed left-20 top-24 bottom-0 bg-white w-80 border-r">
335
- <ScrollArea class="h-full">
336
- <div class="px-4 pb-5">
337
- <div class="mt-5 relative">
338
- <input class="rounded-full bg-gray-100 border-gray-100 w-full px-5 !h-9 py-0 block hover:bg-white transition hover:border-gray-300 focus:bg-white focus:border-primary_main !outline-none !shadow-none !hover:shadow-none !hover:outline-none pr-10"
339
- type="text" placeholder="Search docs..." v-model="q">
340
- <LucideSearch class="text-gray-400 right-3 top-1/2 -translate-y-1/2 absolute" :size="22"/>
341
- </div>
342
- <div v-for="(item, i) in leftbar.filter(row => row.title.toLowerCase().indexOf(q.toLowerCase()) >= 0)" :key="i" class="pt-5">
343
- <div class="flex items-center font-medium text-gray-400 text-[14px] mb-1 px-2">
344
- {{ item.title }}
345
- </div>
346
- <div v-for="(sub, i) in item.items" :key="i">
347
- <RouterLink :to="`/docs/${msc}/${sub.code}`"
348
- class="block relative py-[3px] mb-[2px] px-2 rounded-sm hover:bg-hover_main text-[14px] hover:text-primary_main transition"
349
- :class="{'!bg-primary_main !text-white': lsc === sub.code}">
350
- {{ sub.title }}
351
- </RouterLink>
352
- </div>
353
- </div>
354
- </div>
355
- </ScrollArea>
356
- </section>
357
- <section class="ml-80 mt-10 min-h-[calc(100vh-96px)] bg-white">
358
- <div class="pt-5 px-10 pb-16" v-if="lsc">
359
- <div class="relative flex -mx-10 -mt-5 -mb-16 pr-[400px]" v-if="ms && ms.type === 'api'">
360
- <div class="w-full px-10 pt-5 pb-16 min-h-[calc(100vh-96px)]">
361
- <div class="text-red-500 bg-red-100 inline-block px-3 py-0.5 font-medium rounded-full text-sm mb-1 -ml-[2px]"
362
- v-if="ls?.openApi.deprecated">Deprecated</div>
363
- <h3 class="text-xl font-medium">{{ ls?.title }}</h3>
364
- <p class="mt-2 font-[400] text-[15px] leading-snug" v-if="ls?.openApi.description">{{ ls?.openApi.description }}</p>
365
-
366
- <div class="-mr-[440px] flex relative z-3">
367
- <section class="w-full pr-10">
368
- <div class="border flex items-center rounded-sm overflow-hidden mt-5 mb-6 py-1.5">
369
- <div class="flex-none font-semibold uppercase pt-0.5 px-4 border-r"
370
- :class="{'text-green-500': ls?.openApi.method === 'get',
371
- 'text-blue-500': ls?.openApi.method === 'post',
372
- 'text-purple-500': ls?.openApi.method === 'put',
373
- 'text-orange-500': ls?.openApi.method === 'patch',
374
- 'text-red-500': ls?.openApi.method === 'delete'}">
375
- {{ ls?.openApi.method }}
376
- </div>
377
- <div class="pl-4 whitespace-nowrap overflow-hidden text-ellipsis">
378
- {{ ls?.openApi.endpoint }}
379
- </div>
380
- </div>
381
- <section class="mb-7" v-if="ls?.openApi.parameters && ls?.openApi.parameters.length > 0">
382
- <h4 class="font-medium mb-1 ml-1 text-[15px]">Request Paremeters</h4>
383
- <div class="dasi-api-doc">
384
- <table class="border rounded-sm font-light">
385
- <thead>
386
- <tr>
387
- <th>Name</th>
388
- <th>In</th>
389
- <th>Type</th>
390
- <th>Description</th>
391
- </tr>
392
- </thead>
393
- <tbody>
394
- <tr v-for="(item, i) in ls?.openApi.parameters" :key="i"
395
- :class="{'bg-red-50': item.deprecated}">
396
- <td>
397
- <div class="font-medium"
398
- :class="{'text-red-500 line-through': item.deprecated}">
399
- {{ item.name }}
400
- </div>
401
- <span class="text-sm text-black/60" v-if="!item.required">optional</span>
402
- <div class="text-red-500 font-medium text-[13px] mt-0.5"
403
- v-if="item.deprecated">Deprecated
404
- </div>
405
- </td>
406
- <td>{{ item.in }}</td>
407
- <td>
408
- <div class="flex items-center" v-if="Array.isArray(item.schema.type)">
409
- <div v-for="(type, i) in item.schema.type" :key="i">
410
- <span
411
- class="mr-1.5 px-1 border rounded-sm pb-0.5"
412
- :class="{'text-pink-700 border-pink-200': type === 'string',
413
- 'text-purple-700 border-purple-200': type === 'boolean',
414
- 'text-sky-600 border-sky-200': type === 'array',
415
- 'text-green-600 border-green-200': ['number', 'integer'].includes(type)}">
416
- {{ type }}
417
- </span>
418
- <span class="mr-1.5 text-gray-400 text-sm" v-if="i < item.schema.type.length - 1">/</span>
419
- </div>
420
- </div class="flex items-center">
421
- <template v-else>
422
- <span class="mr-1.5 px-1 border rounded-sm pb-0.5"
423
- :class="{'text-pink-700 border-pink-200': item.schema.type === 'string',
424
- 'text-purple-700 border-purple-200': item.schema.type === 'boolean',
425
- 'text-sky-600 border-sky-200': item.schema.type === 'array',
426
- 'text-green-600 border-green-200': ['number', 'integer'].includes(item.schema.type)}">
427
- {{ item.schema.type }}
428
- </span>
429
- </template>
430
- </td>
431
- <td>
432
- <div v-if="item.description">
433
- {{ item.description }}
434
- </div>
435
- <div class="mt-2.5 text-[13px] mb-0.5" v-if="item.example">
436
- <span class="font-medium mr-1.5">Example:</span>
437
- <span class="px-1.5 bg-slate-50 border rounded-sm py-0.5 font-normal">
438
- {{ item.example }}
439
- </span>
440
- </div>
441
- </td>
442
- </tr>
443
- </tbody>
444
- </table>
445
- </div>
446
- </section>
447
-
448
- <section class="mb-9" v-if="ls?.openApi.requestBody">
449
- <h4 class="font-medium mb-1 ml-1 text-[15px]">Request Body</h4>
450
- <section v-for="(item, key) in ls?.openApi.requestBody.content" :key="key">
451
- <div class="dasi-api-doc mb-3">
452
- <table class="border rounded-sm mb-3">
453
- <thead>
454
- <tr>
455
- <th>Content-Type</th>
456
- <th>Req. Body Params. / Schema</th>
457
- </tr>
458
- </thead>
459
- <tbody>
460
- <tr>
461
- <td>{{ key }}</td>
462
- <td>
463
- <pre class="border rounded-sm py-1.5 px-2 bg-slate-50 text-[13px]"
464
- v-if="item.schema.properties && Object.keys(item.schema.properties).length > 0"
465
- ><code>{{item.schema.properties}}</code></pre>
466
- <span class="text-sm italic text-gray-300" v-else>Not available</span>
467
- </td>
468
- </tr>
469
- </tbody>
470
- </table>
471
- </div>
472
- </section>
473
- </section>
474
-
475
- <section class="mb-7" v-if="ls?.openApi.responses">
476
- <h4 class="font-medium mb-1 ml-1 text-[15px]">Responses</h4>
477
- <div class="dasi-api-doc">
478
- <table class="border rounded-sm font-light table-responses">
479
- <thead>
480
- <tr>
481
- <th>Code</th>
482
- <th class="whitespace-nowrap">Response</th>
483
- </tr>
484
- </thead>
485
- <tbody>
486
- <tr v-for="(item, key) in ls?.openApi.responses" :key="key">
487
- <td class="border-t">
488
- <div class="font-medium mb-1">{{ key }}</div>
489
- <span
490
- class="px-1 border rounded-sm py-0.5 font-medium"
491
- :class="{'text-pink-700 border-pink-200': Number(key) >= 300 || Number(key) < 200,
492
- 'text-green-600 border-green-200': Number(key) >= 200 && Number(key) < 300}">
493
- {{ item.description }}
494
- </span>
495
- </td>
496
- <td class="border-t">
497
- <div class="" v-for="(resp, ct) in item.content" :key="ct">
498
- <div class="font-normal mb-2">
499
- Content-Type:
500
- <span class="px-1.5 bg-slate-50 border rounded-sm pt-0.5 pb-1 ml-1">{{ ct }}</span>
501
- </div>
502
- <div class="mb-4" v-if="resp.schema && resp.schema.properties && Object.keys(resp.schema.properties).length > 0">
503
- <div class="font-medium mb-[2px] ml-1">Schema</div>
504
- <pre class="bg-slate-50 border rounded-sm py-1.5 px-2 text-[13px]"><code>{{resp.schema.properties}}</code></pre>
505
- </div>
506
- <template v-if="resp.examples">
507
- <div class="mb-4" v-for="(example, exc) in resp.examples" :key="exc">
508
- <div class="font-medium mb-[2px] ml-1">Example</div>
509
- <pre class="bg-slate-50 border rounded-sm py-1.5 px-2 text-[13px]"
510
- :class="{'text-green-700 !bg-green-50 border-green-300': Number(key) >= 200 && Number(key) < 300,
511
- 'text-red-700 !bg-red-50 border-red-300': Number(key) >= 300 || Number(key) < 200}"><code>{{example}}</code></pre>
512
- </div>
513
- </template>
514
- </div>
515
- </td>
516
- </tr>
517
- </tbody>
518
- </table>
519
- </div>
520
- </section>
521
-
522
- <section class="border-t pt-2 mt-10" v-if="ls?.openApi.tags && 1>2">
523
- <div v-for="(tag, i) in ls?.openApi.tags" :key="i">
524
- <span class="mr-1.5 px-1 border rounded-sm pb-0.5">{{ tag }}</span>
525
- </div>
526
- </section>
527
- </section>
528
-
529
- <section class="w-[400px] text-white/80 text-sm flex-none">
530
- <div class="flex border-b border-b-white/10 pl-5 mb-3">
531
- <div class="font-medium mr-5 pb-3 relative text-gray-500 cursor-pointer hover:text-gray-300 transition"
532
- :class="{'text-white': exampleType === 'cURL'}"
533
- v-on:click="exampleType = 'cURL'">
534
- cURL
535
- <div class="absolute -left-1 -right-1 bottom-0 h-1 rounded-t-full bg-primary_main_hover"
536
- v-if="exampleType === 'cURL'"></div>
537
- </div>
538
- <div class="font-medium mr-5 pb-3 relative text-gray-500 cursor-pointer hover:text-gray-300 transition"
539
- :class="{'text-white': exampleType === 'DASI API'}"
540
- v-on:click="exampleType = 'DASI API'">
541
- DASI API
542
- <div class="absolute -left-1 -right-1 bottom-0 h-1 rounded-t-full bg-primary_main_hover"
543
- v-if="exampleType === 'DASI API'"></div>
544
- </div>
545
- </div>
546
-
547
- <div class="font-medium px-5 mb-1 text-[13px] flex items-center">
548
- Request example
549
- <div class="ml-auto text-white/35 font-normal">
550
- {{ exampleType }}
551
- </div>
552
- </div>
553
- <template v-if="exampleType === 'cURL'">
554
- <pre class="px-4 py-3 bg-[#1f3473] overflow-x-scroll mb-8 text-[13px] border-l-4 border-l-[#1f57ff]"><code>{{ CurlGenerator({
555
- url: `${apiUrl}${ls?.openApi.endpointExample}`,
556
- method: ls?.openApi.method,
557
- headers: ls?.openApi.headers,
558
- body: ls?.openApi.requestBodyExample,
559
- }) }}</code></pre>
560
- </template>
561
- <template v-else>
562
- <pre class="px-4 py-3 bg-[#1f3473] overflow-x-scroll mb-8 text-[13px] border-l-4 border-l-[#1f57ff]"><code>import api from '@/api/api'
563
-
564
- api.{{ ls?.openApi.method.toLowerCase() }}('{{ ls?.openApi.endpointExample }}'<template
565
- v-if="ls?.openApi.requestBodyExample">, {{ ls.openApi.requestBodyExample }}</template><template
566
- v-if="Object.keys(ls?.openApi.headers).length > 0">, {
567
- headers: {
568
- <span v-for="(header, i) in ls?.openApi.headers" :key="i">"{{ i }}": "{{ header }}",</span>
569
- },
570
- }</template>).then((r) => {
571
- // Your code after req success...
572
-
573
- }).catch((err) => {
574
- // Logic for handling error...
575
-
576
- }).finally(() => {
577
- // Finish api request, stop loading...
578
-
579
- })
580
- </code></pre>
581
- </template>
582
- <div class="px-5 -mt-5 mb-8">
583
- <button class="bg-primary_main w-full h-10 font-medium text-[15px] rounded-md shadow-md text-left flex items-center px-4 transition hover:bg-primary_main_hover hover:shadow-lg"
584
- :class="{'!bg-slate-800 !text-slate-600 !shadow-none !cursor-default': sendingApi}"
585
- v-on:click="tryApi(ls?.openApi)">
586
- <LucideLoader2 class="mr-2 animate-spin" v-if="sendingApi"/>
587
- <LucidePlaneTakeoff class="mr-2" v-else/>
588
- Try This Endpoint
589
- </button>
590
- </div>
591
-
592
- <template v-if="ls?.openApi.requestBodyExample">
593
- <div class="font-medium px-5 mb-1 text-[13px] flex items-center">
594
- Req. Body example
595
- <div class="ml-auto text-white/35 font-normal" v-if="ls.openApi.requestBodyContentType">
596
- {{ ls.openApi.requestBodyContentType }}
597
- </div>
598
- </div>
599
- <pre class="px-4 py-3 bg-[#1f3473] overflow-x-scroll mb-8 text-[13px] border-l-4 border-l-[#1f57ff]"><code>{{ ls?.openApi.requestBodyExample }}</code></pre>
600
- </template>
601
-
602
- <template v-if="ls?.openApi.okResponseExample">
603
- <div class="font-medium px-5 mb-1 text-[13px] flex items-center">
604
- Success response example
605
- <div class="ml-auto text-white/35 font-normal" v-if="ls.openApi.responseContentType">
606
- {{ ls.openApi.responseContentType }}
607
- </div>
608
- </div>
609
- <pre class="px-4 py-3 bg-[#1f3473] overflow-x-scroll mb-8 text-[13px] border-l-4 border-l-[#1f57ff]"><code>{{ ls?.openApi.okResponseExample }}</code></pre>
610
- </template>
611
- </section>
612
- </div>
613
-
614
- <div class="text-sm text-gray-400">
615
- <Copyright/>
616
- </div>
617
- </div>
618
- <div class="absolute right-0 top-0 bottom-0 w-[400px] bg-slate-800"></div>
619
- </div>
620
- <div class="relative" v-else>
621
- <div class="max-w-[760px]">
622
- <div v-if="indexHtml">
623
- <div id="dasi-docs" class="dasi-docs" v-html="indexHtml"></div>
624
- <div class="text-sm text-gray-400">
625
- <Copyright/>
626
- </div>
627
- </div>
628
- <div class="text-center flex items-center h-[calc(100vh-200px)]" v-else>
629
- <div class="w-full">
630
- <LucideScrollText :size="40" :stroke-width="1.5" class="mx-auto mb-3 text-gray-500"/>
631
- <div class="font-semibold text-lg">
632
- Tidak Ada Data
633
- </div>
634
- <div class="text-gray-500 text-sm">
635
- Maaf! Konten belum tersedia
636
- </div>
637
- </div>
638
- </div>
639
- </div>
640
-
641
- <div class="fixed top-24 right-0 w-80 text-sm pt-5 pr-6" v-if="rightbar && rightbar.length > 0">
642
- <h4 class="font-semibold mb-1 text-lg">Di halaman ini</h4>
643
- <div v-for="(item, i) in rightbar" :key="i"
644
- class="py-1 text-gray-400 hover:text-text_main cursor-pointer rightbar-nav relative"
645
- :class="{active: i === rsi}" v-on:click="gotoH2(i)">
646
- {{item.title}}
647
- </div>
648
- </div>
649
- </div>
650
- </div>
651
- </section>
652
- <ApiTester ref="apiTesterEl"/>
653
- </template>
654
-
655
- <style lang="scss" scoped>
656
- .rightbar-nav{
657
- transition: all .3s ease;
658
- &:before{
659
- content: "";
660
- position: absolute;
661
- left: 0; top: 4px; bottom: 4px;
662
- width: 0;
663
- border-radius: 50px;
664
- transition: all .3s ease;
665
- background-color: #ccc;
666
- }
667
- &:hover, &.active{
668
- padding-left: 12px;
669
- opacity: 1;
670
- &:before{
671
- width: 3px;
672
- }
673
- }
674
- &.active{
675
- color: #2671D9;
676
- &:before{
677
- background-color: #2671D9;
678
- }
679
- }
680
- }
681
- </style>