@inertiajs/core 2.1.2 → 2.1.4

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 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
- page: window.history.state.page,
614
- scrollRegions
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
- page: window.history.state.page,
629
- documentScrollPosition: scrollRegion
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-toolkit";
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-toolkit/compat";
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/shouldIntercept.ts
2696
- function shouldIntercept(event) {
2697
- const isLink = event.currentTarget.tagName.toLowerCase() === "a";
2698
- 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);
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