@inertiajs/core 2.2.3 → 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 +82 -45
- package/dist/index.esm.js.map +3 -3
- package/dist/index.js +82 -45
- package/dist/index.js.map +3 -3
- package/package.json +4 -2
- package/types/infiniteScroll/queryString.d.ts +1 -0
- package/types/types.d.ts +2 -1
package/dist/index.js
CHANGED
|
@@ -307,25 +307,28 @@ var Scroll = class {
|
|
|
307
307
|
}
|
|
308
308
|
}
|
|
309
309
|
static restore(scrollRegions) {
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
region.
|
|
321
|
-
|
|
310
|
+
if (typeof window === "undefined") {
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
window.requestAnimationFrame(() => {
|
|
314
|
+
this.restoreDocument();
|
|
315
|
+
this.regions().forEach((region, index) => {
|
|
316
|
+
const scrollPosition = scrollRegions[index];
|
|
317
|
+
if (!scrollPosition) {
|
|
318
|
+
return;
|
|
319
|
+
}
|
|
320
|
+
if (typeof region.scrollTo === "function") {
|
|
321
|
+
region.scrollTo(scrollPosition.left, scrollPosition.top);
|
|
322
|
+
} else {
|
|
323
|
+
region.scrollTop = scrollPosition.top;
|
|
324
|
+
region.scrollLeft = scrollPosition.left;
|
|
325
|
+
}
|
|
326
|
+
});
|
|
322
327
|
});
|
|
323
328
|
}
|
|
324
329
|
static restoreDocument() {
|
|
325
330
|
const scrollPosition = history.getDocumentScrollPosition();
|
|
326
|
-
|
|
327
|
-
window.scrollTo(scrollPosition.left, scrollPosition.top);
|
|
328
|
-
}
|
|
331
|
+
window.scrollTo(scrollPosition.left, scrollPosition.top);
|
|
329
332
|
}
|
|
330
333
|
static onScroll(event) {
|
|
331
334
|
const target = event.target;
|
|
@@ -836,9 +839,7 @@ var EventHandler = class {
|
|
|
836
839
|
}
|
|
837
840
|
router.cancelAll();
|
|
838
841
|
page.setQuietly(data, { preserveState: false }).then(() => {
|
|
839
|
-
|
|
840
|
-
Scroll.restore(history.getScrollRegions());
|
|
841
|
-
});
|
|
842
|
+
Scroll.restore(history.getScrollRegions());
|
|
842
843
|
fireNavigateEvent(page.get());
|
|
843
844
|
});
|
|
844
845
|
}).catch(() => {
|
|
@@ -1665,7 +1666,7 @@ var Response = class _Response {
|
|
|
1665
1666
|
pageResponse.props[prop] = deepMerge(currentProp, incomingProp, prop);
|
|
1666
1667
|
});
|
|
1667
1668
|
pageResponse.props = { ...page.get().props, ...pageResponse.props };
|
|
1668
|
-
if (
|
|
1669
|
+
if (page.get().scrollProps) {
|
|
1669
1670
|
pageResponse.scrollProps = {
|
|
1670
1671
|
...page.get().scrollProps || {},
|
|
1671
1672
|
...pageResponse.scrollProps || {}
|
|
@@ -2237,11 +2238,12 @@ var getScrollableParent = (element) => {
|
|
|
2237
2238
|
};
|
|
2238
2239
|
var getElementsInViewportFromCollection = (referenceElement, elements) => {
|
|
2239
2240
|
const referenceIndex = elements.indexOf(referenceElement);
|
|
2240
|
-
const
|
|
2241
|
+
const upwardElements = [];
|
|
2242
|
+
const downwardElements = [];
|
|
2241
2243
|
for (let i = referenceIndex; i >= 0; i--) {
|
|
2242
2244
|
const element = elements[i];
|
|
2243
2245
|
if (elementInViewport(element)) {
|
|
2244
|
-
|
|
2246
|
+
upwardElements.push(element);
|
|
2245
2247
|
} else {
|
|
2246
2248
|
break;
|
|
2247
2249
|
}
|
|
@@ -2249,12 +2251,12 @@ var getElementsInViewportFromCollection = (referenceElement, elements) => {
|
|
|
2249
2251
|
for (let i = referenceIndex + 1; i < elements.length; i++) {
|
|
2250
2252
|
const element = elements[i];
|
|
2251
2253
|
if (elementInViewport(element)) {
|
|
2252
|
-
|
|
2254
|
+
downwardElements.push(element);
|
|
2253
2255
|
} else {
|
|
2254
2256
|
break;
|
|
2255
2257
|
}
|
|
2256
2258
|
}
|
|
2257
|
-
return
|
|
2259
|
+
return [...upwardElements.reverse(), ...downwardElements];
|
|
2258
2260
|
};
|
|
2259
2261
|
|
|
2260
2262
|
// src/formObject.ts
|
|
@@ -2430,6 +2432,7 @@ var useInfiniteScrollData = (options) => {
|
|
|
2430
2432
|
};
|
|
2431
2433
|
const { previousPage, nextPage, currentPage: lastLoadedPage } = getScrollPropFromCurrentPage();
|
|
2432
2434
|
const state = {
|
|
2435
|
+
component: page.get().component,
|
|
2433
2436
|
loading: false,
|
|
2434
2437
|
previousPage,
|
|
2435
2438
|
nextPage,
|
|
@@ -2444,7 +2447,10 @@ var useInfiniteScrollData = (options) => {
|
|
|
2444
2447
|
state.lastLoadedPage = rememberedState.lastLoadedPage;
|
|
2445
2448
|
state.requestCount = rememberedState.requestCount || 0;
|
|
2446
2449
|
}
|
|
2447
|
-
const removeEventListener = router.on("success", () => {
|
|
2450
|
+
const removeEventListener = router.on("success", (event) => {
|
|
2451
|
+
if (state.component !== event.detail.page.component) {
|
|
2452
|
+
return;
|
|
2453
|
+
}
|
|
2448
2454
|
const scrollProp = getScrollPropFromCurrentPage();
|
|
2449
2455
|
if (scrollProp.reset) {
|
|
2450
2456
|
state.previousPage = scrollProp.previousPage;
|
|
@@ -2579,8 +2585,7 @@ var useInfiniteScrollElementManager = (options) => {
|
|
|
2579
2585
|
});
|
|
2580
2586
|
itemsMutationObserver.observe(options.getItemsElement(), { childList: true });
|
|
2581
2587
|
itemsObserver = intersectionObservers.new(
|
|
2582
|
-
(entry) => options.onItemIntersected(entry.target)
|
|
2583
|
-
{ threshold: 0 }
|
|
2588
|
+
(entry) => options.onItemIntersected(entry.target)
|
|
2584
2589
|
);
|
|
2585
2590
|
const observerOptions = {
|
|
2586
2591
|
root: options.getScrollableParent(),
|
|
@@ -2617,6 +2622,7 @@ var useInfiniteScrollElementManager = (options) => {
|
|
|
2617
2622
|
}
|
|
2618
2623
|
};
|
|
2619
2624
|
const flushAll = () => {
|
|
2625
|
+
disableTriggers();
|
|
2620
2626
|
intersectionObservers.flushAll();
|
|
2621
2627
|
itemsMutationObserver?.disconnect();
|
|
2622
2628
|
};
|
|
@@ -2718,13 +2724,49 @@ var useInfiniteScrollElementManager = (options) => {
|
|
|
2718
2724
|
};
|
|
2719
2725
|
|
|
2720
2726
|
// src/infiniteScroll/queryString.ts
|
|
2727
|
+
var queue3 = new Queue();
|
|
2728
|
+
var initialUrl;
|
|
2729
|
+
var payloadUrl;
|
|
2721
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
|
+
};
|
|
2722
2763
|
const onItemIntersected = debounce((itemElement) => {
|
|
2723
|
-
|
|
2764
|
+
const itemsElement = options.getItemsElement();
|
|
2765
|
+
if (!enabled || options.shouldPreserveUrl() || !itemElement || !itemsElement) {
|
|
2724
2766
|
return;
|
|
2725
2767
|
}
|
|
2726
2768
|
const pageMap = /* @__PURE__ */ new Map();
|
|
2727
|
-
const elements = [...
|
|
2769
|
+
const elements = [...itemsElement.children];
|
|
2728
2770
|
getElementsInViewportFromCollection(itemElement, elements).forEach((element) => {
|
|
2729
2771
|
const page2 = getPageFromElement(element) ?? "1";
|
|
2730
2772
|
if (pageMap.has(page2)) {
|
|
@@ -2735,23 +2777,13 @@ var useInfiniteScrollQueryString = (options) => {
|
|
|
2735
2777
|
});
|
|
2736
2778
|
const sortedPages = Array.from(pageMap.entries()).sort((a, b) => b[1] - a[1]);
|
|
2737
2779
|
const mostVisiblePage = sortedPages[0]?.[0];
|
|
2738
|
-
if (mostVisiblePage
|
|
2739
|
-
|
|
2780
|
+
if (mostVisiblePage !== void 0) {
|
|
2781
|
+
queuePageUpdate(mostVisiblePage);
|
|
2740
2782
|
}
|
|
2741
|
-
const url = new URL(window.location.href);
|
|
2742
|
-
if (mostVisiblePage === "1") {
|
|
2743
|
-
url.searchParams.delete(options.getPageName());
|
|
2744
|
-
} else {
|
|
2745
|
-
url.searchParams.set(options.getPageName(), mostVisiblePage.toString());
|
|
2746
|
-
}
|
|
2747
|
-
router.replace({
|
|
2748
|
-
url: url.toString(),
|
|
2749
|
-
preserveScroll: true,
|
|
2750
|
-
preserveState: true
|
|
2751
|
-
});
|
|
2752
2783
|
}, 250);
|
|
2753
2784
|
return {
|
|
2754
|
-
onItemIntersected
|
|
2785
|
+
onItemIntersected,
|
|
2786
|
+
cancel: () => enabled = false
|
|
2755
2787
|
};
|
|
2756
2788
|
};
|
|
2757
2789
|
|
|
@@ -2881,7 +2913,12 @@ function useInfiniteScroll(options) {
|
|
|
2881
2913
|
};
|
|
2882
2914
|
return {
|
|
2883
2915
|
dataManager,
|
|
2884
|
-
elementManager
|
|
2916
|
+
elementManager,
|
|
2917
|
+
flush: () => {
|
|
2918
|
+
dataManager.removeEventListener();
|
|
2919
|
+
elementManager.flushAll();
|
|
2920
|
+
queryStringManager.cancel();
|
|
2921
|
+
}
|
|
2885
2922
|
};
|
|
2886
2923
|
}
|
|
2887
2924
|
|
|
@@ -2939,7 +2976,7 @@ var set4 = (n) => {
|
|
|
2939
2976
|
const speed = settings.speed;
|
|
2940
2977
|
const ease = settings.easing;
|
|
2941
2978
|
progress3.offsetWidth;
|
|
2942
|
-
|
|
2979
|
+
queue4((next) => {
|
|
2943
2980
|
const barStyles = (() => {
|
|
2944
2981
|
if (settings.positionUsing === "translate3d") {
|
|
2945
2982
|
return {
|
|
@@ -3071,7 +3108,7 @@ function clamp(n, min, max) {
|
|
|
3071
3108
|
return n;
|
|
3072
3109
|
}
|
|
3073
3110
|
var toBarPercentage = (n) => (-1 + n) * 100;
|
|
3074
|
-
var
|
|
3111
|
+
var queue4 = /* @__PURE__ */ (() => {
|
|
3075
3112
|
const pending = [];
|
|
3076
3113
|
const next = () => {
|
|
3077
3114
|
const fn = pending.shift();
|