@inertiajs/core 2.1.2 → 2.1.3
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 +153 -152
- package/dist/index.esm.js.map +3 -3
- package/dist/index.js +157 -156
- package/dist/index.js.map +4 -4
- package/dist/server.esm.js +4 -2
- package/dist/server.esm.js.map +2 -2
- package/dist/server.js +4 -2
- package/dist/server.js.map +2 -2
- package/package.json +9 -5
- package/types/index.d.ts +3 -3
- package/types/navigationEvents.d.ts +12 -0
- package/types/types.d.ts +1 -1
- package/types/shouldIntercept.d.ts +0 -1
package/dist/index.esm.js
CHANGED
|
@@ -608,12 +608,10 @@ var History = class {
|
|
|
608
608
|
if (!window.history.state?.page) {
|
|
609
609
|
return;
|
|
610
610
|
}
|
|
611
|
-
this.doReplaceState(
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
}
|
|
616
|
-
);
|
|
611
|
+
this.doReplaceState({
|
|
612
|
+
page: window.history.state.page,
|
|
613
|
+
scrollRegions
|
|
614
|
+
});
|
|
617
615
|
});
|
|
618
616
|
});
|
|
619
617
|
}
|
|
@@ -623,12 +621,10 @@ var History = class {
|
|
|
623
621
|
if (!window.history.state?.page) {
|
|
624
622
|
return;
|
|
625
623
|
}
|
|
626
|
-
this.doReplaceState(
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
}
|
|
631
|
-
);
|
|
624
|
+
this.doReplaceState({
|
|
625
|
+
page: window.history.state.page,
|
|
626
|
+
documentScrollPosition: scrollRegion
|
|
627
|
+
});
|
|
632
628
|
});
|
|
633
629
|
});
|
|
634
630
|
}
|
|
@@ -949,7 +945,7 @@ var Polls = class {
|
|
|
949
945
|
var polls = new Polls();
|
|
950
946
|
|
|
951
947
|
// src/prefetched.ts
|
|
952
|
-
import { cloneDeep } from "es
|
|
948
|
+
import { cloneDeep } from "lodash-es";
|
|
953
949
|
|
|
954
950
|
// src/objectUtils.ts
|
|
955
951
|
var objectsAreEqual = (obj1, obj2, excludeKeys) => {
|
|
@@ -2064,7 +2060,7 @@ var Router = class {
|
|
|
2064
2060
|
};
|
|
2065
2061
|
|
|
2066
2062
|
// src/formObject.ts
|
|
2067
|
-
import { get, set } from "es
|
|
2063
|
+
import { get, set } from "lodash-es";
|
|
2068
2064
|
function undotKey(key) {
|
|
2069
2065
|
if (!key.includes(".")) {
|
|
2070
2066
|
return key;
|
|
@@ -2112,140 +2108,6 @@ function formDataToObject(source) {
|
|
|
2112
2108
|
return form;
|
|
2113
2109
|
}
|
|
2114
2110
|
|
|
2115
|
-
// src/resetFormFields.ts
|
|
2116
|
-
function isFormElement(element) {
|
|
2117
|
-
return element instanceof HTMLInputElement || element instanceof HTMLSelectElement || element instanceof HTMLTextAreaElement;
|
|
2118
|
-
}
|
|
2119
|
-
function resetInputElement(input, defaultValues) {
|
|
2120
|
-
const oldValue = input.value;
|
|
2121
|
-
const oldChecked = input.checked;
|
|
2122
|
-
switch (input.type.toLowerCase()) {
|
|
2123
|
-
case "checkbox":
|
|
2124
|
-
input.checked = defaultValues.includes(input.value);
|
|
2125
|
-
break;
|
|
2126
|
-
case "radio":
|
|
2127
|
-
input.checked = defaultValues[0] === input.value;
|
|
2128
|
-
break;
|
|
2129
|
-
case "file":
|
|
2130
|
-
input.value = "";
|
|
2131
|
-
break;
|
|
2132
|
-
case "button":
|
|
2133
|
-
case "submit":
|
|
2134
|
-
case "reset":
|
|
2135
|
-
case "image":
|
|
2136
|
-
break;
|
|
2137
|
-
default:
|
|
2138
|
-
input.value = defaultValues[0] !== null && defaultValues[0] !== void 0 ? String(defaultValues[0]) : "";
|
|
2139
|
-
}
|
|
2140
|
-
return input.value !== oldValue || input.checked !== oldChecked;
|
|
2141
|
-
}
|
|
2142
|
-
function resetSelectElement(select, defaultValues) {
|
|
2143
|
-
const oldValue = select.value;
|
|
2144
|
-
const oldSelectedOptions = Array.from(select.selectedOptions).map((opt) => opt.value);
|
|
2145
|
-
if (select.multiple) {
|
|
2146
|
-
const defaultStrings = defaultValues.map((value) => String(value));
|
|
2147
|
-
Array.from(select.options).forEach((option) => {
|
|
2148
|
-
option.selected = defaultStrings.includes(option.value);
|
|
2149
|
-
});
|
|
2150
|
-
} else {
|
|
2151
|
-
select.value = defaultValues[0] !== void 0 ? String(defaultValues[0]) : "";
|
|
2152
|
-
}
|
|
2153
|
-
const newSelectedOptions = Array.from(select.selectedOptions).map((opt) => opt.value);
|
|
2154
|
-
const hasChanged = select.multiple ? JSON.stringify(oldSelectedOptions.sort()) !== JSON.stringify(newSelectedOptions.sort()) : select.value !== oldValue;
|
|
2155
|
-
return hasChanged;
|
|
2156
|
-
}
|
|
2157
|
-
function resetFormElement(element, defaultValues) {
|
|
2158
|
-
if (element.disabled) {
|
|
2159
|
-
if (element instanceof HTMLInputElement) {
|
|
2160
|
-
const oldValue = element.value;
|
|
2161
|
-
const oldChecked = element.checked;
|
|
2162
|
-
switch (element.type.toLowerCase()) {
|
|
2163
|
-
case "checkbox":
|
|
2164
|
-
case "radio":
|
|
2165
|
-
element.checked = element.defaultChecked;
|
|
2166
|
-
return element.checked !== oldChecked;
|
|
2167
|
-
case "file":
|
|
2168
|
-
element.value = "";
|
|
2169
|
-
return oldValue !== "";
|
|
2170
|
-
case "button":
|
|
2171
|
-
case "submit":
|
|
2172
|
-
case "reset":
|
|
2173
|
-
case "image":
|
|
2174
|
-
return false;
|
|
2175
|
-
default:
|
|
2176
|
-
element.value = element.defaultValue;
|
|
2177
|
-
return element.value !== oldValue;
|
|
2178
|
-
}
|
|
2179
|
-
} else if (element instanceof HTMLSelectElement) {
|
|
2180
|
-
const oldSelectedOptions = Array.from(element.selectedOptions).map((opt) => opt.value);
|
|
2181
|
-
Array.from(element.options).forEach((option) => {
|
|
2182
|
-
option.selected = option.defaultSelected;
|
|
2183
|
-
});
|
|
2184
|
-
const newSelectedOptions = Array.from(element.selectedOptions).map((opt) => opt.value);
|
|
2185
|
-
return JSON.stringify(oldSelectedOptions.sort()) !== JSON.stringify(newSelectedOptions.sort());
|
|
2186
|
-
} else if (element instanceof HTMLTextAreaElement) {
|
|
2187
|
-
const oldValue = element.value;
|
|
2188
|
-
element.value = element.defaultValue;
|
|
2189
|
-
return element.value !== oldValue;
|
|
2190
|
-
}
|
|
2191
|
-
return false;
|
|
2192
|
-
}
|
|
2193
|
-
if (element instanceof HTMLInputElement) {
|
|
2194
|
-
return resetInputElement(element, defaultValues);
|
|
2195
|
-
} else if (element instanceof HTMLSelectElement) {
|
|
2196
|
-
return resetSelectElement(element, defaultValues);
|
|
2197
|
-
} else if (element instanceof HTMLTextAreaElement) {
|
|
2198
|
-
const oldValue = element.value;
|
|
2199
|
-
element.value = defaultValues[0] !== void 0 ? String(defaultValues[0]) : "";
|
|
2200
|
-
return element.value !== oldValue;
|
|
2201
|
-
}
|
|
2202
|
-
return false;
|
|
2203
|
-
}
|
|
2204
|
-
function resetFieldElements(elements, defaultValues) {
|
|
2205
|
-
let hasChanged = false;
|
|
2206
|
-
if (elements instanceof RadioNodeList || elements instanceof HTMLCollection) {
|
|
2207
|
-
Array.from(elements).forEach((node, index) => {
|
|
2208
|
-
if (node instanceof Element && isFormElement(node)) {
|
|
2209
|
-
if (node instanceof HTMLInputElement && ["checkbox", "radio"].includes(node.type.toLowerCase())) {
|
|
2210
|
-
if (resetFormElement(node, defaultValues)) {
|
|
2211
|
-
hasChanged = true;
|
|
2212
|
-
}
|
|
2213
|
-
} else {
|
|
2214
|
-
const indexedDefaultValues = defaultValues[index] !== void 0 ? [defaultValues[index]] : [defaultValues[0] ?? null].filter(Boolean);
|
|
2215
|
-
if (resetFormElement(node, indexedDefaultValues)) {
|
|
2216
|
-
hasChanged = true;
|
|
2217
|
-
}
|
|
2218
|
-
}
|
|
2219
|
-
}
|
|
2220
|
-
});
|
|
2221
|
-
} else if (isFormElement(elements)) {
|
|
2222
|
-
hasChanged = resetFormElement(elements, defaultValues);
|
|
2223
|
-
}
|
|
2224
|
-
return hasChanged;
|
|
2225
|
-
}
|
|
2226
|
-
function resetFormFields(formElement, defaults, fieldNames) {
|
|
2227
|
-
if (!formElement) {
|
|
2228
|
-
return;
|
|
2229
|
-
}
|
|
2230
|
-
if (!fieldNames || fieldNames.length === 0) {
|
|
2231
|
-
const formData = new FormData(formElement);
|
|
2232
|
-
const formElementNames = Array.from(formElement.elements).map((el) => isFormElement(el) ? el.name : "").filter(Boolean);
|
|
2233
|
-
fieldNames = [.../* @__PURE__ */ new Set([...defaults.keys(), ...formData.keys(), ...formElementNames])];
|
|
2234
|
-
}
|
|
2235
|
-
let hasChanged = false;
|
|
2236
|
-
fieldNames.forEach((fieldName) => {
|
|
2237
|
-
const elements = formElement.elements.namedItem(fieldName);
|
|
2238
|
-
if (elements) {
|
|
2239
|
-
if (resetFieldElements(elements, defaults.getAll(fieldName))) {
|
|
2240
|
-
hasChanged = true;
|
|
2241
|
-
}
|
|
2242
|
-
}
|
|
2243
|
-
});
|
|
2244
|
-
if (hasChanged) {
|
|
2245
|
-
formElement.dispatchEvent(new Event("reset", { bubbles: true }));
|
|
2246
|
-
}
|
|
2247
|
-
}
|
|
2248
|
-
|
|
2249
2111
|
// src/head.ts
|
|
2250
2112
|
var Renderer = {
|
|
2251
2113
|
buildDOMElement(tag) {
|
|
@@ -2358,6 +2220,16 @@ function createHeadManager(isServer2, titleCallback, onUpdate) {
|
|
|
2358
2220
|
};
|
|
2359
2221
|
}
|
|
2360
2222
|
|
|
2223
|
+
// src/navigationEvents.ts
|
|
2224
|
+
function shouldIntercept(event) {
|
|
2225
|
+
const isLink = event.currentTarget.tagName.toLowerCase() === "a";
|
|
2226
|
+
return !(event.target && (event?.target).isContentEditable || event.defaultPrevented || isLink && event.altKey || isLink && event.ctrlKey || isLink && event.metaKey || isLink && event.shiftKey || isLink && "button" in event && event.button !== 0);
|
|
2227
|
+
}
|
|
2228
|
+
function shouldNavigate(event) {
|
|
2229
|
+
const isButton = event.currentTarget.tagName.toLowerCase() === "button";
|
|
2230
|
+
return event.key === "Enter" || isButton && event.key === " ";
|
|
2231
|
+
}
|
|
2232
|
+
|
|
2361
2233
|
// src/progress-component.ts
|
|
2362
2234
|
var baseComponentSelector = "nprogress";
|
|
2363
2235
|
var progress;
|
|
@@ -2692,10 +2564,138 @@ function setupProgress({
|
|
|
2692
2564
|
progress_component_default.configure({ showSpinner, includeCSS, color });
|
|
2693
2565
|
}
|
|
2694
2566
|
|
|
2695
|
-
// src/
|
|
2696
|
-
function
|
|
2697
|
-
|
|
2698
|
-
|
|
2567
|
+
// src/resetFormFields.ts
|
|
2568
|
+
function isFormElement(element) {
|
|
2569
|
+
return element instanceof HTMLInputElement || element instanceof HTMLSelectElement || element instanceof HTMLTextAreaElement;
|
|
2570
|
+
}
|
|
2571
|
+
function resetInputElement(input, defaultValues) {
|
|
2572
|
+
const oldValue = input.value;
|
|
2573
|
+
const oldChecked = input.checked;
|
|
2574
|
+
switch (input.type.toLowerCase()) {
|
|
2575
|
+
case "checkbox":
|
|
2576
|
+
input.checked = defaultValues.includes(input.value);
|
|
2577
|
+
break;
|
|
2578
|
+
case "radio":
|
|
2579
|
+
input.checked = defaultValues[0] === input.value;
|
|
2580
|
+
break;
|
|
2581
|
+
case "file":
|
|
2582
|
+
input.value = "";
|
|
2583
|
+
break;
|
|
2584
|
+
case "button":
|
|
2585
|
+
case "submit":
|
|
2586
|
+
case "reset":
|
|
2587
|
+
case "image":
|
|
2588
|
+
break;
|
|
2589
|
+
default:
|
|
2590
|
+
input.value = defaultValues[0] !== null && defaultValues[0] !== void 0 ? String(defaultValues[0]) : "";
|
|
2591
|
+
}
|
|
2592
|
+
return input.value !== oldValue || input.checked !== oldChecked;
|
|
2593
|
+
}
|
|
2594
|
+
function resetSelectElement(select, defaultValues) {
|
|
2595
|
+
const oldValue = select.value;
|
|
2596
|
+
const oldSelectedOptions = Array.from(select.selectedOptions).map((opt) => opt.value);
|
|
2597
|
+
if (select.multiple) {
|
|
2598
|
+
const defaultStrings = defaultValues.map((value) => String(value));
|
|
2599
|
+
Array.from(select.options).forEach((option) => {
|
|
2600
|
+
option.selected = defaultStrings.includes(option.value);
|
|
2601
|
+
});
|
|
2602
|
+
} else {
|
|
2603
|
+
select.value = defaultValues[0] !== void 0 ? String(defaultValues[0]) : "";
|
|
2604
|
+
}
|
|
2605
|
+
const newSelectedOptions = Array.from(select.selectedOptions).map((opt) => opt.value);
|
|
2606
|
+
const hasChanged = select.multiple ? JSON.stringify(oldSelectedOptions.sort()) !== JSON.stringify(newSelectedOptions.sort()) : select.value !== oldValue;
|
|
2607
|
+
return hasChanged;
|
|
2608
|
+
}
|
|
2609
|
+
function resetFormElement(element, defaultValues) {
|
|
2610
|
+
if (element.disabled) {
|
|
2611
|
+
if (element instanceof HTMLInputElement) {
|
|
2612
|
+
const oldValue = element.value;
|
|
2613
|
+
const oldChecked = element.checked;
|
|
2614
|
+
switch (element.type.toLowerCase()) {
|
|
2615
|
+
case "checkbox":
|
|
2616
|
+
case "radio":
|
|
2617
|
+
element.checked = element.defaultChecked;
|
|
2618
|
+
return element.checked !== oldChecked;
|
|
2619
|
+
case "file":
|
|
2620
|
+
element.value = "";
|
|
2621
|
+
return oldValue !== "";
|
|
2622
|
+
case "button":
|
|
2623
|
+
case "submit":
|
|
2624
|
+
case "reset":
|
|
2625
|
+
case "image":
|
|
2626
|
+
return false;
|
|
2627
|
+
default:
|
|
2628
|
+
element.value = element.defaultValue;
|
|
2629
|
+
return element.value !== oldValue;
|
|
2630
|
+
}
|
|
2631
|
+
} else if (element instanceof HTMLSelectElement) {
|
|
2632
|
+
const oldSelectedOptions = Array.from(element.selectedOptions).map((opt) => opt.value);
|
|
2633
|
+
Array.from(element.options).forEach((option) => {
|
|
2634
|
+
option.selected = option.defaultSelected;
|
|
2635
|
+
});
|
|
2636
|
+
const newSelectedOptions = Array.from(element.selectedOptions).map((opt) => opt.value);
|
|
2637
|
+
return JSON.stringify(oldSelectedOptions.sort()) !== JSON.stringify(newSelectedOptions.sort());
|
|
2638
|
+
} else if (element instanceof HTMLTextAreaElement) {
|
|
2639
|
+
const oldValue = element.value;
|
|
2640
|
+
element.value = element.defaultValue;
|
|
2641
|
+
return element.value !== oldValue;
|
|
2642
|
+
}
|
|
2643
|
+
return false;
|
|
2644
|
+
}
|
|
2645
|
+
if (element instanceof HTMLInputElement) {
|
|
2646
|
+
return resetInputElement(element, defaultValues);
|
|
2647
|
+
} else if (element instanceof HTMLSelectElement) {
|
|
2648
|
+
return resetSelectElement(element, defaultValues);
|
|
2649
|
+
} else if (element instanceof HTMLTextAreaElement) {
|
|
2650
|
+
const oldValue = element.value;
|
|
2651
|
+
element.value = defaultValues[0] !== void 0 ? String(defaultValues[0]) : "";
|
|
2652
|
+
return element.value !== oldValue;
|
|
2653
|
+
}
|
|
2654
|
+
return false;
|
|
2655
|
+
}
|
|
2656
|
+
function resetFieldElements(elements, defaultValues) {
|
|
2657
|
+
let hasChanged = false;
|
|
2658
|
+
if (elements instanceof RadioNodeList || elements instanceof HTMLCollection) {
|
|
2659
|
+
Array.from(elements).forEach((node, index) => {
|
|
2660
|
+
if (node instanceof Element && isFormElement(node)) {
|
|
2661
|
+
if (node instanceof HTMLInputElement && ["checkbox", "radio"].includes(node.type.toLowerCase())) {
|
|
2662
|
+
if (resetFormElement(node, defaultValues)) {
|
|
2663
|
+
hasChanged = true;
|
|
2664
|
+
}
|
|
2665
|
+
} else {
|
|
2666
|
+
const indexedDefaultValues = defaultValues[index] !== void 0 ? [defaultValues[index]] : [defaultValues[0] ?? null].filter(Boolean);
|
|
2667
|
+
if (resetFormElement(node, indexedDefaultValues)) {
|
|
2668
|
+
hasChanged = true;
|
|
2669
|
+
}
|
|
2670
|
+
}
|
|
2671
|
+
}
|
|
2672
|
+
});
|
|
2673
|
+
} else if (isFormElement(elements)) {
|
|
2674
|
+
hasChanged = resetFormElement(elements, defaultValues);
|
|
2675
|
+
}
|
|
2676
|
+
return hasChanged;
|
|
2677
|
+
}
|
|
2678
|
+
function resetFormFields(formElement, defaults, fieldNames) {
|
|
2679
|
+
if (!formElement) {
|
|
2680
|
+
return;
|
|
2681
|
+
}
|
|
2682
|
+
if (!fieldNames || fieldNames.length === 0) {
|
|
2683
|
+
const formData = new FormData(formElement);
|
|
2684
|
+
const formElementNames = Array.from(formElement.elements).map((el) => isFormElement(el) ? el.name : "").filter(Boolean);
|
|
2685
|
+
fieldNames = [.../* @__PURE__ */ new Set([...defaults.keys(), ...formData.keys(), ...formElementNames])];
|
|
2686
|
+
}
|
|
2687
|
+
let hasChanged = false;
|
|
2688
|
+
fieldNames.forEach((fieldName) => {
|
|
2689
|
+
const elements = formElement.elements.namedItem(fieldName);
|
|
2690
|
+
if (elements) {
|
|
2691
|
+
if (resetFieldElements(elements, defaults.getAll(fieldName))) {
|
|
2692
|
+
hasChanged = true;
|
|
2693
|
+
}
|
|
2694
|
+
}
|
|
2695
|
+
});
|
|
2696
|
+
if (hasChanged) {
|
|
2697
|
+
formElement.dispatchEvent(new Event("reset", { bubbles: true }));
|
|
2698
|
+
}
|
|
2699
2699
|
}
|
|
2700
2700
|
|
|
2701
2701
|
// src/index.ts
|
|
@@ -2713,6 +2713,7 @@ export {
|
|
|
2713
2713
|
router,
|
|
2714
2714
|
setupProgress,
|
|
2715
2715
|
shouldIntercept,
|
|
2716
|
+
shouldNavigate,
|
|
2716
2717
|
urlWithoutHash
|
|
2717
2718
|
};
|
|
2718
2719
|
/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
|