{"version":3,"file":"js/chunk-vendors.a10ca059.js","mappings":"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","sources":["webpack://cgt_dni_educacion/./node_modules/@asigloo/vue-dynamic-forms/dist/as-dynamic-forms.es.js","webpack://cgt_dni_educacion/./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack://cgt_dni_educacion/./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack://cgt_dni_educacion/./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack://cgt_dni_educacion/./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack://cgt_dni_educacion/./node_modules/dni-js/src/index.js","webpack://cgt_dni_educacion/./node_modules/dni-js/src/letterMap.js","webpack://cgt_dni_educacion/./node_modules/vue-loader/dist/exportHelper.js"],"sourcesContent":["/*!\n * @asigloo/vue-dynamic-forms v3.x.x\n * (c) 2022 Alvaro Saburido\n * @license MIT\n */\nimport { ref, computed, watch, defineComponent, h, toRaw, nextTick, onMounted, resolveComponent, openBlock, createElementBlock, mergeProps, withModifiers, Fragment, renderList, createBlock, withCtx, renderSlot, createCommentVNode, inject } from 'vue';\n\nconst isArray = (a) => !!a && a.constructor === Array;\nconst isObject$1 = (a) => !!a && a.constructor === Object;\nconst hasValue = (value) => value !== void 0 && value !== null && value !== \"\";\nconst removeEmpty = (obj) => Object.keys(obj).filter((k) => obj[k] != null).reduce((newObj, k) => typeof obj[k] === \"object\" ? { ...newObj, [k]: removeEmpty(obj[k]) } : { ...newObj, [k]: obj[k] }, {});\nconst deepClone = (obj) => {\n let clone, value, key;\n if (typeof obj !== \"object\" || obj === null) {\n return obj;\n }\n clone = Array.isArray(obj) ? [] : {};\n for (key in obj) {\n value = obj[key];\n clone[key] = deepClone(value);\n }\n return clone;\n};\n\nfunction useInputValidation(props, emit) {\n const isPendingValidation = ref(false);\n const isRequired = computed(() => {\n return props.control.validations.some((validation) => validation.type === \"required\");\n });\n const requiresValidation = computed(() => {\n return props.control.validations.length > 0;\n });\n async function validate(force = false) {\n if (force || (props.control.touched || props.control.dirty) && requiresValidation.value) {\n let errors = {};\n const syncValidations = [];\n const asyncValidations = [];\n props.control.validations.forEach((element) => {\n const validation = element.validator(props.control.value);\n if (validation.constructor.name === \"Promise\") {\n asyncValidations.push({\n validation: element.validator,\n text: element.text\n });\n } else {\n syncValidations.push({ validation, text: element.text });\n }\n });\n if (asyncValidations.length > 0) {\n isPendingValidation.value = true;\n Promise.all(asyncValidations.map(async ({ validation, text }) => ({\n validation: await validation(props.control.value),\n text\n }))).then((errorsArr) => {\n errorsArr.forEach(({ validation, text }) => {\n const [key, value] = Object.entries(validation)[0];\n errors[key] = value ? {\n value,\n text\n } : null;\n });\n isPendingValidation.value = false;\n emit(\"validate\", {\n name: props.control.name,\n errors,\n valid: Object.keys(removeEmpty(errors)).length === 0\n });\n });\n }\n syncValidations.forEach(({ validation, text }) => {\n if (validation) {\n const [key, value] = Object.entries(validation)[0];\n errors[key] = value ? {\n value,\n text\n } : null;\n }\n });\n emit(\"validate\", {\n name: props.control.name,\n errors,\n valid: Object.keys(removeEmpty(errors)).length === 0\n });\n }\n }\n const errorMessages = computed(() => {\n const errors = Object.values(props.control?.errors || {});\n if (errors.length > 0) {\n return errors.map((error) => error.text);\n }\n return [];\n });\n const getValidationClasses = computed(() => {\n return [\n {\n \"form-control--success\": !isPendingValidation.value && requiresValidation.value && props.control.errors && props.control.valid && props.control.dirty && props.control.touched\n },\n {\n \"form-control--error\": !isPendingValidation.value && !props.control.valid,\n \"form-control--validating\": isPendingValidation.value\n }\n ];\n });\n const getCheckboxValidationClasses = computed(() => {\n return [\n {\n \"checkbox-group--success\": !isPendingValidation.value && requiresValidation.value && props.control.errors && props.control.valid && props.control.dirty && props.control.touched\n },\n {\n \"checkbox-group--error\": !isPendingValidation.value && !props.control.valid,\n \"checkbox-group--validating\": isPendingValidation.value\n }\n ];\n });\n const getRadioValidationClasses = computed(() => {\n return [\n {\n \"radio-group--success\": !isPendingValidation.value && requiresValidation.value && props.control.errors && props.control.valid && props.control.dirty && props.control.touched\n },\n {\n \"radio-group--error\": !isPendingValidation.value && !props.control.valid,\n \"radio-group--validating\": isPendingValidation.value\n }\n ];\n });\n watch(() => props.forceValidation, (value) => {\n if (value) {\n validate(value);\n }\n });\n return {\n isPendingValidation,\n validate,\n getValidationClasses,\n getCheckboxValidationClasses,\n getRadioValidationClasses,\n isRequired,\n requiresValidation,\n errorMessages\n };\n}\n\nvar ValidationTriggerTypes;\n(function(ValidationTriggerTypes2) {\n ValidationTriggerTypes2[\"BLUR\"] = \"blur\";\n ValidationTriggerTypes2[\"CHANGE\"] = \"change\";\n})(ValidationTriggerTypes || (ValidationTriggerTypes = {}));\nvar FieldTypes;\n(function(FieldTypes2) {\n FieldTypes2[\"TEXT\"] = \"text\";\n FieldTypes2[\"TEXTAREA\"] = \"textarea\";\n FieldTypes2[\"SELECT\"] = \"select\";\n FieldTypes2[\"NUMBER\"] = \"number\";\n FieldTypes2[\"EMAIL\"] = \"email\";\n FieldTypes2[\"URL\"] = \"url\";\n FieldTypes2[\"PASSWORD\"] = \"password\";\n FieldTypes2[\"CHECKBOX\"] = \"checkbox\";\n FieldTypes2[\"RADIO\"] = \"radio\";\n FieldTypes2[\"CUSTOM\"] = \"custom-field\";\n FieldTypes2[\"COLOR\"] = \"color\";\n})(FieldTypes || (FieldTypes = {}));\n\nfunction useInputEvents(props, emit) {\n const {\n validate,\n getValidationClasses,\n getCheckboxValidationClasses,\n getRadioValidationClasses\n } = useInputValidation(props, emit);\n function onInput($event) {\n const element = $event.target;\n $event.stopImmediatePropagation();\n if (props.control && hasValue(element.value)) {\n if (!props.control.valid && props.control.validationTrigger.type === ValidationTriggerTypes.BLUR || props.control.validationTrigger.type === ValidationTriggerTypes.CHANGE && element.value.length >= props.control.validationTrigger.threshold) {\n validate();\n }\n emit(\"change\", {\n name: props.control.name,\n value: element.value\n });\n }\n }\n function onChange($event) {\n $event.stopImmediatePropagation();\n $event.preventDefault();\n }\n function onCheck($event) {\n const element = $event.target;\n if (props.control) {\n $event.stopImmediatePropagation();\n emit(\"change\", {\n name: props.control.name,\n value: element.checked\n });\n }\n }\n function onFocus() {\n emit(\"focus\", { name: props.control.name });\n }\n function onBlur() {\n emit(\"blur\", { name: props.control.name });\n if (props.control.validationTrigger.type === ValidationTriggerTypes.BLUR) {\n validate();\n }\n }\n const getClasses = computed(() => {\n return [\"form-control\", ...getValidationClasses.value];\n });\n const getCheckboxClasses = computed(() => {\n return [\"checkbox-group\", ...getCheckboxValidationClasses.value];\n });\n const getRadioClasses = computed(() => {\n return [\"radio-group\", ...getRadioValidationClasses.value];\n });\n watch(() => props?.control?.value, (curr, prev) => {\n if (hasValue(curr) && curr !== prev) {\n emit(\"change\", {\n name: props.control.name,\n value: props.control.value\n });\n }\n }, {\n immediate: true\n });\n return {\n validate,\n onFocus,\n onInput,\n onChange,\n onBlur,\n onCheck,\n getClasses,\n getCheckboxClasses,\n getRadioClasses\n };\n}\n\nconst props$7 = {\n control: Object,\n forceValidation: {\n type: Boolean,\n default: false\n }\n};\nconst _sfc_main$7 = defineComponent({\n name: \"asCheckboxInput\",\n inheritAttrs: false,\n props: props$7,\n setup(props2, { emit }) {\n const { onCheck, onFocus, onBlur, getCheckboxClasses } = useInputEvents(props2, emit);\n const { errorMessages, isPendingValidation, isRequired } = useInputValidation(props2, emit);\n const requiredStar = h(\"span\", {\n ariaHidden: true,\n class: \"form-required-star\"\n }, \" *\");\n const renderCheckbox = [\n h(\"input\", {\n name: props2.control.name || \"\",\n type: props2.control.type,\n id: props2.control.name,\n disabled: props2.control.disabled,\n class: \"checkbox-control\",\n value: props2.control.value,\n checked: props2.control.value,\n required: isRequired.value,\n readonly: props2.control.readonly,\n ariaRequired: isRequired.value,\n ariaLabel: props2.control.ariaLabel,\n ariaLabelledBy: props2.control.ariaLabelledBy,\n onFocus,\n onBlur,\n onChange: onCheck\n }),\n h(\"label\", {\n class: [\"checkbox-label\"],\n for: props2.control.name\n }, [props2.control.label, isRequired.value ? requiredStar : \"\"])\n ];\n return () => [\n h(\"div\", {\n class: getCheckboxClasses.value,\n tabIndex: -1,\n role: \"group\"\n }, renderCheckbox),\n isPendingValidation.value ? null : h(\"div\", {\n class: \"form-errors\"\n }, errorMessages.value.map((error) => h(\"p\", { class: \"form-error\" }, error)))\n ];\n }\n});\n\nvar __glob_1_0 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n [Symbol.toStringTag]: 'Module',\n 'default': _sfc_main$7\n});\n\nconst isDate = d => d instanceof Date;\nconst isEmpty = o => Object.keys(o).length === 0;\nconst isObject = o => o != null && typeof o === 'object';\nconst hasOwnProperty = (o, ...args) => Object.prototype.hasOwnProperty.call(o, ...args);\nconst isEmptyObject = (o) => isObject(o) && isEmpty(o);\n\nconst diff = (lhs, rhs) => {\n if (lhs === rhs) return {}; // equal return no diff\n\n if (!isObject(lhs) || !isObject(rhs)) return rhs; // return updated rhs\n\n const l = lhs;\n const r = rhs;\n\n const deletedValues = Object.keys(l).reduce((acc, key) => {\n if (!hasOwnProperty(r, key)) {\n acc[key] = undefined;\n \n }\n\n return acc;\n }, {});\n\n if (isDate(l) || isDate(r)) {\n if (l.valueOf() == r.valueOf()) return {};\n return r;\n }\n\n return Object.keys(r).reduce((acc, key) => {\n if (!hasOwnProperty(l, key)){\n acc[key] = r[key]; // return added r key\n return acc;\n } \n\n const difference = diff(l[key], r[key]);\n\n // If the difference is empty, and the lhs is an empty object or the rhs is not an empty object\n if (isEmptyObject(difference) && !isDate(difference) && (isEmptyObject(l[key]) || !isEmptyObject(r[key])))\n return acc; // return no diff\n\n acc[key] = difference; // return updated key\n return acc; // return updated key\n }, deletedValues);\n};\n\nconst EMPTY_CONTROL = {\n dirty: false,\n touched: false,\n valid: true,\n errors: null\n};\nconst FieldBase = ({\n validations = [],\n label = null,\n ariaLabel = null,\n ariaLabelledBy = null,\n customClass = null,\n customStyles = null,\n disabled = false,\n placeholder = null,\n autocomplete = null,\n readonly = false,\n validationTrigger = ValidatorTrigger({\n type: ValidationTriggerTypes.BLUR,\n threshold: 0\n })\n}) => ({\n validations,\n label,\n ariaLabel,\n ariaLabelledBy,\n customClass,\n customStyles,\n disabled,\n placeholder,\n autocomplete,\n readonly,\n validationTrigger\n});\nconst TextField = ({\n value,\n ...rest\n}) => ({\n ...FieldBase(rest),\n value,\n type: FieldTypes.TEXT\n});\nconst TextAreaField = ({\n value,\n cols = 20,\n rows = 3,\n ...rest\n}) => ({\n ...FieldBase(rest),\n value,\n cols,\n rows,\n type: FieldTypes.TEXTAREA\n});\nconst EmailField = ({\n value,\n ...rest\n}) => ({\n ...FieldBase(rest),\n value,\n type: FieldTypes.EMAIL\n});\nconst PasswordField = ({\n value,\n ...rest\n}) => ({\n ...FieldBase(rest),\n value,\n type: FieldTypes.PASSWORD\n});\nconst UrlField = ({ value, ...rest }) => ({\n ...FieldBase(rest),\n value,\n type: FieldTypes.URL\n});\nconst CheckboxField = ({\n value,\n ...rest\n}) => ({\n ...FieldBase(rest),\n value,\n type: FieldTypes.CHECKBOX\n});\nconst ColorField = ({\n value,\n ...rest\n}) => ({\n ...FieldBase(rest),\n value,\n type: FieldTypes.COLOR\n});\nconst RadioField = ({\n options,\n value,\n ...rest\n}) => ({\n ...FieldBase(rest),\n value,\n options,\n type: FieldTypes.RADIO\n});\nconst NumberField = ({\n value = null,\n min = 0,\n max = 100,\n step = 1,\n ...rest\n}) => ({\n ...FieldBase(rest),\n value,\n min,\n max,\n step,\n type: FieldTypes.NUMBER\n});\nconst SelectField = ({\n options = [],\n value,\n optionValue = \"value\",\n optionLabel = \"label\",\n ...rest\n}) => ({\n ...FieldBase(rest),\n value,\n options,\n optionValue,\n optionLabel,\n type: FieldTypes.SELECT\n});\nconst CustomField = ({\n value,\n ...rest\n}) => ({\n ...FieldBase(rest),\n value,\n type: FieldTypes.CUSTOM\n});\nconst FieldControl = ({\n name,\n type,\n ...rest\n}) => ({\n ...rest,\n name,\n type,\n ...EMPTY_CONTROL\n});\nconst Validator = ({\n validator,\n text\n}) => ({\n type: validator(void 0) ? Object.keys(validator(void 0))[0] : \"pattern\",\n validator,\n text\n});\nconst ValidatorTrigger = ({\n type,\n threshold\n}) => ({\n type,\n threshold\n});\n\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n filter(() => fn.apply(this, args), { fn, thisArg: this, args });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms) {\n if (ms <= 0)\n return bypassFilter;\n let timer;\n const filter = (invoke) => {\n if (timer)\n clearTimeout(timer);\n timer = setTimeout(invoke, ms);\n };\n return filter;\n}\nfunction useDebounceFn(fn, ms = 200) {\n return createFilterWrapper(debounceFilter(ms), fn);\n}\n\nfunction useDynamicForm(form, ctx, options) {\n let cache = deepClone(toRaw(form.fields));\n const controls = ref([]);\n const formOptions = ref({\n resetAfterSubmit: true,\n ...options?.form,\n ...form?.options\n });\n const forceValidation = ref(false);\n const deNormalizedScopedSlots = computed(() => Object.keys(ctx.slots));\n const normalizedControls = computed(() => {\n const normalizedControls2 = {};\n controls.value.forEach((element) => {\n normalizedControls2[element.name] = element;\n });\n return normalizedControls2;\n });\n const isValid = computed(() => {\n const hasInvalidControls = controls.value.some((control) => !control.valid);\n return !hasInvalidControls;\n });\n const formValues = computed(() => {\n return removeEmpty(controls.value.reduce((prev, curr) => {\n const obj = {};\n obj[curr.name] = curr.type === FieldTypes.NUMBER ? parseFloat(`${curr.value}`) : curr.value;\n return {\n ...prev,\n ...obj\n };\n }, {}));\n });\n const errors = computed(() => {\n return controls.value ? controls.value.reduce((prev, curr) => {\n const errors2 = Object.keys(curr.errors || {}) || [];\n if (errors2.length > 0) {\n const error = {};\n error[curr.name] = curr.errors;\n return {\n ...prev,\n ...error\n };\n }\n return prev;\n }, {}) : {};\n });\n const formattedOptions = computed(() => {\n const opts = formOptions.value;\n if (opts) {\n const {\n customClass,\n customStyles,\n method,\n netlify,\n netlifyHoneypot,\n autocomplete\n } = opts;\n return {\n class: customClass,\n style: customStyles,\n method,\n \"data-netlify\": netlify,\n \"data-netlify-honeypot\": netlifyHoneypot,\n autocomplete: autocomplete ? \"on\" : \"off\"\n };\n } else {\n return;\n }\n });\n function mapControls(empty = false) {\n const controlArray = Object.entries(form?.fields).map(([key, field]) => empty ? FieldControl({\n ...field,\n name: key,\n value: field.type === FieldTypes.CHECKBOX ? false : null\n }) : FieldControl({\n ...field,\n name: key\n })) || [];\n if (form.fieldOrder) {\n controls.value = controlArray.sort((a, b) => form.fieldOrder.indexOf(a.name) - form.fieldOrder.indexOf(b.name));\n } else {\n controls.value = controlArray;\n }\n if (empty) {\n debounceEmitChanges(formValues.value);\n }\n }\n function findControlByName(name) {\n const updatedCtrl = controls.value.find((control) => control.name === name);\n return updatedCtrl;\n }\n function emitChanges(changes) {\n ctx.emit(\"change\", changes);\n }\n const debounceEmitChanges = useDebounceFn(emitChanges, 300);\n function valueChange(event) {\n if (hasValue(event.value)) {\n const updatedCtrl = findControlByName(event.name);\n if (updatedCtrl) {\n updatedCtrl.value = event.value;\n updatedCtrl.dirty = true;\n }\n debounceEmitChanges(formValues.value);\n }\n }\n function onBlur({ name }) {\n const updatedCtrl = findControlByName(name);\n if (updatedCtrl) {\n updatedCtrl.touched = true;\n }\n }\n function onValidate({ name, errors: errors2, valid }) {\n const updatedCtrl = findControlByName(name);\n if (updatedCtrl) {\n updatedCtrl.errors = removeEmpty({\n ...updatedCtrl.errors,\n ...errors2\n });\n updatedCtrl.valid = valid;\n }\n }\n function detectChanges(fields) {\n const changes = diff(cache, deepClone(fields));\n Object.entries(changes).forEach(([key, value]) => {\n const ctrl = findControlByName(key);\n if (ctrl) {\n Object.entries(value).forEach(([change, newValue]) => {\n if (change === \"options\" || change === \"validations\") {\n Object.entries(newValue).forEach(([optKey, optValue]) => {\n ctrl[change][optKey] = {\n ...ctrl[change][optKey],\n ...optValue\n };\n });\n } else {\n ctrl[change] = newValue;\n }\n });\n }\n });\n cache = deepClone(toRaw(fields));\n }\n function onOptionsChanged(changes) {\n Object.assign(formOptions.value, changes);\n }\n function resetForm() {\n mapControls(true);\n forceValidation.value = false;\n }\n async function handleSubmit() {\n validateAll();\n await nextTick();\n if (isValid.value) {\n ctx.emit(\"submitted\", formValues.value);\n if (formOptions.value.resetAfterSubmit) {\n resetForm();\n }\n } else {\n ctx.emit(\"error\", errors.value);\n }\n }\n function validateAll() {\n forceValidation.value = true;\n }\n onMounted(() => {\n mapControls();\n });\n return {\n controls,\n mapControls,\n valueChange,\n formValues,\n formOptions,\n handleSubmit,\n isValid,\n errors,\n deNormalizedScopedSlots,\n normalizedControls,\n formattedOptions,\n onBlur,\n onValidate,\n forceValidation,\n validateAll,\n findControlByName,\n resetForm,\n detectChanges,\n onOptionsChanged\n };\n}\n\nvar _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n\nconst props$6 = {\n form: {\n type: Object,\n required: true\n }\n};\nconst _sfc_main$6 = defineComponent({\n name: \"asDynamicForm\",\n props: props$6,\n setup(props2, ctx) {\n const { options } = useDynamicForms();\n const {\n controls,\n valueChange,\n formValues,\n handleSubmit,\n isValid,\n errors,\n deNormalizedScopedSlots,\n normalizedControls,\n formattedOptions,\n onBlur,\n onValidate,\n forceValidation,\n detectChanges,\n onOptionsChanged,\n validateAll,\n resetForm\n } = useDynamicForm(props2.form, ctx, options || {});\n watch(() => props2.form.fields, (fields) => {\n detectChanges(fields);\n }, {\n deep: true\n });\n watch(() => props2.form.fields, (options2) => {\n onOptionsChanged(options2);\n }, {\n deep: true\n });\n return {\n controls,\n valueChange,\n formValues,\n handleSubmit,\n isValid,\n errors,\n deNormalizedScopedSlots,\n normalizedControls,\n formattedOptions,\n onBlur,\n onValidate,\n forceValidation,\n validateAll,\n resetForm\n };\n }\n});\nconst _hoisted_1 = [\"id\", \"name\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_dynamic_input = resolveComponent(\"dynamic-input\");\n return openBlock(), createElementBlock(\"form\", mergeProps({\n class: \"dynamic-form\",\n novalidate: \"\",\n id: _ctx.form.id,\n name: _ctx.form.id\n }, _ctx.formattedOptions, {\n onSubmit: _cache[0] || (_cache[0] = withModifiers((...args) => _ctx.handleSubmit && _ctx.handleSubmit(...args), [\"prevent\"]))\n }), [\n (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.controls, (control) => {\n return openBlock(), createBlock(_component_dynamic_input, {\n key: control.name,\n control,\n forceValidation: _ctx.forceValidation,\n onChange: _ctx.valueChange,\n onBlur: _ctx.onBlur,\n onValidate: _ctx.onValidate\n }, {\n customField: withCtx((props2) => [\n (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.deNormalizedScopedSlots, (slot) => {\n return openBlock(), createElementBlock(\"div\", {\n key: slot,\n class: \"custom-form-wrapper\"\n }, [\n props2.control.name === slot ? renderSlot(_ctx.$slots, slot, {\n key: 0,\n control: _ctx.normalizedControls[slot],\n onChange: props2.onChange,\n onBlur: props2.onBlur\n }) : createCommentVNode(\"\", true)\n ]);\n }), 128))\n ]),\n _: 2\n }, 1032, [\"control\", \"forceValidation\", \"onChange\", \"onBlur\", \"onValidate\"]);\n }), 128))\n ], 16, _hoisted_1);\n}\nvar DynamicForm = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"render\", _sfc_render]]);\n\nvar __glob_1_1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n [Symbol.toStringTag]: 'Module',\n 'default': DynamicForm\n});\n\nconst props$5 = {\n control: Object,\n forceValidation: {\n type: Boolean,\n default: false\n }\n};\nconst _sfc_main$5 = defineComponent({\n name: \"asTextInput\",\n inheritAttrs: false,\n props: props$5,\n setup(props2, { emit }) {\n const { onInput, onChange, onFocus, onBlur, getClasses } = useInputEvents(props2, emit);\n const { isRequired, errorMessages, isPendingValidation } = useInputValidation(props2, emit);\n return () => [\n h(\"input\", {\n id: props2.control.name,\n name: props2.control.name || \"\",\n type: props2.control.type,\n class: getClasses.value,\n value: props2.control.value,\n disabled: props2.control.disabled,\n placeholder: props2.control.placeholder,\n required: isRequired.value,\n readonly: props2.control.readonly,\n autocomplete: props2.control.autocomplete,\n ariaRequired: isRequired.value,\n ariaLabel: props2.control.ariaLabel,\n ariaLabelledBy: props2.control.ariaLabelledBy,\n onFocus,\n onBlur,\n onInput,\n onChange\n }),\n isPendingValidation.value ? null : h(\"div\", {\n class: \"form-errors\"\n }, errorMessages.value.map((error) => h(\"p\", { class: \"form-error\" }, error)))\n ];\n }\n});\n\nvar __glob_1_7 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n [Symbol.toStringTag]: 'Module',\n 'default': _sfc_main$5\n});\n\nconst props$4 = {\n control: Object,\n forceValidation: {\n type: Boolean,\n default: false\n }\n};\nconst _sfc_main$4 = defineComponent({\n name: \"asSelectInput\",\n inheritAttrs: false,\n props: props$4,\n setup(props2, { emit }) {\n return () => {\n const { onInput, onChange, onFocus, onBlur, getClasses } = useInputEvents(props2, emit);\n const { isRequired, errorMessages, isPendingValidation } = useInputValidation(props2, emit);\n const formattedOptions = computed(() => {\n if (isObject$1(props2?.control?.options)) {\n return Object.values(props2?.control?.options);\n }\n return props2?.control?.options;\n });\n const options = formattedOptions?.value?.map((option) => h(\"option\", {\n key: option[props2.control.optionValue],\n value: option[props2.control.optionValue],\n disabled: option.disabled\n }, option[props2.control.optionLabel]));\n return [\n h(\"select\", {\n id: props2.control.name,\n name: props2.control.name || \"\",\n class: getClasses.value,\n value: props2.control.value,\n disabled: props2.control.disabled,\n placeholder: props2.control.placeholder,\n required: isRequired.value,\n readonly: props2.control.readonly,\n ariaLabel: props2.control.ariaLabel,\n ariaLabelledBy: props2.control.ariaLabelledBy,\n ariaRequired: isRequired.value,\n onFocus,\n onBlur,\n onInput,\n onChange\n }, options),\n isPendingValidation.value ? null : h(\"div\", {\n class: \"form-errors\"\n }, errorMessages.value.map((error) => h(\"p\", { class: \"form-error\" }, error)))\n ];\n };\n }\n});\n\nvar __glob_1_5 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n [Symbol.toStringTag]: 'Module',\n 'default': _sfc_main$4\n});\n\nconst props$3 = {\n control: Object,\n forceValidation: {\n type: Boolean,\n default: false\n }\n};\nconst _sfc_main$3 = defineComponent({\n name: \"asTextAreaInput\",\n inheritAttrs: false,\n props: props$3,\n setup(props2, { emit }) {\n const { onInput, onChange, onFocus, onBlur, getClasses } = useInputEvents(props2, emit);\n const { isRequired, errorMessages, isPendingValidation } = useInputValidation(props2, emit);\n return () => [\n h(\"textarea\", {\n id: props2.control.name,\n name: props2.control.name || \"\",\n class: getClasses.value,\n value: props2.control.value,\n rows: props2.control.rows,\n cols: props2.control.cols,\n disabled: props2.control.disabled,\n placeholder: props2.control.placeholder,\n required: isRequired.value,\n autocomplete: props2.control.autocomplete,\n readonly: props2.control.readonly,\n ariaLabel: props2.control.ariaLabel,\n ariaLabelledBy: props2.control.ariaLabelledBy,\n ariaRequired: isRequired.value,\n onFocus,\n onBlur,\n onInput,\n onChange\n }),\n isPendingValidation.value ? null : h(\"div\", {\n class: \"form-errors\"\n }, errorMessages.value.map((error) => h(\"p\", { class: \"form-error\" }, error)))\n ];\n }\n});\n\nvar __glob_1_6 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n [Symbol.toStringTag]: 'Module',\n 'default': _sfc_main$3\n});\n\nconst props$2 = {\n control: Object,\n forceValidation: {\n type: Boolean,\n default: false\n }\n};\nconst _sfc_main$2 = defineComponent({\n name: \"asRadioInput\",\n inheritAttrs: false,\n props: props$2,\n setup(props2, { emit }) {\n const { onCheck, onInput, onFocus, onBlur, getRadioClasses } = useInputEvents(props2, emit);\n const { errorMessages, isPendingValidation } = useInputValidation(props2, emit);\n const renderRadios = props2?.control?.options?.map((option) => {\n return h(\"div\", { class: \"radio-input\" }, [\n h(\"input\", {\n name: props2?.control?.name || \"\",\n type: props2?.control?.type,\n id: option.key,\n disabled: option.disabled || props2?.control?.disabled,\n checked: props2.control.value === option.key,\n class: [\"radio-control\"],\n value: option.key,\n onFocus,\n onBlur,\n onInput,\n onCheck\n }),\n h(\"label\", {\n class: [\"radio-label\"],\n for: option.key\n }, option.value)\n ]);\n });\n return () => [\n h(\"div\", {\n class: getRadioClasses.value,\n tabIndex: -1,\n role: \"group\"\n }, renderRadios),\n isPendingValidation.value ? null : h(\"div\", {\n class: \"form-errors\"\n }, errorMessages.value.map((error) => h(\"p\", { class: \"form-error\" }, error)))\n ];\n }\n});\n\nvar __glob_1_4 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n [Symbol.toStringTag]: 'Module',\n 'default': _sfc_main$2\n});\n\nconst props$1 = {\n control: Object,\n forceValidation: {\n type: Boolean,\n default: false\n }\n};\nconst _sfc_main$1 = defineComponent({\n name: \"asNumberInput\",\n inheritAttrs: false,\n props: props$1,\n setup(props2, { emit }) {\n const { onInput, onChange, onFocus, onBlur, getClasses } = useInputEvents(props2, emit);\n const { isRequired, errorMessages, isPendingValidation } = useInputValidation(props2, emit);\n return () => [\n h(\"input\", {\n id: props2.control.name,\n name: props2.control.name || \"\",\n type: props2.control.type,\n class: getClasses.value,\n value: props2.control.value,\n min: props2.control.min,\n max: props2.control.max,\n step: props2.control.step,\n disabled: props2.control.disabled,\n placeholder: props2.control.placeholder,\n required: isRequired.value,\n readonly: props2.control.readonly,\n autocomplete: props2.control.autocomplete,\n ariaLabel: props2.control.ariaLabel,\n ariaLabelledBy: props2.control.ariaLabelledBy,\n ariaRequired: isRequired.value,\n onFocus,\n onBlur,\n onInput,\n onChange\n }),\n isPendingValidation.value ? null : h(\"div\", {\n class: \"form-errors\"\n }, errorMessages.value.map((error) => h(\"p\", { class: \"form-error\" }, error)))\n ];\n }\n});\n\nvar __glob_1_3 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n [Symbol.toStringTag]: 'Module',\n 'default': _sfc_main$1\n});\n\nconst components$1 = {\n TextInputComponent: _sfc_main$5,\n SelectInputComponent: _sfc_main$4,\n TextAreaInputComponent: _sfc_main$3,\n CheckboxInputComponent: _sfc_main$7,\n RadioInputComponent: _sfc_main$2,\n NumberInputComponent: _sfc_main$1\n};\nconst props = {\n control: {\n type: Object,\n required: true\n },\n forceValidation: {\n type: Boolean,\n default: false\n }\n};\nconst _sfc_main = defineComponent({\n name: \"asDynamicInput\",\n components: components$1,\n inheritAttrs: false,\n props,\n setup(props2, { emit, slots }) {\n const { onFocus, onInput, onBlur } = useInputEvents(props2, emit);\n let component;\n const attributes = computed(() => {\n return {\n control: props2?.control,\n onChange: valueChange,\n onBlur: (e) => emit(\"blur\", e),\n onFocus: (e) => emit(\"focus\", e),\n onValidate: (validation) => emit(\"validate\", validation),\n forceValidation: props2.forceValidation\n };\n });\n const hasLabel = computed(() => props2?.control?.label && props2?.control?.type !== \"checkbox\");\n const isFieldSet = computed(() => props2?.control?.type === \"radio\");\n const getClasses = computed(() => {\n const classes = [\n \"dynamic-input\",\n \"form-group\",\n {\n \"form-group--inline\": props2?.control?.type === FieldTypes.CHECKBOX\n }\n ];\n if (isArray(props2?.control?.customClass)) {\n return [\n ...classes,\n ...props2?.control?.customClass\n ];\n }\n if (isObject$1(props2?.control?.customClass)) {\n return [...classes, props2?.control?.customClass];\n }\n return [classes, props2?.control?.customClass];\n });\n function valueChange(event) {\n emit(\"change\", event);\n }\n return () => {\n switch (props2?.control?.type) {\n case FieldTypes?.TEXT:\n component = h(_sfc_main$5, attributes.value);\n break;\n case \"email\":\n component = h(_sfc_main$5, attributes.value);\n break;\n case \"password\":\n component = h(_sfc_main$5, attributes.value);\n break;\n case \"url\":\n component = h(_sfc_main$5, attributes.value);\n break;\n case \"color\":\n component = h(_sfc_main$5, attributes.value);\n break;\n case \"number\":\n component = h(_sfc_main$1, attributes.value);\n break;\n case \"select\":\n component = h(_sfc_main$4, attributes.value);\n break;\n case \"textarea\":\n component = h(_sfc_main$3, attributes.value);\n break;\n case \"checkbox\":\n component = h(_sfc_main$7, attributes.value);\n break;\n case \"radio\":\n component = h(_sfc_main$2, attributes.value);\n break;\n case \"custom-field\":\n component = h(\"slot\", {\n name: \"customField\"\n }, slots.customField({\n control: props2.control,\n onChange: onInput,\n onFocus,\n onBlur\n }));\n break;\n }\n const requiredStar = h(\"span\", {\n ariaHidden: true,\n class: \"form-required-star\"\n }, \" *\");\n return h(isFieldSet.value ? \"fieldset\" : \"div\", {\n class: getClasses.value,\n style: props2?.control.customStyles,\n role: isFieldSet.value ? void 0 : \"group\"\n }, [\n hasLabel.value ? h(isFieldSet.value ? \"legend\" : \"label\", {\n class: \"form-label\",\n for: props2?.control?.name\n }, [\n `${props2?.control?.label}`,\n props2?.control?.validations?.some((validator) => validator.type === \"required\") ? requiredStar : \"\"\n ]) : null,\n component\n ]);\n };\n }\n});\n\nvar __glob_1_2 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n [Symbol.toStringTag]: 'Module',\n 'default': _sfc_main\n});\n\nconst components = { \"./components/checkbox-input/CheckboxInput.vue\": __glob_1_0, \"./components/dynamic-form/DynamicForm.vue\": __glob_1_1, \"./components/dynamic-input/DynamicInput.vue\": __glob_1_2, \"./components/number-input/NumberInput.vue\": __glob_1_3, \"./components/radio-input/RadioInput.vue\": __glob_1_4, \"./components/select-input/SelectInput.vue\": __glob_1_5, \"./components/text-area-input/TextAreaInput.vue\": __glob_1_6, \"./components/text-input/TextInput.vue\": __glob_1_7,};\nconst dynamicFormsSymbol = Symbol(\"vdf\");\nfunction useDynamicForms() {\n const dynamicForms = inject(dynamicFormsSymbol);\n if (!dynamicForms)\n throw new Error(\"No dynamicForms provided!!!\");\n return dynamicForms;\n}\nfunction createDynamicForms(options) {\n const $vdf = {\n options,\n install(app) {\n app.provide(dynamicFormsSymbol, $vdf);\n Object.entries(components).forEach(([path, definition]) => {\n const componentName = path.split(\"/\").pop().replace(/\\.\\w+$/, \"\");\n app.component(componentName, definition.default);\n });\n Object.defineProperty(app, \"__VUE_DYNAMIC_FORMS_SYMBOL__\", {\n get() {\n return dynamicFormsSymbol;\n }\n });\n }\n };\n return $vdf;\n}\n\nconst isEmptyInputValue = (value) => value == null || value === \"\";\nconst EMAIL_REGEXP = /^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/;\nconst URL_REGEXP = /^((?:(https?):\\/\\/)?((?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9][0-9]|[0-9])\\.(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9][0-9]|[0-9])\\.)(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9][0-9]|[0-9])\\.)(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[0-9][0-9]|[0-9]))|(?:(?:(?:\\w+\\.){1,2}[\\w]{2,3})))(?::(\\d+))?((?:\\/[\\w]+)*)(?:\\/|(\\/[\\w]+\\.[\\w]{3,4})|(\\?(?:([\\w]+=[\\w]+)&)*([\\w]+=[\\w]+))?|\\?(?:(wsdl|wadl))))$/;\nconst required = (value) => ({\n required: isEmptyInputValue(value) ? true : null\n});\nconst min = (min2) => (value) => {\n if (isEmptyInputValue(value) || isEmptyInputValue(min2)) {\n return { min: null };\n }\n const minValue = parseFloat(`${value}`);\n return {\n min: !isNaN(minValue) && minValue < min2 ? { min: min2, actual: +minValue } : null\n };\n};\nconst max = (max2) => (value) => {\n if (isEmptyInputValue(value) || isEmptyInputValue(max2)) {\n return { max: null };\n }\n const maxValue = parseFloat(`${value}`);\n return {\n max: !isNaN(maxValue) && maxValue > max2 ? { max: max2, actual: +maxValue } : null\n };\n};\nconst email = (value) => {\n if (isEmptyInputValue(value)) {\n return { email: null };\n }\n return { email: EMAIL_REGEXP.test(`${value}`) ? null : true };\n};\nconst url = (value) => {\n if (isEmptyInputValue(value)) {\n return { url: null };\n }\n return { url: URL_REGEXP.test(`${value}`) ? null : true };\n};\nconst minLength = (minLength2) => (value) => {\n if (isEmptyInputValue(value)) {\n return { minLength: null };\n }\n const length = value ? `${value}`.length : 0;\n return {\n minLength: length < minLength2 ? { requiredLength: minLength2, actualLength: length } : null\n };\n};\nconst maxLength = (maxLength2) => (value) => {\n if (isEmptyInputValue(value)) {\n return { maxLength: null };\n }\n const length = value ? `${value}`.length : 0;\n return {\n maxLength: length > maxLength2 ? { requiredLength: maxLength2, actualLength: length } : null\n };\n};\nconst pattern = (pattern2) => {\n if (!pattern2)\n return null;\n let regex;\n let regexStr;\n if (typeof pattern2 === \"string\") {\n regexStr = \"\";\n if (pattern2.charAt(0) !== \"^\")\n regexStr += \"^\";\n regexStr += pattern2;\n if (pattern2.charAt(pattern2.length - 1) !== \"$\")\n regexStr += \"$\";\n regex = new RegExp(regexStr);\n } else {\n regexStr = pattern2;\n regex = pattern2;\n }\n return (value) => {\n if (isEmptyInputValue(value)) {\n return { pattern: null };\n }\n const patternValue = value;\n return {\n pattern: regex.test(patternValue) ? null : { requiredPattern: regexStr, actualValue: value }\n };\n };\n};\n\nexport { CheckboxField, ColorField, CustomField, EmailField, FieldBase, FieldControl, FieldTypes, NumberField, PasswordField, RadioField, SelectField, TextAreaField, TextField, UrlField, ValidationTriggerTypes, Validator, ValidatorTrigger, createDynamicForms, dynamicFormsSymbol, email, isEmptyInputValue, max, maxLength, min, minLength, pattern, required, url, useDynamicForms };\n/* follow me on Twitter! @alvaro_code */\n","import { extend, isArray, isMap, isIntegerKey, hasOwn, isSymbol, isObject, hasChanged, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\r\n console.warn(`[Vue warn] ${msg}`, ...args);\r\n}\n\nlet activeEffectScope;\r\nclass EffectScope {\r\n constructor(detached = false) {\r\n /**\r\n * @internal\r\n */\r\n this.active = true;\r\n /**\r\n * @internal\r\n */\r\n this.effects = [];\r\n /**\r\n * @internal\r\n */\r\n this.cleanups = [];\r\n if (!detached && activeEffectScope) {\r\n this.parent = activeEffectScope;\r\n this.index =\r\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\r\n }\r\n }\r\n run(fn) {\r\n if (this.active) {\r\n const currentEffectScope = activeEffectScope;\r\n try {\r\n activeEffectScope = this;\r\n return fn();\r\n }\r\n finally {\r\n activeEffectScope = currentEffectScope;\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`cannot run an inactive effect scope.`);\r\n }\r\n }\r\n /**\r\n * This should only be called on non-detached scopes\r\n * @internal\r\n */\r\n on() {\r\n activeEffectScope = this;\r\n }\r\n /**\r\n * This should only be called on non-detached scopes\r\n * @internal\r\n */\r\n off() {\r\n activeEffectScope = this.parent;\r\n }\r\n stop(fromParent) {\r\n if (this.active) {\r\n let i, l;\r\n for (i = 0, l = this.effects.length; i < l; i++) {\r\n this.effects[i].stop();\r\n }\r\n for (i = 0, l = this.cleanups.length; i < l; i++) {\r\n this.cleanups[i]();\r\n }\r\n if (this.scopes) {\r\n for (i = 0, l = this.scopes.length; i < l; i++) {\r\n this.scopes[i].stop(true);\r\n }\r\n }\r\n // nested scope, dereference from parent to avoid memory leaks\r\n if (this.parent && !fromParent) {\r\n // optimized O(1) removal\r\n const last = this.parent.scopes.pop();\r\n if (last && last !== this) {\r\n this.parent.scopes[this.index] = last;\r\n last.index = this.index;\r\n }\r\n }\r\n this.active = false;\r\n }\r\n }\r\n}\r\nfunction effectScope(detached) {\r\n return new EffectScope(detached);\r\n}\r\nfunction recordEffectScope(effect, scope = activeEffectScope) {\r\n if (scope && scope.active) {\r\n scope.effects.push(effect);\r\n }\r\n}\r\nfunction getCurrentScope() {\r\n return activeEffectScope;\r\n}\r\nfunction onScopeDispose(fn) {\r\n if (activeEffectScope) {\r\n activeEffectScope.cleanups.push(fn);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`onScopeDispose() is called when there is no active effect scope` +\r\n ` to be associated with.`);\r\n }\r\n}\n\nconst createDep = (effects) => {\r\n const dep = new Set(effects);\r\n dep.w = 0;\r\n dep.n = 0;\r\n return dep;\r\n};\r\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\r\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\r\nconst initDepMarkers = ({ deps }) => {\r\n if (deps.length) {\r\n for (let i = 0; i < deps.length; i++) {\r\n deps[i].w |= trackOpBit; // set was tracked\r\n }\r\n }\r\n};\r\nconst finalizeDepMarkers = (effect) => {\r\n const { deps } = effect;\r\n if (deps.length) {\r\n let ptr = 0;\r\n for (let i = 0; i < deps.length; i++) {\r\n const dep = deps[i];\r\n if (wasTracked(dep) && !newTracked(dep)) {\r\n dep.delete(effect);\r\n }\r\n else {\r\n deps[ptr++] = dep;\r\n }\r\n // clear bits\r\n dep.w &= ~trackOpBit;\r\n dep.n &= ~trackOpBit;\r\n }\r\n deps.length = ptr;\r\n }\r\n};\n\nconst targetMap = new WeakMap();\r\n// The number of effects currently being tracked recursively.\r\nlet effectTrackDepth = 0;\r\nlet trackOpBit = 1;\r\n/**\r\n * The bitwise track markers support at most 30 levels of recursion.\r\n * This value is chosen to enable modern JS engines to use a SMI on all platforms.\r\n * When recursion depth is greater, fall back to using a full cleanup.\r\n */\r\nconst maxMarkerBits = 30;\r\nlet activeEffect;\r\nconst ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'iterate' : '');\r\nconst MAP_KEY_ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'Map key iterate' : '');\r\nclass ReactiveEffect {\r\n constructor(fn, scheduler = null, scope) {\r\n this.fn = fn;\r\n this.scheduler = scheduler;\r\n this.active = true;\r\n this.deps = [];\r\n this.parent = undefined;\r\n recordEffectScope(this, scope);\r\n }\r\n run() {\r\n if (!this.active) {\r\n return this.fn();\r\n }\r\n let parent = activeEffect;\r\n let lastShouldTrack = shouldTrack;\r\n while (parent) {\r\n if (parent === this) {\r\n return;\r\n }\r\n parent = parent.parent;\r\n }\r\n try {\r\n this.parent = activeEffect;\r\n activeEffect = this;\r\n shouldTrack = true;\r\n trackOpBit = 1 << ++effectTrackDepth;\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n initDepMarkers(this);\r\n }\r\n else {\r\n cleanupEffect(this);\r\n }\r\n return this.fn();\r\n }\r\n finally {\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n finalizeDepMarkers(this);\r\n }\r\n trackOpBit = 1 << --effectTrackDepth;\r\n activeEffect = this.parent;\r\n shouldTrack = lastShouldTrack;\r\n this.parent = undefined;\r\n if (this.deferStop) {\r\n this.stop();\r\n }\r\n }\r\n }\r\n stop() {\r\n // stopped while running itself - defer the cleanup\r\n if (activeEffect === this) {\r\n this.deferStop = true;\r\n }\r\n else if (this.active) {\r\n cleanupEffect(this);\r\n if (this.onStop) {\r\n this.onStop();\r\n }\r\n this.active = false;\r\n }\r\n }\r\n}\r\nfunction cleanupEffect(effect) {\r\n const { deps } = effect;\r\n if (deps.length) {\r\n for (let i = 0; i < deps.length; i++) {\r\n deps[i].delete(effect);\r\n }\r\n deps.length = 0;\r\n }\r\n}\r\nfunction effect(fn, options) {\r\n if (fn.effect) {\r\n fn = fn.effect.fn;\r\n }\r\n const _effect = new ReactiveEffect(fn);\r\n if (options) {\r\n extend(_effect, options);\r\n if (options.scope)\r\n recordEffectScope(_effect, options.scope);\r\n }\r\n if (!options || !options.lazy) {\r\n _effect.run();\r\n }\r\n const runner = _effect.run.bind(_effect);\r\n runner.effect = _effect;\r\n return runner;\r\n}\r\nfunction stop(runner) {\r\n runner.effect.stop();\r\n}\r\nlet shouldTrack = true;\r\nconst trackStack = [];\r\nfunction pauseTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = false;\r\n}\r\nfunction enableTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = true;\r\n}\r\nfunction resetTracking() {\r\n const last = trackStack.pop();\r\n shouldTrack = last === undefined ? true : last;\r\n}\r\nfunction track(target, type, key) {\r\n if (shouldTrack && activeEffect) {\r\n let depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n targetMap.set(target, (depsMap = new Map()));\r\n }\r\n let dep = depsMap.get(key);\r\n if (!dep) {\r\n depsMap.set(key, (dep = createDep()));\r\n }\r\n const eventInfo = (process.env.NODE_ENV !== 'production')\r\n ? { effect: activeEffect, target, type, key }\r\n : undefined;\r\n trackEffects(dep, eventInfo);\r\n }\r\n}\r\nfunction trackEffects(dep, debuggerEventExtraInfo) {\r\n let shouldTrack = false;\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n if (!newTracked(dep)) {\r\n dep.n |= trackOpBit; // set newly tracked\r\n shouldTrack = !wasTracked(dep);\r\n }\r\n }\r\n else {\r\n // Full cleanup mode.\r\n shouldTrack = !dep.has(activeEffect);\r\n }\r\n if (shouldTrack) {\r\n dep.add(activeEffect);\r\n activeEffect.deps.push(dep);\r\n if ((process.env.NODE_ENV !== 'production') && activeEffect.onTrack) {\r\n activeEffect.onTrack(Object.assign({ effect: activeEffect }, debuggerEventExtraInfo));\r\n }\r\n }\r\n}\r\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\r\n const depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n // never been tracked\r\n return;\r\n }\r\n let deps = [];\r\n if (type === \"clear\" /* CLEAR */) {\r\n // collection being cleared\r\n // trigger all effects for target\r\n deps = [...depsMap.values()];\r\n }\r\n else if (key === 'length' && isArray(target)) {\r\n depsMap.forEach((dep, key) => {\r\n if (key === 'length' || key >= newValue) {\r\n deps.push(dep);\r\n }\r\n });\r\n }\r\n else {\r\n // schedule runs for SET | ADD | DELETE\r\n if (key !== void 0) {\r\n deps.push(depsMap.get(key));\r\n }\r\n // also run for iteration key on ADD | DELETE | Map.SET\r\n switch (type) {\r\n case \"add\" /* ADD */:\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n else if (isIntegerKey(key)) {\r\n // new index added to array -> length changes\r\n deps.push(depsMap.get('length'));\r\n }\r\n break;\r\n case \"delete\" /* DELETE */:\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n break;\r\n case \"set\" /* SET */:\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n }\r\n break;\r\n }\r\n }\r\n const eventInfo = (process.env.NODE_ENV !== 'production')\r\n ? { target, type, key, newValue, oldValue, oldTarget }\r\n : undefined;\r\n if (deps.length === 1) {\r\n if (deps[0]) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(deps[0], eventInfo);\r\n }\r\n else {\r\n triggerEffects(deps[0]);\r\n }\r\n }\r\n }\r\n else {\r\n const effects = [];\r\n for (const dep of deps) {\r\n if (dep) {\r\n effects.push(...dep);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(createDep(effects), eventInfo);\r\n }\r\n else {\r\n triggerEffects(createDep(effects));\r\n }\r\n }\r\n}\r\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\r\n // spread into array for stabilization\r\n const effects = isArray(dep) ? dep : [...dep];\r\n for (const effect of effects) {\r\n if (effect.computed) {\r\n triggerEffect(effect, debuggerEventExtraInfo);\r\n }\r\n }\r\n for (const effect of effects) {\r\n if (!effect.computed) {\r\n triggerEffect(effect, debuggerEventExtraInfo);\r\n }\r\n }\r\n}\r\nfunction triggerEffect(effect, debuggerEventExtraInfo) {\r\n if (effect !== activeEffect || effect.allowRecurse) {\r\n if ((process.env.NODE_ENV !== 'production') && effect.onTrigger) {\r\n effect.onTrigger(extend({ effect }, debuggerEventExtraInfo));\r\n }\r\n if (effect.scheduler) {\r\n effect.scheduler();\r\n }\r\n else {\r\n effect.run();\r\n }\r\n }\r\n}\n\nconst isNonTrackableKeys = /*#__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);\r\nconst builtInSymbols = new Set(\r\n/*#__PURE__*/\r\nObject.getOwnPropertyNames(Symbol)\r\n // ios10.x Object.getOwnPropertyNames(Symbol) can enumerate 'arguments' and 'caller'\r\n // but accessing them on Symbol leads to TypeError because Symbol is a strict mode\r\n // function\r\n .filter(key => key !== 'arguments' && key !== 'caller')\r\n .map(key => Symbol[key])\r\n .filter(isSymbol));\r\nconst get = /*#__PURE__*/ createGetter();\r\nconst shallowGet = /*#__PURE__*/ createGetter(false, true);\r\nconst readonlyGet = /*#__PURE__*/ createGetter(true);\r\nconst shallowReadonlyGet = /*#__PURE__*/ createGetter(true, true);\r\nconst arrayInstrumentations = /*#__PURE__*/ createArrayInstrumentations();\r\nfunction createArrayInstrumentations() {\r\n const instrumentations = {};\r\n ['includes', 'indexOf', 'lastIndexOf'].forEach(key => {\r\n instrumentations[key] = function (...args) {\r\n const arr = toRaw(this);\r\n for (let i = 0, l = this.length; i < l; i++) {\r\n track(arr, \"get\" /* GET */, i + '');\r\n }\r\n // we run the method using the original args first (which may be reactive)\r\n const res = arr[key](...args);\r\n if (res === -1 || res === false) {\r\n // if that didn't work, run it again using raw values.\r\n return arr[key](...args.map(toRaw));\r\n }\r\n else {\r\n return res;\r\n }\r\n };\r\n });\r\n ['push', 'pop', 'shift', 'unshift', 'splice'].forEach(key => {\r\n instrumentations[key] = function (...args) {\r\n pauseTracking();\r\n const res = toRaw(this)[key].apply(this, args);\r\n resetTracking();\r\n return res;\r\n };\r\n });\r\n return instrumentations;\r\n}\r\nfunction createGetter(isReadonly = false, shallow = false) {\r\n return function get(target, key, receiver) {\r\n if (key === \"__v_isReactive\" /* IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_isShallow\" /* IS_SHALLOW */) {\r\n return shallow;\r\n }\r\n else if (key === \"__v_raw\" /* RAW */ &&\r\n receiver ===\r\n (isReadonly\r\n ? shallow\r\n ? shallowReadonlyMap\r\n : readonlyMap\r\n : shallow\r\n ? shallowReactiveMap\r\n : reactiveMap).get(target)) {\r\n return target;\r\n }\r\n const targetIsArray = isArray(target);\r\n if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {\r\n return Reflect.get(arrayInstrumentations, key, receiver);\r\n }\r\n const res = Reflect.get(target, key, receiver);\r\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\r\n return res;\r\n }\r\n if (!isReadonly) {\r\n track(target, \"get\" /* GET */, key);\r\n }\r\n if (shallow) {\r\n return res;\r\n }\r\n if (isRef(res)) {\r\n // ref unwrapping - skip unwrap for Array + integer key.\r\n return targetIsArray && isIntegerKey(key) ? res : res.value;\r\n }\r\n if (isObject(res)) {\r\n // Convert returned value into a proxy as well. we do the isObject check\r\n // here to avoid invalid value warning. Also need to lazy access readonly\r\n // and reactive here to avoid circular dependency.\r\n return isReadonly ? readonly(res) : reactive(res);\r\n }\r\n return res;\r\n };\r\n}\r\nconst set = /*#__PURE__*/ createSetter();\r\nconst shallowSet = /*#__PURE__*/ createSetter(true);\r\nfunction createSetter(shallow = false) {\r\n return function set(target, key, value, receiver) {\r\n let oldValue = target[key];\r\n if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\r\n return false;\r\n }\r\n if (!shallow && !isReadonly(value)) {\r\n if (!isShallow(value)) {\r\n value = toRaw(value);\r\n oldValue = toRaw(oldValue);\r\n }\r\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n }\r\n const hadKey = isArray(target) && isIntegerKey(key)\r\n ? Number(key) < target.length\r\n : hasOwn(target, key);\r\n const result = Reflect.set(target, key, value, receiver);\r\n // don't trigger if target is something up in the prototype chain of original\r\n if (target === toRaw(receiver)) {\r\n if (!hadKey) {\r\n trigger(target, \"add\" /* ADD */, key, value);\r\n }\r\n else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\" /* SET */, key, value, oldValue);\r\n }\r\n }\r\n return result;\r\n };\r\n}\r\nfunction deleteProperty(target, key) {\r\n const hadKey = hasOwn(target, key);\r\n const oldValue = target[key];\r\n const result = Reflect.deleteProperty(target, key);\r\n if (result && hadKey) {\r\n trigger(target, \"delete\" /* DELETE */, key, undefined, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction has(target, key) {\r\n const result = Reflect.has(target, key);\r\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\r\n track(target, \"has\" /* HAS */, key);\r\n }\r\n return result;\r\n}\r\nfunction ownKeys(target) {\r\n track(target, \"iterate\" /* ITERATE */, isArray(target) ? 'length' : ITERATE_KEY);\r\n return Reflect.ownKeys(target);\r\n}\r\nconst mutableHandlers = {\r\n get,\r\n set,\r\n deleteProperty,\r\n has,\r\n ownKeys\r\n};\r\nconst readonlyHandlers = {\r\n get: readonlyGet,\r\n set(target, key) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\r\n }\r\n return true;\r\n },\r\n deleteProperty(target, key) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\r\n }\r\n return true;\r\n }\r\n};\r\nconst shallowReactiveHandlers = /*#__PURE__*/ extend({}, mutableHandlers, {\r\n get: shallowGet,\r\n set: shallowSet\r\n});\r\n// Props handlers are special in the sense that it should not unwrap top-level\r\n// refs (in order to allow refs to be explicitly passed down), but should\r\n// retain the reactivity of the normal readonly object.\r\nconst shallowReadonlyHandlers = /*#__PURE__*/ extend({}, readonlyHandlers, {\r\n get: shallowReadonlyGet\r\n});\n\nconst toShallow = (value) => value;\r\nconst getProto = (v) => Reflect.getPrototypeOf(v);\r\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\r\n // #1772: readonly(reactive(Map)) should return readonly + reactive version\r\n // of the value\r\n target = target[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (!isReadonly) {\r\n if (key !== rawKey) {\r\n track(rawTarget, \"get\" /* GET */, key);\r\n }\r\n track(rawTarget, \"get\" /* GET */, rawKey);\r\n }\r\n const { has } = getProto(rawTarget);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n if (has.call(rawTarget, key)) {\r\n return wrap(target.get(key));\r\n }\r\n else if (has.call(rawTarget, rawKey)) {\r\n return wrap(target.get(rawKey));\r\n }\r\n else if (target !== rawTarget) {\r\n // #3602 readonly(reactive(Map))\r\n // ensure that the nested reactive `Map` can do tracking for itself\r\n target.get(key);\r\n }\r\n}\r\nfunction has$1(key, isReadonly = false) {\r\n const target = this[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (!isReadonly) {\r\n if (key !== rawKey) {\r\n track(rawTarget, \"has\" /* HAS */, key);\r\n }\r\n track(rawTarget, \"has\" /* HAS */, rawKey);\r\n }\r\n return key === rawKey\r\n ? target.has(key)\r\n : target.has(key) || target.has(rawKey);\r\n}\r\nfunction size(target, isReadonly = false) {\r\n target = target[\"__v_raw\" /* RAW */];\r\n !isReadonly && track(toRaw(target), \"iterate\" /* ITERATE */, ITERATE_KEY);\r\n return Reflect.get(target, 'size', target);\r\n}\r\nfunction add(value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const proto = getProto(target);\r\n const hadKey = proto.has.call(target, value);\r\n if (!hadKey) {\r\n target.add(value);\r\n trigger(target, \"add\" /* ADD */, value, value);\r\n }\r\n return this;\r\n}\r\nfunction set$1(key, value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get.call(target, key);\r\n target.set(key, value);\r\n if (!hadKey) {\r\n trigger(target, \"add\" /* ADD */, key, value);\r\n }\r\n else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\" /* SET */, key, value, oldValue);\r\n }\r\n return this;\r\n}\r\nfunction deleteEntry(key) {\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get ? get.call(target, key) : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.delete(key);\r\n if (hadKey) {\r\n trigger(target, \"delete\" /* DELETE */, key, undefined, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction clear() {\r\n const target = toRaw(this);\r\n const hadItems = target.size !== 0;\r\n const oldTarget = (process.env.NODE_ENV !== 'production')\r\n ? isMap(target)\r\n ? new Map(target)\r\n : new Set(target)\r\n : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.clear();\r\n if (hadItems) {\r\n trigger(target, \"clear\" /* CLEAR */, undefined, undefined, oldTarget);\r\n }\r\n return result;\r\n}\r\nfunction createForEach(isReadonly, isShallow) {\r\n return function forEach(callback, thisArg) {\r\n const observed = this;\r\n const target = observed[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly && track(rawTarget, \"iterate\" /* ITERATE */, ITERATE_KEY);\r\n return target.forEach((value, key) => {\r\n // important: make sure the callback is\r\n // 1. invoked with the reactive map as `this` and 3rd arg\r\n // 2. the value received should be a corresponding reactive/readonly.\r\n return callback.call(thisArg, wrap(value), wrap(key), observed);\r\n });\r\n };\r\n}\r\nfunction createIterableMethod(method, isReadonly, isShallow) {\r\n return function (...args) {\r\n const target = this[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const targetIsMap = isMap(rawTarget);\r\n const isPair = method === 'entries' || (method === Symbol.iterator && targetIsMap);\r\n const isKeyOnly = method === 'keys' && targetIsMap;\r\n const innerIterator = target[method](...args);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly &&\r\n track(rawTarget, \"iterate\" /* ITERATE */, isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\r\n // return a wrapped iterator which returns observed versions of the\r\n // values emitted from the real iterator\r\n return {\r\n // iterator protocol\r\n next() {\r\n const { value, done } = innerIterator.next();\r\n return done\r\n ? { value, done }\r\n : {\r\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\r\n done\r\n };\r\n },\r\n // iterable protocol\r\n [Symbol.iterator]() {\r\n return this;\r\n }\r\n };\r\n };\r\n}\r\nfunction createReadonlyMethod(type) {\r\n return function (...args) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\r\n console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));\r\n }\r\n return type === \"delete\" /* DELETE */ ? false : this;\r\n };\r\n}\r\nfunction createInstrumentations() {\r\n const mutableInstrumentations = {\r\n get(key) {\r\n return get$1(this, key);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, false)\r\n };\r\n const shallowInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, false, true);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, true)\r\n };\r\n const readonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* ADD */),\r\n set: createReadonlyMethod(\"set\" /* SET */),\r\n delete: createReadonlyMethod(\"delete\" /* DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* CLEAR */),\r\n forEach: createForEach(true, false)\r\n };\r\n const shallowReadonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* ADD */),\r\n set: createReadonlyMethod(\"set\" /* SET */),\r\n delete: createReadonlyMethod(\"delete\" /* DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* CLEAR */),\r\n forEach: createForEach(true, true)\r\n };\r\n const iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator];\r\n iteratorMethods.forEach(method => {\r\n mutableInstrumentations[method] = createIterableMethod(method, false, false);\r\n readonlyInstrumentations[method] = createIterableMethod(method, true, false);\r\n shallowInstrumentations[method] = createIterableMethod(method, false, true);\r\n shallowReadonlyInstrumentations[method] = createIterableMethod(method, true, true);\r\n });\r\n return [\r\n mutableInstrumentations,\r\n readonlyInstrumentations,\r\n shallowInstrumentations,\r\n shallowReadonlyInstrumentations\r\n ];\r\n}\r\nconst [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* #__PURE__*/ createInstrumentations();\r\nfunction createInstrumentationGetter(isReadonly, shallow) {\r\n const instrumentations = shallow\r\n ? isReadonly\r\n ? shallowReadonlyInstrumentations\r\n : shallowInstrumentations\r\n : isReadonly\r\n ? readonlyInstrumentations\r\n : mutableInstrumentations;\r\n return (target, key, receiver) => {\r\n if (key === \"__v_isReactive\" /* IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_raw\" /* RAW */) {\r\n return target;\r\n }\r\n return Reflect.get(hasOwn(instrumentations, key) && key in target\r\n ? instrumentations\r\n : target, key, receiver);\r\n };\r\n}\r\nconst mutableCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(false, false)\r\n};\r\nconst shallowCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(false, true)\r\n};\r\nconst readonlyCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(true, false)\r\n};\r\nconst shallowReadonlyCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(true, true)\r\n};\r\nfunction checkIdentityKeys(target, has, key) {\r\n const rawKey = toRaw(key);\r\n if (rawKey !== key && has.call(target, rawKey)) {\r\n const type = toRawType(target);\r\n console.warn(`Reactive ${type} contains both the raw and reactive ` +\r\n `versions of the same object${type === `Map` ? ` as keys` : ``}, ` +\r\n `which can lead to inconsistencies. ` +\r\n `Avoid differentiating between the raw and reactive versions ` +\r\n `of an object and only use the reactive version if possible.`);\r\n }\r\n}\n\nconst reactiveMap = new WeakMap();\r\nconst shallowReactiveMap = new WeakMap();\r\nconst readonlyMap = new WeakMap();\r\nconst shallowReadonlyMap = new WeakMap();\r\nfunction targetTypeMap(rawType) {\r\n switch (rawType) {\r\n case 'Object':\r\n case 'Array':\r\n return 1 /* COMMON */;\r\n case 'Map':\r\n case 'Set':\r\n case 'WeakMap':\r\n case 'WeakSet':\r\n return 2 /* COLLECTION */;\r\n default:\r\n return 0 /* INVALID */;\r\n }\r\n}\r\nfunction getTargetType(value) {\r\n return value[\"__v_skip\" /* SKIP */] || !Object.isExtensible(value)\r\n ? 0 /* INVALID */\r\n : targetTypeMap(toRawType(value));\r\n}\r\nfunction reactive(target) {\r\n // if trying to observe a readonly proxy, return the readonly version.\r\n if (isReadonly(target)) {\r\n return target;\r\n }\r\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\r\n}\r\n/**\r\n * Return a shallowly-reactive copy of the original object, where only the root\r\n * level properties are reactive. It also does not auto-unwrap refs (even at the\r\n * root level).\r\n */\r\nfunction shallowReactive(target) {\r\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\r\n}\r\n/**\r\n * Creates a readonly copy of the original object. Note the returned copy is not\r\n * made reactive, but `readonly` can be called on an already reactive object.\r\n */\r\nfunction readonly(target) {\r\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\r\n}\r\n/**\r\n * Returns a reactive-copy of the original object, where only the root level\r\n * properties are readonly, and does NOT unwrap refs nor recursively convert\r\n * returned properties.\r\n * This is used for creating the props proxy object for stateful components.\r\n */\r\nfunction shallowReadonly(target) {\r\n return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);\r\n}\r\nfunction createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {\r\n if (!isObject(target)) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.warn(`value cannot be made reactive: ${String(target)}`);\r\n }\r\n return target;\r\n }\r\n // target is already a Proxy, return it.\r\n // exception: calling readonly() on a reactive object\r\n if (target[\"__v_raw\" /* RAW */] &&\r\n !(isReadonly && target[\"__v_isReactive\" /* IS_REACTIVE */])) {\r\n return target;\r\n }\r\n // target already has corresponding Proxy\r\n const existingProxy = proxyMap.get(target);\r\n if (existingProxy) {\r\n return existingProxy;\r\n }\r\n // only specific value types can be observed.\r\n const targetType = getTargetType(target);\r\n if (targetType === 0 /* INVALID */) {\r\n return target;\r\n }\r\n const proxy = new Proxy(target, targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers);\r\n proxyMap.set(target, proxy);\r\n return proxy;\r\n}\r\nfunction isReactive(value) {\r\n if (isReadonly(value)) {\r\n return isReactive(value[\"__v_raw\" /* RAW */]);\r\n }\r\n return !!(value && value[\"__v_isReactive\" /* IS_REACTIVE */]);\r\n}\r\nfunction isReadonly(value) {\r\n return !!(value && value[\"__v_isReadonly\" /* IS_READONLY */]);\r\n}\r\nfunction isShallow(value) {\r\n return !!(value && value[\"__v_isShallow\" /* IS_SHALLOW */]);\r\n}\r\nfunction isProxy(value) {\r\n return isReactive(value) || isReadonly(value);\r\n}\r\nfunction toRaw(observed) {\r\n const raw = observed && observed[\"__v_raw\" /* RAW */];\r\n return raw ? toRaw(raw) : observed;\r\n}\r\nfunction markRaw(value) {\r\n def(value, \"__v_skip\" /* SKIP */, true);\r\n return value;\r\n}\r\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\r\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction trackRefValue(ref) {\r\n if (shouldTrack && activeEffect) {\r\n ref = toRaw(ref);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n trackEffects(ref.dep || (ref.dep = createDep()), {\r\n target: ref,\r\n type: \"get\" /* GET */,\r\n key: 'value'\r\n });\r\n }\r\n else {\r\n trackEffects(ref.dep || (ref.dep = createDep()));\r\n }\r\n }\r\n}\r\nfunction triggerRefValue(ref, newVal) {\r\n ref = toRaw(ref);\r\n if (ref.dep) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(ref.dep, {\r\n target: ref,\r\n type: \"set\" /* SET */,\r\n key: 'value',\r\n newValue: newVal\r\n });\r\n }\r\n else {\r\n triggerEffects(ref.dep);\r\n }\r\n }\r\n}\r\nfunction isRef(r) {\r\n return !!(r && r.__v_isRef === true);\r\n}\r\nfunction ref(value) {\r\n return createRef(value, false);\r\n}\r\nfunction shallowRef(value) {\r\n return createRef(value, true);\r\n}\r\nfunction createRef(rawValue, shallow) {\r\n if (isRef(rawValue)) {\r\n return rawValue;\r\n }\r\n return new RefImpl(rawValue, shallow);\r\n}\r\nclass RefImpl {\r\n constructor(value, __v_isShallow) {\r\n this.__v_isShallow = __v_isShallow;\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n this._rawValue = __v_isShallow ? value : toRaw(value);\r\n this._value = __v_isShallow ? value : toReactive(value);\r\n }\r\n get value() {\r\n trackRefValue(this);\r\n return this._value;\r\n }\r\n set value(newVal) {\r\n newVal = this.__v_isShallow ? newVal : toRaw(newVal);\r\n if (hasChanged(newVal, this._rawValue)) {\r\n this._rawValue = newVal;\r\n this._value = this.__v_isShallow ? newVal : toReactive(newVal);\r\n triggerRefValue(this, newVal);\r\n }\r\n }\r\n}\r\nfunction triggerRef(ref) {\r\n triggerRefValue(ref, (process.env.NODE_ENV !== 'production') ? ref.value : void 0);\r\n}\r\nfunction unref(ref) {\r\n return isRef(ref) ? ref.value : ref;\r\n}\r\nconst shallowUnwrapHandlers = {\r\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\r\n set: (target, key, value, receiver) => {\r\n const oldValue = target[key];\r\n if (isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n else {\r\n return Reflect.set(target, key, value, receiver);\r\n }\r\n }\r\n};\r\nfunction proxyRefs(objectWithRefs) {\r\n return isReactive(objectWithRefs)\r\n ? objectWithRefs\r\n : new Proxy(objectWithRefs, shallowUnwrapHandlers);\r\n}\r\nclass CustomRefImpl {\r\n constructor(factory) {\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n const { get, set } = factory(() => trackRefValue(this), () => triggerRefValue(this));\r\n this._get = get;\r\n this._set = set;\r\n }\r\n get value() {\r\n return this._get();\r\n }\r\n set value(newVal) {\r\n this._set(newVal);\r\n }\r\n}\r\nfunction customRef(factory) {\r\n return new CustomRefImpl(factory);\r\n}\r\nfunction toRefs(object) {\r\n if ((process.env.NODE_ENV !== 'production') && !isProxy(object)) {\r\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\r\n }\r\n const ret = isArray(object) ? new Array(object.length) : {};\r\n for (const key in object) {\r\n ret[key] = toRef(object, key);\r\n }\r\n return ret;\r\n}\r\nclass ObjectRefImpl {\r\n constructor(_object, _key, _defaultValue) {\r\n this._object = _object;\r\n this._key = _key;\r\n this._defaultValue = _defaultValue;\r\n this.__v_isRef = true;\r\n }\r\n get value() {\r\n const val = this._object[this._key];\r\n return val === undefined ? this._defaultValue : val;\r\n }\r\n set value(newVal) {\r\n this._object[this._key] = newVal;\r\n }\r\n}\r\nfunction toRef(object, key, defaultValue) {\r\n const val = object[key];\r\n return isRef(val)\r\n ? val\r\n : new ObjectRefImpl(object, key, defaultValue);\r\n}\n\nclass ComputedRefImpl {\r\n constructor(getter, _setter, isReadonly, isSSR) {\r\n this._setter = _setter;\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n this._dirty = true;\r\n this.effect = new ReactiveEffect(getter, () => {\r\n if (!this._dirty) {\r\n this._dirty = true;\r\n triggerRefValue(this);\r\n }\r\n });\r\n this.effect.computed = this;\r\n this.effect.active = this._cacheable = !isSSR;\r\n this[\"__v_isReadonly\" /* IS_READONLY */] = isReadonly;\r\n }\r\n get value() {\r\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\r\n const self = toRaw(this);\r\n trackRefValue(self);\r\n if (self._dirty || !self._cacheable) {\r\n self._dirty = false;\r\n self._value = self.effect.run();\r\n }\r\n return self._value;\r\n }\r\n set value(newValue) {\r\n this._setter(newValue);\r\n }\r\n}\r\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\r\n let getter;\r\n let setter;\r\n const onlyGetter = isFunction(getterOrOptions);\r\n if (onlyGetter) {\r\n getter = getterOrOptions;\r\n setter = (process.env.NODE_ENV !== 'production')\r\n ? () => {\r\n console.warn('Write operation failed: computed value is readonly');\r\n }\r\n : NOOP;\r\n }\r\n else {\r\n getter = getterOrOptions.get;\r\n setter = getterOrOptions.set;\r\n }\r\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\r\n if ((process.env.NODE_ENV !== 'production') && debugOptions && !isSSR) {\r\n cRef.effect.onTrack = debugOptions.onTrack;\r\n cRef.effect.onTrigger = debugOptions.onTrigger;\r\n }\r\n return cRef;\r\n}\n\nvar _a;\r\nconst tick = /*#__PURE__*/ Promise.resolve();\r\nconst queue = [];\r\nlet queued = false;\r\nconst scheduler = (fn) => {\r\n queue.push(fn);\r\n if (!queued) {\r\n queued = true;\r\n tick.then(flush);\r\n }\r\n};\r\nconst flush = () => {\r\n for (let i = 0; i < queue.length; i++) {\r\n queue[i]();\r\n }\r\n queue.length = 0;\r\n queued = false;\r\n};\r\nclass DeferredComputedRefImpl {\r\n constructor(getter) {\r\n this.dep = undefined;\r\n this._dirty = true;\r\n this.__v_isRef = true;\r\n this[_a] = true;\r\n let compareTarget;\r\n let hasCompareTarget = false;\r\n let scheduled = false;\r\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\r\n if (this.dep) {\r\n if (computedTrigger) {\r\n compareTarget = this._value;\r\n hasCompareTarget = true;\r\n }\r\n else if (!scheduled) {\r\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\r\n scheduled = true;\r\n hasCompareTarget = false;\r\n scheduler(() => {\r\n if (this.effect.active && this._get() !== valueToCompare) {\r\n triggerRefValue(this);\r\n }\r\n scheduled = false;\r\n });\r\n }\r\n // chained upstream computeds are notified synchronously to ensure\r\n // value invalidation in case of sync access; normal effects are\r\n // deferred to be triggered in scheduler.\r\n for (const e of this.dep) {\r\n if (e.computed instanceof DeferredComputedRefImpl) {\r\n e.scheduler(true /* computedTrigger */);\r\n }\r\n }\r\n }\r\n this._dirty = true;\r\n });\r\n this.effect.computed = this;\r\n }\r\n _get() {\r\n if (this._dirty) {\r\n this._dirty = false;\r\n return (this._value = this.effect.run());\r\n }\r\n return this._value;\r\n }\r\n get value() {\r\n trackRefValue(this);\r\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\r\n return toRaw(this)._get();\r\n }\r\n}\r\n_a = \"__v_isReadonly\" /* IS_READONLY */;\r\nfunction deferredComputed(getter) {\r\n return new DeferredComputedRefImpl(getter);\r\n}\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseTracking, proxyRefs, reactive, readonly, ref, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, track, trigger, triggerRef, unref };\n","import { pauseTracking, resetTracking, isRef, toRaw, isShallow as isShallow$1, isReactive, ReactiveEffect, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, EffectScope, markRaw, proxyRefs, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, toNumber, hyphenate, camelize, isOn, hasOwn, isModelListener, hasChanged, remove, isObject, isSet, isMap, isPlainObject, invokeArrayFns, isBuiltInDirective, capitalize, isGloballyWhitelisted, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, NO, normalizeClass, normalizeStyle } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\r\nfunction pushWarningContext(vnode) {\r\n stack.push(vnode);\r\n}\r\nfunction popWarningContext() {\r\n stack.pop();\r\n}\r\nfunction warn(msg, ...args) {\r\n // avoid props formatting or warn handler tracking deps that might be mutated\r\n // during patch, leading to infinite recursion.\r\n pauseTracking();\r\n const instance = stack.length ? stack[stack.length - 1].component : null;\r\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\r\n const trace = getComponentTrace();\r\n if (appWarnHandler) {\r\n callWithErrorHandling(appWarnHandler, instance, 11 /* APP_WARN_HANDLER */, [\r\n msg + args.join(''),\r\n instance && instance.proxy,\r\n trace\r\n .map(({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`)\r\n .join('\\n'),\r\n trace\r\n ]);\r\n }\r\n else {\r\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\r\n /* istanbul ignore if */\r\n if (trace.length &&\r\n // avoid spamming console during tests\r\n !false) {\r\n warnArgs.push(`\\n`, ...formatTrace(trace));\r\n }\r\n console.warn(...warnArgs);\r\n }\r\n resetTracking();\r\n}\r\nfunction getComponentTrace() {\r\n let currentVNode = stack[stack.length - 1];\r\n if (!currentVNode) {\r\n return [];\r\n }\r\n // we can't just use the stack because it will be incomplete during updates\r\n // that did not start from the root. Re-construct the parent chain using\r\n // instance parent pointers.\r\n const normalizedStack = [];\r\n while (currentVNode) {\r\n const last = normalizedStack[0];\r\n if (last && last.vnode === currentVNode) {\r\n last.recurseCount++;\r\n }\r\n else {\r\n normalizedStack.push({\r\n vnode: currentVNode,\r\n recurseCount: 0\r\n });\r\n }\r\n const parentInstance = currentVNode.component && currentVNode.component.parent;\r\n currentVNode = parentInstance && parentInstance.vnode;\r\n }\r\n return normalizedStack;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatTrace(trace) {\r\n const logs = [];\r\n trace.forEach((entry, i) => {\r\n logs.push(...(i === 0 ? [] : [`\\n`]), ...formatTraceEntry(entry));\r\n });\r\n return logs;\r\n}\r\nfunction formatTraceEntry({ vnode, recurseCount }) {\r\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\r\n const isRoot = vnode.component ? vnode.component.parent == null : false;\r\n const open = ` at <${formatComponentName(vnode.component, vnode.type, isRoot)}`;\r\n const close = `>` + postfix;\r\n return vnode.props\r\n ? [open, ...formatProps(vnode.props), close]\r\n : [open + close];\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProps(props) {\r\n const res = [];\r\n const keys = Object.keys(props);\r\n keys.slice(0, 3).forEach(key => {\r\n res.push(...formatProp(key, props[key]));\r\n });\r\n if (keys.length > 3) {\r\n res.push(` ...`);\r\n }\r\n return res;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProp(key, value, raw) {\r\n if (isString(value)) {\r\n value = JSON.stringify(value);\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (typeof value === 'number' ||\r\n typeof value === 'boolean' ||\r\n value == null) {\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (isRef(value)) {\r\n value = formatProp(key, toRaw(value.value), true);\r\n return raw ? value : [`${key}=Ref<`, value, `>`];\r\n }\r\n else if (isFunction(value)) {\r\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\r\n }\r\n else {\r\n value = toRaw(value);\r\n return raw ? value : [`${key}=`, value];\r\n }\r\n}\n\nconst ErrorTypeStrings = {\r\n [\"sp\" /* SERVER_PREFETCH */]: 'serverPrefetch hook',\r\n [\"bc\" /* BEFORE_CREATE */]: 'beforeCreate hook',\r\n [\"c\" /* CREATED */]: 'created hook',\r\n [\"bm\" /* BEFORE_MOUNT */]: 'beforeMount hook',\r\n [\"m\" /* MOUNTED */]: 'mounted hook',\r\n [\"bu\" /* BEFORE_UPDATE */]: 'beforeUpdate hook',\r\n [\"u\" /* UPDATED */]: 'updated',\r\n [\"bum\" /* BEFORE_UNMOUNT */]: 'beforeUnmount hook',\r\n [\"um\" /* UNMOUNTED */]: 'unmounted hook',\r\n [\"a\" /* ACTIVATED */]: 'activated hook',\r\n [\"da\" /* DEACTIVATED */]: 'deactivated hook',\r\n [\"ec\" /* ERROR_CAPTURED */]: 'errorCaptured hook',\r\n [\"rtc\" /* RENDER_TRACKED */]: 'renderTracked hook',\r\n [\"rtg\" /* RENDER_TRIGGERED */]: 'renderTriggered hook',\r\n [0 /* SETUP_FUNCTION */]: 'setup function',\r\n [1 /* RENDER_FUNCTION */]: 'render function',\r\n [2 /* WATCH_GETTER */]: 'watcher getter',\r\n [3 /* WATCH_CALLBACK */]: 'watcher callback',\r\n [4 /* WATCH_CLEANUP */]: 'watcher cleanup function',\r\n [5 /* NATIVE_EVENT_HANDLER */]: 'native event handler',\r\n [6 /* COMPONENT_EVENT_HANDLER */]: 'component event handler',\r\n [7 /* VNODE_HOOK */]: 'vnode hook',\r\n [8 /* DIRECTIVE_HOOK */]: 'directive hook',\r\n [9 /* TRANSITION_HOOK */]: 'transition hook',\r\n [10 /* APP_ERROR_HANDLER */]: 'app errorHandler',\r\n [11 /* APP_WARN_HANDLER */]: 'app warnHandler',\r\n [12 /* FUNCTION_REF */]: 'ref function',\r\n [13 /* ASYNC_COMPONENT_LOADER */]: 'async component loader',\r\n [14 /* SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +\r\n 'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core'\r\n};\r\nfunction callWithErrorHandling(fn, instance, type, args) {\r\n let res;\r\n try {\r\n res = args ? fn(...args) : fn();\r\n }\r\n catch (err) {\r\n handleError(err, instance, type);\r\n }\r\n return res;\r\n}\r\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\r\n if (isFunction(fn)) {\r\n const res = callWithErrorHandling(fn, instance, type, args);\r\n if (res && isPromise(res)) {\r\n res.catch(err => {\r\n handleError(err, instance, type);\r\n });\r\n }\r\n return res;\r\n }\r\n const values = [];\r\n for (let i = 0; i < fn.length; i++) {\r\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\r\n }\r\n return values;\r\n}\r\nfunction handleError(err, instance, type, throwInDev = true) {\r\n const contextVNode = instance ? instance.vnode : null;\r\n if (instance) {\r\n let cur = instance.parent;\r\n // the exposed instance is the render proxy to keep it consistent with 2.x\r\n const exposedInstance = instance.proxy;\r\n // in production the hook receives only the error code\r\n const errorInfo = (process.env.NODE_ENV !== 'production') ? ErrorTypeStrings[type] : type;\r\n while (cur) {\r\n const errorCapturedHooks = cur.ec;\r\n if (errorCapturedHooks) {\r\n for (let i = 0; i < errorCapturedHooks.length; i++) {\r\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\r\n return;\r\n }\r\n }\r\n }\r\n cur = cur.parent;\r\n }\r\n // app-level handling\r\n const appErrorHandler = instance.appContext.config.errorHandler;\r\n if (appErrorHandler) {\r\n callWithErrorHandling(appErrorHandler, null, 10 /* APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]);\r\n return;\r\n }\r\n }\r\n logError(err, type, contextVNode, throwInDev);\r\n}\r\nfunction logError(err, type, contextVNode, throwInDev = true) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const info = ErrorTypeStrings[type];\r\n if (contextVNode) {\r\n pushWarningContext(contextVNode);\r\n }\r\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\r\n if (contextVNode) {\r\n popWarningContext();\r\n }\r\n // crash in dev by default so it's more noticeable\r\n if (throwInDev) {\r\n throw err;\r\n }\r\n else {\r\n console.error(err);\r\n }\r\n }\r\n else {\r\n // recover in prod to reduce the impact on end-user\r\n console.error(err);\r\n }\r\n}\n\nlet isFlushing = false;\r\nlet isFlushPending = false;\r\nconst queue = [];\r\nlet flushIndex = 0;\r\nconst pendingPreFlushCbs = [];\r\nlet activePreFlushCbs = null;\r\nlet preFlushIndex = 0;\r\nconst pendingPostFlushCbs = [];\r\nlet activePostFlushCbs = null;\r\nlet postFlushIndex = 0;\r\nconst resolvedPromise = /*#__PURE__*/ Promise.resolve();\r\nlet currentFlushPromise = null;\r\nlet currentPreFlushParentJob = null;\r\nconst RECURSION_LIMIT = 100;\r\nfunction nextTick(fn) {\r\n const p = currentFlushPromise || resolvedPromise;\r\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\r\n}\r\n// #2768\r\n// Use binary-search to find a suitable position in the queue,\r\n// so that the queue maintains the increasing order of job's id,\r\n// which can prevent the job from being skipped and also can avoid repeated patching.\r\nfunction findInsertionIndex(id) {\r\n // the start index should be `flushIndex + 1`\r\n let start = flushIndex + 1;\r\n let end = queue.length;\r\n while (start < end) {\r\n const middle = (start + end) >>> 1;\r\n const middleJobId = getId(queue[middle]);\r\n middleJobId < id ? (start = middle + 1) : (end = middle);\r\n }\r\n return start;\r\n}\r\nfunction queueJob(job) {\r\n // the dedupe search uses the startIndex argument of Array.includes()\r\n // by default the search index includes the current job that is being run\r\n // so it cannot recursively trigger itself again.\r\n // if the job is a watch() callback, the search will start with a +1 index to\r\n // allow it recursively trigger itself - it is the user's responsibility to\r\n // ensure it doesn't end up in an infinite loop.\r\n if ((!queue.length ||\r\n !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) &&\r\n job !== currentPreFlushParentJob) {\r\n if (job.id == null) {\r\n queue.push(job);\r\n }\r\n else {\r\n queue.splice(findInsertionIndex(job.id), 0, job);\r\n }\r\n queueFlush();\r\n }\r\n}\r\nfunction queueFlush() {\r\n if (!isFlushing && !isFlushPending) {\r\n isFlushPending = true;\r\n currentFlushPromise = resolvedPromise.then(flushJobs);\r\n }\r\n}\r\nfunction invalidateJob(job) {\r\n const i = queue.indexOf(job);\r\n if (i > flushIndex) {\r\n queue.splice(i, 1);\r\n }\r\n}\r\nfunction queueCb(cb, activeQueue, pendingQueue, index) {\r\n if (!isArray(cb)) {\r\n if (!activeQueue ||\r\n !activeQueue.includes(cb, cb.allowRecurse ? index + 1 : index)) {\r\n pendingQueue.push(cb);\r\n }\r\n }\r\n else {\r\n // if cb is an array, it is a component lifecycle hook which can only be\r\n // triggered by a job, which is already deduped in the main queue, so\r\n // we can skip duplicate check here to improve perf\r\n pendingQueue.push(...cb);\r\n }\r\n queueFlush();\r\n}\r\nfunction queuePreFlushCb(cb) {\r\n queueCb(cb, activePreFlushCbs, pendingPreFlushCbs, preFlushIndex);\r\n}\r\nfunction queuePostFlushCb(cb) {\r\n queueCb(cb, activePostFlushCbs, pendingPostFlushCbs, postFlushIndex);\r\n}\r\nfunction flushPreFlushCbs(seen, parentJob = null) {\r\n if (pendingPreFlushCbs.length) {\r\n currentPreFlushParentJob = parentJob;\r\n activePreFlushCbs = [...new Set(pendingPreFlushCbs)];\r\n pendingPreFlushCbs.length = 0;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n for (preFlushIndex = 0; preFlushIndex < activePreFlushCbs.length; preFlushIndex++) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n checkRecursiveUpdates(seen, activePreFlushCbs[preFlushIndex])) {\r\n continue;\r\n }\r\n activePreFlushCbs[preFlushIndex]();\r\n }\r\n activePreFlushCbs = null;\r\n preFlushIndex = 0;\r\n currentPreFlushParentJob = null;\r\n // recursively flush until it drains\r\n flushPreFlushCbs(seen, parentJob);\r\n }\r\n}\r\nfunction flushPostFlushCbs(seen) {\r\n // flush any pre cbs queued during the flush (e.g. pre watchers)\r\n flushPreFlushCbs();\r\n if (pendingPostFlushCbs.length) {\r\n const deduped = [...new Set(pendingPostFlushCbs)];\r\n pendingPostFlushCbs.length = 0;\r\n // #1947 already has active queue, nested flushPostFlushCbs call\r\n if (activePostFlushCbs) {\r\n activePostFlushCbs.push(...deduped);\r\n return;\r\n }\r\n activePostFlushCbs = deduped;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\r\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\r\n continue;\r\n }\r\n activePostFlushCbs[postFlushIndex]();\r\n }\r\n activePostFlushCbs = null;\r\n postFlushIndex = 0;\r\n }\r\n}\r\nconst getId = (job) => job.id == null ? Infinity : job.id;\r\nfunction flushJobs(seen) {\r\n isFlushPending = false;\r\n isFlushing = true;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n flushPreFlushCbs(seen);\r\n // Sort queue before flush.\r\n // This ensures that:\r\n // 1. Components are updated from parent to child. (because parent is always\r\n // created before the child so its render effect will have smaller\r\n // priority number)\r\n // 2. If a component is unmounted during a parent component's update,\r\n // its update can be skipped.\r\n queue.sort((a, b) => getId(a) - getId(b));\r\n // conditional usage of checkRecursiveUpdate must be determined out of\r\n // try ... catch block since Rollup by default de-optimizes treeshaking\r\n // inside try-catch. This can leave all warning code unshaked. Although\r\n // they would get eventually shaken by a minifier like terser, some minifiers\r\n // would fail to do that (e.g. https://github.com/evanw/esbuild/issues/1610)\r\n const check = (process.env.NODE_ENV !== 'production')\r\n ? (job) => checkRecursiveUpdates(seen, job)\r\n : NOOP;\r\n try {\r\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\r\n const job = queue[flushIndex];\r\n if (job && job.active !== false) {\r\n if ((process.env.NODE_ENV !== 'production') && check(job)) {\r\n continue;\r\n }\r\n // console.log(`running:`, job.id)\r\n callWithErrorHandling(job, null, 14 /* SCHEDULER */);\r\n }\r\n }\r\n }\r\n finally {\r\n flushIndex = 0;\r\n queue.length = 0;\r\n flushPostFlushCbs(seen);\r\n isFlushing = false;\r\n currentFlushPromise = null;\r\n // some postFlushCb queued jobs!\r\n // keep flushing until it drains.\r\n if (queue.length ||\r\n pendingPreFlushCbs.length ||\r\n pendingPostFlushCbs.length) {\r\n flushJobs(seen);\r\n }\r\n }\r\n}\r\nfunction checkRecursiveUpdates(seen, fn) {\r\n if (!seen.has(fn)) {\r\n seen.set(fn, 1);\r\n }\r\n else {\r\n const count = seen.get(fn);\r\n if (count > RECURSION_LIMIT) {\r\n const instance = fn.ownerInstance;\r\n const componentName = instance && getComponentName(instance.type);\r\n warn(`Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. ` +\r\n `This means you have a reactive effect that is mutating its own ` +\r\n `dependencies and thus recursively triggering itself. Possible sources ` +\r\n `include component template, render function, updated hook or ` +\r\n `watcher source function.`);\r\n return true;\r\n }\r\n else {\r\n seen.set(fn, count + 1);\r\n }\r\n }\r\n}\n\n/* eslint-disable no-restricted-globals */\r\nlet isHmrUpdating = false;\r\nconst hmrDirtyComponents = new Set();\r\n// Expose the HMR runtime on the global object\r\n// This makes it entirely tree-shakable without polluting the exports and makes\r\n// it easier to be used in toolings like vue-loader\r\n// Note: for a component to be eligible for HMR it also needs the __hmrId option\r\n// to be set so that its instances can be registered / removed.\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\r\n createRecord: tryWrap(createRecord),\r\n rerender: tryWrap(rerender),\r\n reload: tryWrap(reload)\r\n };\r\n}\r\nconst map = new Map();\r\nfunction registerHMR(instance) {\r\n const id = instance.type.__hmrId;\r\n let record = map.get(id);\r\n if (!record) {\r\n createRecord(id, instance.type);\r\n record = map.get(id);\r\n }\r\n record.instances.add(instance);\r\n}\r\nfunction unregisterHMR(instance) {\r\n map.get(instance.type.__hmrId).instances.delete(instance);\r\n}\r\nfunction createRecord(id, initialDef) {\r\n if (map.has(id)) {\r\n return false;\r\n }\r\n map.set(id, {\r\n initialDef: normalizeClassComponent(initialDef),\r\n instances: new Set()\r\n });\r\n return true;\r\n}\r\nfunction normalizeClassComponent(component) {\r\n return isClassComponent(component) ? component.__vccOpts : component;\r\n}\r\nfunction rerender(id, newRender) {\r\n const record = map.get(id);\r\n if (!record) {\r\n return;\r\n }\r\n // update initial record (for not-yet-rendered component)\r\n record.initialDef.render = newRender;\r\n [...record.instances].forEach(instance => {\r\n if (newRender) {\r\n instance.render = newRender;\r\n normalizeClassComponent(instance.type).render = newRender;\r\n }\r\n instance.renderCache = [];\r\n // this flag forces child components with slot content to update\r\n isHmrUpdating = true;\r\n instance.update();\r\n isHmrUpdating = false;\r\n });\r\n}\r\nfunction reload(id, newComp) {\r\n const record = map.get(id);\r\n if (!record)\r\n return;\r\n newComp = normalizeClassComponent(newComp);\r\n // update initial def (for not-yet-rendered components)\r\n updateComponentDef(record.initialDef, newComp);\r\n // create a snapshot which avoids the set being mutated during updates\r\n const instances = [...record.instances];\r\n for (const instance of instances) {\r\n const oldComp = normalizeClassComponent(instance.type);\r\n if (!hmrDirtyComponents.has(oldComp)) {\r\n // 1. Update existing comp definition to match new one\r\n if (oldComp !== record.initialDef) {\r\n updateComponentDef(oldComp, newComp);\r\n }\r\n // 2. mark definition dirty. This forces the renderer to replace the\r\n // component on patch.\r\n hmrDirtyComponents.add(oldComp);\r\n }\r\n // 3. invalidate options resolution cache\r\n instance.appContext.optionsCache.delete(instance.type);\r\n // 4. actually update\r\n if (instance.ceReload) {\r\n // custom element\r\n hmrDirtyComponents.add(oldComp);\r\n instance.ceReload(newComp.styles);\r\n hmrDirtyComponents.delete(oldComp);\r\n }\r\n else if (instance.parent) {\r\n // 4. Force the parent instance to re-render. This will cause all updated\r\n // components to be unmounted and re-mounted. Queue the update so that we\r\n // don't end up forcing the same parent to re-render multiple times.\r\n queueJob(instance.parent.update);\r\n // instance is the inner component of an async custom element\r\n // invoke to reset styles\r\n if (instance.parent.type.__asyncLoader &&\r\n instance.parent.ceReload) {\r\n instance.parent.ceReload(newComp.styles);\r\n }\r\n }\r\n else if (instance.appContext.reload) {\r\n // root instance mounted via createApp() has a reload method\r\n instance.appContext.reload();\r\n }\r\n else if (typeof window !== 'undefined') {\r\n // root instance inside tree created via raw render(). Force reload.\r\n window.location.reload();\r\n }\r\n else {\r\n console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');\r\n }\r\n }\r\n // 5. make sure to cleanup dirty hmr components after update\r\n queuePostFlushCb(() => {\r\n for (const instance of instances) {\r\n hmrDirtyComponents.delete(normalizeClassComponent(instance.type));\r\n }\r\n });\r\n}\r\nfunction updateComponentDef(oldComp, newComp) {\r\n extend(oldComp, newComp);\r\n for (const key in oldComp) {\r\n if (key !== '__file' && !(key in newComp)) {\r\n delete oldComp[key];\r\n }\r\n }\r\n}\r\nfunction tryWrap(fn) {\r\n return (id, arg) => {\r\n try {\r\n return fn(id, arg);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +\r\n `Full reload required.`);\r\n }\r\n };\r\n}\n\nlet devtools;\r\nlet buffer = [];\r\nlet devtoolsNotInstalled = false;\r\nfunction emit(event, ...args) {\r\n if (devtools) {\r\n devtools.emit(event, ...args);\r\n }\r\n else if (!devtoolsNotInstalled) {\r\n buffer.push({ event, args });\r\n }\r\n}\r\nfunction setDevtoolsHook(hook, target) {\r\n var _a, _b;\r\n devtools = hook;\r\n if (devtools) {\r\n devtools.enabled = true;\r\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\r\n buffer = [];\r\n }\r\n else if (\r\n // handle late devtools injection - only do this if we are in an actual\r\n // browser environment to avoid the timer handle stalling test runner exit\r\n // (#4815)\r\n typeof window !== 'undefined' &&\r\n // some envs mock window but not fully\r\n window.HTMLElement &&\r\n // also exclude jsdom\r\n !((_b = (_a = window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) === null || _b === void 0 ? void 0 : _b.includes('jsdom'))) {\r\n const replay = (target.__VUE_DEVTOOLS_HOOK_REPLAY__ =\r\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []);\r\n replay.push((newHook) => {\r\n setDevtoolsHook(newHook, target);\r\n });\r\n // clear buffer after 3s - the user probably doesn't have devtools installed\r\n // at all, and keeping the buffer will cause memory leaks (#4738)\r\n setTimeout(() => {\r\n if (!devtools) {\r\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n }, 3000);\r\n }\r\n else {\r\n // non-browser env, assume not installed\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n}\r\nfunction devtoolsInitApp(app, version) {\r\n emit(\"app:init\" /* APP_INIT */, app, version, {\r\n Fragment,\r\n Text,\r\n Comment,\r\n Static\r\n });\r\n}\r\nfunction devtoolsUnmountApp(app) {\r\n emit(\"app:unmount\" /* APP_UNMOUNT */, app);\r\n}\r\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\r\nconst devtoolsComponentUpdated = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\r\nconst devtoolsComponentRemoved = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:removed\" /* COMPONENT_REMOVED */);\r\nfunction createDevtoolsComponentHook(hook) {\r\n return (component) => {\r\n emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);\r\n };\r\n}\r\nconst devtoolsPerfStart = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\r\nconst devtoolsPerfEnd = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\r\nfunction createDevtoolsPerformanceHook(hook) {\r\n return (component, type, time) => {\r\n emit(hook, component.appContext.app, component.uid, component, type, time);\r\n };\r\n}\r\nfunction devtoolsComponentEmit(component, event, params) {\r\n emit(\"component:emit\" /* COMPONENT_EMIT */, component.appContext.app, component, event, params);\r\n}\n\nfunction emit$1(instance, event, ...rawArgs) {\r\n if (instance.isUnmounted)\r\n return;\r\n const props = instance.vnode.props || EMPTY_OBJ;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { emitsOptions, propsOptions: [propsOptions] } = instance;\r\n if (emitsOptions) {\r\n if (!(event in emitsOptions) &&\r\n !(false )) {\r\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\r\n warn(`Component emitted event \"${event}\" but it is neither declared in ` +\r\n `the emits option nor as an \"${toHandlerKey(event)}\" prop.`);\r\n }\r\n }\r\n else {\r\n const validator = emitsOptions[event];\r\n if (isFunction(validator)) {\r\n const isValid = validator(...rawArgs);\r\n if (!isValid) {\r\n warn(`Invalid event arguments: event validation failed for event \"${event}\".`);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n let args = rawArgs;\r\n const isModelListener = event.startsWith('update:');\r\n // for v-model update:xxx events, apply modifiers on args\r\n const modelArg = isModelListener && event.slice(7);\r\n if (modelArg && modelArg in props) {\r\n const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;\r\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\r\n if (trim) {\r\n args = rawArgs.map(a => a.trim());\r\n }\r\n if (number) {\r\n args = rawArgs.map(toNumber);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentEmit(instance, event, args);\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const lowerCaseEvent = event.toLowerCase();\r\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\r\n warn(`Event \"${lowerCaseEvent}\" is emitted in component ` +\r\n `${formatComponentName(instance, instance.type)} but the handler is registered for \"${event}\". ` +\r\n `Note that HTML attributes are case-insensitive and you cannot use ` +\r\n `v-on to listen to camelCase events when using in-DOM templates. ` +\r\n `You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`);\r\n }\r\n }\r\n let handlerName;\r\n let handler = props[(handlerName = toHandlerKey(event))] ||\r\n // also try camelCase event handler (#2249)\r\n props[(handlerName = toHandlerKey(camelize(event)))];\r\n // for v-model update:xxx events, also trigger kebab-case equivalent\r\n // for props passed via kebab-case\r\n if (!handler && isModelListener) {\r\n handler = props[(handlerName = toHandlerKey(hyphenate(event)))];\r\n }\r\n if (handler) {\r\n callWithAsyncErrorHandling(handler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n const onceHandler = props[handlerName + `Once`];\r\n if (onceHandler) {\r\n if (!instance.emitted) {\r\n instance.emitted = {};\r\n }\r\n else if (instance.emitted[handlerName]) {\r\n return;\r\n }\r\n instance.emitted[handlerName] = true;\r\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n}\r\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\r\n const cache = appContext.emitsCache;\r\n const cached = cache.get(comp);\r\n if (cached !== undefined) {\r\n return cached;\r\n }\r\n const raw = comp.emits;\r\n let normalized = {};\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendEmits = (raw) => {\r\n const normalizedFromExtend = normalizeEmitsOptions(raw, appContext, true);\r\n if (normalizedFromExtend) {\r\n hasExtends = true;\r\n extend(normalized, normalizedFromExtend);\r\n }\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendEmits);\r\n }\r\n if (comp.extends) {\r\n extendEmits(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendEmits);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n cache.set(comp, null);\r\n return null;\r\n }\r\n if (isArray(raw)) {\r\n raw.forEach(key => (normalized[key] = null));\r\n }\r\n else {\r\n extend(normalized, raw);\r\n }\r\n cache.set(comp, normalized);\r\n return normalized;\r\n}\r\n// Check if an incoming prop key is a declared emit event listener.\r\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\r\n// both considered matched listeners.\r\nfunction isEmitListener(options, key) {\r\n if (!options || !isOn(key)) {\r\n return false;\r\n }\r\n key = key.slice(2).replace(/Once$/, '');\r\n return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\r\n hasOwn(options, hyphenate(key)) ||\r\n hasOwn(options, key));\r\n}\n\n/**\r\n * mark the current rendering instance for asset resolution (e.g.\r\n * resolveComponent, resolveDirective) during render\r\n */\r\nlet currentRenderingInstance = null;\r\nlet currentScopeId = null;\r\n/**\r\n * Note: rendering calls maybe nested. The function returns the parent rendering\r\n * instance if present, which should be restored after the render is done:\r\n *\r\n * ```js\r\n * const prev = setCurrentRenderingInstance(i)\r\n * // ...render\r\n * setCurrentRenderingInstance(prev)\r\n * ```\r\n */\r\nfunction setCurrentRenderingInstance(instance) {\r\n const prev = currentRenderingInstance;\r\n currentRenderingInstance = instance;\r\n currentScopeId = (instance && instance.type.__scopeId) || null;\r\n return prev;\r\n}\r\n/**\r\n * Set scope id when creating hoisted vnodes.\r\n * @private compiler helper\r\n */\r\nfunction pushScopeId(id) {\r\n currentScopeId = id;\r\n}\r\n/**\r\n * Technically we no longer need this after 3.0.8 but we need to keep the same\r\n * API for backwards compat w/ code generated by compilers.\r\n * @private\r\n */\r\nfunction popScopeId() {\r\n currentScopeId = null;\r\n}\r\n/**\r\n * Only for backwards compat\r\n * @private\r\n */\r\nconst withScopeId = (_id) => withCtx;\r\n/**\r\n * Wrap a slot function to memoize current rendering instance\r\n * @private compiler helper\r\n */\r\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot // false only\r\n) {\r\n if (!ctx)\r\n return fn;\r\n // already normalized\r\n if (fn._n) {\r\n return fn;\r\n }\r\n const renderFnWithContext = (...args) => {\r\n // If a user calls a compiled slot inside a template expression (#1745), it\r\n // can mess up block tracking, so by default we disable block tracking and\r\n // force bail out when invoking a compiled slot (indicated by the ._d flag).\r\n // This isn't necessary if rendering a compiled ``, so we flip the\r\n // ._d flag off when invoking the wrapped fn inside `renderSlot`.\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(-1);\r\n }\r\n const prevInstance = setCurrentRenderingInstance(ctx);\r\n const res = fn(...args);\r\n setCurrentRenderingInstance(prevInstance);\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(1);\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentUpdated(ctx);\r\n }\r\n return res;\r\n };\r\n // mark normalized to avoid duplicated wrapping\r\n renderFnWithContext._n = true;\r\n // mark this as compiled by default\r\n // this is used in vnode.ts -> normalizeChildren() to set the slot\r\n // rendering flag.\r\n renderFnWithContext._c = true;\r\n // disable block tracking by default\r\n renderFnWithContext._d = true;\r\n return renderFnWithContext;\r\n}\n\n/**\r\n * dev only flag to track whether $attrs was used during render.\r\n * If $attrs was used during render then the warning for failed attrs\r\n * fallthrough can be suppressed.\r\n */\r\nlet accessedAttrs = false;\r\nfunction markAttrsAccessed() {\r\n accessedAttrs = true;\r\n}\r\nfunction renderComponentRoot(instance) {\r\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx, inheritAttrs } = instance;\r\n let result;\r\n let fallthroughAttrs;\r\n const prev = setCurrentRenderingInstance(instance);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n accessedAttrs = false;\r\n }\r\n try {\r\n if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) {\r\n // withProxy is a proxy with a different `has` trap only for\r\n // runtime-compiled render functions using `with` block.\r\n const proxyToUse = withProxy || proxy;\r\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\r\n fallthroughAttrs = attrs;\r\n }\r\n else {\r\n // functional\r\n const render = Component;\r\n // in dev, mark attrs accessed if optional props (attrs === props)\r\n if ((process.env.NODE_ENV !== 'production') && attrs === props) {\r\n markAttrsAccessed();\r\n }\r\n result = normalizeVNode(render.length > 1\r\n ? render(props, (process.env.NODE_ENV !== 'production')\r\n ? {\r\n get attrs() {\r\n markAttrsAccessed();\r\n return attrs;\r\n },\r\n slots,\r\n emit\r\n }\r\n : { attrs, slots, emit })\r\n : render(props, null /* we know it doesn't need it */));\r\n fallthroughAttrs = Component.props\r\n ? attrs\r\n : getFunctionalFallthrough(attrs);\r\n }\r\n }\r\n catch (err) {\r\n blockStack.length = 0;\r\n handleError(err, instance, 1 /* RENDER_FUNCTION */);\r\n result = createVNode(Comment);\r\n }\r\n // attr merging\r\n // in dev mode, comments are preserved, and it's possible for a template\r\n // to have comments along side the root element which makes it a fragment\r\n let root = result;\r\n let setRoot = undefined;\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n result.patchFlag > 0 &&\r\n result.patchFlag & 2048 /* DEV_ROOT_FRAGMENT */) {\r\n [root, setRoot] = getChildRoot(result);\r\n }\r\n if (fallthroughAttrs && inheritAttrs !== false) {\r\n const keys = Object.keys(fallthroughAttrs);\r\n const { shapeFlag } = root;\r\n if (keys.length) {\r\n if (shapeFlag & (1 /* ELEMENT */ | 6 /* COMPONENT */)) {\r\n if (propsOptions && keys.some(isModelListener)) {\r\n // If a v-model listener (onUpdate:xxx) has a corresponding declared\r\n // prop, it indicates this component expects to handle v-model and\r\n // it should not fallthrough.\r\n // related: #1543, #1643, #1989\r\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\r\n }\r\n root = cloneVNode(root, fallthroughAttrs);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production') && !accessedAttrs && root.type !== Comment) {\r\n const allAttrs = Object.keys(attrs);\r\n const eventAttrs = [];\r\n const extraAttrs = [];\r\n for (let i = 0, l = allAttrs.length; i < l; i++) {\r\n const key = allAttrs[i];\r\n if (isOn(key)) {\r\n // ignore v-model handlers when they fail to fallthrough\r\n if (!isModelListener(key)) {\r\n // remove `on`, lowercase first letter to reflect event casing\r\n // accurately\r\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\r\n }\r\n }\r\n else {\r\n extraAttrs.push(key);\r\n }\r\n }\r\n if (extraAttrs.length) {\r\n warn(`Extraneous non-props attributes (` +\r\n `${extraAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes.`);\r\n }\r\n if (eventAttrs.length) {\r\n warn(`Extraneous non-emits event listeners (` +\r\n `${eventAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes. ` +\r\n `If the listener is intended to be a component custom event listener only, ` +\r\n `declare it using the \"emits\" option.`);\r\n }\r\n }\r\n }\r\n }\r\n // inherit directives\r\n if (vnode.dirs) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Runtime directive used on component with non-element root node. ` +\r\n `The directives will not function as intended.`);\r\n }\r\n // clone before mutating since the root may be a hoisted vnode\r\n root = cloneVNode(root);\r\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\r\n }\r\n // inherit transition data\r\n if (vnode.transition) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Component inside renders non-element root node ` +\r\n `that cannot be animated.`);\r\n }\r\n root.transition = vnode.transition;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && setRoot) {\r\n setRoot(root);\r\n }\r\n else {\r\n result = root;\r\n }\r\n setCurrentRenderingInstance(prev);\r\n return result;\r\n}\r\n/**\r\n * dev only\r\n * In dev mode, template root level comments are rendered, which turns the\r\n * template into a fragment root, but we need to locate the single element\r\n * root for attrs and scope id processing.\r\n */\r\nconst getChildRoot = (vnode) => {\r\n const rawChildren = vnode.children;\r\n const dynamicChildren = vnode.dynamicChildren;\r\n const childRoot = filterSingleRoot(rawChildren);\r\n if (!childRoot) {\r\n return [vnode, undefined];\r\n }\r\n const index = rawChildren.indexOf(childRoot);\r\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\r\n const setRoot = (updatedRoot) => {\r\n rawChildren[index] = updatedRoot;\r\n if (dynamicChildren) {\r\n if (dynamicIndex > -1) {\r\n dynamicChildren[dynamicIndex] = updatedRoot;\r\n }\r\n else if (updatedRoot.patchFlag > 0) {\r\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\r\n }\r\n }\r\n };\r\n return [normalizeVNode(childRoot), setRoot];\r\n};\r\nfunction filterSingleRoot(children) {\r\n let singleRoot;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n if (isVNode(child)) {\r\n // ignore user comment\r\n if (child.type !== Comment || child.children === 'v-if') {\r\n if (singleRoot) {\r\n // has more than 1 non-comment child, return now\r\n return;\r\n }\r\n else {\r\n singleRoot = child;\r\n }\r\n }\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n return singleRoot;\r\n}\r\nconst getFunctionalFallthrough = (attrs) => {\r\n let res;\r\n for (const key in attrs) {\r\n if (key === 'class' || key === 'style' || isOn(key)) {\r\n (res || (res = {}))[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst filterModelListeners = (attrs, props) => {\r\n const res = {};\r\n for (const key in attrs) {\r\n if (!isModelListener(key) || !(key.slice(9) in props)) {\r\n res[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst isElementRoot = (vnode) => {\r\n return (vnode.shapeFlag & (6 /* COMPONENT */ | 1 /* ELEMENT */) ||\r\n vnode.type === Comment // potential v-if branch switch\r\n );\r\n};\r\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\r\n const { props: prevProps, children: prevChildren, component } = prevVNode;\r\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\r\n const emits = component.emitsOptions;\r\n // Parent component's render function was hot-updated. Since this may have\r\n // caused the child component's slots content to have changed, we need to\r\n // force the child to update as well.\r\n if ((process.env.NODE_ENV !== 'production') && (prevChildren || nextChildren) && isHmrUpdating) {\r\n return true;\r\n }\r\n // force child update for runtime directive or transition on component vnode.\r\n if (nextVNode.dirs || nextVNode.transition) {\r\n return true;\r\n }\r\n if (optimized && patchFlag >= 0) {\r\n if (patchFlag & 1024 /* DYNAMIC_SLOTS */) {\r\n // slot content that references values that might have changed,\r\n // e.g. in a v-for\r\n return true;\r\n }\r\n if (patchFlag & 16 /* FULL_PROPS */) {\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n // presence of this flag indicates props are always non-null\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n else if (patchFlag & 8 /* PROPS */) {\r\n const dynamicProps = nextVNode.dynamicProps;\r\n for (let i = 0; i < dynamicProps.length; i++) {\r\n const key = dynamicProps[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emits, key)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // this path is only taken by manually written render functions\r\n // so presence of any children leads to a forced update\r\n if (prevChildren || nextChildren) {\r\n if (!nextChildren || !nextChildren.$stable) {\r\n return true;\r\n }\r\n }\r\n if (prevProps === nextProps) {\r\n return false;\r\n }\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n if (!nextProps) {\r\n return true;\r\n }\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n return false;\r\n}\r\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\r\n const nextKeys = Object.keys(nextProps);\r\n if (nextKeys.length !== Object.keys(prevProps).length) {\r\n return true;\r\n }\r\n for (let i = 0; i < nextKeys.length; i++) {\r\n const key = nextKeys[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emitsOptions, key)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\r\n) {\r\n while (parent && parent.subTree === vnode) {\r\n (vnode = parent.vnode).el = el;\r\n parent = parent.parent;\r\n }\r\n}\n\nconst isSuspense = (type) => type.__isSuspense;\r\n// Suspense exposes a component-like API, and is treated like a component\r\n// in the compiler, but internally it's a special built-in type that hooks\r\n// directly into the renderer.\r\nconst SuspenseImpl = {\r\n name: 'Suspense',\r\n // In order to make Suspense tree-shakable, we need to avoid importing it\r\n // directly in the renderer. The renderer checks for the __isSuspense flag\r\n // on a vnode's type and calls the `process` method, passing in renderer\r\n // internals.\r\n __isSuspense: true,\r\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, \r\n // platform-specific impl passed from renderer\r\n rendererInternals) {\r\n if (n1 == null) {\r\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n else {\r\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n },\r\n hydrate: hydrateSuspense,\r\n create: createSuspenseBoundary,\r\n normalize: normalizeSuspenseChildren\r\n};\r\n// Force-casted public typing for h and TSX props inference\r\nconst Suspense = (SuspenseImpl );\r\nfunction triggerEvent(vnode, name) {\r\n const eventListener = vnode.props && vnode.props[name];\r\n if (isFunction(eventListener)) {\r\n eventListener();\r\n }\r\n}\r\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\r\n const { p: patch, o: { createElement } } = rendererInternals;\r\n const hiddenContainer = createElement('div');\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals));\r\n // start mounting the content subtree in an off-dom container\r\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds);\r\n // now check if we have encountered any async deps\r\n if (suspense.deps > 0) {\r\n // has async\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onPending');\r\n triggerEvent(vnode, 'onFallback');\r\n // mount the fallback tree\r\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds);\r\n setActiveBranch(suspense, vnode.ssFallback);\r\n }\r\n else {\r\n // Suspense has no async deps. Just resolve.\r\n suspense.resolve();\r\n }\r\n}\r\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\r\n const suspense = (n2.suspense = n1.suspense);\r\n suspense.vnode = n2;\r\n n2.el = n1.el;\r\n const newBranch = n2.ssContent;\r\n const newFallback = n2.ssFallback;\r\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\r\n if (pendingBranch) {\r\n suspense.pendingBranch = newBranch;\r\n if (isSameVNodeType(newBranch, pendingBranch)) {\r\n // same root type but content may have changed.\r\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else if (isInFallback) {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else {\r\n // toggled before pending tree is resolved\r\n suspense.pendingId++;\r\n if (isHydrating) {\r\n // if toggled before hydration is finished, the current DOM tree is\r\n // no longer valid. set it as the active branch so it will be unmounted\r\n // when resolved\r\n suspense.isHydrating = false;\r\n suspense.activeBranch = pendingBranch;\r\n }\r\n else {\r\n unmount(pendingBranch, parentComponent, suspense);\r\n }\r\n // increment pending ID. this is used to invalidate async callbacks\r\n // reset suspense state\r\n suspense.deps = 0;\r\n // discard effects from pending branch\r\n suspense.effects.length = 0;\r\n // discard previous container\r\n suspense.hiddenContainer = createElement('div');\r\n if (isInFallback) {\r\n // already in fallback state\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // toggled \"back\" to current active branch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n // force resolve\r\n suspense.resolve(true);\r\n }\r\n else {\r\n // switched to a 3rd branch\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // root did not change, just normal patch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newBranch);\r\n }\r\n else {\r\n // root node toggled\r\n // invoke @pending event\r\n triggerEvent(n2, 'onPending');\r\n // mount pending branch in off-dom container\r\n suspense.pendingBranch = newBranch;\r\n suspense.pendingId++;\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n // incoming branch has no async deps, resolve now.\r\n suspense.resolve();\r\n }\r\n else {\r\n const { timeout, pendingId } = suspense;\r\n if (timeout > 0) {\r\n setTimeout(() => {\r\n if (suspense.pendingId === pendingId) {\r\n suspense.fallback(newFallback);\r\n }\r\n }, timeout);\r\n }\r\n else if (timeout === 0) {\r\n suspense.fallback(newFallback);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nlet hasWarned = false;\r\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\r\n /* istanbul ignore if */\r\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\r\n hasWarned = true;\r\n // @ts-ignore `console.info` cannot be null error\r\n console[console.info ? 'info' : 'log'](` is an experimental feature and its API will likely change.`);\r\n }\r\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\r\n const timeout = toNumber(vnode.props && vnode.props.timeout);\r\n const suspense = {\r\n vnode,\r\n parent,\r\n parentComponent,\r\n isSVG,\r\n container,\r\n hiddenContainer,\r\n anchor,\r\n deps: 0,\r\n pendingId: 0,\r\n timeout: typeof timeout === 'number' ? timeout : -1,\r\n activeBranch: null,\r\n pendingBranch: null,\r\n isInFallback: true,\r\n isHydrating,\r\n isUnmounted: false,\r\n effects: [],\r\n resolve(resume = false) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!resume && !suspense.pendingBranch) {\r\n throw new Error(`suspense.resolve() is called without a pending branch.`);\r\n }\r\n if (suspense.isUnmounted) {\r\n throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`);\r\n }\r\n }\r\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\r\n if (suspense.isHydrating) {\r\n suspense.isHydrating = false;\r\n }\r\n else if (!resume) {\r\n const delayEnter = activeBranch &&\r\n pendingBranch.transition &&\r\n pendingBranch.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = () => {\r\n if (pendingId === suspense.pendingId) {\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n };\r\n }\r\n // this is initial anchor on mount\r\n let { anchor } = suspense;\r\n // unmount current active tree\r\n if (activeBranch) {\r\n // if the fallback tree was mounted, it may have been moved\r\n // as part of a parent suspense. get the latest anchor for insertion\r\n anchor = next(activeBranch);\r\n unmount(activeBranch, parentComponent, suspense, true);\r\n }\r\n if (!delayEnter) {\r\n // move content from off-dom container to actual container\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n }\r\n setActiveBranch(suspense, pendingBranch);\r\n suspense.pendingBranch = null;\r\n suspense.isInFallback = false;\r\n // flush buffered effects\r\n // check if there is a pending parent suspense\r\n let parent = suspense.parent;\r\n let hasUnresolvedAncestor = false;\r\n while (parent) {\r\n if (parent.pendingBranch) {\r\n // found a pending parent suspense, merge buffered post jobs\r\n // into that parent\r\n parent.effects.push(...effects);\r\n hasUnresolvedAncestor = true;\r\n break;\r\n }\r\n parent = parent.parent;\r\n }\r\n // no pending parent suspense, flush all jobs\r\n if (!hasUnresolvedAncestor) {\r\n queuePostFlushCb(effects);\r\n }\r\n suspense.effects = [];\r\n // invoke @resolve event\r\n triggerEvent(vnode, 'onResolve');\r\n },\r\n fallback(fallbackVNode) {\r\n if (!suspense.pendingBranch) {\r\n return;\r\n }\r\n const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onFallback');\r\n const anchor = next(activeBranch);\r\n const mountFallback = () => {\r\n if (!suspense.isInFallback) {\r\n return;\r\n }\r\n // mount the fallback tree\r\n patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, fallbackVNode);\r\n };\r\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = mountFallback;\r\n }\r\n suspense.isInFallback = true;\r\n // unmount current active branch\r\n unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now\r\n true // shouldRemove\r\n );\r\n if (!delayEnter) {\r\n mountFallback();\r\n }\r\n },\r\n move(container, anchor, type) {\r\n suspense.activeBranch &&\r\n move(suspense.activeBranch, container, anchor, type);\r\n suspense.container = container;\r\n },\r\n next() {\r\n return suspense.activeBranch && next(suspense.activeBranch);\r\n },\r\n registerDep(instance, setupRenderEffect) {\r\n const isInPendingSuspense = !!suspense.pendingBranch;\r\n if (isInPendingSuspense) {\r\n suspense.deps++;\r\n }\r\n const hydratedEl = instance.vnode.el;\r\n instance\r\n .asyncDep.catch(err => {\r\n handleError(err, instance, 0 /* SETUP_FUNCTION */);\r\n })\r\n .then(asyncSetupResult => {\r\n // retry when the setup() promise resolves.\r\n // component may have been unmounted before resolve.\r\n if (instance.isUnmounted ||\r\n suspense.isUnmounted ||\r\n suspense.pendingId !== instance.suspenseId) {\r\n return;\r\n }\r\n // retry from this component\r\n instance.asyncResolved = true;\r\n const { vnode } = instance;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n pushWarningContext(vnode);\r\n }\r\n handleSetupResult(instance, asyncSetupResult, false);\r\n if (hydratedEl) {\r\n // vnode may have been replaced if an update happened before the\r\n // async dep is resolved.\r\n vnode.el = hydratedEl;\r\n }\r\n const placeholder = !hydratedEl && instance.subTree.el;\r\n setupRenderEffect(instance, vnode, \r\n // component may have been moved before resolve.\r\n // if this is not a hydration, instance.subTree will be the comment\r\n // placeholder.\r\n parentNode(hydratedEl || instance.subTree.el), \r\n // anchor will not be used if this is hydration, so only need to\r\n // consider the comment placeholder case.\r\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\r\n if (placeholder) {\r\n remove(placeholder);\r\n }\r\n updateHOCHostEl(instance, vnode.el);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n popWarningContext();\r\n }\r\n // only decrease deps count if suspense is not already resolved\r\n if (isInPendingSuspense && --suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n });\r\n },\r\n unmount(parentSuspense, doRemove) {\r\n suspense.isUnmounted = true;\r\n if (suspense.activeBranch) {\r\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n if (suspense.pendingBranch) {\r\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n }\r\n };\r\n return suspense;\r\n}\r\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\r\n /* eslint-disable no-restricted-globals */\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, slotScopeIds, optimized, rendererInternals, true /* hydrating */));\r\n // there are two possible scenarios for server-rendered suspense:\r\n // - success: ssr content should be fully resolved\r\n // - failure: ssr content should be the fallback branch.\r\n // however, on the client we don't really know if it has failed or not\r\n // attempt to hydrate the DOM assuming it has succeeded, but we still\r\n // need to construct a suspense boundary first\r\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, slotScopeIds, optimized);\r\n if (suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n return result;\r\n /* eslint-enable no-restricted-globals */\r\n}\r\nfunction normalizeSuspenseChildren(vnode) {\r\n const { shapeFlag, children } = vnode;\r\n const isSlotChildren = shapeFlag & 32 /* SLOTS_CHILDREN */;\r\n vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children);\r\n vnode.ssFallback = isSlotChildren\r\n ? normalizeSuspenseSlot(children.fallback)\r\n : createVNode(Comment);\r\n}\r\nfunction normalizeSuspenseSlot(s) {\r\n let block;\r\n if (isFunction(s)) {\r\n const trackBlock = isBlockTreeEnabled && s._c;\r\n if (trackBlock) {\r\n // disableTracking: false\r\n // allow block tracking for compiled slots\r\n // (see ./componentRenderContext.ts)\r\n s._d = false;\r\n openBlock();\r\n }\r\n s = s();\r\n if (trackBlock) {\r\n s._d = true;\r\n block = currentBlock;\r\n closeBlock();\r\n }\r\n }\r\n if (isArray(s)) {\r\n const singleChild = filterSingleRoot(s);\r\n if ((process.env.NODE_ENV !== 'production') && !singleChild) {\r\n warn(` slots expect a single root node.`);\r\n }\r\n s = singleChild;\r\n }\r\n s = normalizeVNode(s);\r\n if (block && !s.dynamicChildren) {\r\n s.dynamicChildren = block.filter(c => c !== s);\r\n }\r\n return s;\r\n}\r\nfunction queueEffectWithSuspense(fn, suspense) {\r\n if (suspense && suspense.pendingBranch) {\r\n if (isArray(fn)) {\r\n suspense.effects.push(...fn);\r\n }\r\n else {\r\n suspense.effects.push(fn);\r\n }\r\n }\r\n else {\r\n queuePostFlushCb(fn);\r\n }\r\n}\r\nfunction setActiveBranch(suspense, branch) {\r\n suspense.activeBranch = branch;\r\n const { vnode, parentComponent } = suspense;\r\n const el = (vnode.el = branch.el);\r\n // in case suspense is the root node of a component,\r\n // recursively update the HOC el\r\n if (parentComponent && parentComponent.subTree === vnode) {\r\n parentComponent.vnode.el = el;\r\n updateHOCHostEl(parentComponent, el);\r\n }\r\n}\n\nfunction provide(key, value) {\r\n if (!currentInstance) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`provide() can only be used inside setup().`);\r\n }\r\n }\r\n else {\r\n let provides = currentInstance.provides;\r\n // by default an instance inherits its parent's provides object\r\n // but when it needs to provide values of its own, it creates its\r\n // own provides object using parent provides object as prototype.\r\n // this way in `inject` we can simply look up injections from direct\r\n // parent and let the prototype chain do the work.\r\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\r\n if (parentProvides === provides) {\r\n provides = currentInstance.provides = Object.create(parentProvides);\r\n }\r\n // TS doesn't allow symbol as index type\r\n provides[key] = value;\r\n }\r\n}\r\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\r\n // fallback to `currentRenderingInstance` so that this can be called in\r\n // a functional component\r\n const instance = currentInstance || currentRenderingInstance;\r\n if (instance) {\r\n // #2400\r\n // to support `app.use` plugins,\r\n // fallback to appContext's `provides` if the instance is at root\r\n const provides = instance.parent == null\r\n ? instance.vnode.appContext && instance.vnode.appContext.provides\r\n : instance.parent.provides;\r\n if (provides && key in provides) {\r\n // TS doesn't allow symbol as index type\r\n return provides[key];\r\n }\r\n else if (arguments.length > 1) {\r\n return treatDefaultAsFactory && isFunction(defaultValue)\r\n ? defaultValue.call(instance.proxy)\r\n : defaultValue;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`injection \"${String(key)}\" not found.`);\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`inject() can only be used inside setup() or functional components.`);\r\n }\r\n}\n\n// Simple effect.\r\nfunction watchEffect(effect, options) {\r\n return doWatch(effect, null, options);\r\n}\r\nfunction watchPostEffect(effect, options) {\r\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\r\n ? Object.assign(Object.assign({}, options), { flush: 'post' }) : { flush: 'post' }));\r\n}\r\nfunction watchSyncEffect(effect, options) {\r\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\r\n ? Object.assign(Object.assign({}, options), { flush: 'sync' }) : { flush: 'sync' }));\r\n}\r\n// initial value for watchers to trigger on undefined initial values\r\nconst INITIAL_WATCHER_VALUE = {};\r\n// implementation\r\nfunction watch(source, cb, options) {\r\n if ((process.env.NODE_ENV !== 'production') && !isFunction(cb)) {\r\n warn(`\\`watch(fn, options?)\\` signature has been moved to a separate API. ` +\r\n `Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only ` +\r\n `supports \\`watch(source, cb, options?) signature.`);\r\n }\r\n return doWatch(source, cb, options);\r\n}\r\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) {\r\n if ((process.env.NODE_ENV !== 'production') && !cb) {\r\n if (immediate !== undefined) {\r\n warn(`watch() \"immediate\" option is only respected when using the ` +\r\n `watch(source, callback, options?) signature.`);\r\n }\r\n if (deep !== undefined) {\r\n warn(`watch() \"deep\" option is only respected when using the ` +\r\n `watch(source, callback, options?) signature.`);\r\n }\r\n }\r\n const warnInvalidSource = (s) => {\r\n warn(`Invalid watch source: `, s, `A watch source can only be a getter/effect function, a ref, ` +\r\n `a reactive object, or an array of these types.`);\r\n };\r\n const instance = currentInstance;\r\n let getter;\r\n let forceTrigger = false;\r\n let isMultiSource = false;\r\n if (isRef(source)) {\r\n getter = () => source.value;\r\n forceTrigger = isShallow$1(source);\r\n }\r\n else if (isReactive(source)) {\r\n getter = () => source;\r\n deep = true;\r\n }\r\n else if (isArray(source)) {\r\n isMultiSource = true;\r\n forceTrigger = source.some(s => isReactive(s) || isShallow$1(s));\r\n getter = () => source.map(s => {\r\n if (isRef(s)) {\r\n return s.value;\r\n }\r\n else if (isReactive(s)) {\r\n return traverse(s);\r\n }\r\n else if (isFunction(s)) {\r\n return callWithErrorHandling(s, instance, 2 /* WATCH_GETTER */);\r\n }\r\n else {\r\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(s);\r\n }\r\n });\r\n }\r\n else if (isFunction(source)) {\r\n if (cb) {\r\n // getter with cb\r\n getter = () => callWithErrorHandling(source, instance, 2 /* WATCH_GETTER */);\r\n }\r\n else {\r\n // no cb -> simple effect\r\n getter = () => {\r\n if (instance && instance.isUnmounted) {\r\n return;\r\n }\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n return callWithAsyncErrorHandling(source, instance, 3 /* WATCH_CALLBACK */, [onCleanup]);\r\n };\r\n }\r\n }\r\n else {\r\n getter = NOOP;\r\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(source);\r\n }\r\n if (cb && deep) {\r\n const baseGetter = getter;\r\n getter = () => traverse(baseGetter());\r\n }\r\n let cleanup;\r\n let onCleanup = (fn) => {\r\n cleanup = effect.onStop = () => {\r\n callWithErrorHandling(fn, instance, 4 /* WATCH_CLEANUP */);\r\n };\r\n };\r\n // in SSR there is no need to setup an actual effect, and it should be noop\r\n // unless it's eager\r\n if (isInSSRComponentSetup) {\r\n // we will also not call the invalidate callback (+ runner is not set up)\r\n onCleanup = NOOP;\r\n if (!cb) {\r\n getter();\r\n }\r\n else if (immediate) {\r\n callWithAsyncErrorHandling(cb, instance, 3 /* WATCH_CALLBACK */, [\r\n getter(),\r\n isMultiSource ? [] : undefined,\r\n onCleanup\r\n ]);\r\n }\r\n return NOOP;\r\n }\r\n let oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\r\n const job = () => {\r\n if (!effect.active) {\r\n return;\r\n }\r\n if (cb) {\r\n // watch(source, cb)\r\n const newValue = effect.run();\r\n if (deep ||\r\n forceTrigger ||\r\n (isMultiSource\r\n ? newValue.some((v, i) => hasChanged(v, oldValue[i]))\r\n : hasChanged(newValue, oldValue)) ||\r\n (false )) {\r\n // cleanup before running cb again\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n callWithAsyncErrorHandling(cb, instance, 3 /* WATCH_CALLBACK */, [\r\n newValue,\r\n // pass undefined as the old value when it's changed for the first time\r\n oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,\r\n onCleanup\r\n ]);\r\n oldValue = newValue;\r\n }\r\n }\r\n else {\r\n // watchEffect\r\n effect.run();\r\n }\r\n };\r\n // important: mark the job as a watcher callback so that scheduler knows\r\n // it is allowed to self-trigger (#1727)\r\n job.allowRecurse = !!cb;\r\n let scheduler;\r\n if (flush === 'sync') {\r\n scheduler = job; // the scheduler function gets called directly\r\n }\r\n else if (flush === 'post') {\r\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\r\n }\r\n else {\r\n // default: 'pre'\r\n scheduler = () => queuePreFlushCb(job);\r\n }\r\n const effect = new ReactiveEffect(getter, scheduler);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n effect.onTrack = onTrack;\r\n effect.onTrigger = onTrigger;\r\n }\r\n // initial run\r\n if (cb) {\r\n if (immediate) {\r\n job();\r\n }\r\n else {\r\n oldValue = effect.run();\r\n }\r\n }\r\n else if (flush === 'post') {\r\n queuePostRenderEffect(effect.run.bind(effect), instance && instance.suspense);\r\n }\r\n else {\r\n effect.run();\r\n }\r\n return () => {\r\n effect.stop();\r\n if (instance && instance.scope) {\r\n remove(instance.scope.effects, effect);\r\n }\r\n };\r\n}\r\n// this.$watch\r\nfunction instanceWatch(source, value, options) {\r\n const publicThis = this.proxy;\r\n const getter = isString(source)\r\n ? source.includes('.')\r\n ? createPathGetter(publicThis, source)\r\n : () => publicThis[source]\r\n : source.bind(publicThis, publicThis);\r\n let cb;\r\n if (isFunction(value)) {\r\n cb = value;\r\n }\r\n else {\r\n cb = value.handler;\r\n options = value;\r\n }\r\n const cur = currentInstance;\r\n setCurrentInstance(this);\r\n const res = doWatch(getter, cb.bind(publicThis), options);\r\n if (cur) {\r\n setCurrentInstance(cur);\r\n }\r\n else {\r\n unsetCurrentInstance();\r\n }\r\n return res;\r\n}\r\nfunction createPathGetter(ctx, path) {\r\n const segments = path.split('.');\r\n return () => {\r\n let cur = ctx;\r\n for (let i = 0; i < segments.length && cur; i++) {\r\n cur = cur[segments[i]];\r\n }\r\n return cur;\r\n };\r\n}\r\nfunction traverse(value, seen) {\r\n if (!isObject(value) || value[\"__v_skip\" /* SKIP */]) {\r\n return value;\r\n }\r\n seen = seen || new Set();\r\n if (seen.has(value)) {\r\n return value;\r\n }\r\n seen.add(value);\r\n if (isRef(value)) {\r\n traverse(value.value, seen);\r\n }\r\n else if (isArray(value)) {\r\n for (let i = 0; i < value.length; i++) {\r\n traverse(value[i], seen);\r\n }\r\n }\r\n else if (isSet(value) || isMap(value)) {\r\n value.forEach((v) => {\r\n traverse(v, seen);\r\n });\r\n }\r\n else if (isPlainObject(value)) {\r\n for (const key in value) {\r\n traverse(value[key], seen);\r\n }\r\n }\r\n return value;\r\n}\n\nfunction useTransitionState() {\r\n const state = {\r\n isMounted: false,\r\n isLeaving: false,\r\n isUnmounting: false,\r\n leavingVNodes: new Map()\r\n };\r\n onMounted(() => {\r\n state.isMounted = true;\r\n });\r\n onBeforeUnmount(() => {\r\n state.isUnmounting = true;\r\n });\r\n return state;\r\n}\r\nconst TransitionHookValidator = [Function, Array];\r\nconst BaseTransitionImpl = {\r\n name: `BaseTransition`,\r\n props: {\r\n mode: String,\r\n appear: Boolean,\r\n persisted: Boolean,\r\n // enter\r\n onBeforeEnter: TransitionHookValidator,\r\n onEnter: TransitionHookValidator,\r\n onAfterEnter: TransitionHookValidator,\r\n onEnterCancelled: TransitionHookValidator,\r\n // leave\r\n onBeforeLeave: TransitionHookValidator,\r\n onLeave: TransitionHookValidator,\r\n onAfterLeave: TransitionHookValidator,\r\n onLeaveCancelled: TransitionHookValidator,\r\n // appear\r\n onBeforeAppear: TransitionHookValidator,\r\n onAppear: TransitionHookValidator,\r\n onAfterAppear: TransitionHookValidator,\r\n onAppearCancelled: TransitionHookValidator\r\n },\r\n setup(props, { slots }) {\r\n const instance = getCurrentInstance();\r\n const state = useTransitionState();\r\n let prevTransitionKey;\r\n return () => {\r\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\r\n if (!children || !children.length) {\r\n return;\r\n }\r\n let child = children[0];\r\n if (children.length > 1) {\r\n let hasFound = false;\r\n // locate first non-comment child\r\n for (const c of children) {\r\n if (c.type !== Comment) {\r\n if ((process.env.NODE_ENV !== 'production') && hasFound) {\r\n // warn more than one non-comment child\r\n warn(' can only be used on a single element or component. ' +\r\n 'Use for lists.');\r\n break;\r\n }\r\n child = c;\r\n hasFound = true;\r\n if (!(process.env.NODE_ENV !== 'production'))\r\n break;\r\n }\r\n }\r\n }\r\n // there's no need to track reactivity for these props so use the raw\r\n // props for a bit better perf\r\n const rawProps = toRaw(props);\r\n const { mode } = rawProps;\r\n // check mode\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n mode &&\r\n mode !== 'in-out' &&\r\n mode !== 'out-in' &&\r\n mode !== 'default') {\r\n warn(`invalid mode: ${mode}`);\r\n }\r\n if (state.isLeaving) {\r\n return emptyPlaceholder(child);\r\n }\r\n // in the case of , we need to\r\n // compare the type of the kept-alive children.\r\n const innerChild = getKeepAliveChild(child);\r\n if (!innerChild) {\r\n return emptyPlaceholder(child);\r\n }\r\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);\r\n setTransitionHooks(innerChild, enterHooks);\r\n const oldChild = instance.subTree;\r\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\r\n let transitionKeyChanged = false;\r\n const { getTransitionKey } = innerChild.type;\r\n if (getTransitionKey) {\r\n const key = getTransitionKey();\r\n if (prevTransitionKey === undefined) {\r\n prevTransitionKey = key;\r\n }\r\n else if (key !== prevTransitionKey) {\r\n prevTransitionKey = key;\r\n transitionKeyChanged = true;\r\n }\r\n }\r\n // handle mode\r\n if (oldInnerChild &&\r\n oldInnerChild.type !== Comment &&\r\n (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\r\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);\r\n // update old tree's hooks in case of dynamic transition\r\n setTransitionHooks(oldInnerChild, leavingHooks);\r\n // switching between different views\r\n if (mode === 'out-in') {\r\n state.isLeaving = true;\r\n // return placeholder node and queue update when leave finishes\r\n leavingHooks.afterLeave = () => {\r\n state.isLeaving = false;\r\n instance.update();\r\n };\r\n return emptyPlaceholder(child);\r\n }\r\n else if (mode === 'in-out' && innerChild.type !== Comment) {\r\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\r\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\r\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\r\n // early removal callback\r\n el._leaveCb = () => {\r\n earlyRemove();\r\n el._leaveCb = undefined;\r\n delete enterHooks.delayedLeave;\r\n };\r\n enterHooks.delayedLeave = delayedLeave;\r\n };\r\n }\r\n }\r\n return child;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst BaseTransition = BaseTransitionImpl;\r\nfunction getLeavingNodesForType(state, vnode) {\r\n const { leavingVNodes } = state;\r\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\r\n if (!leavingVNodesCache) {\r\n leavingVNodesCache = Object.create(null);\r\n leavingVNodes.set(vnode.type, leavingVNodesCache);\r\n }\r\n return leavingVNodesCache;\r\n}\r\n// The transition hooks are attached to the vnode as vnode.transition\r\n// and will be called at appropriate timing in the renderer.\r\nfunction resolveTransitionHooks(vnode, props, state, instance) {\r\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\r\n const key = String(vnode.key);\r\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\r\n const callHook = (hook, args) => {\r\n hook &&\r\n callWithAsyncErrorHandling(hook, instance, 9 /* TRANSITION_HOOK */, args);\r\n };\r\n const callAsyncHook = (hook, args) => {\r\n const done = args[1];\r\n callHook(hook, args);\r\n if (isArray(hook)) {\r\n if (hook.every(hook => hook.length <= 1))\r\n done();\r\n }\r\n else if (hook.length <= 1) {\r\n done();\r\n }\r\n };\r\n const hooks = {\r\n mode,\r\n persisted,\r\n beforeEnter(el) {\r\n let hook = onBeforeEnter;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onBeforeAppear || onBeforeEnter;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n // for same element (v-show)\r\n if (el._leaveCb) {\r\n el._leaveCb(true /* cancelled */);\r\n }\r\n // for toggled element with same key (v-if)\r\n const leavingVNode = leavingVNodesCache[key];\r\n if (leavingVNode &&\r\n isSameVNodeType(vnode, leavingVNode) &&\r\n leavingVNode.el._leaveCb) {\r\n // force early removal (not cancelled)\r\n leavingVNode.el._leaveCb();\r\n }\r\n callHook(hook, [el]);\r\n },\r\n enter(el) {\r\n let hook = onEnter;\r\n let afterHook = onAfterEnter;\r\n let cancelHook = onEnterCancelled;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onAppear || onEnter;\r\n afterHook = onAfterAppear || onAfterEnter;\r\n cancelHook = onAppearCancelled || onEnterCancelled;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n let called = false;\r\n const done = (el._enterCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n if (cancelled) {\r\n callHook(cancelHook, [el]);\r\n }\r\n else {\r\n callHook(afterHook, [el]);\r\n }\r\n if (hooks.delayedLeave) {\r\n hooks.delayedLeave();\r\n }\r\n el._enterCb = undefined;\r\n });\r\n if (hook) {\r\n callAsyncHook(hook, [el, done]);\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n leave(el, remove) {\r\n const key = String(vnode.key);\r\n if (el._enterCb) {\r\n el._enterCb(true /* cancelled */);\r\n }\r\n if (state.isUnmounting) {\r\n return remove();\r\n }\r\n callHook(onBeforeLeave, [el]);\r\n let called = false;\r\n const done = (el._leaveCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n remove();\r\n if (cancelled) {\r\n callHook(onLeaveCancelled, [el]);\r\n }\r\n else {\r\n callHook(onAfterLeave, [el]);\r\n }\r\n el._leaveCb = undefined;\r\n if (leavingVNodesCache[key] === vnode) {\r\n delete leavingVNodesCache[key];\r\n }\r\n });\r\n leavingVNodesCache[key] = vnode;\r\n if (onLeave) {\r\n callAsyncHook(onLeave, [el, done]);\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n clone(vnode) {\r\n return resolveTransitionHooks(vnode, props, state, instance);\r\n }\r\n };\r\n return hooks;\r\n}\r\n// the placeholder really only handles one special case: KeepAlive\r\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\r\n// placeholder with empty content to avoid the KeepAlive instance from being\r\n// unmounted.\r\nfunction emptyPlaceholder(vnode) {\r\n if (isKeepAlive(vnode)) {\r\n vnode = cloneVNode(vnode);\r\n vnode.children = null;\r\n return vnode;\r\n }\r\n}\r\nfunction getKeepAliveChild(vnode) {\r\n return isKeepAlive(vnode)\r\n ? vnode.children\r\n ? vnode.children[0]\r\n : undefined\r\n : vnode;\r\n}\r\nfunction setTransitionHooks(vnode, hooks) {\r\n if (vnode.shapeFlag & 6 /* COMPONENT */ && vnode.component) {\r\n setTransitionHooks(vnode.component.subTree, hooks);\r\n }\r\n else if (vnode.shapeFlag & 128 /* SUSPENSE */) {\r\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\r\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\r\n }\r\n else {\r\n vnode.transition = hooks;\r\n }\r\n}\r\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\r\n let ret = [];\r\n let keyedFragmentCount = 0;\r\n for (let i = 0; i < children.length; i++) {\r\n let child = children[i];\r\n // #5360 inherit parent key in case of