@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.
- package/dist/composables/useLaravelPagination.d.ts +15 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +106 -0
- package/dist/plugin.d.ts +5 -0
- package/dist/types/pagination.d.ts +42 -0
- package/package.json +1 -1
|
@@ -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;
|
package/dist/index.d.ts
ADDED
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
|
+
};
|
package/dist/plugin.d.ts
ADDED
|
@@ -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
|
+
}
|