@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.esm.js
CHANGED
|
@@ -255,25 +255,28 @@ var Scroll = class {
|
|
|
255
255
|
}
|
|
256
256
|
}
|
|
257
257
|
static restore(scrollRegions) {
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
region.
|
|
269
|
-
|
|
258
|
+
if (typeof window === "undefined") {
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
window.requestAnimationFrame(() => {
|
|
262
|
+
this.restoreDocument();
|
|
263
|
+
this.regions().forEach((region, index) => {
|
|
264
|
+
const scrollPosition = scrollRegions[index];
|
|
265
|
+
if (!scrollPosition) {
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
if (typeof region.scrollTo === "function") {
|
|
269
|
+
region.scrollTo(scrollPosition.left, scrollPosition.top);
|
|
270
|
+
} else {
|
|
271
|
+
region.scrollTop = scrollPosition.top;
|
|
272
|
+
region.scrollLeft = scrollPosition.left;
|
|
273
|
+
}
|
|
274
|
+
});
|
|
270
275
|
});
|
|
271
276
|
}
|
|
272
277
|
static restoreDocument() {
|
|
273
278
|
const scrollPosition = history.getDocumentScrollPosition();
|
|
274
|
-
|
|
275
|
-
window.scrollTo(scrollPosition.left, scrollPosition.top);
|
|
276
|
-
}
|
|
279
|
+
window.scrollTo(scrollPosition.left, scrollPosition.top);
|
|
277
280
|
}
|
|
278
281
|
static onScroll(event) {
|
|
279
282
|
const target = event.target;
|
|
@@ -784,9 +787,7 @@ var EventHandler = class {
|
|
|
784
787
|
}
|
|
785
788
|
router.cancelAll();
|
|
786
789
|
page.setQuietly(data, { preserveState: false }).then(() => {
|
|
787
|
-
|
|
788
|
-
Scroll.restore(history.getScrollRegions());
|
|
789
|
-
});
|
|
790
|
+
Scroll.restore(history.getScrollRegions());
|
|
790
791
|
fireNavigateEvent(page.get());
|
|
791
792
|
});
|
|
792
793
|
}).catch(() => {
|
|
@@ -1613,7 +1614,7 @@ var Response = class _Response {
|
|
|
1613
1614
|
pageResponse.props[prop] = deepMerge(currentProp, incomingProp, prop);
|
|
1614
1615
|
});
|
|
1615
1616
|
pageResponse.props = { ...page.get().props, ...pageResponse.props };
|
|
1616
|
-
if (
|
|
1617
|
+
if (page.get().scrollProps) {
|
|
1617
1618
|
pageResponse.scrollProps = {
|
|
1618
1619
|
...page.get().scrollProps || {},
|
|
1619
1620
|
...pageResponse.scrollProps || {}
|
|
@@ -2185,11 +2186,12 @@ var getScrollableParent = (element) => {
|
|
|
2185
2186
|
};
|
|
2186
2187
|
var getElementsInViewportFromCollection = (referenceElement, elements) => {
|
|
2187
2188
|
const referenceIndex = elements.indexOf(referenceElement);
|
|
2188
|
-
const
|
|
2189
|
+
const upwardElements = [];
|
|
2190
|
+
const downwardElements = [];
|
|
2189
2191
|
for (let i = referenceIndex; i >= 0; i--) {
|
|
2190
2192
|
const element = elements[i];
|
|
2191
2193
|
if (elementInViewport(element)) {
|
|
2192
|
-
|
|
2194
|
+
upwardElements.push(element);
|
|
2193
2195
|
} else {
|
|
2194
2196
|
break;
|
|
2195
2197
|
}
|
|
@@ -2197,12 +2199,12 @@ var getElementsInViewportFromCollection = (referenceElement, elements) => {
|
|
|
2197
2199
|
for (let i = referenceIndex + 1; i < elements.length; i++) {
|
|
2198
2200
|
const element = elements[i];
|
|
2199
2201
|
if (elementInViewport(element)) {
|
|
2200
|
-
|
|
2202
|
+
downwardElements.push(element);
|
|
2201
2203
|
} else {
|
|
2202
2204
|
break;
|
|
2203
2205
|
}
|
|
2204
2206
|
}
|
|
2205
|
-
return
|
|
2207
|
+
return [...upwardElements.reverse(), ...downwardElements];
|
|
2206
2208
|
};
|
|
2207
2209
|
|
|
2208
2210
|
// src/formObject.ts
|
|
@@ -2378,6 +2380,7 @@ var useInfiniteScrollData = (options) => {
|
|
|
2378
2380
|
};
|
|
2379
2381
|
const { previousPage, nextPage, currentPage: lastLoadedPage } = getScrollPropFromCurrentPage();
|
|
2380
2382
|
const state = {
|
|
2383
|
+
component: page.get().component,
|
|
2381
2384
|
loading: false,
|
|
2382
2385
|
previousPage,
|
|
2383
2386
|
nextPage,
|
|
@@ -2392,7 +2395,10 @@ var useInfiniteScrollData = (options) => {
|
|
|
2392
2395
|
state.lastLoadedPage = rememberedState.lastLoadedPage;
|
|
2393
2396
|
state.requestCount = rememberedState.requestCount || 0;
|
|
2394
2397
|
}
|
|
2395
|
-
const removeEventListener = router.on("success", () => {
|
|
2398
|
+
const removeEventListener = router.on("success", (event) => {
|
|
2399
|
+
if (state.component !== event.detail.page.component) {
|
|
2400
|
+
return;
|
|
2401
|
+
}
|
|
2396
2402
|
const scrollProp = getScrollPropFromCurrentPage();
|
|
2397
2403
|
if (scrollProp.reset) {
|
|
2398
2404
|
state.previousPage = scrollProp.previousPage;
|
|
@@ -2527,8 +2533,7 @@ var useInfiniteScrollElementManager = (options) => {
|
|
|
2527
2533
|
});
|
|
2528
2534
|
itemsMutationObserver.observe(options.getItemsElement(), { childList: true });
|
|
2529
2535
|
itemsObserver = intersectionObservers.new(
|
|
2530
|
-
(entry) => options.onItemIntersected(entry.target)
|
|
2531
|
-
{ threshold: 0 }
|
|
2536
|
+
(entry) => options.onItemIntersected(entry.target)
|
|
2532
2537
|
);
|
|
2533
2538
|
const observerOptions = {
|
|
2534
2539
|
root: options.getScrollableParent(),
|
|
@@ -2565,6 +2570,7 @@ var useInfiniteScrollElementManager = (options) => {
|
|
|
2565
2570
|
}
|
|
2566
2571
|
};
|
|
2567
2572
|
const flushAll = () => {
|
|
2573
|
+
disableTriggers();
|
|
2568
2574
|
intersectionObservers.flushAll();
|
|
2569
2575
|
itemsMutationObserver?.disconnect();
|
|
2570
2576
|
};
|
|
@@ -2666,13 +2672,49 @@ var useInfiniteScrollElementManager = (options) => {
|
|
|
2666
2672
|
};
|
|
2667
2673
|
|
|
2668
2674
|
// src/infiniteScroll/queryString.ts
|
|
2675
|
+
var queue3 = new Queue();
|
|
2676
|
+
var initialUrl;
|
|
2677
|
+
var payloadUrl;
|
|
2669
2678
|
var useInfiniteScrollQueryString = (options) => {
|
|
2679
|
+
let enabled = true;
|
|
2680
|
+
const queuePageUpdate = (page2) => {
|
|
2681
|
+
queue3.add(() => {
|
|
2682
|
+
return new Promise((resolve) => {
|
|
2683
|
+
if (!enabled) {
|
|
2684
|
+
initialUrl = payloadUrl = null;
|
|
2685
|
+
return resolve();
|
|
2686
|
+
}
|
|
2687
|
+
if (!initialUrl || !payloadUrl) {
|
|
2688
|
+
initialUrl = new URL(window.location.href);
|
|
2689
|
+
payloadUrl = new URL(window.location.href);
|
|
2690
|
+
}
|
|
2691
|
+
const pageName = options.getPageName();
|
|
2692
|
+
const searchParams = payloadUrl.searchParams;
|
|
2693
|
+
if (page2 === "1") {
|
|
2694
|
+
searchParams.delete(pageName);
|
|
2695
|
+
} else {
|
|
2696
|
+
searchParams.set(pageName, page2);
|
|
2697
|
+
}
|
|
2698
|
+
setTimeout(() => resolve());
|
|
2699
|
+
});
|
|
2700
|
+
}).finally(() => {
|
|
2701
|
+
if (enabled && initialUrl && payloadUrl && initialUrl.href !== payloadUrl.href) {
|
|
2702
|
+
router.replace({
|
|
2703
|
+
url: payloadUrl.toString(),
|
|
2704
|
+
preserveScroll: true,
|
|
2705
|
+
preserveState: true
|
|
2706
|
+
});
|
|
2707
|
+
}
|
|
2708
|
+
initialUrl = payloadUrl = null;
|
|
2709
|
+
});
|
|
2710
|
+
};
|
|
2670
2711
|
const onItemIntersected = debounce((itemElement) => {
|
|
2671
|
-
|
|
2712
|
+
const itemsElement = options.getItemsElement();
|
|
2713
|
+
if (!enabled || options.shouldPreserveUrl() || !itemElement || !itemsElement) {
|
|
2672
2714
|
return;
|
|
2673
2715
|
}
|
|
2674
2716
|
const pageMap = /* @__PURE__ */ new Map();
|
|
2675
|
-
const elements = [...
|
|
2717
|
+
const elements = [...itemsElement.children];
|
|
2676
2718
|
getElementsInViewportFromCollection(itemElement, elements).forEach((element) => {
|
|
2677
2719
|
const page2 = getPageFromElement(element) ?? "1";
|
|
2678
2720
|
if (pageMap.has(page2)) {
|
|
@@ -2683,23 +2725,13 @@ var useInfiniteScrollQueryString = (options) => {
|
|
|
2683
2725
|
});
|
|
2684
2726
|
const sortedPages = Array.from(pageMap.entries()).sort((a, b) => b[1] - a[1]);
|
|
2685
2727
|
const mostVisiblePage = sortedPages[0]?.[0];
|
|
2686
|
-
if (mostVisiblePage
|
|
2687
|
-
|
|
2728
|
+
if (mostVisiblePage !== void 0) {
|
|
2729
|
+
queuePageUpdate(mostVisiblePage);
|
|
2688
2730
|
}
|
|
2689
|
-
const url = new URL(window.location.href);
|
|
2690
|
-
if (mostVisiblePage === "1") {
|
|
2691
|
-
url.searchParams.delete(options.getPageName());
|
|
2692
|
-
} else {
|
|
2693
|
-
url.searchParams.set(options.getPageName(), mostVisiblePage.toString());
|
|
2694
|
-
}
|
|
2695
|
-
router.replace({
|
|
2696
|
-
url: url.toString(),
|
|
2697
|
-
preserveScroll: true,
|
|
2698
|
-
preserveState: true
|
|
2699
|
-
});
|
|
2700
2731
|
}, 250);
|
|
2701
2732
|
return {
|
|
2702
|
-
onItemIntersected
|
|
2733
|
+
onItemIntersected,
|
|
2734
|
+
cancel: () => enabled = false
|
|
2703
2735
|
};
|
|
2704
2736
|
};
|
|
2705
2737
|
|
|
@@ -2829,7 +2861,12 @@ function useInfiniteScroll(options) {
|
|
|
2829
2861
|
};
|
|
2830
2862
|
return {
|
|
2831
2863
|
dataManager,
|
|
2832
|
-
elementManager
|
|
2864
|
+
elementManager,
|
|
2865
|
+
flush: () => {
|
|
2866
|
+
dataManager.removeEventListener();
|
|
2867
|
+
elementManager.flushAll();
|
|
2868
|
+
queryStringManager.cancel();
|
|
2869
|
+
}
|
|
2833
2870
|
};
|
|
2834
2871
|
}
|
|
2835
2872
|
|
|
@@ -2887,7 +2924,7 @@ var set4 = (n) => {
|
|
|
2887
2924
|
const speed = settings.speed;
|
|
2888
2925
|
const ease = settings.easing;
|
|
2889
2926
|
progress3.offsetWidth;
|
|
2890
|
-
|
|
2927
|
+
queue4((next) => {
|
|
2891
2928
|
const barStyles = (() => {
|
|
2892
2929
|
if (settings.positionUsing === "translate3d") {
|
|
2893
2930
|
return {
|
|
@@ -3019,7 +3056,7 @@ function clamp(n, min, max) {
|
|
|
3019
3056
|
return n;
|
|
3020
3057
|
}
|
|
3021
3058
|
var toBarPercentage = (n) => (-1 + n) * 100;
|
|
3022
|
-
var
|
|
3059
|
+
var queue4 = /* @__PURE__ */ (() => {
|
|
3023
3060
|
const pending = [];
|
|
3024
3061
|
const next = () => {
|
|
3025
3062
|
const fn = pending.shift();
|