@inertiajs/core 2.2.4 → 2.2.6
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.esm.js +83 -43
- package/dist/index.esm.js.map +3 -3
- package/dist/index.js +83 -43
- package/dist/index.js.map +3 -3
- package/package.json +1 -1
- package/types/infiniteScroll/data.d.ts +2 -2
- package/types/infiniteScroll/queryString.d.ts +1 -0
- package/types/types.d.ts +6 -5
package/dist/index.js
CHANGED
|
@@ -2238,11 +2238,12 @@ var getScrollableParent = (element) => {
|
|
|
2238
2238
|
};
|
|
2239
2239
|
var getElementsInViewportFromCollection = (referenceElement, elements) => {
|
|
2240
2240
|
const referenceIndex = elements.indexOf(referenceElement);
|
|
2241
|
-
const
|
|
2241
|
+
const upwardElements = [];
|
|
2242
|
+
const downwardElements = [];
|
|
2242
2243
|
for (let i = referenceIndex; i >= 0; i--) {
|
|
2243
2244
|
const element = elements[i];
|
|
2244
2245
|
if (elementInViewport(element)) {
|
|
2245
|
-
|
|
2246
|
+
upwardElements.push(element);
|
|
2246
2247
|
} else {
|
|
2247
2248
|
break;
|
|
2248
2249
|
}
|
|
@@ -2250,12 +2251,12 @@ var getElementsInViewportFromCollection = (referenceElement, elements) => {
|
|
|
2250
2251
|
for (let i = referenceIndex + 1; i < elements.length; i++) {
|
|
2251
2252
|
const element = elements[i];
|
|
2252
2253
|
if (elementInViewport(element)) {
|
|
2253
|
-
|
|
2254
|
+
downwardElements.push(element);
|
|
2254
2255
|
} else {
|
|
2255
2256
|
break;
|
|
2256
2257
|
}
|
|
2257
2258
|
}
|
|
2258
|
-
return
|
|
2259
|
+
return [...upwardElements.reverse(), ...downwardElements];
|
|
2259
2260
|
};
|
|
2260
2261
|
|
|
2261
2262
|
// src/formObject.ts
|
|
@@ -2429,29 +2430,37 @@ var useInfiniteScrollData = (options) => {
|
|
|
2429
2430
|
}
|
|
2430
2431
|
throw new Error(`The page object does not contain a scroll prop named "${options.getPropName()}".`);
|
|
2431
2432
|
};
|
|
2432
|
-
const { previousPage, nextPage, currentPage: lastLoadedPage } = getScrollPropFromCurrentPage();
|
|
2433
2433
|
const state = {
|
|
2434
|
+
component: null,
|
|
2434
2435
|
loading: false,
|
|
2435
|
-
previousPage,
|
|
2436
|
-
nextPage,
|
|
2437
|
-
lastLoadedPage,
|
|
2436
|
+
previousPage: null,
|
|
2437
|
+
nextPage: null,
|
|
2438
|
+
lastLoadedPage: null,
|
|
2438
2439
|
requestCount: 0
|
|
2439
2440
|
};
|
|
2440
|
-
const
|
|
2441
|
-
const rememberedState = router.restore(getRememberKey());
|
|
2442
|
-
if (rememberedState && typeof rememberedState === "object") {
|
|
2443
|
-
state.previousPage = rememberedState.previousPage;
|
|
2444
|
-
state.nextPage = rememberedState.nextPage;
|
|
2445
|
-
state.lastLoadedPage = rememberedState.lastLoadedPage;
|
|
2446
|
-
state.requestCount = rememberedState.requestCount || 0;
|
|
2447
|
-
}
|
|
2448
|
-
const removeEventListener = router.on("success", () => {
|
|
2441
|
+
const resetState = () => {
|
|
2449
2442
|
const scrollProp = getScrollPropFromCurrentPage();
|
|
2450
|
-
|
|
2451
|
-
|
|
2452
|
-
|
|
2453
|
-
|
|
2454
|
-
|
|
2443
|
+
state.component = page.get().component;
|
|
2444
|
+
state.loading = false;
|
|
2445
|
+
state.previousPage = scrollProp.previousPage;
|
|
2446
|
+
state.nextPage = scrollProp.nextPage;
|
|
2447
|
+
state.lastLoadedPage = scrollProp.currentPage;
|
|
2448
|
+
state.requestCount = 0;
|
|
2449
|
+
};
|
|
2450
|
+
const getRememberKey = () => `inertia:infinite-scroll-data:${options.getPropName()}`;
|
|
2451
|
+
if (typeof window !== "undefined") {
|
|
2452
|
+
resetState();
|
|
2453
|
+
const rememberedState = router.restore(getRememberKey());
|
|
2454
|
+
if (rememberedState && typeof rememberedState === "object") {
|
|
2455
|
+
state.previousPage = rememberedState.previousPage;
|
|
2456
|
+
state.nextPage = rememberedState.nextPage;
|
|
2457
|
+
state.lastLoadedPage = rememberedState.lastLoadedPage;
|
|
2458
|
+
state.requestCount = rememberedState.requestCount || 0;
|
|
2459
|
+
}
|
|
2460
|
+
}
|
|
2461
|
+
const removeEventListener = router.on("success", (event) => {
|
|
2462
|
+
if (state.component === event.detail.page.component && getScrollPropFromCurrentPage().reset) {
|
|
2463
|
+
resetState();
|
|
2455
2464
|
}
|
|
2456
2465
|
});
|
|
2457
2466
|
const getScrollPropKeyForSide = (side) => {
|
|
@@ -2580,8 +2589,7 @@ var useInfiniteScrollElementManager = (options) => {
|
|
|
2580
2589
|
});
|
|
2581
2590
|
itemsMutationObserver.observe(options.getItemsElement(), { childList: true });
|
|
2582
2591
|
itemsObserver = intersectionObservers.new(
|
|
2583
|
-
(entry) => options.onItemIntersected(entry.target)
|
|
2584
|
-
{ threshold: 0 }
|
|
2592
|
+
(entry) => options.onItemIntersected(entry.target)
|
|
2585
2593
|
);
|
|
2586
2594
|
const observerOptions = {
|
|
2587
2595
|
root: options.getScrollableParent(),
|
|
@@ -2618,6 +2626,7 @@ var useInfiniteScrollElementManager = (options) => {
|
|
|
2618
2626
|
}
|
|
2619
2627
|
};
|
|
2620
2628
|
const flushAll = () => {
|
|
2629
|
+
disableTriggers();
|
|
2621
2630
|
intersectionObservers.flushAll();
|
|
2622
2631
|
itemsMutationObserver?.disconnect();
|
|
2623
2632
|
};
|
|
@@ -2719,13 +2728,49 @@ var useInfiniteScrollElementManager = (options) => {
|
|
|
2719
2728
|
};
|
|
2720
2729
|
|
|
2721
2730
|
// src/infiniteScroll/queryString.ts
|
|
2731
|
+
var queue3 = new Queue();
|
|
2732
|
+
var initialUrl;
|
|
2733
|
+
var payloadUrl;
|
|
2722
2734
|
var useInfiniteScrollQueryString = (options) => {
|
|
2735
|
+
let enabled = true;
|
|
2736
|
+
const queuePageUpdate = (page2) => {
|
|
2737
|
+
queue3.add(() => {
|
|
2738
|
+
return new Promise((resolve) => {
|
|
2739
|
+
if (!enabled) {
|
|
2740
|
+
initialUrl = payloadUrl = null;
|
|
2741
|
+
return resolve();
|
|
2742
|
+
}
|
|
2743
|
+
if (!initialUrl || !payloadUrl) {
|
|
2744
|
+
initialUrl = new URL(window.location.href);
|
|
2745
|
+
payloadUrl = new URL(window.location.href);
|
|
2746
|
+
}
|
|
2747
|
+
const pageName = options.getPageName();
|
|
2748
|
+
const searchParams = payloadUrl.searchParams;
|
|
2749
|
+
if (page2 === "1") {
|
|
2750
|
+
searchParams.delete(pageName);
|
|
2751
|
+
} else {
|
|
2752
|
+
searchParams.set(pageName, page2);
|
|
2753
|
+
}
|
|
2754
|
+
setTimeout(() => resolve());
|
|
2755
|
+
});
|
|
2756
|
+
}).finally(() => {
|
|
2757
|
+
if (enabled && initialUrl && payloadUrl && initialUrl.href !== payloadUrl.href) {
|
|
2758
|
+
router.replace({
|
|
2759
|
+
url: payloadUrl.toString(),
|
|
2760
|
+
preserveScroll: true,
|
|
2761
|
+
preserveState: true
|
|
2762
|
+
});
|
|
2763
|
+
}
|
|
2764
|
+
initialUrl = payloadUrl = null;
|
|
2765
|
+
});
|
|
2766
|
+
};
|
|
2723
2767
|
const onItemIntersected = debounce((itemElement) => {
|
|
2724
|
-
|
|
2768
|
+
const itemsElement = options.getItemsElement();
|
|
2769
|
+
if (!enabled || options.shouldPreserveUrl() || !itemElement || !itemsElement) {
|
|
2725
2770
|
return;
|
|
2726
2771
|
}
|
|
2727
2772
|
const pageMap = /* @__PURE__ */ new Map();
|
|
2728
|
-
const elements = [...
|
|
2773
|
+
const elements = [...itemsElement.children];
|
|
2729
2774
|
getElementsInViewportFromCollection(itemElement, elements).forEach((element) => {
|
|
2730
2775
|
const page2 = getPageFromElement(element) ?? "1";
|
|
2731
2776
|
if (pageMap.has(page2)) {
|
|
@@ -2736,23 +2781,13 @@ var useInfiniteScrollQueryString = (options) => {
|
|
|
2736
2781
|
});
|
|
2737
2782
|
const sortedPages = Array.from(pageMap.entries()).sort((a, b) => b[1] - a[1]);
|
|
2738
2783
|
const mostVisiblePage = sortedPages[0]?.[0];
|
|
2739
|
-
if (mostVisiblePage
|
|
2740
|
-
|
|
2784
|
+
if (mostVisiblePage !== void 0) {
|
|
2785
|
+
queuePageUpdate(mostVisiblePage);
|
|
2741
2786
|
}
|
|
2742
|
-
const url = new URL(window.location.href);
|
|
2743
|
-
if (mostVisiblePage === "1") {
|
|
2744
|
-
url.searchParams.delete(options.getPageName());
|
|
2745
|
-
} else {
|
|
2746
|
-
url.searchParams.set(options.getPageName(), mostVisiblePage.toString());
|
|
2747
|
-
}
|
|
2748
|
-
router.replace({
|
|
2749
|
-
url: url.toString(),
|
|
2750
|
-
preserveScroll: true,
|
|
2751
|
-
preserveState: true
|
|
2752
|
-
});
|
|
2753
2787
|
}, 250);
|
|
2754
2788
|
return {
|
|
2755
|
-
onItemIntersected
|
|
2789
|
+
onItemIntersected,
|
|
2790
|
+
cancel: () => enabled = false
|
|
2756
2791
|
};
|
|
2757
2792
|
};
|
|
2758
2793
|
|
|
@@ -2882,7 +2917,12 @@ function useInfiniteScroll(options) {
|
|
|
2882
2917
|
};
|
|
2883
2918
|
return {
|
|
2884
2919
|
dataManager,
|
|
2885
|
-
elementManager
|
|
2920
|
+
elementManager,
|
|
2921
|
+
flush: () => {
|
|
2922
|
+
dataManager.removeEventListener();
|
|
2923
|
+
elementManager.flushAll();
|
|
2924
|
+
queryStringManager.cancel();
|
|
2925
|
+
}
|
|
2886
2926
|
};
|
|
2887
2927
|
}
|
|
2888
2928
|
|
|
@@ -2940,7 +2980,7 @@ var set4 = (n) => {
|
|
|
2940
2980
|
const speed = settings.speed;
|
|
2941
2981
|
const ease = settings.easing;
|
|
2942
2982
|
progress3.offsetWidth;
|
|
2943
|
-
|
|
2983
|
+
queue4((next) => {
|
|
2944
2984
|
const barStyles = (() => {
|
|
2945
2985
|
if (settings.positionUsing === "translate3d") {
|
|
2946
2986
|
return {
|
|
@@ -3072,7 +3112,7 @@ function clamp(n, min, max) {
|
|
|
3072
3112
|
return n;
|
|
3073
3113
|
}
|
|
3074
3114
|
var toBarPercentage = (n) => (-1 + n) * 100;
|
|
3075
|
-
var
|
|
3115
|
+
var queue4 = /* @__PURE__ */ (() => {
|
|
3076
3116
|
const pending = [];
|
|
3077
3117
|
const next = () => {
|
|
3078
3118
|
const fn = pending.shift();
|