@inertiajs/vue3 2.3.7 → 2.3.8

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.js CHANGED
@@ -1095,6 +1095,13 @@ var InfiniteScroll = (0, import_vue7.defineComponent)({
1095
1095
  const loadingPrevious = (0, import_vue7.ref)(false);
1096
1096
  const loadingNext = (0, import_vue7.ref)(false);
1097
1097
  const requestCount = (0, import_vue7.ref)(0);
1098
+ const hasPreviousPage = (0, import_vue7.ref)(false);
1099
+ const hasNextPage = (0, import_vue7.ref)(false);
1100
+ const syncStateFromDataManager = () => {
1101
+ requestCount.value = dataManager.getRequestCount();
1102
+ hasPreviousPage.value = dataManager.hasPrevious();
1103
+ hasNextPage.value = dataManager.hasNext();
1104
+ };
1098
1105
  const {
1099
1106
  dataManager,
1100
1107
  elementManager,
@@ -1116,15 +1123,16 @@ var InfiniteScroll = (0, import_vue7.defineComponent)({
1116
1123
  onBeforePreviousRequest: () => loadingPrevious.value = true,
1117
1124
  onBeforeNextRequest: () => loadingNext.value = true,
1118
1125
  onCompletePreviousRequest: () => {
1119
- requestCount.value = dataManager.getRequestCount();
1120
1126
  loadingPrevious.value = false;
1127
+ syncStateFromDataManager();
1121
1128
  },
1122
1129
  onCompleteNextRequest: () => {
1123
- requestCount.value = dataManager.getRequestCount();
1124
1130
  loadingNext.value = false;
1125
- }
1131
+ syncStateFromDataManager();
1132
+ },
1133
+ onDataReset: syncStateFromDataManager
1126
1134
  });
1127
- requestCount.value = dataManager.getRequestCount();
1135
+ syncStateFromDataManager();
1128
1136
  const autoLoad = (0, import_vue7.computed)(() => !manualMode.value);
1129
1137
  const manualMode = (0, import_vue7.computed)(
1130
1138
  () => props.manual || props.manualAfter > 0 && requestCount.value >= props.manualAfter
@@ -1171,8 +1179,8 @@ var InfiniteScroll = (0, import_vue7.defineComponent)({
1171
1179
  const sharedExposed = {
1172
1180
  loadingPrevious: loadingPrevious.value,
1173
1181
  loadingNext: loadingNext.value,
1174
- hasPrevious: dataManager.hasPrevious(),
1175
- hasNext: dataManager.hasNext()
1182
+ hasPrevious: hasPreviousPage.value,
1183
+ hasNext: hasNextPage.value
1176
1184
  };
1177
1185
  if (!props.startElement) {
1178
1186
  const headerAutoMode = autoLoad.value && !props.onlyNext;
@@ -1181,7 +1189,7 @@ var InfiniteScroll = (0, import_vue7.defineComponent)({
1181
1189
  fetch: dataManager.fetchPrevious,
1182
1190
  autoMode: headerAutoMode,
1183
1191
  manualMode: !headerAutoMode,
1184
- hasMore: dataManager.hasPrevious(),
1192
+ hasMore: hasPreviousPage.value,
1185
1193
  ...sharedExposed
1186
1194
  };
1187
1195
  renderElements.push(
@@ -1210,7 +1218,7 @@ var InfiniteScroll = (0, import_vue7.defineComponent)({
1210
1218
  fetch: dataManager.fetchNext,
1211
1219
  autoMode: footerAutoMode,
1212
1220
  manualMode: !footerAutoMode,
1213
- hasMore: dataManager.hasNext(),
1221
+ hasMore: hasNextPage.value,
1214
1222
  ...sharedExposed
1215
1223
  };
1216
1224
  renderElements.push(
@@ -1661,7 +1669,9 @@ var whenVisible_default = (0, import_vue12.defineComponent)({
1661
1669
  if (exists && !this.always) {
1662
1670
  return;
1663
1671
  }
1664
- this.$nextTick(this.registerObserver);
1672
+ if (!this.observer || !exists) {
1673
+ this.$nextTick(this.registerObserver);
1674
+ }
1665
1675
  },
1666
1676
  { immediate: true }
1667
1677
  );
package/dist/index.js.map CHANGED
@@ -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, 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, flash: initialPage.flash ?? {} }\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 onFlash: (flash) => {\n page.value = { ...page.value!, flash }\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 flash: computed(() => page.value?.flash),\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 dontRemember<K extends FormDataKeys<TForm>>(...fields: K[]): this\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 let rememberExcludeKeys: FormDataKeys<TForm>[] = []\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 dontRemember(...keys: FormDataKeys<TForm>[]) {\n rememberExcludeKeys = keys\n return this\n },\n __rememberable: rememberKey === null,\n __remember() {\n const data = this.data()\n if (rememberExcludeKeys.length > 0) {\n const filtered = { ...data } as Record<string, unknown>\n rememberExcludeKeys.forEach((k) => delete filtered[k as string])\n return { data: filtered as TForm, errors: this.errors }\n }\n return { 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\n const storedData = router.restore(rememberKey!)\n const newData = cloneDeep(newValue.__remember())\n\n if (rememberKey && !isEqual(storedData, newData)) {\n router.remember(newData, 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(\n restored === undefined ? data : hasCallbacks ? data.__restore!(cloneDeep(restored)) : cloneDeep(restored),\n )\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 const reloadParams: Partial<ReloadOptions> = { ...this.$props.params }\n\n if (this.$props.data) {\n reloadParams.only = (Array.isArray(this.$props.data) ? this.$props.data : [this.$props.data]) as string[]\n }\n\n return reloadParams\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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",
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, flash: initialPage.flash ?? {} }\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 onFlash: (flash) => {\n page.value = { ...page.value!, flash }\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 flash: computed(() => page.value?.flash),\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 dontRemember<K extends FormDataKeys<TForm>>(...fields: K[]): this\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 let rememberExcludeKeys: FormDataKeys<TForm>[] = []\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 dontRemember(...keys: FormDataKeys<TForm>[]) {\n rememberExcludeKeys = keys\n return this\n },\n __rememberable: rememberKey === null,\n __remember() {\n const data = this.data()\n if (rememberExcludeKeys.length > 0) {\n const filtered = { ...data } as Record<string, unknown>\n rememberExcludeKeys.forEach((k) => delete filtered[k as string])\n return { data: filtered as TForm, errors: this.errors }\n }\n return { 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\n const storedData = router.restore(rememberKey!)\n const newData = cloneDeep(newValue.__remember())\n\n if (rememberKey && !isEqual(storedData, newData)) {\n router.remember(newData, 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 const hasPreviousPage = ref(false)\n const hasNextPage = ref(false)\n\n const syncStateFromDataManager = () => {\n requestCount.value = dataManager.getRequestCount()\n hasPreviousPage.value = dataManager.hasPrevious()\n hasNextPage.value = dataManager.hasNext()\n }\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 loadingPrevious.value = false\n syncStateFromDataManager()\n },\n onCompleteNextRequest: () => {\n loadingNext.value = false\n syncStateFromDataManager()\n },\n onDataReset: syncStateFromDataManager,\n })\n\n syncStateFromDataManager()\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: hasPreviousPage.value,\n hasNext: hasNextPage.value,\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: hasPreviousPage.value,\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: hasNextPage.value,\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(\n restored === undefined ? data : hasCallbacks ? data.__restore!(cloneDeep(restored)) : cloneDeep(restored),\n )\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 if (!this.observer || !exists) {\n this.$nextTick(this.registerObserver)\n }\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 const reloadParams: Partial<ReloadOptions> = { ...this.$props.params }\n\n if (this.$props.data) {\n reloadParams.only = (Array.isArray(this.$props.data) ? this.$props.data : [this.$props.data]) as string[]\n }\n\n return reloadParams\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": ["import_core", "import_core", "import_vue", "key", "import_core", "import_lodash_es", "data", "args", "config", "key", "page", "restored", "child", "layout", "import_core", "import_vue", "progress", "page", "module", "import_vue", "key", "import_core", "import_lodash_es", "import_vue", "config", "import_lodash_es", "import_vue", "import_core", "import_vue", "import_core", "import_vue", "noop", "import_core", "import_vue", "import_core", "import_vue", "import_core", "import_lodash_es", "import_vue", "key", "import_core", "import_vue", "page", "key", "coreConfig"]
7
7
  }