@inertiajs/vue3 2.2.7 → 2.2.9

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
@@ -2,7 +2,10 @@
2
2
  import { progress, router as router10 } from "@inertiajs/core";
3
3
 
4
4
  // src/app.ts
5
- import { createHeadManager, router as router3 } from "@inertiajs/core";
5
+ import {
6
+ createHeadManager,
7
+ router as router3
8
+ } from "@inertiajs/core";
6
9
  import {
7
10
  computed,
8
11
  defineComponent,
@@ -75,7 +78,7 @@ function useForm(rememberKeyOrData, maybeData) {
75
78
  const restored = rememberKey ? router2.restore(rememberKey) : null;
76
79
  let defaults = typeof data === "function" ? cloneDeep2(data()) : cloneDeep2(data);
77
80
  let cancelToken = null;
78
- let recentlySuccessfulTimeoutId = null;
81
+ let recentlySuccessfulTimeoutId;
79
82
  let transform = (data2) => data2;
80
83
  let defaultsCalledInOnSuccess = false;
81
84
  const form = reactive({
@@ -151,7 +154,6 @@ function useForm(rememberKeyOrData, maybeData) {
151
154
  const url = objectPassed ? args[0].url : args[1];
152
155
  const options = (objectPassed ? args[1] : args[2]) ?? {};
153
156
  defaultsCalledInOnSuccess = false;
154
- const data2 = transform(this.data());
155
157
  const _options = {
156
158
  ...options,
157
159
  onCancelToken: (token) => {
@@ -218,10 +220,11 @@ function useForm(rememberKeyOrData, maybeData) {
218
220
  }
219
221
  }
220
222
  };
223
+ const transformedData = transform(this.data());
221
224
  if (method === "delete") {
222
- router2.delete(url, { ..._options, data: data2 });
225
+ router2.delete(url, { ..._options, data: transformedData });
223
226
  } else {
224
- router2[method](url, data2, _options);
227
+ router2[method](url, transformedData, _options);
225
228
  }
226
229
  },
227
230
  get(url, options) {
@@ -267,11 +270,11 @@ function useForm(rememberKeyOrData, maybeData) {
267
270
  }
268
271
 
269
272
  // src/app.ts
270
- var component = ref(null);
271
- var page = ref(null);
273
+ var component = ref(void 0);
274
+ var page = ref();
272
275
  var layout = shallowRef(null);
273
- var key = ref(null);
274
- var headManager = null;
276
+ var key = ref(void 0);
277
+ var headManager;
275
278
  var App = defineComponent({
276
279
  name: "Inertia",
277
280
  props: {
@@ -300,19 +303,20 @@ var App = defineComponent({
300
303
  }
301
304
  },
302
305
  setup({ initialPage, initialComponent, resolveComponent, titleCallback, onHeadUpdate }) {
303
- component.value = initialComponent ? markRaw(initialComponent) : null;
306
+ component.value = initialComponent ? markRaw(initialComponent) : void 0;
304
307
  page.value = initialPage;
305
- key.value = null;
308
+ key.value = void 0;
306
309
  const isServer = typeof window === "undefined";
307
- headManager = createHeadManager(isServer, titleCallback, onHeadUpdate);
310
+ headManager = createHeadManager(isServer, titleCallback || ((title) => title), onHeadUpdate || (() => {
311
+ }));
308
312
  if (!isServer) {
309
313
  router3.init({
310
314
  initialPage,
311
315
  resolveComponent,
312
- swapComponent: async (args) => {
313
- component.value = markRaw(args.component);
314
- page.value = args.page;
315
- key.value = args.preserveState ? key.value : Date.now();
316
+ swapComponent: async (options) => {
317
+ component.value = markRaw(options.component);
318
+ page.value = options.page;
319
+ key.value = options.preserveState ? key.value : Date.now();
316
320
  }
317
321
  });
318
322
  router3.on("navigate", () => headManager.forceUpdate());
@@ -370,7 +374,10 @@ function usePage() {
370
374
  }
371
375
 
372
376
  // src/createInertiaApp.ts
373
- import { router as router4, setupProgress } from "@inertiajs/core";
377
+ import {
378
+ router as router4,
379
+ setupProgress
380
+ } from "@inertiajs/core";
374
381
  import { createSSRApp, h as h2 } from "vue";
375
382
  async function createInertiaApp({
376
383
  id = "app",
@@ -383,7 +390,7 @@ async function createInertiaApp({
383
390
  }) {
384
391
  const isServer = typeof window === "undefined";
385
392
  const el = isServer ? null : document.getElementById(id);
386
- const initialPage = page2 || JSON.parse(el.dataset.page);
393
+ const initialPage = page2 || JSON.parse(el?.dataset.page || "{}");
387
394
  const resolveComponent = (name) => Promise.resolve(resolve(name)).then((module) => module.default || module);
388
395
  let head = [];
389
396
  const vueApp = await Promise.all([
@@ -391,23 +398,33 @@ async function createInertiaApp({
391
398
  router4.decryptHistory().catch(() => {
392
399
  })
393
400
  ]).then(([initialComponent]) => {
394
- return setup({
401
+ const props = {
402
+ initialPage,
403
+ initialComponent,
404
+ resolveComponent,
405
+ titleCallback: title
406
+ };
407
+ if (isServer) {
408
+ const ssrSetup = setup;
409
+ return ssrSetup({
410
+ el: null,
411
+ App: app_default,
412
+ props: { ...props, onHeadUpdate: (elements) => head = elements },
413
+ plugin
414
+ });
415
+ }
416
+ const csrSetup = setup;
417
+ return csrSetup({
395
418
  el,
396
419
  App: app_default,
397
- props: {
398
- initialPage,
399
- initialComponent,
400
- resolveComponent,
401
- titleCallback: title,
402
- onHeadUpdate: isServer ? (elements) => head = elements : null
403
- },
420
+ props,
404
421
  plugin
405
422
  });
406
423
  });
407
424
  if (!isServer && progress2) {
408
425
  setupProgress(progress2);
409
426
  }
410
- if (isServer) {
427
+ if (isServer && render) {
411
428
  const body = await render(
412
429
  createSSRApp({
413
430
  render: () => h2("div", {
@@ -436,7 +453,7 @@ var deferred_default = defineComponent2({
436
453
  if (!this.$slots.fallback) {
437
454
  throw new Error("`<Deferred>` requires a `<template #fallback>` slot");
438
455
  }
439
- return keys.every((key2) => this.$page.props[key2] !== void 0) ? this.$slots.default() : this.$slots.fallback();
456
+ return keys.every((key2) => this.$page.props[key2] !== void 0) ? this.$slots.default?.() : this.$slots.fallback();
440
457
  }
441
458
  });
442
459
 
@@ -591,15 +608,15 @@ var Form = defineComponent3({
591
608
  onFinish: props.onFinish,
592
609
  onCancel: props.onCancel,
593
610
  onSuccess: (...args) => {
594
- props.onSuccess(...args);
595
- props.onSubmitComplete(exposed);
611
+ props.onSuccess?.(...args);
612
+ props.onSubmitComplete?.(exposed);
596
613
  maybeReset(props.resetOnSuccess);
597
614
  if (props.setDefaultsOnSuccess === true) {
598
615
  defaults();
599
616
  }
600
617
  },
601
618
  onError: (...args) => {
602
- props.onError(...args);
619
+ props.onError?.(...args);
603
620
  maybeReset(props.resetOnError);
604
621
  },
605
622
  ...props.options
@@ -688,7 +705,7 @@ var Head = defineComponent4({
688
705
  },
689
706
  methods: {
690
707
  isUnaryTag(node) {
691
- return [
708
+ return typeof node.type === "string" && [
692
709
  "area",
693
710
  "base",
694
711
  "br",
@@ -719,10 +736,19 @@ var Head = defineComponent4({
719
736
  return carry + ` ${name}="${escape(value)}"`;
720
737
  }
721
738
  }, "");
722
- return `<${node.type}${attrs}>`;
739
+ return `<${String(node.type)}${attrs}>`;
723
740
  },
724
741
  renderTagChildren(node) {
725
- return typeof node.children === "string" ? node.children : node.children.reduce((html, child) => html + this.renderTag(child), "");
742
+ const { children } = node;
743
+ if (typeof children === "string") {
744
+ return children;
745
+ }
746
+ if (Array.isArray(children)) {
747
+ return children.reduce((html, child) => {
748
+ return html + this.renderTag(child);
749
+ }, "");
750
+ }
751
+ return "";
726
752
  },
727
753
  isFunctionNode(node) {
728
754
  return typeof node.type === "function";
@@ -741,7 +767,7 @@ var Head = defineComponent4({
741
767
  },
742
768
  renderTag(node) {
743
769
  if (this.isTextNode(node)) {
744
- return node.children;
770
+ return String(node.children);
745
771
  } else if (this.isFragmentNode(node)) {
746
772
  return "";
747
773
  } else if (this.isCommentNode(node)) {
@@ -752,7 +778,7 @@ var Head = defineComponent4({
752
778
  html += this.renderTagChildren(node);
753
779
  }
754
780
  if (!this.isUnaryTag(node)) {
755
- html += `</${node.type}>`;
781
+ html += `</${String(node.type)}>`;
756
782
  }
757
783
  return html;
758
784
  },
@@ -763,9 +789,8 @@ var Head = defineComponent4({
763
789
  return elements;
764
790
  },
765
791
  renderNodes(nodes) {
766
- return this.addTitleElement(
767
- nodes.flatMap((node) => this.resolveNode(node)).map((node) => this.renderTag(node)).filter((node) => node)
768
- );
792
+ const elements = nodes.flatMap((node) => this.resolveNode(node)).map((node) => this.renderTag(node)).filter((node) => node);
793
+ return this.addTitleElement(elements);
769
794
  },
770
795
  resolveNode(node) {
771
796
  if (this.isFunctionNode(node)) {
@@ -813,7 +838,8 @@ var InfiniteScroll = defineComponent5({
813
838
  slots: Object,
814
839
  props: {
815
840
  data: {
816
- type: String
841
+ type: String,
842
+ required: true
817
843
  },
818
844
  buffer: {
819
845
  type: Number,
@@ -973,7 +999,7 @@ var InfiniteScroll = defineComponent5({
973
999
  h4(
974
1000
  "div",
975
1001
  { ref: startElementRef },
976
- slots.previous ? slots.previous(exposedPrevious) : loadingPrevious.value ? slots.loading?.(exposedPrevious) : null
1002
+ slots.previous ? slots.previous(exposedPrevious) : loadingPrevious.value ? slots.loading?.(exposedPrevious) : void 0
977
1003
  )
978
1004
  );
979
1005
  }
@@ -1002,7 +1028,7 @@ var InfiniteScroll = defineComponent5({
1002
1028
  h4(
1003
1029
  "div",
1004
1030
  { ref: endElementRef },
1005
- slots.next ? slots.next(exposedNext) : loadingNext.value ? slots.loading?.(exposedNext) : null
1031
+ slots.next ? slots.next(exposedNext) : loadingNext.value ? slots.loading?.(exposedNext) : void 0
1006
1032
  )
1007
1033
  );
1008
1034
  }
@@ -1133,7 +1159,7 @@ var Link = defineComponent6({
1133
1159
  },
1134
1160
  setup(props, { slots, attrs }) {
1135
1161
  const inFlightCount = ref4(0);
1136
- const hoverTimeout = ref4(null);
1162
+ const hoverTimeout = ref4();
1137
1163
  const prefetchModes = computed4(() => {
1138
1164
  if (props.prefetch === true) {
1139
1165
  return ["hover"];
@@ -1164,7 +1190,7 @@ var Link = defineComponent6({
1164
1190
  clearTimeout(hoverTimeout.value);
1165
1191
  });
1166
1192
  const method = computed4(
1167
- () => isUrlMethodPair2(props.href) ? props.href.method : props.method.toLowerCase()
1193
+ () => isUrlMethodPair2(props.href) ? props.href.method : (props.method ?? "get").toLowerCase()
1168
1194
  );
1169
1195
  const as = computed4(() => {
1170
1196
  if (typeof props.as !== "string" || props.as.toLowerCase() !== "a") {
@@ -1176,7 +1202,7 @@ var Link = defineComponent6({
1176
1202
  () => mergeDataIntoQueryString2(
1177
1203
  method.value,
1178
1204
  isUrlMethodPair2(props.href) ? props.href.url : props.href,
1179
- props.data,
1205
+ props.data || {},
1180
1206
  props.queryStringArrayFormat
1181
1207
  )
1182
1208
  );
@@ -1209,12 +1235,12 @@ var Link = defineComponent6({
1209
1235
  onBefore: props.onBefore,
1210
1236
  onStart: (visit) => {
1211
1237
  inFlightCount.value++;
1212
- props.onStart(visit);
1238
+ props.onStart?.(visit);
1213
1239
  },
1214
1240
  onProgress: props.onProgress,
1215
1241
  onFinish: (visit) => {
1216
1242
  inFlightCount.value--;
1217
- props.onFinish(visit);
1243
+ props.onFinish?.(visit);
1218
1244
  },
1219
1245
  onCancel: props.onCancel,
1220
1246
  onSuccess: props.onSuccess,
@@ -1261,7 +1287,7 @@ var Link = defineComponent6({
1261
1287
  }
1262
1288
  },
1263
1289
  onKeydown: (event) => {
1264
- if (shouldIntercept(event) && shouldNavigate(event)) {
1290
+ if (shouldNavigate(event)) {
1265
1291
  event.preventDefault();
1266
1292
  prefetch();
1267
1293
  }
@@ -1434,7 +1460,7 @@ var whenVisible_default = defineComponent7({
1434
1460
  return;
1435
1461
  }
1436
1462
  if (!this.$props.always) {
1437
- this.observer.disconnect();
1463
+ this.observer?.disconnect();
1438
1464
  }
1439
1465
  if (this.fetching) {
1440
1466
  return;