@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.js
CHANGED
|
@@ -42,6 +42,7 @@ __export(index_exports, {
|
|
|
42
42
|
router: () => router,
|
|
43
43
|
setupProgress: () => setupProgress,
|
|
44
44
|
shouldIntercept: () => shouldIntercept,
|
|
45
|
+
shouldNavigate: () => shouldNavigate,
|
|
45
46
|
urlWithoutHash: () => urlWithoutHash
|
|
46
47
|
});
|
|
47
48
|
module.exports = __toCommonJS(index_exports);
|
|
@@ -656,12 +657,10 @@ var History = class {
|
|
|
656
657
|
if (!window.history.state?.page) {
|
|
657
658
|
return;
|
|
658
659
|
}
|
|
659
|
-
this.doReplaceState(
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
}
|
|
664
|
-
);
|
|
660
|
+
this.doReplaceState({
|
|
661
|
+
page: window.history.state.page,
|
|
662
|
+
scrollRegions
|
|
663
|
+
});
|
|
665
664
|
});
|
|
666
665
|
});
|
|
667
666
|
}
|
|
@@ -671,12 +670,10 @@ var History = class {
|
|
|
671
670
|
if (!window.history.state?.page) {
|
|
672
671
|
return;
|
|
673
672
|
}
|
|
674
|
-
this.doReplaceState(
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
}
|
|
679
|
-
);
|
|
673
|
+
this.doReplaceState({
|
|
674
|
+
page: window.history.state.page,
|
|
675
|
+
documentScrollPosition: scrollRegion
|
|
676
|
+
});
|
|
680
677
|
});
|
|
681
678
|
});
|
|
682
679
|
}
|
|
@@ -997,7 +994,7 @@ var Polls = class {
|
|
|
997
994
|
var polls = new Polls();
|
|
998
995
|
|
|
999
996
|
// src/prefetched.ts
|
|
1000
|
-
var
|
|
997
|
+
var import_lodash_es = require("lodash-es");
|
|
1001
998
|
|
|
1002
999
|
// src/objectUtils.ts
|
|
1003
1000
|
var objectsAreEqual = (obj1, obj2, excludeKeys) => {
|
|
@@ -1214,7 +1211,7 @@ var PrefetchedRequests = class {
|
|
|
1214
1211
|
}) || null;
|
|
1215
1212
|
}
|
|
1216
1213
|
withoutPurposePrefetchHeader(params) {
|
|
1217
|
-
const newParams = (0,
|
|
1214
|
+
const newParams = (0, import_lodash_es.cloneDeep)(params);
|
|
1218
1215
|
if (newParams.headers["Purpose"] === "prefetch") {
|
|
1219
1216
|
delete newParams.headers["Purpose"];
|
|
1220
1217
|
}
|
|
@@ -2112,7 +2109,7 @@ var Router = class {
|
|
|
2112
2109
|
};
|
|
2113
2110
|
|
|
2114
2111
|
// src/formObject.ts
|
|
2115
|
-
var
|
|
2112
|
+
var import_lodash_es2 = require("lodash-es");
|
|
2116
2113
|
function undotKey(key) {
|
|
2117
2114
|
if (!key.includes(".")) {
|
|
2118
2115
|
return key;
|
|
@@ -2147,153 +2144,19 @@ function formDataToObject(source) {
|
|
|
2147
2144
|
const path = parseKey(undotKey(key));
|
|
2148
2145
|
if (path[path.length - 1] === "") {
|
|
2149
2146
|
const arrayPath = path.slice(0, -1);
|
|
2150
|
-
const existing = (0,
|
|
2147
|
+
const existing = (0, import_lodash_es2.get)(form, arrayPath);
|
|
2151
2148
|
if (Array.isArray(existing)) {
|
|
2152
2149
|
existing.push(value);
|
|
2153
2150
|
} else {
|
|
2154
|
-
(0,
|
|
2151
|
+
(0, import_lodash_es2.set)(form, arrayPath, [value]);
|
|
2155
2152
|
}
|
|
2156
2153
|
continue;
|
|
2157
2154
|
}
|
|
2158
|
-
(0,
|
|
2155
|
+
(0, import_lodash_es2.set)(form, path, value);
|
|
2159
2156
|
}
|
|
2160
2157
|
return form;
|
|
2161
2158
|
}
|
|
2162
2159
|
|
|
2163
|
-
// src/resetFormFields.ts
|
|
2164
|
-
function isFormElement(element) {
|
|
2165
|
-
return element instanceof HTMLInputElement || element instanceof HTMLSelectElement || element instanceof HTMLTextAreaElement;
|
|
2166
|
-
}
|
|
2167
|
-
function resetInputElement(input, defaultValues) {
|
|
2168
|
-
const oldValue = input.value;
|
|
2169
|
-
const oldChecked = input.checked;
|
|
2170
|
-
switch (input.type.toLowerCase()) {
|
|
2171
|
-
case "checkbox":
|
|
2172
|
-
input.checked = defaultValues.includes(input.value);
|
|
2173
|
-
break;
|
|
2174
|
-
case "radio":
|
|
2175
|
-
input.checked = defaultValues[0] === input.value;
|
|
2176
|
-
break;
|
|
2177
|
-
case "file":
|
|
2178
|
-
input.value = "";
|
|
2179
|
-
break;
|
|
2180
|
-
case "button":
|
|
2181
|
-
case "submit":
|
|
2182
|
-
case "reset":
|
|
2183
|
-
case "image":
|
|
2184
|
-
break;
|
|
2185
|
-
default:
|
|
2186
|
-
input.value = defaultValues[0] !== null && defaultValues[0] !== void 0 ? String(defaultValues[0]) : "";
|
|
2187
|
-
}
|
|
2188
|
-
return input.value !== oldValue || input.checked !== oldChecked;
|
|
2189
|
-
}
|
|
2190
|
-
function resetSelectElement(select, defaultValues) {
|
|
2191
|
-
const oldValue = select.value;
|
|
2192
|
-
const oldSelectedOptions = Array.from(select.selectedOptions).map((opt) => opt.value);
|
|
2193
|
-
if (select.multiple) {
|
|
2194
|
-
const defaultStrings = defaultValues.map((value) => String(value));
|
|
2195
|
-
Array.from(select.options).forEach((option) => {
|
|
2196
|
-
option.selected = defaultStrings.includes(option.value);
|
|
2197
|
-
});
|
|
2198
|
-
} else {
|
|
2199
|
-
select.value = defaultValues[0] !== void 0 ? String(defaultValues[0]) : "";
|
|
2200
|
-
}
|
|
2201
|
-
const newSelectedOptions = Array.from(select.selectedOptions).map((opt) => opt.value);
|
|
2202
|
-
const hasChanged = select.multiple ? JSON.stringify(oldSelectedOptions.sort()) !== JSON.stringify(newSelectedOptions.sort()) : select.value !== oldValue;
|
|
2203
|
-
return hasChanged;
|
|
2204
|
-
}
|
|
2205
|
-
function resetFormElement(element, defaultValues) {
|
|
2206
|
-
if (element.disabled) {
|
|
2207
|
-
if (element instanceof HTMLInputElement) {
|
|
2208
|
-
const oldValue = element.value;
|
|
2209
|
-
const oldChecked = element.checked;
|
|
2210
|
-
switch (element.type.toLowerCase()) {
|
|
2211
|
-
case "checkbox":
|
|
2212
|
-
case "radio":
|
|
2213
|
-
element.checked = element.defaultChecked;
|
|
2214
|
-
return element.checked !== oldChecked;
|
|
2215
|
-
case "file":
|
|
2216
|
-
element.value = "";
|
|
2217
|
-
return oldValue !== "";
|
|
2218
|
-
case "button":
|
|
2219
|
-
case "submit":
|
|
2220
|
-
case "reset":
|
|
2221
|
-
case "image":
|
|
2222
|
-
return false;
|
|
2223
|
-
default:
|
|
2224
|
-
element.value = element.defaultValue;
|
|
2225
|
-
return element.value !== oldValue;
|
|
2226
|
-
}
|
|
2227
|
-
} else if (element instanceof HTMLSelectElement) {
|
|
2228
|
-
const oldSelectedOptions = Array.from(element.selectedOptions).map((opt) => opt.value);
|
|
2229
|
-
Array.from(element.options).forEach((option) => {
|
|
2230
|
-
option.selected = option.defaultSelected;
|
|
2231
|
-
});
|
|
2232
|
-
const newSelectedOptions = Array.from(element.selectedOptions).map((opt) => opt.value);
|
|
2233
|
-
return JSON.stringify(oldSelectedOptions.sort()) !== JSON.stringify(newSelectedOptions.sort());
|
|
2234
|
-
} else if (element instanceof HTMLTextAreaElement) {
|
|
2235
|
-
const oldValue = element.value;
|
|
2236
|
-
element.value = element.defaultValue;
|
|
2237
|
-
return element.value !== oldValue;
|
|
2238
|
-
}
|
|
2239
|
-
return false;
|
|
2240
|
-
}
|
|
2241
|
-
if (element instanceof HTMLInputElement) {
|
|
2242
|
-
return resetInputElement(element, defaultValues);
|
|
2243
|
-
} else if (element instanceof HTMLSelectElement) {
|
|
2244
|
-
return resetSelectElement(element, defaultValues);
|
|
2245
|
-
} else if (element instanceof HTMLTextAreaElement) {
|
|
2246
|
-
const oldValue = element.value;
|
|
2247
|
-
element.value = defaultValues[0] !== void 0 ? String(defaultValues[0]) : "";
|
|
2248
|
-
return element.value !== oldValue;
|
|
2249
|
-
}
|
|
2250
|
-
return false;
|
|
2251
|
-
}
|
|
2252
|
-
function resetFieldElements(elements, defaultValues) {
|
|
2253
|
-
let hasChanged = false;
|
|
2254
|
-
if (elements instanceof RadioNodeList || elements instanceof HTMLCollection) {
|
|
2255
|
-
Array.from(elements).forEach((node, index) => {
|
|
2256
|
-
if (node instanceof Element && isFormElement(node)) {
|
|
2257
|
-
if (node instanceof HTMLInputElement && ["checkbox", "radio"].includes(node.type.toLowerCase())) {
|
|
2258
|
-
if (resetFormElement(node, defaultValues)) {
|
|
2259
|
-
hasChanged = true;
|
|
2260
|
-
}
|
|
2261
|
-
} else {
|
|
2262
|
-
const indexedDefaultValues = defaultValues[index] !== void 0 ? [defaultValues[index]] : [defaultValues[0] ?? null].filter(Boolean);
|
|
2263
|
-
if (resetFormElement(node, indexedDefaultValues)) {
|
|
2264
|
-
hasChanged = true;
|
|
2265
|
-
}
|
|
2266
|
-
}
|
|
2267
|
-
}
|
|
2268
|
-
});
|
|
2269
|
-
} else if (isFormElement(elements)) {
|
|
2270
|
-
hasChanged = resetFormElement(elements, defaultValues);
|
|
2271
|
-
}
|
|
2272
|
-
return hasChanged;
|
|
2273
|
-
}
|
|
2274
|
-
function resetFormFields(formElement, defaults, fieldNames) {
|
|
2275
|
-
if (!formElement) {
|
|
2276
|
-
return;
|
|
2277
|
-
}
|
|
2278
|
-
if (!fieldNames || fieldNames.length === 0) {
|
|
2279
|
-
const formData = new FormData(formElement);
|
|
2280
|
-
const formElementNames = Array.from(formElement.elements).map((el) => isFormElement(el) ? el.name : "").filter(Boolean);
|
|
2281
|
-
fieldNames = [.../* @__PURE__ */ new Set([...defaults.keys(), ...formData.keys(), ...formElementNames])];
|
|
2282
|
-
}
|
|
2283
|
-
let hasChanged = false;
|
|
2284
|
-
fieldNames.forEach((fieldName) => {
|
|
2285
|
-
const elements = formElement.elements.namedItem(fieldName);
|
|
2286
|
-
if (elements) {
|
|
2287
|
-
if (resetFieldElements(elements, defaults.getAll(fieldName))) {
|
|
2288
|
-
hasChanged = true;
|
|
2289
|
-
}
|
|
2290
|
-
}
|
|
2291
|
-
});
|
|
2292
|
-
if (hasChanged) {
|
|
2293
|
-
formElement.dispatchEvent(new Event("reset", { bubbles: true }));
|
|
2294
|
-
}
|
|
2295
|
-
}
|
|
2296
|
-
|
|
2297
2160
|
// src/head.ts
|
|
2298
2161
|
var Renderer = {
|
|
2299
2162
|
buildDOMElement(tag) {
|
|
@@ -2406,6 +2269,16 @@ function createHeadManager(isServer2, titleCallback, onUpdate) {
|
|
|
2406
2269
|
};
|
|
2407
2270
|
}
|
|
2408
2271
|
|
|
2272
|
+
// src/navigationEvents.ts
|
|
2273
|
+
function shouldIntercept(event) {
|
|
2274
|
+
const isLink = event.currentTarget.tagName.toLowerCase() === "a";
|
|
2275
|
+
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);
|
|
2276
|
+
}
|
|
2277
|
+
function shouldNavigate(event) {
|
|
2278
|
+
const isButton = event.currentTarget.tagName.toLowerCase() === "button";
|
|
2279
|
+
return event.key === "Enter" || isButton && event.key === " ";
|
|
2280
|
+
}
|
|
2281
|
+
|
|
2409
2282
|
// src/progress-component.ts
|
|
2410
2283
|
var baseComponentSelector = "nprogress";
|
|
2411
2284
|
var progress;
|
|
@@ -2740,10 +2613,138 @@ function setupProgress({
|
|
|
2740
2613
|
progress_component_default.configure({ showSpinner, includeCSS, color });
|
|
2741
2614
|
}
|
|
2742
2615
|
|
|
2743
|
-
// src/
|
|
2744
|
-
function
|
|
2745
|
-
|
|
2746
|
-
|
|
2616
|
+
// src/resetFormFields.ts
|
|
2617
|
+
function isFormElement(element) {
|
|
2618
|
+
return element instanceof HTMLInputElement || element instanceof HTMLSelectElement || element instanceof HTMLTextAreaElement;
|
|
2619
|
+
}
|
|
2620
|
+
function resetInputElement(input, defaultValues) {
|
|
2621
|
+
const oldValue = input.value;
|
|
2622
|
+
const oldChecked = input.checked;
|
|
2623
|
+
switch (input.type.toLowerCase()) {
|
|
2624
|
+
case "checkbox":
|
|
2625
|
+
input.checked = defaultValues.includes(input.value);
|
|
2626
|
+
break;
|
|
2627
|
+
case "radio":
|
|
2628
|
+
input.checked = defaultValues[0] === input.value;
|
|
2629
|
+
break;
|
|
2630
|
+
case "file":
|
|
2631
|
+
input.value = "";
|
|
2632
|
+
break;
|
|
2633
|
+
case "button":
|
|
2634
|
+
case "submit":
|
|
2635
|
+
case "reset":
|
|
2636
|
+
case "image":
|
|
2637
|
+
break;
|
|
2638
|
+
default:
|
|
2639
|
+
input.value = defaultValues[0] !== null && defaultValues[0] !== void 0 ? String(defaultValues[0]) : "";
|
|
2640
|
+
}
|
|
2641
|
+
return input.value !== oldValue || input.checked !== oldChecked;
|
|
2642
|
+
}
|
|
2643
|
+
function resetSelectElement(select, defaultValues) {
|
|
2644
|
+
const oldValue = select.value;
|
|
2645
|
+
const oldSelectedOptions = Array.from(select.selectedOptions).map((opt) => opt.value);
|
|
2646
|
+
if (select.multiple) {
|
|
2647
|
+
const defaultStrings = defaultValues.map((value) => String(value));
|
|
2648
|
+
Array.from(select.options).forEach((option) => {
|
|
2649
|
+
option.selected = defaultStrings.includes(option.value);
|
|
2650
|
+
});
|
|
2651
|
+
} else {
|
|
2652
|
+
select.value = defaultValues[0] !== void 0 ? String(defaultValues[0]) : "";
|
|
2653
|
+
}
|
|
2654
|
+
const newSelectedOptions = Array.from(select.selectedOptions).map((opt) => opt.value);
|
|
2655
|
+
const hasChanged = select.multiple ? JSON.stringify(oldSelectedOptions.sort()) !== JSON.stringify(newSelectedOptions.sort()) : select.value !== oldValue;
|
|
2656
|
+
return hasChanged;
|
|
2657
|
+
}
|
|
2658
|
+
function resetFormElement(element, defaultValues) {
|
|
2659
|
+
if (element.disabled) {
|
|
2660
|
+
if (element instanceof HTMLInputElement) {
|
|
2661
|
+
const oldValue = element.value;
|
|
2662
|
+
const oldChecked = element.checked;
|
|
2663
|
+
switch (element.type.toLowerCase()) {
|
|
2664
|
+
case "checkbox":
|
|
2665
|
+
case "radio":
|
|
2666
|
+
element.checked = element.defaultChecked;
|
|
2667
|
+
return element.checked !== oldChecked;
|
|
2668
|
+
case "file":
|
|
2669
|
+
element.value = "";
|
|
2670
|
+
return oldValue !== "";
|
|
2671
|
+
case "button":
|
|
2672
|
+
case "submit":
|
|
2673
|
+
case "reset":
|
|
2674
|
+
case "image":
|
|
2675
|
+
return false;
|
|
2676
|
+
default:
|
|
2677
|
+
element.value = element.defaultValue;
|
|
2678
|
+
return element.value !== oldValue;
|
|
2679
|
+
}
|
|
2680
|
+
} else if (element instanceof HTMLSelectElement) {
|
|
2681
|
+
const oldSelectedOptions = Array.from(element.selectedOptions).map((opt) => opt.value);
|
|
2682
|
+
Array.from(element.options).forEach((option) => {
|
|
2683
|
+
option.selected = option.defaultSelected;
|
|
2684
|
+
});
|
|
2685
|
+
const newSelectedOptions = Array.from(element.selectedOptions).map((opt) => opt.value);
|
|
2686
|
+
return JSON.stringify(oldSelectedOptions.sort()) !== JSON.stringify(newSelectedOptions.sort());
|
|
2687
|
+
} else if (element instanceof HTMLTextAreaElement) {
|
|
2688
|
+
const oldValue = element.value;
|
|
2689
|
+
element.value = element.defaultValue;
|
|
2690
|
+
return element.value !== oldValue;
|
|
2691
|
+
}
|
|
2692
|
+
return false;
|
|
2693
|
+
}
|
|
2694
|
+
if (element instanceof HTMLInputElement) {
|
|
2695
|
+
return resetInputElement(element, defaultValues);
|
|
2696
|
+
} else if (element instanceof HTMLSelectElement) {
|
|
2697
|
+
return resetSelectElement(element, defaultValues);
|
|
2698
|
+
} else if (element instanceof HTMLTextAreaElement) {
|
|
2699
|
+
const oldValue = element.value;
|
|
2700
|
+
element.value = defaultValues[0] !== void 0 ? String(defaultValues[0]) : "";
|
|
2701
|
+
return element.value !== oldValue;
|
|
2702
|
+
}
|
|
2703
|
+
return false;
|
|
2704
|
+
}
|
|
2705
|
+
function resetFieldElements(elements, defaultValues) {
|
|
2706
|
+
let hasChanged = false;
|
|
2707
|
+
if (elements instanceof RadioNodeList || elements instanceof HTMLCollection) {
|
|
2708
|
+
Array.from(elements).forEach((node, index) => {
|
|
2709
|
+
if (node instanceof Element && isFormElement(node)) {
|
|
2710
|
+
if (node instanceof HTMLInputElement && ["checkbox", "radio"].includes(node.type.toLowerCase())) {
|
|
2711
|
+
if (resetFormElement(node, defaultValues)) {
|
|
2712
|
+
hasChanged = true;
|
|
2713
|
+
}
|
|
2714
|
+
} else {
|
|
2715
|
+
const indexedDefaultValues = defaultValues[index] !== void 0 ? [defaultValues[index]] : [defaultValues[0] ?? null].filter(Boolean);
|
|
2716
|
+
if (resetFormElement(node, indexedDefaultValues)) {
|
|
2717
|
+
hasChanged = true;
|
|
2718
|
+
}
|
|
2719
|
+
}
|
|
2720
|
+
}
|
|
2721
|
+
});
|
|
2722
|
+
} else if (isFormElement(elements)) {
|
|
2723
|
+
hasChanged = resetFormElement(elements, defaultValues);
|
|
2724
|
+
}
|
|
2725
|
+
return hasChanged;
|
|
2726
|
+
}
|
|
2727
|
+
function resetFormFields(formElement, defaults, fieldNames) {
|
|
2728
|
+
if (!formElement) {
|
|
2729
|
+
return;
|
|
2730
|
+
}
|
|
2731
|
+
if (!fieldNames || fieldNames.length === 0) {
|
|
2732
|
+
const formData = new FormData(formElement);
|
|
2733
|
+
const formElementNames = Array.from(formElement.elements).map((el) => isFormElement(el) ? el.name : "").filter(Boolean);
|
|
2734
|
+
fieldNames = [.../* @__PURE__ */ new Set([...defaults.keys(), ...formData.keys(), ...formElementNames])];
|
|
2735
|
+
}
|
|
2736
|
+
let hasChanged = false;
|
|
2737
|
+
fieldNames.forEach((fieldName) => {
|
|
2738
|
+
const elements = formElement.elements.namedItem(fieldName);
|
|
2739
|
+
if (elements) {
|
|
2740
|
+
if (resetFieldElements(elements, defaults.getAll(fieldName))) {
|
|
2741
|
+
hasChanged = true;
|
|
2742
|
+
}
|
|
2743
|
+
}
|
|
2744
|
+
});
|
|
2745
|
+
if (hasChanged) {
|
|
2746
|
+
formElement.dispatchEvent(new Event("reset", { bubbles: true }));
|
|
2747
|
+
}
|
|
2747
2748
|
}
|
|
2748
2749
|
|
|
2749
2750
|
// src/index.ts
|