{"version":3,"file":"js/chunk-vendors.744289c6.js","mappings":"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","sources":["webpack://cgt_nrp_educacion/./node_modules/@asigloo/vue-dynamic-forms/dist/as-dynamic-forms.es.js","webpack://cgt_nrp_educacion/./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack://cgt_nrp_educacion/./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack://cgt_nrp_educacion/./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack://cgt_nrp_educacion/./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack://cgt_nrp_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