@inertiajs/vue3 2.3.1 → 2.3.3
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 +17 -11
- package/dist/index.esm.js.map +2 -2
- package/dist/index.js +17 -11
- package/dist/index.js.map +2 -2
- package/package.json +2 -2
- package/types/index.d.ts +1 -1
- package/types/whenVisible.d.ts +7 -2
package/dist/index.esm.js
CHANGED
|
@@ -393,7 +393,7 @@ var App = defineComponent({
|
|
|
393
393
|
},
|
|
394
394
|
setup({ initialPage, initialComponent, resolveComponent, titleCallback, onHeadUpdate }) {
|
|
395
395
|
component.value = initialComponent ? markRaw(initialComponent) : void 0;
|
|
396
|
-
page.value = initialPage;
|
|
396
|
+
page.value = { ...initialPage, flash: initialPage.flash ?? {} };
|
|
397
397
|
key.value = void 0;
|
|
398
398
|
const isServer = typeof window === "undefined";
|
|
399
399
|
headManager = createHeadManager(isServer, titleCallback || ((title) => title), onHeadUpdate || (() => {
|
|
@@ -406,6 +406,9 @@ var App = defineComponent({
|
|
|
406
406
|
component.value = markRaw(options.component);
|
|
407
407
|
page.value = options.page;
|
|
408
408
|
key.value = options.preserveState ? key.value : Date.now();
|
|
409
|
+
},
|
|
410
|
+
onFlash: (flash) => {
|
|
411
|
+
page.value = { ...page.value, flash };
|
|
409
412
|
}
|
|
410
413
|
});
|
|
411
414
|
router3.on("navigate", () => headManager.forceUpdate());
|
|
@@ -458,7 +461,8 @@ function usePage() {
|
|
|
458
461
|
deepMergeProps: computed(() => page.value?.deepMergeProps),
|
|
459
462
|
matchPropsOn: computed(() => page.value?.matchPropsOn),
|
|
460
463
|
rememberedState: computed(() => page.value?.rememberedState),
|
|
461
|
-
encryptHistory: computed(() => page.value?.encryptHistory)
|
|
464
|
+
encryptHistory: computed(() => page.value?.encryptHistory),
|
|
465
|
+
flash: computed(() => page.value?.flash)
|
|
462
466
|
});
|
|
463
467
|
}
|
|
464
468
|
|
|
@@ -720,17 +724,17 @@ var Form = defineComponent3({
|
|
|
720
724
|
(value) => form.setValidationTimeout(value)
|
|
721
725
|
);
|
|
722
726
|
onBeforeUnmount(() => formEvents.forEach((e) => formElement.value?.removeEventListener(e, onFormUpdate)));
|
|
723
|
-
const getFormData = () => new FormData(formElement.value);
|
|
724
|
-
const getData = () => formDataToObject(getFormData());
|
|
725
|
-
const getUrlAndData = () => {
|
|
727
|
+
const getFormData = (submitter) => new FormData(formElement.value, submitter);
|
|
728
|
+
const getData = (submitter) => formDataToObject(getFormData(submitter));
|
|
729
|
+
const getUrlAndData = (submitter) => {
|
|
726
730
|
return mergeDataIntoQueryString(
|
|
727
731
|
method.value,
|
|
728
732
|
isUrlMethodPair(props.action) ? props.action.url : props.action,
|
|
729
|
-
getData(),
|
|
733
|
+
getData(submitter),
|
|
730
734
|
props.queryStringArrayFormat
|
|
731
735
|
);
|
|
732
736
|
};
|
|
733
|
-
const submit = () => {
|
|
737
|
+
const submit = (submitter) => {
|
|
734
738
|
const maybeReset = (resetOption) => {
|
|
735
739
|
if (!resetOption) {
|
|
736
740
|
return;
|
|
@@ -767,8 +771,9 @@ var Form = defineComponent3({
|
|
|
767
771
|
},
|
|
768
772
|
...props.options
|
|
769
773
|
};
|
|
770
|
-
const [url, data] = getUrlAndData();
|
|
774
|
+
const [url, data] = getUrlAndData(submitter);
|
|
771
775
|
form.transform(() => props.transform(data)).submit(method.value, url, submitOptions);
|
|
776
|
+
form.transform(getTransformedData);
|
|
772
777
|
};
|
|
773
778
|
const reset = (...fields) => {
|
|
774
779
|
resetFormFields(formElement.value, defaultData.value, fields);
|
|
@@ -837,7 +842,7 @@ var Form = defineComponent3({
|
|
|
837
842
|
method: method.value,
|
|
838
843
|
onSubmit: (event) => {
|
|
839
844
|
event.preventDefault();
|
|
840
|
-
submit();
|
|
845
|
+
submit(event.submitter);
|
|
841
846
|
},
|
|
842
847
|
inert: props.disableWhileProcessing && form.processing
|
|
843
848
|
},
|
|
@@ -1593,6 +1598,7 @@ import { router as router9 } from "@inertiajs/core";
|
|
|
1593
1598
|
import { defineComponent as defineComponent7, h as h6 } from "vue";
|
|
1594
1599
|
var whenVisible_default = defineComponent7({
|
|
1595
1600
|
name: "WhenVisible",
|
|
1601
|
+
slots: Object,
|
|
1596
1602
|
props: {
|
|
1597
1603
|
data: {
|
|
1598
1604
|
type: [String, Array]
|
|
@@ -1699,9 +1705,9 @@ var whenVisible_default = defineComponent7({
|
|
|
1699
1705
|
els.push(h6(this.$props.as));
|
|
1700
1706
|
}
|
|
1701
1707
|
if (!this.loaded) {
|
|
1702
|
-
els.push(this.$slots.fallback ? this.$slots.fallback() : null);
|
|
1708
|
+
els.push(this.$slots.fallback ? this.$slots.fallback({}) : null);
|
|
1703
1709
|
} else if (this.$slots.default) {
|
|
1704
|
-
els.push(this.$slots.default());
|
|
1710
|
+
els.push(this.$slots.default({ fetching: this.fetching }));
|
|
1705
1711
|
}
|
|
1706
1712
|
return els;
|
|
1707
1713
|
}
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts", "../src/app.ts", "../src/remember.ts", "../src/useForm.ts", "../src/createInertiaApp.ts", "../src/deferred.ts", "../src/form.ts", "../src/head.ts", "../src/infiniteScroll.ts", "../src/link.ts", "../src/usePoll.ts", "../src/usePrefetch.ts", "../src/useRemember.ts", "../src/whenVisible.ts"],
|
|
4
|
-
"sourcesContent": ["import { config as coreConfig } from '@inertiajs/core'\nimport { VueInertiaAppConfig } from './types'\n\nexport { progress, router } from '@inertiajs/core'\nexport { default as App, usePage } from './app'\nexport { default as createInertiaApp } from './createInertiaApp'\nexport { default as Deferred } from './deferred'\nexport { default as Form } from './form'\nexport { default as Head } from './head'\nexport { default as InfiniteScroll } from './infiniteScroll'\nexport { InertiaLinkProps, default as Link } from './link'\nexport * from './types'\nexport { InertiaForm, InertiaFormProps, default as useForm } from './useForm'\nexport { default as usePoll } from './usePoll'\nexport { default as usePrefetch } from './usePrefetch'\nexport { default as useRemember } from './useRemember'\nexport { default as WhenVisible } from './whenVisible'\n\nexport const config = coreConfig.extend<VueInertiaAppConfig>({})\n", "import {\n createHeadManager,\n HeadManager,\n HeadManagerOnUpdateCallback,\n HeadManagerTitleCallback,\n Page,\n PageProps,\n router,\n SharedPageProps,\n} from '@inertiajs/core'\nimport {\n computed,\n DefineComponent,\n defineComponent,\n h,\n markRaw,\n Plugin,\n PropType,\n reactive,\n ref,\n shallowRef,\n} from 'vue'\nimport remember from './remember'\nimport { VuePageHandlerArgs } from './types'\nimport useForm from './useForm'\n\nexport interface InertiaAppProps<SharedProps extends PageProps = PageProps> {\n initialPage: Page<SharedProps>\n initialComponent?: DefineComponent\n resolveComponent?: (name: string) => DefineComponent | Promise<DefineComponent>\n titleCallback?: HeadManagerTitleCallback\n onHeadUpdate?: HeadManagerOnUpdateCallback\n}\n\nexport type InertiaApp = DefineComponent<InertiaAppProps>\n\nconst component = ref<DefineComponent | undefined>(undefined)\nconst page = ref<Page>()\nconst layout = shallowRef(null)\nconst key = ref<number | undefined>(undefined)\nlet headManager: HeadManager\n\nconst App: InertiaApp = defineComponent({\n name: 'Inertia',\n props: {\n initialPage: {\n type: Object as PropType<Page>,\n required: true,\n },\n initialComponent: {\n type: Object as PropType<DefineComponent>,\n required: false,\n },\n resolveComponent: {\n type: Function as PropType<(name: string) => DefineComponent | Promise<DefineComponent>>,\n required: false,\n },\n titleCallback: {\n type: Function as PropType<HeadManagerTitleCallback>,\n required: false,\n default: (title: string) => title,\n },\n onHeadUpdate: {\n type: Function as PropType<HeadManagerOnUpdateCallback>,\n required: false,\n default: () => () => {},\n },\n },\n setup({ initialPage, initialComponent, resolveComponent, titleCallback, onHeadUpdate }: InertiaAppProps) {\n component.value = initialComponent ? markRaw(initialComponent) : undefined\n page.value = initialPage\n key.value = undefined\n\n const isServer = typeof window === 'undefined'\n headManager = createHeadManager(isServer, titleCallback || ((title: string) => title), onHeadUpdate || (() => {}))\n\n if (!isServer) {\n router.init<DefineComponent>({\n initialPage,\n resolveComponent: resolveComponent!,\n swapComponent: async (options: VuePageHandlerArgs) => {\n component.value = markRaw(options.component)\n page.value = options.page\n key.value = options.preserveState ? key.value : Date.now()\n },\n })\n\n router.on('navigate', () => headManager.forceUpdate())\n }\n\n return () => {\n if (component.value) {\n component.value.inheritAttrs = !!component.value.inheritAttrs\n\n const child = h(component.value, {\n ...page.value!.props,\n key: key.value,\n })\n\n if (layout.value) {\n component.value.layout = layout.value\n layout.value = null\n }\n\n if (component.value.layout) {\n if (typeof component.value.layout === 'function') {\n return component.value.layout(h, child)\n }\n\n return (Array.isArray(component.value.layout) ? component.value.layout : [component.value.layout])\n .concat(child)\n .reverse()\n .reduce((child, layout) => {\n layout.inheritAttrs = !!layout.inheritAttrs\n return h(layout, { ...page.value!.props }, () => child)\n })\n }\n\n return child\n }\n }\n },\n})\nexport default App\n\nexport const plugin: Plugin = {\n install(app) {\n router.form = useForm\n\n Object.defineProperty(app.config.globalProperties, '$inertia', { get: () => router })\n Object.defineProperty(app.config.globalProperties, '$page', { get: () => page.value })\n Object.defineProperty(app.config.globalProperties, '$headManager', { get: () => headManager })\n\n app.mixin(remember)\n },\n}\n\nexport function usePage<TPageProps extends PageProps = PageProps>(): Page<TPageProps & SharedPageProps> {\n return reactive({\n props: computed(() => page.value?.props),\n url: computed(() => page.value?.url),\n component: computed(() => page.value?.component),\n version: computed(() => page.value?.version),\n clearHistory: computed(() => page.value?.clearHistory),\n deferredProps: computed(() => page.value?.deferredProps),\n mergeProps: computed(() => page.value?.mergeProps),\n prependProps: computed(() => page.value?.prependProps),\n deepMergeProps: computed(() => page.value?.deepMergeProps),\n matchPropsOn: computed(() => page.value?.matchPropsOn),\n rememberedState: computed(() => page.value?.rememberedState),\n encryptHistory: computed(() => page.value?.encryptHistory),\n }) as Page<TPageProps>\n}\n", "import { router } from '@inertiajs/core'\nimport { cloneDeep } from 'lodash-es'\nimport { ComponentOptions } from 'vue'\n\nconst remember: ComponentOptions = {\n created() {\n if (!this.$options.remember) {\n return\n }\n\n if (Array.isArray(this.$options.remember)) {\n this.$options.remember = { data: this.$options.remember }\n }\n\n if (typeof this.$options.remember === 'string') {\n this.$options.remember = { data: [this.$options.remember] }\n }\n\n if (typeof this.$options.remember.data === 'string') {\n this.$options.remember = { data: [this.$options.remember.data] }\n }\n\n const rememberKey =\n this.$options.remember.key instanceof Function\n ? this.$options.remember.key.call(this)\n : this.$options.remember.key\n\n const restored = router.restore(rememberKey) as Record<string, unknown> | undefined\n\n const rememberable = this.$options.remember.data.filter((key: string) => {\n return !(this[key] !== null && typeof this[key] === 'object' && this[key].__rememberable === false)\n }) as string[]\n\n const hasCallbacks = (key: string) => {\n return (\n this[key] !== null &&\n typeof this[key] === 'object' &&\n typeof this[key].__remember === 'function' &&\n typeof this[key].__restore === 'function'\n )\n }\n\n rememberable.forEach((key: string) => {\n if (this[key] !== undefined && restored !== undefined && restored[key] !== undefined) {\n hasCallbacks(key) ? this[key].__restore(restored[key]) : (this[key] = restored[key])\n }\n\n this.$watch(\n key,\n () => {\n router.remember(\n rememberable.reduce(\n (data, key) => ({\n ...data,\n [key]: cloneDeep(hasCallbacks(key) ? this[key].__remember() : this[key]),\n }),\n {},\n ),\n rememberKey,\n )\n },\n { immediate: true, deep: true },\n )\n })\n },\n}\n\nexport default remember\n", "import {\n CancelToken,\n Errors,\n ErrorValue,\n FormDataErrors,\n FormDataKeys,\n FormDataType,\n FormDataValues,\n Method,\n Progress,\n RequestPayload,\n router,\n UrlMethodPair,\n UseFormArguments,\n UseFormSubmitArguments,\n UseFormSubmitOptions,\n UseFormTransformCallback,\n UseFormUtils,\n UseFormWithPrecognitionArguments,\n VisitOptions,\n} from '@inertiajs/core'\nimport {\n createValidator,\n NamedInputEvent,\n resolveName,\n toSimpleValidationErrors,\n ValidationConfig,\n Validator,\n} from 'laravel-precognition'\nimport { cloneDeep, get, has, isEqual, set } from 'lodash-es'\nimport { reactive, watch } from 'vue'\nimport { config } from '.'\n\nexport interface InertiaFormProps<TForm extends object> {\n isDirty: boolean\n errors: FormDataErrors<TForm>\n hasErrors: boolean\n processing: boolean\n progress: Progress | null\n wasSuccessful: boolean\n recentlySuccessful: boolean\n data(): TForm\n transform(callback: UseFormTransformCallback<TForm>): this\n defaults(): this\n defaults<T extends FormDataKeys<TForm>>(field: T, value: FormDataValues<TForm, T>): this\n defaults(fields: Partial<TForm>): this\n reset<K extends FormDataKeys<TForm>>(...fields: K[]): this\n clearErrors<K extends FormDataKeys<TForm>>(...fields: K[]): this\n resetAndClearErrors<K extends FormDataKeys<TForm>>(...fields: K[]): this\n setError<K extends FormDataKeys<TForm>>(field: K, value: ErrorValue): this\n setError(errors: FormDataErrors<TForm>): this\n submit: (...args: UseFormSubmitArguments) => void\n get(url: string, options?: UseFormSubmitOptions): void\n post(url: string, options?: UseFormSubmitOptions): void\n put(url: string, options?: UseFormSubmitOptions): void\n patch(url: string, options?: UseFormSubmitOptions): void\n delete(url: string, options?: UseFormSubmitOptions): void\n cancel(): void\n withPrecognition(...args: UseFormWithPrecognitionArguments): InertiaPrecognitiveForm<TForm>\n}\n\ntype PrecognitionValidationConfig<TKeys> = ValidationConfig & {\n only?: TKeys[] | Iterable<TKeys> | ArrayLike<TKeys>\n}\n\nexport interface InertiaFormValidationProps<TForm extends object> {\n invalid<K extends FormDataKeys<TForm>>(field: K): boolean\n setValidationTimeout(duration: number): this\n touch<K extends FormDataKeys<TForm>>(field: K | NamedInputEvent | Array<K>, ...fields: K[]): this\n touched<K extends FormDataKeys<TForm>>(field?: K): boolean\n valid<K extends FormDataKeys<TForm>>(field: K): boolean\n validate<K extends FormDataKeys<TForm>>(\n field?: K | NamedInputEvent | PrecognitionValidationConfig<K>,\n config?: PrecognitionValidationConfig<K>,\n ): this\n validateFiles(): this\n validating: boolean\n validator: () => Validator\n withAllErrors(): this\n withoutFileValidation(): this\n // Backward compatibility for easy migration from the original Precognition libraries\n setErrors(errors: FormDataErrors<TForm> | Record<string, string | string[]>): this\n forgetError<K extends FormDataKeys<TForm> | NamedInputEvent>(field: K): this\n}\n\ninterface InternalPrecognitionState {\n __touched: string[]\n __valid: string[]\n}\n\ninterface InternalRememberState<TForm extends object> {\n __rememberable: boolean\n __remember: () => { data: TForm; errors: FormDataErrors<TForm> }\n __restore: (restored: { data: TForm; errors: FormDataErrors<TForm> }) => void\n}\n\nexport type InertiaForm<TForm extends object> = TForm & InertiaFormProps<TForm>\nexport type InertiaPrecognitiveForm<TForm extends object> = InertiaForm<TForm> &\n InertiaFormValidationProps<TForm> &\n InternalPrecognitionState\n\nexport default function useForm<TForm extends FormDataType<TForm>>(\n method: Method | (() => Method),\n url: string | (() => string),\n data: TForm | (() => TForm),\n): InertiaPrecognitiveForm<TForm>\nexport default function useForm<TForm extends FormDataType<TForm>>(\n urlMethodPair: UrlMethodPair | (() => UrlMethodPair),\n data: TForm | (() => TForm),\n): InertiaPrecognitiveForm<TForm>\nexport default function useForm<TForm extends FormDataType<TForm>>(\n rememberKey: string,\n data: TForm | (() => TForm),\n): InertiaForm<TForm>\nexport default function useForm<TForm extends FormDataType<TForm>>(data: TForm | (() => TForm)): InertiaForm<TForm>\nexport default function useForm<TForm extends FormDataType<TForm>>(\n ...args: UseFormArguments<TForm>\n): InertiaForm<TForm> | InertiaPrecognitiveForm<TForm> {\n let { rememberKey, data, precognitionEndpoint } = UseFormUtils.parseUseFormArguments<TForm>(...args)\n\n const restored = rememberKey\n ? (router.restore(rememberKey) as { data: TForm; errors: Record<FormDataKeys<TForm>, ErrorValue> })\n : null\n let defaults = typeof data === 'function' ? cloneDeep(data()) : cloneDeep(data)\n let cancelToken: CancelToken | null = null\n let recentlySuccessfulTimeoutId: ReturnType<typeof setTimeout>\n let transform: UseFormTransformCallback<TForm> = (data) => data\n\n let validatorRef: Validator | null = null\n\n // Track if defaults was called manually during onSuccess to avoid\n // overriding user's custom defaults with automatic behavior.\n let defaultsCalledInOnSuccess = false\n\n const form = reactive<InertiaForm<TForm>>({\n ...(restored ? restored.data : cloneDeep(defaults)),\n isDirty: false,\n errors: (restored ? restored.errors : {}) as FormDataErrors<TForm>,\n hasErrors: false,\n processing: false,\n progress: null as Progress | null,\n wasSuccessful: false,\n recentlySuccessful: false,\n withPrecognition(...args: UseFormWithPrecognitionArguments): InertiaPrecognitiveForm<TForm> {\n precognitionEndpoint = UseFormUtils.createWayfinderCallback(...args)\n\n // Type assertion helper for accessing precognition state\n // We're dynamically adding precognition properties to 'this', so we assert the type\n const formWithPrecognition = this as any as InertiaPrecognitiveForm<TForm>\n\n let withAllErrors = false\n const validator = createValidator((client) => {\n const { method, url } = precognitionEndpoint!()\n const transformedData = cloneDeep(transform(this.data())) as Record<string, unknown>\n\n return client[method](url, transformedData)\n }, cloneDeep(defaults))\n\n validatorRef = validator\n\n validator\n .on('validatingChanged', () => {\n formWithPrecognition.validating = validator.validating()\n })\n .on('validatedChanged', () => {\n formWithPrecognition.__valid = validator.valid()\n })\n .on('touchedChanged', () => {\n formWithPrecognition.__touched = validator.touched()\n })\n .on('errorsChanged', () => {\n const validationErrors = withAllErrors ? validator.errors() : toSimpleValidationErrors(validator.errors())\n\n this.errors = {} as FormDataErrors<TForm>\n\n this.setError(validationErrors as FormDataErrors<TForm>)\n\n formWithPrecognition.__valid = validator.valid()\n })\n\n const tap = <T>(value: T, callback: (value: T) => unknown): T => {\n callback(value)\n return value\n }\n\n Object.assign(formWithPrecognition, {\n __touched: [],\n __valid: [],\n validating: false,\n validator: () => validator,\n withAllErrors: () => tap(formWithPrecognition, () => (withAllErrors = true)),\n valid: (field: string) => formWithPrecognition.__valid.includes(field),\n invalid: (field: string) => field in this.errors,\n setValidationTimeout: (duration: number) => tap(formWithPrecognition, () => validator.setTimeout(duration)),\n validateFiles: () => tap(formWithPrecognition, () => validator.validateFiles()),\n withoutFileValidation: () => tap(formWithPrecognition, () => validator.withoutFileValidation()),\n touch: (\n field: FormDataKeys<TForm> | NamedInputEvent | Array<FormDataKeys<TForm>>,\n ...fields: FormDataKeys<TForm>[]\n ) => {\n if (Array.isArray(field)) {\n validator.touch(field)\n } else if (typeof field === 'string') {\n validator.touch([field, ...fields])\n } else {\n validator.touch(field)\n }\n\n return formWithPrecognition\n },\n touched: (field?: string): boolean =>\n typeof field === 'string'\n ? formWithPrecognition.__touched.includes(field)\n : formWithPrecognition.__touched.length > 0,\n validate: (field?: string | NamedInputEvent | ValidationConfig, config?: ValidationConfig) => {\n // Handle config object passed as first argument\n if (typeof field === 'object' && !('target' in field)) {\n config = field\n field = undefined\n }\n\n if (field === undefined) {\n validator.validate(config)\n } else {\n const fieldName = resolveName(field)\n const transformedData = transform(this.data()) as Record<string, unknown>\n validator.validate(fieldName, get(transformedData, fieldName), config)\n }\n\n return formWithPrecognition\n },\n setErrors: (errors: FormDataErrors<TForm>) => tap(formWithPrecognition, () => this.setError(errors)),\n forgetError: (field: FormDataKeys<TForm> | NamedInputEvent) =>\n tap(formWithPrecognition, () =>\n this.clearErrors(resolveName(field as string | NamedInputEvent) as FormDataKeys<TForm>),\n ),\n })\n\n return formWithPrecognition\n },\n data() {\n return (Object.keys(defaults) as Array<FormDataKeys<TForm>>).reduce((carry, key) => {\n return set(carry, key, get(this, key))\n }, {} as Partial<TForm>) as TForm\n },\n transform(callback: UseFormTransformCallback<TForm>) {\n transform = callback\n\n return this\n },\n defaults(fieldOrFields?: FormDataKeys<TForm> | Partial<TForm>, maybeValue?: unknown) {\n if (typeof data === 'function') {\n throw new Error('You cannot call `defaults()` when using a function to define your form data.')\n }\n\n defaultsCalledInOnSuccess = true\n\n if (typeof fieldOrFields === 'undefined') {\n defaults = cloneDeep(this.data())\n this.isDirty = false\n } else {\n defaults =\n typeof fieldOrFields === 'string'\n ? set(cloneDeep(defaults), fieldOrFields, maybeValue)\n : Object.assign({}, cloneDeep(defaults), fieldOrFields)\n }\n\n validatorRef?.defaults(defaults)\n\n return this\n },\n reset(...fields: FormDataKeys<TForm>[]) {\n const resolvedData = typeof data === 'function' ? cloneDeep(data()) : cloneDeep(defaults)\n const clonedData = cloneDeep(resolvedData)\n if (fields.length === 0) {\n defaults = clonedData\n Object.assign(this, resolvedData)\n } else {\n ;(fields as Array<FormDataKeys<TForm>>)\n .filter((key) => has(clonedData, key))\n .forEach((key) => {\n set(defaults, key, get(clonedData, key))\n set(this, key, get(resolvedData, key))\n })\n }\n\n validatorRef?.reset(...fields)\n\n return this\n },\n setError(fieldOrFields: FormDataKeys<TForm> | FormDataErrors<TForm>, maybeValue?: ErrorValue) {\n const errors = typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : fieldOrFields\n\n Object.assign(this.errors, errors)\n\n this.hasErrors = Object.keys(this.errors).length > 0\n\n validatorRef?.setErrors(errors as Errors)\n\n return this\n },\n clearErrors(...fields: string[]) {\n this.errors = Object.keys(this.errors).reduce(\n (carry, field) => ({\n ...carry,\n ...(fields.length > 0 && !fields.includes(field) ? { [field]: (this.errors as Errors)[field] } : {}),\n }),\n {} as FormDataErrors<TForm>,\n )\n\n this.hasErrors = Object.keys(this.errors).length > 0\n\n if (validatorRef) {\n if (fields.length === 0) {\n validatorRef.setErrors({})\n } else {\n fields.forEach(validatorRef.forgetError)\n }\n }\n\n return this\n },\n resetAndClearErrors(...fields: FormDataKeys<TForm>[]) {\n this.reset(...fields)\n this.clearErrors(...fields)\n return this\n },\n submit(...args: UseFormSubmitArguments) {\n const { method, url, options } = UseFormUtils.parseSubmitArguments(args, precognitionEndpoint)\n\n defaultsCalledInOnSuccess = false\n\n const _options: VisitOptions = {\n ...options,\n onCancelToken: (token) => {\n cancelToken = token\n\n if (options.onCancelToken) {\n return options.onCancelToken(token)\n }\n },\n onBefore: (visit) => {\n this.wasSuccessful = false\n this.recentlySuccessful = false\n clearTimeout(recentlySuccessfulTimeoutId)\n\n if (options.onBefore) {\n return options.onBefore(visit)\n }\n },\n onStart: (visit) => {\n this.processing = true\n\n if (options.onStart) {\n return options.onStart(visit)\n }\n },\n onProgress: (event) => {\n this.progress = event ?? null\n\n if (options.onProgress) {\n return options.onProgress(event)\n }\n },\n onSuccess: async (page) => {\n this.processing = false\n this.progress = null\n this.clearErrors()\n this.wasSuccessful = true\n this.recentlySuccessful = true\n recentlySuccessfulTimeoutId = setTimeout(\n () => (this.recentlySuccessful = false),\n config.get('form.recentlySuccessfulDuration'),\n )\n\n const onSuccess = options.onSuccess ? await options.onSuccess(page) : null\n\n if (!defaultsCalledInOnSuccess) {\n defaults = cloneDeep(this.data())\n this.isDirty = false\n }\n\n return onSuccess\n },\n onError: (errors) => {\n this.processing = false\n this.progress = null\n this.clearErrors().setError(errors as FormDataErrors<TForm>)\n\n if (options.onError) {\n return options.onError(errors)\n }\n },\n onCancel: () => {\n this.processing = false\n this.progress = null\n\n if (options.onCancel) {\n return options.onCancel()\n }\n },\n onFinish: (visit) => {\n this.processing = false\n this.progress = null\n cancelToken = null\n\n if (options.onFinish) {\n return options.onFinish(visit)\n }\n },\n }\n\n const transformedData = transform(this.data()) as RequestPayload\n\n if (method === 'delete') {\n router.delete(url, { ..._options, data: transformedData })\n } else {\n router[method](url, transformedData, _options)\n }\n },\n get(url: string, options: VisitOptions) {\n this.submit('get', url, options)\n },\n post(url: string, options: VisitOptions) {\n this.submit('post', url, options)\n },\n put(url: string, options: VisitOptions) {\n this.submit('put', url, options)\n },\n patch(url: string, options: VisitOptions) {\n this.submit('patch', url, options)\n },\n delete(url: string, options: VisitOptions) {\n this.submit('delete', url, options)\n },\n cancel() {\n if (cancelToken) {\n cancelToken.cancel()\n }\n },\n __rememberable: rememberKey === null,\n __remember() {\n return { data: this.data(), errors: this.errors }\n },\n __restore(restored: { data: TForm; errors: FormDataErrors<TForm> }) {\n Object.assign(this, restored.data)\n this.setError(restored.errors)\n },\n })\n\n const typedForm = form as any as InertiaForm<TForm>\n\n watch(\n typedForm as typeof typedForm & InternalRememberState<TForm>,\n (newValue) => {\n typedForm.isDirty = !isEqual(typedForm.data(), defaults)\n if (rememberKey) {\n router.remember(cloneDeep(newValue.__remember()), rememberKey)\n }\n },\n { immediate: true, deep: true },\n )\n\n return precognitionEndpoint ? typedForm.withPrecognition(precognitionEndpoint) : typedForm\n}\n", "import {\n CreateInertiaAppOptionsForCSR,\n CreateInertiaAppOptionsForSSR,\n getInitialPageFromDOM,\n InertiaAppResponse,\n InertiaAppSSRResponse,\n Page,\n PageProps,\n router,\n setupProgress,\n} from '@inertiajs/core'\nimport { createSSRApp, DefineComponent, h, Plugin, App as VueApp } from 'vue'\nimport { renderToString } from 'vue/server-renderer'\nimport App, { InertiaApp, InertiaAppProps, plugin } from './app'\nimport { config } from './index'\nimport { VueInertiaAppConfig } from './types'\n\ntype ComponentResolver = (name: string) => DefineComponent | Promise<DefineComponent> | { default: DefineComponent }\n\ntype SetupOptions<ElementType, SharedProps extends PageProps> = {\n el: ElementType\n App: InertiaApp\n props: InertiaAppProps<SharedProps>\n plugin: Plugin\n}\n\ntype InertiaAppOptionsForCSR<SharedProps extends PageProps> = CreateInertiaAppOptionsForCSR<\n SharedProps,\n ComponentResolver,\n SetupOptions<HTMLElement, SharedProps>,\n void,\n VueInertiaAppConfig\n>\n\ntype InertiaAppOptionsForSSR<SharedProps extends PageProps> = CreateInertiaAppOptionsForSSR<\n SharedProps,\n ComponentResolver,\n SetupOptions<null, SharedProps>,\n VueApp,\n VueInertiaAppConfig\n> & {\n render: typeof renderToString\n}\n\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForCSR<SharedProps>,\n): Promise<void>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForSSR<SharedProps>,\n): Promise<InertiaAppSSRResponse>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>({\n id = 'app',\n resolve,\n setup,\n title,\n progress = {},\n page,\n render,\n defaults = {},\n}: InertiaAppOptionsForCSR<SharedProps> | InertiaAppOptionsForSSR<SharedProps>): InertiaAppResponse {\n config.replace(defaults)\n\n const isServer = typeof window === 'undefined'\n const useScriptElementForInitialPage = config.get('future.useScriptElementForInitialPage')\n const initialPage = page || getInitialPageFromDOM<Page<SharedProps>>(id, useScriptElementForInitialPage)!\n\n const resolveComponent = (name: string) => Promise.resolve(resolve(name)).then((module) => module.default || module)\n\n let head: string[] = []\n\n const vueApp = await Promise.all([\n resolveComponent(initialPage.component),\n router.decryptHistory().catch(() => {}),\n ]).then(([initialComponent]) => {\n const props = {\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback: title,\n }\n\n if (isServer) {\n const ssrSetup = setup as (options: SetupOptions<null, SharedProps>) => VueApp\n\n return ssrSetup({\n el: null,\n App,\n props: { ...props, onHeadUpdate: (elements: string[]) => (head = elements) },\n plugin,\n })\n }\n\n const csrSetup = setup as (options: SetupOptions<HTMLElement, SharedProps>) => void\n\n return csrSetup({\n el: document.getElementById(id)!,\n App,\n props,\n plugin,\n })\n })\n\n if (!isServer && progress) {\n setupProgress(progress)\n }\n\n if (isServer && render) {\n const element = () => {\n if (!useScriptElementForInitialPage) {\n return h('div', {\n id,\n 'data-page': JSON.stringify(initialPage),\n innerHTML: vueApp ? render(vueApp) : '',\n })\n }\n\n return [\n h('script', {\n 'data-page': id,\n type: 'application/json',\n innerHTML: JSON.stringify(initialPage).replace(/\\//g, '\\\\/'),\n }),\n h('div', {\n id,\n innerHTML: vueApp ? render(vueApp) : '',\n }),\n ]\n }\n\n const body = await render(\n createSSRApp({\n render: () => element(),\n }),\n )\n\n return { head, body }\n }\n}\n", "import { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'Deferred',\n props: {\n data: {\n type: [String, Array<String>],\n required: true,\n },\n },\n render() {\n const keys = (Array.isArray(this.$props.data) ? this.$props.data : [this.$props.data]) as string[]\n\n if (!this.$slots.fallback) {\n throw new Error('`<Deferred>` requires a `<template #fallback>` slot')\n }\n\n return keys.every((key) => this.$page.props[key] !== undefined) ? this.$slots.default?.() : this.$slots.fallback()\n },\n})\n", "import {\n Errors,\n FormComponentProps,\n FormComponentRef,\n FormComponentSlotProps,\n FormDataConvertible,\n formDataToObject,\n isUrlMethodPair,\n mergeDataIntoQueryString,\n Method,\n resetFormFields,\n UseFormUtils,\n VisitOptions,\n} from '@inertiajs/core'\nimport { NamedInputEvent, ValidationConfig } from 'laravel-precognition'\nimport { isEqual } from 'lodash-es'\nimport { computed, defineComponent, h, onBeforeUnmount, onMounted, PropType, ref, SlotsType, watch } from 'vue'\nimport useForm from './useForm'\n\ntype FormSubmitOptions = Omit<VisitOptions, 'data' | 'onPrefetched' | 'onPrefetching'>\n\nconst noop = () => undefined\n\nconst Form = defineComponent({\n name: 'Form',\n slots: Object as SlotsType<{\n default: FormComponentSlotProps\n }>,\n props: {\n action: {\n type: [String, Object] as PropType<FormComponentProps['action']>,\n default: '',\n },\n method: {\n type: String as PropType<FormComponentProps['method']>,\n default: 'get',\n },\n headers: {\n type: Object as PropType<FormComponentProps['headers']>,\n default: () => ({}),\n },\n queryStringArrayFormat: {\n type: String as PropType<FormComponentProps['queryStringArrayFormat']>,\n default: 'brackets',\n },\n errorBag: {\n type: [String, null] as PropType<FormComponentProps['errorBag']>,\n default: null,\n },\n showProgress: {\n type: Boolean,\n default: true,\n },\n transform: {\n type: Function as PropType<FormComponentProps['transform']>,\n default: (data: Record<string, FormDataConvertible>) => data,\n },\n options: {\n type: Object as PropType<FormComponentProps['options']>,\n default: () => ({}),\n },\n resetOnError: {\n type: [Boolean, Array] as PropType<FormComponentProps['resetOnError']>,\n default: false,\n },\n resetOnSuccess: {\n type: [Boolean, Array] as PropType<FormComponentProps['resetOnSuccess']>,\n default: false,\n },\n setDefaultsOnSuccess: {\n type: Boolean as PropType<FormComponentProps['setDefaultsOnSuccess']>,\n default: false,\n },\n onCancelToken: {\n type: Function as PropType<FormComponentProps['onCancelToken']>,\n default: noop,\n },\n onBefore: {\n type: Function as PropType<FormComponentProps['onBefore']>,\n default: noop,\n },\n onStart: {\n type: Function as PropType<FormComponentProps['onStart']>,\n default: noop,\n },\n onProgress: {\n type: Function as PropType<FormComponentProps['onProgress']>,\n default: noop,\n },\n onFinish: {\n type: Function as PropType<FormComponentProps['onFinish']>,\n default: noop,\n },\n onCancel: {\n type: Function as PropType<FormComponentProps['onCancel']>,\n default: noop,\n },\n onSuccess: {\n type: Function as PropType<FormComponentProps['onSuccess']>,\n default: noop,\n },\n onError: {\n type: Function as PropType<FormComponentProps['onError']>,\n default: noop,\n },\n onSubmitComplete: {\n type: Function as PropType<FormComponentProps['onSubmitComplete']>,\n default: noop,\n },\n disableWhileProcessing: {\n type: Boolean,\n default: false,\n },\n invalidateCacheTags: {\n type: [String, Array] as PropType<FormComponentProps['invalidateCacheTags']>,\n default: () => [],\n },\n validateFiles: {\n type: Boolean as PropType<FormComponentProps['validateFiles']>,\n default: false,\n },\n validationTimeout: {\n type: Number as PropType<FormComponentProps['validationTimeout']>,\n default: 1500,\n },\n withAllErrors: {\n type: Boolean as PropType<FormComponentProps['withAllErrors']>,\n default: false,\n },\n },\n setup(props, { slots, attrs, expose }) {\n const getTransformedData = (): Record<string, FormDataConvertible> => {\n const [_url, data] = getUrlAndData()\n\n return props.transform(data)\n }\n\n const form = useForm<Record<string, any>>({})\n .withPrecognition(\n () => method.value,\n () => getUrlAndData()[0],\n )\n .transform(getTransformedData)\n .setValidationTimeout(props.validationTimeout)\n\n if (props.validateFiles) {\n form.validateFiles()\n }\n\n if (props.withAllErrors) {\n form.withAllErrors()\n }\n\n const formElement = ref()\n const method = computed(() =>\n isUrlMethodPair(props.action) ? props.action.method : (props.method.toLowerCase() as Method),\n )\n\n // Can't use computed because FormData is not reactive\n const isDirty = ref(false)\n\n const defaultData = ref(new FormData())\n\n const onFormUpdate = (event: Event) => {\n // If the form is reset, we set isDirty to false as we already know it's back\n // to defaults. Also, the fields are updated after the reset event, so the\n // comparison will be incorrect unless we use nextTick/setTimeout.\n isDirty.value = event.type === 'reset' ? false : !isEqual(getData(), formDataToObject(defaultData.value))\n }\n\n const formEvents: Array<keyof HTMLElementEventMap> = ['input', 'change', 'reset']\n\n onMounted(() => {\n defaultData.value = getFormData()\n\n form.defaults(getData())\n\n formEvents.forEach((e) => formElement.value.addEventListener(e, onFormUpdate))\n })\n\n watch(\n () => props.validateFiles,\n (value) => (value ? form.validateFiles() : form.withoutFileValidation()),\n )\n\n watch(\n () => props.validationTimeout,\n (value) => form.setValidationTimeout(value),\n )\n\n onBeforeUnmount(() => formEvents.forEach((e) => formElement.value?.removeEventListener(e, onFormUpdate)))\n\n const getFormData = (): FormData => new FormData(formElement.value)\n\n // Convert the FormData to an object because we can't compare two FormData\n // instances directly (which is needed for isDirty), mergeDataIntoQueryString()\n // expects an object, and submitting a FormData instance directly causes problems with nested objects.\n const getData = (): Record<string, FormDataConvertible> => formDataToObject(getFormData())\n\n const getUrlAndData = (): [string, Record<string, FormDataConvertible>] => {\n return mergeDataIntoQueryString(\n method.value,\n isUrlMethodPair(props.action) ? props.action.url : props.action,\n getData(),\n props.queryStringArrayFormat,\n )\n }\n\n const submit = () => {\n const maybeReset = (resetOption: boolean | string[]) => {\n if (!resetOption) {\n return\n }\n\n if (resetOption === true) {\n reset()\n } else if (resetOption.length > 0) {\n reset(...resetOption)\n }\n }\n\n const submitOptions: FormSubmitOptions = {\n headers: props.headers,\n queryStringArrayFormat: props.queryStringArrayFormat,\n errorBag: props.errorBag,\n showProgress: props.showProgress,\n invalidateCacheTags: props.invalidateCacheTags,\n onCancelToken: props.onCancelToken,\n onBefore: props.onBefore,\n onStart: props.onStart,\n onProgress: props.onProgress,\n onFinish: props.onFinish,\n onCancel: props.onCancel,\n onSuccess: (...args) => {\n props.onSuccess?.(...args)\n props.onSubmitComplete?.(exposed)\n maybeReset(props.resetOnSuccess)\n\n if (props.setDefaultsOnSuccess === true) {\n defaults()\n }\n },\n onError: (...args) => {\n props.onError?.(...args)\n maybeReset(props.resetOnError)\n },\n ...props.options,\n }\n\n const [url, data] = getUrlAndData()\n\n // We need transform because we can't override the default data with different keys (by design)\n form.transform(() => props.transform(data)).submit(method.value, url, submitOptions)\n }\n\n const reset = (...fields: string[]) => {\n resetFormFields(formElement.value, defaultData.value, fields)\n\n form.reset(...fields)\n }\n\n const clearErrors = (...fields: string[]) => {\n form.clearErrors(...fields)\n }\n\n const resetAndClearErrors = (...fields: string[]) => {\n clearErrors(...fields)\n reset(...fields)\n }\n\n const defaults = () => {\n defaultData.value = getFormData()\n isDirty.value = false\n }\n\n const exposed = {\n get errors() {\n return form.errors\n },\n get hasErrors() {\n return form.hasErrors\n },\n get processing() {\n return form.processing\n },\n get progress() {\n return form.progress\n },\n get wasSuccessful() {\n return form.wasSuccessful\n },\n get recentlySuccessful() {\n return form.recentlySuccessful\n },\n get validating() {\n return form.validating\n },\n clearErrors,\n resetAndClearErrors,\n setError: (fieldOrFields: string | Record<string, string>, maybeValue?: string) =>\n form.setError((typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : fieldOrFields) as Errors),\n get isDirty() {\n return isDirty.value\n },\n reset,\n submit,\n defaults,\n getData,\n getFormData,\n\n // Precognition\n touch: form.touch,\n valid: form.valid,\n invalid: form.invalid,\n touched: form.touched,\n validate: (field?: string | NamedInputEvent | ValidationConfig, config?: ValidationConfig) =>\n form.validate(...UseFormUtils.mergeHeadersForValidation(field, config, props.headers)),\n validator: () => form.validator(),\n }\n\n expose<FormComponentRef>(exposed)\n\n return () => {\n return h(\n 'form',\n {\n ...attrs,\n ref: formElement,\n action: isUrlMethodPair(props.action) ? props.action.url : props.action,\n method: method.value,\n onSubmit: (event) => {\n event.preventDefault()\n submit()\n },\n inert: props.disableWhileProcessing && form.processing,\n },\n slots.default ? slots.default(exposed) : [],\n )\n }\n },\n})\n\nexport default Form\n", "import { escape } from 'lodash-es'\nimport { defineComponent, DefineComponent, VNode } from 'vue'\n\nexport type InertiaHead = DefineComponent<{\n title?: string\n}>\n\nconst Head: InertiaHead = defineComponent({\n props: {\n title: {\n type: String,\n required: false,\n },\n },\n data() {\n return {\n provider: this.$headManager.createProvider(),\n }\n },\n beforeUnmount() {\n this.provider.disconnect()\n },\n methods: {\n isUnaryTag(node: VNode) {\n return (\n typeof node.type === 'string' &&\n [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ].indexOf(node.type) > -1\n )\n },\n renderTagStart(node: VNode) {\n node.props = node.props || {}\n node.props[this.provider.preferredAttribute()] =\n node.props['head-key'] !== undefined ? node.props['head-key'] : ''\n\n const attrs = Object.keys(node.props).reduce((carry, name) => {\n const value = String(node.props![name])\n if (['key', 'head-key'].includes(name)) {\n return carry\n } else if (value === '') {\n return carry + ` ${name}`\n } else {\n return carry + ` ${name}=\"${escape(value)}\"`\n }\n }, '')\n\n return `<${String(node.type)}${attrs}>`\n },\n renderTagChildren(node: VNode): string {\n const { children } = node\n\n if (typeof children === 'string') {\n return children\n }\n\n if (Array.isArray(children)) {\n return children.reduce<string>((html, child) => {\n return html + this.renderTag(child as VNode)\n }, '')\n }\n\n return ''\n },\n isFunctionNode(node: VNode): node is VNode & { type: () => VNode } {\n return typeof node.type === 'function'\n },\n isComponentNode(node: VNode): node is VNode & { type: object } {\n return typeof node.type === 'object'\n },\n isCommentNode(node: VNode) {\n return /(comment|cmt)/i.test(node.type.toString())\n },\n isFragmentNode(node: VNode) {\n return /(fragment|fgt|symbol\\(\\))/i.test(node.type.toString())\n },\n isTextNode(node: VNode) {\n return /(text|txt)/i.test(node.type.toString())\n },\n renderTag(node: VNode): string {\n if (this.isTextNode(node)) {\n return String(node.children)\n } else if (this.isFragmentNode(node)) {\n return ''\n } else if (this.isCommentNode(node)) {\n return ''\n }\n\n let html = this.renderTagStart(node)\n\n if (node.children) {\n html += this.renderTagChildren(node)\n }\n\n if (!this.isUnaryTag(node)) {\n html += `</${String(node.type)}>`\n }\n\n return html\n },\n addTitleElement(elements: string[]) {\n if (this.title && !elements.find((tag) => tag.startsWith('<title'))) {\n elements.push(`<title ${this.provider.preferredAttribute()}>${this.title}</title>`)\n }\n\n return elements\n },\n renderNodes(nodes: VNode[]) {\n const elements = nodes\n .flatMap((node) => this.resolveNode(node))\n .map((node) => this.renderTag(node))\n .filter((node) => node)\n\n return this.addTitleElement(elements)\n },\n resolveNode(node: VNode): VNode | VNode[] {\n if (this.isFunctionNode(node)) {\n return this.resolveNode(node.type())\n } else if (this.isComponentNode(node)) {\n console.warn(`Using components in the <Head> component is not supported.`)\n return []\n } else if (this.isTextNode(node) && node.children) {\n return node\n } else if (this.isFragmentNode(node) && node.children) {\n return (node.children as VNode[]).flatMap((child) => this.resolveNode(child))\n } else if (this.isCommentNode(node)) {\n return []\n } else {\n return node\n }\n },\n },\n render() {\n this.provider.update(this.renderNodes(this.$slots.default ? this.$slots.default() : []))\n },\n})\n\nexport default Head\n", "import {\n getScrollableParent,\n InfiniteScrollActionSlotProps,\n InfiniteScrollComponentBaseProps,\n InfiniteScrollRef,\n InfiniteScrollSlotProps,\n useInfiniteScroll,\n} from '@inertiajs/core'\nimport { computed, defineComponent, Fragment, h, onMounted, onUnmounted, PropType, ref, SlotsType, watch } from 'vue'\n\n// Vue-specific element resolver\nconst resolveHTMLElement = (\n value: string | object | (() => HTMLElement | null),\n fallback: HTMLElement | null,\n): HTMLElement | null => {\n if (!value) {\n return fallback\n }\n\n // CSS Selector string\n if (typeof value === 'string') {\n return document.querySelector(value) as HTMLElement | null\n }\n\n // Function that returns an element\n if (typeof value === 'function') {\n return value() || null\n }\n\n return fallback\n}\n\nconst InfiniteScroll = defineComponent({\n name: 'InfiniteScroll',\n slots: Object as SlotsType<{\n default: InfiniteScrollSlotProps\n previous: InfiniteScrollActionSlotProps\n next: InfiniteScrollActionSlotProps\n loading: InfiniteScrollActionSlotProps\n }>,\n props: {\n data: {\n type: String as PropType<InfiniteScrollComponentBaseProps['data']>,\n required: true,\n },\n buffer: {\n type: Number as PropType<InfiniteScrollComponentBaseProps['buffer']>,\n default: 0,\n },\n onlyNext: {\n type: Boolean,\n default: false,\n },\n onlyPrevious: {\n type: Boolean,\n default: false,\n },\n as: {\n type: String as PropType<InfiniteScrollComponentBaseProps['as']>,\n default: 'div',\n },\n manual: {\n type: Boolean as PropType<InfiniteScrollComponentBaseProps['manual']>,\n default: false,\n },\n manualAfter: {\n type: Number as PropType<InfiniteScrollComponentBaseProps['manualAfter']>,\n default: 0,\n },\n preserveUrl: {\n type: Boolean as PropType<InfiniteScrollComponentBaseProps['preserveUrl']>,\n default: false,\n },\n reverse: {\n type: Boolean as PropType<InfiniteScrollComponentBaseProps['reverse']>,\n default: false,\n },\n autoScroll: {\n type: Boolean as PropType<InfiniteScrollComponentBaseProps['autoScroll']>,\n default: undefined,\n },\n itemsElement: {\n type: [String, Function, Object] as PropType<string | (() => HTMLElement | null | undefined)>,\n default: null,\n },\n startElement: {\n type: [String, Function, Object] as PropType<string | (() => HTMLElement | null | undefined)>,\n default: null,\n },\n endElement: {\n type: [String, Function, Object] as PropType<string | (() => HTMLElement | null | undefined)>,\n default: null,\n },\n },\n inheritAttrs: false,\n setup(props, { slots, attrs, expose }) {\n const itemsElementRef = ref<HTMLElement | null>(null)\n const startElementRef = ref<HTMLElement | null>(null)\n const endElementRef = ref<HTMLElement | null>(null)\n\n const itemsElement = computed<HTMLElement | null>(() =>\n resolveHTMLElement(props.itemsElement, itemsElementRef.value),\n )\n const scrollableParent = computed(() => getScrollableParent(itemsElement.value))\n const startElement = computed<HTMLElement | null>(() =>\n resolveHTMLElement(props.startElement, startElementRef.value),\n )\n const endElement = computed<HTMLElement | null>(() => resolveHTMLElement(props.endElement, endElementRef.value))\n\n const loadingPrevious = ref(false)\n const loadingNext = ref(false)\n const requestCount = ref(0)\n\n const {\n dataManager,\n elementManager,\n flush: flushInfiniteScroll,\n } = useInfiniteScroll({\n // Data\n getPropName: () => props.data,\n inReverseMode: () => props.reverse,\n shouldFetchNext: () => !props.onlyPrevious,\n shouldFetchPrevious: () => !props.onlyNext,\n shouldPreserveUrl: () => props.preserveUrl,\n\n // Elements\n getTriggerMargin: () => props.buffer,\n getStartElement: () => startElement.value!,\n getEndElement: () => endElement.value!,\n getItemsElement: () => itemsElement.value!,\n getScrollableParent: () => scrollableParent.value,\n\n // Request callbacks\n onBeforePreviousRequest: () => (loadingPrevious.value = true),\n onBeforeNextRequest: () => (loadingNext.value = true),\n onCompletePreviousRequest: () => {\n requestCount.value = dataManager.getRequestCount()\n loadingPrevious.value = false\n },\n onCompleteNextRequest: () => {\n requestCount.value = dataManager.getRequestCount()\n loadingNext.value = false\n },\n })\n\n requestCount.value = dataManager.getRequestCount()\n\n const autoLoad = computed<boolean>(() => !manualMode.value)\n const manualMode = computed<boolean>(\n () => props.manual || (props.manualAfter > 0 && requestCount.value >= props.manualAfter),\n )\n\n const scrollToBottom = () => {\n if (scrollableParent.value) {\n scrollableParent.value.scrollTo({\n top: scrollableParent.value.scrollHeight,\n behavior: 'instant',\n })\n } else {\n window.scrollTo({\n top: document.body.scrollHeight,\n behavior: 'instant',\n })\n }\n }\n\n onMounted(() => {\n elementManager.setupObservers()\n elementManager.processServerLoadedElements(dataManager.getLastLoadedPage())\n\n // autoScroll defaults to reverse value if not explicitly set\n const shouldAutoScroll = props.autoScroll !== undefined ? props.autoScroll : props.reverse\n\n if (shouldAutoScroll) {\n scrollToBottom()\n }\n\n if (autoLoad.value) {\n elementManager.enableTriggers()\n }\n })\n\n onUnmounted(flushInfiniteScroll)\n\n watch(\n () => [autoLoad.value, props.onlyNext, props.onlyPrevious],\n ([enabled]) => {\n enabled ? elementManager.enableTriggers() : elementManager.disableTriggers()\n },\n )\n\n expose<InfiniteScrollRef>({\n fetchNext: dataManager.fetchNext,\n fetchPrevious: dataManager.fetchPrevious,\n hasPrevious: dataManager.hasPrevious,\n hasNext: dataManager.hasNext,\n })\n\n return () => {\n const renderElements = []\n\n const sharedExposed: Pick<\n InfiniteScrollActionSlotProps,\n 'loadingPrevious' | 'loadingNext' | 'hasPrevious' | 'hasNext'\n > = {\n loadingPrevious: loadingPrevious.value,\n loadingNext: loadingNext.value,\n hasPrevious: dataManager.hasPrevious(),\n hasNext: dataManager.hasNext(),\n }\n\n // Only render previous trigger if not using custom element\n if (!props.startElement) {\n const headerAutoMode = autoLoad.value && !props.onlyNext\n const exposedPrevious: InfiniteScrollActionSlotProps = {\n loading: loadingPrevious.value,\n fetch: dataManager.fetchPrevious,\n autoMode: headerAutoMode,\n manualMode: !headerAutoMode,\n hasMore: dataManager.hasPrevious(),\n ...sharedExposed,\n }\n\n renderElements.push(\n h(\n 'div',\n { ref: startElementRef },\n slots.previous\n ? slots.previous(exposedPrevious)\n : loadingPrevious.value\n ? slots.loading?.(exposedPrevious)\n : undefined,\n ),\n )\n }\n\n renderElements.push(\n h(\n props.as,\n { ...attrs, ref: itemsElementRef },\n slots.default?.({\n loading: loadingPrevious.value || loadingNext.value,\n loadingPrevious: loadingPrevious.value,\n loadingNext: loadingNext.value,\n }),\n ),\n )\n\n // Only render next trigger if not using custom element\n if (!props.endElement) {\n const footerAutoMode = autoLoad.value && !props.onlyPrevious\n const exposedNext: InfiniteScrollActionSlotProps = {\n loading: loadingNext.value,\n fetch: dataManager.fetchNext,\n autoMode: footerAutoMode,\n manualMode: !footerAutoMode,\n hasMore: dataManager.hasNext(),\n ...sharedExposed,\n }\n\n renderElements.push(\n h(\n 'div',\n { ref: endElementRef },\n slots.next ? slots.next(exposedNext) : loadingNext.value ? slots.loading?.(exposedNext) : undefined,\n ),\n )\n }\n\n return h(Fragment, {}, props.reverse ? [...renderElements].reverse() : renderElements)\n }\n },\n})\n\nexport default InfiniteScroll\n", "import {\n ActiveVisit,\n isUrlMethodPair,\n LinkComponentBaseProps,\n LinkPrefetchOption,\n mergeDataIntoQueryString,\n Method,\n PendingVisit,\n router,\n shouldIntercept,\n shouldNavigate,\n} from '@inertiajs/core'\nimport { Component, computed, defineComponent, DefineComponent, h, onMounted, onUnmounted, PropType, ref } from 'vue'\nimport { config } from '.'\n\nconst noop = () => {}\n\nexport interface InertiaLinkProps extends LinkComponentBaseProps {\n as?: string | Component\n onClick?: (event: MouseEvent) => void\n}\n\ntype InertiaLink = DefineComponent<InertiaLinkProps>\n\nconst Link: InertiaLink = defineComponent({\n name: 'Link',\n props: {\n as: {\n type: [String, Object] as PropType<InertiaLinkProps['as']>,\n default: 'a',\n },\n data: {\n type: Object as PropType<InertiaLinkProps['data']>,\n default: () => ({}),\n },\n href: {\n type: [String, Object] as PropType<InertiaLinkProps['href']>,\n default: '',\n },\n method: {\n type: String as PropType<InertiaLinkProps['method']>,\n default: 'get',\n },\n replace: {\n type: Boolean as PropType<InertiaLinkProps['replace']>,\n default: false,\n },\n preserveScroll: {\n type: [Boolean, String, Function] as PropType<InertiaLinkProps['preserveScroll']>,\n default: false,\n },\n preserveState: {\n type: [Boolean, String, Function] as PropType<InertiaLinkProps['preserveState']>,\n default: null,\n },\n preserveUrl: {\n type: Boolean as PropType<InertiaLinkProps['preserveUrl']>,\n default: false,\n },\n only: {\n type: Array as PropType<InertiaLinkProps['only']>,\n default: () => [],\n },\n except: {\n type: Array as PropType<InertiaLinkProps['except']>,\n default: () => [],\n },\n headers: {\n type: Object as PropType<InertiaLinkProps['headers']>,\n default: () => ({}),\n },\n queryStringArrayFormat: {\n type: String as PropType<InertiaLinkProps['queryStringArrayFormat']>,\n default: 'brackets',\n },\n async: {\n type: Boolean as PropType<InertiaLinkProps['async']>,\n default: false,\n },\n prefetch: {\n type: [Boolean, String, Array] as PropType<InertiaLinkProps['prefetch']>,\n default: false,\n },\n cacheFor: {\n type: [Number, String, Array] as PropType<InertiaLinkProps['cacheFor']>,\n default: 0,\n },\n onStart: {\n type: Function as PropType<InertiaLinkProps['onStart']>,\n default: noop,\n },\n onProgress: {\n type: Function as PropType<InertiaLinkProps['onProgress']>,\n default: noop,\n },\n onFinish: {\n type: Function as PropType<InertiaLinkProps['onFinish']>,\n default: noop,\n },\n onBefore: {\n type: Function as PropType<InertiaLinkProps['onBefore']>,\n default: noop,\n },\n onCancel: {\n type: Function as PropType<InertiaLinkProps['onCancel']>,\n default: noop,\n },\n onSuccess: {\n type: Function as PropType<InertiaLinkProps['onSuccess']>,\n default: noop,\n },\n onError: {\n type: Function as PropType<InertiaLinkProps['onError']>,\n default: noop,\n },\n onCancelToken: {\n type: Function as PropType<InertiaLinkProps['onCancelToken']>,\n default: noop,\n },\n onPrefetching: {\n type: Function as PropType<InertiaLinkProps['onPrefetching']>,\n default: noop,\n },\n onPrefetched: {\n type: Function as PropType<InertiaLinkProps['onPrefetched']>,\n default: noop,\n },\n cacheTags: {\n type: [String, Array] as PropType<InertiaLinkProps['cacheTags']>,\n default: () => [],\n },\n viewTransition: {\n type: [Boolean, Object] as PropType<InertiaLinkProps['viewTransition']>,\n default: false,\n },\n },\n setup(props, { slots, attrs }) {\n const inFlightCount = ref(0)\n const hoverTimeout = ref<ReturnType<typeof setTimeout>>()\n\n const prefetchModes = computed<LinkPrefetchOption[]>(() => {\n if (props.prefetch === true) {\n return ['hover']\n }\n\n if (props.prefetch === false) {\n return []\n }\n\n if (Array.isArray(props.prefetch)) {\n return props.prefetch\n }\n\n return [props.prefetch] as LinkPrefetchOption[]\n })\n\n const cacheForValue = computed(() => {\n if (props.cacheFor !== 0) {\n // If they've provided a value, respect it\n return props.cacheFor\n }\n\n if (prefetchModes.value.length === 1 && prefetchModes.value[0] === 'click') {\n // If they've only provided a prefetch mode of 'click',\n // we should only prefetch for the next request but not keep it around\n return 0\n }\n\n // Otherwise, default to 30 seconds\n return config.get('prefetch.cacheFor')\n })\n\n onMounted(() => {\n if (prefetchModes.value.includes('mount')) {\n prefetch()\n }\n })\n\n onUnmounted(() => {\n clearTimeout(hoverTimeout.value)\n })\n\n const method = computed(() =>\n isUrlMethodPair(props.href) ? props.href.method : ((props.method ?? 'get').toLowerCase() as Method),\n )\n const as = computed(() => {\n if (typeof props.as !== 'string' || props.as.toLowerCase() !== 'a') {\n // Custom component or element\n return props.as\n }\n\n return method.value !== 'get' ? 'button' : props.as.toLowerCase()\n })\n const mergeDataArray = computed(() =>\n mergeDataIntoQueryString(\n method.value,\n isUrlMethodPair(props.href) ? props.href.url : (props.href as string),\n props.data || {},\n props.queryStringArrayFormat,\n ),\n )\n const href = computed(() => mergeDataArray.value[0])\n const data = computed(() => mergeDataArray.value[1])\n\n const elProps = computed(() => {\n if (as.value === 'button') {\n return { type: 'button' }\n }\n\n if (as.value === 'a' || typeof as.value !== 'string') {\n return { href: href.value }\n }\n\n return {}\n })\n\n const baseParams = computed(() => ({\n data: data.value,\n method: method.value,\n replace: props.replace,\n preserveScroll: props.preserveScroll,\n preserveState: props.preserveState ?? method.value !== 'get',\n preserveUrl: props.preserveUrl,\n only: props.only,\n except: props.except,\n headers: props.headers,\n async: props.async,\n }))\n\n const visitParams = computed(() => ({\n ...baseParams.value,\n viewTransition: props.viewTransition,\n onCancelToken: props.onCancelToken,\n onBefore: props.onBefore,\n onStart: (visit: PendingVisit) => {\n inFlightCount.value++\n props.onStart?.(visit)\n },\n onProgress: props.onProgress,\n onFinish: (visit: ActiveVisit) => {\n inFlightCount.value--\n props.onFinish?.(visit)\n },\n onCancel: props.onCancel,\n onSuccess: props.onSuccess,\n onError: props.onError,\n }))\n\n const prefetch = () => {\n router.prefetch(\n href.value,\n {\n ...baseParams.value,\n onPrefetching: props.onPrefetching,\n onPrefetched: props.onPrefetched,\n },\n {\n cacheFor: cacheForValue.value,\n cacheTags: props.cacheTags,\n },\n )\n }\n\n const regularEvents = {\n onClick: (event: MouseEvent) => {\n if (shouldIntercept(event)) {\n event.preventDefault()\n router.visit(href.value, visitParams.value)\n }\n },\n }\n\n const prefetchHoverEvents = {\n onMouseenter: () => {\n hoverTimeout.value = setTimeout(() => {\n prefetch()\n }, config.get('prefetch.hoverDelay'))\n },\n onMouseleave: () => {\n clearTimeout(hoverTimeout.value)\n },\n onClick: regularEvents.onClick,\n }\n\n const prefetchClickEvents = {\n onMousedown: (event: MouseEvent) => {\n if (shouldIntercept(event)) {\n event.preventDefault()\n prefetch()\n }\n },\n onKeydown: (event: KeyboardEvent) => {\n if (shouldNavigate(event)) {\n event.preventDefault()\n prefetch()\n }\n },\n onMouseup: (event: MouseEvent) => {\n if (shouldIntercept(event)) {\n event.preventDefault()\n router.visit(href.value, visitParams.value)\n }\n },\n onKeyup: (event: KeyboardEvent) => {\n if (shouldNavigate(event)) {\n event.preventDefault()\n router.visit(href.value, visitParams.value)\n }\n },\n onClick: (event: MouseEvent) => {\n if (shouldIntercept(event)) {\n // Let the mouseup/keyup event handle the visit\n event.preventDefault()\n }\n },\n }\n\n return () => {\n return h(\n as.value as string | Component,\n {\n ...attrs,\n ...elProps.value,\n 'data-loading': inFlightCount.value > 0 ? '' : undefined,\n ...(() => {\n if (prefetchModes.value.includes('hover')) {\n return prefetchHoverEvents\n }\n\n if (prefetchModes.value.includes('click')) {\n return prefetchClickEvents\n }\n\n return regularEvents\n })(),\n },\n slots,\n )\n }\n },\n})\n\nexport default Link\n", "import { PollOptions, ReloadOptions, router } from '@inertiajs/core'\nimport { onMounted, onUnmounted } from 'vue'\n\nexport default function usePoll(\n interval: number,\n requestOptions: ReloadOptions = {},\n options: PollOptions = {\n keepAlive: false,\n autoStart: true,\n },\n): {\n stop: VoidFunction\n start: VoidFunction\n} {\n const { stop, start } = router.poll(interval, requestOptions, {\n ...options,\n autoStart: false,\n })\n\n onMounted(() => {\n if (options.autoStart ?? true) {\n start()\n }\n })\n\n onUnmounted(() => {\n stop()\n })\n\n return {\n stop,\n start,\n }\n}\n", "import { router, VisitOptions } from '@inertiajs/core'\nimport { onMounted, onUnmounted, ref, Ref } from 'vue'\n\nexport default function usePrefetch(options: VisitOptions = {}): {\n lastUpdatedAt: Ref<number | null>\n isPrefetching: Ref<boolean>\n isPrefetched: Ref<boolean>\n flush: () => void\n} {\n const isPrefetching = ref(false)\n const lastUpdatedAt = ref<number | null>(null)\n const isPrefetched = ref(false)\n\n const cached = typeof window === 'undefined' ? null : router.getCached(window.location.pathname, options)\n const inFlight = typeof window === 'undefined' ? null : router.getPrefetching(window.location.pathname, options)\n\n lastUpdatedAt.value = cached?.staleTimestamp || null\n\n isPrefetching.value = inFlight !== null\n isPrefetched.value = cached !== null\n\n let onPrefetchedListener: () => void\n let onPrefetchingListener: () => void\n\n onMounted(() => {\n onPrefetchingListener = router.on('prefetching', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n isPrefetching.value = true\n }\n })\n\n onPrefetchedListener = router.on('prefetched', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n isPrefetching.value = false\n isPrefetched.value = true\n }\n })\n })\n\n onUnmounted(() => {\n onPrefetchedListener()\n onPrefetchingListener()\n })\n\n return {\n lastUpdatedAt,\n isPrefetching,\n isPrefetched,\n flush: () => router.flush(window.location.pathname, options),\n }\n}\n", "import { router } from '@inertiajs/core'\nimport { cloneDeep } from 'lodash-es'\nimport { isReactive, reactive, ref, Ref, watch } from 'vue'\n\nexport default function useRemember<T extends object>(\n data: T & { __rememberable?: boolean; __remember?: Function; __restore?: Function },\n key?: string,\n): Ref<T> | T {\n if (typeof data === 'object' && data !== null && data.__rememberable === false) {\n return data\n }\n\n const restored = router.restore(key)\n const type = isReactive(data) ? reactive : ref\n const hasCallbacks = typeof data.__remember === 'function' && typeof data.__restore === 'function'\n const remembered = type(restored === undefined ? data : hasCallbacks ? data.__restore!(restored) : restored)\n\n watch(\n remembered,\n (newValue) => {\n router.remember(cloneDeep(hasCallbacks ? data.__remember!() : newValue), key)\n },\n { immediate: true, deep: true },\n )\n\n return remembered\n}\n", "import { ReloadOptions, router } from '@inertiajs/core'\nimport { defineComponent, h, PropType } from 'vue'\nimport { usePage } from './app'\n\nexport default defineComponent({\n name: 'WhenVisible',\n props: {\n data: {\n type: [String, Array<String>],\n },\n params: {\n type: Object as PropType<ReloadOptions>,\n },\n buffer: {\n type: Number,\n default: 0,\n },\n as: {\n type: String,\n default: 'div',\n },\n always: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n loaded: false,\n fetching: false,\n observer: null as IntersectionObserver | null,\n }\n },\n unmounted() {\n this.observer?.disconnect()\n },\n computed: {\n keys(): string[] {\n return this.data ? ((Array.isArray(this.data) ? this.data : [this.data]) as string[]) : []\n },\n },\n created() {\n const page = usePage()\n\n this.$watch(\n () => this.keys.map((key) => page.props[key]),\n () => {\n const exists = this.keys.length > 0 && this.keys.every((key) => page.props[key] !== undefined)\n this.loaded = exists\n\n if (exists && !this.always) {\n return\n }\n\n this.$nextTick(this.registerObserver)\n },\n { immediate: true },\n )\n },\n methods: {\n registerObserver() {\n this.observer?.disconnect()\n\n this.observer = new IntersectionObserver(\n (entries) => {\n if (!entries[0].isIntersecting) {\n return\n }\n\n if (this.fetching) {\n return\n }\n\n if (!this.always && this.loaded) {\n return\n }\n\n this.fetching = true\n\n const reloadParams = this.getReloadParams()\n\n router.reload({\n ...reloadParams,\n onStart: (e) => {\n this.fetching = true\n reloadParams.onStart?.(e)\n },\n onFinish: (e) => {\n this.loaded = true\n this.fetching = false\n reloadParams.onFinish?.(e)\n\n if (!this.always) {\n this.observer?.disconnect()\n }\n },\n })\n },\n {\n rootMargin: `${this.$props.buffer}px`,\n },\n )\n\n this.observer.observe(this.$el.nextSibling)\n },\n getReloadParams(): Partial<ReloadOptions> {\n if (this.$props.data) {\n return {\n only: (Array.isArray(this.$props.data) ? this.$props.data : [this.$props.data]) as string[],\n }\n }\n\n if (!this.$props.params) {\n throw new Error('You must provide either a `data` or `params` prop.')\n }\n\n return this.$props.params\n },\n },\n render() {\n const els = []\n\n if (this.$props.always || !this.loaded) {\n els.push(h(this.$props.as))\n }\n\n if (!this.loaded) {\n els.push(this.$slots.fallback ? this.$slots.fallback() : null)\n } else if (this.$slots.default) {\n els.push(this.$slots.default())\n }\n\n return els\n },\n})\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import { config as coreConfig } from '@inertiajs/core'\nimport { VueInertiaAppConfig } from './types'\n\nexport { progress, router } from '@inertiajs/core'\nexport { default as App, usePage } from './app'\nexport { default as createInertiaApp } from './createInertiaApp'\nexport { default as Deferred } from './deferred'\nexport { default as Form } from './form'\nexport { default as Head } from './head'\nexport { default as InfiniteScroll } from './infiniteScroll'\nexport { InertiaLinkProps, default as Link } from './link'\nexport * from './types'\nexport { InertiaForm, InertiaFormProps, InertiaPrecognitiveForm, default as useForm } from './useForm'\nexport { default as usePoll } from './usePoll'\nexport { default as usePrefetch } from './usePrefetch'\nexport { default as useRemember } from './useRemember'\nexport { default as WhenVisible } from './whenVisible'\n\nexport const config = coreConfig.extend<VueInertiaAppConfig>({})\n", "import {\n createHeadManager,\n HeadManager,\n HeadManagerOnUpdateCallback,\n HeadManagerTitleCallback,\n Page,\n PageProps,\n router,\n SharedPageProps,\n} from '@inertiajs/core'\nimport {\n computed,\n DefineComponent,\n defineComponent,\n h,\n markRaw,\n Plugin,\n PropType,\n reactive,\n ref,\n shallowRef,\n} from 'vue'\nimport remember from './remember'\nimport { VuePageHandlerArgs } from './types'\nimport useForm from './useForm'\n\nexport interface InertiaAppProps<SharedProps extends PageProps = PageProps> {\n initialPage: Page<SharedProps>\n initialComponent?: DefineComponent\n resolveComponent?: (name: string) => DefineComponent | Promise<DefineComponent>\n titleCallback?: HeadManagerTitleCallback\n onHeadUpdate?: HeadManagerOnUpdateCallback\n}\n\nexport type InertiaApp = DefineComponent<InertiaAppProps>\n\nconst component = ref<DefineComponent | undefined>(undefined)\nconst page = ref<Page>()\nconst layout = shallowRef(null)\nconst key = ref<number | undefined>(undefined)\nlet headManager: HeadManager\n\nconst App: InertiaApp = defineComponent({\n name: 'Inertia',\n props: {\n initialPage: {\n type: Object as PropType<Page>,\n required: true,\n },\n initialComponent: {\n type: Object as PropType<DefineComponent>,\n required: false,\n },\n resolveComponent: {\n type: Function as PropType<(name: string) => DefineComponent | Promise<DefineComponent>>,\n required: false,\n },\n titleCallback: {\n type: Function as PropType<HeadManagerTitleCallback>,\n required: false,\n default: (title: string) => title,\n },\n onHeadUpdate: {\n type: Function as PropType<HeadManagerOnUpdateCallback>,\n required: false,\n default: () => () => {},\n },\n },\n setup({ initialPage, initialComponent, resolveComponent, titleCallback, onHeadUpdate }: InertiaAppProps) {\n component.value = initialComponent ? markRaw(initialComponent) : undefined\n page.value = { ...initialPage, flash: initialPage.flash ?? {} }\n key.value = undefined\n\n const isServer = typeof window === 'undefined'\n headManager = createHeadManager(isServer, titleCallback || ((title: string) => title), onHeadUpdate || (() => {}))\n\n if (!isServer) {\n router.init<DefineComponent>({\n initialPage,\n resolveComponent: resolveComponent!,\n swapComponent: async (options: VuePageHandlerArgs) => {\n component.value = markRaw(options.component)\n page.value = options.page\n key.value = options.preserveState ? key.value : Date.now()\n },\n onFlash: (flash) => {\n page.value = { ...page.value!, flash }\n },\n })\n\n router.on('navigate', () => headManager.forceUpdate())\n }\n\n return () => {\n if (component.value) {\n component.value.inheritAttrs = !!component.value.inheritAttrs\n\n const child = h(component.value, {\n ...page.value!.props,\n key: key.value,\n })\n\n if (layout.value) {\n component.value.layout = layout.value\n layout.value = null\n }\n\n if (component.value.layout) {\n if (typeof component.value.layout === 'function') {\n return component.value.layout(h, child)\n }\n\n return (Array.isArray(component.value.layout) ? component.value.layout : [component.value.layout])\n .concat(child)\n .reverse()\n .reduce((child, layout) => {\n layout.inheritAttrs = !!layout.inheritAttrs\n return h(layout, { ...page.value!.props }, () => child)\n })\n }\n\n return child\n }\n }\n },\n})\nexport default App\n\nexport const plugin: Plugin = {\n install(app) {\n router.form = useForm\n\n Object.defineProperty(app.config.globalProperties, '$inertia', { get: () => router })\n Object.defineProperty(app.config.globalProperties, '$page', { get: () => page.value })\n Object.defineProperty(app.config.globalProperties, '$headManager', { get: () => headManager })\n\n app.mixin(remember)\n },\n}\n\nexport function usePage<TPageProps extends PageProps = PageProps>(): Page<TPageProps & SharedPageProps> {\n return reactive({\n props: computed(() => page.value?.props),\n url: computed(() => page.value?.url),\n component: computed(() => page.value?.component),\n version: computed(() => page.value?.version),\n clearHistory: computed(() => page.value?.clearHistory),\n deferredProps: computed(() => page.value?.deferredProps),\n mergeProps: computed(() => page.value?.mergeProps),\n prependProps: computed(() => page.value?.prependProps),\n deepMergeProps: computed(() => page.value?.deepMergeProps),\n matchPropsOn: computed(() => page.value?.matchPropsOn),\n rememberedState: computed(() => page.value?.rememberedState),\n encryptHistory: computed(() => page.value?.encryptHistory),\n flash: computed(() => page.value?.flash),\n }) as Page<TPageProps>\n}\n", "import { router } from '@inertiajs/core'\nimport { cloneDeep } from 'lodash-es'\nimport { ComponentOptions } from 'vue'\n\nconst remember: ComponentOptions = {\n created() {\n if (!this.$options.remember) {\n return\n }\n\n if (Array.isArray(this.$options.remember)) {\n this.$options.remember = { data: this.$options.remember }\n }\n\n if (typeof this.$options.remember === 'string') {\n this.$options.remember = { data: [this.$options.remember] }\n }\n\n if (typeof this.$options.remember.data === 'string') {\n this.$options.remember = { data: [this.$options.remember.data] }\n }\n\n const rememberKey =\n this.$options.remember.key instanceof Function\n ? this.$options.remember.key.call(this)\n : this.$options.remember.key\n\n const restored = router.restore(rememberKey) as Record<string, unknown> | undefined\n\n const rememberable = this.$options.remember.data.filter((key: string) => {\n return !(this[key] !== null && typeof this[key] === 'object' && this[key].__rememberable === false)\n }) as string[]\n\n const hasCallbacks = (key: string) => {\n return (\n this[key] !== null &&\n typeof this[key] === 'object' &&\n typeof this[key].__remember === 'function' &&\n typeof this[key].__restore === 'function'\n )\n }\n\n rememberable.forEach((key: string) => {\n if (this[key] !== undefined && restored !== undefined && restored[key] !== undefined) {\n hasCallbacks(key) ? this[key].__restore(restored[key]) : (this[key] = restored[key])\n }\n\n this.$watch(\n key,\n () => {\n router.remember(\n rememberable.reduce(\n (data, key) => ({\n ...data,\n [key]: cloneDeep(hasCallbacks(key) ? this[key].__remember() : this[key]),\n }),\n {},\n ),\n rememberKey,\n )\n },\n { immediate: true, deep: true },\n )\n })\n },\n}\n\nexport default remember\n", "import {\n CancelToken,\n Errors,\n ErrorValue,\n FormDataErrors,\n FormDataKeys,\n FormDataType,\n FormDataValues,\n Method,\n Progress,\n RequestPayload,\n router,\n UrlMethodPair,\n UseFormArguments,\n UseFormSubmitArguments,\n UseFormSubmitOptions,\n UseFormTransformCallback,\n UseFormUtils,\n UseFormWithPrecognitionArguments,\n VisitOptions,\n} from '@inertiajs/core'\nimport {\n createValidator,\n NamedInputEvent,\n resolveName,\n toSimpleValidationErrors,\n ValidationConfig,\n Validator,\n} from 'laravel-precognition'\nimport { cloneDeep, get, has, isEqual, set } from 'lodash-es'\nimport { reactive, watch } from 'vue'\nimport { config } from '.'\n\nexport interface InertiaFormProps<TForm extends object> {\n isDirty: boolean\n errors: FormDataErrors<TForm>\n hasErrors: boolean\n processing: boolean\n progress: Progress | null\n wasSuccessful: boolean\n recentlySuccessful: boolean\n data(): TForm\n transform(callback: UseFormTransformCallback<TForm>): this\n defaults(): this\n defaults<T extends FormDataKeys<TForm>>(field: T, value: FormDataValues<TForm, T>): this\n defaults(fields: Partial<TForm>): this\n reset<K extends FormDataKeys<TForm>>(...fields: K[]): this\n clearErrors<K extends FormDataKeys<TForm>>(...fields: K[]): this\n resetAndClearErrors<K extends FormDataKeys<TForm>>(...fields: K[]): this\n setError<K extends FormDataKeys<TForm>>(field: K, value: ErrorValue): this\n setError(errors: FormDataErrors<TForm>): this\n submit: (...args: UseFormSubmitArguments) => void\n get(url: string, options?: UseFormSubmitOptions): void\n post(url: string, options?: UseFormSubmitOptions): void\n put(url: string, options?: UseFormSubmitOptions): void\n patch(url: string, options?: UseFormSubmitOptions): void\n delete(url: string, options?: UseFormSubmitOptions): void\n cancel(): void\n withPrecognition(...args: UseFormWithPrecognitionArguments): InertiaPrecognitiveForm<TForm>\n}\n\ntype PrecognitionValidationConfig<TKeys> = ValidationConfig & {\n only?: TKeys[] | Iterable<TKeys> | ArrayLike<TKeys>\n}\n\nexport interface InertiaFormValidationProps<TForm extends object> {\n invalid<K extends FormDataKeys<TForm>>(field: K): boolean\n setValidationTimeout(duration: number): this\n touch<K extends FormDataKeys<TForm>>(field: K | NamedInputEvent | Array<K>, ...fields: K[]): this\n touched<K extends FormDataKeys<TForm>>(field?: K): boolean\n valid<K extends FormDataKeys<TForm>>(field: K): boolean\n validate<K extends FormDataKeys<TForm>>(\n field?: K | NamedInputEvent | PrecognitionValidationConfig<K>,\n config?: PrecognitionValidationConfig<K>,\n ): this\n validateFiles(): this\n validating: boolean\n validator: () => Validator\n withAllErrors(): this\n withoutFileValidation(): this\n // Backward compatibility for easy migration from the original Precognition libraries\n setErrors(errors: FormDataErrors<TForm> | Record<string, string | string[]>): this\n forgetError<K extends FormDataKeys<TForm> | NamedInputEvent>(field: K): this\n}\n\ninterface InternalPrecognitionState {\n __touched: string[]\n __valid: string[]\n}\n\ninterface InternalRememberState<TForm extends object> {\n __rememberable: boolean\n __remember: () => { data: TForm; errors: FormDataErrors<TForm> }\n __restore: (restored: { data: TForm; errors: FormDataErrors<TForm> }) => void\n}\n\nexport type InertiaForm<TForm extends object> = TForm & InertiaFormProps<TForm>\nexport type InertiaPrecognitiveForm<TForm extends object> = InertiaForm<TForm> &\n InertiaFormValidationProps<TForm> &\n InternalPrecognitionState\n\nexport default function useForm<TForm extends FormDataType<TForm>>(\n method: Method | (() => Method),\n url: string | (() => string),\n data: TForm | (() => TForm),\n): InertiaPrecognitiveForm<TForm>\nexport default function useForm<TForm extends FormDataType<TForm>>(\n urlMethodPair: UrlMethodPair | (() => UrlMethodPair),\n data: TForm | (() => TForm),\n): InertiaPrecognitiveForm<TForm>\nexport default function useForm<TForm extends FormDataType<TForm>>(\n rememberKey: string,\n data: TForm | (() => TForm),\n): InertiaForm<TForm>\nexport default function useForm<TForm extends FormDataType<TForm>>(data: TForm | (() => TForm)): InertiaForm<TForm>\nexport default function useForm<TForm extends FormDataType<TForm>>(\n ...args: UseFormArguments<TForm>\n): InertiaForm<TForm> | InertiaPrecognitiveForm<TForm> {\n let { rememberKey, data, precognitionEndpoint } = UseFormUtils.parseUseFormArguments<TForm>(...args)\n\n const restored = rememberKey\n ? (router.restore(rememberKey) as { data: TForm; errors: Record<FormDataKeys<TForm>, ErrorValue> })\n : null\n let defaults = typeof data === 'function' ? cloneDeep(data()) : cloneDeep(data)\n let cancelToken: CancelToken | null = null\n let recentlySuccessfulTimeoutId: ReturnType<typeof setTimeout>\n let transform: UseFormTransformCallback<TForm> = (data) => data\n\n let validatorRef: Validator | null = null\n\n // Track if defaults was called manually during onSuccess to avoid\n // overriding user's custom defaults with automatic behavior.\n let defaultsCalledInOnSuccess = false\n\n const form = reactive<InertiaForm<TForm>>({\n ...(restored ? restored.data : cloneDeep(defaults)),\n isDirty: false,\n errors: (restored ? restored.errors : {}) as FormDataErrors<TForm>,\n hasErrors: false,\n processing: false,\n progress: null as Progress | null,\n wasSuccessful: false,\n recentlySuccessful: false,\n withPrecognition(...args: UseFormWithPrecognitionArguments): InertiaPrecognitiveForm<TForm> {\n precognitionEndpoint = UseFormUtils.createWayfinderCallback(...args)\n\n // Type assertion helper for accessing precognition state\n // We're dynamically adding precognition properties to 'this', so we assert the type\n const formWithPrecognition = this as any as InertiaPrecognitiveForm<TForm>\n\n let withAllErrors = false\n const validator = createValidator((client) => {\n const { method, url } = precognitionEndpoint!()\n const transformedData = cloneDeep(transform(this.data())) as Record<string, unknown>\n\n return client[method](url, transformedData)\n }, cloneDeep(defaults))\n\n validatorRef = validator\n\n validator\n .on('validatingChanged', () => {\n formWithPrecognition.validating = validator.validating()\n })\n .on('validatedChanged', () => {\n formWithPrecognition.__valid = validator.valid()\n })\n .on('touchedChanged', () => {\n formWithPrecognition.__touched = validator.touched()\n })\n .on('errorsChanged', () => {\n const validationErrors = withAllErrors ? validator.errors() : toSimpleValidationErrors(validator.errors())\n\n this.errors = {} as FormDataErrors<TForm>\n\n this.setError(validationErrors as FormDataErrors<TForm>)\n\n formWithPrecognition.__valid = validator.valid()\n })\n\n const tap = <T>(value: T, callback: (value: T) => unknown): T => {\n callback(value)\n return value\n }\n\n Object.assign(formWithPrecognition, {\n __touched: [],\n __valid: [],\n validating: false,\n validator: () => validator,\n withAllErrors: () => tap(formWithPrecognition, () => (withAllErrors = true)),\n valid: (field: string) => formWithPrecognition.__valid.includes(field),\n invalid: (field: string) => field in this.errors,\n setValidationTimeout: (duration: number) => tap(formWithPrecognition, () => validator.setTimeout(duration)),\n validateFiles: () => tap(formWithPrecognition, () => validator.validateFiles()),\n withoutFileValidation: () => tap(formWithPrecognition, () => validator.withoutFileValidation()),\n touch: (\n field: FormDataKeys<TForm> | NamedInputEvent | Array<FormDataKeys<TForm>>,\n ...fields: FormDataKeys<TForm>[]\n ) => {\n if (Array.isArray(field)) {\n validator.touch(field)\n } else if (typeof field === 'string') {\n validator.touch([field, ...fields])\n } else {\n validator.touch(field)\n }\n\n return formWithPrecognition\n },\n touched: (field?: string): boolean =>\n typeof field === 'string'\n ? formWithPrecognition.__touched.includes(field)\n : formWithPrecognition.__touched.length > 0,\n validate: (field?: string | NamedInputEvent | ValidationConfig, config?: ValidationConfig) => {\n // Handle config object passed as first argument\n if (typeof field === 'object' && !('target' in field)) {\n config = field\n field = undefined\n }\n\n if (field === undefined) {\n validator.validate(config)\n } else {\n const fieldName = resolveName(field)\n const transformedData = transform(this.data()) as Record<string, unknown>\n validator.validate(fieldName, get(transformedData, fieldName), config)\n }\n\n return formWithPrecognition\n },\n setErrors: (errors: FormDataErrors<TForm>) => tap(formWithPrecognition, () => this.setError(errors)),\n forgetError: (field: FormDataKeys<TForm> | NamedInputEvent) =>\n tap(formWithPrecognition, () =>\n this.clearErrors(resolveName(field as string | NamedInputEvent) as FormDataKeys<TForm>),\n ),\n })\n\n return formWithPrecognition\n },\n data() {\n return (Object.keys(defaults) as Array<FormDataKeys<TForm>>).reduce((carry, key) => {\n return set(carry, key, get(this, key))\n }, {} as Partial<TForm>) as TForm\n },\n transform(callback: UseFormTransformCallback<TForm>) {\n transform = callback\n\n return this\n },\n defaults(fieldOrFields?: FormDataKeys<TForm> | Partial<TForm>, maybeValue?: unknown) {\n if (typeof data === 'function') {\n throw new Error('You cannot call `defaults()` when using a function to define your form data.')\n }\n\n defaultsCalledInOnSuccess = true\n\n if (typeof fieldOrFields === 'undefined') {\n defaults = cloneDeep(this.data())\n this.isDirty = false\n } else {\n defaults =\n typeof fieldOrFields === 'string'\n ? set(cloneDeep(defaults), fieldOrFields, maybeValue)\n : Object.assign({}, cloneDeep(defaults), fieldOrFields)\n }\n\n validatorRef?.defaults(defaults)\n\n return this\n },\n reset(...fields: FormDataKeys<TForm>[]) {\n const resolvedData = typeof data === 'function' ? cloneDeep(data()) : cloneDeep(defaults)\n const clonedData = cloneDeep(resolvedData)\n if (fields.length === 0) {\n defaults = clonedData\n Object.assign(this, resolvedData)\n } else {\n ;(fields as Array<FormDataKeys<TForm>>)\n .filter((key) => has(clonedData, key))\n .forEach((key) => {\n set(defaults, key, get(clonedData, key))\n set(this, key, get(resolvedData, key))\n })\n }\n\n validatorRef?.reset(...fields)\n\n return this\n },\n setError(fieldOrFields: FormDataKeys<TForm> | FormDataErrors<TForm>, maybeValue?: ErrorValue) {\n const errors = typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : fieldOrFields\n\n Object.assign(this.errors, errors)\n\n this.hasErrors = Object.keys(this.errors).length > 0\n\n validatorRef?.setErrors(errors as Errors)\n\n return this\n },\n clearErrors(...fields: string[]) {\n this.errors = Object.keys(this.errors).reduce(\n (carry, field) => ({\n ...carry,\n ...(fields.length > 0 && !fields.includes(field) ? { [field]: (this.errors as Errors)[field] } : {}),\n }),\n {} as FormDataErrors<TForm>,\n )\n\n this.hasErrors = Object.keys(this.errors).length > 0\n\n if (validatorRef) {\n if (fields.length === 0) {\n validatorRef.setErrors({})\n } else {\n fields.forEach(validatorRef.forgetError)\n }\n }\n\n return this\n },\n resetAndClearErrors(...fields: FormDataKeys<TForm>[]) {\n this.reset(...fields)\n this.clearErrors(...fields)\n return this\n },\n submit(...args: UseFormSubmitArguments) {\n const { method, url, options } = UseFormUtils.parseSubmitArguments(args, precognitionEndpoint)\n\n defaultsCalledInOnSuccess = false\n\n const _options: VisitOptions = {\n ...options,\n onCancelToken: (token) => {\n cancelToken = token\n\n if (options.onCancelToken) {\n return options.onCancelToken(token)\n }\n },\n onBefore: (visit) => {\n this.wasSuccessful = false\n this.recentlySuccessful = false\n clearTimeout(recentlySuccessfulTimeoutId)\n\n if (options.onBefore) {\n return options.onBefore(visit)\n }\n },\n onStart: (visit) => {\n this.processing = true\n\n if (options.onStart) {\n return options.onStart(visit)\n }\n },\n onProgress: (event) => {\n this.progress = event ?? null\n\n if (options.onProgress) {\n return options.onProgress(event)\n }\n },\n onSuccess: async (page) => {\n this.processing = false\n this.progress = null\n this.clearErrors()\n this.wasSuccessful = true\n this.recentlySuccessful = true\n recentlySuccessfulTimeoutId = setTimeout(\n () => (this.recentlySuccessful = false),\n config.get('form.recentlySuccessfulDuration'),\n )\n\n const onSuccess = options.onSuccess ? await options.onSuccess(page) : null\n\n if (!defaultsCalledInOnSuccess) {\n defaults = cloneDeep(this.data())\n this.isDirty = false\n }\n\n return onSuccess\n },\n onError: (errors) => {\n this.processing = false\n this.progress = null\n this.clearErrors().setError(errors as FormDataErrors<TForm>)\n\n if (options.onError) {\n return options.onError(errors)\n }\n },\n onCancel: () => {\n this.processing = false\n this.progress = null\n\n if (options.onCancel) {\n return options.onCancel()\n }\n },\n onFinish: (visit) => {\n this.processing = false\n this.progress = null\n cancelToken = null\n\n if (options.onFinish) {\n return options.onFinish(visit)\n }\n },\n }\n\n const transformedData = transform(this.data()) as RequestPayload\n\n if (method === 'delete') {\n router.delete(url, { ..._options, data: transformedData })\n } else {\n router[method](url, transformedData, _options)\n }\n },\n get(url: string, options: VisitOptions) {\n this.submit('get', url, options)\n },\n post(url: string, options: VisitOptions) {\n this.submit('post', url, options)\n },\n put(url: string, options: VisitOptions) {\n this.submit('put', url, options)\n },\n patch(url: string, options: VisitOptions) {\n this.submit('patch', url, options)\n },\n delete(url: string, options: VisitOptions) {\n this.submit('delete', url, options)\n },\n cancel() {\n if (cancelToken) {\n cancelToken.cancel()\n }\n },\n __rememberable: rememberKey === null,\n __remember() {\n return { data: this.data(), errors: this.errors }\n },\n __restore(restored: { data: TForm; errors: FormDataErrors<TForm> }) {\n Object.assign(this, restored.data)\n this.setError(restored.errors)\n },\n })\n\n const typedForm = form as any as InertiaForm<TForm>\n\n watch(\n typedForm as typeof typedForm & InternalRememberState<TForm>,\n (newValue) => {\n typedForm.isDirty = !isEqual(typedForm.data(), defaults)\n if (rememberKey) {\n router.remember(cloneDeep(newValue.__remember()), rememberKey)\n }\n },\n { immediate: true, deep: true },\n )\n\n return precognitionEndpoint ? typedForm.withPrecognition(precognitionEndpoint) : typedForm\n}\n", "import {\n CreateInertiaAppOptionsForCSR,\n CreateInertiaAppOptionsForSSR,\n getInitialPageFromDOM,\n InertiaAppResponse,\n InertiaAppSSRResponse,\n Page,\n PageProps,\n router,\n setupProgress,\n} from '@inertiajs/core'\nimport { createSSRApp, DefineComponent, h, Plugin, App as VueApp } from 'vue'\nimport { renderToString } from 'vue/server-renderer'\nimport App, { InertiaApp, InertiaAppProps, plugin } from './app'\nimport { config } from './index'\nimport { VueInertiaAppConfig } from './types'\n\ntype ComponentResolver = (name: string) => DefineComponent | Promise<DefineComponent> | { default: DefineComponent }\n\ntype SetupOptions<ElementType, SharedProps extends PageProps> = {\n el: ElementType\n App: InertiaApp\n props: InertiaAppProps<SharedProps>\n plugin: Plugin\n}\n\ntype InertiaAppOptionsForCSR<SharedProps extends PageProps> = CreateInertiaAppOptionsForCSR<\n SharedProps,\n ComponentResolver,\n SetupOptions<HTMLElement, SharedProps>,\n void,\n VueInertiaAppConfig\n>\n\ntype InertiaAppOptionsForSSR<SharedProps extends PageProps> = CreateInertiaAppOptionsForSSR<\n SharedProps,\n ComponentResolver,\n SetupOptions<null, SharedProps>,\n VueApp,\n VueInertiaAppConfig\n> & {\n render: typeof renderToString\n}\n\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForCSR<SharedProps>,\n): Promise<void>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>(\n options: InertiaAppOptionsForSSR<SharedProps>,\n): Promise<InertiaAppSSRResponse>\nexport default async function createInertiaApp<SharedProps extends PageProps = PageProps>({\n id = 'app',\n resolve,\n setup,\n title,\n progress = {},\n page,\n render,\n defaults = {},\n}: InertiaAppOptionsForCSR<SharedProps> | InertiaAppOptionsForSSR<SharedProps>): InertiaAppResponse {\n config.replace(defaults)\n\n const isServer = typeof window === 'undefined'\n const useScriptElementForInitialPage = config.get('future.useScriptElementForInitialPage')\n const initialPage = page || getInitialPageFromDOM<Page<SharedProps>>(id, useScriptElementForInitialPage)!\n\n const resolveComponent = (name: string) => Promise.resolve(resolve(name)).then((module) => module.default || module)\n\n let head: string[] = []\n\n const vueApp = await Promise.all([\n resolveComponent(initialPage.component),\n router.decryptHistory().catch(() => {}),\n ]).then(([initialComponent]) => {\n const props = {\n initialPage,\n initialComponent,\n resolveComponent,\n titleCallback: title,\n }\n\n if (isServer) {\n const ssrSetup = setup as (options: SetupOptions<null, SharedProps>) => VueApp\n\n return ssrSetup({\n el: null,\n App,\n props: { ...props, onHeadUpdate: (elements: string[]) => (head = elements) },\n plugin,\n })\n }\n\n const csrSetup = setup as (options: SetupOptions<HTMLElement, SharedProps>) => void\n\n return csrSetup({\n el: document.getElementById(id)!,\n App,\n props,\n plugin,\n })\n })\n\n if (!isServer && progress) {\n setupProgress(progress)\n }\n\n if (isServer && render) {\n const element = () => {\n if (!useScriptElementForInitialPage) {\n return h('div', {\n id,\n 'data-page': JSON.stringify(initialPage),\n innerHTML: vueApp ? render(vueApp) : '',\n })\n }\n\n return [\n h('script', {\n 'data-page': id,\n type: 'application/json',\n innerHTML: JSON.stringify(initialPage).replace(/\\//g, '\\\\/'),\n }),\n h('div', {\n id,\n innerHTML: vueApp ? render(vueApp) : '',\n }),\n ]\n }\n\n const body = await render(\n createSSRApp({\n render: () => element(),\n }),\n )\n\n return { head, body }\n }\n}\n", "import { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'Deferred',\n props: {\n data: {\n type: [String, Array<String>],\n required: true,\n },\n },\n render() {\n const keys = (Array.isArray(this.$props.data) ? this.$props.data : [this.$props.data]) as string[]\n\n if (!this.$slots.fallback) {\n throw new Error('`<Deferred>` requires a `<template #fallback>` slot')\n }\n\n return keys.every((key) => this.$page.props[key] !== undefined) ? this.$slots.default?.() : this.$slots.fallback()\n },\n})\n", "import {\n Errors,\n FormComponentProps,\n FormComponentRef,\n FormComponentSlotProps,\n FormDataConvertible,\n formDataToObject,\n isUrlMethodPair,\n mergeDataIntoQueryString,\n Method,\n resetFormFields,\n UseFormUtils,\n VisitOptions,\n} from '@inertiajs/core'\nimport { NamedInputEvent, ValidationConfig } from 'laravel-precognition'\nimport { isEqual } from 'lodash-es'\nimport { computed, defineComponent, h, onBeforeUnmount, onMounted, PropType, ref, SlotsType, watch } from 'vue'\nimport useForm from './useForm'\n\ntype FormSubmitOptions = Omit<VisitOptions, 'data' | 'onPrefetched' | 'onPrefetching'>\ntype FormSubmitter = HTMLElement | null\n\nconst noop = () => undefined\n\nconst Form = defineComponent({\n name: 'Form',\n slots: Object as SlotsType<{\n default: FormComponentSlotProps\n }>,\n props: {\n action: {\n type: [String, Object] as PropType<FormComponentProps['action']>,\n default: '',\n },\n method: {\n type: String as PropType<FormComponentProps['method']>,\n default: 'get',\n },\n headers: {\n type: Object as PropType<FormComponentProps['headers']>,\n default: () => ({}),\n },\n queryStringArrayFormat: {\n type: String as PropType<FormComponentProps['queryStringArrayFormat']>,\n default: 'brackets',\n },\n errorBag: {\n type: [String, null] as PropType<FormComponentProps['errorBag']>,\n default: null,\n },\n showProgress: {\n type: Boolean,\n default: true,\n },\n transform: {\n type: Function as PropType<FormComponentProps['transform']>,\n default: (data: Record<string, FormDataConvertible>) => data,\n },\n options: {\n type: Object as PropType<FormComponentProps['options']>,\n default: () => ({}),\n },\n resetOnError: {\n type: [Boolean, Array] as PropType<FormComponentProps['resetOnError']>,\n default: false,\n },\n resetOnSuccess: {\n type: [Boolean, Array] as PropType<FormComponentProps['resetOnSuccess']>,\n default: false,\n },\n setDefaultsOnSuccess: {\n type: Boolean as PropType<FormComponentProps['setDefaultsOnSuccess']>,\n default: false,\n },\n onCancelToken: {\n type: Function as PropType<FormComponentProps['onCancelToken']>,\n default: noop,\n },\n onBefore: {\n type: Function as PropType<FormComponentProps['onBefore']>,\n default: noop,\n },\n onStart: {\n type: Function as PropType<FormComponentProps['onStart']>,\n default: noop,\n },\n onProgress: {\n type: Function as PropType<FormComponentProps['onProgress']>,\n default: noop,\n },\n onFinish: {\n type: Function as PropType<FormComponentProps['onFinish']>,\n default: noop,\n },\n onCancel: {\n type: Function as PropType<FormComponentProps['onCancel']>,\n default: noop,\n },\n onSuccess: {\n type: Function as PropType<FormComponentProps['onSuccess']>,\n default: noop,\n },\n onError: {\n type: Function as PropType<FormComponentProps['onError']>,\n default: noop,\n },\n onSubmitComplete: {\n type: Function as PropType<FormComponentProps['onSubmitComplete']>,\n default: noop,\n },\n disableWhileProcessing: {\n type: Boolean,\n default: false,\n },\n invalidateCacheTags: {\n type: [String, Array] as PropType<FormComponentProps['invalidateCacheTags']>,\n default: () => [],\n },\n validateFiles: {\n type: Boolean as PropType<FormComponentProps['validateFiles']>,\n default: false,\n },\n validationTimeout: {\n type: Number as PropType<FormComponentProps['validationTimeout']>,\n default: 1500,\n },\n withAllErrors: {\n type: Boolean as PropType<FormComponentProps['withAllErrors']>,\n default: false,\n },\n },\n setup(props, { slots, attrs, expose }) {\n const getTransformedData = (): Record<string, FormDataConvertible> => {\n const [_url, data] = getUrlAndData()\n\n return props.transform(data)\n }\n\n const form = useForm<Record<string, any>>({})\n .withPrecognition(\n () => method.value,\n () => getUrlAndData()[0],\n )\n .transform(getTransformedData)\n .setValidationTimeout(props.validationTimeout)\n\n if (props.validateFiles) {\n form.validateFiles()\n }\n\n if (props.withAllErrors) {\n form.withAllErrors()\n }\n\n const formElement = ref()\n const method = computed(() =>\n isUrlMethodPair(props.action) ? props.action.method : (props.method.toLowerCase() as Method),\n )\n\n // Can't use computed because FormData is not reactive\n const isDirty = ref(false)\n\n const defaultData = ref(new FormData())\n\n const onFormUpdate = (event: Event) => {\n // If the form is reset, we set isDirty to false as we already know it's back\n // to defaults. Also, the fields are updated after the reset event, so the\n // comparison will be incorrect unless we use nextTick/setTimeout.\n isDirty.value = event.type === 'reset' ? false : !isEqual(getData(), formDataToObject(defaultData.value))\n }\n\n const formEvents: Array<keyof HTMLElementEventMap> = ['input', 'change', 'reset']\n\n onMounted(() => {\n defaultData.value = getFormData()\n\n form.defaults(getData())\n\n formEvents.forEach((e) => formElement.value.addEventListener(e, onFormUpdate))\n })\n\n watch(\n () => props.validateFiles,\n (value) => (value ? form.validateFiles() : form.withoutFileValidation()),\n )\n\n watch(\n () => props.validationTimeout,\n (value) => form.setValidationTimeout(value),\n )\n\n onBeforeUnmount(() => formEvents.forEach((e) => formElement.value?.removeEventListener(e, onFormUpdate)))\n\n const getFormData = (submitter?: FormSubmitter): FormData => new FormData(formElement.value, submitter)\n\n // Convert the FormData to an object because we can't compare two FormData\n // instances directly (which is needed for isDirty), mergeDataIntoQueryString()\n // expects an object, and submitting a FormData instance directly causes problems with nested objects.\n const getData = (submitter?: FormSubmitter): Record<string, FormDataConvertible> =>\n formDataToObject(getFormData(submitter))\n\n const getUrlAndData = (submitter?: FormSubmitter): [string, Record<string, FormDataConvertible>] => {\n return mergeDataIntoQueryString(\n method.value,\n isUrlMethodPair(props.action) ? props.action.url : props.action,\n getData(submitter),\n props.queryStringArrayFormat,\n )\n }\n\n const submit = (submitter?: FormSubmitter) => {\n const maybeReset = (resetOption: boolean | string[]) => {\n if (!resetOption) {\n return\n }\n\n if (resetOption === true) {\n reset()\n } else if (resetOption.length > 0) {\n reset(...resetOption)\n }\n }\n\n const submitOptions: FormSubmitOptions = {\n headers: props.headers,\n queryStringArrayFormat: props.queryStringArrayFormat,\n errorBag: props.errorBag,\n showProgress: props.showProgress,\n invalidateCacheTags: props.invalidateCacheTags,\n onCancelToken: props.onCancelToken,\n onBefore: props.onBefore,\n onStart: props.onStart,\n onProgress: props.onProgress,\n onFinish: props.onFinish,\n onCancel: props.onCancel,\n onSuccess: (...args) => {\n props.onSuccess?.(...args)\n props.onSubmitComplete?.(exposed)\n maybeReset(props.resetOnSuccess)\n\n if (props.setDefaultsOnSuccess === true) {\n defaults()\n }\n },\n onError: (...args) => {\n props.onError?.(...args)\n maybeReset(props.resetOnError)\n },\n ...props.options,\n }\n\n const [url, data] = getUrlAndData(submitter)\n\n // We need transform because we can't override the default data with different keys (by design)\n form.transform(() => props.transform(data)).submit(method.value, url, submitOptions)\n\n // Reset the transformer back so the submitter is not used for future submissions\n form.transform(getTransformedData)\n }\n\n const reset = (...fields: string[]) => {\n resetFormFields(formElement.value, defaultData.value, fields)\n\n form.reset(...fields)\n }\n\n const clearErrors = (...fields: string[]) => {\n form.clearErrors(...fields)\n }\n\n const resetAndClearErrors = (...fields: string[]) => {\n clearErrors(...fields)\n reset(...fields)\n }\n\n const defaults = () => {\n defaultData.value = getFormData()\n isDirty.value = false\n }\n\n const exposed = {\n get errors() {\n return form.errors\n },\n get hasErrors() {\n return form.hasErrors\n },\n get processing() {\n return form.processing\n },\n get progress() {\n return form.progress\n },\n get wasSuccessful() {\n return form.wasSuccessful\n },\n get recentlySuccessful() {\n return form.recentlySuccessful\n },\n get validating() {\n return form.validating\n },\n clearErrors,\n resetAndClearErrors,\n setError: (fieldOrFields: string | Record<string, string>, maybeValue?: string) =>\n form.setError((typeof fieldOrFields === 'string' ? { [fieldOrFields]: maybeValue } : fieldOrFields) as Errors),\n get isDirty() {\n return isDirty.value\n },\n reset,\n submit,\n defaults,\n getData,\n getFormData,\n\n // Precognition\n touch: form.touch,\n valid: form.valid,\n invalid: form.invalid,\n touched: form.touched,\n validate: (field?: string | NamedInputEvent | ValidationConfig, config?: ValidationConfig) =>\n form.validate(...UseFormUtils.mergeHeadersForValidation(field, config, props.headers)),\n validator: () => form.validator(),\n }\n\n expose<FormComponentRef>(exposed)\n\n return () => {\n return h(\n 'form',\n {\n ...attrs,\n ref: formElement,\n action: isUrlMethodPair(props.action) ? props.action.url : props.action,\n method: method.value,\n onSubmit: (event) => {\n event.preventDefault()\n submit(event.submitter)\n },\n inert: props.disableWhileProcessing && form.processing,\n },\n slots.default ? slots.default(exposed) : [],\n )\n }\n },\n})\n\nexport default Form\n", "import { escape } from 'lodash-es'\nimport { defineComponent, DefineComponent, VNode } from 'vue'\n\nexport type InertiaHead = DefineComponent<{\n title?: string\n}>\n\nconst Head: InertiaHead = defineComponent({\n props: {\n title: {\n type: String,\n required: false,\n },\n },\n data() {\n return {\n provider: this.$headManager.createProvider(),\n }\n },\n beforeUnmount() {\n this.provider.disconnect()\n },\n methods: {\n isUnaryTag(node: VNode) {\n return (\n typeof node.type === 'string' &&\n [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n ].indexOf(node.type) > -1\n )\n },\n renderTagStart(node: VNode) {\n node.props = node.props || {}\n node.props[this.provider.preferredAttribute()] =\n node.props['head-key'] !== undefined ? node.props['head-key'] : ''\n\n const attrs = Object.keys(node.props).reduce((carry, name) => {\n const value = String(node.props![name])\n if (['key', 'head-key'].includes(name)) {\n return carry\n } else if (value === '') {\n return carry + ` ${name}`\n } else {\n return carry + ` ${name}=\"${escape(value)}\"`\n }\n }, '')\n\n return `<${String(node.type)}${attrs}>`\n },\n renderTagChildren(node: VNode): string {\n const { children } = node\n\n if (typeof children === 'string') {\n return children\n }\n\n if (Array.isArray(children)) {\n return children.reduce<string>((html, child) => {\n return html + this.renderTag(child as VNode)\n }, '')\n }\n\n return ''\n },\n isFunctionNode(node: VNode): node is VNode & { type: () => VNode } {\n return typeof node.type === 'function'\n },\n isComponentNode(node: VNode): node is VNode & { type: object } {\n return typeof node.type === 'object'\n },\n isCommentNode(node: VNode) {\n return /(comment|cmt)/i.test(node.type.toString())\n },\n isFragmentNode(node: VNode) {\n return /(fragment|fgt|symbol\\(\\))/i.test(node.type.toString())\n },\n isTextNode(node: VNode) {\n return /(text|txt)/i.test(node.type.toString())\n },\n renderTag(node: VNode): string {\n if (this.isTextNode(node)) {\n return String(node.children)\n } else if (this.isFragmentNode(node)) {\n return ''\n } else if (this.isCommentNode(node)) {\n return ''\n }\n\n let html = this.renderTagStart(node)\n\n if (node.children) {\n html += this.renderTagChildren(node)\n }\n\n if (!this.isUnaryTag(node)) {\n html += `</${String(node.type)}>`\n }\n\n return html\n },\n addTitleElement(elements: string[]) {\n if (this.title && !elements.find((tag) => tag.startsWith('<title'))) {\n elements.push(`<title ${this.provider.preferredAttribute()}>${this.title}</title>`)\n }\n\n return elements\n },\n renderNodes(nodes: VNode[]) {\n const elements = nodes\n .flatMap((node) => this.resolveNode(node))\n .map((node) => this.renderTag(node))\n .filter((node) => node)\n\n return this.addTitleElement(elements)\n },\n resolveNode(node: VNode): VNode | VNode[] {\n if (this.isFunctionNode(node)) {\n return this.resolveNode(node.type())\n } else if (this.isComponentNode(node)) {\n console.warn(`Using components in the <Head> component is not supported.`)\n return []\n } else if (this.isTextNode(node) && node.children) {\n return node\n } else if (this.isFragmentNode(node) && node.children) {\n return (node.children as VNode[]).flatMap((child) => this.resolveNode(child))\n } else if (this.isCommentNode(node)) {\n return []\n } else {\n return node\n }\n },\n },\n render() {\n this.provider.update(this.renderNodes(this.$slots.default ? this.$slots.default() : []))\n },\n})\n\nexport default Head\n", "import {\n getScrollableParent,\n InfiniteScrollActionSlotProps,\n InfiniteScrollComponentBaseProps,\n InfiniteScrollRef,\n InfiniteScrollSlotProps,\n useInfiniteScroll,\n} from '@inertiajs/core'\nimport { computed, defineComponent, Fragment, h, onMounted, onUnmounted, PropType, ref, SlotsType, watch } from 'vue'\n\n// Vue-specific element resolver\nconst resolveHTMLElement = (\n value: string | object | (() => HTMLElement | null),\n fallback: HTMLElement | null,\n): HTMLElement | null => {\n if (!value) {\n return fallback\n }\n\n // CSS Selector string\n if (typeof value === 'string') {\n return document.querySelector(value) as HTMLElement | null\n }\n\n // Function that returns an element\n if (typeof value === 'function') {\n return value() || null\n }\n\n return fallback\n}\n\nconst InfiniteScroll = defineComponent({\n name: 'InfiniteScroll',\n slots: Object as SlotsType<{\n default: InfiniteScrollSlotProps\n previous: InfiniteScrollActionSlotProps\n next: InfiniteScrollActionSlotProps\n loading: InfiniteScrollActionSlotProps\n }>,\n props: {\n data: {\n type: String as PropType<InfiniteScrollComponentBaseProps['data']>,\n required: true,\n },\n buffer: {\n type: Number as PropType<InfiniteScrollComponentBaseProps['buffer']>,\n default: 0,\n },\n onlyNext: {\n type: Boolean,\n default: false,\n },\n onlyPrevious: {\n type: Boolean,\n default: false,\n },\n as: {\n type: String as PropType<InfiniteScrollComponentBaseProps['as']>,\n default: 'div',\n },\n manual: {\n type: Boolean as PropType<InfiniteScrollComponentBaseProps['manual']>,\n default: false,\n },\n manualAfter: {\n type: Number as PropType<InfiniteScrollComponentBaseProps['manualAfter']>,\n default: 0,\n },\n preserveUrl: {\n type: Boolean as PropType<InfiniteScrollComponentBaseProps['preserveUrl']>,\n default: false,\n },\n reverse: {\n type: Boolean as PropType<InfiniteScrollComponentBaseProps['reverse']>,\n default: false,\n },\n autoScroll: {\n type: Boolean as PropType<InfiniteScrollComponentBaseProps['autoScroll']>,\n default: undefined,\n },\n itemsElement: {\n type: [String, Function, Object] as PropType<string | (() => HTMLElement | null | undefined)>,\n default: null,\n },\n startElement: {\n type: [String, Function, Object] as PropType<string | (() => HTMLElement | null | undefined)>,\n default: null,\n },\n endElement: {\n type: [String, Function, Object] as PropType<string | (() => HTMLElement | null | undefined)>,\n default: null,\n },\n },\n inheritAttrs: false,\n setup(props, { slots, attrs, expose }) {\n const itemsElementRef = ref<HTMLElement | null>(null)\n const startElementRef = ref<HTMLElement | null>(null)\n const endElementRef = ref<HTMLElement | null>(null)\n\n const itemsElement = computed<HTMLElement | null>(() =>\n resolveHTMLElement(props.itemsElement, itemsElementRef.value),\n )\n const scrollableParent = computed(() => getScrollableParent(itemsElement.value))\n const startElement = computed<HTMLElement | null>(() =>\n resolveHTMLElement(props.startElement, startElementRef.value),\n )\n const endElement = computed<HTMLElement | null>(() => resolveHTMLElement(props.endElement, endElementRef.value))\n\n const loadingPrevious = ref(false)\n const loadingNext = ref(false)\n const requestCount = ref(0)\n\n const {\n dataManager,\n elementManager,\n flush: flushInfiniteScroll,\n } = useInfiniteScroll({\n // Data\n getPropName: () => props.data,\n inReverseMode: () => props.reverse,\n shouldFetchNext: () => !props.onlyPrevious,\n shouldFetchPrevious: () => !props.onlyNext,\n shouldPreserveUrl: () => props.preserveUrl,\n\n // Elements\n getTriggerMargin: () => props.buffer,\n getStartElement: () => startElement.value!,\n getEndElement: () => endElement.value!,\n getItemsElement: () => itemsElement.value!,\n getScrollableParent: () => scrollableParent.value,\n\n // Request callbacks\n onBeforePreviousRequest: () => (loadingPrevious.value = true),\n onBeforeNextRequest: () => (loadingNext.value = true),\n onCompletePreviousRequest: () => {\n requestCount.value = dataManager.getRequestCount()\n loadingPrevious.value = false\n },\n onCompleteNextRequest: () => {\n requestCount.value = dataManager.getRequestCount()\n loadingNext.value = false\n },\n })\n\n requestCount.value = dataManager.getRequestCount()\n\n const autoLoad = computed<boolean>(() => !manualMode.value)\n const manualMode = computed<boolean>(\n () => props.manual || (props.manualAfter > 0 && requestCount.value >= props.manualAfter),\n )\n\n const scrollToBottom = () => {\n if (scrollableParent.value) {\n scrollableParent.value.scrollTo({\n top: scrollableParent.value.scrollHeight,\n behavior: 'instant',\n })\n } else {\n window.scrollTo({\n top: document.body.scrollHeight,\n behavior: 'instant',\n })\n }\n }\n\n onMounted(() => {\n elementManager.setupObservers()\n elementManager.processServerLoadedElements(dataManager.getLastLoadedPage())\n\n // autoScroll defaults to reverse value if not explicitly set\n const shouldAutoScroll = props.autoScroll !== undefined ? props.autoScroll : props.reverse\n\n if (shouldAutoScroll) {\n scrollToBottom()\n }\n\n if (autoLoad.value) {\n elementManager.enableTriggers()\n }\n })\n\n onUnmounted(flushInfiniteScroll)\n\n watch(\n () => [autoLoad.value, props.onlyNext, props.onlyPrevious],\n ([enabled]) => {\n enabled ? elementManager.enableTriggers() : elementManager.disableTriggers()\n },\n )\n\n expose<InfiniteScrollRef>({\n fetchNext: dataManager.fetchNext,\n fetchPrevious: dataManager.fetchPrevious,\n hasPrevious: dataManager.hasPrevious,\n hasNext: dataManager.hasNext,\n })\n\n return () => {\n const renderElements = []\n\n const sharedExposed: Pick<\n InfiniteScrollActionSlotProps,\n 'loadingPrevious' | 'loadingNext' | 'hasPrevious' | 'hasNext'\n > = {\n loadingPrevious: loadingPrevious.value,\n loadingNext: loadingNext.value,\n hasPrevious: dataManager.hasPrevious(),\n hasNext: dataManager.hasNext(),\n }\n\n // Only render previous trigger if not using custom element\n if (!props.startElement) {\n const headerAutoMode = autoLoad.value && !props.onlyNext\n const exposedPrevious: InfiniteScrollActionSlotProps = {\n loading: loadingPrevious.value,\n fetch: dataManager.fetchPrevious,\n autoMode: headerAutoMode,\n manualMode: !headerAutoMode,\n hasMore: dataManager.hasPrevious(),\n ...sharedExposed,\n }\n\n renderElements.push(\n h(\n 'div',\n { ref: startElementRef },\n slots.previous\n ? slots.previous(exposedPrevious)\n : loadingPrevious.value\n ? slots.loading?.(exposedPrevious)\n : undefined,\n ),\n )\n }\n\n renderElements.push(\n h(\n props.as,\n { ...attrs, ref: itemsElementRef },\n slots.default?.({\n loading: loadingPrevious.value || loadingNext.value,\n loadingPrevious: loadingPrevious.value,\n loadingNext: loadingNext.value,\n }),\n ),\n )\n\n // Only render next trigger if not using custom element\n if (!props.endElement) {\n const footerAutoMode = autoLoad.value && !props.onlyPrevious\n const exposedNext: InfiniteScrollActionSlotProps = {\n loading: loadingNext.value,\n fetch: dataManager.fetchNext,\n autoMode: footerAutoMode,\n manualMode: !footerAutoMode,\n hasMore: dataManager.hasNext(),\n ...sharedExposed,\n }\n\n renderElements.push(\n h(\n 'div',\n { ref: endElementRef },\n slots.next ? slots.next(exposedNext) : loadingNext.value ? slots.loading?.(exposedNext) : undefined,\n ),\n )\n }\n\n return h(Fragment, {}, props.reverse ? [...renderElements].reverse() : renderElements)\n }\n },\n})\n\nexport default InfiniteScroll\n", "import {\n ActiveVisit,\n isUrlMethodPair,\n LinkComponentBaseProps,\n LinkPrefetchOption,\n mergeDataIntoQueryString,\n Method,\n PendingVisit,\n router,\n shouldIntercept,\n shouldNavigate,\n} from '@inertiajs/core'\nimport { Component, computed, defineComponent, DefineComponent, h, onMounted, onUnmounted, PropType, ref } from 'vue'\nimport { config } from '.'\n\nconst noop = () => {}\n\nexport interface InertiaLinkProps extends LinkComponentBaseProps {\n as?: string | Component\n onClick?: (event: MouseEvent) => void\n}\n\ntype InertiaLink = DefineComponent<InertiaLinkProps>\n\nconst Link: InertiaLink = defineComponent({\n name: 'Link',\n props: {\n as: {\n type: [String, Object] as PropType<InertiaLinkProps['as']>,\n default: 'a',\n },\n data: {\n type: Object as PropType<InertiaLinkProps['data']>,\n default: () => ({}),\n },\n href: {\n type: [String, Object] as PropType<InertiaLinkProps['href']>,\n default: '',\n },\n method: {\n type: String as PropType<InertiaLinkProps['method']>,\n default: 'get',\n },\n replace: {\n type: Boolean as PropType<InertiaLinkProps['replace']>,\n default: false,\n },\n preserveScroll: {\n type: [Boolean, String, Function] as PropType<InertiaLinkProps['preserveScroll']>,\n default: false,\n },\n preserveState: {\n type: [Boolean, String, Function] as PropType<InertiaLinkProps['preserveState']>,\n default: null,\n },\n preserveUrl: {\n type: Boolean as PropType<InertiaLinkProps['preserveUrl']>,\n default: false,\n },\n only: {\n type: Array as PropType<InertiaLinkProps['only']>,\n default: () => [],\n },\n except: {\n type: Array as PropType<InertiaLinkProps['except']>,\n default: () => [],\n },\n headers: {\n type: Object as PropType<InertiaLinkProps['headers']>,\n default: () => ({}),\n },\n queryStringArrayFormat: {\n type: String as PropType<InertiaLinkProps['queryStringArrayFormat']>,\n default: 'brackets',\n },\n async: {\n type: Boolean as PropType<InertiaLinkProps['async']>,\n default: false,\n },\n prefetch: {\n type: [Boolean, String, Array] as PropType<InertiaLinkProps['prefetch']>,\n default: false,\n },\n cacheFor: {\n type: [Number, String, Array] as PropType<InertiaLinkProps['cacheFor']>,\n default: 0,\n },\n onStart: {\n type: Function as PropType<InertiaLinkProps['onStart']>,\n default: noop,\n },\n onProgress: {\n type: Function as PropType<InertiaLinkProps['onProgress']>,\n default: noop,\n },\n onFinish: {\n type: Function as PropType<InertiaLinkProps['onFinish']>,\n default: noop,\n },\n onBefore: {\n type: Function as PropType<InertiaLinkProps['onBefore']>,\n default: noop,\n },\n onCancel: {\n type: Function as PropType<InertiaLinkProps['onCancel']>,\n default: noop,\n },\n onSuccess: {\n type: Function as PropType<InertiaLinkProps['onSuccess']>,\n default: noop,\n },\n onError: {\n type: Function as PropType<InertiaLinkProps['onError']>,\n default: noop,\n },\n onCancelToken: {\n type: Function as PropType<InertiaLinkProps['onCancelToken']>,\n default: noop,\n },\n onPrefetching: {\n type: Function as PropType<InertiaLinkProps['onPrefetching']>,\n default: noop,\n },\n onPrefetched: {\n type: Function as PropType<InertiaLinkProps['onPrefetched']>,\n default: noop,\n },\n cacheTags: {\n type: [String, Array] as PropType<InertiaLinkProps['cacheTags']>,\n default: () => [],\n },\n viewTransition: {\n type: [Boolean, Object] as PropType<InertiaLinkProps['viewTransition']>,\n default: false,\n },\n },\n setup(props, { slots, attrs }) {\n const inFlightCount = ref(0)\n const hoverTimeout = ref<ReturnType<typeof setTimeout>>()\n\n const prefetchModes = computed<LinkPrefetchOption[]>(() => {\n if (props.prefetch === true) {\n return ['hover']\n }\n\n if (props.prefetch === false) {\n return []\n }\n\n if (Array.isArray(props.prefetch)) {\n return props.prefetch\n }\n\n return [props.prefetch] as LinkPrefetchOption[]\n })\n\n const cacheForValue = computed(() => {\n if (props.cacheFor !== 0) {\n // If they've provided a value, respect it\n return props.cacheFor\n }\n\n if (prefetchModes.value.length === 1 && prefetchModes.value[0] === 'click') {\n // If they've only provided a prefetch mode of 'click',\n // we should only prefetch for the next request but not keep it around\n return 0\n }\n\n // Otherwise, default to 30 seconds\n return config.get('prefetch.cacheFor')\n })\n\n onMounted(() => {\n if (prefetchModes.value.includes('mount')) {\n prefetch()\n }\n })\n\n onUnmounted(() => {\n clearTimeout(hoverTimeout.value)\n })\n\n const method = computed(() =>\n isUrlMethodPair(props.href) ? props.href.method : ((props.method ?? 'get').toLowerCase() as Method),\n )\n const as = computed(() => {\n if (typeof props.as !== 'string' || props.as.toLowerCase() !== 'a') {\n // Custom component or element\n return props.as\n }\n\n return method.value !== 'get' ? 'button' : props.as.toLowerCase()\n })\n const mergeDataArray = computed(() =>\n mergeDataIntoQueryString(\n method.value,\n isUrlMethodPair(props.href) ? props.href.url : (props.href as string),\n props.data || {},\n props.queryStringArrayFormat,\n ),\n )\n const href = computed(() => mergeDataArray.value[0])\n const data = computed(() => mergeDataArray.value[1])\n\n const elProps = computed(() => {\n if (as.value === 'button') {\n return { type: 'button' }\n }\n\n if (as.value === 'a' || typeof as.value !== 'string') {\n return { href: href.value }\n }\n\n return {}\n })\n\n const baseParams = computed(() => ({\n data: data.value,\n method: method.value,\n replace: props.replace,\n preserveScroll: props.preserveScroll,\n preserveState: props.preserveState ?? method.value !== 'get',\n preserveUrl: props.preserveUrl,\n only: props.only,\n except: props.except,\n headers: props.headers,\n async: props.async,\n }))\n\n const visitParams = computed(() => ({\n ...baseParams.value,\n viewTransition: props.viewTransition,\n onCancelToken: props.onCancelToken,\n onBefore: props.onBefore,\n onStart: (visit: PendingVisit) => {\n inFlightCount.value++\n props.onStart?.(visit)\n },\n onProgress: props.onProgress,\n onFinish: (visit: ActiveVisit) => {\n inFlightCount.value--\n props.onFinish?.(visit)\n },\n onCancel: props.onCancel,\n onSuccess: props.onSuccess,\n onError: props.onError,\n }))\n\n const prefetch = () => {\n router.prefetch(\n href.value,\n {\n ...baseParams.value,\n onPrefetching: props.onPrefetching,\n onPrefetched: props.onPrefetched,\n },\n {\n cacheFor: cacheForValue.value,\n cacheTags: props.cacheTags,\n },\n )\n }\n\n const regularEvents = {\n onClick: (event: MouseEvent) => {\n if (shouldIntercept(event)) {\n event.preventDefault()\n router.visit(href.value, visitParams.value)\n }\n },\n }\n\n const prefetchHoverEvents = {\n onMouseenter: () => {\n hoverTimeout.value = setTimeout(() => {\n prefetch()\n }, config.get('prefetch.hoverDelay'))\n },\n onMouseleave: () => {\n clearTimeout(hoverTimeout.value)\n },\n onClick: regularEvents.onClick,\n }\n\n const prefetchClickEvents = {\n onMousedown: (event: MouseEvent) => {\n if (shouldIntercept(event)) {\n event.preventDefault()\n prefetch()\n }\n },\n onKeydown: (event: KeyboardEvent) => {\n if (shouldNavigate(event)) {\n event.preventDefault()\n prefetch()\n }\n },\n onMouseup: (event: MouseEvent) => {\n if (shouldIntercept(event)) {\n event.preventDefault()\n router.visit(href.value, visitParams.value)\n }\n },\n onKeyup: (event: KeyboardEvent) => {\n if (shouldNavigate(event)) {\n event.preventDefault()\n router.visit(href.value, visitParams.value)\n }\n },\n onClick: (event: MouseEvent) => {\n if (shouldIntercept(event)) {\n // Let the mouseup/keyup event handle the visit\n event.preventDefault()\n }\n },\n }\n\n return () => {\n return h(\n as.value as string | Component,\n {\n ...attrs,\n ...elProps.value,\n 'data-loading': inFlightCount.value > 0 ? '' : undefined,\n ...(() => {\n if (prefetchModes.value.includes('hover')) {\n return prefetchHoverEvents\n }\n\n if (prefetchModes.value.includes('click')) {\n return prefetchClickEvents\n }\n\n return regularEvents\n })(),\n },\n slots,\n )\n }\n },\n})\n\nexport default Link\n", "import { PollOptions, ReloadOptions, router } from '@inertiajs/core'\nimport { onMounted, onUnmounted } from 'vue'\n\nexport default function usePoll(\n interval: number,\n requestOptions: ReloadOptions = {},\n options: PollOptions = {\n keepAlive: false,\n autoStart: true,\n },\n): {\n stop: VoidFunction\n start: VoidFunction\n} {\n const { stop, start } = router.poll(interval, requestOptions, {\n ...options,\n autoStart: false,\n })\n\n onMounted(() => {\n if (options.autoStart ?? true) {\n start()\n }\n })\n\n onUnmounted(() => {\n stop()\n })\n\n return {\n stop,\n start,\n }\n}\n", "import { router, VisitOptions } from '@inertiajs/core'\nimport { onMounted, onUnmounted, ref, Ref } from 'vue'\n\nexport default function usePrefetch(options: VisitOptions = {}): {\n lastUpdatedAt: Ref<number | null>\n isPrefetching: Ref<boolean>\n isPrefetched: Ref<boolean>\n flush: () => void\n} {\n const isPrefetching = ref(false)\n const lastUpdatedAt = ref<number | null>(null)\n const isPrefetched = ref(false)\n\n const cached = typeof window === 'undefined' ? null : router.getCached(window.location.pathname, options)\n const inFlight = typeof window === 'undefined' ? null : router.getPrefetching(window.location.pathname, options)\n\n lastUpdatedAt.value = cached?.staleTimestamp || null\n\n isPrefetching.value = inFlight !== null\n isPrefetched.value = cached !== null\n\n let onPrefetchedListener: () => void\n let onPrefetchingListener: () => void\n\n onMounted(() => {\n onPrefetchingListener = router.on('prefetching', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n isPrefetching.value = true\n }\n })\n\n onPrefetchedListener = router.on('prefetched', (e) => {\n if (e.detail.visit.url.pathname === window.location.pathname) {\n isPrefetching.value = false\n isPrefetched.value = true\n }\n })\n })\n\n onUnmounted(() => {\n onPrefetchedListener()\n onPrefetchingListener()\n })\n\n return {\n lastUpdatedAt,\n isPrefetching,\n isPrefetched,\n flush: () => router.flush(window.location.pathname, options),\n }\n}\n", "import { router } from '@inertiajs/core'\nimport { cloneDeep } from 'lodash-es'\nimport { isReactive, reactive, ref, Ref, watch } from 'vue'\n\nexport default function useRemember<T extends object>(\n data: T & { __rememberable?: boolean; __remember?: Function; __restore?: Function },\n key?: string,\n): Ref<T> | T {\n if (typeof data === 'object' && data !== null && data.__rememberable === false) {\n return data\n }\n\n const restored = router.restore(key)\n const type = isReactive(data) ? reactive : ref\n const hasCallbacks = typeof data.__remember === 'function' && typeof data.__restore === 'function'\n const remembered = type(restored === undefined ? data : hasCallbacks ? data.__restore!(restored) : restored)\n\n watch(\n remembered,\n (newValue) => {\n router.remember(cloneDeep(hasCallbacks ? data.__remember!() : newValue), key)\n },\n { immediate: true, deep: true },\n )\n\n return remembered\n}\n", "import { ReloadOptions, router } from '@inertiajs/core'\nimport { defineComponent, h, PropType, SlotsType } from 'vue'\nimport { usePage } from './app'\n\nexport default defineComponent({\n name: 'WhenVisible',\n slots: Object as SlotsType<{\n default: { fetching: boolean }\n fallback: {}\n }>,\n props: {\n data: {\n type: [String, Array<String>],\n },\n params: {\n type: Object as PropType<ReloadOptions>,\n },\n buffer: {\n type: Number,\n default: 0,\n },\n as: {\n type: String,\n default: 'div',\n },\n always: {\n type: Boolean,\n default: false,\n },\n },\n data() {\n return {\n loaded: false,\n fetching: false,\n observer: null as IntersectionObserver | null,\n }\n },\n unmounted() {\n this.observer?.disconnect()\n },\n computed: {\n keys(): string[] {\n return this.data ? ((Array.isArray(this.data) ? this.data : [this.data]) as string[]) : []\n },\n },\n created() {\n const page = usePage()\n\n this.$watch(\n () => this.keys.map((key) => page.props[key]),\n () => {\n const exists = this.keys.length > 0 && this.keys.every((key) => page.props[key] !== undefined)\n this.loaded = exists\n\n if (exists && !this.always) {\n return\n }\n\n this.$nextTick(this.registerObserver)\n },\n { immediate: true },\n )\n },\n methods: {\n registerObserver() {\n this.observer?.disconnect()\n\n this.observer = new IntersectionObserver(\n (entries) => {\n if (!entries[0].isIntersecting) {\n return\n }\n\n if (this.fetching) {\n return\n }\n\n if (!this.always && this.loaded) {\n return\n }\n\n this.fetching = true\n\n const reloadParams = this.getReloadParams()\n\n router.reload({\n ...reloadParams,\n onStart: (e) => {\n this.fetching = true\n reloadParams.onStart?.(e)\n },\n onFinish: (e) => {\n this.loaded = true\n this.fetching = false\n reloadParams.onFinish?.(e)\n\n if (!this.always) {\n this.observer?.disconnect()\n }\n },\n })\n },\n {\n rootMargin: `${this.$props.buffer}px`,\n },\n )\n\n this.observer.observe(this.$el.nextSibling)\n },\n getReloadParams(): Partial<ReloadOptions> {\n if (this.$props.data) {\n return {\n only: (Array.isArray(this.$props.data) ? this.$props.data : [this.$props.data]) as string[],\n }\n }\n\n if (!this.$props.params) {\n throw new Error('You must provide either a `data` or `params` prop.')\n }\n\n return this.$props.params\n },\n },\n render() {\n const els = []\n\n if (this.$props.always || !this.loaded) {\n els.push(h(this.$props.as))\n }\n\n if (!this.loaded) {\n els.push(this.$slots.fallback ? this.$slots.fallback({}) : null)\n } else if (this.$slots.default) {\n els.push(this.$slots.default({ fetching: this.fetching }))\n }\n\n return els\n },\n})\n"],
|
|
5
|
+
"mappings": ";AAAA,SAAS,UAAU,kBAAkB;AAGrC,SAAS,UAAU,UAAAA,gBAAc;;;ACHjC;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,EAWE,UAAAC;AAAA,EAMA;AAAA,OAGK;AACP;AAAA,EACE;AAAA,EAEA;AAAA,EACA;AAAA,OAGK;AACP,SAAS,aAAAC,YAAW,KAAK,KAAK,SAAS,WAAW;AAClD,SAAS,UAAU,aAAa;AAqFjB,SAAR,WACF,MACkD;AACrD,MAAI,EAAE,aAAa,MAAM,qBAAqB,IAAI,aAAa,sBAA6B,GAAG,IAAI;AAEnG,QAAM,WAAW,cACZC,QAAO,QAAQ,WAAW,IAC3B;AACJ,MAAI,WAAW,OAAO,SAAS,aAAaC,WAAU,KAAK,CAAC,IAAIA,WAAU,IAAI;AAC9E,MAAI,cAAkC;AACtC,MAAI;AACJ,MAAI,YAA6C,CAACC,UAASA;AAE3D,MAAI,eAAiC;AAIrC,MAAI,4BAA4B;AAEhC,QAAM,OAAO,SAA6B;AAAA,IACxC,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,oBAAoBE,OAAwE;AAC1F,6BAAuB,aAAa,wBAAwB,GAAGA,KAAI;AAInE,YAAM,uBAAuB;AAE7B,UAAI,gBAAgB;AACpB,YAAM,YAAY,gBAAgB,CAAC,WAAW;AAC5C,cAAM,EAAE,QAAQ,IAAI,IAAI,qBAAsB;AAC9C,cAAM,kBAAkBF,WAAU,UAAU,KAAK,KAAK,CAAC,CAAC;AAExD,eAAO,OAAO,MAAM,EAAE,KAAK,eAAe;AAAA,MAC5C,GAAGA,WAAU,QAAQ,CAAC;AAEtB,qBAAe;AAEf,gBACG,GAAG,qBAAqB,MAAM;AAC7B,6BAAqB,aAAa,UAAU,WAAW;AAAA,MACzD,CAAC,EACA,GAAG,oBAAoB,MAAM;AAC5B,6BAAqB,UAAU,UAAU,MAAM;AAAA,MACjD,CAAC,EACA,GAAG,kBAAkB,MAAM;AAC1B,6BAAqB,YAAY,UAAU,QAAQ;AAAA,MACrD,CAAC,EACA,GAAG,iBAAiB,MAAM;AACzB,cAAM,mBAAmB,gBAAgB,UAAU,OAAO,IAAI,yBAAyB,UAAU,OAAO,CAAC;AAEzG,aAAK,SAAS,CAAC;AAEf,aAAK,SAAS,gBAAyC;AAEvD,6BAAqB,UAAU,UAAU,MAAM;AAAA,MACjD,CAAC;AAEH,YAAM,MAAM,CAAI,OAAU,aAAuC;AAC/D,iBAAS,KAAK;AACd,eAAO;AAAA,MACT;AAEA,aAAO,OAAO,sBAAsB;AAAA,QAClC,WAAW,CAAC;AAAA,QACZ,SAAS,CAAC;AAAA,QACV,YAAY;AAAA,QACZ,WAAW,MAAM;AAAA,QACjB,eAAe,MAAM,IAAI,sBAAsB,MAAO,gBAAgB,IAAK;AAAA,QAC3E,OAAO,CAAC,UAAkB,qBAAqB,QAAQ,SAAS,KAAK;AAAA,QACrE,SAAS,CAAC,UAAkB,SAAS,KAAK;AAAA,QAC1C,sBAAsB,CAAC,aAAqB,IAAI,sBAAsB,MAAM,UAAU,WAAW,QAAQ,CAAC;AAAA,QAC1G,eAAe,MAAM,IAAI,sBAAsB,MAAM,UAAU,cAAc,CAAC;AAAA,QAC9E,uBAAuB,MAAM,IAAI,sBAAsB,MAAM,UAAU,sBAAsB,CAAC;AAAA,QAC9F,OAAO,CACL,UACG,WACA;AACH,cAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,sBAAU,MAAM,KAAK;AAAA,UACvB,WAAW,OAAO,UAAU,UAAU;AACpC,sBAAU,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;AAAA,UACpC,OAAO;AACL,sBAAU,MAAM,KAAK;AAAA,UACvB;AAEA,iBAAO;AAAA,QACT;AAAA,QACA,SAAS,CAAC,UACR,OAAO,UAAU,WACb,qBAAqB,UAAU,SAAS,KAAK,IAC7C,qBAAqB,UAAU,SAAS;AAAA,QAC9C,UAAU,CAAC,OAAqDG,YAA8B;AAE5F,cAAI,OAAO,UAAU,YAAY,EAAE,YAAY,QAAQ;AACrD,YAAAA,UAAS;AACT,oBAAQ;AAAA,UACV;AAEA,cAAI,UAAU,QAAW;AACvB,sBAAU,SAASA,OAAM;AAAA,UAC3B,OAAO;AACL,kBAAM,YAAY,YAAY,KAAK;AACnC,kBAAM,kBAAkB,UAAU,KAAK,KAAK,CAAC;AAC7C,sBAAU,SAAS,WAAW,IAAI,iBAAiB,SAAS,GAAGA,OAAM;AAAA,UACvE;AAEA,iBAAO;AAAA,QACT;AAAA,QACA,WAAW,CAAC,WAAkC,IAAI,sBAAsB,MAAM,KAAK,SAAS,MAAM,CAAC;AAAA,QACnG,aAAa,CAAC,UACZ;AAAA,UAAI;AAAA,UAAsB,MACxB,KAAK,YAAY,YAAY,KAAiC,CAAwB;AAAA,QACxF;AAAA,MACJ,CAAC;AAED,aAAO;AAAA,IACT;AAAA,IACA,OAAO;AACL,aAAQ,OAAO,KAAK,QAAQ,EAAiC,OAAO,CAAC,OAAOC,SAAQ;AAClF,eAAO,IAAI,OAAOA,MAAK,IAAI,MAAMA,IAAG,CAAC;AAAA,MACvC,GAAG,CAAC,CAAmB;AAAA,IACzB;AAAA,IACA,UAAU,UAA2C;AACnD,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,mBAAWJ,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,oBAAc,SAAS,QAAQ;AAE/B,aAAO;AAAA,IACT;AAAA,IACA,SAAS,QAA+B;AACtC,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,CAACI,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,oBAAc,MAAM,GAAG,MAAM;AAE7B,aAAO;AAAA,IACT;AAAA,IACA,SAAS,eAA4D,YAAyB;AAC5F,YAAM,SAAS,OAAO,kBAAkB,WAAW,EAAE,CAAC,aAAa,GAAG,WAAW,IAAI;AAErF,aAAO,OAAO,KAAK,QAAQ,MAAM;AAEjC,WAAK,YAAY,OAAO,KAAK,KAAK,MAAM,EAAE,SAAS;AAEnD,oBAAc,UAAU,MAAgB;AAExC,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,GAAI,KAAK,OAAkB,KAAK,EAAE,IAAI,CAAC;AAAA,QACpG;AAAA,QACA,CAAC;AAAA,MACH;AAEA,WAAK,YAAY,OAAO,KAAK,KAAK,MAAM,EAAE,SAAS;AAEnD,UAAI,cAAc;AAChB,YAAI,OAAO,WAAW,GAAG;AACvB,uBAAa,UAAU,CAAC,CAAC;AAAA,QAC3B,OAAO;AACL,iBAAO,QAAQ,aAAa,WAAW;AAAA,QACzC;AAAA,MACF;AAEA,aAAO;AAAA,IACT;AAAA,IACA,uBAAuB,QAA+B;AACpD,WAAK,MAAM,GAAG,MAAM;AACpB,WAAK,YAAY,GAAG,MAAM;AAC1B,aAAO;AAAA,IACT;AAAA,IACA,UAAUF,OAA8B;AACtC,YAAM,EAAE,QAAQ,KAAK,QAAQ,IAAI,aAAa,qBAAqBA,OAAM,oBAAoB;AAE7F,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,SAAS;AAEzB,cAAI,QAAQ,YAAY;AACtB,mBAAO,QAAQ,WAAW,KAAK;AAAA,UACjC;AAAA,QACF;AAAA,QACA,WAAW,OAAOG,UAAS;AACzB,eAAK,aAAa;AAClB,eAAK,WAAW;AAChB,eAAK,YAAY;AACjB,eAAK,gBAAgB;AACrB,eAAK,qBAAqB;AAC1B,wCAA8B;AAAA,YAC5B,MAAO,KAAK,qBAAqB;AAAA,YACjC,OAAO,IAAI,iCAAiC;AAAA,UAC9C;AAEA,gBAAM,YAAY,QAAQ,YAAY,MAAM,QAAQ,UAAUA,KAAI,IAAI;AAEtE,cAAI,CAAC,2BAA2B;AAC9B,uBAAWL,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,MAA+B;AAE3D,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,UAAUO,WAA0D;AAClE,aAAO,OAAO,MAAMA,UAAS,IAAI;AACjC,WAAK,SAASA,UAAS,MAAM;AAAA,IAC/B;AAAA,EACF,CAAC;AAED,QAAM,YAAY;AAElB;AAAA,IACE;AAAA,IACA,CAAC,aAAa;AACZ,gBAAU,UAAU,CAAC,QAAQ,UAAU,KAAK,GAAG,QAAQ;AACvD,UAAI,aAAa;AACf,QAAAP,QAAO,SAASC,WAAU,SAAS,WAAW,CAAC,GAAG,WAAW;AAAA,MAC/D;AAAA,IACF;AAAA,IACA,EAAE,WAAW,MAAM,MAAM,KAAK;AAAA,EAChC;AAEA,SAAO,uBAAuB,UAAU,iBAAiB,oBAAoB,IAAI;AACnF;;;AF5aA,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,EAAE,GAAG,aAAa,OAAO,YAAY,SAAS,CAAC,EAAE;AAC9D,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,MAAAO,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,QACA,SAAS,CAAC,UAAU;AAClB,eAAK,QAAQ,EAAE,GAAG,KAAK,OAAQ,MAAM;AAAA,QACvC;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,IACzD,OAAO,SAAS,MAAM,KAAK,OAAO,KAAK;AAAA,EACzC,CAAC;AACH;;;AG5JA;AAAA,EAGE;AAAA,EAKA,UAAAC;AAAA,EACA;AAAA,OACK;AACP,SAAS,cAA+B,KAAAC,UAAgC;AAuCxE,eAAO,iBAAmF;AAAA,EACxF,KAAK;AAAA,EACL;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAAC,YAAW,CAAC;AAAA,EACZ,MAAAC;AAAA,EACA;AAAA,EACA,WAAW,CAAC;AACd,GAAoG;AAClG,SAAO,QAAQ,QAAQ;AAEvB,QAAM,WAAW,OAAO,WAAW;AACnC,QAAM,iCAAiC,OAAO,IAAI,uCAAuC;AACzF,QAAM,cAAcA,SAAQ,sBAAyC,IAAI,8BAA8B;AAEvG,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,IAAI,SAAS,eAAe,EAAE;AAAA,MAC9B;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,UAAU,MAAM;AACpB,UAAI,CAAC,gCAAgC;AACnC,eAAOG,GAAE,OAAO;AAAA,UACd;AAAA,UACA,aAAa,KAAK,UAAU,WAAW;AAAA,UACvC,WAAW,SAAS,OAAO,MAAM,IAAI;AAAA,QACvC,CAAC;AAAA,MACH;AAEA,aAAO;AAAA,QACLA,GAAE,UAAU;AAAA,UACV,aAAa;AAAA,UACb,MAAM;AAAA,UACN,WAAW,KAAK,UAAU,WAAW,EAAE,QAAQ,OAAO,KAAK;AAAA,QAC7D,CAAC;AAAA,QACDA,GAAE,OAAO;AAAA,UACP;AAAA,UACA,WAAW,SAAS,OAAO,MAAM,IAAI;AAAA,QACvC,CAAC;AAAA,MACH;AAAA,IACF;AAEA,UAAM,OAAO,MAAM;AAAA,MACjB,aAAa;AAAA,QACX,QAAQ,MAAM,QAAQ;AAAA,MACxB,CAAC;AAAA,IACH;AAEA,WAAO,EAAE,MAAM,KAAK;AAAA,EACtB;AACF;;;ACzIA,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,EACA,gBAAAC;AAAA,OAEK;AAEP,SAAS,WAAAC,gBAAe;AACxB,SAAS,YAAAC,WAAU,mBAAAC,kBAAiB,KAAAC,IAAG,iBAAiB,WAAqB,OAAAC,MAAgB,SAAAC,cAAa;AAM1G,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,IACA,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,IACA,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,MAAM,OAAO,EAAE,OAAO,OAAO,OAAO,GAAG;AACrC,UAAM,qBAAqB,MAA2C;AACpE,YAAM,CAAC,MAAM,IAAI,IAAI,cAAc;AAEnC,aAAO,MAAM,UAAU,IAAI;AAAA,IAC7B;AAEA,UAAM,OAAO,QAA6B,CAAC,CAAC,EACzC;AAAA,MACC,MAAM,OAAO;AAAA,MACb,MAAM,cAAc,EAAE,CAAC;AAAA,IACzB,EACC,UAAU,kBAAkB,EAC5B,qBAAqB,MAAM,iBAAiB;AAE/C,QAAI,MAAM,eAAe;AACvB,WAAK,cAAc;AAAA,IACrB;AAEA,QAAI,MAAM,eAAe;AACvB,WAAK,cAAc;AAAA,IACrB;AAEA,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;AAEhC,WAAK,SAAS,QAAQ,CAAC;AAEvB,iBAAW,QAAQ,CAAC,MAAM,YAAY,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAAA,IAC/E,CAAC;AAED,IAAAC;AAAA,MACE,MAAM,MAAM;AAAA,MACZ,CAAC,UAAW,QAAQ,KAAK,cAAc,IAAI,KAAK,sBAAsB;AAAA,IACxE;AAEA,IAAAA;AAAA,MACE,MAAM,MAAM;AAAA,MACZ,CAAC,UAAU,KAAK,qBAAqB,KAAK;AAAA,IAC5C;AAEA,oBAAgB,MAAM,WAAW,QAAQ,CAAC,MAAM,YAAY,OAAO,oBAAoB,GAAG,YAAY,CAAC,CAAC;AAExG,UAAM,cAAc,CAAC,cAAwC,IAAI,SAAS,YAAY,OAAO,SAAS;AAKtG,UAAM,UAAU,CAAC,cACf,iBAAiB,YAAY,SAAS,CAAC;AAEzC,UAAM,gBAAgB,CAAC,cAA6E;AAClG,aAAO;AAAA,QACL,OAAO;AAAA,QACP,gBAAgB,MAAM,MAAM,IAAI,MAAM,OAAO,MAAM,MAAM;AAAA,QACzD,QAAQ,SAAS;AAAA,QACjB,MAAM;AAAA,MACR;AAAA,IACF;AAEA,UAAM,SAAS,CAAC,cAA8B;AAC5C,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,wBAAwB,MAAM;AAAA,QAC9B,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;AAEA,YAAM,CAAC,KAAK,IAAI,IAAI,cAAc,SAAS;AAG3C,WAAK,UAAU,MAAM,MAAM,UAAU,IAAI,CAAC,EAAE,OAAO,OAAO,OAAO,KAAK,aAAa;AAGnF,WAAK,UAAU,kBAAkB;AAAA,IACnC;AAEA,UAAM,QAAQ,IAAI,WAAqB;AACrC,sBAAgB,YAAY,OAAO,YAAY,OAAO,MAAM;AAE5D,WAAK,MAAM,GAAG,MAAM;AAAA,IACtB;AAEA,UAAM,cAAc,IAAI,WAAqB;AAC3C,WAAK,YAAY,GAAG,MAAM;AAAA,IAC5B;AAEA,UAAM,sBAAsB,IAAI,WAAqB;AACnD,kBAAY,GAAG,MAAM;AACrB,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,IAAI,aAAa;AACf,eAAO,KAAK;AAAA,MACd;AAAA,MACA;AAAA,MACA;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,MACA;AAAA,MACA;AAAA;AAAA,MAGA,OAAO,KAAK;AAAA,MACZ,OAAO,KAAK;AAAA,MACZ,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,UAAU,CAAC,OAAqDC,YAC9D,KAAK,SAAS,GAAGC,cAAa,0BAA0B,OAAOD,SAAQ,MAAM,OAAO,CAAC;AAAA,MACvF,WAAW,MAAM,KAAK,UAAU;AAAA,IAClC;AAEA,WAAyB,OAAO;AAEhC,WAAO,MAAM;AACX,aAAOE;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,MAAM,SAAS;AAAA,UACxB;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;;;AC3Vf,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,KAAK,SAAS,mBAAmB,CAAC,IAC3C,KAAK,MAAM,UAAU,MAAM,SAAY,KAAK,MAAM,UAAU,IAAI;AAElE,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,UAAU,KAAK,SAAS,mBAAmB,CAAC,IAAI,KAAK,KAAK,UAAU;AAAA,MACpF;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;;;ACvJf;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,EAEE,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;AAGhH,IAAMC,QAAO,MAAM;AAAC;AASpB,IAAM,OAAoBC,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,CAAC,SAAS,QAAQ,QAAQ;AAAA,MAChC,SAAS;AAAA,IACX;AAAA,IACA,eAAe;AAAA,MACb,MAAM,CAAC,SAAS,QAAQ,QAAQ;AAAA,MAChC,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,SAASD;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,IACA,gBAAgB;AAAA,MACd,MAAM,CAAC,SAAS,MAAM;AAAA,MACtB,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,MAAM,OAAO,EAAE,OAAO,MAAM,GAAG;AAC7B,UAAM,gBAAgBE,KAAI,CAAC;AAC3B,UAAM,eAAeA,KAAmC;AAExD,UAAM,gBAAgBC,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,OAAO,IAAI,mBAAmB;AAAA,IACvC,CAAC;AAED,IAAAC,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,SAASF;AAAA,MAAS,MACtBG,iBAAgB,MAAM,IAAI,IAAI,MAAM,KAAK,UAAW,MAAM,UAAU,OAAO,YAAY;AAAA,IACzF;AACA,UAAM,KAAKH,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,MAC9BI;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,OAAOH,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,gBAAgB,MAAM;AAAA,MACtB,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,MAAAK,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,OAAO,IAAI,qBAAqB,CAAC;AAAA,MACtC;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,YAAI,gBAAgB,KAAK,GAAG;AAC1B,gBAAM,eAAe;AACrB,UAAAA,QAAO,MAAM,KAAK,OAAO,YAAY,KAAK;AAAA,QAC5C;AAAA,MACF;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,aAAOC;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;;;ACtVf,SAAqC,UAAAC,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,UAA8B;AAGxD,IAAO,sBAAQC,iBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,EAIP,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;AAAA,IACR,OAAiB;AACf,aAAO,KAAK,OAAS,MAAM,QAAQ,KAAK,IAAI,IAAI,KAAK,OAAO,CAAC,KAAK,IAAI,IAAkB,CAAC;AAAA,IAC3F;AAAA,EACF;AAAA,EACA,UAAU;AACR,UAAMC,QAAO,QAAQ;AAErB,SAAK;AAAA,MACH,MAAM,KAAK,KAAK,IAAI,CAACC,SAAQD,MAAK,MAAMC,IAAG,CAAC;AAAA,MAC5C,MAAM;AACJ,cAAM,SAAS,KAAK,KAAK,SAAS,KAAK,KAAK,KAAK,MAAM,CAACA,SAAQD,MAAK,MAAMC,IAAG,MAAM,MAAS;AAC7F,aAAK,SAAS;AAEd,YAAI,UAAU,CAAC,KAAK,QAAQ;AAC1B;AAAA,QACF;AAEA,aAAK,UAAU,KAAK,gBAAgB;AAAA,MACtC;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IACpB;AAAA,EACF;AAAA,EACA,SAAS;AAAA,IACP,mBAAmB;AACjB,WAAK,UAAU,WAAW;AAE1B,WAAK,WAAW,IAAI;AAAA,QAClB,CAAC,YAAY;AACX,cAAI,CAAC,QAAQ,CAAC,EAAE,gBAAgB;AAC9B;AAAA,UACF;AAEA,cAAI,KAAK,UAAU;AACjB;AAAA,UACF;AAEA,cAAI,CAAC,KAAK,UAAU,KAAK,QAAQ;AAC/B;AAAA,UACF;AAEA,eAAK,WAAW;AAEhB,gBAAM,eAAe,KAAK,gBAAgB;AAE1C,UAAAC,QAAO,OAAO;AAAA,YACZ,GAAG;AAAA,YACH,SAAS,CAAC,MAAM;AACd,mBAAK,WAAW;AAChB,2BAAa,UAAU,CAAC;AAAA,YAC1B;AAAA,YACA,UAAU,CAAC,MAAM;AACf,mBAAK,SAAS;AACd,mBAAK,WAAW;AAChB,2BAAa,WAAW,CAAC;AAEzB,kBAAI,CAAC,KAAK,QAAQ;AAChB,qBAAK,UAAU,WAAW;AAAA,cAC5B;AAAA,YACF;AAAA,UACF,CAAC;AAAA,QACH;AAAA,QACA;AAAA,UACE,YAAY,GAAG,KAAK,OAAO,MAAM;AAAA,QACnC;AAAA,MACF;AAEA,WAAK,SAAS,QAAQ,KAAK,IAAI,WAAW;AAAA,IAC5C;AAAA,IACA,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,KAAKC,GAAE,KAAK,OAAO,EAAE,CAAC;AAAA,IAC5B;AAEA,QAAI,CAAC,KAAK,QAAQ;AAChB,UAAI,KAAK,KAAK,OAAO,WAAW,KAAK,OAAO,SAAS,CAAC,CAAC,IAAI,IAAI;AAAA,IACjE,WAAW,KAAK,OAAO,SAAS;AAC9B,UAAI,KAAK,KAAK,OAAO,QAAQ,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC;AAAA,IAC3D;AAEA,WAAO;AAAA,EACT;AACF,CAAC;;;AbxHM,IAAM,SAAS,WAAW,OAA4B,CAAC,CAAC;",
|
|
6
6
|
"names": ["router", "router", "reactive", "key", "router", "cloneDeep", "router", "cloneDeep", "data", "args", "config", "key", "page", "restored", "router", "child", "layout", "reactive", "router", "h", "progress", "page", "router", "h", "defineComponent", "key", "UseFormUtils", "isEqual", "computed", "defineComponent", "h", "ref", "watch", "defineComponent", "ref", "computed", "isEqual", "watch", "config", "UseFormUtils", "h", "defineComponent", "computed", "defineComponent", "h", "onMounted", "ref", "watch", "isUrlMethodPair", "mergeDataIntoQueryString", "router", "computed", "defineComponent", "h", "onMounted", "onUnmounted", "ref", "noop", "defineComponent", "ref", "computed", "onMounted", "onUnmounted", "isUrlMethodPair", "mergeDataIntoQueryString", "router", "h", "router", "onMounted", "onUnmounted", "router", "onMounted", "onUnmounted", "ref", "router", "cloneDeep", "reactive", "ref", "watch", "key", "router", "defineComponent", "h", "defineComponent", "page", "key", "router", "h"]
|
|
7
7
|
}
|