@starter-solutions/inertia-data-table-vue 0.1.1 → 0.1.3

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.
@@ -0,0 +1,15 @@
1
+ import { MaybeRefOrGetter } from 'vue';
2
+ import { NormalizedPagination, Paginated, PaginatedRequest, PaginatedResource } from '../types/pagination';
3
+
4
+ export declare const useLaravelPagination: <T>(paginated?: MaybeRefOrGetter<Paginated<T> | null | undefined>) => {
5
+ data: import('vue').ComputedRef<T[]>;
6
+ pagination: import('vue').ComputedRef<NormalizedPagination>;
7
+ getPaginatedRequest: (override?: Partial<PaginatedRequest>) => PaginatedRequest;
8
+ validPage: (page: number) => boolean;
9
+ };
10
+ export declare const normalizePagination: <T>(paginated?: Paginated<T> | null) => {
11
+ data: T[];
12
+ pagination: NormalizedPagination;
13
+ };
14
+ export declare const isResource: (p: Paginated<unknown>) => p is PaginatedResource<unknown>;
15
+ export declare const getPaginationMeta: (paginated?: Paginated<unknown> | null) => NormalizedPagination;
package/dist/index.cjs ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("vue"),P=e=>{const r=l.computed(()=>o(l.toValue(e))),n=l.computed(()=>r.value.data),a=l.computed(()=>r.value.pagination);return{data:n,pagination:a,getPaginatedRequest:(t={})=>({page:t.page??a.value.current_page,per_page:t.per_page??a.value.per_page,sort_by:t.sort_by??a.value.sort_by,descending:t.descending??a.value.descending}),validPage:t=>t>0&&t<=a.value.last_page}},o=e=>({data:(e==null?void 0:e.data)??[],pagination:i(e)}),_=e=>"meta"in e&&typeof e.meta=="object"&&e.meta!==null,i=e=>{if(!e)return{current_page:1,last_page:1,per_page:10,total:0,from:null,to:null,path:"",links:[],first_page_url:null,last_page_url:null,next_page_url:null,prev_page_url:null,sort_by:"id",descending:!1};if(_(e))return{current_page:e.meta.current_page,last_page:e.meta.last_page,per_page:e.meta.per_page,total:e.meta.total,from:e.meta.from,to:e.meta.to,path:e.meta.path,links:e.meta.links,first_page_url:e.links.first,last_page_url:e.links.last,next_page_url:e.links.next,prev_page_url:e.links.prev,sort_by:e.meta.sort_by??"id",descending:e.meta.descending??!1};const{current_page:r,last_page:n,per_page:a,total:s,from:u,to:t,path:g,links:c,first_page_url:p,last_page_url:m,next_page_url:f,prev_page_url:v,sort_by:b,descending:y}=e;return{current_page:r,last_page:n,per_page:a,total:s,from:u,to:t,path:g,links:c,first_page_url:p,last_page_url:m,next_page_url:f,prev_page_url:v,sort_by:b??"id",descending:y??!1}};function d(){return{install(e){}}}exports.createInertiaDataTable=d;exports.getPaginationMeta=i;exports.isResource=_;exports.normalizePagination=o;exports.useLaravelPagination=P;
@@ -0,0 +1,3 @@
1
+ export * from './composables/useLaravelPagination';
2
+ export * from './plugin';
3
+ export type * from './types/pagination';
package/dist/index.js ADDED
@@ -0,0 +1,106 @@
1
+ import { computed as n, toValue as v } from "vue";
2
+ const d = (e) => {
3
+ const r = n(() => b(v(e))), l = n(() => r.value.data), a = n(() => r.value.pagination);
4
+ return {
5
+ data: l,
6
+ pagination: a,
7
+ getPaginatedRequest: (t = {}) => ({
8
+ page: t.page ?? a.value.current_page,
9
+ per_page: t.per_page ?? a.value.per_page,
10
+ sort_by: t.sort_by ?? a.value.sort_by,
11
+ descending: t.descending ?? a.value.descending
12
+ }),
13
+ validPage: (t) => t > 0 && t <= a.value.last_page
14
+ };
15
+ }, b = (e) => ({
16
+ data: (e == null ? void 0 : e.data) ?? [],
17
+ pagination: k(e)
18
+ }), y = (e) => "meta" in e && typeof e.meta == "object" && e.meta !== null, k = (e) => {
19
+ if (!e)
20
+ return {
21
+ current_page: 1,
22
+ last_page: 1,
23
+ per_page: 10,
24
+ total: 0,
25
+ from: null,
26
+ to: null,
27
+ path: "",
28
+ links: [],
29
+ //links
30
+ first_page_url: null,
31
+ last_page_url: null,
32
+ next_page_url: null,
33
+ prev_page_url: null,
34
+ //custom
35
+ sort_by: "id",
36
+ descending: !1
37
+ };
38
+ if (y(e))
39
+ return {
40
+ current_page: e.meta.current_page,
41
+ last_page: e.meta.last_page,
42
+ per_page: e.meta.per_page,
43
+ total: e.meta.total,
44
+ from: e.meta.from,
45
+ to: e.meta.to,
46
+ path: e.meta.path,
47
+ links: e.meta.links,
48
+ //links
49
+ first_page_url: e.links.first,
50
+ last_page_url: e.links.last,
51
+ next_page_url: e.links.next,
52
+ prev_page_url: e.links.prev,
53
+ //custom
54
+ sort_by: e.meta.sort_by ?? "id",
55
+ descending: e.meta.descending ?? !1
56
+ };
57
+ const {
58
+ current_page: r,
59
+ last_page: l,
60
+ per_page: a,
61
+ total: s,
62
+ from: _,
63
+ to: t,
64
+ path: u,
65
+ links: o,
66
+ //links
67
+ first_page_url: p,
68
+ last_page_url: g,
69
+ next_page_url: c,
70
+ prev_page_url: i,
71
+ //custom
72
+ sort_by: m,
73
+ descending: f
74
+ } = e;
75
+ return {
76
+ current_page: r,
77
+ last_page: l,
78
+ per_page: a,
79
+ total: s,
80
+ from: _,
81
+ to: t,
82
+ path: u,
83
+ links: o,
84
+ //links
85
+ first_page_url: p,
86
+ last_page_url: g,
87
+ next_page_url: c,
88
+ prev_page_url: i,
89
+ //custom
90
+ sort_by: m ?? "id",
91
+ descending: f ?? !1
92
+ };
93
+ };
94
+ function x() {
95
+ return {
96
+ install(e) {
97
+ }
98
+ };
99
+ }
100
+ export {
101
+ x as createInertiaDataTable,
102
+ k as getPaginationMeta,
103
+ y as isResource,
104
+ b as normalizePagination,
105
+ d as useLaravelPagination
106
+ };
@@ -0,0 +1,5 @@
1
+ import { App } from 'vue';
2
+
3
+ export declare function createInertiaDataTable(): {
4
+ install(app: App): void;
5
+ };
@@ -0,0 +1,42 @@
1
+ export type PaginationLink = {
2
+ url: string | null;
3
+ label: string;
4
+ page: number | null;
5
+ active: boolean;
6
+ };
7
+ export type NormalizedPagination = {
8
+ current_page: number;
9
+ last_page: number;
10
+ per_page: number;
11
+ total: number;
12
+ from: number | null;
13
+ to: number | null;
14
+ path: string;
15
+ links: PaginationLink[];
16
+ first_page_url: string | null;
17
+ last_page_url: string | null;
18
+ next_page_url: string | null;
19
+ prev_page_url: string | null;
20
+ sort_by?: string;
21
+ descending?: boolean;
22
+ };
23
+ export type PaginatedResource<T> = {
24
+ data: T[];
25
+ links: {
26
+ first: string | null;
27
+ last: string | null;
28
+ prev: string | null;
29
+ next: string | null;
30
+ };
31
+ meta: Omit<NormalizedPagination, 'first_page_url' | 'last_page_url' | 'next_page_url' | 'prev_page_url'>;
32
+ };
33
+ export type PaginatedFlat<T> = NormalizedPagination & {
34
+ data: T[];
35
+ };
36
+ export type Paginated<T> = PaginatedResource<T> | PaginatedFlat<T>;
37
+ export interface PaginatedRequest {
38
+ page: number;
39
+ per_page: number;
40
+ sort_by: string;
41
+ descending: boolean;
42
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@starter-solutions/inertia-data-table-vue",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "type": "module",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",