You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 line
1.5 KiB
1 line
1.5 KiB
function e(e,t){let n=typeof e==`string`?Number(e):typeof e==`number`?e:NaN;return Number.isInteger(n)&&n>0?n:t}var t=new Set([`page`,`per_page`]);function n(e){if(!e||typeof e!=`object`||Array.isArray(e))return{};let n={};for(let[r,i]of Object.entries(e)){if(t.has(r)||i==null)continue;let e=String(i).trim();e!==``&&(n[r]=e)}return n}function r(e){return n(e)}function i(e,t){return`cxxfds.list.${e}.${t}`}function a(e,t){if(!(!e||typeof sessionStorage>`u`))try{sessionStorage.setItem(e,JSON.stringify({page:t.page,perPage:t.perPage,filters:n(t.filters)}))}catch{}}function o(t){if(!t||typeof sessionStorage>`u`)return null;try{let r=sessionStorage.getItem(t);if(!r)return null;let i=JSON.parse(r);return{page:e(i.page,1),perPage:e(i.perPage,15),filters:n(i.filters)}}catch{return null}}function s(e,t=15){let r={...n(e.filters)};return e.page>1&&(r.page=String(e.page)),e.perPage!==t&&(r.per_page=String(e.perPage)),r}function c(e,t){let n=new Set([...Object.keys(e),...Object.keys(t)]);for(let r of n)if((e[r]??``)!==(typeof t[r]==`string`?t[r]:t[r]==null?``:String(t[r])))return!1;return!0}function l(e,t){return c(e,t)}function u(t,n,i={page:1,perPage:15,filters:{}}){let a=o(t),s=e(n.page,0),c=e(n.per_page,0),l=r(n);return{page:s>0?s:a?.page??i.page,perPage:c>0?c:a?.perPage??i.perPage,filters:{...i.filters,...a?.filters,...l}}}function d(t,n,i=15){let a=e(n.page,0),c=e(n.per_page,0),l=o(t);return s({page:a>0?a:l?.page??1,perPage:c>0?c:l?.perPage??i,filters:{...l?.filters,...r(n)}},i)}export{u as a,d as i,s as n,a as o,l as r,i as t}; |