@inertiajs/vue3 2.3.0 → 2.3.2

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
@@ -103,7 +103,7 @@ function useForm(...args) {
103
103
  let withAllErrors = false;
104
104
  const validator = createValidator((client) => {
105
105
  const { method, url } = precognitionEndpoint();
106
- const transformedData = transform(this.data());
106
+ const transformedData = cloneDeep2(transform(this.data()));
107
107
  return client[method](url, transformedData);
108
108
  }, cloneDeep2(defaults));
109
109
  validatorRef = validator;
@@ -529,7 +529,7 @@ async function createInertiaApp({
529
529
  h2("script", {
530
530
  "data-page": id,
531
531
  type: "application/json",
532
- innerHTML: JSON.stringify(initialPage)
532
+ innerHTML: JSON.stringify(initialPage).replace(/\//g, "\\/")
533
533
  }),
534
534
  h2("div", {
535
535
  id,
@@ -720,17 +720,17 @@ var Form = defineComponent3({
720
720
  (value) => form.setValidationTimeout(value)
721
721
  );
722
722
  onBeforeUnmount(() => formEvents.forEach((e) => formElement.value?.removeEventListener(e, onFormUpdate)));
723
- const getFormData = () => new FormData(formElement.value);
724
- const getData = () => formDataToObject(getFormData());
725
- const getUrlAndData = () => {
723
+ const getFormData = (submitter) => new FormData(formElement.value, submitter);
724
+ const getData = (submitter) => formDataToObject(getFormData(submitter));
725
+ const getUrlAndData = (submitter) => {
726
726
  return mergeDataIntoQueryString(
727
727
  method.value,
728
728
  isUrlMethodPair(props.action) ? props.action.url : props.action,
729
- getData(),
729
+ getData(submitter),
730
730
  props.queryStringArrayFormat
731
731
  );
732
732
  };
733
- const submit = () => {
733
+ const submit = (submitter) => {
734
734
  const maybeReset = (resetOption) => {
735
735
  if (!resetOption) {
736
736
  return;
@@ -767,8 +767,9 @@ var Form = defineComponent3({
767
767
  },
768
768
  ...props.options
769
769
  };
770
- const [url, data] = getUrlAndData();
770
+ const [url, data] = getUrlAndData(submitter);
771
771
  form.transform(() => props.transform(data)).submit(method.value, url, submitOptions);
772
+ form.transform(getTransformedData);
772
773
  };
773
774
  const reset = (...fields) => {
774
775
  resetFormFields(formElement.value, defaultData.value, fields);
@@ -837,7 +838,7 @@ var Form = defineComponent3({
837
838
  method: method.value,
838
839
  onSubmit: (event) => {
839
840
  event.preventDefault();
840
- submit();
841
+ submit(event.submitter);
841
842
  },
842
843
  inert: props.disableWhileProcessing && form.processing
843
844
  },
@@ -1593,6 +1594,7 @@ import { router as router9 } from "@inertiajs/core";
1593
1594
  import { defineComponent as defineComponent7, h as h6 } from "vue";
1594
1595
  var whenVisible_default = defineComponent7({
1595
1596
  name: "WhenVisible",
1597
+ slots: Object,
1596
1598
  props: {
1597
1599
  data: {
1598
1600
  type: [String, Array]
@@ -1699,9 +1701,9 @@ var whenVisible_default = defineComponent7({
1699
1701
  els.push(h6(this.$props.as));
1700
1702
  }
1701
1703
  if (!this.loaded) {
1702
- els.push(this.$slots.fallback ? this.$slots.fallback() : null);
1704
+ els.push(this.$slots.fallback ? this.$slots.fallback({}) : null);
1703
1705
  } else if (this.$slots.default) {
1704
- els.push(this.$slots.default());
1706
+ els.push(this.$slots.default({ fetching: this.fetching }));
1705
1707
  }
1706
1708
  return els;
1707
1709
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts", "../src/app.ts", "../src/remember.ts", "../src/useForm.ts", "../src/createInertiaApp.ts", "../src/deferred.ts", "../src/form.ts", "../src/head.ts", "../src/infiniteScroll.ts", "../src/link.ts", "../src/usePoll.ts", "../src/usePrefetch.ts", "../src/useRemember.ts", "../src/whenVisible.ts"],
4
- "sourcesContent": ["import { config as coreConfig } from '@inertiajs/core'\nimport { VueInertiaAppConfig } from './types'\n\nexport { progress, router } from '@inertiajs/core'\nexport { default as App, usePage } from './app'\nexport { default as createInertiaApp } from './createInertiaApp'\nexport { default as Deferred } from './deferred'\nexport { default as Form } from './form'\nexport { default as Head } from './head'\nexport { default as InfiniteScroll } from './infiniteScroll'\nexport { InertiaLinkProps, default as Link } from './link'\nexport * from './types'\nexport { InertiaForm, InertiaFormProps, default as useForm } from './useForm'\nexport { default as usePoll } from './usePoll'\nexport { default as usePrefetch } from './usePrefetch'\nexport { default as useRemember } from './useRemember'\nexport { default as WhenVisible } from './whenVisible'\n\nexport const config = coreConfig.extend<VueInertiaAppConfig>({})\n", "import {\n createHeadManager,\n HeadManager,\n HeadManagerOnUpdateCallback,\n HeadManagerTitleCallback,\n Page,\n PageProps,\n router,\n SharedPageProps,\n} from '@inertiajs/core'\nimport {\n computed,\n DefineComponent,\n defineComponent,\n h,\n markRaw,\n Plugin,\n PropType,\n reactive,\n ref,\n shallowRef,\n} from 'vue'\nimport remember from './remember'\nimport { VuePageHandlerArgs } from './types'\nimport useForm from './useForm'\n\nexport interface InertiaAppProps<SharedProps extends PageProps = PageProps> {\n initialPage: Page<SharedProps>\n initialComponent?: DefineComponent\n resolveComponent?: (name: string) => DefineComponent | Promise<DefineComponent>\n titleCallback?: HeadManagerTitleCallback\n onHeadUpdate?: HeadManagerOnUpdateCallback\n}\n\nexport type InertiaApp = DefineComponent<InertiaAppProps>\n\nconst component = ref<DefineComponent | undefined>(undefined)\nconst page = ref<Page>()\nconst layout = shallowRef(null)\nconst key = ref<number | undefined>(undefined)\nlet headManager: HeadManager\n\nconst App: InertiaApp = defineComponent({\n name: 'Inertia',\n props: {\n initialPage: {\n type: Object as PropType<Page>,\n required: true,\n },\n initialComponent: {\n type: Object as PropType<DefineComponent>,\n required: false,\n },\n resolveComponent: {\n type: Function as PropType<(name: string) => DefineComponent | Promise<DefineComponent>>,\n required: false,\n },\n titleCallback: {\n type: Function as PropType<HeadManagerTitleCallback>,\n required: false,\n default: (title: string) => title,\n },\n onHeadUpdate: {\n type: Function as PropType<HeadManagerOnUpdateCallback>,\n required: false,\n default: () => () => {},\n },\n },\n setup({ initialPage, initialComponent, resolveComponent, titleCallback, onHeadUpdate }: InertiaAppProps) {\n component.value = initialComponent ? markRaw(initialComponent) : undefined\n page.value = initialPage\n key.value = undefined\n\n const isServer = typeof window === 'undefined'\n headManager = createHeadManager(isServer, titleCallback || ((title: string) => title), onHeadUpdate || (() => {}))\n\n if (!isServer) {\n router.init<DefineComponent>({\n initialPage,\n resolveComponent: resolveComponent!,\n swapComponent: async (options: VuePageHandlerArgs) => {\n component.value = markRaw(options.component)\n page.value = options.page\n key.value = options.preserveState ? key.value : Date.now()\n },\n })\n\n router.on('navigate', () => headManager.forceUpdate())\n }\n\n return () => {\n if (component.value) {\n component.value.inheritAttrs = !!component.value.inheritAttrs\n\n const child = h(component.value, {\n ...page.value!.props,\n key: key.value,\n })\n\n if (layout.value) {\n component.value.layout = layout.value\n layout.value = null\n }\n\n if (component.value.layout) {\n if (typeof component.value.layout === 'function') {\n return component.value.layout(h, child)\n }\n\n return (Array.isArray(component.value.layout) ? component.value.layout : [component.value.layout])\n .concat(child)\n .reverse()\n .reduce((child, layout) => {\n layout.inheritAttrs = !!layout.inheritAttrs\n return h(layout, { ...page.value!.props }, () => child)\n })\n }\n\n return child\n }\n }\n },\n})\nexport default App\n\nexport const plugin: Plugin = {\n install(app) {\n router.form = useForm\n\n Object.defineProperty(app.config.globalProperties, '$inertia', { get: () => router })\n Object.defineProperty(app.config.globalProperties, '$page', { get: () => page.value })\n Object.defineProperty(app.config.globalProperties, '$headManager', { get: () => headManager })\n\n app.mixin(remember)\n },\n}\n\nexport function usePage<TPageProps extends PageProps = PageProps>(): Page<TPageProps & SharedPageProps> {\n return reactive({\n props: computed(() => page.value?.props),\n url: computed(() => page.value?.url),\n component: computed(() => page.value?.component),\n version: computed(() => page.value?.version),\n clearHistory: computed(() => page.value?.clearHistory),\n deferredProps: computed(() => page.value?.deferredProps),\n mergeProps: computed(() => page.value?.mergeProps),\n prependProps: computed(() => page.value?.prependProps),\n deepMergeProps: computed(() => page.value?.deepMergeProps),\n matchPropsOn: computed(() => page.value?.matchPropsOn),\n rememberedState: computed(() => page.value?.rememberedState),\n encryptHistory: computed(() => page.value?.encryptHistory),\n }) as Page<TPageProps>\n}\n", "import { router } from '@inertiajs/core'\nimport { cloneDeep } from 'lodash-es'\nimport { ComponentOptions } from 'vue'\n\nconst remember: ComponentOptions = {\n created() {\n if (!this.$options.remember) {\n return\n }\n\n if (Array.isArray(this.$options.remember)) {\n this.$options.remember = { data: this.$options.remember }\n }\n\n if (typeof this.$options.remember === 'string') {\n this.$options.remember = { data: [this.$options.remember] }\n }\n\n if (typeof this.$options.remember.data === 'string') {\n this.$options.remember = { data: [this.$options.remember.data] }\n }\n\n const rememberKey =\n this.$options.remember.key instanceof Function\n ? this.$options.remember.key.call(this)\n : this.$options.remember.key\n\n const restored = router.restore(rememberKey) as Record<string, unknown> | undefined\n\n const rememberable = this.$options.remember.data.filter((key: string) => {\n return !(this[key] !== null && typeof this[key] === 'object' && this[key].__rememberable === false)\n }) as string[]\n\n const hasCallbacks = (key: string) => {\n return (\n this[key] !== null &&\n typeof this[key] === 'object' &&\n typeof this[key].__remember === 'function' &&\n typeof this[key].__restore === 'function'\n )\n }\n\n rememberable.forEach((key: string) => {\n if (this[key] !== undefined && restored !== undefined && restored[key] !== undefined) {\n hasCallbacks(key) ? this[key].__restore(restored[key]) : (this[key] = restored[key])\n }\n\n this.$watch(\n key,\n () => {\n router.remember(\n rememberable.reduce(\n (data, key) => ({\n ...data,\n [key]: cloneDeep(hasCallbacks(key) ? this[key].__remember() : this[key]),\n }),\n {},\n ),\n rememberKey,\n )\n },\n { immediate: true, deep: true },\n )\n })\n },\n}\n\nexport default remember\n", "import {\n CancelToken,\n Errors,\n ErrorValue,\n FormDataErrors,\n FormDataKeys,\n FormDataType,\n FormDataValues,\n Method,\n Progress,\n RequestPayload,\n router,\n UrlMethodPair,\n UseFormArguments,\n UseFormSubmitArguments,\n UseFormSubmitOptions,\n UseFormTransformCallback,\n UseFormUtils,\n UseFormWithPrecognitionArguments,\n VisitOptions,\n} from '@inertiajs/core'\nimport {\n createValidator,\n NamedInputEvent,\n resolveName,\n toSimpleValidationErrors,\n ValidationConfig,\n Validator,\n} from 'laravel-precognition'\nimport { cloneDeep, get, has, isEqual, set } from 'lodash-es'\nimport { reactive, watch } from 'vue'\nimport { config } from '.'\n\nexport interface InertiaFormProps<TForm extends object> {\n isDirty: boolean\n errors: FormDataErrors<TForm>\n hasErrors: boolean\n processing: boolean\n progress: Progress | null\n wasSuccessful: boolean\n recentlySuccessful: boolean\n data(): TForm\n transform(callback: UseFormTransformCallback<TForm>): this\n defaults(): this\n defaults<T extends FormDataKeys<TForm>>(field: T, value: FormDataValues<TForm, T>): this\n defaults(fields: Partial<TForm>): this\n reset<K extends FormDataKeys<TForm>>(...fields: K[]): this\n clearErrors<K extends FormDataKeys<TForm>>(...fields: K[]): this\n resetAndClearErrors<K extends FormDataKeys<TForm>>(...fields: K[]): this\n setError<K extends FormDataKeys<TForm>>(field: K, value: ErrorValue): this\n setError(errors: FormDataErrors<TForm>): this\n submit: (...args: UseFormSubmitArguments) => void\n get(url: string, options?: UseFormSubmitOptions): void\n post(url: string, options?: UseFormSubmitOptions): void\n put(url: string, options?: UseFormSubmitOptions): void\n patch(url: string, options?: UseFormSubmitOptions): void\n delete(url: string, options?: UseFormSubmitOptions): void\n cancel(): void\n withPrecognition(...args: UseFormWithPrecognitionArguments): InertiaPrecognitiveForm<TForm>\n}\n\ntype PrecognitionValidationConfig<TKeys> = ValidationConfig & {\n only?: TKeys[] | Iterable<TKeys> | ArrayLike<TKeys>\n}\n\nexport interface InertiaFormValidationProps<TForm extends object> {\n invalid<K extends FormDataKeys<TForm>>(field: K): boolean\n setValidationTimeout(duration: number): this\n touch<K extends FormDataKeys<TForm>>(field: K | NamedInputEvent | Array<K>, ...fields: K[]): this\n touched<K extends FormDataKeys<TForm>>(field?: K): boolean\n valid<K extends FormDataKeys<TForm>>(field: K): boolean\n validate<K extends FormDataKeys<TForm>>(\n field?: K | NamedInputEvent | PrecognitionValidationConfig<K>,\n config?: PrecognitionValidationConfig<K>,\n ): this\n validateFiles(): this\n validating: boolean\n validator: () => Validator\n withAllErrors(): this\n withoutFileValidation(): this\n // Backward compatibility for easy migration from the original Precognition libraries\n setErrors(errors: FormDataErrors<TForm> | Record<string, string | string[]>): this\n forgetError<K extends FormDataKeys<TForm> | NamedInputEvent>(field: K): this\n}\n\ninterface InternalPrecognitionState {\n __touched: string[]\n __valid: string[]\n}\n\ninterface InternalRememberState<TForm extends object> {\n __rememberable: boolean\n __remember: () => { data: TForm; errors: FormDataErrors<TForm> }\n __restore: (restored: { data: TForm; errors: FormDataErrors<TForm> }) => void\n}\n\nexport type InertiaForm<TForm extends object> = TForm & InertiaFormProps<TForm>\nexport type InertiaPrecognitiveForm<TForm extends object> = InertiaForm<TForm> &\n InertiaFormValidationProps<TForm> &\n InternalPrecognitionState\n\nexport default function useForm<TForm extends FormDataType<TForm>>(\n method: Method | (() => Method),\n url: string | (() => string),\n data: TForm | (() => TForm),\n): InertiaPrecognitiveForm<TForm>\nexport default function useForm<TForm extends FormDataType<TForm>>(\n urlMethodPair: UrlMethodPair | (() => UrlMethodPair),\n data: TForm | (() => TForm),\n): InertiaPrecognitiveForm<TForm>\nexport default function useForm<TForm extends FormDataType<TForm>>(\n rememberKey: string,\n data: TForm | (() => TForm),\n): InertiaForm<TForm>\nexport default function useForm<TForm extends FormDataType<TForm>>(data: TForm | (() => TForm)): InertiaForm<TForm>\nexport default function useForm<TForm extends FormDataType<TForm>>(\n ...args: UseFormArguments<TForm>\n): InertiaForm<TForm> | InertiaPrecognitiveForm<TForm> {\n let { rememberKey, data, precognitionEndpoint } = UseFormUtils.parseUseFormArguments<TForm>(...args)\n\n const restored = rememberKey\n ? (router.restore(rememberKey) as { data: TForm; errors: Record<FormDataKeys<TForm>, ErrorValue> })\n : null\n let defaults = typeof data === 'function' ? cloneDeep(data()) : cloneDeep(data)\n let cancelToken: CancelToken | null = null\n let recentlySuccessfulTimeoutId: ReturnType<typeof setTimeout>\n let transform: UseFormTransformCallback<TForm> = (data) => data\n\n let validatorRef: Validator | null = null\n\n // Track if defaults was called manually during onSuccess to avoid\n // overriding user's custom defaults with automatic behavior.\n let defaultsCalledInOnSuccess = false\n\n const form = reactive<InertiaForm<TForm>>({\n ...(restored ? restored.data : cloneDeep(defaults)),\n isDirty: false,\n errors: (restored ? restored.errors : {}) as FormDataErrors<TForm>,\n hasErrors: false,\n processing: false,\n progress: null as Progress | null,\n wasSuccessful: false,\n recentlySuccessful: false,\n withPrecognition(...args: UseFormWithPrecognitionArguments): InertiaPrecognitiveForm<TForm> {\n precognitionEndpoint = UseFormUtils.createWayfinderCallback(...args)\n\n // Type assertion helper for accessing precognition state\n // We're dynamically adding precognition properties to 'this', so we assert the type\n const formWithPrecognition = this as any as InertiaPrecognitiveForm<TForm>\n\n let withAllErrors = false\n const validator = createValidator((client) => {\n const { method, url } = precognitionEndpoint!()\n const transformedData = transform(this.data()) as Record<string, unknown>\n\n return client[method](url, transformedData)\n }, cloneDeep(defaults))\n\n validatorRef = validator\n\n validator\n .on('validatingChanged', () => {\n formWithPrecognition.validating = validator.validating()\n })\n .on('validatedChanged', () => {\n formWithPrecognition.__valid = validator.valid()\n })\n .on('touchedChanged', () => {\n formWithPrecognition.__touched = validator.touched()\n })\n .on('errorsChanged', () => {\n const validationErrors = withAllErrors ? validator.errors() : toSimpleValidationErrors(validator.errors())\n\n this.errors = {} as FormDataErrors<TForm>\n\n this.setError(validationErrors as FormDataErrors<TForm>)\n\n formWithPrecognition.__valid = validator.valid()\n })\n\n const tap = <T>(value: T, callback: (value: T) => unknown): T => {\n callback(value)\n return value\n }\n\n Object.assign(formWithPrecognition, {\n __touched: [],\n __valid: [],\n validating: false,\n validator: () => validator,\n withAllErrors: () => tap(formWithPrecognition, () => (withAllErrors = true)),\n valid: (field: string) => formWithPrecognition.__valid.includes(field),\n invalid: (field: string) => field in this.errors,\n setValidationTimeout: (duration: number) => tap(formWithPrecognition, () => validator.setTimeout(duration)),\n validateFiles: () => tap(formWithPrecognition, () => validator.validateFiles()),\n withoutFileValidation: () => tap(formWithPrecognition, () => validator.withoutFileValidation()),\n touch: (\n field: FormDataKeys<TForm> | NamedInputEvent | Array<FormDataKeys<TForm>>,\n ...fields: FormDataKeys<TForm>[]\n ) => {\n if (Array.isArray(field)) {\n validator.touch(field)\n } else if (typeof field === 'string') {\n validator.touch([field, ...fields])\n } else {\n validator.touch(field)\n }\n\n return formWithPrecognition\n },\n touched: (field?: string): boolean =>\n typeof field === 'string'\n ? formWithPrecognition.__touched.includes(field)\n : formWithPrecognition.__touched.length > 0,\n validate: (field?: string | NamedInputEvent | ValidationConfig, config?: ValidationConfig) => {\n // Handle config object passed as first argument\n if (typeof field === 'object' && !('target' in field)) {\n config = field\n field = undefined\n }\n\n if (field === undefined) {\n validator.validate(config)\n } else {\n const fieldName = resolveName(field)\n const transformedData = transform(this.data()) as Record<string, unknown>\n validator.validate(fieldName, get(transformedData, fieldName), config)\n }\n\n return formWithPrecognition\n },\n setErrors: (errors: FormDataErrors<TForm>) => tap(formWithPrecognition, () => this.setError(errors)),\n forgetError: (field: FormDataKeys<TForm> | NamedInputEvent) =>\n tap(formWithPrecognition, () =>\n this.clearErrors(resolveName(field as string | NamedInputEvent) as FormDataKeys<TForm>),\n ),\n })\n\n return formWithPrecognition\n },\n data() {\n return (Object.keys(defaults) as Array<FormDataKeys<TForm>>).reduce((carry, key) => {\n return set(carry, key, get(this, key))\n }, {} as Partial<TForm>) as TForm\n },\n transform(callback: UseFormTransformCallback<TForm>) {\n transform = callback\n\n return this\n },\n defaults(fieldOrFields?: FormDataKeys<TForm> | Partial<TForm>, maybeValue?: unknown) {\n if (typeof data === 'function') {\n throw new Error('You cannot call `defaults()` when using a function to define your form data.')\n }\n\n defaultsCalledInOnSuccess = true\n\n if (typeof fieldOrFields === 'undefined') {\n defaults = cloneDeep(this.data())\n this.isDirty = false\n } else {\n defaults =\n typeof fieldOrFields === 'string'\n ? set(cloneDeep(defaults), fieldOrFields, maybeValue)\n : Object.assign({}, cloneDeep(defaults), fieldOrFields)\n }\n\n validatorRef?.defaults(defaults)\n\n return this\n },\n reset(...fields: FormDataKeys<TForm>[]) {\n const resolvedData = typeof data === 'function' ? cloneDeep(data()) : cloneDeep(defaults)\n const clonedData = cloneDeep(resolvedData)\n if (fields.length === 0) {\n defaults = clonedData\n Object.assign(this, resolvedData)\n } else {\n ;(fields as Array<FormDataKeys<TForm>>)\n .filter((key) => has(clonedData, key))\n .forEach((key) => {\n set(defaults, key, get(clonedData, key))\n set(this, key, get(resolvedData, key))\n })\n }\n\n validatorRef?.reset(...fields)\n\n return this\n },\n setError(fieldOrFields: FormDataKeys<TForm> | FormDataErrors<TForm>, maybeValue?: ErrorValue) {\n const errors = typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : fieldOrFields\n\n Object.assign(this.errors, errors)\n\n this.hasErrors = Object.keys(this.errors).length > 0\n\n validatorRef?.setErrors(errors as Errors)\n\n return this\n },\n clearErrors(...fields: string[]) {\n this.errors = Object.keys(this.errors).reduce(\n (carry, field) => ({\n ...carry,\n ...(fields.length > 0 && !fields.includes(field) ? { [field]: (this.errors as Errors)[field] } : {}),\n }),\n {} as FormDataErrors<TForm>,\n )\n\n this.hasErrors = Object.keys(this.errors).length > 0\n\n if (validatorRef) {\n if (fields.length === 0) {\n validatorRef.setErrors({})\n } else {\n fields.forEach(validatorRef.forgetError)\n }\n }\n\n return this\n },\n resetAndClearErrors(...fields: FormDataKeys<TForm>[]) {\n this.reset(...fields)\n this.clearErrors(...fields)\n return this\n },\n submit(...args: UseFormSubmitArguments) {\n const { method, url, options } = UseFormUtils.parseSubmitArguments(args, precognitionEndpoint)\n\n defaultsCalledInOnSuccess = false\n\n const _options: VisitOptions = {\n ...options,\n onCancelToken: (token) => {\n cancelToken = token\n\n if (options.onCancelToken) {\n return options.onCancelToken(token)\n }\n },\n onBefore: (visit) => {\n this.wasSuccessful = false\n this.recentlySuccessful = false\n clearTimeout(recentlySuccessfulTimeoutId)\n\n if (options.onBefore) {\n return options.onBefore(visit)\n }\n },\n onStart: (visit) => {\n this.processing = true\n\n if (options.onStart) {\n return options.onStart(visit)\n }\n },\n onProgress: (event) => {\n this.progress = event ?? null\n\n if (options.onProgress) {\n return options.onProgress(event)\n }\n },\n onSuccess: async (page) => {\n this.processing = false\n this.progress = null\n this.clearErrors()\n this.wasSuccessful = true\n this.recentlySuccessful = true\n recentlySuccessfulTimeoutId = setTimeout(\n () => (this.recentlySuccessful = false),\n config.get('form.recentlySuccessfulDuration'),\n )\n\n const onSuccess = options.onSuccess ? await options.onSuccess(page) : null\n\n if (!defaultsCalledInOnSuccess) {\n defaults = cloneDeep(this.data())\n this.isDirty = false\n }\n\n return onSuccess\n },\n onError: (errors) => {\n this.processing = false\n this.progress = null\n this.clearErrors().setError(errors as FormDataErrors<TForm>)\n\n if (options.onError) {\n return options.onError(errors)\n }\n },\n onCancel: () => {\n this.processing = false\n this.progress = null\n\n if (options.onCancel) {\n return options.onCancel()\n }\n },\n onFinish: (visit) => {\n this.processing = false\n this.progress = null\n cancelToken = null\n\n if (options.onFinish) {\n return options.onFinish(visit)\n }\n },\n }\n\n const transformedData = transform(this.data()) as RequestPayload\n\n if (method === 'delete') {\n router.delete(url, { ..._options, data: transformedData })\n } else {\n router[method](url, transformedData, _options)\n }\n },\n get(url: string, options: VisitOptions) {\n this.submit('get', url, options)\n },\n post(url: string, options: VisitOptions) {\n this.submit('post', url, options)\n },\n put(url: string, options: VisitOptions) {\n this.submit('put', url, options)\n },\n patch(url: string, options: VisitOptions) {\n this.submit('patch', url, options)\n },\n delete(url: string, options: VisitOptions) {\n this.submit('delete', url, options)\n },\n cancel() {\n if (cancelToken) {\n cancelToken.cancel()\n }\n },\n __rememberable: rememberKey === null,\n __remember() {\n return { data: this.data(), errors: this.errors }\n },\n __restore(restored: { data: TForm; errors: FormDataErrors<TForm> }) {\n Object.assign(this, restored.data)\n this.setError(restored.errors)\n },\n })\n\n const typedForm = form as any as InertiaForm<TForm>\n\n watch(\n typedForm as typeof typedForm & InternalRememberState<TForm>,\n (newValue) => {\n typedForm.isDirty = !isEqual(typedForm.data(), defaults)\n if (rememberKey) {\n router.remember(cloneDeep(newValue.__remember()), rememberKey)\n }\n },\n { immediate: true, deep: true },\n )\n\n return precognitionEndpoint ? typedForm.withPrecognition(precognitionEndpoint) : typedForm\n}\n", "import {\n CreateInertiaAppOptionsForCSR,\n CreateInertiaAppOptionsForSSR,\n getInitialPageFromDOM,\n InertiaAppResponse,\n InertiaAppSSRResponse,\n Page,\n PageProps,\n router,\n setupProgress,\n} from '@inertiajs/core'\nimport { createSSRApp, DefineComponent, h, Plugin, App as VueApp } from 'vue'\nimport { renderToString } from 'vue/server-renderer'\nimport App, { InertiaApp, InertiaAppProps, plugin } from './app'\nimport { config } from './index'\nimport { VueInertiaAppConfig } from './types'\n\ntype ComponentResolver = (name: string) => DefineComponent | Promise<DefineComponent> | { default: DefineComponent }\n\ntype SetupOptions<ElementType, SharedProps extends PageProps> = {\n el: ElementType\n App: InertiaApp\n props: InertiaAppProps<SharedProps>\n plugin: Plugin\n}\n\ntype InertiaAppOptionsForCSR<SharedProps extends PageProps> = CreateInertiaAppOptionsForCSR<\n SharedProps,\n ComponentResolver,\n SetupOptions<HTMLElement, SharedProps>,\n void,\n VueInertiaAppConfig\n>\n\ntype InertiaAppOptionsForSSR<SharedProps extends PageProps> = CreateInertiaAppOptionsForSSR<\n SharedProps,\n ComponentResolver,\n SetupOptions<null, SharedProps>,\n VueApp,\n VueInertiaAppConfig\n> & {\n render: typeof renderToString\n}\n\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForCSR<SharedProps>,\n): Promise<void>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForSSR<SharedProps>,\n): Promise<InertiaAppSSRResponse>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>({\n id = 'app',\n resolve,\n setup,\n title,\n progress = {},\n page,\n render,\n defaults = {},\n}: InertiaAppOptionsForCSR<SharedProps> | InertiaAppOptionsForSSR<SharedProps>): InertiaAppResponse {\n config.replace(defaults)\n\n const isServer = typeof window === 'undefined'\n const useScriptElementForInitialPage = config.get('future.useScriptElementForInitialPage')\n const initialPage = page || getInitialPageFromDOM<Page<SharedProps>>(id, useScriptElementForInitialPage)!\n\n const resolveComponent = (name: string) => Promise.resolve(resolve(name)).then((module) => module.default || module)\n\n let head: string[] = []\n\n const vueApp = await Promise.all([\n resolveComponent(initialPage.component),\n router.decryptHistory().catch(() => {}),\n ]).then(([initialComponent]) => {\n const props = {\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback: title,\n }\n\n if (isServer) {\n const ssrSetup = setup as (options: SetupOptions<null, SharedProps>) => VueApp\n\n return ssrSetup({\n el: null,\n App,\n props: { ...props, onHeadUpdate: (elements: string[]) => (head = elements) },\n plugin,\n })\n }\n\n const csrSetup = setup as (options: SetupOptions<HTMLElement, SharedProps>) => void\n\n return csrSetup({\n el: document.getElementById(id)!,\n App,\n props,\n plugin,\n })\n })\n\n if (!isServer && progress) {\n setupProgress(progress)\n }\n\n if (isServer && render) {\n const element = () => {\n if (!useScriptElementForInitialPage) {\n return h('div', {\n id,\n 'data-page': JSON.stringify(initialPage),\n innerHTML: vueApp ? render(vueApp) : '',\n })\n }\n\n return [\n h('script', {\n 'data-page': id,\n type: 'application/json',\n innerHTML: JSON.stringify(initialPage),\n }),\n h('div', {\n id,\n innerHTML: vueApp ? render(vueApp) : '',\n }),\n ]\n }\n\n const body = await render(\n createSSRApp({\n render: () => element(),\n }),\n )\n\n return { head, body }\n }\n}\n", "import { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'Deferred',\n props: {\n data: {\n type: [String, Array<String>],\n required: true,\n },\n },\n render() {\n const keys = (Array.isArray(this.$props.data) ? this.$props.data : [this.$props.data]) as string[]\n\n if (!this.$slots.fallback) {\n throw new Error('`<Deferred>` requires a `<template #fallback>` slot')\n }\n\n return keys.every((key) => this.$page.props[key] !== undefined) ? this.$slots.default?.() : this.$slots.fallback()\n },\n})\n", "import {\n Errors,\n FormComponentProps,\n FormComponentRef,\n FormComponentSlotProps,\n FormDataConvertible,\n formDataToObject,\n isUrlMethodPair,\n mergeDataIntoQueryString,\n Method,\n resetFormFields,\n UseFormUtils,\n VisitOptions,\n} from '@inertiajs/core'\nimport { NamedInputEvent, ValidationConfig } from 'laravel-precognition'\nimport { isEqual } from 'lodash-es'\nimport { computed, defineComponent, h, onBeforeUnmount, onMounted, PropType, ref, SlotsType, watch } from 'vue'\nimport useForm from './useForm'\n\ntype FormSubmitOptions = Omit<VisitOptions, 'data' | 'onPrefetched' | 'onPrefetching'>\n\nconst noop = () => undefined\n\nconst Form = defineComponent({\n name: 'Form',\n slots: Object as SlotsType<{\n default: FormComponentSlotProps\n }>,\n props: {\n action: {\n type: [String, Object] as PropType<FormComponentProps['action']>,\n default: '',\n },\n method: {\n type: String as PropType<FormComponentProps['method']>,\n default: 'get',\n },\n headers: {\n type: Object as PropType<FormComponentProps['headers']>,\n default: () => ({}),\n },\n queryStringArrayFormat: {\n type: String as PropType<FormComponentProps['queryStringArrayFormat']>,\n default: 'brackets',\n },\n errorBag: {\n type: [String, null] as PropType<FormComponentProps['errorBag']>,\n default: null,\n },\n showProgress: {\n type: Boolean,\n default: true,\n },\n transform: {\n type: Function as PropType<FormComponentProps['transform']>,\n default: (data: Record<string, FormDataConvertible>) => data,\n },\n options: {\n type: Object as PropType<FormComponentProps['options']>,\n default: () => ({}),\n },\n resetOnError: {\n type: [Boolean, Array] as PropType<FormComponentProps['resetOnError']>,\n default: false,\n },\n resetOnSuccess: {\n type: [Boolean, Array] as PropType<FormComponentProps['resetOnSuccess']>,\n default: false,\n },\n setDefaultsOnSuccess: {\n type: Boolean as PropType<FormComponentProps['setDefaultsOnSuccess']>,\n default: false,\n },\n onCancelToken: {\n type: Function as PropType<FormComponentProps['onCancelToken']>,\n default: noop,\n },\n onBefore: {\n type: Function as PropType<FormComponentProps['onBefore']>,\n default: noop,\n },\n onStart: {\n type: Function as PropType<FormComponentProps['onStart']>,\n default: noop,\n },\n onProgress: {\n type: Function as PropType<FormComponentProps['onProgress']>,\n default: noop,\n },\n onFinish: {\n type: Function as PropType<FormComponentProps['onFinish']>,\n default: noop,\n },\n onCancel: {\n type: Function as PropType<FormComponentProps['onCancel']>,\n default: noop,\n },\n onSuccess: {\n type: Function as PropType<FormComponentProps['onSuccess']>,\n default: noop,\n },\n onError: {\n type: Function as PropType<FormComponentProps['onError']>,\n default: noop,\n },\n onSubmitComplete: {\n type: Function as PropType<FormComponentProps['onSubmitComplete']>,\n default: noop,\n },\n disableWhileProcessing: {\n type: Boolean,\n default: false,\n },\n invalidateCacheTags: {\n type: [String, Array] as PropType<FormComponentProps['invalidateCacheTags']>,\n default: () => [],\n },\n validateFiles: {\n type: Boolean as PropType<FormComponentProps['validateFiles']>,\n default: false,\n },\n validationTimeout: {\n type: Number as PropType<FormComponentProps['validationTimeout']>,\n default: 1500,\n },\n withAllErrors: {\n type: Boolean as PropType<FormComponentProps['withAllErrors']>,\n default: false,\n },\n },\n setup(props, { slots, attrs, expose }) {\n const getTransformedData = (): Record<string, FormDataConvertible> => {\n const [_url, data] = getUrlAndData()\n\n return props.transform(data)\n }\n\n const form = useForm<Record<string, any>>({})\n .withPrecognition(\n () => method.value,\n () => getUrlAndData()[0],\n )\n .transform(getTransformedData)\n .setValidationTimeout(props.validationTimeout)\n\n if (props.validateFiles) {\n form.validateFiles()\n }\n\n if (props.withAllErrors) {\n form.withAllErrors()\n }\n\n const formElement = ref()\n const method = computed(() =>\n isUrlMethodPair(props.action) ? props.action.method : (props.method.toLowerCase() as Method),\n )\n\n // Can't use computed because FormData is not reactive\n const isDirty = ref(false)\n\n const defaultData = ref(new FormData())\n\n const onFormUpdate = (event: Event) => {\n // If the form is reset, we set isDirty to false as we already know it's back\n // to defaults. Also, the fields are updated after the reset event, so the\n // comparison will be incorrect unless we use nextTick/setTimeout.\n isDirty.value = event.type === 'reset' ? false : !isEqual(getData(), formDataToObject(defaultData.value))\n }\n\n const formEvents: Array<keyof HTMLElementEventMap> = ['input', 'change', 'reset']\n\n onMounted(() => {\n defaultData.value = getFormData()\n\n form.defaults(getData())\n\n formEvents.forEach((e) => formElement.value.addEventListener(e, onFormUpdate))\n })\n\n watch(\n () => props.validateFiles,\n (value) => (value ? form.validateFiles() : form.withoutFileValidation()),\n )\n\n watch(\n () => props.validationTimeout,\n (value) => form.setValidationTimeout(value),\n )\n\n onBeforeUnmount(() => formEvents.forEach((e) => formElement.value?.removeEventListener(e, onFormUpdate)))\n\n const getFormData = (): FormData => new FormData(formElement.value)\n\n // Convert the FormData to an object because we can't compare two FormData\n // instances directly (which is needed for isDirty), mergeDataIntoQueryString()\n // expects an object, and submitting a FormData instance directly causes problems with nested objects.\n const getData = (): Record<string, FormDataConvertible> => formDataToObject(getFormData())\n\n const getUrlAndData = (): [string, Record<string, FormDataConvertible>] => {\n return mergeDataIntoQueryString(\n method.value,\n isUrlMethodPair(props.action) ? props.action.url : props.action,\n getData(),\n props.queryStringArrayFormat,\n )\n }\n\n const submit = () => {\n const maybeReset = (resetOption: boolean | string[]) => {\n if (!resetOption) {\n return\n }\n\n if (resetOption === true) {\n reset()\n } else if (resetOption.length > 0) {\n reset(...resetOption)\n }\n }\n\n const submitOptions: FormSubmitOptions = {\n headers: props.headers,\n queryStringArrayFormat: props.queryStringArrayFormat,\n errorBag: props.errorBag,\n showProgress: props.showProgress,\n invalidateCacheTags: props.invalidateCacheTags,\n onCancelToken: props.onCancelToken,\n onBefore: props.onBefore,\n onStart: props.onStart,\n onProgress: props.onProgress,\n onFinish: props.onFinish,\n onCancel: props.onCancel,\n onSuccess: (...args) => {\n props.onSuccess?.(...args)\n props.onSubmitComplete?.(exposed)\n maybeReset(props.resetOnSuccess)\n\n if (props.setDefaultsOnSuccess === true) {\n defaults()\n }\n },\n onError: (...args) => {\n props.onError?.(...args)\n maybeReset(props.resetOnError)\n },\n ...props.options,\n }\n\n const [url, data] = getUrlAndData()\n\n // We need transform because we can't override the default data with different keys (by design)\n form.transform(() => props.transform(data)).submit(method.value, url, submitOptions)\n }\n\n const reset = (...fields: string[]) => {\n resetFormFields(formElement.value, defaultData.value, fields)\n\n form.reset(...fields)\n }\n\n const clearErrors = (...fields: string[]) => {\n form.clearErrors(...fields)\n }\n\n const resetAndClearErrors = (...fields: string[]) => {\n clearErrors(...fields)\n reset(...fields)\n }\n\n const defaults = () => {\n defaultData.value = getFormData()\n isDirty.value = false\n }\n\n const exposed = {\n get errors() {\n return form.errors\n },\n get hasErrors() {\n return form.hasErrors\n },\n get processing() {\n return form.processing\n },\n get progress() {\n return form.progress\n },\n get wasSuccessful() {\n return form.wasSuccessful\n },\n get recentlySuccessful() {\n return form.recentlySuccessful\n },\n get validating() {\n return form.validating\n },\n clearErrors,\n resetAndClearErrors,\n setError: (fieldOrFields: string | Record<string, string>, maybeValue?: string) =>\n form.setError((typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : fieldOrFields) as Errors),\n get isDirty() {\n return isDirty.value\n },\n reset,\n submit,\n defaults,\n getData,\n getFormData,\n\n // Precognition\n touch: form.touch,\n valid: form.valid,\n invalid: form.invalid,\n touched: form.touched,\n validate: (field?: string | NamedInputEvent | ValidationConfig, config?: ValidationConfig) =>\n form.validate(...UseFormUtils.mergeHeadersForValidation(field, config, props.headers)),\n validator: () => form.validator(),\n }\n\n expose<FormComponentRef>(exposed)\n\n return () => {\n return h(\n 'form',\n {\n ...attrs,\n ref: formElement,\n action: isUrlMethodPair(props.action) ? props.action.url : props.action,\n method: method.value,\n onSubmit: (event) => {\n event.preventDefault()\n submit()\n },\n inert: props.disableWhileProcessing && form.processing,\n },\n slots.default ? slots.default(exposed) : [],\n )\n }\n },\n})\n\nexport default Form\n", "import { escape } from 'lodash-es'\nimport { defineComponent, DefineComponent, VNode } from 'vue'\n\nexport type InertiaHead = DefineComponent<{\n title?: string\n}>\n\nconst Head: InertiaHead = defineComponent({\n props: {\n title: {\n type: String,\n required: false,\n },\n },\n data() {\n return {\n provider: this.$headManager.createProvider(),\n }\n },\n beforeUnmount() {\n this.provider.disconnect()\n },\n methods: {\n isUnaryTag(node: VNode) {\n return (\n typeof node.type === 'string' &&\n [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ].indexOf(node.type) > -1\n )\n },\n renderTagStart(node: VNode) {\n node.props = node.props || {}\n node.props[this.provider.preferredAttribute()] =\n node.props['head-key'] !== undefined ? node.props['head-key'] : ''\n\n const attrs = Object.keys(node.props).reduce((carry, name) => {\n const value = String(node.props![name])\n if (['key', 'head-key'].includes(name)) {\n return carry\n } else if (value === '') {\n return carry + ` ${name}`\n } else {\n return carry + ` ${name}=\"${escape(value)}\"`\n }\n }, '')\n\n return `<${String(node.type)}${attrs}>`\n },\n renderTagChildren(node: VNode): string {\n const { children } = node\n\n if (typeof children === 'string') {\n return children\n }\n\n if (Array.isArray(children)) {\n return children.reduce<string>((html, child) => {\n return html + this.renderTag(child as VNode)\n }, '')\n }\n\n return ''\n },\n isFunctionNode(node: VNode): node is VNode & { type: () => VNode } {\n return typeof node.type === 'function'\n },\n isComponentNode(node: VNode): node is VNode & { type: object } {\n return typeof node.type === 'object'\n },\n isCommentNode(node: VNode) {\n return /(comment|cmt)/i.test(node.type.toString())\n },\n isFragmentNode(node: VNode) {\n return /(fragment|fgt|symbol\\(\\))/i.test(node.type.toString())\n },\n isTextNode(node: VNode) {\n return /(text|txt)/i.test(node.type.toString())\n },\n renderTag(node: VNode): string {\n if (this.isTextNode(node)) {\n return String(node.children)\n } else if (this.isFragmentNode(node)) {\n return ''\n } else if (this.isCommentNode(node)) {\n return ''\n }\n\n let html = this.renderTagStart(node)\n\n if (node.children) {\n html += this.renderTagChildren(node)\n }\n\n if (!this.isUnaryTag(node)) {\n html += `</${String(node.type)}>`\n }\n\n return html\n },\n addTitleElement(elements: string[]) {\n if (this.title && !elements.find((tag) => tag.startsWith('<title'))) {\n elements.push(`<title ${this.provider.preferredAttribute()}>${this.title}</title>`)\n }\n\n return elements\n },\n renderNodes(nodes: VNode[]) {\n const elements = nodes\n .flatMap((node) => this.resolveNode(node))\n .map((node) => this.renderTag(node))\n .filter((node) => node)\n\n return this.addTitleElement(elements)\n },\n resolveNode(node: VNode): VNode | VNode[] {\n if (this.isFunctionNode(node)) {\n return this.resolveNode(node.type())\n } else if (this.isComponentNode(node)) {\n console.warn(`Using components in the <Head> component is not supported.`)\n return []\n } else if (this.isTextNode(node) && node.children) {\n return node\n } else if (this.isFragmentNode(node) && node.children) {\n return (node.children as VNode[]).flatMap((child) => this.resolveNode(child))\n } else if (this.isCommentNode(node)) {\n return []\n } else {\n return node\n }\n },\n },\n render() {\n this.provider.update(this.renderNodes(this.$slots.default ? this.$slots.default() : []))\n },\n})\n\nexport default Head\n", "import {\n getScrollableParent,\n InfiniteScrollActionSlotProps,\n InfiniteScrollComponentBaseProps,\n InfiniteScrollRef,\n InfiniteScrollSlotProps,\n useInfiniteScroll,\n} from '@inertiajs/core'\nimport { computed, defineComponent, Fragment, h, onMounted, onUnmounted, PropType, ref, SlotsType, watch } from 'vue'\n\n// Vue-specific element resolver\nconst resolveHTMLElement = (\n value: string | object | (() => HTMLElement | null),\n fallback: HTMLElement | null,\n): HTMLElement | null => {\n if (!value) {\n return fallback\n }\n\n // CSS Selector string\n if (typeof value === 'string') {\n return document.querySelector(value) as HTMLElement | null\n }\n\n // Function that returns an element\n if (typeof value === 'function') {\n return value() || null\n }\n\n return fallback\n}\n\nconst InfiniteScroll = defineComponent({\n name: 'InfiniteScroll',\n slots: Object as SlotsType<{\n default: InfiniteScrollSlotProps\n previous: InfiniteScrollActionSlotProps\n next: InfiniteScrollActionSlotProps\n loading: InfiniteScrollActionSlotProps\n }>,\n props: {\n data: {\n type: String as PropType<InfiniteScrollComponentBaseProps['data']>,\n required: true,\n },\n buffer: {\n type: Number as PropType<InfiniteScrollComponentBaseProps['buffer']>,\n default: 0,\n },\n onlyNext: {\n type: Boolean,\n default: false,\n },\n onlyPrevious: {\n type: Boolean,\n default: false,\n },\n as: {\n type: String as PropType<InfiniteScrollComponentBaseProps['as']>,\n default: 'div',\n },\n manual: {\n type: Boolean as PropType<InfiniteScrollComponentBaseProps['manual']>,\n default: false,\n },\n manualAfter: {\n type: Number as PropType<InfiniteScrollComponentBaseProps['manualAfter']>,\n default: 0,\n },\n preserveUrl: {\n type: Boolean as PropType<InfiniteScrollComponentBaseProps['preserveUrl']>,\n default: false,\n },\n reverse: {\n type: Boolean as PropType<InfiniteScrollComponentBaseProps['reverse']>,\n default: false,\n },\n autoScroll: {\n type: Boolean as PropType<InfiniteScrollComponentBaseProps['autoScroll']>,\n default: undefined,\n },\n itemsElement: {\n type: [String, Function, Object] as PropType<string | (() => HTMLElement | null | undefined)>,\n default: null,\n },\n startElement: {\n type: [String, Function, Object] as PropType<string | (() => HTMLElement | null | undefined)>,\n default: null,\n },\n endElement: {\n type: [String, Function, Object] as PropType<string | (() => HTMLElement | null | undefined)>,\n default: null,\n },\n },\n inheritAttrs: false,\n setup(props, { slots, attrs, expose }) {\n const itemsElementRef = ref<HTMLElement | null>(null)\n const startElementRef = ref<HTMLElement | null>(null)\n const endElementRef = ref<HTMLElement | null>(null)\n\n const itemsElement = computed<HTMLElement | null>(() =>\n resolveHTMLElement(props.itemsElement, itemsElementRef.value),\n )\n const scrollableParent = computed(() => getScrollableParent(itemsElement.value))\n const startElement = computed<HTMLElement | null>(() =>\n resolveHTMLElement(props.startElement, startElementRef.value),\n )\n const endElement = computed<HTMLElement | null>(() => resolveHTMLElement(props.endElement, endElementRef.value))\n\n const loadingPrevious = ref(false)\n const loadingNext = ref(false)\n const requestCount = ref(0)\n\n const {\n dataManager,\n elementManager,\n flush: flushInfiniteScroll,\n } = useInfiniteScroll({\n // Data\n getPropName: () => props.data,\n inReverseMode: () => props.reverse,\n shouldFetchNext: () => !props.onlyPrevious,\n shouldFetchPrevious: () => !props.onlyNext,\n shouldPreserveUrl: () => props.preserveUrl,\n\n // Elements\n getTriggerMargin: () => props.buffer,\n getStartElement: () => startElement.value!,\n getEndElement: () => endElement.value!,\n getItemsElement: () => itemsElement.value!,\n getScrollableParent: () => scrollableParent.value,\n\n // Request callbacks\n onBeforePreviousRequest: () => (loadingPrevious.value = true),\n onBeforeNextRequest: () => (loadingNext.value = true),\n onCompletePreviousRequest: () => {\n requestCount.value = dataManager.getRequestCount()\n loadingPrevious.value = false\n },\n onCompleteNextRequest: () => {\n requestCount.value = dataManager.getRequestCount()\n loadingNext.value = false\n },\n })\n\n requestCount.value = dataManager.getRequestCount()\n\n const autoLoad = computed<boolean>(() => !manualMode.value)\n const manualMode = computed<boolean>(\n () => props.manual || (props.manualAfter > 0 && requestCount.value >= props.manualAfter),\n )\n\n const scrollToBottom = () => {\n if (scrollableParent.value) {\n scrollableParent.value.scrollTo({\n top: scrollableParent.value.scrollHeight,\n behavior: 'instant',\n })\n } else {\n window.scrollTo({\n top: document.body.scrollHeight,\n behavior: 'instant',\n })\n }\n }\n\n onMounted(() => {\n elementManager.setupObservers()\n elementManager.processServerLoadedElements(dataManager.getLastLoadedPage())\n\n // autoScroll defaults to reverse value if not explicitly set\n const shouldAutoScroll = props.autoScroll !== undefined ? props.autoScroll : props.reverse\n\n if (shouldAutoScroll) {\n scrollToBottom()\n }\n\n if (autoLoad.value) {\n elementManager.enableTriggers()\n }\n })\n\n onUnmounted(flushInfiniteScroll)\n\n watch(\n () => [autoLoad.value, props.onlyNext, props.onlyPrevious],\n ([enabled]) => {\n enabled ? elementManager.enableTriggers() : elementManager.disableTriggers()\n },\n )\n\n expose<InfiniteScrollRef>({\n fetchNext: dataManager.fetchNext,\n fetchPrevious: dataManager.fetchPrevious,\n hasPrevious: dataManager.hasPrevious,\n hasNext: dataManager.hasNext,\n })\n\n return () => {\n const renderElements = []\n\n const sharedExposed: Pick<\n InfiniteScrollActionSlotProps,\n 'loadingPrevious' | 'loadingNext' | 'hasPrevious' | 'hasNext'\n > = {\n loadingPrevious: loadingPrevious.value,\n loadingNext: loadingNext.value,\n hasPrevious: dataManager.hasPrevious(),\n hasNext: dataManager.hasNext(),\n }\n\n // Only render previous trigger if not using custom element\n if (!props.startElement) {\n const headerAutoMode = autoLoad.value && !props.onlyNext\n const exposedPrevious: InfiniteScrollActionSlotProps = {\n loading: loadingPrevious.value,\n fetch: dataManager.fetchPrevious,\n autoMode: headerAutoMode,\n manualMode: !headerAutoMode,\n hasMore: dataManager.hasPrevious(),\n ...sharedExposed,\n }\n\n renderElements.push(\n h(\n 'div',\n { ref: startElementRef },\n slots.previous\n ? slots.previous(exposedPrevious)\n : loadingPrevious.value\n ? slots.loading?.(exposedPrevious)\n : undefined,\n ),\n )\n }\n\n renderElements.push(\n h(\n props.as,\n { ...attrs, ref: itemsElementRef },\n slots.default?.({\n loading: loadingPrevious.value || loadingNext.value,\n loadingPrevious: loadingPrevious.value,\n loadingNext: loadingNext.value,\n }),\n ),\n )\n\n // Only render next trigger if not using custom element\n if (!props.endElement) {\n const footerAutoMode = autoLoad.value && !props.onlyPrevious\n const exposedNext: InfiniteScrollActionSlotProps = {\n loading: loadingNext.value,\n fetch: dataManager.fetchNext,\n autoMode: footerAutoMode,\n manualMode: !footerAutoMode,\n hasMore: dataManager.hasNext(),\n ...sharedExposed,\n }\n\n renderElements.push(\n h(\n 'div',\n { ref: endElementRef },\n slots.next ? slots.next(exposedNext) : loadingNext.value ? slots.loading?.(exposedNext) : undefined,\n ),\n )\n }\n\n return h(Fragment, {}, props.reverse ? [...renderElements].reverse() : renderElements)\n }\n },\n})\n\nexport default InfiniteScroll\n", "import {\n ActiveVisit,\n isUrlMethodPair,\n LinkComponentBaseProps,\n LinkPrefetchOption,\n mergeDataIntoQueryString,\n Method,\n PendingVisit,\n router,\n shouldIntercept,\n shouldNavigate,\n} from '@inertiajs/core'\nimport { Component, computed, defineComponent, DefineComponent, h, onMounted, onUnmounted, PropType, ref } from 'vue'\nimport { config } from '.'\n\nconst noop = () => {}\n\nexport interface InertiaLinkProps extends LinkComponentBaseProps {\n as?: string | Component\n onClick?: (event: MouseEvent) => void\n}\n\ntype InertiaLink = DefineComponent<InertiaLinkProps>\n\nconst Link: InertiaLink = defineComponent({\n name: 'Link',\n props: {\n as: {\n type: [String, Object] as PropType<InertiaLinkProps['as']>,\n default: 'a',\n },\n data: {\n type: Object as PropType<InertiaLinkProps['data']>,\n default: () => ({}),\n },\n href: {\n type: [String, Object] as PropType<InertiaLinkProps['href']>,\n default: '',\n },\n method: {\n type: String as PropType<InertiaLinkProps['method']>,\n default: 'get',\n },\n replace: {\n type: Boolean as PropType<InertiaLinkProps['replace']>,\n default: false,\n },\n preserveScroll: {\n type: [Boolean, String, Function] as PropType<InertiaLinkProps['preserveScroll']>,\n default: false,\n },\n preserveState: {\n type: [Boolean, String, Function] as PropType<InertiaLinkProps['preserveState']>,\n default: null,\n },\n preserveUrl: {\n type: Boolean as PropType<InertiaLinkProps['preserveUrl']>,\n default: false,\n },\n only: {\n type: Array as PropType<InertiaLinkProps['only']>,\n default: () => [],\n },\n except: {\n type: Array as PropType<InertiaLinkProps['except']>,\n default: () => [],\n },\n headers: {\n type: Object as PropType<InertiaLinkProps['headers']>,\n default: () => ({}),\n },\n queryStringArrayFormat: {\n type: String as PropType<InertiaLinkProps['queryStringArrayFormat']>,\n default: 'brackets',\n },\n async: {\n type: Boolean as PropType<InertiaLinkProps['async']>,\n default: false,\n },\n prefetch: {\n type: [Boolean, String, Array] as PropType<InertiaLinkProps['prefetch']>,\n default: false,\n },\n cacheFor: {\n type: [Number, String, Array] as PropType<InertiaLinkProps['cacheFor']>,\n default: 0,\n },\n onStart: {\n type: Function as PropType<InertiaLinkProps['onStart']>,\n default: noop,\n },\n onProgress: {\n type: Function as PropType<InertiaLinkProps['onProgress']>,\n default: noop,\n },\n onFinish: {\n type: Function as PropType<InertiaLinkProps['onFinish']>,\n default: noop,\n },\n onBefore: {\n type: Function as PropType<InertiaLinkProps['onBefore']>,\n default: noop,\n },\n onCancel: {\n type: Function as PropType<InertiaLinkProps['onCancel']>,\n default: noop,\n },\n onSuccess: {\n type: Function as PropType<InertiaLinkProps['onSuccess']>,\n default: noop,\n },\n onError: {\n type: Function as PropType<InertiaLinkProps['onError']>,\n default: noop,\n },\n onCancelToken: {\n type: Function as PropType<InertiaLinkProps['onCancelToken']>,\n default: noop,\n },\n onPrefetching: {\n type: Function as PropType<InertiaLinkProps['onPrefetching']>,\n default: noop,\n },\n onPrefetched: {\n type: Function as PropType<InertiaLinkProps['onPrefetched']>,\n default: noop,\n },\n cacheTags: {\n type: [String, Array] as PropType<InertiaLinkProps['cacheTags']>,\n default: () => [],\n },\n viewTransition: {\n type: [Boolean, Object] as PropType<InertiaLinkProps['viewTransition']>,\n default: false,\n },\n },\n setup(props, { slots, attrs }) {\n const inFlightCount = ref(0)\n const hoverTimeout = ref<ReturnType<typeof setTimeout>>()\n\n const prefetchModes = computed<LinkPrefetchOption[]>(() => {\n if (props.prefetch === true) {\n return ['hover']\n }\n\n if (props.prefetch === false) {\n return []\n }\n\n if (Array.isArray(props.prefetch)) {\n return props.prefetch\n }\n\n return [props.prefetch] as LinkPrefetchOption[]\n })\n\n const cacheForValue = computed(() => {\n if (props.cacheFor !== 0) {\n // If they've provided a value, respect it\n return props.cacheFor\n }\n\n if (prefetchModes.value.length === 1 && prefetchModes.value[0] === 'click') {\n // If they've only provided a prefetch mode of 'click',\n // we should only prefetch for the next request but not keep it around\n return 0\n }\n\n // Otherwise, default to 30 seconds\n return config.get('prefetch.cacheFor')\n })\n\n onMounted(() => {\n if (prefetchModes.value.includes('mount')) {\n prefetch()\n }\n })\n\n onUnmounted(() => {\n clearTimeout(hoverTimeout.value)\n })\n\n const method = computed(() =>\n isUrlMethodPair(props.href) ? props.href.method : ((props.method ?? 'get').toLowerCase() as Method),\n )\n const as = computed(() => {\n if (typeof props.as !== 'string' || props.as.toLowerCase() !== 'a') {\n // Custom component or element\n return props.as\n }\n\n return method.value !== 'get' ? 'button' : props.as.toLowerCase()\n })\n const mergeDataArray = computed(() =>\n mergeDataIntoQueryString(\n method.value,\n isUrlMethodPair(props.href) ? props.href.url : (props.href as string),\n props.data || {},\n props.queryStringArrayFormat,\n ),\n )\n const href = computed(() => mergeDataArray.value[0])\n const data = computed(() => mergeDataArray.value[1])\n\n const elProps = computed(() => {\n if (as.value === 'button') {\n return { type: 'button' }\n }\n\n if (as.value === 'a' || typeof as.value !== 'string') {\n return { href: href.value }\n }\n\n return {}\n })\n\n const baseParams = computed(() => ({\n data: data.value,\n method: method.value,\n replace: props.replace,\n preserveScroll: props.preserveScroll,\n preserveState: props.preserveState ?? method.value !== 'get',\n preserveUrl: props.preserveUrl,\n only: props.only,\n except: props.except,\n headers: props.headers,\n async: props.async,\n }))\n\n const visitParams = computed(() => ({\n ...baseParams.value,\n viewTransition: props.viewTransition,\n onCancelToken: props.onCancelToken,\n onBefore: props.onBefore,\n onStart: (visit: PendingVisit) => {\n inFlightCount.value++\n props.onStart?.(visit)\n },\n onProgress: props.onProgress,\n onFinish: (visit: ActiveVisit) => {\n inFlightCount.value--\n props.onFinish?.(visit)\n },\n onCancel: props.onCancel,\n onSuccess: props.onSuccess,\n onError: props.onError,\n }))\n\n const prefetch = () => {\n router.prefetch(\n href.value,\n {\n ...baseParams.value,\n onPrefetching: props.onPrefetching,\n onPrefetched: props.onPrefetched,\n },\n {\n cacheFor: cacheForValue.value,\n cacheTags: props.cacheTags,\n },\n )\n }\n\n const regularEvents = {\n onClick: (event: MouseEvent) => {\n if (shouldIntercept(event)) {\n event.preventDefault()\n router.visit(href.value, visitParams.value)\n }\n },\n }\n\n const prefetchHoverEvents = {\n onMouseenter: () => {\n hoverTimeout.value = setTimeout(() => {\n prefetch()\n }, config.get('prefetch.hoverDelay'))\n },\n onMouseleave: () => {\n clearTimeout(hoverTimeout.value)\n },\n onClick: regularEvents.onClick,\n }\n\n const prefetchClickEvents = {\n onMousedown: (event: MouseEvent) => {\n if (shouldIntercept(event)) {\n event.preventDefault()\n prefetch()\n }\n },\n onKeydown: (event: KeyboardEvent) => {\n if (shouldNavigate(event)) {\n event.preventDefault()\n prefetch()\n }\n },\n onMouseup: (event: MouseEvent) => {\n if (shouldIntercept(event)) {\n event.preventDefault()\n router.visit(href.value, visitParams.value)\n }\n },\n onKeyup: (event: KeyboardEvent) => {\n if (shouldNavigate(event)) {\n event.preventDefault()\n router.visit(href.value, visitParams.value)\n }\n },\n onClick: (event: MouseEvent) => {\n if (shouldIntercept(event)) {\n // Let the mouseup/keyup event handle the visit\n event.preventDefault()\n }\n },\n }\n\n return () => {\n return h(\n as.value as string | Component,\n {\n ...attrs,\n ...elProps.value,\n 'data-loading': inFlightCount.value > 0 ? '' : undefined,\n ...(() => {\n if (prefetchModes.value.includes('hover')) {\n return prefetchHoverEvents\n }\n\n if (prefetchModes.value.includes('click')) {\n return prefetchClickEvents\n }\n\n return regularEvents\n })(),\n },\n slots,\n )\n }\n },\n})\n\nexport default Link\n", "import { PollOptions, ReloadOptions, router } from '@inertiajs/core'\nimport { onMounted, onUnmounted } from 'vue'\n\nexport default function usePoll(\n interval: number,\n requestOptions: ReloadOptions = {},\n options: PollOptions = {\n keepAlive: false,\n autoStart: true,\n },\n): {\n stop: VoidFunction\n start: VoidFunction\n} {\n const { stop, start } = router.poll(interval, requestOptions, {\n ...options,\n autoStart: false,\n })\n\n onMounted(() => {\n if (options.autoStart ?? true) {\n start()\n }\n })\n\n onUnmounted(() => {\n stop()\n })\n\n return {\n stop,\n start,\n }\n}\n", "import { router, VisitOptions } from '@inertiajs/core'\nimport { onMounted, onUnmounted, ref, Ref } from 'vue'\n\nexport default function usePrefetch(options: VisitOptions = {}): {\n lastUpdatedAt: Ref<number | null>\n isPrefetching: Ref<boolean>\n isPrefetched: Ref<boolean>\n flush: () => void\n} {\n const isPrefetching = ref(false)\n const lastUpdatedAt = ref<number | null>(null)\n const isPrefetched = ref(false)\n\n const cached = typeof window === 'undefined' ? null : router.getCached(window.location.pathname, options)\n const inFlight = typeof window === 'undefined' ? null : router.getPrefetching(window.location.pathname, options)\n\n lastUpdatedAt.value = cached?.staleTimestamp || null\n\n isPrefetching.value = inFlight !== null\n isPrefetched.value = cached !== null\n\n let onPrefetchedListener: () => void\n let onPrefetchingListener: () => void\n\n onMounted(() => {\n onPrefetchingListener = router.on('prefetching', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n isPrefetching.value = true\n }\n })\n\n onPrefetchedListener = router.on('prefetched', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n isPrefetching.value = false\n isPrefetched.value = true\n }\n })\n })\n\n onUnmounted(() => {\n onPrefetchedListener()\n onPrefetchingListener()\n })\n\n return {\n lastUpdatedAt,\n isPrefetching,\n isPrefetched,\n flush: () => router.flush(window.location.pathname, options),\n }\n}\n", "import { router } from '@inertiajs/core'\nimport { cloneDeep } from 'lodash-es'\nimport { isReactive, reactive, ref, Ref, watch } from 'vue'\n\nexport default function useRemember<T extends object>(\n data: T & { __rememberable?: boolean; __remember?: Function; __restore?: Function },\n key?: string,\n): Ref<T> | T {\n if (typeof data === 'object' && data !== null && data.__rememberable === false) {\n return data\n }\n\n const restored = router.restore(key)\n const type = isReactive(data) ? reactive : ref\n const hasCallbacks = typeof data.__remember === 'function' && typeof data.__restore === 'function'\n const remembered = type(restored === undefined ? data : hasCallbacks ? data.__restore!(restored) : restored)\n\n watch(\n remembered,\n (newValue) => {\n router.remember(cloneDeep(hasCallbacks ? data.__remember!() : newValue), key)\n },\n { immediate: true, deep: true },\n )\n\n return remembered\n}\n", "import { ReloadOptions, router } from '@inertiajs/core'\nimport { defineComponent, h, PropType } from 'vue'\nimport { usePage } from './app'\n\nexport default defineComponent({\n name: 'WhenVisible',\n props: {\n data: {\n type: [String, Array<String>],\n },\n params: {\n type: Object as PropType<ReloadOptions>,\n },\n buffer: {\n type: Number,\n default: 0,\n },\n as: {\n type: String,\n default: 'div',\n },\n always: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n loaded: false,\n fetching: false,\n observer: null as IntersectionObserver | null,\n }\n },\n unmounted() {\n this.observer?.disconnect()\n },\n computed: {\n keys(): string[] {\n return this.data ? ((Array.isArray(this.data) ? this.data : [this.data]) as string[]) : []\n },\n },\n created() {\n const page = usePage()\n\n this.$watch(\n () => this.keys.map((key) => page.props[key]),\n () => {\n const exists = this.keys.length > 0 && this.keys.every((key) => page.props[key] !== undefined)\n this.loaded = exists\n\n if (exists && !this.always) {\n return\n }\n\n this.$nextTick(this.registerObserver)\n },\n { immediate: true },\n )\n },\n methods: {\n registerObserver() {\n this.observer?.disconnect()\n\n this.observer = new IntersectionObserver(\n (entries) => {\n if (!entries[0].isIntersecting) {\n return\n }\n\n if (this.fetching) {\n return\n }\n\n if (!this.always && this.loaded) {\n return\n }\n\n this.fetching = true\n\n const reloadParams = this.getReloadParams()\n\n router.reload({\n ...reloadParams,\n onStart: (e) => {\n this.fetching = true\n reloadParams.onStart?.(e)\n },\n onFinish: (e) => {\n this.loaded = true\n this.fetching = false\n reloadParams.onFinish?.(e)\n\n if (!this.always) {\n this.observer?.disconnect()\n }\n },\n })\n },\n {\n rootMargin: `${this.$props.buffer}px`,\n },\n )\n\n this.observer.observe(this.$el.nextSibling)\n },\n getReloadParams(): Partial<ReloadOptions> {\n if (this.$props.data) {\n return {\n only: (Array.isArray(this.$props.data) ? this.$props.data : [this.$props.data]) as string[],\n }\n }\n\n if (!this.$props.params) {\n throw new Error('You must provide either a `data` or `params` prop.')\n }\n\n return this.$props.params\n },\n },\n render() {\n const els = []\n\n if (this.$props.always || !this.loaded) {\n els.push(h(this.$props.as))\n }\n\n if (!this.loaded) {\n els.push(this.$slots.fallback ? this.$slots.fallback() : null)\n } else if (this.$slots.default) {\n els.push(this.$slots.default())\n }\n\n return els\n },\n})\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { config as coreConfig } from '@inertiajs/core'\nimport { VueInertiaAppConfig } from './types'\n\nexport { progress, router } from '@inertiajs/core'\nexport { default as App, usePage } from './app'\nexport { default as createInertiaApp } from './createInertiaApp'\nexport { default as Deferred } from './deferred'\nexport { default as Form } from './form'\nexport { default as Head } from './head'\nexport { default as InfiniteScroll } from './infiniteScroll'\nexport { InertiaLinkProps, default as Link } from './link'\nexport * from './types'\nexport { InertiaForm, InertiaFormProps, InertiaPrecognitiveForm, default as useForm } from './useForm'\nexport { default as usePoll } from './usePoll'\nexport { default as usePrefetch } from './usePrefetch'\nexport { default as useRemember } from './useRemember'\nexport { default as WhenVisible } from './whenVisible'\n\nexport const config = coreConfig.extend<VueInertiaAppConfig>({})\n", "import {\n createHeadManager,\n HeadManager,\n HeadManagerOnUpdateCallback,\n HeadManagerTitleCallback,\n Page,\n PageProps,\n router,\n SharedPageProps,\n} from '@inertiajs/core'\nimport {\n computed,\n DefineComponent,\n defineComponent,\n h,\n markRaw,\n Plugin,\n PropType,\n reactive,\n ref,\n shallowRef,\n} from 'vue'\nimport remember from './remember'\nimport { VuePageHandlerArgs } from './types'\nimport useForm from './useForm'\n\nexport interface InertiaAppProps<SharedProps extends PageProps = PageProps> {\n initialPage: Page<SharedProps>\n initialComponent?: DefineComponent\n resolveComponent?: (name: string) => DefineComponent | Promise<DefineComponent>\n titleCallback?: HeadManagerTitleCallback\n onHeadUpdate?: HeadManagerOnUpdateCallback\n}\n\nexport type InertiaApp = DefineComponent<InertiaAppProps>\n\nconst component = ref<DefineComponent | undefined>(undefined)\nconst page = ref<Page>()\nconst layout = shallowRef(null)\nconst key = ref<number | undefined>(undefined)\nlet headManager: HeadManager\n\nconst App: InertiaApp = defineComponent({\n name: 'Inertia',\n props: {\n initialPage: {\n type: Object as PropType<Page>,\n required: true,\n },\n initialComponent: {\n type: Object as PropType<DefineComponent>,\n required: false,\n },\n resolveComponent: {\n type: Function as PropType<(name: string) => DefineComponent | Promise<DefineComponent>>,\n required: false,\n },\n titleCallback: {\n type: Function as PropType<HeadManagerTitleCallback>,\n required: false,\n default: (title: string) => title,\n },\n onHeadUpdate: {\n type: Function as PropType<HeadManagerOnUpdateCallback>,\n required: false,\n default: () => () => {},\n },\n },\n setup({ initialPage, initialComponent, resolveComponent, titleCallback, onHeadUpdate }: InertiaAppProps) {\n component.value = initialComponent ? markRaw(initialComponent) : undefined\n page.value = initialPage\n key.value = undefined\n\n const isServer = typeof window === 'undefined'\n headManager = createHeadManager(isServer, titleCallback || ((title: string) => title), onHeadUpdate || (() => {}))\n\n if (!isServer) {\n router.init<DefineComponent>({\n initialPage,\n resolveComponent: resolveComponent!,\n swapComponent: async (options: VuePageHandlerArgs) => {\n component.value = markRaw(options.component)\n page.value = options.page\n key.value = options.preserveState ? key.value : Date.now()\n },\n })\n\n router.on('navigate', () => headManager.forceUpdate())\n }\n\n return () => {\n if (component.value) {\n component.value.inheritAttrs = !!component.value.inheritAttrs\n\n const child = h(component.value, {\n ...page.value!.props,\n key: key.value,\n })\n\n if (layout.value) {\n component.value.layout = layout.value\n layout.value = null\n }\n\n if (component.value.layout) {\n if (typeof component.value.layout === 'function') {\n return component.value.layout(h, child)\n }\n\n return (Array.isArray(component.value.layout) ? component.value.layout : [component.value.layout])\n .concat(child)\n .reverse()\n .reduce((child, layout) => {\n layout.inheritAttrs = !!layout.inheritAttrs\n return h(layout, { ...page.value!.props }, () => child)\n })\n }\n\n return child\n }\n }\n },\n})\nexport default App\n\nexport const plugin: Plugin = {\n install(app) {\n router.form = useForm\n\n Object.defineProperty(app.config.globalProperties, '$inertia', { get: () => router })\n Object.defineProperty(app.config.globalProperties, '$page', { get: () => page.value })\n Object.defineProperty(app.config.globalProperties, '$headManager', { get: () => headManager })\n\n app.mixin(remember)\n },\n}\n\nexport function usePage<TPageProps extends PageProps = PageProps>(): Page<TPageProps & SharedPageProps> {\n return reactive({\n props: computed(() => page.value?.props),\n url: computed(() => page.value?.url),\n component: computed(() => page.value?.component),\n version: computed(() => page.value?.version),\n clearHistory: computed(() => page.value?.clearHistory),\n deferredProps: computed(() => page.value?.deferredProps),\n mergeProps: computed(() => page.value?.mergeProps),\n prependProps: computed(() => page.value?.prependProps),\n deepMergeProps: computed(() => page.value?.deepMergeProps),\n matchPropsOn: computed(() => page.value?.matchPropsOn),\n rememberedState: computed(() => page.value?.rememberedState),\n encryptHistory: computed(() => page.value?.encryptHistory),\n }) as Page<TPageProps>\n}\n", "import { router } from '@inertiajs/core'\nimport { cloneDeep } from 'lodash-es'\nimport { ComponentOptions } from 'vue'\n\nconst remember: ComponentOptions = {\n created() {\n if (!this.$options.remember) {\n return\n }\n\n if (Array.isArray(this.$options.remember)) {\n this.$options.remember = { data: this.$options.remember }\n }\n\n if (typeof this.$options.remember === 'string') {\n this.$options.remember = { data: [this.$options.remember] }\n }\n\n if (typeof this.$options.remember.data === 'string') {\n this.$options.remember = { data: [this.$options.remember.data] }\n }\n\n const rememberKey =\n this.$options.remember.key instanceof Function\n ? this.$options.remember.key.call(this)\n : this.$options.remember.key\n\n const restored = router.restore(rememberKey) as Record<string, unknown> | undefined\n\n const rememberable = this.$options.remember.data.filter((key: string) => {\n return !(this[key] !== null && typeof this[key] === 'object' && this[key].__rememberable === false)\n }) as string[]\n\n const hasCallbacks = (key: string) => {\n return (\n this[key] !== null &&\n typeof this[key] === 'object' &&\n typeof this[key].__remember === 'function' &&\n typeof this[key].__restore === 'function'\n )\n }\n\n rememberable.forEach((key: string) => {\n if (this[key] !== undefined && restored !== undefined && restored[key] !== undefined) {\n hasCallbacks(key) ? this[key].__restore(restored[key]) : (this[key] = restored[key])\n }\n\n this.$watch(\n key,\n () => {\n router.remember(\n rememberable.reduce(\n (data, key) => ({\n ...data,\n [key]: cloneDeep(hasCallbacks(key) ? this[key].__remember() : this[key]),\n }),\n {},\n ),\n rememberKey,\n )\n },\n { immediate: true, deep: true },\n )\n })\n },\n}\n\nexport default remember\n", "import {\n CancelToken,\n Errors,\n ErrorValue,\n FormDataErrors,\n FormDataKeys,\n FormDataType,\n FormDataValues,\n Method,\n Progress,\n RequestPayload,\n router,\n UrlMethodPair,\n UseFormArguments,\n UseFormSubmitArguments,\n UseFormSubmitOptions,\n UseFormTransformCallback,\n UseFormUtils,\n UseFormWithPrecognitionArguments,\n VisitOptions,\n} from '@inertiajs/core'\nimport {\n createValidator,\n NamedInputEvent,\n resolveName,\n toSimpleValidationErrors,\n ValidationConfig,\n Validator,\n} from 'laravel-precognition'\nimport { cloneDeep, get, has, isEqual, set } from 'lodash-es'\nimport { reactive, watch } from 'vue'\nimport { config } from '.'\n\nexport interface InertiaFormProps<TForm extends object> {\n isDirty: boolean\n errors: FormDataErrors<TForm>\n hasErrors: boolean\n processing: boolean\n progress: Progress | null\n wasSuccessful: boolean\n recentlySuccessful: boolean\n data(): TForm\n transform(callback: UseFormTransformCallback<TForm>): this\n defaults(): this\n defaults<T extends FormDataKeys<TForm>>(field: T, value: FormDataValues<TForm, T>): this\n defaults(fields: Partial<TForm>): this\n reset<K extends FormDataKeys<TForm>>(...fields: K[]): this\n clearErrors<K extends FormDataKeys<TForm>>(...fields: K[]): this\n resetAndClearErrors<K extends FormDataKeys<TForm>>(...fields: K[]): this\n setError<K extends FormDataKeys<TForm>>(field: K, value: ErrorValue): this\n setError(errors: FormDataErrors<TForm>): this\n submit: (...args: UseFormSubmitArguments) => void\n get(url: string, options?: UseFormSubmitOptions): void\n post(url: string, options?: UseFormSubmitOptions): void\n put(url: string, options?: UseFormSubmitOptions): void\n patch(url: string, options?: UseFormSubmitOptions): void\n delete(url: string, options?: UseFormSubmitOptions): void\n cancel(): void\n withPrecognition(...args: UseFormWithPrecognitionArguments): InertiaPrecognitiveForm<TForm>\n}\n\ntype PrecognitionValidationConfig<TKeys> = ValidationConfig & {\n only?: TKeys[] | Iterable<TKeys> | ArrayLike<TKeys>\n}\n\nexport interface InertiaFormValidationProps<TForm extends object> {\n invalid<K extends FormDataKeys<TForm>>(field: K): boolean\n setValidationTimeout(duration: number): this\n touch<K extends FormDataKeys<TForm>>(field: K | NamedInputEvent | Array<K>, ...fields: K[]): this\n touched<K extends FormDataKeys<TForm>>(field?: K): boolean\n valid<K extends FormDataKeys<TForm>>(field: K): boolean\n validate<K extends FormDataKeys<TForm>>(\n field?: K | NamedInputEvent | PrecognitionValidationConfig<K>,\n config?: PrecognitionValidationConfig<K>,\n ): this\n validateFiles(): this\n validating: boolean\n validator: () => Validator\n withAllErrors(): this\n withoutFileValidation(): this\n // Backward compatibility for easy migration from the original Precognition libraries\n setErrors(errors: FormDataErrors<TForm> | Record<string, string | string[]>): this\n forgetError<K extends FormDataKeys<TForm> | NamedInputEvent>(field: K): this\n}\n\ninterface InternalPrecognitionState {\n __touched: string[]\n __valid: string[]\n}\n\ninterface InternalRememberState<TForm extends object> {\n __rememberable: boolean\n __remember: () => { data: TForm; errors: FormDataErrors<TForm> }\n __restore: (restored: { data: TForm; errors: FormDataErrors<TForm> }) => void\n}\n\nexport type InertiaForm<TForm extends object> = TForm & InertiaFormProps<TForm>\nexport type InertiaPrecognitiveForm<TForm extends object> = InertiaForm<TForm> &\n InertiaFormValidationProps<TForm> &\n InternalPrecognitionState\n\nexport default function useForm<TForm extends FormDataType<TForm>>(\n method: Method | (() => Method),\n url: string | (() => string),\n data: TForm | (() => TForm),\n): InertiaPrecognitiveForm<TForm>\nexport default function useForm<TForm extends FormDataType<TForm>>(\n urlMethodPair: UrlMethodPair | (() => UrlMethodPair),\n data: TForm | (() => TForm),\n): InertiaPrecognitiveForm<TForm>\nexport default function useForm<TForm extends FormDataType<TForm>>(\n rememberKey: string,\n data: TForm | (() => TForm),\n): InertiaForm<TForm>\nexport default function useForm<TForm extends FormDataType<TForm>>(data: TForm | (() => TForm)): InertiaForm<TForm>\nexport default function useForm<TForm extends FormDataType<TForm>>(\n ...args: UseFormArguments<TForm>\n): InertiaForm<TForm> | InertiaPrecognitiveForm<TForm> {\n let { rememberKey, data, precognitionEndpoint } = UseFormUtils.parseUseFormArguments<TForm>(...args)\n\n const restored = rememberKey\n ? (router.restore(rememberKey) as { data: TForm; errors: Record<FormDataKeys<TForm>, ErrorValue> })\n : null\n let defaults = typeof data === 'function' ? cloneDeep(data()) : cloneDeep(data)\n let cancelToken: CancelToken | null = null\n let recentlySuccessfulTimeoutId: ReturnType<typeof setTimeout>\n let transform: UseFormTransformCallback<TForm> = (data) => data\n\n let validatorRef: Validator | null = null\n\n // Track if defaults was called manually during onSuccess to avoid\n // overriding user's custom defaults with automatic behavior.\n let defaultsCalledInOnSuccess = false\n\n const form = reactive<InertiaForm<TForm>>({\n ...(restored ? restored.data : cloneDeep(defaults)),\n isDirty: false,\n errors: (restored ? restored.errors : {}) as FormDataErrors<TForm>,\n hasErrors: false,\n processing: false,\n progress: null as Progress | null,\n wasSuccessful: false,\n recentlySuccessful: false,\n withPrecognition(...args: UseFormWithPrecognitionArguments): InertiaPrecognitiveForm<TForm> {\n precognitionEndpoint = UseFormUtils.createWayfinderCallback(...args)\n\n // Type assertion helper for accessing precognition state\n // We're dynamically adding precognition properties to 'this', so we assert the type\n const formWithPrecognition = this as any as InertiaPrecognitiveForm<TForm>\n\n let withAllErrors = false\n const validator = createValidator((client) => {\n const { method, url } = precognitionEndpoint!()\n const transformedData = cloneDeep(transform(this.data())) as Record<string, unknown>\n\n return client[method](url, transformedData)\n }, cloneDeep(defaults))\n\n validatorRef = validator\n\n validator\n .on('validatingChanged', () => {\n formWithPrecognition.validating = validator.validating()\n })\n .on('validatedChanged', () => {\n formWithPrecognition.__valid = validator.valid()\n })\n .on('touchedChanged', () => {\n formWithPrecognition.__touched = validator.touched()\n })\n .on('errorsChanged', () => {\n const validationErrors = withAllErrors ? validator.errors() : toSimpleValidationErrors(validator.errors())\n\n this.errors = {} as FormDataErrors<TForm>\n\n this.setError(validationErrors as FormDataErrors<TForm>)\n\n formWithPrecognition.__valid = validator.valid()\n })\n\n const tap = <T>(value: T, callback: (value: T) => unknown): T => {\n callback(value)\n return value\n }\n\n Object.assign(formWithPrecognition, {\n __touched: [],\n __valid: [],\n validating: false,\n validator: () => validator,\n withAllErrors: () => tap(formWithPrecognition, () => (withAllErrors = true)),\n valid: (field: string) => formWithPrecognition.__valid.includes(field),\n invalid: (field: string) => field in this.errors,\n setValidationTimeout: (duration: number) => tap(formWithPrecognition, () => validator.setTimeout(duration)),\n validateFiles: () => tap(formWithPrecognition, () => validator.validateFiles()),\n withoutFileValidation: () => tap(formWithPrecognition, () => validator.withoutFileValidation()),\n touch: (\n field: FormDataKeys<TForm> | NamedInputEvent | Array<FormDataKeys<TForm>>,\n ...fields: FormDataKeys<TForm>[]\n ) => {\n if (Array.isArray(field)) {\n validator.touch(field)\n } else if (typeof field === 'string') {\n validator.touch([field, ...fields])\n } else {\n validator.touch(field)\n }\n\n return formWithPrecognition\n },\n touched: (field?: string): boolean =>\n typeof field === 'string'\n ? formWithPrecognition.__touched.includes(field)\n : formWithPrecognition.__touched.length > 0,\n validate: (field?: string | NamedInputEvent | ValidationConfig, config?: ValidationConfig) => {\n // Handle config object passed as first argument\n if (typeof field === 'object' && !('target' in field)) {\n config = field\n field = undefined\n }\n\n if (field === undefined) {\n validator.validate(config)\n } else {\n const fieldName = resolveName(field)\n const transformedData = transform(this.data()) as Record<string, unknown>\n validator.validate(fieldName, get(transformedData, fieldName), config)\n }\n\n return formWithPrecognition\n },\n setErrors: (errors: FormDataErrors<TForm>) => tap(formWithPrecognition, () => this.setError(errors)),\n forgetError: (field: FormDataKeys<TForm> | NamedInputEvent) =>\n tap(formWithPrecognition, () =>\n this.clearErrors(resolveName(field as string | NamedInputEvent) as FormDataKeys<TForm>),\n ),\n })\n\n return formWithPrecognition\n },\n data() {\n return (Object.keys(defaults) as Array<FormDataKeys<TForm>>).reduce((carry, key) => {\n return set(carry, key, get(this, key))\n }, {} as Partial<TForm>) as TForm\n },\n transform(callback: UseFormTransformCallback<TForm>) {\n transform = callback\n\n return this\n },\n defaults(fieldOrFields?: FormDataKeys<TForm> | Partial<TForm>, maybeValue?: unknown) {\n if (typeof data === 'function') {\n throw new Error('You cannot call `defaults()` when using a function to define your form data.')\n }\n\n defaultsCalledInOnSuccess = true\n\n if (typeof fieldOrFields === 'undefined') {\n defaults = cloneDeep(this.data())\n this.isDirty = false\n } else {\n defaults =\n typeof fieldOrFields === 'string'\n ? set(cloneDeep(defaults), fieldOrFields, maybeValue)\n : Object.assign({}, cloneDeep(defaults), fieldOrFields)\n }\n\n validatorRef?.defaults(defaults)\n\n return this\n },\n reset(...fields: FormDataKeys<TForm>[]) {\n const resolvedData = typeof data === 'function' ? cloneDeep(data()) : cloneDeep(defaults)\n const clonedData = cloneDeep(resolvedData)\n if (fields.length === 0) {\n defaults = clonedData\n Object.assign(this, resolvedData)\n } else {\n ;(fields as Array<FormDataKeys<TForm>>)\n .filter((key) => has(clonedData, key))\n .forEach((key) => {\n set(defaults, key, get(clonedData, key))\n set(this, key, get(resolvedData, key))\n })\n }\n\n validatorRef?.reset(...fields)\n\n return this\n },\n setError(fieldOrFields: FormDataKeys<TForm> | FormDataErrors<TForm>, maybeValue?: ErrorValue) {\n const errors = typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : fieldOrFields\n\n Object.assign(this.errors, errors)\n\n this.hasErrors = Object.keys(this.errors).length > 0\n\n validatorRef?.setErrors(errors as Errors)\n\n return this\n },\n clearErrors(...fields: string[]) {\n this.errors = Object.keys(this.errors).reduce(\n (carry, field) => ({\n ...carry,\n ...(fields.length > 0 && !fields.includes(field) ? { [field]: (this.errors as Errors)[field] } : {}),\n }),\n {} as FormDataErrors<TForm>,\n )\n\n this.hasErrors = Object.keys(this.errors).length > 0\n\n if (validatorRef) {\n if (fields.length === 0) {\n validatorRef.setErrors({})\n } else {\n fields.forEach(validatorRef.forgetError)\n }\n }\n\n return this\n },\n resetAndClearErrors(...fields: FormDataKeys<TForm>[]) {\n this.reset(...fields)\n this.clearErrors(...fields)\n return this\n },\n submit(...args: UseFormSubmitArguments) {\n const { method, url, options } = UseFormUtils.parseSubmitArguments(args, precognitionEndpoint)\n\n defaultsCalledInOnSuccess = false\n\n const _options: VisitOptions = {\n ...options,\n onCancelToken: (token) => {\n cancelToken = token\n\n if (options.onCancelToken) {\n return options.onCancelToken(token)\n }\n },\n onBefore: (visit) => {\n this.wasSuccessful = false\n this.recentlySuccessful = false\n clearTimeout(recentlySuccessfulTimeoutId)\n\n if (options.onBefore) {\n return options.onBefore(visit)\n }\n },\n onStart: (visit) => {\n this.processing = true\n\n if (options.onStart) {\n return options.onStart(visit)\n }\n },\n onProgress: (event) => {\n this.progress = event ?? null\n\n if (options.onProgress) {\n return options.onProgress(event)\n }\n },\n onSuccess: async (page) => {\n this.processing = false\n this.progress = null\n this.clearErrors()\n this.wasSuccessful = true\n this.recentlySuccessful = true\n recentlySuccessfulTimeoutId = setTimeout(\n () => (this.recentlySuccessful = false),\n config.get('form.recentlySuccessfulDuration'),\n )\n\n const onSuccess = options.onSuccess ? await options.onSuccess(page) : null\n\n if (!defaultsCalledInOnSuccess) {\n defaults = cloneDeep(this.data())\n this.isDirty = false\n }\n\n return onSuccess\n },\n onError: (errors) => {\n this.processing = false\n this.progress = null\n this.clearErrors().setError(errors as FormDataErrors<TForm>)\n\n if (options.onError) {\n return options.onError(errors)\n }\n },\n onCancel: () => {\n this.processing = false\n this.progress = null\n\n if (options.onCancel) {\n return options.onCancel()\n }\n },\n onFinish: (visit) => {\n this.processing = false\n this.progress = null\n cancelToken = null\n\n if (options.onFinish) {\n return options.onFinish(visit)\n }\n },\n }\n\n const transformedData = transform(this.data()) as RequestPayload\n\n if (method === 'delete') {\n router.delete(url, { ..._options, data: transformedData })\n } else {\n router[method](url, transformedData, _options)\n }\n },\n get(url: string, options: VisitOptions) {\n this.submit('get', url, options)\n },\n post(url: string, options: VisitOptions) {\n this.submit('post', url, options)\n },\n put(url: string, options: VisitOptions) {\n this.submit('put', url, options)\n },\n patch(url: string, options: VisitOptions) {\n this.submit('patch', url, options)\n },\n delete(url: string, options: VisitOptions) {\n this.submit('delete', url, options)\n },\n cancel() {\n if (cancelToken) {\n cancelToken.cancel()\n }\n },\n __rememberable: rememberKey === null,\n __remember() {\n return { data: this.data(), errors: this.errors }\n },\n __restore(restored: { data: TForm; errors: FormDataErrors<TForm> }) {\n Object.assign(this, restored.data)\n this.setError(restored.errors)\n },\n })\n\n const typedForm = form as any as InertiaForm<TForm>\n\n watch(\n typedForm as typeof typedForm & InternalRememberState<TForm>,\n (newValue) => {\n typedForm.isDirty = !isEqual(typedForm.data(), defaults)\n if (rememberKey) {\n router.remember(cloneDeep(newValue.__remember()), rememberKey)\n }\n },\n { immediate: true, deep: true },\n )\n\n return precognitionEndpoint ? typedForm.withPrecognition(precognitionEndpoint) : typedForm\n}\n", "import {\n CreateInertiaAppOptionsForCSR,\n CreateInertiaAppOptionsForSSR,\n getInitialPageFromDOM,\n InertiaAppResponse,\n InertiaAppSSRResponse,\n Page,\n PageProps,\n router,\n setupProgress,\n} from '@inertiajs/core'\nimport { createSSRApp, DefineComponent, h, Plugin, App as VueApp } from 'vue'\nimport { renderToString } from 'vue/server-renderer'\nimport App, { InertiaApp, InertiaAppProps, plugin } from './app'\nimport { config } from './index'\nimport { VueInertiaAppConfig } from './types'\n\ntype ComponentResolver = (name: string) => DefineComponent | Promise<DefineComponent> | { default: DefineComponent }\n\ntype SetupOptions<ElementType, SharedProps extends PageProps> = {\n el: ElementType\n App: InertiaApp\n props: InertiaAppProps<SharedProps>\n plugin: Plugin\n}\n\ntype InertiaAppOptionsForCSR<SharedProps extends PageProps> = CreateInertiaAppOptionsForCSR<\n SharedProps,\n ComponentResolver,\n SetupOptions<HTMLElement, SharedProps>,\n void,\n VueInertiaAppConfig\n>\n\ntype InertiaAppOptionsForSSR<SharedProps extends PageProps> = CreateInertiaAppOptionsForSSR<\n SharedProps,\n ComponentResolver,\n SetupOptions<null, SharedProps>,\n VueApp,\n VueInertiaAppConfig\n> & {\n render: typeof renderToString\n}\n\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForCSR<SharedProps>,\n): Promise<void>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForSSR<SharedProps>,\n): Promise<InertiaAppSSRResponse>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>({\n id = 'app',\n resolve,\n setup,\n title,\n progress = {},\n page,\n render,\n defaults = {},\n}: InertiaAppOptionsForCSR<SharedProps> | InertiaAppOptionsForSSR<SharedProps>): InertiaAppResponse {\n config.replace(defaults)\n\n const isServer = typeof window === 'undefined'\n const useScriptElementForInitialPage = config.get('future.useScriptElementForInitialPage')\n const initialPage = page || getInitialPageFromDOM<Page<SharedProps>>(id, useScriptElementForInitialPage)!\n\n const resolveComponent = (name: string) => Promise.resolve(resolve(name)).then((module) => module.default || module)\n\n let head: string[] = []\n\n const vueApp = await Promise.all([\n resolveComponent(initialPage.component),\n router.decryptHistory().catch(() => {}),\n ]).then(([initialComponent]) => {\n const props = {\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback: title,\n }\n\n if (isServer) {\n const ssrSetup = setup as (options: SetupOptions<null, SharedProps>) => VueApp\n\n return ssrSetup({\n el: null,\n App,\n props: { ...props, onHeadUpdate: (elements: string[]) => (head = elements) },\n plugin,\n })\n }\n\n const csrSetup = setup as (options: SetupOptions<HTMLElement, SharedProps>) => void\n\n return csrSetup({\n el: document.getElementById(id)!,\n App,\n props,\n plugin,\n })\n })\n\n if (!isServer && progress) {\n setupProgress(progress)\n }\n\n if (isServer && render) {\n const element = () => {\n if (!useScriptElementForInitialPage) {\n return h('div', {\n id,\n 'data-page': JSON.stringify(initialPage),\n innerHTML: vueApp ? render(vueApp) : '',\n })\n }\n\n return [\n h('script', {\n 'data-page': id,\n type: 'application/json',\n innerHTML: JSON.stringify(initialPage).replace(/\\//g, '\\\\/'),\n }),\n h('div', {\n id,\n innerHTML: vueApp ? render(vueApp) : '',\n }),\n ]\n }\n\n const body = await render(\n createSSRApp({\n render: () => element(),\n }),\n )\n\n return { head, body }\n }\n}\n", "import { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'Deferred',\n props: {\n data: {\n type: [String, Array<String>],\n required: true,\n },\n },\n render() {\n const keys = (Array.isArray(this.$props.data) ? this.$props.data : [this.$props.data]) as string[]\n\n if (!this.$slots.fallback) {\n throw new Error('`<Deferred>` requires a `<template #fallback>` slot')\n }\n\n return keys.every((key) => this.$page.props[key] !== undefined) ? this.$slots.default?.() : this.$slots.fallback()\n },\n})\n", "import {\n Errors,\n FormComponentProps,\n FormComponentRef,\n FormComponentSlotProps,\n FormDataConvertible,\n formDataToObject,\n isUrlMethodPair,\n mergeDataIntoQueryString,\n Method,\n resetFormFields,\n UseFormUtils,\n VisitOptions,\n} from '@inertiajs/core'\nimport { NamedInputEvent, ValidationConfig } from 'laravel-precognition'\nimport { isEqual } from 'lodash-es'\nimport { computed, defineComponent, h, onBeforeUnmount, onMounted, PropType, ref, SlotsType, watch } from 'vue'\nimport useForm from './useForm'\n\ntype FormSubmitOptions = Omit<VisitOptions, 'data' | 'onPrefetched' | 'onPrefetching'>\ntype FormSubmitter = HTMLElement | null\n\nconst noop = () => undefined\n\nconst Form = defineComponent({\n name: 'Form',\n slots: Object as SlotsType<{\n default: FormComponentSlotProps\n }>,\n props: {\n action: {\n type: [String, Object] as PropType<FormComponentProps['action']>,\n default: '',\n },\n method: {\n type: String as PropType<FormComponentProps['method']>,\n default: 'get',\n },\n headers: {\n type: Object as PropType<FormComponentProps['headers']>,\n default: () => ({}),\n },\n queryStringArrayFormat: {\n type: String as PropType<FormComponentProps['queryStringArrayFormat']>,\n default: 'brackets',\n },\n errorBag: {\n type: [String, null] as PropType<FormComponentProps['errorBag']>,\n default: null,\n },\n showProgress: {\n type: Boolean,\n default: true,\n },\n transform: {\n type: Function as PropType<FormComponentProps['transform']>,\n default: (data: Record<string, FormDataConvertible>) => data,\n },\n options: {\n type: Object as PropType<FormComponentProps['options']>,\n default: () => ({}),\n },\n resetOnError: {\n type: [Boolean, Array] as PropType<FormComponentProps['resetOnError']>,\n default: false,\n },\n resetOnSuccess: {\n type: [Boolean, Array] as PropType<FormComponentProps['resetOnSuccess']>,\n default: false,\n },\n setDefaultsOnSuccess: {\n type: Boolean as PropType<FormComponentProps['setDefaultsOnSuccess']>,\n default: false,\n },\n onCancelToken: {\n type: Function as PropType<FormComponentProps['onCancelToken']>,\n default: noop,\n },\n onBefore: {\n type: Function as PropType<FormComponentProps['onBefore']>,\n default: noop,\n },\n onStart: {\n type: Function as PropType<FormComponentProps['onStart']>,\n default: noop,\n },\n onProgress: {\n type: Function as PropType<FormComponentProps['onProgress']>,\n default: noop,\n },\n onFinish: {\n type: Function as PropType<FormComponentProps['onFinish']>,\n default: noop,\n },\n onCancel: {\n type: Function as PropType<FormComponentProps['onCancel']>,\n default: noop,\n },\n onSuccess: {\n type: Function as PropType<FormComponentProps['onSuccess']>,\n default: noop,\n },\n onError: {\n type: Function as PropType<FormComponentProps['onError']>,\n default: noop,\n },\n onSubmitComplete: {\n type: Function as PropType<FormComponentProps['onSubmitComplete']>,\n default: noop,\n },\n disableWhileProcessing: {\n type: Boolean,\n default: false,\n },\n invalidateCacheTags: {\n type: [String, Array] as PropType<FormComponentProps['invalidateCacheTags']>,\n default: () => [],\n },\n validateFiles: {\n type: Boolean as PropType<FormComponentProps['validateFiles']>,\n default: false,\n },\n validationTimeout: {\n type: Number as PropType<FormComponentProps['validationTimeout']>,\n default: 1500,\n },\n withAllErrors: {\n type: Boolean as PropType<FormComponentProps['withAllErrors']>,\n default: false,\n },\n },\n setup(props, { slots, attrs, expose }) {\n const getTransformedData = (): Record<string, FormDataConvertible> => {\n const [_url, data] = getUrlAndData()\n\n return props.transform(data)\n }\n\n const form = useForm<Record<string, any>>({})\n .withPrecognition(\n () => method.value,\n () => getUrlAndData()[0],\n )\n .transform(getTransformedData)\n .setValidationTimeout(props.validationTimeout)\n\n if (props.validateFiles) {\n form.validateFiles()\n }\n\n if (props.withAllErrors) {\n form.withAllErrors()\n }\n\n const formElement = ref()\n const method = computed(() =>\n isUrlMethodPair(props.action) ? props.action.method : (props.method.toLowerCase() as Method),\n )\n\n // Can't use computed because FormData is not reactive\n const isDirty = ref(false)\n\n const defaultData = ref(new FormData())\n\n const onFormUpdate = (event: Event) => {\n // If the form is reset, we set isDirty to false as we already know it's back\n // to defaults. Also, the fields are updated after the reset event, so the\n // comparison will be incorrect unless we use nextTick/setTimeout.\n isDirty.value = event.type === 'reset' ? false : !isEqual(getData(), formDataToObject(defaultData.value))\n }\n\n const formEvents: Array<keyof HTMLElementEventMap> = ['input', 'change', 'reset']\n\n onMounted(() => {\n defaultData.value = getFormData()\n\n form.defaults(getData())\n\n formEvents.forEach((e) => formElement.value.addEventListener(e, onFormUpdate))\n })\n\n watch(\n () => props.validateFiles,\n (value) => (value ? form.validateFiles() : form.withoutFileValidation()),\n )\n\n watch(\n () => props.validationTimeout,\n (value) => form.setValidationTimeout(value),\n )\n\n onBeforeUnmount(() => formEvents.forEach((e) => formElement.value?.removeEventListener(e, onFormUpdate)))\n\n const getFormData = (submitter?: FormSubmitter): FormData => new FormData(formElement.value, submitter)\n\n // Convert the FormData to an object because we can't compare two FormData\n // instances directly (which is needed for isDirty), mergeDataIntoQueryString()\n // expects an object, and submitting a FormData instance directly causes problems with nested objects.\n const getData = (submitter?: FormSubmitter): Record<string, FormDataConvertible> =>\n formDataToObject(getFormData(submitter))\n\n const getUrlAndData = (submitter?: FormSubmitter): [string, Record<string, FormDataConvertible>] => {\n return mergeDataIntoQueryString(\n method.value,\n isUrlMethodPair(props.action) ? props.action.url : props.action,\n getData(submitter),\n props.queryStringArrayFormat,\n )\n }\n\n const submit = (submitter?: FormSubmitter) => {\n const maybeReset = (resetOption: boolean | string[]) => {\n if (!resetOption) {\n return\n }\n\n if (resetOption === true) {\n reset()\n } else if (resetOption.length > 0) {\n reset(...resetOption)\n }\n }\n\n const submitOptions: FormSubmitOptions = {\n headers: props.headers,\n queryStringArrayFormat: props.queryStringArrayFormat,\n errorBag: props.errorBag,\n showProgress: props.showProgress,\n invalidateCacheTags: props.invalidateCacheTags,\n onCancelToken: props.onCancelToken,\n onBefore: props.onBefore,\n onStart: props.onStart,\n onProgress: props.onProgress,\n onFinish: props.onFinish,\n onCancel: props.onCancel,\n onSuccess: (...args) => {\n props.onSuccess?.(...args)\n props.onSubmitComplete?.(exposed)\n maybeReset(props.resetOnSuccess)\n\n if (props.setDefaultsOnSuccess === true) {\n defaults()\n }\n },\n onError: (...args) => {\n props.onError?.(...args)\n maybeReset(props.resetOnError)\n },\n ...props.options,\n }\n\n const [url, data] = getUrlAndData(submitter)\n\n // We need transform because we can't override the default data with different keys (by design)\n form.transform(() => props.transform(data)).submit(method.value, url, submitOptions)\n\n // Reset the transformer back so the submitter is not used for future submissions\n form.transform(getTransformedData)\n }\n\n const reset = (...fields: string[]) => {\n resetFormFields(formElement.value, defaultData.value, fields)\n\n form.reset(...fields)\n }\n\n const clearErrors = (...fields: string[]) => {\n form.clearErrors(...fields)\n }\n\n const resetAndClearErrors = (...fields: string[]) => {\n clearErrors(...fields)\n reset(...fields)\n }\n\n const defaults = () => {\n defaultData.value = getFormData()\n isDirty.value = false\n }\n\n const exposed = {\n get errors() {\n return form.errors\n },\n get hasErrors() {\n return form.hasErrors\n },\n get processing() {\n return form.processing\n },\n get progress() {\n return form.progress\n },\n get wasSuccessful() {\n return form.wasSuccessful\n },\n get recentlySuccessful() {\n return form.recentlySuccessful\n },\n get validating() {\n return form.validating\n },\n clearErrors,\n resetAndClearErrors,\n setError: (fieldOrFields: string | Record<string, string>, maybeValue?: string) =>\n form.setError((typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : fieldOrFields) as Errors),\n get isDirty() {\n return isDirty.value\n },\n reset,\n submit,\n defaults,\n getData,\n getFormData,\n\n // Precognition\n touch: form.touch,\n valid: form.valid,\n invalid: form.invalid,\n touched: form.touched,\n validate: (field?: string | NamedInputEvent | ValidationConfig, config?: ValidationConfig) =>\n form.validate(...UseFormUtils.mergeHeadersForValidation(field, config, props.headers)),\n validator: () => form.validator(),\n }\n\n expose<FormComponentRef>(exposed)\n\n return () => {\n return h(\n 'form',\n {\n ...attrs,\n ref: formElement,\n action: isUrlMethodPair(props.action) ? props.action.url : props.action,\n method: method.value,\n onSubmit: (event) => {\n event.preventDefault()\n submit(event.submitter)\n },\n inert: props.disableWhileProcessing && form.processing,\n },\n slots.default ? slots.default(exposed) : [],\n )\n }\n },\n})\n\nexport default Form\n", "import { escape } from 'lodash-es'\nimport { defineComponent, DefineComponent, VNode } from 'vue'\n\nexport type InertiaHead = DefineComponent<{\n title?: string\n}>\n\nconst Head: InertiaHead = defineComponent({\n props: {\n title: {\n type: String,\n required: false,\n },\n },\n data() {\n return {\n provider: this.$headManager.createProvider(),\n }\n },\n beforeUnmount() {\n this.provider.disconnect()\n },\n methods: {\n isUnaryTag(node: VNode) {\n return (\n typeof node.type === 'string' &&\n [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ].indexOf(node.type) > -1\n )\n },\n renderTagStart(node: VNode) {\n node.props = node.props || {}\n node.props[this.provider.preferredAttribute()] =\n node.props['head-key'] !== undefined ? node.props['head-key'] : ''\n\n const attrs = Object.keys(node.props).reduce((carry, name) => {\n const value = String(node.props![name])\n if (['key', 'head-key'].includes(name)) {\n return carry\n } else if (value === '') {\n return carry + ` ${name}`\n } else {\n return carry + ` ${name}=\"${escape(value)}\"`\n }\n }, '')\n\n return `<${String(node.type)}${attrs}>`\n },\n renderTagChildren(node: VNode): string {\n const { children } = node\n\n if (typeof children === 'string') {\n return children\n }\n\n if (Array.isArray(children)) {\n return children.reduce<string>((html, child) => {\n return html + this.renderTag(child as VNode)\n }, '')\n }\n\n return ''\n },\n isFunctionNode(node: VNode): node is VNode & { type: () => VNode } {\n return typeof node.type === 'function'\n },\n isComponentNode(node: VNode): node is VNode & { type: object } {\n return typeof node.type === 'object'\n },\n isCommentNode(node: VNode) {\n return /(comment|cmt)/i.test(node.type.toString())\n },\n isFragmentNode(node: VNode) {\n return /(fragment|fgt|symbol\\(\\))/i.test(node.type.toString())\n },\n isTextNode(node: VNode) {\n return /(text|txt)/i.test(node.type.toString())\n },\n renderTag(node: VNode): string {\n if (this.isTextNode(node)) {\n return String(node.children)\n } else if (this.isFragmentNode(node)) {\n return ''\n } else if (this.isCommentNode(node)) {\n return ''\n }\n\n let html = this.renderTagStart(node)\n\n if (node.children) {\n html += this.renderTagChildren(node)\n }\n\n if (!this.isUnaryTag(node)) {\n html += `</${String(node.type)}>`\n }\n\n return html\n },\n addTitleElement(elements: string[]) {\n if (this.title && !elements.find((tag) => tag.startsWith('<title'))) {\n elements.push(`<title ${this.provider.preferredAttribute()}>${this.title}</title>`)\n }\n\n return elements\n },\n renderNodes(nodes: VNode[]) {\n const elements = nodes\n .flatMap((node) => this.resolveNode(node))\n .map((node) => this.renderTag(node))\n .filter((node) => node)\n\n return this.addTitleElement(elements)\n },\n resolveNode(node: VNode): VNode | VNode[] {\n if (this.isFunctionNode(node)) {\n return this.resolveNode(node.type())\n } else if (this.isComponentNode(node)) {\n console.warn(`Using components in the <Head> component is not supported.`)\n return []\n } else if (this.isTextNode(node) && node.children) {\n return node\n } else if (this.isFragmentNode(node) && node.children) {\n return (node.children as VNode[]).flatMap((child) => this.resolveNode(child))\n } else if (this.isCommentNode(node)) {\n return []\n } else {\n return node\n }\n },\n },\n render() {\n this.provider.update(this.renderNodes(this.$slots.default ? this.$slots.default() : []))\n },\n})\n\nexport default Head\n", "import {\n getScrollableParent,\n InfiniteScrollActionSlotProps,\n InfiniteScrollComponentBaseProps,\n InfiniteScrollRef,\n InfiniteScrollSlotProps,\n useInfiniteScroll,\n} from '@inertiajs/core'\nimport { computed, defineComponent, Fragment, h, onMounted, onUnmounted, PropType, ref, SlotsType, watch } from 'vue'\n\n// Vue-specific element resolver\nconst resolveHTMLElement = (\n value: string | object | (() => HTMLElement | null),\n fallback: HTMLElement | null,\n): HTMLElement | null => {\n if (!value) {\n return fallback\n }\n\n // CSS Selector string\n if (typeof value === 'string') {\n return document.querySelector(value) as HTMLElement | null\n }\n\n // Function that returns an element\n if (typeof value === 'function') {\n return value() || null\n }\n\n return fallback\n}\n\nconst InfiniteScroll = defineComponent({\n name: 'InfiniteScroll',\n slots: Object as SlotsType<{\n default: InfiniteScrollSlotProps\n previous: InfiniteScrollActionSlotProps\n next: InfiniteScrollActionSlotProps\n loading: InfiniteScrollActionSlotProps\n }>,\n props: {\n data: {\n type: String as PropType<InfiniteScrollComponentBaseProps['data']>,\n required: true,\n },\n buffer: {\n type: Number as PropType<InfiniteScrollComponentBaseProps['buffer']>,\n default: 0,\n },\n onlyNext: {\n type: Boolean,\n default: false,\n },\n onlyPrevious: {\n type: Boolean,\n default: false,\n },\n as: {\n type: String as PropType<InfiniteScrollComponentBaseProps['as']>,\n default: 'div',\n },\n manual: {\n type: Boolean as PropType<InfiniteScrollComponentBaseProps['manual']>,\n default: false,\n },\n manualAfter: {\n type: Number as PropType<InfiniteScrollComponentBaseProps['manualAfter']>,\n default: 0,\n },\n preserveUrl: {\n type: Boolean as PropType<InfiniteScrollComponentBaseProps['preserveUrl']>,\n default: false,\n },\n reverse: {\n type: Boolean as PropType<InfiniteScrollComponentBaseProps['reverse']>,\n default: false,\n },\n autoScroll: {\n type: Boolean as PropType<InfiniteScrollComponentBaseProps['autoScroll']>,\n default: undefined,\n },\n itemsElement: {\n type: [String, Function, Object] as PropType<string | (() => HTMLElement | null | undefined)>,\n default: null,\n },\n startElement: {\n type: [String, Function, Object] as PropType<string | (() => HTMLElement | null | undefined)>,\n default: null,\n },\n endElement: {\n type: [String, Function, Object] as PropType<string | (() => HTMLElement | null | undefined)>,\n default: null,\n },\n },\n inheritAttrs: false,\n setup(props, { slots, attrs, expose }) {\n const itemsElementRef = ref<HTMLElement | null>(null)\n const startElementRef = ref<HTMLElement | null>(null)\n const endElementRef = ref<HTMLElement | null>(null)\n\n const itemsElement = computed<HTMLElement | null>(() =>\n resolveHTMLElement(props.itemsElement, itemsElementRef.value),\n )\n const scrollableParent = computed(() => getScrollableParent(itemsElement.value))\n const startElement = computed<HTMLElement | null>(() =>\n resolveHTMLElement(props.startElement, startElementRef.value),\n )\n const endElement = computed<HTMLElement | null>(() => resolveHTMLElement(props.endElement, endElementRef.value))\n\n const loadingPrevious = ref(false)\n const loadingNext = ref(false)\n const requestCount = ref(0)\n\n const {\n dataManager,\n elementManager,\n flush: flushInfiniteScroll,\n } = useInfiniteScroll({\n // Data\n getPropName: () => props.data,\n inReverseMode: () => props.reverse,\n shouldFetchNext: () => !props.onlyPrevious,\n shouldFetchPrevious: () => !props.onlyNext,\n shouldPreserveUrl: () => props.preserveUrl,\n\n // Elements\n getTriggerMargin: () => props.buffer,\n getStartElement: () => startElement.value!,\n getEndElement: () => endElement.value!,\n getItemsElement: () => itemsElement.value!,\n getScrollableParent: () => scrollableParent.value,\n\n // Request callbacks\n onBeforePreviousRequest: () => (loadingPrevious.value = true),\n onBeforeNextRequest: () => (loadingNext.value = true),\n onCompletePreviousRequest: () => {\n requestCount.value = dataManager.getRequestCount()\n loadingPrevious.value = false\n },\n onCompleteNextRequest: () => {\n requestCount.value = dataManager.getRequestCount()\n loadingNext.value = false\n },\n })\n\n requestCount.value = dataManager.getRequestCount()\n\n const autoLoad = computed<boolean>(() => !manualMode.value)\n const manualMode = computed<boolean>(\n () => props.manual || (props.manualAfter > 0 && requestCount.value >= props.manualAfter),\n )\n\n const scrollToBottom = () => {\n if (scrollableParent.value) {\n scrollableParent.value.scrollTo({\n top: scrollableParent.value.scrollHeight,\n behavior: 'instant',\n })\n } else {\n window.scrollTo({\n top: document.body.scrollHeight,\n behavior: 'instant',\n })\n }\n }\n\n onMounted(() => {\n elementManager.setupObservers()\n elementManager.processServerLoadedElements(dataManager.getLastLoadedPage())\n\n // autoScroll defaults to reverse value if not explicitly set\n const shouldAutoScroll = props.autoScroll !== undefined ? props.autoScroll : props.reverse\n\n if (shouldAutoScroll) {\n scrollToBottom()\n }\n\n if (autoLoad.value) {\n elementManager.enableTriggers()\n }\n })\n\n onUnmounted(flushInfiniteScroll)\n\n watch(\n () => [autoLoad.value, props.onlyNext, props.onlyPrevious],\n ([enabled]) => {\n enabled ? elementManager.enableTriggers() : elementManager.disableTriggers()\n },\n )\n\n expose<InfiniteScrollRef>({\n fetchNext: dataManager.fetchNext,\n fetchPrevious: dataManager.fetchPrevious,\n hasPrevious: dataManager.hasPrevious,\n hasNext: dataManager.hasNext,\n })\n\n return () => {\n const renderElements = []\n\n const sharedExposed: Pick<\n InfiniteScrollActionSlotProps,\n 'loadingPrevious' | 'loadingNext' | 'hasPrevious' | 'hasNext'\n > = {\n loadingPrevious: loadingPrevious.value,\n loadingNext: loadingNext.value,\n hasPrevious: dataManager.hasPrevious(),\n hasNext: dataManager.hasNext(),\n }\n\n // Only render previous trigger if not using custom element\n if (!props.startElement) {\n const headerAutoMode = autoLoad.value && !props.onlyNext\n const exposedPrevious: InfiniteScrollActionSlotProps = {\n loading: loadingPrevious.value,\n fetch: dataManager.fetchPrevious,\n autoMode: headerAutoMode,\n manualMode: !headerAutoMode,\n hasMore: dataManager.hasPrevious(),\n ...sharedExposed,\n }\n\n renderElements.push(\n h(\n 'div',\n { ref: startElementRef },\n slots.previous\n ? slots.previous(exposedPrevious)\n : loadingPrevious.value\n ? slots.loading?.(exposedPrevious)\n : undefined,\n ),\n )\n }\n\n renderElements.push(\n h(\n props.as,\n { ...attrs, ref: itemsElementRef },\n slots.default?.({\n loading: loadingPrevious.value || loadingNext.value,\n loadingPrevious: loadingPrevious.value,\n loadingNext: loadingNext.value,\n }),\n ),\n )\n\n // Only render next trigger if not using custom element\n if (!props.endElement) {\n const footerAutoMode = autoLoad.value && !props.onlyPrevious\n const exposedNext: InfiniteScrollActionSlotProps = {\n loading: loadingNext.value,\n fetch: dataManager.fetchNext,\n autoMode: footerAutoMode,\n manualMode: !footerAutoMode,\n hasMore: dataManager.hasNext(),\n ...sharedExposed,\n }\n\n renderElements.push(\n h(\n 'div',\n { ref: endElementRef },\n slots.next ? slots.next(exposedNext) : loadingNext.value ? slots.loading?.(exposedNext) : undefined,\n ),\n )\n }\n\n return h(Fragment, {}, props.reverse ? [...renderElements].reverse() : renderElements)\n }\n },\n})\n\nexport default InfiniteScroll\n", "import {\n ActiveVisit,\n isUrlMethodPair,\n LinkComponentBaseProps,\n LinkPrefetchOption,\n mergeDataIntoQueryString,\n Method,\n PendingVisit,\n router,\n shouldIntercept,\n shouldNavigate,\n} from '@inertiajs/core'\nimport { Component, computed, defineComponent, DefineComponent, h, onMounted, onUnmounted, PropType, ref } from 'vue'\nimport { config } from '.'\n\nconst noop = () => {}\n\nexport interface InertiaLinkProps extends LinkComponentBaseProps {\n as?: string | Component\n onClick?: (event: MouseEvent) => void\n}\n\ntype InertiaLink = DefineComponent<InertiaLinkProps>\n\nconst Link: InertiaLink = defineComponent({\n name: 'Link',\n props: {\n as: {\n type: [String, Object] as PropType<InertiaLinkProps['as']>,\n default: 'a',\n },\n data: {\n type: Object as PropType<InertiaLinkProps['data']>,\n default: () => ({}),\n },\n href: {\n type: [String, Object] as PropType<InertiaLinkProps['href']>,\n default: '',\n },\n method: {\n type: String as PropType<InertiaLinkProps['method']>,\n default: 'get',\n },\n replace: {\n type: Boolean as PropType<InertiaLinkProps['replace']>,\n default: false,\n },\n preserveScroll: {\n type: [Boolean, String, Function] as PropType<InertiaLinkProps['preserveScroll']>,\n default: false,\n },\n preserveState: {\n type: [Boolean, String, Function] as PropType<InertiaLinkProps['preserveState']>,\n default: null,\n },\n preserveUrl: {\n type: Boolean as PropType<InertiaLinkProps['preserveUrl']>,\n default: false,\n },\n only: {\n type: Array as PropType<InertiaLinkProps['only']>,\n default: () => [],\n },\n except: {\n type: Array as PropType<InertiaLinkProps['except']>,\n default: () => [],\n },\n headers: {\n type: Object as PropType<InertiaLinkProps['headers']>,\n default: () => ({}),\n },\n queryStringArrayFormat: {\n type: String as PropType<InertiaLinkProps['queryStringArrayFormat']>,\n default: 'brackets',\n },\n async: {\n type: Boolean as PropType<InertiaLinkProps['async']>,\n default: false,\n },\n prefetch: {\n type: [Boolean, String, Array] as PropType<InertiaLinkProps['prefetch']>,\n default: false,\n },\n cacheFor: {\n type: [Number, String, Array] as PropType<InertiaLinkProps['cacheFor']>,\n default: 0,\n },\n onStart: {\n type: Function as PropType<InertiaLinkProps['onStart']>,\n default: noop,\n },\n onProgress: {\n type: Function as PropType<InertiaLinkProps['onProgress']>,\n default: noop,\n },\n onFinish: {\n type: Function as PropType<InertiaLinkProps['onFinish']>,\n default: noop,\n },\n onBefore: {\n type: Function as PropType<InertiaLinkProps['onBefore']>,\n default: noop,\n },\n onCancel: {\n type: Function as PropType<InertiaLinkProps['onCancel']>,\n default: noop,\n },\n onSuccess: {\n type: Function as PropType<InertiaLinkProps['onSuccess']>,\n default: noop,\n },\n onError: {\n type: Function as PropType<InertiaLinkProps['onError']>,\n default: noop,\n },\n onCancelToken: {\n type: Function as PropType<InertiaLinkProps['onCancelToken']>,\n default: noop,\n },\n onPrefetching: {\n type: Function as PropType<InertiaLinkProps['onPrefetching']>,\n default: noop,\n },\n onPrefetched: {\n type: Function as PropType<InertiaLinkProps['onPrefetched']>,\n default: noop,\n },\n cacheTags: {\n type: [String, Array] as PropType<InertiaLinkProps['cacheTags']>,\n default: () => [],\n },\n viewTransition: {\n type: [Boolean, Object] as PropType<InertiaLinkProps['viewTransition']>,\n default: false,\n },\n },\n setup(props, { slots, attrs }) {\n const inFlightCount = ref(0)\n const hoverTimeout = ref<ReturnType<typeof setTimeout>>()\n\n const prefetchModes = computed<LinkPrefetchOption[]>(() => {\n if (props.prefetch === true) {\n return ['hover']\n }\n\n if (props.prefetch === false) {\n return []\n }\n\n if (Array.isArray(props.prefetch)) {\n return props.prefetch\n }\n\n return [props.prefetch] as LinkPrefetchOption[]\n })\n\n const cacheForValue = computed(() => {\n if (props.cacheFor !== 0) {\n // If they've provided a value, respect it\n return props.cacheFor\n }\n\n if (prefetchModes.value.length === 1 && prefetchModes.value[0] === 'click') {\n // If they've only provided a prefetch mode of 'click',\n // we should only prefetch for the next request but not keep it around\n return 0\n }\n\n // Otherwise, default to 30 seconds\n return config.get('prefetch.cacheFor')\n })\n\n onMounted(() => {\n if (prefetchModes.value.includes('mount')) {\n prefetch()\n }\n })\n\n onUnmounted(() => {\n clearTimeout(hoverTimeout.value)\n })\n\n const method = computed(() =>\n isUrlMethodPair(props.href) ? props.href.method : ((props.method ?? 'get').toLowerCase() as Method),\n )\n const as = computed(() => {\n if (typeof props.as !== 'string' || props.as.toLowerCase() !== 'a') {\n // Custom component or element\n return props.as\n }\n\n return method.value !== 'get' ? 'button' : props.as.toLowerCase()\n })\n const mergeDataArray = computed(() =>\n mergeDataIntoQueryString(\n method.value,\n isUrlMethodPair(props.href) ? props.href.url : (props.href as string),\n props.data || {},\n props.queryStringArrayFormat,\n ),\n )\n const href = computed(() => mergeDataArray.value[0])\n const data = computed(() => mergeDataArray.value[1])\n\n const elProps = computed(() => {\n if (as.value === 'button') {\n return { type: 'button' }\n }\n\n if (as.value === 'a' || typeof as.value !== 'string') {\n return { href: href.value }\n }\n\n return {}\n })\n\n const baseParams = computed(() => ({\n data: data.value,\n method: method.value,\n replace: props.replace,\n preserveScroll: props.preserveScroll,\n preserveState: props.preserveState ?? method.value !== 'get',\n preserveUrl: props.preserveUrl,\n only: props.only,\n except: props.except,\n headers: props.headers,\n async: props.async,\n }))\n\n const visitParams = computed(() => ({\n ...baseParams.value,\n viewTransition: props.viewTransition,\n onCancelToken: props.onCancelToken,\n onBefore: props.onBefore,\n onStart: (visit: PendingVisit) => {\n inFlightCount.value++\n props.onStart?.(visit)\n },\n onProgress: props.onProgress,\n onFinish: (visit: ActiveVisit) => {\n inFlightCount.value--\n props.onFinish?.(visit)\n },\n onCancel: props.onCancel,\n onSuccess: props.onSuccess,\n onError: props.onError,\n }))\n\n const prefetch = () => {\n router.prefetch(\n href.value,\n {\n ...baseParams.value,\n onPrefetching: props.onPrefetching,\n onPrefetched: props.onPrefetched,\n },\n {\n cacheFor: cacheForValue.value,\n cacheTags: props.cacheTags,\n },\n )\n }\n\n const regularEvents = {\n onClick: (event: MouseEvent) => {\n if (shouldIntercept(event)) {\n event.preventDefault()\n router.visit(href.value, visitParams.value)\n }\n },\n }\n\n const prefetchHoverEvents = {\n onMouseenter: () => {\n hoverTimeout.value = setTimeout(() => {\n prefetch()\n }, config.get('prefetch.hoverDelay'))\n },\n onMouseleave: () => {\n clearTimeout(hoverTimeout.value)\n },\n onClick: regularEvents.onClick,\n }\n\n const prefetchClickEvents = {\n onMousedown: (event: MouseEvent) => {\n if (shouldIntercept(event)) {\n event.preventDefault()\n prefetch()\n }\n },\n onKeydown: (event: KeyboardEvent) => {\n if (shouldNavigate(event)) {\n event.preventDefault()\n prefetch()\n }\n },\n onMouseup: (event: MouseEvent) => {\n if (shouldIntercept(event)) {\n event.preventDefault()\n router.visit(href.value, visitParams.value)\n }\n },\n onKeyup: (event: KeyboardEvent) => {\n if (shouldNavigate(event)) {\n event.preventDefault()\n router.visit(href.value, visitParams.value)\n }\n },\n onClick: (event: MouseEvent) => {\n if (shouldIntercept(event)) {\n // Let the mouseup/keyup event handle the visit\n event.preventDefault()\n }\n },\n }\n\n return () => {\n return h(\n as.value as string | Component,\n {\n ...attrs,\n ...elProps.value,\n 'data-loading': inFlightCount.value > 0 ? '' : undefined,\n ...(() => {\n if (prefetchModes.value.includes('hover')) {\n return prefetchHoverEvents\n }\n\n if (prefetchModes.value.includes('click')) {\n return prefetchClickEvents\n }\n\n return regularEvents\n })(),\n },\n slots,\n )\n }\n },\n})\n\nexport default Link\n", "import { PollOptions, ReloadOptions, router } from '@inertiajs/core'\nimport { onMounted, onUnmounted } from 'vue'\n\nexport default function usePoll(\n interval: number,\n requestOptions: ReloadOptions = {},\n options: PollOptions = {\n keepAlive: false,\n autoStart: true,\n },\n): {\n stop: VoidFunction\n start: VoidFunction\n} {\n const { stop, start } = router.poll(interval, requestOptions, {\n ...options,\n autoStart: false,\n })\n\n onMounted(() => {\n if (options.autoStart ?? true) {\n start()\n }\n })\n\n onUnmounted(() => {\n stop()\n })\n\n return {\n stop,\n start,\n }\n}\n", "import { router, VisitOptions } from '@inertiajs/core'\nimport { onMounted, onUnmounted, ref, Ref } from 'vue'\n\nexport default function usePrefetch(options: VisitOptions = {}): {\n lastUpdatedAt: Ref<number | null>\n isPrefetching: Ref<boolean>\n isPrefetched: Ref<boolean>\n flush: () => void\n} {\n const isPrefetching = ref(false)\n const lastUpdatedAt = ref<number | null>(null)\n const isPrefetched = ref(false)\n\n const cached = typeof window === 'undefined' ? null : router.getCached(window.location.pathname, options)\n const inFlight = typeof window === 'undefined' ? null : router.getPrefetching(window.location.pathname, options)\n\n lastUpdatedAt.value = cached?.staleTimestamp || null\n\n isPrefetching.value = inFlight !== null\n isPrefetched.value = cached !== null\n\n let onPrefetchedListener: () => void\n let onPrefetchingListener: () => void\n\n onMounted(() => {\n onPrefetchingListener = router.on('prefetching', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n isPrefetching.value = true\n }\n })\n\n onPrefetchedListener = router.on('prefetched', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n isPrefetching.value = false\n isPrefetched.value = true\n }\n })\n })\n\n onUnmounted(() => {\n onPrefetchedListener()\n onPrefetchingListener()\n })\n\n return {\n lastUpdatedAt,\n isPrefetching,\n isPrefetched,\n flush: () => router.flush(window.location.pathname, options),\n }\n}\n", "import { router } from '@inertiajs/core'\nimport { cloneDeep } from 'lodash-es'\nimport { isReactive, reactive, ref, Ref, watch } from 'vue'\n\nexport default function useRemember<T extends object>(\n data: T & { __rememberable?: boolean; __remember?: Function; __restore?: Function },\n key?: string,\n): Ref<T> | T {\n if (typeof data === 'object' && data !== null && data.__rememberable === false) {\n return data\n }\n\n const restored = router.restore(key)\n const type = isReactive(data) ? reactive : ref\n const hasCallbacks = typeof data.__remember === 'function' && typeof data.__restore === 'function'\n const remembered = type(restored === undefined ? data : hasCallbacks ? data.__restore!(restored) : restored)\n\n watch(\n remembered,\n (newValue) => {\n router.remember(cloneDeep(hasCallbacks ? data.__remember!() : newValue), key)\n },\n { immediate: true, deep: true },\n )\n\n return remembered\n}\n", "import { ReloadOptions, router } from '@inertiajs/core'\nimport { defineComponent, h, PropType, SlotsType } from 'vue'\nimport { usePage } from './app'\n\nexport default defineComponent({\n name: 'WhenVisible',\n slots: Object as SlotsType<{\n default: { fetching: boolean }\n fallback: {}\n }>,\n props: {\n data: {\n type: [String, Array<String>],\n },\n params: {\n type: Object as PropType<ReloadOptions>,\n },\n buffer: {\n type: Number,\n default: 0,\n },\n as: {\n type: String,\n default: 'div',\n },\n always: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n loaded: false,\n fetching: false,\n observer: null as IntersectionObserver | null,\n }\n },\n unmounted() {\n this.observer?.disconnect()\n },\n computed: {\n keys(): string[] {\n return this.data ? ((Array.isArray(this.data) ? this.data : [this.data]) as string[]) : []\n },\n },\n created() {\n const page = usePage()\n\n this.$watch(\n () => this.keys.map((key) => page.props[key]),\n () => {\n const exists = this.keys.length > 0 && this.keys.every((key) => page.props[key] !== undefined)\n this.loaded = exists\n\n if (exists && !this.always) {\n return\n }\n\n this.$nextTick(this.registerObserver)\n },\n { immediate: true },\n )\n },\n methods: {\n registerObserver() {\n this.observer?.disconnect()\n\n this.observer = new IntersectionObserver(\n (entries) => {\n if (!entries[0].isIntersecting) {\n return\n }\n\n if (this.fetching) {\n return\n }\n\n if (!this.always && this.loaded) {\n return\n }\n\n this.fetching = true\n\n const reloadParams = this.getReloadParams()\n\n router.reload({\n ...reloadParams,\n onStart: (e) => {\n this.fetching = true\n reloadParams.onStart?.(e)\n },\n onFinish: (e) => {\n this.loaded = true\n this.fetching = false\n reloadParams.onFinish?.(e)\n\n if (!this.always) {\n this.observer?.disconnect()\n }\n },\n })\n },\n {\n rootMargin: `${this.$props.buffer}px`,\n },\n )\n\n this.observer.observe(this.$el.nextSibling)\n },\n getReloadParams(): Partial<ReloadOptions> {\n if (this.$props.data) {\n return {\n only: (Array.isArray(this.$props.data) ? this.$props.data : [this.$props.data]) as string[],\n }\n }\n\n if (!this.$props.params) {\n throw new Error('You must provide either a `data` or `params` prop.')\n }\n\n return this.$props.params\n },\n },\n render() {\n const els = []\n\n if (this.$props.always || !this.loaded) {\n els.push(h(this.$props.as))\n }\n\n if (!this.loaded) {\n els.push(this.$slots.fallback ? this.$slots.fallback({}) : null)\n } else if (this.$slots.default) {\n els.push(this.$slots.default({ fetching: this.fetching }))\n }\n\n return els\n },\n})\n"],
5
+ "mappings": "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",
6
6
  "names": ["router", "router", "reactive", "key", "router", "cloneDeep", "router", "cloneDeep", "data", "args", "config", "key", "page", "restored", "router", "child", "layout", "reactive", "router", "h", "progress", "page", "router", "h", "defineComponent", "key", "UseFormUtils", "isEqual", "computed", "defineComponent", "h", "ref", "watch", "defineComponent", "ref", "computed", "isEqual", "watch", "config", "UseFormUtils", "h", "defineComponent", "computed", "defineComponent", "h", "onMounted", "ref", "watch", "isUrlMethodPair", "mergeDataIntoQueryString", "router", "computed", "defineComponent", "h", "onMounted", "onUnmounted", "ref", "noop", "defineComponent", "ref", "computed", "onMounted", "onUnmounted", "isUrlMethodPair", "mergeDataIntoQueryString", "router", "h", "router", "onMounted", "onUnmounted", "router", "onMounted", "onUnmounted", "ref", "router", "cloneDeep", "reactive", "ref", "watch", "key", "router", "defineComponent", "h", "defineComponent", "page", "key", "router", "h"]
7
7
  }