@winchsa/ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (305) hide show
  1. package/README.md +166 -0
  2. package/dist/components/Breadcrumbs.vue +46 -0
  3. package/dist/components/Breadcrumbs.vue.d.ts +6 -0
  4. package/dist/components/Drawer.vue +60 -0
  5. package/dist/components/Drawer.vue.d.ts +44 -0
  6. package/dist/components/IconBtn.vue +18 -0
  7. package/dist/components/IconBtn.vue.d.ts +30 -0
  8. package/dist/components/Modal.vue +155 -0
  9. package/dist/components/Modal.vue.d.ts +0 -0
  10. package/dist/components/SiteTitle.vue +14 -0
  11. package/dist/components/SiteTitle.vue.d.ts +2 -0
  12. package/dist/components/Toaster.vue +19 -0
  13. package/dist/components/Toaster.vue.d.ts +5 -0
  14. package/dist/components/cards/CheckboxesCard.vue +76 -0
  15. package/dist/components/cards/CheckboxesCard.vue.d.ts +20 -0
  16. package/dist/components/cards/HeaderCard.vue +31 -0
  17. package/dist/components/cards/HeaderCard.vue.d.ts +8 -0
  18. package/dist/components/cards/ImageCard.vue +73 -0
  19. package/dist/components/cards/ImageCard.vue.d.ts +63 -0
  20. package/dist/components/cards/InputCard.vue +60 -0
  21. package/dist/components/cards/InputCard.vue.d.ts +41 -0
  22. package/dist/components/cards/StaticCard.vue +37 -0
  23. package/dist/components/cards/StaticCard.vue.d.ts +33 -0
  24. package/dist/components/core/AppBarSearch.vue +345 -0
  25. package/dist/components/core/AppBarSearch.vue.d.ts +1587 -0
  26. package/dist/components/core/AppDrawerHeaderSection.vue +21 -0
  27. package/dist/components/core/AppDrawerHeaderSection.vue.d.ts +30 -0
  28. package/dist/components/core/AppSearchHeader.vue +72 -0
  29. package/dist/components/core/AppSearchHeader.vue.d.ts +7 -0
  30. package/dist/components/core/AppStepper.vue +232 -0
  31. package/dist/components/core/AppStepper.vue.d.ts +25 -0
  32. package/dist/components/core/CustomizerSection.vue +19 -0
  33. package/dist/components/core/CustomizerSection.vue.d.ts +25 -0
  34. package/dist/components/core/DialogCloseBtn.vue +20 -0
  35. package/dist/components/core/DialogCloseBtn.vue.d.ts +9 -0
  36. package/dist/components/core/MoreBtn.vue +27 -0
  37. package/dist/components/core/MoreBtn.vue.d.ts +25 -0
  38. package/dist/components/core/ScrollToTop.vue +39 -0
  39. package/dist/components/core/ScrollToTop.vue.d.ts +2 -0
  40. package/dist/components/core/app-form-elements/AppCombobox.vue +67 -0
  41. package/dist/components/core/app-form-elements/AppCombobox.vue.d.ts +0 -0
  42. package/dist/components/core/app-form-elements/AppSelect.vue +98 -0
  43. package/dist/components/core/app-form-elements/AppSelect.vue.d.ts +0 -0
  44. package/dist/components/core/app-form-elements/AppSwitch.vue +59 -0
  45. package/dist/components/core/app-form-elements/AppSwitch.vue.d.ts +27 -0
  46. package/dist/components/core/app-form-elements/AppTextField.vue +66 -0
  47. package/dist/components/core/app-form-elements/AppTextField.vue.d.ts +26 -0
  48. package/dist/components/core/app-form-elements/AppTextarea.vue +69 -0
  49. package/dist/components/core/app-form-elements/AppTextarea.vue.d.ts +26 -0
  50. package/dist/components/core/app-form-elements/CustomCheckboxes.vue +69 -0
  51. package/dist/components/core/app-form-elements/CustomCheckboxes.vue.d.ts +39 -0
  52. package/dist/components/core/app-form-elements/CustomCheckboxesWithIcon.vue +80 -0
  53. package/dist/components/core/app-form-elements/CustomCheckboxesWithIcon.vue.d.ts +39 -0
  54. package/dist/components/core/app-form-elements/CustomCheckboxesWithImage.vue +67 -0
  55. package/dist/components/core/app-form-elements/CustomCheckboxesWithImage.vue.d.ts +15 -0
  56. package/dist/components/core/app-form-elements/CustomRadios.vue +69 -0
  57. package/dist/components/core/app-form-elements/CustomRadios.vue.d.ts +40 -0
  58. package/dist/components/core/app-form-elements/CustomRadiosWithIcon.vue +98 -0
  59. package/dist/components/core/app-form-elements/CustomRadiosWithIcon.vue.d.ts +45 -0
  60. package/dist/components/core/app-form-elements/CustomRadiosWithImage.vue +69 -0
  61. package/dist/components/core/app-form-elements/CustomRadiosWithImage.vue.d.ts +53 -0
  62. package/dist/components/core/cards/AppCard.vue +45 -0
  63. package/dist/components/core/cards/AppCard.vue.d.ts +26 -0
  64. package/dist/components/core/cards/AppCardActions.vue +126 -0
  65. package/dist/components/core/cards/AppCardActions.vue.d.ts +79 -0
  66. package/dist/components/core/cards/CardStatisticsHorizontal.vue +29 -0
  67. package/dist/components/core/cards/CardStatisticsHorizontal.vue.d.ts +10 -0
  68. package/dist/components/forms/Accordion.vue +43 -0
  69. package/dist/components/forms/Accordion.vue.d.ts +35 -0
  70. package/dist/components/forms/AppLabel.vue +47 -0
  71. package/dist/components/forms/AppLabel.vue.d.ts +36 -0
  72. package/dist/components/forms/AppLink.vue +50 -0
  73. package/dist/components/forms/AppLink.vue.d.ts +27 -0
  74. package/dist/components/forms/AppNumberField.vue +85 -0
  75. package/dist/components/forms/AppNumberField.vue.d.ts +45 -0
  76. package/dist/components/forms/AppOtpInput.vue +84 -0
  77. package/dist/components/forms/AppOtpInput.vue.d.ts +16 -0
  78. package/dist/components/forms/AttachmentCropperInput.vue +228 -0
  79. package/dist/components/forms/AttachmentCropperInput.vue.d.ts +25 -0
  80. package/dist/components/forms/AttachmentInput.vue +116 -0
  81. package/dist/components/forms/AttachmentInput.vue.d.ts +20 -0
  82. package/dist/components/forms/AutocompleteInput.vue +759 -0
  83. package/dist/components/forms/AutocompleteInput.vue.d.ts +0 -0
  84. package/dist/components/forms/BankSelect.vue +43 -0
  85. package/dist/components/forms/BankSelect.vue.d.ts +19 -0
  86. package/dist/components/forms/BaseButton.vue +42 -0
  87. package/dist/components/forms/BaseButton.vue.d.ts +31 -0
  88. package/dist/components/forms/CounterInput.vue +71 -0
  89. package/dist/components/forms/CounterInput.vue.d.ts +15 -0
  90. package/dist/components/forms/DatePicker.vue +400 -0
  91. package/dist/components/forms/DatePicker.vue.d.ts +34 -0
  92. package/dist/components/forms/DatePickerRange.vue +129 -0
  93. package/dist/components/forms/DatePickerRange.vue.d.ts +23 -0
  94. package/dist/components/forms/DraggedUploadFile.vue +120 -0
  95. package/dist/components/forms/DraggedUploadFile.vue.d.ts +10 -0
  96. package/dist/components/forms/ImageCardInput.vue +234 -0
  97. package/dist/components/forms/ImageCardInput.vue.d.ts +0 -0
  98. package/dist/components/forms/InputValidationWrapper.vue +24 -0
  99. package/dist/components/forms/InputValidationWrapper.vue.d.ts +33 -0
  100. package/dist/components/forms/LicensePlateInput.vue +159 -0
  101. package/dist/components/forms/LicensePlateInput.vue.d.ts +16 -0
  102. package/dist/components/forms/ManualDate.vue +262 -0
  103. package/dist/components/forms/ManualDate.vue.d.ts +17 -0
  104. package/dist/components/forms/MobileInput.vue +118 -0
  105. package/dist/components/forms/MobileInput.vue.d.ts +49 -0
  106. package/dist/components/forms/PasswordInput.vue +29 -0
  107. package/dist/components/forms/PasswordInput.vue.d.ts +13 -0
  108. package/dist/components/forms/RangeInput.vue +48 -0
  109. package/dist/components/forms/RangeInput.vue.d.ts +5 -0
  110. package/dist/components/forms/Tabs.vue +35 -0
  111. package/dist/components/forms/Tabs.vue.d.ts +42 -0
  112. package/dist/components/forms/TimePicker.vue +370 -0
  113. package/dist/components/forms/TimePicker.vue.d.ts +23 -0
  114. package/dist/components/icons/EndMarker.vue +25 -0
  115. package/dist/components/icons/EndMarker.vue.d.ts +17 -0
  116. package/dist/components/icons/RedXIcon.vue +36 -0
  117. package/dist/components/icons/RedXIcon.vue.d.ts +2 -0
  118. package/dist/components/icons/StarFillIcon.vue +28 -0
  119. package/dist/components/icons/StarFillIcon.vue.d.ts +2 -0
  120. package/dist/components/icons/StartMarker.vue +25 -0
  121. package/dist/components/icons/StartMarker.vue.d.ts +17 -0
  122. package/dist/components/icons/WorkerIcon.vue +39 -0
  123. package/dist/components/icons/WorkerIcon.vue.d.ts +2 -0
  124. package/dist/components/loading/LoadingBar.vue +31 -0
  125. package/dist/components/loading/LoadingBar.vue.d.ts +5 -0
  126. package/dist/components/loading/LoadingDialog.vue +41 -0
  127. package/dist/components/loading/LoadingDialog.vue.d.ts +11 -0
  128. package/dist/components/loading/LoadingItem.vue +66 -0
  129. package/dist/components/loading/LoadingItem.vue.d.ts +47 -0
  130. package/dist/components/table/DataTable.vue +319 -0
  131. package/dist/components/table/DataTable.vue.d.ts +0 -0
  132. package/dist/components/table/EditableDataTable.vue +329 -0
  133. package/dist/components/table/EditableDataTable.vue.d.ts +73 -0
  134. package/dist/components/table/EditableDataTableRow.vue +243 -0
  135. package/dist/components/table/EditableDataTableRow.vue.d.ts +18 -0
  136. package/dist/components/table/FilterGenerator.vue +232 -0
  137. package/dist/components/table/FilterGenerator.vue.d.ts +14 -0
  138. package/dist/components/table/StaticTable.vue +152 -0
  139. package/dist/components/table/StaticTable.vue.d.ts +25 -0
  140. package/dist/components/table/TablePagination.vue +73 -0
  141. package/dist/components/table/TablePagination.vue.d.ts +13 -0
  142. package/dist/composables/use-is-mobile.d.ts +1 -0
  143. package/dist/composables/use-is-mobile.js +10 -0
  144. package/dist/composables/use-is-mobile.mjs +4 -0
  145. package/dist/composables/use-table-filters.d.ts +23 -0
  146. package/dist/composables/use-table-filters.js +196 -0
  147. package/dist/composables/use-table-filters.mjs +183 -0
  148. package/dist/fonts/NotoSans-Medium.ttf +0 -0
  149. package/dist/fonts/NotoSansArabic-Medium.ttf +0 -0
  150. package/dist/fonts/saudi_riyal_symbol/saudi_riyal_symbol.eot +0 -0
  151. package/dist/fonts/saudi_riyal_symbol/saudi_riyal_symbol.svg +9 -0
  152. package/dist/fonts/saudi_riyal_symbol/saudi_riyal_symbol.ttf +0 -0
  153. package/dist/fonts/saudi_riyal_symbol/saudi_riyal_symbol.woff +0 -0
  154. package/dist/fonts/saudi_riyal_symbol/saudi_riyal_symbol.woff2 +0 -0
  155. package/dist/images/avatar.png +0 -0
  156. package/dist/images/sa.svg +1 -0
  157. package/dist/images/successful-registration.svg +15 -0
  158. package/dist/index.d.ts +66 -0
  159. package/dist/index.js +447 -0
  160. package/dist/index.mjs +128 -0
  161. package/dist/styles/@core/scss/base/_components.scss +164 -0
  162. package/dist/styles/@core/scss/base/_dark.scss +16 -0
  163. package/dist/styles/@core/scss/base/_default-layout-w-vertical-nav.scss +106 -0
  164. package/dist/styles/@core/scss/base/_default-layout.scss +16 -0
  165. package/dist/styles/@core/scss/base/_index.scss +47 -0
  166. package/dist/styles/@core/scss/base/_layouts.scss +63 -0
  167. package/dist/styles/@core/scss/base/_misc.scss +20 -0
  168. package/dist/styles/@core/scss/base/_mixins.scss +84 -0
  169. package/dist/styles/@core/scss/base/_route-transitions.scss +70 -0
  170. package/dist/styles/@core/scss/base/_utilities.scss +418 -0
  171. package/dist/styles/@core/scss/base/_utils.scss +100 -0
  172. package/dist/styles/@core/scss/base/_variables.scss +190 -0
  173. package/dist/styles/@core/scss/base/_vertical-nav.scss +264 -0
  174. package/dist/styles/@core/scss/base/libs/_perfect-scrollbar.scss +35 -0
  175. package/dist/styles/@core/scss/base/libs/vuetify/_index.scss +1 -0
  176. package/dist/styles/@core/scss/base/libs/vuetify/_overrides.scss +385 -0
  177. package/dist/styles/@core/scss/base/libs/vuetify/_variables.scss +48 -0
  178. package/dist/styles/@core/scss/base/placeholders/_default-layout-vertical-nav.scss +48 -0
  179. package/dist/styles/@core/scss/base/placeholders/_default-layout.scss +3 -0
  180. package/dist/styles/@core/scss/base/placeholders/_index.scss +5 -0
  181. package/dist/styles/@core/scss/base/placeholders/_misc.scss +7 -0
  182. package/dist/styles/@core/scss/base/placeholders/_nav.scss +26 -0
  183. package/dist/styles/@core/scss/base/placeholders/_vertical-nav.scss +84 -0
  184. package/dist/styles/@core/scss/base/skins/_bordered.scss +60 -0
  185. package/dist/styles/@core/scss/base/skins/_index.scss +1 -0
  186. package/dist/styles/@core/scss/template/_components.scss +1035 -0
  187. package/dist/styles/@core/scss/template/_default-layout-w-vertical-nav.scss +20 -0
  188. package/dist/styles/@core/scss/template/_utilities.scss +20 -0
  189. package/dist/styles/@core/scss/template/_variables.scss +67 -0
  190. package/dist/styles/@core/scss/template/_vertical-nav.scss +41 -0
  191. package/dist/styles/@core/scss/template/index.css +18764 -0
  192. package/dist/styles/@core/scss/template/index.scss +15 -0
  193. package/dist/styles/@core/scss/template/libs/apex-chart.css +90 -0
  194. package/dist/styles/@core/scss/template/libs/apex-chart.scss +99 -0
  195. package/dist/styles/@core/scss/template/libs/shepherd.css +82 -0
  196. package/dist/styles/@core/scss/template/libs/shepherd.scss +88 -0
  197. package/dist/styles/@core/scss/template/libs/vuetify/_variables.scss +461 -0
  198. package/dist/styles/@core/scss/template/libs/vuetify/index.css +741 -0
  199. package/dist/styles/@core/scss/template/libs/vuetify/index.scss +1 -0
  200. package/dist/styles/@core/scss/template/pages/misc.css +16 -0
  201. package/dist/styles/@core/scss/template/pages/misc.scss +20 -0
  202. package/dist/styles/@core/scss/template/placeholders/_default-layout-vertical-nav.scss +9 -0
  203. package/dist/styles/@core/scss/template/placeholders/_index.scss +3 -0
  204. package/dist/styles/@core/scss/template/placeholders/_nav.scss +15 -0
  205. package/dist/styles/@core/scss/template/placeholders/_vertical-nav.scss +18 -0
  206. package/dist/styles/@core/scss/template/skins/_bordered.scss +36 -0
  207. package/dist/styles/@core/scss/template/skins/_index.scss +1 -0
  208. package/dist/styles/@layouts/styles/_classes.scss +3 -0
  209. package/dist/styles/@layouts/styles/_dashboard-layout.scss +43 -0
  210. package/dist/styles/@layouts/styles/_global.scss +10 -0
  211. package/dist/styles/@layouts/styles/_mixins.scss +28 -0
  212. package/dist/styles/@layouts/styles/_placeholders.scss +53 -0
  213. package/dist/styles/@layouts/styles/_rtl.scss +7 -0
  214. package/dist/styles/@layouts/styles/_variables.scss +22 -0
  215. package/dist/styles/@layouts/styles/index.css +14 -0
  216. package/dist/styles/@layouts/styles/index.scss +2 -0
  217. package/dist/styles/assets/scss/styles.css +16099 -0
  218. package/dist/styles/assets/scss/styles.scss +246 -0
  219. package/dist/styles/assets/scss/variables/_template.scss +1 -0
  220. package/dist/styles/assets/scss/variables/_vuetify.scss +1 -0
  221. package/dist/types.d.ts +226 -0
  222. package/dist/utils/apiUrl.d.ts +1 -0
  223. package/dist/utils/apiUrl.js +15 -0
  224. package/dist/utils/apiUrl.mjs +8 -0
  225. package/dist/utils/client.d.ts +9 -0
  226. package/dist/utils/client.js +39 -0
  227. package/dist/utils/client.mjs +25 -0
  228. package/dist/utils/files.d.ts +2 -0
  229. package/dist/utils/files.js +35 -0
  230. package/dist/utils/files.mjs +22 -0
  231. package/dist/utils/formValidation.d.ts +7 -0
  232. package/dist/utils/formValidation.js +20 -0
  233. package/dist/utils/formValidation.mjs +13 -0
  234. package/dist/utils/formatters.d.ts +12 -0
  235. package/dist/utils/formatters.js +84 -0
  236. package/dist/utils/formatters.mjs +56 -0
  237. package/dist/utils/index.d.ts +9 -0
  238. package/dist/utils/index.js +104 -0
  239. package/dist/utils/index.mjs +9 -0
  240. package/dist/utils/queryParams.d.ts +4 -0
  241. package/dist/utils/queryParams.js +26 -0
  242. package/dist/utils/queryParams.mjs +18 -0
  243. package/dist/utils/ruleValidator.d.ts +28 -0
  244. package/dist/utils/ruleValidator.js +158 -0
  245. package/dist/utils/ruleValidator.mjs +144 -0
  246. package/dist/utils/toaster.d.ts +12 -0
  247. package/dist/utils/toaster.js +71 -0
  248. package/dist/utils/toaster.mjs +59 -0
  249. package/dist/utils/utils.d.ts +8 -0
  250. package/dist/utils/utils.js +70 -0
  251. package/dist/utils/utils.mjs +56 -0
  252. package/package.json +79 -0
  253. package/src/styles/@core/scss/base/_components.scss +164 -0
  254. package/src/styles/@core/scss/base/_dark.scss +16 -0
  255. package/src/styles/@core/scss/base/_default-layout-w-vertical-nav.scss +106 -0
  256. package/src/styles/@core/scss/base/_default-layout.scss +16 -0
  257. package/src/styles/@core/scss/base/_index.scss +47 -0
  258. package/src/styles/@core/scss/base/_layouts.scss +63 -0
  259. package/src/styles/@core/scss/base/_misc.scss +20 -0
  260. package/src/styles/@core/scss/base/_mixins.scss +84 -0
  261. package/src/styles/@core/scss/base/_route-transitions.scss +70 -0
  262. package/src/styles/@core/scss/base/_utilities.scss +418 -0
  263. package/src/styles/@core/scss/base/_utils.scss +100 -0
  264. package/src/styles/@core/scss/base/_variables.scss +190 -0
  265. package/src/styles/@core/scss/base/_vertical-nav.scss +264 -0
  266. package/src/styles/@core/scss/base/libs/_perfect-scrollbar.scss +35 -0
  267. package/src/styles/@core/scss/base/libs/vuetify/_index.scss +1 -0
  268. package/src/styles/@core/scss/base/libs/vuetify/_overrides.scss +385 -0
  269. package/src/styles/@core/scss/base/libs/vuetify/_variables.scss +48 -0
  270. package/src/styles/@core/scss/base/placeholders/_default-layout-vertical-nav.scss +48 -0
  271. package/src/styles/@core/scss/base/placeholders/_default-layout.scss +3 -0
  272. package/src/styles/@core/scss/base/placeholders/_index.scss +5 -0
  273. package/src/styles/@core/scss/base/placeholders/_misc.scss +7 -0
  274. package/src/styles/@core/scss/base/placeholders/_nav.scss +26 -0
  275. package/src/styles/@core/scss/base/placeholders/_vertical-nav.scss +84 -0
  276. package/src/styles/@core/scss/base/skins/_bordered.scss +60 -0
  277. package/src/styles/@core/scss/base/skins/_index.scss +1 -0
  278. package/src/styles/@core/scss/template/_components.scss +1035 -0
  279. package/src/styles/@core/scss/template/_default-layout-w-vertical-nav.scss +20 -0
  280. package/src/styles/@core/scss/template/_utilities.scss +20 -0
  281. package/src/styles/@core/scss/template/_variables.scss +67 -0
  282. package/src/styles/@core/scss/template/_vertical-nav.scss +41 -0
  283. package/src/styles/@core/scss/template/index.scss +15 -0
  284. package/src/styles/@core/scss/template/libs/apex-chart.scss +99 -0
  285. package/src/styles/@core/scss/template/libs/shepherd.scss +88 -0
  286. package/src/styles/@core/scss/template/libs/vuetify/_variables.scss +461 -0
  287. package/src/styles/@core/scss/template/libs/vuetify/index.scss +1 -0
  288. package/src/styles/@core/scss/template/pages/misc.scss +20 -0
  289. package/src/styles/@core/scss/template/placeholders/_default-layout-vertical-nav.scss +9 -0
  290. package/src/styles/@core/scss/template/placeholders/_index.scss +3 -0
  291. package/src/styles/@core/scss/template/placeholders/_nav.scss +15 -0
  292. package/src/styles/@core/scss/template/placeholders/_vertical-nav.scss +18 -0
  293. package/src/styles/@core/scss/template/skins/_bordered.scss +36 -0
  294. package/src/styles/@core/scss/template/skins/_index.scss +1 -0
  295. package/src/styles/@layouts/styles/_classes.scss +3 -0
  296. package/src/styles/@layouts/styles/_dashboard-layout.scss +43 -0
  297. package/src/styles/@layouts/styles/_global.scss +10 -0
  298. package/src/styles/@layouts/styles/_mixins.scss +28 -0
  299. package/src/styles/@layouts/styles/_placeholders.scss +53 -0
  300. package/src/styles/@layouts/styles/_rtl.scss +7 -0
  301. package/src/styles/@layouts/styles/_variables.scss +22 -0
  302. package/src/styles/@layouts/styles/index.scss +2 -0
  303. package/src/styles/assets/scss/styles.scss +246 -0
  304. package/src/styles/assets/scss/variables/_template.scss +1 -0
  305. package/src/styles/assets/scss/variables/_vuetify.scss +1 -0
@@ -0,0 +1,17 @@
1
+ declare const locale: import("vue").WritableComputedRef<string, string>;
2
+ declare const __VLS_ctx: InstanceType<__VLS_PickNotAny<typeof __VLS_self, new () => {}>>;
3
+ declare var __VLS_1: {};
4
+ type __VLS_Slots = __VLS_PrettifyGlobal<__VLS_OmitStringIndex<typeof __VLS_ctx.$slots> & {
5
+ default?: (props: typeof __VLS_1) => any;
6
+ }>;
7
+ declare const __VLS_self: import("vue").DefineComponent<{}, {
8
+ locale: typeof locale;
9
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
10
+ declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
11
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
12
+ export default _default;
13
+ type __VLS_WithSlots<T, S> = T & {
14
+ new (): {
15
+ $slots: S;
16
+ };
17
+ };
@@ -0,0 +1,39 @@
1
+ <template>
2
+ <svg
3
+ width="12"
4
+ height="16"
5
+ viewBox="0 0 12 16"
6
+ fill="none"
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ >
9
+ <g clip-path="url(#clip0_4001_12981)">
10
+ <mask
11
+ id="mask0_4001_12981"
12
+ style="mask-type:luminance"
13
+ maskUnits="userSpaceOnUse"
14
+ x="0"
15
+ y="0"
16
+ width="12"
17
+ height="16"
18
+ >
19
+ <path d="M11.4117 0.930664H0.59375V15.0697H11.4117V0.930664Z" fill="white" />
20
+ </mask>
21
+ <g mask="url(#mask0_4001_12981)">
22
+ <path d="M1.23239 15.0695C1.21613 15.0595 1.19908 15.0508 1.18139 15.0435C1.06768 15.0152 0.961872 14.9615 0.871932 14.8863C0.781992 14.8112 0.710259 14.7167 0.66213 14.6098C0.614001 14.503 0.590729 14.3866 0.594064 14.2695C0.597399 14.1523 0.627256 14.0375 0.681387 13.9335C1.00439 13.2245 1.33339 12.5175 1.65939 11.8105L2.74839 9.44754C2.77239 9.39454 2.79439 9.34054 2.80639 9.31254C2.66803 9.26481 2.53417 9.20491 2.40639 9.13354C2.33873 9.08317 2.28491 9.01652 2.24994 8.93976C2.21497 8.863 2.19999 8.77865 2.20639 8.69454C2.20639 7.37388 2.20639 6.0532 2.20639 4.73254C2.20143 4.65473 2.21306 4.57676 2.24053 4.50379C2.268 4.43082 2.31066 4.36453 2.3657 4.3093C2.42073 4.25408 2.48688 4.21118 2.55975 4.18347C2.63263 4.15575 2.71056 4.14384 2.78839 4.14854C3.46539 4.14854 4.14239 4.14854 4.81939 4.14854C4.90554 4.14186 4.99201 4.15663 5.07106 4.19153C5.15011 4.22643 5.21928 4.28038 5.27239 4.34854C5.29927 4.38496 5.33546 4.41347 5.37717 4.43106C5.41887 4.44866 5.46454 4.45469 5.50939 4.44854C6.42672 4.45587 7.34372 4.46421 8.26039 4.47354C8.40239 4.47354 8.54539 4.47354 8.68639 4.48354C8.82685 4.48948 8.96012 4.54729 9.06043 4.6458C9.16073 4.74431 9.22093 4.87652 9.22939 5.01685C9.23785 5.15719 9.19397 5.29568 9.10623 5.40553C9.01848 5.51538 8.89312 5.58878 8.75439 5.61154C8.57394 5.6291 8.39246 5.63344 8.21139 5.62454C7.31405 5.61788 6.41672 5.60988 5.51939 5.60054C5.48639 5.60054 5.45339 5.60054 5.40539 5.60754V5.75754C5.40539 6.61154 5.40539 7.46554 5.40539 8.32054C5.40837 8.40612 5.43655 8.48891 5.48639 8.55854C5.92839 9.15854 6.37439 9.75588 6.82439 10.3505C6.89236 10.4355 6.92782 10.5418 6.92439 10.6505C6.92439 11.6375 6.92439 12.6235 6.92439 13.6105C6.93799 13.8112 6.87446 14.0095 6.74677 14.1649C6.61908 14.3202 6.43688 14.421 6.23739 14.4465C6.12739 14.4596 6.01588 14.4489 5.91037 14.4152C5.80486 14.3814 5.7078 14.3255 5.62574 14.2511C5.54367 14.1767 5.47851 14.0856 5.43463 13.9839C5.39075 13.8822 5.36919 13.7723 5.37139 13.6615C5.36672 12.8469 5.36672 12.0319 5.37139 11.2165C5.37576 11.0752 5.32888 10.937 5.23939 10.8275C4.94639 10.4475 4.66239 10.0605 4.36239 9.65954C4.33139 9.72154 4.30639 9.76554 4.28539 9.81154C3.57939 11.3425 2.86939 12.8715 2.17239 14.4065C2.12058 14.5591 2.03479 14.6978 1.9215 14.8123C1.8082 14.9269 1.67036 15.0141 1.51839 15.0675L1.23239 15.0695Z" fill="#2A2A2A" />
23
+ <path d="M11.4163 6.58548C11.3743 6.596 11.3315 6.60302 11.2883 6.60648H7.17032C7.14132 6.60648 7.11231 6.60648 7.07031 6.60148V6.02748H7.22432C7.69032 6.03348 8.15531 6.04348 8.62431 6.04448C8.83179 6.04943 9.03566 5.98972 9.20767 5.87361C9.37969 5.7575 9.51131 5.59075 9.5843 5.39648C9.65407 5.21152 9.6661 5.00975 9.61879 4.81781C9.57148 4.62588 9.46704 4.45282 9.31931 4.32148C9.13978 4.15797 8.90512 4.06832 8.66231 4.07048C8.20131 4.07048 7.74132 4.05848 7.28032 4.05348H7.07031V2.32748H8.35831C8.35831 2.60681 8.35831 2.88514 8.35831 3.16248C8.35831 3.40948 8.41531 3.46748 8.65831 3.46848H9.82031C10.0543 3.46848 10.1133 3.40848 10.1133 3.16848C10.1133 2.88948 10.1133 2.61148 10.1133 2.31348H11.4133L11.4163 6.58548Z" fill="#2A2A2A" />
24
+ <path d="M4.98674 2.19366C4.98595 2.44241 4.9115 2.68535 4.77276 2.89183C4.63403 3.0983 4.43725 3.25904 4.20724 3.35378C3.97724 3.44852 3.72432 3.473 3.48042 3.42413C3.23652 3.37526 3.01255 3.25524 2.8368 3.0792C2.66105 2.90317 2.54138 2.67902 2.49289 2.43504C2.44441 2.19106 2.46929 1.93818 2.56439 1.70833C2.65949 1.47848 2.82055 1.28194 3.02725 1.14354C3.23394 1.00514 3.47699 0.93106 3.72574 0.930664C4.06012 0.931984 4.3804 1.06554 4.61666 1.30217C4.85291 1.5388 4.98595 1.85928 4.98674 2.19366Z" fill="#2A2A2A" />
25
+ <path d="M9.69425 2.32568H8.78125V3.04468H9.69425V2.32568Z" fill="#2A2A2A" />
26
+ </g>
27
+ </g>
28
+ <defs>
29
+ <clipPath id="clip0_4001_12981">
30
+ <rect
31
+ width="10.818"
32
+ height="14.139"
33
+ fill="white"
34
+ transform="translate(0.59375 0.930664)"
35
+ />
36
+ </clipPath>
37
+ </defs>
38
+ </svg>
39
+ </template>
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,31 @@
1
+ <script setup>
2
+ import { computed } from "vue";
3
+ import { VOverlay, VProgressCircular } from "vuetify/components";
4
+ const props = defineProps({
5
+ isLoading: { type: Boolean, required: true }
6
+ });
7
+ const isLoadingVisible = computed(() => props.isLoading);
8
+ </script>
9
+
10
+ <template>
11
+ <VOverlay
12
+ v-model="isLoadingVisible"
13
+ contained
14
+ persistent
15
+ class="align-center background-loading justify-center text-center w-100 h-100"
16
+ >
17
+ <div class="text-center">
18
+ <VProgressCircular indeterminate />
19
+ </div>
20
+ </VOverlay>
21
+ </template>
22
+
23
+ <style>
24
+ .background-loading {
25
+ background: rgb(var(--v-loading-background)) !important;
26
+ border: 1px solid rgb(var(--v-theme-gray-200)) !important;
27
+ }
28
+ .background-loading .v-overlay__scrim {
29
+ background: none !important;
30
+ }
31
+ </style>
@@ -0,0 +1,5 @@
1
+ type __VLS_Props = {
2
+ isLoading: boolean;
3
+ };
4
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
5
+ export default _default;
@@ -0,0 +1,41 @@
1
+ <script setup>
2
+ import { computed } from "vue";
3
+ import { VDialog, VCardItem, VProgressLinear } from "vuetify/components";
4
+ import AppCard from "../core/cards/AppCard.vue";
5
+ const props = defineProps({
6
+ modelValue: { type: Boolean, required: true },
7
+ title: { type: String, required: true },
8
+ logoSrc: { type: String, required: true }
9
+ });
10
+ const emits = defineEmits(["update:modelValue"]);
11
+ const loading = computed({
12
+ get() {
13
+ return props.modelValue;
14
+ },
15
+ set(value) {
16
+ emits("update:modelValue", value);
17
+ }
18
+ });
19
+ </script>
20
+
21
+ <template>
22
+ <VDialog v-model="loading" persistent width="450">
23
+ <AppCard class="pa-5">
24
+ <VCardItem class="pa-5">
25
+ <div class="text-center mt-4">
26
+ <img :src="logoSrc" class="mb-4">
27
+ <h3 class="mb-5">
28
+ {{ title }}
29
+ </h3>
30
+ </div>
31
+
32
+ <div class="mt-5">
33
+ <VProgressLinear
34
+ indeterminate
35
+ color="primary"
36
+ />
37
+ </div>
38
+ </VCardItem>
39
+ </AppCard>
40
+ </VDialog>
41
+ </template>
@@ -0,0 +1,11 @@
1
+ type __VLS_Props = {
2
+ modelValue: boolean;
3
+ title: string;
4
+ logoSrc: string;
5
+ };
6
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
7
+ "update:modelValue": (value: boolean) => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ export default _default;
@@ -0,0 +1,66 @@
1
+ <script setup>
2
+ import { computed } from "vue";
3
+ import { VProgressCircular } from "vuetify/components";
4
+ const props = defineProps({
5
+ size: { type: Number, required: false, default: 25 },
6
+ direction: { type: String, required: false, default: "start" }
7
+ });
8
+ const isLoading = defineModel({ type: Boolean, ...{ default: true } });
9
+ const overlayClass = computed(() => {
10
+ return {
11
+ "loading-overlay": true,
12
+ "loading-center": props.direction === "center",
13
+ "loading-start": props.direction === "start",
14
+ "loading-end": props.direction === "end"
15
+ };
16
+ });
17
+ </script>
18
+
19
+ <template>
20
+ <div class="loading-item-wrapper">
21
+ <div class="content-wrapper" :class="{ 'content-hidden': isLoading }">
22
+ <slot />
23
+ </div>
24
+ <div v-if="isLoading" :class="overlayClass">
25
+ <VProgressCircular
26
+ indeterminate
27
+ :size="size"
28
+ />
29
+ </div>
30
+ </div>
31
+ </template>
32
+
33
+ <style scoped>
34
+ .loading-item-wrapper {
35
+ position: relative;
36
+ display: block;
37
+ }
38
+
39
+ .content-wrapper {
40
+ position: relative;
41
+ z-index: 1;
42
+ transition: opacity 0.2s ease;
43
+ }
44
+ .content-wrapper.content-hidden {
45
+ opacity: 0;
46
+ }
47
+
48
+ .loading-overlay {
49
+ position: absolute;
50
+ inset: 0;
51
+ display: flex;
52
+ z-index: 2;
53
+ align-items: center;
54
+ }
55
+ .loading-overlay.loading-center {
56
+ justify-content: center;
57
+ }
58
+ .loading-overlay.loading-start {
59
+ justify-content: flex-start;
60
+ padding: 8px;
61
+ }
62
+ .loading-overlay.loading-end {
63
+ justify-content: flex-end;
64
+ padding: 8px;
65
+ }
66
+ </style>
@@ -0,0 +1,47 @@
1
+ import { VProgressCircular } from 'vuetify/components';
2
+ type __VLS_Props = {
3
+ size?: number;
4
+ direction?: 'center' | 'start' | 'end';
5
+ };
6
+ declare const isLoading: import("vue").ModelRef<boolean, string, boolean, boolean>;
7
+ declare const overlayClass: import("vue").ComputedRef<{
8
+ 'loading-overlay': boolean;
9
+ 'loading-center': boolean;
10
+ 'loading-start': boolean;
11
+ 'loading-end': boolean;
12
+ }>;
13
+ type __VLS_PublicProps = {
14
+ modelValue?: boolean;
15
+ } & __VLS_Props;
16
+ declare const __VLS_ctx: InstanceType<__VLS_PickNotAny<typeof __VLS_self, new () => {}>>;
17
+ declare var __VLS_1: {};
18
+ type __VLS_Slots = __VLS_PrettifyGlobal<__VLS_OmitStringIndex<typeof __VLS_ctx.$slots> & {
19
+ default?: (props: typeof __VLS_1) => any;
20
+ }>;
21
+ declare const __VLS_self: import("vue").DefineComponent<__VLS_PublicProps, {
22
+ VProgressCircular: typeof VProgressCircular;
23
+ isLoading: typeof isLoading;
24
+ overlayClass: typeof overlayClass;
25
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
26
+ "update:modelValue": (value: boolean) => any;
27
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
28
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
29
+ }>, {
30
+ size: number;
31
+ direction: "center" | "start" | "end";
32
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
33
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
34
+ "update:modelValue": (value: boolean) => any;
35
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
36
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
37
+ }>, {
38
+ size: number;
39
+ direction: "center" | "start" | "end";
40
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
41
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
42
+ export default _default;
43
+ type __VLS_WithSlots<T, S> = T & {
44
+ new (): {
45
+ $slots: S;
46
+ };
47
+ };
@@ -0,0 +1,319 @@
1
+ <script setup>
2
+ import { VCol, VRow, VCardText, VDivider, VProgressCircular, VIcon, VSpacer } from "vuetify/components";
3
+ import { VDataTableServer } from "vuetify/labs/VDataTable";
4
+ import { useQuery } from "@tanstack/vue-query";
5
+ import { useRoute, useRouter } from "vue-router";
6
+ import { computed, reactive, ref, watch } from "vue";
7
+ import { useI18n } from "vue-i18n";
8
+ import AppCard from "../core/cards/AppCard.vue";
9
+ import { responseAlert } from "../../utils/toaster";
10
+ import { buildQueryString } from "../../utils/queryParams";
11
+ import { client } from "../../utils/client";
12
+ import { formatDate } from "../../utils/formatters";
13
+ import { useTableFilters, usePagination } from "../../composables/use-table-filters";
14
+ import { useIsMobile } from "../../composables/use-is-mobile";
15
+ import BaseButton from "../forms/BaseButton.vue";
16
+ import AppSelect from "../core/app-form-elements/AppSelect.vue";
17
+ import FilterGenerator from "./FilterGenerator.vue";
18
+ import TablePagination from "./TablePagination.vue";
19
+ const { t } = useI18n();
20
+ const { showValidationAlert } = responseAlert();
21
+ const pageSizeOptions = [
22
+ { value: 30, title: "30" },
23
+ { value: 60, title: "60" },
24
+ { value: 90, title: "90" },
25
+ { value: 120, title: "120" }
26
+ ];
27
+ const props = defineProps({
28
+ headers: { type: Array, required: true, default: () => [] },
29
+ formFilters: { type: Array, required: false, default: () => [] },
30
+ url: { type: String, required: false, default: "" },
31
+ queryParams: { type: Object, required: false, default: () => ({}) },
32
+ enableButtons: { type: Boolean, required: false, default: false },
33
+ enableButtonsFilter: { type: Boolean, required: false, default: true },
34
+ secondaryStyle: { type: Boolean, required: false },
35
+ replaceNullWithDash: { type: Boolean, required: false, default: true },
36
+ withoutQueryParams: { type: Boolean, required: false, default: false }
37
+ });
38
+ const route = useRoute();
39
+ const router = useRouter();
40
+ const { processedFormFilters, filters, urlQueryParams } = useTableFilters({
41
+ formFilters: computed(() => props.formFilters),
42
+ syncFiltersWithUrl: !props.withoutQueryParams
43
+ });
44
+ const { currentPage, itemsPerPage } = usePagination({
45
+ syncFiltersWithUrl: !props.withoutQueryParams,
46
+ defaultValues: {
47
+ pageSize: pageSizeOptions[0].value
48
+ }
49
+ });
50
+ const errors = reactive({ data: [] });
51
+ const totals = ref({});
52
+ const pagination = ref({
53
+ to: 1,
54
+ from: 1,
55
+ total: 1,
56
+ count: 1,
57
+ per_page: 1,
58
+ current_page: 1,
59
+ last_page: 1
60
+ });
61
+ const queryParamsString = computed(() => buildQueryString({
62
+ ...props.queryParams,
63
+ ...urlQueryParams.value,
64
+ page: currentPage.value,
65
+ pages_count: itemsPerPage.value
66
+ }));
67
+ const queryKey = computed(() => ["table-data", props.url, queryParamsString.value]);
68
+ const { data, error: tableError, isLoading, refetch: refresh } = useQuery({
69
+ queryKey,
70
+ queryFn: async () => {
71
+ const response = await client.get(`${props.url}?${queryParamsString.value}`);
72
+ pagination.value = response.pagination;
73
+ totals.value = response.totals ?? {};
74
+ errors.data = [];
75
+ return response;
76
+ },
77
+ select: ({ data: data2, ...rest }) => {
78
+ return {
79
+ rows: props.replaceNullWithDash ? data2.map((item) => replaceItemNullWithDash(item)) : data2,
80
+ ...rest
81
+ };
82
+ }
83
+ });
84
+ function reset() {
85
+ const defaults = {};
86
+ processedFormFilters.value.forEach((filter) => {
87
+ defaults[filter.name] = null;
88
+ });
89
+ router.replace({ path: route.path, query: props.withoutQueryParams ? {} : props.queryParams }).finally(() => {
90
+ filters.value = defaults;
91
+ currentPage.value = 1;
92
+ itemsPerPage.value = pageSizeOptions[0].value;
93
+ });
94
+ }
95
+ function replaceItemNullWithDash(item) {
96
+ if (Array.isArray(item)) {
97
+ return item.map(replaceItemNullWithDash);
98
+ }
99
+ if (typeof item === "object") {
100
+ return Object.fromEntries(
101
+ Object.entries(item).map(([key, value]) => [
102
+ key,
103
+ value === null ? "-" : typeof value === "object" ? replaceItemNullWithDash(value) : value
104
+ ])
105
+ );
106
+ }
107
+ return item;
108
+ }
109
+ const hasFilters = computed(() => processedFormFilters.value.length > 0);
110
+ const headers = computed(() => props.headers.map((header) => ({
111
+ ...header,
112
+ title: t(header.title),
113
+ sortable: false
114
+ })));
115
+ watch(tableError, (data2) => {
116
+ if (data2) {
117
+ errors.data = data2.response?._data?.status.errors_list;
118
+ showValidationAlert(data2);
119
+ }
120
+ });
121
+ defineExpose({
122
+ filterQueryString: queryParamsString,
123
+ isLoading,
124
+ filters,
125
+ refresh,
126
+ totals
127
+ });
128
+ </script>
129
+
130
+ <template>
131
+ <section>
132
+ <VRow>
133
+ <VCol cols="12">
134
+ <AppCard
135
+ :style="{
136
+ overflow: useIsMobile().value ? 'auto !important' : 'inherit !important'
137
+ }"
138
+ style="z-index: unset !important;"
139
+ :is-loading="isLoading && secondaryStyle"
140
+ >
141
+ <template v-if="enableButtons" #append>
142
+ <slot name="buttons" />
143
+ </template>
144
+ <!-- filters -->
145
+ <VCardText v-if="hasFilters" class="pt-0">
146
+ <slot name="filters">
147
+ <FilterGenerator
148
+ v-model="filters"
149
+ :forms="processedFormFilters"
150
+ :errors="errors.data"
151
+ />
152
+ </slot>
153
+ </VCardText>
154
+
155
+ <VDivider v-if="hasFilters" />
156
+
157
+ <!-- options and buttons -->
158
+ <VCardText v-if="enableButtonsFilter" class="d-flex flex-wrap py-4 gap-4">
159
+ <!-- Page Size options -->
160
+ <div class="me-3 d-flex gap-3">
161
+ <AppSelect
162
+ hide-details
163
+ :model-value="itemsPerPage"
164
+ :items="pageSizeOptions"
165
+ style="width: 6.25rem"
166
+ @update:model-value="val => itemsPerPage = Number(val)"
167
+ />
168
+ </div>
169
+
170
+ <VSpacer />
171
+
172
+ <!-- buttons -->
173
+ <div class="d-flex align-center table-buttons">
174
+ <slot name="buttons-action" />
175
+
176
+ <BaseButton
177
+ size="38"
178
+ color="secondary"
179
+ class="ms-2"
180
+ @click="reset"
181
+ >
182
+ <VIcon
183
+ icon="tabler-filter-x"
184
+ size="22"
185
+ />
186
+ </BaseButton>
187
+
188
+ <BaseButton
189
+ size="38"
190
+ color="secondary"
191
+ class="ms-2"
192
+ @click="refresh"
193
+ >
194
+ <VIcon
195
+ icon="tabler-refresh"
196
+ size="22"
197
+ />
198
+ </BaseButton>
199
+ </div>
200
+ </VCardText>
201
+
202
+ <VDivider v-if="enableButtonsFilter" />
203
+
204
+ <div :class="[!useIsMobile().value || 'overflow-auto app-h-fit', {
205
+ 'secondary-table': secondaryStyle,
206
+ 'responsive-table': useIsMobile().value
207
+ }]">
208
+ <!-- table -->
209
+ <VDataTableServer
210
+ :class="{
211
+ 'mt-5 px-5': secondaryStyle
212
+ }"
213
+ :items="data?.rows"
214
+ :items-length="data?.pagination.total ?? 0"
215
+ :headers="headers"
216
+ :loading="isLoading"
217
+ :no-data-text="t('no_data')"
218
+ :fixed-header="useIsMobile().value"
219
+ >
220
+ <!-- columns -->
221
+ <template v-for="(_, name) in $slots" #[name]="slotProps">
222
+ <slot :name="name" v-bind="slotProps || {}" />
223
+ </template>
224
+
225
+ <template #item.index="{ index }">
226
+ {{ (data?.pagination.total ?? 0) - index - (data?.pagination.from ?? 0) + 1 }}
227
+ </template>
228
+
229
+ <template #item.created_at="{ item }">
230
+ <div class="d-flex text-pre-line">
231
+ {{ formatDate(item.raw?.created_at) }}
232
+ </div>
233
+ </template>
234
+
235
+ <template #loader />
236
+
237
+ <!-- loading -->
238
+ <template #loading>
239
+ <div class="text-center">
240
+ <VProgressCircular indeterminate />
241
+ </div>
242
+ </template>
243
+
244
+ <!-- pagination -->
245
+ <template #bottom>
246
+ <slot name="inside-bottom" :totals="data?.totals" />
247
+ <TablePagination v-model="currentPage" :pagination="pagination" />
248
+ </template>
249
+ </VDataTableServer>
250
+ </div>
251
+ </AppCard>
252
+ </VCol>
253
+ </VRow>
254
+ </section>
255
+ </template>
256
+
257
+ <style scoped>
258
+ :deep(.v-table) .v-table__wrapper > table > tbody > tr > td,
259
+ :deep(.v-table) .v-table__wrapper > table > tbody > tr > th {
260
+ border-bottom: 8px solid rgba(var(--v-table-divider)) !important;
261
+ }
262
+
263
+ :deep(.v-table__wrapper) {
264
+ overflow: inherit !important;
265
+ }
266
+
267
+ :deep(table) tr th {
268
+ position: sticky !important;
269
+ position: -webkit-sticky;
270
+ top: 70px;
271
+ z-index: 10;
272
+ padding-bottom: 0.75rem;
273
+ }
274
+
275
+ .table-buttons .v-btn .v-btn__overlay {
276
+ display: none !important;
277
+ }
278
+ .table-buttons .v-btn:hover {
279
+ background-color: rgba(var(--v-theme-secondary), 0.82) !important;
280
+ color: rgb(var(--v-theme-on-secondary)) !important;
281
+ }
282
+
283
+ .secondary-table :deep(table) {
284
+ width: 100% !important;
285
+ border-collapse: collapse !important;
286
+ border-spacing: 0 !important;
287
+ border: 1px solid rgb(var(--v-theme-silver)) !important;
288
+ border-collapse: collapse !important;
289
+ font-size: 13px !important;
290
+ }
291
+ .secondary-table :deep(table) th {
292
+ padding: 14px 16px !important;
293
+ height: fit-content !important;
294
+ top: 80px !important;
295
+ border: 1px solid rgb(var(--v-theme-silver)) !important;
296
+ background-color: rgb(var(--v-theme-gray-200)) !important;
297
+ color: rgb(var(--v-theme-on-surface)) !important;
298
+ }
299
+ .secondary-table :deep(table) td {
300
+ padding: 16px !important;
301
+ height: auto !important;
302
+ border: 1px solid rgb(var(--v-theme-silver)) !important;
303
+ color: rgb(var(--v-theme-on-surface)) !important;
304
+ }
305
+ .secondary-table :deep(.v-table) .v-table__wrapper > table > tbody > tr > td,
306
+ .secondary-table :deep(.v-table) .v-table__wrapper > table > tbody > tr > th {
307
+ border-bottom: 1px solid rgba(var(--v-theme-silver)) !important;
308
+ }
309
+
310
+ :deep(.v-overlay) {
311
+ z-index: 500 !important;
312
+ }
313
+
314
+ .responsive-table :deep(table) th {
315
+ position: unset !important;
316
+ top: 0 !important;
317
+ z-index: 10 !important;
318
+ }
319
+ </style>
File without changes