@starter-solutions/inertia-data-table-vue 0.5.0 → 0.6.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.
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("@inertiajs/vue3"),l=require("vue"),k=(e,u)=>{const o=m.usePage(),r=l.computed(()=>{const a=l.toValue(u),_=l.toValue(e),p=l.toValue(a==null?void 0:a.pagePropsKey)??_,n=l.toValue(a==null?void 0:a.useUrlQuery)??!1,y=l.toValue(a==null?void 0:a.reloadOnly)?[p,...l.toValue(a==null?void 0:a.reloadOnly)]:[p];return{tableKey:_,pagePropsKey:p,useUrlQuery:n,reloadOnly:y}}),g=l.computed(()=>o.props.inertiaDataTable.stateRoutes),d=l.computed(()=>o.props.inertiaDataTable.queryParams),s=l.computed(()=>o.props.inertiaDataTable.defaults);return{settings:r,stateRoutes:g,queryParams:d,defaults:s}},O=e=>{const u=l.computed(()=>R(l.toValue(e))),o=l.computed(()=>u.value.data),r=l.computed(()=>u.value.pagination);return{data:o,pagination:r,getPaginatedRequest:(s={})=>({page:s.page??r.value.current_page,per_page:s.per_page??r.value.per_page,sort_by:s.sort_by??r.value.sort_by,descending:s.descending??r.value.descending}),validPage:s=>s>0&&s<=r.value.last_page}},R=e=>({data:(e==null?void 0:e.data)??[],pagination:V(e)}),q=e=>"meta"in e&&typeof e.meta=="object"&&e.meta!==null,V=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(q(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:u,last_page:o,per_page:r,total:g,from:d,to:s,path:a,links:_,first_page_url:p,last_page_url:n,next_page_url:y,prev_page_url:f,sort_by:P,descending:K}=e;return{current_page:u,last_page:o,per_page:r,total:g,from:d,to:s,path:a,links:_,first_page_url:p,last_page_url:n,next_page_url:y,prev_page_url:f,sort_by:P??"id",descending:K??!1}},j=(e,u)=>{const{stateRoutes:o,settings:r}=k(e,u);l.onBeforeUnmount(()=>{m.router.delete(o.value.drop,{preserveScroll:!0,preserveState:!0,data:{tableKey:r.value.tableKey}})});const g=m.usePage(),d=l.computed(()=>g.props[r.value.pagePropsKey]??null),{data:s,pagination:a,getPaginatedRequest:_,validPage:p}=O(d),n=t=>{t=_(t),r.value.useUrlQuery?m.router.reload({only:r.value.reloadOnly,data:{tableKey:r.value.tableKey,filter:c,...t}}):m.router.post(o.value.set,{tableKey:r.value.tableKey,filter:c,pagination:t},{preserveState:!0,preserveScroll:!0,only:r.value.reloadOnly})},y=()=>{v(1)},f=()=>{v(a.value.current_page-1)},P=()=>{v(a.value.current_page+1)},K=()=>{v(a.value.last_page)},v=t=>{if(!p(t)){console.error(`Invalid page: ${t}`);return}n({page:t})},h=t=>{n({per_page:t,page:1})},S=(t,i)=>{const b=i??a.value.sort_by===t?!a.value.descending:!1;n({sort_by:t,descending:b})},c=l.reactive({}),x=(t,i)=>{c[t]=i,n({page:1})},I=t=>{t.forEach(({key:i,value:b})=>{c[i]=b}),n({page:1})},U=t=>{delete c[t],n({page:1})},F=()=>{Object.keys(c).forEach(t=>delete c[t]),n({page:1})},T=l.computed(()=>g.props[r.value.pagePropsKey].additional);return{data:s,reload:n,pagination:a,firstPage:y,previousPage:f,nextPage:P,lastPage:K,goToPage:v,itemsPerPage:h,sortBy:S,filter:c,setFilter:x,setFilters:I,removeFilter:U,resetFilters:F,additional:T,getAdditional:(t,i=void 0)=>t.split(".").reduce((D,Q)=>D==null?void 0:D[Q],T.value)??i}};function z(){return{install(e){}}}exports.createInertiaDataTable=z;exports.getPaginationMeta=V;exports.isResource=q;exports.normalizePagination=R;exports.useDataTable=j;exports.useInertiaDataTableConfig=k;exports.useLaravelPagination=O;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("@inertiajs/vue3"),r=require("vue"),O=(e,p)=>{const c=m.usePage(),l=r.computed(()=>{const a=r.toValue(p),s=r.toValue(e),d=r.toValue(a==null?void 0:a.pagePropsKey)??s,o=r.toValue(a==null?void 0:a.useUrlQuery)??!1,y=r.toValue(a==null?void 0:a.reloadOnly)?[d,...r.toValue(a==null?void 0:a.reloadOnly)]:[d];return{tableKey:s,pagePropsKey:d,useUrlQuery:o,reloadOnly:y}}),_=r.computed(()=>{var a,s;return((s=(a=c.props)==null?void 0:a.inertiaDataTable)==null?void 0:s.stateRoutes)??{set:"",drop:"",dropAll:""}}),g=r.computed(()=>{var a,s;return((s=(a=c.props)==null?void 0:a.inertiaDataTable)==null?void 0:s.queryParams)??{tableKey:"tableKey",perPage:"per_page",sortBy:"sort_by",descending:"descending",pageName:"page",filter:"filter"}}),n=r.computed(()=>{var a,s;return((s=(a=c.props)==null?void 0:a.inertiaDataTable)==null?void 0:s.defaults)??{perPage:15,sortBy:"id"}});return{settings:l,stateRoutes:_,queryParams:g,defaults:n}},h=e=>{const p=r.computed(()=>R(r.toValue(e))),c=r.computed(()=>p.value.data),l=r.computed(()=>p.value.pagination);return{data:c,pagination:l,getPaginatedRequest:(n={})=>({page:n.page??l.value.current_page,per_page:n.per_page??l.value.per_page,sort_by:n.sort_by??l.value.sort_by,descending:n.descending??l.value.descending}),validPage:n=>n>0&&n<=l.value.last_page}},R=e=>({data:(e==null?void 0:e.data)??[],pagination:V(e)}),q=e=>"meta"in e&&typeof e.meta=="object"&&e.meta!==null,V=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(q(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:p,last_page:c,per_page:l,total:_,from:g,to:n,path:a,links:s,first_page_url:d,last_page_url:o,next_page_url:y,prev_page_url:f,sort_by:P,descending:K}=e;return{current_page:p,last_page:c,per_page:l,total:_,from:g,to:n,path:a,links:s,first_page_url:d,last_page_url:o,next_page_url:y,prev_page_url:f,sort_by:P??"id",descending:K??!1}},Q=(e,p)=>{var k;const{stateRoutes:c,settings:l}=O(e,p);r.onBeforeUnmount(()=>{m.router.delete(c.value.drop,{preserveScroll:!0,preserveState:!0,data:{tableKey:l.value.tableKey}})});const _=m.usePage(),g=r.computed(()=>{var t;return((t=_.props)==null?void 0:t[l.value.pagePropsKey])??null}),{data:n,pagination:a,getPaginatedRequest:s,validPage:d}=h(g),o=t=>{t=s(t),l.value.useUrlQuery?m.router.reload({only:l.value.reloadOnly,data:{tableKey:l.value.tableKey,filter:u,...t}}):m.router.post(c.value.set,{tableKey:l.value.tableKey,filter:u,pagination:t},{preserveState:!0,preserveScroll:!0,only:l.value.reloadOnly})},y=()=>{v(1)},f=()=>{v(a.value.current_page-1)},P=()=>{v(a.value.current_page+1)},K=()=>{v(a.value.last_page)},v=t=>{if(!d(t)){console.error(`Invalid page: ${t}`);return}o({page:t})},S=t=>{o({per_page:t,page:1})},j=(t,i)=>{const b=i??a.value.sort_by===t?!a.value.descending:!1;o({sort_by:t,descending:b})},u=r.reactive(((k=g.value)==null?void 0:k.filter)??{});r.watch(()=>{var t;return(t=g.value)==null?void 0:t.filter},t=>{Object.keys(u).forEach(i=>delete u[i]),Object.assign(u,t??{})});const x=(t,i)=>{u[t]=i,o({page:1})},I=t=>{t.forEach(({key:i,value:b})=>{u[i]=b}),o({page:1})},U=t=>{delete u[t],o({page:1})},B=()=>{Object.keys(u).forEach(t=>delete u[t]),o({page:1})},T=r.computed(()=>g.value.additional??{});return{data:n,reload:o,pagination:a,firstPage:y,previousPage:f,nextPage:P,lastPage:K,goToPage:v,itemsPerPage:S,sortBy:j,filter:u,setFilter:x,setFilters:I,removeFilter:U,resetFilters:B,additional:T,getAdditional:(t,i=void 0)=>t.split(".").reduce((D,F)=>D==null?void 0:D[F],T.value)??i}};function z(){return{install(e){}}}exports.createInertiaDataTable=z;exports.getPaginationMeta=V;exports.isResource=q;exports.normalizePagination=R;exports.useDataTable=Q;exports.useInertiaDataTableConfig=O;exports.useLaravelPagination=h;
package/dist/index.js CHANGED
@@ -1,46 +1,69 @@
1
- import { usePage as R, router as D } from "@inertiajs/vue3";
2
- import { computed as o, toValue as _, onBeforeUnmount as S, reactive as I } from "vue";
3
- const j = (e, u) => {
4
- const n = R(), r = o(() => {
5
- const a = _(u), y = _(e), g = _(a == null ? void 0 : a.pagePropsKey) ?? y, s = _(a == null ? void 0 : a.useUrlQuery) ?? !1, v = _(a == null ? void 0 : a.reloadOnly) ? [g, ..._(a == null ? void 0 : a.reloadOnly)] : [g];
1
+ import { usePage as R, router as O } from "@inertiajs/vue3";
2
+ import { computed as p, toValue as d, onBeforeUnmount as Q, reactive as S, watch as A } from "vue";
3
+ const E = (e, i) => {
4
+ const u = R(), r = p(() => {
5
+ const a = d(i), l = d(e), _ = d(a == null ? void 0 : a.pagePropsKey) ?? l, n = d(a == null ? void 0 : a.useUrlQuery) ?? !1, v = d(a == null ? void 0 : a.reloadOnly) ? [_, ...d(a == null ? void 0 : a.reloadOnly)] : [_];
6
6
  return {
7
- tableKey: y,
8
- pagePropsKey: g,
9
- useUrlQuery: s,
7
+ tableKey: l,
8
+ pagePropsKey: _,
9
+ useUrlQuery: n,
10
10
  reloadOnly: v
11
11
  };
12
- }), p = o(
13
- () => n.props.inertiaDataTable.stateRoutes
14
- ), d = o(
15
- () => n.props.inertiaDataTable.queryParams
16
- ), l = o(
17
- () => n.props.inertiaDataTable.defaults
12
+ }), y = p(
13
+ () => {
14
+ var a, l;
15
+ return ((l = (a = u.props) == null ? void 0 : a.inertiaDataTable) == null ? void 0 : l.stateRoutes) ?? {
16
+ set: "",
17
+ drop: "",
18
+ dropAll: ""
19
+ };
20
+ }
21
+ ), c = p(
22
+ () => {
23
+ var a, l;
24
+ return ((l = (a = u.props) == null ? void 0 : a.inertiaDataTable) == null ? void 0 : l.queryParams) ?? {
25
+ tableKey: "tableKey",
26
+ perPage: "per_page",
27
+ sortBy: "sort_by",
28
+ descending: "descending",
29
+ pageName: "page",
30
+ filter: "filter"
31
+ };
32
+ }
33
+ ), s = p(
34
+ () => {
35
+ var a, l;
36
+ return ((l = (a = u.props) == null ? void 0 : a.inertiaDataTable) == null ? void 0 : l.defaults) ?? {
37
+ perPage: 15,
38
+ sortBy: "id"
39
+ };
40
+ }
18
41
  );
19
42
  return {
20
43
  settings: r,
21
- stateRoutes: p,
22
- queryParams: d,
23
- defaults: l
44
+ stateRoutes: y,
45
+ queryParams: c,
46
+ defaults: s
24
47
  };
25
- }, z = (e) => {
26
- const u = o(() => A(_(e))), n = o(() => u.value.data), r = o(
27
- () => u.value.pagination
48
+ }, I = (e) => {
49
+ const i = p(() => z(d(e))), u = p(() => i.value.data), r = p(
50
+ () => i.value.pagination
28
51
  );
29
52
  return {
30
- data: n,
53
+ data: u,
31
54
  pagination: r,
32
- getPaginatedRequest: (l = {}) => ({
33
- page: l.page ?? r.value.current_page,
34
- per_page: l.per_page ?? r.value.per_page,
35
- sort_by: l.sort_by ?? r.value.sort_by,
36
- descending: l.descending ?? r.value.descending
55
+ getPaginatedRequest: (s = {}) => ({
56
+ page: s.page ?? r.value.current_page,
57
+ per_page: s.per_page ?? r.value.per_page,
58
+ sort_by: s.sort_by ?? r.value.sort_by,
59
+ descending: s.descending ?? r.value.descending
37
60
  }),
38
- validPage: (l) => l > 0 && l <= r.value.last_page
61
+ validPage: (s) => s > 0 && s <= r.value.last_page
39
62
  };
40
- }, A = (e) => ({
63
+ }, z = (e) => ({
41
64
  data: (e == null ? void 0 : e.data) ?? [],
42
- pagination: E(e)
43
- }), B = (e) => "meta" in e && typeof e.meta == "object" && e.meta !== null, E = (e) => {
65
+ pagination: L(e)
66
+ }), C = (e) => "meta" in e && typeof e.meta == "object" && e.meta !== null, L = (e) => {
44
67
  if (!e)
45
68
  return {
46
69
  current_page: 1,
@@ -60,7 +83,7 @@ const j = (e, u) => {
60
83
  sort_by: "id",
61
84
  descending: !1
62
85
  };
63
- if (B(e))
86
+ if (C(e))
64
87
  return {
65
88
  current_page: e.meta.current_page,
66
89
  last_page: e.meta.last_page,
@@ -80,17 +103,17 @@ const j = (e, u) => {
80
103
  descending: e.meta.descending ?? !1
81
104
  };
82
105
  const {
83
- current_page: u,
84
- last_page: n,
106
+ current_page: i,
107
+ last_page: u,
85
108
  per_page: r,
86
- total: p,
87
- from: d,
88
- to: l,
109
+ total: y,
110
+ from: c,
111
+ to: s,
89
112
  path: a,
90
- links: y,
113
+ links: l,
91
114
  //links
92
- first_page_url: g,
93
- last_page_url: s,
115
+ first_page_url: _,
116
+ last_page_url: n,
94
117
  next_page_url: v,
95
118
  prev_page_url: b,
96
119
  //custom
@@ -98,50 +121,54 @@ const j = (e, u) => {
98
121
  descending: K
99
122
  } = e;
100
123
  return {
101
- current_page: u,
102
- last_page: n,
124
+ current_page: i,
125
+ last_page: u,
103
126
  per_page: r,
104
- total: p,
105
- from: d,
106
- to: l,
127
+ total: y,
128
+ from: c,
129
+ to: s,
107
130
  path: a,
108
- links: y,
131
+ links: l,
109
132
  //links
110
- first_page_url: g,
111
- last_page_url: s,
133
+ first_page_url: _,
134
+ last_page_url: n,
112
135
  next_page_url: v,
113
136
  prev_page_url: b,
114
137
  //custom
115
138
  sort_by: P ?? "id",
116
139
  descending: K ?? !1
117
140
  };
118
- }, V = (e, u) => {
119
- const { stateRoutes: n, settings: r } = j(
141
+ }, $ = (e, i) => {
142
+ var D;
143
+ const { stateRoutes: u, settings: r } = E(
120
144
  e,
121
- u
145
+ i
122
146
  );
123
- S(() => {
124
- D.delete(n.value.drop, {
147
+ Q(() => {
148
+ O.delete(u.value.drop, {
125
149
  preserveScroll: !0,
126
150
  preserveState: !0,
127
151
  data: { tableKey: r.value.tableKey }
128
152
  });
129
153
  });
130
- const p = R(), d = o(
131
- () => p.props[r.value.pagePropsKey] ?? null
132
- ), { data: l, pagination: a, getPaginatedRequest: y, validPage: g } = z(d), s = (t) => {
133
- t = y(t), r.value.useUrlQuery ? D.reload({
154
+ const y = R(), c = p(
155
+ () => {
156
+ var t;
157
+ return ((t = y.props) == null ? void 0 : t[r.value.pagePropsKey]) ?? null;
158
+ }
159
+ ), { data: s, pagination: a, getPaginatedRequest: l, validPage: _ } = I(c), n = (t) => {
160
+ t = l(t), r.value.useUrlQuery ? O.reload({
134
161
  only: r.value.reloadOnly,
135
162
  data: {
136
163
  tableKey: r.value.tableKey,
137
- filter: c,
164
+ filter: o,
138
165
  ...t
139
166
  }
140
- }) : D.post(
141
- n.value.set,
167
+ }) : O.post(
168
+ u.value.set,
142
169
  {
143
170
  tableKey: r.value.tableKey,
144
- filter: c,
171
+ filter: o,
145
172
  pagination: t
146
173
  },
147
174
  {
@@ -159,30 +186,40 @@ const j = (e, u) => {
159
186
  }, K = () => {
160
187
  f(a.value.last_page);
161
188
  }, f = (t) => {
162
- if (!g(t)) {
189
+ if (!_(t)) {
163
190
  console.error(`Invalid page: ${t}`);
164
191
  return;
165
192
  }
166
- s({ page: t });
193
+ n({ page: t });
167
194
  }, T = (t) => {
168
- s({ per_page: t, page: 1 });
169
- }, h = (t, i) => {
170
- const m = i ?? a.value.sort_by === t ? !a.value.descending : !1;
171
- s({ sort_by: t, descending: m });
172
- }, c = I({}), x = (t, i) => {
173
- c[t] = i, s({ page: 1 });
174
- }, q = (t) => {
175
- t.forEach(({ key: i, value: m }) => {
176
- c[i] = m;
177
- }), s({ page: 1 });
195
+ n({ per_page: t, page: 1 });
196
+ }, x = (t, g) => {
197
+ const m = g ?? a.value.sort_by === t ? !a.value.descending : !1;
198
+ n({ sort_by: t, descending: m });
199
+ }, o = S(((D = c.value) == null ? void 0 : D.filter) ?? {});
200
+ A(
201
+ () => {
202
+ var t;
203
+ return (t = c.value) == null ? void 0 : t.filter;
204
+ },
205
+ (t) => {
206
+ Object.keys(o).forEach((g) => delete o[g]), Object.assign(o, t ?? {});
207
+ }
208
+ );
209
+ const q = (t, g) => {
210
+ o[t] = g, n({ page: 1 });
178
211
  }, U = (t) => {
179
- delete c[t], s({ page: 1 });
180
- }, F = () => {
181
- Object.keys(c).forEach((t) => delete c[t]), s({ page: 1 });
182
- }, O = o(() => p.props[r.value.pagePropsKey].additional);
212
+ t.forEach(({ key: g, value: m }) => {
213
+ o[g] = m;
214
+ }), n({ page: 1 });
215
+ }, j = (t) => {
216
+ delete o[t], n({ page: 1 });
217
+ }, B = () => {
218
+ Object.keys(o).forEach((t) => delete o[t]), n({ page: 1 });
219
+ }, h = p(() => c.value.additional ?? {});
183
220
  return {
184
- data: l,
185
- reload: s,
221
+ data: s,
222
+ reload: n,
186
223
  pagination: a,
187
224
  firstPage: v,
188
225
  previousPage: b,
@@ -190,31 +227,31 @@ const j = (e, u) => {
190
227
  lastPage: K,
191
228
  goToPage: f,
192
229
  itemsPerPage: T,
193
- sortBy: h,
194
- filter: c,
195
- setFilter: x,
196
- setFilters: q,
197
- removeFilter: U,
198
- resetFilters: F,
199
- additional: O,
200
- getAdditional: (t, i = void 0) => t.split(".").reduce(
201
- (k, Q) => k == null ? void 0 : k[Q],
202
- O.value
203
- ) ?? i
230
+ sortBy: x,
231
+ filter: o,
232
+ setFilter: q,
233
+ setFilters: U,
234
+ removeFilter: j,
235
+ resetFilters: B,
236
+ additional: h,
237
+ getAdditional: (t, g = void 0) => t.split(".").reduce(
238
+ (k, F) => k == null ? void 0 : k[F],
239
+ h.value
240
+ ) ?? g
204
241
  };
205
242
  };
206
- function $() {
243
+ function w() {
207
244
  return {
208
245
  install(e) {
209
246
  }
210
247
  };
211
248
  }
212
249
  export {
213
- $ as createInertiaDataTable,
214
- E as getPaginationMeta,
215
- B as isResource,
216
- A as normalizePagination,
217
- V as useDataTable,
218
- j as useInertiaDataTableConfig,
219
- z as useLaravelPagination
250
+ w as createInertiaDataTable,
251
+ L as getPaginationMeta,
252
+ C as isResource,
253
+ z as normalizePagination,
254
+ $ as useDataTable,
255
+ E as useInertiaDataTableConfig,
256
+ I as useLaravelPagination
220
257
  };
@@ -11,6 +11,7 @@ export type InertiaDataTableQueryParams = {
11
11
  sortBy: string;
12
12
  descending: string;
13
13
  pageName: string;
14
+ filter: string;
14
15
  };
15
16
  export type InertiaDataTableDefaults = {
16
17
  perPage: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@starter-solutions/inertia-data-table-vue",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "license": "MIT",
5
5
  "description": "Vue 3 + Inertia.js data table utilities with Laravel backend integration.",
6
6
  "type": "module",
@@ -48,11 +48,11 @@
48
48
  "git-major": "npm version major && git push --follow-tags"
49
49
  },
50
50
  "peerDependencies": {
51
- "@inertiajs/vue3": "^2.0.0",
51
+ "@inertiajs/vue3": "^2.0.0 || ^3.0.0",
52
52
  "vue": "^3.3.0"
53
53
  },
54
54
  "devDependencies": {
55
- "@inertiajs/vue3": "^2.0.0",
55
+ "@inertiajs/vue3": "^2.0.0 || ^3.0.0",
56
56
  "@types/node": "^25.3.3",
57
57
  "@vitejs/plugin-vue": "^5.0.0",
58
58
  "typescript": "^5.0.0",