@inertiajs/vue3 2.2.9 → 2.2.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -1,4 +1,5 @@
1
1
  // src/index.ts
2
+ import { config as coreConfig } from "@inertiajs/core";
2
3
  import { progress, router as router10 } from "@inertiajs/core";
3
4
 
4
5
  // src/app.ts
@@ -188,7 +189,10 @@ function useForm(rememberKeyOrData, maybeData) {
188
189
  this.clearErrors();
189
190
  this.wasSuccessful = true;
190
191
  this.recentlySuccessful = true;
191
- recentlySuccessfulTimeoutId = setTimeout(() => this.recentlySuccessful = false, 2e3);
192
+ recentlySuccessfulTimeoutId = setTimeout(
193
+ () => this.recentlySuccessful = false,
194
+ config.get("form.recentlySuccessfulDuration")
195
+ );
192
196
  const onSuccess = options.onSuccess ? await options.onSuccess(page2) : null;
193
197
  if (!defaultsCalledInOnSuccess) {
194
198
  defaults = cloneDeep2(this.data());
@@ -386,8 +390,10 @@ async function createInertiaApp({
386
390
  title,
387
391
  progress: progress2 = {},
388
392
  page: page2,
389
- render
393
+ render,
394
+ defaults = {}
390
395
  }) {
396
+ config.replace(defaults);
391
397
  const isServer = typeof window === "undefined";
392
398
  const el = isServer ? null : document.getElementById(id);
393
399
  const initialPage = page2 || JSON.parse(el?.dataset.page || "{}");
@@ -1179,7 +1185,7 @@ var Link = defineComponent6({
1179
1185
  if (prefetchModes.value.length === 1 && prefetchModes.value[0] === "click") {
1180
1186
  return 0;
1181
1187
  }
1182
- return 3e4;
1188
+ return config.get("prefetch.cacheFor");
1183
1189
  });
1184
1190
  onMounted3(() => {
1185
1191
  if (prefetchModes.value.includes("mount")) {
@@ -1512,6 +1518,9 @@ var whenVisible_default = defineComponent7({
1512
1518
  return els;
1513
1519
  }
1514
1520
  });
1521
+
1522
+ // src/index.ts
1523
+ var config = coreConfig.extend({});
1515
1524
  export {
1516
1525
  deferred_default as Deferred,
1517
1526
  form_default as Form,
@@ -1519,6 +1528,7 @@ export {
1519
1528
  infiniteScroll_default as InfiniteScroll,
1520
1529
  link_default as Link,
1521
1530
  whenVisible_default as WhenVisible,
1531
+ config,
1522
1532
  createInertiaApp,
1523
1533
  progress,
1524
1534
  router10 as router,
@@ -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": ["export { progress, router } from '@inertiajs/core'\nexport { usePage } from './app'\nexport { default as createInertiaApp } from './createInertiaApp'\nexport { default as Deferred } from './deferred'\nexport { default as Form } from './form'\nexport { default as Head } from './head'\nexport { default as InfiniteScroll } from './infiniteScroll'\nexport { InertiaLinkProps, default as Link } from './link'\nexport * from './types'\nexport { InertiaForm, InertiaFormProps, default as useForm } from './useForm'\nexport { default as usePoll } from './usePoll'\nexport { default as usePrefetch } from './usePrefetch'\nexport { default as useRemember } from './useRemember'\nexport { default as WhenVisible } from './whenVisible'\n", "import {\n createHeadManager,\n HeadManager,\n HeadManagerOnUpdateCallback,\n HeadManagerTitleCallback,\n Page,\n PageProps,\n router,\n SharedPageProps,\n} from '@inertiajs/core'\nimport {\n computed,\n DefineComponent,\n defineComponent,\n h,\n markRaw,\n Plugin,\n PropType,\n reactive,\n ref,\n shallowRef,\n} from 'vue'\nimport remember from './remember'\nimport { VuePageHandlerArgs } from './types'\nimport useForm from './useForm'\n\nexport interface InertiaAppProps<SharedProps extends PageProps = PageProps> {\n initialPage: Page<SharedProps>\n initialComponent?: DefineComponent\n resolveComponent?: (name: string) => DefineComponent | Promise<DefineComponent>\n titleCallback?: HeadManagerTitleCallback\n onHeadUpdate?: HeadManagerOnUpdateCallback\n}\n\nexport type InertiaApp = DefineComponent<InertiaAppProps>\n\nconst component = ref<DefineComponent | undefined>(undefined)\nconst page = ref<Page>()\nconst layout = shallowRef(null)\nconst key = ref<number | undefined>(undefined)\nlet headManager: HeadManager\n\nconst App: InertiaApp = defineComponent({\n name: 'Inertia',\n props: {\n initialPage: {\n type: Object as PropType<Page>,\n required: true,\n },\n initialComponent: {\n type: Object as PropType<DefineComponent>,\n required: false,\n },\n resolveComponent: {\n type: Function as PropType<(name: string) => DefineComponent | Promise<DefineComponent>>,\n required: false,\n },\n titleCallback: {\n type: Function as PropType<HeadManagerTitleCallback>,\n required: false,\n default: (title: string) => title,\n },\n onHeadUpdate: {\n type: Function as PropType<HeadManagerOnUpdateCallback>,\n required: false,\n default: () => () => {},\n },\n },\n setup({ initialPage, initialComponent, resolveComponent, titleCallback, onHeadUpdate }: InertiaAppProps) {\n component.value = initialComponent ? markRaw(initialComponent) : undefined\n page.value = initialPage\n key.value = undefined\n\n const isServer = typeof window === 'undefined'\n headManager = createHeadManager(isServer, titleCallback || ((title: string) => title), onHeadUpdate || (() => {}))\n\n if (!isServer) {\n router.init<DefineComponent>({\n initialPage,\n resolveComponent: resolveComponent!,\n swapComponent: async (options: VuePageHandlerArgs) => {\n component.value = markRaw(options.component)\n page.value = options.page\n key.value = options.preserveState ? key.value : Date.now()\n },\n })\n\n router.on('navigate', () => headManager.forceUpdate())\n }\n\n return () => {\n if (component.value) {\n component.value.inheritAttrs = !!component.value.inheritAttrs\n\n const child = h(component.value, {\n ...page.value!.props,\n key: key.value,\n })\n\n if (layout.value) {\n component.value.layout = layout.value\n layout.value = null\n }\n\n if (component.value.layout) {\n if (typeof component.value.layout === 'function') {\n return component.value.layout(h, child)\n }\n\n return (Array.isArray(component.value.layout) ? component.value.layout : [component.value.layout])\n .concat(child)\n .reverse()\n .reduce((child, layout) => {\n layout.inheritAttrs = !!layout.inheritAttrs\n return h(layout, { ...page.value!.props }, () => child)\n })\n }\n\n return child\n }\n }\n },\n})\nexport default App\n\nexport const plugin: Plugin = {\n install(app) {\n router.form = useForm\n\n Object.defineProperty(app.config.globalProperties, '$inertia', { get: () => router })\n Object.defineProperty(app.config.globalProperties, '$page', { get: () => page.value })\n Object.defineProperty(app.config.globalProperties, '$headManager', { get: () => headManager })\n\n app.mixin(remember)\n },\n}\n\nexport function usePage<TPageProps extends PageProps = PageProps>(): Page<TPageProps & SharedPageProps> {\n return reactive({\n props: computed(() => page.value?.props),\n url: computed(() => page.value?.url),\n component: computed(() => page.value?.component),\n version: computed(() => page.value?.version),\n clearHistory: computed(() => page.value?.clearHistory),\n deferredProps: computed(() => page.value?.deferredProps),\n mergeProps: computed(() => page.value?.mergeProps),\n prependProps: computed(() => page.value?.prependProps),\n deepMergeProps: computed(() => page.value?.deepMergeProps),\n matchPropsOn: computed(() => page.value?.matchPropsOn),\n rememberedState: computed(() => page.value?.rememberedState),\n encryptHistory: computed(() => page.value?.encryptHistory),\n }) as Page<TPageProps>\n}\n", "import { router } from '@inertiajs/core'\nimport { cloneDeep } from 'lodash-es'\nimport { ComponentOptions } from 'vue'\n\nconst remember: ComponentOptions = {\n created() {\n if (!this.$options.remember) {\n return\n }\n\n if (Array.isArray(this.$options.remember)) {\n this.$options.remember = { data: this.$options.remember }\n }\n\n if (typeof this.$options.remember === 'string') {\n this.$options.remember = { data: [this.$options.remember] }\n }\n\n if (typeof this.$options.remember.data === 'string') {\n this.$options.remember = { data: [this.$options.remember.data] }\n }\n\n const rememberKey =\n this.$options.remember.key instanceof Function\n ? this.$options.remember.key.call(this)\n : this.$options.remember.key\n\n const restored = router.restore(rememberKey) as Record<string, unknown> | undefined\n\n const rememberable = this.$options.remember.data.filter((key: string) => {\n return !(this[key] !== null && typeof this[key] === 'object' && this[key].__rememberable === false)\n }) as string[]\n\n const hasCallbacks = (key: string) => {\n return (\n this[key] !== null &&\n typeof this[key] === 'object' &&\n typeof this[key].__remember === 'function' &&\n typeof this[key].__restore === 'function'\n )\n }\n\n rememberable.forEach((key: string) => {\n if (this[key] !== undefined && restored !== undefined && restored[key] !== undefined) {\n hasCallbacks(key) ? this[key].__restore(restored[key]) : (this[key] = restored[key])\n }\n\n this.$watch(\n key,\n () => {\n router.remember(\n rememberable.reduce(\n (data, key) => ({\n ...data,\n [key]: cloneDeep(hasCallbacks(key) ? this[key].__remember() : this[key]),\n }),\n {},\n ),\n rememberKey,\n )\n },\n { immediate: true, deep: true },\n )\n })\n },\n}\n\nexport default remember\n", "import {\n CancelToken,\n ErrorValue,\n FormDataErrors,\n FormDataKeys,\n FormDataType,\n FormDataValues,\n Method,\n Progress,\n RequestPayload,\n router,\n UrlMethodPair,\n VisitOptions,\n} from '@inertiajs/core'\nimport { cloneDeep, get, has, isEqual, set } from 'lodash-es'\nimport { reactive, watch } from 'vue'\n\ntype FormOptions = Omit<VisitOptions, 'data'>\ntype SubmitArgs = [Method, string, FormOptions?] | [UrlMethodPair, FormOptions?]\ntype TransformCallback<TForm> = (data: TForm) => object\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: TransformCallback<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: SubmitArgs) => void\n get(url: string, options?: FormOptions): void\n post(url: string, options?: FormOptions): void\n put(url: string, options?: FormOptions): void\n patch(url: string, options?: FormOptions): void\n delete(url: string, options?: FormOptions): void\n cancel(): void\n}\n\nexport type InertiaForm<TForm extends object> = TForm & InertiaFormProps<TForm>\n\nexport default function useForm<TForm extends FormDataType<TForm>>(data: TForm | (() => TForm)): InertiaForm<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>>(\n rememberKeyOrData: string | TForm | (() => TForm),\n maybeData?: TForm | (() => TForm),\n): InertiaForm<TForm> {\n const rememberKey = typeof rememberKeyOrData === 'string' ? rememberKeyOrData : null\n const data = (typeof rememberKeyOrData === 'string' ? maybeData : rememberKeyOrData) ?? {}\n const restored = rememberKey\n ? (router.restore(rememberKey) as { data: TForm; errors: Record<FormDataKeys<TForm>, string> })\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: TransformCallback<TForm> = (data) => data\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({\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,\n wasSuccessful: false,\n recentlySuccessful: false,\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: TransformCallback<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 return this\n },\n reset(...fields: string[]) {\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 return this\n },\n setError(fieldOrFields: FormDataKeys<TForm> | FormDataErrors<TForm>, maybeValue?: ErrorValue) {\n Object.assign(this.errors, typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : fieldOrFields)\n\n this.hasErrors = Object.keys(this.errors).length > 0\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[field] } : {}),\n }),\n {},\n )\n\n this.hasErrors = Object.keys(this.errors).length > 0\n\n return this\n },\n resetAndClearErrors(...fields: string[]) {\n this.reset(...fields)\n this.clearErrors(...fields)\n return this\n },\n submit(...args: SubmitArgs) {\n const objectPassed = args[0] !== null && typeof args[0] === 'object'\n\n const method = objectPassed ? args[0].method : (args[0] as Method)\n const url = objectPassed ? args[0].url : (args[1] as string)\n const options = (objectPassed ? args[1] : args[2]) ?? {}\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\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(() => (this.recentlySuccessful = false), 2000)\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)\n\n if (options.onError) {\n return options.onError(errors)\n }\n },\n onCancel: () => {\n this.processing = false\n this.progress = null\n\n if (options.onCancel) {\n return options.onCancel()\n }\n },\n onFinish: (visit) => {\n this.processing = false\n this.progress = null\n cancelToken = null\n\n if (options.onFinish) {\n return options.onFinish(visit)\n }\n },\n }\n\n const transformedData = transform(this.data()) as RequestPayload\n\n if (method === 'delete') {\n router.delete(url, { ..._options, data: transformedData })\n } else {\n router[method](url, transformedData, _options)\n }\n },\n get(url: string, options: VisitOptions) {\n this.submit('get', url, options)\n },\n post(url: string, options: VisitOptions) {\n this.submit('post', url, options)\n },\n put(url: string, options: VisitOptions) {\n this.submit('put', url, options)\n },\n patch(url: string, options: VisitOptions) {\n this.submit('patch', url, options)\n },\n delete(url: string, options: VisitOptions) {\n this.submit('delete', url, options)\n },\n cancel() {\n if (cancelToken) {\n cancelToken.cancel()\n }\n },\n __rememberable: rememberKey === null,\n __remember() {\n return { data: this.data(), errors: this.errors }\n },\n __restore(restored: { data: TForm; errors: FormDataErrors<TForm> }) {\n Object.assign(this, restored.data)\n this.setError(restored.errors)\n },\n })\n\n watch(\n form,\n (newValue) => {\n form.isDirty = !isEqual(form.data(), defaults)\n if (rememberKey) {\n router.remember(cloneDeep(newValue.__remember()), rememberKey)\n }\n },\n { immediate: true, deep: true },\n )\n\n return form\n}\n", "import {\n CreateInertiaAppOptionsForCSR,\n CreateInertiaAppOptionsForSSR,\n InertiaAppResponse,\n InertiaAppSSRResponse,\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'\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>\n\ntype InertiaAppOptionsForSSR<SharedProps extends PageProps> = CreateInertiaAppOptionsForSSR<\n SharedProps,\n ComponentResolver,\n SetupOptions<null, SharedProps>,\n VueApp\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}: InertiaAppOptionsForCSR<SharedProps> | InertiaAppOptionsForSSR<SharedProps>): InertiaAppResponse {\n const isServer = typeof window === 'undefined'\n const el = isServer ? null : document.getElementById(id)\n const initialPage = page || JSON.parse(el?.dataset.page || '{}')\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: el as HTMLElement,\n App,\n props,\n plugin,\n })\n })\n\n if (!isServer && progress) {\n setupProgress(progress)\n }\n\n if (isServer && render) {\n const body = await render(\n createSSRApp({\n render: () =>\n h('div', {\n id,\n 'data-page': JSON.stringify(initialPage),\n innerHTML: vueApp ? render(vueApp) : '',\n }),\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 VisitOptions,\n} from '@inertiajs/core'\nimport { isEqual } from 'lodash-es'\nimport { computed, defineComponent, h, onBeforeUnmount, onMounted, PropType, ref, SlotsType } from 'vue'\nimport useForm from './useForm'\n\ntype FormSubmitOptions = Omit<VisitOptions, 'data' | 'onPrefetched' | 'onPrefetching'>\n\nconst noop = () => undefined\n\nconst Form = defineComponent({\n name: 'Form',\n slots: Object as SlotsType<{\n default: FormComponentSlotProps\n }>,\n props: {\n action: {\n type: [String, Object] as PropType<FormComponentProps['action']>,\n default: '',\n },\n method: {\n type: String as PropType<FormComponentProps['method']>,\n default: 'get',\n },\n headers: {\n type: Object as PropType<FormComponentProps['headers']>,\n default: () => ({}),\n },\n queryStringArrayFormat: {\n type: String as PropType<FormComponentProps['queryStringArrayFormat']>,\n default: 'brackets',\n },\n errorBag: {\n type: [String, null] as PropType<FormComponentProps['errorBag']>,\n default: null,\n },\n showProgress: {\n type: Boolean,\n default: true,\n },\n transform: {\n type: Function as PropType<FormComponentProps['transform']>,\n default: (data: Record<string, FormDataConvertible>) => data,\n },\n options: {\n type: Object as PropType<FormComponentProps['options']>,\n default: () => ({}),\n },\n resetOnError: {\n type: [Boolean, Array] as PropType<FormComponentProps['resetOnError']>,\n default: false,\n },\n resetOnSuccess: {\n type: [Boolean, Array] as PropType<FormComponentProps['resetOnSuccess']>,\n default: false,\n },\n setDefaultsOnSuccess: {\n type: Boolean as PropType<FormComponentProps['setDefaultsOnSuccess']>,\n default: false,\n },\n onCancelToken: {\n type: Function as PropType<FormComponentProps['onCancelToken']>,\n default: noop,\n },\n onBefore: {\n type: Function as PropType<FormComponentProps['onBefore']>,\n default: noop,\n },\n onStart: {\n type: Function as PropType<FormComponentProps['onStart']>,\n default: noop,\n },\n onProgress: {\n type: Function as PropType<FormComponentProps['onProgress']>,\n default: noop,\n },\n onFinish: {\n type: Function as PropType<FormComponentProps['onFinish']>,\n default: noop,\n },\n onCancel: {\n type: Function as PropType<FormComponentProps['onCancel']>,\n default: noop,\n },\n onSuccess: {\n type: Function as PropType<FormComponentProps['onSuccess']>,\n default: noop,\n },\n onError: {\n type: Function as PropType<FormComponentProps['onError']>,\n default: noop,\n },\n onSubmitComplete: {\n type: Function as PropType<FormComponentProps['onSubmitComplete']>,\n default: noop,\n },\n disableWhileProcessing: {\n type: Boolean,\n default: false,\n },\n invalidateCacheTags: {\n type: [String, Array] as PropType<FormComponentProps['invalidateCacheTags']>,\n default: () => [],\n },\n },\n setup(props, { slots, attrs, expose }) {\n const form = useForm<Record<string, any>>({})\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 formEvents.forEach((e) => formElement.value.addEventListener(e, onFormUpdate))\n })\n\n onBeforeUnmount(() => formEvents.forEach((e) => formElement.value?.removeEventListener(e, onFormUpdate)))\n\n const getFormData = (): FormData => new FormData(formElement.value)\n\n // Convert the FormData to an object because we can't compare two FormData\n // instances directly (which is needed for isDirty), mergeDataIntoQueryString()\n // expects an object, and submitting a FormData instance directly causes problems with nested objects.\n const getData = (): Record<string, FormDataConvertible> => formDataToObject(getFormData())\n\n const submit = () => {\n const [action, data] = mergeDataIntoQueryString(\n method.value,\n isUrlMethodPair(props.action) ? props.action.url : props.action,\n getData(),\n props.queryStringArrayFormat,\n )\n\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 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 // 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, action, submitOptions)\n }\n\n const reset = (...fields: string[]) => {\n resetFormFields(formElement.value, defaultData.value, fields)\n }\n\n const resetAndClearErrors = (...fields: string[]) => {\n form.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 clearErrors: (...fields: string[]) => form.clearErrors(...fields),\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 }\n\n expose<FormComponentRef>(exposed)\n\n return () => {\n return h(\n 'form',\n {\n ...attrs,\n ref: formElement,\n action: isUrlMethodPair(props.action) ? props.action.url : props.action,\n method: method.value,\n onSubmit: (event) => {\n event.preventDefault()\n submit()\n },\n inert: props.disableWhileProcessing && form.processing,\n },\n slots.default ? slots.default(exposed) : [],\n )\n }\n },\n})\n\nexport default Form\n", "import { escape } from 'lodash-es'\nimport { defineComponent, DefineComponent, VNode } from 'vue'\n\nexport type InertiaHead = DefineComponent<{\n title?: string\n}>\n\nconst Head: InertiaHead = defineComponent({\n props: {\n title: {\n type: String,\n required: false,\n },\n },\n data() {\n return {\n provider: this.$headManager.createProvider(),\n }\n },\n beforeUnmount() {\n this.provider.disconnect()\n },\n methods: {\n isUnaryTag(node: VNode) {\n return (\n typeof node.type === 'string' &&\n [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ].indexOf(node.type) > -1\n )\n },\n renderTagStart(node: VNode) {\n node.props = node.props || {}\n node.props.inertia = 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 inertia>${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 CacheForOption,\n CancelTokenCallback,\n GlobalEventCallback,\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'\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<string | Component>,\n default: 'a',\n },\n data: {\n type: Object,\n default: () => ({}),\n },\n href: {\n type: [String, Object] as PropType<InertiaLinkProps['href']>,\n default: '',\n },\n method: {\n type: String as PropType<Method>,\n default: 'get',\n },\n replace: {\n type: Boolean,\n default: false,\n },\n preserveScroll: {\n type: Boolean,\n default: false,\n },\n preserveState: {\n type: Boolean,\n default: null,\n },\n preserveUrl: {\n type: Boolean,\n default: false,\n },\n only: {\n type: Array<string>,\n default: () => [],\n },\n except: {\n type: Array<string>,\n default: () => [],\n },\n headers: {\n type: Object,\n default: () => ({}),\n },\n queryStringArrayFormat: {\n type: String as PropType<'brackets' | 'indices'>,\n default: 'brackets',\n },\n async: {\n type: Boolean,\n default: false,\n },\n prefetch: {\n type: [Boolean, String, Array] as PropType<boolean | LinkPrefetchOption | LinkPrefetchOption[]>,\n default: false,\n },\n cacheFor: {\n type: [Number, String, Array] as PropType<CacheForOption | CacheForOption[]>,\n default: 0,\n },\n onStart: {\n type: Function as PropType<GlobalEventCallback<'start'>>,\n default: noop,\n },\n onProgress: {\n type: Function as PropType<GlobalEventCallback<'progress'>>,\n default: noop,\n },\n onFinish: {\n type: Function as PropType<GlobalEventCallback<'finish'>>,\n default: noop,\n },\n onBefore: {\n type: Function as PropType<GlobalEventCallback<'before'>>,\n default: noop,\n },\n onCancel: {\n type: Function as PropType<GlobalEventCallback<'cancel'>>,\n default: noop,\n },\n onSuccess: {\n type: Function as PropType<GlobalEventCallback<'success'>>,\n default: noop,\n },\n onError: {\n type: Function as PropType<GlobalEventCallback<'error'>>,\n default: noop,\n },\n onCancelToken: {\n type: Function as PropType<CancelTokenCallback>,\n default: noop,\n },\n onPrefetching: {\n type: Function as PropType<GlobalEventCallback<'prefetching'>>,\n default: noop,\n },\n onPrefetched: {\n type: Function as PropType<GlobalEventCallback<'prefetched'>>,\n default: noop,\n },\n cacheTags: {\n type: [String, Array] as PropType<string | string[]>,\n default: () => [],\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 30_000\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 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 }, 75)\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 event.preventDefault()\n router.visit(href.value, visitParams.value)\n },\n onKeyup: (event: KeyboardEvent) => {\n if (shouldNavigate(event)) {\n event.preventDefault()\n router.visit(href.value, visitParams.value)\n }\n },\n onClick: (event: MouseEvent) => {\n if (shouldIntercept(event)) {\n // Let the mouseup/keyup event handle the visit\n event.preventDefault()\n }\n },\n }\n\n return () => {\n return h(\n as.value as string | Component,\n {\n ...attrs,\n ...elProps.value,\n 'data-loading': inFlightCount.value > 0 ? '' : undefined,\n ...(() => {\n if (prefetchModes.value.includes('hover')) {\n return prefetchHoverEvents\n }\n\n if (prefetchModes.value.includes('click')) {\n return prefetchClickEvents\n }\n\n return regularEvents\n })(),\n },\n slots,\n )\n }\n },\n})\n\nexport default Link\n", "import { PollOptions, ReloadOptions, router } from '@inertiajs/core'\nimport { onMounted, onUnmounted } from 'vue'\n\nexport default function usePoll(\n interval: number,\n requestOptions: ReloadOptions = {},\n options: PollOptions = {\n keepAlive: false,\n autoStart: true,\n },\n): {\n stop: VoidFunction\n start: VoidFunction\n} {\n const { stop, start } = router.poll(interval, requestOptions, {\n ...options,\n autoStart: false,\n })\n\n onMounted(() => {\n if (options.autoStart ?? true) {\n start()\n }\n })\n\n onUnmounted(() => {\n stop()\n })\n\n return {\n stop,\n start,\n }\n}\n", "import { router, VisitOptions } from '@inertiajs/core'\nimport { onMounted, onUnmounted, ref, Ref } from 'vue'\n\nexport default function usePrefetch(options: VisitOptions = {}): {\n lastUpdatedAt: Ref<number | null>\n isPrefetching: Ref<boolean>\n isPrefetched: Ref<boolean>\n flush: () => void\n} {\n const isPrefetching = ref(false)\n const lastUpdatedAt = ref<number | null>(null)\n const isPrefetched = ref(false)\n\n const cached = typeof window === 'undefined' ? null : router.getCached(window.location.pathname, options)\n const inFlight = typeof window === 'undefined' ? null : router.getPrefetching(window.location.pathname, options)\n\n lastUpdatedAt.value = cached?.staleTimestamp || null\n\n isPrefetching.value = inFlight !== null\n isPrefetched.value = cached !== null\n\n let onPrefetchedListener: () => void\n let onPrefetchingListener: () => void\n\n onMounted(() => {\n onPrefetchingListener = router.on('prefetching', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n isPrefetching.value = true\n }\n })\n\n onPrefetchedListener = router.on('prefetched', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n isPrefetching.value = false\n isPrefetched.value = true\n }\n })\n })\n\n onUnmounted(() => {\n onPrefetchedListener()\n onPrefetchingListener()\n })\n\n return {\n lastUpdatedAt,\n isPrefetching,\n isPrefetched,\n flush: () => router.flush(window.location.pathname, options),\n }\n}\n", "import { router } from '@inertiajs/core'\nimport { cloneDeep } from 'lodash-es'\nimport { isReactive, reactive, ref, Ref, watch } from 'vue'\n\nexport default function useRemember<T extends object>(\n data: T & { __rememberable?: boolean; __remember?: Function; __restore?: Function },\n key?: string,\n): Ref<T> | T {\n if (typeof data === 'object' && data !== null && data.__rememberable === false) {\n return data\n }\n\n const restored = router.restore(key)\n const type = isReactive(data) ? reactive : ref\n const hasCallbacks = typeof data.__remember === 'function' && typeof data.__restore === 'function'\n const remembered = type(restored === undefined ? data : hasCallbacks ? data.__restore!(restored) : restored)\n\n watch(\n remembered,\n (newValue) => {\n router.remember(cloneDeep(hasCallbacks ? data.__remember!() : newValue), key)\n },\n { immediate: true, deep: true },\n )\n\n return remembered\n}\n", "import { ReloadOptions, router } from '@inertiajs/core'\nimport { defineComponent, h, PropType } from 'vue'\n\nexport default defineComponent({\n name: 'WhenVisible',\n props: {\n data: {\n type: [String, Array<String>],\n },\n params: {\n type: Object as PropType<ReloadOptions>,\n },\n buffer: {\n type: Number,\n default: 0,\n },\n as: {\n type: String,\n default: 'div',\n },\n always: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n loaded: false,\n fetching: false,\n observer: null as IntersectionObserver | null,\n }\n },\n unmounted() {\n this.observer?.disconnect()\n },\n mounted() {\n this.observer = new IntersectionObserver(\n (entries) => {\n if (!entries[0].isIntersecting) {\n return\n }\n\n if (!this.$props.always) {\n this.observer?.disconnect()\n }\n\n if (this.fetching) {\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 })\n },\n {\n rootMargin: `${this.$props.buffer}px`,\n },\n )\n\n this.observer.observe(this.$el.nextSibling)\n },\n methods: {\n getReloadParams(): Partial<ReloadOptions> {\n if (this.$props.data) {\n return {\n only: (Array.isArray(this.$props.data) ? this.$props.data : [this.$props.data]) as string[],\n }\n }\n\n if (!this.$props.params) {\n throw new Error('You must provide either a `data` or `params` prop.')\n }\n\n return this.$props.params\n },\n },\n render() {\n const els = []\n\n if (this.$props.always || !this.loaded) {\n els.push(h(this.$props.as))\n }\n\n if (!this.loaded) {\n els.push(this.$slots.fallback ? this.$slots.fallback() : null)\n } else if (this.$slots.default) {\n els.push(this.$slots.default())\n }\n\n return els\n },\n})\n"],
5
- "mappings": ";AAAA,SAAS,UAAU,UAAAA,gBAAc;;;ACAjC;AAAA,EACE;AAAA,EAMA,UAAAC;AAAA,OAEK;AACP;AAAA,EACE;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EAGA,YAAAC;AAAA,EACA;AAAA,EACA;AAAA,OACK;;;ACrBP,SAAS,cAAc;AACvB,SAAS,iBAAiB;AAG1B,IAAM,WAA6B;AAAA,EACjC,UAAU;AACR,QAAI,CAAC,KAAK,SAAS,UAAU;AAC3B;AAAA,IACF;AAEA,QAAI,MAAM,QAAQ,KAAK,SAAS,QAAQ,GAAG;AACzC,WAAK,SAAS,WAAW,EAAE,MAAM,KAAK,SAAS,SAAS;AAAA,IAC1D;AAEA,QAAI,OAAO,KAAK,SAAS,aAAa,UAAU;AAC9C,WAAK,SAAS,WAAW,EAAE,MAAM,CAAC,KAAK,SAAS,QAAQ,EAAE;AAAA,IAC5D;AAEA,QAAI,OAAO,KAAK,SAAS,SAAS,SAAS,UAAU;AACnD,WAAK,SAAS,WAAW,EAAE,MAAM,CAAC,KAAK,SAAS,SAAS,IAAI,EAAE;AAAA,IACjE;AAEA,UAAM,cACJ,KAAK,SAAS,SAAS,eAAe,WAClC,KAAK,SAAS,SAAS,IAAI,KAAK,IAAI,IACpC,KAAK,SAAS,SAAS;AAE7B,UAAM,WAAW,OAAO,QAAQ,WAAW;AAE3C,UAAM,eAAe,KAAK,SAAS,SAAS,KAAK,OAAO,CAACC,SAAgB;AACvE,aAAO,EAAE,KAAKA,IAAG,MAAM,QAAQ,OAAO,KAAKA,IAAG,MAAM,YAAY,KAAKA,IAAG,EAAE,mBAAmB;AAAA,IAC/F,CAAC;AAED,UAAM,eAAe,CAACA,SAAgB;AACpC,aACE,KAAKA,IAAG,MAAM,QACd,OAAO,KAAKA,IAAG,MAAM,YACrB,OAAO,KAAKA,IAAG,EAAE,eAAe,cAChC,OAAO,KAAKA,IAAG,EAAE,cAAc;AAAA,IAEnC;AAEA,iBAAa,QAAQ,CAACA,SAAgB;AACpC,UAAI,KAAKA,IAAG,MAAM,UAAa,aAAa,UAAa,SAASA,IAAG,MAAM,QAAW;AACpF,qBAAaA,IAAG,IAAI,KAAKA,IAAG,EAAE,UAAU,SAASA,IAAG,CAAC,IAAK,KAAKA,IAAG,IAAI,SAASA,IAAG;AAAA,MACpF;AAEA,WAAK;AAAA,QACHA;AAAA,QACA,MAAM;AACJ,iBAAO;AAAA,YACL,aAAa;AAAA,cACX,CAAC,MAAMA,UAAS;AAAA,gBACd,GAAG;AAAA,gBACH,CAACA,IAAG,GAAG,UAAU,aAAaA,IAAG,IAAI,KAAKA,IAAG,EAAE,WAAW,IAAI,KAAKA,IAAG,CAAC;AAAA,cACzE;AAAA,cACA,CAAC;AAAA,YACH;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA,EAAE,WAAW,MAAM,MAAM,KAAK;AAAA,MAChC;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEA,IAAO,mBAAQ;;;ACnEf;AAAA,EAUE,UAAAC;AAAA,OAGK;AACP,SAAS,aAAAC,YAAW,KAAK,KAAK,SAAS,WAAW;AAClD,SAAS,UAAU,aAAa;AAwCjB,SAAR,QACL,mBACA,WACoB;AACpB,QAAM,cAAc,OAAO,sBAAsB,WAAW,oBAAoB;AAChF,QAAM,QAAQ,OAAO,sBAAsB,WAAW,YAAY,sBAAsB,CAAC;AACzF,QAAM,WAAW,cACZD,QAAO,QAAQ,WAAW,IAC3B;AACJ,MAAI,WAAW,OAAO,SAAS,aAAaC,WAAU,KAAK,CAAC,IAAIA,WAAU,IAAI;AAC9E,MAAI,cAAkC;AACtC,MAAI;AACJ,MAAI,YAAsC,CAACC,UAASA;AAIpD,MAAI,4BAA4B;AAEhC,QAAM,OAAO,SAAS;AAAA,IACpB,GAAI,WAAW,SAAS,OAAOD,WAAU,QAAQ;AAAA,IACjD,SAAS;AAAA,IACT,QAAS,WAAW,SAAS,SAAS,CAAC;AAAA,IACvC,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,eAAe;AAAA,IACf,oBAAoB;AAAA,IACpB,OAAO;AACL,aAAQ,OAAO,KAAK,QAAQ,EAAiC,OAAO,CAAC,OAAOE,SAAQ;AAClF,eAAO,IAAI,OAAOA,MAAK,IAAI,MAAMA,IAAG,CAAC;AAAA,MACvC,GAAG,CAAC,CAAmB;AAAA,IACzB;AAAA,IACA,UAAU,UAAoC;AAC5C,kBAAY;AAEZ,aAAO;AAAA,IACT;AAAA,IACA,SAAS,eAAsD,YAAsB;AACnF,UAAI,OAAO,SAAS,YAAY;AAC9B,cAAM,IAAI,MAAM,8EAA8E;AAAA,MAChG;AAEA,kCAA4B;AAE5B,UAAI,OAAO,kBAAkB,aAAa;AACxC,mBAAWF,WAAU,KAAK,KAAK,CAAC;AAChC,aAAK,UAAU;AAAA,MACjB,OAAO;AACL,mBACE,OAAO,kBAAkB,WACrB,IAAIA,WAAU,QAAQ,GAAG,eAAe,UAAU,IAClD,OAAO,OAAO,CAAC,GAAGA,WAAU,QAAQ,GAAG,aAAa;AAAA,MAC5D;AAEA,aAAO;AAAA,IACT;AAAA,IACA,SAAS,QAAkB;AACzB,YAAM,eAAe,OAAO,SAAS,aAAaA,WAAU,KAAK,CAAC,IAAIA,WAAU,QAAQ;AACxF,YAAM,aAAaA,WAAU,YAAY;AACzC,UAAI,OAAO,WAAW,GAAG;AACvB,mBAAW;AACX,eAAO,OAAO,MAAM,YAAY;AAAA,MAClC,OAAO;AACL;AAAC,QAAC,OACC,OAAO,CAACE,SAAQ,IAAI,YAAYA,IAAG,CAAC,EACpC,QAAQ,CAACA,SAAQ;AAChB,cAAI,UAAUA,MAAK,IAAI,YAAYA,IAAG,CAAC;AACvC,cAAI,MAAMA,MAAK,IAAI,cAAcA,IAAG,CAAC;AAAA,QACvC,CAAC;AAAA,MACL;AAEA,aAAO;AAAA,IACT;AAAA,IACA,SAAS,eAA4D,YAAyB;AAC5F,aAAO,OAAO,KAAK,QAAQ,OAAO,kBAAkB,WAAW,EAAE,CAAC,aAAa,GAAG,WAAW,IAAI,aAAa;AAE9G,WAAK,YAAY,OAAO,KAAK,KAAK,MAAM,EAAE,SAAS;AAEnD,aAAO;AAAA,IACT;AAAA,IACA,eAAe,QAAkB;AAC/B,WAAK,SAAS,OAAO,KAAK,KAAK,MAAM,EAAE;AAAA,QACrC,CAAC,OAAO,WAAW;AAAA,UACjB,GAAG;AAAA,UACH,GAAI,OAAO,SAAS,KAAK,CAAC,OAAO,SAAS,KAAK,IAAI,EAAE,CAAC,KAAK,GAAG,KAAK,OAAO,KAAK,EAAE,IAAI,CAAC;AAAA,QACxF;AAAA,QACA,CAAC;AAAA,MACH;AAEA,WAAK,YAAY,OAAO,KAAK,KAAK,MAAM,EAAE,SAAS;AAEnD,aAAO;AAAA,IACT;AAAA,IACA,uBAAuB,QAAkB;AACvC,WAAK,MAAM,GAAG,MAAM;AACpB,WAAK,YAAY,GAAG,MAAM;AAC1B,aAAO;AAAA,IACT;AAAA,IACA,UAAU,MAAkB;AAC1B,YAAM,eAAe,KAAK,CAAC,MAAM,QAAQ,OAAO,KAAK,CAAC,MAAM;AAE5D,YAAM,SAAS,eAAe,KAAK,CAAC,EAAE,SAAU,KAAK,CAAC;AACtD,YAAM,MAAM,eAAe,KAAK,CAAC,EAAE,MAAO,KAAK,CAAC;AAChD,YAAM,WAAW,eAAe,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC;AAEvD,kCAA4B;AAE5B,YAAM,WAAyB;AAAA,QAC7B,GAAG;AAAA,QACH,eAAe,CAAC,UAAU;AACxB,wBAAc;AAEd,cAAI,QAAQ,eAAe;AACzB,mBAAO,QAAQ,cAAc,KAAK;AAAA,UACpC;AAAA,QACF;AAAA,QACA,UAAU,CAAC,UAAU;AACnB,eAAK,gBAAgB;AACrB,eAAK,qBAAqB;AAC1B,uBAAa,2BAA2B;AAExC,cAAI,QAAQ,UAAU;AACpB,mBAAO,QAAQ,SAAS,KAAK;AAAA,UAC/B;AAAA,QACF;AAAA,QACA,SAAS,CAAC,UAAU;AAClB,eAAK,aAAa;AAElB,cAAI,QAAQ,SAAS;AACnB,mBAAO,QAAQ,QAAQ,KAAK;AAAA,UAC9B;AAAA,QACF;AAAA,QACA,YAAY,CAAC,UAAU;AACrB,eAAK,WAAW;AAEhB,cAAI,QAAQ,YAAY;AACtB,mBAAO,QAAQ,WAAW,KAAK;AAAA,UACjC;AAAA,QACF;AAAA,QACA,WAAW,OAAOC,UAAS;AACzB,eAAK,aAAa;AAClB,eAAK,WAAW;AAChB,eAAK,YAAY;AACjB,eAAK,gBAAgB;AACrB,eAAK,qBAAqB;AAC1B,wCAA8B,WAAW,MAAO,KAAK,qBAAqB,OAAQ,GAAI;AAEtF,gBAAM,YAAY,QAAQ,YAAY,MAAM,QAAQ,UAAUA,KAAI,IAAI;AAEtE,cAAI,CAAC,2BAA2B;AAC9B,uBAAWH,WAAU,KAAK,KAAK,CAAC;AAChC,iBAAK,UAAU;AAAA,UACjB;AAEA,iBAAO;AAAA,QACT;AAAA,QACA,SAAS,CAAC,WAAW;AACnB,eAAK,aAAa;AAClB,eAAK,WAAW;AAChB,eAAK,YAAY,EAAE,SAAS,MAAM;AAElC,cAAI,QAAQ,SAAS;AACnB,mBAAO,QAAQ,QAAQ,MAAM;AAAA,UAC/B;AAAA,QACF;AAAA,QACA,UAAU,MAAM;AACd,eAAK,aAAa;AAClB,eAAK,WAAW;AAEhB,cAAI,QAAQ,UAAU;AACpB,mBAAO,QAAQ,SAAS;AAAA,UAC1B;AAAA,QACF;AAAA,QACA,UAAU,CAAC,UAAU;AACnB,eAAK,aAAa;AAClB,eAAK,WAAW;AAChB,wBAAc;AAEd,cAAI,QAAQ,UAAU;AACpB,mBAAO,QAAQ,SAAS,KAAK;AAAA,UAC/B;AAAA,QACF;AAAA,MACF;AAEA,YAAM,kBAAkB,UAAU,KAAK,KAAK,CAAC;AAE7C,UAAI,WAAW,UAAU;AACvB,QAAAD,QAAO,OAAO,KAAK,EAAE,GAAG,UAAU,MAAM,gBAAgB,CAAC;AAAA,MAC3D,OAAO;AACL,QAAAA,QAAO,MAAM,EAAE,KAAK,iBAAiB,QAAQ;AAAA,MAC/C;AAAA,IACF;AAAA,IACA,IAAI,KAAa,SAAuB;AACtC,WAAK,OAAO,OAAO,KAAK,OAAO;AAAA,IACjC;AAAA,IACA,KAAK,KAAa,SAAuB;AACvC,WAAK,OAAO,QAAQ,KAAK,OAAO;AAAA,IAClC;AAAA,IACA,IAAI,KAAa,SAAuB;AACtC,WAAK,OAAO,OAAO,KAAK,OAAO;AAAA,IACjC;AAAA,IACA,MAAM,KAAa,SAAuB;AACxC,WAAK,OAAO,SAAS,KAAK,OAAO;AAAA,IACnC;AAAA,IACA,OAAO,KAAa,SAAuB;AACzC,WAAK,OAAO,UAAU,KAAK,OAAO;AAAA,IACpC;AAAA,IACA,SAAS;AACP,UAAI,aAAa;AACf,oBAAY,OAAO;AAAA,MACrB;AAAA,IACF;AAAA,IACA,gBAAgB,gBAAgB;AAAA,IAChC,aAAa;AACX,aAAO,EAAE,MAAM,KAAK,KAAK,GAAG,QAAQ,KAAK,OAAO;AAAA,IAClD;AAAA,IACA,UAAUK,WAA0D;AAClE,aAAO,OAAO,MAAMA,UAAS,IAAI;AACjC,WAAK,SAASA,UAAS,MAAM;AAAA,IAC/B;AAAA,EACF,CAAC;AAED;AAAA,IACE;AAAA,IACA,CAAC,aAAa;AACZ,WAAK,UAAU,CAAC,QAAQ,KAAK,KAAK,GAAG,QAAQ;AAC7C,UAAI,aAAa;AACf,QAAAL,QAAO,SAASC,WAAU,SAAS,WAAW,CAAC,GAAG,WAAW;AAAA,MAC/D;AAAA,IACF;AAAA,IACA,EAAE,WAAW,MAAM,MAAM,KAAK;AAAA,EAChC;AAEA,SAAO;AACT;;;AF7PA,IAAM,YAAY,IAAiC,MAAS;AAC5D,IAAM,OAAO,IAAU;AACvB,IAAM,SAAS,WAAW,IAAI;AAC9B,IAAM,MAAM,IAAwB,MAAS;AAC7C,IAAI;AAEJ,IAAM,MAAkB,gBAAgB;AAAA,EACtC,MAAM;AAAA,EACN,OAAO;AAAA,IACL,aAAa;AAAA,MACX,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,eAAe;AAAA,MACb,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS,CAAC,UAAkB;AAAA,IAC9B;AAAA,IACA,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS,MAAM,MAAM;AAAA,MAAC;AAAA,IACxB;AAAA,EACF;AAAA,EACA,MAAM,EAAE,aAAa,kBAAkB,kBAAkB,eAAe,aAAa,GAAoB;AACvG,cAAU,QAAQ,mBAAmB,QAAQ,gBAAgB,IAAI;AACjE,SAAK,QAAQ;AACb,QAAI,QAAQ;AAEZ,UAAM,WAAW,OAAO,WAAW;AACnC,kBAAc,kBAAkB,UAAU,kBAAkB,CAAC,UAAkB,QAAQ,iBAAiB,MAAM;AAAA,IAAC,EAAE;AAEjH,QAAI,CAAC,UAAU;AACb,MAAAK,QAAO,KAAsB;AAAA,QAC3B;AAAA,QACA;AAAA,QACA,eAAe,OAAO,YAAgC;AACpD,oBAAU,QAAQ,QAAQ,QAAQ,SAAS;AAC3C,eAAK,QAAQ,QAAQ;AACrB,cAAI,QAAQ,QAAQ,gBAAgB,IAAI,QAAQ,KAAK,IAAI;AAAA,QAC3D;AAAA,MACF,CAAC;AAED,MAAAA,QAAO,GAAG,YAAY,MAAM,YAAY,YAAY,CAAC;AAAA,IACvD;AAEA,WAAO,MAAM;AACX,UAAI,UAAU,OAAO;AACnB,kBAAU,MAAM,eAAe,CAAC,CAAC,UAAU,MAAM;AAEjD,cAAM,QAAQ,EAAE,UAAU,OAAO;AAAA,UAC/B,GAAG,KAAK,MAAO;AAAA,UACf,KAAK,IAAI;AAAA,QACX,CAAC;AAED,YAAI,OAAO,OAAO;AAChB,oBAAU,MAAM,SAAS,OAAO;AAChC,iBAAO,QAAQ;AAAA,QACjB;AAEA,YAAI,UAAU,MAAM,QAAQ;AAC1B,cAAI,OAAO,UAAU,MAAM,WAAW,YAAY;AAChD,mBAAO,UAAU,MAAM,OAAO,GAAG,KAAK;AAAA,UACxC;AAEA,kBAAQ,MAAM,QAAQ,UAAU,MAAM,MAAM,IAAI,UAAU,MAAM,SAAS,CAAC,UAAU,MAAM,MAAM,GAC7F,OAAO,KAAK,EACZ,QAAQ,EACR,OAAO,CAACC,QAAOC,YAAW;AACzB,YAAAA,QAAO,eAAe,CAAC,CAACA,QAAO;AAC/B,mBAAO,EAAEA,SAAQ,EAAE,GAAG,KAAK,MAAO,MAAM,GAAG,MAAMD,MAAK;AAAA,UACxD,CAAC;AAAA,QACL;AAEA,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF,CAAC;AACD,IAAO,cAAQ;AAER,IAAM,SAAiB;AAAA,EAC5B,QAAQ,KAAK;AACX,IAAAD,QAAO,OAAO;AAEd,WAAO,eAAe,IAAI,OAAO,kBAAkB,YAAY,EAAE,KAAK,MAAMA,QAAO,CAAC;AACpF,WAAO,eAAe,IAAI,OAAO,kBAAkB,SAAS,EAAE,KAAK,MAAM,KAAK,MAAM,CAAC;AACrF,WAAO,eAAe,IAAI,OAAO,kBAAkB,gBAAgB,EAAE,KAAK,MAAM,YAAY,CAAC;AAE7F,QAAI,MAAM,gBAAQ;AAAA,EACpB;AACF;AAEO,SAAS,UAAwF;AACtG,SAAOG,UAAS;AAAA,IACd,OAAO,SAAS,MAAM,KAAK,OAAO,KAAK;AAAA,IACvC,KAAK,SAAS,MAAM,KAAK,OAAO,GAAG;AAAA,IACnC,WAAW,SAAS,MAAM,KAAK,OAAO,SAAS;AAAA,IAC/C,SAAS,SAAS,MAAM,KAAK,OAAO,OAAO;AAAA,IAC3C,cAAc,SAAS,MAAM,KAAK,OAAO,YAAY;AAAA,IACrD,eAAe,SAAS,MAAM,KAAK,OAAO,aAAa;AAAA,IACvD,YAAY,SAAS,MAAM,KAAK,OAAO,UAAU;AAAA,IACjD,cAAc,SAAS,MAAM,KAAK,OAAO,YAAY;AAAA,IACrD,gBAAgB,SAAS,MAAM,KAAK,OAAO,cAAc;AAAA,IACzD,cAAc,SAAS,MAAM,KAAK,OAAO,YAAY;AAAA,IACrD,iBAAiB,SAAS,MAAM,KAAK,OAAO,eAAe;AAAA,IAC3D,gBAAgB,SAAS,MAAM,KAAK,OAAO,cAAc;AAAA,EAC3D,CAAC;AACH;;;AGxJA;AAAA,EAME,UAAAC;AAAA,EACA;AAAA,OACK;AACP,SAAS,cAA+B,KAAAC,UAAgC;AAmCxE,eAAO,iBAAmF;AAAA,EACxF,KAAK;AAAA,EACL;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAAC,YAAW,CAAC;AAAA,EACZ,MAAAC;AAAA,EACA;AACF,GAAoG;AAClG,QAAM,WAAW,OAAO,WAAW;AACnC,QAAM,KAAK,WAAW,OAAO,SAAS,eAAe,EAAE;AACvD,QAAM,cAAcA,SAAQ,KAAK,MAAM,IAAI,QAAQ,QAAQ,IAAI;AAC/D,QAAM,mBAAmB,CAAC,SAAiB,QAAQ,QAAQ,QAAQ,IAAI,CAAC,EAAE,KAAK,CAAC,WAAW,OAAO,WAAW,MAAM;AAEnH,MAAI,OAAiB,CAAC;AAEtB,QAAM,SAAS,MAAM,QAAQ,IAAI;AAAA,IAC/B,iBAAiB,YAAY,SAAS;AAAA,IACtCC,QAAO,eAAe,EAAE,MAAM,MAAM;AAAA,IAAC,CAAC;AAAA,EACxC,CAAC,EAAE,KAAK,CAAC,CAAC,gBAAgB,MAAM;AAC9B,UAAM,QAAQ;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAe;AAAA,IACjB;AAEA,QAAI,UAAU;AACZ,YAAM,WAAW;AAEjB,aAAO,SAAS;AAAA,QACd,IAAI;AAAA,QACJ;AAAA,QACA,OAAO,EAAE,GAAG,OAAO,cAAc,CAAC,aAAwB,OAAO,SAAU;AAAA,QAC3E;AAAA,MACF,CAAC;AAAA,IACH;AAEA,UAAM,WAAW;AAEjB,WAAO,SAAS;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AAED,MAAI,CAAC,YAAYF,WAAU;AACzB,kBAAcA,SAAQ;AAAA,EACxB;AAEA,MAAI,YAAY,QAAQ;AACtB,UAAM,OAAO,MAAM;AAAA,MACjB,aAAa;AAAA,QACX,QAAQ,MACNG,GAAE,OAAO;AAAA,UACP;AAAA,UACA,aAAa,KAAK,UAAU,WAAW;AAAA,UACvC,WAAW,SAAS,OAAO,MAAM,IAAI;AAAA,QACvC,CAAC;AAAA,MACL,CAAC;AAAA,IACH;AAEA,WAAO,EAAE,MAAM,KAAK;AAAA,EACtB;AACF;;;AC9GA,SAAS,mBAAAC,wBAAuB;AAEhC,IAAO,mBAAQA,iBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM,CAAC,QAAQ,KAAa;AAAA,MAC5B,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA,SAAS;AACP,UAAM,OAAQ,MAAM,QAAQ,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,OAAO,CAAC,KAAK,OAAO,IAAI;AAEpF,QAAI,CAAC,KAAK,OAAO,UAAU;AACzB,YAAM,IAAI,MAAM,qDAAqD;AAAA,IACvE;AAEA,WAAO,KAAK,MAAM,CAACC,SAAQ,KAAK,MAAM,MAAMA,IAAG,MAAM,MAAS,IAAI,KAAK,OAAO,UAAU,IAAI,KAAK,OAAO,SAAS;AAAA,EACnH;AACF,CAAC;;;ACnBD;AAAA,EAME;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,OAEK;AACP,SAAS,WAAAC,gBAAe;AACxB,SAAS,YAAAC,WAAU,mBAAAC,kBAAiB,KAAAC,IAAG,iBAAiB,WAAqB,OAAAC,YAAsB;AAKnG,IAAM,OAAO,MAAM;AAEnB,IAAM,OAAOC,iBAAgB;AAAA,EAC3B,MAAM;AAAA,EACN,OAAO;AAAA,EAGP,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,SAAS;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS,OAAO,CAAC;AAAA,IACnB;AAAA,IACA,wBAAwB;AAAA,MACtB,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,MAAM,CAAC,QAAQ,IAAI;AAAA,MACnB,SAAS;AAAA,IACX;AAAA,IACA,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS,CAAC,SAA8C;AAAA,IAC1D;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS,OAAO,CAAC;AAAA,IACnB;AAAA,IACA,cAAc;AAAA,MACZ,MAAM,CAAC,SAAS,KAAK;AAAA,MACrB,SAAS;AAAA,IACX;AAAA,IACA,gBAAgB;AAAA,MACd,MAAM,CAAC,SAAS,KAAK;AAAA,MACrB,SAAS;AAAA,IACX;AAAA,IACA,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,wBAAwB;AAAA,MACtB,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,qBAAqB;AAAA,MACnB,MAAM,CAAC,QAAQ,KAAK;AAAA,MACpB,SAAS,MAAM,CAAC;AAAA,IAClB;AAAA,EACF;AAAA,EACA,MAAM,OAAO,EAAE,OAAO,OAAO,OAAO,GAAG;AACrC,UAAM,OAAO,QAA6B,CAAC,CAAC;AAC5C,UAAM,cAAcC,KAAI;AACxB,UAAM,SAASC;AAAA,MAAS,MACtB,gBAAgB,MAAM,MAAM,IAAI,MAAM,OAAO,SAAU,MAAM,OAAO,YAAY;AAAA,IAClF;AAGA,UAAM,UAAUD,KAAI,KAAK;AAEzB,UAAM,cAAcA,KAAI,IAAI,SAAS,CAAC;AAEtC,UAAM,eAAe,CAAC,UAAiB;AAIrC,cAAQ,QAAQ,MAAM,SAAS,UAAU,QAAQ,CAACE,SAAQ,QAAQ,GAAG,iBAAiB,YAAY,KAAK,CAAC;AAAA,IAC1G;AAEA,UAAM,aAA+C,CAAC,SAAS,UAAU,OAAO;AAEhF,cAAU,MAAM;AACd,kBAAY,QAAQ,YAAY;AAChC,iBAAW,QAAQ,CAAC,MAAM,YAAY,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAAA,IAC/E,CAAC;AAED,oBAAgB,MAAM,WAAW,QAAQ,CAAC,MAAM,YAAY,OAAO,oBAAoB,GAAG,YAAY,CAAC,CAAC;AAExG,UAAM,cAAc,MAAgB,IAAI,SAAS,YAAY,KAAK;AAKlE,UAAM,UAAU,MAA2C,iBAAiB,YAAY,CAAC;AAEzF,UAAM,SAAS,MAAM;AACnB,YAAM,CAAC,QAAQ,IAAI,IAAI;AAAA,QACrB,OAAO;AAAA,QACP,gBAAgB,MAAM,MAAM,IAAI,MAAM,OAAO,MAAM,MAAM;AAAA,QACzD,QAAQ;AAAA,QACR,MAAM;AAAA,MACR;AAEA,YAAM,aAAa,CAAC,gBAAoC;AACtD,YAAI,CAAC,aAAa;AAChB;AAAA,QACF;AAEA,YAAI,gBAAgB,MAAM;AACxB,gBAAM;AAAA,QACR,WAAW,YAAY,SAAS,GAAG;AACjC,gBAAM,GAAG,WAAW;AAAA,QACtB;AAAA,MACF;AAEA,YAAM,gBAAmC;AAAA,QACvC,SAAS,MAAM;AAAA,QACf,UAAU,MAAM;AAAA,QAChB,cAAc,MAAM;AAAA,QACpB,qBAAqB,MAAM;AAAA,QAC3B,eAAe,MAAM;AAAA,QACrB,UAAU,MAAM;AAAA,QAChB,SAAS,MAAM;AAAA,QACf,YAAY,MAAM;AAAA,QAClB,UAAU,MAAM;AAAA,QAChB,UAAU,MAAM;AAAA,QAChB,WAAW,IAAI,SAAS;AACtB,gBAAM,YAAY,GAAG,IAAI;AACzB,gBAAM,mBAAmB,OAAO;AAChC,qBAAW,MAAM,cAAc;AAE/B,cAAI,MAAM,yBAAyB,MAAM;AACvC,qBAAS;AAAA,UACX;AAAA,QACF;AAAA,QACA,SAAS,IAAI,SAAS;AACpB,gBAAM,UAAU,GAAG,IAAI;AACvB,qBAAW,MAAM,YAAY;AAAA,QAC/B;AAAA,QACA,GAAG,MAAM;AAAA,MACX;AAGA,WAAK,UAAU,MAAM,MAAM,UAAU,IAAI,CAAC,EAAE,OAAO,OAAO,OAAO,QAAQ,aAAa;AAAA,IACxF;AAEA,UAAM,QAAQ,IAAI,WAAqB;AACrC,sBAAgB,YAAY,OAAO,YAAY,OAAO,MAAM;AAAA,IAC9D;AAEA,UAAM,sBAAsB,IAAI,WAAqB;AACnD,WAAK,YAAY,GAAG,MAAM;AAC1B,YAAM,GAAG,MAAM;AAAA,IACjB;AAEA,UAAM,WAAW,MAAM;AACrB,kBAAY,QAAQ,YAAY;AAChC,cAAQ,QAAQ;AAAA,IAClB;AAEA,UAAM,UAAU;AAAA,MACd,IAAI,SAAS;AACX,eAAO,KAAK;AAAA,MACd;AAAA,MACA,IAAI,YAAY;AACd,eAAO,KAAK;AAAA,MACd;AAAA,MACA,IAAI,aAAa;AACf,eAAO,KAAK;AAAA,MACd;AAAA,MACA,IAAI,WAAW;AACb,eAAO,KAAK;AAAA,MACd;AAAA,MACA,IAAI,gBAAgB;AAClB,eAAO,KAAK;AAAA,MACd;AAAA,MACA,IAAI,qBAAqB;AACvB,eAAO,KAAK;AAAA,MACd;AAAA,MACA,aAAa,IAAI,WAAqB,KAAK,YAAY,GAAG,MAAM;AAAA,MAChE;AAAA,MACA,UAAU,CAAC,eAAgD,eACzD,KAAK,SAAU,OAAO,kBAAkB,WAAW,EAAE,CAAC,aAAa,GAAG,WAAW,IAAI,aAAwB;AAAA,MAC/G,IAAI,UAAU;AACZ,eAAO,QAAQ;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,WAAyB,OAAO;AAEhC,WAAO,MAAM;AACX,aAAOC;AAAA,QACL;AAAA,QACA;AAAA,UACE,GAAG;AAAA,UACH,KAAK;AAAA,UACL,QAAQ,gBAAgB,MAAM,MAAM,IAAI,MAAM,OAAO,MAAM,MAAM;AAAA,UACjE,QAAQ,OAAO;AAAA,UACf,UAAU,CAAC,UAAU;AACnB,kBAAM,eAAe;AACrB,mBAAO;AAAA,UACT;AAAA,UACA,OAAO,MAAM,0BAA0B,KAAK;AAAA,QAC9C;AAAA,QACA,MAAM,UAAU,MAAM,QAAQ,OAAO,IAAI,CAAC;AAAA,MAC5C;AAAA,IACF;AAAA,EACF;AACF,CAAC;AAED,IAAO,eAAQ;;;AC7Qf,SAAS,cAAc;AACvB,SAAS,mBAAAC,wBAA+C;AAMxD,IAAM,OAAoBA,iBAAgB;AAAA,EACxC,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA,OAAO;AACL,WAAO;AAAA,MACL,UAAU,KAAK,aAAa,eAAe;AAAA,IAC7C;AAAA,EACF;AAAA,EACA,gBAAgB;AACd,SAAK,SAAS,WAAW;AAAA,EAC3B;AAAA,EACA,SAAS;AAAA,IACP,WAAW,MAAa;AACtB,aACE,OAAO,KAAK,SAAS,YACrB;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,EAAE,QAAQ,KAAK,IAAI,IAAI;AAAA,IAE3B;AAAA,IACA,eAAe,MAAa;AAC1B,WAAK,QAAQ,KAAK,SAAS,CAAC;AAC5B,WAAK,MAAM,UAAU,KAAK,MAAM,UAAU,MAAM,SAAY,KAAK,MAAM,UAAU,IAAI;AAErF,YAAM,QAAQ,OAAO,KAAK,KAAK,KAAK,EAAE,OAAO,CAAC,OAAO,SAAS;AAC5D,cAAM,QAAQ,OAAO,KAAK,MAAO,IAAI,CAAC;AACtC,YAAI,CAAC,OAAO,UAAU,EAAE,SAAS,IAAI,GAAG;AACtC,iBAAO;AAAA,QACT,WAAW,UAAU,IAAI;AACvB,iBAAO,QAAQ,IAAI,IAAI;AAAA,QACzB,OAAO;AACL,iBAAO,QAAQ,IAAI,IAAI,KAAK,OAAO,KAAK,CAAC;AAAA,QAC3C;AAAA,MACF,GAAG,EAAE;AAEL,aAAO,IAAI,OAAO,KAAK,IAAI,CAAC,GAAG,KAAK;AAAA,IACtC;AAAA,IACA,kBAAkB,MAAqB;AACrC,YAAM,EAAE,SAAS,IAAI;AAErB,UAAI,OAAO,aAAa,UAAU;AAChC,eAAO;AAAA,MACT;AAEA,UAAI,MAAM,QAAQ,QAAQ,GAAG;AAC3B,eAAO,SAAS,OAAe,CAAC,MAAM,UAAU;AAC9C,iBAAO,OAAO,KAAK,UAAU,KAAc;AAAA,QAC7C,GAAG,EAAE;AAAA,MACP;AAEA,aAAO;AAAA,IACT;AAAA,IACA,eAAe,MAAoD;AACjE,aAAO,OAAO,KAAK,SAAS;AAAA,IAC9B;AAAA,IACA,gBAAgB,MAA+C;AAC7D,aAAO,OAAO,KAAK,SAAS;AAAA,IAC9B;AAAA,IACA,cAAc,MAAa;AACzB,aAAO,iBAAiB,KAAK,KAAK,KAAK,SAAS,CAAC;AAAA,IACnD;AAAA,IACA,eAAe,MAAa;AAC1B,aAAO,6BAA6B,KAAK,KAAK,KAAK,SAAS,CAAC;AAAA,IAC/D;AAAA,IACA,WAAW,MAAa;AACtB,aAAO,cAAc,KAAK,KAAK,KAAK,SAAS,CAAC;AAAA,IAChD;AAAA,IACA,UAAU,MAAqB;AAC7B,UAAI,KAAK,WAAW,IAAI,GAAG;AACzB,eAAO,OAAO,KAAK,QAAQ;AAAA,MAC7B,WAAW,KAAK,eAAe,IAAI,GAAG;AACpC,eAAO;AAAA,MACT,WAAW,KAAK,cAAc,IAAI,GAAG;AACnC,eAAO;AAAA,MACT;AAEA,UAAI,OAAO,KAAK,eAAe,IAAI;AAEnC,UAAI,KAAK,UAAU;AACjB,gBAAQ,KAAK,kBAAkB,IAAI;AAAA,MACrC;AAEA,UAAI,CAAC,KAAK,WAAW,IAAI,GAAG;AAC1B,gBAAQ,KAAK,OAAO,KAAK,IAAI,CAAC;AAAA,MAChC;AAEA,aAAO;AAAA,IACT;AAAA,IACA,gBAAgB,UAAoB;AAClC,UAAI,KAAK,SAAS,CAAC,SAAS,KAAK,CAAC,QAAQ,IAAI,WAAW,QAAQ,CAAC,GAAG;AACnE,iBAAS,KAAK,kBAAkB,KAAK,KAAK,UAAU;AAAA,MACtD;AAEA,aAAO;AAAA,IACT;AAAA,IACA,YAAY,OAAgB;AAC1B,YAAM,WAAW,MACd,QAAQ,CAAC,SAAS,KAAK,YAAY,IAAI,CAAC,EACxC,IAAI,CAAC,SAAS,KAAK,UAAU,IAAI,CAAC,EAClC,OAAO,CAAC,SAAS,IAAI;AAExB,aAAO,KAAK,gBAAgB,QAAQ;AAAA,IACtC;AAAA,IACA,YAAY,MAA8B;AACxC,UAAI,KAAK,eAAe,IAAI,GAAG;AAC7B,eAAO,KAAK,YAAY,KAAK,KAAK,CAAC;AAAA,MACrC,WAAW,KAAK,gBAAgB,IAAI,GAAG;AACrC,gBAAQ,KAAK,4DAA4D;AACzE,eAAO,CAAC;AAAA,MACV,WAAW,KAAK,WAAW,IAAI,KAAK,KAAK,UAAU;AACjD,eAAO;AAAA,MACT,WAAW,KAAK,eAAe,IAAI,KAAK,KAAK,UAAU;AACrD,eAAQ,KAAK,SAAqB,QAAQ,CAAC,UAAU,KAAK,YAAY,KAAK,CAAC;AAAA,MAC9E,WAAW,KAAK,cAAc,IAAI,GAAG;AACnC,eAAO,CAAC;AAAA,MACV,OAAO;AACL,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAAA,EACA,SAAS;AACP,SAAK,SAAS,OAAO,KAAK,YAAY,KAAK,OAAO,UAAU,KAAK,OAAO,QAAQ,IAAI,CAAC,CAAC,CAAC;AAAA,EACzF;AACF,CAAC;AAED,IAAO,eAAQ;;;ACtJf;AAAA,EACE;AAAA,EAKA;AAAA,OACK;AACP,SAAS,YAAAC,WAAU,mBAAAC,kBAAiB,UAAU,KAAAC,IAAG,aAAAC,YAAW,aAAuB,OAAAC,MAAgB,SAAAC,cAAa;AAGhH,IAAM,qBAAqB,CACzB,OACA,aACuB;AACvB,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AAGA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,SAAS,cAAc,KAAK;AAAA,EACrC;AAGA,MAAI,OAAO,UAAU,YAAY;AAC/B,WAAO,MAAM,KAAK;AAAA,EACpB;AAEA,SAAO;AACT;AAEA,IAAM,iBAAiBJ,iBAAgB;AAAA,EACrC,MAAM;AAAA,EACN,OAAO;AAAA,EAMP,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,IAAI;AAAA,MACF,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,cAAc;AAAA,MACZ,MAAM,CAAC,QAAQ,UAAU,MAAM;AAAA,MAC/B,SAAS;AAAA,IACX;AAAA,IACA,cAAc;AAAA,MACZ,MAAM,CAAC,QAAQ,UAAU,MAAM;AAAA,MAC/B,SAAS;AAAA,IACX;AAAA,IACA,YAAY;AAAA,MACV,MAAM,CAAC,QAAQ,UAAU,MAAM;AAAA,MAC/B,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,cAAc;AAAA,EACd,MAAM,OAAO,EAAE,OAAO,OAAO,OAAO,GAAG;AACrC,UAAM,kBAAkBG,KAAwB,IAAI;AACpD,UAAM,kBAAkBA,KAAwB,IAAI;AACpD,UAAM,gBAAgBA,KAAwB,IAAI;AAElD,UAAM,eAAeJ;AAAA,MAA6B,MAChD,mBAAmB,MAAM,cAAc,gBAAgB,KAAK;AAAA,IAC9D;AACA,UAAM,mBAAmBA,UAAS,MAAM,oBAAoB,aAAa,KAAK,CAAC;AAC/E,UAAM,eAAeA;AAAA,MAA6B,MAChD,mBAAmB,MAAM,cAAc,gBAAgB,KAAK;AAAA,IAC9D;AACA,UAAM,aAAaA,UAA6B,MAAM,mBAAmB,MAAM,YAAY,cAAc,KAAK,CAAC;AAE/G,UAAM,kBAAkBI,KAAI,KAAK;AACjC,UAAM,cAAcA,KAAI,KAAK;AAC7B,UAAM,eAAeA,KAAI,CAAC;AAE1B,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA,OAAO;AAAA,IACT,IAAI,kBAAkB;AAAA;AAAA,MAEpB,aAAa,MAAM,MAAM;AAAA,MACzB,eAAe,MAAM,MAAM;AAAA,MAC3B,iBAAiB,MAAM,CAAC,MAAM;AAAA,MAC9B,qBAAqB,MAAM,CAAC,MAAM;AAAA,MAClC,mBAAmB,MAAM,MAAM;AAAA;AAAA,MAG/B,kBAAkB,MAAM,MAAM;AAAA,MAC9B,iBAAiB,MAAM,aAAa;AAAA,MACpC,eAAe,MAAM,WAAW;AAAA,MAChC,iBAAiB,MAAM,aAAa;AAAA,MACpC,qBAAqB,MAAM,iBAAiB;AAAA;AAAA,MAG5C,yBAAyB,MAAO,gBAAgB,QAAQ;AAAA,MACxD,qBAAqB,MAAO,YAAY,QAAQ;AAAA,MAChD,2BAA2B,MAAM;AAC/B,qBAAa,QAAQ,YAAY,gBAAgB;AACjD,wBAAgB,QAAQ;AAAA,MAC1B;AAAA,MACA,uBAAuB,MAAM;AAC3B,qBAAa,QAAQ,YAAY,gBAAgB;AACjD,oBAAY,QAAQ;AAAA,MACtB;AAAA,IACF,CAAC;AAED,iBAAa,QAAQ,YAAY,gBAAgB;AAEjD,UAAM,WAAWJ,UAAkB,MAAM,CAAC,WAAW,KAAK;AAC1D,UAAM,aAAaA;AAAA,MACjB,MAAM,MAAM,UAAW,MAAM,cAAc,KAAK,aAAa,SAAS,MAAM;AAAA,IAC9E;AAEA,UAAM,iBAAiB,MAAM;AAC3B,UAAI,iBAAiB,OAAO;AAC1B,yBAAiB,MAAM,SAAS;AAAA,UAC9B,KAAK,iBAAiB,MAAM;AAAA,UAC5B,UAAU;AAAA,QACZ,CAAC;AAAA,MACH,OAAO;AACL,eAAO,SAAS;AAAA,UACd,KAAK,SAAS,KAAK;AAAA,UACnB,UAAU;AAAA,QACZ,CAAC;AAAA,MACH;AAAA,IACF;AAEA,IAAAG,WAAU,MAAM;AACd,qBAAe,eAAe;AAC9B,qBAAe,4BAA4B,YAAY,kBAAkB,CAAC;AAG1E,YAAM,mBAAmB,MAAM,eAAe,SAAY,MAAM,aAAa,MAAM;AAEnF,UAAI,kBAAkB;AACpB,uBAAe;AAAA,MACjB;AAEA,UAAI,SAAS,OAAO;AAClB,uBAAe,eAAe;AAAA,MAChC;AAAA,IACF,CAAC;AAED,gBAAY,mBAAmB;AAE/B,IAAAE;AAAA,MACE,MAAM,CAAC,SAAS,OAAO,MAAM,UAAU,MAAM,YAAY;AAAA,MACzD,CAAC,CAAC,OAAO,MAAM;AACb,kBAAU,eAAe,eAAe,IAAI,eAAe,gBAAgB;AAAA,MAC7E;AAAA,IACF;AAEA,WAA0B;AAAA,MACxB,WAAW,YAAY;AAAA,MACvB,eAAe,YAAY;AAAA,MAC3B,aAAa,YAAY;AAAA,MACzB,SAAS,YAAY;AAAA,IACvB,CAAC;AAED,WAAO,MAAM;AACX,YAAM,iBAAiB,CAAC;AAExB,YAAM,gBAGF;AAAA,QACF,iBAAiB,gBAAgB;AAAA,QACjC,aAAa,YAAY;AAAA,QACzB,aAAa,YAAY,YAAY;AAAA,QACrC,SAAS,YAAY,QAAQ;AAAA,MAC/B;AAGA,UAAI,CAAC,MAAM,cAAc;AACvB,cAAM,iBAAiB,SAAS,SAAS,CAAC,MAAM;AAChD,cAAM,kBAAiD;AAAA,UACrD,SAAS,gBAAgB;AAAA,UACzB,OAAO,YAAY;AAAA,UACnB,UAAU;AAAA,UACV,YAAY,CAAC;AAAA,UACb,SAAS,YAAY,YAAY;AAAA,UACjC,GAAG;AAAA,QACL;AAEA,uBAAe;AAAA,UACbH;AAAA,YACE;AAAA,YACA,EAAE,KAAK,gBAAgB;AAAA,YACvB,MAAM,WACF,MAAM,SAAS,eAAe,IAC9B,gBAAgB,QACd,MAAM,UAAU,eAAe,IAC/B;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAEA,qBAAe;AAAA,QACbA;AAAA,UACE,MAAM;AAAA,UACN,EAAE,GAAG,OAAO,KAAK,gBAAgB;AAAA,UACjC,MAAM,UAAU;AAAA,YACd,SAAS,gBAAgB,SAAS,YAAY;AAAA,YAC9C,iBAAiB,gBAAgB;AAAA,YACjC,aAAa,YAAY;AAAA,UAC3B,CAAC;AAAA,QACH;AAAA,MACF;AAGA,UAAI,CAAC,MAAM,YAAY;AACrB,cAAM,iBAAiB,SAAS,SAAS,CAAC,MAAM;AAChD,cAAM,cAA6C;AAAA,UACjD,SAAS,YAAY;AAAA,UACrB,OAAO,YAAY;AAAA,UACnB,UAAU;AAAA,UACV,YAAY,CAAC;AAAA,UACb,SAAS,YAAY,QAAQ;AAAA,UAC7B,GAAG;AAAA,QACL;AAEA,uBAAe;AAAA,UACbA;AAAA,YACE;AAAA,YACA,EAAE,KAAK,cAAc;AAAA,YACrB,MAAM,OAAO,MAAM,KAAK,WAAW,IAAI,YAAY,QAAQ,MAAM,UAAU,WAAW,IAAI;AAAA,UAC5F;AAAA,QACF;AAAA,MACF;AAEA,aAAOA,GAAE,UAAU,CAAC,GAAG,MAAM,UAAU,CAAC,GAAG,cAAc,EAAE,QAAQ,IAAI,cAAc;AAAA,IACvF;AAAA,EACF;AACF,CAAC;AAED,IAAO,yBAAQ;;;AClRf;AAAA,EAKE,mBAAAI;AAAA,EAGA,4BAAAC;AAAA,EAGA,UAAAC;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAoB,YAAAC,WAAU,mBAAAC,kBAAkC,KAAAC,IAAG,aAAAC,YAAW,eAAAC,cAAuB,OAAAC,YAAW;AAEhH,IAAMC,QAAO,MAAM;AAAC;AASpB,IAAM,OAAoBL,iBAAgB;AAAA,EACxC,MAAM;AAAA,EACN,OAAO;AAAA,IACL,IAAI;AAAA,MACF,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,SAAS;AAAA,IACX;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS,OAAO,CAAC;AAAA,IACnB;AAAA,IACA,MAAM;AAAA,MACJ,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,SAAS;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS,MAAM,CAAC;AAAA,IAClB;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS,MAAM,CAAC;AAAA,IAClB;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS,OAAO,CAAC;AAAA,IACnB;AAAA,IACA,wBAAwB;AAAA,MACtB,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,MAAM,CAAC,SAAS,QAAQ,KAAK;AAAA,MAC7B,SAAS;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,MAAM,CAAC,QAAQ,QAAQ,KAAK;AAAA,MAC5B,SAAS;AAAA,IACX;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAASK;AAAA,IACX;AAAA,IACA,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAASA;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAASA;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAASA;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAASA;AAAA,IACX;AAAA,IACA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAASA;AAAA,IACX;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAASA;AAAA,IACX;AAAA,IACA,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAASA;AAAA,IACX;AAAA,IACA,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAASA;AAAA,IACX;AAAA,IACA,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAASA;AAAA,IACX;AAAA,IACA,WAAW;AAAA,MACT,MAAM,CAAC,QAAQ,KAAK;AAAA,MACpB,SAAS,MAAM,CAAC;AAAA,IAClB;AAAA,EACF;AAAA,EACA,MAAM,OAAO,EAAE,OAAO,MAAM,GAAG;AAC7B,UAAM,gBAAgBD,KAAI,CAAC;AAC3B,UAAM,eAAeA,KAAmC;AAExD,UAAM,gBAAgBL,UAA+B,MAAM;AACzD,UAAI,MAAM,aAAa,MAAM;AAC3B,eAAO,CAAC,OAAO;AAAA,MACjB;AAEA,UAAI,MAAM,aAAa,OAAO;AAC5B,eAAO,CAAC;AAAA,MACV;AAEA,UAAI,MAAM,QAAQ,MAAM,QAAQ,GAAG;AACjC,eAAO,MAAM;AAAA,MACf;AAEA,aAAO,CAAC,MAAM,QAAQ;AAAA,IACxB,CAAC;AAED,UAAM,gBAAgBA,UAAS,MAAM;AACnC,UAAI,MAAM,aAAa,GAAG;AAExB,eAAO,MAAM;AAAA,MACf;AAEA,UAAI,cAAc,MAAM,WAAW,KAAK,cAAc,MAAM,CAAC,MAAM,SAAS;AAG1E,eAAO;AAAA,MACT;AAGA,aAAO;AAAA,IACT,CAAC;AAED,IAAAG,WAAU,MAAM;AACd,UAAI,cAAc,MAAM,SAAS,OAAO,GAAG;AACzC,iBAAS;AAAA,MACX;AAAA,IACF,CAAC;AAED,IAAAC,aAAY,MAAM;AAChB,mBAAa,aAAa,KAAK;AAAA,IACjC,CAAC;AAED,UAAM,SAASJ;AAAA,MAAS,MACtBH,iBAAgB,MAAM,IAAI,IAAI,MAAM,KAAK,UAAW,MAAM,UAAU,OAAO,YAAY;AAAA,IACzF;AACA,UAAM,KAAKG,UAAS,MAAM;AACxB,UAAI,OAAO,MAAM,OAAO,YAAY,MAAM,GAAG,YAAY,MAAM,KAAK;AAElE,eAAO,MAAM;AAAA,MACf;AAEA,aAAO,OAAO,UAAU,QAAQ,WAAW,MAAM,GAAG,YAAY;AAAA,IAClE,CAAC;AACD,UAAM,iBAAiBA;AAAA,MAAS,MAC9BF;AAAA,QACE,OAAO;AAAA,QACPD,iBAAgB,MAAM,IAAI,IAAI,MAAM,KAAK,MAAO,MAAM;AAAA,QACtD,MAAM,QAAQ,CAAC;AAAA,QACf,MAAM;AAAA,MACR;AAAA,IACF;AACA,UAAM,OAAOG,UAAS,MAAM,eAAe,MAAM,CAAC,CAAC;AACnD,UAAM,OAAOA,UAAS,MAAM,eAAe,MAAM,CAAC,CAAC;AAEnD,UAAM,UAAUA,UAAS,MAAM;AAC7B,UAAI,GAAG,UAAU,UAAU;AACzB,eAAO,EAAE,MAAM,SAAS;AAAA,MAC1B;AAEA,UAAI,GAAG,UAAU,OAAO,OAAO,GAAG,UAAU,UAAU;AACpD,eAAO,EAAE,MAAM,KAAK,MAAM;AAAA,MAC5B;AAEA,aAAO,CAAC;AAAA,IACV,CAAC;AAED,UAAM,aAAaA,UAAS,OAAO;AAAA,MACjC,MAAM,KAAK;AAAA,MACX,QAAQ,OAAO;AAAA,MACf,SAAS,MAAM;AAAA,MACf,gBAAgB,MAAM;AAAA,MACtB,eAAe,MAAM,iBAAiB,OAAO,UAAU;AAAA,MACvD,aAAa,MAAM;AAAA,MACnB,MAAM,MAAM;AAAA,MACZ,QAAQ,MAAM;AAAA,MACd,SAAS,MAAM;AAAA,MACf,OAAO,MAAM;AAAA,IACf,EAAE;AAEF,UAAM,cAAcA,UAAS,OAAO;AAAA,MAClC,GAAG,WAAW;AAAA,MACd,eAAe,MAAM;AAAA,MACrB,UAAU,MAAM;AAAA,MAChB,SAAS,CAAC,UAAwB;AAChC,sBAAc;AACd,cAAM,UAAU,KAAK;AAAA,MACvB;AAAA,MACA,YAAY,MAAM;AAAA,MAClB,UAAU,CAAC,UAAuB;AAChC,sBAAc;AACd,cAAM,WAAW,KAAK;AAAA,MACxB;AAAA,MACA,UAAU,MAAM;AAAA,MAChB,WAAW,MAAM;AAAA,MACjB,SAAS,MAAM;AAAA,IACjB,EAAE;AAEF,UAAM,WAAW,MAAM;AACrB,MAAAD,QAAO;AAAA,QACL,KAAK;AAAA,QACL;AAAA,UACE,GAAG,WAAW;AAAA,UACd,eAAe,MAAM;AAAA,UACrB,cAAc,MAAM;AAAA,QACtB;AAAA,QACA;AAAA,UACE,UAAU,cAAc;AAAA,UACxB,WAAW,MAAM;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAEA,UAAM,gBAAgB;AAAA,MACpB,SAAS,CAAC,UAAsB;AAC9B,YAAI,gBAAgB,KAAK,GAAG;AAC1B,gBAAM,eAAe;AACrB,UAAAA,QAAO,MAAM,KAAK,OAAO,YAAY,KAAK;AAAA,QAC5C;AAAA,MACF;AAAA,IACF;AAEA,UAAM,sBAAsB;AAAA,MAC1B,cAAc,MAAM;AAClB,qBAAa,QAAQ,WAAW,MAAM;AACpC,mBAAS;AAAA,QACX,GAAG,EAAE;AAAA,MACP;AAAA,MACA,cAAc,MAAM;AAClB,qBAAa,aAAa,KAAK;AAAA,MACjC;AAAA,MACA,SAAS,cAAc;AAAA,IACzB;AAEA,UAAM,sBAAsB;AAAA,MAC1B,aAAa,CAAC,UAAsB;AAClC,YAAI,gBAAgB,KAAK,GAAG;AAC1B,gBAAM,eAAe;AACrB,mBAAS;AAAA,QACX;AAAA,MACF;AAAA,MACA,WAAW,CAAC,UAAyB;AACnC,YAAI,eAAe,KAAK,GAAG;AACzB,gBAAM,eAAe;AACrB,mBAAS;AAAA,QACX;AAAA,MACF;AAAA,MACA,WAAW,CAAC,UAAsB;AAChC,cAAM,eAAe;AACrB,QAAAA,QAAO,MAAM,KAAK,OAAO,YAAY,KAAK;AAAA,MAC5C;AAAA,MACA,SAAS,CAAC,UAAyB;AACjC,YAAI,eAAe,KAAK,GAAG;AACzB,gBAAM,eAAe;AACrB,UAAAA,QAAO,MAAM,KAAK,OAAO,YAAY,KAAK;AAAA,QAC5C;AAAA,MACF;AAAA,MACA,SAAS,CAAC,UAAsB;AAC9B,YAAI,gBAAgB,KAAK,GAAG;AAE1B,gBAAM,eAAe;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAEA,WAAO,MAAM;AACX,aAAOG;AAAA,QACL,GAAG;AAAA,QACH;AAAA,UACE,GAAG;AAAA,UACH,GAAG,QAAQ;AAAA,UACX,gBAAgB,cAAc,QAAQ,IAAI,KAAK;AAAA,UAC/C,IAAI,MAAM;AACR,gBAAI,cAAc,MAAM,SAAS,OAAO,GAAG;AACzC,qBAAO;AAAA,YACT;AAEA,gBAAI,cAAc,MAAM,SAAS,OAAO,GAAG;AACzC,qBAAO;AAAA,YACT;AAEA,mBAAO;AAAA,UACT,GAAG;AAAA,QACL;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC;AAED,IAAO,eAAQ;;;ACjVf,SAAqC,UAAAK,eAAc;AACnD,SAAS,aAAAC,YAAW,eAAAC,oBAAmB;AAExB,SAAR,QACL,UACA,iBAAgC,CAAC,GACjC,UAAuB;AAAA,EACrB,WAAW;AAAA,EACX,WAAW;AACb,GAIA;AACA,QAAM,EAAE,MAAM,MAAM,IAAIF,QAAO,KAAK,UAAU,gBAAgB;AAAA,IAC5D,GAAG;AAAA,IACH,WAAW;AAAA,EACb,CAAC;AAED,EAAAC,WAAU,MAAM;AACd,QAAI,QAAQ,aAAa,MAAM;AAC7B,YAAM;AAAA,IACR;AAAA,EACF,CAAC;AAED,EAAAC,aAAY,MAAM;AAChB,SAAK;AAAA,EACP,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;;;ACjCA,SAAS,UAAAC,eAA4B;AACrC,SAAS,aAAAC,YAAW,eAAAC,cAAa,OAAAC,YAAgB;AAElC,SAAR,YAA6B,UAAwB,CAAC,GAK3D;AACA,QAAM,gBAAgBA,KAAI,KAAK;AAC/B,QAAM,gBAAgBA,KAAmB,IAAI;AAC7C,QAAM,eAAeA,KAAI,KAAK;AAE9B,QAAM,SAAS,OAAO,WAAW,cAAc,OAAOH,QAAO,UAAU,OAAO,SAAS,UAAU,OAAO;AACxG,QAAM,WAAW,OAAO,WAAW,cAAc,OAAOA,QAAO,eAAe,OAAO,SAAS,UAAU,OAAO;AAE/G,gBAAc,QAAQ,QAAQ,kBAAkB;AAEhD,gBAAc,QAAQ,aAAa;AACnC,eAAa,QAAQ,WAAW;AAEhC,MAAI;AACJ,MAAI;AAEJ,EAAAC,WAAU,MAAM;AACd,4BAAwBD,QAAO,GAAG,eAAe,CAAC,MAAM;AACtD,UAAI,EAAE,OAAO,MAAM,IAAI,aAAa,OAAO,SAAS,UAAU;AAC5D,sBAAc,QAAQ;AAAA,MACxB;AAAA,IACF,CAAC;AAED,2BAAuBA,QAAO,GAAG,cAAc,CAAC,MAAM;AACpD,UAAI,EAAE,OAAO,MAAM,IAAI,aAAa,OAAO,SAAS,UAAU;AAC5D,sBAAc,QAAQ;AACtB,qBAAa,QAAQ;AAAA,MACvB;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AAED,EAAAE,aAAY,MAAM;AAChB,yBAAqB;AACrB,0BAAsB;AAAA,EACxB,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,MAAMF,QAAO,MAAM,OAAO,SAAS,UAAU,OAAO;AAAA,EAC7D;AACF;;;AClDA,SAAS,UAAAI,eAAc;AACvB,SAAS,aAAAC,kBAAiB;AAC1B,SAAS,YAAY,YAAAC,WAAU,OAAAC,MAAU,SAAAC,cAAa;AAEvC,SAAR,YACL,MACAC,MACY;AACZ,MAAI,OAAO,SAAS,YAAY,SAAS,QAAQ,KAAK,mBAAmB,OAAO;AAC9E,WAAO;AAAA,EACT;AAEA,QAAM,WAAWL,QAAO,QAAQK,IAAG;AACnC,QAAM,OAAO,WAAW,IAAI,IAAIH,YAAWC;AAC3C,QAAM,eAAe,OAAO,KAAK,eAAe,cAAc,OAAO,KAAK,cAAc;AACxF,QAAM,aAAa,KAAK,aAAa,SAAY,OAAO,eAAe,KAAK,UAAW,QAAQ,IAAI,QAAQ;AAE3G,EAAAC;AAAA,IACE;AAAA,IACA,CAAC,aAAa;AACZ,MAAAJ,QAAO,SAASC,WAAU,eAAe,KAAK,WAAY,IAAI,QAAQ,GAAGI,IAAG;AAAA,IAC9E;AAAA,IACA,EAAE,WAAW,MAAM,MAAM,KAAK;AAAA,EAChC;AAEA,SAAO;AACT;;;AC1BA,SAAwB,UAAAC,eAAc;AACtC,SAAS,mBAAAC,kBAAiB,KAAAC,UAAmB;AAE7C,IAAO,sBAAQD,iBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM,CAAC,QAAQ,KAAa;AAAA,IAC9B;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,IACR;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,IAAI;AAAA,MACF,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,OAAO;AACL,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA,YAAY;AACV,SAAK,UAAU,WAAW;AAAA,EAC5B;AAAA,EACA,UAAU;AACR,SAAK,WAAW,IAAI;AAAA,MAClB,CAAC,YAAY;AACX,YAAI,CAAC,QAAQ,CAAC,EAAE,gBAAgB;AAC9B;AAAA,QACF;AAEA,YAAI,CAAC,KAAK,OAAO,QAAQ;AACvB,eAAK,UAAU,WAAW;AAAA,QAC5B;AAEA,YAAI,KAAK,UAAU;AACjB;AAAA,QACF;AAEA,aAAK,WAAW;AAEhB,cAAM,eAAe,KAAK,gBAAgB;AAE1C,QAAAD,QAAO,OAAO;AAAA,UACZ,GAAG;AAAA,UACH,SAAS,CAAC,MAAM;AACd,iBAAK,WAAW;AAChB,yBAAa,UAAU,CAAC;AAAA,UAC1B;AAAA,UACA,UAAU,CAAC,MAAM;AACf,iBAAK,SAAS;AACd,iBAAK,WAAW;AAChB,yBAAa,WAAW,CAAC;AAAA,UAC3B;AAAA,QACF,CAAC;AAAA,MACH;AAAA,MACA;AAAA,QACE,YAAY,GAAG,KAAK,OAAO,MAAM;AAAA,MACnC;AAAA,IACF;AAEA,SAAK,SAAS,QAAQ,KAAK,IAAI,WAAW;AAAA,EAC5C;AAAA,EACA,SAAS;AAAA,IACP,kBAA0C;AACxC,UAAI,KAAK,OAAO,MAAM;AACpB,eAAO;AAAA,UACL,MAAO,MAAM,QAAQ,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,OAAO,CAAC,KAAK,OAAO,IAAI;AAAA,QAC/E;AAAA,MACF;AAEA,UAAI,CAAC,KAAK,OAAO,QAAQ;AACvB,cAAM,IAAI,MAAM,oDAAoD;AAAA,MACtE;AAEA,aAAO,KAAK,OAAO;AAAA,IACrB;AAAA,EACF;AAAA,EACA,SAAS;AACP,UAAM,MAAM,CAAC;AAEb,QAAI,KAAK,OAAO,UAAU,CAAC,KAAK,QAAQ;AACtC,UAAI,KAAKE,GAAE,KAAK,OAAO,EAAE,CAAC;AAAA,IAC5B;AAEA,QAAI,CAAC,KAAK,QAAQ;AAChB,UAAI,KAAK,KAAK,OAAO,WAAW,KAAK,OAAO,SAAS,IAAI,IAAI;AAAA,IAC/D,WAAW,KAAK,OAAO,SAAS;AAC9B,UAAI,KAAK,KAAK,OAAO,QAAQ,CAAC;AAAA,IAChC;AAEA,WAAO;AAAA,EACT;AACF,CAAC;",
6
- "names": ["router", "router", "reactive", "key", "router", "cloneDeep", "data", "key", "page", "restored", "router", "child", "layout", "reactive", "router", "h", "progress", "page", "router", "h", "defineComponent", "key", "isEqual", "computed", "defineComponent", "h", "ref", "defineComponent", "ref", "computed", "isEqual", "h", "defineComponent", "computed", "defineComponent", "h", "onMounted", "ref", "watch", "isUrlMethodPair", "mergeDataIntoQueryString", "router", "computed", "defineComponent", "h", "onMounted", "onUnmounted", "ref", "noop", "router", "onMounted", "onUnmounted", "router", "onMounted", "onUnmounted", "ref", "router", "cloneDeep", "reactive", "ref", "watch", "key", "router", "defineComponent", "h"]
4
+ "sourcesContent": ["import { config as coreConfig } from '@inertiajs/core'\nimport { VueInertiaAppConfig } from './types'\n\nexport { progress, router } from '@inertiajs/core'\nexport { usePage } from './app'\nexport { default as createInertiaApp } from './createInertiaApp'\nexport { default as Deferred } from './deferred'\nexport { default as Form } from './form'\nexport { default as Head } from './head'\nexport { default as InfiniteScroll } from './infiniteScroll'\nexport { InertiaLinkProps, default as Link } from './link'\nexport * from './types'\nexport { InertiaForm, InertiaFormProps, default as useForm } from './useForm'\nexport { default as usePoll } from './usePoll'\nexport { default as usePrefetch } from './usePrefetch'\nexport { default as useRemember } from './useRemember'\nexport { default as WhenVisible } from './whenVisible'\n\nexport const config = coreConfig.extend<VueInertiaAppConfig>({})\n", "import {\n createHeadManager,\n HeadManager,\n HeadManagerOnUpdateCallback,\n HeadManagerTitleCallback,\n Page,\n PageProps,\n router,\n SharedPageProps,\n} from '@inertiajs/core'\nimport {\n computed,\n DefineComponent,\n defineComponent,\n h,\n markRaw,\n Plugin,\n PropType,\n reactive,\n ref,\n shallowRef,\n} from 'vue'\nimport remember from './remember'\nimport { VuePageHandlerArgs } from './types'\nimport useForm from './useForm'\n\nexport interface InertiaAppProps<SharedProps extends PageProps = PageProps> {\n initialPage: Page<SharedProps>\n initialComponent?: DefineComponent\n resolveComponent?: (name: string) => DefineComponent | Promise<DefineComponent>\n titleCallback?: HeadManagerTitleCallback\n onHeadUpdate?: HeadManagerOnUpdateCallback\n}\n\nexport type InertiaApp = DefineComponent<InertiaAppProps>\n\nconst component = ref<DefineComponent | undefined>(undefined)\nconst page = ref<Page>()\nconst layout = shallowRef(null)\nconst key = ref<number | undefined>(undefined)\nlet headManager: HeadManager\n\nconst App: InertiaApp = defineComponent({\n name: 'Inertia',\n props: {\n initialPage: {\n type: Object as PropType<Page>,\n required: true,\n },\n initialComponent: {\n type: Object as PropType<DefineComponent>,\n required: false,\n },\n resolveComponent: {\n type: Function as PropType<(name: string) => DefineComponent | Promise<DefineComponent>>,\n required: false,\n },\n titleCallback: {\n type: Function as PropType<HeadManagerTitleCallback>,\n required: false,\n default: (title: string) => title,\n },\n onHeadUpdate: {\n type: Function as PropType<HeadManagerOnUpdateCallback>,\n required: false,\n default: () => () => {},\n },\n },\n setup({ initialPage, initialComponent, resolveComponent, titleCallback, onHeadUpdate }: InertiaAppProps) {\n component.value = initialComponent ? markRaw(initialComponent) : undefined\n page.value = initialPage\n key.value = undefined\n\n const isServer = typeof window === 'undefined'\n headManager = createHeadManager(isServer, titleCallback || ((title: string) => title), onHeadUpdate || (() => {}))\n\n if (!isServer) {\n router.init<DefineComponent>({\n initialPage,\n resolveComponent: resolveComponent!,\n swapComponent: async (options: VuePageHandlerArgs) => {\n component.value = markRaw(options.component)\n page.value = options.page\n key.value = options.preserveState ? key.value : Date.now()\n },\n })\n\n router.on('navigate', () => headManager.forceUpdate())\n }\n\n return () => {\n if (component.value) {\n component.value.inheritAttrs = !!component.value.inheritAttrs\n\n const child = h(component.value, {\n ...page.value!.props,\n key: key.value,\n })\n\n if (layout.value) {\n component.value.layout = layout.value\n layout.value = null\n }\n\n if (component.value.layout) {\n if (typeof component.value.layout === 'function') {\n return component.value.layout(h, child)\n }\n\n return (Array.isArray(component.value.layout) ? component.value.layout : [component.value.layout])\n .concat(child)\n .reverse()\n .reduce((child, layout) => {\n layout.inheritAttrs = !!layout.inheritAttrs\n return h(layout, { ...page.value!.props }, () => child)\n })\n }\n\n return child\n }\n }\n },\n})\nexport default App\n\nexport const plugin: Plugin = {\n install(app) {\n router.form = useForm\n\n Object.defineProperty(app.config.globalProperties, '$inertia', { get: () => router })\n Object.defineProperty(app.config.globalProperties, '$page', { get: () => page.value })\n Object.defineProperty(app.config.globalProperties, '$headManager', { get: () => headManager })\n\n app.mixin(remember)\n },\n}\n\nexport function usePage<TPageProps extends PageProps = PageProps>(): Page<TPageProps & SharedPageProps> {\n return reactive({\n props: computed(() => page.value?.props),\n url: computed(() => page.value?.url),\n component: computed(() => page.value?.component),\n version: computed(() => page.value?.version),\n clearHistory: computed(() => page.value?.clearHistory),\n deferredProps: computed(() => page.value?.deferredProps),\n mergeProps: computed(() => page.value?.mergeProps),\n prependProps: computed(() => page.value?.prependProps),\n deepMergeProps: computed(() => page.value?.deepMergeProps),\n matchPropsOn: computed(() => page.value?.matchPropsOn),\n rememberedState: computed(() => page.value?.rememberedState),\n encryptHistory: computed(() => page.value?.encryptHistory),\n }) as Page<TPageProps>\n}\n", "import { router } from '@inertiajs/core'\nimport { cloneDeep } from 'lodash-es'\nimport { ComponentOptions } from 'vue'\n\nconst remember: ComponentOptions = {\n created() {\n if (!this.$options.remember) {\n return\n }\n\n if (Array.isArray(this.$options.remember)) {\n this.$options.remember = { data: this.$options.remember }\n }\n\n if (typeof this.$options.remember === 'string') {\n this.$options.remember = { data: [this.$options.remember] }\n }\n\n if (typeof this.$options.remember.data === 'string') {\n this.$options.remember = { data: [this.$options.remember.data] }\n }\n\n const rememberKey =\n this.$options.remember.key instanceof Function\n ? this.$options.remember.key.call(this)\n : this.$options.remember.key\n\n const restored = router.restore(rememberKey) as Record<string, unknown> | undefined\n\n const rememberable = this.$options.remember.data.filter((key: string) => {\n return !(this[key] !== null && typeof this[key] === 'object' && this[key].__rememberable === false)\n }) as string[]\n\n const hasCallbacks = (key: string) => {\n return (\n this[key] !== null &&\n typeof this[key] === 'object' &&\n typeof this[key].__remember === 'function' &&\n typeof this[key].__restore === 'function'\n )\n }\n\n rememberable.forEach((key: string) => {\n if (this[key] !== undefined && restored !== undefined && restored[key] !== undefined) {\n hasCallbacks(key) ? this[key].__restore(restored[key]) : (this[key] = restored[key])\n }\n\n this.$watch(\n key,\n () => {\n router.remember(\n rememberable.reduce(\n (data, key) => ({\n ...data,\n [key]: cloneDeep(hasCallbacks(key) ? this[key].__remember() : this[key]),\n }),\n {},\n ),\n rememberKey,\n )\n },\n { immediate: true, deep: true },\n )\n })\n },\n}\n\nexport default remember\n", "import {\n CancelToken,\n ErrorValue,\n FormDataErrors,\n FormDataKeys,\n FormDataType,\n FormDataValues,\n Method,\n Progress,\n RequestPayload,\n router,\n UrlMethodPair,\n VisitOptions,\n} from '@inertiajs/core'\nimport { cloneDeep, get, has, isEqual, set } from 'lodash-es'\nimport { reactive, watch } from 'vue'\nimport { config } from '.'\n\ntype FormOptions = Omit<VisitOptions, 'data'>\ntype SubmitArgs = [Method, string, FormOptions?] | [UrlMethodPair, FormOptions?]\ntype TransformCallback<TForm> = (data: TForm) => object\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: TransformCallback<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: SubmitArgs) => void\n get(url: string, options?: FormOptions): void\n post(url: string, options?: FormOptions): void\n put(url: string, options?: FormOptions): void\n patch(url: string, options?: FormOptions): void\n delete(url: string, options?: FormOptions): void\n cancel(): void\n}\n\nexport type InertiaForm<TForm extends object> = TForm & InertiaFormProps<TForm>\n\nexport default function useForm<TForm extends FormDataType<TForm>>(data: TForm | (() => TForm)): InertiaForm<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>>(\n rememberKeyOrData: string | TForm | (() => TForm),\n maybeData?: TForm | (() => TForm),\n): InertiaForm<TForm> {\n const rememberKey = typeof rememberKeyOrData === 'string' ? rememberKeyOrData : null\n const data = (typeof rememberKeyOrData === 'string' ? maybeData : rememberKeyOrData) ?? {}\n const restored = rememberKey\n ? (router.restore(rememberKey) as { data: TForm; errors: Record<FormDataKeys<TForm>, string> })\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: TransformCallback<TForm> = (data) => data\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({\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,\n wasSuccessful: false,\n recentlySuccessful: false,\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: TransformCallback<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 return this\n },\n reset(...fields: string[]) {\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 return this\n },\n setError(fieldOrFields: FormDataKeys<TForm> | FormDataErrors<TForm>, maybeValue?: ErrorValue) {\n Object.assign(this.errors, typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : fieldOrFields)\n\n this.hasErrors = Object.keys(this.errors).length > 0\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[field] } : {}),\n }),\n {},\n )\n\n this.hasErrors = Object.keys(this.errors).length > 0\n\n return this\n },\n resetAndClearErrors(...fields: string[]) {\n this.reset(...fields)\n this.clearErrors(...fields)\n return this\n },\n submit(...args: SubmitArgs) {\n const objectPassed = args[0] !== null && typeof args[0] === 'object'\n\n const method = objectPassed ? args[0].method : (args[0] as Method)\n const url = objectPassed ? args[0].url : (args[1] as string)\n const options = (objectPassed ? args[1] : args[2]) ?? {}\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\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)\n\n if (options.onError) {\n return options.onError(errors)\n }\n },\n onCancel: () => {\n this.processing = false\n this.progress = null\n\n if (options.onCancel) {\n return options.onCancel()\n }\n },\n onFinish: (visit) => {\n this.processing = false\n this.progress = null\n cancelToken = null\n\n if (options.onFinish) {\n return options.onFinish(visit)\n }\n },\n }\n\n const transformedData = transform(this.data()) as RequestPayload\n\n if (method === 'delete') {\n router.delete(url, { ..._options, data: transformedData })\n } else {\n router[method](url, transformedData, _options)\n }\n },\n get(url: string, options: VisitOptions) {\n this.submit('get', url, options)\n },\n post(url: string, options: VisitOptions) {\n this.submit('post', url, options)\n },\n put(url: string, options: VisitOptions) {\n this.submit('put', url, options)\n },\n patch(url: string, options: VisitOptions) {\n this.submit('patch', url, options)\n },\n delete(url: string, options: VisitOptions) {\n this.submit('delete', url, options)\n },\n cancel() {\n if (cancelToken) {\n cancelToken.cancel()\n }\n },\n __rememberable: rememberKey === null,\n __remember() {\n return { data: this.data(), errors: this.errors }\n },\n __restore(restored: { data: TForm; errors: FormDataErrors<TForm> }) {\n Object.assign(this, restored.data)\n this.setError(restored.errors)\n },\n })\n\n watch(\n form,\n (newValue) => {\n form.isDirty = !isEqual(form.data(), defaults)\n if (rememberKey) {\n router.remember(cloneDeep(newValue.__remember()), rememberKey)\n }\n },\n { immediate: true, deep: true },\n )\n\n return form\n}\n", "import {\n CreateInertiaAppOptionsForCSR,\n CreateInertiaAppOptionsForSSR,\n InertiaAppResponse,\n InertiaAppSSRResponse,\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 el = isServer ? null : document.getElementById(id)\n const initialPage = page || JSON.parse(el?.dataset.page || '{}')\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: el as HTMLElement,\n App,\n props,\n plugin,\n })\n })\n\n if (!isServer && progress) {\n setupProgress(progress)\n }\n\n if (isServer && render) {\n const body = await render(\n createSSRApp({\n render: () =>\n h('div', {\n id,\n 'data-page': JSON.stringify(initialPage),\n innerHTML: vueApp ? render(vueApp) : '',\n }),\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 VisitOptions,\n} from '@inertiajs/core'\nimport { isEqual } from 'lodash-es'\nimport { computed, defineComponent, h, onBeforeUnmount, onMounted, PropType, ref, SlotsType } from 'vue'\nimport useForm from './useForm'\n\ntype FormSubmitOptions = Omit<VisitOptions, 'data' | 'onPrefetched' | 'onPrefetching'>\n\nconst noop = () => undefined\n\nconst Form = defineComponent({\n name: 'Form',\n slots: Object as SlotsType<{\n default: FormComponentSlotProps\n }>,\n props: {\n action: {\n type: [String, Object] as PropType<FormComponentProps['action']>,\n default: '',\n },\n method: {\n type: String as PropType<FormComponentProps['method']>,\n default: 'get',\n },\n headers: {\n type: Object as PropType<FormComponentProps['headers']>,\n default: () => ({}),\n },\n queryStringArrayFormat: {\n type: String as PropType<FormComponentProps['queryStringArrayFormat']>,\n default: 'brackets',\n },\n errorBag: {\n type: [String, null] as PropType<FormComponentProps['errorBag']>,\n default: null,\n },\n showProgress: {\n type: Boolean,\n default: true,\n },\n transform: {\n type: Function as PropType<FormComponentProps['transform']>,\n default: (data: Record<string, FormDataConvertible>) => data,\n },\n options: {\n type: Object as PropType<FormComponentProps['options']>,\n default: () => ({}),\n },\n resetOnError: {\n type: [Boolean, Array] as PropType<FormComponentProps['resetOnError']>,\n default: false,\n },\n resetOnSuccess: {\n type: [Boolean, Array] as PropType<FormComponentProps['resetOnSuccess']>,\n default: false,\n },\n setDefaultsOnSuccess: {\n type: Boolean as PropType<FormComponentProps['setDefaultsOnSuccess']>,\n default: false,\n },\n onCancelToken: {\n type: Function as PropType<FormComponentProps['onCancelToken']>,\n default: noop,\n },\n onBefore: {\n type: Function as PropType<FormComponentProps['onBefore']>,\n default: noop,\n },\n onStart: {\n type: Function as PropType<FormComponentProps['onStart']>,\n default: noop,\n },\n onProgress: {\n type: Function as PropType<FormComponentProps['onProgress']>,\n default: noop,\n },\n onFinish: {\n type: Function as PropType<FormComponentProps['onFinish']>,\n default: noop,\n },\n onCancel: {\n type: Function as PropType<FormComponentProps['onCancel']>,\n default: noop,\n },\n onSuccess: {\n type: Function as PropType<FormComponentProps['onSuccess']>,\n default: noop,\n },\n onError: {\n type: Function as PropType<FormComponentProps['onError']>,\n default: noop,\n },\n onSubmitComplete: {\n type: Function as PropType<FormComponentProps['onSubmitComplete']>,\n default: noop,\n },\n disableWhileProcessing: {\n type: Boolean,\n default: false,\n },\n invalidateCacheTags: {\n type: [String, Array] as PropType<FormComponentProps['invalidateCacheTags']>,\n default: () => [],\n },\n },\n setup(props, { slots, attrs, expose }) {\n const form = useForm<Record<string, any>>({})\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 formEvents.forEach((e) => formElement.value.addEventListener(e, onFormUpdate))\n })\n\n onBeforeUnmount(() => formEvents.forEach((e) => formElement.value?.removeEventListener(e, onFormUpdate)))\n\n const getFormData = (): FormData => new FormData(formElement.value)\n\n // Convert the FormData to an object because we can't compare two FormData\n // instances directly (which is needed for isDirty), mergeDataIntoQueryString()\n // expects an object, and submitting a FormData instance directly causes problems with nested objects.\n const getData = (): Record<string, FormDataConvertible> => formDataToObject(getFormData())\n\n const submit = () => {\n const [action, data] = mergeDataIntoQueryString(\n method.value,\n isUrlMethodPair(props.action) ? props.action.url : props.action,\n getData(),\n props.queryStringArrayFormat,\n )\n\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 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 // 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, action, submitOptions)\n }\n\n const reset = (...fields: string[]) => {\n resetFormFields(formElement.value, defaultData.value, fields)\n }\n\n const resetAndClearErrors = (...fields: string[]) => {\n form.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 clearErrors: (...fields: string[]) => form.clearErrors(...fields),\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 }\n\n expose<FormComponentRef>(exposed)\n\n return () => {\n return h(\n 'form',\n {\n ...attrs,\n ref: formElement,\n action: isUrlMethodPair(props.action) ? props.action.url : props.action,\n method: method.value,\n onSubmit: (event) => {\n event.preventDefault()\n submit()\n },\n inert: props.disableWhileProcessing && form.processing,\n },\n slots.default ? slots.default(exposed) : [],\n )\n }\n },\n})\n\nexport default Form\n", "import { escape } from 'lodash-es'\nimport { defineComponent, DefineComponent, VNode } from 'vue'\n\nexport type InertiaHead = DefineComponent<{\n title?: string\n}>\n\nconst Head: InertiaHead = defineComponent({\n props: {\n title: {\n type: String,\n required: false,\n },\n },\n data() {\n return {\n provider: this.$headManager.createProvider(),\n }\n },\n beforeUnmount() {\n this.provider.disconnect()\n },\n methods: {\n isUnaryTag(node: VNode) {\n return (\n typeof node.type === 'string' &&\n [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ].indexOf(node.type) > -1\n )\n },\n renderTagStart(node: VNode) {\n node.props = node.props || {}\n node.props.inertia = 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 inertia>${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 CacheForOption,\n CancelTokenCallback,\n GlobalEventCallback,\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<string | Component>,\n default: 'a',\n },\n data: {\n type: Object,\n default: () => ({}),\n },\n href: {\n type: [String, Object] as PropType<InertiaLinkProps['href']>,\n default: '',\n },\n method: {\n type: String as PropType<Method>,\n default: 'get',\n },\n replace: {\n type: Boolean,\n default: false,\n },\n preserveScroll: {\n type: Boolean,\n default: false,\n },\n preserveState: {\n type: Boolean,\n default: null,\n },\n preserveUrl: {\n type: Boolean,\n default: false,\n },\n only: {\n type: Array<string>,\n default: () => [],\n },\n except: {\n type: Array<string>,\n default: () => [],\n },\n headers: {\n type: Object,\n default: () => ({}),\n },\n queryStringArrayFormat: {\n type: String as PropType<'brackets' | 'indices'>,\n default: 'brackets',\n },\n async: {\n type: Boolean,\n default: false,\n },\n prefetch: {\n type: [Boolean, String, Array] as PropType<boolean | LinkPrefetchOption | LinkPrefetchOption[]>,\n default: false,\n },\n cacheFor: {\n type: [Number, String, Array] as PropType<CacheForOption | CacheForOption[]>,\n default: 0,\n },\n onStart: {\n type: Function as PropType<GlobalEventCallback<'start'>>,\n default: noop,\n },\n onProgress: {\n type: Function as PropType<GlobalEventCallback<'progress'>>,\n default: noop,\n },\n onFinish: {\n type: Function as PropType<GlobalEventCallback<'finish'>>,\n default: noop,\n },\n onBefore: {\n type: Function as PropType<GlobalEventCallback<'before'>>,\n default: noop,\n },\n onCancel: {\n type: Function as PropType<GlobalEventCallback<'cancel'>>,\n default: noop,\n },\n onSuccess: {\n type: Function as PropType<GlobalEventCallback<'success'>>,\n default: noop,\n },\n onError: {\n type: Function as PropType<GlobalEventCallback<'error'>>,\n default: noop,\n },\n onCancelToken: {\n type: Function as PropType<CancelTokenCallback>,\n default: noop,\n },\n onPrefetching: {\n type: Function as PropType<GlobalEventCallback<'prefetching'>>,\n default: noop,\n },\n onPrefetched: {\n type: Function as PropType<GlobalEventCallback<'prefetched'>>,\n default: noop,\n },\n cacheTags: {\n type: [String, Array] as PropType<string | string[]>,\n default: () => [],\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 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 }, 75)\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 event.preventDefault()\n router.visit(href.value, visitParams.value)\n },\n onKeyup: (event: KeyboardEvent) => {\n if (shouldNavigate(event)) {\n event.preventDefault()\n router.visit(href.value, visitParams.value)\n }\n },\n onClick: (event: MouseEvent) => {\n if (shouldIntercept(event)) {\n // Let the mouseup/keyup event handle the visit\n event.preventDefault()\n }\n },\n }\n\n return () => {\n return h(\n as.value as string | Component,\n {\n ...attrs,\n ...elProps.value,\n 'data-loading': inFlightCount.value > 0 ? '' : undefined,\n ...(() => {\n if (prefetchModes.value.includes('hover')) {\n return prefetchHoverEvents\n }\n\n if (prefetchModes.value.includes('click')) {\n return prefetchClickEvents\n }\n\n return regularEvents\n })(),\n },\n slots,\n )\n }\n },\n})\n\nexport default Link\n", "import { PollOptions, ReloadOptions, router } from '@inertiajs/core'\nimport { onMounted, onUnmounted } from 'vue'\n\nexport default function usePoll(\n interval: number,\n requestOptions: ReloadOptions = {},\n options: PollOptions = {\n keepAlive: false,\n autoStart: true,\n },\n): {\n stop: VoidFunction\n start: VoidFunction\n} {\n const { stop, start } = router.poll(interval, requestOptions, {\n ...options,\n autoStart: false,\n })\n\n onMounted(() => {\n if (options.autoStart ?? true) {\n start()\n }\n })\n\n onUnmounted(() => {\n stop()\n })\n\n return {\n stop,\n start,\n }\n}\n", "import { router, VisitOptions } from '@inertiajs/core'\nimport { onMounted, onUnmounted, ref, Ref } from 'vue'\n\nexport default function usePrefetch(options: VisitOptions = {}): {\n lastUpdatedAt: Ref<number | null>\n isPrefetching: Ref<boolean>\n isPrefetched: Ref<boolean>\n flush: () => void\n} {\n const isPrefetching = ref(false)\n const lastUpdatedAt = ref<number | null>(null)\n const isPrefetched = ref(false)\n\n const cached = typeof window === 'undefined' ? null : router.getCached(window.location.pathname, options)\n const inFlight = typeof window === 'undefined' ? null : router.getPrefetching(window.location.pathname, options)\n\n lastUpdatedAt.value = cached?.staleTimestamp || null\n\n isPrefetching.value = inFlight !== null\n isPrefetched.value = cached !== null\n\n let onPrefetchedListener: () => void\n let onPrefetchingListener: () => void\n\n onMounted(() => {\n onPrefetchingListener = router.on('prefetching', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n isPrefetching.value = true\n }\n })\n\n onPrefetchedListener = router.on('prefetched', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n isPrefetching.value = false\n isPrefetched.value = true\n }\n })\n })\n\n onUnmounted(() => {\n onPrefetchedListener()\n onPrefetchingListener()\n })\n\n return {\n lastUpdatedAt,\n isPrefetching,\n isPrefetched,\n flush: () => router.flush(window.location.pathname, options),\n }\n}\n", "import { router } from '@inertiajs/core'\nimport { cloneDeep } from 'lodash-es'\nimport { isReactive, reactive, ref, Ref, watch } from 'vue'\n\nexport default function useRemember<T extends object>(\n data: T & { __rememberable?: boolean; __remember?: Function; __restore?: Function },\n key?: string,\n): Ref<T> | T {\n if (typeof data === 'object' && data !== null && data.__rememberable === false) {\n return data\n }\n\n const restored = router.restore(key)\n const type = isReactive(data) ? reactive : ref\n const hasCallbacks = typeof data.__remember === 'function' && typeof data.__restore === 'function'\n const remembered = type(restored === undefined ? data : hasCallbacks ? data.__restore!(restored) : restored)\n\n watch(\n remembered,\n (newValue) => {\n router.remember(cloneDeep(hasCallbacks ? data.__remember!() : newValue), key)\n },\n { immediate: true, deep: true },\n )\n\n return remembered\n}\n", "import { ReloadOptions, router } from '@inertiajs/core'\nimport { defineComponent, h, PropType } from 'vue'\n\nexport default defineComponent({\n name: 'WhenVisible',\n props: {\n data: {\n type: [String, Array<String>],\n },\n params: {\n type: Object as PropType<ReloadOptions>,\n },\n buffer: {\n type: Number,\n default: 0,\n },\n as: {\n type: String,\n default: 'div',\n },\n always: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n loaded: false,\n fetching: false,\n observer: null as IntersectionObserver | null,\n }\n },\n unmounted() {\n this.observer?.disconnect()\n },\n mounted() {\n this.observer = new IntersectionObserver(\n (entries) => {\n if (!entries[0].isIntersecting) {\n return\n }\n\n if (!this.$props.always) {\n this.observer?.disconnect()\n }\n\n if (this.fetching) {\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 })\n },\n {\n rootMargin: `${this.$props.buffer}px`,\n },\n )\n\n this.observer.observe(this.$el.nextSibling)\n },\n methods: {\n getReloadParams(): Partial<ReloadOptions> {\n if (this.$props.data) {\n return {\n only: (Array.isArray(this.$props.data) ? this.$props.data : [this.$props.data]) as string[],\n }\n }\n\n if (!this.$props.params) {\n throw new Error('You must provide either a `data` or `params` prop.')\n }\n\n return this.$props.params\n },\n },\n render() {\n const els = []\n\n if (this.$props.always || !this.loaded) {\n els.push(h(this.$props.as))\n }\n\n if (!this.loaded) {\n els.push(this.$slots.fallback ? this.$slots.fallback() : null)\n } else if (this.$slots.default) {\n els.push(this.$slots.default())\n }\n\n return els\n },\n})\n"],
5
+ "mappings": "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",
6
+ "names": ["router", "router", "reactive", "key", "router", "cloneDeep", "router", "cloneDeep", "data", "key", "page", "restored", "router", "child", "layout", "reactive", "router", "h", "progress", "page", "router", "h", "defineComponent", "key", "isEqual", "computed", "defineComponent", "h", "ref", "defineComponent", "ref", "computed", "isEqual", "h", "defineComponent", "computed", "defineComponent", "h", "onMounted", "ref", "watch", "isUrlMethodPair", "mergeDataIntoQueryString", "router", "computed", "defineComponent", "h", "onMounted", "onUnmounted", "ref", "noop", "defineComponent", "ref", "computed", "onMounted", "onUnmounted", "isUrlMethodPair", "mergeDataIntoQueryString", "router", "h", "router", "onMounted", "onUnmounted", "router", "onMounted", "onUnmounted", "ref", "router", "cloneDeep", "reactive", "ref", "watch", "key", "router", "defineComponent", "h"]
7
7
  }
package/dist/index.js CHANGED
@@ -26,9 +26,10 @@ __export(index_exports, {
26
26
  InfiniteScroll: () => infiniteScroll_default,
27
27
  Link: () => link_default,
28
28
  WhenVisible: () => whenVisible_default,
29
+ config: () => config,
29
30
  createInertiaApp: () => createInertiaApp,
30
- progress: () => import_core12.progress,
31
- router: () => import_core12.router,
31
+ progress: () => import_core13.progress,
32
+ router: () => import_core13.router,
32
33
  useForm: () => useForm,
33
34
  usePage: () => usePage,
34
35
  usePoll: () => usePoll,
@@ -37,6 +38,7 @@ __export(index_exports, {
37
38
  });
38
39
  module.exports = __toCommonJS(index_exports);
39
40
  var import_core12 = require("@inertiajs/core");
41
+ var import_core13 = require("@inertiajs/core");
40
42
 
41
43
  // src/app.ts
42
44
  var import_core3 = require("@inertiajs/core");
@@ -212,7 +214,10 @@ function useForm(rememberKeyOrData, maybeData) {
212
214
  this.clearErrors();
213
215
  this.wasSuccessful = true;
214
216
  this.recentlySuccessful = true;
215
- recentlySuccessfulTimeoutId = setTimeout(() => this.recentlySuccessful = false, 2e3);
217
+ recentlySuccessfulTimeoutId = setTimeout(
218
+ () => this.recentlySuccessful = false,
219
+ config.get("form.recentlySuccessfulDuration")
220
+ );
216
221
  const onSuccess = options.onSuccess ? await options.onSuccess(page2) : null;
217
222
  if (!defaultsCalledInOnSuccess) {
218
223
  defaults = (0, import_lodash_es2.cloneDeep)(this.data());
@@ -407,8 +412,10 @@ async function createInertiaApp({
407
412
  title,
408
413
  progress: progress2 = {},
409
414
  page: page2,
410
- render
415
+ render,
416
+ defaults = {}
411
417
  }) {
418
+ config.replace(defaults);
412
419
  const isServer = typeof window === "undefined";
413
420
  const el = isServer ? null : document.getElementById(id);
414
421
  const initialPage = page2 || JSON.parse(el?.dataset.page || "{}");
@@ -1186,7 +1193,7 @@ var Link = (0, import_vue8.defineComponent)({
1186
1193
  if (prefetchModes.value.length === 1 && prefetchModes.value[0] === "click") {
1187
1194
  return 0;
1188
1195
  }
1189
- return 3e4;
1196
+ return config.get("prefetch.cacheFor");
1190
1197
  });
1191
1198
  (0, import_vue8.onMounted)(() => {
1192
1199
  if (prefetchModes.value.includes("mount")) {
@@ -1519,4 +1526,7 @@ var whenVisible_default = (0, import_vue12.defineComponent)({
1519
1526
  return els;
1520
1527
  }
1521
1528
  });
1529
+
1530
+ // src/index.ts
1531
+ var config = import_core12.config.extend({});
1522
1532
  //# sourceMappingURL=index.js.map
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": ["export { progress, router } from '@inertiajs/core'\nexport { usePage } from './app'\nexport { default as createInertiaApp } from './createInertiaApp'\nexport { default as Deferred } from './deferred'\nexport { default as Form } from './form'\nexport { default as Head } from './head'\nexport { default as InfiniteScroll } from './infiniteScroll'\nexport { InertiaLinkProps, default as Link } from './link'\nexport * from './types'\nexport { InertiaForm, InertiaFormProps, default as useForm } from './useForm'\nexport { default as usePoll } from './usePoll'\nexport { default as usePrefetch } from './usePrefetch'\nexport { default as useRemember } from './useRemember'\nexport { default as WhenVisible } from './whenVisible'\n", "import {\n createHeadManager,\n HeadManager,\n HeadManagerOnUpdateCallback,\n HeadManagerTitleCallback,\n Page,\n PageProps,\n router,\n SharedPageProps,\n} from '@inertiajs/core'\nimport {\n computed,\n DefineComponent,\n defineComponent,\n h,\n markRaw,\n Plugin,\n PropType,\n reactive,\n ref,\n shallowRef,\n} from 'vue'\nimport remember from './remember'\nimport { VuePageHandlerArgs } from './types'\nimport useForm from './useForm'\n\nexport interface InertiaAppProps<SharedProps extends PageProps = PageProps> {\n initialPage: Page<SharedProps>\n initialComponent?: DefineComponent\n resolveComponent?: (name: string) => DefineComponent | Promise<DefineComponent>\n titleCallback?: HeadManagerTitleCallback\n onHeadUpdate?: HeadManagerOnUpdateCallback\n}\n\nexport type InertiaApp = DefineComponent<InertiaAppProps>\n\nconst component = ref<DefineComponent | undefined>(undefined)\nconst page = ref<Page>()\nconst layout = shallowRef(null)\nconst key = ref<number | undefined>(undefined)\nlet headManager: HeadManager\n\nconst App: InertiaApp = defineComponent({\n name: 'Inertia',\n props: {\n initialPage: {\n type: Object as PropType<Page>,\n required: true,\n },\n initialComponent: {\n type: Object as PropType<DefineComponent>,\n required: false,\n },\n resolveComponent: {\n type: Function as PropType<(name: string) => DefineComponent | Promise<DefineComponent>>,\n required: false,\n },\n titleCallback: {\n type: Function as PropType<HeadManagerTitleCallback>,\n required: false,\n default: (title: string) => title,\n },\n onHeadUpdate: {\n type: Function as PropType<HeadManagerOnUpdateCallback>,\n required: false,\n default: () => () => {},\n },\n },\n setup({ initialPage, initialComponent, resolveComponent, titleCallback, onHeadUpdate }: InertiaAppProps) {\n component.value = initialComponent ? markRaw(initialComponent) : undefined\n page.value = initialPage\n key.value = undefined\n\n const isServer = typeof window === 'undefined'\n headManager = createHeadManager(isServer, titleCallback || ((title: string) => title), onHeadUpdate || (() => {}))\n\n if (!isServer) {\n router.init<DefineComponent>({\n initialPage,\n resolveComponent: resolveComponent!,\n swapComponent: async (options: VuePageHandlerArgs) => {\n component.value = markRaw(options.component)\n page.value = options.page\n key.value = options.preserveState ? key.value : Date.now()\n },\n })\n\n router.on('navigate', () => headManager.forceUpdate())\n }\n\n return () => {\n if (component.value) {\n component.value.inheritAttrs = !!component.value.inheritAttrs\n\n const child = h(component.value, {\n ...page.value!.props,\n key: key.value,\n })\n\n if (layout.value) {\n component.value.layout = layout.value\n layout.value = null\n }\n\n if (component.value.layout) {\n if (typeof component.value.layout === 'function') {\n return component.value.layout(h, child)\n }\n\n return (Array.isArray(component.value.layout) ? component.value.layout : [component.value.layout])\n .concat(child)\n .reverse()\n .reduce((child, layout) => {\n layout.inheritAttrs = !!layout.inheritAttrs\n return h(layout, { ...page.value!.props }, () => child)\n })\n }\n\n return child\n }\n }\n },\n})\nexport default App\n\nexport const plugin: Plugin = {\n install(app) {\n router.form = useForm\n\n Object.defineProperty(app.config.globalProperties, '$inertia', { get: () => router })\n Object.defineProperty(app.config.globalProperties, '$page', { get: () => page.value })\n Object.defineProperty(app.config.globalProperties, '$headManager', { get: () => headManager })\n\n app.mixin(remember)\n },\n}\n\nexport function usePage<TPageProps extends PageProps = PageProps>(): Page<TPageProps & SharedPageProps> {\n return reactive({\n props: computed(() => page.value?.props),\n url: computed(() => page.value?.url),\n component: computed(() => page.value?.component),\n version: computed(() => page.value?.version),\n clearHistory: computed(() => page.value?.clearHistory),\n deferredProps: computed(() => page.value?.deferredProps),\n mergeProps: computed(() => page.value?.mergeProps),\n prependProps: computed(() => page.value?.prependProps),\n deepMergeProps: computed(() => page.value?.deepMergeProps),\n matchPropsOn: computed(() => page.value?.matchPropsOn),\n rememberedState: computed(() => page.value?.rememberedState),\n encryptHistory: computed(() => page.value?.encryptHistory),\n }) as Page<TPageProps>\n}\n", "import { router } from '@inertiajs/core'\nimport { cloneDeep } from 'lodash-es'\nimport { ComponentOptions } from 'vue'\n\nconst remember: ComponentOptions = {\n created() {\n if (!this.$options.remember) {\n return\n }\n\n if (Array.isArray(this.$options.remember)) {\n this.$options.remember = { data: this.$options.remember }\n }\n\n if (typeof this.$options.remember === 'string') {\n this.$options.remember = { data: [this.$options.remember] }\n }\n\n if (typeof this.$options.remember.data === 'string') {\n this.$options.remember = { data: [this.$options.remember.data] }\n }\n\n const rememberKey =\n this.$options.remember.key instanceof Function\n ? this.$options.remember.key.call(this)\n : this.$options.remember.key\n\n const restored = router.restore(rememberKey) as Record<string, unknown> | undefined\n\n const rememberable = this.$options.remember.data.filter((key: string) => {\n return !(this[key] !== null && typeof this[key] === 'object' && this[key].__rememberable === false)\n }) as string[]\n\n const hasCallbacks = (key: string) => {\n return (\n this[key] !== null &&\n typeof this[key] === 'object' &&\n typeof this[key].__remember === 'function' &&\n typeof this[key].__restore === 'function'\n )\n }\n\n rememberable.forEach((key: string) => {\n if (this[key] !== undefined && restored !== undefined && restored[key] !== undefined) {\n hasCallbacks(key) ? this[key].__restore(restored[key]) : (this[key] = restored[key])\n }\n\n this.$watch(\n key,\n () => {\n router.remember(\n rememberable.reduce(\n (data, key) => ({\n ...data,\n [key]: cloneDeep(hasCallbacks(key) ? this[key].__remember() : this[key]),\n }),\n {},\n ),\n rememberKey,\n )\n },\n { immediate: true, deep: true },\n )\n })\n },\n}\n\nexport default remember\n", "import {\n CancelToken,\n ErrorValue,\n FormDataErrors,\n FormDataKeys,\n FormDataType,\n FormDataValues,\n Method,\n Progress,\n RequestPayload,\n router,\n UrlMethodPair,\n VisitOptions,\n} from '@inertiajs/core'\nimport { cloneDeep, get, has, isEqual, set } from 'lodash-es'\nimport { reactive, watch } from 'vue'\n\ntype FormOptions = Omit<VisitOptions, 'data'>\ntype SubmitArgs = [Method, string, FormOptions?] | [UrlMethodPair, FormOptions?]\ntype TransformCallback<TForm> = (data: TForm) => object\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: TransformCallback<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: SubmitArgs) => void\n get(url: string, options?: FormOptions): void\n post(url: string, options?: FormOptions): void\n put(url: string, options?: FormOptions): void\n patch(url: string, options?: FormOptions): void\n delete(url: string, options?: FormOptions): void\n cancel(): void\n}\n\nexport type InertiaForm<TForm extends object> = TForm & InertiaFormProps<TForm>\n\nexport default function useForm<TForm extends FormDataType<TForm>>(data: TForm | (() => TForm)): InertiaForm<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>>(\n rememberKeyOrData: string | TForm | (() => TForm),\n maybeData?: TForm | (() => TForm),\n): InertiaForm<TForm> {\n const rememberKey = typeof rememberKeyOrData === 'string' ? rememberKeyOrData : null\n const data = (typeof rememberKeyOrData === 'string' ? maybeData : rememberKeyOrData) ?? {}\n const restored = rememberKey\n ? (router.restore(rememberKey) as { data: TForm; errors: Record<FormDataKeys<TForm>, string> })\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: TransformCallback<TForm> = (data) => data\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({\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,\n wasSuccessful: false,\n recentlySuccessful: false,\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: TransformCallback<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 return this\n },\n reset(...fields: string[]) {\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 return this\n },\n setError(fieldOrFields: FormDataKeys<TForm> | FormDataErrors<TForm>, maybeValue?: ErrorValue) {\n Object.assign(this.errors, typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : fieldOrFields)\n\n this.hasErrors = Object.keys(this.errors).length > 0\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[field] } : {}),\n }),\n {},\n )\n\n this.hasErrors = Object.keys(this.errors).length > 0\n\n return this\n },\n resetAndClearErrors(...fields: string[]) {\n this.reset(...fields)\n this.clearErrors(...fields)\n return this\n },\n submit(...args: SubmitArgs) {\n const objectPassed = args[0] !== null && typeof args[0] === 'object'\n\n const method = objectPassed ? args[0].method : (args[0] as Method)\n const url = objectPassed ? args[0].url : (args[1] as string)\n const options = (objectPassed ? args[1] : args[2]) ?? {}\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\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(() => (this.recentlySuccessful = false), 2000)\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)\n\n if (options.onError) {\n return options.onError(errors)\n }\n },\n onCancel: () => {\n this.processing = false\n this.progress = null\n\n if (options.onCancel) {\n return options.onCancel()\n }\n },\n onFinish: (visit) => {\n this.processing = false\n this.progress = null\n cancelToken = null\n\n if (options.onFinish) {\n return options.onFinish(visit)\n }\n },\n }\n\n const transformedData = transform(this.data()) as RequestPayload\n\n if (method === 'delete') {\n router.delete(url, { ..._options, data: transformedData })\n } else {\n router[method](url, transformedData, _options)\n }\n },\n get(url: string, options: VisitOptions) {\n this.submit('get', url, options)\n },\n post(url: string, options: VisitOptions) {\n this.submit('post', url, options)\n },\n put(url: string, options: VisitOptions) {\n this.submit('put', url, options)\n },\n patch(url: string, options: VisitOptions) {\n this.submit('patch', url, options)\n },\n delete(url: string, options: VisitOptions) {\n this.submit('delete', url, options)\n },\n cancel() {\n if (cancelToken) {\n cancelToken.cancel()\n }\n },\n __rememberable: rememberKey === null,\n __remember() {\n return { data: this.data(), errors: this.errors }\n },\n __restore(restored: { data: TForm; errors: FormDataErrors<TForm> }) {\n Object.assign(this, restored.data)\n this.setError(restored.errors)\n },\n })\n\n watch(\n form,\n (newValue) => {\n form.isDirty = !isEqual(form.data(), defaults)\n if (rememberKey) {\n router.remember(cloneDeep(newValue.__remember()), rememberKey)\n }\n },\n { immediate: true, deep: true },\n )\n\n return form\n}\n", "import {\n CreateInertiaAppOptionsForCSR,\n CreateInertiaAppOptionsForSSR,\n InertiaAppResponse,\n InertiaAppSSRResponse,\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'\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>\n\ntype InertiaAppOptionsForSSR<SharedProps extends PageProps> = CreateInertiaAppOptionsForSSR<\n SharedProps,\n ComponentResolver,\n SetupOptions<null, SharedProps>,\n VueApp\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}: InertiaAppOptionsForCSR<SharedProps> | InertiaAppOptionsForSSR<SharedProps>): InertiaAppResponse {\n const isServer = typeof window === 'undefined'\n const el = isServer ? null : document.getElementById(id)\n const initialPage = page || JSON.parse(el?.dataset.page || '{}')\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: el as HTMLElement,\n App,\n props,\n plugin,\n })\n })\n\n if (!isServer && progress) {\n setupProgress(progress)\n }\n\n if (isServer && render) {\n const body = await render(\n createSSRApp({\n render: () =>\n h('div', {\n id,\n 'data-page': JSON.stringify(initialPage),\n innerHTML: vueApp ? render(vueApp) : '',\n }),\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 VisitOptions,\n} from '@inertiajs/core'\nimport { isEqual } from 'lodash-es'\nimport { computed, defineComponent, h, onBeforeUnmount, onMounted, PropType, ref, SlotsType } from 'vue'\nimport useForm from './useForm'\n\ntype FormSubmitOptions = Omit<VisitOptions, 'data' | 'onPrefetched' | 'onPrefetching'>\n\nconst noop = () => undefined\n\nconst Form = defineComponent({\n name: 'Form',\n slots: Object as SlotsType<{\n default: FormComponentSlotProps\n }>,\n props: {\n action: {\n type: [String, Object] as PropType<FormComponentProps['action']>,\n default: '',\n },\n method: {\n type: String as PropType<FormComponentProps['method']>,\n default: 'get',\n },\n headers: {\n type: Object as PropType<FormComponentProps['headers']>,\n default: () => ({}),\n },\n queryStringArrayFormat: {\n type: String as PropType<FormComponentProps['queryStringArrayFormat']>,\n default: 'brackets',\n },\n errorBag: {\n type: [String, null] as PropType<FormComponentProps['errorBag']>,\n default: null,\n },\n showProgress: {\n type: Boolean,\n default: true,\n },\n transform: {\n type: Function as PropType<FormComponentProps['transform']>,\n default: (data: Record<string, FormDataConvertible>) => data,\n },\n options: {\n type: Object as PropType<FormComponentProps['options']>,\n default: () => ({}),\n },\n resetOnError: {\n type: [Boolean, Array] as PropType<FormComponentProps['resetOnError']>,\n default: false,\n },\n resetOnSuccess: {\n type: [Boolean, Array] as PropType<FormComponentProps['resetOnSuccess']>,\n default: false,\n },\n setDefaultsOnSuccess: {\n type: Boolean as PropType<FormComponentProps['setDefaultsOnSuccess']>,\n default: false,\n },\n onCancelToken: {\n type: Function as PropType<FormComponentProps['onCancelToken']>,\n default: noop,\n },\n onBefore: {\n type: Function as PropType<FormComponentProps['onBefore']>,\n default: noop,\n },\n onStart: {\n type: Function as PropType<FormComponentProps['onStart']>,\n default: noop,\n },\n onProgress: {\n type: Function as PropType<FormComponentProps['onProgress']>,\n default: noop,\n },\n onFinish: {\n type: Function as PropType<FormComponentProps['onFinish']>,\n default: noop,\n },\n onCancel: {\n type: Function as PropType<FormComponentProps['onCancel']>,\n default: noop,\n },\n onSuccess: {\n type: Function as PropType<FormComponentProps['onSuccess']>,\n default: noop,\n },\n onError: {\n type: Function as PropType<FormComponentProps['onError']>,\n default: noop,\n },\n onSubmitComplete: {\n type: Function as PropType<FormComponentProps['onSubmitComplete']>,\n default: noop,\n },\n disableWhileProcessing: {\n type: Boolean,\n default: false,\n },\n invalidateCacheTags: {\n type: [String, Array] as PropType<FormComponentProps['invalidateCacheTags']>,\n default: () => [],\n },\n },\n setup(props, { slots, attrs, expose }) {\n const form = useForm<Record<string, any>>({})\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 formEvents.forEach((e) => formElement.value.addEventListener(e, onFormUpdate))\n })\n\n onBeforeUnmount(() => formEvents.forEach((e) => formElement.value?.removeEventListener(e, onFormUpdate)))\n\n const getFormData = (): FormData => new FormData(formElement.value)\n\n // Convert the FormData to an object because we can't compare two FormData\n // instances directly (which is needed for isDirty), mergeDataIntoQueryString()\n // expects an object, and submitting a FormData instance directly causes problems with nested objects.\n const getData = (): Record<string, FormDataConvertible> => formDataToObject(getFormData())\n\n const submit = () => {\n const [action, data] = mergeDataIntoQueryString(\n method.value,\n isUrlMethodPair(props.action) ? props.action.url : props.action,\n getData(),\n props.queryStringArrayFormat,\n )\n\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 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 // 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, action, submitOptions)\n }\n\n const reset = (...fields: string[]) => {\n resetFormFields(formElement.value, defaultData.value, fields)\n }\n\n const resetAndClearErrors = (...fields: string[]) => {\n form.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 clearErrors: (...fields: string[]) => form.clearErrors(...fields),\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 }\n\n expose<FormComponentRef>(exposed)\n\n return () => {\n return h(\n 'form',\n {\n ...attrs,\n ref: formElement,\n action: isUrlMethodPair(props.action) ? props.action.url : props.action,\n method: method.value,\n onSubmit: (event) => {\n event.preventDefault()\n submit()\n },\n inert: props.disableWhileProcessing && form.processing,\n },\n slots.default ? slots.default(exposed) : [],\n )\n }\n },\n})\n\nexport default Form\n", "import { escape } from 'lodash-es'\nimport { defineComponent, DefineComponent, VNode } from 'vue'\n\nexport type InertiaHead = DefineComponent<{\n title?: string\n}>\n\nconst Head: InertiaHead = defineComponent({\n props: {\n title: {\n type: String,\n required: false,\n },\n },\n data() {\n return {\n provider: this.$headManager.createProvider(),\n }\n },\n beforeUnmount() {\n this.provider.disconnect()\n },\n methods: {\n isUnaryTag(node: VNode) {\n return (\n typeof node.type === 'string' &&\n [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ].indexOf(node.type) > -1\n )\n },\n renderTagStart(node: VNode) {\n node.props = node.props || {}\n node.props.inertia = 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 inertia>${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 CacheForOption,\n CancelTokenCallback,\n GlobalEventCallback,\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'\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<string | Component>,\n default: 'a',\n },\n data: {\n type: Object,\n default: () => ({}),\n },\n href: {\n type: [String, Object] as PropType<InertiaLinkProps['href']>,\n default: '',\n },\n method: {\n type: String as PropType<Method>,\n default: 'get',\n },\n replace: {\n type: Boolean,\n default: false,\n },\n preserveScroll: {\n type: Boolean,\n default: false,\n },\n preserveState: {\n type: Boolean,\n default: null,\n },\n preserveUrl: {\n type: Boolean,\n default: false,\n },\n only: {\n type: Array<string>,\n default: () => [],\n },\n except: {\n type: Array<string>,\n default: () => [],\n },\n headers: {\n type: Object,\n default: () => ({}),\n },\n queryStringArrayFormat: {\n type: String as PropType<'brackets' | 'indices'>,\n default: 'brackets',\n },\n async: {\n type: Boolean,\n default: false,\n },\n prefetch: {\n type: [Boolean, String, Array] as PropType<boolean | LinkPrefetchOption | LinkPrefetchOption[]>,\n default: false,\n },\n cacheFor: {\n type: [Number, String, Array] as PropType<CacheForOption | CacheForOption[]>,\n default: 0,\n },\n onStart: {\n type: Function as PropType<GlobalEventCallback<'start'>>,\n default: noop,\n },\n onProgress: {\n type: Function as PropType<GlobalEventCallback<'progress'>>,\n default: noop,\n },\n onFinish: {\n type: Function as PropType<GlobalEventCallback<'finish'>>,\n default: noop,\n },\n onBefore: {\n type: Function as PropType<GlobalEventCallback<'before'>>,\n default: noop,\n },\n onCancel: {\n type: Function as PropType<GlobalEventCallback<'cancel'>>,\n default: noop,\n },\n onSuccess: {\n type: Function as PropType<GlobalEventCallback<'success'>>,\n default: noop,\n },\n onError: {\n type: Function as PropType<GlobalEventCallback<'error'>>,\n default: noop,\n },\n onCancelToken: {\n type: Function as PropType<CancelTokenCallback>,\n default: noop,\n },\n onPrefetching: {\n type: Function as PropType<GlobalEventCallback<'prefetching'>>,\n default: noop,\n },\n onPrefetched: {\n type: Function as PropType<GlobalEventCallback<'prefetched'>>,\n default: noop,\n },\n cacheTags: {\n type: [String, Array] as PropType<string | string[]>,\n default: () => [],\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 30_000\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 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 }, 75)\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 event.preventDefault()\n router.visit(href.value, visitParams.value)\n },\n onKeyup: (event: KeyboardEvent) => {\n if (shouldNavigate(event)) {\n event.preventDefault()\n router.visit(href.value, visitParams.value)\n }\n },\n onClick: (event: MouseEvent) => {\n if (shouldIntercept(event)) {\n // Let the mouseup/keyup event handle the visit\n event.preventDefault()\n }\n },\n }\n\n return () => {\n return h(\n as.value as string | Component,\n {\n ...attrs,\n ...elProps.value,\n 'data-loading': inFlightCount.value > 0 ? '' : undefined,\n ...(() => {\n if (prefetchModes.value.includes('hover')) {\n return prefetchHoverEvents\n }\n\n if (prefetchModes.value.includes('click')) {\n return prefetchClickEvents\n }\n\n return regularEvents\n })(),\n },\n slots,\n )\n }\n },\n})\n\nexport default Link\n", "import { PollOptions, ReloadOptions, router } from '@inertiajs/core'\nimport { onMounted, onUnmounted } from 'vue'\n\nexport default function usePoll(\n interval: number,\n requestOptions: ReloadOptions = {},\n options: PollOptions = {\n keepAlive: false,\n autoStart: true,\n },\n): {\n stop: VoidFunction\n start: VoidFunction\n} {\n const { stop, start } = router.poll(interval, requestOptions, {\n ...options,\n autoStart: false,\n })\n\n onMounted(() => {\n if (options.autoStart ?? true) {\n start()\n }\n })\n\n onUnmounted(() => {\n stop()\n })\n\n return {\n stop,\n start,\n }\n}\n", "import { router, VisitOptions } from '@inertiajs/core'\nimport { onMounted, onUnmounted, ref, Ref } from 'vue'\n\nexport default function usePrefetch(options: VisitOptions = {}): {\n lastUpdatedAt: Ref<number | null>\n isPrefetching: Ref<boolean>\n isPrefetched: Ref<boolean>\n flush: () => void\n} {\n const isPrefetching = ref(false)\n const lastUpdatedAt = ref<number | null>(null)\n const isPrefetched = ref(false)\n\n const cached = typeof window === 'undefined' ? null : router.getCached(window.location.pathname, options)\n const inFlight = typeof window === 'undefined' ? null : router.getPrefetching(window.location.pathname, options)\n\n lastUpdatedAt.value = cached?.staleTimestamp || null\n\n isPrefetching.value = inFlight !== null\n isPrefetched.value = cached !== null\n\n let onPrefetchedListener: () => void\n let onPrefetchingListener: () => void\n\n onMounted(() => {\n onPrefetchingListener = router.on('prefetching', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n isPrefetching.value = true\n }\n })\n\n onPrefetchedListener = router.on('prefetched', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n isPrefetching.value = false\n isPrefetched.value = true\n }\n })\n })\n\n onUnmounted(() => {\n onPrefetchedListener()\n onPrefetchingListener()\n })\n\n return {\n lastUpdatedAt,\n isPrefetching,\n isPrefetched,\n flush: () => router.flush(window.location.pathname, options),\n }\n}\n", "import { router } from '@inertiajs/core'\nimport { cloneDeep } from 'lodash-es'\nimport { isReactive, reactive, ref, Ref, watch } from 'vue'\n\nexport default function useRemember<T extends object>(\n data: T & { __rememberable?: boolean; __remember?: Function; __restore?: Function },\n key?: string,\n): Ref<T> | T {\n if (typeof data === 'object' && data !== null && data.__rememberable === false) {\n return data\n }\n\n const restored = router.restore(key)\n const type = isReactive(data) ? reactive : ref\n const hasCallbacks = typeof data.__remember === 'function' && typeof data.__restore === 'function'\n const remembered = type(restored === undefined ? data : hasCallbacks ? data.__restore!(restored) : restored)\n\n watch(\n remembered,\n (newValue) => {\n router.remember(cloneDeep(hasCallbacks ? data.__remember!() : newValue), key)\n },\n { immediate: true, deep: true },\n )\n\n return remembered\n}\n", "import { ReloadOptions, router } from '@inertiajs/core'\nimport { defineComponent, h, PropType } from 'vue'\n\nexport default defineComponent({\n name: 'WhenVisible',\n props: {\n data: {\n type: [String, Array<String>],\n },\n params: {\n type: Object as PropType<ReloadOptions>,\n },\n buffer: {\n type: Number,\n default: 0,\n },\n as: {\n type: String,\n default: 'div',\n },\n always: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n loaded: false,\n fetching: false,\n observer: null as IntersectionObserver | null,\n }\n },\n unmounted() {\n this.observer?.disconnect()\n },\n mounted() {\n this.observer = new IntersectionObserver(\n (entries) => {\n if (!entries[0].isIntersecting) {\n return\n }\n\n if (!this.$props.always) {\n this.observer?.disconnect()\n }\n\n if (this.fetching) {\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 })\n },\n {\n rootMargin: `${this.$props.buffer}px`,\n },\n )\n\n this.observer.observe(this.$el.nextSibling)\n },\n methods: {\n getReloadParams(): Partial<ReloadOptions> {\n if (this.$props.data) {\n return {\n only: (Array.isArray(this.$props.data) ? this.$props.data : [this.$props.data]) as string[],\n }\n }\n\n if (!this.$props.params) {\n throw new Error('You must provide either a `data` or `params` prop.')\n }\n\n return this.$props.params\n },\n },\n render() {\n const els = []\n\n if (this.$props.always || !this.loaded) {\n els.push(h(this.$props.as))\n }\n\n if (!this.loaded) {\n els.push(this.$slots.fallback ? this.$slots.fallback() : null)\n } else if (this.$slots.default) {\n els.push(this.$slots.default())\n }\n\n return els\n },\n})\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAAA,gBAAiC;;;ACAjC,IAAAC,eASO;AACP,IAAAC,cAWO;;;ACrBP,kBAAuB;AACvB,uBAA0B;AAG1B,IAAM,WAA6B;AAAA,EACjC,UAAU;AACR,QAAI,CAAC,KAAK,SAAS,UAAU;AAC3B;AAAA,IACF;AAEA,QAAI,MAAM,QAAQ,KAAK,SAAS,QAAQ,GAAG;AACzC,WAAK,SAAS,WAAW,EAAE,MAAM,KAAK,SAAS,SAAS;AAAA,IAC1D;AAEA,QAAI,OAAO,KAAK,SAAS,aAAa,UAAU;AAC9C,WAAK,SAAS,WAAW,EAAE,MAAM,CAAC,KAAK,SAAS,QAAQ,EAAE;AAAA,IAC5D;AAEA,QAAI,OAAO,KAAK,SAAS,SAAS,SAAS,UAAU;AACnD,WAAK,SAAS,WAAW,EAAE,MAAM,CAAC,KAAK,SAAS,SAAS,IAAI,EAAE;AAAA,IACjE;AAEA,UAAM,cACJ,KAAK,SAAS,SAAS,eAAe,WAClC,KAAK,SAAS,SAAS,IAAI,KAAK,IAAI,IACpC,KAAK,SAAS,SAAS;AAE7B,UAAM,WAAW,mBAAO,QAAQ,WAAW;AAE3C,UAAM,eAAe,KAAK,SAAS,SAAS,KAAK,OAAO,CAACC,SAAgB;AACvE,aAAO,EAAE,KAAKA,IAAG,MAAM,QAAQ,OAAO,KAAKA,IAAG,MAAM,YAAY,KAAKA,IAAG,EAAE,mBAAmB;AAAA,IAC/F,CAAC;AAED,UAAM,eAAe,CAACA,SAAgB;AACpC,aACE,KAAKA,IAAG,MAAM,QACd,OAAO,KAAKA,IAAG,MAAM,YACrB,OAAO,KAAKA,IAAG,EAAE,eAAe,cAChC,OAAO,KAAKA,IAAG,EAAE,cAAc;AAAA,IAEnC;AAEA,iBAAa,QAAQ,CAACA,SAAgB;AACpC,UAAI,KAAKA,IAAG,MAAM,UAAa,aAAa,UAAa,SAASA,IAAG,MAAM,QAAW;AACpF,qBAAaA,IAAG,IAAI,KAAKA,IAAG,EAAE,UAAU,SAASA,IAAG,CAAC,IAAK,KAAKA,IAAG,IAAI,SAASA,IAAG;AAAA,MACpF;AAEA,WAAK;AAAA,QACHA;AAAA,QACA,MAAM;AACJ,6BAAO;AAAA,YACL,aAAa;AAAA,cACX,CAAC,MAAMA,UAAS;AAAA,gBACd,GAAG;AAAA,gBACH,CAACA,IAAG,OAAG,4BAAU,aAAaA,IAAG,IAAI,KAAKA,IAAG,EAAE,WAAW,IAAI,KAAKA,IAAG,CAAC;AAAA,cACzE;AAAA,cACA,CAAC;AAAA,YACH;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,QACA,EAAE,WAAW,MAAM,MAAM,KAAK;AAAA,MAChC;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEA,IAAO,mBAAQ;;;ACnEf,IAAAC,eAaO;AACP,IAAAC,oBAAkD;AAClD,iBAAgC;AAwCjB,SAAR,QACL,mBACA,WACoB;AACpB,QAAM,cAAc,OAAO,sBAAsB,WAAW,oBAAoB;AAChF,QAAM,QAAQ,OAAO,sBAAsB,WAAW,YAAY,sBAAsB,CAAC;AACzF,QAAM,WAAW,cACZ,oBAAO,QAAQ,WAAW,IAC3B;AACJ,MAAI,WAAW,OAAO,SAAS,iBAAa,6BAAU,KAAK,CAAC,QAAI,6BAAU,IAAI;AAC9E,MAAI,cAAkC;AACtC,MAAI;AACJ,MAAI,YAAsC,CAACC,UAASA;AAIpD,MAAI,4BAA4B;AAEhC,QAAM,WAAO,qBAAS;AAAA,IACpB,GAAI,WAAW,SAAS,WAAO,6BAAU,QAAQ;AAAA,IACjD,SAAS;AAAA,IACT,QAAS,WAAW,SAAS,SAAS,CAAC;AAAA,IACvC,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,eAAe;AAAA,IACf,oBAAoB;AAAA,IACpB,OAAO;AACL,aAAQ,OAAO,KAAK,QAAQ,EAAiC,OAAO,CAAC,OAAOC,SAAQ;AAClF,mBAAO,uBAAI,OAAOA,UAAK,uBAAI,MAAMA,IAAG,CAAC;AAAA,MACvC,GAAG,CAAC,CAAmB;AAAA,IACzB;AAAA,IACA,UAAU,UAAoC;AAC5C,kBAAY;AAEZ,aAAO;AAAA,IACT;AAAA,IACA,SAAS,eAAsD,YAAsB;AACnF,UAAI,OAAO,SAAS,YAAY;AAC9B,cAAM,IAAI,MAAM,8EAA8E;AAAA,MAChG;AAEA,kCAA4B;AAE5B,UAAI,OAAO,kBAAkB,aAAa;AACxC,uBAAW,6BAAU,KAAK,KAAK,CAAC;AAChC,aAAK,UAAU;AAAA,MACjB,OAAO;AACL,mBACE,OAAO,kBAAkB,eACrB,2BAAI,6BAAU,QAAQ,GAAG,eAAe,UAAU,IAClD,OAAO,OAAO,CAAC,OAAG,6BAAU,QAAQ,GAAG,aAAa;AAAA,MAC5D;AAEA,aAAO;AAAA,IACT;AAAA,IACA,SAAS,QAAkB;AACzB,YAAM,eAAe,OAAO,SAAS,iBAAa,6BAAU,KAAK,CAAC,QAAI,6BAAU,QAAQ;AACxF,YAAM,iBAAa,6BAAU,YAAY;AACzC,UAAI,OAAO,WAAW,GAAG;AACvB,mBAAW;AACX,eAAO,OAAO,MAAM,YAAY;AAAA,MAClC,OAAO;AACL;AAAC,QAAC,OACC,OAAO,CAACA,aAAQ,uBAAI,YAAYA,IAAG,CAAC,EACpC,QAAQ,CAACA,SAAQ;AAChB,qCAAI,UAAUA,UAAK,uBAAI,YAAYA,IAAG,CAAC;AACvC,qCAAI,MAAMA,UAAK,uBAAI,cAAcA,IAAG,CAAC;AAAA,QACvC,CAAC;AAAA,MACL;AAEA,aAAO;AAAA,IACT;AAAA,IACA,SAAS,eAA4D,YAAyB;AAC5F,aAAO,OAAO,KAAK,QAAQ,OAAO,kBAAkB,WAAW,EAAE,CAAC,aAAa,GAAG,WAAW,IAAI,aAAa;AAE9G,WAAK,YAAY,OAAO,KAAK,KAAK,MAAM,EAAE,SAAS;AAEnD,aAAO;AAAA,IACT;AAAA,IACA,eAAe,QAAkB;AAC/B,WAAK,SAAS,OAAO,KAAK,KAAK,MAAM,EAAE;AAAA,QACrC,CAAC,OAAO,WAAW;AAAA,UACjB,GAAG;AAAA,UACH,GAAI,OAAO,SAAS,KAAK,CAAC,OAAO,SAAS,KAAK,IAAI,EAAE,CAAC,KAAK,GAAG,KAAK,OAAO,KAAK,EAAE,IAAI,CAAC;AAAA,QACxF;AAAA,QACA,CAAC;AAAA,MACH;AAEA,WAAK,YAAY,OAAO,KAAK,KAAK,MAAM,EAAE,SAAS;AAEnD,aAAO;AAAA,IACT;AAAA,IACA,uBAAuB,QAAkB;AACvC,WAAK,MAAM,GAAG,MAAM;AACpB,WAAK,YAAY,GAAG,MAAM;AAC1B,aAAO;AAAA,IACT;AAAA,IACA,UAAU,MAAkB;AAC1B,YAAM,eAAe,KAAK,CAAC,MAAM,QAAQ,OAAO,KAAK,CAAC,MAAM;AAE5D,YAAM,SAAS,eAAe,KAAK,CAAC,EAAE,SAAU,KAAK,CAAC;AACtD,YAAM,MAAM,eAAe,KAAK,CAAC,EAAE,MAAO,KAAK,CAAC;AAChD,YAAM,WAAW,eAAe,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC;AAEvD,kCAA4B;AAE5B,YAAM,WAAyB;AAAA,QAC7B,GAAG;AAAA,QACH,eAAe,CAAC,UAAU;AACxB,wBAAc;AAEd,cAAI,QAAQ,eAAe;AACzB,mBAAO,QAAQ,cAAc,KAAK;AAAA,UACpC;AAAA,QACF;AAAA,QACA,UAAU,CAAC,UAAU;AACnB,eAAK,gBAAgB;AACrB,eAAK,qBAAqB;AAC1B,uBAAa,2BAA2B;AAExC,cAAI,QAAQ,UAAU;AACpB,mBAAO,QAAQ,SAAS,KAAK;AAAA,UAC/B;AAAA,QACF;AAAA,QACA,SAAS,CAAC,UAAU;AAClB,eAAK,aAAa;AAElB,cAAI,QAAQ,SAAS;AACnB,mBAAO,QAAQ,QAAQ,KAAK;AAAA,UAC9B;AAAA,QACF;AAAA,QACA,YAAY,CAAC,UAAU;AACrB,eAAK,WAAW;AAEhB,cAAI,QAAQ,YAAY;AACtB,mBAAO,QAAQ,WAAW,KAAK;AAAA,UACjC;AAAA,QACF;AAAA,QACA,WAAW,OAAOC,UAAS;AACzB,eAAK,aAAa;AAClB,eAAK,WAAW;AAChB,eAAK,YAAY;AACjB,eAAK,gBAAgB;AACrB,eAAK,qBAAqB;AAC1B,wCAA8B,WAAW,MAAO,KAAK,qBAAqB,OAAQ,GAAI;AAEtF,gBAAM,YAAY,QAAQ,YAAY,MAAM,QAAQ,UAAUA,KAAI,IAAI;AAEtE,cAAI,CAAC,2BAA2B;AAC9B,2BAAW,6BAAU,KAAK,KAAK,CAAC;AAChC,iBAAK,UAAU;AAAA,UACjB;AAEA,iBAAO;AAAA,QACT;AAAA,QACA,SAAS,CAAC,WAAW;AACnB,eAAK,aAAa;AAClB,eAAK,WAAW;AAChB,eAAK,YAAY,EAAE,SAAS,MAAM;AAElC,cAAI,QAAQ,SAAS;AACnB,mBAAO,QAAQ,QAAQ,MAAM;AAAA,UAC/B;AAAA,QACF;AAAA,QACA,UAAU,MAAM;AACd,eAAK,aAAa;AAClB,eAAK,WAAW;AAEhB,cAAI,QAAQ,UAAU;AACpB,mBAAO,QAAQ,SAAS;AAAA,UAC1B;AAAA,QACF;AAAA,QACA,UAAU,CAAC,UAAU;AACnB,eAAK,aAAa;AAClB,eAAK,WAAW;AAChB,wBAAc;AAEd,cAAI,QAAQ,UAAU;AACpB,mBAAO,QAAQ,SAAS,KAAK;AAAA,UAC/B;AAAA,QACF;AAAA,MACF;AAEA,YAAM,kBAAkB,UAAU,KAAK,KAAK,CAAC;AAE7C,UAAI,WAAW,UAAU;AACvB,4BAAO,OAAO,KAAK,EAAE,GAAG,UAAU,MAAM,gBAAgB,CAAC;AAAA,MAC3D,OAAO;AACL,4BAAO,MAAM,EAAE,KAAK,iBAAiB,QAAQ;AAAA,MAC/C;AAAA,IACF;AAAA,IACA,IAAI,KAAa,SAAuB;AACtC,WAAK,OAAO,OAAO,KAAK,OAAO;AAAA,IACjC;AAAA,IACA,KAAK,KAAa,SAAuB;AACvC,WAAK,OAAO,QAAQ,KAAK,OAAO;AAAA,IAClC;AAAA,IACA,IAAI,KAAa,SAAuB;AACtC,WAAK,OAAO,OAAO,KAAK,OAAO;AAAA,IACjC;AAAA,IACA,MAAM,KAAa,SAAuB;AACxC,WAAK,OAAO,SAAS,KAAK,OAAO;AAAA,IACnC;AAAA,IACA,OAAO,KAAa,SAAuB;AACzC,WAAK,OAAO,UAAU,KAAK,OAAO;AAAA,IACpC;AAAA,IACA,SAAS;AACP,UAAI,aAAa;AACf,oBAAY,OAAO;AAAA,MACrB;AAAA,IACF;AAAA,IACA,gBAAgB,gBAAgB;AAAA,IAChC,aAAa;AACX,aAAO,EAAE,MAAM,KAAK,KAAK,GAAG,QAAQ,KAAK,OAAO;AAAA,IAClD;AAAA,IACA,UAAUC,WAA0D;AAClE,aAAO,OAAO,MAAMA,UAAS,IAAI;AACjC,WAAK,SAASA,UAAS,MAAM;AAAA,IAC/B;AAAA,EACF,CAAC;AAED;AAAA,IACE;AAAA,IACA,CAAC,aAAa;AACZ,WAAK,UAAU,KAAC,2BAAQ,KAAK,KAAK,GAAG,QAAQ;AAC7C,UAAI,aAAa;AACf,4BAAO,aAAS,6BAAU,SAAS,WAAW,CAAC,GAAG,WAAW;AAAA,MAC/D;AAAA,IACF;AAAA,IACA,EAAE,WAAW,MAAM,MAAM,KAAK;AAAA,EAChC;AAEA,SAAO;AACT;;;AF7PA,IAAM,gBAAY,iBAAiC,MAAS;AAC5D,IAAM,WAAO,iBAAU;AACvB,IAAM,aAAS,wBAAW,IAAI;AAC9B,IAAM,UAAM,iBAAwB,MAAS;AAC7C,IAAI;AAEJ,IAAM,UAAkB,6BAAgB;AAAA,EACtC,MAAM;AAAA,EACN,OAAO;AAAA,IACL,aAAa;AAAA,MACX,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,eAAe;AAAA,MACb,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS,CAAC,UAAkB;AAAA,IAC9B;AAAA,IACA,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS,MAAM,MAAM;AAAA,MAAC;AAAA,IACxB;AAAA,EACF;AAAA,EACA,MAAM,EAAE,aAAa,kBAAkB,kBAAkB,eAAe,aAAa,GAAoB;AACvG,cAAU,QAAQ,uBAAmB,qBAAQ,gBAAgB,IAAI;AACjE,SAAK,QAAQ;AACb,QAAI,QAAQ;AAEZ,UAAM,WAAW,OAAO,WAAW;AACnC,sBAAc,gCAAkB,UAAU,kBAAkB,CAAC,UAAkB,QAAQ,iBAAiB,MAAM;AAAA,IAAC,EAAE;AAEjH,QAAI,CAAC,UAAU;AACb,0BAAO,KAAsB;AAAA,QAC3B;AAAA,QACA;AAAA,QACA,eAAe,OAAO,YAAgC;AACpD,oBAAU,YAAQ,qBAAQ,QAAQ,SAAS;AAC3C,eAAK,QAAQ,QAAQ;AACrB,cAAI,QAAQ,QAAQ,gBAAgB,IAAI,QAAQ,KAAK,IAAI;AAAA,QAC3D;AAAA,MACF,CAAC;AAED,0BAAO,GAAG,YAAY,MAAM,YAAY,YAAY,CAAC;AAAA,IACvD;AAEA,WAAO,MAAM;AACX,UAAI,UAAU,OAAO;AACnB,kBAAU,MAAM,eAAe,CAAC,CAAC,UAAU,MAAM;AAEjD,cAAM,YAAQ,eAAE,UAAU,OAAO;AAAA,UAC/B,GAAG,KAAK,MAAO;AAAA,UACf,KAAK,IAAI;AAAA,QACX,CAAC;AAED,YAAI,OAAO,OAAO;AAChB,oBAAU,MAAM,SAAS,OAAO;AAChC,iBAAO,QAAQ;AAAA,QACjB;AAEA,YAAI,UAAU,MAAM,QAAQ;AAC1B,cAAI,OAAO,UAAU,MAAM,WAAW,YAAY;AAChD,mBAAO,UAAU,MAAM,OAAO,eAAG,KAAK;AAAA,UACxC;AAEA,kBAAQ,MAAM,QAAQ,UAAU,MAAM,MAAM,IAAI,UAAU,MAAM,SAAS,CAAC,UAAU,MAAM,MAAM,GAC7F,OAAO,KAAK,EACZ,QAAQ,EACR,OAAO,CAACC,QAAOC,YAAW;AACzB,YAAAA,QAAO,eAAe,CAAC,CAACA,QAAO;AAC/B,uBAAO,eAAEA,SAAQ,EAAE,GAAG,KAAK,MAAO,MAAM,GAAG,MAAMD,MAAK;AAAA,UACxD,CAAC;AAAA,QACL;AAEA,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF,CAAC;AACD,IAAO,cAAQ;AAER,IAAM,SAAiB;AAAA,EAC5B,QAAQ,KAAK;AACX,wBAAO,OAAO;AAEd,WAAO,eAAe,IAAI,OAAO,kBAAkB,YAAY,EAAE,KAAK,MAAM,oBAAO,CAAC;AACpF,WAAO,eAAe,IAAI,OAAO,kBAAkB,SAAS,EAAE,KAAK,MAAM,KAAK,MAAM,CAAC;AACrF,WAAO,eAAe,IAAI,OAAO,kBAAkB,gBAAgB,EAAE,KAAK,MAAM,YAAY,CAAC;AAE7F,QAAI,MAAM,gBAAQ;AAAA,EACpB;AACF;AAEO,SAAS,UAAwF;AACtG,aAAO,sBAAS;AAAA,IACd,WAAO,sBAAS,MAAM,KAAK,OAAO,KAAK;AAAA,IACvC,SAAK,sBAAS,MAAM,KAAK,OAAO,GAAG;AAAA,IACnC,eAAW,sBAAS,MAAM,KAAK,OAAO,SAAS;AAAA,IAC/C,aAAS,sBAAS,MAAM,KAAK,OAAO,OAAO;AAAA,IAC3C,kBAAc,sBAAS,MAAM,KAAK,OAAO,YAAY;AAAA,IACrD,mBAAe,sBAAS,MAAM,KAAK,OAAO,aAAa;AAAA,IACvD,gBAAY,sBAAS,MAAM,KAAK,OAAO,UAAU;AAAA,IACjD,kBAAc,sBAAS,MAAM,KAAK,OAAO,YAAY;AAAA,IACrD,oBAAgB,sBAAS,MAAM,KAAK,OAAO,cAAc;AAAA,IACzD,kBAAc,sBAAS,MAAM,KAAK,OAAO,YAAY;AAAA,IACrD,qBAAiB,sBAAS,MAAM,KAAK,OAAO,eAAe;AAAA,IAC3D,oBAAgB,sBAAS,MAAM,KAAK,OAAO,cAAc;AAAA,EAC3D,CAAC;AACH;;;AGxJA,IAAAE,eAQO;AACP,IAAAC,cAAwE;AAmCxE,eAAO,iBAAmF;AAAA,EACxF,KAAK;AAAA,EACL;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAAC,YAAW,CAAC;AAAA,EACZ,MAAAC;AAAA,EACA;AACF,GAAoG;AAClG,QAAM,WAAW,OAAO,WAAW;AACnC,QAAM,KAAK,WAAW,OAAO,SAAS,eAAe,EAAE;AACvD,QAAM,cAAcA,SAAQ,KAAK,MAAM,IAAI,QAAQ,QAAQ,IAAI;AAC/D,QAAM,mBAAmB,CAAC,SAAiB,QAAQ,QAAQ,QAAQ,IAAI,CAAC,EAAE,KAAK,CAACC,YAAWA,QAAO,WAAWA,OAAM;AAEnH,MAAI,OAAiB,CAAC;AAEtB,QAAM,SAAS,MAAM,QAAQ,IAAI;AAAA,IAC/B,iBAAiB,YAAY,SAAS;AAAA,IACtC,oBAAO,eAAe,EAAE,MAAM,MAAM;AAAA,IAAC,CAAC;AAAA,EACxC,CAAC,EAAE,KAAK,CAAC,CAAC,gBAAgB,MAAM;AAC9B,UAAM,QAAQ;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAe;AAAA,IACjB;AAEA,QAAI,UAAU;AACZ,YAAM,WAAW;AAEjB,aAAO,SAAS;AAAA,QACd,IAAI;AAAA,QACJ;AAAA,QACA,OAAO,EAAE,GAAG,OAAO,cAAc,CAAC,aAAwB,OAAO,SAAU;AAAA,QAC3E;AAAA,MACF,CAAC;AAAA,IACH;AAEA,UAAM,WAAW;AAEjB,WAAO,SAAS;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AAED,MAAI,CAAC,YAAYF,WAAU;AACzB,oCAAcA,SAAQ;AAAA,EACxB;AAEA,MAAI,YAAY,QAAQ;AACtB,UAAM,OAAO,MAAM;AAAA,UACjB,0BAAa;AAAA,QACX,QAAQ,UACN,eAAE,OAAO;AAAA,UACP;AAAA,UACA,aAAa,KAAK,UAAU,WAAW;AAAA,UACvC,WAAW,SAAS,OAAO,MAAM,IAAI;AAAA,QACvC,CAAC;AAAA,MACL,CAAC;AAAA,IACH;AAEA,WAAO,EAAE,MAAM,KAAK;AAAA,EACtB;AACF;;;AC9GA,IAAAG,cAAgC;AAEhC,IAAO,uBAAQ,6BAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM,CAAC,QAAQ,KAAa;AAAA,MAC5B,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA,SAAS;AACP,UAAM,OAAQ,MAAM,QAAQ,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,OAAO,CAAC,KAAK,OAAO,IAAI;AAEpF,QAAI,CAAC,KAAK,OAAO,UAAU;AACzB,YAAM,IAAI,MAAM,qDAAqD;AAAA,IACvE;AAEA,WAAO,KAAK,MAAM,CAACC,SAAQ,KAAK,MAAM,MAAMA,IAAG,MAAM,MAAS,IAAI,KAAK,OAAO,UAAU,IAAI,KAAK,OAAO,SAAS;AAAA,EACnH;AACF,CAAC;;;ACnBD,IAAAC,eAYO;AACP,IAAAC,oBAAwB;AACxB,IAAAC,cAAmG;AAKnG,IAAM,OAAO,MAAM;AAEnB,IAAM,WAAO,6BAAgB;AAAA,EAC3B,MAAM;AAAA,EACN,OAAO;AAAA,EAGP,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,SAAS;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS,OAAO,CAAC;AAAA,IACnB;AAAA,IACA,wBAAwB;AAAA,MACtB,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,MAAM,CAAC,QAAQ,IAAI;AAAA,MACnB,SAAS;AAAA,IACX;AAAA,IACA,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS,CAAC,SAA8C;AAAA,IAC1D;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS,OAAO,CAAC;AAAA,IACnB;AAAA,IACA,cAAc;AAAA,MACZ,MAAM,CAAC,SAAS,KAAK;AAAA,MACrB,SAAS;AAAA,IACX;AAAA,IACA,gBAAgB;AAAA,MACd,MAAM,CAAC,SAAS,KAAK;AAAA,MACrB,SAAS;AAAA,IACX;AAAA,IACA,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,kBAAkB;AAAA,MAChB,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,wBAAwB;AAAA,MACtB,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,qBAAqB;AAAA,MACnB,MAAM,CAAC,QAAQ,KAAK;AAAA,MACpB,SAAS,MAAM,CAAC;AAAA,IAClB;AAAA,EACF;AAAA,EACA,MAAM,OAAO,EAAE,OAAO,OAAO,OAAO,GAAG;AACrC,UAAM,OAAO,QAA6B,CAAC,CAAC;AAC5C,UAAM,kBAAc,iBAAI;AACxB,UAAM,aAAS;AAAA,MAAS,UACtB,8BAAgB,MAAM,MAAM,IAAI,MAAM,OAAO,SAAU,MAAM,OAAO,YAAY;AAAA,IAClF;AAGA,UAAM,cAAU,iBAAI,KAAK;AAEzB,UAAM,kBAAc,iBAAI,IAAI,SAAS,CAAC;AAEtC,UAAM,eAAe,CAAC,UAAiB;AAIrC,cAAQ,QAAQ,MAAM,SAAS,UAAU,QAAQ,KAAC,2BAAQ,QAAQ,OAAG,+BAAiB,YAAY,KAAK,CAAC;AAAA,IAC1G;AAEA,UAAM,aAA+C,CAAC,SAAS,UAAU,OAAO;AAEhF,+BAAU,MAAM;AACd,kBAAY,QAAQ,YAAY;AAChC,iBAAW,QAAQ,CAAC,MAAM,YAAY,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAAA,IAC/E,CAAC;AAED,qCAAgB,MAAM,WAAW,QAAQ,CAAC,MAAM,YAAY,OAAO,oBAAoB,GAAG,YAAY,CAAC,CAAC;AAExG,UAAM,cAAc,MAAgB,IAAI,SAAS,YAAY,KAAK;AAKlE,UAAM,UAAU,UAA2C,+BAAiB,YAAY,CAAC;AAEzF,UAAM,SAAS,MAAM;AACnB,YAAM,CAAC,QAAQ,IAAI,QAAI;AAAA,QACrB,OAAO;AAAA,YACP,8BAAgB,MAAM,MAAM,IAAI,MAAM,OAAO,MAAM,MAAM;AAAA,QACzD,QAAQ;AAAA,QACR,MAAM;AAAA,MACR;AAEA,YAAM,aAAa,CAAC,gBAAoC;AACtD,YAAI,CAAC,aAAa;AAChB;AAAA,QACF;AAEA,YAAI,gBAAgB,MAAM;AACxB,gBAAM;AAAA,QACR,WAAW,YAAY,SAAS,GAAG;AACjC,gBAAM,GAAG,WAAW;AAAA,QACtB;AAAA,MACF;AAEA,YAAM,gBAAmC;AAAA,QACvC,SAAS,MAAM;AAAA,QACf,UAAU,MAAM;AAAA,QAChB,cAAc,MAAM;AAAA,QACpB,qBAAqB,MAAM;AAAA,QAC3B,eAAe,MAAM;AAAA,QACrB,UAAU,MAAM;AAAA,QAChB,SAAS,MAAM;AAAA,QACf,YAAY,MAAM;AAAA,QAClB,UAAU,MAAM;AAAA,QAChB,UAAU,MAAM;AAAA,QAChB,WAAW,IAAI,SAAS;AACtB,gBAAM,YAAY,GAAG,IAAI;AACzB,gBAAM,mBAAmB,OAAO;AAChC,qBAAW,MAAM,cAAc;AAE/B,cAAI,MAAM,yBAAyB,MAAM;AACvC,qBAAS;AAAA,UACX;AAAA,QACF;AAAA,QACA,SAAS,IAAI,SAAS;AACpB,gBAAM,UAAU,GAAG,IAAI;AACvB,qBAAW,MAAM,YAAY;AAAA,QAC/B;AAAA,QACA,GAAG,MAAM;AAAA,MACX;AAGA,WAAK,UAAU,MAAM,MAAM,UAAU,IAAI,CAAC,EAAE,OAAO,OAAO,OAAO,QAAQ,aAAa;AAAA,IACxF;AAEA,UAAM,QAAQ,IAAI,WAAqB;AACrC,wCAAgB,YAAY,OAAO,YAAY,OAAO,MAAM;AAAA,IAC9D;AAEA,UAAM,sBAAsB,IAAI,WAAqB;AACnD,WAAK,YAAY,GAAG,MAAM;AAC1B,YAAM,GAAG,MAAM;AAAA,IACjB;AAEA,UAAM,WAAW,MAAM;AACrB,kBAAY,QAAQ,YAAY;AAChC,cAAQ,QAAQ;AAAA,IAClB;AAEA,UAAM,UAAU;AAAA,MACd,IAAI,SAAS;AACX,eAAO,KAAK;AAAA,MACd;AAAA,MACA,IAAI,YAAY;AACd,eAAO,KAAK;AAAA,MACd;AAAA,MACA,IAAI,aAAa;AACf,eAAO,KAAK;AAAA,MACd;AAAA,MACA,IAAI,WAAW;AACb,eAAO,KAAK;AAAA,MACd;AAAA,MACA,IAAI,gBAAgB;AAClB,eAAO,KAAK;AAAA,MACd;AAAA,MACA,IAAI,qBAAqB;AACvB,eAAO,KAAK;AAAA,MACd;AAAA,MACA,aAAa,IAAI,WAAqB,KAAK,YAAY,GAAG,MAAM;AAAA,MAChE;AAAA,MACA,UAAU,CAAC,eAAgD,eACzD,KAAK,SAAU,OAAO,kBAAkB,WAAW,EAAE,CAAC,aAAa,GAAG,WAAW,IAAI,aAAwB;AAAA,MAC/G,IAAI,UAAU;AACZ,eAAO,QAAQ;AAAA,MACjB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,WAAyB,OAAO;AAEhC,WAAO,MAAM;AACX,iBAAO;AAAA,QACL;AAAA,QACA;AAAA,UACE,GAAG;AAAA,UACH,KAAK;AAAA,UACL,YAAQ,8BAAgB,MAAM,MAAM,IAAI,MAAM,OAAO,MAAM,MAAM;AAAA,UACjE,QAAQ,OAAO;AAAA,UACf,UAAU,CAAC,UAAU;AACnB,kBAAM,eAAe;AACrB,mBAAO;AAAA,UACT;AAAA,UACA,OAAO,MAAM,0BAA0B,KAAK;AAAA,QAC9C;AAAA,QACA,MAAM,UAAU,MAAM,QAAQ,OAAO,IAAI,CAAC;AAAA,MAC5C;AAAA,IACF;AAAA,EACF;AACF,CAAC;AAED,IAAO,eAAQ;;;AC7Qf,IAAAC,oBAAuB;AACvB,IAAAC,cAAwD;AAMxD,IAAM,WAAoB,6BAAgB;AAAA,EACxC,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA,OAAO;AACL,WAAO;AAAA,MACL,UAAU,KAAK,aAAa,eAAe;AAAA,IAC7C;AAAA,EACF;AAAA,EACA,gBAAgB;AACd,SAAK,SAAS,WAAW;AAAA,EAC3B;AAAA,EACA,SAAS;AAAA,IACP,WAAW,MAAa;AACtB,aACE,OAAO,KAAK,SAAS,YACrB;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,EAAE,QAAQ,KAAK,IAAI,IAAI;AAAA,IAE3B;AAAA,IACA,eAAe,MAAa;AAC1B,WAAK,QAAQ,KAAK,SAAS,CAAC;AAC5B,WAAK,MAAM,UAAU,KAAK,MAAM,UAAU,MAAM,SAAY,KAAK,MAAM,UAAU,IAAI;AAErF,YAAM,QAAQ,OAAO,KAAK,KAAK,KAAK,EAAE,OAAO,CAAC,OAAO,SAAS;AAC5D,cAAM,QAAQ,OAAO,KAAK,MAAO,IAAI,CAAC;AACtC,YAAI,CAAC,OAAO,UAAU,EAAE,SAAS,IAAI,GAAG;AACtC,iBAAO;AAAA,QACT,WAAW,UAAU,IAAI;AACvB,iBAAO,QAAQ,IAAI,IAAI;AAAA,QACzB,OAAO;AACL,iBAAO,QAAQ,IAAI,IAAI,SAAK,0BAAO,KAAK,CAAC;AAAA,QAC3C;AAAA,MACF,GAAG,EAAE;AAEL,aAAO,IAAI,OAAO,KAAK,IAAI,CAAC,GAAG,KAAK;AAAA,IACtC;AAAA,IACA,kBAAkB,MAAqB;AACrC,YAAM,EAAE,SAAS,IAAI;AAErB,UAAI,OAAO,aAAa,UAAU;AAChC,eAAO;AAAA,MACT;AAEA,UAAI,MAAM,QAAQ,QAAQ,GAAG;AAC3B,eAAO,SAAS,OAAe,CAAC,MAAM,UAAU;AAC9C,iBAAO,OAAO,KAAK,UAAU,KAAc;AAAA,QAC7C,GAAG,EAAE;AAAA,MACP;AAEA,aAAO;AAAA,IACT;AAAA,IACA,eAAe,MAAoD;AACjE,aAAO,OAAO,KAAK,SAAS;AAAA,IAC9B;AAAA,IACA,gBAAgB,MAA+C;AAC7D,aAAO,OAAO,KAAK,SAAS;AAAA,IAC9B;AAAA,IACA,cAAc,MAAa;AACzB,aAAO,iBAAiB,KAAK,KAAK,KAAK,SAAS,CAAC;AAAA,IACnD;AAAA,IACA,eAAe,MAAa;AAC1B,aAAO,6BAA6B,KAAK,KAAK,KAAK,SAAS,CAAC;AAAA,IAC/D;AAAA,IACA,WAAW,MAAa;AACtB,aAAO,cAAc,KAAK,KAAK,KAAK,SAAS,CAAC;AAAA,IAChD;AAAA,IACA,UAAU,MAAqB;AAC7B,UAAI,KAAK,WAAW,IAAI,GAAG;AACzB,eAAO,OAAO,KAAK,QAAQ;AAAA,MAC7B,WAAW,KAAK,eAAe,IAAI,GAAG;AACpC,eAAO;AAAA,MACT,WAAW,KAAK,cAAc,IAAI,GAAG;AACnC,eAAO;AAAA,MACT;AAEA,UAAI,OAAO,KAAK,eAAe,IAAI;AAEnC,UAAI,KAAK,UAAU;AACjB,gBAAQ,KAAK,kBAAkB,IAAI;AAAA,MACrC;AAEA,UAAI,CAAC,KAAK,WAAW,IAAI,GAAG;AAC1B,gBAAQ,KAAK,OAAO,KAAK,IAAI,CAAC;AAAA,MAChC;AAEA,aAAO;AAAA,IACT;AAAA,IACA,gBAAgB,UAAoB;AAClC,UAAI,KAAK,SAAS,CAAC,SAAS,KAAK,CAAC,QAAQ,IAAI,WAAW,QAAQ,CAAC,GAAG;AACnE,iBAAS,KAAK,kBAAkB,KAAK,KAAK,UAAU;AAAA,MACtD;AAEA,aAAO;AAAA,IACT;AAAA,IACA,YAAY,OAAgB;AAC1B,YAAM,WAAW,MACd,QAAQ,CAAC,SAAS,KAAK,YAAY,IAAI,CAAC,EACxC,IAAI,CAAC,SAAS,KAAK,UAAU,IAAI,CAAC,EAClC,OAAO,CAAC,SAAS,IAAI;AAExB,aAAO,KAAK,gBAAgB,QAAQ;AAAA,IACtC;AAAA,IACA,YAAY,MAA8B;AACxC,UAAI,KAAK,eAAe,IAAI,GAAG;AAC7B,eAAO,KAAK,YAAY,KAAK,KAAK,CAAC;AAAA,MACrC,WAAW,KAAK,gBAAgB,IAAI,GAAG;AACrC,gBAAQ,KAAK,4DAA4D;AACzE,eAAO,CAAC;AAAA,MACV,WAAW,KAAK,WAAW,IAAI,KAAK,KAAK,UAAU;AACjD,eAAO;AAAA,MACT,WAAW,KAAK,eAAe,IAAI,KAAK,KAAK,UAAU;AACrD,eAAQ,KAAK,SAAqB,QAAQ,CAAC,UAAU,KAAK,YAAY,KAAK,CAAC;AAAA,MAC9E,WAAW,KAAK,cAAc,IAAI,GAAG;AACnC,eAAO,CAAC;AAAA,MACV,OAAO;AACL,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAAA,EACA,SAAS;AACP,SAAK,SAAS,OAAO,KAAK,YAAY,KAAK,OAAO,UAAU,KAAK,OAAO,QAAQ,IAAI,CAAC,CAAC,CAAC;AAAA,EACzF;AACF,CAAC;AAED,IAAO,eAAQ;;;ACtJf,IAAAC,eAOO;AACP,IAAAC,cAAgH;AAGhH,IAAM,qBAAqB,CACzB,OACA,aACuB;AACvB,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AAGA,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,SAAS,cAAc,KAAK;AAAA,EACrC;AAGA,MAAI,OAAO,UAAU,YAAY;AAC/B,WAAO,MAAM,KAAK;AAAA,EACpB;AAEA,SAAO;AACT;AAEA,IAAM,qBAAiB,6BAAgB;AAAA,EACrC,MAAM;AAAA,EACN,OAAO;AAAA,EAMP,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,IACZ;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,IAAI;AAAA,MACF,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,cAAc;AAAA,MACZ,MAAM,CAAC,QAAQ,UAAU,MAAM;AAAA,MAC/B,SAAS;AAAA,IACX;AAAA,IACA,cAAc;AAAA,MACZ,MAAM,CAAC,QAAQ,UAAU,MAAM;AAAA,MAC/B,SAAS;AAAA,IACX;AAAA,IACA,YAAY;AAAA,MACV,MAAM,CAAC,QAAQ,UAAU,MAAM;AAAA,MAC/B,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,cAAc;AAAA,EACd,MAAM,OAAO,EAAE,OAAO,OAAO,OAAO,GAAG;AACrC,UAAM,sBAAkB,iBAAwB,IAAI;AACpD,UAAM,sBAAkB,iBAAwB,IAAI;AACpD,UAAM,oBAAgB,iBAAwB,IAAI;AAElD,UAAM,mBAAe;AAAA,MAA6B,MAChD,mBAAmB,MAAM,cAAc,gBAAgB,KAAK;AAAA,IAC9D;AACA,UAAM,uBAAmB,sBAAS,UAAM,kCAAoB,aAAa,KAAK,CAAC;AAC/E,UAAM,mBAAe;AAAA,MAA6B,MAChD,mBAAmB,MAAM,cAAc,gBAAgB,KAAK;AAAA,IAC9D;AACA,UAAM,iBAAa,sBAA6B,MAAM,mBAAmB,MAAM,YAAY,cAAc,KAAK,CAAC;AAE/G,UAAM,sBAAkB,iBAAI,KAAK;AACjC,UAAM,kBAAc,iBAAI,KAAK;AAC7B,UAAM,mBAAe,iBAAI,CAAC;AAE1B,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA,OAAO;AAAA,IACT,QAAI,gCAAkB;AAAA;AAAA,MAEpB,aAAa,MAAM,MAAM;AAAA,MACzB,eAAe,MAAM,MAAM;AAAA,MAC3B,iBAAiB,MAAM,CAAC,MAAM;AAAA,MAC9B,qBAAqB,MAAM,CAAC,MAAM;AAAA,MAClC,mBAAmB,MAAM,MAAM;AAAA;AAAA,MAG/B,kBAAkB,MAAM,MAAM;AAAA,MAC9B,iBAAiB,MAAM,aAAa;AAAA,MACpC,eAAe,MAAM,WAAW;AAAA,MAChC,iBAAiB,MAAM,aAAa;AAAA,MACpC,qBAAqB,MAAM,iBAAiB;AAAA;AAAA,MAG5C,yBAAyB,MAAO,gBAAgB,QAAQ;AAAA,MACxD,qBAAqB,MAAO,YAAY,QAAQ;AAAA,MAChD,2BAA2B,MAAM;AAC/B,qBAAa,QAAQ,YAAY,gBAAgB;AACjD,wBAAgB,QAAQ;AAAA,MAC1B;AAAA,MACA,uBAAuB,MAAM;AAC3B,qBAAa,QAAQ,YAAY,gBAAgB;AACjD,oBAAY,QAAQ;AAAA,MACtB;AAAA,IACF,CAAC;AAED,iBAAa,QAAQ,YAAY,gBAAgB;AAEjD,UAAM,eAAW,sBAAkB,MAAM,CAAC,WAAW,KAAK;AAC1D,UAAM,iBAAa;AAAA,MACjB,MAAM,MAAM,UAAW,MAAM,cAAc,KAAK,aAAa,SAAS,MAAM;AAAA,IAC9E;AAEA,UAAM,iBAAiB,MAAM;AAC3B,UAAI,iBAAiB,OAAO;AAC1B,yBAAiB,MAAM,SAAS;AAAA,UAC9B,KAAK,iBAAiB,MAAM;AAAA,UAC5B,UAAU;AAAA,QACZ,CAAC;AAAA,MACH,OAAO;AACL,eAAO,SAAS;AAAA,UACd,KAAK,SAAS,KAAK;AAAA,UACnB,UAAU;AAAA,QACZ,CAAC;AAAA,MACH;AAAA,IACF;AAEA,+BAAU,MAAM;AACd,qBAAe,eAAe;AAC9B,qBAAe,4BAA4B,YAAY,kBAAkB,CAAC;AAG1E,YAAM,mBAAmB,MAAM,eAAe,SAAY,MAAM,aAAa,MAAM;AAEnF,UAAI,kBAAkB;AACpB,uBAAe;AAAA,MACjB;AAEA,UAAI,SAAS,OAAO;AAClB,uBAAe,eAAe;AAAA,MAChC;AAAA,IACF,CAAC;AAED,iCAAY,mBAAmB;AAE/B;AAAA,MACE,MAAM,CAAC,SAAS,OAAO,MAAM,UAAU,MAAM,YAAY;AAAA,MACzD,CAAC,CAAC,OAAO,MAAM;AACb,kBAAU,eAAe,eAAe,IAAI,eAAe,gBAAgB;AAAA,MAC7E;AAAA,IACF;AAEA,WAA0B;AAAA,MACxB,WAAW,YAAY;AAAA,MACvB,eAAe,YAAY;AAAA,MAC3B,aAAa,YAAY;AAAA,MACzB,SAAS,YAAY;AAAA,IACvB,CAAC;AAED,WAAO,MAAM;AACX,YAAM,iBAAiB,CAAC;AAExB,YAAM,gBAGF;AAAA,QACF,iBAAiB,gBAAgB;AAAA,QACjC,aAAa,YAAY;AAAA,QACzB,aAAa,YAAY,YAAY;AAAA,QACrC,SAAS,YAAY,QAAQ;AAAA,MAC/B;AAGA,UAAI,CAAC,MAAM,cAAc;AACvB,cAAM,iBAAiB,SAAS,SAAS,CAAC,MAAM;AAChD,cAAM,kBAAiD;AAAA,UACrD,SAAS,gBAAgB;AAAA,UACzB,OAAO,YAAY;AAAA,UACnB,UAAU;AAAA,UACV,YAAY,CAAC;AAAA,UACb,SAAS,YAAY,YAAY;AAAA,UACjC,GAAG;AAAA,QACL;AAEA,uBAAe;AAAA,cACb;AAAA,YACE;AAAA,YACA,EAAE,KAAK,gBAAgB;AAAA,YACvB,MAAM,WACF,MAAM,SAAS,eAAe,IAC9B,gBAAgB,QACd,MAAM,UAAU,eAAe,IAC/B;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAEA,qBAAe;AAAA,YACb;AAAA,UACE,MAAM;AAAA,UACN,EAAE,GAAG,OAAO,KAAK,gBAAgB;AAAA,UACjC,MAAM,UAAU;AAAA,YACd,SAAS,gBAAgB,SAAS,YAAY;AAAA,YAC9C,iBAAiB,gBAAgB;AAAA,YACjC,aAAa,YAAY;AAAA,UAC3B,CAAC;AAAA,QACH;AAAA,MACF;AAGA,UAAI,CAAC,MAAM,YAAY;AACrB,cAAM,iBAAiB,SAAS,SAAS,CAAC,MAAM;AAChD,cAAM,cAA6C;AAAA,UACjD,SAAS,YAAY;AAAA,UACrB,OAAO,YAAY;AAAA,UACnB,UAAU;AAAA,UACV,YAAY,CAAC;AAAA,UACb,SAAS,YAAY,QAAQ;AAAA,UAC7B,GAAG;AAAA,QACL;AAEA,uBAAe;AAAA,cACb;AAAA,YACE;AAAA,YACA,EAAE,KAAK,cAAc;AAAA,YACrB,MAAM,OAAO,MAAM,KAAK,WAAW,IAAI,YAAY,QAAQ,MAAM,UAAU,WAAW,IAAI;AAAA,UAC5F;AAAA,QACF;AAAA,MACF;AAEA,iBAAO,eAAE,sBAAU,CAAC,GAAG,MAAM,UAAU,CAAC,GAAG,cAAc,EAAE,QAAQ,IAAI,cAAc;AAAA,IACvF;AAAA,EACF;AACF,CAAC;AAED,IAAO,yBAAQ;;;AClRf,IAAAC,eAcO;AACP,IAAAC,cAAgH;AAEhH,IAAMC,QAAO,MAAM;AAAC;AASpB,IAAM,WAAoB,6BAAgB;AAAA,EACxC,MAAM;AAAA,EACN,OAAO;AAAA,IACL,IAAI;AAAA,MACF,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,SAAS;AAAA,IACX;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS,OAAO,CAAC;AAAA,IACnB;AAAA,IACA,MAAM;AAAA,MACJ,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,SAAS;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,gBAAgB;AAAA,MACd,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS,MAAM,CAAC;AAAA,IAClB;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS,MAAM,CAAC;AAAA,IAClB;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS,OAAO,CAAC;AAAA,IACnB;AAAA,IACA,wBAAwB;AAAA,MACtB,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,MAAM,CAAC,SAAS,QAAQ,KAAK;AAAA,MAC7B,SAAS;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,MAAM,CAAC,QAAQ,QAAQ,KAAK;AAAA,MAC5B,SAAS;AAAA,IACX;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAASA;AAAA,IACX;AAAA,IACA,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAASA;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAASA;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAASA;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAASA;AAAA,IACX;AAAA,IACA,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAASA;AAAA,IACX;AAAA,IACA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAASA;AAAA,IACX;AAAA,IACA,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAASA;AAAA,IACX;AAAA,IACA,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAASA;AAAA,IACX;AAAA,IACA,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAASA;AAAA,IACX;AAAA,IACA,WAAW;AAAA,MACT,MAAM,CAAC,QAAQ,KAAK;AAAA,MACpB,SAAS,MAAM,CAAC;AAAA,IAClB;AAAA,EACF;AAAA,EACA,MAAM,OAAO,EAAE,OAAO,MAAM,GAAG;AAC7B,UAAM,oBAAgB,iBAAI,CAAC;AAC3B,UAAM,mBAAe,iBAAmC;AAExD,UAAM,oBAAgB,sBAA+B,MAAM;AACzD,UAAI,MAAM,aAAa,MAAM;AAC3B,eAAO,CAAC,OAAO;AAAA,MACjB;AAEA,UAAI,MAAM,aAAa,OAAO;AAC5B,eAAO,CAAC;AAAA,MACV;AAEA,UAAI,MAAM,QAAQ,MAAM,QAAQ,GAAG;AACjC,eAAO,MAAM;AAAA,MACf;AAEA,aAAO,CAAC,MAAM,QAAQ;AAAA,IACxB,CAAC;AAED,UAAM,oBAAgB,sBAAS,MAAM;AACnC,UAAI,MAAM,aAAa,GAAG;AAExB,eAAO,MAAM;AAAA,MACf;AAEA,UAAI,cAAc,MAAM,WAAW,KAAK,cAAc,MAAM,CAAC,MAAM,SAAS;AAG1E,eAAO;AAAA,MACT;AAGA,aAAO;AAAA,IACT,CAAC;AAED,+BAAU,MAAM;AACd,UAAI,cAAc,MAAM,SAAS,OAAO,GAAG;AACzC,iBAAS;AAAA,MACX;AAAA,IACF,CAAC;AAED,iCAAY,MAAM;AAChB,mBAAa,aAAa,KAAK;AAAA,IACjC,CAAC;AAED,UAAM,aAAS;AAAA,MAAS,UACtB,8BAAgB,MAAM,IAAI,IAAI,MAAM,KAAK,UAAW,MAAM,UAAU,OAAO,YAAY;AAAA,IACzF;AACA,UAAM,SAAK,sBAAS,MAAM;AACxB,UAAI,OAAO,MAAM,OAAO,YAAY,MAAM,GAAG,YAAY,MAAM,KAAK;AAElE,eAAO,MAAM;AAAA,MACf;AAEA,aAAO,OAAO,UAAU,QAAQ,WAAW,MAAM,GAAG,YAAY;AAAA,IAClE,CAAC;AACD,UAAM,qBAAiB;AAAA,MAAS,UAC9B;AAAA,QACE,OAAO;AAAA,YACP,8BAAgB,MAAM,IAAI,IAAI,MAAM,KAAK,MAAO,MAAM;AAAA,QACtD,MAAM,QAAQ,CAAC;AAAA,QACf,MAAM;AAAA,MACR;AAAA,IACF;AACA,UAAM,WAAO,sBAAS,MAAM,eAAe,MAAM,CAAC,CAAC;AACnD,UAAM,WAAO,sBAAS,MAAM,eAAe,MAAM,CAAC,CAAC;AAEnD,UAAM,cAAU,sBAAS,MAAM;AAC7B,UAAI,GAAG,UAAU,UAAU;AACzB,eAAO,EAAE,MAAM,SAAS;AAAA,MAC1B;AAEA,UAAI,GAAG,UAAU,OAAO,OAAO,GAAG,UAAU,UAAU;AACpD,eAAO,EAAE,MAAM,KAAK,MAAM;AAAA,MAC5B;AAEA,aAAO,CAAC;AAAA,IACV,CAAC;AAED,UAAM,iBAAa,sBAAS,OAAO;AAAA,MACjC,MAAM,KAAK;AAAA,MACX,QAAQ,OAAO;AAAA,MACf,SAAS,MAAM;AAAA,MACf,gBAAgB,MAAM;AAAA,MACtB,eAAe,MAAM,iBAAiB,OAAO,UAAU;AAAA,MACvD,aAAa,MAAM;AAAA,MACnB,MAAM,MAAM;AAAA,MACZ,QAAQ,MAAM;AAAA,MACd,SAAS,MAAM;AAAA,MACf,OAAO,MAAM;AAAA,IACf,EAAE;AAEF,UAAM,kBAAc,sBAAS,OAAO;AAAA,MAClC,GAAG,WAAW;AAAA,MACd,eAAe,MAAM;AAAA,MACrB,UAAU,MAAM;AAAA,MAChB,SAAS,CAAC,UAAwB;AAChC,sBAAc;AACd,cAAM,UAAU,KAAK;AAAA,MACvB;AAAA,MACA,YAAY,MAAM;AAAA,MAClB,UAAU,CAAC,UAAuB;AAChC,sBAAc;AACd,cAAM,WAAW,KAAK;AAAA,MACxB;AAAA,MACA,UAAU,MAAM;AAAA,MAChB,WAAW,MAAM;AAAA,MACjB,SAAS,MAAM;AAAA,IACjB,EAAE;AAEF,UAAM,WAAW,MAAM;AACrB,0BAAO;AAAA,QACL,KAAK;AAAA,QACL;AAAA,UACE,GAAG,WAAW;AAAA,UACd,eAAe,MAAM;AAAA,UACrB,cAAc,MAAM;AAAA,QACtB;AAAA,QACA;AAAA,UACE,UAAU,cAAc;AAAA,UACxB,WAAW,MAAM;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAEA,UAAM,gBAAgB;AAAA,MACpB,SAAS,CAAC,UAAsB;AAC9B,gBAAI,8BAAgB,KAAK,GAAG;AAC1B,gBAAM,eAAe;AACrB,8BAAO,MAAM,KAAK,OAAO,YAAY,KAAK;AAAA,QAC5C;AAAA,MACF;AAAA,IACF;AAEA,UAAM,sBAAsB;AAAA,MAC1B,cAAc,MAAM;AAClB,qBAAa,QAAQ,WAAW,MAAM;AACpC,mBAAS;AAAA,QACX,GAAG,EAAE;AAAA,MACP;AAAA,MACA,cAAc,MAAM;AAClB,qBAAa,aAAa,KAAK;AAAA,MACjC;AAAA,MACA,SAAS,cAAc;AAAA,IACzB;AAEA,UAAM,sBAAsB;AAAA,MAC1B,aAAa,CAAC,UAAsB;AAClC,gBAAI,8BAAgB,KAAK,GAAG;AAC1B,gBAAM,eAAe;AACrB,mBAAS;AAAA,QACX;AAAA,MACF;AAAA,MACA,WAAW,CAAC,UAAyB;AACnC,gBAAI,6BAAe,KAAK,GAAG;AACzB,gBAAM,eAAe;AACrB,mBAAS;AAAA,QACX;AAAA,MACF;AAAA,MACA,WAAW,CAAC,UAAsB;AAChC,cAAM,eAAe;AACrB,4BAAO,MAAM,KAAK,OAAO,YAAY,KAAK;AAAA,MAC5C;AAAA,MACA,SAAS,CAAC,UAAyB;AACjC,gBAAI,6BAAe,KAAK,GAAG;AACzB,gBAAM,eAAe;AACrB,8BAAO,MAAM,KAAK,OAAO,YAAY,KAAK;AAAA,QAC5C;AAAA,MACF;AAAA,MACA,SAAS,CAAC,UAAsB;AAC9B,gBAAI,8BAAgB,KAAK,GAAG;AAE1B,gBAAM,eAAe;AAAA,QACvB;AAAA,MACF;AAAA,IACF;AAEA,WAAO,MAAM;AACX,iBAAO;AAAA,QACL,GAAG;AAAA,QACH;AAAA,UACE,GAAG;AAAA,UACH,GAAG,QAAQ;AAAA,UACX,gBAAgB,cAAc,QAAQ,IAAI,KAAK;AAAA,UAC/C,IAAI,MAAM;AACR,gBAAI,cAAc,MAAM,SAAS,OAAO,GAAG;AACzC,qBAAO;AAAA,YACT;AAEA,gBAAI,cAAc,MAAM,SAAS,OAAO,GAAG;AACzC,qBAAO;AAAA,YACT;AAEA,mBAAO;AAAA,UACT,GAAG;AAAA,QACL;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC;AAED,IAAO,eAAQ;;;ACjVf,IAAAC,eAAmD;AACnD,IAAAC,cAAuC;AAExB,SAAR,QACL,UACA,iBAAgC,CAAC,GACjC,UAAuB;AAAA,EACrB,WAAW;AAAA,EACX,WAAW;AACb,GAIA;AACA,QAAM,EAAE,MAAM,MAAM,IAAI,oBAAO,KAAK,UAAU,gBAAgB;AAAA,IAC5D,GAAG;AAAA,IACH,WAAW;AAAA,EACb,CAAC;AAED,6BAAU,MAAM;AACd,QAAI,QAAQ,aAAa,MAAM;AAC7B,YAAM;AAAA,IACR;AAAA,EACF,CAAC;AAED,+BAAY,MAAM;AAChB,SAAK;AAAA,EACP,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;;;ACjCA,IAAAC,eAAqC;AACrC,IAAAC,eAAiD;AAElC,SAAR,YAA6B,UAAwB,CAAC,GAK3D;AACA,QAAM,oBAAgB,kBAAI,KAAK;AAC/B,QAAM,oBAAgB,kBAAmB,IAAI;AAC7C,QAAM,mBAAe,kBAAI,KAAK;AAE9B,QAAM,SAAS,OAAO,WAAW,cAAc,OAAO,oBAAO,UAAU,OAAO,SAAS,UAAU,OAAO;AACxG,QAAM,WAAW,OAAO,WAAW,cAAc,OAAO,oBAAO,eAAe,OAAO,SAAS,UAAU,OAAO;AAE/G,gBAAc,QAAQ,QAAQ,kBAAkB;AAEhD,gBAAc,QAAQ,aAAa;AACnC,eAAa,QAAQ,WAAW;AAEhC,MAAI;AACJ,MAAI;AAEJ,8BAAU,MAAM;AACd,4BAAwB,oBAAO,GAAG,eAAe,CAAC,MAAM;AACtD,UAAI,EAAE,OAAO,MAAM,IAAI,aAAa,OAAO,SAAS,UAAU;AAC5D,sBAAc,QAAQ;AAAA,MACxB;AAAA,IACF,CAAC;AAED,2BAAuB,oBAAO,GAAG,cAAc,CAAC,MAAM;AACpD,UAAI,EAAE,OAAO,MAAM,IAAI,aAAa,OAAO,SAAS,UAAU;AAC5D,sBAAc,QAAQ;AACtB,qBAAa,QAAQ;AAAA,MACvB;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AAED,gCAAY,MAAM;AAChB,yBAAqB;AACrB,0BAAsB;AAAA,EACxB,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,MAAM,oBAAO,MAAM,OAAO,SAAS,UAAU,OAAO;AAAA,EAC7D;AACF;;;AClDA,IAAAC,gBAAuB;AACvB,IAAAC,oBAA0B;AAC1B,IAAAC,eAAsD;AAEvC,SAAR,YACL,MACAC,MACY;AACZ,MAAI,OAAO,SAAS,YAAY,SAAS,QAAQ,KAAK,mBAAmB,OAAO;AAC9E,WAAO;AAAA,EACT;AAEA,QAAM,WAAW,qBAAO,QAAQA,IAAG;AACnC,QAAM,WAAO,yBAAW,IAAI,IAAI,wBAAW;AAC3C,QAAM,eAAe,OAAO,KAAK,eAAe,cAAc,OAAO,KAAK,cAAc;AACxF,QAAM,aAAa,KAAK,aAAa,SAAY,OAAO,eAAe,KAAK,UAAW,QAAQ,IAAI,QAAQ;AAE3G;AAAA,IACE;AAAA,IACA,CAAC,aAAa;AACZ,2BAAO,aAAS,6BAAU,eAAe,KAAK,WAAY,IAAI,QAAQ,GAAGA,IAAG;AAAA,IAC9E;AAAA,IACA,EAAE,WAAW,MAAM,MAAM,KAAK;AAAA,EAChC;AAEA,SAAO;AACT;;;AC1BA,IAAAC,gBAAsC;AACtC,IAAAC,eAA6C;AAE7C,IAAO,0BAAQ,8BAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM,CAAC,QAAQ,KAAa;AAAA,IAC9B;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,IACR;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,IAAI;AAAA,MACF,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,OAAO;AACL,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,UAAU;AAAA,MACV,UAAU;AAAA,IACZ;AAAA,EACF;AAAA,EACA,YAAY;AACV,SAAK,UAAU,WAAW;AAAA,EAC5B;AAAA,EACA,UAAU;AACR,SAAK,WAAW,IAAI;AAAA,MAClB,CAAC,YAAY;AACX,YAAI,CAAC,QAAQ,CAAC,EAAE,gBAAgB;AAC9B;AAAA,QACF;AAEA,YAAI,CAAC,KAAK,OAAO,QAAQ;AACvB,eAAK,UAAU,WAAW;AAAA,QAC5B;AAEA,YAAI,KAAK,UAAU;AACjB;AAAA,QACF;AAEA,aAAK,WAAW;AAEhB,cAAM,eAAe,KAAK,gBAAgB;AAE1C,6BAAO,OAAO;AAAA,UACZ,GAAG;AAAA,UACH,SAAS,CAAC,MAAM;AACd,iBAAK,WAAW;AAChB,yBAAa,UAAU,CAAC;AAAA,UAC1B;AAAA,UACA,UAAU,CAAC,MAAM;AACf,iBAAK,SAAS;AACd,iBAAK,WAAW;AAChB,yBAAa,WAAW,CAAC;AAAA,UAC3B;AAAA,QACF,CAAC;AAAA,MACH;AAAA,MACA;AAAA,QACE,YAAY,GAAG,KAAK,OAAO,MAAM;AAAA,MACnC;AAAA,IACF;AAEA,SAAK,SAAS,QAAQ,KAAK,IAAI,WAAW;AAAA,EAC5C;AAAA,EACA,SAAS;AAAA,IACP,kBAA0C;AACxC,UAAI,KAAK,OAAO,MAAM;AACpB,eAAO;AAAA,UACL,MAAO,MAAM,QAAQ,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,OAAO,CAAC,KAAK,OAAO,IAAI;AAAA,QAC/E;AAAA,MACF;AAEA,UAAI,CAAC,KAAK,OAAO,QAAQ;AACvB,cAAM,IAAI,MAAM,oDAAoD;AAAA,MACtE;AAEA,aAAO,KAAK,OAAO;AAAA,IACrB;AAAA,EACF;AAAA,EACA,SAAS;AACP,UAAM,MAAM,CAAC;AAEb,QAAI,KAAK,OAAO,UAAU,CAAC,KAAK,QAAQ;AACtC,UAAI,SAAK,gBAAE,KAAK,OAAO,EAAE,CAAC;AAAA,IAC5B;AAEA,QAAI,CAAC,KAAK,QAAQ;AAChB,UAAI,KAAK,KAAK,OAAO,WAAW,KAAK,OAAO,SAAS,IAAI,IAAI;AAAA,IAC/D,WAAW,KAAK,OAAO,SAAS;AAC9B,UAAI,KAAK,KAAK,OAAO,QAAQ,CAAC;AAAA,IAChC;AAEA,WAAO;AAAA,EACT;AACF,CAAC;",
6
- "names": ["import_core", "import_core", "import_vue", "key", "import_core", "import_lodash_es", "data", "key", "page", "restored", "child", "layout", "import_core", "import_vue", "progress", "page", "module", "import_vue", "key", "import_core", "import_lodash_es", "import_vue", "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"]
4
+ "sourcesContent": ["import { config as coreConfig } from '@inertiajs/core'\nimport { VueInertiaAppConfig } from './types'\n\nexport { progress, router } from '@inertiajs/core'\nexport { usePage } from './app'\nexport { default as createInertiaApp } from './createInertiaApp'\nexport { default as Deferred } from './deferred'\nexport { default as Form } from './form'\nexport { default as Head } from './head'\nexport { default as InfiniteScroll } from './infiniteScroll'\nexport { InertiaLinkProps, default as Link } from './link'\nexport * from './types'\nexport { InertiaForm, InertiaFormProps, default as useForm } from './useForm'\nexport { default as usePoll } from './usePoll'\nexport { default as usePrefetch } from './usePrefetch'\nexport { default as useRemember } from './useRemember'\nexport { default as WhenVisible } from './whenVisible'\n\nexport const config = coreConfig.extend<VueInertiaAppConfig>({})\n", "import {\n createHeadManager,\n HeadManager,\n HeadManagerOnUpdateCallback,\n HeadManagerTitleCallback,\n Page,\n PageProps,\n router,\n SharedPageProps,\n} from '@inertiajs/core'\nimport {\n computed,\n DefineComponent,\n defineComponent,\n h,\n markRaw,\n Plugin,\n PropType,\n reactive,\n ref,\n shallowRef,\n} from 'vue'\nimport remember from './remember'\nimport { VuePageHandlerArgs } from './types'\nimport useForm from './useForm'\n\nexport interface InertiaAppProps<SharedProps extends PageProps = PageProps> {\n initialPage: Page<SharedProps>\n initialComponent?: DefineComponent\n resolveComponent?: (name: string) => DefineComponent | Promise<DefineComponent>\n titleCallback?: HeadManagerTitleCallback\n onHeadUpdate?: HeadManagerOnUpdateCallback\n}\n\nexport type InertiaApp = DefineComponent<InertiaAppProps>\n\nconst component = ref<DefineComponent | undefined>(undefined)\nconst page = ref<Page>()\nconst layout = shallowRef(null)\nconst key = ref<number | undefined>(undefined)\nlet headManager: HeadManager\n\nconst App: InertiaApp = defineComponent({\n name: 'Inertia',\n props: {\n initialPage: {\n type: Object as PropType<Page>,\n required: true,\n },\n initialComponent: {\n type: Object as PropType<DefineComponent>,\n required: false,\n },\n resolveComponent: {\n type: Function as PropType<(name: string) => DefineComponent | Promise<DefineComponent>>,\n required: false,\n },\n titleCallback: {\n type: Function as PropType<HeadManagerTitleCallback>,\n required: false,\n default: (title: string) => title,\n },\n onHeadUpdate: {\n type: Function as PropType<HeadManagerOnUpdateCallback>,\n required: false,\n default: () => () => {},\n },\n },\n setup({ initialPage, initialComponent, resolveComponent, titleCallback, onHeadUpdate }: InertiaAppProps) {\n component.value = initialComponent ? markRaw(initialComponent) : undefined\n page.value = initialPage\n key.value = undefined\n\n const isServer = typeof window === 'undefined'\n headManager = createHeadManager(isServer, titleCallback || ((title: string) => title), onHeadUpdate || (() => {}))\n\n if (!isServer) {\n router.init<DefineComponent>({\n initialPage,\n resolveComponent: resolveComponent!,\n swapComponent: async (options: VuePageHandlerArgs) => {\n component.value = markRaw(options.component)\n page.value = options.page\n key.value = options.preserveState ? key.value : Date.now()\n },\n })\n\n router.on('navigate', () => headManager.forceUpdate())\n }\n\n return () => {\n if (component.value) {\n component.value.inheritAttrs = !!component.value.inheritAttrs\n\n const child = h(component.value, {\n ...page.value!.props,\n key: key.value,\n })\n\n if (layout.value) {\n component.value.layout = layout.value\n layout.value = null\n }\n\n if (component.value.layout) {\n if (typeof component.value.layout === 'function') {\n return component.value.layout(h, child)\n }\n\n return (Array.isArray(component.value.layout) ? component.value.layout : [component.value.layout])\n .concat(child)\n .reverse()\n .reduce((child, layout) => {\n layout.inheritAttrs = !!layout.inheritAttrs\n return h(layout, { ...page.value!.props }, () => child)\n })\n }\n\n return child\n }\n }\n },\n})\nexport default App\n\nexport const plugin: Plugin = {\n install(app) {\n router.form = useForm\n\n Object.defineProperty(app.config.globalProperties, '$inertia', { get: () => router })\n Object.defineProperty(app.config.globalProperties, '$page', { get: () => page.value })\n Object.defineProperty(app.config.globalProperties, '$headManager', { get: () => headManager })\n\n app.mixin(remember)\n },\n}\n\nexport function usePage<TPageProps extends PageProps = PageProps>(): Page<TPageProps & SharedPageProps> {\n return reactive({\n props: computed(() => page.value?.props),\n url: computed(() => page.value?.url),\n component: computed(() => page.value?.component),\n version: computed(() => page.value?.version),\n clearHistory: computed(() => page.value?.clearHistory),\n deferredProps: computed(() => page.value?.deferredProps),\n mergeProps: computed(() => page.value?.mergeProps),\n prependProps: computed(() => page.value?.prependProps),\n deepMergeProps: computed(() => page.value?.deepMergeProps),\n matchPropsOn: computed(() => page.value?.matchPropsOn),\n rememberedState: computed(() => page.value?.rememberedState),\n encryptHistory: computed(() => page.value?.encryptHistory),\n }) as Page<TPageProps>\n}\n", "import { router } from '@inertiajs/core'\nimport { cloneDeep } from 'lodash-es'\nimport { ComponentOptions } from 'vue'\n\nconst remember: ComponentOptions = {\n created() {\n if (!this.$options.remember) {\n return\n }\n\n if (Array.isArray(this.$options.remember)) {\n this.$options.remember = { data: this.$options.remember }\n }\n\n if (typeof this.$options.remember === 'string') {\n this.$options.remember = { data: [this.$options.remember] }\n }\n\n if (typeof this.$options.remember.data === 'string') {\n this.$options.remember = { data: [this.$options.remember.data] }\n }\n\n const rememberKey =\n this.$options.remember.key instanceof Function\n ? this.$options.remember.key.call(this)\n : this.$options.remember.key\n\n const restored = router.restore(rememberKey) as Record<string, unknown> | undefined\n\n const rememberable = this.$options.remember.data.filter((key: string) => {\n return !(this[key] !== null && typeof this[key] === 'object' && this[key].__rememberable === false)\n }) as string[]\n\n const hasCallbacks = (key: string) => {\n return (\n this[key] !== null &&\n typeof this[key] === 'object' &&\n typeof this[key].__remember === 'function' &&\n typeof this[key].__restore === 'function'\n )\n }\n\n rememberable.forEach((key: string) => {\n if (this[key] !== undefined && restored !== undefined && restored[key] !== undefined) {\n hasCallbacks(key) ? this[key].__restore(restored[key]) : (this[key] = restored[key])\n }\n\n this.$watch(\n key,\n () => {\n router.remember(\n rememberable.reduce(\n (data, key) => ({\n ...data,\n [key]: cloneDeep(hasCallbacks(key) ? this[key].__remember() : this[key]),\n }),\n {},\n ),\n rememberKey,\n )\n },\n { immediate: true, deep: true },\n )\n })\n },\n}\n\nexport default remember\n", "import {\n CancelToken,\n ErrorValue,\n FormDataErrors,\n FormDataKeys,\n FormDataType,\n FormDataValues,\n Method,\n Progress,\n RequestPayload,\n router,\n UrlMethodPair,\n VisitOptions,\n} from '@inertiajs/core'\nimport { cloneDeep, get, has, isEqual, set } from 'lodash-es'\nimport { reactive, watch } from 'vue'\nimport { config } from '.'\n\ntype FormOptions = Omit<VisitOptions, 'data'>\ntype SubmitArgs = [Method, string, FormOptions?] | [UrlMethodPair, FormOptions?]\ntype TransformCallback<TForm> = (data: TForm) => object\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: TransformCallback<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: SubmitArgs) => void\n get(url: string, options?: FormOptions): void\n post(url: string, options?: FormOptions): void\n put(url: string, options?: FormOptions): void\n patch(url: string, options?: FormOptions): void\n delete(url: string, options?: FormOptions): void\n cancel(): void\n}\n\nexport type InertiaForm<TForm extends object> = TForm & InertiaFormProps<TForm>\n\nexport default function useForm<TForm extends FormDataType<TForm>>(data: TForm | (() => TForm)): InertiaForm<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>>(\n rememberKeyOrData: string | TForm | (() => TForm),\n maybeData?: TForm | (() => TForm),\n): InertiaForm<TForm> {\n const rememberKey = typeof rememberKeyOrData === 'string' ? rememberKeyOrData : null\n const data = (typeof rememberKeyOrData === 'string' ? maybeData : rememberKeyOrData) ?? {}\n const restored = rememberKey\n ? (router.restore(rememberKey) as { data: TForm; errors: Record<FormDataKeys<TForm>, string> })\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: TransformCallback<TForm> = (data) => data\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({\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,\n wasSuccessful: false,\n recentlySuccessful: false,\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: TransformCallback<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 return this\n },\n reset(...fields: string[]) {\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 return this\n },\n setError(fieldOrFields: FormDataKeys<TForm> | FormDataErrors<TForm>, maybeValue?: ErrorValue) {\n Object.assign(this.errors, typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : fieldOrFields)\n\n this.hasErrors = Object.keys(this.errors).length > 0\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[field] } : {}),\n }),\n {},\n )\n\n this.hasErrors = Object.keys(this.errors).length > 0\n\n return this\n },\n resetAndClearErrors(...fields: string[]) {\n this.reset(...fields)\n this.clearErrors(...fields)\n return this\n },\n submit(...args: SubmitArgs) {\n const objectPassed = args[0] !== null && typeof args[0] === 'object'\n\n const method = objectPassed ? args[0].method : (args[0] as Method)\n const url = objectPassed ? args[0].url : (args[1] as string)\n const options = (objectPassed ? args[1] : args[2]) ?? {}\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\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)\n\n if (options.onError) {\n return options.onError(errors)\n }\n },\n onCancel: () => {\n this.processing = false\n this.progress = null\n\n if (options.onCancel) {\n return options.onCancel()\n }\n },\n onFinish: (visit) => {\n this.processing = false\n this.progress = null\n cancelToken = null\n\n if (options.onFinish) {\n return options.onFinish(visit)\n }\n },\n }\n\n const transformedData = transform(this.data()) as RequestPayload\n\n if (method === 'delete') {\n router.delete(url, { ..._options, data: transformedData })\n } else {\n router[method](url, transformedData, _options)\n }\n },\n get(url: string, options: VisitOptions) {\n this.submit('get', url, options)\n },\n post(url: string, options: VisitOptions) {\n this.submit('post', url, options)\n },\n put(url: string, options: VisitOptions) {\n this.submit('put', url, options)\n },\n patch(url: string, options: VisitOptions) {\n this.submit('patch', url, options)\n },\n delete(url: string, options: VisitOptions) {\n this.submit('delete', url, options)\n },\n cancel() {\n if (cancelToken) {\n cancelToken.cancel()\n }\n },\n __rememberable: rememberKey === null,\n __remember() {\n return { data: this.data(), errors: this.errors }\n },\n __restore(restored: { data: TForm; errors: FormDataErrors<TForm> }) {\n Object.assign(this, restored.data)\n this.setError(restored.errors)\n },\n })\n\n watch(\n form,\n (newValue) => {\n form.isDirty = !isEqual(form.data(), defaults)\n if (rememberKey) {\n router.remember(cloneDeep(newValue.__remember()), rememberKey)\n }\n },\n { immediate: true, deep: true },\n )\n\n return form\n}\n", "import {\n CreateInertiaAppOptionsForCSR,\n CreateInertiaAppOptionsForSSR,\n InertiaAppResponse,\n InertiaAppSSRResponse,\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 el = isServer ? null : document.getElementById(id)\n const initialPage = page || JSON.parse(el?.dataset.page || '{}')\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: el as HTMLElement,\n App,\n props,\n plugin,\n })\n })\n\n if (!isServer && progress) {\n setupProgress(progress)\n }\n\n if (isServer && render) {\n const body = await render(\n createSSRApp({\n render: () =>\n h('div', {\n id,\n 'data-page': JSON.stringify(initialPage),\n innerHTML: vueApp ? render(vueApp) : '',\n }),\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 VisitOptions,\n} from '@inertiajs/core'\nimport { isEqual } from 'lodash-es'\nimport { computed, defineComponent, h, onBeforeUnmount, onMounted, PropType, ref, SlotsType } from 'vue'\nimport useForm from './useForm'\n\ntype FormSubmitOptions = Omit<VisitOptions, 'data' | 'onPrefetched' | 'onPrefetching'>\n\nconst noop = () => undefined\n\nconst Form = defineComponent({\n name: 'Form',\n slots: Object as SlotsType<{\n default: FormComponentSlotProps\n }>,\n props: {\n action: {\n type: [String, Object] as PropType<FormComponentProps['action']>,\n default: '',\n },\n method: {\n type: String as PropType<FormComponentProps['method']>,\n default: 'get',\n },\n headers: {\n type: Object as PropType<FormComponentProps['headers']>,\n default: () => ({}),\n },\n queryStringArrayFormat: {\n type: String as PropType<FormComponentProps['queryStringArrayFormat']>,\n default: 'brackets',\n },\n errorBag: {\n type: [String, null] as PropType<FormComponentProps['errorBag']>,\n default: null,\n },\n showProgress: {\n type: Boolean,\n default: true,\n },\n transform: {\n type: Function as PropType<FormComponentProps['transform']>,\n default: (data: Record<string, FormDataConvertible>) => data,\n },\n options: {\n type: Object as PropType<FormComponentProps['options']>,\n default: () => ({}),\n },\n resetOnError: {\n type: [Boolean, Array] as PropType<FormComponentProps['resetOnError']>,\n default: false,\n },\n resetOnSuccess: {\n type: [Boolean, Array] as PropType<FormComponentProps['resetOnSuccess']>,\n default: false,\n },\n setDefaultsOnSuccess: {\n type: Boolean as PropType<FormComponentProps['setDefaultsOnSuccess']>,\n default: false,\n },\n onCancelToken: {\n type: Function as PropType<FormComponentProps['onCancelToken']>,\n default: noop,\n },\n onBefore: {\n type: Function as PropType<FormComponentProps['onBefore']>,\n default: noop,\n },\n onStart: {\n type: Function as PropType<FormComponentProps['onStart']>,\n default: noop,\n },\n onProgress: {\n type: Function as PropType<FormComponentProps['onProgress']>,\n default: noop,\n },\n onFinish: {\n type: Function as PropType<FormComponentProps['onFinish']>,\n default: noop,\n },\n onCancel: {\n type: Function as PropType<FormComponentProps['onCancel']>,\n default: noop,\n },\n onSuccess: {\n type: Function as PropType<FormComponentProps['onSuccess']>,\n default: noop,\n },\n onError: {\n type: Function as PropType<FormComponentProps['onError']>,\n default: noop,\n },\n onSubmitComplete: {\n type: Function as PropType<FormComponentProps['onSubmitComplete']>,\n default: noop,\n },\n disableWhileProcessing: {\n type: Boolean,\n default: false,\n },\n invalidateCacheTags: {\n type: [String, Array] as PropType<FormComponentProps['invalidateCacheTags']>,\n default: () => [],\n },\n },\n setup(props, { slots, attrs, expose }) {\n const form = useForm<Record<string, any>>({})\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 formEvents.forEach((e) => formElement.value.addEventListener(e, onFormUpdate))\n })\n\n onBeforeUnmount(() => formEvents.forEach((e) => formElement.value?.removeEventListener(e, onFormUpdate)))\n\n const getFormData = (): FormData => new FormData(formElement.value)\n\n // Convert the FormData to an object because we can't compare two FormData\n // instances directly (which is needed for isDirty), mergeDataIntoQueryString()\n // expects an object, and submitting a FormData instance directly causes problems with nested objects.\n const getData = (): Record<string, FormDataConvertible> => formDataToObject(getFormData())\n\n const submit = () => {\n const [action, data] = mergeDataIntoQueryString(\n method.value,\n isUrlMethodPair(props.action) ? props.action.url : props.action,\n getData(),\n props.queryStringArrayFormat,\n )\n\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 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 // 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, action, submitOptions)\n }\n\n const reset = (...fields: string[]) => {\n resetFormFields(formElement.value, defaultData.value, fields)\n }\n\n const resetAndClearErrors = (...fields: string[]) => {\n form.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 clearErrors: (...fields: string[]) => form.clearErrors(...fields),\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 }\n\n expose<FormComponentRef>(exposed)\n\n return () => {\n return h(\n 'form',\n {\n ...attrs,\n ref: formElement,\n action: isUrlMethodPair(props.action) ? props.action.url : props.action,\n method: method.value,\n onSubmit: (event) => {\n event.preventDefault()\n submit()\n },\n inert: props.disableWhileProcessing && form.processing,\n },\n slots.default ? slots.default(exposed) : [],\n )\n }\n },\n})\n\nexport default Form\n", "import { escape } from 'lodash-es'\nimport { defineComponent, DefineComponent, VNode } from 'vue'\n\nexport type InertiaHead = DefineComponent<{\n title?: string\n}>\n\nconst Head: InertiaHead = defineComponent({\n props: {\n title: {\n type: String,\n required: false,\n },\n },\n data() {\n return {\n provider: this.$headManager.createProvider(),\n }\n },\n beforeUnmount() {\n this.provider.disconnect()\n },\n methods: {\n isUnaryTag(node: VNode) {\n return (\n typeof node.type === 'string' &&\n [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ].indexOf(node.type) > -1\n )\n },\n renderTagStart(node: VNode) {\n node.props = node.props || {}\n node.props.inertia = 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 inertia>${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 CacheForOption,\n CancelTokenCallback,\n GlobalEventCallback,\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<string | Component>,\n default: 'a',\n },\n data: {\n type: Object,\n default: () => ({}),\n },\n href: {\n type: [String, Object] as PropType<InertiaLinkProps['href']>,\n default: '',\n },\n method: {\n type: String as PropType<Method>,\n default: 'get',\n },\n replace: {\n type: Boolean,\n default: false,\n },\n preserveScroll: {\n type: Boolean,\n default: false,\n },\n preserveState: {\n type: Boolean,\n default: null,\n },\n preserveUrl: {\n type: Boolean,\n default: false,\n },\n only: {\n type: Array<string>,\n default: () => [],\n },\n except: {\n type: Array<string>,\n default: () => [],\n },\n headers: {\n type: Object,\n default: () => ({}),\n },\n queryStringArrayFormat: {\n type: String as PropType<'brackets' | 'indices'>,\n default: 'brackets',\n },\n async: {\n type: Boolean,\n default: false,\n },\n prefetch: {\n type: [Boolean, String, Array] as PropType<boolean | LinkPrefetchOption | LinkPrefetchOption[]>,\n default: false,\n },\n cacheFor: {\n type: [Number, String, Array] as PropType<CacheForOption | CacheForOption[]>,\n default: 0,\n },\n onStart: {\n type: Function as PropType<GlobalEventCallback<'start'>>,\n default: noop,\n },\n onProgress: {\n type: Function as PropType<GlobalEventCallback<'progress'>>,\n default: noop,\n },\n onFinish: {\n type: Function as PropType<GlobalEventCallback<'finish'>>,\n default: noop,\n },\n onBefore: {\n type: Function as PropType<GlobalEventCallback<'before'>>,\n default: noop,\n },\n onCancel: {\n type: Function as PropType<GlobalEventCallback<'cancel'>>,\n default: noop,\n },\n onSuccess: {\n type: Function as PropType<GlobalEventCallback<'success'>>,\n default: noop,\n },\n onError: {\n type: Function as PropType<GlobalEventCallback<'error'>>,\n default: noop,\n },\n onCancelToken: {\n type: Function as PropType<CancelTokenCallback>,\n default: noop,\n },\n onPrefetching: {\n type: Function as PropType<GlobalEventCallback<'prefetching'>>,\n default: noop,\n },\n onPrefetched: {\n type: Function as PropType<GlobalEventCallback<'prefetched'>>,\n default: noop,\n },\n cacheTags: {\n type: [String, Array] as PropType<string | string[]>,\n default: () => [],\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 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 }, 75)\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 event.preventDefault()\n router.visit(href.value, visitParams.value)\n },\n onKeyup: (event: KeyboardEvent) => {\n if (shouldNavigate(event)) {\n event.preventDefault()\n router.visit(href.value, visitParams.value)\n }\n },\n onClick: (event: MouseEvent) => {\n if (shouldIntercept(event)) {\n // Let the mouseup/keyup event handle the visit\n event.preventDefault()\n }\n },\n }\n\n return () => {\n return h(\n as.value as string | Component,\n {\n ...attrs,\n ...elProps.value,\n 'data-loading': inFlightCount.value > 0 ? '' : undefined,\n ...(() => {\n if (prefetchModes.value.includes('hover')) {\n return prefetchHoverEvents\n }\n\n if (prefetchModes.value.includes('click')) {\n return prefetchClickEvents\n }\n\n return regularEvents\n })(),\n },\n slots,\n )\n }\n },\n})\n\nexport default Link\n", "import { PollOptions, ReloadOptions, router } from '@inertiajs/core'\nimport { onMounted, onUnmounted } from 'vue'\n\nexport default function usePoll(\n interval: number,\n requestOptions: ReloadOptions = {},\n options: PollOptions = {\n keepAlive: false,\n autoStart: true,\n },\n): {\n stop: VoidFunction\n start: VoidFunction\n} {\n const { stop, start } = router.poll(interval, requestOptions, {\n ...options,\n autoStart: false,\n })\n\n onMounted(() => {\n if (options.autoStart ?? true) {\n start()\n }\n })\n\n onUnmounted(() => {\n stop()\n })\n\n return {\n stop,\n start,\n }\n}\n", "import { router, VisitOptions } from '@inertiajs/core'\nimport { onMounted, onUnmounted, ref, Ref } from 'vue'\n\nexport default function usePrefetch(options: VisitOptions = {}): {\n lastUpdatedAt: Ref<number | null>\n isPrefetching: Ref<boolean>\n isPrefetched: Ref<boolean>\n flush: () => void\n} {\n const isPrefetching = ref(false)\n const lastUpdatedAt = ref<number | null>(null)\n const isPrefetched = ref(false)\n\n const cached = typeof window === 'undefined' ? null : router.getCached(window.location.pathname, options)\n const inFlight = typeof window === 'undefined' ? null : router.getPrefetching(window.location.pathname, options)\n\n lastUpdatedAt.value = cached?.staleTimestamp || null\n\n isPrefetching.value = inFlight !== null\n isPrefetched.value = cached !== null\n\n let onPrefetchedListener: () => void\n let onPrefetchingListener: () => void\n\n onMounted(() => {\n onPrefetchingListener = router.on('prefetching', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n isPrefetching.value = true\n }\n })\n\n onPrefetchedListener = router.on('prefetched', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n isPrefetching.value = false\n isPrefetched.value = true\n }\n })\n })\n\n onUnmounted(() => {\n onPrefetchedListener()\n onPrefetchingListener()\n })\n\n return {\n lastUpdatedAt,\n isPrefetching,\n isPrefetched,\n flush: () => router.flush(window.location.pathname, options),\n }\n}\n", "import { router } from '@inertiajs/core'\nimport { cloneDeep } from 'lodash-es'\nimport { isReactive, reactive, ref, Ref, watch } from 'vue'\n\nexport default function useRemember<T extends object>(\n data: T & { __rememberable?: boolean; __remember?: Function; __restore?: Function },\n key?: string,\n): Ref<T> | T {\n if (typeof data === 'object' && data !== null && data.__rememberable === false) {\n return data\n }\n\n const restored = router.restore(key)\n const type = isReactive(data) ? reactive : ref\n const hasCallbacks = typeof data.__remember === 'function' && typeof data.__restore === 'function'\n const remembered = type(restored === undefined ? data : hasCallbacks ? data.__restore!(restored) : restored)\n\n watch(\n remembered,\n (newValue) => {\n router.remember(cloneDeep(hasCallbacks ? data.__remember!() : newValue), key)\n },\n { immediate: true, deep: true },\n )\n\n return remembered\n}\n", "import { ReloadOptions, router } from '@inertiajs/core'\nimport { defineComponent, h, PropType } from 'vue'\n\nexport default defineComponent({\n name: 'WhenVisible',\n props: {\n data: {\n type: [String, Array<String>],\n },\n params: {\n type: Object as PropType<ReloadOptions>,\n },\n buffer: {\n type: Number,\n default: 0,\n },\n as: {\n type: String,\n default: 'div',\n },\n always: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n loaded: false,\n fetching: false,\n observer: null as IntersectionObserver | null,\n }\n },\n unmounted() {\n this.observer?.disconnect()\n },\n mounted() {\n this.observer = new IntersectionObserver(\n (entries) => {\n if (!entries[0].isIntersecting) {\n return\n }\n\n if (!this.$props.always) {\n this.observer?.disconnect()\n }\n\n if (this.fetching) {\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 })\n },\n {\n rootMargin: `${this.$props.buffer}px`,\n },\n )\n\n this.observer.observe(this.$el.nextSibling)\n },\n methods: {\n getReloadParams(): Partial<ReloadOptions> {\n if (this.$props.data) {\n return {\n only: (Array.isArray(this.$props.data) ? this.$props.data : [this.$props.data]) as string[],\n }\n }\n\n if (!this.$props.params) {\n throw new Error('You must provide either a `data` or `params` prop.')\n }\n\n return this.$props.params\n },\n },\n render() {\n const els = []\n\n if (this.$props.always || !this.loaded) {\n els.push(h(this.$props.as))\n }\n\n if (!this.loaded) {\n els.push(this.$slots.fallback ? this.$slots.fallback() : null)\n } else if (this.$slots.default) {\n els.push(this.$slots.default())\n }\n\n return els\n },\n})\n"],
5
+ "mappings": "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",
6
+ "names": ["import_core", "import_core", "import_vue", "key", "import_core", "import_lodash_es", "data", "key", "page", "restored", "child", "layout", "import_core", "import_vue", "progress", "page", "module", "import_vue", "key", "import_core", "import_lodash_es", "import_vue", "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", "coreConfig"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inertiajs/vue3",
3
- "version": "2.2.9",
3
+ "version": "2.2.11",
4
4
  "license": "MIT",
5
5
  "description": "The Vue 3 adapter for Inertia.js",
6
6
  "contributors": [
@@ -56,7 +56,7 @@
56
56
  "dependencies": {
57
57
  "@types/lodash-es": "^4.17.12",
58
58
  "lodash-es": "^4.17.21",
59
- "@inertiajs/core": "2.2.9"
59
+ "@inertiajs/core": "2.2.11"
60
60
  },
61
61
  "scripts": {
62
62
  "build": "pnpm clean && ./build.js && tsc",
@@ -2,6 +2,7 @@ import { CreateInertiaAppOptionsForCSR, CreateInertiaAppOptionsForSSR, InertiaAp
2
2
  import { DefineComponent, Plugin, App as VueApp } from 'vue';
3
3
  import { renderToString } from 'vue/server-renderer';
4
4
  import { InertiaApp, InertiaAppProps } from './app';
5
+ import { VueInertiaAppConfig } from './types';
5
6
  type ComponentResolver = (name: string) => DefineComponent | Promise<DefineComponent> | {
6
7
  default: DefineComponent;
7
8
  };
@@ -11,8 +12,8 @@ type SetupOptions<ElementType, SharedProps extends PageProps> = {
11
12
  props: InertiaAppProps<SharedProps>;
12
13
  plugin: Plugin;
13
14
  };
14
- type InertiaAppOptionsForCSR<SharedProps extends PageProps> = CreateInertiaAppOptionsForCSR<SharedProps, ComponentResolver, SetupOptions<HTMLElement, SharedProps>, void>;
15
- type InertiaAppOptionsForSSR<SharedProps extends PageProps> = CreateInertiaAppOptionsForSSR<SharedProps, ComponentResolver, SetupOptions<null, SharedProps>, VueApp> & {
15
+ type InertiaAppOptionsForCSR<SharedProps extends PageProps> = CreateInertiaAppOptionsForCSR<SharedProps, ComponentResolver, SetupOptions<HTMLElement, SharedProps>, void, VueInertiaAppConfig>;
16
+ type InertiaAppOptionsForSSR<SharedProps extends PageProps> = CreateInertiaAppOptionsForSSR<SharedProps, ComponentResolver, SetupOptions<null, SharedProps>, VueApp, VueInertiaAppConfig> & {
16
17
  render: typeof renderToString;
17
18
  };
18
19
  export default function createInertiaApp<SharedProps extends PageProps = PageProps>(options: InertiaAppOptionsForCSR<SharedProps>): Promise<void>;
package/types/form.d.ts CHANGED
@@ -181,7 +181,7 @@ declare const Form: import("vue").DefineComponent<import("vue").ExtractPropTypes
181
181
  default: () => never[];
182
182
  };
183
183
  }>> & Readonly<{}>, {
184
- method: Method | "DELETE" | "GET" | "POST" | "PUT" | "PATCH" | undefined;
184
+ method: Method | "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | undefined;
185
185
  headers: Record<string, string> | undefined;
186
186
  errorBag: string | null | undefined;
187
187
  queryStringArrayFormat: "indices" | "brackets" | undefined;
package/types/index.d.ts CHANGED
@@ -12,3 +12,4 @@ export { default as usePoll } from './usePoll';
12
12
  export { default as usePrefetch } from './usePrefetch';
13
13
  export { default as useRemember } from './useRemember';
14
14
  export { default as WhenVisible } from './whenVisible';
15
+ export declare const config: import("@inertiajs/core").Config<import("@inertiajs/core").InertiaAppConfig>;
package/types/types.d.ts CHANGED
@@ -2,6 +2,7 @@ import { createHeadManager, Page, PageHandler, PageProps, router, SharedPageProp
2
2
  import { DefineComponent } from 'vue';
3
3
  import useForm from './useForm';
4
4
  export type VuePageHandlerArgs = Parameters<PageHandler<DefineComponent>>[0];
5
+ export type VueInertiaAppConfig = {};
5
6
  declare module '@inertiajs/core' {
6
7
  interface Router {
7
8
  form: typeof useForm;