@starter-solutions/inertia-data-table-vue 0.3.0 → 0.3.1

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 _=require("@inertiajs/vue3"),r=require("vue"),b=(e,o)=>{const n=_.usePage(),t=r.computed(()=>{const a=r.toValue(o);return{tableKey:r.toValue(e),pagePropsKey:r.toValue(a==null?void 0:a.pagePropsKey)??r.toValue(e),useUrlQuery:r.toValue(a==null?void 0:a.useUrlQuery)??!1}}),u=r.computed(()=>n.props.inertiaDataTable.stateRoutes),p=r.computed(()=>n.props.inertiaDataTable.queryParams),s=r.computed(()=>n.props.inertiaDataTable.defaults);return{settings:t,stateRoutes:u,queryParams:p,defaults:s}},f=e=>{const o=r.computed(()=>D(r.toValue(e))),n=r.computed(()=>o.value.data),t=r.computed(()=>o.value.pagination);return{data:n,pagination:t,getPaginatedRequest:(s={})=>({page:s.page??t.value.current_page,per_page:s.per_page??t.value.per_page,sort_by:s.sort_by??t.value.sort_by,descending:s.descending??t.value.descending}),validPage:s=>s>0&&s<=t.value.last_page}},D=e=>({data:(e==null?void 0:e.data)??[],pagination:T(e)}),K=e=>"meta"in e&&typeof e.meta=="object"&&e.meta!==null,T=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(K(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:o,last_page:n,per_page:t,total:u,from:p,to:s,path:a,links:c,first_page_url:v,last_page_url:g,next_page_url:m,prev_page_url:d,sort_by:y,descending:P}=e;return{current_page:o,last_page:n,per_page:t,total:u,from:p,to:s,path:a,links:c,first_page_url:v,last_page_url:g,next_page_url:m,prev_page_url:d,sort_by:y??"id",descending:P??!1}},S=(e,o)=>{const{stateRoutes:n,settings:t}=b(e,o);r.onBeforeUnmount(()=>{_.router.delete(n.value.drop,{preserveScroll:!0,preserveState:!0,data:{tableKey:t.value.tableKey}})});const u=_.usePage(),p=r.computed(()=>u.props[t.value.pagePropsKey]??null),{data:s,pagination:a,getPaginatedRequest:c,validPage:v}=f(p),g=l=>{l=c(l),t.value.useUrlQuery?_.router.reload({only:[t.value.pagePropsKey],data:{tableKey:t.value.tableKey,...l}}):_.router.post(n.value.set,{tableKey:t.value.tableKey,data:{...l}},{preserveState:!0,preserveScroll:!0,only:[t.value.pagePropsKey]})},m=()=>{i(1)},d=()=>{i(a.value.current_page-1)},y=()=>{i(a.value.current_page+1)},P=()=>{i(a.value.last_page)},i=l=>{if(!v(l)){console.error(`Invalid page: ${l}`);return}g(c({page:l}))};return{data:s,pagination:a,reloadData:g,firstPage:m,previousPage:d,nextPage:y,lastPage:P,goToPage:i,itemsPerPage:l=>{g(c({per_page:l,page:1}))},sortBy:(l,k)=>{const R=k??a.value.sort_by===l?!a.value.descending:!1;g(c({sort_by:l,descending:R}))}}};function V(){return{install(e){}}}exports.createInertiaDataTable=V;exports.getPaginationMeta=T;exports.isResource=K;exports.normalizePagination=D;exports.useDataTable=S;exports.useInertiaDataTableConfig=b;exports.useLaravelPagination=f;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("@inertiajs/vue3"),r=require("vue"),P=(e,u)=>{const n=y.usePage(),t=r.computed(()=>{const a=r.toValue(u),o=r.toValue(e),g=r.toValue(a==null?void 0:a.pagePropsKey)??o,c=r.toValue(a==null?void 0:a.useUrlQuery)??!1,_=r.toValue(a==null?void 0:a.reloadOnly)?[g,...r.toValue(a==null?void 0:a.reloadOnly)]:[g];return{tableKey:o,pagePropsKey:g,useUrlQuery:c,reloadOnly:_}}),p=r.computed(()=>n.props.inertiaDataTable.stateRoutes),i=r.computed(()=>n.props.inertiaDataTable.queryParams),l=r.computed(()=>n.props.inertiaDataTable.defaults);return{settings:t,stateRoutes:p,queryParams:i,defaults:l}},f=e=>{const u=r.computed(()=>D(r.toValue(e))),n=r.computed(()=>u.value.data),t=r.computed(()=>u.value.pagination);return{data:n,pagination:t,getPaginatedRequest:(l={})=>({page:l.page??t.value.current_page,per_page:l.per_page??t.value.per_page,sort_by:l.sort_by??t.value.sort_by,descending:l.descending??t.value.descending}),validPage:l=>l>0&&l<=t.value.last_page}},D=e=>({data:(e==null?void 0:e.data)??[],pagination:T(e)}),K=e=>"meta"in e&&typeof e.meta=="object"&&e.meta!==null,T=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(K(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:n,per_page:t,total:p,from:i,to:l,path:a,links:o,first_page_url:g,last_page_url:c,next_page_url:_,prev_page_url:v,sort_by:m,descending:b}=e;return{current_page:u,last_page:n,per_page:t,total:p,from:i,to:l,path:a,links:o,first_page_url:g,last_page_url:c,next_page_url:_,prev_page_url:v,sort_by:m??"id",descending:b??!1}},O=(e,u)=>{const{stateRoutes:n,settings:t}=P(e,u);r.onBeforeUnmount(()=>{y.router.delete(n.value.drop,{preserveScroll:!0,preserveState:!0,data:{tableKey:t.value.tableKey}})});const p=y.usePage(),i=r.computed(()=>p.props[t.value.pagePropsKey]??null),{data:l,pagination:a,getPaginatedRequest:o,validPage:g}=f(i),c=s=>{s=o(s),t.value.useUrlQuery?y.router.reload({only:t.value.reloadOnly,data:{tableKey:t.value.tableKey,...s}}):y.router.post(n.value.set,{tableKey:t.value.tableKey,data:s},{preserveState:!0,preserveScroll:!0,only:t.value.reloadOnly})},_=()=>{d(1)},v=()=>{d(a.value.current_page-1)},m=()=>{d(a.value.current_page+1)},b=()=>{d(a.value.last_page)},d=s=>{if(!g(s)){console.error(`Invalid page: ${s}`);return}c(o({page:s}))};return{data:l,pagination:a,reloadData:c,firstPage:_,previousPage:v,nextPage:m,lastPage:b,goToPage:d,itemsPerPage:s=>{c(o({per_page:s,page:1}))},sortBy:(s,k)=>{const R=k??a.value.sort_by===s?!a.value.descending:!1;c(o({sort_by:s,descending:R}))}}};function V(){return{install(e){}}}exports.createInertiaDataTable=V;exports.getPaginationMeta=T;exports.isResource=K;exports.normalizePagination=D;exports.useDataTable=O;exports.useInertiaDataTableConfig=P;exports.useLaravelPagination=f;
package/dist/index.js CHANGED
@@ -1,32 +1,33 @@
1
- import { usePage as b, router as P } from "@inertiajs/vue3";
2
- import { computed as o, toValue as _, onBeforeUnmount as k } from "vue";
3
- const R = (e, n) => {
4
- const l = b(), t = o(() => {
5
- const a = _(n);
1
+ import { usePage as P, router as b } from "@inertiajs/vue3";
2
+ import { computed as c, toValue as p, onBeforeUnmount as k } from "vue";
3
+ const R = (e, o) => {
4
+ const s = P(), t = c(() => {
5
+ const a = p(o), n = p(e), g = p(a == null ? void 0 : a.pagePropsKey) ?? n, u = p(a == null ? void 0 : a.useUrlQuery) ?? !1, y = p(a == null ? void 0 : a.reloadOnly) ? [g, ...p(a == null ? void 0 : a.reloadOnly)] : [g];
6
6
  return {
7
- tableKey: _(e),
8
- pagePropsKey: _(a == null ? void 0 : a.pagePropsKey) ?? _(e),
9
- useUrlQuery: _(a == null ? void 0 : a.useUrlQuery) ?? !1
7
+ tableKey: n,
8
+ pagePropsKey: g,
9
+ useUrlQuery: u,
10
+ reloadOnly: y
10
11
  };
11
- }), u = o(
12
- () => l.props.inertiaDataTable.stateRoutes
13
- ), p = o(
14
- () => l.props.inertiaDataTable.queryParams
15
- ), r = o(
16
- () => l.props.inertiaDataTable.defaults
12
+ }), _ = c(
13
+ () => s.props.inertiaDataTable.stateRoutes
14
+ ), i = c(
15
+ () => s.props.inertiaDataTable.queryParams
16
+ ), r = c(
17
+ () => s.props.inertiaDataTable.defaults
17
18
  );
18
19
  return {
19
20
  settings: t,
20
- stateRoutes: u,
21
- queryParams: p,
21
+ stateRoutes: _,
22
+ queryParams: i,
22
23
  defaults: r
23
24
  };
24
25
  }, T = (e) => {
25
- const n = o(() => x(_(e))), l = o(() => n.value.data), t = o(
26
- () => n.value.pagination
26
+ const o = c(() => x(p(e))), s = c(() => o.value.data), t = c(
27
+ () => o.value.pagination
27
28
  );
28
29
  return {
29
- data: l,
30
+ data: s,
30
31
  pagination: t,
31
32
  getPaginatedRequest: (r = {}) => ({
32
33
  page: r.page ?? t.value.current_page,
@@ -38,8 +39,8 @@ const R = (e, n) => {
38
39
  };
39
40
  }, x = (e) => ({
40
41
  data: (e == null ? void 0 : e.data) ?? [],
41
- pagination: S(e)
42
- }), h = (e) => "meta" in e && typeof e.meta == "object" && e.meta !== null, S = (e) => {
42
+ pagination: U(e)
43
+ }), O = (e) => "meta" in e && typeof e.meta == "object" && e.meta !== null, U = (e) => {
43
44
  if (!e)
44
45
  return {
45
46
  current_page: 1,
@@ -59,7 +60,7 @@ const R = (e, n) => {
59
60
  sort_by: "id",
60
61
  descending: !1
61
62
  };
62
- if (h(e))
63
+ if (O(e))
63
64
  return {
64
65
  current_page: e.meta.current_page,
65
66
  last_page: e.meta.last_page,
@@ -79,116 +80,116 @@ const R = (e, n) => {
79
80
  descending: e.meta.descending ?? !1
80
81
  };
81
82
  const {
82
- current_page: n,
83
- last_page: l,
83
+ current_page: o,
84
+ last_page: s,
84
85
  per_page: t,
85
- total: u,
86
- from: p,
86
+ total: _,
87
+ from: i,
87
88
  to: r,
88
89
  path: a,
89
- links: g,
90
+ links: n,
90
91
  //links
91
- first_page_url: v,
92
- last_page_url: c,
93
- next_page_url: m,
94
- prev_page_url: y,
92
+ first_page_url: g,
93
+ last_page_url: u,
94
+ next_page_url: y,
95
+ prev_page_url: d,
95
96
  //custom
96
- sort_by: f,
97
- descending: d
97
+ sort_by: m,
98
+ descending: f
98
99
  } = e;
99
100
  return {
100
- current_page: n,
101
- last_page: l,
101
+ current_page: o,
102
+ last_page: s,
102
103
  per_page: t,
103
- total: u,
104
- from: p,
104
+ total: _,
105
+ from: i,
105
106
  to: r,
106
107
  path: a,
107
- links: g,
108
+ links: n,
108
109
  //links
109
- first_page_url: v,
110
- last_page_url: c,
111
- next_page_url: m,
112
- prev_page_url: y,
110
+ first_page_url: g,
111
+ last_page_url: u,
112
+ next_page_url: y,
113
+ prev_page_url: d,
113
114
  //custom
114
- sort_by: f ?? "id",
115
- descending: d ?? !1
115
+ sort_by: m ?? "id",
116
+ descending: f ?? !1
116
117
  };
117
- }, q = (e, n) => {
118
- const { stateRoutes: l, settings: t } = R(
118
+ }, I = (e, o) => {
119
+ const { stateRoutes: s, settings: t } = R(
119
120
  e,
120
- n
121
+ o
121
122
  );
122
123
  k(() => {
123
- P.delete(l.value.drop, {
124
+ b.delete(s.value.drop, {
124
125
  preserveScroll: !0,
125
126
  preserveState: !0,
126
127
  data: { tableKey: t.value.tableKey }
127
128
  });
128
129
  });
129
- const u = b(), p = o(
130
- () => u.props[t.value.pagePropsKey] ?? null
131
- ), { data: r, pagination: a, getPaginatedRequest: g, validPage: v } = T(p), c = (s) => {
132
- s = g(s), t.value.useUrlQuery ? P.reload({
133
- only: [t.value.pagePropsKey],
134
- data: { tableKey: t.value.tableKey, ...s }
135
- }) : P.post(
136
- l.value.set,
130
+ const _ = P(), i = c(
131
+ () => _.props[t.value.pagePropsKey] ?? null
132
+ ), { data: r, pagination: a, getPaginatedRequest: n, validPage: g } = T(i), u = (l) => {
133
+ l = n(l), t.value.useUrlQuery ? b.reload({
134
+ only: t.value.reloadOnly,
135
+ data: { tableKey: t.value.tableKey, ...l }
136
+ }) : b.post(
137
+ s.value.set,
137
138
  {
138
139
  tableKey: t.value.tableKey,
139
- data: { ...s }
140
+ data: l
140
141
  },
141
142
  {
142
143
  preserveState: !0,
143
144
  preserveScroll: !0,
144
- only: [t.value.pagePropsKey]
145
+ only: t.value.reloadOnly
145
146
  }
146
147
  );
147
- }, m = () => {
148
- i(1);
149
148
  }, y = () => {
150
- i(a.value.current_page - 1);
151
- }, f = () => {
152
- i(a.value.current_page + 1);
149
+ v(1);
153
150
  }, d = () => {
154
- i(a.value.last_page);
155
- }, i = (s) => {
156
- if (!v(s)) {
157
- console.error(`Invalid page: ${s}`);
151
+ v(a.value.current_page - 1);
152
+ }, m = () => {
153
+ v(a.value.current_page + 1);
154
+ }, f = () => {
155
+ v(a.value.last_page);
156
+ }, v = (l) => {
157
+ if (!g(l)) {
158
+ console.error(`Invalid page: ${l}`);
158
159
  return;
159
160
  }
160
- c(g({ page: s }));
161
+ u(n({ page: l }));
161
162
  };
162
163
  return {
163
164
  data: r,
164
165
  pagination: a,
165
- reloadData: c,
166
- firstPage: m,
167
- previousPage: y,
168
- nextPage: f,
169
- lastPage: d,
170
- goToPage: i,
171
- itemsPerPage: (s) => {
172
- c(g({ per_page: s, page: 1 }));
166
+ reloadData: u,
167
+ firstPage: y,
168
+ previousPage: d,
169
+ nextPage: m,
170
+ lastPage: f,
171
+ goToPage: v,
172
+ itemsPerPage: (l) => {
173
+ u(n({ per_page: l, page: 1 }));
173
174
  },
174
- sortBy: (s, K) => {
175
- const D = K ?? a.value.sort_by === s ? !a.value.descending : !1;
176
- c(g({ sort_by: s, descending: D }));
175
+ sortBy: (l, K) => {
176
+ const D = K ?? a.value.sort_by === l ? !a.value.descending : !1;
177
+ u(n({ sort_by: l, descending: D }));
177
178
  }
178
179
  };
179
180
  };
180
- function z() {
181
+ function q() {
181
182
  return {
182
183
  install(e) {
183
184
  }
184
185
  };
185
186
  }
186
187
  export {
187
- z as createInertiaDataTable,
188
- S as getPaginationMeta,
189
- h as isResource,
188
+ q as createInertiaDataTable,
189
+ U as getPaginationMeta,
190
+ O as isResource,
190
191
  x as normalizePagination,
191
- q as useDataTable,
192
+ I as useDataTable,
192
193
  R as useInertiaDataTableConfig,
193
194
  T as useLaravelPagination
194
195
  };
@@ -33,9 +33,14 @@ export type InertiaDataTableOptions = {
33
33
  * The key in which the paginated data is stored in the page props. Defaults to the tableKey if not provided.
34
34
  */
35
35
  pagePropsKey?: MaybeRefOrGetter<string>;
36
+ /**
37
+ * Defines page props that should be reloaded along with the table data.
38
+ */
39
+ reloadOnly?: MaybeRefOrGetter<Array<string>>;
36
40
  };
37
41
  export type InertiaDataTableSettings = {
38
42
  tableKey: string;
39
43
  pagePropsKey: string;
40
44
  useUrlQuery: boolean;
45
+ reloadOnly: Array<string>;
41
46
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@starter-solutions/inertia-data-table-vue",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "license": "MIT",
5
5
  "description": "Vue 3 + Inertia.js data table utilities with Laravel backend integration.",
6
6
  "type": "module",