@inertiajs/core 2.2.4 → 2.2.5
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 +62 -26
- package/dist/index.esm.js.map +3 -3
- package/dist/index.js +62 -26
- package/dist/index.js.map +3 -3
- package/package.json +1 -1
- package/types/infiniteScroll/queryString.d.ts +1 -0
- package/types/types.d.ts +1 -0
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
|
|
@@ -2431,6 +2432,7 @@ var useInfiniteScrollData = (options) => {
|
|
|
2431
2432
|
};
|
|
2432
2433
|
const { previousPage, nextPage, currentPage: lastLoadedPage } = getScrollPropFromCurrentPage();
|
|
2433
2434
|
const state = {
|
|
2435
|
+
component: page.get().component,
|
|
2434
2436
|
loading: false,
|
|
2435
2437
|
previousPage,
|
|
2436
2438
|
nextPage,
|
|
@@ -2445,7 +2447,10 @@ var useInfiniteScrollData = (options) => {
|
|
|
2445
2447
|
state.lastLoadedPage = rememberedState.lastLoadedPage;
|
|
2446
2448
|
state.requestCount = rememberedState.requestCount || 0;
|
|
2447
2449
|
}
|
|
2448
|
-
const removeEventListener = router.on("success", () => {
|
|
2450
|
+
const removeEventListener = router.on("success", (event) => {
|
|
2451
|
+
if (state.component !== event.detail.page.component) {
|
|
2452
|
+
return;
|
|
2453
|
+
}
|
|
2449
2454
|
const scrollProp = getScrollPropFromCurrentPage();
|
|
2450
2455
|
if (scrollProp.reset) {
|
|
2451
2456
|
state.previousPage = scrollProp.previousPage;
|
|
@@ -2580,8 +2585,7 @@ var useInfiniteScrollElementManager = (options) => {
|
|
|
2580
2585
|
});
|
|
2581
2586
|
itemsMutationObserver.observe(options.getItemsElement(), { childList: true });
|
|
2582
2587
|
itemsObserver = intersectionObservers.new(
|
|
2583
|
-
(entry) => options.onItemIntersected(entry.target)
|
|
2584
|
-
{ threshold: 0 }
|
|
2588
|
+
(entry) => options.onItemIntersected(entry.target)
|
|
2585
2589
|
);
|
|
2586
2590
|
const observerOptions = {
|
|
2587
2591
|
root: options.getScrollableParent(),
|
|
@@ -2618,6 +2622,7 @@ var useInfiniteScrollElementManager = (options) => {
|
|
|
2618
2622
|
}
|
|
2619
2623
|
};
|
|
2620
2624
|
const flushAll = () => {
|
|
2625
|
+
disableTriggers();
|
|
2621
2626
|
intersectionObservers.flushAll();
|
|
2622
2627
|
itemsMutationObserver?.disconnect();
|
|
2623
2628
|
};
|
|
@@ -2719,13 +2724,49 @@ var useInfiniteScrollElementManager = (options) => {
|
|
|
2719
2724
|
};
|
|
2720
2725
|
|
|
2721
2726
|
// src/infiniteScroll/queryString.ts
|
|
2727
|
+
var queue3 = new Queue();
|
|
2728
|
+
var initialUrl;
|
|
2729
|
+
var payloadUrl;
|
|
2722
2730
|
var useInfiniteScrollQueryString = (options) => {
|
|
2731
|
+
let enabled = true;
|
|
2732
|
+
const queuePageUpdate = (page2) => {
|
|
2733
|
+
queue3.add(() => {
|
|
2734
|
+
return new Promise((resolve) => {
|
|
2735
|
+
if (!enabled) {
|
|
2736
|
+
initialUrl = payloadUrl = null;
|
|
2737
|
+
return resolve();
|
|
2738
|
+
}
|
|
2739
|
+
if (!initialUrl || !payloadUrl) {
|
|
2740
|
+
initialUrl = new URL(window.location.href);
|
|
2741
|
+
payloadUrl = new URL(window.location.href);
|
|
2742
|
+
}
|
|
2743
|
+
const pageName = options.getPageName();
|
|
2744
|
+
const searchParams = payloadUrl.searchParams;
|
|
2745
|
+
if (page2 === "1") {
|
|
2746
|
+
searchParams.delete(pageName);
|
|
2747
|
+
} else {
|
|
2748
|
+
searchParams.set(pageName, page2);
|
|
2749
|
+
}
|
|
2750
|
+
setTimeout(() => resolve());
|
|
2751
|
+
});
|
|
2752
|
+
}).finally(() => {
|
|
2753
|
+
if (enabled && initialUrl && payloadUrl && initialUrl.href !== payloadUrl.href) {
|
|
2754
|
+
router.replace({
|
|
2755
|
+
url: payloadUrl.toString(),
|
|
2756
|
+
preserveScroll: true,
|
|
2757
|
+
preserveState: true
|
|
2758
|
+
});
|
|
2759
|
+
}
|
|
2760
|
+
initialUrl = payloadUrl = null;
|
|
2761
|
+
});
|
|
2762
|
+
};
|
|
2723
2763
|
const onItemIntersected = debounce((itemElement) => {
|
|
2724
|
-
|
|
2764
|
+
const itemsElement = options.getItemsElement();
|
|
2765
|
+
if (!enabled || options.shouldPreserveUrl() || !itemElement || !itemsElement) {
|
|
2725
2766
|
return;
|
|
2726
2767
|
}
|
|
2727
2768
|
const pageMap = /* @__PURE__ */ new Map();
|
|
2728
|
-
const elements = [...
|
|
2769
|
+
const elements = [...itemsElement.children];
|
|
2729
2770
|
getElementsInViewportFromCollection(itemElement, elements).forEach((element) => {
|
|
2730
2771
|
const page2 = getPageFromElement(element) ?? "1";
|
|
2731
2772
|
if (pageMap.has(page2)) {
|
|
@@ -2736,23 +2777,13 @@ var useInfiniteScrollQueryString = (options) => {
|
|
|
2736
2777
|
});
|
|
2737
2778
|
const sortedPages = Array.from(pageMap.entries()).sort((a, b) => b[1] - a[1]);
|
|
2738
2779
|
const mostVisiblePage = sortedPages[0]?.[0];
|
|
2739
|
-
if (mostVisiblePage
|
|
2740
|
-
|
|
2780
|
+
if (mostVisiblePage !== void 0) {
|
|
2781
|
+
queuePageUpdate(mostVisiblePage);
|
|
2741
2782
|
}
|
|
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
2783
|
}, 250);
|
|
2754
2784
|
return {
|
|
2755
|
-
onItemIntersected
|
|
2785
|
+
onItemIntersected,
|
|
2786
|
+
cancel: () => enabled = false
|
|
2756
2787
|
};
|
|
2757
2788
|
};
|
|
2758
2789
|
|
|
@@ -2882,7 +2913,12 @@ function useInfiniteScroll(options) {
|
|
|
2882
2913
|
};
|
|
2883
2914
|
return {
|
|
2884
2915
|
dataManager,
|
|
2885
|
-
elementManager
|
|
2916
|
+
elementManager,
|
|
2917
|
+
flush: () => {
|
|
2918
|
+
dataManager.removeEventListener();
|
|
2919
|
+
elementManager.flushAll();
|
|
2920
|
+
queryStringManager.cancel();
|
|
2921
|
+
}
|
|
2886
2922
|
};
|
|
2887
2923
|
}
|
|
2888
2924
|
|
|
@@ -2940,7 +2976,7 @@ var set4 = (n) => {
|
|
|
2940
2976
|
const speed = settings.speed;
|
|
2941
2977
|
const ease = settings.easing;
|
|
2942
2978
|
progress3.offsetWidth;
|
|
2943
|
-
|
|
2979
|
+
queue4((next) => {
|
|
2944
2980
|
const barStyles = (() => {
|
|
2945
2981
|
if (settings.positionUsing === "translate3d") {
|
|
2946
2982
|
return {
|
|
@@ -3072,7 +3108,7 @@ function clamp(n, min, max) {
|
|
|
3072
3108
|
return n;
|
|
3073
3109
|
}
|
|
3074
3110
|
var toBarPercentage = (n) => (-1 + n) * 100;
|
|
3075
|
-
var
|
|
3111
|
+
var queue4 = /* @__PURE__ */ (() => {
|
|
3076
3112
|
const pending = [];
|
|
3077
3113
|
const next = () => {
|
|
3078
3114
|
const fn = pending.shift();
|