@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.esm.js
CHANGED
|
@@ -2186,11 +2186,12 @@ var getScrollableParent = (element) => {
|
|
|
2186
2186
|
};
|
|
2187
2187
|
var getElementsInViewportFromCollection = (referenceElement, elements) => {
|
|
2188
2188
|
const referenceIndex = elements.indexOf(referenceElement);
|
|
2189
|
-
const
|
|
2189
|
+
const upwardElements = [];
|
|
2190
|
+
const downwardElements = [];
|
|
2190
2191
|
for (let i = referenceIndex; i >= 0; i--) {
|
|
2191
2192
|
const element = elements[i];
|
|
2192
2193
|
if (elementInViewport(element)) {
|
|
2193
|
-
|
|
2194
|
+
upwardElements.push(element);
|
|
2194
2195
|
} else {
|
|
2195
2196
|
break;
|
|
2196
2197
|
}
|
|
@@ -2198,12 +2199,12 @@ var getElementsInViewportFromCollection = (referenceElement, elements) => {
|
|
|
2198
2199
|
for (let i = referenceIndex + 1; i < elements.length; i++) {
|
|
2199
2200
|
const element = elements[i];
|
|
2200
2201
|
if (elementInViewport(element)) {
|
|
2201
|
-
|
|
2202
|
+
downwardElements.push(element);
|
|
2202
2203
|
} else {
|
|
2203
2204
|
break;
|
|
2204
2205
|
}
|
|
2205
2206
|
}
|
|
2206
|
-
return
|
|
2207
|
+
return [...upwardElements.reverse(), ...downwardElements];
|
|
2207
2208
|
};
|
|
2208
2209
|
|
|
2209
2210
|
// src/formObject.ts
|
|
@@ -2377,29 +2378,37 @@ var useInfiniteScrollData = (options) => {
|
|
|
2377
2378
|
}
|
|
2378
2379
|
throw new Error(`The page object does not contain a scroll prop named "${options.getPropName()}".`);
|
|
2379
2380
|
};
|
|
2380
|
-
const { previousPage, nextPage, currentPage: lastLoadedPage } = getScrollPropFromCurrentPage();
|
|
2381
2381
|
const state = {
|
|
2382
|
+
component: null,
|
|
2382
2383
|
loading: false,
|
|
2383
|
-
previousPage,
|
|
2384
|
-
nextPage,
|
|
2385
|
-
lastLoadedPage,
|
|
2384
|
+
previousPage: null,
|
|
2385
|
+
nextPage: null,
|
|
2386
|
+
lastLoadedPage: null,
|
|
2386
2387
|
requestCount: 0
|
|
2387
2388
|
};
|
|
2388
|
-
const
|
|
2389
|
-
const rememberedState = router.restore(getRememberKey());
|
|
2390
|
-
if (rememberedState && typeof rememberedState === "object") {
|
|
2391
|
-
state.previousPage = rememberedState.previousPage;
|
|
2392
|
-
state.nextPage = rememberedState.nextPage;
|
|
2393
|
-
state.lastLoadedPage = rememberedState.lastLoadedPage;
|
|
2394
|
-
state.requestCount = rememberedState.requestCount || 0;
|
|
2395
|
-
}
|
|
2396
|
-
const removeEventListener = router.on("success", () => {
|
|
2389
|
+
const resetState = () => {
|
|
2397
2390
|
const scrollProp = getScrollPropFromCurrentPage();
|
|
2398
|
-
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2391
|
+
state.component = page.get().component;
|
|
2392
|
+
state.loading = false;
|
|
2393
|
+
state.previousPage = scrollProp.previousPage;
|
|
2394
|
+
state.nextPage = scrollProp.nextPage;
|
|
2395
|
+
state.lastLoadedPage = scrollProp.currentPage;
|
|
2396
|
+
state.requestCount = 0;
|
|
2397
|
+
};
|
|
2398
|
+
const getRememberKey = () => `inertia:infinite-scroll-data:${options.getPropName()}`;
|
|
2399
|
+
if (typeof window !== "undefined") {
|
|
2400
|
+
resetState();
|
|
2401
|
+
const rememberedState = router.restore(getRememberKey());
|
|
2402
|
+
if (rememberedState && typeof rememberedState === "object") {
|
|
2403
|
+
state.previousPage = rememberedState.previousPage;
|
|
2404
|
+
state.nextPage = rememberedState.nextPage;
|
|
2405
|
+
state.lastLoadedPage = rememberedState.lastLoadedPage;
|
|
2406
|
+
state.requestCount = rememberedState.requestCount || 0;
|
|
2407
|
+
}
|
|
2408
|
+
}
|
|
2409
|
+
const removeEventListener = router.on("success", (event) => {
|
|
2410
|
+
if (state.component === event.detail.page.component && getScrollPropFromCurrentPage().reset) {
|
|
2411
|
+
resetState();
|
|
2403
2412
|
}
|
|
2404
2413
|
});
|
|
2405
2414
|
const getScrollPropKeyForSide = (side) => {
|
|
@@ -2528,8 +2537,7 @@ var useInfiniteScrollElementManager = (options) => {
|
|
|
2528
2537
|
});
|
|
2529
2538
|
itemsMutationObserver.observe(options.getItemsElement(), { childList: true });
|
|
2530
2539
|
itemsObserver = intersectionObservers.new(
|
|
2531
|
-
(entry) => options.onItemIntersected(entry.target)
|
|
2532
|
-
{ threshold: 0 }
|
|
2540
|
+
(entry) => options.onItemIntersected(entry.target)
|
|
2533
2541
|
);
|
|
2534
2542
|
const observerOptions = {
|
|
2535
2543
|
root: options.getScrollableParent(),
|
|
@@ -2566,6 +2574,7 @@ var useInfiniteScrollElementManager = (options) => {
|
|
|
2566
2574
|
}
|
|
2567
2575
|
};
|
|
2568
2576
|
const flushAll = () => {
|
|
2577
|
+
disableTriggers();
|
|
2569
2578
|
intersectionObservers.flushAll();
|
|
2570
2579
|
itemsMutationObserver?.disconnect();
|
|
2571
2580
|
};
|
|
@@ -2667,13 +2676,49 @@ var useInfiniteScrollElementManager = (options) => {
|
|
|
2667
2676
|
};
|
|
2668
2677
|
|
|
2669
2678
|
// src/infiniteScroll/queryString.ts
|
|
2679
|
+
var queue3 = new Queue();
|
|
2680
|
+
var initialUrl;
|
|
2681
|
+
var payloadUrl;
|
|
2670
2682
|
var useInfiniteScrollQueryString = (options) => {
|
|
2683
|
+
let enabled = true;
|
|
2684
|
+
const queuePageUpdate = (page2) => {
|
|
2685
|
+
queue3.add(() => {
|
|
2686
|
+
return new Promise((resolve) => {
|
|
2687
|
+
if (!enabled) {
|
|
2688
|
+
initialUrl = payloadUrl = null;
|
|
2689
|
+
return resolve();
|
|
2690
|
+
}
|
|
2691
|
+
if (!initialUrl || !payloadUrl) {
|
|
2692
|
+
initialUrl = new URL(window.location.href);
|
|
2693
|
+
payloadUrl = new URL(window.location.href);
|
|
2694
|
+
}
|
|
2695
|
+
const pageName = options.getPageName();
|
|
2696
|
+
const searchParams = payloadUrl.searchParams;
|
|
2697
|
+
if (page2 === "1") {
|
|
2698
|
+
searchParams.delete(pageName);
|
|
2699
|
+
} else {
|
|
2700
|
+
searchParams.set(pageName, page2);
|
|
2701
|
+
}
|
|
2702
|
+
setTimeout(() => resolve());
|
|
2703
|
+
});
|
|
2704
|
+
}).finally(() => {
|
|
2705
|
+
if (enabled && initialUrl && payloadUrl && initialUrl.href !== payloadUrl.href) {
|
|
2706
|
+
router.replace({
|
|
2707
|
+
url: payloadUrl.toString(),
|
|
2708
|
+
preserveScroll: true,
|
|
2709
|
+
preserveState: true
|
|
2710
|
+
});
|
|
2711
|
+
}
|
|
2712
|
+
initialUrl = payloadUrl = null;
|
|
2713
|
+
});
|
|
2714
|
+
};
|
|
2671
2715
|
const onItemIntersected = debounce((itemElement) => {
|
|
2672
|
-
|
|
2716
|
+
const itemsElement = options.getItemsElement();
|
|
2717
|
+
if (!enabled || options.shouldPreserveUrl() || !itemElement || !itemsElement) {
|
|
2673
2718
|
return;
|
|
2674
2719
|
}
|
|
2675
2720
|
const pageMap = /* @__PURE__ */ new Map();
|
|
2676
|
-
const elements = [...
|
|
2721
|
+
const elements = [...itemsElement.children];
|
|
2677
2722
|
getElementsInViewportFromCollection(itemElement, elements).forEach((element) => {
|
|
2678
2723
|
const page2 = getPageFromElement(element) ?? "1";
|
|
2679
2724
|
if (pageMap.has(page2)) {
|
|
@@ -2684,23 +2729,13 @@ var useInfiniteScrollQueryString = (options) => {
|
|
|
2684
2729
|
});
|
|
2685
2730
|
const sortedPages = Array.from(pageMap.entries()).sort((a, b) => b[1] - a[1]);
|
|
2686
2731
|
const mostVisiblePage = sortedPages[0]?.[0];
|
|
2687
|
-
if (mostVisiblePage
|
|
2688
|
-
|
|
2732
|
+
if (mostVisiblePage !== void 0) {
|
|
2733
|
+
queuePageUpdate(mostVisiblePage);
|
|
2689
2734
|
}
|
|
2690
|
-
const url = new URL(window.location.href);
|
|
2691
|
-
if (mostVisiblePage === "1") {
|
|
2692
|
-
url.searchParams.delete(options.getPageName());
|
|
2693
|
-
} else {
|
|
2694
|
-
url.searchParams.set(options.getPageName(), mostVisiblePage.toString());
|
|
2695
|
-
}
|
|
2696
|
-
router.replace({
|
|
2697
|
-
url: url.toString(),
|
|
2698
|
-
preserveScroll: true,
|
|
2699
|
-
preserveState: true
|
|
2700
|
-
});
|
|
2701
2735
|
}, 250);
|
|
2702
2736
|
return {
|
|
2703
|
-
onItemIntersected
|
|
2737
|
+
onItemIntersected,
|
|
2738
|
+
cancel: () => enabled = false
|
|
2704
2739
|
};
|
|
2705
2740
|
};
|
|
2706
2741
|
|
|
@@ -2830,7 +2865,12 @@ function useInfiniteScroll(options) {
|
|
|
2830
2865
|
};
|
|
2831
2866
|
return {
|
|
2832
2867
|
dataManager,
|
|
2833
|
-
elementManager
|
|
2868
|
+
elementManager,
|
|
2869
|
+
flush: () => {
|
|
2870
|
+
dataManager.removeEventListener();
|
|
2871
|
+
elementManager.flushAll();
|
|
2872
|
+
queryStringManager.cancel();
|
|
2873
|
+
}
|
|
2834
2874
|
};
|
|
2835
2875
|
}
|
|
2836
2876
|
|
|
@@ -2888,7 +2928,7 @@ var set4 = (n) => {
|
|
|
2888
2928
|
const speed = settings.speed;
|
|
2889
2929
|
const ease = settings.easing;
|
|
2890
2930
|
progress3.offsetWidth;
|
|
2891
|
-
|
|
2931
|
+
queue4((next) => {
|
|
2892
2932
|
const barStyles = (() => {
|
|
2893
2933
|
if (settings.positionUsing === "translate3d") {
|
|
2894
2934
|
return {
|
|
@@ -3020,7 +3060,7 @@ function clamp(n, min, max) {
|
|
|
3020
3060
|
return n;
|
|
3021
3061
|
}
|
|
3022
3062
|
var toBarPercentage = (n) => (-1 + n) * 100;
|
|
3023
|
-
var
|
|
3063
|
+
var queue4 = /* @__PURE__ */ (() => {
|
|
3024
3064
|
const pending = [];
|
|
3025
3065
|
const next = () => {
|
|
3026
3066
|
const fn = pending.shift();
|