diff --git a/.output/nitro.json b/.output/nitro.json
new file mode 100644
index 0000000..1dcb6fb
--- /dev/null
+++ b/.output/nitro.json
@@ -0,0 +1,14 @@
+{
+ "date": "2024-01-03T10:31:15.209Z",
+ "preset": "node-server",
+ "framework": {
+ "name": "nuxt",
+ "version": "3.8.2"
+ },
+ "versions": {
+ "nitro": "2.8.1"
+ },
+ "commands": {
+ "preview": "node ./server/index.mjs"
+ }
+}
\ No newline at end of file
diff --git a/.output/server/chunks/app/_nuxt/_id_-8ab4d5f6.mjs b/.output/server/chunks/app/_nuxt/_id_-8ab4d5f6.mjs
new file mode 100644
index 0000000..03c72bf
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/_id_-8ab4d5f6.mjs
@@ -0,0 +1,1427 @@
+import { b as buildAssetsURL } from '../../handlers/renderer.mjs';
+import { b as buildProps, d as definePropType, a as addUnit, w as withInstallDirective, c as withInstall, i as iconPropType, e as isBoolean, _ as _export_sfc$1, f as detailsHttp, r as relatedlistHttp, g as _imports_1$1, h as detailsCommentListHttp, H as Head, T as Title, M as Meta, j as getStyle, k as addClass, l as removeClass, u as useGlobalComponentSettings } from './cross-icon-c0ac5209.mjs';
+import { E as ElMessage, h as handleDate, _ as _imports_2$1, a as __nuxt_component_3, b as __nuxt_component_4 } from './eye-icon-a076085e.mjs';
+import { defineComponent, computed, ref, unref, openBlock, createBlock, mergeProps, withCtx, createElementBlock, normalizeClass, toDisplayString, createCommentVNode, renderSlot, createTextVNode, provide, inject, useSSRContext, onUnmounted, withAsyncContext, createVNode, withModifiers, isRef, nextTick, reactive, h, Transition, withDirectives, vShow, createApp, toRefs } from 'vue';
+import { u as useTooltipTriggerProps, a as useTooltipContentProps, E as ElTooltip } from './el-popper-6f31b937.mjs';
+import { d as useNamespace, e as useRoute, u as useRouter } from '../server.mjs';
+import { ssrRenderAttrs, ssrRenderStyle, ssrRenderList, ssrRenderClass, ssrInterpolate, ssrIncludeBooleanAttr, ssrRenderComponent, ssrRenderAttr, ssrGetDirectiveProps } from 'vue/server-renderer';
+import { _ as _export_sfc, u as useHead } from './_plugin-vue_export-helper-e3874580.mjs';
+import { isObject, isString, hyphenate } from '@vue/shared';
+import { isClient } from '@vueuse/core';
+import 'vue-bundle-renderer/runtime';
+import '../../nitro/node-server.mjs';
+import 'node:http';
+import 'node:https';
+import 'fs';
+import 'path';
+import 'node:fs';
+import 'node:url';
+import 'devalue';
+import '@unhead/ssr';
+import 'unhead';
+import '@unhead/shared';
+import 'lodash-unified';
+import 'axios';
+import 'qs';
+import '@vue/reactivity';
+import 'vue-router';
+import '@popperjs/core';
+
+const _sfc_main$4 = /* @__PURE__ */ defineComponent({
+ inheritAttrs: false
+});
+function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
+ return renderSlot(_ctx.$slots, "default");
+}
+var Collection = /* @__PURE__ */ _export_sfc$1(_sfc_main$4, [["render", _sfc_render$1], ["__file", "/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection.vue"]]);
+const _sfc_main$3 = /* @__PURE__ */ defineComponent({
+ name: "ElCollectionItem",
+ inheritAttrs: false
+});
+function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
+ return renderSlot(_ctx.$slots, "default");
+}
+var CollectionItem = /* @__PURE__ */ _export_sfc$1(_sfc_main$3, [["render", _sfc_render], ["__file", "/home/runner/work/element-plus/element-plus/packages/components/collection/src/collection-item.vue"]]);
+const COLLECTION_ITEM_SIGN = `data-el-collection-item`;
+const createCollectionWithScope = (name) => {
+ const COLLECTION_NAME = `El${name}Collection`;
+ const COLLECTION_ITEM_NAME = `${COLLECTION_NAME}Item`;
+ const COLLECTION_INJECTION_KEY = Symbol(COLLECTION_NAME);
+ const COLLECTION_ITEM_INJECTION_KEY = Symbol(COLLECTION_ITEM_NAME);
+ const ElCollection = {
+ ...Collection,
+ name: COLLECTION_NAME,
+ setup() {
+ const collectionRef = ref(null);
+ const itemMap = /* @__PURE__ */ new Map();
+ const getItems = () => {
+ const collectionEl = unref(collectionRef);
+ if (!collectionEl)
+ return [];
+ const orderedNodes = Array.from(collectionEl.querySelectorAll(`[${COLLECTION_ITEM_SIGN}]`));
+ const items = [...itemMap.values()];
+ return items.sort((a, b) => orderedNodes.indexOf(a.ref) - orderedNodes.indexOf(b.ref));
+ };
+ provide(COLLECTION_INJECTION_KEY, {
+ itemMap,
+ getItems,
+ collectionRef
+ });
+ }
+ };
+ const ElCollectionItem = {
+ ...CollectionItem,
+ name: COLLECTION_ITEM_NAME,
+ setup(_, { attrs }) {
+ const collectionItemRef = ref(null);
+ inject(COLLECTION_INJECTION_KEY, void 0);
+ provide(COLLECTION_ITEM_INJECTION_KEY, {
+ collectionItemRef
+ });
+ }
+ };
+ return {
+ COLLECTION_INJECTION_KEY,
+ COLLECTION_ITEM_INJECTION_KEY,
+ ElCollection,
+ ElCollectionItem
+ };
+};
+const dropdownProps = buildProps({
+ trigger: useTooltipTriggerProps.trigger,
+ effect: {
+ ...useTooltipContentProps.effect,
+ default: "light"
+ },
+ type: {
+ type: definePropType(String)
+ },
+ placement: {
+ type: definePropType(String),
+ default: "bottom"
+ },
+ popperOptions: {
+ type: definePropType(Object),
+ default: () => ({})
+ },
+ id: String,
+ size: {
+ type: String,
+ default: ""
+ },
+ splitButton: Boolean,
+ hideOnClick: {
+ type: Boolean,
+ default: true
+ },
+ loop: {
+ type: Boolean,
+ default: true
+ },
+ showTimeout: {
+ type: Number,
+ default: 150
+ },
+ hideTimeout: {
+ type: Number,
+ default: 150
+ },
+ tabindex: {
+ type: definePropType([Number, String]),
+ default: 0
+ },
+ maxHeight: {
+ type: definePropType([Number, String]),
+ default: ""
+ },
+ popperClass: {
+ type: String,
+ default: ""
+ },
+ disabled: {
+ type: Boolean,
+ default: false
+ },
+ role: {
+ type: String,
+ default: "menu"
+ },
+ buttonProps: {
+ type: definePropType(Object)
+ },
+ teleported: useTooltipContentProps.teleported
+});
+buildProps({
+ command: {
+ type: [Object, String, Number],
+ default: () => ({})
+ },
+ disabled: Boolean,
+ divided: Boolean,
+ textValue: String,
+ icon: {
+ type: iconPropType
+ }
+});
+buildProps({
+ onKeydown: { type: definePropType(Function) }
+});
+createCollectionWithScope("Dropdown");
+const popoverProps = buildProps({
+ trigger: useTooltipTriggerProps.trigger,
+ placement: dropdownProps.placement,
+ disabled: useTooltipTriggerProps.disabled,
+ visible: useTooltipContentProps.visible,
+ transition: useTooltipContentProps.transition,
+ popperOptions: dropdownProps.popperOptions,
+ tabindex: dropdownProps.tabindex,
+ content: useTooltipContentProps.content,
+ popperStyle: useTooltipContentProps.popperStyle,
+ popperClass: useTooltipContentProps.popperClass,
+ enterable: {
+ ...useTooltipContentProps.enterable,
+ default: true
+ },
+ effect: {
+ ...useTooltipContentProps.effect,
+ default: "light"
+ },
+ teleported: useTooltipContentProps.teleported,
+ title: String,
+ width: {
+ type: [String, Number],
+ default: 150
+ },
+ offset: {
+ type: Number,
+ default: void 0
+ },
+ showAfter: {
+ type: Number,
+ default: 0
+ },
+ hideAfter: {
+ type: Number,
+ default: 200
+ },
+ autoClose: {
+ type: Number,
+ default: 0
+ },
+ showArrow: {
+ type: Boolean,
+ default: true
+ },
+ persistent: {
+ type: Boolean,
+ default: true
+ },
+ "onUpdate:visible": {
+ type: Function
+ }
+});
+const popoverEmits = {
+ "update:visible": (value) => isBoolean(value),
+ "before-enter": () => true,
+ "before-leave": () => true,
+ "after-enter": () => true,
+ "after-leave": () => true
+};
+const updateEventKeyRaw = `onUpdate:visible`;
+const __default__ = defineComponent({
+ name: "ElPopover"
+});
+const _sfc_main$2 = /* @__PURE__ */ defineComponent({
+ ...__default__,
+ props: popoverProps,
+ emits: popoverEmits,
+ setup(__props, { expose, emit }) {
+ const props = __props;
+ const onUpdateVisible = computed(() => {
+ return props[updateEventKeyRaw];
+ });
+ const ns = useNamespace("popover");
+ const tooltipRef = ref();
+ const popperRef = computed(() => {
+ var _a;
+ return (_a = unref(tooltipRef)) == null ? void 0 : _a.popperRef;
+ });
+ const style = computed(() => {
+ return [
+ {
+ width: addUnit(props.width)
+ },
+ props.popperStyle
+ ];
+ });
+ const kls = computed(() => {
+ return [ns.b(), props.popperClass, { [ns.m("plain")]: !!props.content }];
+ });
+ const gpuAcceleration = computed(() => {
+ return props.transition === `${ns.namespace.value}-fade-in-linear`;
+ });
+ const hide = () => {
+ var _a;
+ (_a = tooltipRef.value) == null ? void 0 : _a.hide();
+ };
+ const beforeEnter = () => {
+ emit("before-enter");
+ };
+ const beforeLeave = () => {
+ emit("before-leave");
+ };
+ const afterEnter = () => {
+ emit("after-enter");
+ };
+ const afterLeave = () => {
+ emit("update:visible", false);
+ emit("after-leave");
+ };
+ expose({
+ popperRef,
+ hide
+ });
+ return (_ctx, _cache) => {
+ return openBlock(), createBlock(unref(ElTooltip), mergeProps({
+ ref_key: "tooltipRef",
+ ref: tooltipRef
+ }, _ctx.$attrs, {
+ trigger: _ctx.trigger,
+ placement: _ctx.placement,
+ disabled: _ctx.disabled,
+ visible: _ctx.visible,
+ transition: _ctx.transition,
+ "popper-options": _ctx.popperOptions,
+ tabindex: _ctx.tabindex,
+ content: _ctx.content,
+ offset: _ctx.offset,
+ "show-after": _ctx.showAfter,
+ "hide-after": _ctx.hideAfter,
+ "auto-close": _ctx.autoClose,
+ "show-arrow": _ctx.showArrow,
+ "aria-label": _ctx.title,
+ effect: _ctx.effect,
+ enterable: _ctx.enterable,
+ "popper-class": unref(kls),
+ "popper-style": unref(style),
+ teleported: _ctx.teleported,
+ persistent: _ctx.persistent,
+ "gpu-acceleration": unref(gpuAcceleration),
+ "onUpdate:visible": unref(onUpdateVisible),
+ onBeforeShow: beforeEnter,
+ onBeforeHide: beforeLeave,
+ onShow: afterEnter,
+ onHide: afterLeave
+ }), {
+ content: withCtx(() => [
+ _ctx.title ? (openBlock(), createElementBlock("div", {
+ key: 0,
+ class: normalizeClass(unref(ns).e("title")),
+ role: "title"
+ }, toDisplayString(_ctx.title), 3)) : createCommentVNode("v-if", true),
+ renderSlot(_ctx.$slots, "default", {}, () => [
+ createTextVNode(toDisplayString(_ctx.content), 1)
+ ])
+ ]),
+ default: withCtx(() => [
+ _ctx.$slots.reference ? renderSlot(_ctx.$slots, "reference", { key: 0 }) : createCommentVNode("v-if", true)
+ ]),
+ _: 3
+ }, 16, ["trigger", "placement", "disabled", "visible", "transition", "popper-options", "tabindex", "content", "offset", "show-after", "hide-after", "auto-close", "show-arrow", "aria-label", "effect", "enterable", "popper-class", "popper-style", "teleported", "persistent", "gpu-acceleration", "onUpdate:visible"]);
+ };
+ }
+});
+var Popover = /* @__PURE__ */ _export_sfc$1(_sfc_main$2, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/popover/src/popover.vue"]]);
+const attachEvents = (el, binding) => {
+ const popperComponent = binding.arg || binding.value;
+ const popover = popperComponent == null ? void 0 : popperComponent.popperRef;
+ if (popover) {
+ popover.triggerRef = el;
+ }
+};
+var PopoverDirective = {
+ mounted(el, binding) {
+ attachEvents(el, binding);
+ },
+ updated(el, binding) {
+ attachEvents(el, binding);
+ }
+};
+const VPopover = "popover";
+const ElPopoverDirective = withInstallDirective(PopoverDirective, VPopover);
+const ElPopover = withInstall(Popover, {
+ directive: ElPopoverDirective
+});
+function createLoadingComponent(options) {
+ let afterLeaveTimer;
+ const afterLeaveFlag = ref(false);
+ const data = reactive({
+ ...options,
+ originalPosition: "",
+ originalOverflow: "",
+ visible: false
+ });
+ function setText(text) {
+ data.text = text;
+ }
+ function destroySelf() {
+ const target = data.parent;
+ const ns = vm.ns;
+ if (!target.vLoadingAddClassList) {
+ let loadingNumber = target.getAttribute("loading-number");
+ loadingNumber = Number.parseInt(loadingNumber) - 1;
+ if (!loadingNumber) {
+ removeClass(target, ns.bm("parent", "relative"));
+ target.removeAttribute("loading-number");
+ } else {
+ target.setAttribute("loading-number", loadingNumber.toString());
+ }
+ removeClass(target, ns.bm("parent", "hidden"));
+ }
+ removeElLoadingChild();
+ loadingInstance.unmount();
+ }
+ function removeElLoadingChild() {
+ var _a, _b;
+ (_b = (_a = vm.$el) == null ? void 0 : _a.parentNode) == null ? void 0 : _b.removeChild(vm.$el);
+ }
+ function close() {
+ var _a;
+ if (options.beforeClose && !options.beforeClose())
+ return;
+ afterLeaveFlag.value = true;
+ clearTimeout(afterLeaveTimer);
+ afterLeaveTimer = window.setTimeout(handleAfterLeave, 400);
+ data.visible = false;
+ (_a = options.closed) == null ? void 0 : _a.call(options);
+ }
+ function handleAfterLeave() {
+ if (!afterLeaveFlag.value)
+ return;
+ const target = data.parent;
+ afterLeaveFlag.value = false;
+ target.vLoadingAddClassList = void 0;
+ destroySelf();
+ }
+ const elLoadingComponent = defineComponent({
+ name: "ElLoading",
+ setup(_, { expose }) {
+ const { ns, zIndex } = useGlobalComponentSettings("loading");
+ expose({
+ ns,
+ zIndex
+ });
+ return () => {
+ const svg = data.spinner || data.svg;
+ const spinner = h("svg", {
+ class: "circular",
+ viewBox: data.svgViewBox ? data.svgViewBox : "0 0 50 50",
+ ...svg ? { innerHTML: svg } : {}
+ }, [
+ h("circle", {
+ class: "path",
+ cx: "25",
+ cy: "25",
+ r: "20",
+ fill: "none"
+ })
+ ]);
+ const spinnerText = data.text ? h("p", { class: ns.b("text") }, [data.text]) : void 0;
+ return h(Transition, {
+ name: ns.b("fade"),
+ onAfterLeave: handleAfterLeave
+ }, {
+ default: withCtx(() => [
+ withDirectives(createVNode("div", {
+ style: {
+ backgroundColor: data.background || ""
+ },
+ class: [
+ ns.b("mask"),
+ data.customClass,
+ data.fullscreen ? "is-fullscreen" : ""
+ ]
+ }, [
+ h("div", {
+ class: ns.b("spinner")
+ }, [spinner, spinnerText])
+ ]), [[vShow, data.visible]])
+ ])
+ });
+ };
+ }
+ });
+ const loadingInstance = createApp(elLoadingComponent);
+ const vm = loadingInstance.mount(document.createElement("div"));
+ return {
+ ...toRefs(data),
+ setText,
+ removeElLoadingChild,
+ close,
+ handleAfterLeave,
+ vm,
+ get $el() {
+ return vm.$el;
+ }
+ };
+}
+let fullscreenInstance = void 0;
+const Loading = function(options = {}) {
+ if (!isClient)
+ return void 0;
+ const resolved = resolveOptions(options);
+ if (resolved.fullscreen && fullscreenInstance) {
+ return fullscreenInstance;
+ }
+ const instance = createLoadingComponent({
+ ...resolved,
+ closed: () => {
+ var _a;
+ (_a = resolved.closed) == null ? void 0 : _a.call(resolved);
+ if (resolved.fullscreen)
+ fullscreenInstance = void 0;
+ }
+ });
+ addStyle(resolved, resolved.parent, instance);
+ addClassList(resolved, resolved.parent, instance);
+ resolved.parent.vLoadingAddClassList = () => addClassList(resolved, resolved.parent, instance);
+ let loadingNumber = resolved.parent.getAttribute("loading-number");
+ if (!loadingNumber) {
+ loadingNumber = "1";
+ } else {
+ loadingNumber = `${Number.parseInt(loadingNumber) + 1}`;
+ }
+ resolved.parent.setAttribute("loading-number", loadingNumber);
+ resolved.parent.appendChild(instance.$el);
+ nextTick(() => instance.visible.value = resolved.visible);
+ if (resolved.fullscreen) {
+ fullscreenInstance = instance;
+ }
+ return instance;
+};
+const resolveOptions = (options) => {
+ var _a, _b, _c, _d;
+ let target;
+ if (isString(options.target)) {
+ target = (_a = document.querySelector(options.target)) != null ? _a : document.body;
+ } else {
+ target = options.target || document.body;
+ }
+ return {
+ parent: target === document.body || options.body ? document.body : target,
+ background: options.background || "",
+ svg: options.svg || "",
+ svgViewBox: options.svgViewBox || "",
+ spinner: options.spinner || false,
+ text: options.text || "",
+ fullscreen: target === document.body && ((_b = options.fullscreen) != null ? _b : true),
+ lock: (_c = options.lock) != null ? _c : false,
+ customClass: options.customClass || "",
+ visible: (_d = options.visible) != null ? _d : true,
+ target
+ };
+};
+const addStyle = async (options, parent, instance) => {
+ const { nextZIndex } = instance.vm.zIndex || instance.vm._.exposed.zIndex;
+ const maskStyle = {};
+ if (options.fullscreen) {
+ instance.originalPosition.value = getStyle(document.body, "position");
+ instance.originalOverflow.value = getStyle(document.body, "overflow");
+ maskStyle.zIndex = nextZIndex();
+ } else if (options.parent === document.body) {
+ instance.originalPosition.value = getStyle(document.body, "position");
+ await nextTick();
+ for (const property of ["top", "left"]) {
+ const scroll = property === "top" ? "scrollTop" : "scrollLeft";
+ maskStyle[property] = `${options.target.getBoundingClientRect()[property] + document.body[scroll] + document.documentElement[scroll] - Number.parseInt(getStyle(document.body, `margin-${property}`), 10)}px`;
+ }
+ for (const property of ["height", "width"]) {
+ maskStyle[property] = `${options.target.getBoundingClientRect()[property]}px`;
+ }
+ } else {
+ instance.originalPosition.value = getStyle(parent, "position");
+ }
+ for (const [key, value] of Object.entries(maskStyle)) {
+ instance.$el.style[key] = value;
+ }
+};
+const addClassList = (options, parent, instance) => {
+ const ns = instance.vm.ns || instance.vm._.exposed.ns;
+ if (!["absolute", "fixed", "sticky"].includes(instance.originalPosition.value)) {
+ addClass(parent, ns.bm("parent", "relative"));
+ } else {
+ removeClass(parent, ns.bm("parent", "relative"));
+ }
+ if (options.fullscreen && options.lock) {
+ addClass(parent, ns.bm("parent", "hidden"));
+ } else {
+ removeClass(parent, ns.bm("parent", "hidden"));
+ }
+};
+const INSTANCE_KEY = Symbol("ElLoading");
+const createInstance = (el, binding) => {
+ var _a, _b, _c, _d;
+ const vm = binding.instance;
+ const getBindingProp = (key) => isObject(binding.value) ? binding.value[key] : void 0;
+ const resolveExpression = (key) => {
+ const data = isString(key) && (vm == null ? void 0 : vm[key]) || key;
+ if (data)
+ return ref(data);
+ else
+ return data;
+ };
+ const getProp = (name) => resolveExpression(getBindingProp(name) || el.getAttribute(`element-loading-${hyphenate(name)}`));
+ const fullscreen = (_a = getBindingProp("fullscreen")) != null ? _a : binding.modifiers.fullscreen;
+ const options = {
+ text: getProp("text"),
+ svg: getProp("svg"),
+ svgViewBox: getProp("svgViewBox"),
+ spinner: getProp("spinner"),
+ background: getProp("background"),
+ customClass: getProp("customClass"),
+ fullscreen,
+ target: (_b = getBindingProp("target")) != null ? _b : fullscreen ? void 0 : el,
+ body: (_c = getBindingProp("body")) != null ? _c : binding.modifiers.body,
+ lock: (_d = getBindingProp("lock")) != null ? _d : binding.modifiers.lock
+ };
+ el[INSTANCE_KEY] = {
+ options,
+ instance: Loading(options)
+ };
+};
+const updateOptions = (newOptions, originalOptions) => {
+ for (const key of Object.keys(originalOptions)) {
+ if (isRef(originalOptions[key]))
+ originalOptions[key].value = newOptions[key];
+ }
+};
+const vLoading = {
+ mounted(el, binding) {
+ if (binding.value) {
+ createInstance(el, binding);
+ }
+ },
+ updated(el, binding) {
+ const instance = el[INSTANCE_KEY];
+ if (binding.oldValue !== binding.value) {
+ if (binding.value && !binding.oldValue) {
+ createInstance(el, binding);
+ } else if (binding.value && binding.oldValue) {
+ if (isObject(binding.value))
+ updateOptions(binding.value, instance.options);
+ } else {
+ instance == null ? void 0 : instance.instance.close();
+ }
+ }
+ },
+ unmounted(el) {
+ var _a;
+ (_a = el[INSTANCE_KEY]) == null ? void 0 : _a.instance.close();
+ }
+};
+const _sfc_main$1 = {
+ __name: "Report",
+ __ssrInlineRender: true,
+ props: ["reportToken"],
+ setup(__props) {
+ const reasonList = ["\u5E7F\u544A", "\u8FB1\u9A82", "\u91CD\u590D\u53D1\u9001", "\u4E0D\u826F\u4FE1\u606F", "\u5176\u4ED6"];
+ inject("reportAlertShow");
+ let checkList = ref([]);
+ ref(false);
+ let alertText = ref("");
+ return (_ctx, _push, _parent, _attrs) => {
+ _push(`
`);
+ };
+ }
+};
+const _sfc_setup$1 = _sfc_main$1.setup;
+_sfc_main$1.setup = (props, ctx) => {
+ const ssrContext = useSSRContext();
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/Report.vue");
+ return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
+};
+const __nuxt_component_6 = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-d48d8915"]]);
+const _imports_0 = "" + buildAssetsURL("item-bj.0d22947a.svg");
+const _imports_1 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAEZ0lEQVR4nO2ZUU4bMRCGvUi8gcgNmp6giwCJN8wJmp6g9AQNJ0h6AsIJGk7Q9ARZ3pAAZTkBuUGD4A3B9rMW0kzWXhaSTRPiTxrNLHhizx/biZ1ALTleAGyp8QJgS00hAXZ3d6v39/d7QRBU1QKQJEl/dXX19OzsrK9eIMCc7OzshLzYEabVAsIbFmGH5+fnMY9WnAJQ/MHj4+NPwoVnZWXlGyK0lQWrAFtbWzXcL+w98eXy8rKDF2QE0FpXbm9vrwkr2HtisL6+/jGKogHxkIwA29vbddb8EeG7w+wHFxcXLcIhNgF6CBASjnPCWmqxlmLiuYW9K2TvqhN+xQQIECPAJuGQjACs/wQ3zhXrJ8QvDNQR4z5hAuoQNYsHA4k2AY5JrOMXBupo4b5jAuoQNYsHA4kZAZg6P5g6TbVAsJSbLOUGocAL4AXwAoiaxYPBC+AF8AIkOIEXwAvgBfACuASgfY3/f6czjY+xNifGY/7lRKd3DkeENWyARZzVD8fP6qPofzlapXcVEfd+h657v5kIQCeuuwPn4UmnhVwTVrBRrBcWBp3m9AirSjJAhE2bCIytfAFo+wdXwTJwd7DJTIgJBeS0leWs/sQJAzxQY1CMS2gztt+MrUYoIKdcAehA00GX0Ao5h+S0CAXk9cgLCTOQk7mwMJATkbNHaKNPUR/xAnKa5DQIBbQNcEPEg6GoAE83Lz1CK8wA600sA4sY2B5hBvo5pR+txiCnQ85nQhtXFJURlJwmOQ1CAW1FzeLBUFQAA237SqkP2Dg3rM3wNWvT4OoHsfOu6I8pqo4XuPqhrahZPBgoKsEJXAOjE00nHcINbIjr3X+GPmLcJ2yUKwYX4q3Ql20WXLFx6siycdK+SfsGoYA+RM3iwcDgEpzAJYDh6WezOm1COuzj27SN1AswwDpOq5SInBY+FzMT6KNGWME6eTm8fpO2DULB1AWYV7wAXgAvgBfAC+AF8AI0CAVeAC/AGwQA6zl9nkGADgKMnx0KCTDAbWCjDDjg7HPAiYnnHs4M5qjeJaxgo9wggPibTYC2st/YDLAOy6GvCkA70/50UtFMMbZ30gVtqyq9a6xg42RmckYApo7mRbqEUwEhWmtraz9sR9Y8NPeAd3d3vxiLVlOCseyzl0VqhIwABkTo0HFh1V+CjmNE2C8qgk6L7yaOq7O3wBh+U3yNUGAVQDMAbmEjlb20mIQ20+8bPhdN39MuHpwXJwFmRacDaTOQzzxOi1wRdNpnN5li8eadZ/YdRJbiDQGWC8tBM6ADlW4sG9ikWEXQ0y3+BjMbdptpH6kcAmzqmJ2bj6FIuQXLiIDQvZzib/gY1pN+otgIsFIoIgJFHeM3KLyJaWWntOINpQlgQIS86+wilFq8oVQBDBOIUHrxhtIFMLxBhJkUb5iJAIZXiDCz4g0zE8CACCGbXQvb49HGCT+pNW0/qZXFTAV4xvya9PDwoBGiqgAf802N7yr2Lytl8l8EmCe8ANhS4wXAlpq/sWppbrWv2fQAAAAASUVORK5CYII=";
+const _imports_2 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAE40lEQVR4nO3ZjVHbSBiH8f9WEKeCiAoiKshSQZwKTq4gpgJMBZgKMBXEVwFSBSgVRK7gTAV7j27ZwQLklWTMx8Ez8xvPxF/xK61XgNE772MAeNd9DADvuqEDSPEdibyXrJL3N0r0yqBPVtIFEr3O6gEcI1fHDLqWyX/4t9AEC3XIoEuZ3s6HD02wUCSDWCP8QX0bWmEmf8rVXrL01hyfEFrjAPVtawaxpjhD6DesIi/8Ao2QS/qK0DHmaK3LAHJJ3xA6RInXWIprhApYbckglkNohUSvu0rSF4QMWtt6520OoQJWr7slviNk0NrWO2977gEk8ksu0V2V/HtXijfGL9SdY4rWDGI5hApY7acUJxijrVzSKXJtL721xBqtGcRyCBWwevpOMFP3FvL7/M4ZxHIIFbB62i6QqX8lDrFTBrEcQgWsfCnqtZaoe3McIzSTP/qbrVA/rkQl//oppviCzc5R//vgDGI5hApY+RaS/kLfDlEikb/C3OwSU6zxWDM9HNgRcg3MIJZDqICVb46f6NsBKj0c4CUyxZupOYRcfgiDMojlECpg5UvkhzBC15aYo+4fjFB3g0TtR/5+lZrL4QCVBmQQyyFUwGr3UlwjdI4pulY/9gyhCRYakEGsfQxgjF8I/cASXbOSrhA6xUwDMojlECpgtXuZ/PYXOkKu7qW4RugUMw3IIJZDqIDV7lk1j+AEC3XPqvn8U8w0IINYDqECVruXqLkFXiJT96Y4Q+gIuQZkEMshVMDKZ+XX8QhtVfL7/hr3qzTsm3yEP6hvQ5+xRu8MYjmEClj5Fmru421NsNDDZmru5yUOEesCme66RKaBGcRyCBWw8s3xE7F+YIn7jVCp+Xu8EvXjKz1shDNkanaASgMziNU2gPo/NEei9nL5I92WVfPLLLSQf24l/z7jWyNsdow5BmcQyyFUwOppy+RP675dItOOGcRyCBWwerqs/DIao2+5/PaXa4cMYu1jACOcYIpdW2KCNXpnEMshVMBqt1JcoL59rBUqNY+slZSouW1utsYRSvTKIJZDqIDV8FJcYYTNbrCQ/0Kr1F4iv+4zPT6MCRbqkUEsh1ABq2GluMIIm51jJn8UuzbCFCe43xFydcwglkOogFX/RrhCitANxsg1vBS5mtcSaxyiUocMYjmEClj1b46fCN3AasCafaREfghfEMrlz4RoBrEcQgWs+mXlj/5mR8j1dKXI1TwTJlgokkEsh1ABq35dwequU8z09GXyu0uokr9M3ppBLIdQAavuJfI/uYVWqI/WGvuoxFeEfmCJ1gxiOYQKWHVvijOEjjHHvsrUPAsukWlLBrEcQgWsupfL/6Ez9Blr7LP69T+hrlJkGRjEcggVsOperrsBlDjEvst19551Bq1tvfM2h1ABq+4t8R2hCRbaXymuEVoh0ZYMYu0ygEzNNfncnWKmLRnEcggVsOpXia947m6QyH8ntGYQa9cBjLDENzxXK4xRYmsGsRxCBayGlck/N9H+WmN5a41oBrGeagCvMoNYmwOoFNlX31oGsXI11+8hSvwv6jKAKc4QKnGENd58BrFGqHR3eVlXye+vv1HizdZlAHWZXvaCpksTLNQzg65lev1D6PN5/qvvE6z8lL/gtbVCop4ZDCnFGIm8l66S/z1DiV4ZvOs+BoB33ccA8K77F/DNI1Ad1eJHAAAAAElFTkSuQmCC";
+const _imports_4 = "" + buildAssetsURL("menu-icon-gray.d61f02b1.svg");
+const _imports_5 = "" + buildAssetsURL("comment-icon-gray.2c8779f9.svg");
+const _imports_6 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAQAAAAABGUUKwAAAD30lEQVR4AeVa7XXaMBSVDANkBDxB6QRxJmg6QVmANp2gZAOaDBCYoGwQugGZAGUD+F9Q7zPIxxAZy7ZkG0vn5Ejoy/fe954+7HDWgrRbf/8FGPeMySFyIRmf9MOneR3QeB0PufQMkJ+AOAlwlvgqYMEdD6ebswarPwOrs5WaTP7QD5PDPdu/6tvs1bZAAHaTTUcODx6S3aNqS6MhINcP0Z7tcq0csF6IUBBVyerGt8EDdLhO6iASFkg3qVEBEOORGS3+zaxf8V6NCmAOVw4RLhfWCvOZzns2KoBkMjoHdOH38EJb6abGBCCLYgW+NUW+Y7uBad8i/RoTACCjIkA544Mi/U37NiYALDoyBemyXyMCwP0HcP8vLomZzt2IANj+JqYAXferXQCyPi4/zvb1ooLVLgBi/6UoSOqPLVOUGZc3plYBYP17xH6UB0rX3mM9oauvWlebAOT6ONOXsv6R5KYqWd342gQ4un7p4yxugysdgap1/aoTmIzfrcdk+cikb0aft4z6ytXOPeDfejwCSvqrkLgT6xMgpwIQeSx6VeJeiSZUwXbuTACL5GGlYGmbuJoPBrKfbJIndL3w2QlOmtu6B9gmLxn7S0BdpRNl5Xp8a/ogHj5/AIa9/gZ7/RpzlN7uNM+fwUozTX3pqjT2WAA6oR0PKQWA81UvfPqcRnGc50+6rqVlgTfNX+lsEQA0PkDsCHQB8kQrfk8XUUkl3PKGqtzynE6lr+A+CHBCm7QcrCt4CNf9JEAMGMe9KyQNzvuJdoGCrt8gXOuPlpwEeLc+79VMiC/Q2GfF1eC1DlTiE7zHCVvhCosgF75qgHPAkjzASwEQ+vFJ1tsQgOcvyfOxCLp520qTtznhir0ifIGrt61tJn/EtqTcyxCg+McCuFECCCr4lFT8E+cASgifyMekWbBQnH0MgS2MHi+ABzEOUnh0H+CJ9RMBfLoPYPv7KICKBw/yLTgu0zzjNcCf+wBfqO1PiaAWQaEqupyfuz9xVQJ0mbfiRqv/SfwnAvhxH+AzpUQ6jz3Ah/sA3H+aJq7KvoTAW9aJVwkglCJdzHHO0VqfuMYCZKnTETG2/fB5lsVFeUBWewfqeab1iVxagE7eB7D4zS5ZMRGgm/cBPs8L70SASypda1vW1pfmkwjQtfvA8bXXKk1WV04EQKPQdbjWOhzuHkywJwJ06zjMHxH7udYngRIBoNgSv+m+fOWJz/GvOxNTEokAtFoibozcJjX5JlWGmoePDem6GstkvJ8gPyryzEQAGkQnJnwxvaMFJGeS+GHnbobfC8b475yxNpvfD1j5I3AP8P+E06KT/wdPOffX7me6UQAAAABJRU5ErkJggg==";
+const _imports_7 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAAFFklEQVRoBdWZW2icRRTHdze7MVsviblYRVEbr4iihnjpmnuCxEARtQYFxZc+ircHfUygUkXQPlnQKuibBEEkNRISkxDazUNDQLBREW0pPtikmsqa2N1ks/5OzLecmb0k+/ml+zkw7DlnZs78/zNn5puZDQZ2KI2MjFwVjUZfxf1+8q3ki+STmUzm/a6uri+RPUlBT7xYTsbHx+8Kh8NfA/ZGq8hRP0U40NnZueYY3P6G3DYs1G5ycrKmoqLiqyLgpekL5DcL+SjF7jkBOn+ZfLMF4i90e7RfGxsbKzRDVvPC6k4QeFp3FwwGjywuLtYRUtcgx1VZBJtRV5VtW/ScACBv070TSgf7+/tTra2tS+vr6+/qMuT7LL1k1VMCs7OzEQBHFIo0C/U3R2dtfO/I8gvZ27XuRvaUwPLy8g2CSwFZUnIAAr9qHbI3ad2N7CkBQuQWDYIRPqv1lpaWBLaUslUq2ZXoKQEQ9GoUjLARMlKGLUsAMhW6vhvZMwKDg4Pi60kLxJjWh4aGBPDljg0yq47s9tczAu3t7c8CYo8CcjGdTh9TeqChoeFqdL1GzupyN7InBEZHR2VUD1oAPu/p6fld21gjTVonhE5r3Y3sCYHKysqP6FyPfprweNsGFAqFHrVs31l6yWq45BaqASCDU1NThzA9o8wiHuXEecqyiWoQIMS+yVOnJJNrAsPDw7sA/wG9PWf1+FMkEnndsgUmJiYewnaPsieqq6tnlO5KLJmA7DZtbW1PEA7vMQP2YewCo7qfr2/CRkO8v2LZrkwkEilOr3LQ285uJPeJefJn5E+co7jeEbDnT3RyLSV3k9vJz5PzfUETEHqM0DlBuZHkiAHYPzFGjQL3yixN98kxRWK4lY6PYLi+gD9Z6NUFyjbMjO4v+Hgch3kXZTwej6ZSqfPU2VXMTyll9Dm3sLCwN4TTj2kooyt7dL5cDHwGRx+urq42FQIvoGKx2N/08xJ1/xDdi4S/pvr6+gNBwkPir9S1kKbNF+zrb3V3d89tF5CsH+oXG5CCrpLJ5HXcHw4DXO9kM24IvMhClY/UuYK97VABd+3dnGizx3O6SeR8yIjV3TCtdTKVZLSzidvV0XKAFwCAT2aB/CtEJHSMnaiurm6pubk5u60RYkabxsbGjGG4hApr6H5CSPd4OmcG2O6MGjQwCNrl2ttOy2B5xOrjRA4Bq4KvVGZgrwYEoRnZRo0RJsaNGdANyilv4nxYY2BNzPxvZmB6evpOSNQqAkuszx+3JMC0+WKG+ObEFHgR43xX1rckYDUqp2rEP0A2TrI5BObn5325BgBszACBEZfRzCEgxmKpHASJ9Rri/w6FS258J0UP2zGuKvlGBGwMnNnBRv62o6ND7hGlz0A5WAHYiH8IbYRPXgIDAwO+WwMQMOIfAtmraHZaioyssY1eaoLyGAbgBzU+CBWeAV3RDzKHy3vBcYXCco7L0xlH384MOHXL8svjgRH/gDiugQgBI0SYnqJrYKty7dwj2SaQjX/x7/sZAKOxgHX8+56AXCEBuUeAbqbkysqKcQf37QzwR/llXGsPOcg3f+f6+vqS2pbzGsE70c+6AluYVgN2uVHooUK/teQa7RL9mNZFziFApUa7kta3Ktd1PZZ/qKqqOmz7lBA6bxt9qJ/hKecpeSCzscmV8g2M8nDqu8SOs0B+B2AP8JQjD7s5aeMbIE/lpAbI/Oc/3XJ6cGlYW1u70Nvb69lTpEsYO9/sHwHIu0q4cL20AAAAAElFTkSuQmCC";
+const _imports_9 = "data:image/png;base64,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";
+const _imports_10 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAQAAAAABGUUKwAAAE8ElEQVR4Ae1a24tPURQexjAxuZVcm1FESqHc80CDkhIpCsULcnlQ3kSUFy9480L+BeWdPGBGQiPEw8wowjAz7nLn+6bZ0/7t+fb5/Y5z5sw+J6vWnHO+vfY+a3177cvZv6mqGjwZgVfvhV6BvoR+h76AXoJuhg6FFlZWILJW6J8IvYWyGdDCyVpE9AUaFbwpY2bMKhID0xBMZ4XBGxJaYF9TFBLOxQzekLCnCARw0vssCHgPbD90AZSBdkNN4ObaBCz3shQRmIDs61Ynso0euzGOXe4eN3gCq3Mi4Xi3CTL3ix27VB6zXGs5BFz5BYDDwpYfeODs78qArAZZEsAVwJVPANjDrrS5AJ5zT8B0EdRzgRHqEvhYgSWGsswA1YPPPBG8FXi1wBJDWRHAiW6l8PaJwAh9FfgwgSWGsiJgHTytFd7yQ0jJaAEOiK8D0qhwfqfA+PV3TeCEFAEdHttEcBYE8MtvvfCSn70fBU5ogsCfCix4aAg8vA41mxn7usrjPfcLZnm07Rs99kHDR+CdHYS5vwuc5ChhoMbOvjYo45CxNXDupyeY1RGOnxJ1nkbYB1nEAPmVZ/egub9cxuN7ot6FMnWCKt4JbzjDm4DtK2fySRHeLvTU2xJRJ1FRmpuLqfDkNNT9vDUO8sNnO/SVAcT1sMAI8ZD0XydBHr/x/PEa9AE0dalHiyegXNLs3rbvf6NsFzRKSKAvc+y2ktzzoHVJlBOVlE2GEcf4ISh3cuzZKKdYfhBaTvbAIKqdtMo4Me+2neE+nWd17dDuMvoO5XEcYVbwhKcSOQCjOG0nsWVGbjJOnR+gF99Bu3PNSyq4ToTNG2iSwOLU7cS7RnMz8hqqtp6A/0nY6yehZ6FMtzgyE8aHoTOgvo1SnPZoy3MEHrhW88ERvqvqGzQOcz5bEnkUOg4amsyHQ+xx1/erdDQpARxC3PWluaTSr7TlGBp0Ceik0yrVLgLnkmELWdxnA733B3EliaFLu3BwJDG19u4Qxpw1XQb5rE57RfVBhzg8Xf+7fOcBNHRFZQptlK1bN4TnZcKJFhLgC0zYSygPBDBG/jLlSlOcDHAr5+l5DpwdLxz2EiBscw0tF94zc5t9GSDsEw8V1WZWmBr/T/DyzjgE+JzNwxygMuAmA0pjEvQREwrOnels4UwTMV8G5KFXRUwSYu+rla4vA2StAoFq/L9DfI8Zoy8D4sQferao8c/055lALAJUGsUhajBs+a2zSLy4Z/wT902CofeqiElC84DWiZKe8U88jSEg2g8GUunPM8rbxsM0CAg5W9QEeB/Bf0iTANNWiFeVAX3jnw7HyYC8TYJTEF+D6JWKCAg5rUVMElK9T8O+CZAPvlWAZZVKqGSp8d+BoNrswOIMAbteHu5VBtxwHS8qASMQKH8LcKVk/LPQR4BK6zxNgtz9kQRXSsY/C30EuBWjnhVZUfZZlKnx/w0v5r/mlAgJyFPPljgf8aAIYPD9/gGTBITYgxGxlS2qgYWaAPuNf7aUxhAo61GGBsPxrjNQ/tLsiiSA6a8ygOvlZ6eFUXhWDZesq06dLB8ZB4+/1PE3U78eyp/f+wkrFl2ZFV7hyUiRCXiI+NSZQA8hnANae+6K+acZYTVC+a+3XtmGEh4SFCkL+K94x6G10EgxewAeHZEpLiF5FZ7/cbPzCHql9x6X//KfgSgG/gK9mIkzqc2oKwAAAABJRU5ErkJggg==";
+const _imports_11 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAA4CAYAAABNGP5yAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAOAAAAACP8+m+AAADhUlEQVRoBe2aS4hPURzHZ7zfj4USmTGTkGcodiRRNh5JNsooO7NhgyJSyoayIDbySFlYkLLwyAaRR5Ty2DCTJPIYeYfx+U5z9O/M+f/N/zf3/q//vfdX3+4959zze3zP6557T01NxqU2EP8M8prAPDAaVLN8x/lWcBEcA+9AURlCyVHwG7SnEG3EtAEERcHfAmkM3I9pd4iBUxkJ3pGxwpGgOWAuUOv7cpuM60DjqFplOI4vA2O8AJ6TngB+Kf8QcMy46zbyQhOknq82GYbDV4GLzV0Xu0AeeoV3XUGKrg3E4k/uOxVfL+AvdWIrbfKMgF54QdUrLQL6ewXfvHRakp+8QHorLQIyLTkBmW5+gs98D+jTwx4wivpDe6jDr/6WDL23V0SsBDTi3XkwJSYvr6B3Ofgck/6/aq1DQG+KcQUv5xaB9bqJW6wEdLxExOzc+Jj1d6i3EvCkAs49qoAN8yqwB+cugx8xOPkFnSfBiRh0d1FpnQRfoUm7Kb1OarcVpbyPUtm/dFkJcHq1n66ow85wVFfrHBCV/cT15AQk3gQJO5D3gIQbIHHzme8B1mVQxK0DC8GABJuxFdsHgb75mcRKQDPWDpgsRl9pNSonAdO3TOsQWBJ9HGaNddQ070ytBMSxBzAzQEVT68uglYDj1NWPhv9BbuLEY6sj1jngHAZngwVgoNV4BPVa0HEWmBvDSoB8f9AJ3VetWIdA1QbsO54T4DOStXTeA7LW4n68eQ+AkXaPlb5eOi1Jv7E73h2U+caLcJqXTkNSh6UavEBeu/QZbtQLHPSld74rTMl1X0F8Ls41iq0WrAIioVC+ktgPLgH/aEnhc1Hda3OlP0E/y1SoHqweW2zY1lO2FqwEhfKRRB1oU6Z+buhMoGMmqatOq80E3ZURPHgfWPzd7huZTIbmAouyKOvoUOYO0J09yiajv/r1HtQ/nYKnRqVRkiBdd8BUUEo2Uliu3dPUKbl7HcQDm4G1a5XrUKnn9ZFjK9AQDclgMq+BUjpUJj0XwFLQRTQJFhMdfRkLZChOGYdyzdKNRYzoHHMTCH30kP9a3kaCkHwgswWUO7mGdMWap265t9PRUItqVdoCivUGitIhswjjHgiRoLwbQF+AUy39iG4X0IoQIuIl+XEPS0wkL3rB0QfPEAlzknevMh5ozGu913E5R4R6gFarTMlEoj0MjgC9tEUmfwCaJfF0KbQc/QAAAABJRU5ErkJggg==";
+const _imports_12 = "" + buildAssetsURL("collect-icon-colours.6d2ade7f.svg");
+const _imports_13 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAAEk0lEQVRoBd2YW6hVVRSGzXtw8pJkYeU5aZqVIWKgYdDxAkUpYqGJgdhDEliKCYqYGfRi2YV6SBQUxKAbPYRXEMQEfSuULkIXFBMpE6zUvKX1/bLH4W+59t5rudfu7O2Af8855hxzjH/MOddcc+0uXZpcutWRf298TwTnwKk6xqmb6814/gecAG2gqWQSbEU+sL6p2EP2CyOvJC6Au0BTSDssY+a9XNsU7CG5q0wCWoU20NDyMOx81t9FP29taxqaPeR2GtnfqLeAddamZFpBQ8o4WPnsLymxFGFfhfcakj2ktoNIQGf/TUZ0g/WdpX679TVEdQwsLoNIYFmC1VD0i9b/TqK/09UtRu4k9b4pjDaajVZhUIpNpzSNJqrP/ooyLO6m3VfhzTJ2/3vz50SMrfM79X4VGHxgtmeoD6xgW9cuBR4PXgQ++6+iV5J76bwEIuGPqD8G9Ix0B7nlhgojbqZvWAnDS6W2gdrS9vgftOu+o2egkoj00ykG2l6HwA/g+1L5Y6k8QqmJukqUQE/wBBgJgqhIKoE88hrGr2QYcD82B0C3DLZhovfIT8AT08FxTAbbQCxp3vI0Y/eDt4EmIqvMxHA3+AXkjRn2fzL2Dq3AcXALKCfKPpZSyxtQ29Fyg3K098E2tmqU2gnargOq+Jms/hdAZBXlZ7Spsw10BZ0l2sZjwUvAH37x3AM6tuFiFD9NNOtPgkaQWyHxNYjJDfJ+VbnC83l+Pcu/0Z+50tN5P7cR+lvg5Hejt4BUeY7WZBJzUi3r3ziYEHrenPx29BurhZ6NwUUbqJV4ttqggvtb8adj08lvRe+dNc4sDD0JPR/zsw6u0U4n0c/AyW9G75XX7wwGXDBHSmJhXic57e/BXkezk/8YvUdOPx3mU6jpn7VwqCQWdfQWW9E9SW/WiKXyQ9Ad1CTJJOR4SU0erx48iiZ9Qzv59eiFvYMexdlfFkAroTtNUaLriJNfg65bQqEyDW8eZEKB3n3r6LaamXyeJTqVIHwwodeiui9dEDVRmSRPAg+YxxPUdZMsSvS2Dcm1NfMk4I6/iWgFlZ7ASHzWZQvJcUjRCbi/FoK0RqBqZdYV0IzcZ858xqz5mqtKwPe9T1ZFp1kTuBMvfc2Tz5g1/6f6ENpbYC6o9ibV97TewCGZE4gB1crHMfAjVB8a5UQr9QnQuyLGHKY+D3R8gFBPin/abkp21qrrzRtkdNFKk1Ya1wLdXsM2WWrrzQBpD+kbNu4r6oXKRrwFmR0Jz4PQ9eb0i1/YprWpbx9oBy5zUGLcWeo134Hc+ZfmfHWpQ9toFfArRhA4XerrTzkV6G+U6PNyJ+0PAskY4H26mRYi2rdOcj76UnASeEDV9S2tbaRPQRcdFto6yY+UGK9ExgLffk+hFyL6wIhAQdJ11RV4AxgMKkkvOheAX0Gaj0vWvpJ6ITIdL8lgoeuk+RSMyBlJL6uXgf4MDl/JUn4LkRV4STqXrodZ+7YW0XP0OjgDkjG+q8Wxj12ecL4X/RE3KKCuk+x94KdWlpdlptA6SfRduhVMyTTi2o2GMFSHwC7QDq5/+RffN6xPYNWQnAAAAABJRU5ErkJggg==";
+const _imports_14 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAADpUlEQVRoBe2ZO2gVQRSGTXxEo4UJYuEjGkHBoCjaKqIWViKIKFgJVkpANGlErGORSkUURBAFGy3FwkZFfKOJDxBBBG0EwfiM78f3x2wye+7c3b25s5uL5MB/d845M3P+M7MzO7u3blyyNCW7U72fqfE9tVa8wlRUtRuRTKFVJ+gBCvynSqiPE6AOpMlsKjwGinkJNIOKpIXaj0C1pH3t12Zg0m1iP0EXp0SpH/Rq5C+CJYm1R+5UUmnSbyq0od8AS43dq3Zg9Y1ctbZv9HsMZLmFplOv18OjD9sakCgP8Lpkr6FrBLSIq8Ek2lciSuIKcLmo/AVsAV7R6NgFu8hbsxjjZMKcBzaJX9jaLQWRbwR225qI7aetnJOu3UaLfCVYDLQbzQCtwCddGA8AJTggSsBmO2HQl9dFe/0OoFtVA2Xjp+mnaDMkRSYwjaj7wRuQRjLNvz7KoKgENhLwZQDiUWKbi0qggUDHU4g/x38S7AYbgNbDMnAQRITd623sQztcnjOgBXqzDAltHEfBCuCT7Rj1HHGJq6xjhm7FIckrgZlE8B1NtB1qRuQvJ/tw/AaW/Gls2iFjkkcCGqG7wBLQGlgVix5XtK13A9tO+iEgf4nkkcAFolgSt7Bpfy8n9TjOAttOM7anXCPZQyewiz4tCe332vuTZCtO2+4rtm1JjeQLmcAs+vsAXCI6FuuMkybtVHDbvUdfl9ZI/pAJnKE/l8Qn9DYFySBK8iFQ+xdgOcgkoRJYSDR7LOjMxGC40niKC0DJTjNcpbQUKgGd+93Rf1YpkVJq2SwhEtDT9i1wE9iZLXxFteZSWw+/I2BO1DJEApvozCX/Dl2vqaHlHh1Gce5EnYdI4LDTsQLEjrtRoCqvmmX36axygx4eIWS16eSy0UOoWuDuk1hl2areRjUI/SCaWl3ngdDiu1MaQ8yAFpN7vyuZV6HZl+svRALNpvPX6Lo/C5EQCWhqXfnoKnmXQyTwFJI6MkRyPSoUdfUtjkq/SuiMfw50Ab0L5CE+ngOz73NUmkAehG2fPp5BdiEbqFA9xBoolLANNpaAHZGi9bEZKHrEbbyxGbAjUrT+X8yAPh79MCPXYvRaUOcbEvpbTP+dDUgPv+4Lid6o8ngp+Ret8t9WmlwFLsf7bjcdxulWrNXyXjcBvVH5PoXXKvle+OrfzJjovo8+7dUqcfESeX0f8oqy0tToj2/fvyOjlZi46J4Xt9jIu58p8JVIU4lldAx95cL+BRfIP0NGsZjIAAAAAElFTkSuQmCC";
+const _imports_15 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAACWUlEQVRoBe2Zyy4sURSGm7QBI2dESI4WyTFhxuQ8BPEQLhPEROI2FzPxHNIJOZwnOE9gSjsuESNDA9f/a7WS1a2LiC69S/ZK/uy1V7H3vy5VvatWofBaumSaE/4KF8Kd8JSCBdk/K6yRtj57w+FQmBU6hTdlSlcvhbQF6+1ZO1C/H85MeA/a3WRJ+q7Q52yhqf0iVBYWjVhbohB5yNscc0XYS8ZbDA3kn2xHDewfMY3oj3+n/AMlMyhMCiXB5FEKnOFXoOZ92TxoviIUhVCkQ0RWBbhZWZ1Lr94T3LBmZIR8qLImYp7rDER52pjxWHpIkYefFzJREYzvATcxNWiyL+XeJgGOPFardZ9wG8WBHkf0zOmhqv8dsV4c8CUTcvSNt+dYxIFcS3Sg1emLGWh1Bjj7VH/NEiLNONtk7dNbZ6es947rxwjECMQI1EWAx+i4sCx0110LfXojgls4wAtCScijVDhK8HaTV3kiA2MCJfQjZ15QQps54xzpxgjECHy7CPAYzf0LjX2mY2zG9/6ss1zTEIkv9VmH+731Ywbei1DW179FBmq+9mYdsSasX/M1nQxcu0V/Oj1UteSIXaHTRLbfghPptHFCFbidCsb3D0TpgJuBkW5gqLIhYp7rNERpVV64C7Qy6QaGlAm4rAu+zXqmeSdnIYT2fVnwT6VTzWn60blsZaN7SPvDb0AwodGNrVpCZlyU4j30qUrTOZd8Vlgjbf1GdjjO26Y+4tsy0r6nnEIVuvNEfscIegew0YP9JXBjHwiXgv+d0PRLhb3hQKlw7B9OdA0v8gypmLKP2lSLggAAAABJRU5ErkJggg==";
+const _imports_16 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAADEElEQVRoBe2Zy4tSURzH59YtJRMqcEhdaUyil6DUoQJr2boHEk0DRctes2hTtAp6bIJeULSJiB6UmbPptWjwH3BrBKKudKe4zFL7/oZ7Z47He9W5i3tOcA/cub9zuMf7+fx+5z4cZ2bc5mbAzYCbAZEZUJw+uaZp271ebx7nPYztRTQavZbL5Xp2OTbZnWh3HuAXMfcYNj+2pVqt9jKbzW62+3mOCyiK0mRhB4PBYrVafWVXwrY5C7GRuNFo/AqFQrOYM8/M29dut+cymcxyuVweMOMTQ8cFiKjZbH6FxC6EBxlCkojHYrFCvV7vM+NjQyECRASJb5DYiZCV0Lrd7oYkhAnoEt8tJBIYX4bkxEoIFWAkdiA+RH29JbCPTyMhXICAkWmqxIgE7lBUicK4SkghoEvQNeFFnKE+NdxyE5MkpBEgYGT6h5kERLRgMGhaCakEGAkP4iPU11sc+6TP58u3Wq2h1w7pBAiYKhEOh7ciZCX24jXkAC8hpQBJ4Im9YiExVAlpBQwJrP0tuAaOUl9vc6jEmoTUAgSM5bRiJuHxeFJ47cgr82i9Xu8WLOkFS+a2H3BDCcct9rna7/ffAX6PzORWbOA+Td8Htlkd8B+MD1SU4QJM7gM2JDkwvbny7b3j34l5gmn6yWTyNpJ8kzv2S6fTOTl0UXAHSNFNp9N3AMLDfwb8qUql8lvqCqRSqbuAv8Flcg2exh3/Us/BWHbN4LGMPmHCCcq8MVE1Apn2gL8HnussE2429L+kM6VS6Q87LtsSUgD/AIBLLCTBI/sj8HSMTAKm8GD8iG2BzzzBU5NFgOAfgufqKtX6n7HwdJgMFzHBPwILD5/z+/2my2bdT3wFDPgrLBRigl8oFot/ufGRrsgKKHjCPgYRD/9hWniyEfUkVvCEfYLzXyYIphH82Wkyb8wRUgGs+ae4NV4yIPT9W/xWMNWyYec5fhcC/HEAFFgIxG8Af87ODx0insS7WXg8oF5HIpHzduDpcxy/BgKBwE9VVZM49yzgnwH+ol14NhFu7GbAzYCbATEZ+Ad9hheLGRG4rAAAAABJRU5ErkJggg==";
+const _imports_17 = "" + buildAssetsURL("QR-code-icon.a546cc6a.svg");
+const _sfc_main = {
+ __name: "[id]",
+ __ssrInlineRender: true,
+ async setup(__props) {
+ let __temp, __restore;
+ const route = useRoute();
+ let uniqid = route.params.id;
+ inject("isNeedLogin");
+ inject("goLogin");
+ useHead({ script: [{ src: "https://app.gter.net/bottom?tpl=header&menukey=mj" }, { src: "https://app.gter.net/bottom?tpl=footer", body: true }] });
+ let contentRightRef = ref(null);
+ let contentRightHeight = ref(null);
+ ref(false);
+ const clearAllData = () => {
+ uniqid = route.params.id;
+ info.value = {};
+ qrcode.value = "";
+ iscollection.value = 0;
+ isdisplay.value = true;
+ islike.value = 0;
+ ismyself.value = 0;
+ relatedlist.value = [];
+ relatedcount.value = 0;
+ pitchIndex.value = null;
+ seo.value = {};
+ commentCount.value = 0;
+ commentPage.value = 1;
+ commentList.value = [];
+ commentLoading = false;
+ token = "";
+ };
+ let floorRightState = ref(false);
+ let transmitBoxState = ref(false);
+ let info = ref({});
+ let qrcode = ref("");
+ let iscollection = ref(0);
+ let isdisplay = ref(true);
+ let islike = ref(0);
+ let ismyself = ref(0);
+ let detailsLoading = ref(false);
+ const getDetails = () => {
+ if (detailsLoading.value)
+ return;
+ detailsLoading.value = true;
+ detailsHttp({ uniqid }).then((res) => {
+ if (res.code != 200) {
+ ElMessage.error(res.message);
+ return;
+ }
+ let data = res.data;
+ token = data["token"];
+ info.value = data["info"];
+ seo.value = data.seo;
+ iscollection.value = data.iscollection;
+ isdisplay.value = data.isdisplay;
+ islike.value = data.islike;
+ ismyself.value = data.ismyself;
+ qrcode.value = data["share"]["qrcode"];
+ if (relatedlist.value.length == 0)
+ getRelatedlistHttp();
+ else
+ CalculateSelectedList();
+ detailsLoading.value = false;
+ getCommentListHttp();
+ });
+ };
+ const CalculateSelectedList = () => {
+ let targetRelatedlist = [...relatedlist.value];
+ targetRelatedlist.forEach((element, index) => {
+ if (element["uniqid"] == uniqid)
+ pitchIndex.value = index;
+ });
+ if (pitchIndex.value == null) {
+ targetRelatedlist.unshift({
+ avatar: info.value["avatar"],
+ interviewtime: timestampToDate(info.value["interviewtime"]),
+ profession: info.value["profession"],
+ project: info.value["project"],
+ releasetime: info.value["releasetime"],
+ subject: info.value["subject"],
+ uniqid,
+ username: info.value["nickname"]
+ });
+ relatedlist.value = targetRelatedlist;
+ pitchIndex.value = 0;
+ }
+ };
+ let relatedlist = ref([]);
+ let relatedcount = ref(0);
+ let relatedpage = ref(1);
+ let relatedloading = false;
+ let pitchIndex = ref(null);
+ const getRelatedlistHttp = () => {
+ if (relatedloading || relatedpage.value == 0)
+ return;
+ relatedloading = true;
+ relatedlistHttp({ token, page: relatedpage.value }).then((res) => {
+ if (res.code != 200)
+ return;
+ let data = res.data;
+ relatedlist.value = relatedlist.value.concat(data.data);
+ relatedcount.value = data.count;
+ if (relatedlist.value.length >= data["count"])
+ relatedpage.value = 0;
+ else
+ relatedpage.value++;
+ CalculateSelectedList();
+ }).finally(() => {
+ relatedloading = false;
+ });
+ };
+ let seo = ref({});
+ let commentCount = ref(0);
+ let commentComments = ref(0);
+ let commentPage = ref(1);
+ let commentList = ref([]);
+ let commentLoading = false;
+ let token = "";
+ let isEmptyState = ref(false);
+ const getCommentListHttp = () => {
+ if (commentPage.value == 0 || commentLoading || detailsLoading.value)
+ return;
+ commentLoading = true;
+ getRelatedlistHttp();
+ detailsCommentListHttp({
+ page: commentPage.value,
+ childlimit: 1,
+ limit: 10,
+ token
+ }).then((res) => {
+ if (res.code != 200)
+ return;
+ let data = res.data;
+ commentCount.value = data["count"];
+ if (data["count"] == 0)
+ isEmptyState.value = true;
+ else
+ isEmptyState.value = false;
+ commentList.value = commentList.value.concat(data["data"]);
+ commentComments.value = data["comments"];
+ if (commentList.value.length == data["count"])
+ commentPage.value = 0;
+ else
+ commentPage.value++;
+ }).finally(() => commentLoading = false);
+ };
+ let scrollTopValue = ref(0);
+ const handleScroll = () => {
+ const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
+ scrollTopValue.value = scrollTop;
+ const scrollHeight = document.documentElement.scrollHeight;
+ const clientHeight = document.documentElement.clientHeight;
+ if (scrollTop + clientHeight >= scrollHeight - 40)
+ getCommentListHttp();
+ };
+ let commentInputTop = ref("");
+ let commentInput = ref("");
+ const timestampToDate = (timestamp) => {
+ const date = new Date(timestamp * 1e3);
+ const year = date.getFullYear();
+ const month = (date.getMonth() + 1).toString().padStart(2, "0");
+ const day = date.getDate().toString().padStart(2, "0");
+ return `${year}-${month}-${day}`;
+ };
+ onUnmounted(() => window.removeEventListener("scroll", handleScroll));
+ const getFullUrl = () => {
+ return;
+ };
+ let copyText = (text) => {
+ if (navigator.clipboard) {
+ copyText = () => {
+ navigator.clipboard.writeText(text);
+ ElMessage({
+ message: "\u590D\u5236\u6210\u529F",
+ type: "success"
+ });
+ };
+ } else {
+ copyText = () => {
+ var tempInput = document.createElement("input");
+ tempInput.value = text;
+ document.body.appendChild(tempInput);
+ tempInput.select();
+ document.execCommand("copy");
+ document.body.removeChild(tempInput);
+ ElMessage({
+ message: "\u590D\u5236\u6210\u529F",
+ type: "success"
+ });
+ };
+ }
+ copyText();
+ };
+ useRouter();
+ let reportAlertShow = ref(false);
+ let reportToken = ref("");
+ provide("reportAlertShow", reportAlertShow);
+ provide("clearAllData", clearAllData);
+ provide("getDetails", getDetails);
+ {
+ try {
+ [__temp, __restore] = withAsyncContext(() => detailsHttp({ uniqid }).then((res) => {
+ if (res.code != 200) {
+ ElMessage.error(res.message);
+ return;
+ }
+ let data = res.data;
+ token = data["token"];
+ info.value = data["info"];
+ seo.value = data.seo;
+ iscollection.value = data.iscollection;
+ isdisplay.value = data.isdisplay;
+ islike.value = data.islike;
+ ismyself.value = data.ismyself;
+ qrcode.value = data["share"]["qrcode"];
+ if (relatedlist.value.length == 0)
+ getRelatedlistHttp();
+ else
+ CalculateSelectedList();
+ detailsLoading.value = false;
+ getCommentListHttp();
+ })), await __temp, __restore();
+ [__temp, __restore] = withAsyncContext(() => relatedlistHttp({ token, page: 1 }).then((res) => {
+ if (res.code != 200)
+ return;
+ let data = res.data;
+ relatedlist.value = data.data;
+ relatedcount.value = data.count;
+ CalculateSelectedList();
+ })), await __temp, __restore();
+ } catch (error) {
+ }
+ }
+ const isBrowser = computed(() => {
+ return false;
+ });
+ const sendMessage = (uin) => {
+ redirectToExternalWebsite(`https://bbs.gter.net/home.php?mod=space&showmsg=1&uid=${uin}`);
+ };
+ const TAHomePage = (uin) => {
+ redirectToExternalWebsite(`https://bbs.gter.net/home.php?mod=space&uid=${uin}`);
+ };
+ const redirectToExternalWebsite = (url) => {
+ const link = document.createElement("a");
+ link.href = url;
+ link.target = "_blank";
+ link.click();
+ };
+ return (_ctx, _push, _parent, _attrs) => {
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i;
+ const _component_Head = Head;
+ const _component_Title = Title;
+ const _component_Meta = Meta;
+ const _component_TopHead = __nuxt_component_3;
+ const _component_el_popover = ElPopover;
+ const _component_Empty = __nuxt_component_4;
+ const _component_Report = __nuxt_component_6;
+ const _directive_loading = vLoading;
+ _push(``);
+ _push(ssrRenderComponent(_component_Head, null, {
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
+ if (_push2) {
+ _push2(ssrRenderComponent(_component_Title, null, {
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
+ if (_push3) {
+ _push3(`${ssrInterpolate(`${unref(seo)["title"] || "\u9762\u7ECF"} - \u5BC4\u6258\u5929\u4E0B\u51FA\u56FD\u7559\u5B66\u7F51`)}`);
+ } else {
+ return [
+ createTextVNode(toDisplayString(`${unref(seo)["title"] || "\u9762\u7ECF"} - \u5BC4\u6258\u5929\u4E0B\u51FA\u56FD\u7559\u5B66\u7F51`), 1)
+ ];
+ }
+ }),
+ _: 1
+ }, _parent2, _scopeId));
+ _push2(ssrRenderComponent(_component_Meta, {
+ name: "keyword",
+ content: unref(seo)["keyword"]
+ }, null, _parent2, _scopeId));
+ _push2(ssrRenderComponent(_component_Meta, {
+ name: "description",
+ content: unref(seo)["description"]
+ }, null, _parent2, _scopeId));
+ } else {
+ return [
+ createVNode(_component_Title, null, {
+ default: withCtx(() => [
+ createTextVNode(toDisplayString(`${unref(seo)["title"] || "\u9762\u7ECF"} - \u5BC4\u6258\u5929\u4E0B\u51FA\u56FD\u7559\u5B66\u7F51`), 1)
+ ]),
+ _: 1
+ }),
+ createVNode(_component_Meta, {
+ name: "keyword",
+ content: unref(seo)["keyword"]
+ }, null, 8, ["content"]),
+ createVNode(_component_Meta, {
+ name: "description",
+ content: unref(seo)["description"]
+ }, null, 8, ["content"])
+ ];
+ }
+ }),
+ _: 1
+ }, _parent));
+ _push(``);
+ _push(ssrRenderComponent(_component_TopHead, null, null, _parent));
+ _push(`
\u8BE5\u6821\u5171\u6709
${ssrInterpolate(unref(relatedcount))}
\u4E2A\u9762\u7ECF
\u7533\u8BF7\u4FE1\u606F
`);
+ if (unref(info)["school"]) {
+ _push(`
`);
+ } else {
+ _push(``);
+ }
+ if (unref(info)["profession"]) {
+ _push(`
\u4E13\u4E1A
${ssrInterpolate(unref(info)["profession"])}
`);
+ } else {
+ _push(``);
+ }
+ if (unref(info)["project"]) {
+ _push(`
\u9879\u76EE
${ssrInterpolate(unref(info)["project"])}
`);
+ } else {
+ _push(``);
+ }
+ _push(`
\u9762\u8BD5\u65F6\u95F4
\u65E5\u671F
`);
+ if (unref(info)["interviewtime"]) {
+ _push(`
${ssrInterpolate(timestampToDate(unref(info)["interviewtime"]))}
`);
+ } else {
+ _push(``);
+ }
+ _push(`
\u9762\u8BD5\u8FC7\u7A0B\u53CA\u5185\u5BB9
`);
+ if (unref(info)["message"]) {
+ _push(`
${unref(info)["message"]}
\u4F5C\u8005\u8BBE\u7F6E\u4E86\u6D4F\u89C8\u9650\u5236
\u201C\u56DE\u590D/\u70B9\u8D5E\u201D
\u540E\u5373\u53EF\u67E5\u770B\u5B8C\u6574\u5185\u5BB9
`);
+ } else {
+ _push(``);
+ }
+ _push(`
`);
+ if (unref(islike) == 1) {
+ _push(`
`);
+ } else {
+ _push(`
`);
+ }
+ _push(` ${ssrInterpolate(unref(info)["likenum"] || "")}
${ssrInterpolate(unref(commentComments))}
`);
+ if (unref(iscollection) == 1) {
+ _push(`
`);
+ } else {
+ _push(`
`);
+ }
+ _push(` ${ssrInterpolate(unref(info)["favnum"] || "\u6536\u85CF")}
`);
+ _push(ssrRenderComponent(_component_el_popover, {
+ placement: "bottom",
+ width: "628px",
+ trigger: "click",
+ "popper-style": "padding: 0;border-radius: 10px;",
+ visible: unref(transmitBoxState),
+ "onUpdate:visible": ($event) => isRef(transmitBoxState) ? transmitBoxState.value = $event : transmitBoxState = $event
+ }, {
+ reference: withCtx((_, _push2, _parent2, _scopeId) => {
+ if (_push2) {
+ _push2(`
\u8F6C\u53D1
`);
+ } else {
+ return [
+ createVNode("div", { class: "item flexacenter" }, [
+ createVNode("img", {
+ class: "icon",
+ src: _imports_14
+ }),
+ createTextVNode("\u8F6C\u53D1")
+ ])
+ ];
+ }
+ }),
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
+ if (_push2) {
+ _push2(`
\u8F6C\u53D1\u7F51\u9875\u7248
${ssrInterpolate(unref(info)["subject"])}
${ssrInterpolate(getFullUrl())}
\u590D\u5236\u94FE\u63A5
\u8F6C\u53D1\u5C0F\u7A0B\u5E8F\u7248
\u626B\u7801\u8F6C\u53D1\u8BE5\u95EE\u7B54
`);
+ } else {
+ return [
+ createVNode("div", { class: "transmit-box flexflex" }, [
+ createVNode("img", {
+ class: "cross-icon",
+ onClick: ($event) => isRef(transmitBoxState) ? transmitBoxState.value = false : transmitBoxState = false,
+ src: _imports_1$1
+ }, null, 8, ["onClick"]),
+ createVNode("div", { class: "transmit-left transmit-web" }, [
+ createVNode("div", { class: "transmit-title" }, "\u8F6C\u53D1\u7F51\u9875\u7248"),
+ createVNode("div", { class: "transmit-content" }, [
+ createVNode("div", { class: "transmit-headline" }, toDisplayString(unref(info)["subject"]), 1),
+ createVNode("div", { class: "transmit-url" }, toDisplayString(getFullUrl()), 1)
+ ]),
+ createVNode("div", {
+ class: "transmit-web-btn flexcenter",
+ onClick: ($event) => unref(copyText)(`${unref(info)["subject"]} + ${getFullUrl()}`)
+ }, "\u590D\u5236\u94FE\u63A5", 8, ["onClick"])
+ ]),
+ createVNode("div", { class: "transmit-right transmit-mini" }, [
+ createVNode("div", { class: "transmit-title" }, "\u8F6C\u53D1\u5C0F\u7A0B\u5E8F\u7248"),
+ createVNode("div", { class: "transmit-content flexcenter" }, [
+ createVNode("img", {
+ class: "transmit-mini-img",
+ src: unref(qrcode)
+ }, null, 8, ["src"]),
+ createVNode("div", { class: "flexcenter" }, [
+ createVNode("img", {
+ class: "give-sweep",
+ src: _imports_15
+ }),
+ createTextVNode(" \u626B\u7801\u8F6C\u53D1\u8BE5\u95EE\u7B54 ")
+ ])
+ ])
+ ])
+ ])
+ ];
+ }
+ }),
+ _: 1
+ }, _parent));
+ _push(`
\u624B\u673A\u67E5\u770B\u8BE5\u6295\u7968
`);
+ _push(ssrRenderComponent(_component_el_popover, {
+ placement: "bottom",
+ width: "160px",
+ trigger: "hover",
+ visible: unref(floorRightState),
+ "onUpdate:visible": ($event) => isRef(floorRightState) ? floorRightState.value = $event : floorRightState = $event,
+ "popper-style": "padding: 24px;border-radius: 18px;"
+ }, {
+ reference: withCtx((_, _push2, _parent2, _scopeId) => {
+ if (_push2) {
+ _push2(`
`);
+ } else {
+ return [
+ createVNode("div", { class: "QR-code-ball flexcenter" }, [
+ createVNode("img", {
+ class: "",
+ src: _imports_17
+ })
+ ])
+ ];
+ }
+ }),
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
+ if (_push2) {
+ _push2(`
`);
+ } else {
+ return [
+ createVNode("img", {
+ class: "examine-code",
+ src: unref(qrcode)
+ }, null, 8, ["src"])
+ ];
+ }
+ }),
+ _: 1
+ }, _parent));
+ _push(`
`);
+ if (unref(reportAlertShow)) {
+ _push(ssrRenderComponent(_component_Report, { reportToken: unref(reportToken) }, null, _parent));
+ } else {
+ _push(``);
+ }
+ _push(`
`);
+ };
+ }
+};
+const _sfc_setup = _sfc_main.setup;
+_sfc_main.setup = (props, ctx) => {
+ const ssrContext = useSSRContext();
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/details/[id].vue");
+ return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
+};
+const _id_ = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-6ceb0f7f"]]);
+
+export { _id_ as default };
+//# sourceMappingURL=_id_-8ab4d5f6.mjs.map
diff --git a/.output/server/chunks/app/_nuxt/_id_-8ab4d5f6.mjs.map b/.output/server/chunks/app/_nuxt/_id_-8ab4d5f6.mjs.map
new file mode 100644
index 0000000..21ee1a5
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/_id_-8ab4d5f6.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"_id_-8ab4d5f6.mjs","sources":["../../../../../.nuxt/dist/server/_nuxt/_id_-8ab4d5f6.js"],"sourcesContent":null,"names":["_export_sfc","__buildAssetsURL"],"mappings":"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"}
\ No newline at end of file
diff --git a/.output/server/chunks/app/_nuxt/_id_-styles.07a32688.mjs b/.output/server/chunks/app/_nuxt/_id_-styles.07a32688.mjs
new file mode 100644
index 0000000..084484d
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/_id_-styles.07a32688.mjs
@@ -0,0 +1,12 @@
+const Report_vue_vue_type_style_index_0_scoped_d48d8915_lang = '.alert-form[data-v-d48d8915]{background-color:rgba(0,0,0,.7);display:block;height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:2100}.alert-form .reports[data-v-d48d8915]{height:440px}.alert-form .reports .radio-area[data-v-d48d8915]{margin-bottom:40px}.alert-form .reports .radio-area .radio-area-item[data-v-d48d8915]{color:#606266;cursor:pointer;font-size:14px;margin-right:10px}.alert-form .reports .radio-area .radio-area-item.pitch .radio-area-frame[data-v-d48d8915]{background-color:#50e3c2;border-color:#50e3c2}.alert-form .reports .radio-area .radio-area-item.pitch .radio-area-frame[data-v-d48d8915]:after{transform:rotate(45deg) scaleY(1)}.alert-form .reports .radio-area .radio-area-item .radio-area-frame[data-v-d48d8915]{border:1px solid #dcdfe6;border-radius:2px;height:14px;margin-right:10px;position:relative;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);width:14px}.alert-form .reports .radio-area .radio-area-item .radio-area-frame[data-v-d48d8915]:after{border:1px solid #fff;border-left:0;border-top:0;box-sizing:content-box;content:"";height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);transform-origin:center;transition:transform .15s ease-in .05s;width:3px}.alert-form .el-checkbox-group[data-v-d48d8915]{font-size:0}.alert-form .comments[data-v-d48d8915]{background-color:#fff;border:none;border-radius:8px 8px 6px 6px;display:block;height:440px;left:50%;max-height:90vh;max-width:90vw;position:fixed;top:50%;transform:translate(-50%,-50%);width:740px;z-index:11}.alert-form .comments .text-box[data-v-d48d8915]{position:relative}.alert-form .comments .text-num[data-v-d48d8915]{bottom:10px;color:#999;font-size:12px;position:absolute;right:10px}.alert-form .comments .form[data-v-d48d8915]{display:block;padding:34px 30px 40px;width:100%}.alert-form .comments .form textarea[data-v-d48d8915]{background:#f7f7f7;border:1px solid #f7f7f7;border-radius:5px;display:block;font-size:14px;height:172px;line-height:22px;margin-bottom:30px;outline:none;padding:18px;resize:none;width:100%}.alert-form .head[data-v-d48d8915]{align-items:center;background:#333;border-radius:6px 6px 0 0;color:#fff;display:flex;font-size:17px;height:56px;justify-content:space-between;padding:0 18px 0 30px}.alert-form .head .close[data-v-d48d8915]{color:#b3b3b3;cursor:pointer;font-size:14px}.alert-form .footer[data-v-d48d8915]{align-items:center;display:flex;justify-content:center}.alert-form .footer button[type=button][data-v-d48d8915]{margin-right:20px}.alert-form .footer button[data-v-d48d8915]{background-color:#fff;border:1px solid #999;border-radius:5px;color:#333;cursor:pointer;font-size:14px;height:38px;outline:none;width:128px}.alert-form .footer button[type=submit][data-v-d48d8915]{color:#fff}.alert-form .el-checkbox__input.is-checked .el-checkbox__inner[data-v-d48d8915],.alert-form .el-checkbox__input.is-indeterminate .el-checkbox__inner[data-v-d48d8915],.alert-form .footer button[type=submit][data-v-d48d8915]{background-color:#50e3c2;border-color:#50e3c2}.alert-form .el-checkbox__inner[data-v-d48d8915]:hover,.alert-form .el-checkbox__input.is-focus .el-checkbox__inner[data-v-d48d8915]{border-color:#50e3c2}.alert-form .el-checkbox__input.is-checked+.el-checkbox__label[data-v-d48d8915]{color:#50e3c2}';
+
+const elPopover = ".el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);border:1px solid var(--el-popover-border-color);border-radius:var(--el-popover-border-radius);box-shadow:var(--el-box-shadow-light);box-sizing:border-box;color:var(--el-text-color-regular);font-size:var(--el-popover-font-size);line-height:1.4;min-width:150px;padding:var(--el-popover-padding);text-align:justify;word-break:break-all;z-index:var(--el-index-popper)}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);line-height:1;margin-bottom:12px}.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.el-popover.el-popper.is-dark{--el-popover-bg-color:var(--el-text-color-primary);--el-popover-border-color:var(--el-text-color-primary);--el-popover-title-text-color:var(--el-bg-color);color:var(--el-bg-color)}.el-popover.el-popper:focus,.el-popover.el-popper:focus:active{outline-width:0}";
+
+const elLoading = ":root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{background-color:var(--el-mask-color);bottom:0;left:0;margin:0;position:absolute;right:0;top:0;transition:opacity var(--el-transition-duration);z-index:2000}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{margin-top:calc((0px - var(--el-loading-spinner-size))/2);position:absolute;text-align:center;top:50%;width:100%}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);font-size:14px;margin:3px 0}.el-loading-spinner .circular{animation:loading-rotate 2s linear infinite;display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size)}.el-loading-spinner .path{stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--el-color-primary);stroke-linecap:round;animation:loading-dash 1.5s ease-in-out infinite}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@keyframes loading-rotate{to{transform:rotate(1turn)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}";
+
+const _id__vue_vue_type_style_index_0_scoped_6ceb0f7f_lang = '.content[data-v-6ceb0f7f]{background:#fff;border-radius:15px;margin:0 auto 60px;width:1200px}.content .left[data-v-6ceb0f7f]{border-right:16px solid #f6f6f6;display:flex;flex-direction:column;height:calc(100vh - 70px);overflow:auto;padding-top:30px;width:376px}.content .left .school-box[data-v-6ceb0f7f]{flex-direction:column;margin-bottom:40px;text-align:center}.content .left .school-box .school-box-icon[data-v-6ceb0f7f]{height:52px}.content .left .school-box .school-box-icon .school-icon[data-v-6ceb0f7f]{height:40px;margin-bottom:12px;width:40px}.content .left .school-box .school-name[data-v-6ceb0f7f]{color:#000;font-size:15px;font-weight:650;height:28px;margin-bottom:7px}.content .left .school-box .school-en-name[data-v-6ceb0f7f]{color:#555;font-size:13px;height:18px}.content .left .mj-total[data-v-6ceb0f7f]{color:#7f7f7f;font-size:13px;line-height:22px;margin-bottom:20px;padding:0 30px}.content .left .mj-total .value[data-v-6ceb0f7f]{color:#000;font-weight:650;margin:0 5px}.content .left .mj-list[data-v-6ceb0f7f]{flex:1;margin-right:9px;overflow:auto;padding:0 25px 15px 30px}.content .left .mj-list[data-v-6ceb0f7f]::-webkit-scrollbar{width:6px!important}.content .left .mj-list .mj-item[data-v-6ceb0f7f]{cursor:pointer;flex-direction:column;margin-bottom:15px;padding:14px 12px;position:relative;z-index:1}.content .left .mj-list .mj-item.pitch .item-bj[data-v-6ceb0f7f]{display:block}.content .left .mj-list .mj-item.pitch .info-list .info-item .info-name[data-v-6ceb0f7f],.content .left .mj-list .mj-item.pitch .info-list .info-item .info-value[data-v-6ceb0f7f],.content .left .mj-list .mj-item.pitch .mj-header .time[data-v-6ceb0f7f],.content .left .mj-list .mj-item.pitch .mj-header .user-name[data-v-6ceb0f7f]{color:#fff}.content .left .mj-list .mj-item .item-bj[data-v-6ceb0f7f]{display:none;height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.content .left .mj-list .mj-item .mj-header[data-v-6ceb0f7f]{font-size:12px;margin-bottom:12px}.content .left .mj-list .mj-item .mj-header .mj-avatar[data-v-6ceb0f7f]{border-radius:50%;height:20px;margin-right:10px;width:20px}.content .left .mj-list .mj-item .mj-header .user-name[data-v-6ceb0f7f]{color:#555;margin-right:10px}.content .left .mj-list .mj-item .mj-header .time[data-v-6ceb0f7f]{color:#aaa}.content .left .mj-list .mj-item .info-list[data-v-6ceb0f7f]{flex-direction:column}.content .left .mj-list .mj-item .info-list .info-item[data-v-6ceb0f7f]{line-height:20px}.content .left .mj-list .mj-item .info-list .info-item[data-v-6ceb0f7f]:not(:last-of-type){margin-bottom:8px}.content .left .mj-list .mj-item .info-list .info-item .info-name[data-v-6ceb0f7f]{color:#7f7f7f;font-size:13px;margin-right:10px}.content .left .mj-list .mj-item .info-list .info-item .info-value[data-v-6ceb0f7f]{color:#333;font-size:13px}.content .right[data-v-6ceb0f7f]{-ms-overflow-style:none;overflow:auto;padding:5px 0;position:relative;scrollbar-width:none}.content .right[data-v-6ceb0f7f]::-webkit-scrollbar{width:0!important}.content .right .header[data-v-6ceb0f7f]{border-bottom:1px solid #ebebeb;padding:30px 45px 25px}.content .right .header .titletitle[data-v-6ceb0f7f]{color:#000;font-size:24px;font-weight:650;margin-bottom:15px}.content .right .header .mj-header-left[data-v-6ceb0f7f]{position:relative}.content .right .header .mj-header[data-v-6ceb0f7f]{font-size:13px;justify-content:space-between;line-height:22px}.content .right .header .mj-header .mj-avatar[data-v-6ceb0f7f]{border-radius:50%;height:24px;margin-right:10px;width:24px}.content .right .header .mj-header .user-name[data-v-6ceb0f7f]{color:#333;margin-right:10px}.content .right .header .mj-header .time[data-v-6ceb0f7f]{color:#aaa}.content .right .header .mj-header .mj-header-right[data-v-6ceb0f7f]{color:#aaa;font-size:12px}.content .right .header .mj-header .mj-header-right .eye-icon[data-v-6ceb0f7f]{height:8px;margin-right:5px;width:13px}.content .right .details-box[data-v-6ceb0f7f]{border-bottom:1px solid #ebebeb;padding-top:41px}.content .right .details-box .details-item[data-v-6ceb0f7f]{margin-bottom:40px}.content .right .details-box .details-item .details-top[data-v-6ceb0f7f]{color:#000;font-size:14px;font-weight:650;margin-bottom:21px;padding-left:60px;position:relative}.content .right .details-box .details-item .details-top[data-v-6ceb0f7f]:after{background-color:#62b1ff;border-radius:3px;content:"";height:10px;left:44px;position:absolute;top:5px;width:6px}.content .right .details-box .details-item .details-list[data-v-6ceb0f7f]{background:inherit;background-color:#f6f6f6;border-radius:10px;font-size:14px;margin-left:60px;padding:20px;width:733px}.content .right .details-box .details-item .details-list .details-list-item[data-v-6ceb0f7f]:not(:last-of-type){margin-bottom:20px}.content .right .details-box .details-item .details-list .details-list-item .details-name[data-v-6ceb0f7f]{color:#555;margin-right:30px}.content .right .details-box .details-item .details-list .details-list-item .details-value[data-v-6ceb0f7f]{word-wrap:break-word;color:#000;white-space:break-spaces}.content .right .details-box .details-item .details-list .details-list-item .details-value.date[data-v-6ceb0f7f]{color:#000;font-family:Arial-Black,Arial Black,sans-serif;font-size:16px;font-style:normal;font-weight:900}.content .right .details-box .details-item .details-list .details-list-item .details-value.describe[data-v-6ceb0f7f]{font-size:15px;line-height:30px;position:relative;width:693px}.content .right .details-box .details-item .details-list .details-list-item .details-value.describe .unlock-mask[data-v-6ceb0f7f]{display:none}.content .right .details-box .details-item .details-list .details-list-item .details-value.describe.unlock-unlock[data-v-6ceb0f7f]{cursor:pointer;height:244px;overflow:hidden}.content .right .details-box .details-item .details-list .details-list-item .details-value.describe.unlock-unlock .unlock-mask[data-v-6ceb0f7f]{align-items:center;background:linear-gradient(0deg,#f6f6f6 82%,transparent);color:#000;display:flex;flex-direction:column;font-size:14px;height:100%;justify-content:flex-end;left:0;line-height:normal;padding-bottom:38px;position:absolute;top:0;width:100%}.content .right .details-box .details-item .details-list .details-list-item .details-value.describe.unlock-unlock .unlock-mask>div[data-v-6ceb0f7f]{margin-top:7px}.content .right .details-box .details-item .details-list .details-list-item .details-value.describe.unlock-unlock .unlock-mask .emphasis[data-v-6ceb0f7f]{color:#fa6b11;font-weight:650}.content .right .comment-box[data-v-6ceb0f7f]{padding-left:45px;padding-top:40px}.content .right .comment-box .comment-title[data-v-6ceb0f7f]{color:#000;font-size:16px;font-weight:650;line-height:20px;margin-bottom:16px}.content .right .comment-box .comment-title .value[data-v-6ceb0f7f]{color:#555;font-weight:400;margin-left:5px}.content .right .comment-box .post-comment[data-v-6ceb0f7f]{background-color:#fff;border:1px solid #d7d7d7;border-radius:6px;height:60px;margin-bottom:30px;width:749px}.content .right .comment-box .post-comment .post-input[data-v-6ceb0f7f]{-ms-overflow-style:none;background-color:transparent;border:none;font-size:14px;height:100%;outline:none;outline-color:#62b1ff;padding:10px;resize:none;scrollbar-width:none}.content .right .comment-box .post-comment .post-input[data-v-6ceb0f7f]::-moz-placeholder{color:#aaa}.content .right .comment-box .post-comment .post-input[data-v-6ceb0f7f]::placeholder{color:#aaa}.content .right .comment-box .post-comment .post-input[data-v-6ceb0f7f]::-webkit-scrollbar{width:0!important}.content .right .comment-box .post-comment .post-ok[data-v-6ceb0f7f]{background-color:#62b1ff;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;height:60px;width:60px}.content .right .comment-box .empty-box[data-v-6ceb0f7f]{padding:80px 0 110px}.content .right .comment-box .comment-list[data-v-6ceb0f7f]{margin-bottom:78px}.content .right .comment-box .comment-list .comment-item[data-v-6ceb0f7f]{padding-right:30px}.content .right .comment-box .comment-list .comment-item:not(:first-of-type) .comment-avatar[data-v-6ceb0f7f]{margin-top:10px}.content .right .comment-box .comment-list .comment-item:not(:first-of-type) .comment-header[data-v-6ceb0f7f]{border-top:1px dotted #d7d7d7;padding-top:10px}.content .right .comment-box .comment-list .comment-item .comment-avatar[data-v-6ceb0f7f]{border-radius:50%;height:20px;margin-right:10px;width:20px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header[data-v-6ceb0f7f]{display:flex;justify-content:space-between;margin-bottom:10px;padding-right:30px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-left[data-v-6ceb0f7f]{font-size:13px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-left .comments-avatar[data-v-6ceb0f7f]{border-radius:50%;height:20px;margin-right:10px;width:20px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-left .comments-username[data-v-6ceb0f7f]{color:#555;margin-right:10px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-left .comments-time[data-v-6ceb0f7f]{color:#aaa;margin-right:10px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-left .comments-identity[data-v-6ceb0f7f]{background-color:#f0f2f5;border:1px solid #d7d7d7;border-radius:5px;color:#7f7f7f;font-size:12px;height:20px;padding:0 3px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .menu-box[data-v-6ceb0f7f]{position:relative}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .menu-box:hover .report-box[data-v-6ceb0f7f]{display:flex}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .menu-box .menu-icon[data-v-6ceb0f7f]{cursor:pointer;height:14px;width:14px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .menu-box .report-box[data-v-6ceb0f7f]{background-color:#f6f6f6;border:1px solid #d7d7d7;border-radius:5px;color:#7f7f7f;cursor:pointer;display:none;font-size:12px;height:24px;position:absolute;right:0;top:24px;width:60px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .menu-box .report-box[data-v-6ceb0f7f]:after{content:"";height:36px;position:absolute;right:0;top:-14px;width:58px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .comment-icon[data-v-6ceb0f7f]{cursor:pointer;height:13px;margin-left:30px;width:14px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .like-box[data-v-6ceb0f7f]{color:#aaa;cursor:pointer;font-size:12px;margin-left:30px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .like-box .like-icon[data-v-6ceb0f7f]{height:14px;width:14px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-header .comment-header-right .like-box .like-quantity[data-v-6ceb0f7f]{margin-left:6px}.content .right .comment-box .comment-list .comment-item .comment-content .comment-text[data-v-6ceb0f7f]{color:#333;font-size:14px;line-height:22px;margin-bottom:10px;min-height:22px;word-break:break-all}.content .right .comment-box .comment-list .comment-item .comment-content .comment-text .comments-reply[data-v-6ceb0f7f]{color:#92a1bf;display:inline}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box[data-v-6ceb0f7f]{margin-bottom:10px;margin-top:13px}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box .comments-input[data-v-6ceb0f7f]{border:1px solid #d7d7d7;border-radius:8px;flex:1;height:60px;margin-right:16px;position:relative;z-index:1}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box .comments-input[data-v-6ceb0f7f]:after{background-color:#d7d7d7;content:"";display:block;height:20px;left:21px;position:absolute;top:-2px;transform:rotate(45deg);width:20px;z-index:-1}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box .comments-input textarea[data-v-6ceb0f7f]{border:none;border-radius:7px 0 0 7px;outline:none;padding:11px 16px;resize:none}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box .comments-input .comments-btn[data-v-6ceb0f7f]{background-color:#62b1ff;border-radius:0 7px 7px 0;color:#fff;cursor:pointer;font-size:14px;height:58px;width:58px}.content .right .comment-box .comment-list .comment-item .comment-content .comments-input-box .forkfork[data-v-6ceb0f7f]{cursor:pointer;height:12px;width:12px}.content .right .comment-box .comment-list .comment-item .child-comments .comment-avatar[data-v-6ceb0f7f]{margin-top:10px}.content .right .comment-box .comment-list .comment-item .child-comments .comment-header[data-v-6ceb0f7f]{border-top:1px dotted #d7d7d7;padding-top:10px}.content .right .comment-box .comment-list .comment-item .child-comments .comment-item[data-v-6ceb0f7f]{padding-right:0}.content .right .comment-box .comment-list .comment-item .comments-also[data-v-6ceb0f7f]{border-top:1px dotted #d7d7d7;color:#62b1ff;cursor:pointer;font-size:13px;height:46px;line-height:22px;margin-left:30px}.content .right .comment-box .comment-list .comment-item .comments-also .also-icon[data-v-6ceb0f7f]{height:10px;margin-left:8px;width:10px}.content .right .comment-box .comment-end[data-v-6ceb0f7f]{color:#d7d7d7;font-size:12px;margin-bottom:158px;text-align:center}.content .floor-area[data-v-6ceb0f7f]{background-color:#fff;bottom:0;box-shadow:0 -1px 2px rgba(0,0,0,.192);height:70px;left:0;min-width:1200px;position:fixed;width:100vw;z-index:1}.content .floor-area .floor-content[data-v-6ceb0f7f]{display:flex;height:100%;justify-content:space-between;margin:0 auto;padding:0 30px;width:1200px}.content .floor-area .floor-content .floor-left .item[data-v-6ceb0f7f]{color:#aaa;cursor:pointer;font-size:13px;margin-right:50px}.content .floor-area .floor-content .floor-left .item .icon[data-v-6ceb0f7f]{margin-right:5px;width:16px}.content .floor-area .floor-content .floor-left .item.operate-item[data-v-6ceb0f7f]{display:flex;justify-content:center;position:relative}.content .floor-area .floor-content .floor-right[data-v-6ceb0f7f]{color:#7f7f7f;cursor:pointer;font-size:13px}.content .floor-area .floor-content .floor-right .arrows-icon[data-v-6ceb0f7f]{height:12px;margin:0 10px;width:12px}.content .floor-area .floor-content .floor-right .QR-code-ball[data-v-6ceb0f7f]{background-color:#f6f6f6;border-radius:20px;cursor:pointer;height:40px;width:40px}.transmit-box[data-v-6ceb0f7f]{border-radius:10px;cursor:auto;justify-content:space-between;padding:40px 35px 42px;width:628px}.transmit-box .cross-icon[data-v-6ceb0f7f]{cursor:pointer;height:22px;padding:6px;position:absolute;right:6px;top:6px;width:22px}.transmit-box .transmit-title[data-v-6ceb0f7f]{color:#000;font-size:16px;font-weight:650;line-height:24px;margin-bottom:24px}.transmit-box .transmit-content[data-v-6ceb0f7f]{border:1px solid #f2f2f2;border-radius:16px}.transmit-box .transmit-web .transmit-content[data-v-6ceb0f7f]{font-size:14px;line-height:24px;margin-bottom:32px;padding:14px 16px;width:300px}.transmit-box .transmit-web .transmit-content .transmit-headline[data-v-6ceb0f7f]{color:#333}.transmit-box .transmit-web .transmit-content .transmit-url[data-v-6ceb0f7f]{word-wrap:break-word;color:#aaa}.transmit-box .transmit-web .transmit-web-btn[data-v-6ceb0f7f]{background-color:#72db86;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;height:38px;width:120px}.transmit-box .transmit-mini .transmit-content[data-v-6ceb0f7f]{color:#555;flex-direction:column;font-size:13px;padding:22px 44px}.transmit-box .transmit-mini .transmit-content .transmit-mini-img[data-v-6ceb0f7f]{height:90px;margin-bottom:21px;width:90px}.transmit-box .transmit-mini .transmit-content .give-sweep[data-v-6ceb0f7f]{height:12px;margin-right:8px;width:12px}.examine-code[data-v-6ceb0f7f]{height:113px;width:113px}';
+
+const _id_Styles_07a32688 = [Report_vue_vue_type_style_index_0_scoped_d48d8915_lang, elPopover, elLoading, _id__vue_vue_type_style_index_0_scoped_6ceb0f7f_lang, _id__vue_vue_type_style_index_0_scoped_6ceb0f7f_lang];
+
+export { _id_Styles_07a32688 as default };
+//# sourceMappingURL=_id_-styles.07a32688.mjs.map
diff --git a/.output/server/chunks/app/_nuxt/_id_-styles.07a32688.mjs.map b/.output/server/chunks/app/_nuxt/_id_-styles.07a32688.mjs.map
new file mode 100644
index 0000000..070e803
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/_id_-styles.07a32688.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"_id_-styles.07a32688.mjs","sources":["../../../../../.nuxt/dist/server/_nuxt/_id_-styles-1.mjs-0837f3ae.js","../../../../../.nuxt/dist/server/_nuxt/_id_-styles-2.mjs-16c58bd3.js","../../../../../.nuxt/dist/server/_nuxt/_id_-styles-3.mjs-d41f9909.js","../../../../../.nuxt/dist/server/_nuxt/_id_-styles-4.mjs-302055e1.js","../../../../../.nuxt/dist/server/_nuxt/_id_-styles.07a32688.mjs"],"sourcesContent":null,"names":["style_0","style_1","style_2","style_3","style_4"],"mappings":"AAAA,MAAM,sDAAyD,GAAA,wwGAAA;;ACA/D,MAAM,SAAY,GAAA,y1CAAA;;ACAlB,MAAM,SAAY,GAAA,4kDAAA;;ACAlB,MAAM,oDAAuD,GAAA,wigBAAA;;ACK7D,4BAAe,CAACA,sDAAO,EAAEC,SAAO,EAAEC,SAAO,EAAEC,oDAAO,EAAEC,oDAAO;;;;"}
\ No newline at end of file
diff --git a/.output/server/chunks/app/_nuxt/_plugin-vue_export-helper-e3874580.mjs b/.output/server/chunks/app/_nuxt/_plugin-vue_export-helper-e3874580.mjs
new file mode 100644
index 0000000..dc675d4
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/_plugin-vue_export-helper-e3874580.mjs
@@ -0,0 +1,41 @@
+import { ref, watchEffect, watch, getCurrentInstance } from 'vue';
+import { l as injectHead, r as resolveUnrefHeadInput } from '../server.mjs';
+import { composableNames } from '@unhead/shared';
+
+function useHead(input, options = {}) {
+ const head = options.head || injectHead();
+ if (head) {
+ if (!head.ssr)
+ return clientUseHead(head, input, options);
+ return head.push(input, options);
+ }
+}
+function clientUseHead(head, input, options = {}) {
+ const deactivated = ref(false);
+ const resolvedInput = ref({});
+ watchEffect(() => {
+ resolvedInput.value = deactivated.value ? {} : resolveUnrefHeadInput(input);
+ });
+ const entry = head.push(resolvedInput.value, options);
+ watch(resolvedInput, (e) => {
+ entry.patch(e);
+ });
+ getCurrentInstance();
+ return entry;
+}
+const coreComposableNames = [
+ "injectHead"
+];
+({
+ "@unhead/vue": [...coreComposableNames, ...composableNames]
+});
+const _export_sfc = (sfc, props) => {
+ const target = sfc.__vccOpts || sfc;
+ for (const [key, val] of props) {
+ target[key] = val;
+ }
+ return target;
+};
+
+export { _export_sfc as _, useHead as u };
+//# sourceMappingURL=_plugin-vue_export-helper-e3874580.mjs.map
diff --git a/.output/server/chunks/app/_nuxt/_plugin-vue_export-helper-e3874580.mjs.map b/.output/server/chunks/app/_nuxt/_plugin-vue_export-helper-e3874580.mjs.map
new file mode 100644
index 0000000..96f3a6c
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/_plugin-vue_export-helper-e3874580.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"_plugin-vue_export-helper-e3874580.mjs","sources":["../../../../../.nuxt/dist/server/_nuxt/_plugin-vue_export-helper-e3874580.js"],"sourcesContent":null,"names":[],"mappings":";;;;AAGA,SAAS,OAAQ,CAAA,KAAA,EAAO,OAAU,GAAA,EAAI,EAAA;AACpC,EAAM,MAAA,IAAA,GAAO,OAAQ,CAAA,IAAA,IAAQ,UAAW,EAAA,CAAA;AACxC,EAAA,IAAI,IAAM,EAAA;AACR,IAAA,IAAI,CAAC,IAAK,CAAA,GAAA;AACR,MAAO,OAAA,aAAA,CAAc,IAAM,EAAA,KAAA,EAAO,OAAO,CAAA,CAAA;AAC3C,IAAO,OAAA,IAAA,CAAK,IAAK,CAAA,KAAA,EAAO,OAAO,CAAA,CAAA;AAAA,GACjC;AACF,CAAA;AACA,SAAS,aAAc,CAAA,IAAA,EAAM,KAAO,EAAA,OAAA,GAAU,EAAI,EAAA;AAChD,EAAM,MAAA,WAAA,GAAc,IAAI,KAAK,CAAA,CAAA;AAC7B,EAAM,MAAA,aAAA,GAAgB,GAAI,CAAA,EAAE,CAAA,CAAA;AAC5B,EAAA,WAAA,CAAY,MAAM;AAChB,IAAA,aAAA,CAAc,QAAQ,WAAY,CAAA,KAAA,GAAQ,EAAC,GAAI,sBAAsB,KAAK,CAAA,CAAA;AAAA,GAC3E,CAAA,CAAA;AACD,EAAA,MAAM,KAAQ,GAAA,IAAA,CAAK,IAAK,CAAA,aAAA,CAAc,OAAO,OAAO,CAAA,CAAA;AACpD,EAAM,KAAA,CAAA,aAAA,EAAe,CAAC,CAAM,KAAA;AAC1B,IAAA,KAAA,CAAM,MAAM,CAAC,CAAA,CAAA;AAAA,GACd,CAAA,CAAA;AACD,EAAmB,kBAAA,EAAA,CAAA;AACnB,EAAO,OAAA,KAAA,CAAA;AACT,CAAA;AACA,MAAM,mBAAsB,GAAA;AAAA,EAC1B,YAAA;AACF,CAAA,CAAA;AAAA,CACC;AAAA,EACC,aAAe,EAAA,CAAC,GAAG,mBAAA,EAAqB,GAAG,eAAe,CAAA;AAC5D,CAAA,EAAA;AACM,MAAA,WAAA,GAAc,CAAC,GAAA,EAAK,KAAU,KAAA;AAClC,EAAM,MAAA,MAAA,GAAS,IAAI,SAAa,IAAA,GAAA,CAAA;AAChC,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,GAAG,CAAA,IAAK,KAAO,EAAA;AAC9B,IAAA,MAAA,CAAO,GAAG,CAAI,GAAA,GAAA,CAAA;AAAA,GAChB;AACA,EAAO,OAAA,MAAA,CAAA;AACT;;;;"}
\ No newline at end of file
diff --git a/.output/server/chunks/app/_nuxt/cross-icon-c0ac5209.mjs b/.output/server/chunks/app/_nuxt/cross-icon-c0ac5209.mjs
new file mode 100644
index 0000000..07273b9
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/cross-icon-c0ac5209.mjs
@@ -0,0 +1,1406 @@
+import { inject, ref, computed, defineComponent, watch, renderSlot, openBlock, createElementBlock, mergeProps, unref, provide, createElementVNode, isRef, getCurrentInstance, warn } from 'vue';
+import { d as useNamespace, k as namespaceContextKey, g as defaultNamespace } from '../server.mjs';
+import { fromPairs, isNil, get as get$1 } from 'lodash-unified';
+import { isString, NOOP, isArray, isObject, hasOwn, camelize } from '@vue/shared';
+import { isClient } from '@vueuse/core';
+import { u as useHead } from './_plugin-vue_export-helper-e3874580.mjs';
+import axios from 'axios';
+import QS from 'qs';
+
+const isUndefined = (val) => val === void 0;
+const isBoolean = (val) => typeof val === "boolean";
+const isNumber = (val) => typeof val === "number";
+const isEmpty = (val) => !val && val !== 0 || isArray(val) && val.length === 0 || isObject(val) && !Object.keys(val).length;
+const isElement = (e) => {
+ if (typeof Element === "undefined")
+ return false;
+ return e instanceof Element;
+};
+const isStringNumber = (val) => {
+ if (!isString(val)) {
+ return false;
+ }
+ return !Number.isNaN(Number(val));
+};
+const keysOf = (arr) => Object.keys(arr);
+const classNameToArray = (cls = "") => cls.split(" ").filter((item) => !!item.trim());
+const hasClass = (el, cls) => {
+ if (!el || !cls)
+ return false;
+ if (cls.includes(" "))
+ throw new Error("className should not contain space.");
+ return el.classList.contains(cls);
+};
+const addClass = (el, cls) => {
+ if (!el || !cls.trim())
+ return;
+ el.classList.add(...classNameToArray(cls));
+};
+const removeClass = (el, cls) => {
+ if (!el || !cls.trim())
+ return;
+ el.classList.remove(...classNameToArray(cls));
+};
+const getStyle = (element, styleName) => {
+ var _a;
+ if (!isClient || !element || !styleName)
+ return "";
+ let key = camelize(styleName);
+ if (key === "float")
+ key = "cssFloat";
+ try {
+ const style = element.style[key];
+ if (style)
+ return style;
+ const computed2 = (_a = document.defaultView) == null ? void 0 : _a.getComputedStyle(element, "");
+ return computed2 ? computed2[key] : "";
+ } catch (e) {
+ return element.style[key];
+ }
+};
+function addUnit(value, defaultUnit = "px") {
+ if (!value)
+ return "";
+ if (isNumber(value) || isStringNumber(value)) {
+ return `${value}${defaultUnit}`;
+ } else if (isString(value)) {
+ return value;
+ }
+}
+/*! Element Plus Icons Vue v2.3.1 */
+var arrow_down_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
+ name: "ArrowDown",
+ __name: "arrow-down",
+ setup(__props) {
+ return (_ctx, _cache) => (openBlock(), createElementBlock("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ viewBox: "0 0 1024 1024"
+ }, [
+ createElementVNode("path", {
+ fill: "currentColor",
+ d: "M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"
+ })
+ ]));
+ }
+});
+var arrow_down_default = arrow_down_vue_vue_type_script_setup_true_lang_default;
+var arrow_left_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
+ name: "ArrowLeft",
+ __name: "arrow-left",
+ setup(__props) {
+ return (_ctx, _cache) => (openBlock(), createElementBlock("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ viewBox: "0 0 1024 1024"
+ }, [
+ createElementVNode("path", {
+ fill: "currentColor",
+ d: "M609.408 149.376 277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.592 30.592 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.592 30.592 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0z"
+ })
+ ]));
+ }
+});
+var arrow_left_default = arrow_left_vue_vue_type_script_setup_true_lang_default;
+var arrow_right_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
+ name: "ArrowRight",
+ __name: "arrow-right",
+ setup(__props) {
+ return (_ctx, _cache) => (openBlock(), createElementBlock("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ viewBox: "0 0 1024 1024"
+ }, [
+ createElementVNode("path", {
+ fill: "currentColor",
+ d: "M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"
+ })
+ ]));
+ }
+});
+var arrow_right_default = arrow_right_vue_vue_type_script_setup_true_lang_default;
+var arrow_up_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
+ name: "ArrowUp",
+ __name: "arrow-up",
+ setup(__props) {
+ return (_ctx, _cache) => (openBlock(), createElementBlock("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ viewBox: "0 0 1024 1024"
+ }, [
+ createElementVNode("path", {
+ fill: "currentColor",
+ d: "m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0"
+ })
+ ]));
+ }
+});
+var arrow_up_default = arrow_up_vue_vue_type_script_setup_true_lang_default;
+var calendar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
+ name: "Calendar",
+ __name: "calendar",
+ setup(__props) {
+ return (_ctx, _cache) => (openBlock(), createElementBlock("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ viewBox: "0 0 1024 1024"
+ }, [
+ createElementVNode("path", {
+ fill: "currentColor",
+ d: "M128 384v512h768V192H768v32a32 32 0 1 1-64 0v-32H320v32a32 32 0 0 1-64 0v-32H128v128h768v64zm192-256h384V96a32 32 0 1 1 64 0v32h160a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h160V96a32 32 0 0 1 64 0zm-32 384h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m192-192h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m192-192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64"
+ })
+ ]));
+ }
+});
+var calendar_default = calendar_vue_vue_type_script_setup_true_lang_default;
+var circle_check_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
+ name: "CircleCheck",
+ __name: "circle-check",
+ setup(__props) {
+ return (_ctx, _cache) => (openBlock(), createElementBlock("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ viewBox: "0 0 1024 1024"
+ }, [
+ createElementVNode("path", {
+ fill: "currentColor",
+ d: "M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"
+ }),
+ createElementVNode("path", {
+ fill: "currentColor",
+ d: "M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752l265.344-265.408z"
+ })
+ ]));
+ }
+});
+var circle_check_default = circle_check_vue_vue_type_script_setup_true_lang_default;
+var circle_close_filled_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
+ name: "CircleCloseFilled",
+ __name: "circle-close-filled",
+ setup(__props) {
+ return (_ctx, _cache) => (openBlock(), createElementBlock("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ viewBox: "0 0 1024 1024"
+ }, [
+ createElementVNode("path", {
+ fill: "currentColor",
+ d: "M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"
+ })
+ ]));
+ }
+});
+var circle_close_filled_default = circle_close_filled_vue_vue_type_script_setup_true_lang_default;
+var circle_close_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
+ name: "CircleClose",
+ __name: "circle-close",
+ setup(__props) {
+ return (_ctx, _cache) => (openBlock(), createElementBlock("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ viewBox: "0 0 1024 1024"
+ }, [
+ createElementVNode("path", {
+ fill: "currentColor",
+ d: "m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z"
+ }),
+ createElementVNode("path", {
+ fill: "currentColor",
+ d: "M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"
+ })
+ ]));
+ }
+});
+var circle_close_default = circle_close_vue_vue_type_script_setup_true_lang_default;
+var clock_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
+ name: "Clock",
+ __name: "clock",
+ setup(__props) {
+ return (_ctx, _cache) => (openBlock(), createElementBlock("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ viewBox: "0 0 1024 1024"
+ }, [
+ createElementVNode("path", {
+ fill: "currentColor",
+ d: "M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"
+ }),
+ createElementVNode("path", {
+ fill: "currentColor",
+ d: "M480 256a32 32 0 0 1 32 32v256a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32"
+ }),
+ createElementVNode("path", {
+ fill: "currentColor",
+ d: "M480 512h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32"
+ })
+ ]));
+ }
+});
+var clock_default = clock_vue_vue_type_script_setup_true_lang_default;
+var close_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
+ name: "Close",
+ __name: "close",
+ setup(__props) {
+ return (_ctx, _cache) => (openBlock(), createElementBlock("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ viewBox: "0 0 1024 1024"
+ }, [
+ createElementVNode("path", {
+ fill: "currentColor",
+ d: "M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"
+ })
+ ]));
+ }
+});
+var close_default = close_vue_vue_type_script_setup_true_lang_default;
+var d_arrow_left_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
+ name: "DArrowLeft",
+ __name: "d-arrow-left",
+ setup(__props) {
+ return (_ctx, _cache) => (openBlock(), createElementBlock("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ viewBox: "0 0 1024 1024"
+ }, [
+ createElementVNode("path", {
+ fill: "currentColor",
+ d: "M529.408 149.376a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L259.264 511.936l311.872 319.936a30.592 30.592 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L197.76 534.272a32 32 0 0 1 0-44.672l331.648-340.224zm256 0a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L515.264 511.936l311.872 319.936a30.592 30.592 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L453.76 534.272a32 32 0 0 1 0-44.672l331.648-340.224z"
+ })
+ ]));
+ }
+});
+var d_arrow_left_default = d_arrow_left_vue_vue_type_script_setup_true_lang_default;
+var d_arrow_right_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
+ name: "DArrowRight",
+ __name: "d-arrow-right",
+ setup(__props) {
+ return (_ctx, _cache) => (openBlock(), createElementBlock("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ viewBox: "0 0 1024 1024"
+ }, [
+ createElementVNode("path", {
+ fill: "currentColor",
+ d: "M452.864 149.312a29.12 29.12 0 0 1 41.728.064L826.24 489.664a32 32 0 0 1 0 44.672L494.592 874.624a29.12 29.12 0 0 1-41.728 0 30.592 30.592 0 0 1 0-42.752L764.736 512 452.864 192a30.592 30.592 0 0 1 0-42.688m-256 0a29.12 29.12 0 0 1 41.728.064L570.24 489.664a32 32 0 0 1 0 44.672L238.592 874.624a29.12 29.12 0 0 1-41.728 0 30.592 30.592 0 0 1 0-42.752L508.736 512 196.864 192a30.592 30.592 0 0 1 0-42.688z"
+ })
+ ]));
+ }
+});
+var d_arrow_right_default = d_arrow_right_vue_vue_type_script_setup_true_lang_default;
+var hide_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
+ name: "Hide",
+ __name: "hide",
+ setup(__props) {
+ return (_ctx, _cache) => (openBlock(), createElementBlock("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ viewBox: "0 0 1024 1024"
+ }, [
+ createElementVNode("path", {
+ fill: "currentColor",
+ d: "M876.8 156.8c0-9.6-3.2-16-9.6-22.4-6.4-6.4-12.8-9.6-22.4-9.6-9.6 0-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176C44.8 438.4 0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4 0 9.6 3.2 16 9.6 22.4 6.4 6.4 12.8 9.6 22.4 9.6 9.6 0 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4Zm-646.4 528c-76.8-70.4-128-128-153.6-172.8 28.8-48 80-105.6 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4Zm140.8-96c-12.8-22.4-19.2-48-19.2-76.8 0-44.8 16-83.2 48-112 32-28.8 67.2-48 112-48 28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6-28.8 48-80 105.6-153.6 172.8-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176C979.199 585.6 1024 528 1024 512s-48.001-73.6-134.401-176Z"
+ }),
+ createElementVNode("path", {
+ fill: "currentColor",
+ d: "M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112-32 28.8-67.2 48-112 48Z"
+ })
+ ]));
+ }
+});
+var hide_default = hide_vue_vue_type_script_setup_true_lang_default;
+var info_filled_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
+ name: "InfoFilled",
+ __name: "info-filled",
+ setup(__props) {
+ return (_ctx, _cache) => (openBlock(), createElementBlock("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ viewBox: "0 0 1024 1024"
+ }, [
+ createElementVNode("path", {
+ fill: "currentColor",
+ d: "M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.992 12.992 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"
+ })
+ ]));
+ }
+});
+var info_filled_default = info_filled_vue_vue_type_script_setup_true_lang_default;
+var loading_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
+ name: "Loading",
+ __name: "loading",
+ setup(__props) {
+ return (_ctx, _cache) => (openBlock(), createElementBlock("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ viewBox: "0 0 1024 1024"
+ }, [
+ createElementVNode("path", {
+ fill: "currentColor",
+ d: "M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"
+ })
+ ]));
+ }
+});
+var loading_default = loading_vue_vue_type_script_setup_true_lang_default;
+var success_filled_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
+ name: "SuccessFilled",
+ __name: "success-filled",
+ setup(__props) {
+ return (_ctx, _cache) => (openBlock(), createElementBlock("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ viewBox: "0 0 1024 1024"
+ }, [
+ createElementVNode("path", {
+ fill: "currentColor",
+ d: "M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"
+ })
+ ]));
+ }
+});
+var success_filled_default = success_filled_vue_vue_type_script_setup_true_lang_default;
+var view_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
+ name: "View",
+ __name: "view",
+ setup(__props) {
+ return (_ctx, _cache) => (openBlock(), createElementBlock("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ viewBox: "0 0 1024 1024"
+ }, [
+ createElementVNode("path", {
+ fill: "currentColor",
+ d: "M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288zm0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.192 160.192 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160"
+ })
+ ]));
+ }
+});
+var view_default = view_vue_vue_type_script_setup_true_lang_default;
+var warning_filled_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
+ name: "WarningFilled",
+ __name: "warning-filled",
+ setup(__props) {
+ return (_ctx, _cache) => (openBlock(), createElementBlock("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ viewBox: "0 0 1024 1024"
+ }, [
+ createElementVNode("path", {
+ fill: "currentColor",
+ d: "M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"
+ })
+ ]));
+ }
+});
+var warning_filled_default = warning_filled_vue_vue_type_script_setup_true_lang_default;
+const epPropKey = "__epPropKey";
+const definePropType = (val) => val;
+const isEpProp = (val) => isObject(val) && !!val[epPropKey];
+const buildProp = (prop, key) => {
+ if (!isObject(prop) || isEpProp(prop))
+ return prop;
+ const { values, required, default: defaultValue, type, validator } = prop;
+ const _validator = values || validator ? (val) => {
+ let valid = false;
+ let allowedValues = [];
+ if (values) {
+ allowedValues = Array.from(values);
+ if (hasOwn(prop, "default")) {
+ allowedValues.push(defaultValue);
+ }
+ valid || (valid = allowedValues.includes(val));
+ }
+ if (validator)
+ valid || (valid = validator(val));
+ if (!valid && allowedValues.length > 0) {
+ const allowValuesText = [...new Set(allowedValues)].map((value) => JSON.stringify(value)).join(", ");
+ warn(`Invalid prop: validation failed${key ? ` for prop "${key}"` : ""}. Expected one of [${allowValuesText}], got value ${JSON.stringify(val)}.`);
+ }
+ return valid;
+ } : void 0;
+ const epProp = {
+ type,
+ required: !!required,
+ validator: _validator,
+ [epPropKey]: true
+ };
+ if (hasOwn(prop, "default"))
+ epProp.default = defaultValue;
+ return epProp;
+};
+const buildProps = (props) => fromPairs(Object.entries(props).map(([key, option]) => [
+ key,
+ buildProp(option, key)
+]));
+const iconPropType = definePropType([
+ String,
+ Object,
+ Function
+]);
+const CloseComponents = {
+ Close: close_default
+};
+const TypeComponents = {
+ Close: close_default,
+ SuccessFilled: success_filled_default,
+ InfoFilled: info_filled_default,
+ WarningFilled: warning_filled_default,
+ CircleCloseFilled: circle_close_filled_default
+};
+const TypeComponentsMap = {
+ success: success_filled_default,
+ warning: warning_filled_default,
+ error: circle_close_filled_default,
+ info: info_filled_default
+};
+const ValidateComponentsMap = {
+ validating: loading_default,
+ success: circle_check_default,
+ error: circle_close_default
+};
+const withInstall = (main, extra) => {
+ main.install = (app) => {
+ for (const comp of [main, ...Object.values(extra != null ? extra : {})]) {
+ app.component(comp.name, comp);
+ }
+ };
+ if (extra) {
+ for (const [key, comp] of Object.entries(extra)) {
+ main[key] = comp;
+ }
+ }
+ return main;
+};
+const withInstallFunction = (fn, name) => {
+ fn.install = (app) => {
+ fn._context = app._context;
+ app.config.globalProperties[name] = fn;
+ };
+ return fn;
+};
+const withInstallDirective = (directive, name) => {
+ directive.install = (app) => {
+ app.directive(name, directive);
+ };
+ return directive;
+};
+const withNoopInstall = (component) => {
+ component.install = NOOP;
+ return component;
+};
+const EVENT_CODE = {
+ tab: "Tab",
+ enter: "Enter",
+ space: "Space",
+ left: "ArrowLeft",
+ up: "ArrowUp",
+ right: "ArrowRight",
+ down: "ArrowDown",
+ esc: "Escape",
+ delete: "Delete",
+ backspace: "Backspace",
+ numpadEnter: "NumpadEnter",
+ pageUp: "PageUp",
+ pageDown: "PageDown",
+ home: "Home",
+ end: "End"
+};
+const UPDATE_MODEL_EVENT = "update:modelValue";
+const CHANGE_EVENT = "change";
+const INPUT_EVENT = "input";
+const componentSizes = ["", "default", "small", "large"];
+const mutable = (val) => val;
+const useDeprecated = ({ from, replacement, scope, version, ref: ref2, type = "API" }, condition) => {
+ watch(() => unref(condition), (val) => {
+ }, {
+ immediate: true
+ });
+};
+var English = {
+ name: "en",
+ el: {
+ colorpicker: {
+ confirm: "OK",
+ clear: "Clear",
+ defaultLabel: "color picker",
+ description: "current color is {color}. press enter to select a new color."
+ },
+ datepicker: {
+ now: "Now",
+ today: "Today",
+ cancel: "Cancel",
+ clear: "Clear",
+ confirm: "OK",
+ dateTablePrompt: "Use the arrow keys and enter to select the day of the month",
+ monthTablePrompt: "Use the arrow keys and enter to select the month",
+ yearTablePrompt: "Use the arrow keys and enter to select the year",
+ selectedDate: "Selected date",
+ selectDate: "Select date",
+ selectTime: "Select time",
+ startDate: "Start Date",
+ startTime: "Start Time",
+ endDate: "End Date",
+ endTime: "End Time",
+ prevYear: "Previous Year",
+ nextYear: "Next Year",
+ prevMonth: "Previous Month",
+ nextMonth: "Next Month",
+ year: "",
+ month1: "January",
+ month2: "February",
+ month3: "March",
+ month4: "April",
+ month5: "May",
+ month6: "June",
+ month7: "July",
+ month8: "August",
+ month9: "September",
+ month10: "October",
+ month11: "November",
+ month12: "December",
+ week: "week",
+ weeks: {
+ sun: "Sun",
+ mon: "Mon",
+ tue: "Tue",
+ wed: "Wed",
+ thu: "Thu",
+ fri: "Fri",
+ sat: "Sat"
+ },
+ weeksFull: {
+ sun: "Sunday",
+ mon: "Monday",
+ tue: "Tuesday",
+ wed: "Wednesday",
+ thu: "Thursday",
+ fri: "Friday",
+ sat: "Saturday"
+ },
+ months: {
+ jan: "Jan",
+ feb: "Feb",
+ mar: "Mar",
+ apr: "Apr",
+ may: "May",
+ jun: "Jun",
+ jul: "Jul",
+ aug: "Aug",
+ sep: "Sep",
+ oct: "Oct",
+ nov: "Nov",
+ dec: "Dec"
+ }
+ },
+ inputNumber: {
+ decrease: "decrease number",
+ increase: "increase number"
+ },
+ select: {
+ loading: "Loading",
+ noMatch: "No matching data",
+ noData: "No data",
+ placeholder: "Select"
+ },
+ dropdown: {
+ toggleDropdown: "Toggle Dropdown"
+ },
+ cascader: {
+ noMatch: "No matching data",
+ loading: "Loading",
+ placeholder: "Select",
+ noData: "No data"
+ },
+ pagination: {
+ goto: "Go to",
+ pagesize: "/page",
+ total: "Total {total}",
+ pageClassifier: "",
+ page: "Page",
+ prev: "Go to previous page",
+ next: "Go to next page",
+ currentPage: "page {pager}",
+ prevPages: "Previous {pager} pages",
+ nextPages: "Next {pager} pages",
+ deprecationWarning: "Deprecated usages detected, please refer to the el-pagination documentation for more details"
+ },
+ dialog: {
+ close: "Close this dialog"
+ },
+ drawer: {
+ close: "Close this dialog"
+ },
+ messagebox: {
+ title: "Message",
+ confirm: "OK",
+ cancel: "Cancel",
+ error: "Illegal input",
+ close: "Close this dialog"
+ },
+ upload: {
+ deleteTip: "press delete to remove",
+ delete: "Delete",
+ preview: "Preview",
+ continue: "Continue"
+ },
+ slider: {
+ defaultLabel: "slider between {min} and {max}",
+ defaultRangeStartLabel: "pick start value",
+ defaultRangeEndLabel: "pick end value"
+ },
+ table: {
+ emptyText: "No Data",
+ confirmFilter: "Confirm",
+ resetFilter: "Reset",
+ clearFilter: "All",
+ sumText: "Sum"
+ },
+ tree: {
+ emptyText: "No Data"
+ },
+ transfer: {
+ noMatch: "No matching data",
+ noData: "No data",
+ titles: ["List 1", "List 2"],
+ filterPlaceholder: "Enter keyword",
+ noCheckedFormat: "{total} items",
+ hasCheckedFormat: "{checked}/{total} checked"
+ },
+ image: {
+ error: "FAILED"
+ },
+ pageHeader: {
+ title: "Back"
+ },
+ popconfirm: {
+ confirmButtonText: "Yes",
+ cancelButtonText: "No"
+ }
+ }
+};
+const buildTranslator = (locale) => (path, option) => translate(path, option, unref(locale));
+const translate = (path, option, locale) => get$1(locale, path, path).replace(/\{(\w+)\}/g, (_, key) => {
+ var _a;
+ return `${(_a = option == null ? void 0 : option[key]) != null ? _a : `{${key}}`}`;
+});
+const buildLocaleContext = (locale) => {
+ const lang = computed(() => unref(locale).name);
+ const localeRef = isRef(locale) ? locale : ref(locale);
+ return {
+ lang,
+ locale: localeRef,
+ t: buildTranslator(locale)
+ };
+};
+const localeContextKey = Symbol("localeContextKey");
+const useLocale = (localeOverrides) => {
+ const locale = localeOverrides || inject(localeContextKey, ref());
+ return buildLocaleContext(computed(() => locale.value || English));
+};
+const zIndex = ref(0);
+const defaultInitialZIndex = 2e3;
+const zIndexContextKey = Symbol("zIndexContextKey");
+const useZIndex = (zIndexOverrides) => {
+ const zIndexInjection = zIndexOverrides || (getCurrentInstance() ? inject(zIndexContextKey, void 0) : void 0);
+ const initialZIndex = computed(() => {
+ const zIndexFromInjection = unref(zIndexInjection);
+ return isNumber(zIndexFromInjection) ? zIndexFromInjection : defaultInitialZIndex;
+ });
+ const currentZIndex = computed(() => initialZIndex.value + zIndex.value);
+ const nextZIndex = () => {
+ zIndex.value++;
+ return currentZIndex.value;
+ };
+ return {
+ initialZIndex,
+ currentZIndex,
+ nextZIndex
+ };
+};
+const useSizeProp = buildProp({
+ type: String,
+ values: componentSizes,
+ required: false
+});
+const SIZE_INJECTION_KEY = Symbol("size");
+const useGlobalSize = () => {
+ const injectedSize = inject(SIZE_INJECTION_KEY, {});
+ return computed(() => {
+ return unref(injectedSize.size) || "";
+ });
+};
+const configProviderContextKey = Symbol();
+const globalConfig = ref();
+function useGlobalConfig(key, defaultValue = void 0) {
+ const config = getCurrentInstance() ? inject(configProviderContextKey, globalConfig) : globalConfig;
+ if (key) {
+ return computed(() => {
+ var _a, _b;
+ return (_b = (_a = config.value) == null ? void 0 : _a[key]) != null ? _b : defaultValue;
+ });
+ } else {
+ return config;
+ }
+}
+function useGlobalComponentSettings(block, sizeFallback) {
+ const config = useGlobalConfig();
+ const ns = useNamespace(block, computed(() => {
+ var _a;
+ return ((_a = config.value) == null ? void 0 : _a.namespace) || defaultNamespace;
+ }));
+ const locale = useLocale(computed(() => {
+ var _a;
+ return (_a = config.value) == null ? void 0 : _a.locale;
+ }));
+ const zIndex2 = useZIndex(computed(() => {
+ var _a;
+ return ((_a = config.value) == null ? void 0 : _a.zIndex) || defaultInitialZIndex;
+ }));
+ const size = computed(() => {
+ var _a;
+ return unref(sizeFallback) || ((_a = config.value) == null ? void 0 : _a.size) || "";
+ });
+ provideGlobalConfig(computed(() => unref(config) || {}));
+ return {
+ ns,
+ locale,
+ zIndex: zIndex2,
+ size
+ };
+}
+const provideGlobalConfig = (config, app, global = false) => {
+ var _a;
+ const inSetup = !!getCurrentInstance();
+ const oldConfig = inSetup ? useGlobalConfig() : void 0;
+ const provideFn = (_a = app == null ? void 0 : app.provide) != null ? _a : inSetup ? provide : void 0;
+ if (!provideFn) {
+ return;
+ }
+ const context = computed(() => {
+ const cfg = unref(config);
+ if (!(oldConfig == null ? void 0 : oldConfig.value))
+ return cfg;
+ return mergeConfig(oldConfig.value, cfg);
+ });
+ provideFn(configProviderContextKey, context);
+ provideFn(localeContextKey, computed(() => context.value.locale));
+ provideFn(namespaceContextKey, computed(() => context.value.namespace));
+ provideFn(zIndexContextKey, computed(() => context.value.zIndex));
+ provideFn(SIZE_INJECTION_KEY, {
+ size: computed(() => context.value.size || "")
+ });
+ if (global || !globalConfig.value) {
+ globalConfig.value = context.value;
+ }
+ return context;
+};
+const mergeConfig = (a, b) => {
+ var _a;
+ const keys = [.../* @__PURE__ */ new Set([...keysOf(a), ...keysOf(b)])];
+ const obj = {};
+ for (const key of keys) {
+ obj[key] = (_a = b[key]) != null ? _a : a[key];
+ }
+ return obj;
+};
+const configProviderProps = buildProps({
+ a11y: {
+ type: Boolean,
+ default: true
+ },
+ locale: {
+ type: definePropType(Object)
+ },
+ size: useSizeProp,
+ button: {
+ type: definePropType(Object)
+ },
+ experimentalFeatures: {
+ type: definePropType(Object)
+ },
+ keyboardNavigation: {
+ type: Boolean,
+ default: true
+ },
+ message: {
+ type: definePropType(Object)
+ },
+ zIndex: Number,
+ namespace: {
+ type: String,
+ default: "el"
+ }
+});
+const messageConfig = {};
+const ConfigProvider = defineComponent({
+ name: "ElConfigProvider",
+ props: configProviderProps,
+ setup(props, { slots }) {
+ watch(() => props.message, (val) => {
+ Object.assign(messageConfig, val != null ? val : {});
+ }, { immediate: true, deep: true });
+ const config = provideGlobalConfig(props);
+ return () => renderSlot(slots, "default", { config: config == null ? void 0 : config.value });
+ }
+});
+var _export_sfc = (sfc, props) => {
+ const target = sfc.__vccOpts || sfc;
+ for (const [key, val] of props) {
+ target[key] = val;
+ }
+ return target;
+};
+const iconProps = buildProps({
+ size: {
+ type: definePropType([Number, String])
+ },
+ color: {
+ type: String
+ }
+});
+const __default__ = defineComponent({
+ name: "ElIcon",
+ inheritAttrs: false
+});
+const _sfc_main$1 = /* @__PURE__ */ defineComponent({
+ ...__default__,
+ props: iconProps,
+ setup(__props) {
+ const props = __props;
+ const ns = useNamespace("icon");
+ const style = computed(() => {
+ const { size, color } = props;
+ if (!size && !color)
+ return {};
+ return {
+ fontSize: isUndefined(size) ? void 0 : addUnit(size),
+ "--color": color
+ };
+ });
+ return (_ctx, _cache) => {
+ return openBlock(), createElementBlock("i", mergeProps({
+ class: unref(ns).b(),
+ style: unref(style)
+ }, _ctx.$attrs), [
+ renderSlot(_ctx.$slots, "default")
+ ], 16);
+ };
+ }
+});
+var Icon = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/icon/src/icon.vue"]]);
+const ElIcon = withInstall(Icon);
+const FOCUSOUT_PREVENTED = "focus-trap.focusout-prevented";
+const FOCUSOUT_PREVENTED_OPTS = {
+ cancelable: true,
+ bubbles: false
+};
+const ON_TRAP_FOCUS_EVT = "focusAfterTrapped";
+const ON_RELEASE_FOCUS_EVT = "focusAfterReleased";
+const FOCUS_TRAP_INJECTION_KEY = Symbol("elFocusTrap");
+const focusReason = ref();
+const lastUserFocusTimestamp = ref(0);
+const lastAutomatedFocusTimestamp = ref(0);
+const obtainAllFocusableElements = (element) => {
+ const nodes = [];
+ const walker = document.createTreeWalker(element, NodeFilter.SHOW_ELEMENT, {
+ acceptNode: (node) => {
+ const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden";
+ if (node.disabled || node.hidden || isHiddenInput)
+ return NodeFilter.FILTER_SKIP;
+ return node.tabIndex >= 0 || node === document.activeElement ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
+ }
+ });
+ while (walker.nextNode())
+ nodes.push(walker.currentNode);
+ return nodes;
+};
+const getVisibleElement = (elements, container) => {
+ for (const element of elements) {
+ if (!isHidden(element, container))
+ return element;
+ }
+};
+const isHidden = (element, container) => {
+ if (getComputedStyle(element).visibility === "hidden")
+ return true;
+ while (element) {
+ if (container && element === container)
+ return false;
+ if (getComputedStyle(element).display === "none")
+ return true;
+ element = element.parentElement;
+ }
+ return false;
+};
+const getEdges = (container) => {
+ const focusable = obtainAllFocusableElements(container);
+ const first = getVisibleElement(focusable, container);
+ const last = getVisibleElement(focusable.reverse(), container);
+ return [first, last];
+};
+const isSelectable = (element) => {
+ return element instanceof HTMLInputElement && "select" in element;
+};
+const tryFocus = (element, shouldSelect) => {
+ if (element && element.focus) {
+ const prevFocusedElement = document.activeElement;
+ element.focus({ preventScroll: true });
+ lastAutomatedFocusTimestamp.value = window.performance.now();
+ if (element !== prevFocusedElement && isSelectable(element) && shouldSelect) {
+ element.select();
+ }
+ }
+};
+const useFocusReason = () => {
+ return {
+ focusReason,
+ lastUserFocusTimestamp,
+ lastAutomatedFocusTimestamp
+ };
+};
+const createFocusOutPreventedEvent = (detail) => {
+ return new CustomEvent(FOCUSOUT_PREVENTED, {
+ ...FOCUSOUT_PREVENTED_OPTS,
+ detail
+ });
+};
+const _sfc_main = defineComponent({
+ name: "ElFocusTrap",
+ inheritAttrs: false,
+ props: {
+ loop: Boolean,
+ trapped: Boolean,
+ focusTrapEl: Object,
+ focusStartEl: {
+ type: [Object, String],
+ default: "first"
+ }
+ },
+ emits: [
+ ON_TRAP_FOCUS_EVT,
+ ON_RELEASE_FOCUS_EVT,
+ "focusin",
+ "focusout",
+ "focusout-prevented",
+ "release-requested"
+ ],
+ setup(props, { emit }) {
+ const forwardRef = ref();
+ let lastFocusAfterTrapped;
+ const { focusReason: focusReason2 } = useFocusReason();
+ const onKeydown = (e) => {
+ if (!props.loop && !props.trapped)
+ return;
+ const { key, altKey, ctrlKey, metaKey, currentTarget, shiftKey } = e;
+ const { loop } = props;
+ const isTabbing = key === EVENT_CODE.tab && !altKey && !ctrlKey && !metaKey;
+ const currentFocusingEl = document.activeElement;
+ if (isTabbing && currentFocusingEl) {
+ const container = currentTarget;
+ const [first, last] = getEdges(container);
+ const isTabbable = first && last;
+ if (!isTabbable) {
+ if (currentFocusingEl === container) {
+ const focusoutPreventedEvent = createFocusOutPreventedEvent({
+ focusReason: focusReason2.value
+ });
+ emit("focusout-prevented", focusoutPreventedEvent);
+ if (!focusoutPreventedEvent.defaultPrevented) {
+ e.preventDefault();
+ }
+ }
+ } else {
+ if (!shiftKey && currentFocusingEl === last) {
+ const focusoutPreventedEvent = createFocusOutPreventedEvent({
+ focusReason: focusReason2.value
+ });
+ emit("focusout-prevented", focusoutPreventedEvent);
+ if (!focusoutPreventedEvent.defaultPrevented) {
+ e.preventDefault();
+ if (loop)
+ tryFocus(first, true);
+ }
+ } else if (shiftKey && [first, container].includes(currentFocusingEl)) {
+ const focusoutPreventedEvent = createFocusOutPreventedEvent({
+ focusReason: focusReason2.value
+ });
+ emit("focusout-prevented", focusoutPreventedEvent);
+ if (!focusoutPreventedEvent.defaultPrevented) {
+ e.preventDefault();
+ if (loop)
+ tryFocus(last, true);
+ }
+ }
+ }
+ }
+ };
+ provide(FOCUS_TRAP_INJECTION_KEY, {
+ focusTrapRef: forwardRef,
+ onKeydown
+ });
+ watch(() => props.focusTrapEl, (focusTrapEl) => {
+ if (focusTrapEl) {
+ forwardRef.value = focusTrapEl;
+ }
+ }, { immediate: true });
+ watch([forwardRef], ([forwardRef2], [oldForwardRef]) => {
+ if (forwardRef2) {
+ forwardRef2.addEventListener("keydown", onKeydown);
+ forwardRef2.addEventListener("focusin", onFocusIn);
+ forwardRef2.addEventListener("focusout", onFocusOut);
+ }
+ if (oldForwardRef) {
+ oldForwardRef.removeEventListener("keydown", onKeydown);
+ oldForwardRef.removeEventListener("focusin", onFocusIn);
+ oldForwardRef.removeEventListener("focusout", onFocusOut);
+ }
+ });
+ const onFocusIn = (e) => {
+ const trapContainer = unref(forwardRef);
+ if (!trapContainer)
+ return;
+ const target = e.target;
+ const relatedTarget = e.relatedTarget;
+ const isFocusedInTrap = target && trapContainer.contains(target);
+ if (!props.trapped) {
+ relatedTarget && trapContainer.contains(relatedTarget);
+ }
+ if (isFocusedInTrap)
+ emit("focusin", e);
+ if (props.trapped) {
+ if (isFocusedInTrap) {
+ lastFocusAfterTrapped = target;
+ } else {
+ tryFocus(lastFocusAfterTrapped, true);
+ }
+ }
+ };
+ const onFocusOut = (e) => {
+ const trapContainer = unref(forwardRef);
+ if (!trapContainer)
+ return;
+ if (props.trapped) {
+ const relatedTarget = e.relatedTarget;
+ if (!isNil(relatedTarget) && !trapContainer.contains(relatedTarget)) {
+ setTimeout(() => {
+ if (props.trapped) {
+ const focusoutPreventedEvent = createFocusOutPreventedEvent({
+ focusReason: focusReason2.value
+ });
+ emit("focusout-prevented", focusoutPreventedEvent);
+ if (!focusoutPreventedEvent.defaultPrevented) {
+ tryFocus(lastFocusAfterTrapped, true);
+ }
+ }
+ }, 0);
+ }
+ } else {
+ const target = e.target;
+ const isFocusedInTrap = target && trapContainer.contains(target);
+ if (!isFocusedInTrap)
+ emit("focusout", e);
+ }
+ };
+ return {
+ onKeydown
+ };
+ }
+});
+function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
+ return renderSlot(_ctx.$slots, "default", { handleKeydown: _ctx.onKeydown });
+}
+var ElFocusTrap = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/element-plus/element-plus/packages/components/focus-trap/src/focus-trap.vue"]]);
+const removeUndefinedProps = (props) => Object.fromEntries(Object.entries(props).filter(([, value]) => value !== void 0));
+const setupForUseMeta = (metaFactory, renderChild) => (props, ctx) => {
+ useHead(() => metaFactory({ ...removeUndefinedProps(props), ...ctx.attrs }, ctx));
+ return () => {
+ var _a, _b;
+ return renderChild ? (_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a) : null;
+ };
+};
+const globalProps = {
+ accesskey: String,
+ autocapitalize: String,
+ autofocus: {
+ type: Boolean,
+ default: void 0
+ },
+ class: [String, Object, Array],
+ contenteditable: {
+ type: Boolean,
+ default: void 0
+ },
+ contextmenu: String,
+ dir: String,
+ draggable: {
+ type: Boolean,
+ default: void 0
+ },
+ enterkeyhint: String,
+ exportparts: String,
+ hidden: {
+ type: Boolean,
+ default: void 0
+ },
+ id: String,
+ inputmode: String,
+ is: String,
+ itemid: String,
+ itemprop: String,
+ itemref: String,
+ itemscope: String,
+ itemtype: String,
+ lang: String,
+ nonce: String,
+ part: String,
+ slot: String,
+ spellcheck: {
+ type: Boolean,
+ default: void 0
+ },
+ style: String,
+ tabindex: String,
+ title: String,
+ translate: String
+};
+defineComponent({
+ name: "NoScript",
+ inheritAttrs: false,
+ props: {
+ ...globalProps,
+ title: String,
+ body: Boolean,
+ renderPriority: [String, Number]
+ },
+ setup: setupForUseMeta((props, { slots }) => {
+ var _a;
+ const noscript = { ...props };
+ const textContent = (((_a = slots.default) == null ? void 0 : _a.call(slots)) || []).filter(({ children }) => children).map(({ children }) => children).join("");
+ if (textContent) {
+ noscript.children = textContent;
+ }
+ return {
+ noscript: [noscript]
+ };
+ })
+});
+defineComponent({
+ // eslint-disable-next-line vue/no-reserved-component-names
+ name: "Link",
+ inheritAttrs: false,
+ props: {
+ ...globalProps,
+ as: String,
+ crossorigin: String,
+ disabled: Boolean,
+ fetchpriority: String,
+ href: String,
+ hreflang: String,
+ imagesizes: String,
+ imagesrcset: String,
+ integrity: String,
+ media: String,
+ prefetch: {
+ type: Boolean,
+ default: void 0
+ },
+ referrerpolicy: String,
+ rel: String,
+ sizes: String,
+ title: String,
+ type: String,
+ /** @deprecated **/
+ methods: String,
+ /** @deprecated **/
+ target: String,
+ body: Boolean,
+ renderPriority: [String, Number]
+ },
+ setup: setupForUseMeta((link) => ({
+ link: [link]
+ }))
+});
+defineComponent({
+ // eslint-disable-next-line vue/no-reserved-component-names
+ name: "Base",
+ inheritAttrs: false,
+ props: {
+ ...globalProps,
+ href: String,
+ target: String
+ },
+ setup: setupForUseMeta((base2) => ({
+ base: base2
+ }))
+});
+const Title = defineComponent({
+ // eslint-disable-next-line vue/no-reserved-component-names
+ name: "Title",
+ inheritAttrs: false,
+ setup: setupForUseMeta((_, { slots }) => {
+ var _a, _b, _c;
+ return {
+ title: ((_c = (_b = (_a = slots.default) == null ? void 0 : _a.call(slots)) == null ? void 0 : _b[0]) == null ? void 0 : _c.children) || null
+ };
+ })
+});
+const Meta = defineComponent({
+ // eslint-disable-next-line vue/no-reserved-component-names
+ name: "Meta",
+ inheritAttrs: false,
+ props: {
+ ...globalProps,
+ charset: String,
+ content: String,
+ httpEquiv: String,
+ name: String,
+ body: Boolean,
+ renderPriority: [String, Number]
+ },
+ setup: setupForUseMeta((props) => {
+ const meta = { ...props };
+ if (meta.httpEquiv) {
+ meta["http-equiv"] = meta.httpEquiv;
+ delete meta.httpEquiv;
+ }
+ return {
+ meta: [meta]
+ };
+ })
+});
+defineComponent({
+ // eslint-disable-next-line vue/no-reserved-component-names
+ name: "Style",
+ inheritAttrs: false,
+ props: {
+ ...globalProps,
+ type: String,
+ media: String,
+ nonce: String,
+ title: String,
+ /** @deprecated **/
+ scoped: {
+ type: Boolean,
+ default: void 0
+ },
+ body: Boolean,
+ renderPriority: [String, Number]
+ },
+ setup: setupForUseMeta((props, { slots }) => {
+ var _a, _b, _c;
+ const style = { ...props };
+ const textContent = (_c = (_b = (_a = slots.default) == null ? void 0 : _a.call(slots)) == null ? void 0 : _b[0]) == null ? void 0 : _c.children;
+ if (textContent) {
+ style.children = textContent;
+ }
+ return {
+ style: [style]
+ };
+ })
+});
+const Head = defineComponent({
+ // eslint-disable-next-line vue/no-reserved-component-names
+ name: "Head",
+ inheritAttrs: false,
+ setup: (_props, ctx) => () => {
+ var _a, _b;
+ return (_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a);
+ }
+});
+defineComponent({
+ // eslint-disable-next-line vue/no-reserved-component-names
+ name: "Html",
+ inheritAttrs: false,
+ props: {
+ ...globalProps,
+ manifest: String,
+ version: String,
+ xmlns: String,
+ renderPriority: [String, Number]
+ },
+ setup: setupForUseMeta((htmlAttrs) => ({ htmlAttrs }), true)
+});
+defineComponent({
+ // eslint-disable-next-line vue/no-reserved-component-names
+ name: "Body",
+ inheritAttrs: false,
+ props: {
+ ...globalProps,
+ renderPriority: [String, Number]
+ },
+ setup: setupForUseMeta((bodyAttrs) => ({ bodyAttrs }), true)
+});
+axios.defaults.baseURL = "https://interviewexperience.gter.net";
+axios.defaults.emulateJSON = true;
+axios.defaults.withCredentials = true;
+axios.interceptors.request.use(
+ //响应拦截
+ async (config) => {
+ config["headers"]["authorization"] = false;
+ return config;
+ },
+ (error) => {
+ return Promise.error(error);
+ }
+);
+axios.interceptors.response.use((response) => {
+ if (response.status === 200)
+ return Promise.resolve(response);
+ else
+ return Promise.reject(response);
+}, (error) => {
+ if (error.response.status) {
+ switch (error.response.status) {
+ }
+ return Promise.reject(error.response);
+ }
+});
+const get = (url, params) => {
+ return new Promise((resolve, reject) => {
+ axios.get(url, { params }).then((res) => resolve(res.data)).catch((err) => reject(err.data));
+ });
+};
+const post = (url, params) => {
+ return new Promise((resolve, reject) => {
+ axios.post(url, QS.stringify(params)).then((res) => {
+ let data = res.data;
+ if (data.code == 401 && false)
+ goLogin();
+ resolve(data);
+ }).catch((err) => {
+ if (err.data.code == 401) {
+ goLogin();
+ resolve(err.data);
+ } else
+ reject(err.data);
+ });
+ });
+};
+const goLogin = () => {
+ if (typeof ajax_login === "function")
+ ajax_login();
+};
+const Http = {
+ get,
+ post
+};
+const getListHttp = (params) => {
+ return Http.post("/api/lists", params);
+};
+const operateLikeHttp = (query) => {
+ return Http.post("/api/operate/like", query);
+};
+const relatedlistHttp = (query) => {
+ return Http.post("/api/details/relatedlist", query);
+};
+const detailsHttp = (query) => {
+ return Http.post("/api/details", query);
+};
+const detailsCommentListHttp = (query) => {
+ return Http.post("/api/comment/lists", query);
+};
+const publishSchoolSearchHttp = (query) => {
+ return Http.post("/api/publish/schoolSearch", query);
+};
+const publishProfessionSearchHttp = (query) => {
+ return Http.post("/api/publish/professionSearch", query);
+};
+const changeAnonymousHttp = (query) => {
+ return Http.post("/api/publish/changeAnonymous", query);
+};
+const MyUserPublishHttp = (query) => {
+ return Http.post("/api/user/publish", query);
+};
+const MyUserDeleteCollectHttp = (query) => {
+ return Http.post("/api/user/deleteCollect", query);
+};
+const MyUserCollectHttp = (query) => {
+ return Http.post("/api/user/collect", query);
+};
+const _imports_1 = "data:image/png;base64,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";
+
+export { d_arrow_right_default as $, TypeComponents as A, EVENT_CODE as B, CloseComponents as C, hasClass as D, ElIcon as E, FOCUS_TRAP_INJECTION_KEY as F, messageConfig as G, Head as H, isElement as I, changeAnonymousHttp as J, MyUserDeleteCollectHttp as K, MyUserCollectHttp as L, Meta as M, MyUserPublishHttp as N, view_default as O, hide_default as P, circle_close_default as Q, loading_default as R, withNoopInstall as S, Title as T, UPDATE_MODEL_EVENT as U, ValidateComponentsMap as V, useSizeProp as W, clock_default as X, calendar_default as Y, d_arrow_left_default as Z, _export_sfc as _, addUnit as a, ConfigProvider as a0, useGlobalSize as a1, INPUT_EVENT as a2, CHANGE_EVENT as a3, isEmpty as a4, arrow_left_default as a5, arrow_right_default as a6, publishSchoolSearchHttp as a7, publishProfessionSearchHttp as a8, isUndefined as a9, arrow_up_default as aa, arrow_down_default as ab, buildProp as ac, buildProps as b, withInstall as c, definePropType as d, isBoolean as e, detailsHttp as f, _imports_1 as g, detailsCommentListHttp as h, iconPropType as i, getStyle as j, addClass as k, removeClass as l, getListHttp as m, isNumber as n, operateLikeHttp as o, useLocale as p, useDeprecated as q, relatedlistHttp as r, ElFocusTrap as s, TypeComponentsMap as t, useGlobalComponentSettings as u, withInstallFunction as v, withInstallDirective as w, useZIndex as x, useGlobalConfig as y, mutable as z };
+//# sourceMappingURL=cross-icon-c0ac5209.mjs.map
diff --git a/.output/server/chunks/app/_nuxt/cross-icon-c0ac5209.mjs.map b/.output/server/chunks/app/_nuxt/cross-icon-c0ac5209.mjs.map
new file mode 100644
index 0000000..0919dff
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/cross-icon-c0ac5209.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"cross-icon-c0ac5209.mjs","sources":["../../../../../.nuxt/dist/server/_nuxt/cross-icon-c0ac5209.js"],"sourcesContent":null,"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/.output/server/chunks/app/_nuxt/el-popper-6f31b937.mjs b/.output/server/chunks/app/_nuxt/el-popper-6f31b937.mjs
new file mode 100644
index 0000000..305a713
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/el-popper-6f31b937.mjs
@@ -0,0 +1,1366 @@
+import { defineComponent, ref, computed, provide, renderSlot, inject, watch, openBlock, createElementBlock, normalizeClass, unref, normalizeStyle, withDirectives, cloneVNode, Fragment, Text, Comment, createVNode, createBlock, mergeProps, withCtx, createCommentVNode, toRef, Teleport, Transition, vShow, readonly, toDisplayString, shallowRef, getCurrentInstance } from 'vue';
+import { ac as buildProp, b as buildProps, d as definePropType, s as ElFocusTrap, c as withInstall, B as EVENT_CODE, e as isBoolean, _ as _export_sfc, x as useZIndex, n as isNumber } from './cross-icon-c0ac5209.mjs';
+import { onClickOutside, tryOnScopeDispose, isClient, unrefElement } from '@vueuse/core';
+import { placements, createPopper } from '@popperjs/core';
+import { NOOP, isObject, isFunction, isArray } from '@vue/shared';
+import { d as useNamespace, f as useId, i as useGetDerivedNamespace, j as useIdInjection } from '../server.mjs';
+import { isUndefined, fromPairs } from 'lodash-unified';
+
+const composeEventHandlers = (theirsHandler, oursHandler, { checkForDefaultPrevented = true } = {}) => {
+ const handleEvent = (event) => {
+ const shouldPrevent = theirsHandler == null ? void 0 : theirsHandler(event);
+ if (checkForDefaultPrevented === false || !shouldPrevent) {
+ return oursHandler == null ? void 0 : oursHandler(event);
+ }
+ };
+ return handleEvent;
+};
+const _prop = buildProp({
+ type: definePropType(Boolean),
+ default: null
+});
+const _event = buildProp({
+ type: definePropType(Function)
+});
+const createModelToggleComposable = (name) => {
+ const updateEventKey = `update:${name}`;
+ const updateEventKeyRaw = `onUpdate:${name}`;
+ const useModelToggleEmits2 = [updateEventKey];
+ const useModelToggleProps2 = {
+ [name]: _prop,
+ [updateEventKeyRaw]: _event
+ };
+ const useModelToggle2 = ({
+ indicator,
+ toggleReason,
+ shouldHideWhenRouteChanges,
+ shouldProceed,
+ onShow,
+ onHide
+ }) => {
+ const instance = getCurrentInstance();
+ const { emit } = instance;
+ const props = instance.props;
+ const hasUpdateHandler = computed(() => isFunction(props[updateEventKeyRaw]));
+ const isModelBindingAbsent = computed(() => props[name] === null);
+ const doShow = (event) => {
+ if (indicator.value === true) {
+ return;
+ }
+ indicator.value = true;
+ if (toggleReason) {
+ toggleReason.value = event;
+ }
+ if (isFunction(onShow)) {
+ onShow(event);
+ }
+ };
+ const doHide = (event) => {
+ if (indicator.value === false) {
+ return;
+ }
+ indicator.value = false;
+ if (toggleReason) {
+ toggleReason.value = event;
+ }
+ if (isFunction(onHide)) {
+ onHide(event);
+ }
+ };
+ const show = (event) => {
+ if (props.disabled === true || isFunction(shouldProceed) && !shouldProceed())
+ return;
+ const shouldEmit = hasUpdateHandler.value && isClient;
+ if (shouldEmit) {
+ emit(updateEventKey, true);
+ }
+ if (isModelBindingAbsent.value || !shouldEmit) {
+ doShow(event);
+ }
+ };
+ const hide = (event) => {
+ if (props.disabled === true || !isClient)
+ return;
+ const shouldEmit = hasUpdateHandler.value && isClient;
+ if (shouldEmit) {
+ emit(updateEventKey, false);
+ }
+ if (isModelBindingAbsent.value || !shouldEmit) {
+ doHide(event);
+ }
+ };
+ const onChange = (val) => {
+ if (!isBoolean(val))
+ return;
+ if (props.disabled && val) {
+ if (hasUpdateHandler.value) {
+ emit(updateEventKey, false);
+ }
+ } else if (indicator.value !== val) {
+ if (val) {
+ doShow();
+ } else {
+ doHide();
+ }
+ }
+ };
+ const toggle = () => {
+ if (indicator.value) {
+ hide();
+ } else {
+ show();
+ }
+ };
+ watch(() => props[name], onChange);
+ if (shouldHideWhenRouteChanges && instance.appContext.config.globalProperties.$route !== void 0) {
+ watch(() => ({
+ ...instance.proxy.$route
+ }), () => {
+ if (shouldHideWhenRouteChanges.value && indicator.value) {
+ hide();
+ }
+ });
+ }
+ return {
+ hide,
+ show,
+ toggle,
+ hasUpdateHandler
+ };
+ };
+ return {
+ useModelToggle: useModelToggle2,
+ useModelToggleProps: useModelToggleProps2,
+ useModelToggleEmits: useModelToggleEmits2
+ };
+};
+const usePopper = (referenceElementRef, popperElementRef, opts = {}) => {
+ const stateUpdater = {
+ name: "updateState",
+ enabled: true,
+ phase: "write",
+ fn: ({ state }) => {
+ const derivedState = deriveState(state);
+ Object.assign(states.value, derivedState);
+ },
+ requires: ["computeStyles"]
+ };
+ const options = computed(() => {
+ const { onFirstUpdate, placement, strategy, modifiers } = unref(opts);
+ return {
+ onFirstUpdate,
+ placement: placement || "bottom",
+ strategy: strategy || "absolute",
+ modifiers: [
+ ...modifiers || [],
+ stateUpdater,
+ { name: "applyStyles", enabled: false }
+ ]
+ };
+ });
+ const instanceRef = shallowRef();
+ const states = ref({
+ styles: {
+ popper: {
+ position: unref(options).strategy,
+ left: "0",
+ top: "0"
+ },
+ arrow: {
+ position: "absolute"
+ }
+ },
+ attributes: {}
+ });
+ const destroy = () => {
+ if (!instanceRef.value)
+ return;
+ instanceRef.value.destroy();
+ instanceRef.value = void 0;
+ };
+ watch(options, (newOptions) => {
+ const instance = unref(instanceRef);
+ if (instance) {
+ instance.setOptions(newOptions);
+ }
+ }, {
+ deep: true
+ });
+ watch([referenceElementRef, popperElementRef], ([referenceElement, popperElement]) => {
+ destroy();
+ if (!referenceElement || !popperElement)
+ return;
+ instanceRef.value = createPopper(referenceElement, popperElement, unref(options));
+ });
+ return {
+ state: computed(() => {
+ var _a;
+ return { ...((_a = unref(instanceRef)) == null ? void 0 : _a.state) || {} };
+ }),
+ styles: computed(() => unref(states).styles),
+ attributes: computed(() => unref(states).attributes),
+ update: () => {
+ var _a;
+ return (_a = unref(instanceRef)) == null ? void 0 : _a.update();
+ },
+ forceUpdate: () => {
+ var _a;
+ return (_a = unref(instanceRef)) == null ? void 0 : _a.forceUpdate();
+ },
+ instanceRef: computed(() => unref(instanceRef))
+ };
+};
+function deriveState(state) {
+ const elements = Object.keys(state.elements);
+ const styles = fromPairs(elements.map((element) => [element, state.styles[element] || {}]));
+ const attributes = fromPairs(elements.map((element) => [element, state.attributes[element]]));
+ return {
+ styles,
+ attributes
+ };
+}
+function useTimeout() {
+ let timeoutHandle;
+ const registerTimeout = (fn, delay) => {
+ cancelTimeout();
+ timeoutHandle = window.setTimeout(fn, delay);
+ };
+ const cancelTimeout = () => window.clearTimeout(timeoutHandle);
+ tryOnScopeDispose(() => cancelTimeout());
+ return {
+ registerTimeout,
+ cancelTimeout
+ };
+}
+const usePopperContainerId = () => {
+ const namespace = useGetDerivedNamespace();
+ const idInjection = useIdInjection();
+ const id = computed(() => {
+ return `${namespace.value}-popper-container-${idInjection.prefix}`;
+ });
+ const selector = computed(() => `#${id.value}`);
+ return {
+ id,
+ selector
+ };
+};
+const usePopperContainer = () => {
+ const { id, selector } = usePopperContainerId();
+ return {
+ id,
+ selector
+ };
+};
+const useDelayedToggleProps = buildProps({
+ showAfter: {
+ type: Number,
+ default: 0
+ },
+ hideAfter: {
+ type: Number,
+ default: 200
+ },
+ autoClose: {
+ type: Number,
+ default: 0
+ }
+});
+const useDelayedToggle = ({
+ showAfter,
+ hideAfter,
+ autoClose,
+ open,
+ close
+}) => {
+ const { registerTimeout } = useTimeout();
+ const {
+ registerTimeout: registerTimeoutForAutoClose,
+ cancelTimeout: cancelTimeoutForAutoClose
+ } = useTimeout();
+ const onOpen = (event) => {
+ registerTimeout(() => {
+ open(event);
+ const _autoClose = unref(autoClose);
+ if (isNumber(_autoClose) && _autoClose > 0) {
+ registerTimeoutForAutoClose(() => {
+ close(event);
+ }, _autoClose);
+ }
+ }, unref(showAfter));
+ };
+ const onClose = (event) => {
+ cancelTimeoutForAutoClose();
+ registerTimeout(() => {
+ close(event);
+ }, unref(hideAfter));
+ };
+ return {
+ onOpen,
+ onClose
+ };
+};
+const FORWARD_REF_INJECTION_KEY = Symbol("elForwardRef");
+const useForwardRef = (forwardRef) => {
+ const setForwardRef = (el) => {
+ forwardRef.value = el;
+ };
+ provide(FORWARD_REF_INJECTION_KEY, {
+ setForwardRef
+ });
+};
+const useForwardRefDirective = (setForwardRef) => {
+ return {
+ mounted(el) {
+ setForwardRef(el);
+ },
+ updated(el) {
+ setForwardRef(el);
+ },
+ unmounted() {
+ setForwardRef(null);
+ }
+ };
+};
+const formContextKey = Symbol("formContextKey");
+const formItemContextKey = Symbol("formItemContextKey");
+const POPPER_INJECTION_KEY = Symbol("popper");
+const POPPER_CONTENT_INJECTION_KEY = Symbol("popperContent");
+const roleTypes = [
+ "dialog",
+ "grid",
+ "group",
+ "listbox",
+ "menu",
+ "navigation",
+ "tooltip",
+ "tree"
+];
+const popperProps = buildProps({
+ role: {
+ type: String,
+ values: roleTypes,
+ default: "tooltip"
+ }
+});
+const __default__$6 = defineComponent({
+ name: "ElPopper",
+ inheritAttrs: false
+});
+const _sfc_main$6 = /* @__PURE__ */ defineComponent({
+ ...__default__$6,
+ props: popperProps,
+ setup(__props, { expose }) {
+ const props = __props;
+ const triggerRef = ref();
+ const popperInstanceRef = ref();
+ const contentRef = ref();
+ const referenceRef = ref();
+ const role = computed(() => props.role);
+ const popperProvides = {
+ triggerRef,
+ popperInstanceRef,
+ contentRef,
+ referenceRef,
+ role
+ };
+ expose(popperProvides);
+ provide(POPPER_INJECTION_KEY, popperProvides);
+ return (_ctx, _cache) => {
+ return renderSlot(_ctx.$slots, "default");
+ };
+ }
+});
+var Popper = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/popper/src/popper.vue"]]);
+const popperArrowProps = buildProps({
+ arrowOffset: {
+ type: Number,
+ default: 5
+ }
+});
+const __default__$5 = defineComponent({
+ name: "ElPopperArrow",
+ inheritAttrs: false
+});
+const _sfc_main$5 = /* @__PURE__ */ defineComponent({
+ ...__default__$5,
+ props: popperArrowProps,
+ setup(__props, { expose }) {
+ const props = __props;
+ const ns = useNamespace("popper");
+ const { arrowOffset, arrowRef, arrowStyle } = inject(POPPER_CONTENT_INJECTION_KEY, void 0);
+ watch(() => props.arrowOffset, (val) => {
+ arrowOffset.value = val;
+ });
+ expose({
+ arrowRef
+ });
+ return (_ctx, _cache) => {
+ return openBlock(), createElementBlock("span", {
+ ref_key: "arrowRef",
+ ref: arrowRef,
+ class: normalizeClass(unref(ns).e("arrow")),
+ style: normalizeStyle(unref(arrowStyle)),
+ "data-popper-arrow": ""
+ }, null, 6);
+ };
+ }
+});
+var ElPopperArrow = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/popper/src/arrow.vue"]]);
+const NAME = "ElOnlyChild";
+const OnlyChild = defineComponent({
+ name: NAME,
+ setup(_, {
+ slots,
+ attrs
+ }) {
+ var _a;
+ const forwardRefInjection = inject(FORWARD_REF_INJECTION_KEY);
+ const forwardRefDirective = useForwardRefDirective((_a = forwardRefInjection == null ? void 0 : forwardRefInjection.setForwardRef) != null ? _a : NOOP);
+ return () => {
+ var _a2;
+ const defaultSlot = (_a2 = slots.default) == null ? void 0 : _a2.call(slots, attrs);
+ if (!defaultSlot)
+ return null;
+ if (defaultSlot.length > 1) {
+ return null;
+ }
+ const firstLegitNode = findFirstLegitChild(defaultSlot);
+ if (!firstLegitNode) {
+ return null;
+ }
+ return withDirectives(cloneVNode(firstLegitNode, attrs), [[forwardRefDirective]]);
+ };
+ }
+});
+function findFirstLegitChild(node) {
+ if (!node)
+ return null;
+ const children = node;
+ for (const child of children) {
+ if (isObject(child)) {
+ switch (child.type) {
+ case Comment:
+ continue;
+ case Text:
+ case "svg":
+ return wrapTextContent(child);
+ case Fragment:
+ return findFirstLegitChild(child.children);
+ default:
+ return child;
+ }
+ }
+ return wrapTextContent(child);
+ }
+ return null;
+}
+function wrapTextContent(s) {
+ const ns = useNamespace("only-child");
+ return createVNode("span", {
+ "class": ns.e("content")
+ }, [s]);
+}
+const popperTriggerProps = buildProps({
+ virtualRef: {
+ type: definePropType(Object)
+ },
+ virtualTriggering: Boolean,
+ onMouseenter: {
+ type: definePropType(Function)
+ },
+ onMouseleave: {
+ type: definePropType(Function)
+ },
+ onClick: {
+ type: definePropType(Function)
+ },
+ onKeydown: {
+ type: definePropType(Function)
+ },
+ onFocus: {
+ type: definePropType(Function)
+ },
+ onBlur: {
+ type: definePropType(Function)
+ },
+ onContextmenu: {
+ type: definePropType(Function)
+ },
+ id: String,
+ open: Boolean
+});
+const __default__$4 = defineComponent({
+ name: "ElPopperTrigger",
+ inheritAttrs: false
+});
+const _sfc_main$4 = /* @__PURE__ */ defineComponent({
+ ...__default__$4,
+ props: popperTriggerProps,
+ setup(__props, { expose }) {
+ const props = __props;
+ const { role, triggerRef } = inject(POPPER_INJECTION_KEY, void 0);
+ useForwardRef(triggerRef);
+ const ariaControls = computed(() => {
+ return ariaHaspopup.value ? props.id : void 0;
+ });
+ const ariaDescribedby = computed(() => {
+ if (role && role.value === "tooltip") {
+ return props.open && props.id ? props.id : void 0;
+ }
+ return void 0;
+ });
+ const ariaHaspopup = computed(() => {
+ if (role && role.value !== "tooltip") {
+ return role.value;
+ }
+ return void 0;
+ });
+ const ariaExpanded = computed(() => {
+ return ariaHaspopup.value ? `${props.open}` : void 0;
+ });
+ expose({
+ triggerRef
+ });
+ return (_ctx, _cache) => {
+ return !_ctx.virtualTriggering ? (openBlock(), createBlock(unref(OnlyChild), mergeProps({ key: 0 }, _ctx.$attrs, {
+ "aria-controls": unref(ariaControls),
+ "aria-describedby": unref(ariaDescribedby),
+ "aria-expanded": unref(ariaExpanded),
+ "aria-haspopup": unref(ariaHaspopup)
+ }), {
+ default: withCtx(() => [
+ renderSlot(_ctx.$slots, "default")
+ ]),
+ _: 3
+ }, 16, ["aria-controls", "aria-describedby", "aria-expanded", "aria-haspopup"])) : createCommentVNode("v-if", true);
+ };
+ }
+});
+var ElPopperTrigger = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/popper/src/trigger.vue"]]);
+const POSITIONING_STRATEGIES = ["fixed", "absolute"];
+const popperCoreConfigProps = buildProps({
+ boundariesPadding: {
+ type: Number,
+ default: 0
+ },
+ fallbackPlacements: {
+ type: definePropType(Array),
+ default: void 0
+ },
+ gpuAcceleration: {
+ type: Boolean,
+ default: true
+ },
+ offset: {
+ type: Number,
+ default: 12
+ },
+ placement: {
+ type: String,
+ values: placements,
+ default: "bottom"
+ },
+ popperOptions: {
+ type: definePropType(Object),
+ default: () => ({})
+ },
+ strategy: {
+ type: String,
+ values: POSITIONING_STRATEGIES,
+ default: "absolute"
+ }
+});
+const popperContentProps = buildProps({
+ ...popperCoreConfigProps,
+ id: String,
+ style: {
+ type: definePropType([String, Array, Object])
+ },
+ className: {
+ type: definePropType([String, Array, Object])
+ },
+ effect: {
+ type: String,
+ default: "dark"
+ },
+ visible: Boolean,
+ enterable: {
+ type: Boolean,
+ default: true
+ },
+ pure: Boolean,
+ focusOnShow: {
+ type: Boolean,
+ default: false
+ },
+ trapping: {
+ type: Boolean,
+ default: false
+ },
+ popperClass: {
+ type: definePropType([String, Array, Object])
+ },
+ popperStyle: {
+ type: definePropType([String, Array, Object])
+ },
+ referenceEl: {
+ type: definePropType(Object)
+ },
+ triggerTargetEl: {
+ type: definePropType(Object)
+ },
+ stopPopperMouseEvent: {
+ type: Boolean,
+ default: true
+ },
+ ariaLabel: {
+ type: String,
+ default: void 0
+ },
+ virtualTriggering: Boolean,
+ zIndex: Number
+});
+const popperContentEmits = {
+ mouseenter: (evt) => evt instanceof MouseEvent,
+ mouseleave: (evt) => evt instanceof MouseEvent,
+ focus: () => true,
+ blur: () => true,
+ close: () => true
+};
+const buildPopperOptions = (props, modifiers = []) => {
+ const { placement, strategy, popperOptions } = props;
+ const options = {
+ placement,
+ strategy,
+ ...popperOptions,
+ modifiers: [...genModifiers(props), ...modifiers]
+ };
+ deriveExtraModifiers(options, popperOptions == null ? void 0 : popperOptions.modifiers);
+ return options;
+};
+const unwrapMeasurableEl = ($el) => {
+ if (!isClient)
+ return;
+ return unrefElement($el);
+};
+function genModifiers(options) {
+ const { offset, gpuAcceleration, fallbackPlacements } = options;
+ return [
+ {
+ name: "offset",
+ options: {
+ offset: [0, offset != null ? offset : 12]
+ }
+ },
+ {
+ name: "preventOverflow",
+ options: {
+ padding: {
+ top: 2,
+ bottom: 2,
+ left: 5,
+ right: 5
+ }
+ }
+ },
+ {
+ name: "flip",
+ options: {
+ padding: 5,
+ fallbackPlacements
+ }
+ },
+ {
+ name: "computeStyles",
+ options: {
+ gpuAcceleration
+ }
+ }
+ ];
+}
+function deriveExtraModifiers(options, modifiers) {
+ if (modifiers) {
+ options.modifiers = [...options.modifiers, ...modifiers != null ? modifiers : []];
+ }
+}
+const DEFAULT_ARROW_OFFSET = 0;
+const usePopperContent = (props) => {
+ const { popperInstanceRef, contentRef, triggerRef, role } = inject(POPPER_INJECTION_KEY, void 0);
+ const arrowRef = ref();
+ const arrowOffset = ref();
+ const eventListenerModifier = computed(() => {
+ return {
+ name: "eventListeners",
+ enabled: !!props.visible
+ };
+ });
+ const arrowModifier = computed(() => {
+ var _a;
+ const arrowEl = unref(arrowRef);
+ const offset = (_a = unref(arrowOffset)) != null ? _a : DEFAULT_ARROW_OFFSET;
+ return {
+ name: "arrow",
+ enabled: !isUndefined(arrowEl),
+ options: {
+ element: arrowEl,
+ padding: offset
+ }
+ };
+ });
+ const options = computed(() => {
+ return {
+ onFirstUpdate: () => {
+ update();
+ },
+ ...buildPopperOptions(props, [
+ unref(arrowModifier),
+ unref(eventListenerModifier)
+ ])
+ };
+ });
+ const computedReference = computed(() => unwrapMeasurableEl(props.referenceEl) || unref(triggerRef));
+ const { attributes, state, styles, update, forceUpdate, instanceRef } = usePopper(computedReference, contentRef, options);
+ watch(instanceRef, (instance) => popperInstanceRef.value = instance);
+ return {
+ attributes,
+ arrowRef,
+ contentRef,
+ instanceRef,
+ state,
+ styles,
+ role,
+ forceUpdate,
+ update
+ };
+};
+const usePopperContentDOM = (props, {
+ attributes,
+ styles,
+ role
+}) => {
+ const { nextZIndex } = useZIndex();
+ const ns = useNamespace("popper");
+ const contentAttrs = computed(() => unref(attributes).popper);
+ const contentZIndex = ref(isNumber(props.zIndex) ? props.zIndex : nextZIndex());
+ const contentClass = computed(() => [
+ ns.b(),
+ ns.is("pure", props.pure),
+ ns.is(props.effect),
+ props.popperClass
+ ]);
+ const contentStyle = computed(() => {
+ return [
+ { zIndex: unref(contentZIndex) },
+ unref(styles).popper,
+ props.popperStyle || {}
+ ];
+ });
+ const ariaModal = computed(() => role.value === "dialog" ? "false" : void 0);
+ const arrowStyle = computed(() => unref(styles).arrow || {});
+ const updateZIndex = () => {
+ contentZIndex.value = isNumber(props.zIndex) ? props.zIndex : nextZIndex();
+ };
+ return {
+ ariaModal,
+ arrowStyle,
+ contentAttrs,
+ contentClass,
+ contentStyle,
+ contentZIndex,
+ updateZIndex
+ };
+};
+const usePopperContentFocusTrap = (props, emit) => {
+ const trapped = ref(false);
+ const focusStartRef = ref();
+ const onFocusAfterTrapped = () => {
+ emit("focus");
+ };
+ const onFocusAfterReleased = (event) => {
+ var _a;
+ if (((_a = event.detail) == null ? void 0 : _a.focusReason) !== "pointer") {
+ focusStartRef.value = "first";
+ emit("blur");
+ }
+ };
+ const onFocusInTrap = (event) => {
+ if (props.visible && !trapped.value) {
+ if (event.target) {
+ focusStartRef.value = event.target;
+ }
+ trapped.value = true;
+ }
+ };
+ const onFocusoutPrevented = (event) => {
+ if (!props.trapping) {
+ if (event.detail.focusReason === "pointer") {
+ event.preventDefault();
+ }
+ trapped.value = false;
+ }
+ };
+ const onReleaseRequested = () => {
+ trapped.value = false;
+ emit("close");
+ };
+ return {
+ focusStartRef,
+ trapped,
+ onFocusAfterReleased,
+ onFocusAfterTrapped,
+ onFocusInTrap,
+ onFocusoutPrevented,
+ onReleaseRequested
+ };
+};
+const __default__$3 = defineComponent({
+ name: "ElPopperContent"
+});
+const _sfc_main$3 = /* @__PURE__ */ defineComponent({
+ ...__default__$3,
+ props: popperContentProps,
+ emits: popperContentEmits,
+ setup(__props, { expose, emit }) {
+ const props = __props;
+ const {
+ focusStartRef,
+ trapped,
+ onFocusAfterReleased,
+ onFocusAfterTrapped,
+ onFocusInTrap,
+ onFocusoutPrevented,
+ onReleaseRequested
+ } = usePopperContentFocusTrap(props, emit);
+ const { attributes, arrowRef, contentRef, styles, instanceRef, role, update } = usePopperContent(props);
+ const {
+ ariaModal,
+ arrowStyle,
+ contentAttrs,
+ contentClass,
+ contentStyle,
+ updateZIndex
+ } = usePopperContentDOM(props, {
+ styles,
+ attributes,
+ role
+ });
+ const formItemContext = inject(formItemContextKey, void 0);
+ const arrowOffset = ref();
+ provide(POPPER_CONTENT_INJECTION_KEY, {
+ arrowStyle,
+ arrowRef,
+ arrowOffset
+ });
+ if (formItemContext && (formItemContext.addInputId || formItemContext.removeInputId)) {
+ provide(formItemContextKey, {
+ ...formItemContext,
+ addInputId: NOOP,
+ removeInputId: NOOP
+ });
+ }
+ const updatePopper = (shouldUpdateZIndex = true) => {
+ update();
+ shouldUpdateZIndex && updateZIndex();
+ };
+ expose({
+ popperContentRef: contentRef,
+ popperInstanceRef: instanceRef,
+ updatePopper,
+ contentStyle
+ });
+ return (_ctx, _cache) => {
+ return openBlock(), createElementBlock("div", mergeProps({
+ ref_key: "contentRef",
+ ref: contentRef
+ }, unref(contentAttrs), {
+ style: unref(contentStyle),
+ class: unref(contentClass),
+ tabindex: "-1",
+ onMouseenter: _cache[0] || (_cache[0] = (e) => _ctx.$emit("mouseenter", e)),
+ onMouseleave: _cache[1] || (_cache[1] = (e) => _ctx.$emit("mouseleave", e))
+ }), [
+ createVNode(unref(ElFocusTrap), {
+ trapped: unref(trapped),
+ "trap-on-focus-in": true,
+ "focus-trap-el": unref(contentRef),
+ "focus-start-el": unref(focusStartRef),
+ onFocusAfterTrapped: unref(onFocusAfterTrapped),
+ onFocusAfterReleased: unref(onFocusAfterReleased),
+ onFocusin: unref(onFocusInTrap),
+ onFocusoutPrevented: unref(onFocusoutPrevented),
+ onReleaseRequested: unref(onReleaseRequested)
+ }, {
+ default: withCtx(() => [
+ renderSlot(_ctx.$slots, "default")
+ ]),
+ _: 3
+ }, 8, ["trapped", "focus-trap-el", "focus-start-el", "onFocusAfterTrapped", "onFocusAfterReleased", "onFocusin", "onFocusoutPrevented", "onReleaseRequested"])
+ ], 16);
+ };
+ }
+});
+var ElPopperContent = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/popper/src/content.vue"]]);
+const ElPopper = withInstall(Popper);
+const TOOLTIP_INJECTION_KEY = Symbol("elTooltip");
+const useTooltipContentProps = buildProps({
+ ...useDelayedToggleProps,
+ ...popperContentProps,
+ appendTo: {
+ type: definePropType([String, Object])
+ },
+ content: {
+ type: String,
+ default: ""
+ },
+ rawContent: {
+ type: Boolean,
+ default: false
+ },
+ persistent: Boolean,
+ ariaLabel: String,
+ visible: {
+ type: definePropType(Boolean),
+ default: null
+ },
+ transition: String,
+ teleported: {
+ type: Boolean,
+ default: true
+ },
+ disabled: Boolean
+});
+const useTooltipTriggerProps = buildProps({
+ ...popperTriggerProps,
+ disabled: Boolean,
+ trigger: {
+ type: definePropType([String, Array]),
+ default: "hover"
+ },
+ triggerKeys: {
+ type: definePropType(Array),
+ default: () => [EVENT_CODE.enter, EVENT_CODE.space]
+ }
+});
+const {
+ useModelToggleProps: useTooltipModelToggleProps,
+ useModelToggleEmits: useTooltipModelToggleEmits,
+ useModelToggle: useTooltipModelToggle
+} = createModelToggleComposable("visible");
+const useTooltipProps = buildProps({
+ ...popperProps,
+ ...useTooltipModelToggleProps,
+ ...useTooltipContentProps,
+ ...useTooltipTriggerProps,
+ ...popperArrowProps,
+ showArrow: {
+ type: Boolean,
+ default: true
+ }
+});
+const tooltipEmits = [
+ ...useTooltipModelToggleEmits,
+ "before-show",
+ "before-hide",
+ "show",
+ "hide",
+ "open",
+ "close"
+];
+const isTriggerType = (trigger, type) => {
+ if (isArray(trigger)) {
+ return trigger.includes(type);
+ }
+ return trigger === type;
+};
+const whenTrigger = (trigger, type, handler) => {
+ return (e) => {
+ isTriggerType(unref(trigger), type) && handler(e);
+ };
+};
+const __default__$2 = defineComponent({
+ name: "ElTooltipTrigger"
+});
+const _sfc_main$2 = /* @__PURE__ */ defineComponent({
+ ...__default__$2,
+ props: useTooltipTriggerProps,
+ setup(__props, { expose }) {
+ const props = __props;
+ const ns = useNamespace("tooltip");
+ const { controlled, id, open, onOpen, onClose, onToggle } = inject(TOOLTIP_INJECTION_KEY, void 0);
+ const triggerRef = ref(null);
+ const stopWhenControlledOrDisabled = () => {
+ if (unref(controlled) || props.disabled) {
+ return true;
+ }
+ };
+ const trigger = toRef(props, "trigger");
+ const onMouseenter = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "hover", onOpen));
+ const onMouseleave = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "hover", onClose));
+ const onClick = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "click", (e) => {
+ if (e.button === 0) {
+ onToggle(e);
+ }
+ }));
+ const onFocus = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "focus", onOpen));
+ const onBlur = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "focus", onClose));
+ const onContextMenu = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "contextmenu", (e) => {
+ e.preventDefault();
+ onToggle(e);
+ }));
+ const onKeydown = composeEventHandlers(stopWhenControlledOrDisabled, (e) => {
+ const { code } = e;
+ if (props.triggerKeys.includes(code)) {
+ e.preventDefault();
+ onToggle(e);
+ }
+ });
+ expose({
+ triggerRef
+ });
+ return (_ctx, _cache) => {
+ return openBlock(), createBlock(unref(ElPopperTrigger), {
+ id: unref(id),
+ "virtual-ref": _ctx.virtualRef,
+ open: unref(open),
+ "virtual-triggering": _ctx.virtualTriggering,
+ class: normalizeClass(unref(ns).e("trigger")),
+ onBlur: unref(onBlur),
+ onClick: unref(onClick),
+ onContextmenu: unref(onContextMenu),
+ onFocus: unref(onFocus),
+ onMouseenter: unref(onMouseenter),
+ onMouseleave: unref(onMouseleave),
+ onKeydown: unref(onKeydown)
+ }, {
+ default: withCtx(() => [
+ renderSlot(_ctx.$slots, "default")
+ ]),
+ _: 3
+ }, 8, ["id", "virtual-ref", "open", "virtual-triggering", "class", "onBlur", "onClick", "onContextmenu", "onFocus", "onMouseenter", "onMouseleave", "onKeydown"]);
+ };
+ }
+});
+var ElTooltipTrigger = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/trigger.vue"]]);
+const __default__$1 = defineComponent({
+ name: "ElTooltipContent",
+ inheritAttrs: false
+});
+const _sfc_main$1 = /* @__PURE__ */ defineComponent({
+ ...__default__$1,
+ props: useTooltipContentProps,
+ setup(__props, { expose }) {
+ const props = __props;
+ const { selector } = usePopperContainerId();
+ const ns = useNamespace("tooltip");
+ const contentRef = ref(null);
+ const destroyed = ref(false);
+ const {
+ controlled,
+ id,
+ open,
+ trigger,
+ onClose,
+ onOpen,
+ onShow,
+ onHide,
+ onBeforeShow,
+ onBeforeHide
+ } = inject(TOOLTIP_INJECTION_KEY, void 0);
+ const transitionClass = computed(() => {
+ return props.transition || `${ns.namespace.value}-fade-in-linear`;
+ });
+ const persistentRef = computed(() => {
+ return props.persistent;
+ });
+ const shouldRender = computed(() => {
+ return unref(persistentRef) ? true : unref(open);
+ });
+ const shouldShow = computed(() => {
+ return props.disabled ? false : unref(open);
+ });
+ const appendTo = computed(() => {
+ return props.appendTo || selector.value;
+ });
+ const contentStyle = computed(() => {
+ var _a;
+ return (_a = props.style) != null ? _a : {};
+ });
+ const ariaHidden = computed(() => !unref(open));
+ const onTransitionLeave = () => {
+ onHide();
+ };
+ const stopWhenControlled = () => {
+ if (unref(controlled))
+ return true;
+ };
+ const onContentEnter = composeEventHandlers(stopWhenControlled, () => {
+ if (props.enterable && unref(trigger) === "hover") {
+ onOpen();
+ }
+ });
+ const onContentLeave = composeEventHandlers(stopWhenControlled, () => {
+ if (unref(trigger) === "hover") {
+ onClose();
+ }
+ });
+ const onBeforeEnter = () => {
+ var _a, _b;
+ (_b = (_a = contentRef.value) == null ? void 0 : _a.updatePopper) == null ? void 0 : _b.call(_a);
+ onBeforeShow == null ? void 0 : onBeforeShow();
+ };
+ const onBeforeLeave = () => {
+ onBeforeHide == null ? void 0 : onBeforeHide();
+ };
+ const onAfterShow = () => {
+ onShow();
+ stopHandle = onClickOutside(computed(() => {
+ var _a;
+ return (_a = contentRef.value) == null ? void 0 : _a.popperContentRef;
+ }), () => {
+ if (unref(controlled))
+ return;
+ const $trigger = unref(trigger);
+ if ($trigger !== "hover") {
+ onClose();
+ }
+ });
+ };
+ const onBlur = () => {
+ if (!props.virtualTriggering) {
+ onClose();
+ }
+ };
+ let stopHandle;
+ watch(() => unref(open), (val) => {
+ if (!val) {
+ stopHandle == null ? void 0 : stopHandle();
+ }
+ }, {
+ flush: "post"
+ });
+ watch(() => props.content, () => {
+ var _a, _b;
+ (_b = (_a = contentRef.value) == null ? void 0 : _a.updatePopper) == null ? void 0 : _b.call(_a);
+ });
+ expose({
+ contentRef
+ });
+ return (_ctx, _cache) => {
+ return openBlock(), createBlock(Teleport, {
+ disabled: !_ctx.teleported,
+ to: unref(appendTo)
+ }, [
+ createVNode(Transition, {
+ name: unref(transitionClass),
+ onAfterLeave: onTransitionLeave,
+ onBeforeEnter,
+ onAfterEnter: onAfterShow,
+ onBeforeLeave
+ }, {
+ default: withCtx(() => [
+ unref(shouldRender) ? withDirectives((openBlock(), createBlock(unref(ElPopperContent), mergeProps({
+ key: 0,
+ id: unref(id),
+ ref_key: "contentRef",
+ ref: contentRef
+ }, _ctx.$attrs, {
+ "aria-label": _ctx.ariaLabel,
+ "aria-hidden": unref(ariaHidden),
+ "boundaries-padding": _ctx.boundariesPadding,
+ "fallback-placements": _ctx.fallbackPlacements,
+ "gpu-acceleration": _ctx.gpuAcceleration,
+ offset: _ctx.offset,
+ placement: _ctx.placement,
+ "popper-options": _ctx.popperOptions,
+ strategy: _ctx.strategy,
+ effect: _ctx.effect,
+ enterable: _ctx.enterable,
+ pure: _ctx.pure,
+ "popper-class": _ctx.popperClass,
+ "popper-style": [_ctx.popperStyle, unref(contentStyle)],
+ "reference-el": _ctx.referenceEl,
+ "trigger-target-el": _ctx.triggerTargetEl,
+ visible: unref(shouldShow),
+ "z-index": _ctx.zIndex,
+ onMouseenter: unref(onContentEnter),
+ onMouseleave: unref(onContentLeave),
+ onBlur,
+ onClose: unref(onClose)
+ }), {
+ default: withCtx(() => [
+ !destroyed.value ? renderSlot(_ctx.$slots, "default", { key: 0 }) : createCommentVNode("v-if", true)
+ ]),
+ _: 3
+ }, 16, ["id", "aria-label", "aria-hidden", "boundaries-padding", "fallback-placements", "gpu-acceleration", "offset", "placement", "popper-options", "strategy", "effect", "enterable", "pure", "popper-class", "popper-style", "reference-el", "trigger-target-el", "visible", "z-index", "onMouseenter", "onMouseleave", "onClose"])), [
+ [vShow, unref(shouldShow)]
+ ]) : createCommentVNode("v-if", true)
+ ]),
+ _: 3
+ }, 8, ["name"])
+ ], 8, ["disabled", "to"]);
+ };
+ }
+});
+var ElTooltipContent = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/content.vue"]]);
+const _hoisted_1 = ["innerHTML"];
+const _hoisted_2 = { key: 1 };
+const __default__ = defineComponent({
+ name: "ElTooltip"
+});
+const _sfc_main = /* @__PURE__ */ defineComponent({
+ ...__default__,
+ props: useTooltipProps,
+ emits: tooltipEmits,
+ setup(__props, { expose, emit }) {
+ const props = __props;
+ usePopperContainer();
+ const id = useId();
+ const popperRef = ref();
+ const contentRef = ref();
+ const updatePopper = () => {
+ var _a;
+ const popperComponent = unref(popperRef);
+ if (popperComponent) {
+ (_a = popperComponent.popperInstanceRef) == null ? void 0 : _a.update();
+ }
+ };
+ const open = ref(false);
+ const toggleReason = ref();
+ const { show, hide, hasUpdateHandler } = useTooltipModelToggle({
+ indicator: open,
+ toggleReason
+ });
+ const { onOpen, onClose } = useDelayedToggle({
+ showAfter: toRef(props, "showAfter"),
+ hideAfter: toRef(props, "hideAfter"),
+ autoClose: toRef(props, "autoClose"),
+ open: show,
+ close: hide
+ });
+ const controlled = computed(() => isBoolean(props.visible) && !hasUpdateHandler.value);
+ provide(TOOLTIP_INJECTION_KEY, {
+ controlled,
+ id,
+ open: readonly(open),
+ trigger: toRef(props, "trigger"),
+ onOpen: (event) => {
+ onOpen(event);
+ },
+ onClose: (event) => {
+ onClose(event);
+ },
+ onToggle: (event) => {
+ if (unref(open)) {
+ onClose(event);
+ } else {
+ onOpen(event);
+ }
+ },
+ onShow: () => {
+ emit("show", toggleReason.value);
+ },
+ onHide: () => {
+ emit("hide", toggleReason.value);
+ },
+ onBeforeShow: () => {
+ emit("before-show", toggleReason.value);
+ },
+ onBeforeHide: () => {
+ emit("before-hide", toggleReason.value);
+ },
+ updatePopper
+ });
+ watch(() => props.disabled, (disabled) => {
+ if (disabled && open.value) {
+ open.value = false;
+ }
+ });
+ const isFocusInsideContent = (event) => {
+ var _a, _b;
+ const popperContent = (_b = (_a = contentRef.value) == null ? void 0 : _a.contentRef) == null ? void 0 : _b.popperContentRef;
+ const activeElement = (event == null ? void 0 : event.relatedTarget) || document.activeElement;
+ return popperContent && popperContent.contains(activeElement);
+ };
+ expose({
+ popperRef,
+ contentRef,
+ isFocusInsideContent,
+ updatePopper,
+ onOpen,
+ onClose,
+ hide
+ });
+ return (_ctx, _cache) => {
+ return openBlock(), createBlock(unref(ElPopper), {
+ ref_key: "popperRef",
+ ref: popperRef,
+ role: _ctx.role
+ }, {
+ default: withCtx(() => [
+ createVNode(ElTooltipTrigger, {
+ disabled: _ctx.disabled,
+ trigger: _ctx.trigger,
+ "trigger-keys": _ctx.triggerKeys,
+ "virtual-ref": _ctx.virtualRef,
+ "virtual-triggering": _ctx.virtualTriggering
+ }, {
+ default: withCtx(() => [
+ _ctx.$slots.default ? renderSlot(_ctx.$slots, "default", { key: 0 }) : createCommentVNode("v-if", true)
+ ]),
+ _: 3
+ }, 8, ["disabled", "trigger", "trigger-keys", "virtual-ref", "virtual-triggering"]),
+ createVNode(ElTooltipContent, {
+ ref_key: "contentRef",
+ ref: contentRef,
+ "aria-label": _ctx.ariaLabel,
+ "boundaries-padding": _ctx.boundariesPadding,
+ content: _ctx.content,
+ disabled: _ctx.disabled,
+ effect: _ctx.effect,
+ enterable: _ctx.enterable,
+ "fallback-placements": _ctx.fallbackPlacements,
+ "hide-after": _ctx.hideAfter,
+ "gpu-acceleration": _ctx.gpuAcceleration,
+ offset: _ctx.offset,
+ persistent: _ctx.persistent,
+ "popper-class": _ctx.popperClass,
+ "popper-style": _ctx.popperStyle,
+ placement: _ctx.placement,
+ "popper-options": _ctx.popperOptions,
+ pure: _ctx.pure,
+ "raw-content": _ctx.rawContent,
+ "reference-el": _ctx.referenceEl,
+ "trigger-target-el": _ctx.triggerTargetEl,
+ "show-after": _ctx.showAfter,
+ strategy: _ctx.strategy,
+ teleported: _ctx.teleported,
+ transition: _ctx.transition,
+ "virtual-triggering": _ctx.virtualTriggering,
+ "z-index": _ctx.zIndex,
+ "append-to": _ctx.appendTo
+ }, {
+ default: withCtx(() => [
+ renderSlot(_ctx.$slots, "content", {}, () => [
+ _ctx.rawContent ? (openBlock(), createElementBlock("span", {
+ key: 0,
+ innerHTML: _ctx.content
+ }, null, 8, _hoisted_1)) : (openBlock(), createElementBlock("span", _hoisted_2, toDisplayString(_ctx.content), 1))
+ ]),
+ _ctx.showArrow ? (openBlock(), createBlock(unref(ElPopperArrow), {
+ key: 0,
+ "arrow-offset": _ctx.arrowOffset
+ }, null, 8, ["arrow-offset"])) : createCommentVNode("v-if", true)
+ ]),
+ _: 3
+ }, 8, ["aria-label", "boundaries-padding", "content", "disabled", "effect", "enterable", "fallback-placements", "hide-after", "gpu-acceleration", "offset", "persistent", "popper-class", "popper-style", "placement", "popper-options", "pure", "raw-content", "reference-el", "trigger-target-el", "show-after", "strategy", "teleported", "transition", "virtual-triggering", "z-index", "append-to"])
+ ]),
+ _: 3
+ }, 8, ["role"]);
+ };
+ }
+});
+var Tooltip = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/tooltip/src/tooltip.vue"]]);
+const ElTooltip = withInstall(Tooltip);
+
+export { ElTooltip as E, TOOLTIP_INJECTION_KEY as T, useTooltipContentProps as a, formItemContextKey as b, formContextKey as f, useTooltipTriggerProps as u };
+//# sourceMappingURL=el-popper-6f31b937.mjs.map
diff --git a/.output/server/chunks/app/_nuxt/el-popper-6f31b937.mjs.map b/.output/server/chunks/app/_nuxt/el-popper-6f31b937.mjs.map
new file mode 100644
index 0000000..19cad38
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/el-popper-6f31b937.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"el-popper-6f31b937.mjs","sources":["../../../../../.nuxt/dist/server/_nuxt/el-popper-6f31b937.js"],"sourcesContent":null,"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/.output/server/chunks/app/_nuxt/entry-styles.582d7478.mjs b/.output/server/chunks/app/_nuxt/entry-styles.582d7478.mjs
new file mode 100644
index 0000000..695fa75
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/entry-styles.582d7478.mjs
@@ -0,0 +1,6 @@
+const app_vue_vue_type_style_index_0_lang = "*{box-sizing:border-box;font-family:PingFangSC-Regular,PingFang SC,sans-serif;margin:0;padding:0}.flexflex{display:flex}.flex1{flex:1}.flexcenter{justify-content:center}.flexacenter,.flexcenter{align-items:center;display:flex}.flexjcenter{display:flex;justify-content:center}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body{background-color:#eef2f5}a{text-decoration:none!important}::-webkit-scrollbar{background-color:transparent;width:8px}::-webkit-scrollbar-thumb{background-color:#d7d7d7;border-radius:4px}::-webkit-scrollbar-thumb:hover{background-color:#666}*{scrollbar-color:#d7d7d7 transparent;scrollbar-width:thin}::-moz-scrollbar-thumb{background-color:#d7d7d7}::-moz-scrollbar-thumb:hover{background-color:#666}header.page-header .box .tab-list .item.pitch{color:#72db86!important}header.page-header .box .tab-list .item.pitch:after{background-color:#72db86!important}.avatar-box{background-color:#f4f8ff;border:1px solid #dce0ea;border-radius:10px;flex-direction:column;height:101px;z-index:100}.avatar-box .avatar-mask{cursor:auto;height:100%;left:0;position:fixed;top:0;width:100%;z-index:-1}.avatar-box .avatar-item{color:#333;cursor:pointer;font-size:14px;height:50px}.avatar-box .avatar-item:not(:last-of-type){border-bottom:1px dotted #d7d7d7}.avatar-box .avatar-icon{height:16px;margin-right:5px;width:16px}.el-popover.el-popper.avatar-box-popper{border:none;border-radius:10px;min-width:140px;padding:0}";
+
+const entryStyles_582d7478 = [app_vue_vue_type_style_index_0_lang];
+
+export { entryStyles_582d7478 as default };
+//# sourceMappingURL=entry-styles.582d7478.mjs.map
diff --git a/.output/server/chunks/app/_nuxt/entry-styles.582d7478.mjs.map b/.output/server/chunks/app/_nuxt/entry-styles.582d7478.mjs.map
new file mode 100644
index 0000000..eb095c6
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/entry-styles.582d7478.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"entry-styles.582d7478.mjs","sources":["../../../../../.nuxt/dist/server/_nuxt/entry-styles-1.mjs-dd00f040.js","../../../../../.nuxt/dist/server/_nuxt/entry-styles.582d7478.mjs"],"sourcesContent":null,"names":["style_0"],"mappings":"AAAA,MAAM,mCAAsC,GAAA,y6CAAA;;ACC5C,6BAAe,CAACA,mCAAO;;;;"}
\ No newline at end of file
diff --git a/.output/server/chunks/app/_nuxt/error-404-28503570.mjs b/.output/server/chunks/app/_nuxt/error-404-28503570.mjs
new file mode 100644
index 0000000..93cd7c6
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/error-404-28503570.mjs
@@ -0,0 +1,283 @@
+import { useSSRContext, mergeProps, withCtx, createTextVNode, toDisplayString, defineComponent, computed, ref, h, resolveComponent } from 'vue';
+import { l as hasProtocol, j as joinURL, p as parseURL, q as parseQuery, r as withTrailingSlash, t as withoutTrailingSlash } from '../../nitro/node-server.mjs';
+import { u as useRouter, n as nuxtLinkDefaults, a as useRuntimeConfig, b as navigateTo } from '../server.mjs';
+import { _ as _export_sfc, u as useHead } from './_plugin-vue_export-helper-e3874580.mjs';
+import { ssrRenderAttrs, ssrInterpolate, ssrRenderComponent } from 'vue/server-renderer';
+import 'node:http';
+import 'node:https';
+import 'fs';
+import 'path';
+import 'node:fs';
+import 'node:url';
+import 'unhead';
+import '@unhead/shared';
+import 'vue-router';
+
+const firstNonUndefined = (...args) => args.find((arg) => arg !== void 0);
+const DEFAULT_EXTERNAL_REL_ATTRIBUTE = "noopener noreferrer";
+/*! @__NO_SIDE_EFFECTS__ */
+// @__NO_SIDE_EFFECTS__
+function defineNuxtLink(options) {
+ const componentName = options.componentName || "NuxtLink";
+ const resolveTrailingSlashBehavior = (to, resolve) => {
+ if (!to || options.trailingSlash !== "append" && options.trailingSlash !== "remove") {
+ return to;
+ }
+ const normalizeTrailingSlash = options.trailingSlash === "append" ? withTrailingSlash : withoutTrailingSlash;
+ if (typeof to === "string") {
+ return normalizeTrailingSlash(to, true);
+ }
+ const path = "path" in to ? to.path : resolve(to).path;
+ return {
+ ...to,
+ name: void 0,
+ // named routes would otherwise always override trailing slash behavior
+ path: normalizeTrailingSlash(path, true)
+ };
+ };
+ return defineComponent({
+ name: componentName,
+ props: {
+ // Routing
+ to: {
+ type: [String, Object],
+ default: void 0,
+ required: false
+ },
+ href: {
+ type: [String, Object],
+ default: void 0,
+ required: false
+ },
+ // Attributes
+ target: {
+ type: String,
+ default: void 0,
+ required: false
+ },
+ rel: {
+ type: String,
+ default: void 0,
+ required: false
+ },
+ noRel: {
+ type: Boolean,
+ default: void 0,
+ required: false
+ },
+ // Prefetching
+ prefetch: {
+ type: Boolean,
+ default: void 0,
+ required: false
+ },
+ noPrefetch: {
+ type: Boolean,
+ default: void 0,
+ required: false
+ },
+ // Styling
+ activeClass: {
+ type: String,
+ default: void 0,
+ required: false
+ },
+ exactActiveClass: {
+ type: String,
+ default: void 0,
+ required: false
+ },
+ prefetchedClass: {
+ type: String,
+ default: void 0,
+ required: false
+ },
+ // Vue Router's `` additional props
+ replace: {
+ type: Boolean,
+ default: void 0,
+ required: false
+ },
+ ariaCurrentValue: {
+ type: String,
+ default: void 0,
+ required: false
+ },
+ // Edge cases handling
+ external: {
+ type: Boolean,
+ default: void 0,
+ required: false
+ },
+ // Slot API
+ custom: {
+ type: Boolean,
+ default: void 0,
+ required: false
+ }
+ },
+ setup(props, { slots }) {
+ const router = useRouter();
+ const config = useRuntimeConfig();
+ const to = computed(() => {
+ const path = props.to || props.href || "";
+ return resolveTrailingSlashBehavior(path, router.resolve);
+ });
+ const isProtocolURL = computed(() => typeof to.value === "string" && hasProtocol(to.value, { acceptRelative: true }));
+ const isExternal = computed(() => {
+ if (props.external) {
+ return true;
+ }
+ if (props.target && props.target !== "_self") {
+ return true;
+ }
+ if (typeof to.value === "object") {
+ return false;
+ }
+ return to.value === "" || isProtocolURL.value;
+ });
+ const prefetched = ref(false);
+ const el = void 0;
+ const elRef = void 0;
+ return () => {
+ var _a2;
+ var _a, _b;
+ if (!isExternal.value) {
+ const routerLinkProps = {
+ ref: elRef,
+ to: to.value,
+ activeClass: props.activeClass || options.activeClass,
+ exactActiveClass: props.exactActiveClass || options.exactActiveClass,
+ replace: props.replace,
+ ariaCurrentValue: props.ariaCurrentValue,
+ custom: props.custom
+ };
+ if (!props.custom) {
+ if (prefetched.value) {
+ routerLinkProps.class = props.prefetchedClass || options.prefetchedClass;
+ }
+ routerLinkProps.rel = props.rel;
+ }
+ return h(
+ resolveComponent("RouterLink"),
+ routerLinkProps,
+ slots.default
+ );
+ }
+ const href = typeof to.value === "object" ? (_a2 = (_a = router.resolve(to.value)) == null ? void 0 : _a.href) != null ? _a2 : null : to.value && !props.external && !isProtocolURL.value ? resolveTrailingSlashBehavior(joinURL(config.app.baseURL, to.value), router.resolve) : to.value || null;
+ const target = props.target || null;
+ const rel = props.noRel ? null : firstNonUndefined(props.rel, options.externalRelAttribute, href ? DEFAULT_EXTERNAL_REL_ATTRIBUTE : "") || null;
+ const navigate = () => navigateTo(href, { replace: props.replace });
+ if (props.custom) {
+ if (!slots.default) {
+ return null;
+ }
+ return slots.default({
+ href,
+ navigate,
+ get route() {
+ if (!href) {
+ return void 0;
+ }
+ const url = parseURL(href);
+ return {
+ path: url.pathname,
+ fullPath: url.pathname,
+ get query() {
+ return parseQuery(url.search);
+ },
+ hash: url.hash,
+ // stub properties for compat with vue-router
+ params: {},
+ name: void 0,
+ matched: [],
+ redirectedFrom: void 0,
+ meta: {},
+ href
+ };
+ },
+ rel,
+ target,
+ isExternal: isExternal.value,
+ isActive: false,
+ isExactActive: false
+ });
+ }
+ return h("a", { ref: el, href, rel, target }, (_b = slots.default) == null ? void 0 : _b.call(slots));
+ };
+ }
+ });
+}
+const __nuxt_component_0 = /* @__PURE__ */ defineNuxtLink(nuxtLinkDefaults);
+const _sfc_main = {
+ __name: "error-404",
+ __ssrInlineRender: true,
+ props: {
+ appName: {
+ type: String,
+ default: "Nuxt"
+ },
+ version: {
+ type: String,
+ default: ""
+ },
+ statusCode: {
+ type: Number,
+ default: 404
+ },
+ statusMessage: {
+ type: String,
+ default: "Not Found"
+ },
+ description: {
+ type: String,
+ default: "Sorry, the page you are looking for could not be found."
+ },
+ backHome: {
+ type: String,
+ default: "Go back home"
+ }
+ },
+ setup(__props) {
+ const props = __props;
+ useHead({
+ title: `${props.statusCode} - ${props.statusMessage} | ${props.appName}`,
+ script: [],
+ style: [
+ {
+ children: `*,:before,:after{-webkit-box-sizing:border-box;box-sizing:border-box;border-width:0;border-style:solid;border-color:#e0e0e0}*{--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(14, 165, 233, .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000}:root{-moz-tab-size:4;-o-tab-size:4;tab-size:4}a{color:inherit;text-decoration:inherit}body{margin:0;font-family:inherit;line-height:inherit}html{-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5}h1,p{margin:0}h1{font-size:inherit;font-weight:inherit}`
+ }
+ ]
+ });
+ return (_ctx, _push, _parent, _attrs) => {
+ const _component_NuxtLink = __nuxt_component_0;
+ _push(`
${ssrInterpolate(__props.statusCode)} ${ssrInterpolate(__props.description)}
`);
+ _push(ssrRenderComponent(_component_NuxtLink, {
+ to: "/",
+ class: "gradient-border text-md sm:text-xl py-2 px-4 sm:py-3 sm:px-6 cursor-pointer"
+ }, {
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
+ if (_push2) {
+ _push2(`${ssrInterpolate(__props.backHome)}`);
+ } else {
+ return [
+ createTextVNode(toDisplayString(__props.backHome), 1)
+ ];
+ }
+ }),
+ _: 1
+ }, _parent));
+ _push(`
`);
+ };
+ }
+};
+const _sfc_setup = _sfc_main.setup;
+_sfc_main.setup = (props, ctx) => {
+ const ssrContext = useSSRContext();
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("node_modules/@nuxt/ui-templates/dist/templates/error-404.vue");
+ return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
+};
+const error404 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-ccd3db62"]]);
+
+export { error404 as default };
+//# sourceMappingURL=error-404-28503570.mjs.map
diff --git a/.output/server/chunks/app/_nuxt/error-404-28503570.mjs.map b/.output/server/chunks/app/_nuxt/error-404-28503570.mjs.map
new file mode 100644
index 0000000..6f4d358
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/error-404-28503570.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"error-404-28503570.mjs","sources":["../../../../../.nuxt/dist/server/_nuxt/error-404-28503570.js"],"sourcesContent":null,"names":["_a"],"mappings":"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"}
\ No newline at end of file
diff --git a/.output/server/chunks/app/_nuxt/error-404-styles.1e0dde27.mjs b/.output/server/chunks/app/_nuxt/error-404-styles.1e0dde27.mjs
new file mode 100644
index 0000000..19bf0e6
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/error-404-styles.1e0dde27.mjs
@@ -0,0 +1,6 @@
+const error404_vue_vue_type_style_index_0_scoped_ccd3db62_lang = '.spotlight[data-v-ccd3db62]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);bottom:-30vh;filter:blur(20vh);height:40vh}.gradient-border[data-v-ccd3db62]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;position:relative}@media (prefers-color-scheme:light){.gradient-border[data-v-ccd3db62]{background-color:hsla(0,0%,100%,.3)}.gradient-border[data-v-ccd3db62]:before{background:linear-gradient(90deg,#e2e2e2,#e2e2e2 25%,#00dc82 50%,#36e4da 75%,#0047e1)}}@media (prefers-color-scheme:dark){.gradient-border[data-v-ccd3db62]{background-color:hsla(0,0%,8%,.3)}.gradient-border[data-v-ccd3db62]:before{background:linear-gradient(90deg,#303030,#303030 25%,#00dc82 50%,#36e4da 75%,#0047e1)}}.gradient-border[data-v-ccd3db62]:before{background-size:400% auto;border-radius:.5rem;bottom:0;content:"";left:0;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;padding:2px;position:absolute;right:0;top:0;transition:background-position .3s ease-in-out,opacity .2s ease-in-out;width:100%}.gradient-border[data-v-ccd3db62]:hover:before{background-position:-50% 0;opacity:1}.bg-white[data-v-ccd3db62]{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.cursor-pointer[data-v-ccd3db62]{cursor:pointer}.flex[data-v-ccd3db62]{display:flex}.grid[data-v-ccd3db62]{display:grid}.place-content-center[data-v-ccd3db62]{place-content:center}.items-center[data-v-ccd3db62]{align-items:center}.justify-center[data-v-ccd3db62]{justify-content:center}.font-sans[data-v-ccd3db62]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.font-medium[data-v-ccd3db62]{font-weight:500}.font-light[data-v-ccd3db62]{font-weight:300}.text-8xl[data-v-ccd3db62]{font-size:6rem;line-height:1}.text-xl[data-v-ccd3db62]{font-size:1.25rem;line-height:1.75rem}.leading-tight[data-v-ccd3db62]{line-height:1.25}.mb-8[data-v-ccd3db62]{margin-bottom:2rem}.mb-16[data-v-ccd3db62]{margin-bottom:4rem}.max-w-520px[data-v-ccd3db62]{max-width:520px}.min-h-screen[data-v-ccd3db62]{min-height:100vh}.overflow-hidden[data-v-ccd3db62]{overflow:hidden}.px-8[data-v-ccd3db62]{padding-left:2rem;padding-right:2rem}.py-2[data-v-ccd3db62]{padding-bottom:.5rem;padding-top:.5rem}.px-4[data-v-ccd3db62]{padding-left:1rem;padding-right:1rem}.fixed[data-v-ccd3db62]{position:fixed}.left-0[data-v-ccd3db62]{left:0}.right-0[data-v-ccd3db62]{right:0}.text-center[data-v-ccd3db62]{text-align:center}.text-black[data-v-ccd3db62]{--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}.antialiased[data-v-ccd3db62]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.w-full[data-v-ccd3db62]{width:100%}.z-10[data-v-ccd3db62]{z-index:10}.z-20[data-v-ccd3db62]{z-index:20}@media (min-width:640px){.sm\\:text-4xl[data-v-ccd3db62]{font-size:2.25rem;line-height:2.5rem}.sm\\:text-xl[data-v-ccd3db62]{font-size:1.25rem;line-height:1.75rem}.sm\\:text-10xl[data-v-ccd3db62]{font-size:10rem;line-height:1}.sm\\:px-0[data-v-ccd3db62]{padding-left:0;padding-right:0}.sm\\:py-3[data-v-ccd3db62]{padding-bottom:.75rem;padding-top:.75rem}.sm\\:px-6[data-v-ccd3db62]{padding-left:1.5rem;padding-right:1.5rem}}@media (prefers-color-scheme:dark){.dark\\:bg-black[data-v-ccd3db62]{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity))}.dark\\:text-white[data-v-ccd3db62]{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}}';
+
+const error404Styles_1e0dde27 = [error404_vue_vue_type_style_index_0_scoped_ccd3db62_lang, error404_vue_vue_type_style_index_0_scoped_ccd3db62_lang];
+
+export { error404Styles_1e0dde27 as default };
+//# sourceMappingURL=error-404-styles.1e0dde27.mjs.map
diff --git a/.output/server/chunks/app/_nuxt/error-404-styles.1e0dde27.mjs.map b/.output/server/chunks/app/_nuxt/error-404-styles.1e0dde27.mjs.map
new file mode 100644
index 0000000..48f8fd1
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/error-404-styles.1e0dde27.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"error-404-styles.1e0dde27.mjs","sources":["../../../../../.nuxt/dist/server/_nuxt/error-404-styles-1.mjs-e0837f4f.js","../../../../../.nuxt/dist/server/_nuxt/error-404-styles.1e0dde27.mjs"],"sourcesContent":null,"names":["style_0","style_1"],"mappings":"AAAA,MAAM,wDAA2D,GAAA,ukHAAA;;ACEjE,gCAAe,CAACA,wDAAO,EAAEC,wDAAO;;;;"}
\ No newline at end of file
diff --git a/.output/server/chunks/app/_nuxt/error-500-1b10eb7c.mjs b/.output/server/chunks/app/_nuxt/error-500-1b10eb7c.mjs
new file mode 100644
index 0000000..f6174bf
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/error-500-1b10eb7c.mjs
@@ -0,0 +1,66 @@
+import { _ as _export_sfc, u as useHead } from './_plugin-vue_export-helper-e3874580.mjs';
+import { useSSRContext, mergeProps } from 'vue';
+import { ssrRenderAttrs, ssrInterpolate } from 'vue/server-renderer';
+import '../server.mjs';
+import '../../nitro/node-server.mjs';
+import 'node:http';
+import 'node:https';
+import 'fs';
+import 'path';
+import 'node:fs';
+import 'node:url';
+import 'unhead';
+import '@unhead/shared';
+import 'vue-router';
+
+const _sfc_main = {
+ __name: "error-500",
+ __ssrInlineRender: true,
+ props: {
+ appName: {
+ type: String,
+ default: "Nuxt"
+ },
+ version: {
+ type: String,
+ default: ""
+ },
+ statusCode: {
+ type: Number,
+ default: 500
+ },
+ statusMessage: {
+ type: String,
+ default: "Server error"
+ },
+ description: {
+ type: String,
+ default: "This page is temporarily unavailable."
+ }
+ },
+ setup(__props) {
+ const props = __props;
+ useHead({
+ title: `${props.statusCode} - ${props.statusMessage} | ${props.appName}`,
+ script: [],
+ style: [
+ {
+ children: `*,:before,:after{-webkit-box-sizing:border-box;box-sizing:border-box;border-width:0;border-style:solid;border-color:#e0e0e0}*{--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(14, 165, 233, .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000}:root{-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{margin:0;font-family:inherit;line-height:inherit}html{-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5}h1,p{margin:0}h1{font-size:inherit;font-weight:inherit}`
+ }
+ ]
+ });
+ return (_ctx, _push, _parent, _attrs) => {
+ _push(`
${ssrInterpolate(__props.statusCode)} ${ssrInterpolate(__props.description)}
`);
+ };
+ }
+};
+const _sfc_setup = _sfc_main.setup;
+_sfc_main.setup = (props, ctx) => {
+ const ssrContext = useSSRContext();
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("node_modules/@nuxt/ui-templates/dist/templates/error-500.vue");
+ return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
+};
+const error500 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-df79c84d"]]);
+
+export { error500 as default };
+//# sourceMappingURL=error-500-1b10eb7c.mjs.map
diff --git a/.output/server/chunks/app/_nuxt/error-500-1b10eb7c.mjs.map b/.output/server/chunks/app/_nuxt/error-500-1b10eb7c.mjs.map
new file mode 100644
index 0000000..b3ddd5b
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/error-500-1b10eb7c.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"error-500-1b10eb7c.mjs","sources":["../../../../../.nuxt/dist/server/_nuxt/error-500-1b10eb7c.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;;AAoBA,MAAM,SAAY,GAAA;AAAA,EAChB,MAAQ,EAAA,WAAA;AAAA,EACR,iBAAmB,EAAA,IAAA;AAAA,EACnB,KAAO,EAAA;AAAA,IACL,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,MAAA;AAAA,MACN,OAAS,EAAA,MAAA;AAAA,KACX;AAAA,IACA,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,MAAA;AAAA,MACN,OAAS,EAAA,EAAA;AAAA,KACX;AAAA,IACA,UAAY,EAAA;AAAA,MACV,IAAM,EAAA,MAAA;AAAA,MACN,OAAS,EAAA,GAAA;AAAA,KACX;AAAA,IACA,aAAe,EAAA;AAAA,MACb,IAAM,EAAA,MAAA;AAAA,MACN,OAAS,EAAA,cAAA;AAAA,KACX;AAAA,IACA,WAAa,EAAA;AAAA,MACX,IAAM,EAAA,MAAA;AAAA,MACN,OAAS,EAAA,uCAAA;AAAA,KACX;AAAA,GACF;AAAA,EACA,MAAM,OAAS,EAAA;AACb,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AACd,IAAQ,OAAA,CAAA;AAAA,MACN,KAAA,EAAO,GAAG,KAAM,CAAA,UAAU,MAAM,KAAM,CAAA,aAAa,CAAM,GAAA,EAAA,KAAA,CAAM,OAAO,CAAA,CAAA;AAAA,MACtE,QAAQ,EAAC;AAAA,MACT,KAAO,EAAA;AAAA,QACL;AAAA,UACE,QAAU,EAAA,CAAA,uuBAAA,CAAA;AAAA,SACZ;AAAA,OACF;AAAA,KACD,CAAA,CAAA;AACD,IAAA,OAAO,CAAC,IAAA,EAAM,KAAO,EAAA,OAAA,EAAS,MAAW,KAAA;AACvC,MAAM,KAAA,CAAA,CAAA,IAAA,EAAO,eAAe,UAAW,CAAA,EAAE,OAAO,gIAAiI,EAAA,EAAG,MAAM,CAAC,CAAC,gOAAgO,cAAe,CAAA,OAAA,CAAQ,UAAU,CAAC,CAAA,gGAAA,EAAmG,eAAe,OAAQ,CAAA,WAAW,CAAC,CAAkB,gBAAA,CAAA,CAAA,CAAA;AAAA,KACxlB,CAAA;AAAA,GACF;AACF,CAAA,CAAA;AACA,MAAM,aAAa,SAAU,CAAA,KAAA,CAAA;AAC7B,SAAU,CAAA,KAAA,GAAQ,CAAC,KAAA,EAAO,GAAQ,KAAA;AAChC,EAAA,MAAM,aAAa,aAAc,EAAA,CAAA;AACjC,EAAC,CAAA,UAAA,CAAW,YAAY,UAAW,CAAA,OAAA,uBAA8B,GAAI,EAAA,CAAA,EAAI,IAAI,8DAA8D,CAAA,CAAA;AAC3I,EAAA,OAAO,UAAa,GAAA,UAAA,CAAW,KAAO,EAAA,GAAG,CAAI,GAAA,KAAA,CAAA,CAAA;AAC/C,CAAA,CAAA;AACM,MAAA,QAAA,+BAAuC,SAAW,EAAA,CAAC,CAAC,WAAa,EAAA,iBAAiB,CAAC,CAAC;;;;"}
\ No newline at end of file
diff --git a/.output/server/chunks/app/_nuxt/error-500-styles.cf4b3e80.mjs b/.output/server/chunks/app/_nuxt/error-500-styles.cf4b3e80.mjs
new file mode 100644
index 0000000..7a5b299
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/error-500-styles.cf4b3e80.mjs
@@ -0,0 +1,6 @@
+const error500_vue_vue_type_style_index_0_scoped_df79c84d_lang = ".spotlight[data-v-df79c84d]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);filter:blur(20vh)}.bg-white[data-v-df79c84d]{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.grid[data-v-df79c84d]{display:grid}.place-content-center[data-v-df79c84d]{place-content:center}.font-sans[data-v-df79c84d]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.font-medium[data-v-df79c84d]{font-weight:500}.font-light[data-v-df79c84d]{font-weight:300}.h-1\\/2[data-v-df79c84d]{height:50%}.text-8xl[data-v-df79c84d]{font-size:6rem;line-height:1}.text-xl[data-v-df79c84d]{font-size:1.25rem;line-height:1.75rem}.leading-tight[data-v-df79c84d]{line-height:1.25}.mb-8[data-v-df79c84d]{margin-bottom:2rem}.mb-16[data-v-df79c84d]{margin-bottom:4rem}.max-w-520px[data-v-df79c84d]{max-width:520px}.min-h-screen[data-v-df79c84d]{min-height:100vh}.overflow-hidden[data-v-df79c84d]{overflow:hidden}.px-8[data-v-df79c84d]{padding-left:2rem;padding-right:2rem}.fixed[data-v-df79c84d]{position:fixed}.left-0[data-v-df79c84d]{left:0}.right-0[data-v-df79c84d]{right:0}.-bottom-1\\/2[data-v-df79c84d]{bottom:-50%}.text-center[data-v-df79c84d]{text-align:center}.text-black[data-v-df79c84d]{--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}.antialiased[data-v-df79c84d]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (min-width:640px){.sm\\:text-4xl[data-v-df79c84d]{font-size:2.25rem;line-height:2.5rem}.sm\\:text-10xl[data-v-df79c84d]{font-size:10rem;line-height:1}.sm\\:px-0[data-v-df79c84d]{padding-left:0;padding-right:0}}@media (prefers-color-scheme:dark){.dark\\:bg-black[data-v-df79c84d]{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity))}.dark\\:text-white[data-v-df79c84d]{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}}";
+
+const error500Styles_cf4b3e80 = [error500_vue_vue_type_style_index_0_scoped_df79c84d_lang, error500_vue_vue_type_style_index_0_scoped_df79c84d_lang];
+
+export { error500Styles_cf4b3e80 as default };
+//# sourceMappingURL=error-500-styles.cf4b3e80.mjs.map
diff --git a/.output/server/chunks/app/_nuxt/error-500-styles.cf4b3e80.mjs.map b/.output/server/chunks/app/_nuxt/error-500-styles.cf4b3e80.mjs.map
new file mode 100644
index 0000000..7ca32c3
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/error-500-styles.cf4b3e80.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"error-500-styles.cf4b3e80.mjs","sources":["../../../../../.nuxt/dist/server/_nuxt/error-500-styles-1.mjs-8fa81fcc.js","../../../../../.nuxt/dist/server/_nuxt/error-500-styles.cf4b3e80.mjs"],"sourcesContent":null,"names":["style_0","style_1"],"mappings":"AAAA,MAAM,wDAA2D,GAAA,s6DAAA;;ACEjE,gCAAe,CAACA,wDAAO,EAAEC,wDAAO;;;;"}
\ No newline at end of file
diff --git a/.output/server/chunks/app/_nuxt/eye-icon-a076085e.mjs b/.output/server/chunks/app/_nuxt/eye-icon-a076085e.mjs
new file mode 100644
index 0000000..f410d45
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/eye-icon-a076085e.mjs
@@ -0,0 +1,1499 @@
+import { b as buildAssetsURL } from '../../handlers/renderer.mjs';
+import { defineComponent, computed, openBlock, createElementBlock, normalizeClass, unref, renderSlot, createVNode, Transition, withCtx, withDirectives, createElementVNode, toDisplayString, vShow, h, inject, normalizeStyle, createBlock, resolveDynamicComponent, createCommentVNode, useSlots, ref, provide, Teleport, mergeProps, createSlots, shallowReactive, watch, Fragment, withModifiers, getCurrentInstance, nextTick, useSSRContext, isRef, onScopeDispose, isVNode, createTextVNode, renderList, watchEffect, render } from 'vue';
+import { b as buildProps, n as isNumber, c as withInstall, d as definePropType, i as iconPropType, p as useLocale, F as FOCUS_TRAP_INJECTION_KEY, E as ElIcon, q as useDeprecated, s as ElFocusTrap, u as useGlobalComponentSettings, t as TypeComponentsMap, v as withInstallFunction, _ as _export_sfc, C as CloseComponents, U as UPDATE_MODEL_EVENT, e as isBoolean, x as useZIndex, y as useGlobalConfig, a as addUnit, z as mutable, A as TypeComponents, B as EVENT_CODE, D as hasClass, j as getStyle, k as addClass, G as messageConfig, g as _imports_1$3, l as removeClass, I as isElement, J as changeAnonymousHttp, K as MyUserDeleteCollectHttp, L as MyUserCollectHttp, N as MyUserPublishHttp } from './cross-icon-c0ac5209.mjs';
+import { d as useNamespace, f as useId, g as defaultNamespace, t as throwError, u as useRouter, e as useRoute } from '../server.mjs';
+import { NOOP, isFunction, isString } from '@vue/shared';
+import { useEventListener, useResizeObserver, isClient, useTimeoutFn } from '@vueuse/core';
+import { isUndefined } from 'lodash-unified';
+import { computed as computed$1 } from '@vue/reactivity';
+import { ssrRenderAttrs, ssrRenderAttr, ssrInterpolate, ssrRenderComponent, ssrRenderClass, ssrRenderList } from 'vue/server-renderer';
+import { _ as _export_sfc$1 } from './_plugin-vue_export-helper-e3874580.mjs';
+import { useRoute as useRoute$1 } from 'vue-router';
+
+let scrollBarWidth;
+const getScrollBarWidth = (namespace) => {
+ var _a;
+ if (!isClient)
+ return 0;
+ if (scrollBarWidth !== void 0)
+ return scrollBarWidth;
+ const outer = document.createElement("div");
+ outer.className = `${namespace}-scrollbar__wrap`;
+ outer.style.visibility = "hidden";
+ outer.style.width = "100px";
+ outer.style.position = "absolute";
+ outer.style.top = "-9999px";
+ document.body.appendChild(outer);
+ const widthNoScroll = outer.offsetWidth;
+ outer.style.overflow = "scroll";
+ const inner = document.createElement("div");
+ inner.style.width = "100%";
+ outer.appendChild(inner);
+ const widthWithScroll = inner.offsetWidth;
+ (_a = outer.parentNode) == null ? void 0 : _a.removeChild(outer);
+ scrollBarWidth = widthNoScroll - widthWithScroll;
+ return scrollBarWidth;
+};
+const composeRefs = (...refs) => {
+ return (el) => {
+ refs.forEach((ref2) => {
+ if (isFunction(ref2)) {
+ ref2(el);
+ } else {
+ ref2.value = el;
+ }
+ });
+ };
+};
+var PatchFlags = /* @__PURE__ */ ((PatchFlags2) => {
+ PatchFlags2[PatchFlags2["TEXT"] = 1] = "TEXT";
+ PatchFlags2[PatchFlags2["CLASS"] = 2] = "CLASS";
+ PatchFlags2[PatchFlags2["STYLE"] = 4] = "STYLE";
+ PatchFlags2[PatchFlags2["PROPS"] = 8] = "PROPS";
+ PatchFlags2[PatchFlags2["FULL_PROPS"] = 16] = "FULL_PROPS";
+ PatchFlags2[PatchFlags2["HYDRATE_EVENTS"] = 32] = "HYDRATE_EVENTS";
+ PatchFlags2[PatchFlags2["STABLE_FRAGMENT"] = 64] = "STABLE_FRAGMENT";
+ PatchFlags2[PatchFlags2["KEYED_FRAGMENT"] = 128] = "KEYED_FRAGMENT";
+ PatchFlags2[PatchFlags2["UNKEYED_FRAGMENT"] = 256] = "UNKEYED_FRAGMENT";
+ PatchFlags2[PatchFlags2["NEED_PATCH"] = 512] = "NEED_PATCH";
+ PatchFlags2[PatchFlags2["DYNAMIC_SLOTS"] = 1024] = "DYNAMIC_SLOTS";
+ PatchFlags2[PatchFlags2["HOISTED"] = -1] = "HOISTED";
+ PatchFlags2[PatchFlags2["BAIL"] = -2] = "BAIL";
+ return PatchFlags2;
+})(PatchFlags || {});
+const useLockscreen = (trigger, options = {}) => {
+ if (!isRef(trigger)) {
+ throwError("[useLockscreen]", "You need to pass a ref param to this function");
+ }
+ const ns = options.ns || useNamespace("popup");
+ const hiddenCls = computed$1(() => ns.bm("parent", "hidden"));
+ if (!isClient || hasClass(document.body, hiddenCls.value)) {
+ return;
+ }
+ let scrollBarWidth2 = 0;
+ let withoutHiddenClass = false;
+ let bodyWidth = "0";
+ const cleanup = () => {
+ setTimeout(() => {
+ removeClass(document == null ? void 0 : document.body, hiddenCls.value);
+ if (withoutHiddenClass && document) {
+ document.body.style.width = bodyWidth;
+ }
+ }, 200);
+ };
+ watch(trigger, (val) => {
+ if (!val) {
+ cleanup();
+ return;
+ }
+ withoutHiddenClass = !hasClass(document.body, hiddenCls.value);
+ if (withoutHiddenClass) {
+ bodyWidth = document.body.style.width;
+ }
+ scrollBarWidth2 = getScrollBarWidth(ns.namespace.value);
+ const bodyHasOverflow = document.documentElement.clientHeight < document.body.scrollHeight;
+ const bodyOverflowY = getStyle(document.body, "overflowY");
+ if (scrollBarWidth2 > 0 && (bodyHasOverflow || bodyOverflowY === "scroll") && withoutHiddenClass) {
+ document.body.style.width = `calc(100% - ${scrollBarWidth2}px)`;
+ }
+ addClass(document.body, hiddenCls.value);
+ });
+ onScopeDispose(() => cleanup());
+};
+const useSameTarget = (handleClick) => {
+ if (!handleClick) {
+ return { onClick: NOOP, onMousedown: NOOP, onMouseup: NOOP };
+ }
+ let mousedownTarget = false;
+ let mouseupTarget = false;
+ const onClick = (e) => {
+ if (mousedownTarget && mouseupTarget) {
+ handleClick(e);
+ }
+ mousedownTarget = mouseupTarget = false;
+ };
+ const onMousedown = (e) => {
+ mousedownTarget = e.target === e.currentTarget;
+ };
+ const onMouseup = (e) => {
+ mouseupTarget = e.target === e.currentTarget;
+ };
+ return { onClick, onMousedown, onMouseup };
+};
+const badgeProps = buildProps({
+ value: {
+ type: [String, Number],
+ default: ""
+ },
+ max: {
+ type: Number,
+ default: 99
+ },
+ isDot: Boolean,
+ hidden: Boolean,
+ type: {
+ type: String,
+ values: ["primary", "success", "warning", "info", "danger"],
+ default: "danger"
+ }
+});
+const _hoisted_1$3 = ["textContent"];
+const __default__$3 = defineComponent({
+ name: "ElBadge"
+});
+const _sfc_main$6 = /* @__PURE__ */ defineComponent({
+ ...__default__$3,
+ props: badgeProps,
+ setup(__props, { expose }) {
+ const props = __props;
+ const ns = useNamespace("badge");
+ const content = computed(() => {
+ if (props.isDot)
+ return "";
+ if (isNumber(props.value) && isNumber(props.max)) {
+ return props.max < props.value ? `${props.max}+` : `${props.value}`;
+ }
+ return `${props.value}`;
+ });
+ expose({
+ content
+ });
+ return (_ctx, _cache) => {
+ return openBlock(), createElementBlock("div", {
+ class: normalizeClass(unref(ns).b())
+ }, [
+ renderSlot(_ctx.$slots, "default"),
+ createVNode(Transition, {
+ name: `${unref(ns).namespace.value}-zoom-in-center`,
+ persisted: ""
+ }, {
+ default: withCtx(() => [
+ withDirectives(createElementVNode("sup", {
+ class: normalizeClass([
+ unref(ns).e("content"),
+ unref(ns).em("content", _ctx.type),
+ unref(ns).is("fixed", !!_ctx.$slots.default),
+ unref(ns).is("dot", _ctx.isDot)
+ ]),
+ textContent: toDisplayString(unref(content))
+ }, null, 10, _hoisted_1$3), [
+ [vShow, !_ctx.hidden && (unref(content) || _ctx.isDot)]
+ ])
+ ]),
+ _: 1
+ }, 8, ["name"])
+ ], 2);
+ };
+ }
+});
+var Badge = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/badge/src/badge.vue"]]);
+const ElBadge = withInstall(Badge);
+const overlayProps = buildProps({
+ mask: {
+ type: Boolean,
+ default: true
+ },
+ customMaskEvent: {
+ type: Boolean,
+ default: false
+ },
+ overlayClass: {
+ type: definePropType([
+ String,
+ Array,
+ Object
+ ])
+ },
+ zIndex: {
+ type: definePropType([String, Number])
+ }
+});
+const overlayEmits = {
+ click: (evt) => evt instanceof MouseEvent
+};
+const BLOCK = "overlay";
+var Overlay = defineComponent({
+ name: "ElOverlay",
+ props: overlayProps,
+ emits: overlayEmits,
+ setup(props, { slots, emit }) {
+ const ns = useNamespace(BLOCK);
+ const onMaskClick = (e) => {
+ emit("click", e);
+ };
+ const { onClick, onMousedown, onMouseup } = useSameTarget(props.customMaskEvent ? void 0 : onMaskClick);
+ return () => {
+ return props.mask ? createVNode("div", {
+ class: [ns.b(), props.overlayClass],
+ style: {
+ zIndex: props.zIndex
+ },
+ onClick,
+ onMousedown,
+ onMouseup
+ }, [renderSlot(slots, "default")], PatchFlags.STYLE | PatchFlags.CLASS | PatchFlags.PROPS, ["onClick", "onMouseup", "onMousedown"]) : h("div", {
+ class: props.overlayClass,
+ style: {
+ zIndex: props.zIndex,
+ position: "fixed",
+ top: "0px",
+ right: "0px",
+ bottom: "0px",
+ left: "0px"
+ }
+ }, [renderSlot(slots, "default")]);
+ };
+ }
+});
+const ElOverlay = Overlay;
+const dialogInjectionKey = Symbol("dialogInjectionKey");
+const dialogContentProps = buildProps({
+ center: Boolean,
+ alignCenter: Boolean,
+ closeIcon: {
+ type: iconPropType
+ },
+ customClass: {
+ type: String,
+ default: ""
+ },
+ draggable: Boolean,
+ fullscreen: Boolean,
+ showClose: {
+ type: Boolean,
+ default: true
+ },
+ title: {
+ type: String,
+ default: ""
+ },
+ ariaLevel: {
+ type: String,
+ default: "2"
+ }
+});
+const dialogContentEmits = {
+ close: () => true
+};
+const _hoisted_1$2 = ["aria-level"];
+const _hoisted_2$1 = ["aria-label"];
+const _hoisted_3 = ["id"];
+const __default__$2 = defineComponent({ name: "ElDialogContent" });
+const _sfc_main$5 = /* @__PURE__ */ defineComponent({
+ ...__default__$2,
+ props: dialogContentProps,
+ emits: dialogContentEmits,
+ setup(__props) {
+ const props = __props;
+ const { t } = useLocale();
+ const { Close } = CloseComponents;
+ const { dialogRef, headerRef, bodyId, ns, style } = inject(dialogInjectionKey);
+ const { focusTrapRef } = inject(FOCUS_TRAP_INJECTION_KEY);
+ const dialogKls = computed(() => [
+ ns.b(),
+ ns.is("fullscreen", props.fullscreen),
+ ns.is("draggable", props.draggable),
+ ns.is("align-center", props.alignCenter),
+ { [ns.m("center")]: props.center },
+ props.customClass
+ ]);
+ const composedDialogRef = composeRefs(focusTrapRef, dialogRef);
+ computed(() => props.draggable);
+ return (_ctx, _cache) => {
+ return openBlock(), createElementBlock("div", {
+ ref: unref(composedDialogRef),
+ class: normalizeClass(unref(dialogKls)),
+ style: normalizeStyle(unref(style)),
+ tabindex: "-1"
+ }, [
+ createElementVNode("header", {
+ ref_key: "headerRef",
+ ref: headerRef,
+ class: normalizeClass(unref(ns).e("header"))
+ }, [
+ renderSlot(_ctx.$slots, "header", {}, () => [
+ createElementVNode("span", {
+ role: "heading",
+ "aria-level": _ctx.ariaLevel,
+ class: normalizeClass(unref(ns).e("title"))
+ }, toDisplayString(_ctx.title), 11, _hoisted_1$2)
+ ]),
+ _ctx.showClose ? (openBlock(), createElementBlock("button", {
+ key: 0,
+ "aria-label": unref(t)("el.dialog.close"),
+ class: normalizeClass(unref(ns).e("headerbtn")),
+ type: "button",
+ onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("close"))
+ }, [
+ createVNode(unref(ElIcon), {
+ class: normalizeClass(unref(ns).e("close"))
+ }, {
+ default: withCtx(() => [
+ (openBlock(), createBlock(resolveDynamicComponent(_ctx.closeIcon || unref(Close))))
+ ]),
+ _: 1
+ }, 8, ["class"])
+ ], 10, _hoisted_2$1)) : createCommentVNode("v-if", true)
+ ], 2),
+ createElementVNode("div", {
+ id: unref(bodyId),
+ class: normalizeClass(unref(ns).e("body"))
+ }, [
+ renderSlot(_ctx.$slots, "default")
+ ], 10, _hoisted_3),
+ _ctx.$slots.footer ? (openBlock(), createElementBlock("footer", {
+ key: 0,
+ class: normalizeClass(unref(ns).e("footer"))
+ }, [
+ renderSlot(_ctx.$slots, "footer")
+ ], 2)) : createCommentVNode("v-if", true)
+ ], 6);
+ };
+ }
+});
+var ElDialogContent = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/dialog/src/dialog-content.vue"]]);
+const dialogProps = buildProps({
+ ...dialogContentProps,
+ appendToBody: Boolean,
+ appendTo: {
+ type: definePropType(String),
+ default: "body"
+ },
+ beforeClose: {
+ type: definePropType(Function)
+ },
+ destroyOnClose: Boolean,
+ closeOnClickModal: {
+ type: Boolean,
+ default: true
+ },
+ closeOnPressEscape: {
+ type: Boolean,
+ default: true
+ },
+ lockScroll: {
+ type: Boolean,
+ default: true
+ },
+ modal: {
+ type: Boolean,
+ default: true
+ },
+ openDelay: {
+ type: Number,
+ default: 0
+ },
+ closeDelay: {
+ type: Number,
+ default: 0
+ },
+ top: {
+ type: String
+ },
+ modelValue: Boolean,
+ modalClass: String,
+ width: {
+ type: [String, Number]
+ },
+ zIndex: {
+ type: Number
+ },
+ trapFocus: {
+ type: Boolean,
+ default: false
+ },
+ headerAriaLevel: {
+ type: String,
+ default: "2"
+ }
+});
+const dialogEmits = {
+ open: () => true,
+ opened: () => true,
+ close: () => true,
+ closed: () => true,
+ [UPDATE_MODEL_EVENT]: (value) => isBoolean(value),
+ openAutoFocus: () => true,
+ closeAutoFocus: () => true
+};
+const useDialog = (props, targetRef) => {
+ var _a;
+ const instance = getCurrentInstance();
+ const emit = instance.emit;
+ const { nextZIndex } = useZIndex();
+ let lastPosition = "";
+ const titleId = useId();
+ const bodyId = useId();
+ const visible = ref(false);
+ const closed = ref(false);
+ const rendered = ref(false);
+ const zIndex = ref((_a = props.zIndex) != null ? _a : nextZIndex());
+ let openTimer = void 0;
+ let closeTimer = void 0;
+ const namespace = useGlobalConfig("namespace", defaultNamespace);
+ const style = computed(() => {
+ const style2 = {};
+ const varPrefix = `--${namespace.value}-dialog`;
+ if (!props.fullscreen) {
+ if (props.top) {
+ style2[`${varPrefix}-margin-top`] = props.top;
+ }
+ if (props.width) {
+ style2[`${varPrefix}-width`] = addUnit(props.width);
+ }
+ }
+ return style2;
+ });
+ const overlayDialogStyle = computed(() => {
+ if (props.alignCenter) {
+ return { display: "flex" };
+ }
+ return {};
+ });
+ function afterEnter() {
+ emit("opened");
+ }
+ function afterLeave() {
+ emit("closed");
+ emit(UPDATE_MODEL_EVENT, false);
+ if (props.destroyOnClose) {
+ rendered.value = false;
+ }
+ }
+ function beforeLeave() {
+ emit("close");
+ }
+ function open() {
+ closeTimer == null ? void 0 : closeTimer();
+ openTimer == null ? void 0 : openTimer();
+ if (props.openDelay && props.openDelay > 0) {
+ ({ stop: openTimer } = useTimeoutFn(() => doOpen(), props.openDelay));
+ } else {
+ doOpen();
+ }
+ }
+ function close() {
+ openTimer == null ? void 0 : openTimer();
+ closeTimer == null ? void 0 : closeTimer();
+ if (props.closeDelay && props.closeDelay > 0) {
+ ({ stop: closeTimer } = useTimeoutFn(() => doClose(), props.closeDelay));
+ } else {
+ doClose();
+ }
+ }
+ function handleClose() {
+ function hide(shouldCancel) {
+ if (shouldCancel)
+ return;
+ closed.value = true;
+ visible.value = false;
+ }
+ if (props.beforeClose) {
+ props.beforeClose(hide);
+ } else {
+ close();
+ }
+ }
+ function onModalClick() {
+ if (props.closeOnClickModal) {
+ handleClose();
+ }
+ }
+ function doOpen() {
+ if (!isClient)
+ return;
+ visible.value = true;
+ }
+ function doClose() {
+ visible.value = false;
+ }
+ function onOpenAutoFocus() {
+ emit("openAutoFocus");
+ }
+ function onCloseAutoFocus() {
+ emit("closeAutoFocus");
+ }
+ function onFocusoutPrevented(event) {
+ var _a2;
+ if (((_a2 = event.detail) == null ? void 0 : _a2.focusReason) === "pointer") {
+ event.preventDefault();
+ }
+ }
+ if (props.lockScroll) {
+ useLockscreen(visible);
+ }
+ function onCloseRequested() {
+ if (props.closeOnPressEscape) {
+ handleClose();
+ }
+ }
+ watch(() => props.modelValue, (val) => {
+ if (val) {
+ closed.value = false;
+ open();
+ rendered.value = true;
+ zIndex.value = isUndefined(props.zIndex) ? nextZIndex() : zIndex.value++;
+ nextTick(() => {
+ emit("open");
+ if (targetRef.value) {
+ targetRef.value.scrollTop = 0;
+ }
+ });
+ } else {
+ if (visible.value) {
+ close();
+ }
+ }
+ });
+ watch(() => props.fullscreen, (val) => {
+ if (!targetRef.value)
+ return;
+ if (val) {
+ lastPosition = targetRef.value.style.transform;
+ targetRef.value.style.transform = "";
+ } else {
+ targetRef.value.style.transform = lastPosition;
+ }
+ });
+ return {
+ afterEnter,
+ afterLeave,
+ beforeLeave,
+ handleClose,
+ onModalClick,
+ close,
+ doClose,
+ onOpenAutoFocus,
+ onCloseAutoFocus,
+ onCloseRequested,
+ onFocusoutPrevented,
+ titleId,
+ bodyId,
+ closed,
+ style,
+ overlayDialogStyle,
+ rendered,
+ visible,
+ zIndex
+ };
+};
+const _hoisted_1$1 = ["aria-label", "aria-labelledby", "aria-describedby"];
+const __default__$1 = defineComponent({
+ name: "ElDialog",
+ inheritAttrs: false
+});
+const _sfc_main$4 = /* @__PURE__ */ defineComponent({
+ ...__default__$1,
+ props: dialogProps,
+ emits: dialogEmits,
+ setup(__props, { expose }) {
+ const props = __props;
+ const slots = useSlots();
+ useDeprecated({
+ scope: "el-dialog",
+ from: "the title slot",
+ replacement: "the header slot",
+ version: "3.0.0",
+ ref: "https://element-plus.org/en-US/component/dialog.html#slots"
+ }, computed(() => !!slots.title));
+ useDeprecated({
+ scope: "el-dialog",
+ from: "custom-class",
+ replacement: "class",
+ version: "2.3.0",
+ ref: "https://element-plus.org/en-US/component/dialog.html#attributes",
+ type: "Attribute"
+ }, computed(() => !!props.customClass));
+ const ns = useNamespace("dialog");
+ const dialogRef = ref();
+ const headerRef = ref();
+ const dialogContentRef = ref();
+ const {
+ visible,
+ titleId,
+ bodyId,
+ style,
+ overlayDialogStyle,
+ rendered,
+ zIndex,
+ afterEnter,
+ afterLeave,
+ beforeLeave,
+ handleClose,
+ onModalClick,
+ onOpenAutoFocus,
+ onCloseAutoFocus,
+ onCloseRequested,
+ onFocusoutPrevented
+ } = useDialog(props, dialogRef);
+ provide(dialogInjectionKey, {
+ dialogRef,
+ headerRef,
+ bodyId,
+ ns,
+ rendered,
+ style
+ });
+ const overlayEvent = useSameTarget(onModalClick);
+ const draggable = computed(() => props.draggable && !props.fullscreen);
+ expose({
+ visible,
+ dialogContentRef
+ });
+ return (_ctx, _cache) => {
+ return openBlock(), createBlock(Teleport, {
+ to: _ctx.appendTo,
+ disabled: _ctx.appendTo !== "body" ? false : !_ctx.appendToBody
+ }, [
+ createVNode(Transition, {
+ name: "dialog-fade",
+ onAfterEnter: unref(afterEnter),
+ onAfterLeave: unref(afterLeave),
+ onBeforeLeave: unref(beforeLeave),
+ persisted: ""
+ }, {
+ default: withCtx(() => [
+ withDirectives(createVNode(unref(ElOverlay), {
+ "custom-mask-event": "",
+ mask: _ctx.modal,
+ "overlay-class": _ctx.modalClass,
+ "z-index": unref(zIndex)
+ }, {
+ default: withCtx(() => [
+ createElementVNode("div", {
+ role: "dialog",
+ "aria-modal": "true",
+ "aria-label": _ctx.title || void 0,
+ "aria-labelledby": !_ctx.title ? unref(titleId) : void 0,
+ "aria-describedby": unref(bodyId),
+ class: normalizeClass(`${unref(ns).namespace.value}-overlay-dialog`),
+ style: normalizeStyle(unref(overlayDialogStyle)),
+ onClick: _cache[0] || (_cache[0] = (...args) => unref(overlayEvent).onClick && unref(overlayEvent).onClick(...args)),
+ onMousedown: _cache[1] || (_cache[1] = (...args) => unref(overlayEvent).onMousedown && unref(overlayEvent).onMousedown(...args)),
+ onMouseup: _cache[2] || (_cache[2] = (...args) => unref(overlayEvent).onMouseup && unref(overlayEvent).onMouseup(...args))
+ }, [
+ createVNode(unref(ElFocusTrap), {
+ loop: "",
+ trapped: unref(visible),
+ "focus-start-el": "container",
+ onFocusAfterTrapped: unref(onOpenAutoFocus),
+ onFocusAfterReleased: unref(onCloseAutoFocus),
+ onFocusoutPrevented: unref(onFocusoutPrevented),
+ onReleaseRequested: unref(onCloseRequested)
+ }, {
+ default: withCtx(() => [
+ unref(rendered) ? (openBlock(), createBlock(ElDialogContent, mergeProps({
+ key: 0,
+ ref_key: "dialogContentRef",
+ ref: dialogContentRef
+ }, _ctx.$attrs, {
+ "custom-class": _ctx.customClass,
+ center: _ctx.center,
+ "align-center": _ctx.alignCenter,
+ "close-icon": _ctx.closeIcon,
+ draggable: unref(draggable),
+ fullscreen: _ctx.fullscreen,
+ "show-close": _ctx.showClose,
+ title: _ctx.title,
+ "aria-level": _ctx.headerAriaLevel,
+ onClose: unref(handleClose)
+ }), createSlots({
+ header: withCtx(() => [
+ !_ctx.$slots.title ? renderSlot(_ctx.$slots, "header", {
+ key: 0,
+ close: unref(handleClose),
+ titleId: unref(titleId),
+ titleClass: unref(ns).e("title")
+ }) : renderSlot(_ctx.$slots, "title", { key: 1 })
+ ]),
+ default: withCtx(() => [
+ renderSlot(_ctx.$slots, "default")
+ ]),
+ _: 2
+ }, [
+ _ctx.$slots.footer ? {
+ name: "footer",
+ fn: withCtx(() => [
+ renderSlot(_ctx.$slots, "footer")
+ ])
+ } : void 0
+ ]), 1040, ["custom-class", "center", "align-center", "close-icon", "draggable", "fullscreen", "show-close", "title", "aria-level", "onClose"])) : createCommentVNode("v-if", true)
+ ]),
+ _: 3
+ }, 8, ["trapped", "onFocusAfterTrapped", "onFocusAfterReleased", "onFocusoutPrevented", "onReleaseRequested"])
+ ], 46, _hoisted_1$1)
+ ]),
+ _: 3
+ }, 8, ["mask", "overlay-class", "z-index"]), [
+ [vShow, unref(visible)]
+ ])
+ ]),
+ _: 3
+ }, 8, ["onAfterEnter", "onAfterLeave", "onBeforeLeave"])
+ ], 8, ["to", "disabled"]);
+ };
+ }
+});
+var Dialog = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/dialog/src/dialog.vue"]]);
+const ElDialog = withInstall(Dialog);
+const messageTypes = ["success", "info", "warning", "error"];
+const messageDefaults = mutable({
+ customClass: "",
+ center: false,
+ dangerouslyUseHTMLString: false,
+ duration: 3e3,
+ icon: void 0,
+ id: "",
+ message: "",
+ onClose: void 0,
+ showClose: false,
+ type: "info",
+ offset: 16,
+ zIndex: 0,
+ grouping: false,
+ repeatNum: 1,
+ appendTo: isClient ? document.body : void 0
+});
+const messageProps = buildProps({
+ customClass: {
+ type: String,
+ default: messageDefaults.customClass
+ },
+ center: {
+ type: Boolean,
+ default: messageDefaults.center
+ },
+ dangerouslyUseHTMLString: {
+ type: Boolean,
+ default: messageDefaults.dangerouslyUseHTMLString
+ },
+ duration: {
+ type: Number,
+ default: messageDefaults.duration
+ },
+ icon: {
+ type: iconPropType,
+ default: messageDefaults.icon
+ },
+ id: {
+ type: String,
+ default: messageDefaults.id
+ },
+ message: {
+ type: definePropType([
+ String,
+ Object,
+ Function
+ ]),
+ default: messageDefaults.message
+ },
+ onClose: {
+ type: definePropType(Function),
+ required: false
+ },
+ showClose: {
+ type: Boolean,
+ default: messageDefaults.showClose
+ },
+ type: {
+ type: String,
+ values: messageTypes,
+ default: messageDefaults.type
+ },
+ offset: {
+ type: Number,
+ default: messageDefaults.offset
+ },
+ zIndex: {
+ type: Number,
+ default: messageDefaults.zIndex
+ },
+ grouping: {
+ type: Boolean,
+ default: messageDefaults.grouping
+ },
+ repeatNum: {
+ type: Number,
+ default: messageDefaults.repeatNum
+ }
+});
+const messageEmits = {
+ destroy: () => true
+};
+const instances = shallowReactive([]);
+const getInstance = (id) => {
+ const idx = instances.findIndex((instance) => instance.id === id);
+ const current = instances[idx];
+ let prev;
+ if (idx > 0) {
+ prev = instances[idx - 1];
+ }
+ return { current, prev };
+};
+const getLastOffset = (id) => {
+ const { prev } = getInstance(id);
+ if (!prev)
+ return 0;
+ return prev.vm.exposed.bottom.value;
+};
+const getOffsetOrSpace = (id, offset) => {
+ const idx = instances.findIndex((instance) => instance.id === id);
+ return idx > 0 ? 20 : offset;
+};
+const _hoisted_1 = ["id"];
+const _hoisted_2 = ["innerHTML"];
+const __default__ = defineComponent({
+ name: "ElMessage"
+});
+const _sfc_main$3 = /* @__PURE__ */ defineComponent({
+ ...__default__,
+ props: messageProps,
+ emits: messageEmits,
+ setup(__props, { expose }) {
+ const props = __props;
+ const { Close } = TypeComponents;
+ const { ns, zIndex } = useGlobalComponentSettings("message");
+ const { currentZIndex, nextZIndex } = zIndex;
+ const messageRef = ref();
+ const visible = ref(false);
+ const height = ref(0);
+ let stopTimer = void 0;
+ const badgeType = computed(() => props.type ? props.type === "error" ? "danger" : props.type : "info");
+ const typeClass = computed(() => {
+ const type = props.type;
+ return { [ns.bm("icon", type)]: type && TypeComponentsMap[type] };
+ });
+ const iconComponent = computed(() => props.icon || TypeComponentsMap[props.type] || "");
+ const lastOffset = computed(() => getLastOffset(props.id));
+ const offset = computed(() => getOffsetOrSpace(props.id, props.offset) + lastOffset.value);
+ const bottom = computed(() => height.value + offset.value);
+ const customStyle = computed(() => ({
+ top: `${offset.value}px`,
+ zIndex: currentZIndex.value
+ }));
+ function startTimer() {
+ if (props.duration === 0)
+ return;
+ ({ stop: stopTimer } = useTimeoutFn(() => {
+ close();
+ }, props.duration));
+ }
+ function clearTimer() {
+ stopTimer == null ? void 0 : stopTimer();
+ }
+ function close() {
+ visible.value = false;
+ }
+ function keydown({ code }) {
+ if (code === EVENT_CODE.esc) {
+ close();
+ }
+ }
+ watch(() => props.repeatNum, () => {
+ clearTimer();
+ startTimer();
+ });
+ useEventListener(document, "keydown", keydown);
+ useResizeObserver(messageRef, () => {
+ height.value = messageRef.value.getBoundingClientRect().height;
+ });
+ expose({
+ visible,
+ bottom,
+ close
+ });
+ return (_ctx, _cache) => {
+ return openBlock(), createBlock(Transition, {
+ name: unref(ns).b("fade"),
+ onBeforeLeave: _ctx.onClose,
+ onAfterLeave: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("destroy")),
+ persisted: ""
+ }, {
+ default: withCtx(() => [
+ withDirectives(createElementVNode("div", {
+ id: _ctx.id,
+ ref_key: "messageRef",
+ ref: messageRef,
+ class: normalizeClass([
+ unref(ns).b(),
+ { [unref(ns).m(_ctx.type)]: _ctx.type && !_ctx.icon },
+ unref(ns).is("center", _ctx.center),
+ unref(ns).is("closable", _ctx.showClose),
+ _ctx.customClass
+ ]),
+ style: normalizeStyle(unref(customStyle)),
+ role: "alert",
+ onMouseenter: clearTimer,
+ onMouseleave: startTimer
+ }, [
+ _ctx.repeatNum > 1 ? (openBlock(), createBlock(unref(ElBadge), {
+ key: 0,
+ value: _ctx.repeatNum,
+ type: unref(badgeType),
+ class: normalizeClass(unref(ns).e("badge"))
+ }, null, 8, ["value", "type", "class"])) : createCommentVNode("v-if", true),
+ unref(iconComponent) ? (openBlock(), createBlock(unref(ElIcon), {
+ key: 1,
+ class: normalizeClass([unref(ns).e("icon"), unref(typeClass)])
+ }, {
+ default: withCtx(() => [
+ (openBlock(), createBlock(resolveDynamicComponent(unref(iconComponent))))
+ ]),
+ _: 1
+ }, 8, ["class"])) : createCommentVNode("v-if", true),
+ renderSlot(_ctx.$slots, "default", {}, () => [
+ !_ctx.dangerouslyUseHTMLString ? (openBlock(), createElementBlock("p", {
+ key: 0,
+ class: normalizeClass(unref(ns).e("content"))
+ }, toDisplayString(_ctx.message), 3)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
+ createCommentVNode(" Caution here, message could've been compromised, never use user's input as message "),
+ createElementVNode("p", {
+ class: normalizeClass(unref(ns).e("content")),
+ innerHTML: _ctx.message
+ }, null, 10, _hoisted_2)
+ ], 2112))
+ ]),
+ _ctx.showClose ? (openBlock(), createBlock(unref(ElIcon), {
+ key: 2,
+ class: normalizeClass(unref(ns).e("closeBtn")),
+ onClick: withModifiers(close, ["stop"])
+ }, {
+ default: withCtx(() => [
+ createVNode(unref(Close))
+ ]),
+ _: 1
+ }, 8, ["class", "onClick"])) : createCommentVNode("v-if", true)
+ ], 46, _hoisted_1), [
+ [vShow, visible.value]
+ ])
+ ]),
+ _: 3
+ }, 8, ["name", "onBeforeLeave"]);
+ };
+ }
+});
+var MessageConstructor = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/message/src/message.vue"]]);
+let seed = 1;
+const normalizeOptions = (params) => {
+ const options = !params || isString(params) || isVNode(params) || isFunction(params) ? { message: params } : params;
+ const normalized = {
+ ...messageDefaults,
+ ...options
+ };
+ if (!normalized.appendTo) {
+ normalized.appendTo = document.body;
+ } else if (isString(normalized.appendTo)) {
+ let appendTo = document.querySelector(normalized.appendTo);
+ if (!isElement(appendTo)) {
+ appendTo = document.body;
+ }
+ normalized.appendTo = appendTo;
+ }
+ return normalized;
+};
+const closeMessage = (instance) => {
+ const idx = instances.indexOf(instance);
+ if (idx === -1)
+ return;
+ instances.splice(idx, 1);
+ const { handler } = instance;
+ handler.close();
+};
+const createMessage = ({ appendTo, ...options }, context) => {
+ const id = `message_${seed++}`;
+ const userOnClose = options.onClose;
+ const container = document.createElement("div");
+ const props = {
+ ...options,
+ id,
+ onClose: () => {
+ userOnClose == null ? void 0 : userOnClose();
+ closeMessage(instance);
+ },
+ onDestroy: () => {
+ render(null, container);
+ }
+ };
+ const vnode = createVNode(MessageConstructor, props, isFunction(props.message) || isVNode(props.message) ? {
+ default: isFunction(props.message) ? props.message : () => props.message
+ } : null);
+ vnode.appContext = context || message._context;
+ render(vnode, container);
+ appendTo.appendChild(container.firstElementChild);
+ const vm = vnode.component;
+ const handler = {
+ close: () => {
+ vm.exposed.visible.value = false;
+ }
+ };
+ const instance = {
+ id,
+ vnode,
+ vm,
+ handler,
+ props: vnode.component.props
+ };
+ return instance;
+};
+const message = (options = {}, context) => {
+ if (!isClient)
+ return { close: () => void 0 };
+ if (isNumber(messageConfig.max) && instances.length >= messageConfig.max) {
+ return { close: () => void 0 };
+ }
+ const normalized = normalizeOptions(options);
+ if (normalized.grouping && instances.length) {
+ const instance2 = instances.find(({ vnode: vm }) => {
+ var _a;
+ return ((_a = vm.props) == null ? void 0 : _a.message) === normalized.message;
+ });
+ if (instance2) {
+ instance2.props.repeatNum += 1;
+ instance2.props.type = normalized.type;
+ return instance2.handler;
+ }
+ }
+ const instance = createMessage(normalized, context);
+ instances.push(instance);
+ return instance.handler;
+};
+messageTypes.forEach((type) => {
+ message[type] = (options = {}, appContext) => {
+ const normalized = normalizeOptions(options);
+ return message({ ...normalized, type }, appContext);
+ };
+});
+function closeAll(type) {
+ for (const instance of instances) {
+ if (!type || type === instance.props.type) {
+ instance.handler.close();
+ }
+ }
+}
+message.closeAll = closeAll;
+message._context = null;
+const ElMessage = withInstallFunction(message, "$message");
+const _imports_0$1 = "" + buildAssetsURL("dot-yellow.4b5e135b.svg");
+const _imports_1$2 = "" + buildAssetsURL("dot-gray.86cdd7b5.svg");
+const _imports_2$3 = "" + buildAssetsURL("empty-icon.24a01ae2.svg");
+const _sfc_main$2 = {
+ __name: "Empty",
+ __ssrInlineRender: true,
+ props: {
+ hint: String
+ },
+ setup(__props) {
+ return (_ctx, _push, _parent, _attrs) => {
+ _push(`${ssrInterpolate(__props.hint || "\u6682\u65E0\u5185\u5BB9")}
`);
+ };
+ }
+};
+const _sfc_setup$2 = _sfc_main$2.setup;
+_sfc_main$2.setup = (props, ctx) => {
+ const ssrContext = useSSRContext();
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/Empty.vue");
+ return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
+};
+const __nuxt_component_4 = /* @__PURE__ */ _export_sfc$1(_sfc_main$2, [["__scopeId", "data-v-6c7355f5"]]);
+const handleDate = (dateTimeStamp = /* @__PURE__ */ new Date()) => {
+ dateTimeStamp = dateTimeStamp ? dateTimeStamp : null;
+ var timestamp = new Date(dateTimeStamp);
+ timestamp = timestamp.getTime();
+ var minute = 1e3 * 60;
+ var hour = minute * 60;
+ var day = hour * 24;
+ var now = (/* @__PURE__ */ new Date()).getTime();
+ var diffValue = now - timestamp;
+ var result;
+ if (diffValue < 0)
+ return;
+ var dayC = diffValue / day;
+ var hourC = diffValue / (hour + 1);
+ var minC = diffValue / minute;
+ if (dayC >= 7) {
+ let date = new Date(timestamp);
+ let Y = date.getFullYear() + "-";
+ let M = (date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1) + "-";
+ let D = (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
+ result = "" + Y + M + D;
+ } else if (dayC >= 1)
+ result = "" + Math.round(dayC) + "\u5929\u524D";
+ else if (hourC >= 1)
+ result = "" + Math.round(hourC) + "\u5C0F\u65F6\u524D";
+ else if (minC >= 1)
+ result = "" + Math.round(minC) + "\u5206\u949F\u524D";
+ else
+ result = "\u521A\u521A";
+ return result;
+};
+const _imports_1$1 = "" + buildAssetsURL("delete-icon.a2ab9c64.svg");
+const _imports_2$2 = "" + buildAssetsURL("arrow-gray.271dd0d3.svg");
+const _imports_3 = "" + buildAssetsURL("tick-green.2df56f28.svg");
+const _sfc_main$1 = {
+ __name: "MyPopup",
+ __ssrInlineRender: true,
+ props: {
+ // MyPopupState: String, // collect mj
+ count: Object
+ },
+ setup(__props, { expose: __expose }) {
+ let show = ref(false);
+ useRouter();
+ const route = useRoute();
+ let MyPopupState = ref("");
+ let showList = ref([]);
+ let collectList = [];
+ let collectPage = 1;
+ let collectLoading = false;
+ let collectCount = ref(0);
+ const getCollect = () => {
+ if (collectPage == 0 || collectLoading)
+ return;
+ collectLoading = true;
+ MyUserCollectHttp({ page: collectPage }).then((res) => {
+ if (res.code != 200)
+ return;
+ let data = res.data;
+ collectList = collectList.concat(data.data);
+ showList.value = collectList;
+ if (collectList.length < data["count"])
+ collectPage++;
+ else
+ collectPage = 0;
+ collectCount.value = data["count"];
+ MyPopupState.value = "collect";
+ show.value = true;
+ }).finally(() => collectLoading = false);
+ };
+ let publishList = [];
+ let publisPage = 1;
+ let publisloading = false;
+ const getPublish = () => {
+ if (publisPage == 0 && !publisloading)
+ return;
+ publisloading = true;
+ MyUserPublishHttp({ limit: 4, page: publisPage }).then((res) => {
+ if (res.code != 200)
+ return;
+ let data = res.data;
+ publishList = publishList.concat(data.data);
+ if (publishList.length < data["count"])
+ publisPage++;
+ else
+ publisPage = 0;
+ showList.value = publishList;
+ MyPopupState.value = "mj";
+ show.value = true;
+ }).finally(() => publisloading = false);
+ };
+ const cutMy = (key) => {
+ if (key == "collect" && collectList.length == 0)
+ getCollect();
+ else if (key == "mj" && publishList.length == 0)
+ getPublish();
+ if (key == "collect")
+ showList.value = collectList;
+ else if (key == "mj")
+ showList.value = publishList;
+ if (!key)
+ show.value = false;
+ };
+ const openAnonymousState = (index) => {
+ publishList.forEach((element) => {
+ element["anonymousState"] = false;
+ });
+ publishList[index]["anonymousState"] = true;
+ showList.value = [...publishList];
+ };
+ const closeAllAnonymousState = () => {
+ publishList.forEach((element) => {
+ element["anonymousState"] = false;
+ });
+ showList.value = [...publishList];
+ };
+ const handleAnonymousState = (token, index, anonymous) => {
+ changeAnonymousHttp({ token, anonymous }).then((res) => {
+ if (res.code != 200)
+ return;
+ publishList[index]["anonymous"] = anonymous;
+ showList.value = [...publishList];
+ closeAllAnonymousState();
+ ElMessage.success(res.message);
+ });
+ };
+ const handleListScroll = (e) => {
+ const el = e.target;
+ if (el.scrollHeight - el.scrollTop !== el.clientHeight)
+ return;
+ if (MyPopupState.value == "collect")
+ getCollect();
+ if (MyPopupState.value == "mj")
+ getPublish();
+ };
+ let clearAllData = inject("clearAllData") || null;
+ let getDetails = inject("getDetails") || null;
+ const goDetails = (uniqid) => {
+ let path = route["path"] || "";
+ if (path.indexOf("/details/") != -1) {
+ clearAllData();
+ nextTick(() => getDetails());
+ }
+ show.value = false;
+ MyPopupState.value = "";
+ };
+ __expose({
+ cutMy
+ });
+ const cancelCollection = (token, index) => {
+ MyUserDeleteCollectHttp({ token }).then((res) => {
+ if (res.code != 200) {
+ ElMessage.error(res.message);
+ return;
+ }
+ collectList.splice(index, 1);
+ collectCount.value--;
+ showList.value = [...collectList];
+ });
+ };
+ return (_ctx, _push, _parent, _attrs) => {
+ const _component_el_dialog = ElDialog;
+ const _component_Empty = __nuxt_component_4;
+ _push(ssrRenderComponent(_component_el_dialog, mergeProps({
+ modelValue: unref(show),
+ "onUpdate:modelValue": ($event) => isRef(show) ? show.value = $event : show = $event,
+ width: "750px",
+ "align-center": "",
+ class: "dialog-box"
+ }, _attrs), {
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
+ if (_push2) {
+ _push2(`
`);
+ if (unref(showList).length == 0) {
+ _push2(`
`);
+ _push2(ssrRenderComponent(_component_Empty, null, null, _parent2, _scopeId));
+ _push2(`
`);
+ } else {
+ _push2(`
`);
+ ssrRenderList(unref(showList), (item, index) => {
+ var _a, _b, _c;
+ _push2(`
${ssrInterpolate(item["school"] || item["data"]["school"])}
`);
+ if (item["profession"] || ((_a = item == null ? void 0 : item["data"]) == null ? void 0 : _a["profession"])) {
+ _push2(`
\u4E13\u4E1A
${ssrInterpolate(item["profession"] || item["data"]["profession"])}
`);
+ } else {
+ _push2(``);
+ }
+ if (item["project"] || ((_b = item == null ? void 0 : item.data) == null ? void 0 : _b.project)) {
+ _push2(`
\u9879\u76EE
${ssrInterpolate(item["project"] || ((_c = item == null ? void 0 : item.data) == null ? void 0 : _c.project))}
`);
+ } else {
+ _push2(``);
+ }
+ _push2(`
`);
+ if (item == null ? void 0 : item.releasetime) {
+ _push2(`
${ssrInterpolate(("handleDate" in _ctx ? _ctx.handleDate : unref(handleDate))(item == null ? void 0 : item.releasetime))}\u53D1\u5E03
`);
+ } else {
+ _push2(``);
+ }
+ _push2(`
${ssrInterpolate(item["message"] || item["data"]["message"])}
`);
+ if (unref(MyPopupState) == "collect") {
+ _push2(`
`);
+ } else {
+ _push2(`
${ssrInterpolate(item["anonymous"] == 1 ? "\u533F\u540D" : "\u516C\u5F00")}
`);
+ if (item["anonymousState"]) {
+ _push2(``);
+ } else {
+ _push2(``);
+ }
+ _push2(`
`);
+ }
+ _push2(`
`);
+ });
+ _push2(`
`);
+ }
+ _push2(`
`);
+ } else {
+ return [
+ createVNode("div", { class: "box flexflex" }, [
+ createVNode("img", {
+ class: "cross",
+ src: _imports_1$3,
+ alt: "",
+ onClick: ($event) => cutMy("")
+ }, null, 8, ["onClick"]),
+ createVNode("div", { class: "tba-list flexcenter" }, [
+ createVNode("div", {
+ class: ["tab-item flexcenter", { pitch: unref(MyPopupState) == "collect" }],
+ onClick: ($event) => cutMy("collect")
+ }, [
+ createTextVNode(" \u6211\u7684\u6536\u85CF "),
+ createVNode("div", { class: "value" }, toDisplayString(unref(collectCount) || __props.count["collect"]), 1)
+ ], 10, ["onClick"]),
+ createVNode("div", {
+ class: ["tab-item flexcenter", { pitch: unref(MyPopupState) == "mj" }],
+ onClick: ($event) => cutMy("mj")
+ }, [
+ createTextVNode(" \u6211\u7684\u9762\u7ECF "),
+ createVNode("div", { class: "value" }, toDisplayString(__props.count["publish"]), 1)
+ ], 10, ["onClick"])
+ ]),
+ unref(showList).length == 0 ? (openBlock(), createBlock("div", {
+ key: 0,
+ class: "empty-box flexcenter"
+ }, [
+ createVNode(_component_Empty)
+ ])) : (openBlock(), createBlock("div", {
+ key: 1,
+ class: "content",
+ onScroll: handleListScroll
+ }, [
+ (openBlock(true), createBlock(Fragment, null, renderList(unref(showList), (item, index) => {
+ var _a, _b, _c;
+ return openBlock(), createBlock("div", {
+ class: "item flexflex",
+ key: index,
+ onClick: ($event) => {
+ var _a2;
+ return goDetails(item["uniqid"] || ((_a2 = item == null ? void 0 : item.data) == null ? void 0 : _a2.uniqid));
+ }
+ }, [
+ createVNode("div", { class: "left flexflex" }, [
+ createVNode("div", { class: "name" }, toDisplayString(item["school"] || item["data"]["school"]), 1),
+ createVNode("div", { class: "info-box flexflex" }, [
+ item["profession"] || ((_a = item == null ? void 0 : item["data"]) == null ? void 0 : _a["profession"]) ? (openBlock(), createBlock("div", {
+ key: 0,
+ class: "info-item flexacenter"
+ }, [
+ createVNode("div", { class: "info-item-name" }, "\u4E13\u4E1A"),
+ createVNode("div", { class: "info-item-value" }, toDisplayString(item["profession"] || item["data"]["profession"]), 1)
+ ])) : createCommentVNode("", true),
+ item["project"] || ((_b = item == null ? void 0 : item.data) == null ? void 0 : _b.project) ? (openBlock(), createBlock("div", {
+ key: 1,
+ class: "info-item flexacenter"
+ }, [
+ createVNode("div", { class: "info-item-name" }, "\u9879\u76EE"),
+ createVNode("div", { class: "info-item-value" }, toDisplayString(item["project"] || ((_c = item == null ? void 0 : item.data) == null ? void 0 : _c.project)), 1)
+ ])) : createCommentVNode("", true)
+ ]),
+ createVNode("div", { class: "text-box flexacenter" }, [
+ (item == null ? void 0 : item.releasetime) ? (openBlock(), createBlock("div", {
+ key: 0,
+ class: "text-time"
+ }, toDisplayString(("handleDate" in _ctx ? _ctx.handleDate : unref(handleDate))(item == null ? void 0 : item.releasetime)) + "\u53D1\u5E03", 1)) : createCommentVNode("", true),
+ createVNode("div", { class: "text-message flex1 ellipsis" }, toDisplayString(item["message"] || item["data"]["message"]), 1)
+ ])
+ ]),
+ createVNode("div", { class: "operate-area flexacenter" }, [
+ unref(MyPopupState) == "collect" ? (openBlock(), createBlock("img", {
+ key: 0,
+ class: "delete-icon",
+ onClick: withModifiers(($event) => cancelCollection(item["token"], index), ["stop"]),
+ src: _imports_1$1
+ }, null, 8, ["onClick"])) : (openBlock(), createBlock("div", {
+ key: 1,
+ class: "anonymous-box flexacenter",
+ onClick: withModifiers(($event) => openAnonymousState(index), ["stop"])
+ }, [
+ createVNode("div", { class: "text" }, toDisplayString(item["anonymous"] == 1 ? "\u533F\u540D" : "\u516C\u5F00"), 1),
+ createVNode("img", {
+ class: "arrow-icon",
+ src: _imports_2$2
+ }),
+ item["anonymousState"] ? (openBlock(), createBlock("div", {
+ key: 0,
+ class: "state-popup flexflex",
+ onClick: withModifiers(() => {
+ }, ["stop"])
+ }, [
+ createVNode("div", {
+ class: ["state-popup-item flexacenter flex1", { "pitch": item["anonymous"] == 0 }],
+ onClick: ($event) => handleAnonymousState(item["token"], index, 0)
+ }, [
+ createVNode("div", { class: "" }, "\u516C\u5F00\u53D1\u8868"),
+ createVNode("img", {
+ class: "state-popup-icon",
+ src: _imports_3
+ })
+ ], 10, ["onClick"]),
+ createVNode("div", {
+ class: ["state-popup-item flexacenter flex1", { "pitch": item["anonymous"] == 1 }],
+ onClick: ($event) => handleAnonymousState(item["token"], index, 1)
+ }, [
+ createVNode("div", { class: "" }, "\u533F\u540D\u53D1\u8868"),
+ createVNode("img", {
+ class: "state-popup-icon",
+ src: _imports_3
+ })
+ ], 10, ["onClick"])
+ ], 8, ["onClick"])) : createCommentVNode("", true)
+ ], 8, ["onClick"]))
+ ])
+ ], 8, ["onClick"]);
+ }), 128))
+ ], 32))
+ ])
+ ];
+ }
+ }),
+ _: 1
+ }, _parent));
+ };
+ }
+};
+const _sfc_setup$1 = _sfc_main$1.setup;
+_sfc_main$1.setup = (props, ctx) => {
+ const ssrContext = useSSRContext();
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/MyPopup.vue");
+ return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
+};
+const __nuxt_component_0 = /* @__PURE__ */ _export_sfc$1(_sfc_main$1, [["__scopeId", "data-v-45181030"]]);
+const _imports_0 = "" + buildAssetsURL("logo-icon.b6345ffb.png");
+const _imports_1 = "data:image/png;base64,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";
+const _imports_2$1 = "" + buildAssetsURL("add-icon.11ba1b26.svg");
+const _sfc_main = {
+ __name: "top-head",
+ __ssrInlineRender: true,
+ setup(__props) {
+ useRouter();
+ const route = useRoute$1();
+ inject("isNeedLogin");
+ inject("goLogin");
+ let keyword = ref("");
+ let count = ref({});
+ watchEffect(() => {
+ keyword.value = route.query["keyword"];
+ });
+ let historicalSearchState = ref(false);
+ let historicalSearchList = ref([]);
+ let MyPopupRef = ref(null);
+ return (_ctx, _push, _parent, _attrs) => {
+ const _component_MyPopup = __nuxt_component_0;
+ _push(``);
+ _push(ssrRenderComponent(_component_MyPopup, {
+ ref_key: "MyPopupRef",
+ ref: MyPopupRef,
+ count: unref(count)
+ }, null, _parent));
+ _push(``);
+ };
+ }
+};
+const _sfc_setup = _sfc_main.setup;
+_sfc_main.setup = (props, ctx) => {
+ const ssrContext = useSSRContext();
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/top-head.vue");
+ return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
+};
+const __nuxt_component_3 = /* @__PURE__ */ _export_sfc$1(_sfc_main, [["__scopeId", "data-v-e6d62326"]]);
+const _imports_2 = "" + buildAssetsURL("eye-icon.efcf8c6f.svg");
+
+export { ElMessage as E, _imports_2 as _, __nuxt_component_3 as a, __nuxt_component_4 as b, handleDate as h };
+//# sourceMappingURL=eye-icon-a076085e.mjs.map
diff --git a/.output/server/chunks/app/_nuxt/eye-icon-a076085e.mjs.map b/.output/server/chunks/app/_nuxt/eye-icon-a076085e.mjs.map
new file mode 100644
index 0000000..000405b
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/eye-icon-a076085e.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"eye-icon-a076085e.mjs","sources":["../../../../../.nuxt/dist/server/_nuxt/eye-icon-a076085e.js"],"sourcesContent":null,"names":["computed","computed$1","__buildAssetsURL"],"mappings":";;;;;;;;;;;;AAUA,IAAA,cAAA,CAAA;AACA,MAAA,iBAAA,GAAA,CAAA,SAAA,KAAA;AACA,EAAA,IAAA,EAAA,CAAA;AACA,EAAA,IAAA,CAAA,QAAA;AACA,IAAA,OAAA,CAAA,CAAA;AACA,EAAA,IAAA,cAAA,KAAA,KAAA,CAAA;AACA,IAAA,OAAA,cAAA,CAAA;AACA,EAAA,MAAA,KAAA,GAAA,QAAA,CAAA,aAAA,CAAA,KAAA,CAAA,CAAA;AACA,EAAA,KAAA,CAAA,SAAA,GAAA,GAAA,SAAA,CAAA,gBAAA,CAAA,CAAA;AACA,EAAA,KAAA,CAAA,MAAA,UAAA,GAAA,QAAA,CAAA;AACA,EAAA,KAAA,CAAA,MAAA,KAAA,GAAA,OAAA,CAAA;AACA,EAAA,KAAA,CAAA,MAAA,QAAA,GAAA,UAAA,CAAA;AACA,EAAA,KAAA,CAAA,MAAA,GAAA,GAAA,SAAA,CAAA;AACA,EAAA,QAAA,CAAA,IAAA,CAAA,YAAA,KAAA,CAAA,CAAA;AACA,EAAA,MAAA,gBAAA,KAAA,CAAA,WAAA,CAAA;AACA,EAAA,KAAA,CAAA,MAAA,QAAA,GAAA,QAAA,CAAA;AACA,EAAA,MAAA,KAAA,GAAA,QAAA,CAAA,aAAA,CAAA,KAAA,CAAA,CAAA;AACA,EAAA,KAAA,CAAA,MAAA,KAAA,GAAA,MAAA,CAAA;AACA,EAAA,KAAA,CAAA,YAAA,KAAA,CAAA,CAAA;AACA,EAAA,MAAA,kBAAA,KAAA,CAAA,WAAA,CAAA;AACA,EAAA,CAAA,KAAA,KAAA,CAAA,UAAA,KAAA,OAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAA,KAAA,CAAA,CAAA;AACA,EAAA,cAAA,GAAA,aAAA,GAAA,eAAA,CAAA;AACA,EAAA,OAAA,cAAA,CAAA;AACA,CAAA,CAAA;AACA,MAAA,WAAA,GAAA,IAAA,IAAA,KAAA;AACA,EAAA,OAAA,CAAA,EAAA,KAAA;AACA,IAAA,IAAA,CAAA,OAAA,CAAA,CAAA,IAAA,KAAA;AACA,MAAA,IAAA,UAAA,CAAA,IAAA,CAAA,EAAA;AACA,QAAA,IAAA,CAAA,EAAA,CAAA,CAAA;AAAA,OACA,MAAA;AACA,QAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA;AAAA,OACA;AAAA,KACA,CAAA,CAAA;AAAA,GACA,CAAA;AACA,CAAA,CAAA;AACA,IAAA,UAAA,qBAAA,WAAA,KAAA;AACA,EAAA,WAAA,CAAA,WAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAA,CAAA;AACA,EAAA,WAAA,CAAA,WAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAA,CAAA;AACA,EAAA,WAAA,CAAA,WAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAA,CAAA;AACA,EAAA,WAAA,CAAA,WAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAA,CAAA;AACA,EAAA,WAAA,CAAA,WAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAA,CAAA;AACA,EAAA,WAAA,CAAA,WAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAA,CAAA;AACA,EAAA,WAAA,CAAA,WAAA,CAAA,iBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iBAAA,CAAA;AACA,EAAA,WAAA,CAAA,WAAA,CAAA,gBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,gBAAA,CAAA;AACA,EAAA,WAAA,CAAA,WAAA,CAAA,kBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,kBAAA,CAAA;AACA,EAAA,WAAA,CAAA,WAAA,CAAA,YAAA,CAAA,GAAA,GAAA,CAAA,GAAA,YAAA,CAAA;AACA,EAAA,WAAA,CAAA,WAAA,CAAA,eAAA,CAAA,GAAA,IAAA,CAAA,GAAA,eAAA,CAAA;AACA,EAAA,WAAA,CAAA,WAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAAA,SAAA,CAAA;AACA,EAAA,WAAA,CAAA,WAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,CAAA,GAAA,MAAA,CAAA;AACA,EAAA,OAAA,WAAA,CAAA;AACA,CAAA,EAAA,UAAA,IAAA,EAAA,CAAA,CAAA;AACA,MAAA,aAAA,GAAA,CAAA,OAAA,EAAA,OAAA,GAAA,EAAA,KAAA;AACA,EAAA,IAAA,CAAA,KAAA,CAAA,OAAA,CAAA,EAAA;AACA,IAAA,UAAA,CAAA,mBAAA,+CAAA,CAAA,CAAA;AAAA,GACA;AACA,EAAA,MAAA,EAAA,GAAA,OAAA,CAAA,EAAA,IAAA,YAAA,CAAA,OAAA,CAAA,CAAA;AACA,EAAA,MAAA,YAAAA,UAAA,CAAA,MAAA,GAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,CAAA,CAAA;AACA,EAAA,IAAA,CAAA,QAAA,IAAA,QAAA,CAAA,SAAA,IAAA,EAAA,SAAA,CAAA,KAAA,CAAA,EAAA;AACA,IAAA,OAAA;AAAA,GACA;AACA,EAAA,IAAA,eAAA,GAAA,CAAA,CAAA;AACA,EAAA,IAAA,kBAAA,GAAA,KAAA,CAAA;AACA,EAAA,IAAA,SAAA,GAAA,GAAA,CAAA;AACA,EAAA,MAAA,UAAA,MAAA;AACA,IAAA,UAAA,CAAA,MAAA;AACA,MAAA,WAAA,CAAA,YAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,IAAA,EAAA,UAAA,KAAA,CAAA,CAAA;AACA,MAAA,IAAA,sBAAA,QAAA,EAAA;AACA,QAAA,QAAA,CAAA,IAAA,CAAA,MAAA,KAAA,GAAA,SAAA,CAAA;AAAA,OACA;AAAA,OACA,GAAA,CAAA,CAAA;AAAA,GACA,CAAA;AACA,EAAA,KAAA,CAAA,OAAA,EAAA,CAAA,GAAA,KAAA;AACA,IAAA,IAAA,CAAA,GAAA,EAAA;AACA,MAAA,OAAA,EAAA,CAAA;AACA,MAAA,OAAA;AAAA,KACA;AACA,IAAA,kBAAA,GAAA,CAAA,QAAA,CAAA,QAAA,CAAA,IAAA,EAAA,UAAA,KAAA,CAAA,CAAA;AACA,IAAA,IAAA,kBAAA,EAAA;AACA,MAAA,SAAA,GAAA,QAAA,CAAA,KAAA,KAAA,CAAA,KAAA,CAAA;AAAA,KACA;AACA,IAAA,eAAA,GAAA,iBAAA,CAAA,EAAA,CAAA,SAAA,CAAA,KAAA,CAAA,CAAA;AACA,IAAA,MAAA,eAAA,GAAA,QAAA,CAAA,eAAA,CAAA,YAAA,GAAA,SAAA,IAAA,CAAA,YAAA,CAAA;AACA,IAAA,MAAA,aAAA,GAAA,QAAA,CAAA,QAAA,CAAA,IAAA,EAAA,WAAA,CAAA,CAAA;AACA,IAAA,IAAA,eAAA,GAAA,CAAA,KAAA,eAAA,IAAA,aAAA,KAAA,aAAA,kBAAA,EAAA;AACA,MAAA,QAAA,CAAA,IAAA,CAAA,KAAA,CAAA,KAAA,GAAA,CAAA,YAAA,EAAA,eAAA,CAAA,GAAA,CAAA,CAAA;AAAA,KACA;AACA,IAAA,QAAA,CAAA,QAAA,CAAA,IAAA,EAAA,SAAA,CAAA,KAAA,CAAA,CAAA;AAAA,GACA,CAAA,CAAA;AACA,EAAA,cAAA,CAAA,MAAA,SAAA,CAAA,CAAA;AACA,CAAA,CAAA;AACA,MAAA,aAAA,GAAA,CAAA,WAAA,KAAA;AACA,EAAA,IAAA,CAAA,WAAA,EAAA;AACA,IAAA,OAAA,EAAA,OAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,WAAA,IAAA,EAAA,CAAA;AAAA,GACA;AACA,EAAA,IAAA,eAAA,GAAA,KAAA,CAAA;AACA,EAAA,IAAA,aAAA,GAAA,KAAA,CAAA;AACA,EAAA,MAAA,OAAA,GAAA,CAAA,CAAA,KAAA;AACA,IAAA,IAAA,mBAAA,aAAA,EAAA;AACA,MAAA,WAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KACA;AACA,IAAA,eAAA,GAAA,aAAA,GAAA,KAAA,CAAA;AAAA,GACA,CAAA;AACA,EAAA,MAAA,WAAA,GAAA,CAAA,CAAA,KAAA;AACA,IAAA,eAAA,GAAA,CAAA,CAAA,WAAA,CAAA,CAAA,aAAA,CAAA;AAAA,GACA,CAAA;AACA,EAAA,MAAA,SAAA,GAAA,CAAA,CAAA,KAAA;AACA,IAAA,aAAA,GAAA,CAAA,CAAA,WAAA,CAAA,CAAA,aAAA,CAAA;AAAA,GACA,CAAA;AACA,EAAA,OAAA,EAAA,OAAA,EAAA,WAAA,EAAA,SAAA,EAAA,CAAA;AACA,CAAA,CAAA;AACA,MAAA,aAAA,UAAA,CAAA;AAAA,EACA,KAAA,EAAA;AAAA,IACA,IAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA;AAAA,IACA,OAAA,EAAA,EAAA;AAAA,GACA;AAAA,EACA,GAAA,EAAA;AAAA,IACA,IAAA,EAAA,MAAA;AAAA,IACA,OAAA,EAAA,EAAA;AAAA,GACA;AAAA,EACA,KAAA,EAAA,OAAA;AAAA,EACA,MAAA,EAAA,OAAA;AAAA,EACA,IAAA,EAAA;AAAA,IACA,IAAA,EAAA,MAAA;AAAA,IACA,QAAA,CAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,QAAA,CAAA;AAAA,IACA,OAAA,EAAA,QAAA;AAAA,GACA;AACA,CAAA,CAAA,CAAA;AACA,MAAA,YAAA,GAAA,CAAA,aAAA,CAAA,CAAA;AACA,MAAA,gBAAA,eAAA,CAAA;AAAA,EACA,IAAA,EAAA,SAAA;AACA,CAAA,CAAA,CAAA;AACA,MAAA,8BAAA,eAAA,CAAA;AAAA,EACA,GAAA,aAAA;AAAA,EACA,KAAA,EAAA,UAAA;AAAA,EACA,KAAA,CAAA,OAAA,EAAA,EAAA,MAAA,EAAA,EAAA;AACA,IAAA,MAAA,KAAA,GAAA,OAAA,CAAA;AACA,IAAA,MAAA,EAAA,GAAA,aAAA,OAAA,CAAA,CAAA;AACA,IAAA,MAAA,OAAA,GAAAC,SAAA,MAAA;AACA,MAAA,IAAA,KAAA,CAAA,KAAA;AACA,QAAA,OAAA,EAAA,CAAA;AACA,MAAA,IAAA,SAAA,KAAA,CAAA,KAAA,KAAA,QAAA,CAAA,KAAA,CAAA,GAAA,CAAA,EAAA;AACA,QAAA,OAAA,KAAA,CAAA,GAAA,GAAA,KAAA,CAAA,KAAA,GAAA,CAAA,EAAA,MAAA,GAAA,CAAA,CAAA,CAAA,GAAA,CAAA,EAAA,KAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AAAA,OACA;AACA,MAAA,OAAA,CAAA,EAAA,MAAA,KAAA,CAAA,CAAA,CAAA;AAAA,KACA,CAAA,CAAA;AACA,IAAA,MAAA,CAAA;AAAA,MACA,OAAA;AAAA,KACA,CAAA,CAAA;AACA,IAAA,OAAA,CAAA,MAAA,MAAA,KAAA;AACA,MAAA,OAAA,SAAA,EAAA,EAAA,kBAAA,CAAA,KAAA,EAAA;AAAA,QACA,OAAA,cAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA,GAAA,CAAA;AAAA,OACA,EAAA;AAAA,QACA,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA,QACA,YAAA,UAAA,EAAA;AAAA,UACA,MAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAAA,CAAA,UAAA,KAAA,CAAA,eAAA,CAAA;AAAA,UACA,SAAA,EAAA,EAAA;AAAA,SACA,EAAA;AAAA,UACA,OAAA,EAAA,QAAA,MAAA;AAAA,YACA,cAAA,CAAA,mBAAA,KAAA,EAAA;AAAA,cACA,OAAA,cAAA,CAAA;AAAA,gBACA,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA;AAAA,gBACA,MAAA,EAAA,CAAA,CAAA,EAAA,CAAA,SAAA,EAAA,KAAA,IAAA,CAAA;AAAA,gBACA,KAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,SAAA,CAAA,CAAA,IAAA,CAAA,MAAA,CAAA,OAAA,CAAA;AAAA,gBACA,MAAA,EAAA,CAAA,CAAA,EAAA,CAAA,KAAA,EAAA,KAAA,KAAA,CAAA;AAAA,eACA,CAAA;AAAA,cACA,WAAA,EAAA,eAAA,CAAA,KAAA,CAAA,OAAA,CAAA,CAAA;AAAA,aACA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,CAAA,EAAA;AAAA,cACA,CAAA,OAAA,CAAA,IAAA,CAAA,WAAA,KAAA,CAAA,OAAA,CAAA,IAAA,IAAA,CAAA,KAAA,CAAA,CAAA;AAAA,aACA,CAAA;AAAA,WACA,CAAA;AAAA,UACA,CAAA,EAAA,CAAA;AAAA,SACA,EAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA;AAAA,SACA,CAAA,CAAA,CAAA;AAAA,KACA,CAAA;AAAA,GACA;AACA,CAAA,CAAA,CAAA;AACA,IAAA,KAAA,+BAAA,WAAA,EAAA,CAAA,CAAA,QAAA,EAAA,qFAAA,CAAA,CAAA,CAAA,CAAA;AACA,MAAA,OAAA,GAAA,YAAA,KAAA,CAAA,CAAA;AACA,MAAA,eAAA,UAAA,CAAA;AAAA,EACA,IAAA,EAAA;AAAA,IACA,IAAA,EAAA,OAAA;AAAA,IACA,OAAA,EAAA,IAAA;AAAA,GACA;AAAA,EACA,eAAA,EAAA;AAAA,IACA,IAAA,EAAA,OAAA;AAAA,IACA,OAAA,EAAA,KAAA;AAAA,GACA;AAAA,EACA,YAAA,EAAA;AAAA,IACA,MAAA,cAAA,CAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAA;AAAA,MACA,MAAA;AAAA,KACA,CAAA;AAAA,GACA;AAAA,EACA,MAAA,EAAA;AAAA,IACA,IAAA,EAAA,cAAA,CAAA,CAAA,MAAA,EAAA,MAAA,CAAA,CAAA;AAAA,GACA;AACA,CAAA,CAAA,CAAA;AACA,MAAA,YAAA,GAAA;AAAA,EACA,KAAA,EAAA,CAAA,GAAA,KAAA,GAAA,YAAA,UAAA;AACA,CAAA,CAAA;AACA,MAAA,KAAA,GAAA,SAAA,CAAA;AACA,IAAA,UAAA,eAAA,CAAA;AAAA,EACA,IAAA,EAAA,WAAA;AAAA,EACA,KAAA,EAAA,YAAA;AAAA,EACA,KAAA,EAAA,YAAA;AAAA,EACA,KAAA,CAAA,KAAA,EAAA,EAAA,KAAA,EAAA,MAAA,EAAA;AACA,IAAA,MAAA,EAAA,GAAA,aAAA,KAAA,CAAA,CAAA;AACA,IAAA,MAAA,WAAA,GAAA,CAAA,CAAA,KAAA;AACA,MAAA,IAAA,CAAA,SAAA,CAAA,CAAA,CAAA;AAAA,KACA,CAAA;AACA,IAAA,MAAA,EAAA,SAAA,WAAA,EAAA,SAAA,KAAA,aAAA,CAAA,KAAA,CAAA,eAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAA,CAAA;AACA,IAAA,OAAA,MAAA;AACA,MAAA,OAAA,KAAA,CAAA,IAAA,GAAA,WAAA,CAAA,KAAA,EAAA;AAAA,QACA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,EAAA,MAAA,YAAA,CAAA;AAAA,QACA,KAAA,EAAA;AAAA,UACA,QAAA,KAAA,CAAA,MAAA;AAAA,SACA;AAAA,QACA,OAAA;AAAA,QACA,WAAA;AAAA,QACA,SAAA;AAAA,OACA,EAAA,CAAA,UAAA,CAAA,KAAA,EAAA,SAAA,CAAA,CAAA,EAAA,WAAA,KAAA,GAAA,UAAA,CAAA,QAAA,UAAA,CAAA,KAAA,EAAA,CAAA,SAAA,EAAA,WAAA,EAAA,aAAA,CAAA,CAAA,GAAA,EAAA,KAAA,EAAA;AAAA,QACA,OAAA,KAAA,CAAA,YAAA;AAAA,QACA,KAAA,EAAA;AAAA,UACA,QAAA,KAAA,CAAA,MAAA;AAAA,UACA,QAAA,EAAA,OAAA;AAAA,UACA,GAAA,EAAA,KAAA;AAAA,UACA,KAAA,EAAA,KAAA;AAAA,UACA,MAAA,EAAA,KAAA;AAAA,UACA,IAAA,EAAA,KAAA;AAAA,SACA;AAAA,SACA,CAAA,UAAA,CAAA,KAAA,EAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KACA,CAAA;AAAA,GACA;AACA,CAAA,CAAA,CAAA;AACA,MAAA,SAAA,GAAA,OAAA,CAAA;AACA,MAAA,kBAAA,GAAA,OAAA,oBAAA,CAAA,CAAA;AACA,MAAA,qBAAA,UAAA,CAAA;AAAA,EACA,MAAA,EAAA,OAAA;AAAA,EACA,WAAA,EAAA,OAAA;AAAA,EACA,SAAA,EAAA;AAAA,IACA,IAAA,EAAA,YAAA;AAAA,GACA;AAAA,EACA,WAAA,EAAA;AAAA,IACA,IAAA,EAAA,MAAA;AAAA,IACA,OAAA,EAAA,EAAA;AAAA,GACA;AAAA,EACA,SAAA,EAAA,OAAA;AAAA,EACA,UAAA,EAAA,OAAA;AAAA,EACA,SAAA,EAAA;AAAA,IACA,IAAA,EAAA,OAAA;AAAA,IACA,OAAA,EAAA,IAAA;AAAA,GACA;AAAA,EACA,KAAA,EAAA;AAAA,IACA,IAAA,EAAA,MAAA;AAAA,IACA,OAAA,EAAA,EAAA;AAAA,GACA;AAAA,EACA,SAAA,EAAA;AAAA,IACA,IAAA,EAAA,MAAA;AAAA,IACA,OAAA,EAAA,GAAA;AAAA,GACA;AACA,CAAA,CAAA,CAAA;AACA,MAAA,kBAAA,GAAA;AAAA,EACA,OAAA,MAAA,IAAA;AACA,CAAA,CAAA;AACA,MAAA,YAAA,GAAA,CAAA,YAAA,CAAA,CAAA;AACA,MAAA,YAAA,GAAA,CAAA,YAAA,CAAA,CAAA;AACA,MAAA,UAAA,GAAA,CAAA,IAAA,CAAA,CAAA;AACA,MAAA,aAAA,GAAA,eAAA,CAAA,EAAA,IAAA,EAAA,mBAAA,CAAA,CAAA;AACA,MAAA,8BAAA,eAAA,CAAA;AAAA,EACA,GAAA,aAAA;AAAA,EACA,KAAA,EAAA,kBAAA;AAAA,EACA,KAAA,EAAA,kBAAA;AAAA,EACA,MAAA,OAAA,EAAA;AACA,IAAA,MAAA,KAAA,GAAA,OAAA,CAAA;AACA,IAAA,MAAA,EAAA,CAAA,EAAA,GAAA,SAAA,EAAA,CAAA;AACA,IAAA,MAAA,EAAA,OAAA,GAAA,eAAA,CAAA;AACA,IAAA,MAAA,EAAA,WAAA,SAAA,EAAA,MAAA,EAAA,IAAA,KAAA,EAAA,GAAA,OAAA,kBAAA,CAAA,CAAA;AACA,IAAA,MAAA,EAAA,YAAA,EAAA,GAAA,MAAA,CAAA,wBAAA,CAAA,CAAA;AACA,IAAA,MAAA,SAAA,GAAAA,SAAA,MAAA;AAAA,MACA,GAAA,CAAA,EAAA;AAAA,MACA,EAAA,CAAA,EAAA,CAAA,YAAA,EAAA,KAAA,CAAA,UAAA,CAAA;AAAA,MACA,EAAA,CAAA,EAAA,CAAA,WAAA,EAAA,KAAA,CAAA,SAAA,CAAA;AAAA,MACA,EAAA,CAAA,EAAA,CAAA,cAAA,EAAA,KAAA,CAAA,WAAA,CAAA;AAAA,MACA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,QAAA,CAAA,GAAA,MAAA,MAAA,EAAA;AAAA,MACA,KAAA,CAAA,WAAA;AAAA,KACA,CAAA,CAAA;AACA,IAAA,MAAA,iBAAA,GAAA,WAAA,CAAA,YAAA,EAAA,SAAA,CAAA,CAAA;AACA,IAAAA,QAAA,CAAA,MAAA,MAAA,SAAA,CAAA,CAAA;AACA,IAAA,OAAA,CAAA,MAAA,MAAA,KAAA;AACA,MAAA,OAAA,SAAA,EAAA,EAAA,kBAAA,CAAA,KAAA,EAAA;AAAA,QACA,GAAA,EAAA,MAAA,iBAAA,CAAA;AAAA,QACA,KAAA,EAAA,cAAA,CAAA,KAAA,CAAA,SAAA,CAAA,CAAA;AAAA,QACA,KAAA,EAAA,cAAA,CAAA,KAAA,CAAA,KAAA,CAAA,CAAA;AAAA,QACA,QAAA,EAAA,IAAA;AAAA,OACA,EAAA;AAAA,QACA,mBAAA,QAAA,EAAA;AAAA,UACA,OAAA,EAAA,WAAA;AAAA,UACA,GAAA,EAAA,SAAA;AAAA,UACA,OAAA,cAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA;AAAA,SACA,EAAA;AAAA,UACA,WAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,IAAA,MAAA;AAAA,YACA,mBAAA,MAAA,EAAA;AAAA,cACA,IAAA,EAAA,SAAA;AAAA,cACA,cAAA,IAAA,CAAA,SAAA;AAAA,cACA,OAAA,cAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA;AAAA,eACA,eAAA,CAAA,IAAA,CAAA,KAAA,CAAA,EAAA,IAAA,YAAA,CAAA;AAAA,WACA,CAAA;AAAA,UACA,IAAA,CAAA,SAAA,IAAA,SAAA,EAAA,EAAA,mBAAA,QAAA,EAAA;AAAA,YACA,GAAA,EAAA,CAAA;AAAA,YACA,YAAA,EAAA,KAAA,CAAA,CAAA,CAAA,CAAA,iBAAA,CAAA;AAAA,YACA,OAAA,cAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,WAAA,CAAA,CAAA;AAAA,YACA,IAAA,EAAA,QAAA;AAAA,YACA,OAAA,EAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAA,IAAA,CAAA,KAAA,CAAA,OAAA,CAAA,CAAA;AAAA,WACA,EAAA;AAAA,YACA,WAAA,CAAA,KAAA,CAAA,MAAA,CAAA,EAAA;AAAA,cACA,OAAA,cAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA;AAAA,aACA,EAAA;AAAA,cACA,OAAA,EAAA,QAAA,MAAA;AAAA,iBACA,SAAA,IAAA,WAAA,CAAA,uBAAA,CAAA,KAAA,SAAA,IAAA,KAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AAAA,eACA,CAAA;AAAA,cACA,CAAA,EAAA,CAAA;AAAA,aACA,EAAA,CAAA,EAAA,CAAA,OAAA,CAAA,CAAA;AAAA,aACA,EAAA,EAAA,YAAA,CAAA,IAAA,kBAAA,CAAA,QAAA,IAAA,CAAA;AAAA,WACA,CAAA,CAAA;AAAA,QACA,mBAAA,KAAA,EAAA;AAAA,UACA,EAAA,EAAA,MAAA,MAAA,CAAA;AAAA,UACA,OAAA,cAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA;AAAA,SACA,EAAA;AAAA,UACA,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA,SACA,EAAA,IAAA,UAAA,CAAA;AAAA,QACA,KAAA,MAAA,CAAA,MAAA,IAAA,SAAA,EAAA,EAAA,mBAAA,QAAA,EAAA;AAAA,UACA,GAAA,EAAA,CAAA;AAAA,UACA,OAAA,cAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA;AAAA,SACA,EAAA;AAAA,UACA,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,QAAA,CAAA;AAAA,SACA,EAAA,CAAA,CAAA,IAAA,kBAAA,CAAA,QAAA,IAAA,CAAA;AAAA,SACA,CAAA,CAAA,CAAA;AAAA,KACA,CAAA;AAAA,GACA;AACA,CAAA,CAAA,CAAA;AACA,IAAA,eAAA,+BAAA,WAAA,EAAA,CAAA,CAAA,QAAA,EAAA,+FAAA,CAAA,CAAA,CAAA,CAAA;AACA,MAAA,cAAA,UAAA,CAAA;AAAA,EACA,GAAA,kBAAA;AAAA,EACA,YAAA,EAAA,OAAA;AAAA,EACA,QAAA,EAAA;AAAA,IACA,IAAA,EAAA,eAAA,MAAA,CAAA;AAAA,IACA,OAAA,EAAA,MAAA;AAAA,GACA;AAAA,EACA,WAAA,EAAA;AAAA,IACA,IAAA,EAAA,eAAA,QAAA,CAAA;AAAA,GACA;AAAA,EACA,cAAA,EAAA,OAAA;AAAA,EACA,iBAAA,EAAA;AAAA,IACA,IAAA,EAAA,OAAA;AAAA,IACA,OAAA,EAAA,IAAA;AAAA,GACA;AAAA,EACA,kBAAA,EAAA;AAAA,IACA,IAAA,EAAA,OAAA;AAAA,IACA,OAAA,EAAA,IAAA;AAAA,GACA;AAAA,EACA,UAAA,EAAA;AAAA,IACA,IAAA,EAAA,OAAA;AAAA,IACA,OAAA,EAAA,IAAA;AAAA,GACA;AAAA,EACA,KAAA,EAAA;AAAA,IACA,IAAA,EAAA,OAAA;AAAA,IACA,OAAA,EAAA,IAAA;AAAA,GACA;AAAA,EACA,SAAA,EAAA;AAAA,IACA,IAAA,EAAA,MAAA;AAAA,IACA,OAAA,EAAA,CAAA;AAAA,GACA;AAAA,EACA,UAAA,EAAA;AAAA,IACA,IAAA,EAAA,MAAA;AAAA,IACA,OAAA,EAAA,CAAA;AAAA,GACA;AAAA,EACA,GAAA,EAAA;AAAA,IACA,IAAA,EAAA,MAAA;AAAA,GACA;AAAA,EACA,UAAA,EAAA,OAAA;AAAA,EACA,UAAA,EAAA,MAAA;AAAA,EACA,KAAA,EAAA;AAAA,IACA,IAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA;AAAA,GACA;AAAA,EACA,MAAA,EAAA;AAAA,IACA,IAAA,EAAA,MAAA;AAAA,GACA;AAAA,EACA,SAAA,EAAA;AAAA,IACA,IAAA,EAAA,OAAA;AAAA,IACA,OAAA,EAAA,KAAA;AAAA,GACA;AAAA,EACA,eAAA,EAAA;AAAA,IACA,IAAA,EAAA,MAAA;AAAA,IACA,OAAA,EAAA,GAAA;AAAA,GACA;AACA,CAAA,CAAA,CAAA;AACA,MAAA,WAAA,GAAA;AAAA,EACA,MAAA,MAAA,IAAA;AAAA,EACA,QAAA,MAAA,IAAA;AAAA,EACA,OAAA,MAAA,IAAA;AAAA,EACA,QAAA,MAAA,IAAA;AAAA,EACA,CAAA,kBAAA,GAAA,CAAA,KAAA,KAAA,UAAA,KAAA,CAAA;AAAA,EACA,eAAA,MAAA,IAAA;AAAA,EACA,gBAAA,MAAA,IAAA;AACA,CAAA,CAAA;AACA,MAAA,SAAA,GAAA,CAAA,KAAA,EAAA,SAAA,KAAA;AACA,EAAA,IAAA,EAAA,CAAA;AACA,EAAA,MAAA,WAAA,kBAAA,EAAA,CAAA;AACA,EAAA,MAAA,OAAA,QAAA,CAAA,IAAA,CAAA;AACA,EAAA,MAAA,EAAA,UAAA,EAAA,GAAA,SAAA,EAAA,CAAA;AACA,EAAA,IAAA,YAAA,GAAA,EAAA,CAAA;AACA,EAAA,MAAA,UAAA,KAAA,EAAA,CAAA;AACA,EAAA,MAAA,SAAA,KAAA,EAAA,CAAA;AACA,EAAA,MAAA,OAAA,GAAA,IAAA,KAAA,CAAA,CAAA;AACA,EAAA,MAAA,MAAA,GAAA,IAAA,KAAA,CAAA,CAAA;AACA,EAAA,MAAA,QAAA,GAAA,IAAA,KAAA,CAAA,CAAA;AACA,EAAA,MAAA,MAAA,GAAA,KAAA,EAAA,GAAA,KAAA,CAAA,WAAA,IAAA,GAAA,EAAA,GAAA,YAAA,CAAA,CAAA;AACA,EAAA,IAAA,SAAA,GAAA,KAAA,CAAA,CAAA;AACA,EAAA,IAAA,UAAA,GAAA,KAAA,CAAA,CAAA;AACA,EAAA,MAAA,SAAA,GAAA,eAAA,CAAA,WAAA,EAAA,gBAAA,CAAA,CAAA;AACA,EAAA,MAAA,KAAA,GAAAA,SAAA,MAAA;AACA,IAAA,MAAA,SAAA,EAAA,CAAA;AACA,IAAA,MAAA,SAAA,GAAA,CAAA,EAAA,EAAA,SAAA,CAAA,KAAA,CAAA,OAAA,CAAA,CAAA;AACA,IAAA,IAAA,CAAA,MAAA,UAAA,EAAA;AACA,MAAA,IAAA,MAAA,GAAA,EAAA;AACA,QAAA,MAAA,CAAA,CAAA,EAAA,SAAA,CAAA,WAAA,CAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA;AAAA,OACA;AACA,MAAA,IAAA,MAAA,KAAA,EAAA;AACA,QAAA,MAAA,CAAA,GAAA,SAAA,CAAA,MAAA,CAAA,CAAA,GAAA,OAAA,CAAA,MAAA,KAAA,CAAA,CAAA;AAAA,OACA;AAAA,KACA;AACA,IAAA,OAAA,MAAA,CAAA;AAAA,GACA,CAAA,CAAA;AACA,EAAA,MAAA,kBAAA,GAAAA,SAAA,MAAA;AACA,IAAA,IAAA,MAAA,WAAA,EAAA;AACA,MAAA,OAAA,EAAA,SAAA,MAAA,EAAA,CAAA;AAAA,KACA;AACA,IAAA,OAAA,EAAA,CAAA;AAAA,GACA,CAAA,CAAA;AACA,EAAA,SAAA,UAAA,GAAA;AACA,IAAA,IAAA,CAAA,QAAA,CAAA,CAAA;AAAA,GACA;AACA,EAAA,SAAA,UAAA,GAAA;AACA,IAAA,IAAA,CAAA,QAAA,CAAA,CAAA;AACA,IAAA,IAAA,CAAA,oBAAA,KAAA,CAAA,CAAA;AACA,IAAA,IAAA,MAAA,cAAA,EAAA;AACA,MAAA,QAAA,CAAA,KAAA,GAAA,KAAA,CAAA;AAAA,KACA;AAAA,GACA;AACA,EAAA,SAAA,WAAA,GAAA;AACA,IAAA,IAAA,CAAA,OAAA,CAAA,CAAA;AAAA,GACA;AACA,EAAA,SAAA,IAAA,GAAA;AACA,IAAA,UAAA,IAAA,IAAA,GAAA,SAAA,UAAA,EAAA,CAAA;AACA,IAAA,SAAA,IAAA,IAAA,GAAA,SAAA,SAAA,EAAA,CAAA;AACA,IAAA,IAAA,KAAA,CAAA,SAAA,IAAA,KAAA,CAAA,SAAA,GAAA,CAAA,EAAA;AACA,MAAA,CAAA,EAAA,MAAA,SAAA,EAAA,GAAA,aAAA,MAAA,MAAA,EAAA,EAAA,KAAA,CAAA,SAAA,CAAA,EAAA;AAAA,KACA,MAAA;AACA,MAAA,MAAA,EAAA,CAAA;AAAA,KACA;AAAA,GACA;AACA,EAAA,SAAA,KAAA,GAAA;AACA,IAAA,SAAA,IAAA,IAAA,GAAA,SAAA,SAAA,EAAA,CAAA;AACA,IAAA,UAAA,IAAA,IAAA,GAAA,SAAA,UAAA,EAAA,CAAA;AACA,IAAA,IAAA,KAAA,CAAA,UAAA,IAAA,KAAA,CAAA,UAAA,GAAA,CAAA,EAAA;AACA,MAAA,CAAA,EAAA,MAAA,UAAA,EAAA,GAAA,aAAA,MAAA,OAAA,EAAA,EAAA,KAAA,CAAA,UAAA,CAAA,EAAA;AAAA,KACA,MAAA;AACA,MAAA,OAAA,EAAA,CAAA;AAAA,KACA;AAAA,GACA;AACA,EAAA,SAAA,WAAA,GAAA;AACA,IAAA,SAAA,KAAA,YAAA,EAAA;AACA,MAAA,IAAA,YAAA;AACA,QAAA,OAAA;AACA,MAAA,MAAA,CAAA,KAAA,GAAA,IAAA,CAAA;AACA,MAAA,OAAA,CAAA,KAAA,GAAA,KAAA,CAAA;AAAA,KACA;AACA,IAAA,IAAA,MAAA,WAAA,EAAA;AACA,MAAA,KAAA,CAAA,YAAA,IAAA,CAAA,CAAA;AAAA,KACA,MAAA;AACA,MAAA,KAAA,EAAA,CAAA;AAAA,KACA;AAAA,GACA;AACA,EAAA,SAAA,YAAA,GAAA;AACA,IAAA,IAAA,MAAA,iBAAA,EAAA;AACA,MAAA,WAAA,EAAA,CAAA;AAAA,KACA;AAAA,GACA;AACA,EAAA,SAAA,MAAA,GAAA;AACA,IAAA,IAAA,CAAA,QAAA;AACA,MAAA,OAAA;AACA,IAAA,OAAA,CAAA,KAAA,GAAA,IAAA,CAAA;AAAA,GACA;AACA,EAAA,SAAA,OAAA,GAAA;AACA,IAAA,OAAA,CAAA,KAAA,GAAA,KAAA,CAAA;AAAA,GACA;AACA,EAAA,SAAA,eAAA,GAAA;AACA,IAAA,IAAA,CAAA,eAAA,CAAA,CAAA;AAAA,GACA;AACA,EAAA,SAAA,gBAAA,GAAA;AACA,IAAA,IAAA,CAAA,gBAAA,CAAA,CAAA;AAAA,GACA;AACA,EAAA,SAAA,oBAAA,KAAA,EAAA;AACA,IAAA,IAAA,GAAA,CAAA;AACA,IAAA,IAAA,CAAA,CAAA,MAAA,KAAA,CAAA,MAAA,KAAA,OAAA,KAAA,CAAA,GAAA,GAAA,CAAA,iBAAA,SAAA,EAAA;AACA,MAAA,KAAA,CAAA,cAAA,EAAA,CAAA;AAAA,KACA;AAAA,GACA;AACA,EAAA,IAAA,MAAA,UAAA,EAAA;AACA,IAAA,aAAA,CAAA,OAAA,CAAA,CAAA;AAAA,GACA;AACA,EAAA,SAAA,gBAAA,GAAA;AACA,IAAA,IAAA,MAAA,kBAAA,EAAA;AACA,MAAA,WAAA,EAAA,CAAA;AAAA,KACA;AAAA,GACA;AACA,EAAA,KAAA,CAAA,MAAA,KAAA,CAAA,UAAA,EAAA,CAAA,GAAA,KAAA;AACA,IAAA,IAAA,GAAA,EAAA;AACA,MAAA,MAAA,CAAA,KAAA,GAAA,KAAA,CAAA;AACA,MAAA,IAAA,EAAA,CAAA;AACA,MAAA,QAAA,CAAA,KAAA,GAAA,IAAA,CAAA;AACA,MAAA,MAAA,CAAA,QAAA,WAAA,CAAA,KAAA,CAAA,MAAA,CAAA,GAAA,UAAA,KAAA,MAAA,CAAA,KAAA,EAAA,CAAA;AACA,MAAA,QAAA,CAAA,MAAA;AACA,QAAA,IAAA,CAAA,MAAA,CAAA,CAAA;AACA,QAAA,IAAA,UAAA,KAAA,EAAA;AACA,UAAA,SAAA,CAAA,MAAA,SAAA,GAAA,CAAA,CAAA;AAAA,SACA;AAAA,OACA,CAAA,CAAA;AAAA,KACA,MAAA;AACA,MAAA,IAAA,QAAA,KAAA,EAAA;AACA,QAAA,KAAA,EAAA,CAAA;AAAA,OACA;AAAA,KACA;AAAA,GACA,CAAA,CAAA;AACA,EAAA,KAAA,CAAA,MAAA,KAAA,CAAA,UAAA,EAAA,CAAA,GAAA,KAAA;AACA,IAAA,IAAA,CAAA,SAAA,CAAA,KAAA;AACA,MAAA,OAAA;AACA,IAAA,IAAA,GAAA,EAAA;AACA,MAAA,YAAA,GAAA,SAAA,CAAA,MAAA,KAAA,CAAA,SAAA,CAAA;AACA,MAAA,SAAA,CAAA,KAAA,CAAA,MAAA,SAAA,GAAA,EAAA,CAAA;AAAA,KACA,MAAA;AACA,MAAA,SAAA,CAAA,KAAA,CAAA,MAAA,SAAA,GAAA,YAAA,CAAA;AAAA,KACA;AAAA,GACA,CAAA,CAAA;AACA,EAAA,OAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA;AAAA,IACA,KAAA;AAAA,IACA,OAAA;AAAA,IACA,eAAA;AAAA,IACA,gBAAA;AAAA,IACA,gBAAA;AAAA,IACA,mBAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,kBAAA;AAAA,IACA,QAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,GACA,CAAA;AACA,CAAA,CAAA;AACA,MAAA,YAAA,GAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,CAAA,CAAA;AACA,MAAA,gBAAA,eAAA,CAAA;AAAA,EACA,IAAA,EAAA,UAAA;AAAA,EACA,YAAA,EAAA,KAAA;AACA,CAAA,CAAA,CAAA;AACA,MAAA,8BAAA,eAAA,CAAA;AAAA,EACA,GAAA,aAAA;AAAA,EACA,KAAA,EAAA,WAAA;AAAA,EACA,KAAA,EAAA,WAAA;AAAA,EACA,KAAA,CAAA,OAAA,EAAA,EAAA,MAAA,EAAA,EAAA;AACA,IAAA,MAAA,KAAA,GAAA,OAAA,CAAA;AACA,IAAA,MAAA,QAAA,QAAA,EAAA,CAAA;AACA,IAAA,aAAA,CAAA;AAAA,MACA,KAAA,EAAA,WAAA;AAAA,MACA,IAAA,EAAA,gBAAA;AAAA,MACA,WAAA,EAAA,iBAAA;AAAA,MACA,OAAA,EAAA,OAAA;AAAA,MACA,GAAA,EAAA,4DAAA;AAAA,OACAA,QAAA,CAAA,MAAA,CAAA,CAAA,KAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AACA,IAAA,aAAA,CAAA;AAAA,MACA,KAAA,EAAA,WAAA;AAAA,MACA,IAAA,EAAA,cAAA;AAAA,MACA,WAAA,EAAA,OAAA;AAAA,MACA,OAAA,EAAA,OAAA;AAAA,MACA,GAAA,EAAA,iEAAA;AAAA,MACA,IAAA,EAAA,WAAA;AAAA,OACAA,QAAA,CAAA,MAAA,CAAA,CAAA,KAAA,CAAA,WAAA,CAAA,CAAA,CAAA;AACA,IAAA,MAAA,EAAA,GAAA,aAAA,QAAA,CAAA,CAAA;AACA,IAAA,MAAA,YAAA,GAAA,EAAA,CAAA;AACA,IAAA,MAAA,YAAA,GAAA,EAAA,CAAA;AACA,IAAA,MAAA,mBAAA,GAAA,EAAA,CAAA;AACA,IAAA,MAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAA;AAAA,MACA,kBAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA;AAAA,MACA,WAAA;AAAA,MACA,YAAA;AAAA,MACA,eAAA;AAAA,MACA,gBAAA;AAAA,MACA,gBAAA;AAAA,MACA,mBAAA;AAAA,KACA,GAAA,SAAA,CAAA,KAAA,EAAA,SAAA,CAAA,CAAA;AACA,IAAA,OAAA,CAAA,kBAAA,EAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA,MAAA;AAAA,MACA,EAAA;AAAA,MACA,QAAA;AAAA,MACA,KAAA;AAAA,KACA,CAAA,CAAA;AACA,IAAA,MAAA,YAAA,GAAA,cAAA,YAAA,CAAA,CAAA;AACA,IAAA,MAAA,YAAAA,QAAA,CAAA,MAAA,MAAA,SAAA,IAAA,CAAA,MAAA,UAAA,CAAA,CAAA;AACA,IAAA,MAAA,CAAA;AAAA,MACA,OAAA;AAAA,MACA,gBAAA;AAAA,KACA,CAAA,CAAA;AACA,IAAA,OAAA,CAAA,MAAA,MAAA,KAAA;AACA,MAAA,OAAA,SAAA,EAAA,EAAA,WAAA,CAAA,QAAA,EAAA;AAAA,QACA,IAAA,IAAA,CAAA,QAAA;AAAA,QACA,UAAA,IAAA,CAAA,QAAA,KAAA,MAAA,GAAA,KAAA,GAAA,CAAA,IAAA,CAAA,YAAA;AAAA,OACA,EAAA;AAAA,QACA,YAAA,UAAA,EAAA;AAAA,UACA,IAAA,EAAA,aAAA;AAAA,UACA,YAAA,EAAA,MAAA,UAAA,CAAA;AAAA,UACA,YAAA,EAAA,MAAA,UAAA,CAAA;AAAA,UACA,aAAA,EAAA,MAAA,WAAA,CAAA;AAAA,UACA,SAAA,EAAA,EAAA;AAAA,SACA,EAAA;AAAA,UACA,OAAA,EAAA,QAAA,MAAA;AAAA,YACA,cAAA,CAAA,WAAA,CAAA,KAAA,CAAA,SAAA,CAAA,EAAA;AAAA,cACA,mBAAA,EAAA,EAAA;AAAA,cACA,MAAA,IAAA,CAAA,KAAA;AAAA,cACA,iBAAA,IAAA,CAAA,UAAA;AAAA,cACA,SAAA,EAAA,MAAA,MAAA,CAAA;AAAA,aACA,EAAA;AAAA,cACA,OAAA,EAAA,QAAA,MAAA;AAAA,gBACA,mBAAA,KAAA,EAAA;AAAA,kBACA,IAAA,EAAA,QAAA;AAAA,kBACA,YAAA,EAAA,MAAA;AAAA,kBACA,YAAA,EAAA,KAAA,KAAA,IAAA,KAAA,CAAA;AAAA,kBACA,mBAAA,CAAA,IAAA,CAAA,KAAA,GAAA,KAAA,CAAA,OAAA,CAAA,GAAA,KAAA,CAAA;AAAA,kBACA,kBAAA,EAAA,MAAA,MAAA,CAAA;AAAA,kBACA,KAAA,EAAA,eAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAAA,CAAA,SAAA,CAAA,KAAA,CAAA,eAAA,CAAA,CAAA;AAAA,kBACA,KAAA,EAAA,cAAA,CAAA,KAAA,CAAA,kBAAA,CAAA,CAAA;AAAA,kBACA,SAAA,MAAA,CAAA,CAAA,MAAA,MAAA,CAAA,CAAA,IAAA,CAAA,GAAA,IAAA,KAAA,KAAA,CAAA,YAAA,EAAA,OAAA,IAAA,KAAA,CAAA,YAAA,CAAA,CAAA,OAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,kBACA,aAAA,MAAA,CAAA,CAAA,MAAA,MAAA,CAAA,CAAA,IAAA,CAAA,GAAA,IAAA,KAAA,KAAA,CAAA,YAAA,EAAA,WAAA,IAAA,KAAA,CAAA,YAAA,CAAA,CAAA,WAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,kBACA,WAAA,MAAA,CAAA,CAAA,MAAA,MAAA,CAAA,CAAA,IAAA,CAAA,GAAA,IAAA,KAAA,KAAA,CAAA,YAAA,EAAA,SAAA,IAAA,KAAA,CAAA,YAAA,CAAA,CAAA,SAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,iBACA,EAAA;AAAA,kBACA,WAAA,CAAA,KAAA,CAAA,WAAA,CAAA,EAAA;AAAA,oBACA,IAAA,EAAA,EAAA;AAAA,oBACA,OAAA,EAAA,MAAA,OAAA,CAAA;AAAA,oBACA,gBAAA,EAAA,WAAA;AAAA,oBACA,mBAAA,EAAA,MAAA,eAAA,CAAA;AAAA,oBACA,oBAAA,EAAA,MAAA,gBAAA,CAAA;AAAA,oBACA,mBAAA,EAAA,MAAA,mBAAA,CAAA;AAAA,oBACA,kBAAA,EAAA,MAAA,gBAAA,CAAA;AAAA,mBACA,EAAA;AAAA,oBACA,OAAA,EAAA,QAAA,MAAA;AAAA,sBACA,MAAA,QAAA,CAAA,IAAA,WAAA,EAAA,WAAA,CAAA,iBAAA,UAAA,CAAA;AAAA,wBACA,GAAA,EAAA,CAAA;AAAA,wBACA,OAAA,EAAA,kBAAA;AAAA,wBACA,GAAA,EAAA,gBAAA;AAAA,uBACA,EAAA,KAAA,MAAA,EAAA;AAAA,wBACA,gBAAA,IAAA,CAAA,WAAA;AAAA,wBACA,QAAA,IAAA,CAAA,MAAA;AAAA,wBACA,gBAAA,IAAA,CAAA,WAAA;AAAA,wBACA,cAAA,IAAA,CAAA,SAAA;AAAA,wBACA,SAAA,EAAA,MAAA,SAAA,CAAA;AAAA,wBACA,YAAA,IAAA,CAAA,UAAA;AAAA,wBACA,cAAA,IAAA,CAAA,SAAA;AAAA,wBACA,OAAA,IAAA,CAAA,KAAA;AAAA,wBACA,cAAA,IAAA,CAAA,eAAA;AAAA,wBACA,OAAA,EAAA,MAAA,WAAA,CAAA;AAAA,uBACA,GAAA,WAAA,CAAA;AAAA,wBACA,MAAA,EAAA,QAAA,MAAA;AAAA,0BACA,CAAA,IAAA,CAAA,MAAA,CAAA,QAAA,UAAA,CAAA,IAAA,CAAA,QAAA,QAAA,EAAA;AAAA,4BACA,GAAA,EAAA,CAAA;AAAA,4BACA,KAAA,EAAA,MAAA,WAAA,CAAA;AAAA,4BACA,OAAA,EAAA,MAAA,OAAA,CAAA;AAAA,4BACA,UAAA,EAAA,KAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA;AAAA,2BACA,IAAA,UAAA,CAAA,IAAA,CAAA,QAAA,OAAA,EAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAAA;AAAA,yBACA,CAAA;AAAA,wBACA,OAAA,EAAA,QAAA,MAAA;AAAA,0BACA,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA,yBACA,CAAA;AAAA,wBACA,CAAA,EAAA,CAAA;AAAA,uBACA,EAAA;AAAA,wBACA,IAAA,CAAA,OAAA,MAAA,GAAA;AAAA,0BACA,IAAA,EAAA,QAAA;AAAA,0BACA,EAAA,EAAA,QAAA,MAAA;AAAA,4BACA,UAAA,CAAA,IAAA,CAAA,MAAA,EAAA,QAAA,CAAA;AAAA,2BACA,CAAA;AAAA,yBACA,GAAA,KAAA,CAAA;AAAA,uBACA,CAAA,EAAA,IAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,gBAAA,YAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,YAAA,EAAA,SAAA,CAAA,CAAA,IAAA,kBAAA,CAAA,QAAA,IAAA,CAAA;AAAA,qBACA,CAAA;AAAA,oBACA,CAAA,EAAA,CAAA;AAAA,mBACA,EAAA,GAAA,CAAA,SAAA,EAAA,uBAAA,sBAAA,EAAA,qBAAA,EAAA,oBAAA,CAAA,CAAA;AAAA,iBACA,EAAA,IAAA,YAAA,CAAA;AAAA,eACA,CAAA;AAAA,cACA,CAAA,EAAA,CAAA;AAAA,eACA,CAAA,EAAA,CAAA,QAAA,eAAA,EAAA,SAAA,CAAA,CAAA,EAAA;AAAA,cACA,CAAA,KAAA,EAAA,KAAA,CAAA,OAAA,CAAA,CAAA;AAAA,aACA,CAAA;AAAA,WACA,CAAA;AAAA,UACA,CAAA,EAAA,CAAA;AAAA,WACA,CAAA,EAAA,CAAA,cAAA,EAAA,cAAA,EAAA,eAAA,CAAA,CAAA;AAAA,OACA,EAAA,CAAA,EAAA,CAAA,IAAA,EAAA,UAAA,CAAA,CAAA,CAAA;AAAA,KACA,CAAA;AAAA,GACA;AACA,CAAA,CAAA,CAAA;AACA,IAAA,MAAA,+BAAA,WAAA,EAAA,CAAA,CAAA,QAAA,EAAA,uFAAA,CAAA,CAAA,CAAA,CAAA;AACA,MAAA,QAAA,GAAA,YAAA,MAAA,CAAA,CAAA;AACA,MAAA,YAAA,GAAA,CAAA,SAAA,EAAA,MAAA,EAAA,WAAA,OAAA,CAAA,CAAA;AACA,MAAA,kBAAA,OAAA,CAAA;AAAA,EACA,WAAA,EAAA,EAAA;AAAA,EACA,MAAA,EAAA,KAAA;AAAA,EACA,wBAAA,EAAA,KAAA;AAAA,EACA,QAAA,EAAA,GAAA;AAAA,EACA,IAAA,EAAA,KAAA,CAAA;AAAA,EACA,EAAA,EAAA,EAAA;AAAA,EACA,OAAA,EAAA,EAAA;AAAA,EACA,OAAA,EAAA,KAAA,CAAA;AAAA,EACA,SAAA,EAAA,KAAA;AAAA,EACA,IAAA,EAAA,MAAA;AAAA,EACA,MAAA,EAAA,EAAA;AAAA,EACA,MAAA,EAAA,CAAA;AAAA,EACA,QAAA,EAAA,KAAA;AAAA,EACA,SAAA,EAAA,CAAA;AAAA,EACA,QAAA,EAAA,QAAA,GAAA,QAAA,CAAA,IAAA,GAAA,KAAA,CAAA;AACA,CAAA,CAAA,CAAA;AACA,MAAA,eAAA,UAAA,CAAA;AAAA,EACA,WAAA,EAAA;AAAA,IACA,IAAA,EAAA,MAAA;AAAA,IACA,SAAA,eAAA,CAAA,WAAA;AAAA,GACA;AAAA,EACA,MAAA,EAAA;AAAA,IACA,IAAA,EAAA,OAAA;AAAA,IACA,SAAA,eAAA,CAAA,MAAA;AAAA,GACA;AAAA,EACA,wBAAA,EAAA;AAAA,IACA,IAAA,EAAA,OAAA;AAAA,IACA,SAAA,eAAA,CAAA,wBAAA;AAAA,GACA;AAAA,EACA,QAAA,EAAA;AAAA,IACA,IAAA,EAAA,MAAA;AAAA,IACA,SAAA,eAAA,CAAA,QAAA;AAAA,GACA;AAAA,EACA,IAAA,EAAA;AAAA,IACA,IAAA,EAAA,YAAA;AAAA,IACA,SAAA,eAAA,CAAA,IAAA;AAAA,GACA;AAAA,EACA,EAAA,EAAA;AAAA,IACA,IAAA,EAAA,MAAA;AAAA,IACA,SAAA,eAAA,CAAA,EAAA;AAAA,GACA;AAAA,EACA,OAAA,EAAA;AAAA,IACA,MAAA,cAAA,CAAA;AAAA,MACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,QAAA;AAAA,KACA,CAAA;AAAA,IACA,SAAA,eAAA,CAAA,OAAA;AAAA,GACA;AAAA,EACA,OAAA,EAAA;AAAA,IACA,IAAA,EAAA,eAAA,QAAA,CAAA;AAAA,IACA,QAAA,EAAA,KAAA;AAAA,GACA;AAAA,EACA,SAAA,EAAA;AAAA,IACA,IAAA,EAAA,OAAA;AAAA,IACA,SAAA,eAAA,CAAA,SAAA;AAAA,GACA;AAAA,EACA,IAAA,EAAA;AAAA,IACA,IAAA,EAAA,MAAA;AAAA,IACA,MAAA,EAAA,YAAA;AAAA,IACA,SAAA,eAAA,CAAA,IAAA;AAAA,GACA;AAAA,EACA,MAAA,EAAA;AAAA,IACA,IAAA,EAAA,MAAA;AAAA,IACA,SAAA,eAAA,CAAA,MAAA;AAAA,GACA;AAAA,EACA,MAAA,EAAA;AAAA,IACA,IAAA,EAAA,MAAA;AAAA,IACA,SAAA,eAAA,CAAA,MAAA;AAAA,GACA;AAAA,EACA,QAAA,EAAA;AAAA,IACA,IAAA,EAAA,OAAA;AAAA,IACA,SAAA,eAAA,CAAA,QAAA;AAAA,GACA;AAAA,EACA,SAAA,EAAA;AAAA,IACA,IAAA,EAAA,MAAA;AAAA,IACA,SAAA,eAAA,CAAA,SAAA;AAAA,GACA;AACA,CAAA,CAAA,CAAA;AACA,MAAA,YAAA,GAAA;AAAA,EACA,SAAA,MAAA,IAAA;AACA,CAAA,CAAA;AACA,MAAA,SAAA,GAAA,eAAA,CAAA,EAAA,CAAA,CAAA;AACA,MAAA,WAAA,GAAA,CAAA,EAAA,KAAA;AACA,EAAA,MAAA,MAAA,SAAA,CAAA,SAAA,CAAA,CAAA,QAAA,KAAA,QAAA,CAAA,OAAA,EAAA,CAAA,CAAA;AACA,EAAA,MAAA,OAAA,GAAA,UAAA,GAAA,CAAA,CAAA;AACA,EAAA,IAAA,IAAA,CAAA;AACA,EAAA,IAAA,MAAA,CAAA,EAAA;AACA,IAAA,IAAA,GAAA,SAAA,CAAA,MAAA,CAAA,CAAA,CAAA;AAAA,GACA;AACA,EAAA,OAAA,EAAA,SAAA,IAAA,EAAA,CAAA;AACA,CAAA,CAAA;AACA,MAAA,aAAA,GAAA,CAAA,EAAA,KAAA;AACA,EAAA,MAAA,EAAA,IAAA,EAAA,GAAA,WAAA,CAAA,EAAA,CAAA,CAAA;AACA,EAAA,IAAA,CAAA,IAAA;AACA,IAAA,OAAA,CAAA,CAAA;AACA,EAAA,OAAA,IAAA,CAAA,EAAA,CAAA,OAAA,CAAA,MAAA,CAAA,KAAA,CAAA;AACA,CAAA,CAAA;AACA,MAAA,gBAAA,GAAA,CAAA,EAAA,EAAA,MAAA,KAAA;AACA,EAAA,MAAA,MAAA,SAAA,CAAA,SAAA,CAAA,CAAA,QAAA,KAAA,QAAA,CAAA,OAAA,EAAA,CAAA,CAAA;AACA,EAAA,OAAA,GAAA,GAAA,IAAA,EAAA,GAAA,MAAA,CAAA;AACA,CAAA,CAAA;AACA,MAAA,UAAA,GAAA,CAAA,IAAA,CAAA,CAAA;AACA,MAAA,UAAA,GAAA,CAAA,WAAA,CAAA,CAAA;AACA,MAAA,cAAA,eAAA,CAAA;AAAA,EACA,IAAA,EAAA,WAAA;AACA,CAAA,CAAA,CAAA;AACA,MAAA,8BAAA,eAAA,CAAA;AAAA,EACA,GAAA,WAAA;AAAA,EACA,KAAA,EAAA,YAAA;AAAA,EACA,KAAA,EAAA,YAAA;AAAA,EACA,KAAA,CAAA,OAAA,EAAA,EAAA,MAAA,EAAA,EAAA;AACA,IAAA,MAAA,KAAA,GAAA,OAAA,CAAA;AACA,IAAA,MAAA,EAAA,OAAA,GAAA,cAAA,CAAA;AACA,IAAA,MAAA,EAAA,EAAA,EAAA,MAAA,EAAA,GAAA,2BAAA,SAAA,CAAA,CAAA;AACA,IAAA,MAAA,EAAA,aAAA,EAAA,UAAA,EAAA,GAAA,MAAA,CAAA;AACA,IAAA,MAAA,aAAA,GAAA,EAAA,CAAA;AACA,IAAA,MAAA,OAAA,GAAA,IAAA,KAAA,CAAA,CAAA;AACA,IAAA,MAAA,MAAA,GAAA,IAAA,CAAA,CAAA,CAAA;AACA,IAAA,IAAA,SAAA,GAAA,KAAA,CAAA,CAAA;AACA,IAAA,MAAA,SAAA,GAAAA,QAAA,CAAA,MAAA,KAAA,CAAA,IAAA,GAAA,KAAA,CAAA,IAAA,KAAA,OAAA,GAAA,QAAA,GAAA,KAAA,CAAA,IAAA,GAAA,MAAA,CAAA,CAAA;AACA,IAAA,MAAA,SAAA,GAAAA,SAAA,MAAA;AACA,MAAA,MAAA,OAAA,KAAA,CAAA,IAAA,CAAA;AACA,MAAA,OAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,MAAA,EAAA,IAAA,CAAA,GAAA,IAAA,IAAA,iBAAA,CAAA,IAAA,CAAA,EAAA,CAAA;AAAA,KACA,CAAA,CAAA;AACA,IAAA,MAAA,aAAA,GAAAA,SAAA,MAAA,KAAA,CAAA,QAAA,iBAAA,CAAA,KAAA,CAAA,IAAA,CAAA,IAAA,EAAA,CAAA,CAAA;AACA,IAAA,MAAA,aAAAA,QAAA,CAAA,MAAA,aAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA;AACA,IAAA,MAAA,MAAA,GAAAA,QAAA,CAAA,MAAA,gBAAA,CAAA,KAAA,CAAA,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,UAAA,CAAA,KAAA,CAAA,CAAA;AACA,IAAA,MAAA,SAAAA,QAAA,CAAA,MAAA,MAAA,CAAA,KAAA,GAAA,OAAA,KAAA,CAAA,CAAA;AACA,IAAA,MAAA,WAAA,GAAAA,SAAA,OAAA;AAAA,MACA,GAAA,EAAA,CAAA,EAAA,MAAA,CAAA,KAAA,CAAA,EAAA,CAAA;AAAA,MACA,QAAA,aAAA,CAAA,KAAA;AAAA,KACA,CAAA,CAAA,CAAA;AACA,IAAA,SAAA,UAAA,GAAA;AACA,MAAA,IAAA,MAAA,QAAA,KAAA,CAAA;AACA,QAAA,OAAA;AACA,MAAA,CAAA,EAAA,IAAA,EAAA,SAAA,EAAA,GAAA,aAAA,MAAA;AACA,QAAA,KAAA,EAAA,CAAA;AAAA,OACA,EAAA,MAAA,QAAA,CAAA,EAAA;AAAA,KACA;AACA,IAAA,SAAA,UAAA,GAAA;AACA,MAAA,SAAA,IAAA,IAAA,GAAA,SAAA,SAAA,EAAA,CAAA;AAAA,KACA;AACA,IAAA,SAAA,KAAA,GAAA;AACA,MAAA,OAAA,CAAA,KAAA,GAAA,KAAA,CAAA;AAAA,KACA;AACA,IAAA,SAAA,OAAA,CAAA,EAAA,IAAA,EAAA,EAAA;AACA,MAAA,IAAA,IAAA,KAAA,WAAA,GAAA,EAAA;AACA,QAAA,KAAA,EAAA,CAAA;AAAA,OACA;AAAA,KACA;AACA,IAAA,KAAA,CAAA,MAAA,KAAA,CAAA,SAAA,EAAA,MAAA;AACA,MAAA,UAAA,EAAA,CAAA;AACA,MAAA,UAAA,EAAA,CAAA;AAAA,KACA,CAAA,CAAA;AACA,IAAA,gBAAA,CAAA,QAAA,EAAA,WAAA,OAAA,CAAA,CAAA;AACA,IAAA,iBAAA,CAAA,YAAA,MAAA;AACA,MAAA,MAAA,CAAA,KAAA,GAAA,UAAA,CAAA,KAAA,CAAA,qBAAA,EAAA,CAAA,MAAA,CAAA;AAAA,KACA,CAAA,CAAA;AACA,IAAA,MAAA,CAAA;AAAA,MACA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAA;AAAA,KACA,CAAA,CAAA;AACA,IAAA,OAAA,CAAA,MAAA,MAAA,KAAA;AACA,MAAA,OAAA,SAAA,EAAA,EAAA,WAAA,CAAA,UAAA,EAAA;AAAA,QACA,IAAA,EAAA,KAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA;AAAA,QACA,eAAA,IAAA,CAAA,OAAA;AAAA,QACA,YAAA,EAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,MAAA,KAAA,IAAA,CAAA,KAAA,CAAA,SAAA,CAAA,CAAA;AAAA,QACA,SAAA,EAAA,EAAA;AAAA,OACA,EAAA;AAAA,QACA,OAAA,EAAA,QAAA,MAAA;AAAA,UACA,cAAA,CAAA,mBAAA,KAAA,EAAA;AAAA,YACA,IAAA,IAAA,CAAA,EAAA;AAAA,YACA,OAAA,EAAA,YAAA;AAAA,YACA,GAAA,EAAA,UAAA;AAAA,YACA,OAAA,cAAA,CAAA;AAAA,cACA,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA;AAAA,cACA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA,GAAA,IAAA,CAAA,IAAA,IAAA,CAAA,KAAA,IAAA,EAAA;AAAA,cACA,MAAA,EAAA,CAAA,CAAA,EAAA,CAAA,QAAA,EAAA,KAAA,MAAA,CAAA;AAAA,cACA,MAAA,EAAA,CAAA,CAAA,EAAA,CAAA,UAAA,EAAA,KAAA,SAAA,CAAA;AAAA,cACA,IAAA,CAAA,WAAA;AAAA,aACA,CAAA;AAAA,YACA,KAAA,EAAA,cAAA,CAAA,KAAA,CAAA,WAAA,CAAA,CAAA;AAAA,YACA,IAAA,EAAA,OAAA;AAAA,YACA,YAAA,EAAA,UAAA;AAAA,YACA,YAAA,EAAA,UAAA;AAAA,WACA,EAAA;AAAA,YACA,IAAA,CAAA,YAAA,CAAA,IAAA,SAAA,IAAA,WAAA,CAAA,KAAA,CAAA,OAAA,CAAA,EAAA;AAAA,cACA,GAAA,EAAA,CAAA;AAAA,cACA,OAAA,IAAA,CAAA,SAAA;AAAA,cACA,IAAA,EAAA,MAAA,SAAA,CAAA;AAAA,cACA,OAAA,cAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA;AAAA,aACA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,CAAA,CAAA,IAAA,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,YACA,KAAA,CAAA,aAAA,CAAA,IAAA,SAAA,IAAA,WAAA,CAAA,KAAA,CAAA,MAAA,CAAA,EAAA;AAAA,cACA,GAAA,EAAA,CAAA;AAAA,cACA,KAAA,EAAA,cAAA,CAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,EAAA,KAAA,CAAA,SAAA,CAAA,CAAA,CAAA;AAAA,aACA,EAAA;AAAA,cACA,OAAA,EAAA,QAAA,MAAA;AAAA,iBACA,WAAA,EAAA,WAAA,CAAA,wBAAA,KAAA,CAAA,aAAA,CAAA,CAAA,CAAA;AAAA,eACA,CAAA;AAAA,cACA,CAAA,EAAA,CAAA;AAAA,aACA,EAAA,GAAA,CAAA,OAAA,CAAA,CAAA,IAAA,kBAAA,CAAA,QAAA,IAAA,CAAA;AAAA,YACA,WAAA,IAAA,CAAA,MAAA,EAAA,SAAA,EAAA,IAAA,MAAA;AAAA,cACA,CAAA,IAAA,CAAA,wBAAA,IAAA,SAAA,EAAA,EAAA,mBAAA,GAAA,EAAA;AAAA,gBACA,GAAA,EAAA,CAAA;AAAA,gBACA,OAAA,cAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA;AAAA,eACA,EAAA,eAAA,CAAA,IAAA,CAAA,OAAA,GAAA,CAAA,CAAA,KAAA,SAAA,EAAA,EAAA,kBAAA,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,GAAA,EAAA;AAAA,gBACA,mBAAA,sFAAA,CAAA;AAAA,gBACA,mBAAA,GAAA,EAAA;AAAA,kBACA,OAAA,cAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA;AAAA,kBACA,WAAA,IAAA,CAAA,OAAA;AAAA,iBACA,EAAA,IAAA,EAAA,EAAA,EAAA,UAAA,CAAA;AAAA,iBACA,IAAA,CAAA,CAAA;AAAA,aACA,CAAA;AAAA,YACA,KAAA,SAAA,IAAA,SAAA,IAAA,WAAA,CAAA,KAAA,CAAA,MAAA,CAAA,EAAA;AAAA,cACA,GAAA,EAAA,CAAA;AAAA,cACA,OAAA,cAAA,CAAA,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,CAAA;AAAA,cACA,OAAA,EAAA,aAAA,CAAA,KAAA,EAAA,CAAA,MAAA,CAAA,CAAA;AAAA,aACA,EAAA;AAAA,cACA,OAAA,EAAA,QAAA,MAAA;AAAA,gBACA,WAAA,CAAA,KAAA,CAAA,KAAA,CAAA,CAAA;AAAA,eACA,CAAA;AAAA,cACA,CAAA,EAAA,CAAA;AAAA,aACA,EAAA,GAAA,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA,IAAA,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA,WACA,EAAA,EAAA,EAAA,UAAA,CAAA,EAAA;AAAA,YACA,CAAA,KAAA,EAAA,OAAA,CAAA,KAAA,CAAA;AAAA,WACA,CAAA;AAAA,SACA,CAAA;AAAA,QACA,CAAA,EAAA,CAAA;AAAA,OACA,EAAA,CAAA,EAAA,CAAA,MAAA,EAAA,eAAA,CAAA,CAAA,CAAA;AAAA,KACA,CAAA;AAAA,GACA;AACA,CAAA,CAAA,CAAA;AACA,IAAA,kBAAA,+BAAA,WAAA,EAAA,CAAA,CAAA,QAAA,EAAA,yFAAA,CAAA,CAAA,CAAA,CAAA;AACA,IAAA,IAAA,GAAA,CAAA,CAAA;AACA,MAAA,gBAAA,GAAA,CAAA,MAAA,KAAA;AACA,EAAA,MAAA,OAAA,GAAA,CAAA,MAAA,IAAA,QAAA,CAAA,MAAA,CAAA,IAAA,OAAA,CAAA,MAAA,CAAA,IAAA,WAAA,MAAA,CAAA,GAAA,EAAA,OAAA,EAAA,QAAA,GAAA,MAAA,CAAA;AACA,EAAA,MAAA,UAAA,GAAA;AAAA,IACA,GAAA,eAAA;AAAA,IACA,GAAA,OAAA;AAAA,GACA,CAAA;AACA,EAAA,IAAA,CAAA,WAAA,QAAA,EAAA;AACA,IAAA,UAAA,CAAA,WAAA,QAAA,CAAA,IAAA,CAAA;AAAA,GACA,MAAA,IAAA,QAAA,CAAA,UAAA,CAAA,QAAA,CAAA,EAAA;AACA,IAAA,IAAA,QAAA,GAAA,QAAA,CAAA,aAAA,CAAA,UAAA,CAAA,QAAA,CAAA,CAAA;AACA,IAAA,IAAA,CAAA,SAAA,CAAA,QAAA,CAAA,EAAA;AAEA,MAAA,QAAA,GAAA,QAAA,CAAA,IAAA,CAAA;AAAA,KACA;AACA,IAAA,UAAA,CAAA,QAAA,GAAA,QAAA,CAAA;AAAA,GACA;AACA,EAAA,OAAA,UAAA,CAAA;AACA,CAAA,CAAA;AACA,MAAA,YAAA,GAAA,CAAA,QAAA,KAAA;AACA,EAAA,MAAA,GAAA,GAAA,SAAA,CAAA,OAAA,CAAA,QAAA,CAAA,CAAA;AACA,EAAA,IAAA,GAAA,KAAA,CAAA,CAAA;AACA,IAAA,OAAA;AACA,EAAA,SAAA,CAAA,MAAA,CAAA,KAAA,CAAA,CAAA,CAAA;AACA,EAAA,MAAA,EAAA,SAAA,GAAA,QAAA,CAAA;AACA,EAAA,OAAA,CAAA,KAAA,EAAA,CAAA;AACA,CAAA,CAAA;AACA,MAAA,gBAAA,CAAA,EAAA,UAAA,GAAA,OAAA,IAAA,OAAA,KAAA;AACA,EAAA,MAAA,EAAA,GAAA,WAAA,IAAA,EAAA,CAAA,CAAA,CAAA;AACA,EAAA,MAAA,cAAA,OAAA,CAAA,OAAA,CAAA;AACA,EAAA,MAAA,SAAA,GAAA,QAAA,CAAA,aAAA,CAAA,KAAA,CAAA,CAAA;AACA,EAAA,MAAA,KAAA,GAAA;AAAA,IACA,GAAA,OAAA;AAAA,IACA,EAAA;AAAA,IACA,SAAA,MAAA;AACA,MAAA,WAAA,IAAA,IAAA,GAAA,SAAA,WAAA,EAAA,CAAA;AACA,MAAA,YAAA,CAAA,QAAA,CAAA,CAAA;AAAA,KACA;AAAA,IACA,WAAA,MAAA;AACA,MAAA,MAAA,CAAA,MAAA,SAAA,CAAA,CAAA;AAAA,KACA;AAAA,GACA,CAAA;AACA,EAAA,MAAA,KAAA,GAAA,WAAA,CAAA,kBAAA,EAAA,KAAA,EAAA,UAAA,CAAA,KAAA,CAAA,OAAA,CAAA,IAAA,OAAA,CAAA,KAAA,CAAA,OAAA,CAAA,GAAA;AAAA,IACA,OAAA,EAAA,WAAA,KAAA,CAAA,OAAA,IAAA,KAAA,CAAA,OAAA,GAAA,MAAA,KAAA,CAAA,OAAA;AAAA,MACA,IAAA,CAAA,CAAA;AACA,EAAA,KAAA,CAAA,UAAA,GAAA,WAAA,OAAA,CAAA,QAAA,CAAA;AACA,EAAA,MAAA,CAAA,OAAA,SAAA,CAAA,CAAA;AACA,EAAA,QAAA,CAAA,WAAA,CAAA,UAAA,iBAAA,CAAA,CAAA;AACA,EAAA,MAAA,KAAA,KAAA,CAAA,SAAA,CAAA;AACA,EAAA,MAAA,OAAA,GAAA;AAAA,IACA,OAAA,MAAA;AACA,MAAA,EAAA,CAAA,OAAA,CAAA,QAAA,KAAA,GAAA,KAAA,CAAA;AAAA,KACA;AAAA,GACA,CAAA;AACA,EAAA,MAAA,QAAA,GAAA;AAAA,IACA,EAAA;AAAA,IACA,KAAA;AAAA,IACA,EAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA,EAAA,MAAA,SAAA,CAAA,KAAA;AAAA,GACA,CAAA;AACA,EAAA,OAAA,QAAA,CAAA;AACA,CAAA,CAAA;AACA,MAAA,OAAA,GAAA,CAAA,OAAA,GAAA,IAAA,OAAA,KAAA;AACA,EAAA,IAAA,CAAA,QAAA;AACA,IAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,CAAA,EAAA,CAAA;AACA,EAAA,IAAA,SAAA,aAAA,CAAA,GAAA,KAAA,SAAA,CAAA,MAAA,IAAA,cAAA,GAAA,EAAA;AACA,IAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,CAAA,EAAA,CAAA;AAAA,GACA;AACA,EAAA,MAAA,UAAA,GAAA,iBAAA,OAAA,CAAA,CAAA;AACA,EAAA,IAAA,UAAA,CAAA,QAAA,IAAA,SAAA,CAAA,MAAA,EAAA;AACA,IAAA,MAAA,YAAA,SAAA,CAAA,IAAA,CAAA,CAAA,EAAA,KAAA,EAAA,IAAA,KAAA;AACA,MAAA,IAAA,EAAA,CAAA;AACA,MAAA,OAAA,CAAA,CAAA,KAAA,EAAA,CAAA,KAAA,KAAA,OAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAA,UAAA,CAAA,OAAA,CAAA;AAAA,KACA,CAAA,CAAA;AACA,IAAA,IAAA,SAAA,EAAA;AACA,MAAA,SAAA,CAAA,MAAA,SAAA,IAAA,CAAA,CAAA;AACA,MAAA,SAAA,CAAA,KAAA,CAAA,OAAA,UAAA,CAAA,IAAA,CAAA;AACA,MAAA,OAAA,SAAA,CAAA,OAAA,CAAA;AAAA,KACA;AAAA,GACA;AACA,EAAA,MAAA,QAAA,GAAA,aAAA,CAAA,UAAA,EAAA,OAAA,CAAA,CAAA;AACA,EAAA,SAAA,CAAA,KAAA,QAAA,CAAA,CAAA;AACA,EAAA,OAAA,QAAA,CAAA,OAAA,CAAA;AACA,CAAA,CAAA;AACA,YAAA,CAAA,OAAA,CAAA,CAAA,IAAA,KAAA;AACA,EAAA,OAAA,CAAA,IAAA,CAAA,GAAA,CAAA,OAAA,GAAA,IAAA,UAAA,KAAA;AACA,IAAA,MAAA,UAAA,GAAA,iBAAA,OAAA,CAAA,CAAA;AACA,IAAA,OAAA,QAAA,EAAA,GAAA,UAAA,EAAA,IAAA,IAAA,UAAA,CAAA,CAAA;AAAA,GACA,CAAA;AACA,CAAA,CAAA,CAAA;AACA,SAAA,SAAA,IAAA,EAAA;AACA,EAAA,KAAA,MAAA,YAAA,SAAA,EAAA;AACA,IAAA,IAAA,CAAA,IAAA,IAAA,IAAA,KAAA,QAAA,CAAA,MAAA,IAAA,EAAA;AACA,MAAA,QAAA,CAAA,QAAA,KAAA,EAAA,CAAA;AAAA,KACA;AAAA,GACA;AACA,CAAA;AACA,OAAA,CAAA,QAAA,GAAA,QAAA,CAAA;AACA,OAAA,CAAA,QAAA,GAAA,IAAA,CAAA;AACA,MAAA,SAAA,GAAA,mBAAA,CAAA,OAAA,EAAA,UAAA,EAAA;AACA,MAAA,YAAA,GAAA,EAAA,GAAAC,cAAA,CAAA,yBAAA,CAAA,CAAA;AACA,MAAA,YAAA,GAAA,EAAA,GAAAA,cAAA,CAAA,uBAAA,CAAA,CAAA;AACA,MAAA,YAAA,GAAA,EAAA,GAAAA,cAAA,CAAA,yBAAA,CAAA,CAAA;AAEA,MAAA,WAAA,GAAA;AAAA,EACA,MAAA,EAAA,OAAA;AAAA,EACA,iBAAA,EAAA,IAAA;AAAA,EACA,KAAA,EAAA;AAAA,IACA,IAAA,EAAA,MAAA;AAAA,GACA;AAAA,EACA,MAAA,OAAA,EAAA;AACA,IAAA,OAAA,CAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,KAAA;AACA,MAAA,KAAA,CAAA,CAAA,IAAA,EAAA,eAAA,UAAA,CAAA,EAAA,OAAA,2BAAA,EAAA,EAAA,MAAA,CAAA,CAAA,CAAA,oFAAA,EAAA,cAAA,KAAA,EAAA,YAAA,CAAA,CAAA,kCAAA,EAAA,aAAA,CAAA,KAAA,EAAA,YAAA,CAAA,CAAA,kCAAA,EAAA,aAAA,CAAA,KAAA,EAAA,YAAA,CAAA,qCAAA,aAAA,CAAA,KAAA,EAAA,YAAA,CAAA,CAAA,kCAAA,EAAA,aAAA,CAAA,OAAA,YAAA,CAAA,CAAA,kCAAA,EAAA,aAAA,CAAA,KAAA,EAAA,YAAA,CAAA,CAAA,8CAAA,EAAA,aAAA,CAAA,KAAA,EAAA,YAAA,CAAA,CAAA,yDAAA,EAAA,eAAA,OAAA,CAAA,IAAA,IAAA,0BAAA,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;AAAA,KACA,CAAA;AAAA,GACA;AACA,CAAA,CAAA;AACA,MAAA,eAAA,WAAA,CAAA,KAAA,CAAA;AACA,WAAA,CAAA,KAAA,GAAA,CAAA,KAAA,EAAA,GAAA,KAAA;AACA,EAAA,MAAA,aAAA,aAAA,EAAA,CAAA;AACA,EAAA,CAAA,UAAA,CAAA,YAAA,UAAA,CAAA,OAAA,uBAAA,GAAA,EAAA,CAAA,EAAA,IAAA,sBAAA,CAAA,CAAA;AACA,EAAA,OAAA,YAAA,GAAA,YAAA,CAAA,KAAA,EAAA,GAAA,CAAA,GAAA,KAAA,CAAA,CAAA;AACA,CAAA,CAAA;AACA,MAAA,kBAAA,iCAAA,WAAA,EAAA,CAAA,CAAA,WAAA,EAAA,iBAAA,CAAA,CAAA,EAAA;AAGA,MAAA,UAAA,GAAA,CAAA,aAAA,mBAAA,IAAA,MAAA,KAAA;AACA,EAAA,aAAA,GAAA,gBAAA,aAAA,GAAA,IAAA,CAAA;AACA,EAAA,IAAA,SAAA,GAAA,IAAA,IAAA,CAAA,aAAA,CAAA,CAAA;AACA,EAAA,SAAA,GAAA,UAAA,OAAA,EAAA,CAAA;AACA,EAAA,IAAA,SAAA,GAAA,GAAA,EAAA,CAAA;AACA,EAAA,IAAA,OAAA,MAAA,GAAA,EAAA,CAAA;AACA,EAAA,IAAA,MAAA,IAAA,GAAA,EAAA,CAAA;AACA,EAAA,IAAA,GAAA,GAAA,iBAAA,IAAA,IAAA,EAAA,EAAA,OAAA,EAAA,CAAA;AACA,EAAA,IAAA,YAAA,GAAA,GAAA,SAAA,CAAA;AACA,EAAA,IAAA,MAAA,CAAA;AACA,EAAA,IAAA,SAAA,GAAA,CAAA;AACA,IAAA,OAAA;AACA,EAAA,IAAA,OAAA,SAAA,GAAA,GAAA,CAAA;AACA,EAAA,IAAA,KAAA,GAAA,aAAA,IAAA,GAAA,CAAA,CAAA,CAAA;AACA,EAAA,IAAA,OAAA,SAAA,GAAA,MAAA,CAAA;AACA,EAAA,IAAA,QAAA,CAAA,EAAA;AACA,IAAA,IAAA,IAAA,GAAA,IAAA,IAAA,CAAA,SAAA,CAAA,CAAA;AACA,IAAA,IAAA,CAAA,GAAA,IAAA,CAAA,WAAA,EAAA,GAAA,GAAA,CAAA;AACA,IAAA,IAAA,CAAA,GAAA,CAAA,IAAA,CAAA,QAAA,EAAA,GAAA,IAAA,EAAA,GAAA,GAAA,IAAA,IAAA,CAAA,QAAA,EAAA,GAAA,CAAA,CAAA,GAAA,IAAA,CAAA,QAAA,KAAA,CAAA,IAAA,GAAA,CAAA;AACA,IAAA,IAAA,CAAA,GAAA,CAAA,IAAA,CAAA,OAAA,EAAA,GAAA,EAAA,GAAA,GAAA,GAAA,IAAA,CAAA,OAAA,EAAA,GAAA,IAAA,CAAA,OAAA,EAAA,IAAA,GAAA,CAAA;AACA,IAAA,MAAA,GAAA,EAAA,GAAA,IAAA,CAAA,GAAA,CAAA,CAAA;AAAA,aACA,IAAA,IAAA,CAAA;AACA,IAAA,MAAA,GAAA,EAAA,GAAA,IAAA,CAAA,KAAA,CAAA,IAAA,CAAA,GAAA,cAAA,CAAA;AAAA,OAAA,IACA,KAAA,IAAA,CAAA;AACA,IAAA,MAAA,GAAA,EAAA,GAAA,IAAA,CAAA,KAAA,CAAA,KAAA,CAAA,GAAA,oBAAA,CAAA;AAAA,OAAA,IACA,IAAA,IAAA,CAAA;AACA,IAAA,MAAA,GAAA,EAAA,GAAA,IAAA,CAAA,KAAA,CAAA,IAAA,CAAA,GAAA,oBAAA,CAAA;AAAA;AAEA,IAAA,MAAA,GAAA,cAAA,CAAA;AACA,EAAA,OAAA,MAAA,CAAA;AACA,EAAA;AACA,MAAA,YAAA,GAAA,EAAA,GAAAA,cAAA,CAAA,0BAAA,CAAA,CAAA;AACA,MAAA,YAAA,GAAA,EAAA,GAAAA,cAAA,CAAA,yBAAA,CAAA,CAAA;AACA,MAAA,UAAA,GAAA,EAAA,GAAAA,cAAA,CAAA,yBAAA,CAAA,CAAA;AAGA,MAAA,WAAA,GAAA;AAAA,EACA,MAAA,EAAA,SAAA;AAAA,EACA,iBAAA,EAAA,IAAA;AAAA,EACA,KAAA,EAAA;AAAA;AAAA,IAEA,KAAA,EAAA,MAAA;AAAA,GACA;AAAA,EACA,KAAA,CAAA,OAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA;AACA,IAAA,IAAA,IAAA,GAAA,IAAA,KAAA,CAAA,CAAA;AACA,IAAA,SAAA,EAAA,CAAA;AACA,IAAA,MAAA,QAAA,QAAA,EAAA,CAAA;AACA,IAAA,IAAA,YAAA,GAAA,IAAA,EAAA,CAAA,CAAA;AACA,IAAA,IAAA,QAAA,GAAA,GAAA,CAAA,EAAA,CAAA,CAAA;AACA,IAAA,IAAA,cAAA,EAAA,CAAA;AACA,IAAA,IAAA,WAAA,GAAA,CAAA,CAAA;AACA,IAAA,IAAA,cAAA,GAAA,KAAA,CAAA;AACA,IAAA,IAAA,YAAA,GAAA,IAAA,CAAA,CAAA,CAAA;AACA,IAAA,MAAA,aAAA,MAAA;AACA,MAAA,IAAA,eAAA,CAAA,IAAA,cAAA;AACA,QAAA,OAAA;AACA,MAAA,cAAA,GAAA,IAAA,CAAA;AACA,MAAA,iBAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA,IAAA,CAAA,CAAA,GAAA,KAAA;AACA,QAAA,IAAA,IAAA,IAAA,IAAA,GAAA;AACA,UAAA,OAAA;AACA,QAAA,IAAA,OAAA,GAAA,CAAA,IAAA,CAAA;AACA,QAAA,WAAA,GAAA,WAAA,CAAA,MAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;AACA,QAAA,QAAA,CAAA,KAAA,GAAA,WAAA,CAAA;AACA,QAAA,IAAA,WAAA,CAAA,MAAA,GAAA,IAAA,CAAA,OAAA,CAAA;AACA,UAAA,WAAA,EAAA,CAAA;AAAA;AAEA,UAAA,WAAA,GAAA,CAAA,CAAA;AACA,QAAA,YAAA,CAAA,KAAA,GAAA,KAAA,OAAA,CAAA,CAAA;AACA,QAAA,YAAA,CAAA,KAAA,GAAA,SAAA,CAAA;AACA,QAAA,IAAA,CAAA,KAAA,GAAA,IAAA,CAAA;AAAA,OACA,CAAA,CAAA,OAAA,CAAA,MAAA,iBAAA,KAAA,CAAA,CAAA;AAAA,KACA,CAAA;AACA,IAAA,IAAA,cAAA,EAAA,CAAA;AACA,IAAA,IAAA,UAAA,GAAA,CAAA,CAAA;AACA,IAAA,IAAA,aAAA,GAAA,KAAA,CAAA;AACA,IAAA,MAAA,aAAA,MAAA;AACA,MAAA,IAAA,UAAA,IAAA,KAAA,CAAA,aAAA;AACA,QAAA,OAAA;AACA,MAAA,aAAA,GAAA,IAAA,CAAA;AACA,MAAA,iBAAA,CAAA,EAAA,OAAA,CAAA,EAAA,IAAA,EAAA,YAAA,CAAA,CAAA,IAAA,CAAA,CAAA,GAAA,KAAA;AACA,QAAA,IAAA,IAAA,IAAA,IAAA,GAAA;AACA,UAAA,OAAA;AACA,QAAA,IAAA,OAAA,GAAA,CAAA,IAAA,CAAA;AACA,QAAA,WAAA,GAAA,WAAA,CAAA,MAAA,CAAA,IAAA,CAAA,IAAA,CAAA,CAAA;AACA,QAAA,IAAA,WAAA,CAAA,MAAA,GAAA,IAAA,CAAA,OAAA,CAAA;AACA,UAAA,UAAA,EAAA,CAAA;AAAA;AAEA,UAAA,UAAA,GAAA,CAAA,CAAA;AACA,QAAA,QAAA,CAAA,KAAA,GAAA,WAAA,CAAA;AACA,QAAA,YAAA,CAAA,KAAA,GAAA,IAAA,CAAA;AACA,QAAA,IAAA,CAAA,KAAA,GAAA,IAAA,CAAA;AAAA,OACA,CAAA,CAAA,OAAA,CAAA,MAAA,gBAAA,KAAA,CAAA,CAAA;AAAA,KACA,CAAA;AACA,IAAA,MAAA,KAAA,GAAA,CAAA,GAAA,KAAA;AACA,MAAA,IAAA,GAAA,IAAA,SAAA,IAAA,WAAA,CAAA,MAAA,IAAA,CAAA;AACA,QAAA,UAAA,EAAA,CAAA;AAAA,WACA,IAAA,GAAA,IAAA,IAAA,IAAA,WAAA,CAAA,MAAA,IAAA,CAAA;AACA,QAAA,UAAA,EAAA,CAAA;AACA,MAAA,IAAA,GAAA,IAAA,SAAA;AACA,QAAA,QAAA,CAAA,KAAA,GAAA,WAAA,CAAA;AAAA,WAAA,IACA,GAAA,IAAA,IAAA;AACA,QAAA,QAAA,CAAA,KAAA,GAAA,WAAA,CAAA;AACA,MAAA,IAAA,CAAA,GAAA;AACA,QAAA,IAAA,CAAA,KAAA,GAAA,KAAA,CAAA;AAAA,KACA,CAAA;AACA,IAAA,MAAA,kBAAA,GAAA,CAAA,KAAA,KAAA;AACA,MAAA,WAAA,CAAA,OAAA,CAAA,CAAA,OAAA,KAAA;AACA,QAAA,OAAA,CAAA,gBAAA,CAAA,GAAA,KAAA,CAAA;AAAA,OACA,CAAA,CAAA;AACA,MAAA,WAAA,CAAA,KAAA,CAAA,CAAA,gBAAA,CAAA,GAAA,IAAA,CAAA;AACA,MAAA,QAAA,CAAA,KAAA,GAAA,CAAA,GAAA,WAAA,CAAA,CAAA;AAAA,KACA,CAAA;AACA,IAAA,MAAA,yBAAA,MAAA;AACA,MAAA,WAAA,CAAA,OAAA,CAAA,CAAA,OAAA,KAAA;AACA,QAAA,OAAA,CAAA,gBAAA,CAAA,GAAA,KAAA,CAAA;AAAA,OACA,CAAA,CAAA;AACA,MAAA,QAAA,CAAA,KAAA,GAAA,CAAA,GAAA,WAAA,CAAA,CAAA;AAAA,KACA,CAAA;AACA,IAAA,MAAA,oBAAA,GAAA,CAAA,KAAA,EAAA,KAAA,EAAA,SAAA,KAAA;AACA,MAAA,mBAAA,CAAA,EAAA,KAAA,EAAA,SAAA,EAAA,CAAA,CAAA,IAAA,CAAA,CAAA,GAAA,KAAA;AACA,QAAA,IAAA,IAAA,IAAA,IAAA,GAAA;AACA,UAAA,OAAA;AACA,QAAA,WAAA,CAAA,KAAA,CAAA,CAAA,WAAA,CAAA,GAAA,SAAA,CAAA;AACA,QAAA,QAAA,CAAA,KAAA,GAAA,CAAA,GAAA,WAAA,CAAA,CAAA;AACA,QAAA,sBAAA,EAAA,CAAA;AACA,QAAA,SAAA,CAAA,OAAA,CAAA,IAAA,OAAA,CAAA,CAAA;AAAA,OACA,CAAA,CAAA;AAAA,KACA,CAAA;AACA,IAAA,MAAA,gBAAA,GAAA,CAAA,CAAA,KAAA;AACA,MAAA,MAAA,KAAA,CAAA,CAAA,MAAA,CAAA;AACA,MAAA,IAAA,EAAA,CAAA,YAAA,GAAA,EAAA,CAAA,SAAA,KAAA,EAAA,CAAA,YAAA;AACA,QAAA,OAAA;AACA,MAAA,IAAA,aAAA,KAAA,IAAA,SAAA;AACA,QAAA,UAAA,EAAA,CAAA;AACA,MAAA,IAAA,aAAA,KAAA,IAAA,IAAA;AACA,QAAA,UAAA,EAAA,CAAA;AAAA,KACA,CAAA;AACA,IAAA,IAAA,YAAA,GAAA,MAAA,CAAA,cAAA,CAAA,IAAA,IAAA,CAAA;AACA,IAAA,IAAA,UAAA,GAAA,MAAA,CAAA,YAAA,CAAA,IAAA,IAAA,CAAA;AACA,IAAA,MAAA,SAAA,GAAA,CAAA,MAAA,KAAA;AACA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,MAAA,CAAA,IAAA,EAAA,CAAA;AACA,MAAA,IAAA,IAAA,CAAA,OAAA,CAAA,WAAA,CAAA,IAAA,CAAA,CAAA,EAAA;AACA,QAAA,YAAA,EAAA,CAAA;AACA,QAAA,QAAA,CAAA,MAAA,YAAA,CAAA,CAAA;AAAA,OACA;AACA,MAAA,IAAA,CAAA,KAAA,GAAA,KAAA,CAAA;AACA,MAAA,YAAA,CAAA,KAAA,GAAA,EAAA,CAAA;AAAA,KACA,CAAA;AACA,IAAA,QAAA,CAAA;AAAA,MACA,KAAA;AAAA,KACA,CAAA,CAAA;AACA,IAAA,MAAA,gBAAA,GAAA,CAAA,KAAA,EAAA,KAAA,KAAA;AACA,MAAA,uBAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,IAAA,CAAA,CAAA,GAAA,KAAA;AACA,QAAA,IAAA,GAAA,CAAA,QAAA,GAAA,EAAA;AACA,UAAA,SAAA,CAAA,KAAA,CAAA,IAAA,OAAA,CAAA,CAAA;AACA,UAAA,OAAA;AAAA,SACA;AACA,QAAA,WAAA,CAAA,MAAA,CAAA,OAAA,CAAA,CAAA,CAAA;AACA,QAAA,YAAA,CAAA,KAAA,EAAA,CAAA;AACA,QAAA,QAAA,CAAA,KAAA,GAAA,CAAA,GAAA,WAAA,CAAA,CAAA;AAAA,OACA,CAAA,CAAA;AAAA,KACA,CAAA;AACA,IAAA,OAAA,CAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,KAAA;AACA,MAAA,MAAA,oBAAA,GAAA,QAAA,CAAA;AACA,MAAA,MAAA,gBAAA,GAAA,kBAAA,CAAA;AACA,MAAA,KAAA,CAAA,kBAAA,CAAA,sBAAA,UAAA,CAAA;AAAA,QACA,UAAA,EAAA,MAAA,IAAA,CAAA;AAAA,QACA,qBAAA,EAAA,CAAA,MAAA,KAAA,KAAA,CAAA,IAAA,CAAA,GAAA,IAAA,CAAA,KAAA,GAAA,MAAA,GAAA,IAAA,GAAA,MAAA;AAAA,QACA,KAAA,EAAA,OAAA;AAAA,QACA,cAAA,EAAA,EAAA;AAAA,QACA,KAAA,EAAA,YAAA;AAAA,OACA,EAAA,MAAA,CAAA,EAAA;AAAA,QACA,SAAA,OAAA,CAAA,CAAA,CAAA,EAAA,MAAA,EAAA,UAAA,QAAA,KAAA;AACA,UAAA,IAAA,MAAA,EAAA;AACA,YAAA,MAAA,CAAA,CAAA,yCAAA,EAAA,QAAA,CAAA,mBAAA,EAAA,aAAA,CAAA,KAAA,EAAA,YAAA,CAAA,CAAA,oBAAA,EAAA,QAAA,CAAA,iDAAA,EAAA,QAAA,CAAA,aAAA,EAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,CAAA,YAAA,CAAA,IAAA,SAAA,EAAA,EAAA,qBAAA,CAAA,CAAA,CAAA,iBAAA,EAAA,QAAA,CAAA,6DAAA,EAAA,QAAA,IAAA,cAAA,CAAA,KAAA,CAAA,YAAA,CAAA,IAAA,OAAA,CAAA,KAAA,CAAA,SAAA,CAAA,CAAA,CAAA,wBAAA,EAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,CAAA,YAAA,CAAA,IAAA,IAAA,EAAA,EAAA,qBAAA,CAAA,CAAA,CAAA,iBAAA,EAAA,QAAA,CAAA,6DAAA,EAAA,QAAA,CAAA,CAAA,EAAA,cAAA,CAAA,OAAA,CAAA,KAAA,CAAA,SAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,CAAA;AACA,YAAA,IAAA,KAAA,CAAA,QAAA,CAAA,CAAA,MAAA,IAAA,CAAA,EAAA;AACA,cAAA,MAAA,CAAA,CAAA,iDAAA,EAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,cAAA,MAAA,CAAA,mBAAA,gBAAA,EAAA,IAAA,EAAA,IAAA,EAAA,QAAA,EAAA,QAAA,CAAA,CAAA,CAAA;AACA,cAAA,MAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA;AAAA,aACA,MAAA;AACA,cAAA,MAAA,CAAA,CAAA,oCAAA,EAAA,QAAA,CAAA,SAAA,CAAA,CAAA,CAAA;AACA,cAAA,aAAA,CAAA,KAAA,CAAA,QAAA,CAAA,EAAA,CAAA,MAAA,KAAA,KAAA;AACA,gBAAA,IAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AACA,gBAAA,MAAA,CAAA,6CAAA,QAAA,CAAA,2CAAA,EAAA,QAAA,CAAA,kCAAA,EAAA,QAAA,IAAA,cAAA,CAAA,IAAA,CAAA,QAAA,CAAA,IAAA,IAAA,CAAA,MAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,oDAAA,EAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,gBAAA,IAAA,IAAA,CAAA,YAAA,CAAA,KAAA,CAAA,EAAA,GAAA,QAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAA,MAAA,CAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA;AACA,kBAAA,MAAA,CAAA,qDAAA,QAAA,CAAA,4CAAA,EAAA,QAAA,CAAA,+DAAA,EAAA,QAAA,CAAA,CAAA,EAAA,cAAA,CAAA,IAAA,CAAA,YAAA,KAAA,IAAA,CAAA,MAAA,EAAA,YAAA,CAAA,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;AAAA,iBACA,MAAA;AACA,kBAAA,MAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA;AAAA,iBACA;AACA,gBAAA,IAAA,IAAA,CAAA,SAAA,CAAA,KAAA,CAAA,EAAA,GAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAA,IAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAA,CAAA,EAAA;AACA,kBAAA,MAAA,CAAA,CAAA,kDAAA,EAAA,QAAA,CAAA,4CAAA,EAAA,QAAA,kEAAA,QAAA,CAAA,CAAA,EAAA,cAAA,CAAA,IAAA,CAAA,SAAA,CAAA,KAAA,CAAA,KAAA,IAAA,IAAA,IAAA,GAAA,SAAA,IAAA,CAAA,IAAA,KAAA,OAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAA,CAAA,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;AAAA,iBACA,MAAA;AACA,kBAAA,MAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA;AAAA,iBACA;AACA,gBAAA,MAAA,CAAA,CAAA,uDAAA,EAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,gBAAA,IAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAA,WAAA,EAAA;AACA,kBAAA,MAAA,CAAA,yCAAA,QAAA,CAAA,CAAA,EAAA,gBAAA,YAAA,IAAA,IAAA,GAAA,KAAA,UAAA,GAAA,KAAA,CAAA,UAAA,CAAA,EAAA,QAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,WAAA,CAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,CAAA;AAAA,iBACA,MAAA;AACA,kBAAA,MAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA;AAAA,iBACA;AACA,gBAAA,MAAA,CAAA,CAAA,wDAAA,EAAA,QAAA,CAAA,CAAA,EAAA,cAAA,CAAA,KAAA,SAAA,CAAA,IAAA,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA,CAAA,CAAA,uEAAA,EAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,gBAAA,IAAA,KAAA,CAAA,YAAA,CAAA,IAAA,SAAA,EAAA;AACA,kBAAA,MAAA,CAAA,2BAAA,aAAA,CAAA,KAAA,EAAA,YAAA,CAAA,CAAA,gBAAA,EAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,iBACA,MAAA;AACA,kBAAA,MAAA,CAAA,CAAA,sDAAA,EAAA,QAAA,CAAA,kCAAA,EAAA,QAAA,IAAA,cAAA,CAAA,IAAA,CAAA,WAAA,CAAA,IAAA,CAAA,GAAA,iBAAA,cAAA,CAAA,gCAAA,aAAA,CAAA,KAAA,EAAA,YAAA,CAAA,CAAA,gBAAA,EAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,kBAAA,IAAA,IAAA,CAAA,gBAAA,CAAA,EAAA;AACA,oBAAA,MAAA,CAAA,CAAA,iDAAA,EAAA,QAAA,CAAA,aAAA,EAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,IAAA,CAAA,WAAA,CAAA,IAAA,CAAA,IAAA,oCAAA,CAAA,CAAA,CAAA,iBAAA,EAAA,QAAA,CAAA,2BAAA,EAAA,QAAA,CAAA,4DAAA,EAAA,aAAA,CAAA,KAAA,EAAA,UAAA,CAAA,CAAA,gBAAA,EAAA,QAAA,CAAA,mBAAA,EAAA,cAAA,CAAA,CAAA,EAAA,OAAA,EAAA,KAAA,WAAA,CAAA,IAAA,CAAA,EAAA,EAAA,oCAAA,CAAA,CAAA,CAAA,iBAAA,EAAA,QAAA,CAAA,2BAAA,EAAA,QAAA,CAAA,4DAAA,EAAA,aAAA,CAAA,OAAA,UAAA,CAAA,CAAA,gBAAA,EAAA,QAAA,CAAA,aAAA,CAAA,CAAA,CAAA;AAAA,mBACA,MAAA;AACA,oBAAA,MAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA;AAAA,mBACA;AACA,kBAAA,MAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA;AAAA,iBACA;AACA,gBAAA,MAAA,CAAA,CAAA,YAAA,CAAA,CAAA,CAAA;AAAA,eACA,CAAA,CAAA;AACA,cAAA,MAAA,CAAA,CAAA,cAAA,CAAA,CAAA,CAAA;AAAA,aACA;AACA,YAAA,MAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA;AAAA,WACA,MAAA;AACA,YAAA,OAAA;AAAA,cACA,WAAA,CAAA,KAAA,EAAA,EAAA,KAAA,EAAA,gBAAA,EAAA;AAAA,gBACA,YAAA,KAAA,EAAA;AAAA,kBACA,KAAA,EAAA,OAAA;AAAA,kBACA,GAAA,EAAA,YAAA;AAAA,kBACA,GAAA,EAAA,EAAA;AAAA,kBACA,OAAA,EAAA,CAAA,MAAA,KAAA,KAAA,CAAA,EAAA,CAAA;AAAA,iBACA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,SAAA,CAAA,CAAA;AAAA,gBACA,WAAA,CAAA,KAAA,EAAA,EAAA,KAAA,EAAA,uBAAA,EAAA;AAAA,kBACA,YAAA,KAAA,EAAA;AAAA,oBACA,KAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,OAAA,KAAA,CAAA,YAAA,CAAA,IAAA,SAAA,EAAA,CAAA;AAAA,oBACA,OAAA,EAAA,CAAA,MAAA,KAAA,KAAA,CAAA,SAAA,CAAA;AAAA,mBACA,EAAA;AAAA,oBACA,gBAAA,4BAAA,CAAA;AAAA,oBACA,WAAA,CAAA,KAAA,EAAA,EAAA,KAAA,EAAA,SAAA,EAAA,eAAA,CAAA,KAAA,CAAA,YAAA,KAAA,OAAA,CAAA,KAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA;AAAA,mBACA,EAAA,EAAA,EAAA,CAAA,SAAA,CAAA,CAAA;AAAA,kBACA,YAAA,KAAA,EAAA;AAAA,oBACA,KAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,OAAA,KAAA,CAAA,YAAA,CAAA,IAAA,IAAA,EAAA,CAAA;AAAA,oBACA,OAAA,EAAA,CAAA,MAAA,KAAA,KAAA,CAAA,IAAA,CAAA;AAAA,mBACA,EAAA;AAAA,oBACA,gBAAA,4BAAA,CAAA;AAAA,oBACA,WAAA,CAAA,KAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,eAAA,CAAA,OAAA,CAAA,KAAA,CAAA,SAAA,CAAA,CAAA,EAAA,CAAA,CAAA;AAAA,mBACA,EAAA,EAAA,EAAA,CAAA,SAAA,CAAA,CAAA;AAAA,iBACA,CAAA;AAAA,gBACA,KAAA,CAAA,QAAA,CAAA,CAAA,MAAA,IAAA,KAAA,SAAA,EAAA,EAAA,YAAA,KAAA,EAAA;AAAA,kBACA,GAAA,EAAA,CAAA;AAAA,kBACA,KAAA,EAAA,sBAAA;AAAA,iBACA,EAAA;AAAA,kBACA,YAAA,gBAAA,CAAA;AAAA,iBACA,CAAA,KAAA,SAAA,EAAA,EAAA,YAAA,KAAA,EAAA;AAAA,kBACA,GAAA,EAAA,CAAA;AAAA,kBACA,KAAA,EAAA,SAAA;AAAA,kBACA,QAAA,EAAA,gBAAA;AAAA,iBACA,EAAA;AAAA,mBACA,SAAA,CAAA,IAAA,CAAA,EAAA,WAAA,CAAA,QAAA,EAAA,IAAA,EAAA,UAAA,CAAA,KAAA,CAAA,QAAA,CAAA,EAAA,CAAA,IAAA,EAAA,KAAA,KAAA;AACA,oBAAA,IAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AACA,oBAAA,OAAA,SAAA,EAAA,EAAA,WAAA,CAAA,KAAA,EAAA;AAAA,sBACA,KAAA,EAAA,eAAA;AAAA,sBACA,GAAA,EAAA,KAAA;AAAA,sBACA,OAAA,EAAA,CAAA,MAAA,KAAA;AACA,wBAAA,IAAA,GAAA,CAAA;AACA,wBAAA,OAAA,SAAA,CAAA,IAAA,CAAA,QAAA,CAAA,KAAA,CAAA,GAAA,GAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAA,IAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,MAAA,CAAA,CAAA,CAAA;AAAA,uBACA;AAAA,qBACA,EAAA;AAAA,sBACA,WAAA,CAAA,KAAA,EAAA,EAAA,KAAA,EAAA,iBAAA,EAAA;AAAA,wBACA,YAAA,KAAA,EAAA,EAAA,KAAA,EAAA,MAAA,IAAA,eAAA,CAAA,IAAA,CAAA,QAAA,CAAA,IAAA,KAAA,MAAA,CAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA;AAAA,wBACA,WAAA,CAAA,KAAA,EAAA,EAAA,KAAA,EAAA,qBAAA,EAAA;AAAA,0BACA,KAAA,YAAA,CAAA,KAAA,CAAA,KAAA,IAAA,IAAA,IAAA,GAAA,SAAA,IAAA,CAAA,MAAA,CAAA,KAAA,IAAA,GAAA,SAAA,EAAA,CAAA,YAAA,MAAA,SAAA,EAAA,EAAA,YAAA,KAAA,EAAA;AAAA,4BACA,GAAA,EAAA,CAAA;AAAA,4BACA,KAAA,EAAA,uBAAA;AAAA,2BACA,EAAA;AAAA,4BACA,YAAA,KAAA,EAAA,EAAA,KAAA,EAAA,gBAAA,IAAA,cAAA,CAAA;AAAA,4BACA,YAAA,KAAA,EAAA,EAAA,KAAA,EAAA,iBAAA,IAAA,eAAA,CAAA,IAAA,CAAA,YAAA,CAAA,IAAA,KAAA,MAAA,CAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA;AAAA,2BACA,CAAA,IAAA,kBAAA,CAAA,EAAA,EAAA,IAAA,CAAA;AAAA,0BACA,KAAA,SAAA,CAAA,KAAA,CAAA,EAAA,GAAA,IAAA,IAAA,OAAA,KAAA,CAAA,GAAA,IAAA,CAAA,IAAA,KAAA,IAAA,GAAA,SAAA,EAAA,CAAA,OAAA,CAAA,IAAA,SAAA,EAAA,EAAA,YAAA,KAAA,EAAA;AAAA,4BACA,GAAA,EAAA,CAAA;AAAA,4BACA,KAAA,EAAA,uBAAA;AAAA,2BACA,EAAA;AAAA,4BACA,YAAA,KAAA,EAAA,EAAA,KAAA,EAAA,gBAAA,IAAA,cAAA,CAAA;AAAA,4BACA,WAAA,CAAA,OAAA,EAAA,KAAA,EAAA,mBAAA,EAAA,eAAA,CAAA,KAAA,SAAA,CAAA,KAAA,CAAA,KAAA,IAAA,IAAA,IAAA,GAAA,SAAA,IAAA,CAAA,IAAA,KAAA,OAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAAA,CAAA;AAAA,2BACA,CAAA,IAAA,kBAAA,CAAA,EAAA,EAAA,IAAA,CAAA;AAAA,yBACA,CAAA;AAAA,wBACA,WAAA,CAAA,KAAA,EAAA,EAAA,KAAA,EAAA,wBAAA,EAAA;AAAA,0BACA,CAAA,IAAA,IAAA,OAAA,KAAA,CAAA,GAAA,IAAA,CAAA,gBAAA,SAAA,EAAA,EAAA,YAAA,KAAA,EAAA;AAAA,4BACA,GAAA,EAAA,CAAA;AAAA,4BACA,KAAA,EAAA,WAAA;AAAA,2BACA,EAAA,iBAAA,YAAA,IAAA,IAAA,GAAA,KAAA,UAAA,GAAA,KAAA,CAAA,UAAA,CAAA,EAAA,IAAA,IAAA,OAAA,KAAA,CAAA,GAAA,IAAA,CAAA,WAAA,CAAA,CAAA,GAAA,gBAAA,CAAA,CAAA,IAAA,kBAAA,CAAA,EAAA,EAAA,IAAA,CAAA;AAAA,0BACA,YAAA,KAAA,EAAA,EAAA,KAAA,EAAA,6BAAA,IAAA,eAAA,CAAA,IAAA,CAAA,SAAA,CAAA,IAAA,KAAA,MAAA,CAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA;AAAA,yBACA,CAAA;AAAA,uBACA,CAAA;AAAA,sBACA,WAAA,CAAA,KAAA,EAAA,EAAA,KAAA,EAAA,4BAAA,EAAA;AAAA,wBACA,MAAA,YAAA,CAAA,IAAA,aAAA,SAAA,EAAA,EAAA,YAAA,KAAA,EAAA;AAAA,0BACA,GAAA,EAAA,CAAA;AAAA,0BACA,KAAA,EAAA,aAAA;AAAA,0BACA,OAAA,EAAA,aAAA,CAAA,CAAA,MAAA,KAAA,gBAAA,CAAA,IAAA,CAAA,OAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA;AAAA,0BACA,GAAA,EAAA,YAAA;AAAA,yBACA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,SAAA,CAAA,CAAA,KAAA,SAAA,EAAA,EAAA,WAAA,CAAA,KAAA,EAAA;AAAA,0BACA,GAAA,EAAA,CAAA;AAAA,0BACA,KAAA,EAAA,2BAAA;AAAA,0BACA,OAAA,EAAA,cAAA,CAAA,MAAA,KAAA,mBAAA,KAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA;AAAA,yBACA,EAAA;AAAA,0BACA,WAAA,CAAA,KAAA,EAAA,EAAA,KAAA,EAAA,QAAA,EAAA,eAAA,CAAA,IAAA,CAAA,WAAA,CAAA,IAAA,CAAA,GAAA,cAAA,GAAA,cAAA,GAAA,CAAA,CAAA;AAAA,0BACA,YAAA,KAAA,EAAA;AAAA,4BACA,KAAA,EAAA,YAAA;AAAA,4BACA,GAAA,EAAA,YAAA;AAAA,2BACA,CAAA;AAAA,0BACA,KAAA,gBAAA,CAAA,IAAA,SAAA,EAAA,EAAA,YAAA,KAAA,EAAA;AAAA,4BACA,GAAA,EAAA,CAAA;AAAA,4BACA,KAAA,EAAA,sBAAA;AAAA,4BACA,OAAA,EAAA,cAAA,MAAA;AAAA,6BACA,EAAA,CAAA,MAAA,CAAA,CAAA;AAAA,2BACA,EAAA;AAAA,4BACA,YAAA,KAAA,EAAA;AAAA,8BACA,KAAA,EAAA,CAAA,oCAAA,EAAA,EAAA,SAAA,IAAA,CAAA,WAAA,CAAA,IAAA,CAAA,EAAA,CAAA;AAAA,8BACA,OAAA,EAAA,CAAA,MAAA,KAAA,oBAAA,CAAA,KAAA,OAAA,CAAA,EAAA,OAAA,CAAA,CAAA;AAAA,6BACA,EAAA;AAAA,8BACA,YAAA,KAAA,EAAA,EAAA,KAAA,EAAA,EAAA,IAAA,0BAAA,CAAA;AAAA,8BACA,YAAA,KAAA,EAAA;AAAA,gCACA,KAAA,EAAA,kBAAA;AAAA,gCACA,GAAA,EAAA,UAAA;AAAA,+BACA,CAAA;AAAA,6BACA,EAAA,EAAA,EAAA,CAAA,SAAA,CAAA,CAAA;AAAA,4BACA,YAAA,KAAA,EAAA;AAAA,8BACA,KAAA,EAAA,CAAA,oCAAA,EAAA,EAAA,SAAA,IAAA,CAAA,WAAA,CAAA,IAAA,CAAA,EAAA,CAAA;AAAA,8BACA,OAAA,EAAA,CAAA,MAAA,KAAA,oBAAA,CAAA,KAAA,OAAA,CAAA,EAAA,OAAA,CAAA,CAAA;AAAA,6BACA,EAAA;AAAA,8BACA,YAAA,KAAA,EAAA,EAAA,KAAA,EAAA,EAAA,IAAA,0BAAA,CAAA;AAAA,8BACA,YAAA,KAAA,EAAA;AAAA,gCACA,KAAA,EAAA,kBAAA;AAAA,gCACA,GAAA,EAAA,UAAA;AAAA,+BACA,CAAA;AAAA,6BACA,EAAA,EAAA,EAAA,CAAA,SAAA,CAAA,CAAA;AAAA,2BACA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA,IAAA,kBAAA,CAAA,IAAA,IAAA,CAAA;AAAA,yBACA,EAAA,CAAA,EAAA,CAAA,SAAA,CAAA,CAAA,CAAA;AAAA,uBACA,CAAA;AAAA,qBACA,EAAA,CAAA,EAAA,CAAA,SAAA,CAAA,CAAA,CAAA;AAAA,mBACA,GAAA,GAAA,CAAA;AAAA,mBACA,EAAA,CAAA,CAAA;AAAA,eACA,CAAA;AAAA,aACA,CAAA;AAAA,WACA;AAAA,SACA,CAAA;AAAA,QACA,CAAA,EAAA,CAAA;AAAA,OACA,EAAA,OAAA,CAAA,CAAA,CAAA;AAAA,KACA,CAAA;AAAA,GACA;AACA,CAAA,CAAA;AACA,MAAA,eAAA,WAAA,CAAA,KAAA,CAAA;AACA,WAAA,CAAA,KAAA,GAAA,CAAA,KAAA,EAAA,GAAA,KAAA;AACA,EAAA,MAAA,aAAA,aAAA,EAAA,CAAA;AACA,EAAA,CAAA,UAAA,CAAA,YAAA,UAAA,CAAA,OAAA,uBAAA,GAAA,EAAA,CAAA,EAAA,IAAA,wBAAA,CAAA,CAAA;AACA,EAAA,OAAA,YAAA,GAAA,YAAA,CAAA,KAAA,EAAA,GAAA,CAAA,GAAA,KAAA,CAAA,CAAA;AACA,CAAA,CAAA;AACA,MAAA,kBAAA,iCAAA,WAAA,EAAA,CAAA,CAAA,WAAA,EAAA,iBAAA,CAAA,CAAA,CAAA,CAAA;AACA,MAAA,UAAA,GAAA,EAAA,GAAAA,cAAA,CAAA,wBAAA,CAAA,CAAA;AACA,MAAA,UAAA,GAAA,4hFAAA,CAAA;AACA,MAAA,YAAA,GAAA,EAAA,GAAAA,cAAA,CAAA,uBAAA,CAAA,CAAA;AAEA,MAAA,SAAA,GAAA;AAAA,EACA,MAAA,EAAA,UAAA;AAAA,EACA,iBAAA,EAAA,IAAA;AAAA,EACA,MAAA,OAAA,EAAA;AACA,IAAA,SAAA,EAAA,CAAA;AACA,IAAA,MAAA,QAAA,UAAA,EAAA,CAAA;AACA,IAAA,MAAA,CAAA,aAAA,CAAA,CAAA;AACA,IAAA,MAAA,CAAA,SAAA,CAAA,CAAA;AACA,IAAA,IAAA,OAAA,GAAA,IAAA,EAAA,CAAA,CAAA;AACA,IAAA,IAAA,KAAA,GAAA,GAAA,CAAA,EAAA,CAAA,CAAA;AACA,IAAA,WAAA,CAAA,MAAA;AACA,MAAA,OAAA,CAAA,KAAA,GAAA,KAAA,CAAA,KAAA,CAAA,SAAA,CAAA,CAAA;AAAA,KACA,CAAA,CAAA;AACA,IAAA,IAAA,qBAAA,GAAA,IAAA,KAAA,CAAA,CAAA;AACA,IAAA,IAAA,oBAAA,GAAA,GAAA,CAAA,EAAA,CAAA,CAAA;AACA,IAAA,IAAA,UAAA,GAAA,IAAA,IAAA,CAAA,CAAA;AACA,IAAA,OAAA,CAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,KAAA;AACA,MAAA,MAAA,kBAAA,GAAA,kBAAA,CAAA;AACA,MAAA,KAAA,CAAA,+KAAA,aAAA,CAAA,KAAA,EAAA,UAAA,CAAA,+MAAA,aAAA,CAAA,OAAA,EAAA,KAAA,CAAA,OAAA,CAAA,CAAA,CAAA,yCAAA,EAAA,cAAA,KAAA,EAAA,UAAA,CAAA,CAAA,iBAAA,CAAA,CAAA,CAAA;AACA,MAAA,IAAA,KAAA,CAAA,qBAAA,CAAA,EAAA;AACA,QAAA,KAAA,CAAA,CAAA,oKAAA,CAAA,CAAA,CAAA;AACA,QAAA,aAAA,CAAA,KAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,MAAA,KAAA,KAAA;AACA,UAAA,KAAA,CAAA,CAAA,mDAAA,EAAA,cAAA,CAAA,IAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA;AAAA,SACA,CAAA,CAAA;AACA,QAAA,KAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,CAAA;AAAA,OACA,MAAA;AACA,QAAA,KAAA,CAAA,CAAA,OAAA,CAAA,CAAA,CAAA;AAAA,OACA;AACA,MAAA,KAAA,CAAA,CAAA,8SAAA,EAAA,aAAA,CAAA,KAAA,EAAA,YAAA,CAAA,CAAA,uEAAA,CAAA,CAAA,CAAA;AACA,MAAA,KAAA,CAAA,mBAAA,kBAAA,EAAA;AAAA,QACA,OAAA,EAAA,YAAA;AAAA,QACA,GAAA,EAAA,UAAA;AAAA,QACA,KAAA,EAAA,MAAA,KAAA,CAAA;AAAA,OACA,EAAA,IAAA,EAAA,OAAA,CAAA,CAAA,CAAA;AACA,MAAA,KAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA;AAAA,KACA,CAAA;AAAA,GACA;AACA,CAAA,CAAA;AACA,MAAA,aAAA,SAAA,CAAA,KAAA,CAAA;AACA,SAAA,CAAA,KAAA,GAAA,CAAA,KAAA,EAAA,GAAA,KAAA;AACA,EAAA,MAAA,aAAA,aAAA,EAAA,CAAA;AACA,EAAA,CAAA,UAAA,CAAA,YAAA,UAAA,CAAA,OAAA,uBAAA,GAAA,EAAA,CAAA,EAAA,IAAA,yBAAA,CAAA,CAAA;AACA,EAAA,OAAA,UAAA,GAAA,UAAA,CAAA,KAAA,EAAA,GAAA,CAAA,GAAA,KAAA,CAAA,CAAA;AACA,CAAA,CAAA;AACA,MAAA,kBAAA,iCAAA,SAAA,EAAA,CAAA,CAAA,WAAA,EAAA,iBAAA,CAAA,CAAA,EAAA;AACA,MAAA,UAAA,GAAA,EAAA,GAAAA,cAAA,CAAA,uBAAA;;;;"}
\ No newline at end of file
diff --git a/.output/server/chunks/app/_nuxt/index-09a76c59.mjs b/.output/server/chunks/app/_nuxt/index-09a76c59.mjs
new file mode 100644
index 0000000..3a629b0
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/index-09a76c59.mjs
@@ -0,0 +1,33 @@
+import { u as useRouter } from '../server.mjs';
+import { useSSRContext } from 'vue';
+import '../../nitro/node-server.mjs';
+import 'node:http';
+import 'node:https';
+import 'fs';
+import 'path';
+import 'node:fs';
+import 'node:url';
+import 'unhead';
+import '@unhead/shared';
+import 'vue-router';
+import 'vue/server-renderer';
+
+const _sfc_main = {
+ __name: "index",
+ __ssrInlineRender: true,
+ setup(__props) {
+ const router = useRouter();
+ router.replace("/index.html");
+ return (_ctx, _push, _parent, _attrs) => {
+ };
+ }
+};
+const _sfc_setup = _sfc_main.setup;
+_sfc_main.setup = (props, ctx) => {
+ const ssrContext = useSSRContext();
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/index.vue");
+ return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
+};
+
+export { _sfc_main as default };
+//# sourceMappingURL=index-09a76c59.mjs.map
diff --git a/.output/server/chunks/app/_nuxt/index-09a76c59.mjs.map b/.output/server/chunks/app/_nuxt/index-09a76c59.mjs.map
new file mode 100644
index 0000000..5ea08fb
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/index-09a76c59.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"index-09a76c59.mjs","sources":["../../../../../.nuxt/dist/server/_nuxt/index-09a76c59.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;AAkBA,MAAM,SAAY,GAAA;AAAA,EAChB,MAAQ,EAAA,OAAA;AAAA,EACR,iBAAmB,EAAA,IAAA;AAAA,EACnB,MAAM,OAAS,EAAA;AACb,IAAA,MAAM,SAAS,SAAU,EAAA,CAAA;AACzB,IAAA,MAAA,CAAO,QAAQ,aAAa,CAAA,CAAA;AAC5B,IAAA,OAAO,CAAC,IAAA,EAAM,KAAO,EAAA,OAAA,EAAS,MAAW,KAAA;AAAA,KACzC,CAAA;AAAA,GACF;AACF,EAAA;AACA,MAAM,aAAa,SAAU,CAAA,KAAA,CAAA;AAC7B,SAAU,CAAA,KAAA,GAAQ,CAAC,KAAA,EAAO,GAAQ,KAAA;AAChC,EAAA,MAAM,aAAa,aAAc,EAAA,CAAA;AACjC,EAAC,CAAA,UAAA,CAAW,YAAY,UAAW,CAAA,OAAA,uBAA8B,GAAI,EAAA,CAAA,EAAI,IAAI,iBAAiB,CAAA,CAAA;AAC9F,EAAA,OAAO,UAAa,GAAA,UAAA,CAAW,KAAO,EAAA,GAAG,CAAI,GAAA,KAAA,CAAA,CAAA;AAC/C,CAAA;;;;"}
\ No newline at end of file
diff --git a/.output/server/chunks/app/_nuxt/index-4bf365d6.mjs b/.output/server/chunks/app/_nuxt/index-4bf365d6.mjs
new file mode 100644
index 0000000..19d398f
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/index-4bf365d6.mjs
@@ -0,0 +1,6399 @@
+import { b as buildAssetsURL } from '../../handlers/renderer.mjs';
+import { c as withInstall, b as buildProps, V as ValidateComponentsMap, O as view_default, P as hide_default, E as ElIcon, Q as circle_close_default, a as addUnit, d as definePropType, R as loading_default, S as withNoopInstall, W as useSizeProp, p as useLocale, X as clock_default, Y as calendar_default, Z as d_arrow_left_default, $ as d_arrow_right_default, a0 as ConfigProvider, a1 as useGlobalSize, i as iconPropType, z as mutable, U as UPDATE_MODEL_EVENT, _ as _export_sfc$1, n as isNumber, a2 as INPUT_EVENT, a3 as CHANGE_EVENT, q as useDeprecated, y as useGlobalConfig, a4 as isEmpty, B as EVENT_CODE, g as _imports_1, a5 as arrow_left_default, a6 as arrow_right_default, a7 as publishSchoolSearchHttp, a8 as publishProfessionSearchHttp, H as Head, T as Title, M as Meta, D as hasClass, I as isElement, a9 as isUndefined, j as getStyle, aa as arrow_up_default, ab as arrow_down_default } from './cross-icon-c0ac5209.mjs';
+import { defineComponent, useAttrs as useAttrs$1, useSlots, computed, shallowRef, ref, watch, nextTick, toRef, withDirectives, openBlock, createElementBlock, mergeProps, unref, createCommentVNode, Fragment, normalizeClass, renderSlot, createElementVNode, createBlock, withCtx, resolveDynamicComponent, withModifiers, createVNode, toDisplayString, normalizeStyle, vShow, provide, reactive, onUpdated, renderList, createTextVNode, withKeys, createSlots, inject, getCurrentInstance, onUnmounted, Text, useSSRContext, Transition } from 'vue';
+import { isNil, debounce, isEqual, fromPairs, flatten } from 'lodash-unified';
+import { useResizeObserver, useEventListener, onClickOutside, isClient } from '@vueuse/core';
+import { NOOP, isArray, isString, isObject, isFunction, isDate } from '@vue/shared';
+import { d as useNamespace, h as debugWarn, t as throwError, u as useRouter } from '../server.mjs';
+import { a as useTooltipContentProps, E as ElTooltip, f as formContextKey, b as formItemContextKey, T as TOOLTIP_INJECTION_KEY } from './el-popper-6f31b937.mjs';
+import dayjs from 'dayjs';
+import customParseFormat from 'dayjs/plugin/customParseFormat.js';
+import advancedFormat from 'dayjs/plugin/advancedFormat.js';
+import localeData from 'dayjs/plugin/localeData.js';
+import weekOfYear from 'dayjs/plugin/weekOfYear.js';
+import weekYear from 'dayjs/plugin/weekYear.js';
+import dayOfYear from 'dayjs/plugin/dayOfYear.js';
+import isSameOrAfter from 'dayjs/plugin/isSameOrAfter.js';
+import isSameOrBefore from 'dayjs/plugin/isSameOrBefore.js';
+import { TinyColor } from '@ctrl/tinycolor';
+import { _ as _export_sfc, u as useHead } from './_plugin-vue_export-helper-e3874580.mjs';
+import { ssrRenderComponent, ssrRenderAttr } from 'vue/server-renderer';
+import 'vue-bundle-renderer/runtime';
+import '../../nitro/node-server.mjs';
+import 'node:http';
+import 'node:https';
+import 'fs';
+import 'path';
+import 'node:fs';
+import 'node:url';
+import 'devalue';
+import '@unhead/ssr';
+import 'unhead';
+import '@unhead/shared';
+import 'axios';
+import 'qs';
+import 'vue-router';
+import '@popperjs/core';
+
+const isFirefox = () => isClient && /firefox/i.test(window.navigator.userAgent);
+const datePickTypes = [
+ "year",
+ "month",
+ "date",
+ "dates",
+ "week",
+ "datetime",
+ "datetimerange",
+ "daterange",
+ "monthrange"
+];
+const castArray = (arr) => {
+ if (!arr && arr !== 0)
+ return [];
+ return Array.isArray(arr) ? arr : [arr];
+};
+const isKorean = (text) => /([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(text);
+const generateId = () => Math.floor(Math.random() * 1e4);
+const DEFAULT_EXCLUDE_KEYS = ["class", "style"];
+const LISTENER_PREFIX = /^on[A-Z]/;
+const useAttrs = (params = {}) => {
+ const { excludeListeners = false, excludeKeys } = params;
+ const allExcludeKeys = computed(() => {
+ return ((excludeKeys == null ? void 0 : excludeKeys.value) || []).concat(DEFAULT_EXCLUDE_KEYS);
+ });
+ const instance = getCurrentInstance();
+ if (!instance) {
+ return computed(() => ({}));
+ }
+ return computed(() => {
+ var _a;
+ return fromPairs(Object.entries((_a = instance.proxy) == null ? void 0 : _a.$attrs).filter(([key]) => !allExcludeKeys.value.includes(key) && !(excludeListeners && LISTENER_PREFIX.test(key))));
+ });
+};
+const useProp = (name) => {
+ const vm = getCurrentInstance();
+ return computed(() => {
+ var _a, _b;
+ return (_b = (_a = vm == null ? void 0 : vm.proxy) == null ? void 0 : _a.$props) == null ? void 0 : _b[name];
+ });
+};
+function useCursor(input) {
+ const selectionRef = ref();
+ function recordCursor() {
+ if (input.value == void 0)
+ return;
+ const { selectionStart, selectionEnd, value } = input.value;
+ if (selectionStart == null || selectionEnd == null)
+ return;
+ const beforeTxt = value.slice(0, Math.max(0, selectionStart));
+ const afterTxt = value.slice(Math.max(0, selectionEnd));
+ selectionRef.value = {
+ selectionStart,
+ selectionEnd,
+ value,
+ beforeTxt,
+ afterTxt
+ };
+ }
+ function setCursor() {
+ if (input.value == void 0 || selectionRef.value == void 0)
+ return;
+ const { value } = input.value;
+ const { beforeTxt, afterTxt, selectionStart } = selectionRef.value;
+ if (beforeTxt == void 0 || afterTxt == void 0 || selectionStart == void 0)
+ return;
+ let startPos = value.length;
+ if (value.endsWith(afterTxt)) {
+ startPos = value.length - afterTxt.length;
+ } else if (value.startsWith(beforeTxt)) {
+ startPos = beforeTxt.length;
+ } else {
+ const beforeLastChar = beforeTxt[selectionStart - 1];
+ const newIndex = value.indexOf(beforeLastChar, selectionStart - 1);
+ if (newIndex !== -1) {
+ startPos = newIndex + 1;
+ }
+ }
+ input.value.setSelectionRange(startPos, startPos);
+ }
+ return [recordCursor, setCursor];
+}
+function useFocusController(target, { afterFocus, beforeBlur, afterBlur } = {}) {
+ const instance = getCurrentInstance();
+ const { emit } = instance;
+ const wrapperRef = shallowRef();
+ const isFocused = ref(false);
+ const handleFocus = (event) => {
+ if (isFocused.value)
+ return;
+ isFocused.value = true;
+ emit("focus", event);
+ afterFocus == null ? void 0 : afterFocus();
+ };
+ const handleBlur = (event) => {
+ var _a;
+ const cancelBlur = isFunction(beforeBlur) ? beforeBlur(event) : false;
+ if (cancelBlur || event.relatedTarget && ((_a = wrapperRef.value) == null ? void 0 : _a.contains(event.relatedTarget)))
+ return;
+ isFocused.value = false;
+ emit("blur", event);
+ afterBlur == null ? void 0 : afterBlur();
+ };
+ const handleClick = () => {
+ var _a;
+ (_a = target.value) == null ? void 0 : _a.focus();
+ };
+ watch(wrapperRef, (el) => {
+ if (el) {
+ el.setAttribute("tabindex", "-1");
+ }
+ });
+ useEventListener(wrapperRef, "click", handleClick);
+ return {
+ wrapperRef,
+ isFocused,
+ handleFocus,
+ handleBlur
+ };
+}
+const ElConfigProvider = withInstall(ConfigProvider);
+const useFormSize = (fallback, ignore = {}) => {
+ const emptyRef = ref(void 0);
+ const size = ignore.prop ? emptyRef : useProp("size");
+ const globalConfig = ignore.global ? emptyRef : useGlobalSize();
+ const form = ignore.form ? { size: void 0 } : inject(formContextKey, void 0);
+ const formItem = ignore.formItem ? { size: void 0 } : inject(formItemContextKey, void 0);
+ return computed(() => size.value || unref(fallback) || (formItem == null ? void 0 : formItem.size) || (form == null ? void 0 : form.size) || globalConfig.value || "");
+};
+const useFormDisabled = (fallback) => {
+ const disabled = useProp("disabled");
+ const form = inject(formContextKey, void 0);
+ return computed(() => disabled.value || unref(fallback) || (form == null ? void 0 : form.disabled) || false);
+};
+const useFormItem = () => {
+ const form = inject(formContextKey, void 0);
+ const formItem = inject(formItemContextKey, void 0);
+ return {
+ form,
+ formItem
+ };
+};
+const useFormItemInputId = (props, {
+ formItemContext,
+ disableIdGeneration,
+ disableIdManagement
+}) => {
+ if (!disableIdGeneration) {
+ disableIdGeneration = ref(false);
+ }
+ if (!disableIdManagement) {
+ disableIdManagement = ref(false);
+ }
+ const inputId = ref();
+ const isLabeledByFormItem = computed(() => {
+ var _a;
+ return !!(!props.label && formItemContext && formItemContext.inputIds && ((_a = formItemContext.inputIds) == null ? void 0 : _a.length) <= 1);
+ });
+ onUnmounted(() => {
+ if (formItemContext == null ? void 0 : formItemContext.removeInputId) {
+ inputId.value && formItemContext.removeInputId(inputId.value);
+ }
+ });
+ return {
+ isLabeledByFormItem,
+ inputId
+ };
+};
+let hiddenTextarea = void 0;
+const HIDDEN_STYLE = `
+ height:0 !important;
+ visibility:hidden !important;
+ ${isFirefox() ? "" : "overflow:hidden !important;"}
+ position:absolute !important;
+ z-index:-1000 !important;
+ top:0 !important;
+ right:0 !important;
+`;
+const CONTEXT_STYLE = [
+ "letter-spacing",
+ "line-height",
+ "padding-top",
+ "padding-bottom",
+ "font-family",
+ "font-weight",
+ "font-size",
+ "text-rendering",
+ "text-transform",
+ "width",
+ "text-indent",
+ "padding-left",
+ "padding-right",
+ "border-width",
+ "box-sizing"
+];
+function calculateNodeStyling(targetElement) {
+ const style = window.getComputedStyle(targetElement);
+ const boxSizing = style.getPropertyValue("box-sizing");
+ const paddingSize = Number.parseFloat(style.getPropertyValue("padding-bottom")) + Number.parseFloat(style.getPropertyValue("padding-top"));
+ const borderSize = Number.parseFloat(style.getPropertyValue("border-bottom-width")) + Number.parseFloat(style.getPropertyValue("border-top-width"));
+ const contextStyle = CONTEXT_STYLE.map((name) => `${name}:${style.getPropertyValue(name)}`).join(";");
+ return { contextStyle, paddingSize, borderSize, boxSizing };
+}
+function calcTextareaHeight(targetElement, minRows = 1, maxRows) {
+ var _a;
+ if (!hiddenTextarea) {
+ hiddenTextarea = document.createElement("textarea");
+ document.body.appendChild(hiddenTextarea);
+ }
+ const { paddingSize, borderSize, boxSizing, contextStyle } = calculateNodeStyling(targetElement);
+ hiddenTextarea.setAttribute("style", `${contextStyle};${HIDDEN_STYLE}`);
+ hiddenTextarea.value = targetElement.value || targetElement.placeholder || "";
+ let height = hiddenTextarea.scrollHeight;
+ const result = {};
+ if (boxSizing === "border-box") {
+ height = height + borderSize;
+ } else if (boxSizing === "content-box") {
+ height = height - paddingSize;
+ }
+ hiddenTextarea.value = "";
+ const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;
+ if (isNumber(minRows)) {
+ let minHeight = singleRowHeight * minRows;
+ if (boxSizing === "border-box") {
+ minHeight = minHeight + paddingSize + borderSize;
+ }
+ height = Math.max(minHeight, height);
+ result.minHeight = `${minHeight}px`;
+ }
+ if (isNumber(maxRows)) {
+ let maxHeight = singleRowHeight * maxRows;
+ if (boxSizing === "border-box") {
+ maxHeight = maxHeight + paddingSize + borderSize;
+ }
+ height = Math.min(maxHeight, height);
+ }
+ result.height = `${height}px`;
+ (_a = hiddenTextarea.parentNode) == null ? void 0 : _a.removeChild(hiddenTextarea);
+ hiddenTextarea = void 0;
+ return result;
+}
+const inputProps = buildProps({
+ id: {
+ type: String,
+ default: void 0
+ },
+ size: useSizeProp,
+ disabled: Boolean,
+ modelValue: {
+ type: definePropType([
+ String,
+ Number,
+ Object
+ ]),
+ default: ""
+ },
+ type: {
+ type: String,
+ default: "text"
+ },
+ resize: {
+ type: String,
+ values: ["none", "both", "horizontal", "vertical"]
+ },
+ autosize: {
+ type: definePropType([Boolean, Object]),
+ default: false
+ },
+ autocomplete: {
+ type: String,
+ default: "off"
+ },
+ formatter: {
+ type: Function
+ },
+ parser: {
+ type: Function
+ },
+ placeholder: {
+ type: String
+ },
+ form: {
+ type: String
+ },
+ readonly: {
+ type: Boolean,
+ default: false
+ },
+ clearable: {
+ type: Boolean,
+ default: false
+ },
+ showPassword: {
+ type: Boolean,
+ default: false
+ },
+ showWordLimit: {
+ type: Boolean,
+ default: false
+ },
+ suffixIcon: {
+ type: iconPropType
+ },
+ prefixIcon: {
+ type: iconPropType
+ },
+ containerRole: {
+ type: String,
+ default: void 0
+ },
+ label: {
+ type: String,
+ default: void 0
+ },
+ tabindex: {
+ type: [String, Number],
+ default: 0
+ },
+ validateEvent: {
+ type: Boolean,
+ default: true
+ },
+ inputStyle: {
+ type: definePropType([Object, Array, String]),
+ default: () => mutable({})
+ },
+ autofocus: {
+ type: Boolean,
+ default: false
+ }
+});
+const inputEmits = {
+ [UPDATE_MODEL_EVENT]: (value) => isString(value),
+ input: (value) => isString(value),
+ change: (value) => isString(value),
+ focus: (evt) => evt instanceof FocusEvent,
+ blur: (evt) => evt instanceof FocusEvent,
+ clear: () => true,
+ mouseleave: (evt) => evt instanceof MouseEvent,
+ mouseenter: (evt) => evt instanceof MouseEvent,
+ keydown: (evt) => evt instanceof Event,
+ compositionstart: (evt) => evt instanceof CompositionEvent,
+ compositionupdate: (evt) => evt instanceof CompositionEvent,
+ compositionend: (evt) => evt instanceof CompositionEvent
+};
+const _hoisted_1$9 = ["role"];
+const _hoisted_2$9 = ["id", "type", "disabled", "formatter", "parser", "readonly", "autocomplete", "tabindex", "aria-label", "placeholder", "form", "autofocus"];
+const _hoisted_3$7 = ["id", "tabindex", "disabled", "readonly", "autocomplete", "aria-label", "placeholder", "form", "autofocus"];
+const __default__$6 = defineComponent({
+ name: "ElInput",
+ inheritAttrs: false
+});
+const _sfc_main$g = /* @__PURE__ */ defineComponent({
+ ...__default__$6,
+ props: inputProps,
+ emits: inputEmits,
+ setup(__props, { expose, emit }) {
+ const props = __props;
+ const rawAttrs = useAttrs$1();
+ const slots = useSlots();
+ const containerAttrs = computed(() => {
+ const comboBoxAttrs = {};
+ if (props.containerRole === "combobox") {
+ comboBoxAttrs["aria-haspopup"] = rawAttrs["aria-haspopup"];
+ comboBoxAttrs["aria-owns"] = rawAttrs["aria-owns"];
+ comboBoxAttrs["aria-expanded"] = rawAttrs["aria-expanded"];
+ }
+ return comboBoxAttrs;
+ });
+ const containerKls = computed(() => [
+ props.type === "textarea" ? nsTextarea.b() : nsInput.b(),
+ nsInput.m(inputSize.value),
+ nsInput.is("disabled", inputDisabled.value),
+ nsInput.is("exceed", inputExceed.value),
+ {
+ [nsInput.b("group")]: slots.prepend || slots.append,
+ [nsInput.bm("group", "append")]: slots.append,
+ [nsInput.bm("group", "prepend")]: slots.prepend,
+ [nsInput.m("prefix")]: slots.prefix || props.prefixIcon,
+ [nsInput.m("suffix")]: slots.suffix || props.suffixIcon || props.clearable || props.showPassword,
+ [nsInput.bm("suffix", "password-clear")]: showClear.value && showPwdVisible.value
+ },
+ rawAttrs.class
+ ]);
+ const wrapperKls = computed(() => [
+ nsInput.e("wrapper"),
+ nsInput.is("focus", isFocused.value)
+ ]);
+ const attrs = useAttrs({
+ excludeKeys: computed(() => {
+ return Object.keys(containerAttrs.value);
+ })
+ });
+ const { form, formItem } = useFormItem();
+ const { inputId } = useFormItemInputId(props, {
+ formItemContext: formItem
+ });
+ const inputSize = useFormSize();
+ const inputDisabled = useFormDisabled();
+ const nsInput = useNamespace("input");
+ const nsTextarea = useNamespace("textarea");
+ const input = shallowRef();
+ const textarea = shallowRef();
+ const hovering = ref(false);
+ const isComposing = ref(false);
+ const passwordVisible = ref(false);
+ const countStyle = ref();
+ const textareaCalcStyle = shallowRef(props.inputStyle);
+ const _ref = computed(() => input.value || textarea.value);
+ const { wrapperRef, isFocused, handleFocus, handleBlur } = useFocusController(_ref, {
+ afterBlur() {
+ var _a;
+ if (props.validateEvent) {
+ (_a = formItem == null ? void 0 : formItem.validate) == null ? void 0 : _a.call(formItem, "blur").catch((err) => debugWarn());
+ }
+ }
+ });
+ const needStatusIcon = computed(() => {
+ var _a;
+ return (_a = form == null ? void 0 : form.statusIcon) != null ? _a : false;
+ });
+ const validateState = computed(() => (formItem == null ? void 0 : formItem.validateState) || "");
+ const validateIcon = computed(() => validateState.value && ValidateComponentsMap[validateState.value]);
+ const passwordIcon = computed(() => passwordVisible.value ? view_default : hide_default);
+ const containerStyle = computed(() => [
+ rawAttrs.style,
+ props.inputStyle
+ ]);
+ const textareaStyle = computed(() => [
+ props.inputStyle,
+ textareaCalcStyle.value,
+ { resize: props.resize }
+ ]);
+ const nativeInputValue = computed(() => isNil(props.modelValue) ? "" : String(props.modelValue));
+ const showClear = computed(() => props.clearable && !inputDisabled.value && !props.readonly && !!nativeInputValue.value && (isFocused.value || hovering.value));
+ const showPwdVisible = computed(() => props.showPassword && !inputDisabled.value && !props.readonly && !!nativeInputValue.value && (!!nativeInputValue.value || isFocused.value));
+ const isWordLimitVisible = computed(() => props.showWordLimit && !!attrs.value.maxlength && (props.type === "text" || props.type === "textarea") && !inputDisabled.value && !props.readonly && !props.showPassword);
+ const textLength = computed(() => nativeInputValue.value.length);
+ const inputExceed = computed(() => !!isWordLimitVisible.value && textLength.value > Number(attrs.value.maxlength));
+ const suffixVisible = computed(() => !!slots.suffix || !!props.suffixIcon || showClear.value || props.showPassword || isWordLimitVisible.value || !!validateState.value && needStatusIcon.value);
+ const [recordCursor, setCursor] = useCursor(input);
+ useResizeObserver(textarea, (entries) => {
+ onceInitSizeTextarea();
+ if (!isWordLimitVisible.value || props.resize !== "both")
+ return;
+ const entry = entries[0];
+ const { width } = entry.contentRect;
+ countStyle.value = {
+ right: `calc(100% - ${width + 15 + 6}px)`
+ };
+ });
+ const resizeTextarea = () => {
+ const { type, autosize } = props;
+ if (!isClient || type !== "textarea" || !textarea.value)
+ return;
+ if (autosize) {
+ const minRows = isObject(autosize) ? autosize.minRows : void 0;
+ const maxRows = isObject(autosize) ? autosize.maxRows : void 0;
+ const textareaStyle2 = calcTextareaHeight(textarea.value, minRows, maxRows);
+ textareaCalcStyle.value = {
+ overflowY: "hidden",
+ ...textareaStyle2
+ };
+ nextTick(() => {
+ textarea.value.offsetHeight;
+ textareaCalcStyle.value = textareaStyle2;
+ });
+ } else {
+ textareaCalcStyle.value = {
+ minHeight: calcTextareaHeight(textarea.value).minHeight
+ };
+ }
+ };
+ const createOnceInitResize = (resizeTextarea2) => {
+ let isInit = false;
+ return () => {
+ var _a;
+ if (isInit || !props.autosize)
+ return;
+ const isElHidden = ((_a = textarea.value) == null ? void 0 : _a.offsetParent) === null;
+ if (!isElHidden) {
+ resizeTextarea2();
+ isInit = true;
+ }
+ };
+ };
+ const onceInitSizeTextarea = createOnceInitResize(resizeTextarea);
+ const setNativeInputValue = () => {
+ const input2 = _ref.value;
+ const formatterValue = props.formatter ? props.formatter(nativeInputValue.value) : nativeInputValue.value;
+ if (!input2 || input2.value === formatterValue)
+ return;
+ input2.value = formatterValue;
+ };
+ const handleInput = async (event) => {
+ recordCursor();
+ let { value } = event.target;
+ if (props.formatter) {
+ value = props.parser ? props.parser(value) : value;
+ }
+ if (isComposing.value)
+ return;
+ if (value === nativeInputValue.value) {
+ setNativeInputValue();
+ return;
+ }
+ emit(UPDATE_MODEL_EVENT, value);
+ emit("input", value);
+ await nextTick();
+ setNativeInputValue();
+ setCursor();
+ };
+ const handleChange = (event) => {
+ emit("change", event.target.value);
+ };
+ const handleCompositionStart = (event) => {
+ emit("compositionstart", event);
+ isComposing.value = true;
+ };
+ const handleCompositionUpdate = (event) => {
+ var _a;
+ emit("compositionupdate", event);
+ const text = (_a = event.target) == null ? void 0 : _a.value;
+ const lastCharacter = text[text.length - 1] || "";
+ isComposing.value = !isKorean(lastCharacter);
+ };
+ const handleCompositionEnd = (event) => {
+ emit("compositionend", event);
+ if (isComposing.value) {
+ isComposing.value = false;
+ handleInput(event);
+ }
+ };
+ const handlePasswordVisible = () => {
+ passwordVisible.value = !passwordVisible.value;
+ focus();
+ };
+ const focus = async () => {
+ var _a;
+ await nextTick();
+ (_a = _ref.value) == null ? void 0 : _a.focus();
+ };
+ const blur = () => {
+ var _a;
+ return (_a = _ref.value) == null ? void 0 : _a.blur();
+ };
+ const handleMouseLeave = (evt) => {
+ hovering.value = false;
+ emit("mouseleave", evt);
+ };
+ const handleMouseEnter = (evt) => {
+ hovering.value = true;
+ emit("mouseenter", evt);
+ };
+ const handleKeydown = (evt) => {
+ emit("keydown", evt);
+ };
+ const select = () => {
+ var _a;
+ (_a = _ref.value) == null ? void 0 : _a.select();
+ };
+ const clear = () => {
+ emit(UPDATE_MODEL_EVENT, "");
+ emit("change", "");
+ emit("clear");
+ emit("input", "");
+ };
+ watch(() => props.modelValue, () => {
+ var _a;
+ nextTick(() => resizeTextarea());
+ if (props.validateEvent) {
+ (_a = formItem == null ? void 0 : formItem.validate) == null ? void 0 : _a.call(formItem, "change").catch((err) => debugWarn());
+ }
+ });
+ watch(nativeInputValue, () => setNativeInputValue());
+ watch(() => props.type, async () => {
+ await nextTick();
+ setNativeInputValue();
+ resizeTextarea();
+ });
+ expose({
+ input,
+ textarea,
+ ref: _ref,
+ textareaStyle,
+ autosize: toRef(props, "autosize"),
+ focus,
+ blur,
+ select,
+ clear,
+ resizeTextarea
+ });
+ return (_ctx, _cache) => {
+ return withDirectives((openBlock(), createElementBlock("div", mergeProps(unref(containerAttrs), {
+ class: unref(containerKls),
+ style: unref(containerStyle),
+ role: _ctx.containerRole,
+ onMouseenter: handleMouseEnter,
+ onMouseleave: handleMouseLeave
+ }), [
+ createCommentVNode(" input "),
+ _ctx.type !== "textarea" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
+ createCommentVNode(" prepend slot "),
+ _ctx.$slots.prepend ? (openBlock(), createElementBlock("div", {
+ key: 0,
+ class: normalizeClass(unref(nsInput).be("group", "prepend"))
+ }, [
+ renderSlot(_ctx.$slots, "prepend")
+ ], 2)) : createCommentVNode("v-if", true),
+ createElementVNode("div", {
+ ref_key: "wrapperRef",
+ ref: wrapperRef,
+ class: normalizeClass(unref(wrapperKls))
+ }, [
+ createCommentVNode(" prefix slot "),
+ _ctx.$slots.prefix || _ctx.prefixIcon ? (openBlock(), createElementBlock("span", {
+ key: 0,
+ class: normalizeClass(unref(nsInput).e("prefix"))
+ }, [
+ createElementVNode("span", {
+ class: normalizeClass(unref(nsInput).e("prefix-inner"))
+ }, [
+ renderSlot(_ctx.$slots, "prefix"),
+ _ctx.prefixIcon ? (openBlock(), createBlock(unref(ElIcon), {
+ key: 0,
+ class: normalizeClass(unref(nsInput).e("icon"))
+ }, {
+ default: withCtx(() => [
+ (openBlock(), createBlock(resolveDynamicComponent(_ctx.prefixIcon)))
+ ]),
+ _: 1
+ }, 8, ["class"])) : createCommentVNode("v-if", true)
+ ], 2)
+ ], 2)) : createCommentVNode("v-if", true),
+ createElementVNode("input", mergeProps({
+ id: unref(inputId),
+ ref_key: "input",
+ ref: input,
+ class: unref(nsInput).e("inner")
+ }, unref(attrs), {
+ type: _ctx.showPassword ? passwordVisible.value ? "text" : "password" : _ctx.type,
+ disabled: unref(inputDisabled),
+ formatter: _ctx.formatter,
+ parser: _ctx.parser,
+ readonly: _ctx.readonly,
+ autocomplete: _ctx.autocomplete,
+ tabindex: _ctx.tabindex,
+ "aria-label": _ctx.label,
+ placeholder: _ctx.placeholder,
+ style: _ctx.inputStyle,
+ form: props.form,
+ autofocus: props.autofocus,
+ onCompositionstart: handleCompositionStart,
+ onCompositionupdate: handleCompositionUpdate,
+ onCompositionend: handleCompositionEnd,
+ onInput: handleInput,
+ onFocus: _cache[0] || (_cache[0] = (...args) => unref(handleFocus) && unref(handleFocus)(...args)),
+ onBlur: _cache[1] || (_cache[1] = (...args) => unref(handleBlur) && unref(handleBlur)(...args)),
+ onChange: handleChange,
+ onKeydown: handleKeydown
+ }), null, 16, _hoisted_2$9),
+ createCommentVNode(" suffix slot "),
+ unref(suffixVisible) ? (openBlock(), createElementBlock("span", {
+ key: 1,
+ class: normalizeClass(unref(nsInput).e("suffix"))
+ }, [
+ createElementVNode("span", {
+ class: normalizeClass(unref(nsInput).e("suffix-inner"))
+ }, [
+ !unref(showClear) || !unref(showPwdVisible) || !unref(isWordLimitVisible) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
+ renderSlot(_ctx.$slots, "suffix"),
+ _ctx.suffixIcon ? (openBlock(), createBlock(unref(ElIcon), {
+ key: 0,
+ class: normalizeClass(unref(nsInput).e("icon"))
+ }, {
+ default: withCtx(() => [
+ (openBlock(), createBlock(resolveDynamicComponent(_ctx.suffixIcon)))
+ ]),
+ _: 1
+ }, 8, ["class"])) : createCommentVNode("v-if", true)
+ ], 64)) : createCommentVNode("v-if", true),
+ unref(showClear) ? (openBlock(), createBlock(unref(ElIcon), {
+ key: 1,
+ class: normalizeClass([unref(nsInput).e("icon"), unref(nsInput).e("clear")]),
+ onMousedown: withModifiers(unref(NOOP), ["prevent"]),
+ onClick: clear
+ }, {
+ default: withCtx(() => [
+ createVNode(unref(circle_close_default))
+ ]),
+ _: 1
+ }, 8, ["class", "onMousedown"])) : createCommentVNode("v-if", true),
+ unref(showPwdVisible) ? (openBlock(), createBlock(unref(ElIcon), {
+ key: 2,
+ class: normalizeClass([unref(nsInput).e("icon"), unref(nsInput).e("password")]),
+ onClick: handlePasswordVisible
+ }, {
+ default: withCtx(() => [
+ (openBlock(), createBlock(resolveDynamicComponent(unref(passwordIcon))))
+ ]),
+ _: 1
+ }, 8, ["class"])) : createCommentVNode("v-if", true),
+ unref(isWordLimitVisible) ? (openBlock(), createElementBlock("span", {
+ key: 3,
+ class: normalizeClass(unref(nsInput).e("count"))
+ }, [
+ createElementVNode("span", {
+ class: normalizeClass(unref(nsInput).e("count-inner"))
+ }, toDisplayString(unref(textLength)) + " / " + toDisplayString(unref(attrs).maxlength), 3)
+ ], 2)) : createCommentVNode("v-if", true),
+ unref(validateState) && unref(validateIcon) && unref(needStatusIcon) ? (openBlock(), createBlock(unref(ElIcon), {
+ key: 4,
+ class: normalizeClass([
+ unref(nsInput).e("icon"),
+ unref(nsInput).e("validateIcon"),
+ unref(nsInput).is("loading", unref(validateState) === "validating")
+ ])
+ }, {
+ default: withCtx(() => [
+ (openBlock(), createBlock(resolveDynamicComponent(unref(validateIcon))))
+ ]),
+ _: 1
+ }, 8, ["class"])) : createCommentVNode("v-if", true)
+ ], 2)
+ ], 2)) : createCommentVNode("v-if", true)
+ ], 2),
+ createCommentVNode(" append slot "),
+ _ctx.$slots.append ? (openBlock(), createElementBlock("div", {
+ key: 1,
+ class: normalizeClass(unref(nsInput).be("group", "append"))
+ }, [
+ renderSlot(_ctx.$slots, "append")
+ ], 2)) : createCommentVNode("v-if", true)
+ ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
+ createCommentVNode(" textarea "),
+ createElementVNode("textarea", mergeProps({
+ id: unref(inputId),
+ ref_key: "textarea",
+ ref: textarea,
+ class: unref(nsTextarea).e("inner")
+ }, unref(attrs), {
+ tabindex: _ctx.tabindex,
+ disabled: unref(inputDisabled),
+ readonly: _ctx.readonly,
+ autocomplete: _ctx.autocomplete,
+ style: unref(textareaStyle),
+ "aria-label": _ctx.label,
+ placeholder: _ctx.placeholder,
+ form: props.form,
+ autofocus: props.autofocus,
+ onCompositionstart: handleCompositionStart,
+ onCompositionupdate: handleCompositionUpdate,
+ onCompositionend: handleCompositionEnd,
+ onInput: handleInput,
+ onFocus: _cache[2] || (_cache[2] = (...args) => unref(handleFocus) && unref(handleFocus)(...args)),
+ onBlur: _cache[3] || (_cache[3] = (...args) => unref(handleBlur) && unref(handleBlur)(...args)),
+ onChange: handleChange,
+ onKeydown: handleKeydown
+ }), null, 16, _hoisted_3$7),
+ unref(isWordLimitVisible) ? (openBlock(), createElementBlock("span", {
+ key: 0,
+ style: normalizeStyle(countStyle.value),
+ class: normalizeClass(unref(nsInput).e("count"))
+ }, toDisplayString(unref(textLength)) + " / " + toDisplayString(unref(attrs).maxlength), 7)) : createCommentVNode("v-if", true)
+ ], 64))
+ ], 16, _hoisted_1$9)), [
+ [vShow, _ctx.type !== "hidden"]
+ ]);
+ };
+ }
+});
+var Input = /* @__PURE__ */ _export_sfc$1(_sfc_main$g, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/input/src/input.vue"]]);
+const ElInput = withInstall(Input);
+const GAP = 4;
+const BAR_MAP = {
+ vertical: {
+ offset: "offsetHeight",
+ scroll: "scrollTop",
+ scrollSize: "scrollHeight",
+ size: "height",
+ key: "vertical",
+ axis: "Y",
+ client: "clientY",
+ direction: "top"
+ },
+ horizontal: {
+ offset: "offsetWidth",
+ scroll: "scrollLeft",
+ scrollSize: "scrollWidth",
+ size: "width",
+ key: "horizontal",
+ axis: "X",
+ client: "clientX",
+ direction: "left"
+ }
+};
+const renderThumbStyle = ({
+ move,
+ size,
+ bar
+}) => ({
+ [bar.size]: size,
+ transform: `translate${bar.axis}(${move}%)`
+});
+const scrollbarContextKey = Symbol("scrollbarContextKey");
+const thumbProps = buildProps({
+ vertical: Boolean,
+ size: String,
+ move: Number,
+ ratio: {
+ type: Number,
+ required: true
+ },
+ always: Boolean
+});
+const COMPONENT_NAME$2 = "Thumb";
+const _sfc_main$f = /* @__PURE__ */ defineComponent({
+ __name: "thumb",
+ props: thumbProps,
+ setup(__props) {
+ const props = __props;
+ const scrollbar = inject(scrollbarContextKey);
+ const ns = useNamespace("scrollbar");
+ if (!scrollbar)
+ throwError(COMPONENT_NAME$2, "can not inject scrollbar context");
+ const instance = ref();
+ const thumb = ref();
+ const thumbState = ref({});
+ const visible = ref(false);
+ let cursorDown = false;
+ let cursorLeave = false;
+ let originalOnSelectStart = isClient ? document.onselectstart : null;
+ const bar = computed(() => BAR_MAP[props.vertical ? "vertical" : "horizontal"]);
+ const thumbStyle = computed(() => renderThumbStyle({
+ size: props.size,
+ move: props.move,
+ bar: bar.value
+ }));
+ const offsetRatio = computed(() => instance.value[bar.value.offset] ** 2 / scrollbar.wrapElement[bar.value.scrollSize] / props.ratio / thumb.value[bar.value.offset]);
+ const clickThumbHandler = (e) => {
+ var _a;
+ e.stopPropagation();
+ if (e.ctrlKey || [1, 2].includes(e.button))
+ return;
+ (_a = window.getSelection()) == null ? void 0 : _a.removeAllRanges();
+ startDrag(e);
+ const el = e.currentTarget;
+ if (!el)
+ return;
+ thumbState.value[bar.value.axis] = el[bar.value.offset] - (e[bar.value.client] - el.getBoundingClientRect()[bar.value.direction]);
+ };
+ const clickTrackHandler = (e) => {
+ if (!thumb.value || !instance.value || !scrollbar.wrapElement)
+ return;
+ const offset = Math.abs(e.target.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]);
+ const thumbHalf = thumb.value[bar.value.offset] / 2;
+ const thumbPositionPercentage = (offset - thumbHalf) * 100 * offsetRatio.value / instance.value[bar.value.offset];
+ scrollbar.wrapElement[bar.value.scroll] = thumbPositionPercentage * scrollbar.wrapElement[bar.value.scrollSize] / 100;
+ };
+ const startDrag = (e) => {
+ e.stopImmediatePropagation();
+ cursorDown = true;
+ document.addEventListener("mousemove", mouseMoveDocumentHandler);
+ document.addEventListener("mouseup", mouseUpDocumentHandler);
+ originalOnSelectStart = document.onselectstart;
+ document.onselectstart = () => false;
+ };
+ const mouseMoveDocumentHandler = (e) => {
+ if (!instance.value || !thumb.value)
+ return;
+ if (cursorDown === false)
+ return;
+ const prevPage = thumbState.value[bar.value.axis];
+ if (!prevPage)
+ return;
+ const offset = (instance.value.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]) * -1;
+ const thumbClickPosition = thumb.value[bar.value.offset] - prevPage;
+ const thumbPositionPercentage = (offset - thumbClickPosition) * 100 * offsetRatio.value / instance.value[bar.value.offset];
+ scrollbar.wrapElement[bar.value.scroll] = thumbPositionPercentage * scrollbar.wrapElement[bar.value.scrollSize] / 100;
+ };
+ const mouseUpDocumentHandler = () => {
+ cursorDown = false;
+ thumbState.value[bar.value.axis] = 0;
+ document.removeEventListener("mousemove", mouseMoveDocumentHandler);
+ document.removeEventListener("mouseup", mouseUpDocumentHandler);
+ restoreOnselectstart();
+ if (cursorLeave)
+ visible.value = false;
+ };
+ const mouseMoveScrollbarHandler = () => {
+ cursorLeave = false;
+ visible.value = !!props.size;
+ };
+ const mouseLeaveScrollbarHandler = () => {
+ cursorLeave = true;
+ visible.value = cursorDown;
+ };
+ const restoreOnselectstart = () => {
+ if (document.onselectstart !== originalOnSelectStart)
+ document.onselectstart = originalOnSelectStart;
+ };
+ useEventListener(toRef(scrollbar, "scrollbarElement"), "mousemove", mouseMoveScrollbarHandler);
+ useEventListener(toRef(scrollbar, "scrollbarElement"), "mouseleave", mouseLeaveScrollbarHandler);
+ return (_ctx, _cache) => {
+ return openBlock(), createBlock(Transition, {
+ name: unref(ns).b("fade"),
+ persisted: ""
+ }, {
+ default: withCtx(() => [
+ withDirectives(createElementVNode("div", {
+ ref_key: "instance",
+ ref: instance,
+ class: normalizeClass([unref(ns).e("bar"), unref(ns).is(unref(bar).key)]),
+ onMousedown: clickTrackHandler
+ }, [
+ createElementVNode("div", {
+ ref_key: "thumb",
+ ref: thumb,
+ class: normalizeClass(unref(ns).e("thumb")),
+ style: normalizeStyle(unref(thumbStyle)),
+ onMousedown: clickThumbHandler
+ }, null, 38)
+ ], 34), [
+ [vShow, _ctx.always || visible.value]
+ ])
+ ]),
+ _: 1
+ }, 8, ["name"]);
+ };
+ }
+});
+var Thumb = /* @__PURE__ */ _export_sfc$1(_sfc_main$f, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/thumb.vue"]]);
+const barProps = buildProps({
+ always: {
+ type: Boolean,
+ default: true
+ },
+ width: String,
+ height: String,
+ ratioX: {
+ type: Number,
+ default: 1
+ },
+ ratioY: {
+ type: Number,
+ default: 1
+ }
+});
+const _sfc_main$e = /* @__PURE__ */ defineComponent({
+ __name: "bar",
+ props: barProps,
+ setup(__props, { expose }) {
+ const props = __props;
+ const moveX = ref(0);
+ const moveY = ref(0);
+ const handleScroll = (wrap) => {
+ if (wrap) {
+ const offsetHeight = wrap.offsetHeight - GAP;
+ const offsetWidth = wrap.offsetWidth - GAP;
+ moveY.value = wrap.scrollTop * 100 / offsetHeight * props.ratioY;
+ moveX.value = wrap.scrollLeft * 100 / offsetWidth * props.ratioX;
+ }
+ };
+ expose({
+ handleScroll
+ });
+ return (_ctx, _cache) => {
+ return openBlock(), createElementBlock(Fragment, null, [
+ createVNode(Thumb, {
+ move: moveX.value,
+ ratio: _ctx.ratioX,
+ size: _ctx.width,
+ always: _ctx.always
+ }, null, 8, ["move", "ratio", "size", "always"]),
+ createVNode(Thumb, {
+ move: moveY.value,
+ ratio: _ctx.ratioY,
+ size: _ctx.height,
+ vertical: "",
+ always: _ctx.always
+ }, null, 8, ["move", "ratio", "size", "always"])
+ ], 64);
+ };
+ }
+});
+var Bar = /* @__PURE__ */ _export_sfc$1(_sfc_main$e, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/bar.vue"]]);
+const scrollbarProps = buildProps({
+ height: {
+ type: [String, Number],
+ default: ""
+ },
+ maxHeight: {
+ type: [String, Number],
+ default: ""
+ },
+ native: {
+ type: Boolean,
+ default: false
+ },
+ wrapStyle: {
+ type: definePropType([String, Object, Array]),
+ default: ""
+ },
+ wrapClass: {
+ type: [String, Array],
+ default: ""
+ },
+ viewClass: {
+ type: [String, Array],
+ default: ""
+ },
+ viewStyle: {
+ type: [String, Array, Object],
+ default: ""
+ },
+ noresize: Boolean,
+ tag: {
+ type: String,
+ default: "div"
+ },
+ always: Boolean,
+ minSize: {
+ type: Number,
+ default: 20
+ },
+ id: String,
+ role: String,
+ ariaLabel: String,
+ ariaOrientation: {
+ type: String,
+ values: ["horizontal", "vertical"]
+ }
+});
+const scrollbarEmits = {
+ scroll: ({
+ scrollTop,
+ scrollLeft
+ }) => [scrollTop, scrollLeft].every(isNumber)
+};
+const COMPONENT_NAME$1 = "ElScrollbar";
+const __default__$5 = defineComponent({
+ name: COMPONENT_NAME$1
+});
+const _sfc_main$d = /* @__PURE__ */ defineComponent({
+ ...__default__$5,
+ props: scrollbarProps,
+ emits: scrollbarEmits,
+ setup(__props, { expose, emit }) {
+ const props = __props;
+ const ns = useNamespace("scrollbar");
+ let stopResizeObserver = void 0;
+ let stopResizeListener = void 0;
+ const scrollbarRef = ref();
+ const wrapRef = ref();
+ const resizeRef = ref();
+ const sizeWidth = ref("0");
+ const sizeHeight = ref("0");
+ const barRef = ref();
+ const ratioY = ref(1);
+ const ratioX = ref(1);
+ const wrapStyle = computed(() => {
+ const style = {};
+ if (props.height)
+ style.height = addUnit(props.height);
+ if (props.maxHeight)
+ style.maxHeight = addUnit(props.maxHeight);
+ return [props.wrapStyle, style];
+ });
+ const wrapKls = computed(() => {
+ return [
+ props.wrapClass,
+ ns.e("wrap"),
+ { [ns.em("wrap", "hidden-default")]: !props.native }
+ ];
+ });
+ const resizeKls = computed(() => {
+ return [ns.e("view"), props.viewClass];
+ });
+ const handleScroll = () => {
+ var _a;
+ if (wrapRef.value) {
+ (_a = barRef.value) == null ? void 0 : _a.handleScroll(wrapRef.value);
+ emit("scroll", {
+ scrollTop: wrapRef.value.scrollTop,
+ scrollLeft: wrapRef.value.scrollLeft
+ });
+ }
+ };
+ function scrollTo(arg1, arg2) {
+ if (isObject(arg1)) {
+ wrapRef.value.scrollTo(arg1);
+ } else if (isNumber(arg1) && isNumber(arg2)) {
+ wrapRef.value.scrollTo(arg1, arg2);
+ }
+ }
+ const setScrollTop = (value) => {
+ if (!isNumber(value)) {
+ return;
+ }
+ wrapRef.value.scrollTop = value;
+ };
+ const setScrollLeft = (value) => {
+ if (!isNumber(value)) {
+ return;
+ }
+ wrapRef.value.scrollLeft = value;
+ };
+ const update = () => {
+ if (!wrapRef.value)
+ return;
+ const offsetHeight = wrapRef.value.offsetHeight - GAP;
+ const offsetWidth = wrapRef.value.offsetWidth - GAP;
+ const originalHeight = offsetHeight ** 2 / wrapRef.value.scrollHeight;
+ const originalWidth = offsetWidth ** 2 / wrapRef.value.scrollWidth;
+ const height = Math.max(originalHeight, props.minSize);
+ const width = Math.max(originalWidth, props.minSize);
+ ratioY.value = originalHeight / (offsetHeight - originalHeight) / (height / (offsetHeight - height));
+ ratioX.value = originalWidth / (offsetWidth - originalWidth) / (width / (offsetWidth - width));
+ sizeHeight.value = height + GAP < offsetHeight ? `${height}px` : "";
+ sizeWidth.value = width + GAP < offsetWidth ? `${width}px` : "";
+ };
+ watch(() => props.noresize, (noresize) => {
+ if (noresize) {
+ stopResizeObserver == null ? void 0 : stopResizeObserver();
+ stopResizeListener == null ? void 0 : stopResizeListener();
+ } else {
+ ({ stop: stopResizeObserver } = useResizeObserver(resizeRef, update));
+ stopResizeListener = useEventListener("resize", update);
+ }
+ }, { immediate: true });
+ watch(() => [props.maxHeight, props.height], () => {
+ if (!props.native)
+ nextTick(() => {
+ var _a;
+ update();
+ if (wrapRef.value) {
+ (_a = barRef.value) == null ? void 0 : _a.handleScroll(wrapRef.value);
+ }
+ });
+ });
+ provide(scrollbarContextKey, reactive({
+ scrollbarElement: scrollbarRef,
+ wrapElement: wrapRef
+ }));
+ onUpdated(() => update());
+ expose({
+ wrapRef,
+ update,
+ scrollTo,
+ setScrollTop,
+ setScrollLeft,
+ handleScroll
+ });
+ return (_ctx, _cache) => {
+ return openBlock(), createElementBlock("div", {
+ ref_key: "scrollbarRef",
+ ref: scrollbarRef,
+ class: normalizeClass(unref(ns).b())
+ }, [
+ createElementVNode("div", {
+ ref_key: "wrapRef",
+ ref: wrapRef,
+ class: normalizeClass(unref(wrapKls)),
+ style: normalizeStyle(unref(wrapStyle)),
+ onScroll: handleScroll
+ }, [
+ (openBlock(), createBlock(resolveDynamicComponent(_ctx.tag), {
+ id: _ctx.id,
+ ref_key: "resizeRef",
+ ref: resizeRef,
+ class: normalizeClass(unref(resizeKls)),
+ style: normalizeStyle(_ctx.viewStyle),
+ role: _ctx.role,
+ "aria-label": _ctx.ariaLabel,
+ "aria-orientation": _ctx.ariaOrientation
+ }, {
+ default: withCtx(() => [
+ renderSlot(_ctx.$slots, "default")
+ ]),
+ _: 3
+ }, 8, ["id", "class", "style", "role", "aria-label", "aria-orientation"]))
+ ], 38),
+ !_ctx.native ? (openBlock(), createBlock(Bar, {
+ key: 0,
+ ref_key: "barRef",
+ ref: barRef,
+ height: sizeHeight.value,
+ width: sizeWidth.value,
+ always: _ctx.always,
+ "ratio-x": ratioX.value,
+ "ratio-y": ratioY.value
+ }, null, 8, ["height", "width", "always", "ratio-x", "ratio-y"])) : createCommentVNode("v-if", true)
+ ], 2);
+ };
+ }
+});
+var Scrollbar = /* @__PURE__ */ _export_sfc$1(_sfc_main$d, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/scrollbar/src/scrollbar.vue"]]);
+const ElScrollbar = withInstall(Scrollbar);
+const autocompleteProps = buildProps({
+ valueKey: {
+ type: String,
+ default: "value"
+ },
+ modelValue: {
+ type: [String, Number],
+ default: ""
+ },
+ debounce: {
+ type: Number,
+ default: 300
+ },
+ placement: {
+ type: definePropType(String),
+ values: [
+ "top",
+ "top-start",
+ "top-end",
+ "bottom",
+ "bottom-start",
+ "bottom-end"
+ ],
+ default: "bottom-start"
+ },
+ fetchSuggestions: {
+ type: definePropType([Function, Array]),
+ default: NOOP
+ },
+ popperClass: {
+ type: String,
+ default: ""
+ },
+ triggerOnFocus: {
+ type: Boolean,
+ default: true
+ },
+ selectWhenUnmatched: {
+ type: Boolean,
+ default: false
+ },
+ hideLoading: {
+ type: Boolean,
+ default: false
+ },
+ label: {
+ type: String
+ },
+ teleported: useTooltipContentProps.teleported,
+ highlightFirstItem: {
+ type: Boolean,
+ default: false
+ },
+ fitInputWidth: {
+ type: Boolean,
+ default: false
+ },
+ clearable: {
+ type: Boolean,
+ default: false
+ },
+ disabled: {
+ type: Boolean,
+ default: false
+ },
+ name: String
+});
+const autocompleteEmits = {
+ [UPDATE_MODEL_EVENT]: (value) => isString(value),
+ [INPUT_EVENT]: (value) => isString(value),
+ [CHANGE_EVENT]: (value) => isString(value),
+ focus: (evt) => evt instanceof FocusEvent,
+ blur: (evt) => evt instanceof FocusEvent,
+ clear: () => true,
+ select: (item) => isObject(item)
+};
+const _hoisted_1$8 = ["aria-expanded", "aria-owns"];
+const _hoisted_2$8 = { key: 0 };
+const _hoisted_3$6 = ["id", "aria-selected", "onClick"];
+const COMPONENT_NAME = "ElAutocomplete";
+const __default__$4 = defineComponent({
+ name: COMPONENT_NAME,
+ inheritAttrs: false
+});
+const _sfc_main$c = /* @__PURE__ */ defineComponent({
+ ...__default__$4,
+ props: autocompleteProps,
+ emits: autocompleteEmits,
+ setup(__props, { expose, emit }) {
+ const props = __props;
+ const attrs = useAttrs();
+ const rawAttrs = useAttrs$1();
+ const disabled = useFormDisabled();
+ const ns = useNamespace("autocomplete");
+ const inputRef = ref();
+ const regionRef = ref();
+ const popperRef = ref();
+ const listboxRef = ref();
+ let readonly = false;
+ let ignoreFocusEvent = false;
+ const suggestions = ref([]);
+ const highlightedIndex = ref(-1);
+ const dropdownWidth = ref("");
+ const activated = ref(false);
+ const suggestionDisabled = ref(false);
+ const loading = ref(false);
+ const listboxId = computed(() => ns.b(String(generateId())));
+ const styles = computed(() => rawAttrs.style);
+ const suggestionVisible = computed(() => {
+ const isValidData = suggestions.value.length > 0;
+ return (isValidData || loading.value) && activated.value;
+ });
+ const suggestionLoading = computed(() => !props.hideLoading && loading.value);
+ const refInput = computed(() => {
+ if (inputRef.value) {
+ return Array.from(inputRef.value.$el.querySelectorAll("input"));
+ }
+ return [];
+ });
+ const onSuggestionShow = () => {
+ if (suggestionVisible.value) {
+ dropdownWidth.value = `${inputRef.value.$el.offsetWidth}px`;
+ }
+ };
+ const onHide = () => {
+ highlightedIndex.value = -1;
+ };
+ const getData = async (queryString) => {
+ if (suggestionDisabled.value)
+ return;
+ const cb = (suggestionList) => {
+ loading.value = false;
+ if (suggestionDisabled.value)
+ return;
+ if (isArray(suggestionList)) {
+ suggestions.value = suggestionList;
+ highlightedIndex.value = props.highlightFirstItem ? 0 : -1;
+ } else {
+ throwError(COMPONENT_NAME, "autocomplete suggestions must be an array");
+ }
+ };
+ loading.value = true;
+ if (isArray(props.fetchSuggestions)) {
+ cb(props.fetchSuggestions);
+ } else {
+ const result = await props.fetchSuggestions(queryString, cb);
+ if (isArray(result))
+ cb(result);
+ }
+ };
+ const debouncedGetData = debounce(getData, props.debounce);
+ const handleInput = (value) => {
+ const valuePresented = !!value;
+ emit(INPUT_EVENT, value);
+ emit(UPDATE_MODEL_EVENT, value);
+ suggestionDisabled.value = false;
+ activated.value || (activated.value = valuePresented);
+ if (!props.triggerOnFocus && !value) {
+ suggestionDisabled.value = true;
+ suggestions.value = [];
+ return;
+ }
+ debouncedGetData(value);
+ };
+ const handleMouseDown = (event) => {
+ var _a;
+ if (disabled.value)
+ return;
+ if (((_a = event.target) == null ? void 0 : _a.tagName) !== "INPUT" || refInput.value.includes(document.activeElement)) {
+ activated.value = true;
+ }
+ };
+ const handleChange = (value) => {
+ emit(CHANGE_EVENT, value);
+ };
+ const handleFocus = (evt) => {
+ if (!ignoreFocusEvent) {
+ activated.value = true;
+ emit("focus", evt);
+ if (props.triggerOnFocus && !readonly) {
+ debouncedGetData(String(props.modelValue));
+ }
+ } else {
+ ignoreFocusEvent = false;
+ }
+ };
+ const handleBlur = (evt) => {
+ setTimeout(() => {
+ var _a;
+ if ((_a = popperRef.value) == null ? void 0 : _a.isFocusInsideContent()) {
+ ignoreFocusEvent = true;
+ return;
+ }
+ activated.value && close();
+ emit("blur", evt);
+ });
+ };
+ const handleClear = () => {
+ activated.value = false;
+ emit(UPDATE_MODEL_EVENT, "");
+ emit("clear");
+ };
+ const handleKeyEnter = async () => {
+ if (suggestionVisible.value && highlightedIndex.value >= 0 && highlightedIndex.value < suggestions.value.length) {
+ handleSelect(suggestions.value[highlightedIndex.value]);
+ } else if (props.selectWhenUnmatched) {
+ emit("select", { value: props.modelValue });
+ suggestions.value = [];
+ highlightedIndex.value = -1;
+ }
+ };
+ const handleKeyEscape = (evt) => {
+ if (suggestionVisible.value) {
+ evt.preventDefault();
+ evt.stopPropagation();
+ close();
+ }
+ };
+ const close = () => {
+ activated.value = false;
+ };
+ const focus = () => {
+ var _a;
+ (_a = inputRef.value) == null ? void 0 : _a.focus();
+ };
+ const blur = () => {
+ var _a;
+ (_a = inputRef.value) == null ? void 0 : _a.blur();
+ };
+ const handleSelect = async (item) => {
+ emit(INPUT_EVENT, item[props.valueKey]);
+ emit(UPDATE_MODEL_EVENT, item[props.valueKey]);
+ emit("select", item);
+ suggestions.value = [];
+ highlightedIndex.value = -1;
+ };
+ const highlight = (index2) => {
+ if (!suggestionVisible.value || loading.value)
+ return;
+ if (index2 < 0) {
+ highlightedIndex.value = -1;
+ return;
+ }
+ if (index2 >= suggestions.value.length) {
+ index2 = suggestions.value.length - 1;
+ }
+ const suggestion = regionRef.value.querySelector(`.${ns.be("suggestion", "wrap")}`);
+ const suggestionList = suggestion.querySelectorAll(`.${ns.be("suggestion", "list")} li`);
+ const highlightItem = suggestionList[index2];
+ const scrollTop = suggestion.scrollTop;
+ const { offsetTop, scrollHeight } = highlightItem;
+ if (offsetTop + scrollHeight > scrollTop + suggestion.clientHeight) {
+ suggestion.scrollTop += scrollHeight;
+ }
+ if (offsetTop < scrollTop) {
+ suggestion.scrollTop -= scrollHeight;
+ }
+ highlightedIndex.value = index2;
+ inputRef.value.ref.setAttribute("aria-activedescendant", `${listboxId.value}-item-${highlightedIndex.value}`);
+ };
+ onClickOutside(listboxRef, () => {
+ suggestionVisible.value && close();
+ });
+ expose({
+ highlightedIndex,
+ activated,
+ loading,
+ inputRef,
+ popperRef,
+ suggestions,
+ handleSelect,
+ handleKeyEnter,
+ focus,
+ blur,
+ close,
+ highlight
+ });
+ return (_ctx, _cache) => {
+ return openBlock(), createBlock(unref(ElTooltip), {
+ ref_key: "popperRef",
+ ref: popperRef,
+ visible: unref(suggestionVisible),
+ placement: _ctx.placement,
+ "fallback-placements": ["bottom-start", "top-start"],
+ "popper-class": [unref(ns).e("popper"), _ctx.popperClass],
+ teleported: _ctx.teleported,
+ "gpu-acceleration": false,
+ pure: "",
+ "manual-mode": "",
+ effect: "light",
+ trigger: "click",
+ transition: `${unref(ns).namespace.value}-zoom-in-top`,
+ persistent: "",
+ role: "listbox",
+ onBeforeShow: onSuggestionShow,
+ onHide
+ }, {
+ content: withCtx(() => [
+ createElementVNode("div", {
+ ref_key: "regionRef",
+ ref: regionRef,
+ class: normalizeClass([unref(ns).b("suggestion"), unref(ns).is("loading", unref(suggestionLoading))]),
+ style: normalizeStyle({
+ [_ctx.fitInputWidth ? "width" : "minWidth"]: dropdownWidth.value,
+ outline: "none"
+ }),
+ role: "region"
+ }, [
+ createVNode(unref(ElScrollbar), {
+ id: unref(listboxId),
+ tag: "ul",
+ "wrap-class": unref(ns).be("suggestion", "wrap"),
+ "view-class": unref(ns).be("suggestion", "list"),
+ role: "listbox"
+ }, {
+ default: withCtx(() => [
+ unref(suggestionLoading) ? (openBlock(), createElementBlock("li", _hoisted_2$8, [
+ createVNode(unref(ElIcon), {
+ class: normalizeClass(unref(ns).is("loading"))
+ }, {
+ default: withCtx(() => [
+ createVNode(unref(loading_default))
+ ]),
+ _: 1
+ }, 8, ["class"])
+ ])) : (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(suggestions.value, (item, index2) => {
+ return openBlock(), createElementBlock("li", {
+ id: `${unref(listboxId)}-item-${index2}`,
+ key: index2,
+ class: normalizeClass({ highlighted: highlightedIndex.value === index2 }),
+ role: "option",
+ "aria-selected": highlightedIndex.value === index2,
+ onClick: ($event) => handleSelect(item)
+ }, [
+ renderSlot(_ctx.$slots, "default", { item }, () => [
+ createTextVNode(toDisplayString(item[_ctx.valueKey]), 1)
+ ])
+ ], 10, _hoisted_3$6);
+ }), 128))
+ ]),
+ _: 3
+ }, 8, ["id", "wrap-class", "view-class"])
+ ], 6)
+ ]),
+ default: withCtx(() => [
+ createElementVNode("div", {
+ ref_key: "listboxRef",
+ ref: listboxRef,
+ class: normalizeClass([unref(ns).b(), _ctx.$attrs.class]),
+ style: normalizeStyle(unref(styles)),
+ role: "combobox",
+ "aria-haspopup": "listbox",
+ "aria-expanded": unref(suggestionVisible),
+ "aria-owns": unref(listboxId)
+ }, [
+ createVNode(unref(ElInput), mergeProps({
+ ref_key: "inputRef",
+ ref: inputRef
+ }, unref(attrs), {
+ clearable: _ctx.clearable,
+ disabled: unref(disabled),
+ name: _ctx.name,
+ "model-value": _ctx.modelValue,
+ onInput: handleInput,
+ onChange: handleChange,
+ onFocus: handleFocus,
+ onBlur: handleBlur,
+ onClear: handleClear,
+ onKeydown: [
+ _cache[0] || (_cache[0] = withKeys(withModifiers(($event) => highlight(highlightedIndex.value - 1), ["prevent"]), ["up"])),
+ _cache[1] || (_cache[1] = withKeys(withModifiers(($event) => highlight(highlightedIndex.value + 1), ["prevent"]), ["down"])),
+ withKeys(handleKeyEnter, ["enter"]),
+ withKeys(close, ["tab"]),
+ withKeys(handleKeyEscape, ["esc"])
+ ],
+ onMousedown: handleMouseDown
+ }), createSlots({ _: 2 }, [
+ _ctx.$slots.prepend ? {
+ name: "prepend",
+ fn: withCtx(() => [
+ renderSlot(_ctx.$slots, "prepend")
+ ])
+ } : void 0,
+ _ctx.$slots.append ? {
+ name: "append",
+ fn: withCtx(() => [
+ renderSlot(_ctx.$slots, "append")
+ ])
+ } : void 0,
+ _ctx.$slots.prefix ? {
+ name: "prefix",
+ fn: withCtx(() => [
+ renderSlot(_ctx.$slots, "prefix")
+ ])
+ } : void 0,
+ _ctx.$slots.suffix ? {
+ name: "suffix",
+ fn: withCtx(() => [
+ renderSlot(_ctx.$slots, "suffix")
+ ])
+ } : void 0
+ ]), 1040, ["clearable", "disabled", "name", "model-value", "onKeydown"])
+ ], 14, _hoisted_1$8)
+ ]),
+ _: 3
+ }, 8, ["visible", "placement", "popper-class", "teleported", "transition"]);
+ };
+ }
+});
+var Autocomplete = /* @__PURE__ */ _export_sfc$1(_sfc_main$c, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/autocomplete/src/autocomplete.vue"]]);
+const ElAutocomplete = withInstall(Autocomplete);
+const buttonGroupContextKey = Symbol("buttonGroupContextKey");
+const useButton = (props, emit) => {
+ useDeprecated({
+ from: "type.text",
+ replacement: "link",
+ version: "3.0.0",
+ scope: "props",
+ ref: "https://element-plus.org/en-US/component/button.html#button-attributes"
+ }, computed(() => props.type === "text"));
+ const buttonGroupContext = inject(buttonGroupContextKey, void 0);
+ const globalConfig = useGlobalConfig("button");
+ const { form } = useFormItem();
+ const _size = useFormSize(computed(() => buttonGroupContext == null ? void 0 : buttonGroupContext.size));
+ const _disabled = useFormDisabled();
+ const _ref = ref();
+ const slots = useSlots();
+ const _type = computed(() => props.type || (buttonGroupContext == null ? void 0 : buttonGroupContext.type) || "");
+ const autoInsertSpace = computed(() => {
+ var _a, _b, _c;
+ return (_c = (_b = props.autoInsertSpace) != null ? _b : (_a = globalConfig.value) == null ? void 0 : _a.autoInsertSpace) != null ? _c : false;
+ });
+ const _props = computed(() => {
+ if (props.tag === "button") {
+ return {
+ ariaDisabled: _disabled.value || props.loading,
+ disabled: _disabled.value || props.loading,
+ autofocus: props.autofocus,
+ type: props.nativeType
+ };
+ }
+ return {};
+ });
+ const shouldAddSpace = computed(() => {
+ var _a;
+ const defaultSlot = (_a = slots.default) == null ? void 0 : _a.call(slots);
+ if (autoInsertSpace.value && (defaultSlot == null ? void 0 : defaultSlot.length) === 1) {
+ const slot = defaultSlot[0];
+ if ((slot == null ? void 0 : slot.type) === Text) {
+ const text = slot.children;
+ return /^\p{Unified_Ideograph}{2}$/u.test(text.trim());
+ }
+ }
+ return false;
+ });
+ const handleClick = (evt) => {
+ if (props.nativeType === "reset") {
+ form == null ? void 0 : form.resetFields();
+ }
+ emit("click", evt);
+ };
+ return {
+ _disabled,
+ _size,
+ _type,
+ _ref,
+ _props,
+ shouldAddSpace,
+ handleClick
+ };
+};
+const buttonTypes = [
+ "default",
+ "primary",
+ "success",
+ "warning",
+ "info",
+ "danger",
+ "text",
+ ""
+];
+const buttonNativeTypes = ["button", "submit", "reset"];
+const buttonProps = buildProps({
+ size: useSizeProp,
+ disabled: Boolean,
+ type: {
+ type: String,
+ values: buttonTypes,
+ default: ""
+ },
+ icon: {
+ type: iconPropType
+ },
+ nativeType: {
+ type: String,
+ values: buttonNativeTypes,
+ default: "button"
+ },
+ loading: Boolean,
+ loadingIcon: {
+ type: iconPropType,
+ default: () => loading_default
+ },
+ plain: Boolean,
+ text: Boolean,
+ link: Boolean,
+ bg: Boolean,
+ autofocus: Boolean,
+ round: Boolean,
+ circle: Boolean,
+ color: String,
+ dark: Boolean,
+ autoInsertSpace: {
+ type: Boolean,
+ default: void 0
+ },
+ tag: {
+ type: definePropType([String, Object]),
+ default: "button"
+ }
+});
+const buttonEmits = {
+ click: (evt) => evt instanceof MouseEvent
+};
+function darken(color, amount = 20) {
+ return color.mix("#141414", amount).toString();
+}
+function useButtonCustomStyle(props) {
+ const _disabled = useFormDisabled();
+ const ns = useNamespace("button");
+ return computed(() => {
+ let styles = {};
+ const buttonColor = props.color;
+ if (buttonColor) {
+ const color = new TinyColor(buttonColor);
+ const activeBgColor = props.dark ? color.tint(20).toString() : darken(color, 20);
+ if (props.plain) {
+ styles = ns.cssVarBlock({
+ "bg-color": props.dark ? darken(color, 90) : color.tint(90).toString(),
+ "text-color": buttonColor,
+ "border-color": props.dark ? darken(color, 50) : color.tint(50).toString(),
+ "hover-text-color": `var(${ns.cssVarName("color-white")})`,
+ "hover-bg-color": buttonColor,
+ "hover-border-color": buttonColor,
+ "active-bg-color": activeBgColor,
+ "active-text-color": `var(${ns.cssVarName("color-white")})`,
+ "active-border-color": activeBgColor
+ });
+ if (_disabled.value) {
+ styles[ns.cssVarBlockName("disabled-bg-color")] = props.dark ? darken(color, 90) : color.tint(90).toString();
+ styles[ns.cssVarBlockName("disabled-text-color")] = props.dark ? darken(color, 50) : color.tint(50).toString();
+ styles[ns.cssVarBlockName("disabled-border-color")] = props.dark ? darken(color, 80) : color.tint(80).toString();
+ }
+ } else {
+ const hoverBgColor = props.dark ? darken(color, 30) : color.tint(30).toString();
+ const textColor = color.isDark() ? `var(${ns.cssVarName("color-white")})` : `var(${ns.cssVarName("color-black")})`;
+ styles = ns.cssVarBlock({
+ "bg-color": buttonColor,
+ "text-color": textColor,
+ "border-color": buttonColor,
+ "hover-bg-color": hoverBgColor,
+ "hover-text-color": textColor,
+ "hover-border-color": hoverBgColor,
+ "active-bg-color": activeBgColor,
+ "active-border-color": activeBgColor
+ });
+ if (_disabled.value) {
+ const disabledButtonColor = props.dark ? darken(color, 50) : color.tint(50).toString();
+ styles[ns.cssVarBlockName("disabled-bg-color")] = disabledButtonColor;
+ styles[ns.cssVarBlockName("disabled-text-color")] = props.dark ? "rgba(255, 255, 255, 0.5)" : `var(${ns.cssVarName("color-white")})`;
+ styles[ns.cssVarBlockName("disabled-border-color")] = disabledButtonColor;
+ }
+ }
+ }
+ return styles;
+ });
+}
+const __default__$3 = defineComponent({
+ name: "ElButton"
+});
+const _sfc_main$b = /* @__PURE__ */ defineComponent({
+ ...__default__$3,
+ props: buttonProps,
+ emits: buttonEmits,
+ setup(__props, { expose, emit }) {
+ const props = __props;
+ const buttonStyle = useButtonCustomStyle(props);
+ const ns = useNamespace("button");
+ const { _ref, _size, _type, _disabled, _props, shouldAddSpace, handleClick } = useButton(props, emit);
+ expose({
+ ref: _ref,
+ size: _size,
+ type: _type,
+ disabled: _disabled,
+ shouldAddSpace
+ });
+ return (_ctx, _cache) => {
+ return openBlock(), createBlock(resolveDynamicComponent(_ctx.tag), mergeProps({
+ ref_key: "_ref",
+ ref: _ref
+ }, unref(_props), {
+ class: [
+ unref(ns).b(),
+ unref(ns).m(unref(_type)),
+ unref(ns).m(unref(_size)),
+ unref(ns).is("disabled", unref(_disabled)),
+ unref(ns).is("loading", _ctx.loading),
+ unref(ns).is("plain", _ctx.plain),
+ unref(ns).is("round", _ctx.round),
+ unref(ns).is("circle", _ctx.circle),
+ unref(ns).is("text", _ctx.text),
+ unref(ns).is("link", _ctx.link),
+ unref(ns).is("has-bg", _ctx.bg)
+ ],
+ style: unref(buttonStyle),
+ onClick: unref(handleClick)
+ }), {
+ default: withCtx(() => [
+ _ctx.loading ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
+ _ctx.$slots.loading ? renderSlot(_ctx.$slots, "loading", { key: 0 }) : (openBlock(), createBlock(unref(ElIcon), {
+ key: 1,
+ class: normalizeClass(unref(ns).is("loading"))
+ }, {
+ default: withCtx(() => [
+ (openBlock(), createBlock(resolveDynamicComponent(_ctx.loadingIcon)))
+ ]),
+ _: 1
+ }, 8, ["class"]))
+ ], 64)) : _ctx.icon || _ctx.$slots.icon ? (openBlock(), createBlock(unref(ElIcon), { key: 1 }, {
+ default: withCtx(() => [
+ _ctx.icon ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.icon), { key: 0 })) : renderSlot(_ctx.$slots, "icon", { key: 1 })
+ ]),
+ _: 3
+ })) : createCommentVNode("v-if", true),
+ _ctx.$slots.default ? (openBlock(), createElementBlock("span", {
+ key: 2,
+ class: normalizeClass({ [unref(ns).em("text", "expand")]: unref(shouldAddSpace) })
+ }, [
+ renderSlot(_ctx.$slots, "default")
+ ], 2)) : createCommentVNode("v-if", true)
+ ]),
+ _: 3
+ }, 16, ["class", "style", "onClick"]);
+ };
+ }
+});
+var Button = /* @__PURE__ */ _export_sfc$1(_sfc_main$b, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/button/src/button.vue"]]);
+const buttonGroupProps = {
+ size: buttonProps.size,
+ type: buttonProps.type
+};
+const __default__$2 = defineComponent({
+ name: "ElButtonGroup"
+});
+const _sfc_main$a = /* @__PURE__ */ defineComponent({
+ ...__default__$2,
+ props: buttonGroupProps,
+ setup(__props) {
+ const props = __props;
+ provide(buttonGroupContextKey, reactive({
+ size: toRef(props, "size"),
+ type: toRef(props, "type")
+ }));
+ const ns = useNamespace("button");
+ return (_ctx, _cache) => {
+ return openBlock(), createElementBlock("div", {
+ class: normalizeClass(`${unref(ns).b("group")}`)
+ }, [
+ renderSlot(_ctx.$slots, "default")
+ ], 2);
+ };
+ }
+});
+var ButtonGroup = /* @__PURE__ */ _export_sfc$1(_sfc_main$a, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/button/src/button-group.vue"]]);
+const ElButton = withInstall(Button, {
+ ButtonGroup
+});
+withNoopInstall(ButtonGroup);
+const timeUnits = ["hours", "minutes", "seconds"];
+const DEFAULT_FORMATS_TIME = "HH:mm:ss";
+const DEFAULT_FORMATS_DATE = "YYYY-MM-DD";
+const DEFAULT_FORMATS_DATEPICKER = {
+ date: DEFAULT_FORMATS_DATE,
+ dates: DEFAULT_FORMATS_DATE,
+ week: "gggg[w]ww",
+ year: "YYYY",
+ month: "YYYY-MM",
+ datetime: `${DEFAULT_FORMATS_DATE} ${DEFAULT_FORMATS_TIME}`,
+ monthrange: "YYYY-MM",
+ daterange: DEFAULT_FORMATS_DATE,
+ datetimerange: `${DEFAULT_FORMATS_DATE} ${DEFAULT_FORMATS_TIME}`
+};
+const buildTimeList = (value, bound) => {
+ return [
+ value > 0 ? value - 1 : void 0,
+ value,
+ value < bound ? value + 1 : void 0
+ ];
+};
+const rangeArr = (n) => Array.from(Array.from({ length: n }).keys());
+const extractDateFormat = (format) => {
+ return format.replace(/\W?m{1,2}|\W?ZZ/g, "").replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi, "").trim();
+};
+const extractTimeFormat = (format) => {
+ return format.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?Y{2,4}/g, "").trim();
+};
+const dateEquals = function(a, b) {
+ const aIsDate = isDate(a);
+ const bIsDate = isDate(b);
+ if (aIsDate && bIsDate) {
+ return a.getTime() === b.getTime();
+ }
+ if (!aIsDate && !bIsDate) {
+ return a === b;
+ }
+ return false;
+};
+const valueEquals = function(a, b) {
+ const aIsArray = isArray(a);
+ const bIsArray = isArray(b);
+ if (aIsArray && bIsArray) {
+ if (a.length !== b.length) {
+ return false;
+ }
+ return a.every((item, index2) => dateEquals(item, b[index2]));
+ }
+ if (!aIsArray && !bIsArray) {
+ return dateEquals(a, b);
+ }
+ return false;
+};
+const parseDate = function(date2, format, lang) {
+ const day = isEmpty(format) || format === "x" ? dayjs(date2).locale(lang) : dayjs(date2, format).locale(lang);
+ return day.isValid() ? day : void 0;
+};
+const formatter = function(date2, format, lang) {
+ if (isEmpty(format))
+ return date2;
+ if (format === "x")
+ return +date2;
+ return dayjs(date2).locale(lang).format(format);
+};
+const makeList = (total, method) => {
+ var _a;
+ const arr = [];
+ const disabledArr = method == null ? void 0 : method();
+ for (let i = 0; i < total; i++) {
+ arr.push((_a = disabledArr == null ? void 0 : disabledArr.includes(i)) != null ? _a : false);
+ }
+ return arr;
+};
+const disabledTimeListsProps = buildProps({
+ disabledHours: {
+ type: definePropType(Function)
+ },
+ disabledMinutes: {
+ type: definePropType(Function)
+ },
+ disabledSeconds: {
+ type: definePropType(Function)
+ }
+});
+const timePanelSharedProps = buildProps({
+ visible: Boolean,
+ actualVisible: {
+ type: Boolean,
+ default: void 0
+ },
+ format: {
+ type: String,
+ default: ""
+ }
+});
+const timePickerDefaultProps = buildProps({
+ id: {
+ type: definePropType([Array, String])
+ },
+ name: {
+ type: definePropType([Array, String]),
+ default: ""
+ },
+ popperClass: {
+ type: String,
+ default: ""
+ },
+ format: String,
+ valueFormat: String,
+ dateFormat: String,
+ timeFormat: String,
+ type: {
+ type: String,
+ default: ""
+ },
+ clearable: {
+ type: Boolean,
+ default: true
+ },
+ clearIcon: {
+ type: definePropType([String, Object]),
+ default: circle_close_default
+ },
+ editable: {
+ type: Boolean,
+ default: true
+ },
+ prefixIcon: {
+ type: definePropType([String, Object]),
+ default: ""
+ },
+ size: useSizeProp,
+ readonly: Boolean,
+ disabled: Boolean,
+ placeholder: {
+ type: String,
+ default: ""
+ },
+ popperOptions: {
+ type: definePropType(Object),
+ default: () => ({})
+ },
+ modelValue: {
+ type: definePropType([Date, Array, String, Number]),
+ default: ""
+ },
+ rangeSeparator: {
+ type: String,
+ default: "-"
+ },
+ startPlaceholder: String,
+ endPlaceholder: String,
+ defaultValue: {
+ type: definePropType([Date, Array])
+ },
+ defaultTime: {
+ type: definePropType([Date, Array])
+ },
+ isRange: Boolean,
+ ...disabledTimeListsProps,
+ disabledDate: {
+ type: Function
+ },
+ cellClassName: {
+ type: Function
+ },
+ shortcuts: {
+ type: Array,
+ default: () => []
+ },
+ arrowControl: Boolean,
+ label: {
+ type: String,
+ default: void 0
+ },
+ tabindex: {
+ type: definePropType([String, Number]),
+ default: 0
+ },
+ validateEvent: {
+ type: Boolean,
+ default: true
+ },
+ unlinkPanels: Boolean
+});
+const _hoisted_1$7 = ["id", "name", "placeholder", "value", "disabled", "readonly"];
+const _hoisted_2$7 = ["id", "name", "placeholder", "value", "disabled", "readonly"];
+const __default__$1 = defineComponent({
+ name: "Picker"
+});
+const _sfc_main$9 = /* @__PURE__ */ defineComponent({
+ ...__default__$1,
+ props: timePickerDefaultProps,
+ emits: [
+ "update:modelValue",
+ "change",
+ "focus",
+ "blur",
+ "calendar-change",
+ "panel-change",
+ "visible-change",
+ "keydown"
+ ],
+ setup(__props, { expose, emit }) {
+ const props = __props;
+ const attrs = useAttrs$1();
+ const { lang } = useLocale();
+ const nsDate = useNamespace("date");
+ const nsInput = useNamespace("input");
+ const nsRange = useNamespace("range");
+ const { form, formItem } = useFormItem();
+ const elPopperOptions = inject("ElPopperOptions", {});
+ const refPopper = ref();
+ const inputRef = ref();
+ const pickerVisible = ref(false);
+ const pickerActualVisible = ref(false);
+ const valueOnOpen = ref(null);
+ let hasJustTabExitedInput = false;
+ let ignoreFocusEvent = false;
+ const rangeInputKls = computed(() => [
+ nsDate.b("editor"),
+ nsDate.bm("editor", props.type),
+ nsInput.e("wrapper"),
+ nsDate.is("disabled", pickerDisabled.value),
+ nsDate.is("active", pickerVisible.value),
+ nsRange.b("editor"),
+ pickerSize ? nsRange.bm("editor", pickerSize.value) : "",
+ attrs.class
+ ]);
+ const clearIconKls = computed(() => [
+ nsInput.e("icon"),
+ nsRange.e("close-icon"),
+ !showClose.value ? nsRange.e("close-icon--hidden") : ""
+ ]);
+ watch(pickerVisible, (val) => {
+ if (!val) {
+ userInput.value = null;
+ nextTick(() => {
+ emitChange(props.modelValue);
+ });
+ } else {
+ nextTick(() => {
+ if (val) {
+ valueOnOpen.value = props.modelValue;
+ }
+ });
+ }
+ });
+ const emitChange = (val, isClear) => {
+ if (isClear || !valueEquals(val, valueOnOpen.value)) {
+ emit("change", val);
+ props.validateEvent && (formItem == null ? void 0 : formItem.validate("change").catch((err) => debugWarn()));
+ }
+ };
+ const emitInput = (input) => {
+ if (!valueEquals(props.modelValue, input)) {
+ let formatted;
+ if (isArray(input)) {
+ formatted = input.map((item) => formatter(item, props.valueFormat, lang.value));
+ } else if (input) {
+ formatted = formatter(input, props.valueFormat, lang.value);
+ }
+ emit("update:modelValue", input ? formatted : input, lang.value);
+ }
+ };
+ const emitKeydown = (e) => {
+ emit("keydown", e);
+ };
+ const refInput = computed(() => {
+ if (inputRef.value) {
+ const _r = isRangeInput.value ? inputRef.value : inputRef.value.$el;
+ return Array.from(_r.querySelectorAll("input"));
+ }
+ return [];
+ });
+ const setSelectionRange = (start, end, pos) => {
+ const _inputs = refInput.value;
+ if (!_inputs.length)
+ return;
+ if (!pos || pos === "min") {
+ _inputs[0].setSelectionRange(start, end);
+ _inputs[0].focus();
+ } else if (pos === "max") {
+ _inputs[1].setSelectionRange(start, end);
+ _inputs[1].focus();
+ }
+ };
+ const focusOnInputBox = () => {
+ focus(true, true);
+ nextTick(() => {
+ ignoreFocusEvent = false;
+ });
+ };
+ const onPick = (date2 = "", visible = false) => {
+ if (!visible) {
+ ignoreFocusEvent = true;
+ }
+ pickerVisible.value = visible;
+ let result;
+ if (isArray(date2)) {
+ result = date2.map((_) => _.toDate());
+ } else {
+ result = date2 ? date2.toDate() : date2;
+ }
+ userInput.value = null;
+ emitInput(result);
+ };
+ const onBeforeShow = () => {
+ pickerActualVisible.value = true;
+ };
+ const onShow = () => {
+ emit("visible-change", true);
+ };
+ const onKeydownPopperContent = (event) => {
+ if ((event == null ? void 0 : event.key) === EVENT_CODE.esc) {
+ focus(true, true);
+ }
+ };
+ const onHide = () => {
+ pickerActualVisible.value = false;
+ pickerVisible.value = false;
+ ignoreFocusEvent = false;
+ emit("visible-change", false);
+ };
+ const handleOpen = () => {
+ pickerVisible.value = true;
+ };
+ const handleClose = () => {
+ pickerVisible.value = false;
+ };
+ const focus = (focusStartInput = true, isIgnoreFocusEvent = false) => {
+ ignoreFocusEvent = isIgnoreFocusEvent;
+ const [leftInput, rightInput] = unref(refInput);
+ let input = leftInput;
+ if (!focusStartInput && isRangeInput.value) {
+ input = rightInput;
+ }
+ if (input) {
+ input.focus();
+ }
+ };
+ const handleFocusInput = (e) => {
+ if (props.readonly || pickerDisabled.value || pickerVisible.value || ignoreFocusEvent) {
+ return;
+ }
+ pickerVisible.value = true;
+ emit("focus", e);
+ };
+ let currentHandleBlurDeferCallback = void 0;
+ const handleBlurInput = (e) => {
+ const handleBlurDefer = async () => {
+ setTimeout(() => {
+ var _a;
+ if (currentHandleBlurDeferCallback === handleBlurDefer) {
+ if (!(((_a = refPopper.value) == null ? void 0 : _a.isFocusInsideContent()) && !hasJustTabExitedInput) && refInput.value.filter((input) => {
+ return input.contains(document.activeElement);
+ }).length === 0) {
+ handleChange();
+ pickerVisible.value = false;
+ emit("blur", e);
+ props.validateEvent && (formItem == null ? void 0 : formItem.validate("blur").catch((err) => debugWarn()));
+ }
+ hasJustTabExitedInput = false;
+ }
+ }, 0);
+ };
+ currentHandleBlurDeferCallback = handleBlurDefer;
+ handleBlurDefer();
+ };
+ const pickerDisabled = computed(() => {
+ return props.disabled || (form == null ? void 0 : form.disabled);
+ });
+ const parsedValue2 = computed(() => {
+ let dayOrDays;
+ if (valueIsEmpty.value) {
+ if (pickerOptions.value.getDefaultValue) {
+ dayOrDays = pickerOptions.value.getDefaultValue();
+ }
+ } else {
+ if (isArray(props.modelValue)) {
+ dayOrDays = props.modelValue.map((d) => parseDate(d, props.valueFormat, lang.value));
+ } else {
+ dayOrDays = parseDate(props.modelValue, props.valueFormat, lang.value);
+ }
+ }
+ if (pickerOptions.value.getRangeAvailableTime) {
+ const availableResult = pickerOptions.value.getRangeAvailableTime(dayOrDays);
+ if (!isEqual(availableResult, dayOrDays)) {
+ dayOrDays = availableResult;
+ emitInput(isArray(dayOrDays) ? dayOrDays.map((_) => _.toDate()) : dayOrDays.toDate());
+ }
+ }
+ if (isArray(dayOrDays) && dayOrDays.some((day) => !day)) {
+ dayOrDays = [];
+ }
+ return dayOrDays;
+ });
+ const displayValue = computed(() => {
+ if (!pickerOptions.value.panelReady)
+ return "";
+ const formattedValue = formatDayjsToString(parsedValue2.value);
+ if (isArray(userInput.value)) {
+ return [
+ userInput.value[0] || formattedValue && formattedValue[0] || "",
+ userInput.value[1] || formattedValue && formattedValue[1] || ""
+ ];
+ } else if (userInput.value !== null) {
+ return userInput.value;
+ }
+ if (!isTimePicker.value && valueIsEmpty.value)
+ return "";
+ if (!pickerVisible.value && valueIsEmpty.value)
+ return "";
+ if (formattedValue) {
+ return isDatesPicker.value ? formattedValue.join(", ") : formattedValue;
+ }
+ return "";
+ });
+ const isTimeLikePicker = computed(() => props.type.includes("time"));
+ const isTimePicker = computed(() => props.type.startsWith("time"));
+ const isDatesPicker = computed(() => props.type === "dates");
+ const triggerIcon = computed(() => props.prefixIcon || (isTimeLikePicker.value ? clock_default : calendar_default));
+ const showClose = ref(false);
+ const onClearIconClick = (event) => {
+ if (props.readonly || pickerDisabled.value)
+ return;
+ if (showClose.value) {
+ event.stopPropagation();
+ focusOnInputBox();
+ emitInput(null);
+ emitChange(null, true);
+ showClose.value = false;
+ pickerVisible.value = false;
+ pickerOptions.value.handleClear && pickerOptions.value.handleClear();
+ }
+ };
+ const valueIsEmpty = computed(() => {
+ const { modelValue } = props;
+ return !modelValue || isArray(modelValue) && !modelValue.filter(Boolean).length;
+ });
+ const onMouseDownInput = async (event) => {
+ var _a;
+ if (props.readonly || pickerDisabled.value)
+ return;
+ if (((_a = event.target) == null ? void 0 : _a.tagName) !== "INPUT" || refInput.value.includes(document.activeElement)) {
+ pickerVisible.value = true;
+ }
+ };
+ const onMouseEnter = () => {
+ if (props.readonly || pickerDisabled.value)
+ return;
+ if (!valueIsEmpty.value && props.clearable) {
+ showClose.value = true;
+ }
+ };
+ const onMouseLeave = () => {
+ showClose.value = false;
+ };
+ const onTouchStartInput = (event) => {
+ var _a;
+ if (props.readonly || pickerDisabled.value)
+ return;
+ if (((_a = event.touches[0].target) == null ? void 0 : _a.tagName) !== "INPUT" || refInput.value.includes(document.activeElement)) {
+ pickerVisible.value = true;
+ }
+ };
+ const isRangeInput = computed(() => {
+ return props.type.includes("range");
+ });
+ const pickerSize = useFormSize();
+ const popperEl = computed(() => {
+ var _a, _b;
+ return (_b = (_a = unref(refPopper)) == null ? void 0 : _a.popperRef) == null ? void 0 : _b.contentRef;
+ });
+ const actualInputRef = computed(() => {
+ var _a;
+ if (unref(isRangeInput)) {
+ return unref(inputRef);
+ }
+ return (_a = unref(inputRef)) == null ? void 0 : _a.$el;
+ });
+ onClickOutside(actualInputRef, (e) => {
+ const unrefedPopperEl = unref(popperEl);
+ const inputEl = unref(actualInputRef);
+ if (unrefedPopperEl && (e.target === unrefedPopperEl || e.composedPath().includes(unrefedPopperEl)) || e.target === inputEl || e.composedPath().includes(inputEl))
+ return;
+ pickerVisible.value = false;
+ });
+ const userInput = ref(null);
+ const handleChange = () => {
+ if (userInput.value) {
+ const value = parseUserInputToDayjs(displayValue.value);
+ if (value) {
+ if (isValidValue(value)) {
+ emitInput(isArray(value) ? value.map((_) => _.toDate()) : value.toDate());
+ userInput.value = null;
+ }
+ }
+ }
+ if (userInput.value === "") {
+ emitInput(null);
+ emitChange(null);
+ userInput.value = null;
+ }
+ };
+ const parseUserInputToDayjs = (value) => {
+ if (!value)
+ return null;
+ return pickerOptions.value.parseUserInput(value);
+ };
+ const formatDayjsToString = (value) => {
+ if (!value)
+ return null;
+ return pickerOptions.value.formatToString(value);
+ };
+ const isValidValue = (value) => {
+ return pickerOptions.value.isValidValue(value);
+ };
+ const handleKeydownInput = async (event) => {
+ if (props.readonly || pickerDisabled.value)
+ return;
+ const { code } = event;
+ emitKeydown(event);
+ if (code === EVENT_CODE.esc) {
+ if (pickerVisible.value === true) {
+ pickerVisible.value = false;
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ return;
+ }
+ if (code === EVENT_CODE.down) {
+ if (pickerOptions.value.handleFocusPicker) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ if (pickerVisible.value === false) {
+ pickerVisible.value = true;
+ await nextTick();
+ }
+ if (pickerOptions.value.handleFocusPicker) {
+ pickerOptions.value.handleFocusPicker();
+ return;
+ }
+ }
+ if (code === EVENT_CODE.tab) {
+ hasJustTabExitedInput = true;
+ return;
+ }
+ if (code === EVENT_CODE.enter || code === EVENT_CODE.numpadEnter) {
+ if (userInput.value === null || userInput.value === "" || isValidValue(parseUserInputToDayjs(displayValue.value))) {
+ handleChange();
+ pickerVisible.value = false;
+ }
+ event.stopPropagation();
+ return;
+ }
+ if (userInput.value) {
+ event.stopPropagation();
+ return;
+ }
+ if (pickerOptions.value.handleKeydownInput) {
+ pickerOptions.value.handleKeydownInput(event);
+ }
+ };
+ const onUserInput = (e) => {
+ userInput.value = e;
+ if (!pickerVisible.value) {
+ pickerVisible.value = true;
+ }
+ };
+ const handleStartInput = (event) => {
+ const target = event.target;
+ if (userInput.value) {
+ userInput.value = [target.value, userInput.value[1]];
+ } else {
+ userInput.value = [target.value, null];
+ }
+ };
+ const handleEndInput = (event) => {
+ const target = event.target;
+ if (userInput.value) {
+ userInput.value = [userInput.value[0], target.value];
+ } else {
+ userInput.value = [null, target.value];
+ }
+ };
+ const handleStartChange = () => {
+ var _a;
+ const values = userInput.value;
+ const value = parseUserInputToDayjs(values && values[0]);
+ const parsedVal = unref(parsedValue2);
+ if (value && value.isValid()) {
+ userInput.value = [
+ formatDayjsToString(value),
+ ((_a = displayValue.value) == null ? void 0 : _a[1]) || null
+ ];
+ const newValue = [value, parsedVal && (parsedVal[1] || null)];
+ if (isValidValue(newValue)) {
+ emitInput(newValue);
+ userInput.value = null;
+ }
+ }
+ };
+ const handleEndChange = () => {
+ var _a;
+ const values = unref(userInput);
+ const value = parseUserInputToDayjs(values && values[1]);
+ const parsedVal = unref(parsedValue2);
+ if (value && value.isValid()) {
+ userInput.value = [
+ ((_a = unref(displayValue)) == null ? void 0 : _a[0]) || null,
+ formatDayjsToString(value)
+ ];
+ const newValue = [parsedVal && parsedVal[0], value];
+ if (isValidValue(newValue)) {
+ emitInput(newValue);
+ userInput.value = null;
+ }
+ }
+ };
+ const pickerOptions = ref({});
+ const onSetPickerOption = (e) => {
+ pickerOptions.value[e[0]] = e[1];
+ pickerOptions.value.panelReady = true;
+ };
+ const onCalendarChange = (e) => {
+ emit("calendar-change", e);
+ };
+ const onPanelChange = (value, mode, view) => {
+ emit("panel-change", value, mode, view);
+ };
+ provide("EP_PICKER_BASE", {
+ props
+ });
+ expose({
+ focus,
+ handleFocusInput,
+ handleBlurInput,
+ handleOpen,
+ handleClose,
+ onPick
+ });
+ return (_ctx, _cache) => {
+ return openBlock(), createBlock(unref(ElTooltip), mergeProps({
+ ref_key: "refPopper",
+ ref: refPopper,
+ visible: pickerVisible.value,
+ effect: "light",
+ pure: "",
+ trigger: "click"
+ }, _ctx.$attrs, {
+ role: "dialog",
+ teleported: "",
+ transition: `${unref(nsDate).namespace.value}-zoom-in-top`,
+ "popper-class": [`${unref(nsDate).namespace.value}-picker__popper`, _ctx.popperClass],
+ "popper-options": unref(elPopperOptions),
+ "fallback-placements": ["bottom", "top", "right", "left"],
+ "gpu-acceleration": false,
+ "stop-popper-mouse-event": false,
+ "hide-after": 0,
+ persistent: "",
+ onBeforeShow,
+ onShow,
+ onHide
+ }), {
+ default: withCtx(() => [
+ !unref(isRangeInput) ? (openBlock(), createBlock(unref(ElInput), {
+ key: 0,
+ id: _ctx.id,
+ ref_key: "inputRef",
+ ref: inputRef,
+ "container-role": "combobox",
+ "model-value": unref(displayValue),
+ name: _ctx.name,
+ size: unref(pickerSize),
+ disabled: unref(pickerDisabled),
+ placeholder: _ctx.placeholder,
+ class: normalizeClass([unref(nsDate).b("editor"), unref(nsDate).bm("editor", _ctx.type), _ctx.$attrs.class]),
+ style: normalizeStyle(_ctx.$attrs.style),
+ readonly: !_ctx.editable || _ctx.readonly || unref(isDatesPicker) || _ctx.type === "week",
+ label: _ctx.label,
+ tabindex: _ctx.tabindex,
+ "validate-event": false,
+ onInput: onUserInput,
+ onFocus: handleFocusInput,
+ onBlur: handleBlurInput,
+ onKeydown: handleKeydownInput,
+ onChange: handleChange,
+ onMousedown: onMouseDownInput,
+ onMouseenter: onMouseEnter,
+ onMouseleave: onMouseLeave,
+ onTouchstart: onTouchStartInput,
+ onClick: _cache[0] || (_cache[0] = withModifiers(() => {
+ }, ["stop"]))
+ }, {
+ prefix: withCtx(() => [
+ unref(triggerIcon) ? (openBlock(), createBlock(unref(ElIcon), {
+ key: 0,
+ class: normalizeClass(unref(nsInput).e("icon")),
+ onMousedown: withModifiers(onMouseDownInput, ["prevent"]),
+ onTouchstart: onTouchStartInput
+ }, {
+ default: withCtx(() => [
+ (openBlock(), createBlock(resolveDynamicComponent(unref(triggerIcon))))
+ ]),
+ _: 1
+ }, 8, ["class", "onMousedown"])) : createCommentVNode("v-if", true)
+ ]),
+ suffix: withCtx(() => [
+ showClose.value && _ctx.clearIcon ? (openBlock(), createBlock(unref(ElIcon), {
+ key: 0,
+ class: normalizeClass(`${unref(nsInput).e("icon")} clear-icon`),
+ onClick: withModifiers(onClearIconClick, ["stop"])
+ }, {
+ default: withCtx(() => [
+ (openBlock(), createBlock(resolveDynamicComponent(_ctx.clearIcon)))
+ ]),
+ _: 1
+ }, 8, ["class", "onClick"])) : createCommentVNode("v-if", true)
+ ]),
+ _: 1
+ }, 8, ["id", "model-value", "name", "size", "disabled", "placeholder", "class", "style", "readonly", "label", "tabindex", "onKeydown"])) : (openBlock(), createElementBlock("div", {
+ key: 1,
+ ref_key: "inputRef",
+ ref: inputRef,
+ class: normalizeClass(unref(rangeInputKls)),
+ style: normalizeStyle(_ctx.$attrs.style),
+ onClick: handleFocusInput,
+ onMouseenter: onMouseEnter,
+ onMouseleave: onMouseLeave,
+ onTouchstart: onTouchStartInput,
+ onKeydown: handleKeydownInput
+ }, [
+ unref(triggerIcon) ? (openBlock(), createBlock(unref(ElIcon), {
+ key: 0,
+ class: normalizeClass([unref(nsInput).e("icon"), unref(nsRange).e("icon")]),
+ onMousedown: withModifiers(onMouseDownInput, ["prevent"]),
+ onTouchstart: onTouchStartInput
+ }, {
+ default: withCtx(() => [
+ (openBlock(), createBlock(resolveDynamicComponent(unref(triggerIcon))))
+ ]),
+ _: 1
+ }, 8, ["class", "onMousedown"])) : createCommentVNode("v-if", true),
+ createElementVNode("input", {
+ id: _ctx.id && _ctx.id[0],
+ autocomplete: "off",
+ name: _ctx.name && _ctx.name[0],
+ placeholder: _ctx.startPlaceholder,
+ value: unref(displayValue) && unref(displayValue)[0],
+ disabled: unref(pickerDisabled),
+ readonly: !_ctx.editable || _ctx.readonly,
+ class: normalizeClass(unref(nsRange).b("input")),
+ onMousedown: onMouseDownInput,
+ onInput: handleStartInput,
+ onChange: handleStartChange,
+ onFocus: handleFocusInput,
+ onBlur: handleBlurInput
+ }, null, 42, _hoisted_1$7),
+ renderSlot(_ctx.$slots, "range-separator", {}, () => [
+ createElementVNode("span", {
+ class: normalizeClass(unref(nsRange).b("separator"))
+ }, toDisplayString(_ctx.rangeSeparator), 3)
+ ]),
+ createElementVNode("input", {
+ id: _ctx.id && _ctx.id[1],
+ autocomplete: "off",
+ name: _ctx.name && _ctx.name[1],
+ placeholder: _ctx.endPlaceholder,
+ value: unref(displayValue) && unref(displayValue)[1],
+ disabled: unref(pickerDisabled),
+ readonly: !_ctx.editable || _ctx.readonly,
+ class: normalizeClass(unref(nsRange).b("input")),
+ onMousedown: onMouseDownInput,
+ onFocus: handleFocusInput,
+ onBlur: handleBlurInput,
+ onInput: handleEndInput,
+ onChange: handleEndChange
+ }, null, 42, _hoisted_2$7),
+ _ctx.clearIcon ? (openBlock(), createBlock(unref(ElIcon), {
+ key: 1,
+ class: normalizeClass(unref(clearIconKls)),
+ onClick: onClearIconClick
+ }, {
+ default: withCtx(() => [
+ (openBlock(), createBlock(resolveDynamicComponent(_ctx.clearIcon)))
+ ]),
+ _: 1
+ }, 8, ["class"])) : createCommentVNode("v-if", true)
+ ], 38))
+ ]),
+ content: withCtx(() => [
+ renderSlot(_ctx.$slots, "default", {
+ visible: pickerVisible.value,
+ actualVisible: pickerActualVisible.value,
+ parsedValue: unref(parsedValue2),
+ format: _ctx.format,
+ dateFormat: _ctx.dateFormat,
+ timeFormat: _ctx.timeFormat,
+ unlinkPanels: _ctx.unlinkPanels,
+ type: _ctx.type,
+ defaultValue: _ctx.defaultValue,
+ onPick,
+ onSelectRange: setSelectionRange,
+ onSetPickerOption,
+ onCalendarChange,
+ onPanelChange,
+ onKeydown: onKeydownPopperContent,
+ onMousedown: _cache[1] || (_cache[1] = withModifiers(() => {
+ }, ["stop"]))
+ })
+ ]),
+ _: 3
+ }, 16, ["visible", "transition", "popper-class", "popper-options"]);
+ };
+ }
+});
+var CommonPicker = /* @__PURE__ */ _export_sfc$1(_sfc_main$9, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/time-picker/src/common/picker.vue"]]);
+const panelTimePickerProps = buildProps({
+ ...timePanelSharedProps,
+ datetimeRole: String,
+ parsedValue: {
+ type: definePropType(Object)
+ }
+});
+const useTimePanel = ({
+ getAvailableHours,
+ getAvailableMinutes,
+ getAvailableSeconds
+}) => {
+ const getAvailableTime = (date2, role, first, compareDate) => {
+ const availableTimeGetters = {
+ hour: getAvailableHours,
+ minute: getAvailableMinutes,
+ second: getAvailableSeconds
+ };
+ let result = date2;
+ ["hour", "minute", "second"].forEach((type) => {
+ if (availableTimeGetters[type]) {
+ let availableTimeSlots;
+ const method = availableTimeGetters[type];
+ switch (type) {
+ case "minute": {
+ availableTimeSlots = method(result.hour(), role, compareDate);
+ break;
+ }
+ case "second": {
+ availableTimeSlots = method(result.hour(), result.minute(), role, compareDate);
+ break;
+ }
+ default: {
+ availableTimeSlots = method(role, compareDate);
+ break;
+ }
+ }
+ if ((availableTimeSlots == null ? void 0 : availableTimeSlots.length) && !availableTimeSlots.includes(result[type]())) {
+ const pos = first ? 0 : availableTimeSlots.length - 1;
+ result = result[type](availableTimeSlots[pos]);
+ }
+ }
+ });
+ return result;
+ };
+ const timePickerOptions = {};
+ const onSetOption = ([key, val]) => {
+ timePickerOptions[key] = val;
+ };
+ return {
+ timePickerOptions,
+ getAvailableTime,
+ onSetOption
+ };
+};
+const makeAvailableArr = (disabledList) => {
+ const trueOrNumber = (isDisabled, index2) => isDisabled || index2;
+ const getNumber = (predicate) => predicate !== true;
+ return disabledList.map(trueOrNumber).filter(getNumber);
+};
+const getTimeLists = (disabledHours, disabledMinutes, disabledSeconds) => {
+ const getHoursList = (role, compare) => {
+ return makeList(24, disabledHours && (() => disabledHours == null ? void 0 : disabledHours(role, compare)));
+ };
+ const getMinutesList = (hour, role, compare) => {
+ return makeList(60, disabledMinutes && (() => disabledMinutes == null ? void 0 : disabledMinutes(hour, role, compare)));
+ };
+ const getSecondsList = (hour, minute, role, compare) => {
+ return makeList(60, disabledSeconds && (() => disabledSeconds == null ? void 0 : disabledSeconds(hour, minute, role, compare)));
+ };
+ return {
+ getHoursList,
+ getMinutesList,
+ getSecondsList
+ };
+};
+const buildAvailableTimeSlotGetter = (disabledHours, disabledMinutes, disabledSeconds) => {
+ const { getHoursList, getMinutesList, getSecondsList } = getTimeLists(disabledHours, disabledMinutes, disabledSeconds);
+ const getAvailableHours = (role, compare) => {
+ return makeAvailableArr(getHoursList(role, compare));
+ };
+ const getAvailableMinutes = (hour, role, compare) => {
+ return makeAvailableArr(getMinutesList(hour, role, compare));
+ };
+ const getAvailableSeconds = (hour, minute, role, compare) => {
+ return makeAvailableArr(getSecondsList(hour, minute, role, compare));
+ };
+ return {
+ getAvailableHours,
+ getAvailableMinutes,
+ getAvailableSeconds
+ };
+};
+const useOldValue = (props) => {
+ const oldValue = ref(props.parsedValue);
+ watch(() => props.visible, (val) => {
+ if (!val) {
+ oldValue.value = props.parsedValue;
+ }
+ });
+ return oldValue;
+};
+const nodeList = /* @__PURE__ */ new Map();
+let startClick;
+if (isClient) {
+ document.addEventListener("mousedown", (e) => startClick = e);
+ document.addEventListener("mouseup", (e) => {
+ for (const handlers of nodeList.values()) {
+ for (const { documentHandler } of handlers) {
+ documentHandler(e, startClick);
+ }
+ }
+ });
+}
+function createDocumentHandler(el, binding) {
+ let excludes = [];
+ if (Array.isArray(binding.arg)) {
+ excludes = binding.arg;
+ } else if (isElement(binding.arg)) {
+ excludes.push(binding.arg);
+ }
+ return function(mouseup, mousedown) {
+ const popperRef = binding.instance.popperRef;
+ const mouseUpTarget = mouseup.target;
+ const mouseDownTarget = mousedown == null ? void 0 : mousedown.target;
+ const isBound = !binding || !binding.instance;
+ const isTargetExists = !mouseUpTarget || !mouseDownTarget;
+ const isContainedByEl = el.contains(mouseUpTarget) || el.contains(mouseDownTarget);
+ const isSelf = el === mouseUpTarget;
+ const isTargetExcluded = excludes.length && excludes.some((item) => item == null ? void 0 : item.contains(mouseUpTarget)) || excludes.length && excludes.includes(mouseDownTarget);
+ const isContainedByPopper = popperRef && (popperRef.contains(mouseUpTarget) || popperRef.contains(mouseDownTarget));
+ if (isBound || isTargetExists || isContainedByEl || isSelf || isTargetExcluded || isContainedByPopper) {
+ return;
+ }
+ binding.value(mouseup, mousedown);
+ };
+}
+const ClickOutside = {
+ beforeMount(el, binding) {
+ if (!nodeList.has(el)) {
+ nodeList.set(el, []);
+ }
+ nodeList.get(el).push({
+ documentHandler: createDocumentHandler(el, binding),
+ bindingFn: binding.value
+ });
+ },
+ updated(el, binding) {
+ if (!nodeList.has(el)) {
+ nodeList.set(el, []);
+ }
+ const handlers = nodeList.get(el);
+ const oldHandlerIndex = handlers.findIndex((item) => item.bindingFn === binding.oldValue);
+ const newHandler = {
+ documentHandler: createDocumentHandler(el, binding),
+ bindingFn: binding.value
+ };
+ if (oldHandlerIndex >= 0) {
+ handlers.splice(oldHandlerIndex, 1, newHandler);
+ } else {
+ handlers.push(newHandler);
+ }
+ },
+ unmounted(el) {
+ nodeList.delete(el);
+ }
+};
+const REPEAT_INTERVAL = 100;
+const REPEAT_DELAY = 600;
+const vRepeatClick = {
+ beforeMount(el, binding) {
+ const value = binding.value;
+ const { interval = REPEAT_INTERVAL, delay = REPEAT_DELAY } = isFunction(value) ? {} : value;
+ let intervalId;
+ let delayId;
+ const handler = () => isFunction(value) ? value() : value.handler();
+ const clear = () => {
+ if (delayId) {
+ clearTimeout(delayId);
+ delayId = void 0;
+ }
+ if (intervalId) {
+ clearInterval(intervalId);
+ intervalId = void 0;
+ }
+ };
+ el.addEventListener("mousedown", (evt) => {
+ if (evt.button !== 0)
+ return;
+ clear();
+ handler();
+ document.addEventListener("mouseup", () => clear(), {
+ once: true
+ });
+ delayId = setTimeout(() => {
+ intervalId = setInterval(() => {
+ handler();
+ }, interval);
+ }, delay);
+ });
+ }
+};
+const basicTimeSpinnerProps = buildProps({
+ role: {
+ type: String,
+ required: true
+ },
+ spinnerDate: {
+ type: definePropType(Object),
+ required: true
+ },
+ showSeconds: {
+ type: Boolean,
+ default: true
+ },
+ arrowControl: Boolean,
+ amPmMode: {
+ type: definePropType(String),
+ default: ""
+ },
+ ...disabledTimeListsProps
+});
+const _hoisted_1$6 = ["onClick"];
+const _hoisted_2$6 = ["onMouseenter"];
+const _sfc_main$8 = /* @__PURE__ */ defineComponent({
+ __name: "basic-time-spinner",
+ props: basicTimeSpinnerProps,
+ emits: ["change", "select-range", "set-option"],
+ setup(__props, { emit }) {
+ const props = __props;
+ const ns = useNamespace("time");
+ const { getHoursList, getMinutesList, getSecondsList } = getTimeLists(props.disabledHours, props.disabledMinutes, props.disabledSeconds);
+ let isScrolling = false;
+ const currentScrollbar = ref();
+ const listHoursRef = ref();
+ const listMinutesRef = ref();
+ const listSecondsRef = ref();
+ const listRefsMap = {
+ hours: listHoursRef,
+ minutes: listMinutesRef,
+ seconds: listSecondsRef
+ };
+ const spinnerItems = computed(() => {
+ return props.showSeconds ? timeUnits : timeUnits.slice(0, 2);
+ });
+ const timePartials = computed(() => {
+ const { spinnerDate } = props;
+ const hours = spinnerDate.hour();
+ const minutes = spinnerDate.minute();
+ const seconds = spinnerDate.second();
+ return { hours, minutes, seconds };
+ });
+ const timeList = computed(() => {
+ const { hours, minutes } = unref(timePartials);
+ return {
+ hours: getHoursList(props.role),
+ minutes: getMinutesList(hours, props.role),
+ seconds: getSecondsList(hours, minutes, props.role)
+ };
+ });
+ const arrowControlTimeList = computed(() => {
+ const { hours, minutes, seconds } = unref(timePartials);
+ return {
+ hours: buildTimeList(hours, 23),
+ minutes: buildTimeList(minutes, 59),
+ seconds: buildTimeList(seconds, 59)
+ };
+ });
+ debounce((type) => {
+ isScrolling = false;
+ adjustCurrentSpinner(type);
+ }, 200);
+ const getAmPmFlag = (hour) => {
+ const shouldShowAmPm = !!props.amPmMode;
+ if (!shouldShowAmPm)
+ return "";
+ const isCapital = props.amPmMode === "A";
+ let content = hour < 12 ? " am" : " pm";
+ if (isCapital)
+ content = content.toUpperCase();
+ return content;
+ };
+ const emitSelectRange = (type) => {
+ let range;
+ switch (type) {
+ case "hours":
+ range = [0, 2];
+ break;
+ case "minutes":
+ range = [3, 5];
+ break;
+ case "seconds":
+ range = [6, 8];
+ break;
+ }
+ const [left, right] = range;
+ emit("select-range", left, right);
+ currentScrollbar.value = type;
+ };
+ const adjustCurrentSpinner = (type) => {
+ adjustSpinner(type, unref(timePartials)[type]);
+ };
+ const adjustSpinners = () => {
+ adjustCurrentSpinner("hours");
+ adjustCurrentSpinner("minutes");
+ adjustCurrentSpinner("seconds");
+ };
+ const getScrollbarElement = (el) => el.querySelector(`.${ns.namespace.value}-scrollbar__wrap`);
+ const adjustSpinner = (type, value) => {
+ if (props.arrowControl)
+ return;
+ const scrollbar = unref(listRefsMap[type]);
+ if (scrollbar && scrollbar.$el) {
+ getScrollbarElement(scrollbar.$el).scrollTop = Math.max(0, value * typeItemHeight(type));
+ }
+ };
+ const typeItemHeight = (type) => {
+ const scrollbar = unref(listRefsMap[type]);
+ const listItem = scrollbar == null ? void 0 : scrollbar.$el.querySelector("li");
+ if (listItem) {
+ return Number.parseFloat(getStyle(listItem, "height")) || 0;
+ }
+ return 0;
+ };
+ const onIncrement = () => {
+ scrollDown(1);
+ };
+ const onDecrement = () => {
+ scrollDown(-1);
+ };
+ const scrollDown = (step) => {
+ if (!currentScrollbar.value) {
+ emitSelectRange("hours");
+ }
+ const label = currentScrollbar.value;
+ const now = unref(timePartials)[label];
+ const total = currentScrollbar.value === "hours" ? 24 : 60;
+ const next = findNextUnDisabled(label, now, step, total);
+ modifyDateField(label, next);
+ adjustSpinner(label, next);
+ nextTick(() => emitSelectRange(label));
+ };
+ const findNextUnDisabled = (type, now, step, total) => {
+ let next = (now + step + total) % total;
+ const list = unref(timeList)[type];
+ while (list[next] && next !== now) {
+ next = (next + step + total) % total;
+ }
+ return next;
+ };
+ const modifyDateField = (type, value) => {
+ const list = unref(timeList)[type];
+ const isDisabled = list[value];
+ if (isDisabled)
+ return;
+ const { hours, minutes, seconds } = unref(timePartials);
+ let changeTo;
+ switch (type) {
+ case "hours":
+ changeTo = props.spinnerDate.hour(value).minute(minutes).second(seconds);
+ break;
+ case "minutes":
+ changeTo = props.spinnerDate.hour(hours).minute(value).second(seconds);
+ break;
+ case "seconds":
+ changeTo = props.spinnerDate.hour(hours).minute(minutes).second(value);
+ break;
+ }
+ emit("change", changeTo);
+ };
+ const handleClick = (type, { value, disabled }) => {
+ if (!disabled) {
+ modifyDateField(type, value);
+ emitSelectRange(type);
+ adjustSpinner(type, value);
+ }
+ };
+ const setRef = (scrollbar, type) => {
+ listRefsMap[type].value = scrollbar;
+ };
+ emit("set-option", [`${props.role}_scrollDown`, scrollDown]);
+ emit("set-option", [`${props.role}_emitSelectRange`, emitSelectRange]);
+ watch(() => props.spinnerDate, () => {
+ if (isScrolling)
+ return;
+ adjustSpinners();
+ });
+ return (_ctx, _cache) => {
+ return openBlock(), createElementBlock("div", {
+ class: normalizeClass([unref(ns).b("spinner"), { "has-seconds": _ctx.showSeconds }])
+ }, [
+ !_ctx.arrowControl ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(unref(spinnerItems), (item) => {
+ return openBlock(), createBlock(unref(ElScrollbar), {
+ key: item,
+ ref_for: true,
+ ref: (scrollbar) => setRef(scrollbar, item),
+ class: normalizeClass(unref(ns).be("spinner", "wrapper")),
+ "wrap-style": "max-height: inherit;",
+ "view-class": unref(ns).be("spinner", "list"),
+ noresize: "",
+ tag: "ul",
+ onMouseenter: ($event) => emitSelectRange(item),
+ onMousemove: ($event) => adjustCurrentSpinner(item)
+ }, {
+ default: withCtx(() => [
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(timeList)[item], (disabled, key) => {
+ return openBlock(), createElementBlock("li", {
+ key,
+ class: normalizeClass([
+ unref(ns).be("spinner", "item"),
+ unref(ns).is("active", key === unref(timePartials)[item]),
+ unref(ns).is("disabled", disabled)
+ ]),
+ onClick: ($event) => handleClick(item, { value: key, disabled })
+ }, [
+ item === "hours" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
+ createTextVNode(toDisplayString(("0" + (_ctx.amPmMode ? key % 12 || 12 : key)).slice(-2)) + toDisplayString(getAmPmFlag(key)), 1)
+ ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
+ createTextVNode(toDisplayString(("0" + key).slice(-2)), 1)
+ ], 64))
+ ], 10, _hoisted_1$6);
+ }), 128))
+ ]),
+ _: 2
+ }, 1032, ["class", "view-class", "onMouseenter", "onMousemove"]);
+ }), 128)) : createCommentVNode("v-if", true),
+ _ctx.arrowControl ? (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(unref(spinnerItems), (item) => {
+ return openBlock(), createElementBlock("div", {
+ key: item,
+ class: normalizeClass([unref(ns).be("spinner", "wrapper"), unref(ns).is("arrow")]),
+ onMouseenter: ($event) => emitSelectRange(item)
+ }, [
+ withDirectives((openBlock(), createBlock(unref(ElIcon), {
+ class: normalizeClass(["arrow-up", unref(ns).be("spinner", "arrow")])
+ }, {
+ default: withCtx(() => [
+ createVNode(unref(arrow_up_default))
+ ]),
+ _: 1
+ }, 8, ["class"])), [
+ [unref(vRepeatClick), onDecrement]
+ ]),
+ withDirectives((openBlock(), createBlock(unref(ElIcon), {
+ class: normalizeClass(["arrow-down", unref(ns).be("spinner", "arrow")])
+ }, {
+ default: withCtx(() => [
+ createVNode(unref(arrow_down_default))
+ ]),
+ _: 1
+ }, 8, ["class"])), [
+ [unref(vRepeatClick), onIncrement]
+ ]),
+ createElementVNode("ul", {
+ class: normalizeClass(unref(ns).be("spinner", "list"))
+ }, [
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(arrowControlTimeList)[item], (time, key) => {
+ return openBlock(), createElementBlock("li", {
+ key,
+ class: normalizeClass([
+ unref(ns).be("spinner", "item"),
+ unref(ns).is("active", time === unref(timePartials)[item]),
+ unref(ns).is("disabled", unref(timeList)[item][time])
+ ])
+ }, [
+ typeof time === "number" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
+ item === "hours" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
+ createTextVNode(toDisplayString(("0" + (_ctx.amPmMode ? time % 12 || 12 : time)).slice(-2)) + toDisplayString(getAmPmFlag(time)), 1)
+ ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
+ createTextVNode(toDisplayString(("0" + time).slice(-2)), 1)
+ ], 64))
+ ], 64)) : createCommentVNode("v-if", true)
+ ], 2);
+ }), 128))
+ ], 2)
+ ], 42, _hoisted_2$6);
+ }), 128)) : createCommentVNode("v-if", true)
+ ], 2);
+ };
+ }
+});
+var TimeSpinner = /* @__PURE__ */ _export_sfc$1(_sfc_main$8, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/time-picker/src/time-picker-com/basic-time-spinner.vue"]]);
+const _sfc_main$7 = /* @__PURE__ */ defineComponent({
+ __name: "panel-time-pick",
+ props: panelTimePickerProps,
+ emits: ["pick", "select-range", "set-picker-option"],
+ setup(__props, { emit }) {
+ const props = __props;
+ const pickerBase = inject("EP_PICKER_BASE");
+ const {
+ arrowControl,
+ disabledHours,
+ disabledMinutes,
+ disabledSeconds,
+ defaultValue
+ } = pickerBase.props;
+ const { getAvailableHours, getAvailableMinutes, getAvailableSeconds } = buildAvailableTimeSlotGetter(disabledHours, disabledMinutes, disabledSeconds);
+ const ns = useNamespace("time");
+ const { t, lang } = useLocale();
+ const selectionRange = ref([0, 2]);
+ const oldValue = useOldValue(props);
+ const transitionName = computed(() => {
+ return isUndefined(props.actualVisible) ? `${ns.namespace.value}-zoom-in-top` : "";
+ });
+ const showSeconds = computed(() => {
+ return props.format.includes("ss");
+ });
+ const amPmMode = computed(() => {
+ if (props.format.includes("A"))
+ return "A";
+ if (props.format.includes("a"))
+ return "a";
+ return "";
+ });
+ const isValidValue = (_date) => {
+ const parsedDate = dayjs(_date).locale(lang.value);
+ const result = getRangeAvailableTime(parsedDate);
+ return parsedDate.isSame(result);
+ };
+ const handleCancel = () => {
+ emit("pick", oldValue.value, false);
+ };
+ const handleConfirm = (visible = false, first = false) => {
+ if (first)
+ return;
+ emit("pick", props.parsedValue, visible);
+ };
+ const handleChange = (_date) => {
+ if (!props.visible) {
+ return;
+ }
+ const result = getRangeAvailableTime(_date).millisecond(0);
+ emit("pick", result, true);
+ };
+ const setSelectionRange = (start, end) => {
+ emit("select-range", start, end);
+ selectionRange.value = [start, end];
+ };
+ const changeSelectionRange = (step) => {
+ const list = [0, 3].concat(showSeconds.value ? [6] : []);
+ const mapping = ["hours", "minutes"].concat(showSeconds.value ? ["seconds"] : []);
+ const index2 = list.indexOf(selectionRange.value[0]);
+ const next = (index2 + step + list.length) % list.length;
+ timePickerOptions["start_emitSelectRange"](mapping[next]);
+ };
+ const handleKeydown = (event) => {
+ const code = event.code;
+ const { left, right, up, down } = EVENT_CODE;
+ if ([left, right].includes(code)) {
+ const step = code === left ? -1 : 1;
+ changeSelectionRange(step);
+ event.preventDefault();
+ return;
+ }
+ if ([up, down].includes(code)) {
+ const step = code === up ? -1 : 1;
+ timePickerOptions["start_scrollDown"](step);
+ event.preventDefault();
+ return;
+ }
+ };
+ const { timePickerOptions, onSetOption, getAvailableTime } = useTimePanel({
+ getAvailableHours,
+ getAvailableMinutes,
+ getAvailableSeconds
+ });
+ const getRangeAvailableTime = (date2) => {
+ return getAvailableTime(date2, props.datetimeRole || "", true);
+ };
+ const parseUserInput = (value) => {
+ if (!value)
+ return null;
+ return dayjs(value, props.format).locale(lang.value);
+ };
+ const formatToString = (value) => {
+ if (!value)
+ return null;
+ return value.format(props.format);
+ };
+ const getDefaultValue2 = () => {
+ return dayjs(defaultValue).locale(lang.value);
+ };
+ emit("set-picker-option", ["isValidValue", isValidValue]);
+ emit("set-picker-option", ["formatToString", formatToString]);
+ emit("set-picker-option", ["parseUserInput", parseUserInput]);
+ emit("set-picker-option", ["handleKeydownInput", handleKeydown]);
+ emit("set-picker-option", ["getRangeAvailableTime", getRangeAvailableTime]);
+ emit("set-picker-option", ["getDefaultValue", getDefaultValue2]);
+ return (_ctx, _cache) => {
+ return openBlock(), createBlock(Transition, { name: unref(transitionName) }, {
+ default: withCtx(() => [
+ _ctx.actualVisible || _ctx.visible ? (openBlock(), createElementBlock("div", {
+ key: 0,
+ class: normalizeClass(unref(ns).b("panel"))
+ }, [
+ createElementVNode("div", {
+ class: normalizeClass([unref(ns).be("panel", "content"), { "has-seconds": unref(showSeconds) }])
+ }, [
+ createVNode(TimeSpinner, {
+ ref: "spinner",
+ role: _ctx.datetimeRole || "start",
+ "arrow-control": unref(arrowControl),
+ "show-seconds": unref(showSeconds),
+ "am-pm-mode": unref(amPmMode),
+ "spinner-date": _ctx.parsedValue,
+ "disabled-hours": unref(disabledHours),
+ "disabled-minutes": unref(disabledMinutes),
+ "disabled-seconds": unref(disabledSeconds),
+ onChange: handleChange,
+ onSetOption: unref(onSetOption),
+ onSelectRange: setSelectionRange
+ }, null, 8, ["role", "arrow-control", "show-seconds", "am-pm-mode", "spinner-date", "disabled-hours", "disabled-minutes", "disabled-seconds", "onSetOption"])
+ ], 2),
+ createElementVNode("div", {
+ class: normalizeClass(unref(ns).be("panel", "footer"))
+ }, [
+ createElementVNode("button", {
+ type: "button",
+ class: normalizeClass([unref(ns).be("panel", "btn"), "cancel"]),
+ onClick: handleCancel
+ }, toDisplayString(unref(t)("el.datepicker.cancel")), 3),
+ createElementVNode("button", {
+ type: "button",
+ class: normalizeClass([unref(ns).be("panel", "btn"), "confirm"]),
+ onClick: _cache[0] || (_cache[0] = ($event) => handleConfirm())
+ }, toDisplayString(unref(t)("el.datepicker.confirm")), 3)
+ ], 2)
+ ], 2)) : createCommentVNode("v-if", true)
+ ]),
+ _: 1
+ }, 8, ["name"]);
+ };
+ }
+});
+var TimePickPanel = /* @__PURE__ */ _export_sfc$1(_sfc_main$7, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/time-picker/src/time-picker-com/panel-time-pick.vue"]]);
+const ROOT_PICKER_INJECTION_KEY = Symbol();
+const datePickerProps = buildProps({
+ ...timePickerDefaultProps,
+ type: {
+ type: definePropType(String),
+ default: "date"
+ }
+});
+const selectionModes = ["date", "dates", "year", "month", "week", "range"];
+const datePickerSharedProps = buildProps({
+ disabledDate: {
+ type: definePropType(Function)
+ },
+ date: {
+ type: definePropType(Object),
+ required: true
+ },
+ minDate: {
+ type: definePropType(Object)
+ },
+ maxDate: {
+ type: definePropType(Object)
+ },
+ parsedValue: {
+ type: definePropType([Object, Array])
+ },
+ rangeState: {
+ type: definePropType(Object),
+ default: () => ({
+ endDate: null,
+ selecting: false
+ })
+ }
+});
+const panelSharedProps = buildProps({
+ type: {
+ type: definePropType(String),
+ required: true,
+ values: datePickTypes
+ },
+ dateFormat: String,
+ timeFormat: String
+});
+const panelRangeSharedProps = buildProps({
+ unlinkPanels: Boolean,
+ parsedValue: {
+ type: definePropType(Array)
+ }
+});
+const selectionModeWithDefault = (mode) => {
+ return {
+ type: String,
+ values: selectionModes,
+ default: mode
+ };
+};
+const panelDatePickProps = buildProps({
+ ...panelSharedProps,
+ parsedValue: {
+ type: definePropType([Object, Array])
+ },
+ visible: {
+ type: Boolean
+ },
+ format: {
+ type: String,
+ default: ""
+ }
+});
+const basicDateTableProps = buildProps({
+ ...datePickerSharedProps,
+ cellClassName: {
+ type: definePropType(Function)
+ },
+ showWeekNumber: Boolean,
+ selectionMode: selectionModeWithDefault("date")
+});
+const basicDateTableEmits = ["changerange", "pick", "select"];
+const isValidRange = (range) => {
+ if (!isArray(range))
+ return false;
+ const [left, right] = range;
+ return dayjs.isDayjs(left) && dayjs.isDayjs(right) && left.isSameOrBefore(right);
+};
+const getDefaultValue = (defaultValue, { lang, unit: unit2, unlinkPanels }) => {
+ let start;
+ if (isArray(defaultValue)) {
+ let [left, right] = defaultValue.map((d) => dayjs(d).locale(lang));
+ if (!unlinkPanels) {
+ right = left.add(1, unit2);
+ }
+ return [left, right];
+ } else if (defaultValue) {
+ start = dayjs(defaultValue);
+ } else {
+ start = dayjs();
+ }
+ start = start.locale(lang);
+ return [start, start.add(1, unit2)];
+};
+const buildPickerTable = (dimension, rows, {
+ columnIndexOffset,
+ startDate,
+ nextEndDate,
+ now,
+ unit: unit2,
+ relativeDateGetter,
+ setCellMetadata,
+ setRowMetadata
+}) => {
+ for (let rowIndex = 0; rowIndex < dimension.row; rowIndex++) {
+ const row = rows[rowIndex];
+ for (let columnIndex = 0; columnIndex < dimension.column; columnIndex++) {
+ let cell = row[columnIndex + columnIndexOffset];
+ if (!cell) {
+ cell = {
+ row: rowIndex,
+ column: columnIndex,
+ type: "normal",
+ inRange: false,
+ start: false,
+ end: false
+ };
+ }
+ const index2 = rowIndex * dimension.column + columnIndex;
+ const nextStartDate = relativeDateGetter(index2);
+ cell.dayjs = nextStartDate;
+ cell.date = nextStartDate.toDate();
+ cell.timestamp = nextStartDate.valueOf();
+ cell.type = "normal";
+ cell.inRange = !!(startDate && nextStartDate.isSameOrAfter(startDate, unit2) && nextEndDate && nextStartDate.isSameOrBefore(nextEndDate, unit2)) || !!(startDate && nextStartDate.isSameOrBefore(startDate, unit2) && nextEndDate && nextStartDate.isSameOrAfter(nextEndDate, unit2));
+ if (startDate == null ? void 0 : startDate.isSameOrAfter(nextEndDate)) {
+ cell.start = !!nextEndDate && nextStartDate.isSame(nextEndDate, unit2);
+ cell.end = startDate && nextStartDate.isSame(startDate, unit2);
+ } else {
+ cell.start = !!startDate && nextStartDate.isSame(startDate, unit2);
+ cell.end = !!nextEndDate && nextStartDate.isSame(nextEndDate, unit2);
+ }
+ const isToday = nextStartDate.isSame(now, unit2);
+ if (isToday) {
+ cell.type = "today";
+ }
+ setCellMetadata == null ? void 0 : setCellMetadata(cell, { rowIndex, columnIndex });
+ row[columnIndex + columnIndexOffset] = cell;
+ }
+ setRowMetadata == null ? void 0 : setRowMetadata(row);
+ }
+};
+const isNormalDay = (type = "") => {
+ return ["normal", "today"].includes(type);
+};
+const useBasicDateTable = (props, emit) => {
+ const { lang } = useLocale();
+ const tbodyRef = ref();
+ const currentCellRef = ref();
+ const lastRow = ref();
+ const lastColumn = ref();
+ const tableRows = ref([[], [], [], [], [], []]);
+ let focusWithClick = false;
+ const firstDayOfWeek = props.date.$locale().weekStart || 7;
+ const WEEKS_CONSTANT = props.date.locale("en").localeData().weekdaysShort().map((_) => _.toLowerCase());
+ const offsetDay = computed(() => {
+ return firstDayOfWeek > 3 ? 7 - firstDayOfWeek : -firstDayOfWeek;
+ });
+ const startDate = computed(() => {
+ const startDayOfMonth = props.date.startOf("month");
+ return startDayOfMonth.subtract(startDayOfMonth.day() || 7, "day");
+ });
+ const WEEKS = computed(() => {
+ return WEEKS_CONSTANT.concat(WEEKS_CONSTANT).slice(firstDayOfWeek, firstDayOfWeek + 7);
+ });
+ const hasCurrent = computed(() => {
+ return flatten(unref(rows)).some((row) => {
+ return row.isCurrent;
+ });
+ });
+ const days = computed(() => {
+ const startOfMonth = props.date.startOf("month");
+ const startOfMonthDay = startOfMonth.day() || 7;
+ const dateCountOfMonth = startOfMonth.daysInMonth();
+ const dateCountOfLastMonth = startOfMonth.subtract(1, "month").daysInMonth();
+ return {
+ startOfMonthDay,
+ dateCountOfMonth,
+ dateCountOfLastMonth
+ };
+ });
+ const selectedDate = computed(() => {
+ return props.selectionMode === "dates" ? castArray(props.parsedValue) : [];
+ });
+ const setDateText = (cell, { count, rowIndex, columnIndex }) => {
+ const { startOfMonthDay, dateCountOfMonth, dateCountOfLastMonth } = unref(days);
+ const offset = unref(offsetDay);
+ if (rowIndex >= 0 && rowIndex <= 1) {
+ const numberOfDaysFromPreviousMonth = startOfMonthDay + offset < 0 ? 7 + startOfMonthDay + offset : startOfMonthDay + offset;
+ if (columnIndex + rowIndex * 7 >= numberOfDaysFromPreviousMonth) {
+ cell.text = count;
+ return true;
+ } else {
+ cell.text = dateCountOfLastMonth - (numberOfDaysFromPreviousMonth - columnIndex % 7) + 1 + rowIndex * 7;
+ cell.type = "prev-month";
+ }
+ } else {
+ if (count <= dateCountOfMonth) {
+ cell.text = count;
+ } else {
+ cell.text = count - dateCountOfMonth;
+ cell.type = "next-month";
+ }
+ return true;
+ }
+ return false;
+ };
+ const setCellMetadata = (cell, { columnIndex, rowIndex }, count) => {
+ const { disabledDate: disabledDate2, cellClassName } = props;
+ const _selectedDate = unref(selectedDate);
+ const shouldIncrement = setDateText(cell, { count, rowIndex, columnIndex });
+ const cellDate = cell.dayjs.toDate();
+ cell.selected = _selectedDate.find((d) => d.valueOf() === cell.dayjs.valueOf());
+ cell.isSelected = !!cell.selected;
+ cell.isCurrent = isCurrent(cell);
+ cell.disabled = disabledDate2 == null ? void 0 : disabledDate2(cellDate);
+ cell.customClass = cellClassName == null ? void 0 : cellClassName(cellDate);
+ return shouldIncrement;
+ };
+ const setRowMetadata = (row) => {
+ if (props.selectionMode === "week") {
+ const [start, end] = props.showWeekNumber ? [1, 7] : [0, 6];
+ const isActive = isWeekActive(row[start + 1]);
+ row[start].inRange = isActive;
+ row[start].start = isActive;
+ row[end].inRange = isActive;
+ row[end].end = isActive;
+ }
+ };
+ const rows = computed(() => {
+ const { minDate, maxDate, rangeState, showWeekNumber } = props;
+ const offset = unref(offsetDay);
+ const rows_ = unref(tableRows);
+ const dateUnit = "day";
+ let count = 1;
+ if (showWeekNumber) {
+ for (let rowIndex = 0; rowIndex < 6; rowIndex++) {
+ if (!rows_[rowIndex][0]) {
+ rows_[rowIndex][0] = {
+ type: "week",
+ text: unref(startDate).add(rowIndex * 7 + 1, dateUnit).week()
+ };
+ }
+ }
+ }
+ buildPickerTable({ row: 6, column: 7 }, rows_, {
+ startDate: minDate,
+ columnIndexOffset: showWeekNumber ? 1 : 0,
+ nextEndDate: rangeState.endDate || maxDate || rangeState.selecting && minDate || null,
+ now: dayjs().locale(unref(lang)).startOf(dateUnit),
+ unit: dateUnit,
+ relativeDateGetter: (idx) => unref(startDate).add(idx - offset, dateUnit),
+ setCellMetadata: (...args) => {
+ if (setCellMetadata(...args, count)) {
+ count += 1;
+ }
+ },
+ setRowMetadata
+ });
+ return rows_;
+ });
+ watch(() => props.date, async () => {
+ var _a;
+ if ((_a = unref(tbodyRef)) == null ? void 0 : _a.contains(document.activeElement)) {
+ await nextTick();
+ await focus();
+ }
+ });
+ const focus = async () => {
+ var _a;
+ return (_a = unref(currentCellRef)) == null ? void 0 : _a.focus();
+ };
+ const isCurrent = (cell) => {
+ return props.selectionMode === "date" && isNormalDay(cell.type) && cellMatchesDate(cell, props.parsedValue);
+ };
+ const cellMatchesDate = (cell, date2) => {
+ if (!date2)
+ return false;
+ return dayjs(date2).locale(unref(lang)).isSame(props.date.date(Number(cell.text)), "day");
+ };
+ const getDateOfCell = (row, column) => {
+ const offsetFromStart = row * 7 + (column - (props.showWeekNumber ? 1 : 0)) - unref(offsetDay);
+ return unref(startDate).add(offsetFromStart, "day");
+ };
+ const handleMouseMove = (event) => {
+ var _a;
+ if (!props.rangeState.selecting)
+ return;
+ let target = event.target;
+ if (target.tagName === "SPAN") {
+ target = (_a = target.parentNode) == null ? void 0 : _a.parentNode;
+ }
+ if (target.tagName === "DIV") {
+ target = target.parentNode;
+ }
+ if (target.tagName !== "TD")
+ return;
+ const row = target.parentNode.rowIndex - 1;
+ const column = target.cellIndex;
+ if (unref(rows)[row][column].disabled)
+ return;
+ if (row !== unref(lastRow) || column !== unref(lastColumn)) {
+ lastRow.value = row;
+ lastColumn.value = column;
+ emit("changerange", {
+ selecting: true,
+ endDate: getDateOfCell(row, column)
+ });
+ }
+ };
+ const isSelectedCell = (cell) => {
+ return !unref(hasCurrent) && (cell == null ? void 0 : cell.text) === 1 && cell.type === "normal" || cell.isCurrent;
+ };
+ const handleFocus = (event) => {
+ if (focusWithClick || unref(hasCurrent) || props.selectionMode !== "date")
+ return;
+ handlePickDate(event, true);
+ };
+ const handleMouseDown = (event) => {
+ const target = event.target.closest("td");
+ if (!target)
+ return;
+ focusWithClick = true;
+ };
+ const handleMouseUp = (event) => {
+ const target = event.target.closest("td");
+ if (!target)
+ return;
+ focusWithClick = false;
+ };
+ const handleRangePick = (newDate) => {
+ if (!props.rangeState.selecting || !props.minDate) {
+ emit("pick", { minDate: newDate, maxDate: null });
+ emit("select", true);
+ } else {
+ if (newDate >= props.minDate) {
+ emit("pick", { minDate: props.minDate, maxDate: newDate });
+ } else {
+ emit("pick", { minDate: newDate, maxDate: props.minDate });
+ }
+ emit("select", false);
+ }
+ };
+ const handleWeekPick = (newDate) => {
+ const weekNumber = newDate.week();
+ const value = `${newDate.year()}w${weekNumber}`;
+ emit("pick", {
+ year: newDate.year(),
+ week: weekNumber,
+ value,
+ date: newDate.startOf("week")
+ });
+ };
+ const handleDatesPick = (newDate, selected) => {
+ const newValue = selected ? castArray(props.parsedValue).filter((d) => (d == null ? void 0 : d.valueOf()) !== newDate.valueOf()) : castArray(props.parsedValue).concat([newDate]);
+ emit("pick", newValue);
+ };
+ const handlePickDate = (event, isKeyboardMovement = false) => {
+ const target = event.target.closest("td");
+ if (!target)
+ return;
+ const row = target.parentNode.rowIndex - 1;
+ const column = target.cellIndex;
+ const cell = unref(rows)[row][column];
+ if (cell.disabled || cell.type === "week")
+ return;
+ const newDate = getDateOfCell(row, column);
+ switch (props.selectionMode) {
+ case "range": {
+ handleRangePick(newDate);
+ break;
+ }
+ case "date": {
+ emit("pick", newDate, isKeyboardMovement);
+ break;
+ }
+ case "week": {
+ handleWeekPick(newDate);
+ break;
+ }
+ case "dates": {
+ handleDatesPick(newDate, !!cell.selected);
+ break;
+ }
+ }
+ };
+ const isWeekActive = (cell) => {
+ if (props.selectionMode !== "week")
+ return false;
+ let newDate = props.date.startOf("day");
+ if (cell.type === "prev-month") {
+ newDate = newDate.subtract(1, "month");
+ }
+ if (cell.type === "next-month") {
+ newDate = newDate.add(1, "month");
+ }
+ newDate = newDate.date(Number.parseInt(cell.text, 10));
+ if (props.parsedValue && !Array.isArray(props.parsedValue)) {
+ const dayOffset = (props.parsedValue.day() - firstDayOfWeek + 7) % 7 - 1;
+ const weekDate = props.parsedValue.subtract(dayOffset, "day");
+ return weekDate.isSame(newDate, "day");
+ }
+ return false;
+ };
+ return {
+ WEEKS,
+ rows,
+ tbodyRef,
+ currentCellRef,
+ focus,
+ isCurrent,
+ isWeekActive,
+ isSelectedCell,
+ handlePickDate,
+ handleMouseUp,
+ handleMouseDown,
+ handleMouseMove,
+ handleFocus
+ };
+};
+const useBasicDateTableDOM = (props, {
+ isCurrent,
+ isWeekActive
+}) => {
+ const ns = useNamespace("date-table");
+ const { t } = useLocale();
+ const tableKls = computed(() => [
+ ns.b(),
+ { "is-week-mode": props.selectionMode === "week" }
+ ]);
+ const tableLabel = computed(() => t("el.datepicker.dateTablePrompt"));
+ const weekLabel = computed(() => t("el.datepicker.week"));
+ const getCellClasses = (cell) => {
+ const classes = [];
+ if (isNormalDay(cell.type) && !cell.disabled) {
+ classes.push("available");
+ if (cell.type === "today") {
+ classes.push("today");
+ }
+ } else {
+ classes.push(cell.type);
+ }
+ if (isCurrent(cell)) {
+ classes.push("current");
+ }
+ if (cell.inRange && (isNormalDay(cell.type) || props.selectionMode === "week")) {
+ classes.push("in-range");
+ if (cell.start) {
+ classes.push("start-date");
+ }
+ if (cell.end) {
+ classes.push("end-date");
+ }
+ }
+ if (cell.disabled) {
+ classes.push("disabled");
+ }
+ if (cell.selected) {
+ classes.push("selected");
+ }
+ if (cell.customClass) {
+ classes.push(cell.customClass);
+ }
+ return classes.join(" ");
+ };
+ const getRowKls = (cell) => [
+ ns.e("row"),
+ { current: isWeekActive(cell) }
+ ];
+ return {
+ tableKls,
+ tableLabel,
+ weekLabel,
+ getCellClasses,
+ getRowKls,
+ t
+ };
+};
+const basicCellProps = buildProps({
+ cell: {
+ type: definePropType(Object)
+ }
+});
+var ElDatePickerCell = defineComponent({
+ name: "ElDatePickerCell",
+ props: basicCellProps,
+ setup(props) {
+ const ns = useNamespace("date-table-cell");
+ const {
+ slots
+ } = inject(ROOT_PICKER_INJECTION_KEY);
+ return () => {
+ const {
+ cell
+ } = props;
+ if (slots.default) {
+ const list = slots.default(cell).filter((item) => {
+ return item.patchFlag !== -2 && item.type.toString() !== "Symbol(Comment)" && item.type.toString() !== "Symbol(v-cmt)";
+ });
+ if (list.length) {
+ return list;
+ }
+ }
+ return createVNode("div", {
+ "class": ns.b()
+ }, [createVNode("span", {
+ "class": ns.e("text")
+ }, [cell == null ? void 0 : cell.text])]);
+ };
+ }
+});
+const _hoisted_1$5 = ["aria-label"];
+const _hoisted_2$5 = {
+ key: 0,
+ scope: "col"
+};
+const _hoisted_3$5 = ["aria-label"];
+const _hoisted_4$3 = ["aria-current", "aria-selected", "tabindex"];
+const _sfc_main$6 = /* @__PURE__ */ defineComponent({
+ __name: "basic-date-table",
+ props: basicDateTableProps,
+ emits: basicDateTableEmits,
+ setup(__props, { expose, emit }) {
+ const props = __props;
+ const {
+ WEEKS,
+ rows,
+ tbodyRef,
+ currentCellRef,
+ focus,
+ isCurrent,
+ isWeekActive,
+ isSelectedCell,
+ handlePickDate,
+ handleMouseUp,
+ handleMouseDown,
+ handleMouseMove,
+ handleFocus
+ } = useBasicDateTable(props, emit);
+ const { tableLabel, tableKls, weekLabel, getCellClasses, getRowKls, t } = useBasicDateTableDOM(props, {
+ isCurrent,
+ isWeekActive
+ });
+ expose({
+ focus
+ });
+ return (_ctx, _cache) => {
+ return openBlock(), createElementBlock("table", {
+ "aria-label": unref(tableLabel),
+ class: normalizeClass(unref(tableKls)),
+ cellspacing: "0",
+ cellpadding: "0",
+ role: "grid",
+ onClick: _cache[1] || (_cache[1] = (...args) => unref(handlePickDate) && unref(handlePickDate)(...args)),
+ onMousemove: _cache[2] || (_cache[2] = (...args) => unref(handleMouseMove) && unref(handleMouseMove)(...args)),
+ onMousedown: _cache[3] || (_cache[3] = withModifiers((...args) => unref(handleMouseDown) && unref(handleMouseDown)(...args), ["prevent"])),
+ onMouseup: _cache[4] || (_cache[4] = (...args) => unref(handleMouseUp) && unref(handleMouseUp)(...args))
+ }, [
+ createElementVNode("tbody", {
+ ref_key: "tbodyRef",
+ ref: tbodyRef
+ }, [
+ createElementVNode("tr", null, [
+ _ctx.showWeekNumber ? (openBlock(), createElementBlock("th", _hoisted_2$5, toDisplayString(unref(weekLabel)), 1)) : createCommentVNode("v-if", true),
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(WEEKS), (week, key) => {
+ return openBlock(), createElementBlock("th", {
+ key,
+ "aria-label": unref(t)("el.datepicker.weeksFull." + week),
+ scope: "col"
+ }, toDisplayString(unref(t)("el.datepicker.weeks." + week)), 9, _hoisted_3$5);
+ }), 128))
+ ]),
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(rows), (row, rowKey) => {
+ return openBlock(), createElementBlock("tr", {
+ key: rowKey,
+ class: normalizeClass(unref(getRowKls)(row[1]))
+ }, [
+ (openBlock(true), createElementBlock(Fragment, null, renderList(row, (cell, columnKey) => {
+ return openBlock(), createElementBlock("td", {
+ key: `${rowKey}.${columnKey}`,
+ ref_for: true,
+ ref: (el) => unref(isSelectedCell)(cell) && (currentCellRef.value = el),
+ class: normalizeClass(unref(getCellClasses)(cell)),
+ "aria-current": cell.isCurrent ? "date" : void 0,
+ "aria-selected": cell.isCurrent,
+ tabindex: unref(isSelectedCell)(cell) ? 0 : -1,
+ onFocus: _cache[0] || (_cache[0] = (...args) => unref(handleFocus) && unref(handleFocus)(...args))
+ }, [
+ createVNode(unref(ElDatePickerCell), { cell }, null, 8, ["cell"])
+ ], 42, _hoisted_4$3);
+ }), 128))
+ ], 2);
+ }), 128))
+ ], 512)
+ ], 42, _hoisted_1$5);
+ };
+ }
+});
+var DateTable = /* @__PURE__ */ _export_sfc$1(_sfc_main$6, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/date-picker/src/date-picker-com/basic-date-table.vue"]]);
+const basicMonthTableProps = buildProps({
+ ...datePickerSharedProps,
+ selectionMode: selectionModeWithDefault("month")
+});
+const _hoisted_1$4 = ["aria-label"];
+const _hoisted_2$4 = ["aria-selected", "aria-label", "tabindex", "onKeydown"];
+const _hoisted_3$4 = { class: "cell" };
+const _sfc_main$5 = /* @__PURE__ */ defineComponent({
+ __name: "basic-month-table",
+ props: basicMonthTableProps,
+ emits: ["changerange", "pick", "select"],
+ setup(__props, { expose, emit }) {
+ const props = __props;
+ const datesInMonth = (year, month, lang2) => {
+ const firstDay = dayjs().locale(lang2).startOf("month").month(month).year(year);
+ const numOfDays = firstDay.daysInMonth();
+ return rangeArr(numOfDays).map((n) => firstDay.add(n, "day").toDate());
+ };
+ const ns = useNamespace("month-table");
+ const { t, lang } = useLocale();
+ const tbodyRef = ref();
+ const currentCellRef = ref();
+ const months = ref(props.date.locale("en").localeData().monthsShort().map((_) => _.toLowerCase()));
+ const tableRows = ref([
+ [],
+ [],
+ []
+ ]);
+ const lastRow = ref();
+ const lastColumn = ref();
+ const rows = computed(() => {
+ var _a, _b;
+ const rows2 = tableRows.value;
+ const now = dayjs().locale(lang.value).startOf("month");
+ for (let i = 0; i < 3; i++) {
+ const row = rows2[i];
+ for (let j = 0; j < 4; j++) {
+ const cell = row[j] || (row[j] = {
+ row: i,
+ column: j,
+ type: "normal",
+ inRange: false,
+ start: false,
+ end: false,
+ text: -1,
+ disabled: false
+ });
+ cell.type = "normal";
+ const index2 = i * 4 + j;
+ const calTime = props.date.startOf("year").month(index2);
+ const calEndDate = props.rangeState.endDate || props.maxDate || props.rangeState.selecting && props.minDate || null;
+ cell.inRange = !!(props.minDate && calTime.isSameOrAfter(props.minDate, "month") && calEndDate && calTime.isSameOrBefore(calEndDate, "month")) || !!(props.minDate && calTime.isSameOrBefore(props.minDate, "month") && calEndDate && calTime.isSameOrAfter(calEndDate, "month"));
+ if ((_a = props.minDate) == null ? void 0 : _a.isSameOrAfter(calEndDate)) {
+ cell.start = !!(calEndDate && calTime.isSame(calEndDate, "month"));
+ cell.end = props.minDate && calTime.isSame(props.minDate, "month");
+ } else {
+ cell.start = !!(props.minDate && calTime.isSame(props.minDate, "month"));
+ cell.end = !!(calEndDate && calTime.isSame(calEndDate, "month"));
+ }
+ const isToday = now.isSame(calTime);
+ if (isToday) {
+ cell.type = "today";
+ }
+ cell.text = index2;
+ cell.disabled = ((_b = props.disabledDate) == null ? void 0 : _b.call(props, calTime.toDate())) || false;
+ }
+ }
+ return rows2;
+ });
+ const focus = () => {
+ var _a;
+ (_a = currentCellRef.value) == null ? void 0 : _a.focus();
+ };
+ const getCellStyle = (cell) => {
+ const style = {};
+ const year = props.date.year();
+ const today = /* @__PURE__ */ new Date();
+ const month = cell.text;
+ style.disabled = props.disabledDate ? datesInMonth(year, month, lang.value).every(props.disabledDate) : false;
+ style.current = castArray(props.parsedValue).findIndex((date2) => dayjs.isDayjs(date2) && date2.year() === year && date2.month() === month) >= 0;
+ style.today = today.getFullYear() === year && today.getMonth() === month;
+ if (cell.inRange) {
+ style["in-range"] = true;
+ if (cell.start) {
+ style["start-date"] = true;
+ }
+ if (cell.end) {
+ style["end-date"] = true;
+ }
+ }
+ return style;
+ };
+ const isSelectedCell = (cell) => {
+ const year = props.date.year();
+ const month = cell.text;
+ return castArray(props.date).findIndex((date2) => date2.year() === year && date2.month() === month) >= 0;
+ };
+ const handleMouseMove = (event) => {
+ var _a;
+ if (!props.rangeState.selecting)
+ return;
+ let target = event.target;
+ if (target.tagName === "A") {
+ target = (_a = target.parentNode) == null ? void 0 : _a.parentNode;
+ }
+ if (target.tagName === "DIV") {
+ target = target.parentNode;
+ }
+ if (target.tagName !== "TD")
+ return;
+ const row = target.parentNode.rowIndex;
+ const column = target.cellIndex;
+ if (rows.value[row][column].disabled)
+ return;
+ if (row !== lastRow.value || column !== lastColumn.value) {
+ lastRow.value = row;
+ lastColumn.value = column;
+ emit("changerange", {
+ selecting: true,
+ endDate: props.date.startOf("year").month(row * 4 + column)
+ });
+ }
+ };
+ const handleMonthTableClick = (event) => {
+ var _a;
+ const target = (_a = event.target) == null ? void 0 : _a.closest("td");
+ if ((target == null ? void 0 : target.tagName) !== "TD")
+ return;
+ if (hasClass(target, "disabled"))
+ return;
+ const column = target.cellIndex;
+ const row = target.parentNode.rowIndex;
+ const month = row * 4 + column;
+ const newDate = props.date.startOf("year").month(month);
+ if (props.selectionMode === "range") {
+ if (!props.rangeState.selecting) {
+ emit("pick", { minDate: newDate, maxDate: null });
+ emit("select", true);
+ } else {
+ if (props.minDate && newDate >= props.minDate) {
+ emit("pick", { minDate: props.minDate, maxDate: newDate });
+ } else {
+ emit("pick", { minDate: newDate, maxDate: props.minDate });
+ }
+ emit("select", false);
+ }
+ } else {
+ emit("pick", month);
+ }
+ };
+ watch(() => props.date, async () => {
+ var _a, _b;
+ if ((_a = tbodyRef.value) == null ? void 0 : _a.contains(document.activeElement)) {
+ await nextTick();
+ (_b = currentCellRef.value) == null ? void 0 : _b.focus();
+ }
+ });
+ expose({
+ focus
+ });
+ return (_ctx, _cache) => {
+ return openBlock(), createElementBlock("table", {
+ role: "grid",
+ "aria-label": unref(t)("el.datepicker.monthTablePrompt"),
+ class: normalizeClass(unref(ns).b()),
+ onClick: handleMonthTableClick,
+ onMousemove: handleMouseMove
+ }, [
+ createElementVNode("tbody", {
+ ref_key: "tbodyRef",
+ ref: tbodyRef
+ }, [
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(rows), (row, key) => {
+ return openBlock(), createElementBlock("tr", { key }, [
+ (openBlock(true), createElementBlock(Fragment, null, renderList(row, (cell, key_) => {
+ return openBlock(), createElementBlock("td", {
+ key: key_,
+ ref_for: true,
+ ref: (el) => isSelectedCell(cell) && (currentCellRef.value = el),
+ class: normalizeClass(getCellStyle(cell)),
+ "aria-selected": `${isSelectedCell(cell)}`,
+ "aria-label": unref(t)(`el.datepicker.month${+cell.text + 1}`),
+ tabindex: isSelectedCell(cell) ? 0 : -1,
+ onKeydown: [
+ withKeys(withModifiers(handleMonthTableClick, ["prevent", "stop"]), ["space"]),
+ withKeys(withModifiers(handleMonthTableClick, ["prevent", "stop"]), ["enter"])
+ ]
+ }, [
+ createElementVNode("div", null, [
+ createElementVNode("span", _hoisted_3$4, toDisplayString(unref(t)("el.datepicker.months." + months.value[cell.text])), 1)
+ ])
+ ], 42, _hoisted_2$4);
+ }), 128))
+ ]);
+ }), 128))
+ ], 512)
+ ], 42, _hoisted_1$4);
+ };
+ }
+});
+var MonthTable = /* @__PURE__ */ _export_sfc$1(_sfc_main$5, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/date-picker/src/date-picker-com/basic-month-table.vue"]]);
+const { date, disabledDate, parsedValue } = datePickerSharedProps;
+const basicYearTableProps = buildProps({
+ date,
+ disabledDate,
+ parsedValue
+});
+const _hoisted_1$3 = ["aria-label"];
+const _hoisted_2$3 = ["aria-selected", "tabindex", "onKeydown"];
+const _hoisted_3$3 = { class: "cell" };
+const _hoisted_4$2 = { key: 1 };
+const _sfc_main$4 = /* @__PURE__ */ defineComponent({
+ __name: "basic-year-table",
+ props: basicYearTableProps,
+ emits: ["pick"],
+ setup(__props, { expose, emit }) {
+ const props = __props;
+ const datesInYear = (year, lang2) => {
+ const firstDay = dayjs(String(year)).locale(lang2).startOf("year");
+ const lastDay = firstDay.endOf("year");
+ const numOfDays = lastDay.dayOfYear();
+ return rangeArr(numOfDays).map((n) => firstDay.add(n, "day").toDate());
+ };
+ const ns = useNamespace("year-table");
+ const { t, lang } = useLocale();
+ const tbodyRef = ref();
+ const currentCellRef = ref();
+ const startYear = computed(() => {
+ return Math.floor(props.date.year() / 10) * 10;
+ });
+ const focus = () => {
+ var _a;
+ (_a = currentCellRef.value) == null ? void 0 : _a.focus();
+ };
+ const getCellKls = (year) => {
+ const kls = {};
+ const today = dayjs().locale(lang.value);
+ kls.disabled = props.disabledDate ? datesInYear(year, lang.value).every(props.disabledDate) : false;
+ kls.current = castArray(props.parsedValue).findIndex((d) => d.year() === year) >= 0;
+ kls.today = today.year() === year;
+ return kls;
+ };
+ const isSelectedCell = (year) => {
+ return year === startYear.value && props.date.year() < startYear.value && props.date.year() > startYear.value + 9 || castArray(props.date).findIndex((date2) => date2.year() === year) >= 0;
+ };
+ const handleYearTableClick = (event) => {
+ const clickTarget = event.target;
+ const target = clickTarget.closest("td");
+ if (target && target.textContent) {
+ if (hasClass(target, "disabled"))
+ return;
+ const year = target.textContent || target.innerText;
+ emit("pick", Number(year));
+ }
+ };
+ watch(() => props.date, async () => {
+ var _a, _b;
+ if ((_a = tbodyRef.value) == null ? void 0 : _a.contains(document.activeElement)) {
+ await nextTick();
+ (_b = currentCellRef.value) == null ? void 0 : _b.focus();
+ }
+ });
+ expose({
+ focus
+ });
+ return (_ctx, _cache) => {
+ return openBlock(), createElementBlock("table", {
+ role: "grid",
+ "aria-label": unref(t)("el.datepicker.yearTablePrompt"),
+ class: normalizeClass(unref(ns).b()),
+ onClick: handleYearTableClick
+ }, [
+ createElementVNode("tbody", {
+ ref_key: "tbodyRef",
+ ref: tbodyRef
+ }, [
+ (openBlock(), createElementBlock(Fragment, null, renderList(3, (_, i) => {
+ return createElementVNode("tr", { key: i }, [
+ (openBlock(), createElementBlock(Fragment, null, renderList(4, (__, j) => {
+ return openBlock(), createElementBlock(Fragment, {
+ key: i + "_" + j
+ }, [
+ i * 4 + j < 10 ? (openBlock(), createElementBlock("td", {
+ key: 0,
+ ref_for: true,
+ ref: (el) => isSelectedCell(unref(startYear) + i * 4 + j) && (currentCellRef.value = el),
+ class: normalizeClass(["available", getCellKls(unref(startYear) + i * 4 + j)]),
+ "aria-selected": `${isSelectedCell(unref(startYear) + i * 4 + j)}`,
+ tabindex: isSelectedCell(unref(startYear) + i * 4 + j) ? 0 : -1,
+ onKeydown: [
+ withKeys(withModifiers(handleYearTableClick, ["prevent", "stop"]), ["space"]),
+ withKeys(withModifiers(handleYearTableClick, ["prevent", "stop"]), ["enter"])
+ ]
+ }, [
+ createElementVNode("span", _hoisted_3$3, toDisplayString(unref(startYear) + i * 4 + j), 1)
+ ], 42, _hoisted_2$3)) : (openBlock(), createElementBlock("td", _hoisted_4$2))
+ ], 64);
+ }), 64))
+ ]);
+ }), 64))
+ ], 512)
+ ], 10, _hoisted_1$3);
+ };
+ }
+});
+var YearTable = /* @__PURE__ */ _export_sfc$1(_sfc_main$4, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/date-picker/src/date-picker-com/basic-year-table.vue"]]);
+const _hoisted_1$2 = ["onClick"];
+const _hoisted_2$2 = ["aria-label"];
+const _hoisted_3$2 = ["aria-label"];
+const _hoisted_4$1 = ["aria-label"];
+const _hoisted_5$1 = ["aria-label"];
+const _sfc_main$3 = /* @__PURE__ */ defineComponent({
+ __name: "panel-date-pick",
+ props: panelDatePickProps,
+ emits: ["pick", "set-picker-option", "panel-change"],
+ setup(__props, { emit: contextEmit }) {
+ const props = __props;
+ const timeWithinRange = (_, __, ___) => true;
+ const ppNs = useNamespace("picker-panel");
+ const dpNs = useNamespace("date-picker");
+ const attrs = useAttrs$1();
+ const slots = useSlots();
+ const { t, lang } = useLocale();
+ const pickerBase = inject("EP_PICKER_BASE");
+ const popper = inject(TOOLTIP_INJECTION_KEY);
+ const { shortcuts, disabledDate: disabledDate2, cellClassName, defaultTime } = pickerBase.props;
+ const defaultValue = toRef(pickerBase.props, "defaultValue");
+ const currentViewRef = ref();
+ const innerDate = ref(dayjs().locale(lang.value));
+ const isChangeToNow = ref(false);
+ let isShortcut = false;
+ const defaultTimeD = computed(() => {
+ return dayjs(defaultTime).locale(lang.value);
+ });
+ const month = computed(() => {
+ return innerDate.value.month();
+ });
+ const year = computed(() => {
+ return innerDate.value.year();
+ });
+ const selectableRange = ref([]);
+ const userInputDate = ref(null);
+ const userInputTime = ref(null);
+ const checkDateWithinRange = (date2) => {
+ return selectableRange.value.length > 0 ? timeWithinRange(date2, selectableRange.value, props.format || "HH:mm:ss") : true;
+ };
+ const formatEmit = (emitDayjs) => {
+ if (defaultTime && !visibleTime.value && !isChangeToNow.value && !isShortcut) {
+ return defaultTimeD.value.year(emitDayjs.year()).month(emitDayjs.month()).date(emitDayjs.date());
+ }
+ if (showTime.value)
+ return emitDayjs.millisecond(0);
+ return emitDayjs.startOf("day");
+ };
+ const emit = (value, ...args) => {
+ if (!value) {
+ contextEmit("pick", value, ...args);
+ } else if (isArray(value)) {
+ const dates = value.map(formatEmit);
+ contextEmit("pick", dates, ...args);
+ } else {
+ contextEmit("pick", formatEmit(value), ...args);
+ }
+ userInputDate.value = null;
+ userInputTime.value = null;
+ isChangeToNow.value = false;
+ isShortcut = false;
+ };
+ const handleDatePick = (value, keepOpen) => {
+ if (selectionMode.value === "date") {
+ value = value;
+ let newDate = props.parsedValue ? props.parsedValue.year(value.year()).month(value.month()).date(value.date()) : value;
+ if (!checkDateWithinRange(newDate)) {
+ newDate = selectableRange.value[0][0].year(value.year()).month(value.month()).date(value.date());
+ }
+ innerDate.value = newDate;
+ emit(newDate, showTime.value || keepOpen);
+ } else if (selectionMode.value === "week") {
+ emit(value.date);
+ } else if (selectionMode.value === "dates") {
+ emit(value, true);
+ }
+ };
+ const moveByMonth = (forward) => {
+ const action = forward ? "add" : "subtract";
+ innerDate.value = innerDate.value[action](1, "month");
+ handlePanelChange("month");
+ };
+ const moveByYear = (forward) => {
+ const currentDate = innerDate.value;
+ const action = forward ? "add" : "subtract";
+ innerDate.value = currentView.value === "year" ? currentDate[action](10, "year") : currentDate[action](1, "year");
+ handlePanelChange("year");
+ };
+ const currentView = ref("date");
+ const yearLabel = computed(() => {
+ const yearTranslation = t("el.datepicker.year");
+ if (currentView.value === "year") {
+ const startYear = Math.floor(year.value / 10) * 10;
+ if (yearTranslation) {
+ return `${startYear} ${yearTranslation} - ${startYear + 9} ${yearTranslation}`;
+ }
+ return `${startYear} - ${startYear + 9}`;
+ }
+ return `${year.value} ${yearTranslation}`;
+ });
+ const handleShortcutClick = (shortcut) => {
+ const shortcutValue = isFunction(shortcut.value) ? shortcut.value() : shortcut.value;
+ if (shortcutValue) {
+ isShortcut = true;
+ emit(dayjs(shortcutValue).locale(lang.value));
+ return;
+ }
+ if (shortcut.onClick) {
+ shortcut.onClick({
+ attrs,
+ slots,
+ emit: contextEmit
+ });
+ }
+ };
+ const selectionMode = computed(() => {
+ const { type } = props;
+ if (["week", "month", "year", "dates"].includes(type))
+ return type;
+ return "date";
+ });
+ const keyboardMode = computed(() => {
+ return selectionMode.value === "date" ? currentView.value : selectionMode.value;
+ });
+ const hasShortcuts = computed(() => !!shortcuts.length);
+ const handleMonthPick = async (month2) => {
+ innerDate.value = innerDate.value.startOf("month").month(month2);
+ if (selectionMode.value === "month") {
+ emit(innerDate.value, false);
+ } else {
+ currentView.value = "date";
+ if (["month", "year", "date", "week"].includes(selectionMode.value)) {
+ emit(innerDate.value, true);
+ await nextTick();
+ handleFocusPicker();
+ }
+ }
+ handlePanelChange("month");
+ };
+ const handleYearPick = async (year2) => {
+ if (selectionMode.value === "year") {
+ innerDate.value = innerDate.value.startOf("year").year(year2);
+ emit(innerDate.value, false);
+ } else {
+ innerDate.value = innerDate.value.year(year2);
+ currentView.value = "month";
+ if (["month", "year", "date", "week"].includes(selectionMode.value)) {
+ emit(innerDate.value, true);
+ await nextTick();
+ handleFocusPicker();
+ }
+ }
+ handlePanelChange("year");
+ };
+ const showPicker = async (view) => {
+ currentView.value = view;
+ await nextTick();
+ handleFocusPicker();
+ };
+ const showTime = computed(() => props.type === "datetime" || props.type === "datetimerange");
+ const footerVisible = computed(() => {
+ return showTime.value || selectionMode.value === "dates";
+ });
+ const disabledConfirm = computed(() => {
+ if (!disabledDate2)
+ return false;
+ if (!props.parsedValue)
+ return true;
+ if (isArray(props.parsedValue)) {
+ return disabledDate2(props.parsedValue[0].toDate());
+ }
+ return disabledDate2(props.parsedValue.toDate());
+ });
+ const onConfirm = () => {
+ if (selectionMode.value === "dates") {
+ emit(props.parsedValue);
+ } else {
+ let result = props.parsedValue;
+ if (!result) {
+ const defaultTimeD2 = dayjs(defaultTime).locale(lang.value);
+ const defaultValueD = getDefaultValue2();
+ result = defaultTimeD2.year(defaultValueD.year()).month(defaultValueD.month()).date(defaultValueD.date());
+ }
+ innerDate.value = result;
+ emit(result);
+ }
+ };
+ const disabledNow = computed(() => {
+ if (!disabledDate2)
+ return false;
+ return disabledDate2(dayjs().locale(lang.value).toDate());
+ });
+ const changeToNow = () => {
+ const now = dayjs().locale(lang.value);
+ const nowDate = now.toDate();
+ isChangeToNow.value = true;
+ if ((!disabledDate2 || !disabledDate2(nowDate)) && checkDateWithinRange(nowDate)) {
+ innerDate.value = dayjs().locale(lang.value);
+ emit(innerDate.value);
+ }
+ };
+ const timeFormat = computed(() => {
+ return props.timeFormat || extractTimeFormat(props.format);
+ });
+ const dateFormat = computed(() => {
+ return props.dateFormat || extractDateFormat(props.format);
+ });
+ const visibleTime = computed(() => {
+ if (userInputTime.value)
+ return userInputTime.value;
+ if (!props.parsedValue && !defaultValue.value)
+ return;
+ return (props.parsedValue || innerDate.value).format(timeFormat.value);
+ });
+ const visibleDate = computed(() => {
+ if (userInputDate.value)
+ return userInputDate.value;
+ if (!props.parsedValue && !defaultValue.value)
+ return;
+ return (props.parsedValue || innerDate.value).format(dateFormat.value);
+ });
+ const timePickerVisible = ref(false);
+ const onTimePickerInputFocus = () => {
+ timePickerVisible.value = true;
+ };
+ const handleTimePickClose = () => {
+ timePickerVisible.value = false;
+ };
+ const getUnits = (date2) => {
+ return {
+ hour: date2.hour(),
+ minute: date2.minute(),
+ second: date2.second(),
+ year: date2.year(),
+ month: date2.month(),
+ date: date2.date()
+ };
+ };
+ const handleTimePick = (value, visible, first) => {
+ const { hour, minute, second } = getUnits(value);
+ const newDate = props.parsedValue ? props.parsedValue.hour(hour).minute(minute).second(second) : value;
+ innerDate.value = newDate;
+ emit(innerDate.value, true);
+ if (!first) {
+ timePickerVisible.value = visible;
+ }
+ };
+ const handleVisibleTimeChange = (value) => {
+ const newDate = dayjs(value, timeFormat.value).locale(lang.value);
+ if (newDate.isValid() && checkDateWithinRange(newDate)) {
+ const { year: year2, month: month2, date: date2 } = getUnits(innerDate.value);
+ innerDate.value = newDate.year(year2).month(month2).date(date2);
+ userInputTime.value = null;
+ timePickerVisible.value = false;
+ emit(innerDate.value, true);
+ }
+ };
+ const handleVisibleDateChange = (value) => {
+ const newDate = dayjs(value, dateFormat.value).locale(lang.value);
+ if (newDate.isValid()) {
+ if (disabledDate2 && disabledDate2(newDate.toDate())) {
+ return;
+ }
+ const { hour, minute, second } = getUnits(innerDate.value);
+ innerDate.value = newDate.hour(hour).minute(minute).second(second);
+ userInputDate.value = null;
+ emit(innerDate.value, true);
+ }
+ };
+ const isValidValue = (date2) => {
+ return dayjs.isDayjs(date2) && date2.isValid() && (disabledDate2 ? !disabledDate2(date2.toDate()) : true);
+ };
+ const formatToString = (value) => {
+ if (selectionMode.value === "dates") {
+ return value.map((_) => _.format(props.format));
+ }
+ return value.format(props.format);
+ };
+ const parseUserInput = (value) => {
+ return dayjs(value, props.format).locale(lang.value);
+ };
+ const getDefaultValue2 = () => {
+ const parseDate2 = dayjs(defaultValue.value).locale(lang.value);
+ if (!defaultValue.value) {
+ const defaultTimeDValue = defaultTimeD.value;
+ return dayjs().hour(defaultTimeDValue.hour()).minute(defaultTimeDValue.minute()).second(defaultTimeDValue.second()).locale(lang.value);
+ }
+ return parseDate2;
+ };
+ const handleFocusPicker = async () => {
+ var _a;
+ if (["week", "month", "year", "date"].includes(selectionMode.value)) {
+ (_a = currentViewRef.value) == null ? void 0 : _a.focus();
+ if (selectionMode.value === "week") {
+ handleKeyControl(EVENT_CODE.down);
+ }
+ }
+ };
+ const handleKeydownTable = (event) => {
+ const { code } = event;
+ const validCode = [
+ EVENT_CODE.up,
+ EVENT_CODE.down,
+ EVENT_CODE.left,
+ EVENT_CODE.right,
+ EVENT_CODE.home,
+ EVENT_CODE.end,
+ EVENT_CODE.pageUp,
+ EVENT_CODE.pageDown
+ ];
+ if (validCode.includes(code)) {
+ handleKeyControl(code);
+ event.stopPropagation();
+ event.preventDefault();
+ }
+ if ([EVENT_CODE.enter, EVENT_CODE.space, EVENT_CODE.numpadEnter].includes(code) && userInputDate.value === null && userInputTime.value === null) {
+ event.preventDefault();
+ emit(innerDate.value, false);
+ }
+ };
+ const handleKeyControl = (code) => {
+ var _a;
+ const { up, down, left, right, home, end, pageUp, pageDown } = EVENT_CODE;
+ const mapping = {
+ year: {
+ [up]: -4,
+ [down]: 4,
+ [left]: -1,
+ [right]: 1,
+ offset: (date2, step) => date2.setFullYear(date2.getFullYear() + step)
+ },
+ month: {
+ [up]: -4,
+ [down]: 4,
+ [left]: -1,
+ [right]: 1,
+ offset: (date2, step) => date2.setMonth(date2.getMonth() + step)
+ },
+ week: {
+ [up]: -1,
+ [down]: 1,
+ [left]: -1,
+ [right]: 1,
+ offset: (date2, step) => date2.setDate(date2.getDate() + step * 7)
+ },
+ date: {
+ [up]: -7,
+ [down]: 7,
+ [left]: -1,
+ [right]: 1,
+ [home]: (date2) => -date2.getDay(),
+ [end]: (date2) => -date2.getDay() + 6,
+ [pageUp]: (date2) => -new Date(date2.getFullYear(), date2.getMonth(), 0).getDate(),
+ [pageDown]: (date2) => new Date(date2.getFullYear(), date2.getMonth() + 1, 0).getDate(),
+ offset: (date2, step) => date2.setDate(date2.getDate() + step)
+ }
+ };
+ const newDate = innerDate.value.toDate();
+ while (Math.abs(innerDate.value.diff(newDate, "year", true)) < 1) {
+ const map = mapping[keyboardMode.value];
+ if (!map)
+ return;
+ map.offset(newDate, isFunction(map[code]) ? map[code](newDate) : (_a = map[code]) != null ? _a : 0);
+ if (disabledDate2 && disabledDate2(newDate)) {
+ break;
+ }
+ const result = dayjs(newDate).locale(lang.value);
+ innerDate.value = result;
+ contextEmit("pick", result, true);
+ break;
+ }
+ };
+ const handlePanelChange = (mode) => {
+ contextEmit("panel-change", innerDate.value.toDate(), mode, currentView.value);
+ };
+ watch(() => selectionMode.value, (val) => {
+ if (["month", "year"].includes(val)) {
+ currentView.value = val;
+ return;
+ }
+ currentView.value = "date";
+ }, { immediate: true });
+ watch(() => currentView.value, () => {
+ popper == null ? void 0 : popper.updatePopper();
+ });
+ watch(() => defaultValue.value, (val) => {
+ if (val) {
+ innerDate.value = getDefaultValue2();
+ }
+ }, { immediate: true });
+ watch(() => props.parsedValue, (val) => {
+ if (val) {
+ if (selectionMode.value === "dates")
+ return;
+ if (Array.isArray(val))
+ return;
+ innerDate.value = val;
+ } else {
+ innerDate.value = getDefaultValue2();
+ }
+ }, { immediate: true });
+ contextEmit("set-picker-option", ["isValidValue", isValidValue]);
+ contextEmit("set-picker-option", ["formatToString", formatToString]);
+ contextEmit("set-picker-option", ["parseUserInput", parseUserInput]);
+ contextEmit("set-picker-option", ["handleFocusPicker", handleFocusPicker]);
+ return (_ctx, _cache) => {
+ return openBlock(), createElementBlock("div", {
+ class: normalizeClass([
+ unref(ppNs).b(),
+ unref(dpNs).b(),
+ {
+ "has-sidebar": _ctx.$slots.sidebar || unref(hasShortcuts),
+ "has-time": unref(showTime)
+ }
+ ])
+ }, [
+ createElementVNode("div", {
+ class: normalizeClass(unref(ppNs).e("body-wrapper"))
+ }, [
+ renderSlot(_ctx.$slots, "sidebar", {
+ class: normalizeClass(unref(ppNs).e("sidebar"))
+ }),
+ unref(hasShortcuts) ? (openBlock(), createElementBlock("div", {
+ key: 0,
+ class: normalizeClass(unref(ppNs).e("sidebar"))
+ }, [
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(shortcuts), (shortcut, key) => {
+ return openBlock(), createElementBlock("button", {
+ key,
+ type: "button",
+ class: normalizeClass(unref(ppNs).e("shortcut")),
+ onClick: ($event) => handleShortcutClick(shortcut)
+ }, toDisplayString(shortcut.text), 11, _hoisted_1$2);
+ }), 128))
+ ], 2)) : createCommentVNode("v-if", true),
+ createElementVNode("div", {
+ class: normalizeClass(unref(ppNs).e("body"))
+ }, [
+ unref(showTime) ? (openBlock(), createElementBlock("div", {
+ key: 0,
+ class: normalizeClass(unref(dpNs).e("time-header"))
+ }, [
+ createElementVNode("span", {
+ class: normalizeClass(unref(dpNs).e("editor-wrap"))
+ }, [
+ createVNode(unref(ElInput), {
+ placeholder: unref(t)("el.datepicker.selectDate"),
+ "model-value": unref(visibleDate),
+ size: "small",
+ "validate-event": false,
+ onInput: _cache[0] || (_cache[0] = (val) => userInputDate.value = val),
+ onChange: handleVisibleDateChange
+ }, null, 8, ["placeholder", "model-value"])
+ ], 2),
+ withDirectives((openBlock(), createElementBlock("span", {
+ class: normalizeClass(unref(dpNs).e("editor-wrap"))
+ }, [
+ createVNode(unref(ElInput), {
+ placeholder: unref(t)("el.datepicker.selectTime"),
+ "model-value": unref(visibleTime),
+ size: "small",
+ "validate-event": false,
+ onFocus: onTimePickerInputFocus,
+ onInput: _cache[1] || (_cache[1] = (val) => userInputTime.value = val),
+ onChange: handleVisibleTimeChange
+ }, null, 8, ["placeholder", "model-value"]),
+ createVNode(unref(TimePickPanel), {
+ visible: timePickerVisible.value,
+ format: unref(timeFormat),
+ "parsed-value": innerDate.value,
+ onPick: handleTimePick
+ }, null, 8, ["visible", "format", "parsed-value"])
+ ], 2)), [
+ [unref(ClickOutside), handleTimePickClose]
+ ])
+ ], 2)) : createCommentVNode("v-if", true),
+ withDirectives(createElementVNode("div", {
+ class: normalizeClass([
+ unref(dpNs).e("header"),
+ (currentView.value === "year" || currentView.value === "month") && unref(dpNs).e("header--bordered")
+ ])
+ }, [
+ createElementVNode("span", {
+ class: normalizeClass(unref(dpNs).e("prev-btn"))
+ }, [
+ createElementVNode("button", {
+ type: "button",
+ "aria-label": unref(t)(`el.datepicker.prevYear`),
+ class: normalizeClass(["d-arrow-left", unref(ppNs).e("icon-btn")]),
+ onClick: _cache[2] || (_cache[2] = ($event) => moveByYear(false))
+ }, [
+ createVNode(unref(ElIcon), null, {
+ default: withCtx(() => [
+ createVNode(unref(d_arrow_left_default))
+ ]),
+ _: 1
+ })
+ ], 10, _hoisted_2$2),
+ withDirectives(createElementVNode("button", {
+ type: "button",
+ "aria-label": unref(t)(`el.datepicker.prevMonth`),
+ class: normalizeClass([unref(ppNs).e("icon-btn"), "arrow-left"]),
+ onClick: _cache[3] || (_cache[3] = ($event) => moveByMonth(false))
+ }, [
+ createVNode(unref(ElIcon), null, {
+ default: withCtx(() => [
+ createVNode(unref(arrow_left_default))
+ ]),
+ _: 1
+ })
+ ], 10, _hoisted_3$2), [
+ [vShow, currentView.value === "date"]
+ ])
+ ], 2),
+ createElementVNode("span", {
+ role: "button",
+ class: normalizeClass(unref(dpNs).e("header-label")),
+ "aria-live": "polite",
+ tabindex: "0",
+ onKeydown: _cache[4] || (_cache[4] = withKeys(($event) => showPicker("year"), ["enter"])),
+ onClick: _cache[5] || (_cache[5] = ($event) => showPicker("year"))
+ }, toDisplayString(unref(yearLabel)), 35),
+ withDirectives(createElementVNode("span", {
+ role: "button",
+ "aria-live": "polite",
+ tabindex: "0",
+ class: normalizeClass([
+ unref(dpNs).e("header-label"),
+ { active: currentView.value === "month" }
+ ]),
+ onKeydown: _cache[6] || (_cache[6] = withKeys(($event) => showPicker("month"), ["enter"])),
+ onClick: _cache[7] || (_cache[7] = ($event) => showPicker("month"))
+ }, toDisplayString(unref(t)(`el.datepicker.month${unref(month) + 1}`)), 35), [
+ [vShow, currentView.value === "date"]
+ ]),
+ createElementVNode("span", {
+ class: normalizeClass(unref(dpNs).e("next-btn"))
+ }, [
+ withDirectives(createElementVNode("button", {
+ type: "button",
+ "aria-label": unref(t)(`el.datepicker.nextMonth`),
+ class: normalizeClass([unref(ppNs).e("icon-btn"), "arrow-right"]),
+ onClick: _cache[8] || (_cache[8] = ($event) => moveByMonth(true))
+ }, [
+ createVNode(unref(ElIcon), null, {
+ default: withCtx(() => [
+ createVNode(unref(arrow_right_default))
+ ]),
+ _: 1
+ })
+ ], 10, _hoisted_4$1), [
+ [vShow, currentView.value === "date"]
+ ]),
+ createElementVNode("button", {
+ type: "button",
+ "aria-label": unref(t)(`el.datepicker.nextYear`),
+ class: normalizeClass([unref(ppNs).e("icon-btn"), "d-arrow-right"]),
+ onClick: _cache[9] || (_cache[9] = ($event) => moveByYear(true))
+ }, [
+ createVNode(unref(ElIcon), null, {
+ default: withCtx(() => [
+ createVNode(unref(d_arrow_right_default))
+ ]),
+ _: 1
+ })
+ ], 10, _hoisted_5$1)
+ ], 2)
+ ], 2), [
+ [vShow, currentView.value !== "time"]
+ ]),
+ createElementVNode("div", {
+ class: normalizeClass(unref(ppNs).e("content")),
+ onKeydown: handleKeydownTable
+ }, [
+ currentView.value === "date" ? (openBlock(), createBlock(DateTable, {
+ key: 0,
+ ref_key: "currentViewRef",
+ ref: currentViewRef,
+ "selection-mode": unref(selectionMode),
+ date: innerDate.value,
+ "parsed-value": _ctx.parsedValue,
+ "disabled-date": unref(disabledDate2),
+ "cell-class-name": unref(cellClassName),
+ onPick: handleDatePick
+ }, null, 8, ["selection-mode", "date", "parsed-value", "disabled-date", "cell-class-name"])) : createCommentVNode("v-if", true),
+ currentView.value === "year" ? (openBlock(), createBlock(YearTable, {
+ key: 1,
+ ref_key: "currentViewRef",
+ ref: currentViewRef,
+ date: innerDate.value,
+ "disabled-date": unref(disabledDate2),
+ "parsed-value": _ctx.parsedValue,
+ onPick: handleYearPick
+ }, null, 8, ["date", "disabled-date", "parsed-value"])) : createCommentVNode("v-if", true),
+ currentView.value === "month" ? (openBlock(), createBlock(MonthTable, {
+ key: 2,
+ ref_key: "currentViewRef",
+ ref: currentViewRef,
+ date: innerDate.value,
+ "parsed-value": _ctx.parsedValue,
+ "disabled-date": unref(disabledDate2),
+ onPick: handleMonthPick
+ }, null, 8, ["date", "parsed-value", "disabled-date"])) : createCommentVNode("v-if", true)
+ ], 34)
+ ], 2)
+ ], 2),
+ withDirectives(createElementVNode("div", {
+ class: normalizeClass(unref(ppNs).e("footer"))
+ }, [
+ withDirectives(createVNode(unref(ElButton), {
+ text: "",
+ size: "small",
+ class: normalizeClass(unref(ppNs).e("link-btn")),
+ disabled: unref(disabledNow),
+ onClick: changeToNow
+ }, {
+ default: withCtx(() => [
+ createTextVNode(toDisplayString(unref(t)("el.datepicker.now")), 1)
+ ]),
+ _: 1
+ }, 8, ["class", "disabled"]), [
+ [vShow, unref(selectionMode) !== "dates"]
+ ]),
+ createVNode(unref(ElButton), {
+ plain: "",
+ size: "small",
+ class: normalizeClass(unref(ppNs).e("link-btn")),
+ disabled: unref(disabledConfirm),
+ onClick: onConfirm
+ }, {
+ default: withCtx(() => [
+ createTextVNode(toDisplayString(unref(t)("el.datepicker.confirm")), 1)
+ ]),
+ _: 1
+ }, 8, ["class", "disabled"])
+ ], 2), [
+ [vShow, unref(footerVisible) && currentView.value === "date"]
+ ])
+ ], 2);
+ };
+ }
+});
+var DatePickPanel = /* @__PURE__ */ _export_sfc$1(_sfc_main$3, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/date-picker/src/date-picker-com/panel-date-pick.vue"]]);
+const panelDateRangeProps = buildProps({
+ ...panelSharedProps,
+ ...panelRangeSharedProps
+});
+const useShortcut = (lang) => {
+ const { emit } = getCurrentInstance();
+ const attrs = useAttrs$1();
+ const slots = useSlots();
+ const handleShortcutClick = (shortcut) => {
+ const shortcutValues = isFunction(shortcut.value) ? shortcut.value() : shortcut.value;
+ if (shortcutValues) {
+ emit("pick", [
+ dayjs(shortcutValues[0]).locale(lang.value),
+ dayjs(shortcutValues[1]).locale(lang.value)
+ ]);
+ return;
+ }
+ if (shortcut.onClick) {
+ shortcut.onClick({
+ attrs,
+ slots,
+ emit
+ });
+ }
+ };
+ return handleShortcutClick;
+};
+const useRangePicker = (props, {
+ defaultValue,
+ leftDate,
+ rightDate,
+ unit: unit2,
+ onParsedValueChanged
+}) => {
+ const { emit } = getCurrentInstance();
+ const { pickerNs } = inject(ROOT_PICKER_INJECTION_KEY);
+ const drpNs = useNamespace("date-range-picker");
+ const { t, lang } = useLocale();
+ const handleShortcutClick = useShortcut(lang);
+ const minDate = ref();
+ const maxDate = ref();
+ const rangeState = ref({
+ endDate: null,
+ selecting: false
+ });
+ const handleChangeRange = (val) => {
+ rangeState.value = val;
+ };
+ const handleRangeConfirm = (visible = false) => {
+ const _minDate = unref(minDate);
+ const _maxDate = unref(maxDate);
+ if (isValidRange([_minDate, _maxDate])) {
+ emit("pick", [_minDate, _maxDate], visible);
+ }
+ };
+ const onSelect = (selecting) => {
+ rangeState.value.selecting = selecting;
+ if (!selecting) {
+ rangeState.value.endDate = null;
+ }
+ };
+ const restoreDefault = () => {
+ const [start, end] = getDefaultValue(unref(defaultValue), {
+ lang: unref(lang),
+ unit: unit2,
+ unlinkPanels: props.unlinkPanels
+ });
+ minDate.value = void 0;
+ maxDate.value = void 0;
+ leftDate.value = start;
+ rightDate.value = end;
+ };
+ watch(defaultValue, (val) => {
+ if (val) {
+ restoreDefault();
+ }
+ }, { immediate: true });
+ watch(() => props.parsedValue, (parsedValue2) => {
+ if (isArray(parsedValue2) && parsedValue2.length === 2) {
+ const [start, end] = parsedValue2;
+ minDate.value = start;
+ leftDate.value = start;
+ maxDate.value = end;
+ onParsedValueChanged(unref(minDate), unref(maxDate));
+ } else {
+ restoreDefault();
+ }
+ }, { immediate: true });
+ return {
+ minDate,
+ maxDate,
+ rangeState,
+ lang,
+ ppNs: pickerNs,
+ drpNs,
+ handleChangeRange,
+ handleRangeConfirm,
+ handleShortcutClick,
+ onSelect,
+ t
+ };
+};
+const _hoisted_1$1 = ["onClick"];
+const _hoisted_2$1 = ["aria-label"];
+const _hoisted_3$1 = ["aria-label"];
+const _hoisted_4 = ["disabled", "aria-label"];
+const _hoisted_5 = ["disabled", "aria-label"];
+const _hoisted_6 = ["disabled", "aria-label"];
+const _hoisted_7 = ["disabled", "aria-label"];
+const _hoisted_8 = ["aria-label"];
+const _hoisted_9 = ["aria-label"];
+const unit$1 = "month";
+const _sfc_main$2 = /* @__PURE__ */ defineComponent({
+ __name: "panel-date-range",
+ props: panelDateRangeProps,
+ emits: [
+ "pick",
+ "set-picker-option",
+ "calendar-change",
+ "panel-change"
+ ],
+ setup(__props, { emit }) {
+ const props = __props;
+ const pickerBase = inject("EP_PICKER_BASE");
+ const { disabledDate: disabledDate2, cellClassName, format, defaultTime, clearable } = pickerBase.props;
+ const shortcuts = toRef(pickerBase.props, "shortcuts");
+ const defaultValue = toRef(pickerBase.props, "defaultValue");
+ const { lang } = useLocale();
+ const leftDate = ref(dayjs().locale(lang.value));
+ const rightDate = ref(dayjs().locale(lang.value).add(1, unit$1));
+ const {
+ minDate,
+ maxDate,
+ rangeState,
+ ppNs,
+ drpNs,
+ handleChangeRange,
+ handleRangeConfirm,
+ handleShortcutClick,
+ onSelect,
+ t
+ } = useRangePicker(props, {
+ defaultValue,
+ leftDate,
+ rightDate,
+ unit: unit$1,
+ onParsedValueChanged
+ });
+ const dateUserInput = ref({
+ min: null,
+ max: null
+ });
+ const timeUserInput = ref({
+ min: null,
+ max: null
+ });
+ const leftLabel = computed(() => {
+ return `${leftDate.value.year()} ${t("el.datepicker.year")} ${t(`el.datepicker.month${leftDate.value.month() + 1}`)}`;
+ });
+ const rightLabel = computed(() => {
+ return `${rightDate.value.year()} ${t("el.datepicker.year")} ${t(`el.datepicker.month${rightDate.value.month() + 1}`)}`;
+ });
+ const leftYear = computed(() => {
+ return leftDate.value.year();
+ });
+ const leftMonth = computed(() => {
+ return leftDate.value.month();
+ });
+ const rightYear = computed(() => {
+ return rightDate.value.year();
+ });
+ const rightMonth = computed(() => {
+ return rightDate.value.month();
+ });
+ const hasShortcuts = computed(() => !!shortcuts.value.length);
+ const minVisibleDate = computed(() => {
+ if (dateUserInput.value.min !== null)
+ return dateUserInput.value.min;
+ if (minDate.value)
+ return minDate.value.format(dateFormat.value);
+ return "";
+ });
+ const maxVisibleDate = computed(() => {
+ if (dateUserInput.value.max !== null)
+ return dateUserInput.value.max;
+ if (maxDate.value || minDate.value)
+ return (maxDate.value || minDate.value).format(dateFormat.value);
+ return "";
+ });
+ const minVisibleTime = computed(() => {
+ if (timeUserInput.value.min !== null)
+ return timeUserInput.value.min;
+ if (minDate.value)
+ return minDate.value.format(timeFormat.value);
+ return "";
+ });
+ const maxVisibleTime = computed(() => {
+ if (timeUserInput.value.max !== null)
+ return timeUserInput.value.max;
+ if (maxDate.value || minDate.value)
+ return (maxDate.value || minDate.value).format(timeFormat.value);
+ return "";
+ });
+ const timeFormat = computed(() => {
+ return props.timeFormat || extractTimeFormat(format);
+ });
+ const dateFormat = computed(() => {
+ return props.dateFormat || extractDateFormat(format);
+ });
+ const isValidValue = (date2) => {
+ return isValidRange(date2) && (disabledDate2 ? !disabledDate2(date2[0].toDate()) && !disabledDate2(date2[1].toDate()) : true);
+ };
+ const leftPrevYear = () => {
+ leftDate.value = leftDate.value.subtract(1, "year");
+ if (!props.unlinkPanels) {
+ rightDate.value = leftDate.value.add(1, "month");
+ }
+ handlePanelChange("year");
+ };
+ const leftPrevMonth = () => {
+ leftDate.value = leftDate.value.subtract(1, "month");
+ if (!props.unlinkPanels) {
+ rightDate.value = leftDate.value.add(1, "month");
+ }
+ handlePanelChange("month");
+ };
+ const rightNextYear = () => {
+ if (!props.unlinkPanels) {
+ leftDate.value = leftDate.value.add(1, "year");
+ rightDate.value = leftDate.value.add(1, "month");
+ } else {
+ rightDate.value = rightDate.value.add(1, "year");
+ }
+ handlePanelChange("year");
+ };
+ const rightNextMonth = () => {
+ if (!props.unlinkPanels) {
+ leftDate.value = leftDate.value.add(1, "month");
+ rightDate.value = leftDate.value.add(1, "month");
+ } else {
+ rightDate.value = rightDate.value.add(1, "month");
+ }
+ handlePanelChange("month");
+ };
+ const leftNextYear = () => {
+ leftDate.value = leftDate.value.add(1, "year");
+ handlePanelChange("year");
+ };
+ const leftNextMonth = () => {
+ leftDate.value = leftDate.value.add(1, "month");
+ handlePanelChange("month");
+ };
+ const rightPrevYear = () => {
+ rightDate.value = rightDate.value.subtract(1, "year");
+ handlePanelChange("year");
+ };
+ const rightPrevMonth = () => {
+ rightDate.value = rightDate.value.subtract(1, "month");
+ handlePanelChange("month");
+ };
+ const handlePanelChange = (mode) => {
+ emit("panel-change", [leftDate.value.toDate(), rightDate.value.toDate()], mode);
+ };
+ const enableMonthArrow = computed(() => {
+ const nextMonth = (leftMonth.value + 1) % 12;
+ const yearOffset = leftMonth.value + 1 >= 12 ? 1 : 0;
+ return props.unlinkPanels && new Date(leftYear.value + yearOffset, nextMonth) < new Date(rightYear.value, rightMonth.value);
+ });
+ const enableYearArrow = computed(() => {
+ return props.unlinkPanels && rightYear.value * 12 + rightMonth.value - (leftYear.value * 12 + leftMonth.value + 1) >= 12;
+ });
+ const btnDisabled = computed(() => {
+ return !(minDate.value && maxDate.value && !rangeState.value.selecting && isValidRange([minDate.value, maxDate.value]));
+ });
+ const showTime = computed(() => props.type === "datetime" || props.type === "datetimerange");
+ const formatEmit = (emitDayjs, index2) => {
+ if (!emitDayjs)
+ return;
+ if (defaultTime) {
+ const defaultTimeD = dayjs(defaultTime[index2] || defaultTime).locale(lang.value);
+ return defaultTimeD.year(emitDayjs.year()).month(emitDayjs.month()).date(emitDayjs.date());
+ }
+ return emitDayjs;
+ };
+ const handleRangePick = (val, close = true) => {
+ const min_ = val.minDate;
+ const max_ = val.maxDate;
+ const minDate_ = formatEmit(min_, 0);
+ const maxDate_ = formatEmit(max_, 1);
+ if (maxDate.value === maxDate_ && minDate.value === minDate_) {
+ return;
+ }
+ emit("calendar-change", [min_.toDate(), max_ && max_.toDate()]);
+ maxDate.value = maxDate_;
+ minDate.value = minDate_;
+ if (!close || showTime.value)
+ return;
+ handleRangeConfirm();
+ };
+ const minTimePickerVisible = ref(false);
+ const maxTimePickerVisible = ref(false);
+ const handleMinTimeClose = () => {
+ minTimePickerVisible.value = false;
+ };
+ const handleMaxTimeClose = () => {
+ maxTimePickerVisible.value = false;
+ };
+ const handleDateInput = (value, type) => {
+ dateUserInput.value[type] = value;
+ const parsedValueD = dayjs(value, dateFormat.value).locale(lang.value);
+ if (parsedValueD.isValid()) {
+ if (disabledDate2 && disabledDate2(parsedValueD.toDate())) {
+ return;
+ }
+ if (type === "min") {
+ leftDate.value = parsedValueD;
+ minDate.value = (minDate.value || leftDate.value).year(parsedValueD.year()).month(parsedValueD.month()).date(parsedValueD.date());
+ if (!props.unlinkPanels && (!maxDate.value || maxDate.value.isBefore(minDate.value))) {
+ rightDate.value = parsedValueD.add(1, "month");
+ maxDate.value = minDate.value.add(1, "month");
+ }
+ } else {
+ rightDate.value = parsedValueD;
+ maxDate.value = (maxDate.value || rightDate.value).year(parsedValueD.year()).month(parsedValueD.month()).date(parsedValueD.date());
+ if (!props.unlinkPanels && (!minDate.value || minDate.value.isAfter(maxDate.value))) {
+ leftDate.value = parsedValueD.subtract(1, "month");
+ minDate.value = maxDate.value.subtract(1, "month");
+ }
+ }
+ }
+ };
+ const handleDateChange = (_, type) => {
+ dateUserInput.value[type] = null;
+ };
+ const handleTimeInput = (value, type) => {
+ timeUserInput.value[type] = value;
+ const parsedValueD = dayjs(value, timeFormat.value).locale(lang.value);
+ if (parsedValueD.isValid()) {
+ if (type === "min") {
+ minTimePickerVisible.value = true;
+ minDate.value = (minDate.value || leftDate.value).hour(parsedValueD.hour()).minute(parsedValueD.minute()).second(parsedValueD.second());
+ if (!maxDate.value || maxDate.value.isBefore(minDate.value)) {
+ maxDate.value = minDate.value;
+ }
+ } else {
+ maxTimePickerVisible.value = true;
+ maxDate.value = (maxDate.value || rightDate.value).hour(parsedValueD.hour()).minute(parsedValueD.minute()).second(parsedValueD.second());
+ rightDate.value = maxDate.value;
+ if (maxDate.value && maxDate.value.isBefore(minDate.value)) {
+ minDate.value = maxDate.value;
+ }
+ }
+ }
+ };
+ const handleTimeChange = (value, type) => {
+ timeUserInput.value[type] = null;
+ if (type === "min") {
+ leftDate.value = minDate.value;
+ minTimePickerVisible.value = false;
+ } else {
+ rightDate.value = maxDate.value;
+ maxTimePickerVisible.value = false;
+ }
+ };
+ const handleMinTimePick = (value, visible, first) => {
+ if (timeUserInput.value.min)
+ return;
+ if (value) {
+ leftDate.value = value;
+ minDate.value = (minDate.value || leftDate.value).hour(value.hour()).minute(value.minute()).second(value.second());
+ }
+ if (!first) {
+ minTimePickerVisible.value = visible;
+ }
+ if (!maxDate.value || maxDate.value.isBefore(minDate.value)) {
+ maxDate.value = minDate.value;
+ rightDate.value = value;
+ }
+ };
+ const handleMaxTimePick = (value, visible, first) => {
+ if (timeUserInput.value.max)
+ return;
+ if (value) {
+ rightDate.value = value;
+ maxDate.value = (maxDate.value || rightDate.value).hour(value.hour()).minute(value.minute()).second(value.second());
+ }
+ if (!first) {
+ maxTimePickerVisible.value = visible;
+ }
+ if (maxDate.value && maxDate.value.isBefore(minDate.value)) {
+ minDate.value = maxDate.value;
+ }
+ };
+ const handleClear = () => {
+ leftDate.value = getDefaultValue(unref(defaultValue), {
+ lang: unref(lang),
+ unit: "month",
+ unlinkPanels: props.unlinkPanels
+ })[0];
+ rightDate.value = leftDate.value.add(1, "month");
+ emit("pick", null);
+ };
+ const formatToString = (value) => {
+ return isArray(value) ? value.map((_) => _.format(format)) : value.format(format);
+ };
+ const parseUserInput = (value) => {
+ return isArray(value) ? value.map((_) => dayjs(_, format).locale(lang.value)) : dayjs(value, format).locale(lang.value);
+ };
+ function onParsedValueChanged(minDate2, maxDate2) {
+ if (props.unlinkPanels && maxDate2) {
+ const minDateYear = (minDate2 == null ? void 0 : minDate2.year()) || 0;
+ const minDateMonth = (minDate2 == null ? void 0 : minDate2.month()) || 0;
+ const maxDateYear = maxDate2.year();
+ const maxDateMonth = maxDate2.month();
+ rightDate.value = minDateYear === maxDateYear && minDateMonth === maxDateMonth ? maxDate2.add(1, unit$1) : maxDate2;
+ } else {
+ rightDate.value = leftDate.value.add(1, unit$1);
+ if (maxDate2) {
+ rightDate.value = rightDate.value.hour(maxDate2.hour()).minute(maxDate2.minute()).second(maxDate2.second());
+ }
+ }
+ }
+ emit("set-picker-option", ["isValidValue", isValidValue]);
+ emit("set-picker-option", ["parseUserInput", parseUserInput]);
+ emit("set-picker-option", ["formatToString", formatToString]);
+ emit("set-picker-option", ["handleClear", handleClear]);
+ return (_ctx, _cache) => {
+ return openBlock(), createElementBlock("div", {
+ class: normalizeClass([
+ unref(ppNs).b(),
+ unref(drpNs).b(),
+ {
+ "has-sidebar": _ctx.$slots.sidebar || unref(hasShortcuts),
+ "has-time": unref(showTime)
+ }
+ ])
+ }, [
+ createElementVNode("div", {
+ class: normalizeClass(unref(ppNs).e("body-wrapper"))
+ }, [
+ renderSlot(_ctx.$slots, "sidebar", {
+ class: normalizeClass(unref(ppNs).e("sidebar"))
+ }),
+ unref(hasShortcuts) ? (openBlock(), createElementBlock("div", {
+ key: 0,
+ class: normalizeClass(unref(ppNs).e("sidebar"))
+ }, [
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(shortcuts), (shortcut, key) => {
+ return openBlock(), createElementBlock("button", {
+ key,
+ type: "button",
+ class: normalizeClass(unref(ppNs).e("shortcut")),
+ onClick: ($event) => unref(handleShortcutClick)(shortcut)
+ }, toDisplayString(shortcut.text), 11, _hoisted_1$1);
+ }), 128))
+ ], 2)) : createCommentVNode("v-if", true),
+ createElementVNode("div", {
+ class: normalizeClass(unref(ppNs).e("body"))
+ }, [
+ unref(showTime) ? (openBlock(), createElementBlock("div", {
+ key: 0,
+ class: normalizeClass(unref(drpNs).e("time-header"))
+ }, [
+ createElementVNode("span", {
+ class: normalizeClass(unref(drpNs).e("editors-wrap"))
+ }, [
+ createElementVNode("span", {
+ class: normalizeClass(unref(drpNs).e("time-picker-wrap"))
+ }, [
+ createVNode(unref(ElInput), {
+ size: "small",
+ disabled: unref(rangeState).selecting,
+ placeholder: unref(t)("el.datepicker.startDate"),
+ class: normalizeClass(unref(drpNs).e("editor")),
+ "model-value": unref(minVisibleDate),
+ "validate-event": false,
+ onInput: _cache[0] || (_cache[0] = (val) => handleDateInput(val, "min")),
+ onChange: _cache[1] || (_cache[1] = (val) => handleDateChange(val, "min"))
+ }, null, 8, ["disabled", "placeholder", "class", "model-value"])
+ ], 2),
+ withDirectives((openBlock(), createElementBlock("span", {
+ class: normalizeClass(unref(drpNs).e("time-picker-wrap"))
+ }, [
+ createVNode(unref(ElInput), {
+ size: "small",
+ class: normalizeClass(unref(drpNs).e("editor")),
+ disabled: unref(rangeState).selecting,
+ placeholder: unref(t)("el.datepicker.startTime"),
+ "model-value": unref(minVisibleTime),
+ "validate-event": false,
+ onFocus: _cache[2] || (_cache[2] = ($event) => minTimePickerVisible.value = true),
+ onInput: _cache[3] || (_cache[3] = (val) => handleTimeInput(val, "min")),
+ onChange: _cache[4] || (_cache[4] = (val) => handleTimeChange(val, "min"))
+ }, null, 8, ["class", "disabled", "placeholder", "model-value"]),
+ createVNode(unref(TimePickPanel), {
+ visible: minTimePickerVisible.value,
+ format: unref(timeFormat),
+ "datetime-role": "start",
+ "parsed-value": leftDate.value,
+ onPick: handleMinTimePick
+ }, null, 8, ["visible", "format", "parsed-value"])
+ ], 2)), [
+ [unref(ClickOutside), handleMinTimeClose]
+ ])
+ ], 2),
+ createElementVNode("span", null, [
+ createVNode(unref(ElIcon), null, {
+ default: withCtx(() => [
+ createVNode(unref(arrow_right_default))
+ ]),
+ _: 1
+ })
+ ]),
+ createElementVNode("span", {
+ class: normalizeClass([unref(drpNs).e("editors-wrap"), "is-right"])
+ }, [
+ createElementVNode("span", {
+ class: normalizeClass(unref(drpNs).e("time-picker-wrap"))
+ }, [
+ createVNode(unref(ElInput), {
+ size: "small",
+ class: normalizeClass(unref(drpNs).e("editor")),
+ disabled: unref(rangeState).selecting,
+ placeholder: unref(t)("el.datepicker.endDate"),
+ "model-value": unref(maxVisibleDate),
+ readonly: !unref(minDate),
+ "validate-event": false,
+ onInput: _cache[5] || (_cache[5] = (val) => handleDateInput(val, "max")),
+ onChange: _cache[6] || (_cache[6] = (val) => handleDateChange(val, "max"))
+ }, null, 8, ["class", "disabled", "placeholder", "model-value", "readonly"])
+ ], 2),
+ withDirectives((openBlock(), createElementBlock("span", {
+ class: normalizeClass(unref(drpNs).e("time-picker-wrap"))
+ }, [
+ createVNode(unref(ElInput), {
+ size: "small",
+ class: normalizeClass(unref(drpNs).e("editor")),
+ disabled: unref(rangeState).selecting,
+ placeholder: unref(t)("el.datepicker.endTime"),
+ "model-value": unref(maxVisibleTime),
+ readonly: !unref(minDate),
+ "validate-event": false,
+ onFocus: _cache[7] || (_cache[7] = ($event) => unref(minDate) && (maxTimePickerVisible.value = true)),
+ onInput: _cache[8] || (_cache[8] = (val) => handleTimeInput(val, "max")),
+ onChange: _cache[9] || (_cache[9] = (val) => handleTimeChange(val, "max"))
+ }, null, 8, ["class", "disabled", "placeholder", "model-value", "readonly"]),
+ createVNode(unref(TimePickPanel), {
+ "datetime-role": "end",
+ visible: maxTimePickerVisible.value,
+ format: unref(timeFormat),
+ "parsed-value": rightDate.value,
+ onPick: handleMaxTimePick
+ }, null, 8, ["visible", "format", "parsed-value"])
+ ], 2)), [
+ [unref(ClickOutside), handleMaxTimeClose]
+ ])
+ ], 2)
+ ], 2)) : createCommentVNode("v-if", true),
+ createElementVNode("div", {
+ class: normalizeClass([[unref(ppNs).e("content"), unref(drpNs).e("content")], "is-left"])
+ }, [
+ createElementVNode("div", {
+ class: normalizeClass(unref(drpNs).e("header"))
+ }, [
+ createElementVNode("button", {
+ type: "button",
+ class: normalizeClass([unref(ppNs).e("icon-btn"), "d-arrow-left"]),
+ "aria-label": unref(t)(`el.datepicker.prevYear`),
+ onClick: leftPrevYear
+ }, [
+ createVNode(unref(ElIcon), null, {
+ default: withCtx(() => [
+ createVNode(unref(d_arrow_left_default))
+ ]),
+ _: 1
+ })
+ ], 10, _hoisted_2$1),
+ createElementVNode("button", {
+ type: "button",
+ class: normalizeClass([unref(ppNs).e("icon-btn"), "arrow-left"]),
+ "aria-label": unref(t)(`el.datepicker.prevMonth`),
+ onClick: leftPrevMonth
+ }, [
+ createVNode(unref(ElIcon), null, {
+ default: withCtx(() => [
+ createVNode(unref(arrow_left_default))
+ ]),
+ _: 1
+ })
+ ], 10, _hoisted_3$1),
+ _ctx.unlinkPanels ? (openBlock(), createElementBlock("button", {
+ key: 0,
+ type: "button",
+ disabled: !unref(enableYearArrow),
+ class: normalizeClass([[unref(ppNs).e("icon-btn"), { "is-disabled": !unref(enableYearArrow) }], "d-arrow-right"]),
+ "aria-label": unref(t)(`el.datepicker.nextYear`),
+ onClick: leftNextYear
+ }, [
+ createVNode(unref(ElIcon), null, {
+ default: withCtx(() => [
+ createVNode(unref(d_arrow_right_default))
+ ]),
+ _: 1
+ })
+ ], 10, _hoisted_4)) : createCommentVNode("v-if", true),
+ _ctx.unlinkPanels ? (openBlock(), createElementBlock("button", {
+ key: 1,
+ type: "button",
+ disabled: !unref(enableMonthArrow),
+ class: normalizeClass([[
+ unref(ppNs).e("icon-btn"),
+ { "is-disabled": !unref(enableMonthArrow) }
+ ], "arrow-right"]),
+ "aria-label": unref(t)(`el.datepicker.nextMonth`),
+ onClick: leftNextMonth
+ }, [
+ createVNode(unref(ElIcon), null, {
+ default: withCtx(() => [
+ createVNode(unref(arrow_right_default))
+ ]),
+ _: 1
+ })
+ ], 10, _hoisted_5)) : createCommentVNode("v-if", true),
+ createElementVNode("div", null, toDisplayString(unref(leftLabel)), 1)
+ ], 2),
+ createVNode(DateTable, {
+ "selection-mode": "range",
+ date: leftDate.value,
+ "min-date": unref(minDate),
+ "max-date": unref(maxDate),
+ "range-state": unref(rangeState),
+ "disabled-date": unref(disabledDate2),
+ "cell-class-name": unref(cellClassName),
+ onChangerange: unref(handleChangeRange),
+ onPick: handleRangePick,
+ onSelect: unref(onSelect)
+ }, null, 8, ["date", "min-date", "max-date", "range-state", "disabled-date", "cell-class-name", "onChangerange", "onSelect"])
+ ], 2),
+ createElementVNode("div", {
+ class: normalizeClass([[unref(ppNs).e("content"), unref(drpNs).e("content")], "is-right"])
+ }, [
+ createElementVNode("div", {
+ class: normalizeClass(unref(drpNs).e("header"))
+ }, [
+ _ctx.unlinkPanels ? (openBlock(), createElementBlock("button", {
+ key: 0,
+ type: "button",
+ disabled: !unref(enableYearArrow),
+ class: normalizeClass([[unref(ppNs).e("icon-btn"), { "is-disabled": !unref(enableYearArrow) }], "d-arrow-left"]),
+ "aria-label": unref(t)(`el.datepicker.prevYear`),
+ onClick: rightPrevYear
+ }, [
+ createVNode(unref(ElIcon), null, {
+ default: withCtx(() => [
+ createVNode(unref(d_arrow_left_default))
+ ]),
+ _: 1
+ })
+ ], 10, _hoisted_6)) : createCommentVNode("v-if", true),
+ _ctx.unlinkPanels ? (openBlock(), createElementBlock("button", {
+ key: 1,
+ type: "button",
+ disabled: !unref(enableMonthArrow),
+ class: normalizeClass([[
+ unref(ppNs).e("icon-btn"),
+ { "is-disabled": !unref(enableMonthArrow) }
+ ], "arrow-left"]),
+ "aria-label": unref(t)(`el.datepicker.prevMonth`),
+ onClick: rightPrevMonth
+ }, [
+ createVNode(unref(ElIcon), null, {
+ default: withCtx(() => [
+ createVNode(unref(arrow_left_default))
+ ]),
+ _: 1
+ })
+ ], 10, _hoisted_7)) : createCommentVNode("v-if", true),
+ createElementVNode("button", {
+ type: "button",
+ "aria-label": unref(t)(`el.datepicker.nextYear`),
+ class: normalizeClass([unref(ppNs).e("icon-btn"), "d-arrow-right"]),
+ onClick: rightNextYear
+ }, [
+ createVNode(unref(ElIcon), null, {
+ default: withCtx(() => [
+ createVNode(unref(d_arrow_right_default))
+ ]),
+ _: 1
+ })
+ ], 10, _hoisted_8),
+ createElementVNode("button", {
+ type: "button",
+ class: normalizeClass([unref(ppNs).e("icon-btn"), "arrow-right"]),
+ "aria-label": unref(t)(`el.datepicker.nextMonth`),
+ onClick: rightNextMonth
+ }, [
+ createVNode(unref(ElIcon), null, {
+ default: withCtx(() => [
+ createVNode(unref(arrow_right_default))
+ ]),
+ _: 1
+ })
+ ], 10, _hoisted_9),
+ createElementVNode("div", null, toDisplayString(unref(rightLabel)), 1)
+ ], 2),
+ createVNode(DateTable, {
+ "selection-mode": "range",
+ date: rightDate.value,
+ "min-date": unref(minDate),
+ "max-date": unref(maxDate),
+ "range-state": unref(rangeState),
+ "disabled-date": unref(disabledDate2),
+ "cell-class-name": unref(cellClassName),
+ onChangerange: unref(handleChangeRange),
+ onPick: handleRangePick,
+ onSelect: unref(onSelect)
+ }, null, 8, ["date", "min-date", "max-date", "range-state", "disabled-date", "cell-class-name", "onChangerange", "onSelect"])
+ ], 2)
+ ], 2)
+ ], 2),
+ unref(showTime) ? (openBlock(), createElementBlock("div", {
+ key: 0,
+ class: normalizeClass(unref(ppNs).e("footer"))
+ }, [
+ unref(clearable) ? (openBlock(), createBlock(unref(ElButton), {
+ key: 0,
+ text: "",
+ size: "small",
+ class: normalizeClass(unref(ppNs).e("link-btn")),
+ onClick: handleClear
+ }, {
+ default: withCtx(() => [
+ createTextVNode(toDisplayString(unref(t)("el.datepicker.clear")), 1)
+ ]),
+ _: 1
+ }, 8, ["class"])) : createCommentVNode("v-if", true),
+ createVNode(unref(ElButton), {
+ plain: "",
+ size: "small",
+ class: normalizeClass(unref(ppNs).e("link-btn")),
+ disabled: unref(btnDisabled),
+ onClick: _cache[10] || (_cache[10] = ($event) => unref(handleRangeConfirm)(false))
+ }, {
+ default: withCtx(() => [
+ createTextVNode(toDisplayString(unref(t)("el.datepicker.confirm")), 1)
+ ]),
+ _: 1
+ }, 8, ["class", "disabled"])
+ ], 2)) : createCommentVNode("v-if", true)
+ ], 2);
+ };
+ }
+});
+var DateRangePickPanel = /* @__PURE__ */ _export_sfc$1(_sfc_main$2, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/date-picker/src/date-picker-com/panel-date-range.vue"]]);
+const panelMonthRangeProps = buildProps({
+ ...panelRangeSharedProps
+});
+const panelMonthRangeEmits = [
+ "pick",
+ "set-picker-option",
+ "calendar-change"
+];
+const useMonthRangeHeader = ({
+ unlinkPanels,
+ leftDate,
+ rightDate
+}) => {
+ const { t } = useLocale();
+ const leftPrevYear = () => {
+ leftDate.value = leftDate.value.subtract(1, "year");
+ if (!unlinkPanels.value) {
+ rightDate.value = rightDate.value.subtract(1, "year");
+ }
+ };
+ const rightNextYear = () => {
+ if (!unlinkPanels.value) {
+ leftDate.value = leftDate.value.add(1, "year");
+ }
+ rightDate.value = rightDate.value.add(1, "year");
+ };
+ const leftNextYear = () => {
+ leftDate.value = leftDate.value.add(1, "year");
+ };
+ const rightPrevYear = () => {
+ rightDate.value = rightDate.value.subtract(1, "year");
+ };
+ const leftLabel = computed(() => {
+ return `${leftDate.value.year()} ${t("el.datepicker.year")}`;
+ });
+ const rightLabel = computed(() => {
+ return `${rightDate.value.year()} ${t("el.datepicker.year")}`;
+ });
+ const leftYear = computed(() => {
+ return leftDate.value.year();
+ });
+ const rightYear = computed(() => {
+ return rightDate.value.year() === leftDate.value.year() ? leftDate.value.year() + 1 : rightDate.value.year();
+ });
+ return {
+ leftPrevYear,
+ rightNextYear,
+ leftNextYear,
+ rightPrevYear,
+ leftLabel,
+ rightLabel,
+ leftYear,
+ rightYear
+ };
+};
+const _hoisted_1 = ["onClick"];
+const _hoisted_2 = ["disabled"];
+const _hoisted_3 = ["disabled"];
+const unit = "year";
+const __default__ = defineComponent({
+ name: "DatePickerMonthRange"
+});
+const _sfc_main$1 = /* @__PURE__ */ defineComponent({
+ ...__default__,
+ props: panelMonthRangeProps,
+ emits: panelMonthRangeEmits,
+ setup(__props, { emit }) {
+ const props = __props;
+ const { lang } = useLocale();
+ const pickerBase = inject("EP_PICKER_BASE");
+ const { shortcuts, disabledDate: disabledDate2, format } = pickerBase.props;
+ const defaultValue = toRef(pickerBase.props, "defaultValue");
+ const leftDate = ref(dayjs().locale(lang.value));
+ const rightDate = ref(dayjs().locale(lang.value).add(1, unit));
+ const {
+ minDate,
+ maxDate,
+ rangeState,
+ ppNs,
+ drpNs,
+ handleChangeRange,
+ handleRangeConfirm,
+ handleShortcutClick,
+ onSelect
+ } = useRangePicker(props, {
+ defaultValue,
+ leftDate,
+ rightDate,
+ unit,
+ onParsedValueChanged
+ });
+ const hasShortcuts = computed(() => !!shortcuts.length);
+ const {
+ leftPrevYear,
+ rightNextYear,
+ leftNextYear,
+ rightPrevYear,
+ leftLabel,
+ rightLabel,
+ leftYear,
+ rightYear
+ } = useMonthRangeHeader({
+ unlinkPanels: toRef(props, "unlinkPanels"),
+ leftDate,
+ rightDate
+ });
+ const enableYearArrow = computed(() => {
+ return props.unlinkPanels && rightYear.value > leftYear.value + 1;
+ });
+ const handleRangePick = (val, close = true) => {
+ const minDate_ = val.minDate;
+ const maxDate_ = val.maxDate;
+ if (maxDate.value === maxDate_ && minDate.value === minDate_) {
+ return;
+ }
+ emit("calendar-change", [minDate_.toDate(), maxDate_ && maxDate_.toDate()]);
+ maxDate.value = maxDate_;
+ minDate.value = minDate_;
+ if (!close)
+ return;
+ handleRangeConfirm();
+ };
+ const formatToString = (days) => {
+ return days.map((day) => day.format(format));
+ };
+ function onParsedValueChanged(minDate2, maxDate2) {
+ if (props.unlinkPanels && maxDate2) {
+ const minDateYear = (minDate2 == null ? void 0 : minDate2.year()) || 0;
+ const maxDateYear = maxDate2.year();
+ rightDate.value = minDateYear === maxDateYear ? maxDate2.add(1, unit) : maxDate2;
+ } else {
+ rightDate.value = leftDate.value.add(1, unit);
+ }
+ }
+ emit("set-picker-option", ["formatToString", formatToString]);
+ return (_ctx, _cache) => {
+ return openBlock(), createElementBlock("div", {
+ class: normalizeClass([
+ unref(ppNs).b(),
+ unref(drpNs).b(),
+ {
+ "has-sidebar": Boolean(_ctx.$slots.sidebar) || unref(hasShortcuts)
+ }
+ ])
+ }, [
+ createElementVNode("div", {
+ class: normalizeClass(unref(ppNs).e("body-wrapper"))
+ }, [
+ renderSlot(_ctx.$slots, "sidebar", {
+ class: normalizeClass(unref(ppNs).e("sidebar"))
+ }),
+ unref(hasShortcuts) ? (openBlock(), createElementBlock("div", {
+ key: 0,
+ class: normalizeClass(unref(ppNs).e("sidebar"))
+ }, [
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(shortcuts), (shortcut, key) => {
+ return openBlock(), createElementBlock("button", {
+ key,
+ type: "button",
+ class: normalizeClass(unref(ppNs).e("shortcut")),
+ onClick: ($event) => unref(handleShortcutClick)(shortcut)
+ }, toDisplayString(shortcut.text), 11, _hoisted_1);
+ }), 128))
+ ], 2)) : createCommentVNode("v-if", true),
+ createElementVNode("div", {
+ class: normalizeClass(unref(ppNs).e("body"))
+ }, [
+ createElementVNode("div", {
+ class: normalizeClass([[unref(ppNs).e("content"), unref(drpNs).e("content")], "is-left"])
+ }, [
+ createElementVNode("div", {
+ class: normalizeClass(unref(drpNs).e("header"))
+ }, [
+ createElementVNode("button", {
+ type: "button",
+ class: normalizeClass([unref(ppNs).e("icon-btn"), "d-arrow-left"]),
+ onClick: _cache[0] || (_cache[0] = (...args) => unref(leftPrevYear) && unref(leftPrevYear)(...args))
+ }, [
+ createVNode(unref(ElIcon), null, {
+ default: withCtx(() => [
+ createVNode(unref(d_arrow_left_default))
+ ]),
+ _: 1
+ })
+ ], 2),
+ _ctx.unlinkPanels ? (openBlock(), createElementBlock("button", {
+ key: 0,
+ type: "button",
+ disabled: !unref(enableYearArrow),
+ class: normalizeClass([[
+ unref(ppNs).e("icon-btn"),
+ { [unref(ppNs).is("disabled")]: !unref(enableYearArrow) }
+ ], "d-arrow-right"]),
+ onClick: _cache[1] || (_cache[1] = (...args) => unref(leftNextYear) && unref(leftNextYear)(...args))
+ }, [
+ createVNode(unref(ElIcon), null, {
+ default: withCtx(() => [
+ createVNode(unref(d_arrow_right_default))
+ ]),
+ _: 1
+ })
+ ], 10, _hoisted_2)) : createCommentVNode("v-if", true),
+ createElementVNode("div", null, toDisplayString(unref(leftLabel)), 1)
+ ], 2),
+ createVNode(MonthTable, {
+ "selection-mode": "range",
+ date: leftDate.value,
+ "min-date": unref(minDate),
+ "max-date": unref(maxDate),
+ "range-state": unref(rangeState),
+ "disabled-date": unref(disabledDate2),
+ onChangerange: unref(handleChangeRange),
+ onPick: handleRangePick,
+ onSelect: unref(onSelect)
+ }, null, 8, ["date", "min-date", "max-date", "range-state", "disabled-date", "onChangerange", "onSelect"])
+ ], 2),
+ createElementVNode("div", {
+ class: normalizeClass([[unref(ppNs).e("content"), unref(drpNs).e("content")], "is-right"])
+ }, [
+ createElementVNode("div", {
+ class: normalizeClass(unref(drpNs).e("header"))
+ }, [
+ _ctx.unlinkPanels ? (openBlock(), createElementBlock("button", {
+ key: 0,
+ type: "button",
+ disabled: !unref(enableYearArrow),
+ class: normalizeClass([[unref(ppNs).e("icon-btn"), { "is-disabled": !unref(enableYearArrow) }], "d-arrow-left"]),
+ onClick: _cache[2] || (_cache[2] = (...args) => unref(rightPrevYear) && unref(rightPrevYear)(...args))
+ }, [
+ createVNode(unref(ElIcon), null, {
+ default: withCtx(() => [
+ createVNode(unref(d_arrow_left_default))
+ ]),
+ _: 1
+ })
+ ], 10, _hoisted_3)) : createCommentVNode("v-if", true),
+ createElementVNode("button", {
+ type: "button",
+ class: normalizeClass([unref(ppNs).e("icon-btn"), "d-arrow-right"]),
+ onClick: _cache[3] || (_cache[3] = (...args) => unref(rightNextYear) && unref(rightNextYear)(...args))
+ }, [
+ createVNode(unref(ElIcon), null, {
+ default: withCtx(() => [
+ createVNode(unref(d_arrow_right_default))
+ ]),
+ _: 1
+ })
+ ], 2),
+ createElementVNode("div", null, toDisplayString(unref(rightLabel)), 1)
+ ], 2),
+ createVNode(MonthTable, {
+ "selection-mode": "range",
+ date: rightDate.value,
+ "min-date": unref(minDate),
+ "max-date": unref(maxDate),
+ "range-state": unref(rangeState),
+ "disabled-date": unref(disabledDate2),
+ onChangerange: unref(handleChangeRange),
+ onPick: handleRangePick,
+ onSelect: unref(onSelect)
+ }, null, 8, ["date", "min-date", "max-date", "range-state", "disabled-date", "onChangerange", "onSelect"])
+ ], 2)
+ ], 2)
+ ], 2)
+ ], 2);
+ };
+ }
+});
+var MonthRangePickPanel = /* @__PURE__ */ _export_sfc$1(_sfc_main$1, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/date-picker/src/date-picker-com/panel-month-range.vue"]]);
+const getPanel = function(type) {
+ switch (type) {
+ case "daterange":
+ case "datetimerange": {
+ return DateRangePickPanel;
+ }
+ case "monthrange": {
+ return MonthRangePickPanel;
+ }
+ default: {
+ return DatePickPanel;
+ }
+ }
+};
+dayjs.extend(localeData);
+dayjs.extend(advancedFormat);
+dayjs.extend(customParseFormat);
+dayjs.extend(weekOfYear);
+dayjs.extend(weekYear);
+dayjs.extend(dayOfYear);
+dayjs.extend(isSameOrAfter);
+dayjs.extend(isSameOrBefore);
+var DatePicker = defineComponent({
+ name: "ElDatePicker",
+ install: null,
+ props: datePickerProps,
+ emits: ["update:modelValue"],
+ setup(props, {
+ expose,
+ emit,
+ slots
+ }) {
+ const ns = useNamespace("picker-panel");
+ provide("ElPopperOptions", reactive(toRef(props, "popperOptions")));
+ provide(ROOT_PICKER_INJECTION_KEY, {
+ slots,
+ pickerNs: ns
+ });
+ const commonPicker = ref();
+ const refProps = {
+ focus: (focusStartInput = true) => {
+ var _a;
+ (_a = commonPicker.value) == null ? void 0 : _a.focus(focusStartInput);
+ },
+ handleOpen: () => {
+ var _a;
+ (_a = commonPicker.value) == null ? void 0 : _a.handleOpen();
+ },
+ handleClose: () => {
+ var _a;
+ (_a = commonPicker.value) == null ? void 0 : _a.handleClose();
+ }
+ };
+ expose(refProps);
+ const onModelValueUpdated = (val) => {
+ emit("update:modelValue", val);
+ };
+ return () => {
+ var _a;
+ const format = (_a = props.format) != null ? _a : DEFAULT_FORMATS_DATEPICKER[props.type] || DEFAULT_FORMATS_DATE;
+ const Component = getPanel(props.type);
+ return createVNode(CommonPicker, mergeProps(props, {
+ "format": format,
+ "type": props.type,
+ "ref": commonPicker,
+ "onUpdate:modelValue": onModelValueUpdated
+ }), {
+ default: (scopedProps) => createVNode(Component, scopedProps, null),
+ "range-separator": slots["range-separator"]
+ });
+ };
+ }
+});
+const _DatePicker = DatePicker;
+_DatePicker.install = (app) => {
+ app.component(_DatePicker.name, _DatePicker);
+};
+const ElDatePicker = _DatePicker;
+const _imports_0 = "data:image/png;base64,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";
+const _imports_2 = "" + buildAssetsURL("arrow-black.9629aa90.svg");
+const _imports_3 = "" + buildAssetsURL("calendar-icon.dc8f3cea.svg");
+const _imports_4 = "" + buildAssetsURL("frame-no.28983b22.svg");
+const _imports_5 = "" + buildAssetsURL("frame-pitch.02620f32.svg");
+/*! Element Plus v2.4.3 */
+var zhCn = {
+ name: "zh-cn",
+ el: {
+ colorpicker: {
+ confirm: "\u786E\u5B9A",
+ clear: "\u6E05\u7A7A"
+ },
+ datepicker: {
+ now: "\u6B64\u523B",
+ today: "\u4ECA\u5929",
+ cancel: "\u53D6\u6D88",
+ clear: "\u6E05\u7A7A",
+ confirm: "\u786E\u5B9A",
+ selectDate: "\u9009\u62E9\u65E5\u671F",
+ selectTime: "\u9009\u62E9\u65F6\u95F4",
+ startDate: "\u5F00\u59CB\u65E5\u671F",
+ startTime: "\u5F00\u59CB\u65F6\u95F4",
+ endDate: "\u7ED3\u675F\u65E5\u671F",
+ endTime: "\u7ED3\u675F\u65F6\u95F4",
+ prevYear: "\u524D\u4E00\u5E74",
+ nextYear: "\u540E\u4E00\u5E74",
+ prevMonth: "\u4E0A\u4E2A\u6708",
+ nextMonth: "\u4E0B\u4E2A\u6708",
+ year: "\u5E74",
+ month1: "1 \u6708",
+ month2: "2 \u6708",
+ month3: "3 \u6708",
+ month4: "4 \u6708",
+ month5: "5 \u6708",
+ month6: "6 \u6708",
+ month7: "7 \u6708",
+ month8: "8 \u6708",
+ month9: "9 \u6708",
+ month10: "10 \u6708",
+ month11: "11 \u6708",
+ month12: "12 \u6708",
+ weeks: {
+ sun: "\u65E5",
+ mon: "\u4E00",
+ tue: "\u4E8C",
+ wed: "\u4E09",
+ thu: "\u56DB",
+ fri: "\u4E94",
+ sat: "\u516D"
+ },
+ months: {
+ jan: "\u4E00\u6708",
+ feb: "\u4E8C\u6708",
+ mar: "\u4E09\u6708",
+ apr: "\u56DB\u6708",
+ may: "\u4E94\u6708",
+ jun: "\u516D\u6708",
+ jul: "\u4E03\u6708",
+ aug: "\u516B\u6708",
+ sep: "\u4E5D\u6708",
+ oct: "\u5341\u6708",
+ nov: "\u5341\u4E00\u6708",
+ dec: "\u5341\u4E8C\u6708"
+ }
+ },
+ select: {
+ loading: "\u52A0\u8F7D\u4E2D",
+ noMatch: "\u65E0\u5339\u914D\u6570\u636E",
+ noData: "\u65E0\u6570\u636E",
+ placeholder: "\u8BF7\u9009\u62E9"
+ },
+ cascader: {
+ noMatch: "\u65E0\u5339\u914D\u6570\u636E",
+ loading: "\u52A0\u8F7D\u4E2D",
+ placeholder: "\u8BF7\u9009\u62E9",
+ noData: "\u6682\u65E0\u6570\u636E"
+ },
+ pagination: {
+ goto: "\u524D\u5F80",
+ pagesize: "\u6761/\u9875",
+ total: "\u5171 {total} \u6761",
+ pageClassifier: "\u9875",
+ page: "\u9875",
+ prev: "\u4E0A\u4E00\u9875",
+ next: "\u4E0B\u4E00\u9875",
+ currentPage: "\u7B2C {pager} \u9875",
+ prevPages: "\u5411\u524D {pager} \u9875",
+ nextPages: "\u5411\u540E {pager} \u9875",
+ deprecationWarning: "\u4F60\u4F7F\u7528\u4E86\u4E00\u4E9B\u5DF2\u88AB\u5E9F\u5F03\u7684\u7528\u6CD5\uFF0C\u8BF7\u53C2\u8003 el-pagination \u7684\u5B98\u65B9\u6587\u6863"
+ },
+ messagebox: {
+ title: "\u63D0\u793A",
+ confirm: "\u786E\u5B9A",
+ cancel: "\u53D6\u6D88",
+ error: "\u8F93\u5165\u7684\u6570\u636E\u4E0D\u5408\u6CD5!"
+ },
+ upload: {
+ deleteTip: "\u6309 delete \u952E\u53EF\u5220\u9664",
+ delete: "\u5220\u9664",
+ preview: "\u67E5\u770B\u56FE\u7247",
+ continue: "\u7EE7\u7EED\u4E0A\u4F20"
+ },
+ table: {
+ emptyText: "\u6682\u65E0\u6570\u636E",
+ confirmFilter: "\u7B5B\u9009",
+ resetFilter: "\u91CD\u7F6E",
+ clearFilter: "\u5168\u90E8",
+ sumText: "\u5408\u8BA1"
+ },
+ tree: {
+ emptyText: "\u6682\u65E0\u6570\u636E"
+ },
+ transfer: {
+ noMatch: "\u65E0\u5339\u914D\u6570\u636E",
+ noData: "\u65E0\u6570\u636E",
+ titles: ["\u5217\u8868 1", "\u5217\u8868 2"],
+ filterPlaceholder: "\u8BF7\u8F93\u5165\u641C\u7D22\u5185\u5BB9",
+ noCheckedFormat: "\u5171 {total} \u9879",
+ hasCheckedFormat: "\u5DF2\u9009 {checked}/{total} \u9879"
+ },
+ image: {
+ error: "\u52A0\u8F7D\u5931\u8D25"
+ },
+ pageHeader: {
+ title: "\u8FD4\u56DE"
+ },
+ popconfirm: {
+ confirmButtonText: "\u786E\u5B9A",
+ cancelButtonText: "\u53D6\u6D88"
+ }
+ }
+};
+const _sfc_main = {
+ __name: "index",
+ __ssrInlineRender: true,
+ setup(__props) {
+ useRouter();
+ useHead({ script: [{ src: "https://app.gter.net/bottom?tpl=header&menukey=mj" }, { src: "https://app.gter.net/bottom?tpl=footer", body: true }] });
+ const setDisabled = (time) => {
+ return time.getTime() > Date.now();
+ };
+ ref("");
+ let info = ref({
+ school: "",
+ // 学校
+ profession: "",
+ // 专业
+ project: "",
+ // 项目时间
+ interviewtime: "",
+ // 面试时间
+ subject: "",
+ //标题
+ isvisiblereply: 0,
+ // 回复点赞可见
+ message: "",
+ // 过程
+ anonymous: 0
+ // 匿名状态
+ });
+ const querySchoolSearch = (queryString, cb) => {
+ publishSchoolSearchHttp({ keyword: queryString }).then((res) => {
+ if (res.code != 200)
+ return;
+ let data = res.data || [];
+ let isRepetition = false;
+ data.forEach((element) => {
+ element["value"] = element["checkname"];
+ if (element["name"] == queryString)
+ isRepetition = true;
+ });
+ if (!isRepetition) {
+ data.unshift({
+ value: queryString
+ });
+ }
+ cb(data);
+ });
+ };
+ const handleSchoolSelect = (item) => info.value["schoolid"] = item["id"] || 0;
+ const queryMajorSearch = (queryString, cb) => {
+ publishProfessionSearchHttp({ keyword: queryString }).then((res) => {
+ if (res.code != 200)
+ return;
+ let data = res.data || [];
+ let isRepetition = false;
+ data.forEach((element) => {
+ element["value"] = element["name"];
+ if (element["name"] == queryString)
+ isRepetition = true;
+ });
+ if (!isRepetition) {
+ data.unshift({
+ value: queryString
+ });
+ }
+ cb(data);
+ });
+ };
+ const handleMajorSelect = (item) => info.value["profession_id"] = item["id"] || 0;
+ return (_ctx, _push, _parent, _attrs) => {
+ const _component_Head = Head;
+ const _component_Title = Title;
+ const _component_Meta = Meta;
+ const _component_el_autocomplete = ElAutocomplete;
+ const _component_el_input = ElInput;
+ const _component_el_config_provider = ElConfigProvider;
+ const _component_el_date_picker = ElDatePicker;
+ _push(``);
+ _push(ssrRenderComponent(_component_Head, null, {
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
+ if (_push2) {
+ _push2(ssrRenderComponent(_component_Title, null, {
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
+ if (_push3) {
+ _push3(`\u5BC4\u6258\u5929\u4E0B - \u9762\u7ECF\u53D1\u5E03`);
+ } else {
+ return [
+ createTextVNode("\u5BC4\u6258\u5929\u4E0B - \u9762\u7ECF\u53D1\u5E03")
+ ];
+ }
+ }),
+ _: 1
+ }, _parent2, _scopeId));
+ _push2(ssrRenderComponent(_component_Meta, {
+ name: "keyword",
+ content: "\u7559\u5B66\u8D44\u8BAF\uFF0C\u7559\u5B66\u4EA4\u6D41\u8BBA\u575B\uFF0C\u7559\u5B66\u9762\u7ECF\uFF0C\u9762\u8BD5\u7ECF\u9A8C\uFF0C\u5BC4\u6258\u5929\u4E0B"
+ }, null, _parent2, _scopeId));
+ } else {
+ return [
+ createVNode(_component_Title, null, {
+ default: withCtx(() => [
+ createTextVNode("\u5BC4\u6258\u5929\u4E0B - \u9762\u7ECF\u53D1\u5E03")
+ ]),
+ _: 1
+ }),
+ createVNode(_component_Meta, {
+ name: "keyword",
+ content: "\u7559\u5B66\u8D44\u8BAF\uFF0C\u7559\u5B66\u4EA4\u6D41\u8BBA\u575B\uFF0C\u7559\u5B66\u9762\u7ECF\uFF0C\u9762\u8BD5\u7ECF\u9A8C\uFF0C\u5BC4\u6258\u5929\u4E0B"
+ })
+ ];
+ }
+ }),
+ _: 1
+ }, _parent));
+ _push(` \u4FDD\u5B58\u5E76\u9000\u51FA
\u653E\u5F03\u4FDD\u5B58
\u7533\u8BF7\u4FE1\u606F
*
\u9662\u6821
`);
+ _push(ssrRenderComponent(_component_el_autocomplete, {
+ debounce: "",
+ modelValue: unref(info).school,
+ "onUpdate:modelValue": ($event) => unref(info).school = $event,
+ "fetch-suggestions": querySchoolSearch,
+ clearable: "",
+ class: "inline-input w-50",
+ placeholder: "\u8F93\u5165\u5173\u952E\u8BCD\uFF0C\u9009\u62E9\u9662\u6821",
+ onSelect: handleSchoolSelect,
+ "trigger-on-focus": false
+ }, {
+ suffix: withCtx((_, _push2, _parent2, _scopeId) => {
+ if (_push2) {
+ _push2(`
`);
+ } else {
+ return [
+ createVNode("img", {
+ class: "",
+ src: _imports_2
+ })
+ ];
+ }
+ }),
+ _: 1
+ }, _parent));
+ _push(`
\u4E13\u4E1A
`);
+ _push(ssrRenderComponent(_component_el_autocomplete, {
+ modelValue: unref(info).profession,
+ "onUpdate:modelValue": ($event) => unref(info).profession = $event,
+ "fetch-suggestions": queryMajorSearch,
+ clearable: "",
+ class: "inline-input w-50",
+ placeholder: "\u8F93\u5165\u5173\u952E\u8BCD\uFF0C\u9009\u62E9\u4E13\u4E1A",
+ onSelect: handleMajorSelect,
+ "trigger-on-focus": false
+ }, {
+ suffix: withCtx((_, _push2, _parent2, _scopeId) => {
+ if (_push2) {
+ _push2(`
`);
+ } else {
+ return [
+ createVNode("img", {
+ class: "",
+ src: _imports_2
+ })
+ ];
+ }
+ }),
+ _: 1
+ }, _parent));
+ _push(`
\u9879\u76EE
`);
+ _push(ssrRenderComponent(_component_el_input, {
+ class: "flex1 input",
+ placeholder: "\u8BF7\u8F93\u5165",
+ modelValue: unref(info).project,
+ "onUpdate:modelValue": ($event) => unref(info).project = $event
+ }, null, _parent));
+ _push(`
\u9762\u8BD5\u65F6\u95F4
*
\u9762\u7ECF\u5E16\u6807\u9898
*
`);
+ _push(ssrRenderComponent(_component_el_input, {
+ modelValue: unref(info).subject,
+ "onUpdate:modelValue": ($event) => unref(info).subject = $event,
+ placeholder: "\u7ED9\u4F60\u7684\u9762\u7ECF\u5E16\u8D77\u4E00\u4E2A\u5438\u5F15\u7684\u6807\u9898\u5427"
+ }, null, _parent));
+ _push(`
`);
+ if (unref(info).isvisiblereply == 0) {
+ _push(`
`);
+ } else {
+ _push(`
`);
+ }
+ _push(` \u56DE\u590D/\u70B9\u8D5E\u53EF\u89C1
\u9762\u8BD5\u6784\u6210\u53CA\u8FC7\u7A0B
*
`);
+ _push(ssrRenderComponent(_component_el_input, {
+ modelValue: unref(info).message,
+ "onUpdate:modelValue": ($event) => unref(info).message = $event,
+ type: "textarea",
+ autosize: "",
+ placeholder: "\u4F8B\u5982\uFF1A\u9879\u76EE\u4ECB\u7ECD\u3001\u9762\u8BD5\u65F6\u957F\u3001\u9762\u8BD5\u5B98\u3001\u95EE\u9898QA\u3001\u9700\u8981\u6CE8\u610F\u7684\u5730\u65B9"
+ }, null, _parent));
+ _push(`
\u6CE8\uFF1A\u8BF7\u786E\u4FDD\u4EE5\u4E0A\u5185\u5BB9\u5DF2\u6B63\u786E\u586B\u5199\uFF0C\u53D1\u5E03\u540E\u5C06\u4E0D\u80FD\u4FEE\u6539
`);
+ if (unref(info).anonymous == 0) {
+ _push(`
`);
+ } else {
+ _push(`
`);
+ }
+ _push(` \u533F\u540D\u53D1\u8868
\uFF08\u53D1\u5E03\u540E\u53EF\u4FEE\u6539\uFF09
\u53D1\u5E03
`);
+ };
+ }
+};
+const _sfc_setup = _sfc_main.setup;
+_sfc_main.setup = (props, ctx) => {
+ const ssrContext = useSSRContext();
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/publish/index.vue");
+ return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
+};
+const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-7cd5a437"]]);
+
+export { index as default };
+//# sourceMappingURL=index-4bf365d6.mjs.map
diff --git a/.output/server/chunks/app/_nuxt/index-4bf365d6.mjs.map b/.output/server/chunks/app/_nuxt/index-4bf365d6.mjs.map
new file mode 100644
index 0000000..cf7a24d
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/index-4bf365d6.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"index-4bf365d6.mjs","sources":["../../../../../.nuxt/dist/server/_nuxt/index-4bf365d6.js"],"sourcesContent":null,"names":["__buildAssetsURL"],"mappings":"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"}
\ No newline at end of file
diff --git a/.output/server/chunks/app/_nuxt/index-8ce861f4.mjs b/.output/server/chunks/app/_nuxt/index-8ce861f4.mjs
new file mode 100644
index 0000000..fc4963f
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/index-8ce861f4.mjs
@@ -0,0 +1,260 @@
+import { b as buildAssetsURL } from '../../handlers/renderer.mjs';
+import { m as getListHttp, o as operateLikeHttp, H as Head, T as Title, M as Meta } from './cross-icon-c0ac5209.mjs';
+import { h as handleDate, _ as _imports_2, E as ElMessage, a as __nuxt_component_3, b as __nuxt_component_4 } from './eye-icon-a076085e.mjs';
+import { useSSRContext, mergeProps, unref, inject, ref, watchEffect, nextTick, onUnmounted, withAsyncContext, withCtx, createTextVNode, createVNode } from 'vue';
+import { ssrRenderAttrs, ssrRenderAttr, ssrInterpolate, ssrRenderComponent, ssrRenderList } from 'vue/server-renderer';
+import { _ as _export_sfc, u as useHead } from './_plugin-vue_export-helper-e3874580.mjs';
+import { e as useRoute, u as useRouter } from '../server.mjs';
+import 'vue-bundle-renderer/runtime';
+import '../../nitro/node-server.mjs';
+import 'node:http';
+import 'node:https';
+import 'fs';
+import 'path';
+import 'node:fs';
+import 'node:url';
+import 'devalue';
+import '@unhead/ssr';
+import 'unhead';
+import '@unhead/shared';
+import 'lodash-unified';
+import '@vue/shared';
+import '@vueuse/core';
+import 'axios';
+import 'qs';
+import '@vue/reactivity';
+import 'vue-router';
+
+const _imports_0$1 = "" + buildAssetsURL("time-icon.fef65a83.svg");
+const _imports_1 = "" + buildAssetsURL("time-white-icon.805d0e12.svg");
+const _imports_3 = "" + buildAssetsURL("like-no.23054eaf.svg");
+const _imports_4 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAQAAAAABGUUKwAAAD30lEQVR4AeVa7XXaMBSVDANkBDxB6QRxJmg6QVmANp2gZAOaDBCYoGwQugGZAGUD+F9Q7zPIxxAZy7ZkG0vn5Ejoy/fe954+7HDWgrRbf/8FGPeMySFyIRmf9MOneR3QeB0PufQMkJ+AOAlwlvgqYMEdD6ebswarPwOrs5WaTP7QD5PDPdu/6tvs1bZAAHaTTUcODx6S3aNqS6MhINcP0Z7tcq0csF6IUBBVyerGt8EDdLhO6iASFkg3qVEBEOORGS3+zaxf8V6NCmAOVw4RLhfWCvOZzns2KoBkMjoHdOH38EJb6abGBCCLYgW+NUW+Y7uBad8i/RoTACCjIkA544Mi/U37NiYALDoyBemyXyMCwP0HcP8vLomZzt2IANj+JqYAXferXQCyPi4/zvb1ooLVLgBi/6UoSOqPLVOUGZc3plYBYP17xH6UB0rX3mM9oauvWlebAOT6ONOXsv6R5KYqWd342gQ4un7p4yxugysdgap1/aoTmIzfrcdk+cikb0aft4z6ytXOPeDfejwCSvqrkLgT6xMgpwIQeSx6VeJeiSZUwXbuTACL5GGlYGmbuJoPBrKfbJIndL3w2QlOmtu6B9gmLxn7S0BdpRNl5Xp8a/ogHj5/AIa9/gZ7/RpzlN7uNM+fwUozTX3pqjT2WAA6oR0PKQWA81UvfPqcRnGc50+6rqVlgTfNX+lsEQA0PkDsCHQB8kQrfk8XUUkl3PKGqtzynE6lr+A+CHBCm7QcrCt4CNf9JEAMGMe9KyQNzvuJdoGCrt8gXOuPlpwEeLc+79VMiC/Q2GfF1eC1DlTiE7zHCVvhCosgF75qgHPAkjzASwEQ+vFJ1tsQgOcvyfOxCLp520qTtznhir0ifIGrt61tJn/EtqTcyxCg+McCuFECCCr4lFT8E+cASgifyMekWbBQnH0MgS2MHi+ABzEOUnh0H+CJ9RMBfLoPYPv7KICKBw/yLTgu0zzjNcCf+wBfqO1PiaAWQaEqupyfuz9xVQJ0mbfiRqv/SfwnAvhxH+AzpUQ6jz3Ah/sA3H+aJq7KvoTAW9aJVwkglCJdzHHO0VqfuMYCZKnTETG2/fB5lsVFeUBWewfqeab1iVxagE7eB7D4zS5ZMRGgm/cBPs8L70SASypda1vW1pfmkwjQtfvA8bXXKk1WV04EQKPQdbjWOhzuHkywJwJ06zjMHxH7udYngRIBoNgSv+m+fOWJz/GvOxNTEokAtFoibozcJjX5JlWGmoePDem6GstkvJ8gPyryzEQAGkQnJnwxvaMFJGeS+GHnbobfC8b475yxNpvfD1j5I3AP8P+E06KT/wdPOffX7me6UQAAAABJRU5ErkJggg==";
+const _imports_5 = "" + buildAssetsURL("comment-icon.f7b16ad3.svg");
+const _sfc_main$1 = {
+ __name: "Item",
+ __ssrInlineRender: true,
+ props: {
+ item: Object
+ },
+ emits: ["childEvent"],
+ setup(__props, { emit: __emit }) {
+ return (_ctx, _push, _parent, _attrs) => {
+ _push(`${ssrInterpolate(__props.item["school"])}
`);
+ if (__props.item["profession"]) {
+ _push(`
\u4E13\u4E1A
${ssrInterpolate(__props.item["profession"])}
`);
+ } else {
+ _push(``);
+ }
+ if (__props.item["project"]) {
+ _push(`
\u9879\u76EE
${ssrInterpolate(__props.item["project"])}
`);
+ } else {
+ _push(``);
+ }
+ if (__props.item["interviewtime"]) {
+ _push(`
\u65F6\u95F4
${ssrInterpolate(__props.item["interviewtime"])}
`);
+ } else {
+ _push(``);
+ }
+ _push(`
${ssrInterpolate(__props.item["message"])}
${ssrInterpolate(("handleDate" in _ctx ? _ctx.handleDate : unref(handleDate))(__props.item["releasetime"]))}\u53D1\u5E03
${ssrInterpolate(__props.item["views"] || 0)}
`);
+ if (__props.item["islike"] == 0) {
+ _push(`
`);
+ } else {
+ _push(`
`);
+ }
+ _push(` ${ssrInterpolate(__props.item["likenum"] || 0)}
${ssrInterpolate(__props.item["commentnum"] || 0)}
`);
+ };
+ }
+};
+const _sfc_setup$1 = _sfc_main$1.setup;
+_sfc_main$1.setup = (props, ctx) => {
+ const ssrContext = useSSRContext();
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/Item.vue");
+ return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
+};
+const __nuxt_component_5 = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-d382e4b9"]]);
+const _imports_0 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAIKADAAQAAAABAAAAIAAAAACshmLzAAAED0lEQVRYCe2Wu09UQRTGdwlYWWMAIzEhWhCJhRgVAbHzAWil1sT/gKcKLAqG159AYimVgIFSeVOglSYmRhPFEEiIlTQ2sP6+y5zr3OUuLFDqJLPnzHce883MmdmbSPzrLXmQDRgaGjqNfyO9Op1OFyFPuvjVZDK5Dja3tbU10dHR8d3h+4qcCDDxdZL3ku3yvhlxgMwS4nFLS8vMfv57Eujr6zuRn5//goQ3vESf0Sch9BW55vBifMrA6pFnPN9Jxk0Q2fCwiJqVwODg4Hk8J+inXMQYyVIk+xDJkDFgtyogkgK+60wrxDVki4sloMkJmifRcZJsoN/LZTvdhIEYGBioI26UQSF9E/1qHIldBLTtBQUFywRp5Z/y8vJuNjc3r6AfuA0PD5dub29PEVhOX4HERUhEjiMvM6vOHEyTbxxlcuUVcXLcUi56KTs6ItxvEQKqdlgGBYfz/cOu3J9AOcj5wGH1HG+tb48QYNI+Zxxra2ub9h2lc64XSFCVidtYNvnY2CTb/hZ9XGPIPDdcMiTgHplLAnFKSfqN86wEV20s4Nvp26Q7bEE+cSTAu+XHIq+oNqSrhQQw3NmBEl/iqpViOoY9KFp8n7LaLuefkC7MjZPo8o00l1NviEjoNQ1aSACGVx322smIaG1tXSSw1QN7WHU3q20D6zGcPF3t7e1LNvYl8boRatU7IroDwbtOgi9mzJTUxZBPAj2Ff7/5aXJW+szGMTLITVyJ2cIdAChy4JoZ42QmCfPJYfIEV3Ld+RdbnE8gLZCz3vU4mbMn/TiD4zCzBdLLHcwl0A+ylYfsItFuoDP3t918dByqCRvHSeKCXUbaXH8JGIgsiwsWpmrHHp45kK5jeCVFwr8divEbdsu9mwDGOTkzQXhF/GASq3LDakfv5Gb0qkv3fHv6+/vtRnlwoN7WL0cxa4bwCPQlI1As2coKczBJAf2WWWNIPnETB2bpwoIBPujyjTTlBD8DyBTp8KqHBPQZhcOSonBISfqNN/0dJCphX8VVsyc7dBEmm3y4Ke9Dg1PIGewecyzyTvwwe6TiYXkNx2kZkdfj/g8s8CCSvPqke+NiatixeYsPd0AAq5hBTEqH6aj/Zgs7TFMOJn/pYsf9yYVFCAhg4ibECr2QLZ06CgnFKody0b9xPA+RkbaLALugT7AGvDbp5SRY1tFEonIY8F7UKVY56L/QG6mjn5mhkRrwjapatk7VWiocUq+4KSkK6KPvl6lzBc+xUhWcfZR+0+TZ4rISUGJIFEJiBLVeY9f0l6rPbf2xBA8KE5Qw1iOje36Wbm1c2x63cnPYk4A58QjVouvqVRm2l4TMAsQfZRZcXExOBCzQVXQjyWuYpAhpf+Gr6Pqnm2U3Jvx7brH/ZbYd+APZxM/2zgvhdQAAAABJRU5ErkJggg==";
+const _sfc_main = {
+ __name: "index",
+ __ssrInlineRender: true,
+ async setup(__props) {
+ let __temp, __restore;
+ let isNeedLogin = inject("isNeedLogin");
+ const goLogin = inject("goLogin");
+ console.log(true);
+ useHead({ script: [{ src: "https://app.gter.net/bottom?tpl=header&menukey=mj" }, { src: "https://app.gter.net/bottom?tpl=footer", body: true }] });
+ ref(null);
+ const route = useRoute();
+ let keyword = ref("");
+ keyword.value = route.query["keyword"];
+ watchEffect(() => {
+ if (keyword.value != route.query["keyword"]) {
+ list.value = [];
+ page.value = 1;
+ keyword.value = route.query["keyword"];
+ getList(route.query["keyword"]);
+ }
+ });
+ const handleScroll = () => {
+ const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
+ const scrollHeight = document.documentElement.scrollHeight;
+ const clientHeight = document.documentElement.clientHeight;
+ if (scrollTop + clientHeight >= scrollHeight - 40)
+ getList();
+ };
+ let page = ref(1);
+ let count = ref(0);
+ let list = ref([]);
+ let loading = false;
+ const getList = () => {
+ if (page.value == 0 || loading)
+ return;
+ loading = true;
+ getListHttp({ page: page.value, keyword: keyword.value }).then((res) => {
+ if (res.code != 200) {
+ page.value = 0;
+ ElMessage({
+ message: res.message,
+ type: "error"
+ });
+ return;
+ }
+ let data = res.data;
+ list.value = list.value.concat(data.data || []);
+ if (data.count > list.value.length)
+ page.value++;
+ else
+ page.value = 0;
+ count.value = data["count"];
+ nextTick(() => {
+ });
+ }).finally(() => loading = false);
+ };
+ const handleLike = (token) => {
+ if (isNeedLogin.value) {
+ goLogin();
+ return;
+ }
+ operateLikeHttp({ token }).then((res) => {
+ if (res.code != 200)
+ return;
+ let data = res.data;
+ list.value.forEach((element) => {
+ if (element["token"] == token) {
+ element["islike"] = data["status"];
+ element["likenum"] = data["count"];
+ }
+ });
+ ElMessage.success(res.message);
+ });
+ };
+ onUnmounted(() => {
+ window.removeEventListener("scroll", handleScroll);
+ });
+ useRouter();
+ try {
+ if (true) {
+ [__temp, __restore] = withAsyncContext(() => getListHttp({ page: 1, keyword: keyword.value }).then((res) => {
+ if (res.code != 200) {
+ page.value = 0;
+ ElMessage({
+ message: res.message,
+ type: "error"
+ });
+ return;
+ }
+ let data = res.data;
+ list.value = list.value.concat(data.data || []);
+ })), await __temp, __restore();
+ }
+ } catch (error) {
+ }
+ return (_ctx, _push, _parent, _attrs) => {
+ const _component_Head = Head;
+ const _component_Title = Title;
+ const _component_Meta = Meta;
+ const _component_TopHead = __nuxt_component_3;
+ const _component_empty = __nuxt_component_4;
+ const _component_Item = __nuxt_component_5;
+ _push(``);
+ _push(ssrRenderComponent(_component_Head, null, {
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
+ if (_push2) {
+ _push2(ssrRenderComponent(_component_Title, null, {
+ default: withCtx((_2, _push3, _parent3, _scopeId2) => {
+ if (_push3) {
+ _push3(`\u5BC4\u6258\u5929\u4E0B - \u9762\u7ECF\u5206\u4EAB `);
+ } else {
+ return [
+ createTextVNode("\u5BC4\u6258\u5929\u4E0B - \u9762\u7ECF\u5206\u4EAB ")
+ ];
+ }
+ }),
+ _: 1
+ }, _parent2, _scopeId));
+ _push2(ssrRenderComponent(_component_Meta, {
+ name: "keyword",
+ content: "\u7559\u5B66\u8D44\u8BAF\uFF0C\u7559\u5B66\u4EA4\u6D41\u8BBA\u575B\uFF0C\u7559\u5B66\u9762\u7ECF\uFF0C\u9762\u8BD5\u7ECF\u9A8C\uFF0C\u5BC4\u6258\u5929\u4E0B"
+ }, null, _parent2, _scopeId));
+ } else {
+ return [
+ createVNode(_component_Title, null, {
+ default: withCtx(() => [
+ createTextVNode("\u5BC4\u6258\u5929\u4E0B - \u9762\u7ECF\u5206\u4EAB ")
+ ]),
+ _: 1
+ }),
+ createVNode(_component_Meta, {
+ name: "keyword",
+ content: "\u7559\u5B66\u8D44\u8BAF\uFF0C\u7559\u5B66\u4EA4\u6D41\u8BBA\u575B\uFF0C\u7559\u5B66\u9762\u7ECF\uFF0C\u9762\u8BD5\u7ECF\u9A8C\uFF0C\u5BC4\u6258\u5929\u4E0B"
+ })
+ ];
+ }
+ }),
+ _: 1
+ }, _parent));
+ _push(ssrRenderComponent(_component_TopHead, null, null, _parent));
+ if (unref(keyword)) {
+ _push(`${ssrInterpolate(unref(keyword))}
\u5171 ${ssrInterpolate(unref(count))} \u6761\u641C\u7D22\u6570\u636E
`);
+ } else {
+ _push(``);
+ }
+ _push(``);
+ if (unref(list).length == 0 && unref(page) == 0) {
+ _push(`
`);
+ _push(ssrRenderComponent(_component_empty, { hint: "\u6CA1\u6709\u627E\u5230\u76F8\u5173\u7ED3\u679C\uFF0C\u8BF7\u66F4\u6362\u641C\u7D22\u5173\u952E\u8BCD" }, null, _parent));
+ _push(`
`);
+ } else {
+ _push(``);
+ ssrRenderList(unref(list), (item, index2) => {
+ _push(ssrRenderComponent(_component_Item, {
+ key: index2,
+ item,
+ onHandleLike: handleLike
+ }, null, _parent));
+ });
+ _push(``);
+ }
+ _push(`
`);
+ if (unref(page) == 0 && unref(list).length > 0) {
+ _push(`- \u5230\u5E95\u4E86 -
`);
+ } else {
+ _push(``);
+ }
+ _push(``);
+ };
+ }
+};
+const _sfc_setup = _sfc_main.setup;
+_sfc_main.setup = (props, ctx) => {
+ const ssrContext = useSSRContext();
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/index.html/index.vue");
+ return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
+};
+const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-5f76285b"]]);
+
+export { index as default };
+//# sourceMappingURL=index-8ce861f4.mjs.map
diff --git a/.output/server/chunks/app/_nuxt/index-8ce861f4.mjs.map b/.output/server/chunks/app/_nuxt/index-8ce861f4.mjs.map
new file mode 100644
index 0000000..42e2f06
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/index-8ce861f4.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"index-8ce861f4.mjs","sources":["../../../../../.nuxt/dist/server/_nuxt/index-8ce861f4.js"],"sourcesContent":null,"names":["__buildAssetsURL"],"mappings":"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"}
\ No newline at end of file
diff --git a/.output/server/chunks/app/_nuxt/index-styles.9175bb53.mjs b/.output/server/chunks/app/_nuxt/index-styles.9175bb53.mjs
new file mode 100644
index 0000000..5714d50
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/index-styles.9175bb53.mjs
@@ -0,0 +1,8 @@
+const Item_vue_vue_type_style_index_0_scoped_d382e4b9_lang = ".box[data-v-d382e4b9]{background-color:#fff;border-radius:8px;cursor:pointer;margin-bottom:20px;padding:20px 19px 25px 20px;width:385px}.box:hover .content .text-box[data-v-d382e4b9]{background:#72db86}.box:hover .content .text-box .text[data-v-d382e4b9],.box:hover .content .text-box .time[data-v-d382e4b9]{color:#fff}.box:hover .content .text-box .time .time-icon.time-black-icon[data-v-d382e4b9]{display:none}.box:hover .content .text-box .time .time-icon.time-white-icon[data-v-d382e4b9]{display:block}.box .img[data-v-d382e4b9]{height:26px;margin-right:10px;width:26px}.box .content[data-v-d382e4b9]{flex-direction:column}.box .content .name[data-v-d382e4b9]{color:#000;font-size:16px;font-weight:650;margin-bottom:16px;margin-top:2px}.box .content .list[data-v-d382e4b9]{flex-direction:column;margin-bottom:14px}.box .content .list .item[data-v-d382e4b9]:not(:last-of-type){margin-bottom:8px}.box .content .list .item .item-name[data-v-d382e4b9]{color:#7f7f7f;font-size:13px;line-height:20px;margin-right:12.5px}.box .content .list .item .item-value[data-v-d382e4b9]{color:#333;font-size:14px;width:255px}.box .content .text-box[data-v-d382e4b9]{background:#f2f2f2;border:1px solid #f6f6f6;border-radius:10px;margin-bottom:11px;padding:12px;transition:all .3s}.box .content .text-box .text[data-v-d382e4b9]{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#333;display:-webkit-box;font-size:13px;line-height:24px;margin-bottom:12px;overflow:hidden}.box .content .text-box .time[data-v-d382e4b9]{color:#aaa;font-size:13px}.box .content .text-box .time .time-icon[data-v-d382e4b9]{height:20px;margin-right:6px;width:20px}.box .content .text-box .time .time-icon.time-black-icon[data-v-d382e4b9]{display:block}.box .content .text-box .time .time-icon.time-white-icon[data-v-d382e4b9]{display:none}.box .content .data-list[data-v-d382e4b9]{color:#aaa;font-size:12px;justify-content:flex-end}.box .content .data-list .data-item[data-v-d382e4b9]{margin-left:26px}.box .content .data-list .data-item .data-item-icon[data-v-d382e4b9]{margin-right:5px;width:13px}";
+
+const index_vue_vue_type_style_index_0_scoped_5f76285b_lang = ".search-result[data-v-5f76285b]{margin:0 auto 30px;width:1200px}.search-result .keyword[data-v-5f76285b]{color:#fa6b11;cursor:pointer;font-size:14px}.search-result .keyword .keyword-icon[data-v-5f76285b]{height:14px;margin-left:9px;width:14px}.search-result .halving-line[data-v-5f76285b]{background:#d7d7d7;height:13px;margin:0 20px;width:1px}.search-result .total[data-v-5f76285b]{color:#7f7f7f;font-size:13px}.content[data-v-5f76285b]{display:flex;flex-wrap:wrap;justify-content:space-between;margin:0 auto 93px;min-height:calc(100vh - 250px);width:1200px}.content .empty-box[data-v-5f76285b]{background-color:#fff;border-radius:16px;height:540px;width:1200px}.in-end[data-v-5f76285b]{color:#7f7f7f;font-size:12px;margin-bottom:88px;text-align:center}";
+
+const indexStyles_9175bb53 = [Item_vue_vue_type_style_index_0_scoped_d382e4b9_lang, index_vue_vue_type_style_index_0_scoped_5f76285b_lang, index_vue_vue_type_style_index_0_scoped_5f76285b_lang];
+
+export { indexStyles_9175bb53 as default };
+//# sourceMappingURL=index-styles.9175bb53.mjs.map
diff --git a/.output/server/chunks/app/_nuxt/index-styles.9175bb53.mjs.map b/.output/server/chunks/app/_nuxt/index-styles.9175bb53.mjs.map
new file mode 100644
index 0000000..9c0ca94
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/index-styles.9175bb53.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"index-styles.9175bb53.mjs","sources":["../../../../../.nuxt/dist/server/_nuxt/index-styles-1.mjs-62d19548.js","../../../../../.nuxt/dist/server/_nuxt/index-styles-2.mjs-543a0eee.js","../../../../../.nuxt/dist/server/_nuxt/index-styles.9175bb53.mjs"],"sourcesContent":null,"names":["style_0","style_1","style_2"],"mappings":"AAAA,MAAM,oDAAuD,GAAA,ohEAAA;;ACA7D,MAAM,qDAAwD,GAAA,ovBAAA;;ACG9D,6BAAe,CAACA,oDAAO,EAAEC,qDAAO,EAAEC,qDAAO;;;;"}
\ No newline at end of file
diff --git a/.output/server/chunks/app/_nuxt/index-styles.f5784fbd.mjs b/.output/server/chunks/app/_nuxt/index-styles.f5784fbd.mjs
new file mode 100644
index 0000000..88e7bb1
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/index-styles.f5784fbd.mjs
@@ -0,0 +1,18 @@
+const elAutocomplete = '.el-autocomplete{display:inline-block;position:relative}.el-autocomplete__popper.el-popper{background:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-autocomplete__popper.el-popper,.el-autocomplete__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-autocomplete__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-autocomplete-suggestion{border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-autocomplete-suggestion__wrap{box-sizing:border-box;max-height:280px;padding:10px 0}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-base);line-height:34px;list-style:none;margin:0;overflow:hidden;padding:0 20px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:var(--el-fill-color-light)}.el-autocomplete-suggestion li.divider{border-top:1px solid var(--el-color-black);margin-top:6px}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{color:var(--el-text-color-secondary);font-size:20px;height:100px;line-height:100px;text-align:center}.el-autocomplete-suggestion.is-loading li:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:var(--el-bg-color-overlay)}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}';
+
+const elInput = ".el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;display:inline-block;font-size:var(--el-font-size-base);position:relative;vertical-align:bottom;width:100%}.el-textarea__inner{-webkit-appearance:none;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));display:block;font-family:inherit;font-size:inherit;line-height:1.5;padding:5px 11px;position:relative;resize:vertical;transition:var(--el-transition-box-shadow);width:100%}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset;outline:0}.el-textarea .el-input__count{background:var(--el-fill-color-blank);bottom:5px;color:var(--el-color-info);font-size:12px;line-height:14px;position:absolute;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;--el-input-height:var(--el-component-size);box-sizing:border-box;display:inline-flex;font-size:var(--el-font-size-base);line-height:var(--el-input-height);position:relative;vertical-align:middle;width:var(--el-input-width)}.el-input::-webkit-scrollbar{width:6px;z-index:11}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{background:var(--el-text-color-disabled);border-radius:5px;width:6px}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);cursor:pointer;font-size:14px}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{align-items:center;color:var(--el-color-info);display:inline-flex;font-size:12px;height:100%}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);display:inline-block;line-height:normal;padding-left:8px}.el-input__wrapper{align-items:center;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;cursor:text;display:inline-flex;flex-grow:1;justify-content:center;padding:1px 11px;transform:translateZ(0);transition:var(--el-transition-box-shadow)}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px);-webkit-appearance:none;background:0 0;border:none;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));flex-grow:1;font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);outline:0;padding:0;width:100%}.el-input__inner:focus{outline:0}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__prefix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__prefix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__suffix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{align-items:center;display:flex;height:inherit;justify-content:center;line-height:inherit;margin-left:8px;transition:all var(--el-transition-duration)}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color,) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{-webkit-text-fill-color:var(--el-disabled-text-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small .el-input__inner{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{align-items:stretch;display:inline-flex;width:100%}.el-input-group__append,.el-input-group__prepend{align-items:center;background-color:var(--el-fill-color-light);border-radius:var(--el-input-border-radius);color:var(--el-color-info);display:inline-flex;justify-content:center;min-height:100%;padding:0 20px;position:relative;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-input__wrapper,.el-input-group__append div.el-select:hover .el-input__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-input__wrapper,.el-input-group__prepend div.el-select:hover .el-input__wrapper{background-color:transparent;border-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-left:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper,.el-input-group__append{border-bottom-left-radius:0;border-top-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__wrapper{border-bottom-right-radius:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper,.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper:focus{box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important;z-index:2}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper:focus{outline:0}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__wrapper{box-shadow:1px 0 0 0 var(--el-input-hover-border-color) inset,1px 0 0 0 var(--el-input-hover-border-color),0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important;z-index:1}.el-input-group--append>.el-input__wrapper{border-bottom-right-radius:0;border-top-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__wrapper{border-bottom-left-radius:0;border-top-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__wrapper{box-shadow:-1px 0 0 0 var(--el-input-focus-border-color),-1px 0 0 0 var(--el-input-focus-border-color) inset,0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important;z-index:2}.el-input-group--append .el-input-group__append .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__wrapper{box-shadow:-1px 0 0 0 var(--el-input-hover-border-color),-1px 0 0 0 var(--el-input-hover-border-color) inset,0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important;z-index:1}";
+
+const elScrollbar = ".el-scrollbar{--el-scrollbar-opacity:0.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:0.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary);height:100%;overflow:hidden;position:relative}.el-scrollbar__wrap{height:100%;overflow:auto}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));border-radius:inherit;cursor:pointer;display:block;height:0;opacity:var(--el-scrollbar-opacity,.3);position:relative;transition:var(--el-transition-duration) background-color;width:0}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{border-radius:4px;bottom:2px;position:absolute;right:2px;z-index:1}.el-scrollbar__bar.is-vertical{top:2px;width:6px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}";
+
+const elDatePicker = '.el-date-table{font-size:12px;-webkit-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:var(--el-datepicker-text-color)}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child .el-date-table-cell{border-bottom-left-radius:15px;border-top-left-radius:15px;margin-left:5px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{border-bottom-right-radius:15px;border-top-right-radius:15px;margin-right:5px}.el-date-table.is-week-mode .el-date-table__row.current .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td{box-sizing:border-box;cursor:pointer;height:30px;padding:4px 0;position:relative;text-align:center;width:32px}.el-date-table td .el-date-table-cell{box-sizing:border-box;height:30px;padding:3px 0}.el-date-table td .el-date-table-cell .el-date-table-cell__text{border-radius:50%;display:block;height:24px;left:50%;line-height:24px;margin:0 auto;position:absolute;transform:translateX(-50%);width:24px}.el-date-table td.next-month,.el-date-table td.prev-month{color:var(--el-datepicker-off-text-color)}.el-date-table td.today{position:relative}.el-date-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-date-table td.today.end-date .el-date-table-cell__text,.el-date-table td.today.start-date .el-date-table-cell__text{color:#fff}.el-date-table td.available:hover{color:var(--el-datepicker-hover-text-color)}.el-date-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.current:not(.disabled) .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff}.el-date-table td.current:not(.disabled):focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-date-table td.end-date .el-date-table-cell,.el-date-table td.start-date .el-date-table-cell{color:#fff}.el-date-table td.end-date .el-date-table-cell__text,.el-date-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color)}.el-date-table td.start-date .el-date-table-cell{border-bottom-left-radius:15px;border-top-left-radius:15px;margin-left:5px}.el-date-table td.end-date .el-date-table-cell{border-bottom-right-radius:15px;border-top-right-radius:15px;margin-right:5px}.el-date-table td.disabled .el-date-table-cell{background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);cursor:not-allowed;opacity:1}.el-date-table td.selected .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color);border-radius:15px;margin-left:5px;margin-right:5px}.el-date-table td.selected .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.selected .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);border-radius:15px;color:#fff}.el-date-table td.week{color:var(--el-datepicker-header-text-color);font-size:80%}.el-date-table td:focus{outline:0}.el-date-table th{border-bottom:1px solid var(--el-border-color-lighter);color:var(--el-datepicker-header-text-color);font-weight:400;padding:5px}.el-month-table{border-collapse:collapse;font-size:12px;margin:-1px}.el-month-table td{cursor:pointer;padding:8px 0;text-align:center}.el-month-table td div{box-sizing:border-box;height:48px;padding:6px 0}.el-month-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed}.el-month-table td.disabled .cell,.el-month-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-month-table td .cell{border-radius:18px;color:var(--el-datepicker-text-color);display:block;height:36px;line-height:36px;margin:0 auto;width:60px}.el-month-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-month-table td.in-range div{background-color:var(--el-datepicker-inrange-bg-color)}.el-month-table td.in-range div:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{background-color:var(--el-datepicker-active-color);color:#fff}.el-month-table td.start-date div{border-bottom-left-radius:24px;border-top-left-radius:24px}.el-month-table td.end-date div{border-bottom-right-radius:24px;border-top-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-month-table td:focus-visible{outline:0}.el-month-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-year-table{border-collapse:collapse;font-size:12px;margin:-1px}.el-year-table .el-icon{color:var(--el-datepicker-icon-color)}.el-year-table td{cursor:pointer;padding:20px 3px;text-align:center}.el-year-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-year-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed}.el-year-table td.disabled .cell,.el-year-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-year-table td .cell{border-radius:18px;color:var(--el-datepicker-text-color);display:block;height:36px;line-height:36px;margin:0 auto;width:48px}.el-year-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-year-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-year-table td:focus-visible{outline:0}.el-year-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{display:inline-block;max-height:192px;overflow:auto;position:relative;vertical-align:top;width:50%}.el-time-spinner__wrapper.el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;overflow:hidden;text-align:center}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:default}.el-time-spinner__arrow{color:var(--el-text-color-secondary);cursor:pointer;font-size:12px;height:30px;left:0;line-height:30px;position:absolute;text-align:center;width:100%;z-index:var(--el-index-normal)}.el-time-spinner__arrow:hover{color:var(--el-color-primary)}.el-time-spinner__arrow.arrow-up{top:10px}.el-time-spinner__arrow.arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__list{list-style:none;margin:0}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;height:80px;width:100%}.el-time-spinner__item{color:var(--el-text-color-regular);font-size:12px;height:32px;line-height:32px}.el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:pointer}.el-time-spinner__item.is-active:not(.is-disabled){color:var(--el-text-color-primary);font-weight:700}.el-time-spinner__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transform-origin:center top;transition:var(--el-transition-md-fade)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transform-origin:center bottom;transition:var(--el-transition-md-fade)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transform-origin:top left;transition:var(--el-transition-md-fade)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-picker__popper{--el-datepicker-border-color:var(--el-disabled-border-color)}.el-picker__popper.el-popper{background:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-picker__popper.el-popper,.el-picker__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-datepicker-border-color)}.el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-date-editor{--el-date-editor-width:220px;--el-date-editor-monthrange-width:300px;--el-date-editor-daterange-width:350px;--el-date-editor-datetimerange-width:400px;--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;position:relative;text-align:left;vertical-align:middle}.el-date-editor.el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-date-editor.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-date-editor.el-input,.el-date-editor.el-input__wrapper{height:var(--el-input-height,var(--el-component-size));width:var(--el-date-editor-width)}.el-date-editor--monthrange{--el-date-editor-width:var(--el-date-editor-monthrange-width)}.el-date-editor--daterange,.el-date-editor--timerange{--el-date-editor-width:var(--el-date-editor-daterange-width)}.el-date-editor--datetimerange{--el-date-editor-width:var(--el-date-editor-datetimerange-width)}.el-date-editor--dates .el-input__wrapper{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .clear-icon,.el-date-editor .close-icon{cursor:pointer}.el-date-editor .clear-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__icon{color:var(--el-text-color-placeholder);float:left;font-size:14px;height:inherit}.el-date-editor .el-range__icon svg{vertical-align:middle}.el-date-editor .el-range-input{-webkit-appearance:none;appearance:none;background-color:transparent;border:none;color:var(--el-text-color-regular);display:inline-block;font-size:var(--el-font-size-base);height:30px;line-height:30px;margin:0;outline:0;padding:0;text-align:center;width:39%}.el-date-editor .el-range-input::placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-separator{align-items:center;color:var(--el-text-color-primary);display:inline-flex;flex:1;font-size:14px;height:100%;justify-content:center;margin:0;padding:0 5px;word-break:keep-all}.el-date-editor .el-range__close-icon{color:var(--el-text-color-placeholder);cursor:pointer;font-size:14px;height:inherit;width:unset}.el-date-editor .el-range__close-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__close-icon svg{vertical-align:middle}.el-date-editor .el-range__close-icon--hidden{opacity:0;visibility:hidden}.el-range-editor.el-input__wrapper{align-items:center;display:inline-flex;padding:0 10px}.el-range-editor.is-active,.el-range-editor.is-active:hover{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-range-editor--large{line-height:var(--el-component-size-large)}.el-range-editor--large.el-input__wrapper{height:var(--el-component-size-large)}.el-range-editor--large .el-range-separator{font-size:14px;line-height:40px}.el-range-editor--large .el-range-input{font-size:14px;height:38px;line-height:38px}.el-range-editor--small{line-height:var(--el-component-size-small)}.el-range-editor--small.el-input__wrapper{height:var(--el-component-size-small)}.el-range-editor--small .el-range-separator{font-size:12px;line-height:24px}.el-range-editor--small .el-range-input{font-size:12px;height:22px;line-height:22px}.el-range-editor.is-disabled{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled,.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:var(--el-disabled-border-color)}.el-range-editor.is-disabled input{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled input::placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled .el-range-separator{color:var(--el-disabled-text-color)}.el-picker-panel{background:var(--el-bg-color-overlay);border-radius:var(--el-border-radius-base);color:var(--el-text-color-regular);line-height:30px}.el-picker-panel .el-time-panel{background-color:var(--el-bg-color-overlay);border:1px solid var(--el-datepicker-border-color);box-shadow:var(--el-box-shadow-light);margin:5px 0}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{clear:both;content:"";display:table}.el-picker-panel__content{margin:15px;position:relative}.el-picker-panel__footer{background-color:var(--el-bg-color-overlay);border-top:1px solid var(--el-datepicker-inner-border-color);font-size:0;padding:4px 12px;position:relative;text-align:right}.el-picker-panel__shortcut{background-color:transparent;border:0;color:var(--el-datepicker-text-color);cursor:pointer;display:block;font-size:14px;line-height:28px;outline:0;padding-left:12px;text-align:left;width:100%}.el-picker-panel__shortcut:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:var(--el-datepicker-active-color)}.el-picker-panel__btn{background-color:transparent;border:1px solid var(--el-fill-color-darker);border-radius:2px;color:var(--el-text-color-primary);cursor:pointer;font-size:12px;line-height:24px;outline:0;padding:0 20px}.el-picker-panel__btn[disabled]{color:var(--el-text-color-disabled);cursor:not-allowed}.el-picker-panel__icon-btn{background:0 0;border:0;color:var(--el-datepicker-icon-color);cursor:pointer;font-size:12px;margin-top:8px;outline:0}.el-picker-panel__icon-btn:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn:focus-visible{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn.is-disabled{color:var(--el-text-color-disabled)}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__icon-btn .el-icon{cursor:pointer;font-size:inherit}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{background-color:var(--el-bg-color-overlay);border-right:1px solid var(--el-datepicker-inner-border-color);bottom:0;box-sizing:border-box;overflow:auto;padding-top:6px;position:absolute;top:0;width:110px}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-date-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary);width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{display:table-cell;padding:0 5px;position:relative}.el-date-picker__time-header{border-bottom:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;display:table;font-size:12px;padding:8px 5px 5px;position:relative;width:100%}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{border-bottom:1px solid var(--el-border-color-lighter);margin-bottom:0;padding-bottom:12px}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{color:var(--el-text-color-regular);cursor:pointer;font-size:16px;font-weight:500;line-height:22px;padding:0 5px;text-align:center}.el-date-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label:focus-visible{color:var(--el-datepicker-hover-text-color);outline:0}.el-date-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{cursor:pointer;float:left;line-height:30px;margin-left:10px}.el-date-picker .el-time-panel{position:absolute}.el-date-range-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary);width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{height:28px;position:relative;text-align:center}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{box-sizing:border-box;float:left;margin:0;padding:16px;width:50%}.el-date-range-picker__content.is-left{border-right:1px solid var(--el-datepicker-inner-border-color)}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{border-bottom:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;display:table;font-size:12px;padding:8px 5px 5px;position:relative;width:100%}.el-date-range-picker__time-header>.el-icon-arrow-right{color:var(--el-datepicker-icon-color);display:table-cell;font-size:20px;vertical-align:middle}.el-date-range-picker__time-picker-wrap{display:table-cell;padding:0 5px;position:relative}.el-date-range-picker__time-picker-wrap .el-picker-panel{background:#fff;position:absolute;right:0;top:13px;z-index:1}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-time-range-picker{overflow:visible;width:354px}.el-time-range-picker__content{padding:10px;position:relative;text-align:center;z-index:1}.el-time-range-picker__cell{box-sizing:border-box;display:inline-block;margin:0;padding:4px 7px 7px;width:50%}.el-time-range-picker__header{font-size:14px;margin-bottom:5px;text-align:center}.el-time-range-picker__body{border:1px solid var(--el-datepicker-border-color);border-radius:2px}.el-time-panel{border-radius:2px;box-sizing:content-box;left:0;position:relative;-webkit-user-select:none;user-select:none;width:180px;z-index:var(--el-index-top)}.el-time-panel__content{font-size:0;overflow:hidden;position:relative}.el-time-panel__content:after,.el-time-panel__content:before{box-sizing:border-box;content:"";height:32px;left:0;margin-top:-16px;padding-top:6px;position:absolute;right:0;text-align:left;top:50%;z-index:-1}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{border-bottom:1px solid var(--el-border-color-light);border-top:1px solid var(--el-border-color-light);margin-left:12%;margin-right:12%;padding-left:50%}.el-time-panel__content.has-seconds:after{left:66.6666666667%}.el-time-panel__content.has-seconds:before{padding-left:33.3333333333%}.el-time-panel__footer{border-top:1px solid var(--el-timepicker-inner-border-color,var(--el-border-color-light));box-sizing:border-box;height:36px;line-height:25px;padding:4px;text-align:right}.el-time-panel__btn{background-color:transparent;border:none;color:var(--el-text-color-primary);cursor:pointer;font-size:12px;line-height:28px;margin:0 5px;outline:0;padding:0 5px}.el-time-panel__btn.confirm{color:var(--el-timepicker-active-color,var(--el-color-primary));font-weight:800}';
+
+const elButton = '.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:hsla(0,0%,100%,.5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-color-info);--el-button-active-color:var(--el-text-color-primary);align-items:center;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);border-radius:var(--el-border-radius-base);box-sizing:border-box;color:var(--el-button-text-color);cursor:pointer;display:inline-flex;font-size:var(--el-font-size-base);font-weight:var(--el-button-font-weight);height:32px;justify-content:center;line-height:1;outline:0;padding:8px 15px;text-align:center;transition:.1s;-webkit-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-button:focus,.el-button:hover{background-color:var(--el-button-hover-bg-color);border-color:var(--el-button-hover-border-color);color:var(--el-button-hover-text-color);outline:0}.el-button:active{background-color:var(--el-button-active-bg-color);border-color:var(--el-button-active-border-color);color:var(--el-button-active-text-color);outline:0}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button>span{align-items:center;display:inline-flex}.el-button+.el-button{margin-left:12px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{background-color:var(--el-button-active-bg-color);border-color:var(--el-button-active-border-color);color:var(--el-button-active-text-color);outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{background-color:var(--el-button-disabled-bg-color);background-image:none;border-color:var(--el-button-disabled-border-color);color:var(--el-button-disabled-text-color);cursor:not-allowed}.el-button.is-loading{pointer-events:none;position:relative}.el-button.is-loading:before{background-color:var(--el-mask-color-extra-light);border-radius:inherit;bottom:-1px;content:"";left:-1px;pointer-events:none;position:absolute;right:-1px;top:-1px;z-index:1}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{border-radius:50%;padding:8px;width:32px}.el-button.is-text{background-color:transparent;border:0 solid transparent;color:var(--el-button-text-color)}.el-button.is-text.is-disabled{background-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button.is-text:not(.is-disabled):focus,.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:focus,.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{background:0 0;border-color:transparent;color:var(--el-button-text-color);height:auto;padding:2px}.el-button.is-link:focus,.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{background-color:transparent!important;border-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button.is-link:not(.is-disabled):active,.el-button.is-link:not(.is-disabled):focus,.el-button.is-link:not(.is-disabled):hover{background-color:transparent;border-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color)}.el-button--text{background:0 0;border-color:transparent;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{background-color:transparent!important;border-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button--text:not(.is-disabled):focus,.el-button--text:not(.is-disabled):hover{background-color:transparent;border-color:transparent;color:var(--el-color-primary-light-3)}.el-button--text:not(.is-disabled):active{background-color:transparent;border-color:transparent;color:var(--el-color-primary-dark-2)}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8);color:var(--el-color-primary-light-5)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8);color:var(--el-color-success-light-5)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8);color:var(--el-color-warning-light-5)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8);color:var(--el-color-danger-light-5)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8);color:var(--el-color-info-light-5)}.el-button--large{--el-button-size:40px;border-radius:var(--el-border-radius-base);font-size:var(--el-font-size-base);height:var(--el-button-size);padding:12px 19px}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{padding:12px;width:var(--el-button-size)}.el-button--small{--el-button-size:24px;border-radius:calc(var(--el-border-radius-base) - 1px);font-size:12px;height:var(--el-button-size);padding:5px 11px}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{padding:5px;width:var(--el-button-size)}';
+
+const elConfigProvider = "";
+
+const index_vue_vue_type_style_index_0_scoped_7cd5a437_lang = ".contentcontent[data-v-7cd5a437]{background:#fff;border-radius:16px;display:flex;flex-direction:column;margin:30px auto 90px;min-height:calc(100vh - 120px);position:relative;width:1200px}.contentcontent .header[data-v-7cd5a437]{border-bottom:1px solid #ebebeb;color:#000;font-size:20px;font-weight:650;height:88px;padding-left:30px}.contentcontent .box .titletitle[data-v-7cd5a437]{color:#666;font-size:14px;margin-bottom:10px}.contentcontent .box .box-left[data-v-7cd5a437]{border-right:16px solid #f6f6f6}.contentcontent .box .box-left .area-box[data-v-7cd5a437]{border-bottom:1px solid #ebebeb;padding:30px 50px 30px 30px}.contentcontent .box .box-left .area-box .item[data-v-7cd5a437]:not(:last-of-type){margin-bottom:30px}.contentcontent .box .box-left .area-box .info-box[data-v-7cd5a437]{background-color:hsla(0,0%,100%,0);border:1px solid #d7d7d7;border-radius:5px;display:flex;flex-direction:column;height:158px;justify-content:center;width:452px}.contentcontent .box .box-left .area-box .info-box .info-item[data-v-7cd5a437]{height:50px}.contentcontent .box .box-left .area-box .info-box .info-item[data-v-7cd5a437]:not(:last-of-type){border-bottom:1px solid #d7d7d7}.contentcontent .box .box-left .area-box .info-box .info-item .info-name[data-v-7cd5a437]{color:#666;font-size:14px;padding:0 14px}.contentcontent .box .box-left .area-box .info-box .info-item .input[data-v-7cd5a437]{border:none;box-shadow:none;height:100%;outline:none}.contentcontent .box .box-left .area-box .info-box .info-item .input[data-v-7cd5a437] .el-input__wrapper{box-shadow:none}.contentcontent .box .box-left .area-box .info-box .info-item[data-v-7cd5a437] .el-autocomplete{width:100%}.contentcontent .box .box-left .area-box .info-box .info-item[data-v-7cd5a437] .el-autocomplete .el-input__wrapper{box-shadow:none}.contentcontent .box .box-left .area-box .item-input-box[data-v-7cd5a437]{border:1px solid #d7d7d7;border-radius:5px;cursor:pointer;height:46px;width:452px}.contentcontent .box .box-left .area-box .item-input-box[data-v-7cd5a437] .el-input{height:100%}.contentcontent .box .box-left .area-box .item-input-box[data-v-7cd5a437] .el-input .el-input__wrapper{box-shadow:none;height:100%}.contentcontent .box .box-left .area-box .time-box .calendar-icon[data-v-7cd5a437]{height:16px;margin:0 12px;width:15px}.contentcontent .box .box-left .area-box .time-box[data-v-7cd5a437] .el-input .el-input__prefix{display:none}.contentcontent .box .box-left .visible-box[data-v-7cd5a437]{color:#555;cursor:pointer;font-size:14px;margin:30px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.contentcontent .box .box-left .visible-box .visible-icon[data-v-7cd5a437]{height:18px;margin-right:5px;width:18px}.contentcontent .box .box-right .area-box[data-v-7cd5a437]{padding:30px 30px 30px 50px}.contentcontent .box .box-right .area-box .course-box[data-v-7cd5a437]{background-color:hsla(0,0%,100%,0);border:1px solid #d7d7d7;border-radius:5px;min-height:480px;width:572px}.contentcontent .box .box-right .area-box .course-box[data-v-7cd5a437] .el-textarea__inner{box-shadow:none;min-height:480px!important;padding:13px}.contentcontent .hint-box[data-v-7cd5a437]{background-color:#f6f6f6;color:#555;font-size:13px;height:58px}.asterisk[data-v-7cd5a437]{color:#fa9183;margin-left:5px}.floor-box[data-v-7cd5a437]{background-color:#fff;bottom:0;box-shadow:0 -1px 2px rgba(0,0,0,.192);height:90px;min-width:1200px;position:fixed;width:100vw}.floor-box .box[data-v-7cd5a437]{height:100%;justify-content:space-between;margin:0 auto;padding:0 30px;width:1200px}.floor-box .box .anonymous-box[data-v-7cd5a437]{color:#333;cursor:pointer;font-size:14px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.floor-box .box .anonymous-box .text[data-v-7cd5a437]{color:#aaa;font-size:13px}.floor-box .box .anonymous-box .anonymous-icon[data-v-7cd5a437]{height:18px;width:18px}.floor-box .box .issue-btn[data-v-7cd5a437]{background-color:#fddf6d;border-radius:190px;color:#000;cursor:pointer;font-size:16px;height:46px;width:200px}@media (max-width:1300px){.save-box.save-left[data-v-7cd5a437]{left:0!important}.save-box.save-right[data-v-7cd5a437]{right:0!important}}.save-box[data-v-7cd5a437]{color:#666;cursor:pointer;font-size:14px;position:absolute;top:0}.save-box.save-left[data-v-7cd5a437]{left:calc(650px - 50vw)}.save-box.save-right[data-v-7cd5a437]{right:calc(650px - 50vw)}.save-box.save-right .save-icon[data-v-7cd5a437]{height:16px;margin-left:10px;width:16px}.save-box .save-icon[data-v-7cd5a437]{height:22px;margin-right:10px;transform:rotate(180deg);width:22px}";
+
+const indexStyles_f5784fbd = [elAutocomplete, elInput, elScrollbar, elDatePicker, elButton, elConfigProvider, index_vue_vue_type_style_index_0_scoped_7cd5a437_lang, index_vue_vue_type_style_index_0_scoped_7cd5a437_lang];
+
+export { indexStyles_f5784fbd as default };
+//# sourceMappingURL=index-styles.f5784fbd.mjs.map
diff --git a/.output/server/chunks/app/_nuxt/index-styles.f5784fbd.mjs.map b/.output/server/chunks/app/_nuxt/index-styles.f5784fbd.mjs.map
new file mode 100644
index 0000000..11a3d2a
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/index-styles.f5784fbd.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"index-styles.f5784fbd.mjs","sources":["../../../../../.nuxt/dist/server/_nuxt/index-styles-1.mjs-435ecdca.js","../../../../../.nuxt/dist/server/_nuxt/index-styles-2.mjs-3f7c657a.js","../../../../../.nuxt/dist/server/_nuxt/index-styles-3.mjs-adcb8369.js","../../../../../.nuxt/dist/server/_nuxt/index-styles-4.mjs-9968d331.js","../../../../../.nuxt/dist/server/_nuxt/index-styles-5.mjs-84b05e65.js","../../../../../.nuxt/dist/server/_nuxt/index-styles-6.mjs-ecc1203b.js","../../../../../.nuxt/dist/server/_nuxt/index-styles-7.mjs-75db866a.js","../../../../../.nuxt/dist/server/_nuxt/index-styles.f5784fbd.mjs"],"sourcesContent":null,"names":["style_0","style_1","style_2","style_3","style_4","style_5","style_6","style_7"],"mappings":"AAAA,MAAM,cAAiB,GAAA,8jEAAA;;ACAvB,MAAM,OAAU,GAAA,4iYAAA;;ACAhB,MAAM,WAAc,GAAA,kzCAAA;;ACApB,MAAM,YAAe,GAAA,k7uBAAA;;ACArB,MAAM,QAAW,GAAA,+zeAAA;;ACAjB,MAAM,gBAAmB,GAAA,EAAA;;ACAzB,MAAM,qDAAwD,GAAA,m+IAAA;;ACQ9D,6BAAe,CAACA,cAAO,EAAEC,OAAO,EAAEC,WAAO,EAAEC,YAAO,EAAEC,QAAO,EAAEC,gBAAO,EAAEC,qDAAO,EAAEC,qDAAO;;;;"}
\ No newline at end of file
diff --git a/.output/server/chunks/app/_nuxt/island-renderer-1d37df94.mjs b/.output/server/chunks/app/_nuxt/island-renderer-1d37df94.mjs
new file mode 100644
index 0000000..e53160b
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/island-renderer-1d37df94.mjs
@@ -0,0 +1,43 @@
+import { defineComponent, onErrorCaptured, createVNode } from 'vue';
+import { c as createError } from '../server.mjs';
+import '../../nitro/node-server.mjs';
+import 'node:http';
+import 'node:https';
+import 'fs';
+import 'path';
+import 'node:fs';
+import 'node:url';
+import 'unhead';
+import '@unhead/shared';
+import 'vue-router';
+import 'vue/server-renderer';
+
+const components_islands = {};
+const islandComponents = /* @__PURE__ */ Object.freeze({
+ __proto__: null,
+ default: components_islands
+});
+const islandRenderer = defineComponent({
+ props: {
+ context: {
+ type: Object,
+ required: true
+ }
+ },
+ setup(props) {
+ const component = islandComponents[props.context.name];
+ if (!component) {
+ throw createError({
+ statusCode: 404,
+ statusMessage: `Island component not found: ${props.context.name}`
+ });
+ }
+ onErrorCaptured((e) => {
+ console.log(e);
+ });
+ return () => createVNode(component || "span", { ...props.context.props, "nuxt-ssr-component-uid": "" });
+ }
+});
+
+export { islandRenderer as default };
+//# sourceMappingURL=island-renderer-1d37df94.mjs.map
diff --git a/.output/server/chunks/app/_nuxt/island-renderer-1d37df94.mjs.map b/.output/server/chunks/app/_nuxt/island-renderer-1d37df94.mjs.map
new file mode 100644
index 0000000..bf72b38
--- /dev/null
+++ b/.output/server/chunks/app/_nuxt/island-renderer-1d37df94.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"island-renderer-1d37df94.mjs","sources":["../../../../../.nuxt/dist/server/_nuxt/island-renderer-1d37df94.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;AAkBA,MAAM,qBAAqB,EAAC,CAAA;AAC5B,MAAM,gBAAA,0BAA0C,MAAO,CAAA;AAAA,EACrD,SAAW,EAAA,IAAA;AAAA,EACX,OAAS,EAAA,kBAAA;AACX,CAAC,CAAA,CAAA;AACD,MAAM,iBAAiB,eAAgB,CAAA;AAAA,EACrC,KAAO,EAAA;AAAA,IACL,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,MAAA;AAAA,MACN,QAAU,EAAA,IAAA;AAAA,KACZ;AAAA,GACF;AAAA,EACA,MAAM,KAAO,EAAA;AACX,IAAA,MAAM,SAAY,GAAA,gBAAA,CAAiB,KAAM,CAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;AACrD,IAAA,IAAI,CAAC,SAAW,EAAA;AACd,MAAA,MAAM,WAAY,CAAA;AAAA,QAChB,UAAY,EAAA,GAAA;AAAA,QACZ,aAAe,EAAA,CAAA,4BAAA,EAA+B,KAAM,CAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;AAAA,OACjE,CAAA,CAAA;AAAA,KACH;AACA,IAAA,eAAA,CAAgB,CAAC,CAAM,KAAA;AACrB,MAAA,OAAA,CAAQ,IAAI,CAAC,CAAA,CAAA;AAAA,KACd,CAAA,CAAA;AACD,IAAO,OAAA,MAAM,WAAY,CAAA,SAAA,IAAa,MAAQ,EAAA,EAAE,GAAG,KAAA,CAAM,OAAQ,CAAA,KAAA,EAAO,wBAA0B,EAAA,EAAA,EAAI,CAAA,CAAA;AAAA,GACxG;AACF,CAAC;;;;"}
\ No newline at end of file
diff --git a/.output/server/chunks/app/client.manifest.mjs b/.output/server/chunks/app/client.manifest.mjs
new file mode 100644
index 0000000..90c78fe
--- /dev/null
+++ b/.output/server/chunks/app/client.manifest.mjs
@@ -0,0 +1,611 @@
+const client_manifest = {
+ "__plugin-vue_export-helper.5ffd2309.js": {
+ "resourceType": "script",
+ "module": true,
+ "prefetch": true,
+ "preload": true,
+ "file": "_plugin-vue_export-helper.5ffd2309.js",
+ "imports": [
+ "node_modules/nuxt/dist/app/entry.js"
+ ]
+ },
+ "_cross-icon.45090166.js": {
+ "resourceType": "script",
+ "module": true,
+ "prefetch": true,
+ "preload": true,
+ "css": [
+ "cross-icon.a9c3a5f3.css"
+ ],
+ "file": "cross-icon.45090166.js",
+ "imports": [
+ "node_modules/nuxt/dist/app/entry.js",
+ "__plugin-vue_export-helper.5ffd2309.js"
+ ]
+ },
+ "cross-icon.a9c3a5f3.css": {
+ "file": "cross-icon.a9c3a5f3.css",
+ "resourceType": "style",
+ "prefetch": true,
+ "preload": true
+ },
+ "_el-popper.fcf550db.js": {
+ "resourceType": "script",
+ "module": true,
+ "prefetch": true,
+ "preload": true,
+ "css": [
+ "el-popper.7909cce2.css"
+ ],
+ "file": "el-popper.fcf550db.js",
+ "imports": [
+ "_cross-icon.45090166.js",
+ "node_modules/nuxt/dist/app/entry.js"
+ ]
+ },
+ "el-popper.7909cce2.css": {
+ "file": "el-popper.7909cce2.css",
+ "resourceType": "style",
+ "prefetch": true,
+ "preload": true
+ },
+ "_eye-icon.d6b90277.js": {
+ "resourceType": "script",
+ "module": true,
+ "prefetch": true,
+ "preload": true,
+ "assets": [
+ "dot-yellow.4b5e135b.svg",
+ "dot-gray.86cdd7b5.svg",
+ "empty-icon.24a01ae2.svg",
+ "delete-icon.a2ab9c64.svg",
+ "arrow-gray.271dd0d3.svg",
+ "tick-green.2df56f28.svg",
+ "logo-icon.b6345ffb.png",
+ "add-icon.11ba1b26.svg",
+ "eye-icon.efcf8c6f.svg"
+ ],
+ "css": [
+ "eye-icon.4c304c4b.css"
+ ],
+ "file": "eye-icon.d6b90277.js",
+ "imports": [
+ "node_modules/nuxt/dist/app/entry.js",
+ "__plugin-vue_export-helper.5ffd2309.js",
+ "_cross-icon.45090166.js"
+ ]
+ },
+ "eye-icon.4c304c4b.css": {
+ "file": "eye-icon.4c304c4b.css",
+ "resourceType": "style",
+ "prefetch": true,
+ "preload": true
+ },
+ "dot-yellow.4b5e135b.svg": {
+ "file": "dot-yellow.4b5e135b.svg",
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml"
+ },
+ "dot-gray.86cdd7b5.svg": {
+ "file": "dot-gray.86cdd7b5.svg",
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml"
+ },
+ "empty-icon.24a01ae2.svg": {
+ "file": "empty-icon.24a01ae2.svg",
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml"
+ },
+ "delete-icon.a2ab9c64.svg": {
+ "file": "delete-icon.a2ab9c64.svg",
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml"
+ },
+ "arrow-gray.271dd0d3.svg": {
+ "file": "arrow-gray.271dd0d3.svg",
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml"
+ },
+ "tick-green.2df56f28.svg": {
+ "file": "tick-green.2df56f28.svg",
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml"
+ },
+ "logo-icon.b6345ffb.png": {
+ "file": "logo-icon.b6345ffb.png",
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/png"
+ },
+ "add-icon.11ba1b26.svg": {
+ "file": "add-icon.11ba1b26.svg",
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml"
+ },
+ "eye-icon.efcf8c6f.svg": {
+ "file": "eye-icon.efcf8c6f.svg",
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml"
+ },
+ "_masonry.c851f679.js": {
+ "resourceType": "script",
+ "module": true,
+ "prefetch": true,
+ "preload": true,
+ "file": "masonry.c851f679.js",
+ "imports": [
+ "_cross-icon.45090166.js"
+ ],
+ "isDynamicEntry": true
+ },
+ "assets/img/QR-code-icon.svg": {
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml",
+ "file": "QR-code-icon.a546cc6a.svg",
+ "src": "assets/img/QR-code-icon.svg"
+ },
+ "assets/img/add-icon.svg": {
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml",
+ "file": "add-icon.11ba1b26.svg",
+ "src": "assets/img/add-icon.svg"
+ },
+ "assets/img/arrow-black.svg": {
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml",
+ "file": "arrow-black.9629aa90.svg",
+ "src": "assets/img/arrow-black.svg"
+ },
+ "assets/img/arrow-gray.svg": {
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml",
+ "file": "arrow-gray.271dd0d3.svg",
+ "src": "assets/img/arrow-gray.svg"
+ },
+ "assets/img/calendar-icon.svg": {
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml",
+ "file": "calendar-icon.dc8f3cea.svg",
+ "src": "assets/img/calendar-icon.svg"
+ },
+ "assets/img/collect-icon-colours.svg": {
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml",
+ "file": "collect-icon-colours.6d2ade7f.svg",
+ "src": "assets/img/collect-icon-colours.svg"
+ },
+ "assets/img/comment-icon-gray.svg": {
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml",
+ "file": "comment-icon-gray.2c8779f9.svg",
+ "src": "assets/img/comment-icon-gray.svg"
+ },
+ "assets/img/comment-icon.svg": {
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml",
+ "file": "comment-icon.f7b16ad3.svg",
+ "src": "assets/img/comment-icon.svg"
+ },
+ "assets/img/delete-icon.svg": {
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml",
+ "file": "delete-icon.a2ab9c64.svg",
+ "src": "assets/img/delete-icon.svg"
+ },
+ "assets/img/dot-gray.svg": {
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml",
+ "file": "dot-gray.86cdd7b5.svg",
+ "src": "assets/img/dot-gray.svg"
+ },
+ "assets/img/dot-yellow.svg": {
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml",
+ "file": "dot-yellow.4b5e135b.svg",
+ "src": "assets/img/dot-yellow.svg"
+ },
+ "assets/img/empty-icon.svg": {
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml",
+ "file": "empty-icon.24a01ae2.svg",
+ "src": "assets/img/empty-icon.svg"
+ },
+ "assets/img/eye-icon.svg": {
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml",
+ "file": "eye-icon.efcf8c6f.svg",
+ "src": "assets/img/eye-icon.svg"
+ },
+ "assets/img/frame-no.svg": {
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml",
+ "file": "frame-no.28983b22.svg",
+ "src": "assets/img/frame-no.svg"
+ },
+ "assets/img/frame-pitch.svg": {
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml",
+ "file": "frame-pitch.02620f32.svg",
+ "src": "assets/img/frame-pitch.svg"
+ },
+ "assets/img/item-bj.svg": {
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml",
+ "file": "item-bj.0d22947a.svg",
+ "src": "assets/img/item-bj.svg"
+ },
+ "assets/img/like-no.svg": {
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml",
+ "file": "like-no.23054eaf.svg",
+ "src": "assets/img/like-no.svg"
+ },
+ "assets/img/logo-icon.png": {
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/png",
+ "file": "logo-icon.b6345ffb.png",
+ "src": "assets/img/logo-icon.png"
+ },
+ "assets/img/menu-icon-gray.svg": {
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml",
+ "file": "menu-icon-gray.d61f02b1.svg",
+ "src": "assets/img/menu-icon-gray.svg"
+ },
+ "assets/img/tick-green.svg": {
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml",
+ "file": "tick-green.2df56f28.svg",
+ "src": "assets/img/tick-green.svg"
+ },
+ "assets/img/time-icon.svg": {
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml",
+ "file": "time-icon.fef65a83.svg",
+ "src": "assets/img/time-icon.svg"
+ },
+ "assets/img/time-white-icon.svg": {
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml",
+ "file": "time-white-icon.805d0e12.svg",
+ "src": "assets/img/time-white-icon.svg"
+ },
+ "cross-icon.css": {
+ "resourceType": "style",
+ "prefetch": true,
+ "preload": true,
+ "file": "cross-icon.a9c3a5f3.css",
+ "src": "cross-icon.css"
+ },
+ "el-popper.css": {
+ "resourceType": "style",
+ "prefetch": true,
+ "preload": true,
+ "file": "el-popper.7909cce2.css",
+ "src": "el-popper.css"
+ },
+ "eye-icon.css": {
+ "resourceType": "style",
+ "prefetch": true,
+ "preload": true,
+ "file": "eye-icon.4c304c4b.css",
+ "src": "eye-icon.css"
+ },
+ "node_modules/@nuxt/ui-templates/dist/templates/error-404.css": {
+ "resourceType": "style",
+ "prefetch": true,
+ "preload": true,
+ "file": "error-404.7fc72018.css",
+ "src": "node_modules/@nuxt/ui-templates/dist/templates/error-404.css"
+ },
+ "node_modules/@nuxt/ui-templates/dist/templates/error-404.vue": {
+ "resourceType": "script",
+ "module": true,
+ "prefetch": true,
+ "preload": true,
+ "css": [],
+ "file": "error-404.447d008d.js",
+ "imports": [
+ "node_modules/nuxt/dist/app/entry.js",
+ "__plugin-vue_export-helper.5ffd2309.js"
+ ],
+ "isDynamicEntry": true,
+ "src": "node_modules/@nuxt/ui-templates/dist/templates/error-404.vue"
+ },
+ "error-404.7fc72018.css": {
+ "file": "error-404.7fc72018.css",
+ "resourceType": "style",
+ "prefetch": true,
+ "preload": true
+ },
+ "node_modules/@nuxt/ui-templates/dist/templates/error-500.css": {
+ "resourceType": "style",
+ "prefetch": true,
+ "preload": true,
+ "file": "error-500.c5df6088.css",
+ "src": "node_modules/@nuxt/ui-templates/dist/templates/error-500.css"
+ },
+ "node_modules/@nuxt/ui-templates/dist/templates/error-500.vue": {
+ "resourceType": "script",
+ "module": true,
+ "prefetch": true,
+ "preload": true,
+ "css": [],
+ "file": "error-500.694510b4.js",
+ "imports": [
+ "__plugin-vue_export-helper.5ffd2309.js",
+ "node_modules/nuxt/dist/app/entry.js"
+ ],
+ "isDynamicEntry": true,
+ "src": "node_modules/@nuxt/ui-templates/dist/templates/error-500.vue"
+ },
+ "error-500.c5df6088.css": {
+ "file": "error-500.c5df6088.css",
+ "resourceType": "style",
+ "prefetch": true,
+ "preload": true
+ },
+ "node_modules/nuxt/dist/app/entry.css": {
+ "resourceType": "style",
+ "prefetch": true,
+ "preload": true,
+ "file": "entry.8609db93.css",
+ "src": "node_modules/nuxt/dist/app/entry.css"
+ },
+ "node_modules/nuxt/dist/app/entry.js": {
+ "resourceType": "script",
+ "module": true,
+ "prefetch": true,
+ "preload": true,
+ "css": [
+ "entry.8609db93.css"
+ ],
+ "dynamicImports": [
+ "node_modules/@nuxt/ui-templates/dist/templates/error-404.vue",
+ "node_modules/@nuxt/ui-templates/dist/templates/error-500.vue"
+ ],
+ "file": "entry.115d913a.js",
+ "isEntry": true,
+ "src": "node_modules/nuxt/dist/app/entry.js",
+ "_globalCSS": true
+ },
+ "entry.8609db93.css": {
+ "file": "entry.8609db93.css",
+ "resourceType": "style",
+ "prefetch": true,
+ "preload": true
+ },
+ "pages/details/[id].css": {
+ "resourceType": "style",
+ "prefetch": true,
+ "preload": true,
+ "file": "_id_.dcb3d85d.css",
+ "src": "pages/details/[id].css"
+ },
+ "pages/details/[id].vue": {
+ "resourceType": "script",
+ "module": true,
+ "prefetch": true,
+ "preload": true,
+ "assets": [
+ "item-bj.0d22947a.svg",
+ "menu-icon-gray.d61f02b1.svg",
+ "comment-icon-gray.2c8779f9.svg",
+ "collect-icon-colours.6d2ade7f.svg",
+ "QR-code-icon.a546cc6a.svg"
+ ],
+ "css": [],
+ "file": "_id_.5def5bfc.js",
+ "imports": [
+ "_cross-icon.45090166.js",
+ "_eye-icon.d6b90277.js",
+ "_el-popper.fcf550db.js",
+ "node_modules/nuxt/dist/app/entry.js",
+ "__plugin-vue_export-helper.5ffd2309.js"
+ ],
+ "isDynamicEntry": true,
+ "src": "pages/details/[id].vue"
+ },
+ "_id_.dcb3d85d.css": {
+ "file": "_id_.dcb3d85d.css",
+ "resourceType": "style",
+ "prefetch": true,
+ "preload": true
+ },
+ "item-bj.0d22947a.svg": {
+ "file": "item-bj.0d22947a.svg",
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml"
+ },
+ "menu-icon-gray.d61f02b1.svg": {
+ "file": "menu-icon-gray.d61f02b1.svg",
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml"
+ },
+ "comment-icon-gray.2c8779f9.svg": {
+ "file": "comment-icon-gray.2c8779f9.svg",
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml"
+ },
+ "collect-icon-colours.6d2ade7f.svg": {
+ "file": "collect-icon-colours.6d2ade7f.svg",
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml"
+ },
+ "QR-code-icon.a546cc6a.svg": {
+ "file": "QR-code-icon.a546cc6a.svg",
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml"
+ },
+ "pages/index.html/index.css": {
+ "resourceType": "style",
+ "prefetch": true,
+ "preload": true,
+ "file": "index.bda1eb97.css",
+ "src": "pages/index.html/index.css"
+ },
+ "pages/index.html/index.vue": {
+ "resourceType": "script",
+ "module": true,
+ "prefetch": true,
+ "preload": true,
+ "assets": [
+ "time-icon.fef65a83.svg",
+ "time-white-icon.805d0e12.svg",
+ "like-no.23054eaf.svg",
+ "comment-icon.f7b16ad3.svg"
+ ],
+ "css": [],
+ "dynamicImports": [
+ "_masonry.c851f679.js"
+ ],
+ "file": "index.07256c26.js",
+ "imports": [
+ "node_modules/nuxt/dist/app/entry.js",
+ "_cross-icon.45090166.js",
+ "_eye-icon.d6b90277.js",
+ "__plugin-vue_export-helper.5ffd2309.js"
+ ],
+ "isDynamicEntry": true,
+ "src": "pages/index.html/index.vue"
+ },
+ "index.bda1eb97.css": {
+ "file": "index.bda1eb97.css",
+ "resourceType": "style",
+ "prefetch": true,
+ "preload": true
+ },
+ "time-icon.fef65a83.svg": {
+ "file": "time-icon.fef65a83.svg",
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml"
+ },
+ "time-white-icon.805d0e12.svg": {
+ "file": "time-white-icon.805d0e12.svg",
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml"
+ },
+ "like-no.23054eaf.svg": {
+ "file": "like-no.23054eaf.svg",
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml"
+ },
+ "comment-icon.f7b16ad3.svg": {
+ "file": "comment-icon.f7b16ad3.svg",
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml"
+ },
+ "pages/index.vue": {
+ "resourceType": "script",
+ "module": true,
+ "prefetch": true,
+ "preload": true,
+ "file": "index.c8a98951.js",
+ "imports": [
+ "node_modules/nuxt/dist/app/entry.js"
+ ],
+ "isDynamicEntry": true,
+ "src": "pages/index.vue"
+ },
+ "pages/publish/index.css": {
+ "resourceType": "style",
+ "prefetch": true,
+ "preload": true,
+ "file": "index.0b1f8d4c.css",
+ "src": "pages/publish/index.css"
+ },
+ "pages/publish/index.vue": {
+ "resourceType": "script",
+ "module": true,
+ "prefetch": true,
+ "preload": true,
+ "assets": [
+ "arrow-black.9629aa90.svg",
+ "calendar-icon.dc8f3cea.svg",
+ "frame-no.28983b22.svg",
+ "frame-pitch.02620f32.svg"
+ ],
+ "css": [],
+ "file": "index.c68e61d2.js",
+ "imports": [
+ "_cross-icon.45090166.js",
+ "node_modules/nuxt/dist/app/entry.js",
+ "_el-popper.fcf550db.js",
+ "__plugin-vue_export-helper.5ffd2309.js"
+ ],
+ "isDynamicEntry": true,
+ "src": "pages/publish/index.vue"
+ },
+ "index.0b1f8d4c.css": {
+ "file": "index.0b1f8d4c.css",
+ "resourceType": "style",
+ "prefetch": true,
+ "preload": true
+ },
+ "arrow-black.9629aa90.svg": {
+ "file": "arrow-black.9629aa90.svg",
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml"
+ },
+ "calendar-icon.dc8f3cea.svg": {
+ "file": "calendar-icon.dc8f3cea.svg",
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml"
+ },
+ "frame-no.28983b22.svg": {
+ "file": "frame-no.28983b22.svg",
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml"
+ },
+ "frame-pitch.02620f32.svg": {
+ "file": "frame-pitch.02620f32.svg",
+ "resourceType": "image",
+ "prefetch": true,
+ "mimeType": "image/svg+xml"
+ }
+};
+
+export { client_manifest as default };
+//# sourceMappingURL=client.manifest.mjs.map
diff --git a/.output/server/chunks/app/client.manifest.mjs.map b/.output/server/chunks/app/client.manifest.mjs.map
new file mode 100644
index 0000000..90a6870
--- /dev/null
+++ b/.output/server/chunks/app/client.manifest.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"client.manifest.mjs","sources":["../../../../.nuxt/dist/server/client.manifest.mjs"],"sourcesContent":null,"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/.output/server/chunks/app/server.mjs b/.output/server/chunks/app/server.mjs
new file mode 100644
index 0000000..1ee0c6f
--- /dev/null
+++ b/.output/server/chunks/app/server.mjs
@@ -0,0 +1,1136 @@
+import { version, unref, inject, hasInjectionContext, getCurrentInstance, ref, computed, createApp, effectScope, reactive, useSSRContext, defineAsyncComponent, provide, onErrorCaptured, onServerPrefetch, createVNode, resolveDynamicComponent, toRef, shallowRef, shallowReactive, isReadonly, isRef, isShallow, isReactive, toRaw, watchEffect, resolveComponent, mergeProps, nextTick } from 'vue';
+import { d as useRuntimeConfig$1, $ as $fetch, w as withQuery, l as hasProtocol, p as parseURL, m as isScriptProtocol, j as joinURL, h as createError$1, n as sanitizeStatusCode, o as createHooks } from '../nitro/node-server.mjs';
+import { getActiveHead } from 'unhead';
+import { defineHeadPlugin } from '@unhead/shared';
+import { createMemoryHistory, createRouter, START_LOCATION } from 'vue-router';
+import { ssrRenderSuspense, ssrRenderComponent, ssrRenderVNode } from 'vue/server-renderer';
+import 'node:http';
+import 'node:https';
+import 'fs';
+import 'path';
+import 'node:fs';
+import 'node:url';
+
+function createContext$1(opts = {}) {
+ let currentInstance;
+ let isSingleton = false;
+ const checkConflict = (instance) => {
+ if (currentInstance && currentInstance !== instance) {
+ throw new Error("Context conflict");
+ }
+ };
+ let als;
+ if (opts.asyncContext) {
+ const _AsyncLocalStorage = opts.AsyncLocalStorage || globalThis.AsyncLocalStorage;
+ if (_AsyncLocalStorage) {
+ als = new _AsyncLocalStorage();
+ } else {
+ console.warn("[unctx] `AsyncLocalStorage` is not provided.");
+ }
+ }
+ const _getCurrentInstance = () => {
+ if (als && currentInstance === void 0) {
+ const instance = als.getStore();
+ if (instance !== void 0) {
+ return instance;
+ }
+ }
+ return currentInstance;
+ };
+ return {
+ use: () => {
+ const _instance = _getCurrentInstance();
+ if (_instance === void 0) {
+ throw new Error("Context is not available");
+ }
+ return _instance;
+ },
+ tryUse: () => {
+ return _getCurrentInstance();
+ },
+ set: (instance, replace) => {
+ if (!replace) {
+ checkConflict(instance);
+ }
+ currentInstance = instance;
+ isSingleton = true;
+ },
+ unset: () => {
+ currentInstance = void 0;
+ isSingleton = false;
+ },
+ call: (instance, callback) => {
+ checkConflict(instance);
+ currentInstance = instance;
+ try {
+ return als ? als.run(instance, callback) : callback();
+ } finally {
+ if (!isSingleton) {
+ currentInstance = void 0;
+ }
+ }
+ },
+ async callAsync(instance, callback) {
+ currentInstance = instance;
+ const onRestore = () => {
+ currentInstance = instance;
+ };
+ const onLeave = () => currentInstance === instance ? onRestore : void 0;
+ asyncHandlers$1.add(onLeave);
+ try {
+ const r = als ? als.run(instance, callback) : callback();
+ if (!isSingleton) {
+ currentInstance = void 0;
+ }
+ return await r;
+ } finally {
+ asyncHandlers$1.delete(onLeave);
+ }
+ }
+ };
+}
+function createNamespace$1(defaultOpts = {}) {
+ const contexts = {};
+ return {
+ get(key, opts = {}) {
+ if (!contexts[key]) {
+ contexts[key] = createContext$1({ ...defaultOpts, ...opts });
+ }
+ contexts[key];
+ return contexts[key];
+ }
+ };
+}
+const _globalThis$1 = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : {};
+const globalKey$2 = "__unctx__";
+const defaultNamespace$1 = _globalThis$1[globalKey$2] || (_globalThis$1[globalKey$2] = createNamespace$1());
+const getContext = (key, opts = {}) => defaultNamespace$1.get(key, opts);
+const asyncHandlersKey$1 = "__unctx_async_handlers__";
+const asyncHandlers$1 = _globalThis$1[asyncHandlersKey$1] || (_globalThis$1[asyncHandlersKey$1] = /* @__PURE__ */ new Set());
+
+const appConfig = useRuntimeConfig$1().app;
+const baseURL = () => appConfig.baseURL;
+if (!globalThis.$fetch) {
+ globalThis.$fetch = $fetch.create({
+ baseURL: baseURL()
+ });
+}
+const nuxtAppCtx = /* @__PURE__ */ getContext("nuxt-app", {
+ asyncContext: false
+});
+const NuxtPluginIndicator = "__nuxt_plugin";
+function createNuxtApp(options) {
+ let hydratingCount = 0;
+ const nuxtApp = {
+ _scope: effectScope(),
+ provide: void 0,
+ globalName: "nuxt",
+ versions: {
+ get nuxt() {
+ return "3.8.2";
+ },
+ get vue() {
+ return nuxtApp.vueApp.version;
+ }
+ },
+ payload: reactive({
+ data: {},
+ state: {},
+ _errors: {},
+ ...{ serverRendered: true }
+ }),
+ static: {
+ data: {}
+ },
+ runWithContext: (fn) => nuxtApp._scope.run(() => callWithNuxt(nuxtApp, fn)),
+ isHydrating: false,
+ deferHydration() {
+ if (!nuxtApp.isHydrating) {
+ return () => {
+ };
+ }
+ hydratingCount++;
+ let called = false;
+ return () => {
+ if (called) {
+ return;
+ }
+ called = true;
+ hydratingCount--;
+ if (hydratingCount === 0) {
+ nuxtApp.isHydrating = false;
+ return nuxtApp.callHook("app:suspense:resolve");
+ }
+ };
+ },
+ _asyncDataPromises: {},
+ _asyncData: {},
+ _payloadRevivers: {},
+ ...options
+ };
+ nuxtApp.hooks = createHooks();
+ nuxtApp.hook = nuxtApp.hooks.hook;
+ {
+ const contextCaller = async function(hooks, args) {
+ for (const hook of hooks) {
+ await nuxtApp.runWithContext(() => hook(...args));
+ }
+ };
+ nuxtApp.hooks.callHook = (name, ...args) => nuxtApp.hooks.callHookWith(contextCaller, name, ...args);
+ }
+ nuxtApp.callHook = nuxtApp.hooks.callHook;
+ nuxtApp.provide = (name, value) => {
+ const $name = "$" + name;
+ defineGetter(nuxtApp, $name, value);
+ defineGetter(nuxtApp.vueApp.config.globalProperties, $name, value);
+ };
+ defineGetter(nuxtApp.vueApp, "$nuxt", nuxtApp);
+ defineGetter(nuxtApp.vueApp.config.globalProperties, "$nuxt", nuxtApp);
+ {
+ if (nuxtApp.ssrContext) {
+ nuxtApp.ssrContext.nuxt = nuxtApp;
+ nuxtApp.ssrContext._payloadReducers = {};
+ nuxtApp.payload.path = nuxtApp.ssrContext.url;
+ }
+ nuxtApp.ssrContext = nuxtApp.ssrContext || {};
+ if (nuxtApp.ssrContext.payload) {
+ Object.assign(nuxtApp.payload, nuxtApp.ssrContext.payload);
+ }
+ nuxtApp.ssrContext.payload = nuxtApp.payload;
+ nuxtApp.ssrContext.config = {
+ public: options.ssrContext.runtimeConfig.public,
+ app: options.ssrContext.runtimeConfig.app
+ };
+ }
+ const runtimeConfig = options.ssrContext.runtimeConfig;
+ nuxtApp.provide("config", runtimeConfig);
+ return nuxtApp;
+}
+async function applyPlugin(nuxtApp, plugin2) {
+ if (plugin2.hooks) {
+ nuxtApp.hooks.addHooks(plugin2.hooks);
+ }
+ if (typeof plugin2 === "function") {
+ const { provide: provide2 } = await nuxtApp.runWithContext(() => plugin2(nuxtApp)) || {};
+ if (provide2 && typeof provide2 === "object") {
+ for (const key in provide2) {
+ nuxtApp.provide(key, provide2[key]);
+ }
+ }
+ }
+}
+async function applyPlugins(nuxtApp, plugins2) {
+ var _a, _b;
+ const parallels = [];
+ const errors = [];
+ for (const plugin2 of plugins2) {
+ if (((_a = nuxtApp.ssrContext) == null ? void 0 : _a.islandContext) && ((_b = plugin2.env) == null ? void 0 : _b.islands) === false) {
+ continue;
+ }
+ const promise = applyPlugin(nuxtApp, plugin2);
+ if (plugin2.parallel) {
+ parallels.push(promise.catch((e) => errors.push(e)));
+ } else {
+ await promise;
+ }
+ }
+ await Promise.all(parallels);
+ if (errors.length) {
+ throw errors[0];
+ }
+}
+/*! @__NO_SIDE_EFFECTS__ */
+// @__NO_SIDE_EFFECTS__
+function defineNuxtPlugin(plugin2) {
+ if (typeof plugin2 === "function") {
+ return plugin2;
+ }
+ delete plugin2.name;
+ return Object.assign(plugin2.setup || (() => {
+ }), plugin2, { [NuxtPluginIndicator]: true });
+}
+function callWithNuxt(nuxt, setup, args) {
+ const fn = () => args ? setup(...args) : setup();
+ {
+ return nuxt.vueApp.runWithContext(() => nuxtAppCtx.callAsync(nuxt, fn));
+ }
+}
+/*! @__NO_SIDE_EFFECTS__ */
+// @__NO_SIDE_EFFECTS__
+function useNuxtApp() {
+ var _a;
+ let nuxtAppInstance;
+ if (hasInjectionContext()) {
+ nuxtAppInstance = (_a = getCurrentInstance()) == null ? void 0 : _a.appContext.app.$nuxt;
+ }
+ nuxtAppInstance = nuxtAppInstance || nuxtAppCtx.tryUse();
+ if (!nuxtAppInstance) {
+ {
+ throw new Error("[nuxt] instance unavailable");
+ }
+ }
+ return nuxtAppInstance;
+}
+/*! @__NO_SIDE_EFFECTS__ */
+// @__NO_SIDE_EFFECTS__
+function useRuntimeConfig() {
+ return (/* @__PURE__ */ useNuxtApp()).$config;
+}
+function defineGetter(obj, key, val) {
+ Object.defineProperty(obj, key, { get: () => val });
+}
+version.startsWith("3");
+function resolveUnref(r) {
+ return typeof r === "function" ? r() : unref(r);
+}
+function resolveUnrefHeadInput(ref2, lastKey = "") {
+ if (ref2 instanceof Promise)
+ return ref2;
+ const root = resolveUnref(ref2);
+ if (!ref2 || !root)
+ return root;
+ if (Array.isArray(root))
+ return root.map((r) => resolveUnrefHeadInput(r, lastKey));
+ if (typeof root === "object") {
+ return Object.fromEntries(
+ Object.entries(root).map(([k, v]) => {
+ if (k === "titleTemplate" || k.startsWith("on"))
+ return [k, unref(v)];
+ return [k, resolveUnrefHeadInput(v, k)];
+ })
+ );
+ }
+ return root;
+}
+defineHeadPlugin({
+ hooks: {
+ "entries:resolve": function(ctx) {
+ for (const entry2 of ctx.entries)
+ entry2.resolvedInput = resolveUnrefHeadInput(entry2.input);
+ }
+ }
+});
+const headSymbol = "usehead";
+const _global = typeof globalThis !== "undefined" ? globalThis : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
+const globalKey$1 = "__unhead_injection_handler__";
+function setHeadInjectionHandler(handler) {
+ _global[globalKey$1] = handler;
+}
+function injectHead() {
+ if (globalKey$1 in _global) {
+ return _global[globalKey$1]();
+ }
+ const head = inject(headSymbol);
+ if (!head && "production" !== "production")
+ console.warn("Unhead is missing Vue context, falling back to shared context. This may have unexpected results.");
+ return head || getActiveHead();
+}
+const unhead_KgADcZ0jPj = /* @__PURE__ */ defineNuxtPlugin({
+ name: "nuxt:head",
+ enforce: "pre",
+ setup(nuxtApp) {
+ const head = nuxtApp.ssrContext.head;
+ setHeadInjectionHandler(
+ // need a fresh instance of the nuxt app to avoid parallel requests interfering with each other
+ () => (/* @__PURE__ */ useNuxtApp()).vueApp._context.provides.usehead
+ );
+ nuxtApp.vueApp.use(head);
+ }
+});
+function createContext(opts = {}) {
+ let currentInstance;
+ let isSingleton = false;
+ const checkConflict = (instance) => {
+ if (currentInstance && currentInstance !== instance) {
+ throw new Error("Context conflict");
+ }
+ };
+ let als;
+ if (opts.asyncContext) {
+ const _AsyncLocalStorage = opts.AsyncLocalStorage || globalThis.AsyncLocalStorage;
+ if (_AsyncLocalStorage) {
+ als = new _AsyncLocalStorage();
+ } else {
+ console.warn("[unctx] `AsyncLocalStorage` is not provided.");
+ }
+ }
+ const _getCurrentInstance = () => {
+ if (als && currentInstance === void 0) {
+ const instance = als.getStore();
+ if (instance !== void 0) {
+ return instance;
+ }
+ }
+ return currentInstance;
+ };
+ return {
+ use: () => {
+ const _instance = _getCurrentInstance();
+ if (_instance === void 0) {
+ throw new Error("Context is not available");
+ }
+ return _instance;
+ },
+ tryUse: () => {
+ return _getCurrentInstance();
+ },
+ set: (instance, replace) => {
+ if (!replace) {
+ checkConflict(instance);
+ }
+ currentInstance = instance;
+ isSingleton = true;
+ },
+ unset: () => {
+ currentInstance = void 0;
+ isSingleton = false;
+ },
+ call: (instance, callback) => {
+ checkConflict(instance);
+ currentInstance = instance;
+ try {
+ return als ? als.run(instance, callback) : callback();
+ } finally {
+ if (!isSingleton) {
+ currentInstance = void 0;
+ }
+ }
+ },
+ async callAsync(instance, callback) {
+ currentInstance = instance;
+ const onRestore = () => {
+ currentInstance = instance;
+ };
+ const onLeave = () => currentInstance === instance ? onRestore : void 0;
+ asyncHandlers.add(onLeave);
+ try {
+ const r = als ? als.run(instance, callback) : callback();
+ if (!isSingleton) {
+ currentInstance = void 0;
+ }
+ return await r;
+ } finally {
+ asyncHandlers.delete(onLeave);
+ }
+ }
+ };
+}
+function createNamespace(defaultOpts = {}) {
+ const contexts = {};
+ return {
+ get(key, opts = {}) {
+ if (!contexts[key]) {
+ contexts[key] = createContext({ ...defaultOpts, ...opts });
+ }
+ contexts[key];
+ return contexts[key];
+ }
+ };
+}
+const _globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : {};
+const globalKey = "__unctx__";
+_globalThis[globalKey] || (_globalThis[globalKey] = createNamespace());
+const asyncHandlersKey = "__unctx_async_handlers__";
+const asyncHandlers = _globalThis[asyncHandlersKey] || (_globalThis[asyncHandlersKey] = /* @__PURE__ */ new Set());
+function executeAsync(function_) {
+ const restores = [];
+ for (const leaveHandler of asyncHandlers) {
+ const restore2 = leaveHandler();
+ if (restore2) {
+ restores.push(restore2);
+ }
+ }
+ const restore = () => {
+ for (const restore2 of restores) {
+ restore2();
+ }
+ };
+ let awaitable = function_();
+ if (awaitable && typeof awaitable === "object" && "catch" in awaitable) {
+ awaitable = awaitable.catch((error) => {
+ restore();
+ throw error;
+ });
+ }
+ return [awaitable, restore];
+}
+const PageRouteSymbol = Symbol("route");
+const useRouter = () => {
+ var _a;
+ return (_a = /* @__PURE__ */ useNuxtApp()) == null ? void 0 : _a.$router;
+};
+const useRoute = () => {
+ if (hasInjectionContext()) {
+ return inject(PageRouteSymbol, (/* @__PURE__ */ useNuxtApp())._route);
+ }
+ return (/* @__PURE__ */ useNuxtApp())._route;
+};
+/*! @__NO_SIDE_EFFECTS__ */
+// @__NO_SIDE_EFFECTS__
+function defineNuxtRouteMiddleware(middleware) {
+ return middleware;
+}
+const isProcessingMiddleware = () => {
+ try {
+ if ((/* @__PURE__ */ useNuxtApp())._processingMiddleware) {
+ return true;
+ }
+ } catch {
+ return true;
+ }
+ return false;
+};
+const navigateTo = (to, options) => {
+ if (!to) {
+ to = "/";
+ }
+ const toPath = typeof to === "string" ? to : withQuery(to.path || "/", to.query || {}) + (to.hash || "");
+ if (options == null ? void 0 : options.open) {
+ return Promise.resolve();
+ }
+ const isExternal = (options == null ? void 0 : options.external) || hasProtocol(toPath, { acceptRelative: true });
+ if (isExternal) {
+ if (!(options == null ? void 0 : options.external)) {
+ throw new Error("Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.");
+ }
+ const protocol = parseURL(toPath).protocol;
+ if (protocol && isScriptProtocol(protocol)) {
+ throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);
+ }
+ }
+ const inMiddleware = isProcessingMiddleware();
+ const router = useRouter();
+ const nuxtApp = /* @__PURE__ */ useNuxtApp();
+ {
+ if (nuxtApp.ssrContext) {
+ const fullPath = typeof to === "string" || isExternal ? toPath : router.resolve(to).fullPath || "/";
+ const location2 = isExternal ? toPath : joinURL((/* @__PURE__ */ useRuntimeConfig()).app.baseURL, fullPath);
+ const redirect = async function(response) {
+ await nuxtApp.callHook("app:redirected");
+ const encodedLoc = location2.replace(/"/g, "%22");
+ nuxtApp.ssrContext._renderResponse = {
+ statusCode: sanitizeStatusCode((options == null ? void 0 : options.redirectCode) || 302, 302),
+ body: ` `,
+ headers: { location: location2 }
+ };
+ return response;
+ };
+ if (!isExternal && inMiddleware) {
+ router.afterEach((final) => final.fullPath === fullPath ? redirect(false) : void 0);
+ return to;
+ }
+ return redirect(!inMiddleware ? void 0 : (
+ /* abort route navigation */
+ false
+ ));
+ }
+ }
+ if (isExternal) {
+ nuxtApp._scope.stop();
+ if (options == null ? void 0 : options.replace) {
+ location.replace(toPath);
+ } else {
+ location.href = toPath;
+ }
+ if (inMiddleware) {
+ if (!nuxtApp.isHydrating) {
+ return false;
+ }
+ return new Promise(() => {
+ });
+ }
+ return Promise.resolve();
+ }
+ return (options == null ? void 0 : options.replace) ? router.replace(to) : router.push(to);
+};
+const useError = () => toRef((/* @__PURE__ */ useNuxtApp()).payload, "error");
+const showError = (_err) => {
+ const err = createError(_err);
+ try {
+ const nuxtApp = /* @__PURE__ */ useNuxtApp();
+ const error = useError();
+ if (false)
+ ;
+ error.value = error.value || err;
+ } catch {
+ throw err;
+ }
+ return err;
+};
+const isNuxtError = (err) => !!(err && typeof err === "object" && "__nuxt_error" in err);
+const createError = (err) => {
+ const _err = createError$1(err);
+ _err.__nuxt_error = true;
+ return _err;
+};
+const _routes = [
+ {
+ name: "details-id",
+ path: "/details/:id()",
+ meta: {},
+ alias: [],
+ redirect: void 0,
+ component: () => import('./_nuxt/_id_-8ab4d5f6.mjs').then((m) => m.default || m)
+ },
+ {
+ name: "index.html",
+ path: "/index.html",
+ meta: {},
+ alias: [],
+ redirect: void 0,
+ component: () => import('./_nuxt/index-8ce861f4.mjs').then((m) => m.default || m)
+ },
+ {
+ name: "index",
+ path: "/",
+ meta: {},
+ alias: [],
+ redirect: void 0,
+ component: () => import('./_nuxt/index-09a76c59.mjs').then((m) => m.default || m)
+ },
+ {
+ name: "publish",
+ path: "/publish",
+ meta: {},
+ alias: [],
+ redirect: void 0,
+ component: () => import('./_nuxt/index-4bf365d6.mjs').then((m) => m.default || m)
+ }
+];
+function generateRouteKey(route) {
+ const source = (route == null ? void 0 : route.meta.key) ?? route.path.replace(/(:\w+)\([^)]+\)/g, "$1").replace(/(:\w+)[?+*]/g, "$1").replace(/:\w+/g, (r) => {
+ var _a;
+ return ((_a = route.params[r.slice(1)]) == null ? void 0 : _a.toString()) || "";
+ });
+ return typeof source === "function" ? source(route) : source;
+}
+function isChangingPage(to, from) {
+ if (to === from) {
+ return false;
+ }
+ if (generateRouteKey(to) !== generateRouteKey(from)) {
+ return true;
+ }
+ const areComponentsSame = to.matched.every(
+ (comp, index) => {
+ var _a, _b;
+ return comp.components && comp.components.default === ((_b = (_a = from.matched[index]) == null ? void 0 : _a.components) == null ? void 0 : _b.default);
+ }
+ );
+ if (areComponentsSame) {
+ return false;
+ }
+ return true;
+}
+const appPageTransition = false;
+const nuxtLinkDefaults = { "componentName": "NuxtLink" };
+const routerOptions0 = {
+ scrollBehavior(to, from, savedPosition) {
+ var _a;
+ const nuxtApp = /* @__PURE__ */ useNuxtApp();
+ const behavior = ((_a = useRouter().options) == null ? void 0 : _a.scrollBehaviorType) ?? "auto";
+ let position = savedPosition || void 0;
+ const routeAllowsScrollToTop = typeof to.meta.scrollToTop === "function" ? to.meta.scrollToTop(to, from) : to.meta.scrollToTop;
+ if (!position && from && to && routeAllowsScrollToTop !== false && isChangingPage(to, from)) {
+ position = { left: 0, top: 0 };
+ }
+ if (to.path === from.path) {
+ if (from.hash && !to.hash) {
+ return { left: 0, top: 0 };
+ }
+ if (to.hash) {
+ return { el: to.hash, top: _getHashElementScrollMarginTop(to.hash), behavior };
+ }
+ }
+ const hasTransition = (route) => !!(route.meta.pageTransition ?? appPageTransition);
+ const hookToWait = hasTransition(from) && hasTransition(to) ? "page:transition:finish" : "page:finish";
+ return new Promise((resolve) => {
+ nuxtApp.hooks.hookOnce(hookToWait, async () => {
+ await nextTick();
+ if (to.hash) {
+ position = { el: to.hash, top: _getHashElementScrollMarginTop(to.hash), behavior };
+ }
+ resolve(position);
+ });
+ });
+ }
+};
+function _getHashElementScrollMarginTop(selector) {
+ try {
+ const elem = document.querySelector(selector);
+ if (elem) {
+ return parseFloat(getComputedStyle(elem).scrollMarginTop);
+ }
+ } catch {
+ }
+ return 0;
+}
+const configRouterOptions = {
+ hashMode: false,
+ scrollBehaviorType: "auto"
+};
+const routerOptions = {
+ ...configRouterOptions,
+ ...routerOptions0
+};
+const validate = /* @__PURE__ */ defineNuxtRouteMiddleware(async (to) => {
+ var _a;
+ let __temp, __restore;
+ if (!((_a = to.meta) == null ? void 0 : _a.validate)) {
+ return;
+ }
+ useRouter();
+ const result = ([__temp, __restore] = executeAsync(() => Promise.resolve(to.meta.validate(to))), __temp = await __temp, __restore(), __temp);
+ if (result === true) {
+ return;
+ }
+ {
+ return result;
+ }
+});
+const manifest_45route_45rule = /* @__PURE__ */ defineNuxtRouteMiddleware(async (to) => {
+ {
+ return;
+ }
+});
+const globalMiddleware = [
+ validate,
+ manifest_45route_45rule
+];
+const namedMiddleware = {};
+const plugin = /* @__PURE__ */ defineNuxtPlugin({
+ name: "nuxt:router",
+ enforce: "pre",
+ async setup(nuxtApp) {
+ var _a, _b;
+ let __temp, __restore;
+ let routerBase = (/* @__PURE__ */ useRuntimeConfig()).app.baseURL;
+ if (routerOptions.hashMode && !routerBase.includes("#")) {
+ routerBase += "#";
+ }
+ const history = ((_a = routerOptions.history) == null ? void 0 : _a.call(routerOptions, routerBase)) ?? createMemoryHistory(routerBase);
+ const routes = ((_b = routerOptions.routes) == null ? void 0 : _b.call(routerOptions, _routes)) ?? _routes;
+ let startPosition;
+ const initialURL = nuxtApp.ssrContext.url;
+ const router = createRouter({
+ ...routerOptions,
+ scrollBehavior: (to, from, savedPosition) => {
+ var _a2;
+ if (from === START_LOCATION) {
+ startPosition = savedPosition;
+ return;
+ }
+ router.options.scrollBehavior = routerOptions.scrollBehavior;
+ return (_a2 = routerOptions.scrollBehavior) == null ? void 0 : _a2.call(routerOptions, to, START_LOCATION, startPosition || savedPosition);
+ },
+ history,
+ routes
+ });
+ nuxtApp.vueApp.use(router);
+ const previousRoute = shallowRef(router.currentRoute.value);
+ router.afterEach((_to, from) => {
+ previousRoute.value = from;
+ });
+ Object.defineProperty(nuxtApp.vueApp.config.globalProperties, "previousRoute", {
+ get: () => previousRoute.value
+ });
+ const _route = shallowRef(router.resolve(initialURL));
+ const syncCurrentRoute = () => {
+ _route.value = router.currentRoute.value;
+ };
+ nuxtApp.hook("page:finish", syncCurrentRoute);
+ router.afterEach((to, from) => {
+ var _a2, _b2, _c, _d;
+ if (((_b2 = (_a2 = to.matched[0]) == null ? void 0 : _a2.components) == null ? void 0 : _b2.default) === ((_d = (_c = from.matched[0]) == null ? void 0 : _c.components) == null ? void 0 : _d.default)) {
+ syncCurrentRoute();
+ }
+ });
+ const route = {};
+ for (const key in _route.value) {
+ Object.defineProperty(route, key, {
+ get: () => _route.value[key]
+ });
+ }
+ nuxtApp._route = shallowReactive(route);
+ nuxtApp._middleware = nuxtApp._middleware || {
+ global: [],
+ named: {}
+ };
+ useError();
+ try {
+ if (true) {
+ ;
+ [__temp, __restore] = executeAsync(() => router.push(initialURL)), await __temp, __restore();
+ ;
+ }
+ ;
+ [__temp, __restore] = executeAsync(() => router.isReady()), await __temp, __restore();
+ ;
+ } catch (error2) {
+ [__temp, __restore] = executeAsync(() => nuxtApp.runWithContext(() => showError(error2))), await __temp, __restore();
+ }
+ const initialLayout = nuxtApp.payload.state._layout;
+ router.beforeEach(async (to, from) => {
+ var _a2, _b2;
+ to.meta = reactive(to.meta);
+ if (nuxtApp.isHydrating && initialLayout && !isReadonly(to.meta.layout)) {
+ to.meta.layout = initialLayout;
+ }
+ nuxtApp._processingMiddleware = true;
+ if (!((_a2 = nuxtApp.ssrContext) == null ? void 0 : _a2.islandContext)) {
+ const middlewareEntries = /* @__PURE__ */ new Set([...globalMiddleware, ...nuxtApp._middleware.global]);
+ for (const component of to.matched) {
+ const componentMiddleware = component.meta.middleware;
+ if (!componentMiddleware) {
+ continue;
+ }
+ if (Array.isArray(componentMiddleware)) {
+ for (const entry2 of componentMiddleware) {
+ middlewareEntries.add(entry2);
+ }
+ } else {
+ middlewareEntries.add(componentMiddleware);
+ }
+ }
+ for (const entry2 of middlewareEntries) {
+ const middleware = typeof entry2 === "string" ? nuxtApp._middleware.named[entry2] || await ((_b2 = namedMiddleware[entry2]) == null ? void 0 : _b2.call(namedMiddleware).then((r) => r.default || r)) : entry2;
+ if (!middleware) {
+ throw new Error(`Unknown route middleware: '${entry2}'.`);
+ }
+ const result = await nuxtApp.runWithContext(() => middleware(to, from));
+ {
+ if (result === false || result instanceof Error) {
+ const error2 = result || createError$1({
+ statusCode: 404,
+ statusMessage: `Page Not Found: ${initialURL}`
+ });
+ await nuxtApp.runWithContext(() => showError(error2));
+ return false;
+ }
+ }
+ if (result === true) {
+ continue;
+ }
+ if (result || result === false) {
+ return result;
+ }
+ }
+ }
+ });
+ router.onError(() => {
+ delete nuxtApp._processingMiddleware;
+ });
+ router.afterEach(async (to, _from, failure) => {
+ var _a2;
+ delete nuxtApp._processingMiddleware;
+ if ((failure == null ? void 0 : failure.type) === 4) {
+ return;
+ }
+ if (to.matched.length === 0 && !((_a2 = nuxtApp.ssrContext) == null ? void 0 : _a2.islandContext)) {
+ await nuxtApp.runWithContext(() => showError(createError$1({
+ statusCode: 404,
+ fatal: false,
+ statusMessage: `Page not found: ${to.fullPath}`
+ })));
+ } else if (to.redirectedFrom && to.fullPath !== initialURL) {
+ await nuxtApp.runWithContext(() => navigateTo(to.fullPath || "/"));
+ }
+ });
+ nuxtApp.hooks.hookOnce("app:created", async () => {
+ try {
+ await router.replace({
+ ...router.resolve(initialURL),
+ name: void 0,
+ // #4920, #4982
+ force: true
+ });
+ router.options.scrollBehavior = routerOptions.scrollBehavior;
+ } catch (error2) {
+ await nuxtApp.runWithContext(() => showError(error2));
+ }
+ });
+ return { provide: { router } };
+ }
+});
+function definePayloadReducer(name, reduce) {
+ {
+ (/* @__PURE__ */ useNuxtApp()).ssrContext._payloadReducers[name] = reduce;
+ }
+}
+const reducers = {
+ NuxtError: (data) => isNuxtError(data) && data.toJSON(),
+ EmptyShallowRef: (data) => isRef(data) && isShallow(data) && !data.value && (typeof data.value === "bigint" ? "0n" : JSON.stringify(data.value) || "_"),
+ EmptyRef: (data) => isRef(data) && !data.value && (typeof data.value === "bigint" ? "0n" : JSON.stringify(data.value) || "_"),
+ ShallowRef: (data) => isRef(data) && isShallow(data) && data.value,
+ ShallowReactive: (data) => isReactive(data) && isShallow(data) && toRaw(data),
+ Ref: (data) => isRef(data) && data.value,
+ Reactive: (data) => isReactive(data) && toRaw(data)
+};
+const revive_payload_server_eJ33V7gbc6 = /* @__PURE__ */ defineNuxtPlugin({
+ name: "nuxt:revive-payload:server",
+ setup() {
+ for (const reducer in reducers) {
+ definePayloadReducer(reducer, reducers[reducer]);
+ }
+ }
+});
+const components_plugin_KR1HBZs4kY = /* @__PURE__ */ defineNuxtPlugin({
+ name: "nuxt:global-components"
+});
+const element_plus_teleports_plugin_h4Dmekbj62 = /* @__PURE__ */ defineNuxtPlugin((nuxtApp) => {
+ nuxtApp.hook("app:rendered", (ctx) => {
+ var _a;
+ if ((_a = ctx.ssrContext) == null ? void 0 : _a.teleports) {
+ ctx.ssrContext.teleports = renderTeleports(ctx.ssrContext.teleports);
+ }
+ });
+});
+function renderTeleports(teleports) {
+ const body = Object.entries(teleports).reduce((all, [key, value]) => {
+ if (key.startsWith("#el-popper-container-") || [].includes(key)) {
+ return `${all}${value}
`;
+ }
+ return all;
+ }, teleports.body || "");
+ return { ...teleports, body };
+}
+class ElementPlusError extends Error {
+ constructor(m) {
+ super(m);
+ this.name = "ElementPlusError";
+ }
+}
+function throwError(scope, m) {
+ throw new ElementPlusError(`[${scope}] ${m}`);
+}
+function debugWarn(scope, message) {
+}
+const defaultNamespace = "el";
+const statePrefix = "is-";
+const _bem = (namespace, block, blockSuffix, element, modifier) => {
+ let cls = `${namespace}-${block}`;
+ if (blockSuffix) {
+ cls += `-${blockSuffix}`;
+ }
+ if (element) {
+ cls += `__${element}`;
+ }
+ if (modifier) {
+ cls += `--${modifier}`;
+ }
+ return cls;
+};
+const namespaceContextKey = Symbol("namespaceContextKey");
+const useGetDerivedNamespace = (namespaceOverrides) => {
+ const derivedNamespace = namespaceOverrides || (getCurrentInstance() ? inject(namespaceContextKey, ref(defaultNamespace)) : ref(defaultNamespace));
+ const namespace = computed(() => {
+ return unref(derivedNamespace) || defaultNamespace;
+ });
+ return namespace;
+};
+const useNamespace = (block, namespaceOverrides) => {
+ const namespace = useGetDerivedNamespace(namespaceOverrides);
+ const b = (blockSuffix = "") => _bem(namespace.value, block, blockSuffix, "", "");
+ const e = (element) => element ? _bem(namespace.value, block, "", element, "") : "";
+ const m = (modifier) => modifier ? _bem(namespace.value, block, "", "", modifier) : "";
+ const be = (blockSuffix, element) => blockSuffix && element ? _bem(namespace.value, block, blockSuffix, element, "") : "";
+ const em = (element, modifier) => element && modifier ? _bem(namespace.value, block, "", element, modifier) : "";
+ const bm = (blockSuffix, modifier) => blockSuffix && modifier ? _bem(namespace.value, block, blockSuffix, "", modifier) : "";
+ const bem = (blockSuffix, element, modifier) => blockSuffix && element && modifier ? _bem(namespace.value, block, blockSuffix, element, modifier) : "";
+ const is = (name, ...args) => {
+ const state = args.length >= 1 ? args[0] : true;
+ return name && state ? `${statePrefix}${name}` : "";
+ };
+ const cssVar = (object) => {
+ const styles = {};
+ for (const key in object) {
+ if (object[key]) {
+ styles[`--${namespace.value}-${key}`] = object[key];
+ }
+ }
+ return styles;
+ };
+ const cssVarBlock = (object) => {
+ const styles = {};
+ for (const key in object) {
+ if (object[key]) {
+ styles[`--${namespace.value}-${block}-${key}`] = object[key];
+ }
+ }
+ return styles;
+ };
+ const cssVarName = (name) => `--${namespace.value}-${name}`;
+ const cssVarBlockName = (name) => `--${namespace.value}-${block}-${name}`;
+ return {
+ namespace,
+ b,
+ e,
+ m,
+ be,
+ em,
+ bm,
+ bem,
+ is,
+ cssVar,
+ cssVarName,
+ cssVarBlock,
+ cssVarBlockName
+ };
+};
+const defaultIdInjection = {
+ prefix: Math.floor(Math.random() * 1e4),
+ current: 0
+};
+const ID_INJECTION_KEY = Symbol("elIdInjection");
+const useIdInjection = () => {
+ return getCurrentInstance() ? inject(ID_INJECTION_KEY, defaultIdInjection) : defaultIdInjection;
+};
+const useId = (deterministicId) => {
+ const idInjection = useIdInjection();
+ const namespace = useGetDerivedNamespace();
+ const idRef = computed(() => unref(deterministicId) || `${namespace.value}-id-${idInjection.prefix}-${idInjection.current++}`);
+ return idRef;
+};
+const element_plus_injection_plugin_1RNPi6ogby = /* @__PURE__ */ defineNuxtPlugin((nuxtApp) => {
+ nuxtApp.vueApp.provide(ID_INJECTION_KEY, { "prefix": 1024, "current": 0 });
+});
+const plugins = [
+ unhead_KgADcZ0jPj,
+ plugin,
+ revive_payload_server_eJ33V7gbc6,
+ components_plugin_KR1HBZs4kY,
+ element_plus_teleports_plugin_h4Dmekbj62,
+ element_plus_injection_plugin_1RNPi6ogby
+];
+const _sfc_main$2 = {
+ __name: "app",
+ __ssrInlineRender: true,
+ setup(__props) {
+ useRoute();
+ watchEffect(() => {
+ });
+ let isNeedLogin = ref(true);
+ const goLogin = () => {
+ return;
+ };
+ provide("isNeedLogin", isNeedLogin);
+ provide("goLogin", goLogin);
+ return (_ctx, _push, _parent, _attrs) => {
+ const _component_RouterView = resolveComponent("RouterView");
+ _push(`
`);
+ _push(ssrRenderComponent(_component_RouterView, null, null, _parent));
+ _push(``);
+ };
+ }
+};
+const _sfc_setup$2 = _sfc_main$2.setup;
+_sfc_main$2.setup = (props, ctx) => {
+ const ssrContext = useSSRContext();
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("app.vue");
+ return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
+};
+const AppComponent = _sfc_main$2;
+const _sfc_main$1 = {
+ __name: "nuxt-error-page",
+ __ssrInlineRender: true,
+ props: {
+ error: Object
+ },
+ setup(__props) {
+ const props = __props;
+ const _error = props.error;
+ (_error.stack || "").split("\n").splice(1).map((line) => {
+ const text = line.replace("webpack:/", "").replace(".vue", ".js").trim();
+ return {
+ text,
+ internal: line.includes("node_modules") && !line.includes(".cache") || line.includes("internal") || line.includes("new Promise")
+ };
+ }).map((i) => `${i.text} `).join("\n");
+ const statusCode = Number(_error.statusCode || 500);
+ const is404 = statusCode === 404;
+ const statusMessage = _error.statusMessage ?? (is404 ? "Page Not Found" : "Internal Server Error");
+ const description = _error.message || _error.toString();
+ const stack = void 0;
+ const _Error404 = defineAsyncComponent(() => import('./_nuxt/error-404-28503570.mjs').then((r) => r.default || r));
+ const _Error = defineAsyncComponent(() => import('./_nuxt/error-500-1b10eb7c.mjs').then((r) => r.default || r));
+ const ErrorTemplate = is404 ? _Error404 : _Error;
+ return (_ctx, _push, _parent, _attrs) => {
+ _push(ssrRenderComponent(unref(ErrorTemplate), mergeProps({ statusCode: unref(statusCode), statusMessage: unref(statusMessage), description: unref(description), stack: unref(stack) }, _attrs), null, _parent));
+ };
+ }
+};
+const _sfc_setup$1 = _sfc_main$1.setup;
+_sfc_main$1.setup = (props, ctx) => {
+ const ssrContext = useSSRContext();
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("node_modules/nuxt/dist/app/components/nuxt-error-page.vue");
+ return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
+};
+const ErrorComponent = _sfc_main$1;
+const _sfc_main = {
+ __name: "nuxt-root",
+ __ssrInlineRender: true,
+ setup(__props) {
+ const IslandRenderer = defineAsyncComponent(() => import('./_nuxt/island-renderer-1d37df94.mjs').then((r) => r.default || r));
+ const nuxtApp = /* @__PURE__ */ useNuxtApp();
+ nuxtApp.deferHydration();
+ nuxtApp.ssrContext.url;
+ const SingleRenderer = false;
+ provide(PageRouteSymbol, useRoute());
+ nuxtApp.hooks.callHookWith((hooks) => hooks.map((hook) => hook()), "vue:setup");
+ const error = useError();
+ onErrorCaptured((err, target, info) => {
+ nuxtApp.hooks.callHook("vue:error", err, target, info).catch((hookError) => console.error("[nuxt] Error in `vue:error` hook", hookError));
+ {
+ const p = nuxtApp.runWithContext(() => showError(err));
+ onServerPrefetch(() => p);
+ return false;
+ }
+ });
+ const islandContext = nuxtApp.ssrContext.islandContext;
+ return (_ctx, _push, _parent, _attrs) => {
+ ssrRenderSuspense(_push, {
+ default: () => {
+ if (unref(error)) {
+ _push(ssrRenderComponent(unref(ErrorComponent), { error: unref(error) }, null, _parent));
+ } else if (unref(islandContext)) {
+ _push(ssrRenderComponent(unref(IslandRenderer), { context: unref(islandContext) }, null, _parent));
+ } else if (unref(SingleRenderer)) {
+ ssrRenderVNode(_push, createVNode(resolveDynamicComponent(unref(SingleRenderer)), null, null), _parent);
+ } else {
+ _push(ssrRenderComponent(unref(AppComponent), null, null, _parent));
+ }
+ },
+ _: 1
+ });
+ };
+ }
+};
+const _sfc_setup = _sfc_main.setup;
+_sfc_main.setup = (props, ctx) => {
+ const ssrContext = useSSRContext();
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("node_modules/nuxt/dist/app/components/nuxt-root.vue");
+ return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
+};
+const RootComponent = _sfc_main;
+let entry;
+{
+ entry = async function createNuxtAppServer(ssrContext) {
+ const vueApp = createApp(RootComponent);
+ const nuxt = createNuxtApp({ vueApp, ssrContext });
+ try {
+ await applyPlugins(nuxt, plugins);
+ await nuxt.hooks.callHook("app:created", vueApp);
+ } catch (err) {
+ await nuxt.hooks.callHook("app:error", err);
+ nuxt.payload.error = nuxt.payload.error || err;
+ }
+ if (ssrContext == null ? void 0 : ssrContext._renderResponse) {
+ throw new Error("skipping render");
+ }
+ return vueApp;
+ };
+}
+const entry$1 = (ctx) => entry(ctx);
+
+export { useRuntimeConfig as a, navigateTo as b, createError as c, useNamespace as d, entry$1 as default, useRoute as e, useId as f, defaultNamespace as g, debugWarn as h, useGetDerivedNamespace as i, useIdInjection as j, namespaceContextKey as k, injectHead as l, nuxtLinkDefaults as n, resolveUnrefHeadInput as r, throwError as t, useRouter as u };
+//# sourceMappingURL=server.mjs.map
diff --git a/.output/server/chunks/app/server.mjs.map b/.output/server/chunks/app/server.mjs.map
new file mode 100644
index 0000000..d16f554
--- /dev/null
+++ b/.output/server/chunks/app/server.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"server.mjs","sources":["../../../../node_modules/unctx/dist/index.mjs","../../../../.nuxt/dist/server/server.mjs"],"sourcesContent":null,"names":["createContext","asyncHandlers","createNamespace","_globalThis","globalKey","defaultNamespace","asyncHandlersKey"],"mappings":"","x_google_ignoreList":[0]}
\ No newline at end of file
diff --git a/.output/server/chunks/app/styles.mjs b/.output/server/chunks/app/styles.mjs
new file mode 100644
index 0000000..4d37ce5
--- /dev/null
+++ b/.output/server/chunks/app/styles.mjs
@@ -0,0 +1,12 @@
+const interopDefault = r => r.default || r || [];
+const styles = {
+ "node_modules/nuxt/dist/app/entry.js": () => import('./_nuxt/entry-styles.582d7478.mjs').then(interopDefault),
+ "pages/publish/index.vue": () => import('./_nuxt/index-styles.f5784fbd.mjs').then(interopDefault),
+ "pages/index.html/index.vue": () => import('./_nuxt/index-styles.9175bb53.mjs').then(interopDefault),
+ "pages/details/[id].vue": () => import('./_nuxt/_id_-styles.07a32688.mjs').then(interopDefault),
+ "node_modules/@nuxt/ui-templates/dist/templates/error-404.vue": () => import('./_nuxt/error-404-styles.1e0dde27.mjs').then(interopDefault),
+ "node_modules/@nuxt/ui-templates/dist/templates/error-500.vue": () => import('./_nuxt/error-500-styles.cf4b3e80.mjs').then(interopDefault)
+};
+
+export { styles as default };
+//# sourceMappingURL=styles.mjs.map
diff --git a/.output/server/chunks/app/styles.mjs.map b/.output/server/chunks/app/styles.mjs.map
new file mode 100644
index 0000000..888e63e
--- /dev/null
+++ b/.output/server/chunks/app/styles.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"styles.mjs","sources":["../../../../.nuxt/dist/server/styles.mjs"],"sourcesContent":null,"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,GAAE;AAChD,eAAe;AACf,EAAE,qCAAqC,EAAE,MAAM,OAAO,mCAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAC/G,EAAE,yBAAyB,EAAE,MAAM,OAAO,mCAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACnG,EAAE,4BAA4B,EAAE,MAAM,OAAO,mCAAmC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACtG,EAAE,wBAAwB,EAAE,MAAM,OAAO,kCAAkC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AACjG,EAAE,8DAA8D,EAAE,MAAM,OAAO,uCAAuC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAC5I,EAAE,8DAA8D,EAAE,MAAM,OAAO,uCAAuC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;AAC5I;;;;"}
\ No newline at end of file
diff --git a/.output/server/chunks/error-500.mjs b/.output/server/chunks/error-500.mjs
new file mode 100644
index 0000000..3f10daa
--- /dev/null
+++ b/.output/server/chunks/error-500.mjs
@@ -0,0 +1,21 @@
+const _messages = {"appName":"Nuxt","version":"","statusCode":500,"statusMessage":"Server error","description":"This page is temporarily unavailable."};
+const _render = function({ messages }) {
+var __t, __p = '';
+__p += '' +
+((__t = ( messages.statusCode )) == null ? '' : __t) +
+' - ' +
+((__t = ( messages.statusMessage )) == null ? '' : __t) +
+' | ' +
+((__t = ( messages.appName )) == null ? '' : __t) +
+'
' +
+((__t = ( messages.statusCode )) == null ? '' : __t) +
+' ' +
+((__t = ( messages.description )) == null ? '' : __t) +
+'
';
+return __p
+};
+const _template = (messages) => _render({ messages: { ..._messages, ...messages } });
+const template = _template;
+
+export { template };
+//# sourceMappingURL=error-500.mjs.map
diff --git a/.output/server/chunks/error-500.mjs.map b/.output/server/chunks/error-500.mjs.map
new file mode 100644
index 0000000..5520258
--- /dev/null
+++ b/.output/server/chunks/error-500.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"error-500.mjs","sources":["../../../node_modules/@nuxt/ui-templates/dist/templates/error-500.mjs"],"sourcesContent":null,"names":[],"mappings":"","x_google_ignoreList":[0]}
\ No newline at end of file
diff --git a/.output/server/chunks/handlers/renderer.mjs b/.output/server/chunks/handlers/renderer.mjs
new file mode 100644
index 0000000..e5c8521
--- /dev/null
+++ b/.output/server/chunks/handlers/renderer.mjs
@@ -0,0 +1,384 @@
+import { getRequestDependencies, getPreloadLinks, getPrefetchLinks, createRenderer } from 'vue-bundle-renderer/runtime';
+import { e as eventHandler, s as setResponseHeader, a as send, g as getResponseStatus, b as setResponseStatus, c as setResponseHeaders, u as useNitroApp, j as joinURL, d as useRuntimeConfig, f as getQuery, h as createError, i as getRouteRules, k as getResponseStatusText } from '../nitro/node-server.mjs';
+import { stringify, uneval } from 'devalue';
+import { renderToString } from 'vue/server-renderer';
+import { renderSSRHead } from '@unhead/ssr';
+import { version, unref } from 'vue';
+import { createServerHead as createServerHead$1 } from 'unhead';
+import { defineHeadPlugin } from '@unhead/shared';
+
+function defineRenderHandler(handler) {
+ return eventHandler(async (event) => {
+ if (event.path.endsWith("/favicon.ico")) {
+ setResponseHeader(event, "Content-Type", "image/x-icon");
+ return send(
+ event,
+ "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
+ );
+ }
+ const response = await handler(event);
+ if (!response) {
+ const _currentStatus = getResponseStatus(event);
+ setResponseStatus(event, _currentStatus === 200 ? 500 : _currentStatus);
+ return send(
+ event,
+ "No response returned from render handler: " + event.path
+ );
+ }
+ const nitroApp = useNitroApp();
+ await nitroApp.hooks.callHook("render:response", response, { event });
+ if (response.headers) {
+ setResponseHeaders(event, response.headers);
+ }
+ if (response.statusCode || response.statusMessage) {
+ setResponseStatus(event, response.statusCode, response.statusMessage);
+ }
+ return response.body;
+ });
+}
+
+const Vue3 = version.startsWith("3");
+
+function resolveUnref(r) {
+ return typeof r === "function" ? r() : unref(r);
+}
+function resolveUnrefHeadInput(ref, lastKey = "") {
+ if (ref instanceof Promise)
+ return ref;
+ const root = resolveUnref(ref);
+ if (!ref || !root)
+ return root;
+ if (Array.isArray(root))
+ return root.map((r) => resolveUnrefHeadInput(r, lastKey));
+ if (typeof root === "object") {
+ return Object.fromEntries(
+ Object.entries(root).map(([k, v]) => {
+ if (k === "titleTemplate" || k.startsWith("on"))
+ return [k, unref(v)];
+ return [k, resolveUnrefHeadInput(v, k)];
+ })
+ );
+ }
+ return root;
+}
+
+const VueReactivityPlugin = defineHeadPlugin({
+ hooks: {
+ "entries:resolve": function(ctx) {
+ for (const entry of ctx.entries)
+ entry.resolvedInput = resolveUnrefHeadInput(entry.input);
+ }
+ }
+});
+
+const headSymbol = "usehead";
+function vueInstall(head) {
+ const plugin = {
+ install(app) {
+ if (Vue3) {
+ app.config.globalProperties.$unhead = head;
+ app.config.globalProperties.$head = head;
+ app.provide(headSymbol, head);
+ }
+ }
+ };
+ return plugin.install;
+}
+function createServerHead(options = {}) {
+ const head = createServerHead$1(options);
+ head.use(VueReactivityPlugin);
+ head.install = vueInstall(head);
+ return head;
+}
+
+const unheadPlugins = [];
+
+const appHead = {"meta":[{"name":"viewport","content":"width=device-width, initial-scale=1"},{"charset":"utf-8"}],"link":[{"rel":"stylesheet","href":"//bbs.gter.net/data/cache/style_2_common.css?Z62"}],"style":[],"script":[{"src":"//bbs.gter.net/static/js/common.js","body":true,"charset":"gb2312"},{"innerHTML":"\n window.userInfoWin = {}\n STYLEID = \"2\";\n STATICURL = \"static/\";\n IMGDIR = \"https://bbs.gter.net/template/archy_plt8/image\";\n VERHASH = \"Z62\";\n charset = \"gbk\";\n discuz_uid = \"0\";\n cookiepre = \"4B5x_c0ae_\";\n cookiedomain = \"gter.net\";\n cookiepath = \"/\";\n showusercard = \"1\";\n attackevasive = \"0\";\n disallowfloat = \"\";\n creditnotice = \",\";\n defaultstyle = \"\";\n REPORTURL = \"aHR0cDovL2Jicy5ndGVyLm5ldC9mb3J1bS5waHA/dGlkPTI0MDYzNTYmZ290bz1sYXN0cG9zdA==\";\n SITEURL = \"https://ask.gter.net/\";\n JSPATH = \"static/js/\";","type":"text/javascript","charset":"utf-8"}],"noscript":[]};
+
+const appRootId = "__nuxt";
+
+const appRootTag = "div";
+
+function buildAssetsDir() {
+ return useRuntimeConfig().app.buildAssetsDir;
+}
+function buildAssetsURL(...path) {
+ return joinURL(publicAssetsURL(), buildAssetsDir(), ...path);
+}
+function publicAssetsURL(...path) {
+ const publicBase = useRuntimeConfig().app.cdnURL || useRuntimeConfig().app.baseURL;
+ return path.length ? joinURL(publicBase, ...path) : publicBase;
+}
+
+globalThis.__buildAssetsURL = buildAssetsURL;
+globalThis.__publicAssetsURL = publicAssetsURL;
+const getClientManifest = () => import('../app/client.manifest.mjs').then((r) => r.default || r).then((r) => typeof r === "function" ? r() : r);
+const getEntryIds = () => getClientManifest().then((r) => Object.values(r).filter(
+ (r2) => (
+ // @ts-expect-error internal key set by CSS inlining configuration
+ r2._globalCSS
+ )
+).map((r2) => r2.src));
+const getServerEntry = () => import('../app/server.mjs').then((r) => r.default || r);
+const getSSRStyles = lazyCachedFunction(() => import('../app/styles.mjs').then((r) => r.default || r));
+const getSSRRenderer = lazyCachedFunction(async () => {
+ const manifest = await getClientManifest();
+ if (!manifest) {
+ throw new Error("client.manifest is not available");
+ }
+ const createSSRApp = await getServerEntry();
+ if (!createSSRApp) {
+ throw new Error("Server bundle is not available");
+ }
+ const options = {
+ manifest,
+ renderToString: renderToString$1,
+ buildAssetsURL
+ };
+ const renderer = createRenderer(createSSRApp, options);
+ async function renderToString$1(input, context) {
+ const html = await renderToString(input, context);
+ return `<${appRootTag}${` id="${appRootId}"` }>${html}${appRootTag}>`;
+ }
+ return renderer;
+});
+const getSPARenderer = lazyCachedFunction(async () => {
+ const manifest = await getClientManifest();
+ const spaTemplate = await import('../rollup/_virtual_spa-template.mjs').then((r) => r.template).catch(() => "");
+ const options = {
+ manifest,
+ renderToString: () => `<${appRootTag}${` id="${appRootId}"` }>${spaTemplate}${appRootTag}>`,
+ buildAssetsURL
+ };
+ const renderer = createRenderer(() => () => {
+ }, options);
+ const result = await renderer.renderToString({});
+ const renderToString = (ssrContext) => {
+ const config = useRuntimeConfig();
+ ssrContext.modules = ssrContext.modules || /* @__PURE__ */ new Set();
+ ssrContext.payload = {
+ _errors: {},
+ serverRendered: false,
+ data: {},
+ state: {}
+ };
+ ssrContext.config = {
+ public: config.public,
+ app: config.app
+ };
+ return Promise.resolve(result);
+ };
+ return {
+ rendererContext: renderer.rendererContext,
+ renderToString
+ };
+});
+const PAYLOAD_URL_RE = /\/_payload(\.[a-zA-Z0-9]+)?.json(\?.*)?$/ ;
+const renderer = defineRenderHandler(async (event) => {
+ const nitroApp = useNitroApp();
+ const ssrError = event.path.startsWith("/__nuxt_error") ? getQuery(event) : null;
+ if (ssrError && ssrError.statusCode) {
+ ssrError.statusCode = parseInt(ssrError.statusCode);
+ }
+ if (ssrError && !("__unenv__" in event.node.req)) {
+ throw createError({
+ statusCode: 404,
+ statusMessage: "Page Not Found: /__nuxt_error"
+ });
+ }
+ const islandContext = void 0;
+ let url = ssrError?.url || islandContext?.url || event.path;
+ const isRenderingPayload = PAYLOAD_URL_RE.test(url) && !islandContext;
+ if (isRenderingPayload) {
+ url = url.substring(0, url.lastIndexOf("/")) || "/";
+ event._path = url;
+ event.node.req.url = url;
+ }
+ const routeOptions = getRouteRules(event);
+ const head = createServerHead({
+ plugins: unheadPlugins
+ });
+ const headEntryOptions = { mode: "server" };
+ head.push(appHead, headEntryOptions);
+ const ssrContext = {
+ url,
+ event,
+ runtimeConfig: useRuntimeConfig(),
+ noSSR: event.context.nuxt?.noSSR || routeOptions.ssr === false && !islandContext || (false),
+ head,
+ error: !!ssrError,
+ nuxt: void 0,
+ /* NuxtApp */
+ payload: ssrError ? { error: ssrError } : {},
+ _payloadReducers: {},
+ islandContext
+ };
+ const renderer = ssrContext.noSSR ? await getSPARenderer() : await getSSRRenderer();
+ const _rendered = await renderer.renderToString(ssrContext).catch(async (error) => {
+ if (ssrContext._renderResponse && error.message === "skipping render") {
+ return {};
+ }
+ const _err = !ssrError && ssrContext.payload?.error || error;
+ await ssrContext.nuxt?.hooks.callHook("app:error", _err);
+ throw _err;
+ });
+ await ssrContext.nuxt?.hooks.callHook("app:rendered", { ssrContext, renderResult: _rendered });
+ if (ssrContext._renderResponse) {
+ return ssrContext._renderResponse;
+ }
+ if (ssrContext.payload?.error && !ssrError) {
+ throw ssrContext.payload.error;
+ }
+ if (isRenderingPayload) {
+ const response2 = renderPayloadResponse(ssrContext);
+ return response2;
+ }
+ {
+ const source = ssrContext.modules ?? ssrContext._registeredComponents;
+ if (source) {
+ for (const id of await getEntryIds()) {
+ source.add(id);
+ }
+ }
+ }
+ const inlinedStyles = await renderInlineStyles(ssrContext.modules ?? ssrContext._registeredComponents ?? []) ;
+ const NO_SCRIPTS = routeOptions.experimentalNoScripts;
+ const { styles, scripts } = getRequestDependencies(ssrContext, renderer.rendererContext);
+ head.push({ style: inlinedStyles });
+ head.push({
+ link: Object.values(styles).map(
+ (resource) => ({ rel: "stylesheet", href: renderer.rendererContext.buildAssetsURL(resource.file) })
+ )
+ }, headEntryOptions);
+ if (!NO_SCRIPTS) {
+ head.push({
+ link: getPreloadLinks(ssrContext, renderer.rendererContext)
+ }, headEntryOptions);
+ head.push({
+ link: getPrefetchLinks(ssrContext, renderer.rendererContext)
+ }, headEntryOptions);
+ head.push({
+ script: renderPayloadJsonScript({ id: "__NUXT_DATA__", ssrContext, data: ssrContext.payload })
+ }, {
+ ...headEntryOptions,
+ // this should come before another end of body scripts
+ tagPosition: "bodyClose",
+ tagPriority: "high"
+ });
+ }
+ if (!routeOptions.experimentalNoScripts) {
+ head.push({
+ script: Object.values(scripts).map((resource) => ({
+ type: resource.module ? "module" : null,
+ src: renderer.rendererContext.buildAssetsURL(resource.file),
+ defer: resource.module ? null : true,
+ crossorigin: ""
+ }))
+ }, headEntryOptions);
+ }
+ const { headTags, bodyTags, bodyTagsOpen, htmlAttrs, bodyAttrs } = await renderSSRHead(head);
+ const htmlContext = {
+ island: Boolean(islandContext),
+ htmlAttrs: [htmlAttrs],
+ head: normalizeChunks([headTags, ssrContext.styles]),
+ bodyAttrs: [bodyAttrs],
+ bodyPrepend: normalizeChunks([bodyTagsOpen, ssrContext.teleports?.body]),
+ body: [_rendered.html],
+ bodyAppend: [bodyTags]
+ };
+ await nitroApp.hooks.callHook("render:html", htmlContext, { event });
+ const response = {
+ body: renderHTMLDocument(htmlContext),
+ statusCode: getResponseStatus(event),
+ statusMessage: getResponseStatusText(event),
+ headers: {
+ "content-type": "text/html;charset=utf-8",
+ "x-powered-by": "Nuxt"
+ }
+ };
+ return response;
+});
+function lazyCachedFunction(fn) {
+ let res = null;
+ return () => {
+ if (res === null) {
+ res = fn().catch((err) => {
+ res = null;
+ throw err;
+ });
+ }
+ return res;
+ };
+}
+function normalizeChunks(chunks) {
+ return chunks.filter(Boolean).map((i) => i.trim());
+}
+function joinTags(tags) {
+ return tags.join("");
+}
+function joinAttrs(chunks) {
+ return chunks.join(" ");
+}
+function renderHTMLDocument(html) {
+ return `
+
+${joinTags(html.head)}
+${joinTags(html.bodyPrepend)}${joinTags(html.body)}${joinTags(html.bodyAppend)}
+`;
+}
+async function renderInlineStyles(usedModules) {
+ const styleMap = await getSSRStyles();
+ const inlinedStyles = /* @__PURE__ */ new Set();
+ for (const mod of usedModules) {
+ if (mod in styleMap) {
+ for (const style of await styleMap[mod]()) {
+ inlinedStyles.add(style);
+ }
+ }
+ }
+ return Array.from(inlinedStyles).map((style) => ({ innerHTML: style }));
+}
+function renderPayloadResponse(ssrContext) {
+ return {
+ body: stringify(splitPayload(ssrContext).payload, ssrContext._payloadReducers) ,
+ statusCode: getResponseStatus(ssrContext.event),
+ statusMessage: getResponseStatusText(ssrContext.event),
+ headers: {
+ "content-type": "application/json;charset=utf-8" ,
+ "x-powered-by": "Nuxt"
+ }
+ };
+}
+function renderPayloadJsonScript(opts) {
+ const contents = opts.data ? stringify(opts.data, opts.ssrContext._payloadReducers) : "";
+ const payload = {
+ type: "application/json",
+ id: opts.id,
+ innerHTML: contents,
+ "data-ssr": !(opts.ssrContext.noSSR)
+ };
+ if (opts.src) {
+ payload["data-src"] = opts.src;
+ }
+ return [
+ payload,
+ {
+ innerHTML: `window.__NUXT__={};window.__NUXT__.config=${uneval(opts.ssrContext.config)}`
+ }
+ ];
+}
+function splitPayload(ssrContext) {
+ const { data, prerenderedAt, ...initial } = ssrContext.payload;
+ return {
+ initial: { ...initial, prerenderedAt },
+ payload: { data, prerenderedAt }
+ };
+}
+
+const renderer$1 = /*#__PURE__*/Object.freeze({
+ __proto__: null,
+ default: renderer
+});
+
+export { buildAssetsURL as b, renderer$1 as r };
+//# sourceMappingURL=renderer.mjs.map
diff --git a/.output/server/chunks/handlers/renderer.mjs.map b/.output/server/chunks/handlers/renderer.mjs.map
new file mode 100644
index 0000000..d558b28
--- /dev/null
+++ b/.output/server/chunks/handlers/renderer.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"renderer.mjs","sources":["../../../../node_modules/nitropack/dist/runtime/renderer.mjs","../../../../node_modules/@unhead/vue/dist/shared/vue.cf295fb1.mjs","../../../../node_modules/nuxt/dist/core/runtime/nitro/paths.js","../../../../node_modules/nuxt/dist/core/runtime/nitro/renderer.js"],"sourcesContent":null,"names":["renderToString","_renderToString"],"mappings":"","x_google_ignoreList":[0,1,2,3]}
\ No newline at end of file
diff --git a/.output/server/chunks/nitro/node-server.mjs b/.output/server/chunks/nitro/node-server.mjs
new file mode 100644
index 0000000..3ab3c80
--- /dev/null
+++ b/.output/server/chunks/nitro/node-server.mjs
@@ -0,0 +1,5823 @@
+globalThis._importMeta_=globalThis._importMeta_||{url:"file:///_entry.js",env:process.env};import http, { Server as Server$1 } from 'node:http';
+import https, { Server } from 'node:https';
+import { promises, existsSync } from 'fs';
+import { dirname as dirname$1, resolve as resolve$1, join } from 'path';
+import { promises as promises$1 } from 'node:fs';
+import { fileURLToPath } from 'node:url';
+
+const suspectProtoRx = /"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/;
+const suspectConstructorRx = /"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/;
+const JsonSigRx = /^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;
+function jsonParseTransform(key, value) {
+ if (key === "__proto__" || key === "constructor" && value && typeof value === "object" && "prototype" in value) {
+ warnKeyDropped(key);
+ return;
+ }
+ return value;
+}
+function warnKeyDropped(key) {
+ console.warn(`[destr] Dropping "${key}" key to prevent prototype pollution.`);
+}
+function destr(value, options = {}) {
+ if (typeof value !== "string") {
+ return value;
+ }
+ const _value = value.trim();
+ if (
+ // eslint-disable-next-line unicorn/prefer-at
+ value[0] === '"' && value.at(-1) === '"' && !value.includes("\\")
+ ) {
+ return _value.slice(1, -1);
+ }
+ if (_value.length <= 9) {
+ const _lval = _value.toLowerCase();
+ if (_lval === "true") {
+ return true;
+ }
+ if (_lval === "false") {
+ return false;
+ }
+ if (_lval === "undefined") {
+ return void 0;
+ }
+ if (_lval === "null") {
+ return null;
+ }
+ if (_lval === "nan") {
+ return Number.NaN;
+ }
+ if (_lval === "infinity") {
+ return Number.POSITIVE_INFINITY;
+ }
+ if (_lval === "-infinity") {
+ return Number.NEGATIVE_INFINITY;
+ }
+ }
+ if (!JsonSigRx.test(value)) {
+ if (options.strict) {
+ throw new SyntaxError("[destr] Invalid JSON");
+ }
+ return value;
+ }
+ try {
+ if (suspectProtoRx.test(value) || suspectConstructorRx.test(value)) {
+ if (options.strict) {
+ throw new Error("[destr] Possible prototype pollution");
+ }
+ return JSON.parse(value, jsonParseTransform);
+ }
+ return JSON.parse(value);
+ } catch (error) {
+ if (options.strict) {
+ throw error;
+ }
+ return value;
+ }
+}
+
+const HASH_RE = /#/g;
+const AMPERSAND_RE = /&/g;
+const EQUAL_RE = /=/g;
+const PLUS_RE = /\+/g;
+const ENC_CARET_RE = /%5e/gi;
+const ENC_BACKTICK_RE = /%60/gi;
+const ENC_PIPE_RE = /%7c/gi;
+const ENC_SPACE_RE = /%20/gi;
+const ENC_SLASH_RE = /%2f/gi;
+function encode(text) {
+ return encodeURI("" + text).replace(ENC_PIPE_RE, "|");
+}
+function encodeQueryValue(input) {
+ return encode(typeof input === "string" ? input : JSON.stringify(input)).replace(PLUS_RE, "%2B").replace(ENC_SPACE_RE, "+").replace(HASH_RE, "%23").replace(AMPERSAND_RE, "%26").replace(ENC_BACKTICK_RE, "`").replace(ENC_CARET_RE, "^");
+}
+function encodeQueryKey(text) {
+ return encodeQueryValue(text).replace(EQUAL_RE, "%3D");
+}
+function decode(text = "") {
+ try {
+ return decodeURIComponent("" + text);
+ } catch {
+ return "" + text;
+ }
+}
+function decodePath(text) {
+ return decode(text.replace(ENC_SLASH_RE, "%252F"));
+}
+function decodeQueryKey(text) {
+ return decode(text.replace(PLUS_RE, " "));
+}
+function decodeQueryValue(text) {
+ return decode(text.replace(PLUS_RE, " "));
+}
+
+function parseQuery(parametersString = "") {
+ const object = {};
+ if (parametersString[0] === "?") {
+ parametersString = parametersString.slice(1);
+ }
+ for (const parameter of parametersString.split("&")) {
+ const s = parameter.match(/([^=]+)=?(.*)/) || [];
+ if (s.length < 2) {
+ continue;
+ }
+ const key = decodeQueryKey(s[1]);
+ if (key === "__proto__" || key === "constructor") {
+ continue;
+ }
+ const value = decodeQueryValue(s[2] || "");
+ if (object[key] === void 0) {
+ object[key] = value;
+ } else if (Array.isArray(object[key])) {
+ object[key].push(value);
+ } else {
+ object[key] = [object[key], value];
+ }
+ }
+ return object;
+}
+function encodeQueryItem(key, value) {
+ if (typeof value === "number" || typeof value === "boolean") {
+ value = String(value);
+ }
+ if (!value) {
+ return encodeQueryKey(key);
+ }
+ if (Array.isArray(value)) {
+ return value.map((_value) => `${encodeQueryKey(key)}=${encodeQueryValue(_value)}`).join("&");
+ }
+ return `${encodeQueryKey(key)}=${encodeQueryValue(value)}`;
+}
+function stringifyQuery(query) {
+ return Object.keys(query).filter((k) => query[k] !== void 0).map((k) => encodeQueryItem(k, query[k])).filter(Boolean).join("&");
+}
+const PROTOCOL_STRICT_REGEX = /^[\s\w\0+.-]{2,}:([/\\]{1,2})/;
+const PROTOCOL_REGEX = /^[\s\w\0+.-]{2,}:([/\\]{2})?/;
+const PROTOCOL_RELATIVE_REGEX = /^([/\\]\s*){2,}[^/\\]/;
+function hasProtocol(inputString, opts = {}) {
+ if (typeof opts === "boolean") {
+ opts = { acceptRelative: opts };
+ }
+ if (opts.strict) {
+ return PROTOCOL_STRICT_REGEX.test(inputString);
+ }
+ return PROTOCOL_REGEX.test(inputString) || (opts.acceptRelative ? PROTOCOL_RELATIVE_REGEX.test(inputString) : false);
+}
+const PROTOCOL_SCRIPT_RE = /^[\s\0]*(blob|data|javascript|vbscript):$/i;
+function isScriptProtocol(protocol) {
+ return !!protocol && PROTOCOL_SCRIPT_RE.test(protocol);
+}
+const TRAILING_SLASH_RE = /\/$|\/\?|\/#/;
+function hasTrailingSlash(input = "", respectQueryAndFragment) {
+ if (!respectQueryAndFragment) {
+ return input.endsWith("/");
+ }
+ return TRAILING_SLASH_RE.test(input);
+}
+function withoutTrailingSlash(input = "", respectQueryAndFragment) {
+ if (!respectQueryAndFragment) {
+ return (hasTrailingSlash(input) ? input.slice(0, -1) : input) || "/";
+ }
+ if (!hasTrailingSlash(input, true)) {
+ return input || "/";
+ }
+ let path = input;
+ let fragment = "";
+ const fragmentIndex = input.indexOf("#");
+ if (fragmentIndex >= 0) {
+ path = input.slice(0, fragmentIndex);
+ fragment = input.slice(fragmentIndex);
+ }
+ const [s0, ...s] = path.split("?");
+ return (s0.slice(0, -1) || "/") + (s.length > 0 ? `?${s.join("?")}` : "") + fragment;
+}
+function withTrailingSlash(input = "", respectQueryAndFragment) {
+ if (!respectQueryAndFragment) {
+ return input.endsWith("/") ? input : input + "/";
+ }
+ if (hasTrailingSlash(input, true)) {
+ return input || "/";
+ }
+ let path = input;
+ let fragment = "";
+ const fragmentIndex = input.indexOf("#");
+ if (fragmentIndex >= 0) {
+ path = input.slice(0, fragmentIndex);
+ fragment = input.slice(fragmentIndex);
+ if (!path) {
+ return fragment;
+ }
+ }
+ const [s0, ...s] = path.split("?");
+ return s0 + "/" + (s.length > 0 ? `?${s.join("?")}` : "") + fragment;
+}
+function hasLeadingSlash(input = "") {
+ return input.startsWith("/");
+}
+function withLeadingSlash(input = "") {
+ return hasLeadingSlash(input) ? input : "/" + input;
+}
+function withBase(input, base) {
+ if (isEmptyURL(base) || hasProtocol(input)) {
+ return input;
+ }
+ const _base = withoutTrailingSlash(base);
+ if (input.startsWith(_base)) {
+ return input;
+ }
+ return joinURL(_base, input);
+}
+function withoutBase(input, base) {
+ if (isEmptyURL(base)) {
+ return input;
+ }
+ const _base = withoutTrailingSlash(base);
+ if (!input.startsWith(_base)) {
+ return input;
+ }
+ const trimmed = input.slice(_base.length);
+ return trimmed[0] === "/" ? trimmed : "/" + trimmed;
+}
+function withQuery(input, query) {
+ const parsed = parseURL(input);
+ const mergedQuery = { ...parseQuery(parsed.search), ...query };
+ parsed.search = stringifyQuery(mergedQuery);
+ return stringifyParsedURL(parsed);
+}
+function getQuery$1(input) {
+ return parseQuery(parseURL(input).search);
+}
+function isEmptyURL(url) {
+ return !url || url === "/";
+}
+function isNonEmptyURL(url) {
+ return url && url !== "/";
+}
+const JOIN_LEADING_SLASH_RE = /^\.?\//;
+function joinURL(base, ...input) {
+ let url = base || "";
+ for (const segment of input.filter((url2) => isNonEmptyURL(url2))) {
+ if (url) {
+ const _segment = segment.replace(JOIN_LEADING_SLASH_RE, "");
+ url = withTrailingSlash(url) + _segment;
+ } else {
+ url = segment;
+ }
+ }
+ return url;
+}
+
+function parseURL(input = "", defaultProto) {
+ const _specialProtoMatch = input.match(
+ /^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i
+ );
+ if (_specialProtoMatch) {
+ const [, _proto, _pathname = ""] = _specialProtoMatch;
+ return {
+ protocol: _proto.toLowerCase(),
+ pathname: _pathname,
+ href: _proto + _pathname,
+ auth: "",
+ host: "",
+ search: "",
+ hash: ""
+ };
+ }
+ if (!hasProtocol(input, { acceptRelative: true })) {
+ return defaultProto ? parseURL(defaultProto + input) : parsePath(input);
+ }
+ const [, protocol = "", auth, hostAndPath = ""] = input.replace(/\\/g, "/").match(/^[\s\0]*([\w+.-]{2,}:)?\/\/([^/@]+@)?(.*)/) || [];
+ const [, host = "", path = ""] = hostAndPath.match(/([^#/?]*)(.*)?/) || [];
+ const { pathname, search, hash } = parsePath(
+ path.replace(/\/(?=[A-Za-z]:)/, "")
+ );
+ return {
+ protocol: protocol.toLowerCase(),
+ auth: auth ? auth.slice(0, Math.max(0, auth.length - 1)) : "",
+ host,
+ pathname,
+ search,
+ hash
+ };
+}
+function parsePath(input = "") {
+ const [pathname = "", search = "", hash = ""] = (input.match(/([^#?]*)(\?[^#]*)?(#.*)?/) || []).splice(1);
+ return {
+ pathname,
+ search,
+ hash
+ };
+}
+function stringifyParsedURL(parsed) {
+ const pathname = parsed.pathname || "";
+ const search = parsed.search ? (parsed.search.startsWith("?") ? "" : "?") + parsed.search : "";
+ const hash = parsed.hash || "";
+ const auth = parsed.auth ? parsed.auth + "@" : "";
+ const host = parsed.host || "";
+ const proto = parsed.protocol ? parsed.protocol + "//" : "";
+ return proto + auth + host + pathname + search + hash;
+}
+
+const NODE_TYPES = {
+ NORMAL: 0,
+ WILDCARD: 1,
+ PLACEHOLDER: 2
+};
+
+function createRouter$1(options = {}) {
+ const ctx = {
+ options,
+ rootNode: createRadixNode(),
+ staticRoutesMap: {}
+ };
+ const normalizeTrailingSlash = (p) => options.strictTrailingSlash ? p : p.replace(/\/$/, "") || "/";
+ if (options.routes) {
+ for (const path in options.routes) {
+ insert(ctx, normalizeTrailingSlash(path), options.routes[path]);
+ }
+ }
+ return {
+ ctx,
+ // @ts-ignore
+ lookup: (path) => lookup(ctx, normalizeTrailingSlash(path)),
+ insert: (path, data) => insert(ctx, normalizeTrailingSlash(path), data),
+ remove: (path) => remove(ctx, normalizeTrailingSlash(path))
+ };
+}
+function lookup(ctx, path) {
+ const staticPathNode = ctx.staticRoutesMap[path];
+ if (staticPathNode) {
+ return staticPathNode.data;
+ }
+ const sections = path.split("/");
+ const params = {};
+ let paramsFound = false;
+ let wildcardNode = null;
+ let node = ctx.rootNode;
+ let wildCardParam = null;
+ for (let i = 0; i < sections.length; i++) {
+ const section = sections[i];
+ if (node.wildcardChildNode !== null) {
+ wildcardNode = node.wildcardChildNode;
+ wildCardParam = sections.slice(i).join("/");
+ }
+ const nextNode = node.children.get(section);
+ if (nextNode !== void 0) {
+ node = nextNode;
+ } else {
+ node = node.placeholderChildNode;
+ if (node !== null) {
+ params[node.paramName] = section;
+ paramsFound = true;
+ } else {
+ break;
+ }
+ }
+ }
+ if ((node === null || node.data === null) && wildcardNode !== null) {
+ node = wildcardNode;
+ params[node.paramName || "_"] = wildCardParam;
+ paramsFound = true;
+ }
+ if (!node) {
+ return null;
+ }
+ if (paramsFound) {
+ return {
+ ...node.data,
+ params: paramsFound ? params : void 0
+ };
+ }
+ return node.data;
+}
+function insert(ctx, path, data) {
+ let isStaticRoute = true;
+ const sections = path.split("/");
+ let node = ctx.rootNode;
+ let _unnamedPlaceholderCtr = 0;
+ for (const section of sections) {
+ let childNode;
+ if (childNode = node.children.get(section)) {
+ node = childNode;
+ } else {
+ const type = getNodeType(section);
+ childNode = createRadixNode({ type, parent: node });
+ node.children.set(section, childNode);
+ if (type === NODE_TYPES.PLACEHOLDER) {
+ childNode.paramName = section === "*" ? `_${_unnamedPlaceholderCtr++}` : section.slice(1);
+ node.placeholderChildNode = childNode;
+ isStaticRoute = false;
+ } else if (type === NODE_TYPES.WILDCARD) {
+ node.wildcardChildNode = childNode;
+ childNode.paramName = section.slice(
+ 3
+ /* "**:" */
+ ) || "_";
+ isStaticRoute = false;
+ }
+ node = childNode;
+ }
+ }
+ node.data = data;
+ if (isStaticRoute === true) {
+ ctx.staticRoutesMap[path] = node;
+ }
+ return node;
+}
+function remove(ctx, path) {
+ let success = false;
+ const sections = path.split("/");
+ let node = ctx.rootNode;
+ for (const section of sections) {
+ node = node.children.get(section);
+ if (!node) {
+ return success;
+ }
+ }
+ if (node.data) {
+ const lastSection = sections[sections.length - 1];
+ node.data = null;
+ if (Object.keys(node.children).length === 0) {
+ const parentNode = node.parent;
+ parentNode.children.delete(lastSection);
+ parentNode.wildcardChildNode = null;
+ parentNode.placeholderChildNode = null;
+ }
+ success = true;
+ }
+ return success;
+}
+function createRadixNode(options = {}) {
+ return {
+ type: options.type || NODE_TYPES.NORMAL,
+ parent: options.parent || null,
+ children: /* @__PURE__ */ new Map(),
+ data: options.data || null,
+ paramName: options.paramName || null,
+ wildcardChildNode: null,
+ placeholderChildNode: null
+ };
+}
+function getNodeType(str) {
+ if (str.startsWith("**")) {
+ return NODE_TYPES.WILDCARD;
+ }
+ if (str[0] === ":" || str === "*") {
+ return NODE_TYPES.PLACEHOLDER;
+ }
+ return NODE_TYPES.NORMAL;
+}
+
+function toRouteMatcher(router) {
+ const table = _routerNodeToTable("", router.ctx.rootNode);
+ return _createMatcher(table);
+}
+function _createMatcher(table) {
+ return {
+ ctx: { table },
+ matchAll: (path) => _matchRoutes(path, table)
+ };
+}
+function _createRouteTable() {
+ return {
+ static: /* @__PURE__ */ new Map(),
+ wildcard: /* @__PURE__ */ new Map(),
+ dynamic: /* @__PURE__ */ new Map()
+ };
+}
+function _matchRoutes(path, table) {
+ const matches = [];
+ for (const [key, value] of _sortRoutesMap(table.wildcard)) {
+ if (path.startsWith(key)) {
+ matches.push(value);
+ }
+ }
+ for (const [key, value] of _sortRoutesMap(table.dynamic)) {
+ if (path.startsWith(key + "/")) {
+ const subPath = "/" + path.slice(key.length).split("/").splice(2).join("/");
+ matches.push(..._matchRoutes(subPath, value));
+ }
+ }
+ const staticMatch = table.static.get(path);
+ if (staticMatch) {
+ matches.push(staticMatch);
+ }
+ return matches.filter(Boolean);
+}
+function _sortRoutesMap(m) {
+ return [...m.entries()].sort((a, b) => a[0].length - b[0].length);
+}
+function _routerNodeToTable(initialPath, initialNode) {
+ const table = _createRouteTable();
+ function _addNode(path, node) {
+ if (path) {
+ if (node.type === NODE_TYPES.NORMAL && !(path.includes("*") || path.includes(":"))) {
+ table.static.set(path, node.data);
+ } else if (node.type === NODE_TYPES.WILDCARD) {
+ table.wildcard.set(path.replace("/**", ""), node.data);
+ } else if (node.type === NODE_TYPES.PLACEHOLDER) {
+ const subTable = _routerNodeToTable("", node);
+ if (node.data) {
+ subTable.static.set("/", node.data);
+ }
+ table.dynamic.set(path.replace(/\/\*|\/:\w+/, ""), subTable);
+ return;
+ }
+ }
+ for (const [childPath, child] of node.children.entries()) {
+ _addNode(`${path}/${childPath}`.replace("//", "/"), child);
+ }
+ }
+ _addNode(initialPath, initialNode);
+ return table;
+}
+
+function _defu(baseObject, defaults, namespace = ".", merger) {
+ if (!_isPlainObject(defaults)) {
+ return _defu(baseObject, {}, namespace, merger);
+ }
+ const object = Object.assign({}, defaults);
+ for (const key in baseObject) {
+ if (key === "__proto__" || key === "constructor") {
+ continue;
+ }
+ const value = baseObject[key];
+ if (value === null || value === void 0) {
+ continue;
+ }
+ if (merger && merger(object, key, value, namespace)) {
+ continue;
+ }
+ if (Array.isArray(value) && Array.isArray(object[key])) {
+ object[key] = [...value, ...object[key]];
+ } else if (_isPlainObject(value) && _isPlainObject(object[key])) {
+ object[key] = _defu(
+ value,
+ object[key],
+ (namespace ? `${namespace}.` : "") + key.toString(),
+ merger
+ );
+ } else {
+ object[key] = value;
+ }
+ }
+ return object;
+}
+function _isPlainObject(value) {
+ if (value === null || typeof value !== "object") {
+ return false;
+ }
+ const prototype = Object.getPrototypeOf(value);
+ return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);
+}
+function createDefu(merger) {
+ return (...arguments_) => (
+ // eslint-disable-next-line unicorn/no-array-reduce
+ arguments_.reduce((p, c) => _defu(p, c, "", merger), {})
+ );
+}
+const defu = createDefu();
+const defuFn = createDefu((object, key, currentValue) => {
+ if (object[key] !== void 0 && typeof currentValue === "function") {
+ object[key] = currentValue(object[key]);
+ return true;
+ }
+});
+
+function rawHeaders(headers) {
+ const rawHeaders2 = [];
+ for (const key in headers) {
+ if (Array.isArray(headers[key])) {
+ for (const h of headers[key]) {
+ rawHeaders2.push(key, h);
+ }
+ } else {
+ rawHeaders2.push(key, headers[key]);
+ }
+ }
+ return rawHeaders2;
+}
+function mergeFns(...functions) {
+ return function(...args) {
+ for (const fn of functions) {
+ fn(...args);
+ }
+ };
+}
+function createNotImplementedError(name) {
+ throw new Error(`[unenv] ${name} is not implemented yet!`);
+}
+
+let defaultMaxListeners = 10;
+let EventEmitter$1 = class EventEmitter {
+ __unenv__ = true;
+ _events = /* @__PURE__ */ Object.create(null);
+ _maxListeners;
+ static get defaultMaxListeners() {
+ return defaultMaxListeners;
+ }
+ static set defaultMaxListeners(arg) {
+ if (typeof arg !== "number" || arg < 0 || Number.isNaN(arg)) {
+ throw new RangeError(
+ 'The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + "."
+ );
+ }
+ defaultMaxListeners = arg;
+ }
+ setMaxListeners(n) {
+ if (typeof n !== "number" || n < 0 || Number.isNaN(n)) {
+ throw new RangeError(
+ 'The value of "n" is out of range. It must be a non-negative number. Received ' + n + "."
+ );
+ }
+ this._maxListeners = n;
+ return this;
+ }
+ getMaxListeners() {
+ return _getMaxListeners(this);
+ }
+ emit(type, ...args) {
+ if (!this._events[type] || this._events[type].length === 0) {
+ return false;
+ }
+ if (type === "error") {
+ let er;
+ if (args.length > 0) {
+ er = args[0];
+ }
+ if (er instanceof Error) {
+ throw er;
+ }
+ const err = new Error(
+ "Unhandled error." + (er ? " (" + er.message + ")" : "")
+ );
+ err.context = er;
+ throw err;
+ }
+ for (const _listener of this._events[type]) {
+ (_listener.listener || _listener).apply(this, args);
+ }
+ return true;
+ }
+ addListener(type, listener) {
+ return _addListener(this, type, listener, false);
+ }
+ on(type, listener) {
+ return _addListener(this, type, listener, false);
+ }
+ prependListener(type, listener) {
+ return _addListener(this, type, listener, true);
+ }
+ once(type, listener) {
+ return this.on(type, _wrapOnce(this, type, listener));
+ }
+ prependOnceListener(type, listener) {
+ return this.prependListener(type, _wrapOnce(this, type, listener));
+ }
+ removeListener(type, listener) {
+ return _removeListener(this, type, listener);
+ }
+ off(type, listener) {
+ return this.removeListener(type, listener);
+ }
+ removeAllListeners(type) {
+ return _removeAllListeners(this, type);
+ }
+ listeners(type) {
+ return _listeners(this, type, true);
+ }
+ rawListeners(type) {
+ return _listeners(this, type, false);
+ }
+ listenerCount(type) {
+ return this.rawListeners(type).length;
+ }
+ eventNames() {
+ return Object.keys(this._events);
+ }
+};
+function _addListener(target, type, listener, prepend) {
+ _checkListener(listener);
+ if (target._events.newListener !== void 0) {
+ target.emit("newListener", type, listener.listener || listener);
+ }
+ if (!target._events[type]) {
+ target._events[type] = [];
+ }
+ if (prepend) {
+ target._events[type].unshift(listener);
+ } else {
+ target._events[type].push(listener);
+ }
+ const maxListeners = _getMaxListeners(target);
+ if (maxListeners > 0 && target._events[type].length > maxListeners && !target._events[type].warned) {
+ target._events[type].warned = true;
+ const warning = new Error(
+ `[unenv] Possible EventEmitter memory leak detected. ${target._events[type].length} ${type} listeners added. Use emitter.setMaxListeners() to increase limit`
+ );
+ warning.name = "MaxListenersExceededWarning";
+ warning.emitter = target;
+ warning.type = type;
+ warning.count = target._events[type]?.length;
+ console.warn(warning);
+ }
+ return target;
+}
+function _removeListener(target, type, listener) {
+ _checkListener(listener);
+ if (!target._events[type] || target._events[type].length === 0) {
+ return target;
+ }
+ const lenBeforeFilter = target._events[type].length;
+ target._events[type] = target._events[type].filter((fn) => fn !== listener);
+ if (lenBeforeFilter === target._events[type].length) {
+ return target;
+ }
+ if (target._events.removeListener) {
+ target.emit("removeListener", type, listener.listener || listener);
+ }
+ if (target._events[type].length === 0) {
+ delete target._events[type];
+ }
+ return target;
+}
+function _removeAllListeners(target, type) {
+ if (!target._events[type] || target._events[type].length === 0) {
+ return target;
+ }
+ if (target._events.removeListener) {
+ for (const _listener of target._events[type]) {
+ target.emit("removeListener", type, _listener.listener || _listener);
+ }
+ }
+ delete target._events[type];
+ return target;
+}
+function _wrapOnce(target, type, listener) {
+ let fired = false;
+ const wrapper = (...args) => {
+ if (fired) {
+ return;
+ }
+ target.removeListener(type, wrapper);
+ fired = true;
+ return args.length === 0 ? listener.call(target) : listener.apply(target, args);
+ };
+ wrapper.listener = listener;
+ return wrapper;
+}
+function _getMaxListeners(target) {
+ return target._maxListeners ?? EventEmitter$1.defaultMaxListeners;
+}
+function _listeners(target, type, unwrap) {
+ let listeners = target._events[type];
+ if (typeof listeners === "function") {
+ listeners = [listeners];
+ }
+ return unwrap ? listeners.map((l) => l.listener || l) : listeners;
+}
+function _checkListener(listener) {
+ if (typeof listener !== "function") {
+ throw new TypeError(
+ 'The "listener" argument must be of type Function. Received type ' + typeof listener
+ );
+ }
+}
+
+const EventEmitter = globalThis.EventEmitter || EventEmitter$1;
+
+class _Readable extends EventEmitter {
+ __unenv__ = true;
+ readableEncoding = null;
+ readableEnded = true;
+ readableFlowing = false;
+ readableHighWaterMark = 0;
+ readableLength = 0;
+ readableObjectMode = false;
+ readableAborted = false;
+ readableDidRead = false;
+ closed = false;
+ errored = null;
+ readable = false;
+ destroyed = false;
+ static from(_iterable, options) {
+ return new _Readable(options);
+ }
+ constructor(_opts) {
+ super();
+ }
+ _read(_size) {
+ }
+ read(_size) {
+ }
+ setEncoding(_encoding) {
+ return this;
+ }
+ pause() {
+ return this;
+ }
+ resume() {
+ return this;
+ }
+ isPaused() {
+ return true;
+ }
+ unpipe(_destination) {
+ return this;
+ }
+ unshift(_chunk, _encoding) {
+ }
+ wrap(_oldStream) {
+ return this;
+ }
+ push(_chunk, _encoding) {
+ return false;
+ }
+ _destroy(_error, _callback) {
+ this.removeAllListeners();
+ }
+ destroy(error) {
+ this.destroyed = true;
+ this._destroy(error);
+ return this;
+ }
+ pipe(_destenition, _options) {
+ return {};
+ }
+ compose(stream, options) {
+ throw new Error("[unenv] Method not implemented.");
+ }
+ [Symbol.asyncDispose]() {
+ this.destroy();
+ return Promise.resolve();
+ }
+ async *[Symbol.asyncIterator]() {
+ throw createNotImplementedError("Readable.asyncIterator");
+ }
+ iterator(options) {
+ throw createNotImplementedError("Readable.iterator");
+ }
+ map(fn, options) {
+ throw createNotImplementedError("Readable.map");
+ }
+ filter(fn, options) {
+ throw createNotImplementedError("Readable.filter");
+ }
+ forEach(fn, options) {
+ throw createNotImplementedError("Readable.forEach");
+ }
+ reduce(fn, initialValue, options) {
+ throw createNotImplementedError("Readable.reduce");
+ }
+ find(fn, options) {
+ throw createNotImplementedError("Readable.find");
+ }
+ findIndex(fn, options) {
+ throw createNotImplementedError("Readable.findIndex");
+ }
+ some(fn, options) {
+ throw createNotImplementedError("Readable.some");
+ }
+ toArray(options) {
+ throw createNotImplementedError("Readable.toArray");
+ }
+ every(fn, options) {
+ throw createNotImplementedError("Readable.every");
+ }
+ flatMap(fn, options) {
+ throw createNotImplementedError("Readable.flatMap");
+ }
+ drop(limit, options) {
+ throw createNotImplementedError("Readable.drop");
+ }
+ take(limit, options) {
+ throw createNotImplementedError("Readable.take");
+ }
+ asIndexedPairs(options) {
+ throw createNotImplementedError("Readable.asIndexedPairs");
+ }
+}
+const Readable = globalThis.Readable || _Readable;
+
+class _Writable extends EventEmitter {
+ __unenv__ = true;
+ writable = true;
+ writableEnded = false;
+ writableFinished = false;
+ writableHighWaterMark = 0;
+ writableLength = 0;
+ writableObjectMode = false;
+ writableCorked = 0;
+ closed = false;
+ errored = null;
+ writableNeedDrain = false;
+ destroyed = false;
+ _data;
+ _encoding = "utf-8";
+ constructor(_opts) {
+ super();
+ }
+ pipe(_destenition, _options) {
+ return {};
+ }
+ _write(chunk, encoding, callback) {
+ if (this.writableEnded) {
+ if (callback) {
+ callback();
+ }
+ return;
+ }
+ if (this._data === void 0) {
+ this._data = chunk;
+ } else {
+ const a = typeof this._data === "string" ? Buffer.from(this._data, this._encoding || encoding || "utf8") : this._data;
+ const b = typeof chunk === "string" ? Buffer.from(chunk, encoding || this._encoding || "utf8") : chunk;
+ this._data = Buffer.concat([a, b]);
+ }
+ this._encoding = encoding;
+ if (callback) {
+ callback();
+ }
+ }
+ _writev(_chunks, _callback) {
+ }
+ _destroy(_error, _callback) {
+ }
+ _final(_callback) {
+ }
+ write(chunk, arg2, arg3) {
+ const encoding = typeof arg2 === "string" ? this._encoding : "utf-8";
+ const cb = typeof arg2 === "function" ? arg2 : typeof arg3 === "function" ? arg3 : void 0;
+ this._write(chunk, encoding, cb);
+ return true;
+ }
+ setDefaultEncoding(_encoding) {
+ return this;
+ }
+ end(arg1, arg2, arg3) {
+ const callback = typeof arg1 === "function" ? arg1 : typeof arg2 === "function" ? arg2 : typeof arg3 === "function" ? arg3 : void 0;
+ if (this.writableEnded) {
+ if (callback) {
+ callback();
+ }
+ return this;
+ }
+ const data = arg1 === callback ? void 0 : arg1;
+ if (data) {
+ const encoding = arg2 === callback ? void 0 : arg2;
+ this.write(data, encoding, callback);
+ }
+ this.writableEnded = true;
+ this.writableFinished = true;
+ this.emit("close");
+ this.emit("finish");
+ return this;
+ }
+ cork() {
+ }
+ uncork() {
+ }
+ destroy(_error) {
+ this.destroyed = true;
+ delete this._data;
+ this.removeAllListeners();
+ return this;
+ }
+ compose(stream, options) {
+ throw new Error("[h3] Method not implemented.");
+ }
+}
+const Writable = globalThis.Writable || _Writable;
+
+const __Duplex = class {
+ allowHalfOpen = true;
+ _destroy;
+ constructor(readable = new Readable(), writable = new Writable()) {
+ Object.assign(this, readable);
+ Object.assign(this, writable);
+ this._destroy = mergeFns(readable._destroy, writable._destroy);
+ }
+};
+function getDuplex() {
+ Object.assign(__Duplex.prototype, Readable.prototype);
+ Object.assign(__Duplex.prototype, Writable.prototype);
+ return __Duplex;
+}
+const _Duplex = /* @__PURE__ */ getDuplex();
+const Duplex = globalThis.Duplex || _Duplex;
+
+class Socket extends Duplex {
+ __unenv__ = true;
+ bufferSize = 0;
+ bytesRead = 0;
+ bytesWritten = 0;
+ connecting = false;
+ destroyed = false;
+ pending = false;
+ localAddress = "";
+ localPort = 0;
+ remoteAddress = "";
+ remoteFamily = "";
+ remotePort = 0;
+ autoSelectFamilyAttemptedAddresses = [];
+ readyState = "readOnly";
+ constructor(_options) {
+ super();
+ }
+ write(_buffer, _arg1, _arg2) {
+ return false;
+ }
+ connect(_arg1, _arg2, _arg3) {
+ return this;
+ }
+ end(_arg1, _arg2, _arg3) {
+ return this;
+ }
+ setEncoding(_encoding) {
+ return this;
+ }
+ pause() {
+ return this;
+ }
+ resume() {
+ return this;
+ }
+ setTimeout(_timeout, _callback) {
+ return this;
+ }
+ setNoDelay(_noDelay) {
+ return this;
+ }
+ setKeepAlive(_enable, _initialDelay) {
+ return this;
+ }
+ address() {
+ return {};
+ }
+ unref() {
+ return this;
+ }
+ ref() {
+ return this;
+ }
+ destroySoon() {
+ this.destroy();
+ }
+ resetAndDestroy() {
+ const err = new Error("ERR_SOCKET_CLOSED");
+ err.code = "ERR_SOCKET_CLOSED";
+ this.destroy(err);
+ return this;
+ }
+}
+
+class IncomingMessage extends Readable {
+ __unenv__ = {};
+ aborted = false;
+ httpVersion = "1.1";
+ httpVersionMajor = 1;
+ httpVersionMinor = 1;
+ complete = true;
+ connection;
+ socket;
+ headers = {};
+ trailers = {};
+ method = "GET";
+ url = "/";
+ statusCode = 200;
+ statusMessage = "";
+ closed = false;
+ errored = null;
+ readable = false;
+ constructor(socket) {
+ super();
+ this.socket = this.connection = socket || new Socket();
+ }
+ get rawHeaders() {
+ return rawHeaders(this.headers);
+ }
+ get rawTrailers() {
+ return [];
+ }
+ setTimeout(_msecs, _callback) {
+ return this;
+ }
+ get headersDistinct() {
+ return _distinct(this.headers);
+ }
+ get trailersDistinct() {
+ return _distinct(this.trailers);
+ }
+}
+function _distinct(obj) {
+ const d = {};
+ for (const [key, value] of Object.entries(obj)) {
+ if (key) {
+ d[key] = (Array.isArray(value) ? value : [value]).filter(
+ Boolean
+ );
+ }
+ }
+ return d;
+}
+
+class ServerResponse extends Writable {
+ __unenv__ = true;
+ statusCode = 200;
+ statusMessage = "";
+ upgrading = false;
+ chunkedEncoding = false;
+ shouldKeepAlive = false;
+ useChunkedEncodingByDefault = false;
+ sendDate = false;
+ finished = false;
+ headersSent = false;
+ strictContentLength = false;
+ connection = null;
+ socket = null;
+ req;
+ _headers = {};
+ constructor(req) {
+ super();
+ this.req = req;
+ }
+ assignSocket(socket) {
+ socket._httpMessage = this;
+ this.socket = socket;
+ this.connection = socket;
+ this.emit("socket", socket);
+ this._flush();
+ }
+ _flush() {
+ this.flushHeaders();
+ }
+ detachSocket(_socket) {
+ }
+ writeContinue(_callback) {
+ }
+ writeHead(statusCode, arg1, arg2) {
+ if (statusCode) {
+ this.statusCode = statusCode;
+ }
+ if (typeof arg1 === "string") {
+ this.statusMessage = arg1;
+ arg1 = void 0;
+ }
+ const headers = arg2 || arg1;
+ if (headers) {
+ if (Array.isArray(headers)) ; else {
+ for (const key in headers) {
+ this.setHeader(key, headers[key]);
+ }
+ }
+ }
+ this.headersSent = true;
+ return this;
+ }
+ writeProcessing() {
+ }
+ setTimeout(_msecs, _callback) {
+ return this;
+ }
+ appendHeader(name, value) {
+ name = name.toLowerCase();
+ const current = this._headers[name];
+ const all = [
+ ...Array.isArray(current) ? current : [current],
+ ...Array.isArray(value) ? value : [value]
+ ].filter(Boolean);
+ this._headers[name] = all.length > 1 ? all : all[0];
+ return this;
+ }
+ setHeader(name, value) {
+ this._headers[name.toLowerCase()] = value;
+ return this;
+ }
+ getHeader(name) {
+ return this._headers[name.toLowerCase()];
+ }
+ getHeaders() {
+ return this._headers;
+ }
+ getHeaderNames() {
+ return Object.keys(this._headers);
+ }
+ hasHeader(name) {
+ return name.toLowerCase() in this._headers;
+ }
+ removeHeader(name) {
+ delete this._headers[name.toLowerCase()];
+ }
+ addTrailers(_headers) {
+ }
+ flushHeaders() {
+ }
+ writeEarlyHints(_headers, cb) {
+ if (typeof cb === "function") {
+ cb();
+ }
+ }
+}
+
+function hasProp(obj, prop) {
+ try {
+ return prop in obj;
+ } catch {
+ return false;
+ }
+}
+
+var __defProp$1 = Object.defineProperty;
+var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
+var __publicField$1 = (obj, key, value) => {
+ __defNormalProp$1(obj, typeof key !== "symbol" ? key + "" : key, value);
+ return value;
+};
+class H3Error extends Error {
+ constructor(message, opts = {}) {
+ super(message, opts);
+ __publicField$1(this, "statusCode", 500);
+ __publicField$1(this, "fatal", false);
+ __publicField$1(this, "unhandled", false);
+ __publicField$1(this, "statusMessage");
+ __publicField$1(this, "data");
+ __publicField$1(this, "cause");
+ if (opts.cause && !this.cause) {
+ this.cause = opts.cause;
+ }
+ }
+ toJSON() {
+ const obj = {
+ message: this.message,
+ statusCode: sanitizeStatusCode(this.statusCode, 500)
+ };
+ if (this.statusMessage) {
+ obj.statusMessage = sanitizeStatusMessage(this.statusMessage);
+ }
+ if (this.data !== void 0) {
+ obj.data = this.data;
+ }
+ return obj;
+ }
+}
+__publicField$1(H3Error, "__h3_error__", true);
+function createError$1(input) {
+ if (typeof input === "string") {
+ return new H3Error(input);
+ }
+ if (isError(input)) {
+ return input;
+ }
+ const err = new H3Error(input.message ?? input.statusMessage ?? "", {
+ cause: input.cause || input
+ });
+ if (hasProp(input, "stack")) {
+ try {
+ Object.defineProperty(err, "stack", {
+ get() {
+ return input.stack;
+ }
+ });
+ } catch {
+ try {
+ err.stack = input.stack;
+ } catch {
+ }
+ }
+ }
+ if (input.data) {
+ err.data = input.data;
+ }
+ if (input.statusCode) {
+ err.statusCode = sanitizeStatusCode(input.statusCode, err.statusCode);
+ } else if (input.status) {
+ err.statusCode = sanitizeStatusCode(input.status, err.statusCode);
+ }
+ if (input.statusMessage) {
+ err.statusMessage = input.statusMessage;
+ } else if (input.statusText) {
+ err.statusMessage = input.statusText;
+ }
+ if (err.statusMessage) {
+ const originalMessage = err.statusMessage;
+ const sanitizedMessage = sanitizeStatusMessage(err.statusMessage);
+ if (sanitizedMessage !== originalMessage) {
+ console.warn(
+ "[h3] Please prefer using `message` for longer error messages instead of `statusMessage`. In the future, `statusMessage` will be sanitized by default."
+ );
+ }
+ }
+ if (input.fatal !== void 0) {
+ err.fatal = input.fatal;
+ }
+ if (input.unhandled !== void 0) {
+ err.unhandled = input.unhandled;
+ }
+ return err;
+}
+function sendError(event, error, debug) {
+ if (event.handled) {
+ return;
+ }
+ const h3Error = isError(error) ? error : createError$1(error);
+ const responseBody = {
+ statusCode: h3Error.statusCode,
+ statusMessage: h3Error.statusMessage,
+ stack: [],
+ data: h3Error.data
+ };
+ if (debug) {
+ responseBody.stack = (h3Error.stack || "").split("\n").map((l) => l.trim());
+ }
+ if (event.handled) {
+ return;
+ }
+ const _code = Number.parseInt(h3Error.statusCode);
+ setResponseStatus(event, _code, h3Error.statusMessage);
+ event.node.res.setHeader("content-type", MIMES.json);
+ event.node.res.end(JSON.stringify(responseBody, void 0, 2));
+}
+function isError(input) {
+ return input?.constructor?.__h3_error__ === true;
+}
+
+function getQuery(event) {
+ return getQuery$1(event.path || "");
+}
+function isMethod(event, expected, allowHead) {
+ if (allowHead && event.method === "HEAD") {
+ return true;
+ }
+ if (typeof expected === "string") {
+ if (event.method === expected) {
+ return true;
+ }
+ } else if (expected.includes(event.method)) {
+ return true;
+ }
+ return false;
+}
+function assertMethod(event, expected, allowHead) {
+ if (!isMethod(event, expected, allowHead)) {
+ throw createError$1({
+ statusCode: 405,
+ statusMessage: "HTTP method is not allowed."
+ });
+ }
+}
+function getRequestHeaders(event) {
+ const _headers = {};
+ for (const key in event.node.req.headers) {
+ const val = event.node.req.headers[key];
+ _headers[key] = Array.isArray(val) ? val.filter(Boolean).join(", ") : val;
+ }
+ return _headers;
+}
+function getRequestHeader(event, name) {
+ const headers = getRequestHeaders(event);
+ const value = headers[name.toLowerCase()];
+ return value;
+}
+
+const RawBodySymbol = Symbol.for("h3RawBody");
+const PayloadMethods$1 = ["PATCH", "POST", "PUT", "DELETE"];
+function readRawBody(event, encoding = "utf8") {
+ assertMethod(event, PayloadMethods$1);
+ const _rawBody = event._requestBody || event.web?.request?.body || event.node.req[RawBodySymbol] || event.node.req.body;
+ if (_rawBody) {
+ const promise2 = Promise.resolve(_rawBody).then((_resolved) => {
+ if (Buffer.isBuffer(_resolved)) {
+ return _resolved;
+ }
+ if (typeof _resolved.pipeTo === "function") {
+ return new Promise((resolve, reject) => {
+ const chunks = [];
+ _resolved.pipeTo(
+ new WritableStream({
+ write(chunk) {
+ chunks.push(chunk);
+ },
+ close() {
+ resolve(Buffer.concat(chunks));
+ },
+ abort(reason) {
+ reject(reason);
+ }
+ })
+ ).catch(reject);
+ });
+ } else if (typeof _resolved.pipe === "function") {
+ return new Promise((resolve, reject) => {
+ const chunks = [];
+ _resolved.on("data", (chunk) => {
+ chunks.push(chunk);
+ }).on("end", () => {
+ resolve(Buffer.concat(chunks));
+ }).on("error", reject);
+ });
+ }
+ if (_resolved.constructor === Object) {
+ return Buffer.from(JSON.stringify(_resolved));
+ }
+ return Buffer.from(_resolved);
+ });
+ return encoding ? promise2.then((buff) => buff.toString(encoding)) : promise2;
+ }
+ if (!Number.parseInt(event.node.req.headers["content-length"] || "")) {
+ return Promise.resolve(void 0);
+ }
+ const promise = event.node.req[RawBodySymbol] = new Promise(
+ (resolve, reject) => {
+ const bodyData = [];
+ event.node.req.on("error", (err) => {
+ reject(err);
+ }).on("data", (chunk) => {
+ bodyData.push(chunk);
+ }).on("end", () => {
+ resolve(Buffer.concat(bodyData));
+ });
+ }
+ );
+ const result = encoding ? promise.then((buff) => buff.toString(encoding)) : promise;
+ return result;
+}
+function getRequestWebStream(event) {
+ if (!PayloadMethods$1.includes(event.method)) {
+ return;
+ }
+ return event.web?.request?.body || event._requestBody || new ReadableStream({
+ start: (controller) => {
+ event.node.req.on("data", (chunk) => {
+ controller.enqueue(chunk);
+ });
+ event.node.req.on("end", () => {
+ controller.close();
+ });
+ event.node.req.on("error", (err) => {
+ controller.error(err);
+ });
+ }
+ });
+}
+
+function handleCacheHeaders(event, opts) {
+ const cacheControls = ["public", ...opts.cacheControls || []];
+ let cacheMatched = false;
+ if (opts.maxAge !== void 0) {
+ cacheControls.push(`max-age=${+opts.maxAge}`, `s-maxage=${+opts.maxAge}`);
+ }
+ if (opts.modifiedTime) {
+ const modifiedTime = new Date(opts.modifiedTime);
+ const ifModifiedSince = event.node.req.headers["if-modified-since"];
+ event.node.res.setHeader("last-modified", modifiedTime.toUTCString());
+ if (ifModifiedSince && new Date(ifModifiedSince) >= opts.modifiedTime) {
+ cacheMatched = true;
+ }
+ }
+ if (opts.etag) {
+ event.node.res.setHeader("etag", opts.etag);
+ const ifNonMatch = event.node.req.headers["if-none-match"];
+ if (ifNonMatch === opts.etag) {
+ cacheMatched = true;
+ }
+ }
+ event.node.res.setHeader("cache-control", cacheControls.join(", "));
+ if (cacheMatched) {
+ event.node.res.statusCode = 304;
+ if (!event.handled) {
+ event.node.res.end();
+ }
+ return true;
+ }
+ return false;
+}
+
+const MIMES = {
+ html: "text/html",
+ json: "application/json"
+};
+
+const DISALLOWED_STATUS_CHARS = /[^\u0009\u0020-\u007E]/g;
+function sanitizeStatusMessage(statusMessage = "") {
+ return statusMessage.replace(DISALLOWED_STATUS_CHARS, "");
+}
+function sanitizeStatusCode(statusCode, defaultStatusCode = 200) {
+ if (!statusCode) {
+ return defaultStatusCode;
+ }
+ if (typeof statusCode === "string") {
+ statusCode = Number.parseInt(statusCode, 10);
+ }
+ if (statusCode < 100 || statusCode > 999) {
+ return defaultStatusCode;
+ }
+ return statusCode;
+}
+function splitCookiesString(cookiesString) {
+ if (Array.isArray(cookiesString)) {
+ return cookiesString.flatMap((c) => splitCookiesString(c));
+ }
+ if (typeof cookiesString !== "string") {
+ return [];
+ }
+ const cookiesStrings = [];
+ let pos = 0;
+ let start;
+ let ch;
+ let lastComma;
+ let nextStart;
+ let cookiesSeparatorFound;
+ const skipWhitespace = () => {
+ while (pos < cookiesString.length && /\s/.test(cookiesString.charAt(pos))) {
+ pos += 1;
+ }
+ return pos < cookiesString.length;
+ };
+ const notSpecialChar = () => {
+ ch = cookiesString.charAt(pos);
+ return ch !== "=" && ch !== ";" && ch !== ",";
+ };
+ while (pos < cookiesString.length) {
+ start = pos;
+ cookiesSeparatorFound = false;
+ while (skipWhitespace()) {
+ ch = cookiesString.charAt(pos);
+ if (ch === ",") {
+ lastComma = pos;
+ pos += 1;
+ skipWhitespace();
+ nextStart = pos;
+ while (pos < cookiesString.length && notSpecialChar()) {
+ pos += 1;
+ }
+ if (pos < cookiesString.length && cookiesString.charAt(pos) === "=") {
+ cookiesSeparatorFound = true;
+ pos = nextStart;
+ cookiesStrings.push(cookiesString.slice(start, lastComma));
+ start = pos;
+ } else {
+ pos = lastComma + 1;
+ }
+ } else {
+ pos += 1;
+ }
+ }
+ if (!cookiesSeparatorFound || pos >= cookiesString.length) {
+ cookiesStrings.push(cookiesString.slice(start, cookiesString.length));
+ }
+ }
+ return cookiesStrings;
+}
+
+const defer = typeof setImmediate === "undefined" ? (fn) => fn() : setImmediate;
+function send(event, data, type) {
+ if (type) {
+ defaultContentType(event, type);
+ }
+ return new Promise((resolve) => {
+ defer(() => {
+ if (!event.handled) {
+ event.node.res.end(data);
+ }
+ resolve();
+ });
+ });
+}
+function sendNoContent(event, code) {
+ if (event.handled) {
+ return;
+ }
+ if (!code && event.node.res.statusCode !== 200) {
+ code = event.node.res.statusCode;
+ }
+ const _code = sanitizeStatusCode(code, 204);
+ if (_code === 204) {
+ event.node.res.removeHeader("content-length");
+ }
+ event.node.res.writeHead(_code);
+ event.node.res.end();
+}
+function setResponseStatus(event, code, text) {
+ if (code) {
+ event.node.res.statusCode = sanitizeStatusCode(
+ code,
+ event.node.res.statusCode
+ );
+ }
+ if (text) {
+ event.node.res.statusMessage = sanitizeStatusMessage(text);
+ }
+}
+function getResponseStatus(event) {
+ return event.node.res.statusCode;
+}
+function getResponseStatusText(event) {
+ return event.node.res.statusMessage;
+}
+function defaultContentType(event, type) {
+ if (type && !event.node.res.getHeader("content-type")) {
+ event.node.res.setHeader("content-type", type);
+ }
+}
+function sendRedirect(event, location, code = 302) {
+ event.node.res.statusCode = sanitizeStatusCode(
+ code,
+ event.node.res.statusCode
+ );
+ event.node.res.setHeader("location", location);
+ const encodedLoc = location.replace(/"/g, "%22");
+ const html = ` `;
+ return send(event, html, MIMES.html);
+}
+function getResponseHeader(event, name) {
+ return event.node.res.getHeader(name);
+}
+function setResponseHeaders(event, headers) {
+ for (const [name, value] of Object.entries(headers)) {
+ event.node.res.setHeader(name, value);
+ }
+}
+const setHeaders = setResponseHeaders;
+function setResponseHeader(event, name, value) {
+ event.node.res.setHeader(name, value);
+}
+function removeResponseHeader(event, name) {
+ return event.node.res.removeHeader(name);
+}
+function isStream(data) {
+ if (!data || typeof data !== "object") {
+ return false;
+ }
+ if (typeof data.pipe === "function") {
+ if (typeof data._read === "function") {
+ return true;
+ }
+ if (typeof data.abort === "function") {
+ return true;
+ }
+ }
+ if (typeof data.pipeTo === "function") {
+ return true;
+ }
+ return false;
+}
+function isWebResponse(data) {
+ return typeof Response !== "undefined" && data instanceof Response;
+}
+function sendStream(event, stream) {
+ if (!stream || typeof stream !== "object") {
+ throw new Error("[h3] Invalid stream provided.");
+ }
+ event.node.res._data = stream;
+ if (!event.node.res.socket) {
+ event._handled = true;
+ return Promise.resolve();
+ }
+ if (hasProp(stream, "pipeTo") && typeof stream.pipeTo === "function") {
+ return stream.pipeTo(
+ new WritableStream({
+ write(chunk) {
+ event.node.res.write(chunk);
+ }
+ })
+ ).then(() => {
+ event.node.res.end();
+ });
+ }
+ if (hasProp(stream, "pipe") && typeof stream.pipe === "function") {
+ return new Promise((resolve, reject) => {
+ stream.pipe(event.node.res);
+ if (stream.on) {
+ stream.on("end", () => {
+ event.node.res.end();
+ resolve();
+ });
+ stream.on("error", (error) => {
+ reject(error);
+ });
+ }
+ event.node.res.on("close", () => {
+ if (stream.abort) {
+ stream.abort();
+ }
+ });
+ });
+ }
+ throw new Error("[h3] Invalid or incompatible stream provided.");
+}
+function sendWebResponse(event, response) {
+ for (const [key, value] of response.headers) {
+ if (key === "set-cookie") {
+ event.node.res.appendHeader(key, splitCookiesString(value));
+ } else {
+ event.node.res.setHeader(key, value);
+ }
+ }
+ if (response.status) {
+ event.node.res.statusCode = sanitizeStatusCode(
+ response.status,
+ event.node.res.statusCode
+ );
+ }
+ if (response.statusText) {
+ event.node.res.statusMessage = sanitizeStatusMessage(response.statusText);
+ }
+ if (response.redirected) {
+ event.node.res.setHeader("location", response.url);
+ }
+ if (!response.body) {
+ event.node.res.end();
+ return;
+ }
+ return sendStream(event, response.body);
+}
+
+const PayloadMethods = /* @__PURE__ */ new Set(["PATCH", "POST", "PUT", "DELETE"]);
+const ignoredHeaders = /* @__PURE__ */ new Set([
+ "transfer-encoding",
+ "connection",
+ "keep-alive",
+ "upgrade",
+ "expect",
+ "host"
+]);
+async function proxyRequest(event, target, opts = {}) {
+ let body;
+ let duplex;
+ if (PayloadMethods.has(event.method)) {
+ if (opts.streamRequest) {
+ body = getRequestWebStream(event);
+ duplex = "half";
+ } else {
+ body = await readRawBody(event, false).catch(() => void 0);
+ }
+ }
+ const method = opts.fetchOptions?.method || event.method;
+ const fetchHeaders = mergeHeaders(
+ getProxyRequestHeaders(event),
+ opts.fetchOptions?.headers,
+ opts.headers
+ );
+ return sendProxy(event, target, {
+ ...opts,
+ fetchOptions: {
+ method,
+ body,
+ duplex,
+ ...opts.fetchOptions,
+ headers: fetchHeaders
+ }
+ });
+}
+async function sendProxy(event, target, opts = {}) {
+ const response = await _getFetch(opts.fetch)(target, {
+ headers: opts.headers,
+ ignoreResponseError: true,
+ // make $ofetch.raw transparent
+ ...opts.fetchOptions
+ });
+ event.node.res.statusCode = sanitizeStatusCode(
+ response.status,
+ event.node.res.statusCode
+ );
+ event.node.res.statusMessage = sanitizeStatusMessage(response.statusText);
+ const cookies = [];
+ for (const [key, value] of response.headers.entries()) {
+ if (key === "content-encoding") {
+ continue;
+ }
+ if (key === "content-length") {
+ continue;
+ }
+ if (key === "set-cookie") {
+ cookies.push(...splitCookiesString(value));
+ continue;
+ }
+ event.node.res.setHeader(key, value);
+ }
+ if (cookies.length > 0) {
+ event.node.res.setHeader(
+ "set-cookie",
+ cookies.map((cookie) => {
+ if (opts.cookieDomainRewrite) {
+ cookie = rewriteCookieProperty(
+ cookie,
+ opts.cookieDomainRewrite,
+ "domain"
+ );
+ }
+ if (opts.cookiePathRewrite) {
+ cookie = rewriteCookieProperty(
+ cookie,
+ opts.cookiePathRewrite,
+ "path"
+ );
+ }
+ return cookie;
+ })
+ );
+ }
+ if (opts.onResponse) {
+ await opts.onResponse(event, response);
+ }
+ if (response._data !== void 0) {
+ return response._data;
+ }
+ if (event.handled) {
+ return;
+ }
+ if (opts.sendStream === false) {
+ const data = new Uint8Array(await response.arrayBuffer());
+ return event.node.res.end(data);
+ }
+ if (response.body) {
+ for await (const chunk of response.body) {
+ event.node.res.write(chunk);
+ }
+ }
+ return event.node.res.end();
+}
+function getProxyRequestHeaders(event) {
+ const headers = /* @__PURE__ */ Object.create(null);
+ const reqHeaders = getRequestHeaders(event);
+ for (const name in reqHeaders) {
+ if (!ignoredHeaders.has(name)) {
+ headers[name] = reqHeaders[name];
+ }
+ }
+ return headers;
+}
+function fetchWithEvent(event, req, init, options) {
+ return _getFetch(options?.fetch)(req, {
+ ...init,
+ context: init?.context || event.context,
+ headers: {
+ ...getProxyRequestHeaders(event),
+ ...init?.headers
+ }
+ });
+}
+function _getFetch(_fetch) {
+ if (_fetch) {
+ return _fetch;
+ }
+ if (globalThis.fetch) {
+ return globalThis.fetch;
+ }
+ throw new Error(
+ "fetch is not available. Try importing `node-fetch-native/polyfill` for Node.js."
+ );
+}
+function rewriteCookieProperty(header, map, property) {
+ const _map = typeof map === "string" ? { "*": map } : map;
+ return header.replace(
+ new RegExp(`(;\\s*${property}=)([^;]+)`, "gi"),
+ (match, prefix, previousValue) => {
+ let newValue;
+ if (previousValue in _map) {
+ newValue = _map[previousValue];
+ } else if ("*" in _map) {
+ newValue = _map["*"];
+ } else {
+ return match;
+ }
+ return newValue ? prefix + newValue : "";
+ }
+ );
+}
+function mergeHeaders(defaults, ...inputs) {
+ const _inputs = inputs.filter(Boolean);
+ if (_inputs.length === 0) {
+ return defaults;
+ }
+ const merged = new Headers(defaults);
+ for (const input of _inputs) {
+ for (const [key, value] of Object.entries(input)) {
+ if (value !== void 0) {
+ merged.set(key, value);
+ }
+ }
+ }
+ return merged;
+}
+
+var __defProp = Object.defineProperty;
+var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
+var __publicField = (obj, key, value) => {
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
+ return value;
+};
+class H3Event {
+ constructor(req, res) {
+ __publicField(this, "__is_event__", true);
+ // Context
+ __publicField(this, "node");
+ // Node
+ __publicField(this, "web");
+ // Web
+ __publicField(this, "context", {});
+ // Shared
+ // Request
+ __publicField(this, "_method");
+ __publicField(this, "_path");
+ __publicField(this, "_headers");
+ __publicField(this, "_requestBody");
+ // Response
+ __publicField(this, "_handled", false);
+ this.node = { req, res };
+ }
+ // --- Request ---
+ get method() {
+ if (!this._method) {
+ this._method = (this.node.req.method || "GET").toUpperCase();
+ }
+ return this._method;
+ }
+ get path() {
+ return this._path || this.node.req.url || "/";
+ }
+ get headers() {
+ if (!this._headers) {
+ this._headers = _normalizeNodeHeaders(this.node.req.headers);
+ }
+ return this._headers;
+ }
+ // --- Respoonse ---
+ get handled() {
+ return this._handled || this.node.res.writableEnded || this.node.res.headersSent;
+ }
+ respondWith(response) {
+ return Promise.resolve(response).then(
+ (_response) => sendWebResponse(this, _response)
+ );
+ }
+ // --- Utils ---
+ toString() {
+ return `[${this.method}] ${this.path}`;
+ }
+ toJSON() {
+ return this.toString();
+ }
+ // --- Deprecated ---
+ /** @deprecated Please use `event.node.req` instead. **/
+ get req() {
+ return this.node.req;
+ }
+ /** @deprecated Please use `event.node.res` instead. **/
+ get res() {
+ return this.node.res;
+ }
+}
+function isEvent(input) {
+ return hasProp(input, "__is_event__");
+}
+function createEvent(req, res) {
+ return new H3Event(req, res);
+}
+function _normalizeNodeHeaders(nodeHeaders) {
+ const headers = new Headers();
+ for (const [name, value] of Object.entries(nodeHeaders)) {
+ if (Array.isArray(value)) {
+ for (const item of value) {
+ headers.append(name, item);
+ }
+ } else if (value) {
+ headers.set(name, value);
+ }
+ }
+ return headers;
+}
+
+function defineEventHandler(handler) {
+ if (typeof handler === "function") {
+ return Object.assign(handler, { __is_handler__: true });
+ }
+ const _hooks = {
+ onRequest: _normalizeArray(handler.onRequest),
+ onBeforeResponse: _normalizeArray(handler.onBeforeResponse)
+ };
+ const _handler = (event) => {
+ return _callHandler(event, handler.handler, _hooks);
+ };
+ return Object.assign(_handler, { __is_handler__: true });
+}
+function _normalizeArray(input) {
+ return input ? Array.isArray(input) ? input : [input] : void 0;
+}
+async function _callHandler(event, handler, hooks) {
+ if (hooks.onRequest) {
+ for (const hook of hooks.onRequest) {
+ await hook(event);
+ if (event.handled) {
+ return;
+ }
+ }
+ }
+ const body = await handler(event);
+ const response = { body };
+ if (hooks.onBeforeResponse) {
+ for (const hook of hooks.onBeforeResponse) {
+ await hook(event, response);
+ }
+ }
+ return response.body;
+}
+const eventHandler = defineEventHandler;
+function isEventHandler(input) {
+ return hasProp(input, "__is_handler__");
+}
+function toEventHandler(input, _, _route) {
+ if (!isEventHandler(input)) {
+ console.warn(
+ "[h3] Implicit event handler conversion is deprecated. Use `eventHandler()` or `fromNodeMiddleware()` to define event handlers.",
+ _route && _route !== "/" ? `
+ Route: ${_route}` : "",
+ `
+ Handler: ${input}`
+ );
+ }
+ return input;
+}
+function defineLazyEventHandler(factory) {
+ let _promise;
+ let _resolved;
+ const resolveHandler = () => {
+ if (_resolved) {
+ return Promise.resolve(_resolved);
+ }
+ if (!_promise) {
+ _promise = Promise.resolve(factory()).then((r) => {
+ const handler = r.default || r;
+ if (typeof handler !== "function") {
+ throw new TypeError(
+ "Invalid lazy handler result. It should be a function:",
+ handler
+ );
+ }
+ _resolved = toEventHandler(r.default || r);
+ return _resolved;
+ });
+ }
+ return _promise;
+ };
+ return eventHandler((event) => {
+ if (_resolved) {
+ return _resolved(event);
+ }
+ return resolveHandler().then((handler) => handler(event));
+ });
+}
+const lazyEventHandler = defineLazyEventHandler;
+
+function createApp(options = {}) {
+ const stack = [];
+ const handler = createAppEventHandler(stack, options);
+ const app = {
+ // @ts-ignore
+ use: (arg1, arg2, arg3) => use(app, arg1, arg2, arg3),
+ handler,
+ stack,
+ options
+ };
+ return app;
+}
+function use(app, arg1, arg2, arg3) {
+ if (Array.isArray(arg1)) {
+ for (const i of arg1) {
+ use(app, i, arg2, arg3);
+ }
+ } else if (Array.isArray(arg2)) {
+ for (const i of arg2) {
+ use(app, arg1, i, arg3);
+ }
+ } else if (typeof arg1 === "string") {
+ app.stack.push(
+ normalizeLayer({ ...arg3, route: arg1, handler: arg2 })
+ );
+ } else if (typeof arg1 === "function") {
+ app.stack.push(
+ normalizeLayer({ ...arg2, route: "/", handler: arg1 })
+ );
+ } else {
+ app.stack.push(normalizeLayer({ ...arg1 }));
+ }
+ return app;
+}
+function createAppEventHandler(stack, options) {
+ const spacing = options.debug ? 2 : void 0;
+ return eventHandler(async (event) => {
+ event.node.req.originalUrl = event.node.req.originalUrl || event.node.req.url || "/";
+ const _reqPath = event._path || event.node.req.url || "/";
+ let _layerPath;
+ if (options.onRequest) {
+ await options.onRequest(event);
+ }
+ for (const layer of stack) {
+ if (layer.route.length > 1) {
+ if (!_reqPath.startsWith(layer.route)) {
+ continue;
+ }
+ _layerPath = _reqPath.slice(layer.route.length) || "/";
+ } else {
+ _layerPath = _reqPath;
+ }
+ if (layer.match && !layer.match(_layerPath, event)) {
+ continue;
+ }
+ event._path = _layerPath;
+ event.node.req.url = _layerPath;
+ const val = await layer.handler(event);
+ const _body = val === void 0 ? void 0 : await val;
+ if (_body !== void 0) {
+ const _response = { body: _body };
+ if (options.onBeforeResponse) {
+ await options.onBeforeResponse(event, _response);
+ }
+ await handleHandlerResponse(event, _response.body, spacing);
+ if (options.onAfterResponse) {
+ await options.onAfterResponse(event, _response);
+ }
+ return;
+ }
+ if (event.handled) {
+ if (options.onAfterResponse) {
+ await options.onAfterResponse(event, void 0);
+ }
+ return;
+ }
+ }
+ if (!event.handled) {
+ throw createError$1({
+ statusCode: 404,
+ statusMessage: `Cannot find any path matching ${event.path || "/"}.`
+ });
+ }
+ if (options.onAfterResponse) {
+ await options.onAfterResponse(event, void 0);
+ }
+ });
+}
+function normalizeLayer(input) {
+ let handler = input.handler;
+ if (handler.handler) {
+ handler = handler.handler;
+ }
+ if (input.lazy) {
+ handler = lazyEventHandler(handler);
+ } else if (!isEventHandler(handler)) {
+ handler = toEventHandler(handler, void 0, input.route);
+ }
+ return {
+ route: withoutTrailingSlash(input.route),
+ match: input.match,
+ handler
+ };
+}
+function handleHandlerResponse(event, val, jsonSpace) {
+ if (val === null) {
+ return sendNoContent(event);
+ }
+ if (val) {
+ if (isWebResponse(val)) {
+ return sendWebResponse(event, val);
+ }
+ if (isStream(val)) {
+ return sendStream(event, val);
+ }
+ if (val.buffer) {
+ return send(event, val);
+ }
+ if (val.arrayBuffer && typeof val.arrayBuffer === "function") {
+ return val.arrayBuffer().then((arrayBuffer) => {
+ return send(event, Buffer.from(arrayBuffer), val.type);
+ });
+ }
+ if (val instanceof Error) {
+ throw createError$1(val);
+ }
+ if (typeof val.end === "function") {
+ return true;
+ }
+ }
+ const valType = typeof val;
+ if (valType === "string") {
+ return send(event, val, MIMES.html);
+ }
+ if (valType === "object" || valType === "boolean" || valType === "number") {
+ return send(event, JSON.stringify(val, void 0, jsonSpace), MIMES.json);
+ }
+ if (valType === "bigint") {
+ return send(event, val.toString(), MIMES.json);
+ }
+ throw createError$1({
+ statusCode: 500,
+ statusMessage: `[h3] Cannot send ${valType} as response.`
+ });
+}
+
+const RouterMethods = [
+ "connect",
+ "delete",
+ "get",
+ "head",
+ "options",
+ "post",
+ "put",
+ "trace",
+ "patch"
+];
+function createRouter(opts = {}) {
+ const _router = createRouter$1({});
+ const routes = {};
+ let _matcher;
+ const router = {};
+ const addRoute = (path, handler, method) => {
+ let route = routes[path];
+ if (!route) {
+ routes[path] = route = { path, handlers: {} };
+ _router.insert(path, route);
+ }
+ if (Array.isArray(method)) {
+ for (const m of method) {
+ addRoute(path, handler, m);
+ }
+ } else {
+ route.handlers[method] = toEventHandler(handler, void 0, path);
+ }
+ return router;
+ };
+ router.use = router.add = (path, handler, method) => addRoute(path, handler, method || "all");
+ for (const method of RouterMethods) {
+ router[method] = (path, handle) => router.add(path, handle, method);
+ }
+ router.handler = eventHandler((event) => {
+ let path = event.path || "/";
+ const qIndex = path.indexOf("?");
+ if (qIndex !== -1) {
+ path = path.slice(0, Math.max(0, qIndex));
+ }
+ const matched = _router.lookup(path);
+ if (!matched || !matched.handlers) {
+ if (opts.preemptive || opts.preemtive) {
+ throw createError$1({
+ statusCode: 404,
+ name: "Not Found",
+ statusMessage: `Cannot find any route matching ${event.path || "/"}.`
+ });
+ } else {
+ return;
+ }
+ }
+ const method = (event.node.req.method || "get").toLowerCase();
+ let handler = matched.handlers[method] || matched.handlers.all;
+ if (!handler) {
+ if (!_matcher) {
+ _matcher = toRouteMatcher(_router);
+ }
+ const _matches = _matcher.matchAll(path).reverse();
+ for (const _match of _matches) {
+ if (_match.handlers[method]) {
+ handler = _match.handlers[method];
+ matched.handlers[method] = matched.handlers[method] || handler;
+ break;
+ }
+ if (_match.handlers.all) {
+ handler = _match.handlers.all;
+ matched.handlers.all = matched.handlers.all || handler;
+ break;
+ }
+ }
+ }
+ if (!handler) {
+ if (opts.preemptive || opts.preemtive) {
+ throw createError$1({
+ statusCode: 405,
+ name: "Method Not Allowed",
+ statusMessage: `Method ${method} is not allowed on this route.`
+ });
+ } else {
+ return;
+ }
+ }
+ event.context.matchedRoute = matched;
+ const params = matched.params || {};
+ event.context.params = params;
+ return Promise.resolve(handler(event)).then((res) => {
+ if (res === void 0 && (opts.preemptive || opts.preemtive)) {
+ return null;
+ }
+ return res;
+ });
+ });
+ return router;
+}
+function toNodeListener(app) {
+ const toNodeHandle = async function(req, res) {
+ const event = createEvent(req, res);
+ try {
+ await app.handler(event);
+ } catch (_error) {
+ const error = createError$1(_error);
+ if (!isError(_error)) {
+ error.unhandled = true;
+ }
+ if (app.options.onError) {
+ await app.options.onError(error, event);
+ }
+ if (event.handled) {
+ return;
+ }
+ if (error.unhandled || error.fatal) {
+ console.error("[h3]", error.fatal ? "[fatal]" : "[unhandled]", error);
+ }
+ await sendError(event, error, !!app.options.debug);
+ }
+ };
+ return toNodeHandle;
+}
+
+const s=globalThis.Headers,i=globalThis.AbortController,l=globalThis.fetch||(()=>{throw new Error("[node-fetch-native] Failed to fetch: `globalThis.fetch` is not available!")});
+
+class FetchError extends Error {
+ constructor(message, opts) {
+ super(message, opts);
+ this.name = "FetchError";
+ if (opts?.cause && !this.cause) {
+ this.cause = opts.cause;
+ }
+ }
+}
+function createFetchError(ctx) {
+ const errorMessage = ctx.error?.message || ctx.error?.toString() || "";
+ const method = ctx.request?.method || ctx.options?.method || "GET";
+ const url = ctx.request?.url || String(ctx.request) || "/";
+ const requestStr = `[${method}] ${JSON.stringify(url)}`;
+ const statusStr = ctx.response ? `${ctx.response.status} ${ctx.response.statusText}` : "";
+ const message = `${requestStr}: ${statusStr}${errorMessage ? ` ${errorMessage}` : ""}`;
+ const fetchError = new FetchError(
+ message,
+ ctx.error ? { cause: ctx.error } : void 0
+ );
+ for (const key of ["request", "options", "response"]) {
+ Object.defineProperty(fetchError, key, {
+ get() {
+ return ctx[key];
+ }
+ });
+ }
+ for (const [key, refKey] of [
+ ["data", "_data"],
+ ["status", "status"],
+ ["statusCode", "status"],
+ ["statusText", "statusText"],
+ ["statusMessage", "statusText"]
+ ]) {
+ Object.defineProperty(fetchError, key, {
+ get() {
+ return ctx.response && ctx.response[refKey];
+ }
+ });
+ }
+ return fetchError;
+}
+
+const payloadMethods = new Set(
+ Object.freeze(["PATCH", "POST", "PUT", "DELETE"])
+);
+function isPayloadMethod(method = "GET") {
+ return payloadMethods.has(method.toUpperCase());
+}
+function isJSONSerializable(value) {
+ if (value === void 0) {
+ return false;
+ }
+ const t = typeof value;
+ if (t === "string" || t === "number" || t === "boolean" || t === null) {
+ return true;
+ }
+ if (t !== "object") {
+ return false;
+ }
+ if (Array.isArray(value)) {
+ return true;
+ }
+ if (value.buffer) {
+ return false;
+ }
+ return value.constructor && value.constructor.name === "Object" || typeof value.toJSON === "function";
+}
+const textTypes = /* @__PURE__ */ new Set([
+ "image/svg",
+ "application/xml",
+ "application/xhtml",
+ "application/html"
+]);
+const JSON_RE = /^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;
+function detectResponseType(_contentType = "") {
+ if (!_contentType) {
+ return "json";
+ }
+ const contentType = _contentType.split(";").shift() || "";
+ if (JSON_RE.test(contentType)) {
+ return "json";
+ }
+ if (textTypes.has(contentType) || contentType.startsWith("text/")) {
+ return "text";
+ }
+ return "blob";
+}
+function mergeFetchOptions(input, defaults, Headers = globalThis.Headers) {
+ const merged = {
+ ...defaults,
+ ...input
+ };
+ if (defaults?.params && input?.params) {
+ merged.params = {
+ ...defaults?.params,
+ ...input?.params
+ };
+ }
+ if (defaults?.query && input?.query) {
+ merged.query = {
+ ...defaults?.query,
+ ...input?.query
+ };
+ }
+ if (defaults?.headers && input?.headers) {
+ merged.headers = new Headers(defaults?.headers || {});
+ for (const [key, value] of new Headers(input?.headers || {})) {
+ merged.headers.set(key, value);
+ }
+ }
+ return merged;
+}
+
+const retryStatusCodes = /* @__PURE__ */ new Set([
+ 408,
+ // Request Timeout
+ 409,
+ // Conflict
+ 425,
+ // Too Early
+ 429,
+ // Too Many Requests
+ 500,
+ // Internal Server Error
+ 502,
+ // Bad Gateway
+ 503,
+ // Service Unavailable
+ 504
+ // Gateway Timeout
+]);
+const nullBodyResponses$1 = /* @__PURE__ */ new Set([101, 204, 205, 304]);
+function createFetch$1(globalOptions = {}) {
+ const {
+ fetch = globalThis.fetch,
+ Headers = globalThis.Headers,
+ AbortController = globalThis.AbortController
+ } = globalOptions;
+ async function onError(context) {
+ const isAbort = context.error && context.error.name === "AbortError" && !context.options.timeout || false;
+ if (context.options.retry !== false && !isAbort) {
+ let retries;
+ if (typeof context.options.retry === "number") {
+ retries = context.options.retry;
+ } else {
+ retries = isPayloadMethod(context.options.method) ? 0 : 1;
+ }
+ const responseCode = context.response && context.response.status || 500;
+ if (retries > 0 && (Array.isArray(context.options.retryStatusCodes) ? context.options.retryStatusCodes.includes(responseCode) : retryStatusCodes.has(responseCode))) {
+ const retryDelay = context.options.retryDelay || 0;
+ if (retryDelay > 0) {
+ await new Promise((resolve) => setTimeout(resolve, retryDelay));
+ }
+ return $fetchRaw(context.request, {
+ ...context.options,
+ retry: retries - 1,
+ timeout: context.options.timeout
+ });
+ }
+ }
+ const error = createFetchError(context);
+ if (Error.captureStackTrace) {
+ Error.captureStackTrace(error, $fetchRaw);
+ }
+ throw error;
+ }
+ const $fetchRaw = async function $fetchRaw2(_request, _options = {}) {
+ const context = {
+ request: _request,
+ options: mergeFetchOptions(_options, globalOptions.defaults, Headers),
+ response: void 0,
+ error: void 0
+ };
+ context.options.method = context.options.method?.toUpperCase();
+ if (context.options.onRequest) {
+ await context.options.onRequest(context);
+ }
+ if (typeof context.request === "string") {
+ if (context.options.baseURL) {
+ context.request = withBase(context.request, context.options.baseURL);
+ }
+ if (context.options.query || context.options.params) {
+ context.request = withQuery(context.request, {
+ ...context.options.params,
+ ...context.options.query
+ });
+ }
+ }
+ if (context.options.body && isPayloadMethod(context.options.method)) {
+ if (isJSONSerializable(context.options.body)) {
+ context.options.body = typeof context.options.body === "string" ? context.options.body : JSON.stringify(context.options.body);
+ context.options.headers = new Headers(context.options.headers || {});
+ if (!context.options.headers.has("content-type")) {
+ context.options.headers.set("content-type", "application/json");
+ }
+ if (!context.options.headers.has("accept")) {
+ context.options.headers.set("accept", "application/json");
+ }
+ } else if (
+ // ReadableStream Body
+ "pipeTo" in context.options.body && typeof context.options.body.pipeTo === "function" || // Node.js Stream Body
+ typeof context.options.body.pipe === "function"
+ ) {
+ if (!("duplex" in context.options)) {
+ context.options.duplex = "half";
+ }
+ }
+ }
+ if (!context.options.signal && context.options.timeout) {
+ const controller = new AbortController();
+ setTimeout(() => controller.abort(), context.options.timeout);
+ context.options.signal = controller.signal;
+ }
+ try {
+ context.response = await fetch(
+ context.request,
+ context.options
+ );
+ } catch (error) {
+ context.error = error;
+ if (context.options.onRequestError) {
+ await context.options.onRequestError(context);
+ }
+ return await onError(context);
+ }
+ const hasBody = context.response.body && !nullBodyResponses$1.has(context.response.status) && context.options.method !== "HEAD";
+ if (hasBody) {
+ const responseType = (context.options.parseResponse ? "json" : context.options.responseType) || detectResponseType(context.response.headers.get("content-type") || "");
+ switch (responseType) {
+ case "json": {
+ const data = await context.response.text();
+ const parseFunction = context.options.parseResponse || destr;
+ context.response._data = parseFunction(data);
+ break;
+ }
+ case "stream": {
+ context.response._data = context.response.body;
+ break;
+ }
+ default: {
+ context.response._data = await context.response[responseType]();
+ }
+ }
+ }
+ if (context.options.onResponse) {
+ await context.options.onResponse(context);
+ }
+ if (!context.options.ignoreResponseError && context.response.status >= 400 && context.response.status < 600) {
+ if (context.options.onResponseError) {
+ await context.options.onResponseError(context);
+ }
+ return await onError(context);
+ }
+ return context.response;
+ };
+ const $fetch = async function $fetch2(request, options) {
+ const r = await $fetchRaw(request, options);
+ return r._data;
+ };
+ $fetch.raw = $fetchRaw;
+ $fetch.native = (...args) => fetch(...args);
+ $fetch.create = (defaultOptions = {}) => createFetch$1({
+ ...globalOptions,
+ defaults: {
+ ...globalOptions.defaults,
+ ...defaultOptions
+ }
+ });
+ return $fetch;
+}
+
+function createNodeFetch() {
+ const useKeepAlive = JSON.parse(process.env.FETCH_KEEP_ALIVE || "false");
+ if (!useKeepAlive) {
+ return l;
+ }
+ const agentOptions = { keepAlive: true };
+ const httpAgent = new http.Agent(agentOptions);
+ const httpsAgent = new https.Agent(agentOptions);
+ const nodeFetchOptions = {
+ agent(parsedURL) {
+ return parsedURL.protocol === "http:" ? httpAgent : httpsAgent;
+ }
+ };
+ return function nodeFetchWithKeepAlive(input, init) {
+ return l(input, { ...nodeFetchOptions, ...init });
+ };
+}
+const fetch = globalThis.fetch || createNodeFetch();
+const Headers$1 = globalThis.Headers || s;
+const AbortController = globalThis.AbortController || i;
+const ofetch = createFetch$1({ fetch, Headers: Headers$1, AbortController });
+const $fetch = ofetch;
+
+const nullBodyResponses = /* @__PURE__ */ new Set([101, 204, 205, 304]);
+function createCall(handle) {
+ return function callHandle(context) {
+ const req = new IncomingMessage();
+ const res = new ServerResponse(req);
+ req.url = context.url || "/";
+ req.method = context.method || "GET";
+ req.headers = {};
+ if (context.headers) {
+ const headerEntries = typeof context.headers.entries === "function" ? context.headers.entries() : Object.entries(context.headers);
+ for (const [name, value] of headerEntries) {
+ if (!value) {
+ continue;
+ }
+ req.headers[name.toLowerCase()] = value;
+ }
+ }
+ req.headers.host = req.headers.host || context.host || "localhost";
+ req.connection.encrypted = // @ts-ignore
+ req.connection.encrypted || context.protocol === "https";
+ req.body = context.body || null;
+ req.__unenv__ = context.context;
+ return handle(req, res).then(() => {
+ let body = res._data;
+ if (nullBodyResponses.has(res.statusCode) || req.method.toUpperCase() === "HEAD") {
+ body = null;
+ delete res._headers["content-length"];
+ }
+ const r = {
+ body,
+ headers: res._headers,
+ status: res.statusCode,
+ statusText: res.statusMessage
+ };
+ req.destroy();
+ res.destroy();
+ return r;
+ });
+ };
+}
+
+function createFetch(call, _fetch = global.fetch) {
+ return async function ufetch(input, init) {
+ const url = input.toString();
+ if (!url.startsWith("/")) {
+ return _fetch(url, init);
+ }
+ try {
+ const r = await call({ url, ...init });
+ return new Response(r.body, {
+ status: r.status,
+ statusText: r.statusText,
+ headers: Object.fromEntries(
+ Object.entries(r.headers).map(([name, value]) => [
+ name,
+ Array.isArray(value) ? value.join(",") : String(value) || ""
+ ])
+ )
+ });
+ } catch (error) {
+ return new Response(error.toString(), {
+ status: Number.parseInt(error.statusCode || error.code) || 500,
+ statusText: error.statusText
+ });
+ }
+ };
+}
+
+function flatHooks(configHooks, hooks = {}, parentName) {
+ for (const key in configHooks) {
+ const subHook = configHooks[key];
+ const name = parentName ? `${parentName}:${key}` : key;
+ if (typeof subHook === "object" && subHook !== null) {
+ flatHooks(subHook, hooks, name);
+ } else if (typeof subHook === "function") {
+ hooks[name] = subHook;
+ }
+ }
+ return hooks;
+}
+const defaultTask = { run: (function_) => function_() };
+const _createTask = () => defaultTask;
+const createTask = typeof console.createTask !== "undefined" ? console.createTask : _createTask;
+function serialTaskCaller(hooks, args) {
+ const name = args.shift();
+ const task = createTask(name);
+ return hooks.reduce(
+ (promise, hookFunction) => promise.then(() => task.run(() => hookFunction(...args))),
+ Promise.resolve()
+ );
+}
+function parallelTaskCaller(hooks, args) {
+ const name = args.shift();
+ const task = createTask(name);
+ return Promise.all(hooks.map((hook) => task.run(() => hook(...args))));
+}
+function callEachWith(callbacks, arg0) {
+ for (const callback of [...callbacks]) {
+ callback(arg0);
+ }
+}
+
+class Hookable {
+ constructor() {
+ this._hooks = {};
+ this._before = void 0;
+ this._after = void 0;
+ this._deprecatedMessages = void 0;
+ this._deprecatedHooks = {};
+ this.hook = this.hook.bind(this);
+ this.callHook = this.callHook.bind(this);
+ this.callHookWith = this.callHookWith.bind(this);
+ }
+ hook(name, function_, options = {}) {
+ if (!name || typeof function_ !== "function") {
+ return () => {
+ };
+ }
+ const originalName = name;
+ let dep;
+ while (this._deprecatedHooks[name]) {
+ dep = this._deprecatedHooks[name];
+ name = dep.to;
+ }
+ if (dep && !options.allowDeprecated) {
+ let message = dep.message;
+ if (!message) {
+ message = `${originalName} hook has been deprecated` + (dep.to ? `, please use ${dep.to}` : "");
+ }
+ if (!this._deprecatedMessages) {
+ this._deprecatedMessages = /* @__PURE__ */ new Set();
+ }
+ if (!this._deprecatedMessages.has(message)) {
+ console.warn(message);
+ this._deprecatedMessages.add(message);
+ }
+ }
+ if (!function_.name) {
+ try {
+ Object.defineProperty(function_, "name", {
+ get: () => "_" + name.replace(/\W+/g, "_") + "_hook_cb",
+ configurable: true
+ });
+ } catch {
+ }
+ }
+ this._hooks[name] = this._hooks[name] || [];
+ this._hooks[name].push(function_);
+ return () => {
+ if (function_) {
+ this.removeHook(name, function_);
+ function_ = void 0;
+ }
+ };
+ }
+ hookOnce(name, function_) {
+ let _unreg;
+ let _function = (...arguments_) => {
+ if (typeof _unreg === "function") {
+ _unreg();
+ }
+ _unreg = void 0;
+ _function = void 0;
+ return function_(...arguments_);
+ };
+ _unreg = this.hook(name, _function);
+ return _unreg;
+ }
+ removeHook(name, function_) {
+ if (this._hooks[name]) {
+ const index = this._hooks[name].indexOf(function_);
+ if (index !== -1) {
+ this._hooks[name].splice(index, 1);
+ }
+ if (this._hooks[name].length === 0) {
+ delete this._hooks[name];
+ }
+ }
+ }
+ deprecateHook(name, deprecated) {
+ this._deprecatedHooks[name] = typeof deprecated === "string" ? { to: deprecated } : deprecated;
+ const _hooks = this._hooks[name] || [];
+ delete this._hooks[name];
+ for (const hook of _hooks) {
+ this.hook(name, hook);
+ }
+ }
+ deprecateHooks(deprecatedHooks) {
+ Object.assign(this._deprecatedHooks, deprecatedHooks);
+ for (const name in deprecatedHooks) {
+ this.deprecateHook(name, deprecatedHooks[name]);
+ }
+ }
+ addHooks(configHooks) {
+ const hooks = flatHooks(configHooks);
+ const removeFns = Object.keys(hooks).map(
+ (key) => this.hook(key, hooks[key])
+ );
+ return () => {
+ for (const unreg of removeFns.splice(0, removeFns.length)) {
+ unreg();
+ }
+ };
+ }
+ removeHooks(configHooks) {
+ const hooks = flatHooks(configHooks);
+ for (const key in hooks) {
+ this.removeHook(key, hooks[key]);
+ }
+ }
+ removeAllHooks() {
+ for (const key in this._hooks) {
+ delete this._hooks[key];
+ }
+ }
+ callHook(name, ...arguments_) {
+ arguments_.unshift(name);
+ return this.callHookWith(serialTaskCaller, name, ...arguments_);
+ }
+ callHookParallel(name, ...arguments_) {
+ arguments_.unshift(name);
+ return this.callHookWith(parallelTaskCaller, name, ...arguments_);
+ }
+ callHookWith(caller, name, ...arguments_) {
+ const event = this._before || this._after ? { name, args: arguments_, context: {} } : void 0;
+ if (this._before) {
+ callEachWith(this._before, event);
+ }
+ const result = caller(
+ name in this._hooks ? [...this._hooks[name]] : [],
+ arguments_
+ );
+ if (result instanceof Promise) {
+ return result.finally(() => {
+ if (this._after && event) {
+ callEachWith(this._after, event);
+ }
+ });
+ }
+ if (this._after && event) {
+ callEachWith(this._after, event);
+ }
+ return result;
+ }
+ beforeEach(function_) {
+ this._before = this._before || [];
+ this._before.push(function_);
+ return () => {
+ if (this._before !== void 0) {
+ const index = this._before.indexOf(function_);
+ if (index !== -1) {
+ this._before.splice(index, 1);
+ }
+ }
+ };
+ }
+ afterEach(function_) {
+ this._after = this._after || [];
+ this._after.push(function_);
+ return () => {
+ if (this._after !== void 0) {
+ const index = this._after.indexOf(function_);
+ if (index !== -1) {
+ this._after.splice(index, 1);
+ }
+ }
+ };
+ }
+}
+function createHooks() {
+ return new Hookable();
+}
+
+const NUMBER_CHAR_RE = /\d/;
+const STR_SPLITTERS = ["-", "_", "/", "."];
+function isUppercase(char = "") {
+ if (NUMBER_CHAR_RE.test(char)) {
+ return void 0;
+ }
+ return char.toUpperCase() === char;
+}
+function splitByCase(str, separators) {
+ const splitters = separators ?? STR_SPLITTERS;
+ const parts = [];
+ if (!str || typeof str !== "string") {
+ return parts;
+ }
+ let buff = "";
+ let previousUpper;
+ let previousSplitter;
+ for (const char of str) {
+ const isSplitter = splitters.includes(char);
+ if (isSplitter === true) {
+ parts.push(buff);
+ buff = "";
+ previousUpper = void 0;
+ continue;
+ }
+ const isUpper = isUppercase(char);
+ if (previousSplitter === false) {
+ if (previousUpper === false && isUpper === true) {
+ parts.push(buff);
+ buff = char;
+ previousUpper = isUpper;
+ continue;
+ }
+ if (previousUpper === true && isUpper === false && buff.length > 1) {
+ const lastChar = buff.at(-1);
+ parts.push(buff.slice(0, Math.max(0, buff.length - 1)));
+ buff = lastChar + char;
+ previousUpper = isUpper;
+ continue;
+ }
+ }
+ buff += char;
+ previousUpper = isUpper;
+ previousSplitter = isSplitter;
+ }
+ parts.push(buff);
+ return parts;
+}
+function kebabCase(str, joiner) {
+ return str ? (Array.isArray(str) ? str : splitByCase(str)).map((p) => p.toLowerCase()).join(joiner ?? "-") : "";
+}
+function snakeCase(str) {
+ return kebabCase(str || "", "_");
+}
+
+function klona(x) {
+ if (typeof x !== 'object') return x;
+
+ var k, tmp, str=Object.prototype.toString.call(x);
+
+ if (str === '[object Object]') {
+ if (x.constructor !== Object && typeof x.constructor === 'function') {
+ tmp = new x.constructor();
+ for (k in x) {
+ if (x.hasOwnProperty(k) && tmp[k] !== x[k]) {
+ tmp[k] = klona(x[k]);
+ }
+ }
+ } else {
+ tmp = {}; // null
+ for (k in x) {
+ if (k === '__proto__') {
+ Object.defineProperty(tmp, k, {
+ value: klona(x[k]),
+ configurable: true,
+ enumerable: true,
+ writable: true,
+ });
+ } else {
+ tmp[k] = klona(x[k]);
+ }
+ }
+ }
+ return tmp;
+ }
+
+ if (str === '[object Array]') {
+ k = x.length;
+ for (tmp=Array(k); k--;) {
+ tmp[k] = klona(x[k]);
+ }
+ return tmp;
+ }
+
+ if (str === '[object Set]') {
+ tmp = new Set;
+ x.forEach(function (val) {
+ tmp.add(klona(val));
+ });
+ return tmp;
+ }
+
+ if (str === '[object Map]') {
+ tmp = new Map;
+ x.forEach(function (val, key) {
+ tmp.set(klona(key), klona(val));
+ });
+ return tmp;
+ }
+
+ if (str === '[object Date]') {
+ return new Date(+x);
+ }
+
+ if (str === '[object RegExp]') {
+ tmp = new RegExp(x.source, x.flags);
+ tmp.lastIndex = x.lastIndex;
+ return tmp;
+ }
+
+ if (str === '[object DataView]') {
+ return new x.constructor( klona(x.buffer) );
+ }
+
+ if (str === '[object ArrayBuffer]') {
+ return x.slice(0);
+ }
+
+ // ArrayBuffer.isView(x)
+ // ~> `new` bcuz `Buffer.slice` => ref
+ if (str.slice(-6) === 'Array]') {
+ return new x.constructor(x);
+ }
+
+ return x;
+}
+
+const inlineAppConfig = {
+ "nuxt": {
+ "buildId": "a486118d-90ff-405f-a6ff-ab1b0c0ca2eb"
+ }
+};
+
+
+
+const appConfig = defuFn(inlineAppConfig);
+
+const _inlineRuntimeConfig = {
+ "app": {
+ "baseURL": "/",
+ "buildAssetsDir": "/_nuxt/",
+ "cdnURL": ""
+ },
+ "nitro": {
+ "envPrefix": "NUXT_",
+ "routeRules": {
+ "/__nuxt_error": {
+ "cache": false
+ },
+ "/_nuxt/builds/meta/**": {
+ "headers": {
+ "cache-control": "public, max-age=31536000, immutable"
+ }
+ },
+ "/_nuxt/builds/**": {
+ "headers": {
+ "cache-control": "public, max-age=1, immutable"
+ }
+ },
+ "/_nuxt/**": {
+ "headers": {
+ "cache-control": "public, max-age=31536000, immutable"
+ }
+ }
+ }
+ },
+ "public": {}
+};
+const ENV_PREFIX = "NITRO_";
+const ENV_PREFIX_ALT = _inlineRuntimeConfig.nitro.envPrefix ?? process.env.NITRO_ENV_PREFIX ?? "_";
+const _sharedRuntimeConfig = _deepFreeze(
+ _applyEnv(klona(_inlineRuntimeConfig))
+);
+function useRuntimeConfig(event) {
+ if (!event) {
+ return _sharedRuntimeConfig;
+ }
+ if (event.context.nitro.runtimeConfig) {
+ return event.context.nitro.runtimeConfig;
+ }
+ const runtimeConfig = klona(_inlineRuntimeConfig);
+ _applyEnv(runtimeConfig);
+ event.context.nitro.runtimeConfig = runtimeConfig;
+ return runtimeConfig;
+}
+_deepFreeze(klona(appConfig));
+function _getEnv(key) {
+ const envKey = snakeCase(key).toUpperCase();
+ return destr(
+ process.env[ENV_PREFIX + envKey] ?? process.env[ENV_PREFIX_ALT + envKey]
+ );
+}
+function _isObject(input) {
+ return typeof input === "object" && !Array.isArray(input);
+}
+function _applyEnv(obj, parentKey = "") {
+ for (const key in obj) {
+ const subKey = parentKey ? `${parentKey}_${key}` : key;
+ const envValue = _getEnv(subKey);
+ if (_isObject(obj[key])) {
+ if (_isObject(envValue)) {
+ obj[key] = { ...obj[key], ...envValue };
+ }
+ _applyEnv(obj[key], subKey);
+ } else {
+ obj[key] = envValue ?? obj[key];
+ }
+ }
+ return obj;
+}
+function _deepFreeze(object) {
+ const propNames = Object.getOwnPropertyNames(object);
+ for (const name of propNames) {
+ const value = object[name];
+ if (value && typeof value === "object") {
+ _deepFreeze(value);
+ }
+ }
+ return Object.freeze(object);
+}
+new Proxy(/* @__PURE__ */ Object.create(null), {
+ get: (_, prop) => {
+ console.warn(
+ "Please use `useRuntimeConfig()` instead of accessing config directly."
+ );
+ const runtimeConfig = useRuntimeConfig();
+ if (prop in runtimeConfig) {
+ return runtimeConfig[prop];
+ }
+ return void 0;
+ }
+});
+
+const defaults = Object.freeze({
+ ignoreUnknown: false,
+ respectType: false,
+ respectFunctionNames: false,
+ respectFunctionProperties: false,
+ unorderedObjects: true,
+ unorderedArrays: false,
+ unorderedSets: false,
+ excludeKeys: void 0,
+ excludeValues: void 0,
+ replacer: void 0
+});
+function objectHash(object, options) {
+ if (options) {
+ options = { ...defaults, ...options };
+ } else {
+ options = defaults;
+ }
+ const hasher = createHasher(options);
+ hasher.dispatch(object);
+ return hasher.toString();
+}
+const defaultPrototypesKeys = Object.freeze([
+ "prototype",
+ "__proto__",
+ "constructor"
+]);
+function createHasher(options) {
+ let buff = "";
+ let context = /* @__PURE__ */ new Map();
+ const write = (str) => {
+ buff += str;
+ };
+ return {
+ toString() {
+ return buff;
+ },
+ getContext() {
+ return context;
+ },
+ dispatch(value) {
+ if (options.replacer) {
+ value = options.replacer(value);
+ }
+ const type = value === null ? "null" : typeof value;
+ return this[type](value);
+ },
+ object(object) {
+ if (object && typeof object.toJSON === "function") {
+ return this.object(object.toJSON());
+ }
+ const objString = Object.prototype.toString.call(object);
+ let objType = "";
+ const objectLength = objString.length;
+ if (objectLength < 10) {
+ objType = "unknown:[" + objString + "]";
+ } else {
+ objType = objString.slice(8, objectLength - 1);
+ }
+ objType = objType.toLowerCase();
+ let objectNumber = null;
+ if ((objectNumber = context.get(object)) === void 0) {
+ context.set(object, context.size);
+ } else {
+ return this.dispatch("[CIRCULAR:" + objectNumber + "]");
+ }
+ if (typeof Buffer !== "undefined" && Buffer.isBuffer && Buffer.isBuffer(object)) {
+ write("buffer:");
+ return write(object.toString("utf8"));
+ }
+ if (objType !== "object" && objType !== "function" && objType !== "asyncfunction") {
+ if (this[objType]) {
+ this[objType](object);
+ } else if (!options.ignoreUnknown) {
+ this.unkown(object, objType);
+ }
+ } else {
+ let keys = Object.keys(object);
+ if (options.unorderedObjects) {
+ keys = keys.sort();
+ }
+ let extraKeys = [];
+ if (options.respectType !== false && !isNativeFunction(object)) {
+ extraKeys = defaultPrototypesKeys;
+ }
+ if (options.excludeKeys) {
+ keys = keys.filter((key) => {
+ return !options.excludeKeys(key);
+ });
+ extraKeys = extraKeys.filter((key) => {
+ return !options.excludeKeys(key);
+ });
+ }
+ write("object:" + (keys.length + extraKeys.length) + ":");
+ const dispatchForKey = (key) => {
+ this.dispatch(key);
+ write(":");
+ if (!options.excludeValues) {
+ this.dispatch(object[key]);
+ }
+ write(",");
+ };
+ for (const key of keys) {
+ dispatchForKey(key);
+ }
+ for (const key of extraKeys) {
+ dispatchForKey(key);
+ }
+ }
+ },
+ array(arr, unordered) {
+ unordered = unordered === void 0 ? options.unorderedArrays !== false : unordered;
+ write("array:" + arr.length + ":");
+ if (!unordered || arr.length <= 1) {
+ for (const entry of arr) {
+ this.dispatch(entry);
+ }
+ return;
+ }
+ const contextAdditions = /* @__PURE__ */ new Map();
+ const entries = arr.map((entry) => {
+ const hasher = createHasher(options);
+ hasher.dispatch(entry);
+ for (const [key, value] of hasher.getContext()) {
+ contextAdditions.set(key, value);
+ }
+ return hasher.toString();
+ });
+ context = contextAdditions;
+ entries.sort();
+ return this.array(entries, false);
+ },
+ date(date) {
+ return write("date:" + date.toJSON());
+ },
+ symbol(sym) {
+ return write("symbol:" + sym.toString());
+ },
+ unkown(value, type) {
+ write(type);
+ if (!value) {
+ return;
+ }
+ write(":");
+ if (value && typeof value.entries === "function") {
+ return this.array(
+ Array.from(value.entries()),
+ true
+ /* ordered */
+ );
+ }
+ },
+ error(err) {
+ return write("error:" + err.toString());
+ },
+ boolean(bool) {
+ return write("bool:" + bool);
+ },
+ string(string) {
+ write("string:" + string.length + ":");
+ write(string);
+ },
+ function(fn) {
+ write("fn:");
+ if (isNativeFunction(fn)) {
+ this.dispatch("[native]");
+ } else {
+ this.dispatch(fn.toString());
+ }
+ if (options.respectFunctionNames !== false) {
+ this.dispatch("function-name:" + String(fn.name));
+ }
+ if (options.respectFunctionProperties) {
+ this.object(fn);
+ }
+ },
+ number(number) {
+ return write("number:" + number);
+ },
+ xml(xml) {
+ return write("xml:" + xml.toString());
+ },
+ null() {
+ return write("Null");
+ },
+ undefined() {
+ return write("Undefined");
+ },
+ regexp(regex) {
+ return write("regex:" + regex.toString());
+ },
+ uint8array(arr) {
+ write("uint8array:");
+ return this.dispatch(Array.prototype.slice.call(arr));
+ },
+ uint8clampedarray(arr) {
+ write("uint8clampedarray:");
+ return this.dispatch(Array.prototype.slice.call(arr));
+ },
+ int8array(arr) {
+ write("int8array:");
+ return this.dispatch(Array.prototype.slice.call(arr));
+ },
+ uint16array(arr) {
+ write("uint16array:");
+ return this.dispatch(Array.prototype.slice.call(arr));
+ },
+ int16array(arr) {
+ write("int16array:");
+ return this.dispatch(Array.prototype.slice.call(arr));
+ },
+ uint32array(arr) {
+ write("uint32array:");
+ return this.dispatch(Array.prototype.slice.call(arr));
+ },
+ int32array(arr) {
+ write("int32array:");
+ return this.dispatch(Array.prototype.slice.call(arr));
+ },
+ float32array(arr) {
+ write("float32array:");
+ return this.dispatch(Array.prototype.slice.call(arr));
+ },
+ float64array(arr) {
+ write("float64array:");
+ return this.dispatch(Array.prototype.slice.call(arr));
+ },
+ arraybuffer(arr) {
+ write("arraybuffer:");
+ return this.dispatch(new Uint8Array(arr));
+ },
+ url(url) {
+ return write("url:" + url.toString());
+ },
+ map(map) {
+ write("map:");
+ const arr = [...map];
+ return this.array(arr, options.unorderedSets !== false);
+ },
+ set(set) {
+ write("set:");
+ const arr = [...set];
+ return this.array(arr, options.unorderedSets !== false);
+ },
+ file(file) {
+ write("file:");
+ return this.dispatch([file.name, file.size, file.type, file.lastModfied]);
+ },
+ blob() {
+ if (options.ignoreUnknown) {
+ return write("[blob]");
+ }
+ throw new Error(
+ 'Hashing Blob objects is currently not supported\nUse "options.replacer" or "options.ignoreUnknown"\n'
+ );
+ },
+ domwindow() {
+ return write("domwindow");
+ },
+ bigint(number) {
+ return write("bigint:" + number.toString());
+ },
+ /* Node.js standard native objects */
+ process() {
+ return write("process");
+ },
+ timer() {
+ return write("timer");
+ },
+ pipe() {
+ return write("pipe");
+ },
+ tcp() {
+ return write("tcp");
+ },
+ udp() {
+ return write("udp");
+ },
+ tty() {
+ return write("tty");
+ },
+ statwatcher() {
+ return write("statwatcher");
+ },
+ securecontext() {
+ return write("securecontext");
+ },
+ connection() {
+ return write("connection");
+ },
+ zlib() {
+ return write("zlib");
+ },
+ context() {
+ return write("context");
+ },
+ nodescript() {
+ return write("nodescript");
+ },
+ httpparser() {
+ return write("httpparser");
+ },
+ dataview() {
+ return write("dataview");
+ },
+ signal() {
+ return write("signal");
+ },
+ fsevent() {
+ return write("fsevent");
+ },
+ tlswrap() {
+ return write("tlswrap");
+ }
+ };
+}
+const nativeFunc = "[native code] }";
+const nativeFuncLength = nativeFunc.length;
+function isNativeFunction(f) {
+ if (typeof f !== "function") {
+ return false;
+ }
+ return Function.prototype.toString.call(f).slice(-nativeFuncLength) === nativeFunc;
+}
+
+class WordArray {
+ constructor(words, sigBytes) {
+ words = this.words = words || [];
+ this.sigBytes = sigBytes === void 0 ? words.length * 4 : sigBytes;
+ }
+ toString(encoder) {
+ return (encoder || Hex).stringify(this);
+ }
+ concat(wordArray) {
+ this.clamp();
+ if (this.sigBytes % 4) {
+ for (let i = 0; i < wordArray.sigBytes; i++) {
+ const thatByte = wordArray.words[i >>> 2] >>> 24 - i % 4 * 8 & 255;
+ this.words[this.sigBytes + i >>> 2] |= thatByte << 24 - (this.sigBytes + i) % 4 * 8;
+ }
+ } else {
+ for (let j = 0; j < wordArray.sigBytes; j += 4) {
+ this.words[this.sigBytes + j >>> 2] = wordArray.words[j >>> 2];
+ }
+ }
+ this.sigBytes += wordArray.sigBytes;
+ return this;
+ }
+ clamp() {
+ this.words[this.sigBytes >>> 2] &= 4294967295 << 32 - this.sigBytes % 4 * 8;
+ this.words.length = Math.ceil(this.sigBytes / 4);
+ }
+ clone() {
+ return new WordArray([...this.words]);
+ }
+}
+const Hex = {
+ stringify(wordArray) {
+ const hexChars = [];
+ for (let i = 0; i < wordArray.sigBytes; i++) {
+ const bite = wordArray.words[i >>> 2] >>> 24 - i % 4 * 8 & 255;
+ hexChars.push((bite >>> 4).toString(16), (bite & 15).toString(16));
+ }
+ return hexChars.join("");
+ }
+};
+const Base64 = {
+ stringify(wordArray) {
+ const keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
+ const base64Chars = [];
+ for (let i = 0; i < wordArray.sigBytes; i += 3) {
+ const byte1 = wordArray.words[i >>> 2] >>> 24 - i % 4 * 8 & 255;
+ const byte2 = wordArray.words[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255;
+ const byte3 = wordArray.words[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255;
+ const triplet = byte1 << 16 | byte2 << 8 | byte3;
+ for (let j = 0; j < 4 && i * 8 + j * 6 < wordArray.sigBytes * 8; j++) {
+ base64Chars.push(keyStr.charAt(triplet >>> 6 * (3 - j) & 63));
+ }
+ }
+ return base64Chars.join("");
+ }
+};
+const Latin1 = {
+ parse(latin1Str) {
+ const latin1StrLength = latin1Str.length;
+ const words = [];
+ for (let i = 0; i < latin1StrLength; i++) {
+ words[i >>> 2] |= (latin1Str.charCodeAt(i) & 255) << 24 - i % 4 * 8;
+ }
+ return new WordArray(words, latin1StrLength);
+ }
+};
+const Utf8 = {
+ parse(utf8Str) {
+ return Latin1.parse(unescape(encodeURIComponent(utf8Str)));
+ }
+};
+class BufferedBlockAlgorithm {
+ constructor() {
+ this._data = new WordArray();
+ this._nDataBytes = 0;
+ this._minBufferSize = 0;
+ this.blockSize = 512 / 32;
+ }
+ reset() {
+ this._data = new WordArray();
+ this._nDataBytes = 0;
+ }
+ _append(data) {
+ if (typeof data === "string") {
+ data = Utf8.parse(data);
+ }
+ this._data.concat(data);
+ this._nDataBytes += data.sigBytes;
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ _doProcessBlock(_dataWords, _offset) {
+ }
+ _process(doFlush) {
+ let processedWords;
+ let nBlocksReady = this._data.sigBytes / (this.blockSize * 4);
+ if (doFlush) {
+ nBlocksReady = Math.ceil(nBlocksReady);
+ } else {
+ nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);
+ }
+ const nWordsReady = nBlocksReady * this.blockSize;
+ const nBytesReady = Math.min(nWordsReady * 4, this._data.sigBytes);
+ if (nWordsReady) {
+ for (let offset = 0; offset < nWordsReady; offset += this.blockSize) {
+ this._doProcessBlock(this._data.words, offset);
+ }
+ processedWords = this._data.words.splice(0, nWordsReady);
+ this._data.sigBytes -= nBytesReady;
+ }
+ return new WordArray(processedWords, nBytesReady);
+ }
+}
+class Hasher extends BufferedBlockAlgorithm {
+ update(messageUpdate) {
+ this._append(messageUpdate);
+ this._process();
+ return this;
+ }
+ finalize(messageUpdate) {
+ if (messageUpdate) {
+ this._append(messageUpdate);
+ }
+ }
+}
+
+const H = [
+ 1779033703,
+ -1150833019,
+ 1013904242,
+ -1521486534,
+ 1359893119,
+ -1694144372,
+ 528734635,
+ 1541459225
+];
+const K = [
+ 1116352408,
+ 1899447441,
+ -1245643825,
+ -373957723,
+ 961987163,
+ 1508970993,
+ -1841331548,
+ -1424204075,
+ -670586216,
+ 310598401,
+ 607225278,
+ 1426881987,
+ 1925078388,
+ -2132889090,
+ -1680079193,
+ -1046744716,
+ -459576895,
+ -272742522,
+ 264347078,
+ 604807628,
+ 770255983,
+ 1249150122,
+ 1555081692,
+ 1996064986,
+ -1740746414,
+ -1473132947,
+ -1341970488,
+ -1084653625,
+ -958395405,
+ -710438585,
+ 113926993,
+ 338241895,
+ 666307205,
+ 773529912,
+ 1294757372,
+ 1396182291,
+ 1695183700,
+ 1986661051,
+ -2117940946,
+ -1838011259,
+ -1564481375,
+ -1474664885,
+ -1035236496,
+ -949202525,
+ -778901479,
+ -694614492,
+ -200395387,
+ 275423344,
+ 430227734,
+ 506948616,
+ 659060556,
+ 883997877,
+ 958139571,
+ 1322822218,
+ 1537002063,
+ 1747873779,
+ 1955562222,
+ 2024104815,
+ -2067236844,
+ -1933114872,
+ -1866530822,
+ -1538233109,
+ -1090935817,
+ -965641998
+];
+const W = [];
+class SHA256 extends Hasher {
+ constructor() {
+ super(...arguments);
+ this._hash = new WordArray([...H]);
+ }
+ reset() {
+ super.reset();
+ this._hash = new WordArray([...H]);
+ }
+ _doProcessBlock(M, offset) {
+ const H2 = this._hash.words;
+ let a = H2[0];
+ let b = H2[1];
+ let c = H2[2];
+ let d = H2[3];
+ let e = H2[4];
+ let f = H2[5];
+ let g = H2[6];
+ let h = H2[7];
+ for (let i = 0; i < 64; i++) {
+ if (i < 16) {
+ W[i] = M[offset + i] | 0;
+ } else {
+ const gamma0x = W[i - 15];
+ const gamma0 = (gamma0x << 25 | gamma0x >>> 7) ^ (gamma0x << 14 | gamma0x >>> 18) ^ gamma0x >>> 3;
+ const gamma1x = W[i - 2];
+ const gamma1 = (gamma1x << 15 | gamma1x >>> 17) ^ (gamma1x << 13 | gamma1x >>> 19) ^ gamma1x >>> 10;
+ W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];
+ }
+ const ch = e & f ^ ~e & g;
+ const maj = a & b ^ a & c ^ b & c;
+ const sigma0 = (a << 30 | a >>> 2) ^ (a << 19 | a >>> 13) ^ (a << 10 | a >>> 22);
+ const sigma1 = (e << 26 | e >>> 6) ^ (e << 21 | e >>> 11) ^ (e << 7 | e >>> 25);
+ const t1 = h + sigma1 + ch + K[i] + W[i];
+ const t2 = sigma0 + maj;
+ h = g;
+ g = f;
+ f = e;
+ e = d + t1 | 0;
+ d = c;
+ c = b;
+ b = a;
+ a = t1 + t2 | 0;
+ }
+ H2[0] = H2[0] + a | 0;
+ H2[1] = H2[1] + b | 0;
+ H2[2] = H2[2] + c | 0;
+ H2[3] = H2[3] + d | 0;
+ H2[4] = H2[4] + e | 0;
+ H2[5] = H2[5] + f | 0;
+ H2[6] = H2[6] + g | 0;
+ H2[7] = H2[7] + h | 0;
+ }
+ finalize(messageUpdate) {
+ super.finalize(messageUpdate);
+ const nBitsTotal = this._nDataBytes * 8;
+ const nBitsLeft = this._data.sigBytes * 8;
+ this._data.words[nBitsLeft >>> 5] |= 128 << 24 - nBitsLeft % 32;
+ this._data.words[(nBitsLeft + 64 >>> 9 << 4) + 14] = Math.floor(
+ nBitsTotal / 4294967296
+ );
+ this._data.words[(nBitsLeft + 64 >>> 9 << 4) + 15] = nBitsTotal;
+ this._data.sigBytes = this._data.words.length * 4;
+ this._process();
+ return this._hash;
+ }
+}
+function sha256base64(message) {
+ return new SHA256().finalize(message).toString(Base64);
+}
+
+function hash(object, options = {}) {
+ const hashed = typeof object === "string" ? object : objectHash(object, options);
+ return sha256base64(hashed).slice(0, 10);
+}
+
+function wrapToPromise(value) {
+ if (!value || typeof value.then !== "function") {
+ return Promise.resolve(value);
+ }
+ return value;
+}
+function asyncCall(function_, ...arguments_) {
+ try {
+ return wrapToPromise(function_(...arguments_));
+ } catch (error) {
+ return Promise.reject(error);
+ }
+}
+function isPrimitive(value) {
+ const type = typeof value;
+ return value === null || type !== "object" && type !== "function";
+}
+function isPureObject(value) {
+ const proto = Object.getPrototypeOf(value);
+ return !proto || proto.isPrototypeOf(Object);
+}
+function stringify(value) {
+ if (isPrimitive(value)) {
+ return String(value);
+ }
+ if (isPureObject(value) || Array.isArray(value)) {
+ return JSON.stringify(value);
+ }
+ if (typeof value.toJSON === "function") {
+ return stringify(value.toJSON());
+ }
+ throw new Error("[unstorage] Cannot stringify value!");
+}
+function checkBufferSupport() {
+ if (typeof Buffer === void 0) {
+ throw new TypeError("[unstorage] Buffer is not supported!");
+ }
+}
+const BASE64_PREFIX = "base64:";
+function serializeRaw(value) {
+ if (typeof value === "string") {
+ return value;
+ }
+ checkBufferSupport();
+ const base64 = Buffer.from(value).toString("base64");
+ return BASE64_PREFIX + base64;
+}
+function deserializeRaw(value) {
+ if (typeof value !== "string") {
+ return value;
+ }
+ if (!value.startsWith(BASE64_PREFIX)) {
+ return value;
+ }
+ checkBufferSupport();
+ return Buffer.from(value.slice(BASE64_PREFIX.length), "base64");
+}
+
+const storageKeyProperties = [
+ "hasItem",
+ "getItem",
+ "getItemRaw",
+ "setItem",
+ "setItemRaw",
+ "removeItem",
+ "getMeta",
+ "setMeta",
+ "removeMeta",
+ "getKeys",
+ "clear",
+ "mount",
+ "unmount"
+];
+function prefixStorage(storage, base) {
+ base = normalizeBaseKey(base);
+ if (!base) {
+ return storage;
+ }
+ const nsStorage = { ...storage };
+ for (const property of storageKeyProperties) {
+ nsStorage[property] = (key = "", ...args) => (
+ // @ts-ignore
+ storage[property](base + key, ...args)
+ );
+ }
+ nsStorage.getKeys = (key = "", ...arguments_) => storage.getKeys(base + key, ...arguments_).then((keys) => keys.map((key2) => key2.slice(base.length)));
+ return nsStorage;
+}
+function normalizeKey$1(key) {
+ if (!key) {
+ return "";
+ }
+ return key.split("?")[0].replace(/[/\\]/g, ":").replace(/:+/g, ":").replace(/^:|:$/g, "");
+}
+function joinKeys(...keys) {
+ return normalizeKey$1(keys.join(":"));
+}
+function normalizeBaseKey(base) {
+ base = normalizeKey$1(base);
+ return base ? base + ":" : "";
+}
+
+function defineDriver$1(factory) {
+ return factory;
+}
+
+const DRIVER_NAME$1 = "memory";
+const memory = defineDriver$1(() => {
+ const data = /* @__PURE__ */ new Map();
+ return {
+ name: DRIVER_NAME$1,
+ options: {},
+ hasItem(key) {
+ return data.has(key);
+ },
+ getItem(key) {
+ return data.get(key) ?? null;
+ },
+ getItemRaw(key) {
+ return data.get(key) ?? null;
+ },
+ setItem(key, value) {
+ data.set(key, value);
+ },
+ setItemRaw(key, value) {
+ data.set(key, value);
+ },
+ removeItem(key) {
+ data.delete(key);
+ },
+ getKeys() {
+ return Array.from(data.keys());
+ },
+ clear() {
+ data.clear();
+ },
+ dispose() {
+ data.clear();
+ }
+ };
+});
+
+function createStorage(options = {}) {
+ const context = {
+ mounts: { "": options.driver || memory() },
+ mountpoints: [""],
+ watching: false,
+ watchListeners: [],
+ unwatch: {}
+ };
+ const getMount = (key) => {
+ for (const base of context.mountpoints) {
+ if (key.startsWith(base)) {
+ return {
+ base,
+ relativeKey: key.slice(base.length),
+ driver: context.mounts[base]
+ };
+ }
+ }
+ return {
+ base: "",
+ relativeKey: key,
+ driver: context.mounts[""]
+ };
+ };
+ const getMounts = (base, includeParent) => {
+ return context.mountpoints.filter(
+ (mountpoint) => mountpoint.startsWith(base) || includeParent && base.startsWith(mountpoint)
+ ).map((mountpoint) => ({
+ relativeBase: base.length > mountpoint.length ? base.slice(mountpoint.length) : void 0,
+ mountpoint,
+ driver: context.mounts[mountpoint]
+ }));
+ };
+ const onChange = (event, key) => {
+ if (!context.watching) {
+ return;
+ }
+ key = normalizeKey$1(key);
+ for (const listener of context.watchListeners) {
+ listener(event, key);
+ }
+ };
+ const startWatch = async () => {
+ if (context.watching) {
+ return;
+ }
+ context.watching = true;
+ for (const mountpoint in context.mounts) {
+ context.unwatch[mountpoint] = await watch(
+ context.mounts[mountpoint],
+ onChange,
+ mountpoint
+ );
+ }
+ };
+ const stopWatch = async () => {
+ if (!context.watching) {
+ return;
+ }
+ for (const mountpoint in context.unwatch) {
+ await context.unwatch[mountpoint]();
+ }
+ context.unwatch = {};
+ context.watching = false;
+ };
+ const runBatch = (items, commonOptions, cb) => {
+ const batches = /* @__PURE__ */ new Map();
+ const getBatch = (mount) => {
+ let batch = batches.get(mount.base);
+ if (!batch) {
+ batch = {
+ driver: mount.driver,
+ base: mount.base,
+ items: []
+ };
+ batches.set(mount.base, batch);
+ }
+ return batch;
+ };
+ for (const item of items) {
+ const isStringItem = typeof item === "string";
+ const key = normalizeKey$1(isStringItem ? item : item.key);
+ const value = isStringItem ? void 0 : item.value;
+ const options2 = isStringItem || !item.options ? commonOptions : { ...commonOptions, ...item.options };
+ const mount = getMount(key);
+ getBatch(mount).items.push({
+ key,
+ value,
+ relativeKey: mount.relativeKey,
+ options: options2
+ });
+ }
+ return Promise.all([...batches.values()].map((batch) => cb(batch))).then(
+ (r) => r.flat()
+ );
+ };
+ const storage = {
+ // Item
+ hasItem(key, opts = {}) {
+ key = normalizeKey$1(key);
+ const { relativeKey, driver } = getMount(key);
+ return asyncCall(driver.hasItem, relativeKey, opts);
+ },
+ getItem(key, opts = {}) {
+ key = normalizeKey$1(key);
+ const { relativeKey, driver } = getMount(key);
+ return asyncCall(driver.getItem, relativeKey, opts).then(
+ (value) => destr(value)
+ );
+ },
+ getItems(items, commonOptions) {
+ return runBatch(items, commonOptions, (batch) => {
+ if (batch.driver.getItems) {
+ return asyncCall(
+ batch.driver.getItems,
+ batch.items.map((item) => ({
+ key: item.relativeKey,
+ options: item.options
+ })),
+ commonOptions
+ ).then(
+ (r) => r.map((item) => ({
+ key: joinKeys(batch.base, item.key),
+ value: destr(item.value)
+ }))
+ );
+ }
+ return Promise.all(
+ batch.items.map((item) => {
+ return asyncCall(
+ batch.driver.getItem,
+ item.relativeKey,
+ item.options
+ ).then((value) => ({
+ key: item.key,
+ value: destr(value)
+ }));
+ })
+ );
+ });
+ },
+ getItemRaw(key, opts = {}) {
+ key = normalizeKey$1(key);
+ const { relativeKey, driver } = getMount(key);
+ if (driver.getItemRaw) {
+ return asyncCall(driver.getItemRaw, relativeKey, opts);
+ }
+ return asyncCall(driver.getItem, relativeKey, opts).then(
+ (value) => deserializeRaw(value)
+ );
+ },
+ async setItem(key, value, opts = {}) {
+ if (value === void 0) {
+ return storage.removeItem(key);
+ }
+ key = normalizeKey$1(key);
+ const { relativeKey, driver } = getMount(key);
+ if (!driver.setItem) {
+ return;
+ }
+ await asyncCall(driver.setItem, relativeKey, stringify(value), opts);
+ if (!driver.watch) {
+ onChange("update", key);
+ }
+ },
+ async setItems(items, commonOptions) {
+ await runBatch(items, commonOptions, async (batch) => {
+ if (batch.driver.setItems) {
+ await asyncCall(
+ batch.driver.setItems,
+ batch.items.map((item) => ({
+ key: item.relativeKey,
+ value: stringify(item.value),
+ options: item.options
+ })),
+ commonOptions
+ );
+ }
+ if (!batch.driver.setItem) {
+ return;
+ }
+ await Promise.all(
+ batch.items.map((item) => {
+ return asyncCall(
+ batch.driver.setItem,
+ item.relativeKey,
+ stringify(item.value),
+ item.options
+ );
+ })
+ );
+ });
+ },
+ async setItemRaw(key, value, opts = {}) {
+ if (value === void 0) {
+ return storage.removeItem(key, opts);
+ }
+ key = normalizeKey$1(key);
+ const { relativeKey, driver } = getMount(key);
+ if (driver.setItemRaw) {
+ await asyncCall(driver.setItemRaw, relativeKey, value, opts);
+ } else if (driver.setItem) {
+ await asyncCall(driver.setItem, relativeKey, serializeRaw(value), opts);
+ } else {
+ return;
+ }
+ if (!driver.watch) {
+ onChange("update", key);
+ }
+ },
+ async removeItem(key, opts = {}) {
+ if (typeof opts === "boolean") {
+ opts = { removeMeta: opts };
+ }
+ key = normalizeKey$1(key);
+ const { relativeKey, driver } = getMount(key);
+ if (!driver.removeItem) {
+ return;
+ }
+ await asyncCall(driver.removeItem, relativeKey, opts);
+ if (opts.removeMeta || opts.removeMata) {
+ await asyncCall(driver.removeItem, relativeKey + "$", opts);
+ }
+ if (!driver.watch) {
+ onChange("remove", key);
+ }
+ },
+ // Meta
+ async getMeta(key, opts = {}) {
+ if (typeof opts === "boolean") {
+ opts = { nativeOnly: opts };
+ }
+ key = normalizeKey$1(key);
+ const { relativeKey, driver } = getMount(key);
+ const meta = /* @__PURE__ */ Object.create(null);
+ if (driver.getMeta) {
+ Object.assign(meta, await asyncCall(driver.getMeta, relativeKey, opts));
+ }
+ if (!opts.nativeOnly) {
+ const value = await asyncCall(
+ driver.getItem,
+ relativeKey + "$",
+ opts
+ ).then((value_) => destr(value_));
+ if (value && typeof value === "object") {
+ if (typeof value.atime === "string") {
+ value.atime = new Date(value.atime);
+ }
+ if (typeof value.mtime === "string") {
+ value.mtime = new Date(value.mtime);
+ }
+ Object.assign(meta, value);
+ }
+ }
+ return meta;
+ },
+ setMeta(key, value, opts = {}) {
+ return this.setItem(key + "$", value, opts);
+ },
+ removeMeta(key, opts = {}) {
+ return this.removeItem(key + "$", opts);
+ },
+ // Keys
+ async getKeys(base, opts = {}) {
+ base = normalizeBaseKey(base);
+ const mounts = getMounts(base, true);
+ let maskedMounts = [];
+ const allKeys = [];
+ for (const mount of mounts) {
+ const rawKeys = await asyncCall(
+ mount.driver.getKeys,
+ mount.relativeBase,
+ opts
+ );
+ const keys = rawKeys.map((key) => mount.mountpoint + normalizeKey$1(key)).filter((key) => !maskedMounts.some((p) => key.startsWith(p)));
+ allKeys.push(...keys);
+ maskedMounts = [
+ mount.mountpoint,
+ ...maskedMounts.filter((p) => !p.startsWith(mount.mountpoint))
+ ];
+ }
+ return base ? allKeys.filter((key) => key.startsWith(base) && !key.endsWith("$")) : allKeys.filter((key) => !key.endsWith("$"));
+ },
+ // Utils
+ async clear(base, opts = {}) {
+ base = normalizeBaseKey(base);
+ await Promise.all(
+ getMounts(base, false).map(async (m) => {
+ if (m.driver.clear) {
+ return asyncCall(m.driver.clear, m.relativeBase, opts);
+ }
+ if (m.driver.removeItem) {
+ const keys = await m.driver.getKeys(m.relativeBase || "", opts);
+ return Promise.all(
+ keys.map((key) => m.driver.removeItem(key, opts))
+ );
+ }
+ })
+ );
+ },
+ async dispose() {
+ await Promise.all(
+ Object.values(context.mounts).map((driver) => dispose(driver))
+ );
+ },
+ async watch(callback) {
+ await startWatch();
+ context.watchListeners.push(callback);
+ return async () => {
+ context.watchListeners = context.watchListeners.filter(
+ (listener) => listener !== callback
+ );
+ if (context.watchListeners.length === 0) {
+ await stopWatch();
+ }
+ };
+ },
+ async unwatch() {
+ context.watchListeners = [];
+ await stopWatch();
+ },
+ // Mount
+ mount(base, driver) {
+ base = normalizeBaseKey(base);
+ if (base && context.mounts[base]) {
+ throw new Error(`already mounted at ${base}`);
+ }
+ if (base) {
+ context.mountpoints.push(base);
+ context.mountpoints.sort((a, b) => b.length - a.length);
+ }
+ context.mounts[base] = driver;
+ if (context.watching) {
+ Promise.resolve(watch(driver, onChange, base)).then((unwatcher) => {
+ context.unwatch[base] = unwatcher;
+ }).catch(console.error);
+ }
+ return storage;
+ },
+ async unmount(base, _dispose = true) {
+ base = normalizeBaseKey(base);
+ if (!base || !context.mounts[base]) {
+ return;
+ }
+ if (context.watching && base in context.unwatch) {
+ context.unwatch[base]();
+ delete context.unwatch[base];
+ }
+ if (_dispose) {
+ await dispose(context.mounts[base]);
+ }
+ context.mountpoints = context.mountpoints.filter((key) => key !== base);
+ delete context.mounts[base];
+ },
+ getMount(key = "") {
+ key = normalizeKey$1(key) + ":";
+ const m = getMount(key);
+ return {
+ driver: m.driver,
+ base: m.base
+ };
+ },
+ getMounts(base = "", opts = {}) {
+ base = normalizeKey$1(base);
+ const mounts = getMounts(base, opts.parents);
+ return mounts.map((m) => ({
+ driver: m.driver,
+ base: m.mountpoint
+ }));
+ }
+ };
+ return storage;
+}
+function watch(driver, onChange, base) {
+ return driver.watch ? driver.watch((event, key) => onChange(event, base + key)) : () => {
+ };
+}
+async function dispose(driver) {
+ if (typeof driver.dispose === "function") {
+ await asyncCall(driver.dispose);
+ }
+}
+
+const _assets = {
+
+};
+
+const normalizeKey = function normalizeKey(key) {
+ if (!key) {
+ return "";
+ }
+ return key.split("?")[0].replace(/[/\\]/g, ":").replace(/:+/g, ":").replace(/^:|:$/g, "");
+};
+
+const assets$1 = {
+ getKeys() {
+ return Promise.resolve(Object.keys(_assets))
+ },
+ hasItem (id) {
+ id = normalizeKey(id);
+ return Promise.resolve(id in _assets)
+ },
+ getItem (id) {
+ id = normalizeKey(id);
+ return Promise.resolve(_assets[id] ? _assets[id].import() : null)
+ },
+ getMeta (id) {
+ id = normalizeKey(id);
+ return Promise.resolve(_assets[id] ? _assets[id].meta : {})
+ }
+};
+
+function defineDriver(factory) {
+ return factory;
+}
+function createError(driver, message, opts) {
+ const err = new Error(`[unstorage] [${driver}] ${message}`, opts);
+ return err;
+}
+function createRequiredError(driver, name) {
+ if (Array.isArray(name)) {
+ return createError(
+ driver,
+ `Missing some of the required options ${name.map((n) => "`" + n + "`").join(", ")}`
+ );
+ }
+ return createError(driver, `Missing required option \`${name}\`.`);
+}
+
+function ignoreNotfound(err) {
+ return err.code === "ENOENT" || err.code === "EISDIR" ? null : err;
+}
+function ignoreExists(err) {
+ return err.code === "EEXIST" ? null : err;
+}
+async function writeFile(path, data, encoding) {
+ await ensuredir(dirname$1(path));
+ return promises.writeFile(path, data, encoding);
+}
+function readFile(path, encoding) {
+ return promises.readFile(path, encoding).catch(ignoreNotfound);
+}
+function unlink(path) {
+ return promises.unlink(path).catch(ignoreNotfound);
+}
+function readdir(dir) {
+ return promises.readdir(dir, { withFileTypes: true }).catch(ignoreNotfound).then((r) => r || []);
+}
+async function ensuredir(dir) {
+ if (existsSync(dir)) {
+ return;
+ }
+ await ensuredir(dirname$1(dir)).catch(ignoreExists);
+ await promises.mkdir(dir).catch(ignoreExists);
+}
+async function readdirRecursive(dir, ignore) {
+ if (ignore && ignore(dir)) {
+ return [];
+ }
+ const entries = await readdir(dir);
+ const files = [];
+ await Promise.all(
+ entries.map(async (entry) => {
+ const entryPath = resolve$1(dir, entry.name);
+ if (entry.isDirectory()) {
+ const dirFiles = await readdirRecursive(entryPath, ignore);
+ files.push(...dirFiles.map((f) => entry.name + "/" + f));
+ } else {
+ if (!(ignore && ignore(entry.name))) {
+ files.push(entry.name);
+ }
+ }
+ })
+ );
+ return files;
+}
+async function rmRecursive(dir) {
+ const entries = await readdir(dir);
+ await Promise.all(
+ entries.map((entry) => {
+ const entryPath = resolve$1(dir, entry.name);
+ if (entry.isDirectory()) {
+ return rmRecursive(entryPath).then(() => promises.rmdir(entryPath));
+ } else {
+ return promises.unlink(entryPath);
+ }
+ })
+ );
+}
+
+const PATH_TRAVERSE_RE = /\.\.\:|\.\.$/;
+const DRIVER_NAME = "fs-lite";
+const unstorage_47drivers_47fs_45lite = defineDriver((opts = {}) => {
+ if (!opts.base) {
+ throw createRequiredError(DRIVER_NAME, "base");
+ }
+ opts.base = resolve$1(opts.base);
+ const r = (key) => {
+ if (PATH_TRAVERSE_RE.test(key)) {
+ throw createError(
+ DRIVER_NAME,
+ `Invalid key: ${JSON.stringify(key)}. It should not contain .. segments`
+ );
+ }
+ const resolved = join(opts.base, key.replace(/:/g, "/"));
+ return resolved;
+ };
+ return {
+ name: DRIVER_NAME,
+ options: opts,
+ hasItem(key) {
+ return existsSync(r(key));
+ },
+ getItem(key) {
+ return readFile(r(key), "utf8");
+ },
+ getItemRaw(key) {
+ return readFile(r(key));
+ },
+ async getMeta(key) {
+ const { atime, mtime, size, birthtime, ctime } = await promises.stat(r(key)).catch(() => ({}));
+ return { atime, mtime, size, birthtime, ctime };
+ },
+ setItem(key, value) {
+ if (opts.readOnly) {
+ return;
+ }
+ return writeFile(r(key), value, "utf8");
+ },
+ setItemRaw(key, value) {
+ if (opts.readOnly) {
+ return;
+ }
+ return writeFile(r(key), value);
+ },
+ removeItem(key) {
+ if (opts.readOnly) {
+ return;
+ }
+ return unlink(r(key));
+ },
+ getKeys() {
+ return readdirRecursive(r("."), opts.ignore);
+ },
+ async clear() {
+ if (opts.readOnly || opts.noClear) {
+ return;
+ }
+ await rmRecursive(r("."));
+ }
+ };
+});
+
+const storage = createStorage({});
+
+storage.mount('/assets', assets$1);
+
+storage.mount('data', unstorage_47drivers_47fs_45lite({"driver":"fsLite","base":"E:\\工作文件\\寄托\\SynologyDrive\\寄托\\PC面经\\mj\\.data\\kv"}));
+
+function useStorage(base = "") {
+ return base ? prefixStorage(storage, base) : storage;
+}
+
+const defaultCacheOptions = {
+ name: "_",
+ base: "/cache",
+ swr: true,
+ maxAge: 1
+};
+function defineCachedFunction(fn, opts = {}) {
+ opts = { ...defaultCacheOptions, ...opts };
+ const pending = {};
+ const group = opts.group || "nitro/functions";
+ const name = opts.name || fn.name || "_";
+ const integrity = opts.integrity || hash([fn, opts]);
+ const validate = opts.validate || ((entry) => entry.value !== void 0);
+ async function get(key, resolver, shouldInvalidateCache, event) {
+ const cacheKey = [opts.base, group, name, key + ".json"].filter(Boolean).join(":").replace(/:\/$/, ":index");
+ const entry = await useStorage().getItem(cacheKey) || {};
+ const ttl = (opts.maxAge ?? opts.maxAge ?? 0) * 1e3;
+ if (ttl) {
+ entry.expires = Date.now() + ttl;
+ }
+ const expired = shouldInvalidateCache || entry.integrity !== integrity || ttl && Date.now() - (entry.mtime || 0) > ttl || validate(entry) === false;
+ const _resolve = async () => {
+ const isPending = pending[key];
+ if (!isPending) {
+ if (entry.value !== void 0 && (opts.staleMaxAge || 0) >= 0 && opts.swr === false) {
+ entry.value = void 0;
+ entry.integrity = void 0;
+ entry.mtime = void 0;
+ entry.expires = void 0;
+ }
+ pending[key] = Promise.resolve(resolver());
+ }
+ try {
+ entry.value = await pending[key];
+ } catch (error) {
+ if (!isPending) {
+ delete pending[key];
+ }
+ throw error;
+ }
+ if (!isPending) {
+ entry.mtime = Date.now();
+ entry.integrity = integrity;
+ delete pending[key];
+ if (validate(entry) !== false) {
+ const promise = useStorage().setItem(cacheKey, entry).catch((error) => {
+ console.error(`[nitro] [cache] Cache write error.`, error);
+ useNitroApp().captureError(error, { event, tags: ["cache"] });
+ });
+ if (event && event.waitUntil) {
+ event.waitUntil(promise);
+ }
+ }
+ }
+ };
+ const _resolvePromise = expired ? _resolve() : Promise.resolve();
+ if (entry.value === void 0) {
+ await _resolvePromise;
+ } else if (expired && event && event.waitUntil) {
+ event.waitUntil(_resolvePromise);
+ }
+ if (opts.swr && validate(entry) !== false) {
+ _resolvePromise.catch((error) => {
+ console.error(`[nitro] [cache] SWR handler error.`, error);
+ useNitroApp().captureError(error, { event, tags: ["cache"] });
+ });
+ return entry;
+ }
+ return _resolvePromise.then(() => entry);
+ }
+ return async (...args) => {
+ const shouldBypassCache = opts.shouldBypassCache?.(...args);
+ if (shouldBypassCache) {
+ return fn(...args);
+ }
+ const key = await (opts.getKey || getKey)(...args);
+ const shouldInvalidateCache = opts.shouldInvalidateCache?.(...args);
+ const entry = await get(
+ key,
+ () => fn(...args),
+ shouldInvalidateCache,
+ args[0] && isEvent(args[0]) ? args[0] : void 0
+ );
+ let value = entry.value;
+ if (opts.transform) {
+ value = await opts.transform(entry, ...args) || value;
+ }
+ return value;
+ };
+}
+const cachedFunction = defineCachedFunction;
+function getKey(...args) {
+ return args.length > 0 ? hash(args, {}) : "";
+}
+function escapeKey(key) {
+ return String(key).replace(/\W/g, "");
+}
+function defineCachedEventHandler(handler, opts = defaultCacheOptions) {
+ const variableHeaderNames = (opts.varies || []).filter(Boolean).map((h) => h.toLowerCase()).sort();
+ const _opts = {
+ ...opts,
+ getKey: async (event) => {
+ const customKey = await opts.getKey?.(event);
+ if (customKey) {
+ return escapeKey(customKey);
+ }
+ const _path = event.node.req.originalUrl || event.node.req.url || event.path;
+ const _pathname = escapeKey(decodeURI(parseURL(_path).pathname)).slice(0, 16) || "index";
+ const _hashedPath = `${_pathname}.${hash(_path)}`;
+ const _headers = variableHeaderNames.map((header) => [header, event.node.req.headers[header]]).map(([name, value]) => `${escapeKey(name)}.${hash(value)}`);
+ return [_hashedPath, ..._headers].join(":");
+ },
+ validate: (entry) => {
+ if (!entry.value) {
+ return false;
+ }
+ if (entry.value.code >= 400) {
+ return false;
+ }
+ if (entry.value.body === void 0) {
+ return false;
+ }
+ if (entry.value.headers.etag === "undefined" || entry.value.headers["last-modified"] === "undefined") {
+ return false;
+ }
+ return true;
+ },
+ group: opts.group || "nitro/handlers",
+ integrity: opts.integrity || hash([handler, opts])
+ };
+ const _cachedHandler = cachedFunction(
+ async (incomingEvent) => {
+ const variableHeaders = {};
+ for (const header of variableHeaderNames) {
+ variableHeaders[header] = incomingEvent.node.req.headers[header];
+ }
+ const reqProxy = cloneWithProxy(incomingEvent.node.req, {
+ headers: variableHeaders
+ });
+ const resHeaders = {};
+ let _resSendBody;
+ const resProxy = cloneWithProxy(incomingEvent.node.res, {
+ statusCode: 200,
+ writableEnded: false,
+ writableFinished: false,
+ headersSent: false,
+ closed: false,
+ getHeader(name) {
+ return resHeaders[name];
+ },
+ setHeader(name, value) {
+ resHeaders[name] = value;
+ return this;
+ },
+ getHeaderNames() {
+ return Object.keys(resHeaders);
+ },
+ hasHeader(name) {
+ return name in resHeaders;
+ },
+ removeHeader(name) {
+ delete resHeaders[name];
+ },
+ getHeaders() {
+ return resHeaders;
+ },
+ end(chunk, arg2, arg3) {
+ if (typeof chunk === "string") {
+ _resSendBody = chunk;
+ }
+ if (typeof arg2 === "function") {
+ arg2();
+ }
+ if (typeof arg3 === "function") {
+ arg3();
+ }
+ return this;
+ },
+ write(chunk, arg2, arg3) {
+ if (typeof chunk === "string") {
+ _resSendBody = chunk;
+ }
+ if (typeof arg2 === "function") {
+ arg2();
+ }
+ if (typeof arg3 === "function") {
+ arg3();
+ }
+ return this;
+ },
+ writeHead(statusCode, headers2) {
+ this.statusCode = statusCode;
+ if (headers2) {
+ for (const header in headers2) {
+ this.setHeader(header, headers2[header]);
+ }
+ }
+ return this;
+ }
+ });
+ const event = createEvent(reqProxy, resProxy);
+ event.context = incomingEvent.context;
+ const body = await handler(event) || _resSendBody;
+ const headers = event.node.res.getHeaders();
+ headers.etag = String(
+ headers.Etag || headers.etag || `W/"${hash(body)}"`
+ );
+ headers["last-modified"] = String(
+ headers["Last-Modified"] || headers["last-modified"] || (/* @__PURE__ */ new Date()).toUTCString()
+ );
+ const cacheControl = [];
+ if (opts.swr) {
+ if (opts.maxAge) {
+ cacheControl.push(`s-maxage=${opts.maxAge}`);
+ }
+ if (opts.staleMaxAge) {
+ cacheControl.push(`stale-while-revalidate=${opts.staleMaxAge}`);
+ } else {
+ cacheControl.push("stale-while-revalidate");
+ }
+ } else if (opts.maxAge) {
+ cacheControl.push(`max-age=${opts.maxAge}`);
+ }
+ if (cacheControl.length > 0) {
+ headers["cache-control"] = cacheControl.join(", ");
+ }
+ const cacheEntry = {
+ code: event.node.res.statusCode,
+ headers,
+ body
+ };
+ return cacheEntry;
+ },
+ _opts
+ );
+ return defineEventHandler(async (event) => {
+ if (opts.headersOnly) {
+ if (handleCacheHeaders(event, { maxAge: opts.maxAge })) {
+ return;
+ }
+ return handler(event);
+ }
+ const response = await _cachedHandler(event);
+ if (event.node.res.headersSent || event.node.res.writableEnded) {
+ return response.body;
+ }
+ if (handleCacheHeaders(event, {
+ modifiedTime: new Date(response.headers["last-modified"]),
+ etag: response.headers.etag,
+ maxAge: opts.maxAge
+ })) {
+ return;
+ }
+ event.node.res.statusCode = response.code;
+ for (const name in response.headers) {
+ const value = response.headers[name];
+ if (name === "set-cookie") {
+ event.node.res.appendHeader(
+ name,
+ splitCookiesString(value)
+ );
+ } else {
+ event.node.res.setHeader(name, value);
+ }
+ }
+ return response.body;
+ });
+}
+function cloneWithProxy(obj, overrides) {
+ return new Proxy(obj, {
+ get(target, property, receiver) {
+ if (property in overrides) {
+ return overrides[property];
+ }
+ return Reflect.get(target, property, receiver);
+ },
+ set(target, property, value, receiver) {
+ if (property in overrides) {
+ overrides[property] = value;
+ return true;
+ }
+ return Reflect.set(target, property, value, receiver);
+ }
+ });
+}
+const cachedEventHandler = defineCachedEventHandler;
+
+function hasReqHeader(event, name, includes) {
+ const value = getRequestHeader(event, name);
+ return value && typeof value === "string" && value.toLowerCase().includes(includes);
+}
+function isJsonRequest(event) {
+ if (hasReqHeader(event, "accept", "text/html")) {
+ return false;
+ }
+ return hasReqHeader(event, "accept", "application/json") || hasReqHeader(event, "user-agent", "curl/") || hasReqHeader(event, "user-agent", "httpie/") || hasReqHeader(event, "sec-fetch-mode", "cors") || event.path.startsWith("/api/") || event.path.endsWith(".json");
+}
+function normalizeError(error) {
+ const cwd = typeof process.cwd === "function" ? process.cwd() : "/";
+ const stack = (error.stack || "").split("\n").splice(1).filter((line) => line.includes("at ")).map((line) => {
+ const text = line.replace(cwd + "/", "./").replace("webpack:/", "").replace("file://", "").trim();
+ return {
+ text,
+ internal: line.includes("node_modules") && !line.includes(".cache") || line.includes("internal") || line.includes("new Promise")
+ };
+ });
+ const statusCode = error.statusCode || 500;
+ const statusMessage = error.statusMessage ?? (statusCode === 404 ? "Not Found" : "");
+ const message = error.message || error.toString();
+ return {
+ stack,
+ statusCode,
+ statusMessage,
+ message
+ };
+}
+function _captureError(error, type) {
+ console.error(`[nitro] [${type}]`, error);
+ useNitroApp().captureError(error, { tags: [type] });
+}
+function trapUnhandledNodeErrors() {
+ process.on(
+ "unhandledRejection",
+ (error) => _captureError(error, "unhandledRejection")
+ );
+ process.on(
+ "uncaughtException",
+ (error) => _captureError(error, "uncaughtException")
+ );
+}
+function joinHeaders(value) {
+ return Array.isArray(value) ? value.join(", ") : String(value);
+}
+function normalizeFetchResponse(response) {
+ if (!response.headers.has("set-cookie")) {
+ return response;
+ }
+ return new Response(response.body, {
+ status: response.status,
+ statusText: response.statusText,
+ headers: normalizeCookieHeaders(response.headers)
+ });
+}
+function normalizeCookieHeader(header = "") {
+ return splitCookiesString(joinHeaders(header));
+}
+function normalizeCookieHeaders(headers) {
+ const outgoingHeaders = new Headers();
+ for (const [name, header] of headers) {
+ if (name === "set-cookie") {
+ for (const cookie of normalizeCookieHeader(header)) {
+ outgoingHeaders.append("set-cookie", cookie);
+ }
+ } else {
+ outgoingHeaders.set(name, joinHeaders(header));
+ }
+ }
+ return outgoingHeaders;
+}
+
+const config = useRuntimeConfig();
+const _routeRulesMatcher = toRouteMatcher(
+ createRouter$1({ routes: config.nitro.routeRules })
+);
+function createRouteRulesHandler(ctx) {
+ return eventHandler((event) => {
+ const routeRules = getRouteRules(event);
+ if (routeRules.headers) {
+ setHeaders(event, routeRules.headers);
+ }
+ if (routeRules.redirect) {
+ return sendRedirect(
+ event,
+ routeRules.redirect.to,
+ routeRules.redirect.statusCode
+ );
+ }
+ if (routeRules.proxy) {
+ let target = routeRules.proxy.to;
+ if (target.endsWith("/**")) {
+ let targetPath = event.path;
+ const strpBase = routeRules.proxy._proxyStripBase;
+ if (strpBase) {
+ targetPath = withoutBase(targetPath, strpBase);
+ }
+ target = joinURL(target.slice(0, -3), targetPath);
+ } else if (event.path.includes("?")) {
+ const query = getQuery$1(event.path);
+ target = withQuery(target, query);
+ }
+ return proxyRequest(event, target, {
+ fetch: ctx.localFetch,
+ ...routeRules.proxy
+ });
+ }
+ });
+}
+function getRouteRules(event) {
+ event.context._nitro = event.context._nitro || {};
+ if (!event.context._nitro.routeRules) {
+ event.context._nitro.routeRules = getRouteRulesForPath(
+ withoutBase(event.path.split("?")[0], useRuntimeConfig().app.baseURL)
+ );
+ }
+ return event.context._nitro.routeRules;
+}
+function getRouteRulesForPath(path) {
+ return defu({}, ..._routeRulesMatcher.matchAll(path).reverse());
+}
+
+const plugins = [
+
+];
+
+const errorHandler = (async function errorhandler(error, event) {
+ const { stack, statusCode, statusMessage, message } = normalizeError(error);
+ const errorObject = {
+ url: event.path,
+ statusCode,
+ statusMessage,
+ message,
+ stack: "",
+ data: error.data
+ };
+ if (error.unhandled || error.fatal) {
+ const tags = [
+ "[nuxt]",
+ "[request error]",
+ error.unhandled && "[unhandled]",
+ error.fatal && "[fatal]",
+ Number(errorObject.statusCode) !== 200 && `[${errorObject.statusCode}]`
+ ].filter(Boolean).join(" ");
+ console.error(tags, errorObject.message + "\n" + stack.map((l) => " " + l.text).join(" \n"));
+ }
+ if (event.handled) {
+ return;
+ }
+ setResponseStatus(event, errorObject.statusCode !== 200 && errorObject.statusCode || 500, errorObject.statusMessage);
+ if (isJsonRequest(event)) {
+ setResponseHeader(event, "Content-Type", "application/json");
+ return send(event, JSON.stringify(errorObject));
+ }
+ const isErrorPage = event.path.startsWith("/__nuxt_error");
+ const res = !isErrorPage ? await useNitroApp().localFetch(withQuery(joinURL(useRuntimeConfig().app.baseURL, "/__nuxt_error"), errorObject), {
+ headers: getRequestHeaders(event),
+ redirect: "manual"
+ }).catch(() => null) : null;
+ if (!res) {
+ const { template } = await import('../error-500.mjs');
+ if (event.handled) {
+ return;
+ }
+ setResponseHeader(event, "Content-Type", "text/html;charset=UTF-8");
+ return send(event, template(errorObject));
+ }
+ const html = await res.text();
+ if (event.handled) {
+ return;
+ }
+ for (const [header, value] of res.headers.entries()) {
+ setResponseHeader(event, header, value);
+ }
+ setResponseStatus(event, res.status && res.status !== 200 ? res.status : void 0, res.statusText);
+ return send(event, html);
+});
+
+const assets = {
+ "/favicon.ico": {
+ "type": "image/vnd.microsoft.icon",
+ "etag": "\"8be-ny/AuTW5JYo7/wKERUbLq+/v+kI\"",
+ "mtime": "2023-12-13T02:53:54.661Z",
+ "size": 2238,
+ "path": "../public/favicon.ico"
+ },
+ "/_nuxt/add-icon.11ba1b26.svg": {
+ "type": "image/svg+xml",
+ "etag": "\"d69-duZUYoq/gIoW/hsCgAAlIfqukFo\"",
+ "mtime": "2024-01-03T10:30:57.154Z",
+ "size": 3433,
+ "path": "../public/_nuxt/add-icon.11ba1b26.svg"
+ },
+ "/_nuxt/arrow-black.9629aa90.svg": {
+ "type": "image/svg+xml",
+ "etag": "\"5ab-mUimGnxA37Y4Vok7vuE0Eo/8BmQ\"",
+ "mtime": "2024-01-03T10:30:57.154Z",
+ "size": 1451,
+ "path": "../public/_nuxt/arrow-black.9629aa90.svg"
+ },
+ "/_nuxt/arrow-gray.271dd0d3.svg": {
+ "type": "image/svg+xml",
+ "etag": "\"5a0-yAit7q5lcKJMd35iOMMifZv2uno\"",
+ "mtime": "2024-01-03T10:30:57.156Z",
+ "size": 1440,
+ "path": "../public/_nuxt/arrow-gray.271dd0d3.svg"
+ },
+ "/_nuxt/calendar-icon.dc8f3cea.svg": {
+ "type": "image/svg+xml",
+ "etag": "\"10de-7GpYtlC2JwrcocvS/s1VFTYW1Oc\"",
+ "mtime": "2024-01-03T10:30:57.154Z",
+ "size": 4318,
+ "path": "../public/_nuxt/calendar-icon.dc8f3cea.svg"
+ },
+ "/_nuxt/collect-icon-colours.6d2ade7f.svg": {
+ "type": "image/svg+xml",
+ "etag": "\"7ab-av9D1DgxgD5cvY5wd30haD7c1q0\"",
+ "mtime": "2024-01-03T10:30:57.154Z",
+ "size": 1963,
+ "path": "../public/_nuxt/collect-icon-colours.6d2ade7f.svg"
+ },
+ "/_nuxt/comment-icon-gray.2c8779f9.svg": {
+ "type": "image/svg+xml",
+ "etag": "\"816-HEGvNjvS0TeA/3uJweilvZfCqlk\"",
+ "mtime": "2024-01-03T10:30:57.154Z",
+ "size": 2070,
+ "path": "../public/_nuxt/comment-icon-gray.2c8779f9.svg"
+ },
+ "/_nuxt/comment-icon.f7b16ad3.svg": {
+ "type": "image/svg+xml",
+ "etag": "\"819-PW0BXYJ16LW06IW1vlSRDssyEjM\"",
+ "mtime": "2024-01-03T10:30:57.155Z",
+ "size": 2073,
+ "path": "../public/_nuxt/comment-icon.f7b16ad3.svg"
+ },
+ "/_nuxt/cross-icon.45090166.js": {
+ "type": "application/javascript",
+ "etag": "\"1b23b-U5Wtgg3lfDSvyUwSczw6l8qsT5c\"",
+ "mtime": "2024-01-03T10:30:57.159Z",
+ "size": 111163,
+ "path": "../public/_nuxt/cross-icon.45090166.js"
+ },
+ "/_nuxt/cross-icon.a9c3a5f3.css": {
+ "type": "text/css; charset=utf-8",
+ "etag": "\"2f18-X2LwY1zonFbAYkszX8nkwpxEDwA\"",
+ "mtime": "2024-01-03T10:30:57.157Z",
+ "size": 12056,
+ "path": "../public/_nuxt/cross-icon.a9c3a5f3.css"
+ },
+ "/_nuxt/delete-icon.a2ab9c64.svg": {
+ "type": "image/svg+xml",
+ "etag": "\"17fc-i1z5ruTbyKdk0KmaLxdHbFn0fDE\"",
+ "mtime": "2024-01-03T10:30:57.155Z",
+ "size": 6140,
+ "path": "../public/_nuxt/delete-icon.a2ab9c64.svg"
+ },
+ "/_nuxt/dot-gray.86cdd7b5.svg": {
+ "type": "image/svg+xml",
+ "etag": "\"2af-sBMsuPZbsh28jzlFWO9lVYMVDk8\"",
+ "mtime": "2024-01-03T10:30:57.154Z",
+ "size": 687,
+ "path": "../public/_nuxt/dot-gray.86cdd7b5.svg"
+ },
+ "/_nuxt/dot-yellow.4b5e135b.svg": {
+ "type": "image/svg+xml",
+ "etag": "\"2af-6L7YsWhGTHBB6NqQztB/l2OFRfE\"",
+ "mtime": "2024-01-03T10:30:57.154Z",
+ "size": 687,
+ "path": "../public/_nuxt/dot-yellow.4b5e135b.svg"
+ },
+ "/_nuxt/el-popper.7909cce2.css": {
+ "type": "text/css; charset=utf-8",
+ "etag": "\"88c-q7HKsWWqF0HepgoRAmPvps8X1hw\"",
+ "mtime": "2024-01-03T10:30:57.157Z",
+ "size": 2188,
+ "path": "../public/_nuxt/el-popper.7909cce2.css"
+ },
+ "/_nuxt/el-popper.fcf550db.js": {
+ "type": "application/javascript",
+ "etag": "\"9a64-F7rNyfXvCN7xCb1yTOuI6xwXuUg\"",
+ "mtime": "2024-01-03T10:30:57.158Z",
+ "size": 39524,
+ "path": "../public/_nuxt/el-popper.fcf550db.js"
+ },
+ "/_nuxt/empty-icon.24a01ae2.svg": {
+ "type": "image/svg+xml",
+ "etag": "\"d028-Our2UxxUiciRSduORd8JZCt5Prw\"",
+ "mtime": "2024-01-03T10:30:57.154Z",
+ "size": 53288,
+ "path": "../public/_nuxt/empty-icon.24a01ae2.svg"
+ },
+ "/_nuxt/entry.115d913a.js": {
+ "type": "application/javascript",
+ "etag": "\"24788-A59B2xMdLQM5nGvKH9Fw7jb9zr4\"",
+ "mtime": "2024-01-03T10:30:57.159Z",
+ "size": 149384,
+ "path": "../public/_nuxt/entry.115d913a.js"
+ },
+ "/_nuxt/entry.8609db93.css": {
+ "type": "text/css; charset=utf-8",
+ "etag": "\"5a8-Uxe2X56DGY9AjljhIV0OJBN3wpg\"",
+ "mtime": "2024-01-03T10:30:57.157Z",
+ "size": 1448,
+ "path": "../public/_nuxt/entry.8609db93.css"
+ },
+ "/_nuxt/error-404.447d008d.js": {
+ "type": "application/javascript",
+ "etag": "\"1913-qrb9DPNBkU8SzxRN8jCntsVoMhs\"",
+ "mtime": "2024-01-03T10:30:57.158Z",
+ "size": 6419,
+ "path": "../public/_nuxt/error-404.447d008d.js"
+ },
+ "/_nuxt/error-404.7fc72018.css": {
+ "type": "text/css; charset=utf-8",
+ "etag": "\"e2e-iNt1cqPQ0WDudfCTZVQd31BeRGs\"",
+ "mtime": "2024-01-03T10:30:57.157Z",
+ "size": 3630,
+ "path": "../public/_nuxt/error-404.7fc72018.css"
+ },
+ "/_nuxt/error-500.694510b4.js": {
+ "type": "application/javascript",
+ "etag": "\"78b-C10zDqUcUJu9KgRd7T0+RWiqFVY\"",
+ "mtime": "2024-01-03T10:30:57.158Z",
+ "size": 1931,
+ "path": "../public/_nuxt/error-500.694510b4.js"
+ },
+ "/_nuxt/error-500.c5df6088.css": {
+ "type": "text/css; charset=utf-8",
+ "etag": "\"79e-ByRo+49BgcevWdRjJy3CMx2IA5k\"",
+ "mtime": "2024-01-03T10:30:57.157Z",
+ "size": 1950,
+ "path": "../public/_nuxt/error-500.c5df6088.css"
+ },
+ "/_nuxt/eye-icon.4c304c4b.css": {
+ "type": "text/css; charset=utf-8",
+ "etag": "\"28bd-tkjEZMSc6YUqhrUtHCEXvVcT0so\"",
+ "mtime": "2024-01-03T10:30:57.157Z",
+ "size": 10429,
+ "path": "../public/_nuxt/eye-icon.4c304c4b.css"
+ },
+ "/_nuxt/eye-icon.d6b90277.js": {
+ "type": "application/javascript",
+ "etag": "\"54f5-sJ5x4hKvsZFl3HRfdHf3UHc8zvQ\"",
+ "mtime": "2024-01-03T10:30:57.158Z",
+ "size": 21749,
+ "path": "../public/_nuxt/eye-icon.d6b90277.js"
+ },
+ "/_nuxt/eye-icon.efcf8c6f.svg": {
+ "type": "image/svg+xml",
+ "etag": "\"f39-QCU0maVN6PY9o1JtSXoWOGORq7k\"",
+ "mtime": "2024-01-03T10:30:57.153Z",
+ "size": 3897,
+ "path": "../public/_nuxt/eye-icon.efcf8c6f.svg"
+ },
+ "/_nuxt/frame-no.28983b22.svg": {
+ "type": "image/svg+xml",
+ "etag": "\"480-EKwGi4QYQkg109aJtnbD+fV8Klg\"",
+ "mtime": "2024-01-03T10:30:57.154Z",
+ "size": 1152,
+ "path": "../public/_nuxt/frame-no.28983b22.svg"
+ },
+ "/_nuxt/frame-pitch.02620f32.svg": {
+ "type": "image/svg+xml",
+ "etag": "\"52f-YILNP2Fxjqbxv0F3c/ve1Wp95qE\"",
+ "mtime": "2024-01-03T10:30:57.154Z",
+ "size": 1327,
+ "path": "../public/_nuxt/frame-pitch.02620f32.svg"
+ },
+ "/_nuxt/index.07256c26.js": {
+ "type": "application/javascript",
+ "etag": "\"221d-EYQfa614iKXJYcOSkCDBtz1aKV4\"",
+ "mtime": "2024-01-03T10:30:57.158Z",
+ "size": 8733,
+ "path": "../public/_nuxt/index.07256c26.js"
+ },
+ "/_nuxt/index.0b1f8d4c.css": {
+ "type": "text/css; charset=utf-8",
+ "etag": "\"ea58-zX0OiDzxHjTyQUVCGcSTjjdj5tI\"",
+ "mtime": "2024-01-03T10:30:57.157Z",
+ "size": 59992,
+ "path": "../public/_nuxt/index.0b1f8d4c.css"
+ },
+ "/_nuxt/index.bda1eb97.css": {
+ "type": "text/css; charset=utf-8",
+ "etag": "\"b05-OKCz6xH55LzpgDNRe3cw9rU7FvU\"",
+ "mtime": "2024-01-03T10:30:57.157Z",
+ "size": 2821,
+ "path": "../public/_nuxt/index.bda1eb97.css"
+ },
+ "/_nuxt/index.c68e61d2.js": {
+ "type": "application/javascript",
+ "etag": "\"23537-vxGQFusj9YxDtOY4etcZSPMXUXw\"",
+ "mtime": "2024-01-03T10:30:57.159Z",
+ "size": 144695,
+ "path": "../public/_nuxt/index.c68e61d2.js"
+ },
+ "/_nuxt/index.c8a98951.js": {
+ "type": "application/javascript",
+ "etag": "\"8f-dGEBq6XKfrJJbBl+lbBkHex5W2Y\"",
+ "mtime": "2024-01-03T10:30:57.157Z",
+ "size": 143,
+ "path": "../public/_nuxt/index.c8a98951.js"
+ },
+ "/_nuxt/item-bj.0d22947a.svg": {
+ "type": "image/svg+xml",
+ "etag": "\"3d7-dIcqtJMy6cC9svK+dEBLPfovQwM\"",
+ "mtime": "2024-01-03T10:30:57.154Z",
+ "size": 983,
+ "path": "../public/_nuxt/item-bj.0d22947a.svg"
+ },
+ "/_nuxt/like-no.23054eaf.svg": {
+ "type": "image/svg+xml",
+ "etag": "\"9fd-c4VosqDtp2PHBW0jJzEl1nYadIE\"",
+ "mtime": "2024-01-03T10:30:57.154Z",
+ "size": 2557,
+ "path": "../public/_nuxt/like-no.23054eaf.svg"
+ },
+ "/_nuxt/logo-icon.b6345ffb.png": {
+ "type": "image/png",
+ "etag": "\"873a-OTH/h653HLUhRYOH8opOgbwEiyY\"",
+ "mtime": "2024-01-03T10:30:57.154Z",
+ "size": 34618,
+ "path": "../public/_nuxt/logo-icon.b6345ffb.png"
+ },
+ "/_nuxt/masonry.c851f679.js": {
+ "type": "application/javascript",
+ "etag": "\"5925-+CGR/dcHEcrIpoFv1hhJFPUMs/0\"",
+ "mtime": "2024-01-03T10:30:57.157Z",
+ "size": 22821,
+ "path": "../public/_nuxt/masonry.c851f679.js"
+ },
+ "/_nuxt/menu-icon-gray.d61f02b1.svg": {
+ "type": "image/svg+xml",
+ "etag": "\"6de-kmXhltPHfF4W1gmV7wT4aZCZ6gg\"",
+ "mtime": "2024-01-03T10:30:57.154Z",
+ "size": 1758,
+ "path": "../public/_nuxt/menu-icon-gray.d61f02b1.svg"
+ },
+ "/_nuxt/QR-code-icon.a546cc6a.svg": {
+ "type": "image/svg+xml",
+ "etag": "\"9bd-ImV+qFyLa7hJs/2PJyqggYBfPNw\"",
+ "mtime": "2024-01-03T10:30:57.154Z",
+ "size": 2493,
+ "path": "../public/_nuxt/QR-code-icon.a546cc6a.svg"
+ },
+ "/_nuxt/tick-green.2df56f28.svg": {
+ "type": "image/svg+xml",
+ "etag": "\"608-urxwjzCBJZRmYN0dWUHVWuRnvs8\"",
+ "mtime": "2024-01-03T10:30:57.157Z",
+ "size": 1544,
+ "path": "../public/_nuxt/tick-green.2df56f28.svg"
+ },
+ "/_nuxt/time-icon.fef65a83.svg": {
+ "type": "image/svg+xml",
+ "etag": "\"9c8-FBZvkJIJ1KnFwwu84cF+Jq4O4Yk\"",
+ "mtime": "2024-01-03T10:30:57.154Z",
+ "size": 2504,
+ "path": "../public/_nuxt/time-icon.fef65a83.svg"
+ },
+ "/_nuxt/time-white-icon.805d0e12.svg": {
+ "type": "image/svg+xml",
+ "etag": "\"9c8-4/hVTUPF2p1SNwSaFoj2p+3S4qo\"",
+ "mtime": "2024-01-03T10:30:57.155Z",
+ "size": 2504,
+ "path": "../public/_nuxt/time-white-icon.805d0e12.svg"
+ },
+ "/_nuxt/_id_.5def5bfc.js": {
+ "type": "application/javascript",
+ "etag": "\"c56e-zt9f8dwjBPpmwVinXgvpDNp+1JY\"",
+ "mtime": "2024-01-03T10:30:57.158Z",
+ "size": 50542,
+ "path": "../public/_nuxt/_id_.5def5bfc.js"
+ },
+ "/_nuxt/_id_.dcb3d85d.css": {
+ "type": "text/css; charset=utf-8",
+ "etag": "\"58c2-3E3Z1s1iDLVhM3LfzVSU+GzWCjs\"",
+ "mtime": "2024-01-03T10:30:57.157Z",
+ "size": 22722,
+ "path": "../public/_nuxt/_id_.dcb3d85d.css"
+ },
+ "/_nuxt/_plugin-vue_export-helper.5ffd2309.js": {
+ "type": "application/javascript",
+ "etag": "\"1df-puj697KZkZROcFWvLrqjAeZRyzg\"",
+ "mtime": "2024-01-03T10:30:57.157Z",
+ "size": 479,
+ "path": "../public/_nuxt/_plugin-vue_export-helper.5ffd2309.js"
+ },
+ "/_nuxt/builds/latest.json": {
+ "type": "application/json",
+ "etag": "\"47-H7Ade0yb8CatuJe0STf1zCYA9lc\"",
+ "mtime": "2024-01-03T10:31:02.855Z",
+ "size": 71,
+ "path": "../public/_nuxt/builds/latest.json"
+ },
+ "/_nuxt/builds/meta/a486118d-90ff-405f-a6ff-ab1b0c0ca2eb.json": {
+ "type": "application/json",
+ "etag": "\"8b-yrN38tFXC2N2m/T1wScwpjKc+q8\"",
+ "mtime": "2024-01-03T10:31:02.855Z",
+ "size": 139,
+ "path": "../public/_nuxt/builds/meta/a486118d-90ff-405f-a6ff-ab1b0c0ca2eb.json"
+ }
+};
+
+function normalizeWindowsPath(input = "") {
+ if (!input || !input.includes("\\")) {
+ return input;
+ }
+ return input.replace(/\\/g, "/");
+}
+const _IS_ABSOLUTE_RE = /^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/;
+const _DRIVE_LETTER_RE = /^[A-Za-z]:$/;
+function cwd() {
+ if (typeof process !== "undefined") {
+ return process.cwd().replace(/\\/g, "/");
+ }
+ return "/";
+}
+const resolve = function(...arguments_) {
+ arguments_ = arguments_.map((argument) => normalizeWindowsPath(argument));
+ let resolvedPath = "";
+ let resolvedAbsolute = false;
+ for (let index = arguments_.length - 1; index >= -1 && !resolvedAbsolute; index--) {
+ const path = index >= 0 ? arguments_[index] : cwd();
+ if (!path || path.length === 0) {
+ continue;
+ }
+ resolvedPath = `${path}/${resolvedPath}`;
+ resolvedAbsolute = isAbsolute(path);
+ }
+ resolvedPath = normalizeString(resolvedPath, !resolvedAbsolute);
+ if (resolvedAbsolute && !isAbsolute(resolvedPath)) {
+ return `/${resolvedPath}`;
+ }
+ return resolvedPath.length > 0 ? resolvedPath : ".";
+};
+function normalizeString(path, allowAboveRoot) {
+ let res = "";
+ let lastSegmentLength = 0;
+ let lastSlash = -1;
+ let dots = 0;
+ let char = null;
+ for (let index = 0; index <= path.length; ++index) {
+ if (index < path.length) {
+ char = path[index];
+ } else if (char === "/") {
+ break;
+ } else {
+ char = "/";
+ }
+ if (char === "/") {
+ if (lastSlash === index - 1 || dots === 1) ; else if (dots === 2) {
+ if (res.length < 2 || lastSegmentLength !== 2 || res[res.length - 1] !== "." || res[res.length - 2] !== ".") {
+ if (res.length > 2) {
+ const lastSlashIndex = res.lastIndexOf("/");
+ if (lastSlashIndex === -1) {
+ res = "";
+ lastSegmentLength = 0;
+ } else {
+ res = res.slice(0, lastSlashIndex);
+ lastSegmentLength = res.length - 1 - res.lastIndexOf("/");
+ }
+ lastSlash = index;
+ dots = 0;
+ continue;
+ } else if (res.length > 0) {
+ res = "";
+ lastSegmentLength = 0;
+ lastSlash = index;
+ dots = 0;
+ continue;
+ }
+ }
+ if (allowAboveRoot) {
+ res += res.length > 0 ? "/.." : "..";
+ lastSegmentLength = 2;
+ }
+ } else {
+ if (res.length > 0) {
+ res += `/${path.slice(lastSlash + 1, index)}`;
+ } else {
+ res = path.slice(lastSlash + 1, index);
+ }
+ lastSegmentLength = index - lastSlash - 1;
+ }
+ lastSlash = index;
+ dots = 0;
+ } else if (char === "." && dots !== -1) {
+ ++dots;
+ } else {
+ dots = -1;
+ }
+ }
+ return res;
+}
+const isAbsolute = function(p) {
+ return _IS_ABSOLUTE_RE.test(p);
+};
+const dirname = function(p) {
+ const segments = normalizeWindowsPath(p).replace(/\/$/, "").split("/").slice(0, -1);
+ if (segments.length === 1 && _DRIVE_LETTER_RE.test(segments[0])) {
+ segments[0] += "/";
+ }
+ return segments.join("/") || (isAbsolute(p) ? "/" : ".");
+};
+
+function readAsset (id) {
+ const serverDir = dirname(fileURLToPath(globalThis._importMeta_.url));
+ return promises$1.readFile(resolve(serverDir, assets[id].path))
+}
+
+const publicAssetBases = {"/_nuxt/builds/meta":{"maxAge":31536000},"/_nuxt/builds":{"maxAge":1},"/_nuxt":{"maxAge":31536000}};
+
+function isPublicAssetURL(id = '') {
+ if (assets[id]) {
+ return true
+ }
+ for (const base in publicAssetBases) {
+ if (id.startsWith(base)) { return true }
+ }
+ return false
+}
+
+function getAsset (id) {
+ return assets[id]
+}
+
+const METHODS = /* @__PURE__ */ new Set(["HEAD", "GET"]);
+const EncodingMap = { gzip: ".gz", br: ".br" };
+const _f4b49z = eventHandler((event) => {
+ if (event.method && !METHODS.has(event.method)) {
+ return;
+ }
+ let id = decodePath(
+ withLeadingSlash(withoutTrailingSlash(parseURL(event.path).pathname))
+ );
+ let asset;
+ const encodingHeader = String(
+ getRequestHeader(event, "accept-encoding") || ""
+ );
+ const encodings = [
+ ...encodingHeader.split(",").map((e) => EncodingMap[e.trim()]).filter(Boolean).sort(),
+ ""
+ ];
+ if (encodings.length > 1) {
+ setResponseHeader(event, "Vary", "Accept-Encoding");
+ }
+ for (const encoding of encodings) {
+ for (const _id of [id + encoding, joinURL(id, "index.html" + encoding)]) {
+ const _asset = getAsset(_id);
+ if (_asset) {
+ asset = _asset;
+ id = _id;
+ break;
+ }
+ }
+ }
+ if (!asset) {
+ if (isPublicAssetURL(id)) {
+ removeResponseHeader(event, "Cache-Control");
+ throw createError$1({
+ statusMessage: "Cannot find static asset " + id,
+ statusCode: 404
+ });
+ }
+ return;
+ }
+ const ifNotMatch = getRequestHeader(event, "if-none-match") === asset.etag;
+ if (ifNotMatch) {
+ setResponseStatus(event, 304, "Not Modified");
+ return "";
+ }
+ const ifModifiedSinceH = getRequestHeader(event, "if-modified-since");
+ const mtimeDate = new Date(asset.mtime);
+ if (ifModifiedSinceH && asset.mtime && new Date(ifModifiedSinceH) >= mtimeDate) {
+ setResponseStatus(event, 304, "Not Modified");
+ return "";
+ }
+ if (asset.type && !getResponseHeader(event, "Content-Type")) {
+ setResponseHeader(event, "Content-Type", asset.type);
+ }
+ if (asset.etag && !getResponseHeader(event, "ETag")) {
+ setResponseHeader(event, "ETag", asset.etag);
+ }
+ if (asset.mtime && !getResponseHeader(event, "Last-Modified")) {
+ setResponseHeader(event, "Last-Modified", mtimeDate.toUTCString());
+ }
+ if (asset.encoding && !getResponseHeader(event, "Content-Encoding")) {
+ setResponseHeader(event, "Content-Encoding", asset.encoding);
+ }
+ if (asset.size > 0 && !getResponseHeader(event, "Content-Length")) {
+ setResponseHeader(event, "Content-Length", asset.size);
+ }
+ return readAsset(id);
+});
+
+const _lazy_EL7iRl = () => import('../handlers/renderer.mjs').then(function (n) { return n.r; });
+
+const handlers = [
+ { route: '', handler: _f4b49z, lazy: false, middleware: true, method: undefined },
+ { route: '/__nuxt_error', handler: _lazy_EL7iRl, lazy: true, middleware: false, method: undefined },
+ { route: '/**', handler: _lazy_EL7iRl, lazy: true, middleware: false, method: undefined }
+];
+
+function createNitroApp() {
+ const config = useRuntimeConfig();
+ const hooks = createHooks();
+ const captureError = (error, context = {}) => {
+ const promise = hooks.callHookParallel("error", error, context).catch((_err) => {
+ console.error("Error while capturing another error", _err);
+ });
+ if (context.event && isEvent(context.event)) {
+ const errors = context.event.context.nitro?.errors;
+ if (errors) {
+ errors.push({ error, context });
+ }
+ if (context.event.waitUntil) {
+ context.event.waitUntil(promise);
+ }
+ }
+ };
+ const h3App = createApp({
+ debug: destr(false),
+ onError: (error, event) => {
+ captureError(error, { event, tags: ["request"] });
+ return errorHandler(error, event);
+ },
+ onRequest: async (event) => {
+ await nitroApp.hooks.callHook("request", event).catch((error) => {
+ captureError(error, { event, tags: ["request"] });
+ });
+ },
+ onBeforeResponse: async (event, response) => {
+ await nitroApp.hooks.callHook("beforeResponse", event, response).catch((error) => {
+ captureError(error, { event, tags: ["request", "response"] });
+ });
+ },
+ onAfterResponse: async (event, response) => {
+ await nitroApp.hooks.callHook("afterResponse", event, response).catch((error) => {
+ captureError(error, { event, tags: ["request", "response"] });
+ });
+ }
+ });
+ const router = createRouter({
+ preemptive: true
+ });
+ const localCall = createCall(toNodeListener(h3App));
+ const _localFetch = createFetch(localCall, globalThis.fetch);
+ const localFetch = (input, init) => _localFetch(input, init).then(
+ (response) => normalizeFetchResponse(response)
+ );
+ const $fetch = createFetch$1({
+ fetch: localFetch,
+ Headers: Headers$1,
+ defaults: { baseURL: config.app.baseURL }
+ });
+ globalThis.$fetch = $fetch;
+ h3App.use(createRouteRulesHandler({ localFetch }));
+ h3App.use(
+ eventHandler((event) => {
+ event.context.nitro = event.context.nitro || { errors: [] };
+ const envContext = event.node.req?.__unenv__;
+ if (envContext) {
+ Object.assign(event.context, envContext);
+ }
+ event.fetch = (req, init) => fetchWithEvent(event, req, init, { fetch: localFetch });
+ event.$fetch = (req, init) => fetchWithEvent(event, req, init, {
+ fetch: $fetch
+ });
+ event.waitUntil = (promise) => {
+ if (!event.context.nitro._waitUntilPromises) {
+ event.context.nitro._waitUntilPromises = [];
+ }
+ event.context.nitro._waitUntilPromises.push(promise);
+ if (envContext?.waitUntil) {
+ envContext.waitUntil(promise);
+ }
+ };
+ event.captureError = (error, context) => {
+ captureError(error, { event, ...context });
+ };
+ })
+ );
+ for (const h of handlers) {
+ let handler = h.lazy ? lazyEventHandler(h.handler) : h.handler;
+ if (h.middleware || !h.route) {
+ const middlewareBase = (config.app.baseURL + (h.route || "/")).replace(
+ /\/+/g,
+ "/"
+ );
+ h3App.use(middlewareBase, handler);
+ } else {
+ const routeRules = getRouteRulesForPath(
+ h.route.replace(/:\w+|\*\*/g, "_")
+ );
+ if (routeRules.cache) {
+ handler = cachedEventHandler(handler, {
+ group: "nitro/routes",
+ ...routeRules.cache
+ });
+ }
+ router.use(h.route, handler, h.method);
+ }
+ }
+ h3App.use(config.app.baseURL, router.handler);
+ const app = {
+ hooks,
+ h3App,
+ router,
+ localCall,
+ localFetch,
+ captureError
+ };
+ for (const plugin of plugins) {
+ try {
+ plugin(app);
+ } catch (err) {
+ captureError(err, { tags: ["plugin"] });
+ throw err;
+ }
+ }
+ return app;
+}
+const nitroApp = createNitroApp();
+const useNitroApp = () => nitroApp;
+
+const debug = (...args) => {
+};
+function GracefulShutdown(server, opts) {
+ opts = opts || {};
+ const options = Object.assign(
+ {
+ signals: "SIGINT SIGTERM",
+ timeout: 3e4,
+ development: false,
+ forceExit: true,
+ onShutdown: (signal) => Promise.resolve(signal),
+ preShutdown: (signal) => Promise.resolve(signal)
+ },
+ opts
+ );
+ let isShuttingDown = false;
+ const connections = {};
+ let connectionCounter = 0;
+ const secureConnections = {};
+ let secureConnectionCounter = 0;
+ let failed = false;
+ let finalRun = false;
+ function onceFactory() {
+ let called = false;
+ return (emitter, events, callback) => {
+ function call() {
+ if (!called) {
+ called = true;
+ return Reflect.apply(callback, this, arguments);
+ }
+ }
+ for (const e of events) {
+ emitter.on(e, call);
+ }
+ };
+ }
+ const signals = options.signals.split(" ").map((s) => s.trim()).filter((s) => s.length > 0);
+ const once = onceFactory();
+ once(process, signals, (signal) => {
+ shutdown(signal).then(() => {
+ if (options.forceExit) {
+ process.exit(failed ? 1 : 0);
+ }
+ }).catch((err) => {
+ process.exit(1);
+ });
+ });
+ function isFunction(functionToCheck) {
+ const getType = Object.prototype.toString.call(functionToCheck);
+ return /^\[object\s([A-Za-z]+)?Function]$/.test(getType);
+ }
+ function destroy(socket, force = false) {
+ if (socket._isIdle && isShuttingDown || force) {
+ socket.destroy();
+ if (socket.server instanceof http.Server) {
+ delete connections[socket._connectionId];
+ } else {
+ delete secureConnections[socket._connectionId];
+ }
+ }
+ }
+ function destroyAllConnections(force = false) {
+ for (const key of Object.keys(connections)) {
+ const socket = connections[key];
+ const serverResponse = socket._httpMessage;
+ if (serverResponse && !force) {
+ if (!serverResponse.headersSent) {
+ serverResponse.setHeader("connection", "close");
+ }
+ } else {
+ destroy(socket);
+ }
+ }
+ for (const key of Object.keys(secureConnections)) {
+ const socket = secureConnections[key];
+ const serverResponse = socket._httpMessage;
+ if (serverResponse && !force) {
+ if (!serverResponse.headersSent) {
+ serverResponse.setHeader("connection", "close");
+ }
+ } else {
+ destroy(socket);
+ }
+ }
+ }
+ server.on("request", function(req, res) {
+ req.socket._isIdle = false;
+ if (isShuttingDown && !res.headersSent) {
+ res.setHeader("connection", "close");
+ }
+ res.on("finish", function() {
+ req.socket._isIdle = true;
+ destroy(req.socket);
+ });
+ });
+ server.on("connection", function(socket) {
+ if (isShuttingDown) {
+ socket.destroy();
+ } else {
+ const id = connectionCounter++;
+ socket._isIdle = true;
+ socket._connectionId = id;
+ connections[id] = socket;
+ socket.once("close", () => {
+ delete connections[socket._connectionId];
+ });
+ }
+ });
+ server.on("secureConnection", (socket) => {
+ if (isShuttingDown) {
+ socket.destroy();
+ } else {
+ const id = secureConnectionCounter++;
+ socket._isIdle = true;
+ socket._connectionId = id;
+ secureConnections[id] = socket;
+ socket.once("close", () => {
+ delete secureConnections[socket._connectionId];
+ });
+ }
+ });
+ process.on("close", function() {
+ });
+ function shutdown(sig) {
+ function cleanupHttp() {
+ destroyAllConnections();
+ return new Promise((resolve, reject) => {
+ server.close((err) => {
+ if (err) {
+ return reject(err);
+ }
+ return resolve(true);
+ });
+ });
+ }
+ if (options.development) {
+ return process.exit(0);
+ }
+ function finalHandler() {
+ if (!finalRun) {
+ finalRun = true;
+ if (options.finally && isFunction(options.finally)) {
+ options.finally();
+ }
+ }
+ return Promise.resolve();
+ }
+ function waitForReadyToShutDown(totalNumInterval) {
+ if (totalNumInterval === 0) {
+ debug(
+ `Could not close connections in time (${options.timeout}ms), will forcefully shut down`
+ );
+ return Promise.resolve(true);
+ }
+ const allConnectionsClosed = Object.keys(connections).length === 0 && Object.keys(secureConnections).length === 0;
+ if (allConnectionsClosed) {
+ return Promise.resolve(false);
+ }
+ return new Promise((resolve) => {
+ setTimeout(() => {
+ resolve(waitForReadyToShutDown(totalNumInterval - 1));
+ }, 250);
+ });
+ }
+ if (isShuttingDown) {
+ return Promise.resolve();
+ }
+ return options.preShutdown(sig).then(() => {
+ isShuttingDown = true;
+ cleanupHttp();
+ }).then(() => {
+ const pollIterations = options.timeout ? Math.round(options.timeout / 250) : 0;
+ return waitForReadyToShutDown(pollIterations);
+ }).then((force) => {
+ if (force) {
+ destroyAllConnections(force);
+ }
+ return options.onShutdown(sig);
+ }).then(finalHandler).catch((err) => {
+ const errString = typeof err === "string" ? err : JSON.stringify(err);
+ failed = true;
+ throw errString;
+ });
+ }
+ function shutdownManual() {
+ return shutdown("manual");
+ }
+ return shutdownManual;
+}
+
+function getGracefulShutdownConfig() {
+ return {
+ disabled: !!process.env.NITRO_SHUTDOWN_DISABLED,
+ signals: (process.env.NITRO_SHUTDOWN_SIGNALS || "SIGTERM SIGINT").split(" ").map((s) => s.trim()),
+ timeout: Number.parseInt(process.env.NITRO_SHUTDOWN_TIMEOUT, 10) || 3e4,
+ forceExit: !process.env.NITRO_SHUTDOWN_NO_FORCE_EXIT
+ };
+}
+function setupGracefulShutdown(listener, nitroApp) {
+ const shutdownConfig = getGracefulShutdownConfig();
+ if (shutdownConfig.disabled) {
+ return;
+ }
+ GracefulShutdown(listener, {
+ signals: shutdownConfig.signals.join(" "),
+ timeout: shutdownConfig.timeout,
+ forceExit: shutdownConfig.forceExit,
+ onShutdown: async () => {
+ await new Promise((resolve) => {
+ const timeout = setTimeout(() => {
+ console.warn("Graceful shutdown timeout, force exiting...");
+ resolve();
+ }, shutdownConfig.timeout);
+ nitroApp.hooks.callHook("close").catch((err) => {
+ console.error(err);
+ }).finally(() => {
+ clearTimeout(timeout);
+ resolve();
+ });
+ });
+ }
+ });
+}
+
+const cert = process.env.NITRO_SSL_CERT;
+const key = process.env.NITRO_SSL_KEY;
+const server = cert && key ? new Server({ key, cert }, toNodeListener(nitroApp.h3App)) : new Server$1(toNodeListener(nitroApp.h3App));
+const port = destr(process.env.NITRO_PORT || process.env.PORT) || 3e3;
+const host = process.env.NITRO_HOST || process.env.HOST;
+const path = process.env.NITRO_UNIX_SOCKET;
+const listener = server.listen(path ? { path } : { port, host }, (err) => {
+ if (err) {
+ console.error(err);
+ process.exit(1);
+ }
+ const protocol = cert && key ? "https" : "http";
+ const addressInfo = listener.address();
+ if (typeof addressInfo === "string") {
+ console.log(`Listening on unix socket ${addressInfo}`);
+ return;
+ }
+ const baseURL = (useRuntimeConfig().app.baseURL || "").replace(/\/$/, "");
+ const url = `${protocol}://${addressInfo.family === "IPv6" ? `[${addressInfo.address}]` : addressInfo.address}:${addressInfo.port}${baseURL}`;
+ console.log(`Listening on ${url}`);
+});
+trapUnhandledNodeErrors();
+setupGracefulShutdown(listener, nitroApp);
+const nodeServer = {};
+
+export { $fetch as $, send as a, setResponseStatus as b, setResponseHeaders as c, useRuntimeConfig as d, eventHandler as e, getQuery as f, getResponseStatus as g, createError$1 as h, getRouteRules as i, joinURL as j, getResponseStatusText as k, hasProtocol as l, isScriptProtocol as m, sanitizeStatusCode as n, createHooks as o, parseURL as p, parseQuery as q, withTrailingSlash as r, setResponseHeader as s, withoutTrailingSlash as t, useNitroApp as u, nodeServer as v, withQuery as w };
+//# sourceMappingURL=node-server.mjs.map
diff --git a/.output/server/chunks/nitro/node-server.mjs.map b/.output/server/chunks/nitro/node-server.mjs.map
new file mode 100644
index 0000000..888b2ec
--- /dev/null
+++ b/.output/server/chunks/nitro/node-server.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"node-server.mjs","sources":["../../../../node_modules/destr/dist/index.mjs","../../../../node_modules/ufo/dist/index.mjs","../../../../node_modules/radix3/dist/index.mjs","../../../../node_modules/defu/dist/defu.mjs","../../../../node_modules/unenv/runtime/_internal/utils.mjs","../../../../node_modules/unenv/runtime/node/events/_events.mjs","../../../../node_modules/unenv/runtime/node/events/index.mjs","../../../../node_modules/unenv/runtime/node/stream/readable.mjs","../../../../node_modules/unenv/runtime/node/stream/writable.mjs","../../../../node_modules/unenv/runtime/node/stream/duplex.mjs","../../../../node_modules/unenv/runtime/node/net/socket.mjs","../../../../node_modules/unenv/runtime/node/http/_request.mjs","../../../../node_modules/unenv/runtime/node/http/_response.mjs","../../../../node_modules/h3/dist/index.mjs","../../../../node_modules/node-fetch-native/dist/native.mjs","../../../../node_modules/ofetch/dist/shared/ofetch.00501375.mjs","../../../../node_modules/ofetch/dist/node.mjs","../../../../node_modules/unenv/runtime/fetch/call.mjs","../../../../node_modules/unenv/runtime/fetch/index.mjs","../../../../node_modules/hookable/dist/index.mjs","../../../../node_modules/scule/dist/index.mjs","../../../../node_modules/klona/dist/index.mjs","../../../../node_modules/nitropack/dist/runtime/config.mjs","../../../../node_modules/ohash/dist/index.mjs","../../../../node_modules/unstorage/dist/shared/unstorage.8581f561.mjs","../../../../node_modules/unstorage/dist/index.mjs","../../../../node_modules/unstorage/drivers/utils/index.mjs","../../../../node_modules/unstorage/drivers/utils/node-fs.mjs","../../../../node_modules/unstorage/drivers/fs-lite.mjs","../../../../node_modules/nitropack/dist/runtime/storage.mjs","../../../../node_modules/nitropack/dist/runtime/cache.mjs","../../../../node_modules/nitropack/dist/runtime/utils.mjs","../../../../node_modules/nitropack/dist/runtime/route-rules.mjs","../../../../node_modules/nuxt/dist/core/runtime/nitro/error.js","../../../../node_modules/pathe/dist/shared/pathe.92c04245.mjs","../../../../node_modules/nitropack/dist/runtime/static.mjs","../../../../node_modules/nitropack/dist/runtime/app.mjs","../../../../node_modules/nitropack/dist/runtime/lib/http-graceful-shutdown.mjs","../../../../node_modules/nitropack/dist/runtime/shutdown.mjs","../../../../node_modules/nitropack/dist/runtime/entries/node-server.mjs"],"sourcesContent":null,"names":["getQuery","createRouter","EventEmitter","_EventEmitter","createError","nullBodyResponses","createFetch","nodeFetch","Headers","Headers$1","AbortController$1","_inlineAppConfig","normalizeKey","defineDriver","DRIVER_NAME","dirname","fsPromises","resolve","fsp","createRadixRouter","createLocalFetch","gracefulShutdown","HttpsServer","HttpServer"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39]}
\ No newline at end of file
diff --git a/.output/server/chunks/rollup/_virtual_spa-template.mjs b/.output/server/chunks/rollup/_virtual_spa-template.mjs
new file mode 100644
index 0000000..7ade71c
--- /dev/null
+++ b/.output/server/chunks/rollup/_virtual_spa-template.mjs
@@ -0,0 +1,4 @@
+const template = "";
+
+export { template };
+//# sourceMappingURL=_virtual_spa-template.mjs.map
diff --git a/.output/server/chunks/rollup/_virtual_spa-template.mjs.map b/.output/server/chunks/rollup/_virtual_spa-template.mjs.map
new file mode 100644
index 0000000..4ab708b
--- /dev/null
+++ b/.output/server/chunks/rollup/_virtual_spa-template.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"_virtual_spa-template.mjs","sources":[],"sourcesContent":null,"names":[],"mappings":";;;;"}
\ No newline at end of file
diff --git a/.output/server/index.mjs b/.output/server/index.mjs
new file mode 100644
index 0000000..266fec6
--- /dev/null
+++ b/.output/server/index.mjs
@@ -0,0 +1,8 @@
+globalThis._importMeta_={url:import.meta.url,env:process.env};import 'node:http';
+import 'node:https';
+export { v as default } from './chunks/nitro/node-server.mjs';
+import 'fs';
+import 'path';
+import 'node:fs';
+import 'node:url';
+//# sourceMappingURL=index.mjs.map
diff --git a/.output/server/index.mjs.map b/.output/server/index.mjs.map
new file mode 100644
index 0000000..52e8828
--- /dev/null
+++ b/.output/server/index.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.mjs","sources":[],"sourcesContent":null,"names":[],"mappings":";;;;;;"}
\ No newline at end of file
diff --git a/.output/server/node_modules/@babel/parser/lib/index.js b/.output/server/node_modules/@babel/parser/lib/index.js
new file mode 100644
index 0000000..68ee00c
--- /dev/null
+++ b/.output/server/node_modules/@babel/parser/lib/index.js
@@ -0,0 +1,14460 @@
+'use strict';
+
+Object.defineProperty(exports, '__esModule', {
+ value: true
+});
+function _objectWithoutPropertiesLoose(source, excluded) {
+ if (source == null) return {};
+ var target = {};
+ var sourceKeys = Object.keys(source);
+ var key, i;
+ for (i = 0; i < sourceKeys.length; i++) {
+ key = sourceKeys[i];
+ if (excluded.indexOf(key) >= 0) continue;
+ target[key] = source[key];
+ }
+ return target;
+}
+class Position {
+ constructor(line, col, index) {
+ this.line = void 0;
+ this.column = void 0;
+ this.index = void 0;
+ this.line = line;
+ this.column = col;
+ this.index = index;
+ }
+}
+class SourceLocation {
+ constructor(start, end) {
+ this.start = void 0;
+ this.end = void 0;
+ this.filename = void 0;
+ this.identifierName = void 0;
+ this.start = start;
+ this.end = end;
+ }
+}
+function createPositionWithColumnOffset(position, columnOffset) {
+ const {
+ line,
+ column,
+ index
+ } = position;
+ return new Position(line, column + columnOffset, index + columnOffset);
+}
+const code = "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED";
+var ModuleErrors = {
+ ImportMetaOutsideModule: {
+ message: `import.meta may appear only with 'sourceType: "module"'`,
+ code
+ },
+ ImportOutsideModule: {
+ message: `'import' and 'export' may appear only with 'sourceType: "module"'`,
+ code
+ }
+};
+const NodeDescriptions = {
+ ArrayPattern: "array destructuring pattern",
+ AssignmentExpression: "assignment expression",
+ AssignmentPattern: "assignment expression",
+ ArrowFunctionExpression: "arrow function expression",
+ ConditionalExpression: "conditional expression",
+ CatchClause: "catch clause",
+ ForOfStatement: "for-of statement",
+ ForInStatement: "for-in statement",
+ ForStatement: "for-loop",
+ FormalParameters: "function parameter list",
+ Identifier: "identifier",
+ ImportSpecifier: "import specifier",
+ ImportDefaultSpecifier: "import default specifier",
+ ImportNamespaceSpecifier: "import namespace specifier",
+ ObjectPattern: "object destructuring pattern",
+ ParenthesizedExpression: "parenthesized expression",
+ RestElement: "rest element",
+ UpdateExpression: {
+ true: "prefix operation",
+ false: "postfix operation"
+ },
+ VariableDeclarator: "variable declaration",
+ YieldExpression: "yield expression"
+};
+const toNodeDescription = ({
+ type,
+ prefix
+}) => type === "UpdateExpression" ? NodeDescriptions.UpdateExpression[String(prefix)] : NodeDescriptions[type];
+var StandardErrors = {
+ AccessorIsGenerator: ({
+ kind
+ }) => `A ${kind}ter cannot be a generator.`,
+ ArgumentsInClass: "'arguments' is only allowed in functions and class methods.",
+ AsyncFunctionInSingleStatementContext: "Async functions can only be declared at the top level or inside a block.",
+ AwaitBindingIdentifier: "Can not use 'await' as identifier inside an async function.",
+ AwaitBindingIdentifierInStaticBlock: "Can not use 'await' as identifier inside a static block.",
+ AwaitExpressionFormalParameter: "'await' is not allowed in async function parameters.",
+ AwaitUsingNotInAsyncContext: "'await using' is only allowed within async functions and at the top levels of modules.",
+ AwaitNotInAsyncContext: "'await' is only allowed within async functions and at the top levels of modules.",
+ AwaitNotInAsyncFunction: "'await' is only allowed within async functions.",
+ BadGetterArity: "A 'get' accessor must not have any formal parameters.",
+ BadSetterArity: "A 'set' accessor must have exactly one formal parameter.",
+ BadSetterRestParameter: "A 'set' accessor function argument must not be a rest parameter.",
+ ConstructorClassField: "Classes may not have a field named 'constructor'.",
+ ConstructorClassPrivateField: "Classes may not have a private field named '#constructor'.",
+ ConstructorIsAccessor: "Class constructor may not be an accessor.",
+ ConstructorIsAsync: "Constructor can't be an async function.",
+ ConstructorIsGenerator: "Constructor can't be a generator.",
+ DeclarationMissingInitializer: ({
+ kind
+ }) => `Missing initializer in ${kind} declaration.`,
+ DecoratorArgumentsOutsideParentheses: "Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.",
+ DecoratorBeforeExport: "Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.",
+ DecoratorsBeforeAfterExport: "Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.",
+ DecoratorConstructor: "Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?",
+ DecoratorExportClass: "Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.",
+ DecoratorSemicolon: "Decorators must not be followed by a semicolon.",
+ DecoratorStaticBlock: "Decorators can't be used with a static block.",
+ DeferImportRequiresNamespace: 'Only `import defer * as x from "./module"` is valid.',
+ DeletePrivateField: "Deleting a private field is not allowed.",
+ DestructureNamedImport: "ES2015 named imports do not destructure. Use another statement for destructuring after the import.",
+ DuplicateConstructor: "Duplicate constructor in the same class.",
+ DuplicateDefaultExport: "Only one default export allowed per module.",
+ DuplicateExport: ({
+ exportName
+ }) => `\`${exportName}\` has already been exported. Exported identifiers must be unique.`,
+ DuplicateProto: "Redefinition of __proto__ property.",
+ DuplicateRegExpFlags: "Duplicate regular expression flag.",
+ DynamicImportPhaseRequiresImportExpressions: ({
+ phase
+ }) => `'import.${phase}(...)' can only be parsed when using the 'createImportExpressions' option.`,
+ ElementAfterRest: "Rest element must be last element.",
+ EscapedCharNotAnIdentifier: "Invalid Unicode escape.",
+ ExportBindingIsString: ({
+ localName,
+ exportName
+ }) => `A string literal cannot be used as an exported binding without \`from\`.\n- Did you mean \`export { '${localName}' as '${exportName}' } from 'some-module'\`?`,
+ ExportDefaultFromAsIdentifier: "'from' is not allowed as an identifier after 'export default'.",
+ ForInOfLoopInitializer: ({
+ type
+ }) => `'${type === "ForInStatement" ? "for-in" : "for-of"}' loop variable declaration may not have an initializer.`,
+ ForInUsing: "For-in loop may not start with 'using' declaration.",
+ ForOfAsync: "The left-hand side of a for-of loop may not be 'async'.",
+ ForOfLet: "The left-hand side of a for-of loop may not start with 'let'.",
+ GeneratorInSingleStatementContext: "Generators can only be declared at the top level or inside a block.",
+ IllegalBreakContinue: ({
+ type
+ }) => `Unsyntactic ${type === "BreakStatement" ? "break" : "continue"}.`,
+ IllegalLanguageModeDirective: "Illegal 'use strict' directive in function with non-simple parameter list.",
+ IllegalReturn: "'return' outside of function.",
+ ImportAttributesUseAssert: "The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedAssertSyntax: true` option in the import attributes plugin to suppress this error.",
+ ImportBindingIsString: ({
+ importName
+ }) => `A string literal cannot be used as an imported binding.\n- Did you mean \`import { "${importName}" as foo }\`?`,
+ ImportCallArgumentTrailingComma: "Trailing comma is disallowed inside import(...) arguments.",
+ ImportCallArity: ({
+ maxArgumentCount
+ }) => `\`import()\` requires exactly ${maxArgumentCount === 1 ? "one argument" : "one or two arguments"}.`,
+ ImportCallNotNewExpression: "Cannot use new with import(...).",
+ ImportCallSpreadArgument: "`...` is not allowed in `import()`.",
+ ImportJSONBindingNotDefault: "A JSON module can only be imported with `default`.",
+ ImportReflectionHasAssertion: "`import module x` cannot have assertions.",
+ ImportReflectionNotBinding: 'Only `import module x from "./module"` is valid.',
+ IncompatibleRegExpUVFlags: "The 'u' and 'v' regular expression flags cannot be enabled at the same time.",
+ InvalidBigIntLiteral: "Invalid BigIntLiteral.",
+ InvalidCodePoint: "Code point out of bounds.",
+ InvalidCoverInitializedName: "Invalid shorthand property initializer.",
+ InvalidDecimal: "Invalid decimal.",
+ InvalidDigit: ({
+ radix
+ }) => `Expected number in radix ${radix}.`,
+ InvalidEscapeSequence: "Bad character escape sequence.",
+ InvalidEscapeSequenceTemplate: "Invalid escape sequence in template.",
+ InvalidEscapedReservedWord: ({
+ reservedWord
+ }) => `Escape sequence in keyword ${reservedWord}.`,
+ InvalidIdentifier: ({
+ identifierName
+ }) => `Invalid identifier ${identifierName}.`,
+ InvalidLhs: ({
+ ancestor
+ }) => `Invalid left-hand side in ${toNodeDescription(ancestor)}.`,
+ InvalidLhsBinding: ({
+ ancestor
+ }) => `Binding invalid left-hand side in ${toNodeDescription(ancestor)}.`,
+ InvalidLhsOptionalChaining: ({
+ ancestor
+ }) => `Invalid optional chaining in the left-hand side of ${toNodeDescription(ancestor)}.`,
+ InvalidNumber: "Invalid number.",
+ InvalidOrMissingExponent: "Floating-point numbers require a valid exponent after the 'e'.",
+ InvalidOrUnexpectedToken: ({
+ unexpected
+ }) => `Unexpected character '${unexpected}'.`,
+ InvalidParenthesizedAssignment: "Invalid parenthesized assignment pattern.",
+ InvalidPrivateFieldResolution: ({
+ identifierName
+ }) => `Private name #${identifierName} is not defined.`,
+ InvalidPropertyBindingPattern: "Binding member expression.",
+ InvalidRecordProperty: "Only properties and spread elements are allowed in record definitions.",
+ InvalidRestAssignmentPattern: "Invalid rest operator's argument.",
+ LabelRedeclaration: ({
+ labelName
+ }) => `Label '${labelName}' is already declared.`,
+ LetInLexicalBinding: "'let' is disallowed as a lexically bound name.",
+ LineTerminatorBeforeArrow: "No line break is allowed before '=>'.",
+ MalformedRegExpFlags: "Invalid regular expression flag.",
+ MissingClassName: "A class name is required.",
+ MissingEqInAssignment: "Only '=' operator can be used for specifying default value.",
+ MissingSemicolon: "Missing semicolon.",
+ MissingPlugin: ({
+ missingPlugin
+ }) => `This experimental syntax requires enabling the parser plugin: ${missingPlugin.map(name => JSON.stringify(name)).join(", ")}.`,
+ MissingOneOfPlugins: ({
+ missingPlugin
+ }) => `This experimental syntax requires enabling one of the following parser plugin(s): ${missingPlugin.map(name => JSON.stringify(name)).join(", ")}.`,
+ MissingUnicodeEscape: "Expecting Unicode escape sequence \\uXXXX.",
+ MixingCoalesceWithLogical: "Nullish coalescing operator(??) requires parens when mixing with logical operators.",
+ ModuleAttributeDifferentFromType: "The only accepted module attribute is `type`.",
+ ModuleAttributeInvalidValue: "Only string literals are allowed as module attribute values.",
+ ModuleAttributesWithDuplicateKeys: ({
+ key
+ }) => `Duplicate key "${key}" is not allowed in module attributes.`,
+ ModuleExportNameHasLoneSurrogate: ({
+ surrogateCharCode
+ }) => `An export name cannot include a lone surrogate, found '\\u${surrogateCharCode.toString(16)}'.`,
+ ModuleExportUndefined: ({
+ localName
+ }) => `Export '${localName}' is not defined.`,
+ MultipleDefaultsInSwitch: "Multiple default clauses.",
+ NewlineAfterThrow: "Illegal newline after throw.",
+ NoCatchOrFinally: "Missing catch or finally clause.",
+ NumberIdentifier: "Identifier directly after number.",
+ NumericSeparatorInEscapeSequence: "Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.",
+ ObsoleteAwaitStar: "'await*' has been removed from the async functions proposal. Use Promise.all() instead.",
+ OptionalChainingNoNew: "Constructors in/after an Optional Chain are not allowed.",
+ OptionalChainingNoTemplate: "Tagged Template Literals are not allowed in optionalChain.",
+ OverrideOnConstructor: "'override' modifier cannot appear on a constructor declaration.",
+ ParamDupe: "Argument name clash.",
+ PatternHasAccessor: "Object pattern can't contain getter or setter.",
+ PatternHasMethod: "Object pattern can't contain methods.",
+ PrivateInExpectedIn: ({
+ identifierName
+ }) => `Private names are only allowed in property accesses (\`obj.#${identifierName}\`) or in \`in\` expressions (\`#${identifierName} in obj\`).`,
+ PrivateNameRedeclaration: ({
+ identifierName
+ }) => `Duplicate private name #${identifierName}.`,
+ RecordExpressionBarIncorrectEndSyntaxType: "Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
+ RecordExpressionBarIncorrectStartSyntaxType: "Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
+ RecordExpressionHashIncorrectStartSyntaxType: "Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",
+ RecordNoProto: "'__proto__' is not allowed in Record expressions.",
+ RestTrailingComma: "Unexpected trailing comma after rest element.",
+ SloppyFunction: "In non-strict mode code, functions can only be declared at top level or inside a block.",
+ SloppyFunctionAnnexB: "In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.",
+ SourcePhaseImportRequiresDefault: 'Only `import source x from "./module"` is valid.',
+ StaticPrototype: "Classes may not have static property named prototype.",
+ SuperNotAllowed: "`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?",
+ SuperPrivateField: "Private fields can't be accessed on super.",
+ TrailingDecorator: "Decorators must be attached to a class element.",
+ TupleExpressionBarIncorrectEndSyntaxType: "Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
+ TupleExpressionBarIncorrectStartSyntaxType: "Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",
+ TupleExpressionHashIncorrectStartSyntaxType: "Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",
+ UnexpectedArgumentPlaceholder: "Unexpected argument placeholder.",
+ UnexpectedAwaitAfterPipelineBody: 'Unexpected "await" after pipeline body; await must have parentheses in minimal proposal.',
+ UnexpectedDigitAfterHash: "Unexpected digit after hash token.",
+ UnexpectedImportExport: "'import' and 'export' may only appear at the top level.",
+ UnexpectedKeyword: ({
+ keyword
+ }) => `Unexpected keyword '${keyword}'.`,
+ UnexpectedLeadingDecorator: "Leading decorators must be attached to a class declaration.",
+ UnexpectedLexicalDeclaration: "Lexical declaration cannot appear in a single-statement context.",
+ UnexpectedNewTarget: "`new.target` can only be used in functions or class properties.",
+ UnexpectedNumericSeparator: "A numeric separator is only allowed between two digits.",
+ UnexpectedPrivateField: "Unexpected private name.",
+ UnexpectedReservedWord: ({
+ reservedWord
+ }) => `Unexpected reserved word '${reservedWord}'.`,
+ UnexpectedSuper: "'super' is only allowed in object methods and classes.",
+ UnexpectedToken: ({
+ expected,
+ unexpected
+ }) => `Unexpected token${unexpected ? ` '${unexpected}'.` : ""}${expected ? `, expected "${expected}"` : ""}`,
+ UnexpectedTokenUnaryExponentiation: "Illegal expression. Wrap left hand side or entire exponentiation in parentheses.",
+ UnexpectedUsingDeclaration: "Using declaration cannot appear in the top level when source type is `script`.",
+ UnsupportedBind: "Binding should be performed on object property.",
+ UnsupportedDecoratorExport: "A decorated export must export a class declaration.",
+ UnsupportedDefaultExport: "Only expressions, functions or classes are allowed as the `default` export.",
+ UnsupportedImport: "`import` can only be used in `import()` or `import.meta`.",
+ UnsupportedMetaProperty: ({
+ target,
+ onlyValidPropertyName
+ }) => `The only valid meta property for ${target} is ${target}.${onlyValidPropertyName}.`,
+ UnsupportedParameterDecorator: "Decorators cannot be used to decorate parameters.",
+ UnsupportedPropertyDecorator: "Decorators cannot be used to decorate object literal properties.",
+ UnsupportedSuper: "'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).",
+ UnterminatedComment: "Unterminated comment.",
+ UnterminatedRegExp: "Unterminated regular expression.",
+ UnterminatedString: "Unterminated string constant.",
+ UnterminatedTemplate: "Unterminated template.",
+ UsingDeclarationHasBindingPattern: "Using declaration cannot have destructuring patterns.",
+ VarRedeclaration: ({
+ identifierName
+ }) => `Identifier '${identifierName}' has already been declared.`,
+ YieldBindingIdentifier: "Can not use 'yield' as identifier inside a generator.",
+ YieldInParameter: "Yield expression is not allowed in formal parameters.",
+ ZeroDigitNumericSeparator: "Numeric separator can not be used after leading 0."
+};
+var StrictModeErrors = {
+ StrictDelete: "Deleting local variable in strict mode.",
+ StrictEvalArguments: ({
+ referenceName
+ }) => `Assigning to '${referenceName}' in strict mode.`,
+ StrictEvalArgumentsBinding: ({
+ bindingName
+ }) => `Binding '${bindingName}' in strict mode.`,
+ StrictFunction: "In strict mode code, functions can only be declared at top level or inside a block.",
+ StrictNumericEscape: "The only valid numeric escape in strict mode is '\\0'.",
+ StrictOctalLiteral: "Legacy octal literals are not allowed in strict mode.",
+ StrictWith: "'with' in strict mode."
+};
+const UnparenthesizedPipeBodyDescriptions = new Set(["ArrowFunctionExpression", "AssignmentExpression", "ConditionalExpression", "YieldExpression"]);
+var PipelineOperatorErrors = {
+ PipeBodyIsTighter: "Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.",
+ PipeTopicRequiresHackPipes: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.',
+ PipeTopicUnbound: "Topic reference is unbound; it must be inside a pipe body.",
+ PipeTopicUnconfiguredToken: ({
+ token
+ }) => `Invalid topic token ${token}. In order to use ${token} as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "${token}" }.`,
+ PipeTopicUnused: "Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.",
+ PipeUnparenthesizedBody: ({
+ type
+ }) => `Hack-style pipe body cannot be an unparenthesized ${toNodeDescription({
+ type
+ })}; please wrap it in parentheses.`,
+ PipelineBodyNoArrow: 'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.',
+ PipelineBodySequenceExpression: "Pipeline body may not be a comma-separated sequence expression.",
+ PipelineHeadSequenceExpression: "Pipeline head should not be a comma-separated sequence expression.",
+ PipelineTopicUnused: "Pipeline is in topic style but does not use topic reference.",
+ PrimaryTopicNotAllowed: "Topic reference was used in a lexical context without topic binding.",
+ PrimaryTopicRequiresSmartPipeline: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.'
+};
+const _excluded$1 = ["toMessage"],
+ _excluded2$1 = ["message"];
+function defineHidden(obj, key, value) {
+ Object.defineProperty(obj, key, {
+ enumerable: false,
+ configurable: true,
+ value
+ });
+}
+function toParseErrorConstructor(_ref) {
+ let {
+ toMessage
+ } = _ref,
+ properties = _objectWithoutPropertiesLoose(_ref, _excluded$1);
+ return function constructor({
+ loc,
+ details
+ }) {
+ const error = new SyntaxError();
+ Object.assign(error, properties, {
+ loc,
+ pos: loc.index
+ });
+ if ("missingPlugin" in details) {
+ Object.assign(error, {
+ missingPlugin: details.missingPlugin
+ });
+ }
+ defineHidden(error, "clone", function clone(overrides = {}) {
+ var _overrides$loc;
+ const {
+ line,
+ column,
+ index
+ } = (_overrides$loc = overrides.loc) != null ? _overrides$loc : loc;
+ return constructor({
+ loc: new Position(line, column, index),
+ details: Object.assign({}, details, overrides.details)
+ });
+ });
+ defineHidden(error, "details", details);
+ Object.defineProperty(error, "message", {
+ configurable: true,
+ get() {
+ const message = `${toMessage(details)} (${loc.line}:${loc.column})`;
+ this.message = message;
+ return message;
+ },
+ set(value) {
+ Object.defineProperty(this, "message", {
+ value,
+ writable: true
+ });
+ }
+ });
+ return error;
+ };
+}
+function ParseErrorEnum(argument, syntaxPlugin) {
+ if (Array.isArray(argument)) {
+ return parseErrorTemplates => ParseErrorEnum(parseErrorTemplates, argument[0]);
+ }
+ const ParseErrorConstructors = {};
+ for (const reasonCode of Object.keys(argument)) {
+ const template = argument[reasonCode];
+ const _ref2 = typeof template === "string" ? {
+ message: () => template
+ } : typeof template === "function" ? {
+ message: template
+ } : template,
+ {
+ message
+ } = _ref2,
+ rest = _objectWithoutPropertiesLoose(_ref2, _excluded2$1);
+ const toMessage = typeof message === "string" ? () => message : message;
+ ParseErrorConstructors[reasonCode] = toParseErrorConstructor(Object.assign({
+ code: "BABEL_PARSER_SYNTAX_ERROR",
+ reasonCode,
+ toMessage
+ }, syntaxPlugin ? {
+ syntaxPlugin
+ } : {}, rest));
+ }
+ return ParseErrorConstructors;
+}
+const Errors = Object.assign({}, ParseErrorEnum(ModuleErrors), ParseErrorEnum(StandardErrors), ParseErrorEnum(StrictModeErrors), ParseErrorEnum`pipelineOperator`(PipelineOperatorErrors));
+const {
+ defineProperty
+} = Object;
+const toUnenumerable = (object, key) => defineProperty(object, key, {
+ enumerable: false,
+ value: object[key]
+});
+function toESTreeLocation(node) {
+ node.loc.start && toUnenumerable(node.loc.start, "index");
+ node.loc.end && toUnenumerable(node.loc.end, "index");
+ return node;
+}
+var estree = superClass => class ESTreeParserMixin extends superClass {
+ parse() {
+ const file = toESTreeLocation(super.parse());
+ if (this.options.tokens) {
+ file.tokens = file.tokens.map(toESTreeLocation);
+ }
+ return file;
+ }
+ parseRegExpLiteral({
+ pattern,
+ flags
+ }) {
+ let regex = null;
+ try {
+ regex = new RegExp(pattern, flags);
+ } catch (e) {}
+ const node = this.estreeParseLiteral(regex);
+ node.regex = {
+ pattern,
+ flags
+ };
+ return node;
+ }
+ parseBigIntLiteral(value) {
+ let bigInt;
+ try {
+ bigInt = BigInt(value);
+ } catch (_unused) {
+ bigInt = null;
+ }
+ const node = this.estreeParseLiteral(bigInt);
+ node.bigint = String(node.value || value);
+ return node;
+ }
+ parseDecimalLiteral(value) {
+ const decimal = null;
+ const node = this.estreeParseLiteral(decimal);
+ node.decimal = String(node.value || value);
+ return node;
+ }
+ estreeParseLiteral(value) {
+ return this.parseLiteral(value, "Literal");
+ }
+ parseStringLiteral(value) {
+ return this.estreeParseLiteral(value);
+ }
+ parseNumericLiteral(value) {
+ return this.estreeParseLiteral(value);
+ }
+ parseNullLiteral() {
+ return this.estreeParseLiteral(null);
+ }
+ parseBooleanLiteral(value) {
+ return this.estreeParseLiteral(value);
+ }
+ directiveToStmt(directive) {
+ const expression = directive.value;
+ delete directive.value;
+ expression.type = "Literal";
+ expression.raw = expression.extra.raw;
+ expression.value = expression.extra.expressionValue;
+ const stmt = directive;
+ stmt.type = "ExpressionStatement";
+ stmt.expression = expression;
+ stmt.directive = expression.extra.rawValue;
+ delete expression.extra;
+ return stmt;
+ }
+ initFunction(node, isAsync) {
+ super.initFunction(node, isAsync);
+ node.expression = false;
+ }
+ checkDeclaration(node) {
+ if (node != null && this.isObjectProperty(node)) {
+ this.checkDeclaration(node.value);
+ } else {
+ super.checkDeclaration(node);
+ }
+ }
+ getObjectOrClassMethodParams(method) {
+ return method.value.params;
+ }
+ isValidDirective(stmt) {
+ var _stmt$expression$extr;
+ return stmt.type === "ExpressionStatement" && stmt.expression.type === "Literal" && typeof stmt.expression.value === "string" && !((_stmt$expression$extr = stmt.expression.extra) != null && _stmt$expression$extr.parenthesized);
+ }
+ parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse) {
+ super.parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse);
+ const directiveStatements = node.directives.map(d => this.directiveToStmt(d));
+ node.body = directiveStatements.concat(node.body);
+ delete node.directives;
+ }
+ pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) {
+ this.parseMethod(method, isGenerator, isAsync, isConstructor, allowsDirectSuper, "ClassMethod", true);
+ if (method.typeParameters) {
+ method.value.typeParameters = method.typeParameters;
+ delete method.typeParameters;
+ }
+ classBody.body.push(method);
+ }
+ parsePrivateName() {
+ const node = super.parsePrivateName();
+ {
+ if (!this.getPluginOption("estree", "classFeatures")) {
+ return node;
+ }
+ }
+ return this.convertPrivateNameToPrivateIdentifier(node);
+ }
+ convertPrivateNameToPrivateIdentifier(node) {
+ const name = super.getPrivateNameSV(node);
+ node = node;
+ delete node.id;
+ node.name = name;
+ node.type = "PrivateIdentifier";
+ return node;
+ }
+ isPrivateName(node) {
+ {
+ if (!this.getPluginOption("estree", "classFeatures")) {
+ return super.isPrivateName(node);
+ }
+ }
+ return node.type === "PrivateIdentifier";
+ }
+ getPrivateNameSV(node) {
+ {
+ if (!this.getPluginOption("estree", "classFeatures")) {
+ return super.getPrivateNameSV(node);
+ }
+ }
+ return node.name;
+ }
+ parseLiteral(value, type) {
+ const node = super.parseLiteral(value, type);
+ node.raw = node.extra.raw;
+ delete node.extra;
+ return node;
+ }
+ parseFunctionBody(node, allowExpression, isMethod = false) {
+ super.parseFunctionBody(node, allowExpression, isMethod);
+ node.expression = node.body.type !== "BlockStatement";
+ }
+ parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) {
+ let funcNode = this.startNode();
+ funcNode.kind = node.kind;
+ funcNode = super.parseMethod(funcNode, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope);
+ funcNode.type = "FunctionExpression";
+ delete funcNode.kind;
+ node.value = funcNode;
+ if (type === "ClassPrivateMethod") {
+ node.computed = false;
+ }
+ return this.finishNode(node, "MethodDefinition");
+ }
+ parseClassProperty(...args) {
+ const propertyNode = super.parseClassProperty(...args);
+ {
+ if (!this.getPluginOption("estree", "classFeatures")) {
+ return propertyNode;
+ }
+ }
+ propertyNode.type = "PropertyDefinition";
+ return propertyNode;
+ }
+ parseClassPrivateProperty(...args) {
+ const propertyNode = super.parseClassPrivateProperty(...args);
+ {
+ if (!this.getPluginOption("estree", "classFeatures")) {
+ return propertyNode;
+ }
+ }
+ propertyNode.type = "PropertyDefinition";
+ propertyNode.computed = false;
+ return propertyNode;
+ }
+ parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) {
+ const node = super.parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor);
+ if (node) {
+ node.type = "Property";
+ if (node.kind === "method") {
+ node.kind = "init";
+ }
+ node.shorthand = false;
+ }
+ return node;
+ }
+ parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors) {
+ const node = super.parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors);
+ if (node) {
+ node.kind = "init";
+ node.type = "Property";
+ }
+ return node;
+ }
+ isValidLVal(type, isUnparenthesizedInAssign, binding) {
+ return type === "Property" ? "value" : super.isValidLVal(type, isUnparenthesizedInAssign, binding);
+ }
+ isAssignable(node, isBinding) {
+ if (node != null && this.isObjectProperty(node)) {
+ return this.isAssignable(node.value, isBinding);
+ }
+ return super.isAssignable(node, isBinding);
+ }
+ toAssignable(node, isLHS = false) {
+ if (node != null && this.isObjectProperty(node)) {
+ const {
+ key,
+ value
+ } = node;
+ if (this.isPrivateName(key)) {
+ this.classScope.usePrivateName(this.getPrivateNameSV(key), key.loc.start);
+ }
+ this.toAssignable(value, isLHS);
+ } else {
+ super.toAssignable(node, isLHS);
+ }
+ }
+ toAssignableObjectExpressionProp(prop, isLast, isLHS) {
+ if (prop.kind === "get" || prop.kind === "set") {
+ this.raise(Errors.PatternHasAccessor, {
+ at: prop.key
+ });
+ } else if (prop.method) {
+ this.raise(Errors.PatternHasMethod, {
+ at: prop.key
+ });
+ } else {
+ super.toAssignableObjectExpressionProp(prop, isLast, isLHS);
+ }
+ }
+ finishCallExpression(unfinished, optional) {
+ const node = super.finishCallExpression(unfinished, optional);
+ if (node.callee.type === "Import") {
+ node.type = "ImportExpression";
+ node.source = node.arguments[0];
+ if (this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions")) {
+ var _node$arguments$, _node$arguments$2;
+ node.options = (_node$arguments$ = node.arguments[1]) != null ? _node$arguments$ : null;
+ node.attributes = (_node$arguments$2 = node.arguments[1]) != null ? _node$arguments$2 : null;
+ }
+ delete node.arguments;
+ delete node.callee;
+ }
+ return node;
+ }
+ toReferencedArguments(node) {
+ if (node.type === "ImportExpression") {
+ return;
+ }
+ super.toReferencedArguments(node);
+ }
+ parseExport(unfinished, decorators) {
+ const exportStartLoc = this.state.lastTokStartLoc;
+ const node = super.parseExport(unfinished, decorators);
+ switch (node.type) {
+ case "ExportAllDeclaration":
+ node.exported = null;
+ break;
+ case "ExportNamedDeclaration":
+ if (node.specifiers.length === 1 && node.specifiers[0].type === "ExportNamespaceSpecifier") {
+ node.type = "ExportAllDeclaration";
+ node.exported = node.specifiers[0].exported;
+ delete node.specifiers;
+ }
+ case "ExportDefaultDeclaration":
+ {
+ var _declaration$decorato;
+ const {
+ declaration
+ } = node;
+ if ((declaration == null ? void 0 : declaration.type) === "ClassDeclaration" && ((_declaration$decorato = declaration.decorators) == null ? void 0 : _declaration$decorato.length) > 0 && declaration.start === node.start) {
+ this.resetStartLocation(node, exportStartLoc);
+ }
+ }
+ break;
+ }
+ return node;
+ }
+ parseSubscript(base, startLoc, noCalls, state) {
+ const node = super.parseSubscript(base, startLoc, noCalls, state);
+ if (state.optionalChainMember) {
+ if (node.type === "OptionalMemberExpression" || node.type === "OptionalCallExpression") {
+ node.type = node.type.substring(8);
+ }
+ if (state.stop) {
+ const chain = this.startNodeAtNode(node);
+ chain.expression = node;
+ return this.finishNode(chain, "ChainExpression");
+ }
+ } else if (node.type === "MemberExpression" || node.type === "CallExpression") {
+ node.optional = false;
+ }
+ return node;
+ }
+ isOptionalMemberExpression(node) {
+ if (node.type === "ChainExpression") {
+ return node.expression.type === "MemberExpression";
+ }
+ return super.isOptionalMemberExpression(node);
+ }
+ hasPropertyAsPrivateName(node) {
+ if (node.type === "ChainExpression") {
+ node = node.expression;
+ }
+ return super.hasPropertyAsPrivateName(node);
+ }
+ isObjectProperty(node) {
+ return node.type === "Property" && node.kind === "init" && !node.method;
+ }
+ isObjectMethod(node) {
+ return node.method || node.kind === "get" || node.kind === "set";
+ }
+ finishNodeAt(node, type, endLoc) {
+ return toESTreeLocation(super.finishNodeAt(node, type, endLoc));
+ }
+ resetStartLocation(node, startLoc) {
+ super.resetStartLocation(node, startLoc);
+ toESTreeLocation(node);
+ }
+ resetEndLocation(node, endLoc = this.state.lastTokEndLoc) {
+ super.resetEndLocation(node, endLoc);
+ toESTreeLocation(node);
+ }
+};
+class TokContext {
+ constructor(token, preserveSpace) {
+ this.token = void 0;
+ this.preserveSpace = void 0;
+ this.token = token;
+ this.preserveSpace = !!preserveSpace;
+ }
+}
+const types = {
+ brace: new TokContext("{"),
+ j_oTag: new TokContext("... ", true)
+};
+{
+ types.template = new TokContext("`", true);
+}
+const beforeExpr = true;
+const startsExpr = true;
+const isLoop = true;
+const isAssign = true;
+const prefix = true;
+const postfix = true;
+class ExportedTokenType {
+ constructor(label, conf = {}) {
+ this.label = void 0;
+ this.keyword = void 0;
+ this.beforeExpr = void 0;
+ this.startsExpr = void 0;
+ this.rightAssociative = void 0;
+ this.isLoop = void 0;
+ this.isAssign = void 0;
+ this.prefix = void 0;
+ this.postfix = void 0;
+ this.binop = void 0;
+ this.label = label;
+ this.keyword = conf.keyword;
+ this.beforeExpr = !!conf.beforeExpr;
+ this.startsExpr = !!conf.startsExpr;
+ this.rightAssociative = !!conf.rightAssociative;
+ this.isLoop = !!conf.isLoop;
+ this.isAssign = !!conf.isAssign;
+ this.prefix = !!conf.prefix;
+ this.postfix = !!conf.postfix;
+ this.binop = conf.binop != null ? conf.binop : null;
+ {
+ this.updateContext = null;
+ }
+ }
+}
+const keywords$1 = new Map();
+function createKeyword(name, options = {}) {
+ options.keyword = name;
+ const token = createToken(name, options);
+ keywords$1.set(name, token);
+ return token;
+}
+function createBinop(name, binop) {
+ return createToken(name, {
+ beforeExpr,
+ binop
+ });
+}
+let tokenTypeCounter = -1;
+const tokenTypes = [];
+const tokenLabels = [];
+const tokenBinops = [];
+const tokenBeforeExprs = [];
+const tokenStartsExprs = [];
+const tokenPrefixes = [];
+function createToken(name, options = {}) {
+ var _options$binop, _options$beforeExpr, _options$startsExpr, _options$prefix;
+ ++tokenTypeCounter;
+ tokenLabels.push(name);
+ tokenBinops.push((_options$binop = options.binop) != null ? _options$binop : -1);
+ tokenBeforeExprs.push((_options$beforeExpr = options.beforeExpr) != null ? _options$beforeExpr : false);
+ tokenStartsExprs.push((_options$startsExpr = options.startsExpr) != null ? _options$startsExpr : false);
+ tokenPrefixes.push((_options$prefix = options.prefix) != null ? _options$prefix : false);
+ tokenTypes.push(new ExportedTokenType(name, options));
+ return tokenTypeCounter;
+}
+function createKeywordLike(name, options = {}) {
+ var _options$binop2, _options$beforeExpr2, _options$startsExpr2, _options$prefix2;
+ ++tokenTypeCounter;
+ keywords$1.set(name, tokenTypeCounter);
+ tokenLabels.push(name);
+ tokenBinops.push((_options$binop2 = options.binop) != null ? _options$binop2 : -1);
+ tokenBeforeExprs.push((_options$beforeExpr2 = options.beforeExpr) != null ? _options$beforeExpr2 : false);
+ tokenStartsExprs.push((_options$startsExpr2 = options.startsExpr) != null ? _options$startsExpr2 : false);
+ tokenPrefixes.push((_options$prefix2 = options.prefix) != null ? _options$prefix2 : false);
+ tokenTypes.push(new ExportedTokenType("name", options));
+ return tokenTypeCounter;
+}
+const tt = {
+ bracketL: createToken("[", {
+ beforeExpr,
+ startsExpr
+ }),
+ bracketHashL: createToken("#[", {
+ beforeExpr,
+ startsExpr
+ }),
+ bracketBarL: createToken("[|", {
+ beforeExpr,
+ startsExpr
+ }),
+ bracketR: createToken("]"),
+ bracketBarR: createToken("|]"),
+ braceL: createToken("{", {
+ beforeExpr,
+ startsExpr
+ }),
+ braceBarL: createToken("{|", {
+ beforeExpr,
+ startsExpr
+ }),
+ braceHashL: createToken("#{", {
+ beforeExpr,
+ startsExpr
+ }),
+ braceR: createToken("}"),
+ braceBarR: createToken("|}"),
+ parenL: createToken("(", {
+ beforeExpr,
+ startsExpr
+ }),
+ parenR: createToken(")"),
+ comma: createToken(",", {
+ beforeExpr
+ }),
+ semi: createToken(";", {
+ beforeExpr
+ }),
+ colon: createToken(":", {
+ beforeExpr
+ }),
+ doubleColon: createToken("::", {
+ beforeExpr
+ }),
+ dot: createToken("."),
+ question: createToken("?", {
+ beforeExpr
+ }),
+ questionDot: createToken("?."),
+ arrow: createToken("=>", {
+ beforeExpr
+ }),
+ template: createToken("template"),
+ ellipsis: createToken("...", {
+ beforeExpr
+ }),
+ backQuote: createToken("`", {
+ startsExpr
+ }),
+ dollarBraceL: createToken("${", {
+ beforeExpr,
+ startsExpr
+ }),
+ templateTail: createToken("...`", {
+ startsExpr
+ }),
+ templateNonTail: createToken("...${", {
+ beforeExpr,
+ startsExpr
+ }),
+ at: createToken("@"),
+ hash: createToken("#", {
+ startsExpr
+ }),
+ interpreterDirective: createToken("#!..."),
+ eq: createToken("=", {
+ beforeExpr,
+ isAssign
+ }),
+ assign: createToken("_=", {
+ beforeExpr,
+ isAssign
+ }),
+ slashAssign: createToken("_=", {
+ beforeExpr,
+ isAssign
+ }),
+ xorAssign: createToken("_=", {
+ beforeExpr,
+ isAssign
+ }),
+ moduloAssign: createToken("_=", {
+ beforeExpr,
+ isAssign
+ }),
+ incDec: createToken("++/--", {
+ prefix,
+ postfix,
+ startsExpr
+ }),
+ bang: createToken("!", {
+ beforeExpr,
+ prefix,
+ startsExpr
+ }),
+ tilde: createToken("~", {
+ beforeExpr,
+ prefix,
+ startsExpr
+ }),
+ doubleCaret: createToken("^^", {
+ startsExpr
+ }),
+ doubleAt: createToken("@@", {
+ startsExpr
+ }),
+ pipeline: createBinop("|>", 0),
+ nullishCoalescing: createBinop("??", 1),
+ logicalOR: createBinop("||", 1),
+ logicalAND: createBinop("&&", 2),
+ bitwiseOR: createBinop("|", 3),
+ bitwiseXOR: createBinop("^", 4),
+ bitwiseAND: createBinop("&", 5),
+ equality: createBinop("==/!=/===/!==", 6),
+ lt: createBinop(">/<=/>=", 7),
+ gt: createBinop(">/<=/>=", 7),
+ relational: createBinop(">/<=/>=", 7),
+ bitShift: createBinop("<>>/>>>", 8),
+ bitShiftL: createBinop("<>>/>>>", 8),
+ bitShiftR: createBinop("<>>/>>>", 8),
+ plusMin: createToken("+/-", {
+ beforeExpr,
+ binop: 9,
+ prefix,
+ startsExpr
+ }),
+ modulo: createToken("%", {
+ binop: 10,
+ startsExpr
+ }),
+ star: createToken("*", {
+ binop: 10
+ }),
+ slash: createBinop("/", 10),
+ exponent: createToken("**", {
+ beforeExpr,
+ binop: 11,
+ rightAssociative: true
+ }),
+ _in: createKeyword("in", {
+ beforeExpr,
+ binop: 7
+ }),
+ _instanceof: createKeyword("instanceof", {
+ beforeExpr,
+ binop: 7
+ }),
+ _break: createKeyword("break"),
+ _case: createKeyword("case", {
+ beforeExpr
+ }),
+ _catch: createKeyword("catch"),
+ _continue: createKeyword("continue"),
+ _debugger: createKeyword("debugger"),
+ _default: createKeyword("default", {
+ beforeExpr
+ }),
+ _else: createKeyword("else", {
+ beforeExpr
+ }),
+ _finally: createKeyword("finally"),
+ _function: createKeyword("function", {
+ startsExpr
+ }),
+ _if: createKeyword("if"),
+ _return: createKeyword("return", {
+ beforeExpr
+ }),
+ _switch: createKeyword("switch"),
+ _throw: createKeyword("throw", {
+ beforeExpr,
+ prefix,
+ startsExpr
+ }),
+ _try: createKeyword("try"),
+ _var: createKeyword("var"),
+ _const: createKeyword("const"),
+ _with: createKeyword("with"),
+ _new: createKeyword("new", {
+ beforeExpr,
+ startsExpr
+ }),
+ _this: createKeyword("this", {
+ startsExpr
+ }),
+ _super: createKeyword("super", {
+ startsExpr
+ }),
+ _class: createKeyword("class", {
+ startsExpr
+ }),
+ _extends: createKeyword("extends", {
+ beforeExpr
+ }),
+ _export: createKeyword("export"),
+ _import: createKeyword("import", {
+ startsExpr
+ }),
+ _null: createKeyword("null", {
+ startsExpr
+ }),
+ _true: createKeyword("true", {
+ startsExpr
+ }),
+ _false: createKeyword("false", {
+ startsExpr
+ }),
+ _typeof: createKeyword("typeof", {
+ beforeExpr,
+ prefix,
+ startsExpr
+ }),
+ _void: createKeyword("void", {
+ beforeExpr,
+ prefix,
+ startsExpr
+ }),
+ _delete: createKeyword("delete", {
+ beforeExpr,
+ prefix,
+ startsExpr
+ }),
+ _do: createKeyword("do", {
+ isLoop,
+ beforeExpr
+ }),
+ _for: createKeyword("for", {
+ isLoop
+ }),
+ _while: createKeyword("while", {
+ isLoop
+ }),
+ _as: createKeywordLike("as", {
+ startsExpr
+ }),
+ _assert: createKeywordLike("assert", {
+ startsExpr
+ }),
+ _async: createKeywordLike("async", {
+ startsExpr
+ }),
+ _await: createKeywordLike("await", {
+ startsExpr
+ }),
+ _defer: createKeywordLike("defer", {
+ startsExpr
+ }),
+ _from: createKeywordLike("from", {
+ startsExpr
+ }),
+ _get: createKeywordLike("get", {
+ startsExpr
+ }),
+ _let: createKeywordLike("let", {
+ startsExpr
+ }),
+ _meta: createKeywordLike("meta", {
+ startsExpr
+ }),
+ _of: createKeywordLike("of", {
+ startsExpr
+ }),
+ _sent: createKeywordLike("sent", {
+ startsExpr
+ }),
+ _set: createKeywordLike("set", {
+ startsExpr
+ }),
+ _source: createKeywordLike("source", {
+ startsExpr
+ }),
+ _static: createKeywordLike("static", {
+ startsExpr
+ }),
+ _using: createKeywordLike("using", {
+ startsExpr
+ }),
+ _yield: createKeywordLike("yield", {
+ startsExpr
+ }),
+ _asserts: createKeywordLike("asserts", {
+ startsExpr
+ }),
+ _checks: createKeywordLike("checks", {
+ startsExpr
+ }),
+ _exports: createKeywordLike("exports", {
+ startsExpr
+ }),
+ _global: createKeywordLike("global", {
+ startsExpr
+ }),
+ _implements: createKeywordLike("implements", {
+ startsExpr
+ }),
+ _intrinsic: createKeywordLike("intrinsic", {
+ startsExpr
+ }),
+ _infer: createKeywordLike("infer", {
+ startsExpr
+ }),
+ _is: createKeywordLike("is", {
+ startsExpr
+ }),
+ _mixins: createKeywordLike("mixins", {
+ startsExpr
+ }),
+ _proto: createKeywordLike("proto", {
+ startsExpr
+ }),
+ _require: createKeywordLike("require", {
+ startsExpr
+ }),
+ _satisfies: createKeywordLike("satisfies", {
+ startsExpr
+ }),
+ _keyof: createKeywordLike("keyof", {
+ startsExpr
+ }),
+ _readonly: createKeywordLike("readonly", {
+ startsExpr
+ }),
+ _unique: createKeywordLike("unique", {
+ startsExpr
+ }),
+ _abstract: createKeywordLike("abstract", {
+ startsExpr
+ }),
+ _declare: createKeywordLike("declare", {
+ startsExpr
+ }),
+ _enum: createKeywordLike("enum", {
+ startsExpr
+ }),
+ _module: createKeywordLike("module", {
+ startsExpr
+ }),
+ _namespace: createKeywordLike("namespace", {
+ startsExpr
+ }),
+ _interface: createKeywordLike("interface", {
+ startsExpr
+ }),
+ _type: createKeywordLike("type", {
+ startsExpr
+ }),
+ _opaque: createKeywordLike("opaque", {
+ startsExpr
+ }),
+ name: createToken("name", {
+ startsExpr
+ }),
+ string: createToken("string", {
+ startsExpr
+ }),
+ num: createToken("num", {
+ startsExpr
+ }),
+ bigint: createToken("bigint", {
+ startsExpr
+ }),
+ decimal: createToken("decimal", {
+ startsExpr
+ }),
+ regexp: createToken("regexp", {
+ startsExpr
+ }),
+ privateName: createToken("#name", {
+ startsExpr
+ }),
+ eof: createToken("eof"),
+ jsxName: createToken("jsxName"),
+ jsxText: createToken("jsxText", {
+ beforeExpr: true
+ }),
+ jsxTagStart: createToken("jsxTagStart", {
+ startsExpr: true
+ }),
+ jsxTagEnd: createToken("jsxTagEnd"),
+ placeholder: createToken("%%", {
+ startsExpr: true
+ })
+};
+function tokenIsIdentifier(token) {
+ return token >= 93 && token <= 132;
+}
+function tokenKeywordOrIdentifierIsKeyword(token) {
+ return token <= 92;
+}
+function tokenIsKeywordOrIdentifier(token) {
+ return token >= 58 && token <= 132;
+}
+function tokenIsLiteralPropertyName(token) {
+ return token >= 58 && token <= 136;
+}
+function tokenComesBeforeExpression(token) {
+ return tokenBeforeExprs[token];
+}
+function tokenCanStartExpression(token) {
+ return tokenStartsExprs[token];
+}
+function tokenIsAssignment(token) {
+ return token >= 29 && token <= 33;
+}
+function tokenIsFlowInterfaceOrTypeOrOpaque(token) {
+ return token >= 129 && token <= 131;
+}
+function tokenIsLoop(token) {
+ return token >= 90 && token <= 92;
+}
+function tokenIsKeyword(token) {
+ return token >= 58 && token <= 92;
+}
+function tokenIsOperator(token) {
+ return token >= 39 && token <= 59;
+}
+function tokenIsPostfix(token) {
+ return token === 34;
+}
+function tokenIsPrefix(token) {
+ return tokenPrefixes[token];
+}
+function tokenIsTSTypeOperator(token) {
+ return token >= 121 && token <= 123;
+}
+function tokenIsTSDeclarationStart(token) {
+ return token >= 124 && token <= 130;
+}
+function tokenLabelName(token) {
+ return tokenLabels[token];
+}
+function tokenOperatorPrecedence(token) {
+ return tokenBinops[token];
+}
+function tokenIsRightAssociative(token) {
+ return token === 57;
+}
+function tokenIsTemplate(token) {
+ return token >= 24 && token <= 25;
+}
+function getExportedToken(token) {
+ return tokenTypes[token];
+}
+{
+ tokenTypes[8].updateContext = context => {
+ context.pop();
+ };
+ tokenTypes[5].updateContext = tokenTypes[7].updateContext = tokenTypes[23].updateContext = context => {
+ context.push(types.brace);
+ };
+ tokenTypes[22].updateContext = context => {
+ if (context[context.length - 1] === types.template) {
+ context.pop();
+ } else {
+ context.push(types.template);
+ }
+ };
+ tokenTypes[142].updateContext = context => {
+ context.push(types.j_expr, types.j_oTag);
+ };
+}
+let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
+let nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65";
+const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
+const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
+nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;
+const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191];
+const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
+function isInAstralSet(code, set) {
+ let pos = 0x10000;
+ for (let i = 0, length = set.length; i < length; i += 2) {
+ pos += set[i];
+ if (pos > code) return false;
+ pos += set[i + 1];
+ if (pos >= code) return true;
+ }
+ return false;
+}
+function isIdentifierStart(code) {
+ if (code < 65) return code === 36;
+ if (code <= 90) return true;
+ if (code < 97) return code === 95;
+ if (code <= 122) return true;
+ if (code <= 0xffff) {
+ return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code));
+ }
+ return isInAstralSet(code, astralIdentifierStartCodes);
+}
+function isIdentifierChar(code) {
+ if (code < 48) return code === 36;
+ if (code < 58) return true;
+ if (code < 65) return false;
+ if (code <= 90) return true;
+ if (code < 97) return code === 95;
+ if (code <= 122) return true;
+ if (code <= 0xffff) {
+ return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));
+ }
+ return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes);
+}
+const reservedWords = {
+ keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"],
+ strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"],
+ strictBind: ["eval", "arguments"]
+};
+const keywords = new Set(reservedWords.keyword);
+const reservedWordsStrictSet = new Set(reservedWords.strict);
+const reservedWordsStrictBindSet = new Set(reservedWords.strictBind);
+function isReservedWord(word, inModule) {
+ return inModule && word === "await" || word === "enum";
+}
+function isStrictReservedWord(word, inModule) {
+ return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);
+}
+function isStrictBindOnlyReservedWord(word) {
+ return reservedWordsStrictBindSet.has(word);
+}
+function isStrictBindReservedWord(word, inModule) {
+ return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word);
+}
+function isKeyword(word) {
+ return keywords.has(word);
+}
+function isIteratorStart(current, next, next2) {
+ return current === 64 && next === 64 && isIdentifierStart(next2);
+}
+const reservedWordLikeSet = new Set(["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete", "implements", "interface", "let", "package", "private", "protected", "public", "static", "yield", "eval", "arguments", "enum", "await"]);
+function canBeReservedWord(word) {
+ return reservedWordLikeSet.has(word);
+}
+class Scope {
+ constructor(flags) {
+ this.var = new Set();
+ this.lexical = new Set();
+ this.functions = new Set();
+ this.flags = flags;
+ }
+}
+class ScopeHandler {
+ constructor(parser, inModule) {
+ this.parser = void 0;
+ this.scopeStack = [];
+ this.inModule = void 0;
+ this.undefinedExports = new Map();
+ this.parser = parser;
+ this.inModule = inModule;
+ }
+ get inTopLevel() {
+ return (this.currentScope().flags & 1) > 0;
+ }
+ get inFunction() {
+ return (this.currentVarScopeFlags() & 2) > 0;
+ }
+ get allowSuper() {
+ return (this.currentThisScopeFlags() & 16) > 0;
+ }
+ get allowDirectSuper() {
+ return (this.currentThisScopeFlags() & 32) > 0;
+ }
+ get inClass() {
+ return (this.currentThisScopeFlags() & 64) > 0;
+ }
+ get inClassAndNotInNonArrowFunction() {
+ const flags = this.currentThisScopeFlags();
+ return (flags & 64) > 0 && (flags & 2) === 0;
+ }
+ get inStaticBlock() {
+ for (let i = this.scopeStack.length - 1;; i--) {
+ const {
+ flags
+ } = this.scopeStack[i];
+ if (flags & 128) {
+ return true;
+ }
+ if (flags & (387 | 64)) {
+ return false;
+ }
+ }
+ }
+ get inNonArrowFunction() {
+ return (this.currentThisScopeFlags() & 2) > 0;
+ }
+ get treatFunctionsAsVar() {
+ return this.treatFunctionsAsVarInScope(this.currentScope());
+ }
+ createScope(flags) {
+ return new Scope(flags);
+ }
+ enter(flags) {
+ this.scopeStack.push(this.createScope(flags));
+ }
+ exit() {
+ const scope = this.scopeStack.pop();
+ return scope.flags;
+ }
+ treatFunctionsAsVarInScope(scope) {
+ return !!(scope.flags & (2 | 128) || !this.parser.inModule && scope.flags & 1);
+ }
+ declareName(name, bindingType, loc) {
+ let scope = this.currentScope();
+ if (bindingType & 8 || bindingType & 16) {
+ this.checkRedeclarationInScope(scope, name, bindingType, loc);
+ if (bindingType & 16) {
+ scope.functions.add(name);
+ } else {
+ scope.lexical.add(name);
+ }
+ if (bindingType & 8) {
+ this.maybeExportDefined(scope, name);
+ }
+ } else if (bindingType & 4) {
+ for (let i = this.scopeStack.length - 1; i >= 0; --i) {
+ scope = this.scopeStack[i];
+ this.checkRedeclarationInScope(scope, name, bindingType, loc);
+ scope.var.add(name);
+ this.maybeExportDefined(scope, name);
+ if (scope.flags & 387) break;
+ }
+ }
+ if (this.parser.inModule && scope.flags & 1) {
+ this.undefinedExports.delete(name);
+ }
+ }
+ maybeExportDefined(scope, name) {
+ if (this.parser.inModule && scope.flags & 1) {
+ this.undefinedExports.delete(name);
+ }
+ }
+ checkRedeclarationInScope(scope, name, bindingType, loc) {
+ if (this.isRedeclaredInScope(scope, name, bindingType)) {
+ this.parser.raise(Errors.VarRedeclaration, {
+ at: loc,
+ identifierName: name
+ });
+ }
+ }
+ isRedeclaredInScope(scope, name, bindingType) {
+ if (!(bindingType & 1)) return false;
+ if (bindingType & 8) {
+ return scope.lexical.has(name) || scope.functions.has(name) || scope.var.has(name);
+ }
+ if (bindingType & 16) {
+ return scope.lexical.has(name) || !this.treatFunctionsAsVarInScope(scope) && scope.var.has(name);
+ }
+ return scope.lexical.has(name) && !(scope.flags & 8 && scope.lexical.values().next().value === name) || !this.treatFunctionsAsVarInScope(scope) && scope.functions.has(name);
+ }
+ checkLocalExport(id) {
+ const {
+ name
+ } = id;
+ const topLevelScope = this.scopeStack[0];
+ if (!topLevelScope.lexical.has(name) && !topLevelScope.var.has(name) && !topLevelScope.functions.has(name)) {
+ this.undefinedExports.set(name, id.loc.start);
+ }
+ }
+ currentScope() {
+ return this.scopeStack[this.scopeStack.length - 1];
+ }
+ currentVarScopeFlags() {
+ for (let i = this.scopeStack.length - 1;; i--) {
+ const {
+ flags
+ } = this.scopeStack[i];
+ if (flags & 387) {
+ return flags;
+ }
+ }
+ }
+ currentThisScopeFlags() {
+ for (let i = this.scopeStack.length - 1;; i--) {
+ const {
+ flags
+ } = this.scopeStack[i];
+ if (flags & (387 | 64) && !(flags & 4)) {
+ return flags;
+ }
+ }
+ }
+}
+class FlowScope extends Scope {
+ constructor(...args) {
+ super(...args);
+ this.declareFunctions = new Set();
+ }
+}
+class FlowScopeHandler extends ScopeHandler {
+ createScope(flags) {
+ return new FlowScope(flags);
+ }
+ declareName(name, bindingType, loc) {
+ const scope = this.currentScope();
+ if (bindingType & 2048) {
+ this.checkRedeclarationInScope(scope, name, bindingType, loc);
+ this.maybeExportDefined(scope, name);
+ scope.declareFunctions.add(name);
+ return;
+ }
+ super.declareName(name, bindingType, loc);
+ }
+ isRedeclaredInScope(scope, name, bindingType) {
+ if (super.isRedeclaredInScope(scope, name, bindingType)) return true;
+ if (bindingType & 2048) {
+ return !scope.declareFunctions.has(name) && (scope.lexical.has(name) || scope.functions.has(name));
+ }
+ return false;
+ }
+ checkLocalExport(id) {
+ if (!this.scopeStack[0].declareFunctions.has(id.name)) {
+ super.checkLocalExport(id);
+ }
+ }
+}
+class BaseParser {
+ constructor() {
+ this.sawUnambiguousESM = false;
+ this.ambiguousScriptDifferentAst = false;
+ }
+ hasPlugin(pluginConfig) {
+ if (typeof pluginConfig === "string") {
+ return this.plugins.has(pluginConfig);
+ } else {
+ const [pluginName, pluginOptions] = pluginConfig;
+ if (!this.hasPlugin(pluginName)) {
+ return false;
+ }
+ const actualOptions = this.plugins.get(pluginName);
+ for (const key of Object.keys(pluginOptions)) {
+ if ((actualOptions == null ? void 0 : actualOptions[key]) !== pluginOptions[key]) {
+ return false;
+ }
+ }
+ return true;
+ }
+ }
+ getPluginOption(plugin, name) {
+ var _this$plugins$get;
+ return (_this$plugins$get = this.plugins.get(plugin)) == null ? void 0 : _this$plugins$get[name];
+ }
+}
+function setTrailingComments(node, comments) {
+ if (node.trailingComments === undefined) {
+ node.trailingComments = comments;
+ } else {
+ node.trailingComments.unshift(...comments);
+ }
+}
+function setLeadingComments(node, comments) {
+ if (node.leadingComments === undefined) {
+ node.leadingComments = comments;
+ } else {
+ node.leadingComments.unshift(...comments);
+ }
+}
+function setInnerComments(node, comments) {
+ if (node.innerComments === undefined) {
+ node.innerComments = comments;
+ } else {
+ node.innerComments.unshift(...comments);
+ }
+}
+function adjustInnerComments(node, elements, commentWS) {
+ let lastElement = null;
+ let i = elements.length;
+ while (lastElement === null && i > 0) {
+ lastElement = elements[--i];
+ }
+ if (lastElement === null || lastElement.start > commentWS.start) {
+ setInnerComments(node, commentWS.comments);
+ } else {
+ setTrailingComments(lastElement, commentWS.comments);
+ }
+}
+class CommentsParser extends BaseParser {
+ addComment(comment) {
+ if (this.filename) comment.loc.filename = this.filename;
+ this.state.comments.push(comment);
+ }
+ processComment(node) {
+ const {
+ commentStack
+ } = this.state;
+ const commentStackLength = commentStack.length;
+ if (commentStackLength === 0) return;
+ let i = commentStackLength - 1;
+ const lastCommentWS = commentStack[i];
+ if (lastCommentWS.start === node.end) {
+ lastCommentWS.leadingNode = node;
+ i--;
+ }
+ const {
+ start: nodeStart
+ } = node;
+ for (; i >= 0; i--) {
+ const commentWS = commentStack[i];
+ const commentEnd = commentWS.end;
+ if (commentEnd > nodeStart) {
+ commentWS.containingNode = node;
+ this.finalizeComment(commentWS);
+ commentStack.splice(i, 1);
+ } else {
+ if (commentEnd === nodeStart) {
+ commentWS.trailingNode = node;
+ }
+ break;
+ }
+ }
+ }
+ finalizeComment(commentWS) {
+ const {
+ comments
+ } = commentWS;
+ if (commentWS.leadingNode !== null || commentWS.trailingNode !== null) {
+ if (commentWS.leadingNode !== null) {
+ setTrailingComments(commentWS.leadingNode, comments);
+ }
+ if (commentWS.trailingNode !== null) {
+ setLeadingComments(commentWS.trailingNode, comments);
+ }
+ } else {
+ const {
+ containingNode: node,
+ start: commentStart
+ } = commentWS;
+ if (this.input.charCodeAt(commentStart - 1) === 44) {
+ switch (node.type) {
+ case "ObjectExpression":
+ case "ObjectPattern":
+ case "RecordExpression":
+ adjustInnerComments(node, node.properties, commentWS);
+ break;
+ case "CallExpression":
+ case "OptionalCallExpression":
+ adjustInnerComments(node, node.arguments, commentWS);
+ break;
+ case "FunctionDeclaration":
+ case "FunctionExpression":
+ case "ArrowFunctionExpression":
+ case "ObjectMethod":
+ case "ClassMethod":
+ case "ClassPrivateMethod":
+ adjustInnerComments(node, node.params, commentWS);
+ break;
+ case "ArrayExpression":
+ case "ArrayPattern":
+ case "TupleExpression":
+ adjustInnerComments(node, node.elements, commentWS);
+ break;
+ case "ExportNamedDeclaration":
+ case "ImportDeclaration":
+ adjustInnerComments(node, node.specifiers, commentWS);
+ break;
+ default:
+ {
+ setInnerComments(node, comments);
+ }
+ }
+ } else {
+ setInnerComments(node, comments);
+ }
+ }
+ }
+ finalizeRemainingComments() {
+ const {
+ commentStack
+ } = this.state;
+ for (let i = commentStack.length - 1; i >= 0; i--) {
+ this.finalizeComment(commentStack[i]);
+ }
+ this.state.commentStack = [];
+ }
+ resetPreviousNodeTrailingComments(node) {
+ const {
+ commentStack
+ } = this.state;
+ const {
+ length
+ } = commentStack;
+ if (length === 0) return;
+ const commentWS = commentStack[length - 1];
+ if (commentWS.leadingNode === node) {
+ commentWS.leadingNode = null;
+ }
+ }
+ resetPreviousIdentifierLeadingComments(node) {
+ const {
+ commentStack
+ } = this.state;
+ const {
+ length
+ } = commentStack;
+ if (length === 0) return;
+ if (commentStack[length - 1].trailingNode === node) {
+ commentStack[length - 1].trailingNode = null;
+ } else if (length >= 2 && commentStack[length - 2].trailingNode === node) {
+ commentStack[length - 2].trailingNode = null;
+ }
+ }
+ takeSurroundingComments(node, start, end) {
+ const {
+ commentStack
+ } = this.state;
+ const commentStackLength = commentStack.length;
+ if (commentStackLength === 0) return;
+ let i = commentStackLength - 1;
+ for (; i >= 0; i--) {
+ const commentWS = commentStack[i];
+ const commentEnd = commentWS.end;
+ const commentStart = commentWS.start;
+ if (commentStart === end) {
+ commentWS.leadingNode = node;
+ } else if (commentEnd === start) {
+ commentWS.trailingNode = node;
+ } else if (commentEnd < start) {
+ break;
+ }
+ }
+ }
+}
+const lineBreak = /\r\n?|[\n\u2028\u2029]/;
+const lineBreakG = new RegExp(lineBreak.source, "g");
+function isNewLine(code) {
+ switch (code) {
+ case 10:
+ case 13:
+ case 8232:
+ case 8233:
+ return true;
+ default:
+ return false;
+ }
+}
+const skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g;
+const skipWhiteSpaceInLine = /(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g;
+const skipWhiteSpaceToLineBreak = new RegExp("(?=(" + skipWhiteSpaceInLine.source + "))\\1" + /(?=[\n\r\u2028\u2029]|\/\*(?!.*?\*\/)|$)/.source, "y");
+function isWhitespace(code) {
+ switch (code) {
+ case 0x0009:
+ case 0x000b:
+ case 0x000c:
+ case 32:
+ case 160:
+ case 5760:
+ case 0x2000:
+ case 0x2001:
+ case 0x2002:
+ case 0x2003:
+ case 0x2004:
+ case 0x2005:
+ case 0x2006:
+ case 0x2007:
+ case 0x2008:
+ case 0x2009:
+ case 0x200a:
+ case 0x202f:
+ case 0x205f:
+ case 0x3000:
+ case 0xfeff:
+ return true;
+ default:
+ return false;
+ }
+}
+class State {
+ constructor() {
+ this.strict = void 0;
+ this.curLine = void 0;
+ this.lineStart = void 0;
+ this.startLoc = void 0;
+ this.endLoc = void 0;
+ this.errors = [];
+ this.potentialArrowAt = -1;
+ this.noArrowAt = [];
+ this.noArrowParamsConversionAt = [];
+ this.maybeInArrowParameters = false;
+ this.inType = false;
+ this.noAnonFunctionType = false;
+ this.hasFlowComment = false;
+ this.isAmbientContext = false;
+ this.inAbstractClass = false;
+ this.inDisallowConditionalTypesContext = false;
+ this.topicContext = {
+ maxNumOfResolvableTopics: 0,
+ maxTopicIndex: null
+ };
+ this.soloAwait = false;
+ this.inFSharpPipelineDirectBody = false;
+ this.labels = [];
+ this.comments = [];
+ this.commentStack = [];
+ this.pos = 0;
+ this.type = 139;
+ this.value = null;
+ this.start = 0;
+ this.end = 0;
+ this.lastTokEndLoc = null;
+ this.lastTokStartLoc = null;
+ this.lastTokStart = 0;
+ this.context = [types.brace];
+ this.canStartJSXElement = true;
+ this.containsEsc = false;
+ this.firstInvalidTemplateEscapePos = null;
+ this.strictErrors = new Map();
+ this.tokensLength = 0;
+ }
+ init({
+ strictMode,
+ sourceType,
+ startLine,
+ startColumn
+ }) {
+ this.strict = strictMode === false ? false : strictMode === true ? true : sourceType === "module";
+ this.curLine = startLine;
+ this.lineStart = -startColumn;
+ this.startLoc = this.endLoc = new Position(startLine, startColumn, 0);
+ }
+ curPosition() {
+ return new Position(this.curLine, this.pos - this.lineStart, this.pos);
+ }
+ clone(skipArrays) {
+ const state = new State();
+ const keys = Object.keys(this);
+ for (let i = 0, length = keys.length; i < length; i++) {
+ const key = keys[i];
+ let val = this[key];
+ if (!skipArrays && Array.isArray(val)) {
+ val = val.slice();
+ }
+ state[key] = val;
+ }
+ return state;
+ }
+}
+var _isDigit = function isDigit(code) {
+ return code >= 48 && code <= 57;
+};
+const forbiddenNumericSeparatorSiblings = {
+ decBinOct: new Set([46, 66, 69, 79, 95, 98, 101, 111]),
+ hex: new Set([46, 88, 95, 120])
+};
+const isAllowedNumericSeparatorSibling = {
+ bin: ch => ch === 48 || ch === 49,
+ oct: ch => ch >= 48 && ch <= 55,
+ dec: ch => ch >= 48 && ch <= 57,
+ hex: ch => ch >= 48 && ch <= 57 || ch >= 65 && ch <= 70 || ch >= 97 && ch <= 102
+};
+function readStringContents(type, input, pos, lineStart, curLine, errors) {
+ const initialPos = pos;
+ const initialLineStart = lineStart;
+ const initialCurLine = curLine;
+ let out = "";
+ let firstInvalidLoc = null;
+ let chunkStart = pos;
+ const {
+ length
+ } = input;
+ for (;;) {
+ if (pos >= length) {
+ errors.unterminated(initialPos, initialLineStart, initialCurLine);
+ out += input.slice(chunkStart, pos);
+ break;
+ }
+ const ch = input.charCodeAt(pos);
+ if (isStringEnd(type, ch, input, pos)) {
+ out += input.slice(chunkStart, pos);
+ break;
+ }
+ if (ch === 92) {
+ out += input.slice(chunkStart, pos);
+ const res = readEscapedChar(input, pos, lineStart, curLine, type === "template", errors);
+ if (res.ch === null && !firstInvalidLoc) {
+ firstInvalidLoc = {
+ pos,
+ lineStart,
+ curLine
+ };
+ } else {
+ out += res.ch;
+ }
+ ({
+ pos,
+ lineStart,
+ curLine
+ } = res);
+ chunkStart = pos;
+ } else if (ch === 8232 || ch === 8233) {
+ ++pos;
+ ++curLine;
+ lineStart = pos;
+ } else if (ch === 10 || ch === 13) {
+ if (type === "template") {
+ out += input.slice(chunkStart, pos) + "\n";
+ ++pos;
+ if (ch === 13 && input.charCodeAt(pos) === 10) {
+ ++pos;
+ }
+ ++curLine;
+ chunkStart = lineStart = pos;
+ } else {
+ errors.unterminated(initialPos, initialLineStart, initialCurLine);
+ }
+ } else {
+ ++pos;
+ }
+ }
+ return {
+ pos,
+ str: out,
+ firstInvalidLoc,
+ lineStart,
+ curLine,
+ containsInvalid: !!firstInvalidLoc
+ };
+}
+function isStringEnd(type, ch, input, pos) {
+ if (type === "template") {
+ return ch === 96 || ch === 36 && input.charCodeAt(pos + 1) === 123;
+ }
+ return ch === (type === "double" ? 34 : 39);
+}
+function readEscapedChar(input, pos, lineStart, curLine, inTemplate, errors) {
+ const throwOnInvalid = !inTemplate;
+ pos++;
+ const res = ch => ({
+ pos,
+ ch,
+ lineStart,
+ curLine
+ });
+ const ch = input.charCodeAt(pos++);
+ switch (ch) {
+ case 110:
+ return res("\n");
+ case 114:
+ return res("\r");
+ case 120:
+ {
+ let code;
+ ({
+ code,
+ pos
+ } = readHexChar(input, pos, lineStart, curLine, 2, false, throwOnInvalid, errors));
+ return res(code === null ? null : String.fromCharCode(code));
+ }
+ case 117:
+ {
+ let code;
+ ({
+ code,
+ pos
+ } = readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors));
+ return res(code === null ? null : String.fromCodePoint(code));
+ }
+ case 116:
+ return res("\t");
+ case 98:
+ return res("\b");
+ case 118:
+ return res("\u000b");
+ case 102:
+ return res("\f");
+ case 13:
+ if (input.charCodeAt(pos) === 10) {
+ ++pos;
+ }
+ case 10:
+ lineStart = pos;
+ ++curLine;
+ case 8232:
+ case 8233:
+ return res("");
+ case 56:
+ case 57:
+ if (inTemplate) {
+ return res(null);
+ } else {
+ errors.strictNumericEscape(pos - 1, lineStart, curLine);
+ }
+ default:
+ if (ch >= 48 && ch <= 55) {
+ const startPos = pos - 1;
+ const match = input.slice(startPos, pos + 2).match(/^[0-7]+/);
+ let octalStr = match[0];
+ let octal = parseInt(octalStr, 8);
+ if (octal > 255) {
+ octalStr = octalStr.slice(0, -1);
+ octal = parseInt(octalStr, 8);
+ }
+ pos += octalStr.length - 1;
+ const next = input.charCodeAt(pos);
+ if (octalStr !== "0" || next === 56 || next === 57) {
+ if (inTemplate) {
+ return res(null);
+ } else {
+ errors.strictNumericEscape(startPos, lineStart, curLine);
+ }
+ }
+ return res(String.fromCharCode(octal));
+ }
+ return res(String.fromCharCode(ch));
+ }
+}
+function readHexChar(input, pos, lineStart, curLine, len, forceLen, throwOnInvalid, errors) {
+ const initialPos = pos;
+ let n;
+ ({
+ n,
+ pos
+ } = readInt(input, pos, lineStart, curLine, 16, len, forceLen, false, errors, !throwOnInvalid));
+ if (n === null) {
+ if (throwOnInvalid) {
+ errors.invalidEscapeSequence(initialPos, lineStart, curLine);
+ } else {
+ pos = initialPos - 1;
+ }
+ }
+ return {
+ code: n,
+ pos
+ };
+}
+function readInt(input, pos, lineStart, curLine, radix, len, forceLen, allowNumSeparator, errors, bailOnError) {
+ const start = pos;
+ const forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct;
+ const isAllowedSibling = radix === 16 ? isAllowedNumericSeparatorSibling.hex : radix === 10 ? isAllowedNumericSeparatorSibling.dec : radix === 8 ? isAllowedNumericSeparatorSibling.oct : isAllowedNumericSeparatorSibling.bin;
+ let invalid = false;
+ let total = 0;
+ for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {
+ const code = input.charCodeAt(pos);
+ let val;
+ if (code === 95 && allowNumSeparator !== "bail") {
+ const prev = input.charCodeAt(pos - 1);
+ const next = input.charCodeAt(pos + 1);
+ if (!allowNumSeparator) {
+ if (bailOnError) return {
+ n: null,
+ pos
+ };
+ errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine);
+ } else if (Number.isNaN(next) || !isAllowedSibling(next) || forbiddenSiblings.has(prev) || forbiddenSiblings.has(next)) {
+ if (bailOnError) return {
+ n: null,
+ pos
+ };
+ errors.unexpectedNumericSeparator(pos, lineStart, curLine);
+ }
+ ++pos;
+ continue;
+ }
+ if (code >= 97) {
+ val = code - 97 + 10;
+ } else if (code >= 65) {
+ val = code - 65 + 10;
+ } else if (_isDigit(code)) {
+ val = code - 48;
+ } else {
+ val = Infinity;
+ }
+ if (val >= radix) {
+ if (val <= 9 && bailOnError) {
+ return {
+ n: null,
+ pos
+ };
+ } else if (val <= 9 && errors.invalidDigit(pos, lineStart, curLine, radix)) {
+ val = 0;
+ } else if (forceLen) {
+ val = 0;
+ invalid = true;
+ } else {
+ break;
+ }
+ }
+ ++pos;
+ total = total * radix + val;
+ }
+ if (pos === start || len != null && pos - start !== len || invalid) {
+ return {
+ n: null,
+ pos
+ };
+ }
+ return {
+ n: total,
+ pos
+ };
+}
+function readCodePoint(input, pos, lineStart, curLine, throwOnInvalid, errors) {
+ const ch = input.charCodeAt(pos);
+ let code;
+ if (ch === 123) {
+ ++pos;
+ ({
+ code,
+ pos
+ } = readHexChar(input, pos, lineStart, curLine, input.indexOf("}", pos) - pos, true, throwOnInvalid, errors));
+ ++pos;
+ if (code !== null && code > 0x10ffff) {
+ if (throwOnInvalid) {
+ errors.invalidCodePoint(pos, lineStart, curLine);
+ } else {
+ return {
+ code: null,
+ pos
+ };
+ }
+ }
+ } else {
+ ({
+ code,
+ pos
+ } = readHexChar(input, pos, lineStart, curLine, 4, false, throwOnInvalid, errors));
+ }
+ return {
+ code,
+ pos
+ };
+}
+const _excluded = ["at"],
+ _excluded2 = ["at"];
+function buildPosition(pos, lineStart, curLine) {
+ return new Position(curLine, pos - lineStart, pos);
+}
+const VALID_REGEX_FLAGS = new Set([103, 109, 115, 105, 121, 117, 100, 118]);
+class Token {
+ constructor(state) {
+ this.type = state.type;
+ this.value = state.value;
+ this.start = state.start;
+ this.end = state.end;
+ this.loc = new SourceLocation(state.startLoc, state.endLoc);
+ }
+}
+class Tokenizer extends CommentsParser {
+ constructor(options, input) {
+ super();
+ this.isLookahead = void 0;
+ this.tokens = [];
+ this.errorHandlers_readInt = {
+ invalidDigit: (pos, lineStart, curLine, radix) => {
+ if (!this.options.errorRecovery) return false;
+ this.raise(Errors.InvalidDigit, {
+ at: buildPosition(pos, lineStart, curLine),
+ radix
+ });
+ return true;
+ },
+ numericSeparatorInEscapeSequence: this.errorBuilder(Errors.NumericSeparatorInEscapeSequence),
+ unexpectedNumericSeparator: this.errorBuilder(Errors.UnexpectedNumericSeparator)
+ };
+ this.errorHandlers_readCodePoint = Object.assign({}, this.errorHandlers_readInt, {
+ invalidEscapeSequence: this.errorBuilder(Errors.InvalidEscapeSequence),
+ invalidCodePoint: this.errorBuilder(Errors.InvalidCodePoint)
+ });
+ this.errorHandlers_readStringContents_string = Object.assign({}, this.errorHandlers_readCodePoint, {
+ strictNumericEscape: (pos, lineStart, curLine) => {
+ this.recordStrictModeErrors(Errors.StrictNumericEscape, {
+ at: buildPosition(pos, lineStart, curLine)
+ });
+ },
+ unterminated: (pos, lineStart, curLine) => {
+ throw this.raise(Errors.UnterminatedString, {
+ at: buildPosition(pos - 1, lineStart, curLine)
+ });
+ }
+ });
+ this.errorHandlers_readStringContents_template = Object.assign({}, this.errorHandlers_readCodePoint, {
+ strictNumericEscape: this.errorBuilder(Errors.StrictNumericEscape),
+ unterminated: (pos, lineStart, curLine) => {
+ throw this.raise(Errors.UnterminatedTemplate, {
+ at: buildPosition(pos, lineStart, curLine)
+ });
+ }
+ });
+ this.state = new State();
+ this.state.init(options);
+ this.input = input;
+ this.length = input.length;
+ this.isLookahead = false;
+ }
+ pushToken(token) {
+ this.tokens.length = this.state.tokensLength;
+ this.tokens.push(token);
+ ++this.state.tokensLength;
+ }
+ next() {
+ this.checkKeywordEscapes();
+ if (this.options.tokens) {
+ this.pushToken(new Token(this.state));
+ }
+ this.state.lastTokStart = this.state.start;
+ this.state.lastTokEndLoc = this.state.endLoc;
+ this.state.lastTokStartLoc = this.state.startLoc;
+ this.nextToken();
+ }
+ eat(type) {
+ if (this.match(type)) {
+ this.next();
+ return true;
+ } else {
+ return false;
+ }
+ }
+ match(type) {
+ return this.state.type === type;
+ }
+ createLookaheadState(state) {
+ return {
+ pos: state.pos,
+ value: null,
+ type: state.type,
+ start: state.start,
+ end: state.end,
+ context: [this.curContext()],
+ inType: state.inType,
+ startLoc: state.startLoc,
+ lastTokEndLoc: state.lastTokEndLoc,
+ curLine: state.curLine,
+ lineStart: state.lineStart,
+ curPosition: state.curPosition
+ };
+ }
+ lookahead() {
+ const old = this.state;
+ this.state = this.createLookaheadState(old);
+ this.isLookahead = true;
+ this.nextToken();
+ this.isLookahead = false;
+ const curr = this.state;
+ this.state = old;
+ return curr;
+ }
+ nextTokenStart() {
+ return this.nextTokenStartSince(this.state.pos);
+ }
+ nextTokenStartSince(pos) {
+ skipWhiteSpace.lastIndex = pos;
+ return skipWhiteSpace.test(this.input) ? skipWhiteSpace.lastIndex : pos;
+ }
+ lookaheadCharCode() {
+ return this.input.charCodeAt(this.nextTokenStart());
+ }
+ nextTokenInLineStart() {
+ return this.nextTokenInLineStartSince(this.state.pos);
+ }
+ nextTokenInLineStartSince(pos) {
+ skipWhiteSpaceInLine.lastIndex = pos;
+ return skipWhiteSpaceInLine.test(this.input) ? skipWhiteSpaceInLine.lastIndex : pos;
+ }
+ lookaheadInLineCharCode() {
+ return this.input.charCodeAt(this.nextTokenInLineStart());
+ }
+ codePointAtPos(pos) {
+ let cp = this.input.charCodeAt(pos);
+ if ((cp & 0xfc00) === 0xd800 && ++pos < this.input.length) {
+ const trail = this.input.charCodeAt(pos);
+ if ((trail & 0xfc00) === 0xdc00) {
+ cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);
+ }
+ }
+ return cp;
+ }
+ setStrict(strict) {
+ this.state.strict = strict;
+ if (strict) {
+ this.state.strictErrors.forEach(([toParseError, at]) => this.raise(toParseError, {
+ at
+ }));
+ this.state.strictErrors.clear();
+ }
+ }
+ curContext() {
+ return this.state.context[this.state.context.length - 1];
+ }
+ nextToken() {
+ this.skipSpace();
+ this.state.start = this.state.pos;
+ if (!this.isLookahead) this.state.startLoc = this.state.curPosition();
+ if (this.state.pos >= this.length) {
+ this.finishToken(139);
+ return;
+ }
+ this.getTokenFromCode(this.codePointAtPos(this.state.pos));
+ }
+ skipBlockComment(commentEnd) {
+ let startLoc;
+ if (!this.isLookahead) startLoc = this.state.curPosition();
+ const start = this.state.pos;
+ const end = this.input.indexOf(commentEnd, start + 2);
+ if (end === -1) {
+ throw this.raise(Errors.UnterminatedComment, {
+ at: this.state.curPosition()
+ });
+ }
+ this.state.pos = end + commentEnd.length;
+ lineBreakG.lastIndex = start + 2;
+ while (lineBreakG.test(this.input) && lineBreakG.lastIndex <= end) {
+ ++this.state.curLine;
+ this.state.lineStart = lineBreakG.lastIndex;
+ }
+ if (this.isLookahead) return;
+ const comment = {
+ type: "CommentBlock",
+ value: this.input.slice(start + 2, end),
+ start,
+ end: end + commentEnd.length,
+ loc: new SourceLocation(startLoc, this.state.curPosition())
+ };
+ if (this.options.tokens) this.pushToken(comment);
+ return comment;
+ }
+ skipLineComment(startSkip) {
+ const start = this.state.pos;
+ let startLoc;
+ if (!this.isLookahead) startLoc = this.state.curPosition();
+ let ch = this.input.charCodeAt(this.state.pos += startSkip);
+ if (this.state.pos < this.length) {
+ while (!isNewLine(ch) && ++this.state.pos < this.length) {
+ ch = this.input.charCodeAt(this.state.pos);
+ }
+ }
+ if (this.isLookahead) return;
+ const end = this.state.pos;
+ const value = this.input.slice(start + startSkip, end);
+ const comment = {
+ type: "CommentLine",
+ value,
+ start,
+ end,
+ loc: new SourceLocation(startLoc, this.state.curPosition())
+ };
+ if (this.options.tokens) this.pushToken(comment);
+ return comment;
+ }
+ skipSpace() {
+ const spaceStart = this.state.pos;
+ const comments = [];
+ loop: while (this.state.pos < this.length) {
+ const ch = this.input.charCodeAt(this.state.pos);
+ switch (ch) {
+ case 32:
+ case 160:
+ case 9:
+ ++this.state.pos;
+ break;
+ case 13:
+ if (this.input.charCodeAt(this.state.pos + 1) === 10) {
+ ++this.state.pos;
+ }
+ case 10:
+ case 8232:
+ case 8233:
+ ++this.state.pos;
+ ++this.state.curLine;
+ this.state.lineStart = this.state.pos;
+ break;
+ case 47:
+ switch (this.input.charCodeAt(this.state.pos + 1)) {
+ case 42:
+ {
+ const comment = this.skipBlockComment("*/");
+ if (comment !== undefined) {
+ this.addComment(comment);
+ if (this.options.attachComment) comments.push(comment);
+ }
+ break;
+ }
+ case 47:
+ {
+ const comment = this.skipLineComment(2);
+ if (comment !== undefined) {
+ this.addComment(comment);
+ if (this.options.attachComment) comments.push(comment);
+ }
+ break;
+ }
+ default:
+ break loop;
+ }
+ break;
+ default:
+ if (isWhitespace(ch)) {
+ ++this.state.pos;
+ } else if (ch === 45 && !this.inModule && this.options.annexB) {
+ const pos = this.state.pos;
+ if (this.input.charCodeAt(pos + 1) === 45 && this.input.charCodeAt(pos + 2) === 62 && (spaceStart === 0 || this.state.lineStart > spaceStart)) {
+ const comment = this.skipLineComment(3);
+ if (comment !== undefined) {
+ this.addComment(comment);
+ if (this.options.attachComment) comments.push(comment);
+ }
+ } else {
+ break loop;
+ }
+ } else if (ch === 60 && !this.inModule && this.options.annexB) {
+ const pos = this.state.pos;
+ if (this.input.charCodeAt(pos + 1) === 33 && this.input.charCodeAt(pos + 2) === 45 && this.input.charCodeAt(pos + 3) === 45) {
+ const comment = this.skipLineComment(4);
+ if (comment !== undefined) {
+ this.addComment(comment);
+ if (this.options.attachComment) comments.push(comment);
+ }
+ } else {
+ break loop;
+ }
+ } else {
+ break loop;
+ }
+ }
+ }
+ if (comments.length > 0) {
+ const end = this.state.pos;
+ const commentWhitespace = {
+ start: spaceStart,
+ end,
+ comments,
+ leadingNode: null,
+ trailingNode: null,
+ containingNode: null
+ };
+ this.state.commentStack.push(commentWhitespace);
+ }
+ }
+ finishToken(type, val) {
+ this.state.end = this.state.pos;
+ this.state.endLoc = this.state.curPosition();
+ const prevType = this.state.type;
+ this.state.type = type;
+ this.state.value = val;
+ if (!this.isLookahead) {
+ this.updateContext(prevType);
+ }
+ }
+ replaceToken(type) {
+ this.state.type = type;
+ this.updateContext();
+ }
+ readToken_numberSign() {
+ if (this.state.pos === 0 && this.readToken_interpreter()) {
+ return;
+ }
+ const nextPos = this.state.pos + 1;
+ const next = this.codePointAtPos(nextPos);
+ if (next >= 48 && next <= 57) {
+ throw this.raise(Errors.UnexpectedDigitAfterHash, {
+ at: this.state.curPosition()
+ });
+ }
+ if (next === 123 || next === 91 && this.hasPlugin("recordAndTuple")) {
+ this.expectPlugin("recordAndTuple");
+ if (this.getPluginOption("recordAndTuple", "syntaxType") === "bar") {
+ throw this.raise(next === 123 ? Errors.RecordExpressionHashIncorrectStartSyntaxType : Errors.TupleExpressionHashIncorrectStartSyntaxType, {
+ at: this.state.curPosition()
+ });
+ }
+ this.state.pos += 2;
+ if (next === 123) {
+ this.finishToken(7);
+ } else {
+ this.finishToken(1);
+ }
+ } else if (isIdentifierStart(next)) {
+ ++this.state.pos;
+ this.finishToken(138, this.readWord1(next));
+ } else if (next === 92) {
+ ++this.state.pos;
+ this.finishToken(138, this.readWord1());
+ } else {
+ this.finishOp(27, 1);
+ }
+ }
+ readToken_dot() {
+ const next = this.input.charCodeAt(this.state.pos + 1);
+ if (next >= 48 && next <= 57) {
+ this.readNumber(true);
+ return;
+ }
+ if (next === 46 && this.input.charCodeAt(this.state.pos + 2) === 46) {
+ this.state.pos += 3;
+ this.finishToken(21);
+ } else {
+ ++this.state.pos;
+ this.finishToken(16);
+ }
+ }
+ readToken_slash() {
+ const next = this.input.charCodeAt(this.state.pos + 1);
+ if (next === 61) {
+ this.finishOp(31, 2);
+ } else {
+ this.finishOp(56, 1);
+ }
+ }
+ readToken_interpreter() {
+ if (this.state.pos !== 0 || this.length < 2) return false;
+ let ch = this.input.charCodeAt(this.state.pos + 1);
+ if (ch !== 33) return false;
+ const start = this.state.pos;
+ this.state.pos += 1;
+ while (!isNewLine(ch) && ++this.state.pos < this.length) {
+ ch = this.input.charCodeAt(this.state.pos);
+ }
+ const value = this.input.slice(start + 2, this.state.pos);
+ this.finishToken(28, value);
+ return true;
+ }
+ readToken_mult_modulo(code) {
+ let type = code === 42 ? 55 : 54;
+ let width = 1;
+ let next = this.input.charCodeAt(this.state.pos + 1);
+ if (code === 42 && next === 42) {
+ width++;
+ next = this.input.charCodeAt(this.state.pos + 2);
+ type = 57;
+ }
+ if (next === 61 && !this.state.inType) {
+ width++;
+ type = code === 37 ? 33 : 30;
+ }
+ this.finishOp(type, width);
+ }
+ readToken_pipe_amp(code) {
+ const next = this.input.charCodeAt(this.state.pos + 1);
+ if (next === code) {
+ if (this.input.charCodeAt(this.state.pos + 2) === 61) {
+ this.finishOp(30, 3);
+ } else {
+ this.finishOp(code === 124 ? 41 : 42, 2);
+ }
+ return;
+ }
+ if (code === 124) {
+ if (next === 62) {
+ this.finishOp(39, 2);
+ return;
+ }
+ if (this.hasPlugin("recordAndTuple") && next === 125) {
+ if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") {
+ throw this.raise(Errors.RecordExpressionBarIncorrectEndSyntaxType, {
+ at: this.state.curPosition()
+ });
+ }
+ this.state.pos += 2;
+ this.finishToken(9);
+ return;
+ }
+ if (this.hasPlugin("recordAndTuple") && next === 93) {
+ if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") {
+ throw this.raise(Errors.TupleExpressionBarIncorrectEndSyntaxType, {
+ at: this.state.curPosition()
+ });
+ }
+ this.state.pos += 2;
+ this.finishToken(4);
+ return;
+ }
+ }
+ if (next === 61) {
+ this.finishOp(30, 2);
+ return;
+ }
+ this.finishOp(code === 124 ? 43 : 45, 1);
+ }
+ readToken_caret() {
+ const next = this.input.charCodeAt(this.state.pos + 1);
+ if (next === 61 && !this.state.inType) {
+ this.finishOp(32, 2);
+ } else if (next === 94 && this.hasPlugin(["pipelineOperator", {
+ proposal: "hack",
+ topicToken: "^^"
+ }])) {
+ this.finishOp(37, 2);
+ const lookaheadCh = this.input.codePointAt(this.state.pos);
+ if (lookaheadCh === 94) {
+ this.unexpected();
+ }
+ } else {
+ this.finishOp(44, 1);
+ }
+ }
+ readToken_atSign() {
+ const next = this.input.charCodeAt(this.state.pos + 1);
+ if (next === 64 && this.hasPlugin(["pipelineOperator", {
+ proposal: "hack",
+ topicToken: "@@"
+ }])) {
+ this.finishOp(38, 2);
+ } else {
+ this.finishOp(26, 1);
+ }
+ }
+ readToken_plus_min(code) {
+ const next = this.input.charCodeAt(this.state.pos + 1);
+ if (next === code) {
+ this.finishOp(34, 2);
+ return;
+ }
+ if (next === 61) {
+ this.finishOp(30, 2);
+ } else {
+ this.finishOp(53, 1);
+ }
+ }
+ readToken_lt() {
+ const {
+ pos
+ } = this.state;
+ const next = this.input.charCodeAt(pos + 1);
+ if (next === 60) {
+ if (this.input.charCodeAt(pos + 2) === 61) {
+ this.finishOp(30, 3);
+ return;
+ }
+ this.finishOp(51, 2);
+ return;
+ }
+ if (next === 61) {
+ this.finishOp(49, 2);
+ return;
+ }
+ this.finishOp(47, 1);
+ }
+ readToken_gt() {
+ const {
+ pos
+ } = this.state;
+ const next = this.input.charCodeAt(pos + 1);
+ if (next === 62) {
+ const size = this.input.charCodeAt(pos + 2) === 62 ? 3 : 2;
+ if (this.input.charCodeAt(pos + size) === 61) {
+ this.finishOp(30, size + 1);
+ return;
+ }
+ this.finishOp(52, size);
+ return;
+ }
+ if (next === 61) {
+ this.finishOp(49, 2);
+ return;
+ }
+ this.finishOp(48, 1);
+ }
+ readToken_eq_excl(code) {
+ const next = this.input.charCodeAt(this.state.pos + 1);
+ if (next === 61) {
+ this.finishOp(46, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2);
+ return;
+ }
+ if (code === 61 && next === 62) {
+ this.state.pos += 2;
+ this.finishToken(19);
+ return;
+ }
+ this.finishOp(code === 61 ? 29 : 35, 1);
+ }
+ readToken_question() {
+ const next = this.input.charCodeAt(this.state.pos + 1);
+ const next2 = this.input.charCodeAt(this.state.pos + 2);
+ if (next === 63) {
+ if (next2 === 61) {
+ this.finishOp(30, 3);
+ } else {
+ this.finishOp(40, 2);
+ }
+ } else if (next === 46 && !(next2 >= 48 && next2 <= 57)) {
+ this.state.pos += 2;
+ this.finishToken(18);
+ } else {
+ ++this.state.pos;
+ this.finishToken(17);
+ }
+ }
+ getTokenFromCode(code) {
+ switch (code) {
+ case 46:
+ this.readToken_dot();
+ return;
+ case 40:
+ ++this.state.pos;
+ this.finishToken(10);
+ return;
+ case 41:
+ ++this.state.pos;
+ this.finishToken(11);
+ return;
+ case 59:
+ ++this.state.pos;
+ this.finishToken(13);
+ return;
+ case 44:
+ ++this.state.pos;
+ this.finishToken(12);
+ return;
+ case 91:
+ if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) {
+ if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") {
+ throw this.raise(Errors.TupleExpressionBarIncorrectStartSyntaxType, {
+ at: this.state.curPosition()
+ });
+ }
+ this.state.pos += 2;
+ this.finishToken(2);
+ } else {
+ ++this.state.pos;
+ this.finishToken(0);
+ }
+ return;
+ case 93:
+ ++this.state.pos;
+ this.finishToken(3);
+ return;
+ case 123:
+ if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) {
+ if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") {
+ throw this.raise(Errors.RecordExpressionBarIncorrectStartSyntaxType, {
+ at: this.state.curPosition()
+ });
+ }
+ this.state.pos += 2;
+ this.finishToken(6);
+ } else {
+ ++this.state.pos;
+ this.finishToken(5);
+ }
+ return;
+ case 125:
+ ++this.state.pos;
+ this.finishToken(8);
+ return;
+ case 58:
+ if (this.hasPlugin("functionBind") && this.input.charCodeAt(this.state.pos + 1) === 58) {
+ this.finishOp(15, 2);
+ } else {
+ ++this.state.pos;
+ this.finishToken(14);
+ }
+ return;
+ case 63:
+ this.readToken_question();
+ return;
+ case 96:
+ this.readTemplateToken();
+ return;
+ case 48:
+ {
+ const next = this.input.charCodeAt(this.state.pos + 1);
+ if (next === 120 || next === 88) {
+ this.readRadixNumber(16);
+ return;
+ }
+ if (next === 111 || next === 79) {
+ this.readRadixNumber(8);
+ return;
+ }
+ if (next === 98 || next === 66) {
+ this.readRadixNumber(2);
+ return;
+ }
+ }
+ case 49:
+ case 50:
+ case 51:
+ case 52:
+ case 53:
+ case 54:
+ case 55:
+ case 56:
+ case 57:
+ this.readNumber(false);
+ return;
+ case 34:
+ case 39:
+ this.readString(code);
+ return;
+ case 47:
+ this.readToken_slash();
+ return;
+ case 37:
+ case 42:
+ this.readToken_mult_modulo(code);
+ return;
+ case 124:
+ case 38:
+ this.readToken_pipe_amp(code);
+ return;
+ case 94:
+ this.readToken_caret();
+ return;
+ case 43:
+ case 45:
+ this.readToken_plus_min(code);
+ return;
+ case 60:
+ this.readToken_lt();
+ return;
+ case 62:
+ this.readToken_gt();
+ return;
+ case 61:
+ case 33:
+ this.readToken_eq_excl(code);
+ return;
+ case 126:
+ this.finishOp(36, 1);
+ return;
+ case 64:
+ this.readToken_atSign();
+ return;
+ case 35:
+ this.readToken_numberSign();
+ return;
+ case 92:
+ this.readWord();
+ return;
+ default:
+ if (isIdentifierStart(code)) {
+ this.readWord(code);
+ return;
+ }
+ }
+ throw this.raise(Errors.InvalidOrUnexpectedToken, {
+ at: this.state.curPosition(),
+ unexpected: String.fromCodePoint(code)
+ });
+ }
+ finishOp(type, size) {
+ const str = this.input.slice(this.state.pos, this.state.pos + size);
+ this.state.pos += size;
+ this.finishToken(type, str);
+ }
+ readRegexp() {
+ const startLoc = this.state.startLoc;
+ const start = this.state.start + 1;
+ let escaped, inClass;
+ let {
+ pos
+ } = this.state;
+ for (;; ++pos) {
+ if (pos >= this.length) {
+ throw this.raise(Errors.UnterminatedRegExp, {
+ at: createPositionWithColumnOffset(startLoc, 1)
+ });
+ }
+ const ch = this.input.charCodeAt(pos);
+ if (isNewLine(ch)) {
+ throw this.raise(Errors.UnterminatedRegExp, {
+ at: createPositionWithColumnOffset(startLoc, 1)
+ });
+ }
+ if (escaped) {
+ escaped = false;
+ } else {
+ if (ch === 91) {
+ inClass = true;
+ } else if (ch === 93 && inClass) {
+ inClass = false;
+ } else if (ch === 47 && !inClass) {
+ break;
+ }
+ escaped = ch === 92;
+ }
+ }
+ const content = this.input.slice(start, pos);
+ ++pos;
+ let mods = "";
+ const nextPos = () => createPositionWithColumnOffset(startLoc, pos + 2 - start);
+ while (pos < this.length) {
+ const cp = this.codePointAtPos(pos);
+ const char = String.fromCharCode(cp);
+ if (VALID_REGEX_FLAGS.has(cp)) {
+ if (cp === 118) {
+ if (mods.includes("u")) {
+ this.raise(Errors.IncompatibleRegExpUVFlags, {
+ at: nextPos()
+ });
+ }
+ } else if (cp === 117) {
+ if (mods.includes("v")) {
+ this.raise(Errors.IncompatibleRegExpUVFlags, {
+ at: nextPos()
+ });
+ }
+ }
+ if (mods.includes(char)) {
+ this.raise(Errors.DuplicateRegExpFlags, {
+ at: nextPos()
+ });
+ }
+ } else if (isIdentifierChar(cp) || cp === 92) {
+ this.raise(Errors.MalformedRegExpFlags, {
+ at: nextPos()
+ });
+ } else {
+ break;
+ }
+ ++pos;
+ mods += char;
+ }
+ this.state.pos = pos;
+ this.finishToken(137, {
+ pattern: content,
+ flags: mods
+ });
+ }
+ readInt(radix, len, forceLen = false, allowNumSeparator = true) {
+ const {
+ n,
+ pos
+ } = readInt(this.input, this.state.pos, this.state.lineStart, this.state.curLine, radix, len, forceLen, allowNumSeparator, this.errorHandlers_readInt, false);
+ this.state.pos = pos;
+ return n;
+ }
+ readRadixNumber(radix) {
+ const startLoc = this.state.curPosition();
+ let isBigInt = false;
+ this.state.pos += 2;
+ const val = this.readInt(radix);
+ if (val == null) {
+ this.raise(Errors.InvalidDigit, {
+ at: createPositionWithColumnOffset(startLoc, 2),
+ radix
+ });
+ }
+ const next = this.input.charCodeAt(this.state.pos);
+ if (next === 110) {
+ ++this.state.pos;
+ isBigInt = true;
+ } else if (next === 109) {
+ throw this.raise(Errors.InvalidDecimal, {
+ at: startLoc
+ });
+ }
+ if (isIdentifierStart(this.codePointAtPos(this.state.pos))) {
+ throw this.raise(Errors.NumberIdentifier, {
+ at: this.state.curPosition()
+ });
+ }
+ if (isBigInt) {
+ const str = this.input.slice(startLoc.index, this.state.pos).replace(/[_n]/g, "");
+ this.finishToken(135, str);
+ return;
+ }
+ this.finishToken(134, val);
+ }
+ readNumber(startsWithDot) {
+ const start = this.state.pos;
+ const startLoc = this.state.curPosition();
+ let isFloat = false;
+ let isBigInt = false;
+ let isDecimal = false;
+ let hasExponent = false;
+ let isOctal = false;
+ if (!startsWithDot && this.readInt(10) === null) {
+ this.raise(Errors.InvalidNumber, {
+ at: this.state.curPosition()
+ });
+ }
+ const hasLeadingZero = this.state.pos - start >= 2 && this.input.charCodeAt(start) === 48;
+ if (hasLeadingZero) {
+ const integer = this.input.slice(start, this.state.pos);
+ this.recordStrictModeErrors(Errors.StrictOctalLiteral, {
+ at: startLoc
+ });
+ if (!this.state.strict) {
+ const underscorePos = integer.indexOf("_");
+ if (underscorePos > 0) {
+ this.raise(Errors.ZeroDigitNumericSeparator, {
+ at: createPositionWithColumnOffset(startLoc, underscorePos)
+ });
+ }
+ }
+ isOctal = hasLeadingZero && !/[89]/.test(integer);
+ }
+ let next = this.input.charCodeAt(this.state.pos);
+ if (next === 46 && !isOctal) {
+ ++this.state.pos;
+ this.readInt(10);
+ isFloat = true;
+ next = this.input.charCodeAt(this.state.pos);
+ }
+ if ((next === 69 || next === 101) && !isOctal) {
+ next = this.input.charCodeAt(++this.state.pos);
+ if (next === 43 || next === 45) {
+ ++this.state.pos;
+ }
+ if (this.readInt(10) === null) {
+ this.raise(Errors.InvalidOrMissingExponent, {
+ at: startLoc
+ });
+ }
+ isFloat = true;
+ hasExponent = true;
+ next = this.input.charCodeAt(this.state.pos);
+ }
+ if (next === 110) {
+ if (isFloat || hasLeadingZero) {
+ this.raise(Errors.InvalidBigIntLiteral, {
+ at: startLoc
+ });
+ }
+ ++this.state.pos;
+ isBigInt = true;
+ }
+ if (next === 109) {
+ this.expectPlugin("decimal", this.state.curPosition());
+ if (hasExponent || hasLeadingZero) {
+ this.raise(Errors.InvalidDecimal, {
+ at: startLoc
+ });
+ }
+ ++this.state.pos;
+ isDecimal = true;
+ }
+ if (isIdentifierStart(this.codePointAtPos(this.state.pos))) {
+ throw this.raise(Errors.NumberIdentifier, {
+ at: this.state.curPosition()
+ });
+ }
+ const str = this.input.slice(start, this.state.pos).replace(/[_mn]/g, "");
+ if (isBigInt) {
+ this.finishToken(135, str);
+ return;
+ }
+ if (isDecimal) {
+ this.finishToken(136, str);
+ return;
+ }
+ const val = isOctal ? parseInt(str, 8) : parseFloat(str);
+ this.finishToken(134, val);
+ }
+ readCodePoint(throwOnInvalid) {
+ const {
+ code,
+ pos
+ } = readCodePoint(this.input, this.state.pos, this.state.lineStart, this.state.curLine, throwOnInvalid, this.errorHandlers_readCodePoint);
+ this.state.pos = pos;
+ return code;
+ }
+ readString(quote) {
+ const {
+ str,
+ pos,
+ curLine,
+ lineStart
+ } = readStringContents(quote === 34 ? "double" : "single", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_string);
+ this.state.pos = pos + 1;
+ this.state.lineStart = lineStart;
+ this.state.curLine = curLine;
+ this.finishToken(133, str);
+ }
+ readTemplateContinuation() {
+ if (!this.match(8)) {
+ this.unexpected(null, 8);
+ }
+ this.state.pos--;
+ this.readTemplateToken();
+ }
+ readTemplateToken() {
+ const opening = this.input[this.state.pos];
+ const {
+ str,
+ firstInvalidLoc,
+ pos,
+ curLine,
+ lineStart
+ } = readStringContents("template", this.input, this.state.pos + 1, this.state.lineStart, this.state.curLine, this.errorHandlers_readStringContents_template);
+ this.state.pos = pos + 1;
+ this.state.lineStart = lineStart;
+ this.state.curLine = curLine;
+ if (firstInvalidLoc) {
+ this.state.firstInvalidTemplateEscapePos = new Position(firstInvalidLoc.curLine, firstInvalidLoc.pos - firstInvalidLoc.lineStart, firstInvalidLoc.pos);
+ }
+ if (this.input.codePointAt(pos) === 96) {
+ this.finishToken(24, firstInvalidLoc ? null : opening + str + "`");
+ } else {
+ this.state.pos++;
+ this.finishToken(25, firstInvalidLoc ? null : opening + str + "${");
+ }
+ }
+ recordStrictModeErrors(toParseError, {
+ at
+ }) {
+ const index = at.index;
+ if (this.state.strict && !this.state.strictErrors.has(index)) {
+ this.raise(toParseError, {
+ at
+ });
+ } else {
+ this.state.strictErrors.set(index, [toParseError, at]);
+ }
+ }
+ readWord1(firstCode) {
+ this.state.containsEsc = false;
+ let word = "";
+ const start = this.state.pos;
+ let chunkStart = this.state.pos;
+ if (firstCode !== undefined) {
+ this.state.pos += firstCode <= 0xffff ? 1 : 2;
+ }
+ while (this.state.pos < this.length) {
+ const ch = this.codePointAtPos(this.state.pos);
+ if (isIdentifierChar(ch)) {
+ this.state.pos += ch <= 0xffff ? 1 : 2;
+ } else if (ch === 92) {
+ this.state.containsEsc = true;
+ word += this.input.slice(chunkStart, this.state.pos);
+ const escStart = this.state.curPosition();
+ const identifierCheck = this.state.pos === start ? isIdentifierStart : isIdentifierChar;
+ if (this.input.charCodeAt(++this.state.pos) !== 117) {
+ this.raise(Errors.MissingUnicodeEscape, {
+ at: this.state.curPosition()
+ });
+ chunkStart = this.state.pos - 1;
+ continue;
+ }
+ ++this.state.pos;
+ const esc = this.readCodePoint(true);
+ if (esc !== null) {
+ if (!identifierCheck(esc)) {
+ this.raise(Errors.EscapedCharNotAnIdentifier, {
+ at: escStart
+ });
+ }
+ word += String.fromCodePoint(esc);
+ }
+ chunkStart = this.state.pos;
+ } else {
+ break;
+ }
+ }
+ return word + this.input.slice(chunkStart, this.state.pos);
+ }
+ readWord(firstCode) {
+ const word = this.readWord1(firstCode);
+ const type = keywords$1.get(word);
+ if (type !== undefined) {
+ this.finishToken(type, tokenLabelName(type));
+ } else {
+ this.finishToken(132, word);
+ }
+ }
+ checkKeywordEscapes() {
+ const {
+ type
+ } = this.state;
+ if (tokenIsKeyword(type) && this.state.containsEsc) {
+ this.raise(Errors.InvalidEscapedReservedWord, {
+ at: this.state.startLoc,
+ reservedWord: tokenLabelName(type)
+ });
+ }
+ }
+ raise(toParseError, raiseProperties) {
+ const {
+ at
+ } = raiseProperties,
+ details = _objectWithoutPropertiesLoose(raiseProperties, _excluded);
+ const loc = at instanceof Position ? at : at.loc.start;
+ const error = toParseError({
+ loc,
+ details
+ });
+ if (!this.options.errorRecovery) throw error;
+ if (!this.isLookahead) this.state.errors.push(error);
+ return error;
+ }
+ raiseOverwrite(toParseError, raiseProperties) {
+ const {
+ at
+ } = raiseProperties,
+ details = _objectWithoutPropertiesLoose(raiseProperties, _excluded2);
+ const loc = at instanceof Position ? at : at.loc.start;
+ const pos = loc.index;
+ const errors = this.state.errors;
+ for (let i = errors.length - 1; i >= 0; i--) {
+ const error = errors[i];
+ if (error.loc.index === pos) {
+ return errors[i] = toParseError({
+ loc,
+ details
+ });
+ }
+ if (error.loc.index < pos) break;
+ }
+ return this.raise(toParseError, raiseProperties);
+ }
+ updateContext(prevType) {}
+ unexpected(loc, type) {
+ throw this.raise(Errors.UnexpectedToken, {
+ expected: type ? tokenLabelName(type) : null,
+ at: loc != null ? loc : this.state.startLoc
+ });
+ }
+ expectPlugin(pluginName, loc) {
+ if (this.hasPlugin(pluginName)) {
+ return true;
+ }
+ throw this.raise(Errors.MissingPlugin, {
+ at: loc != null ? loc : this.state.startLoc,
+ missingPlugin: [pluginName]
+ });
+ }
+ expectOnePlugin(pluginNames) {
+ if (!pluginNames.some(name => this.hasPlugin(name))) {
+ throw this.raise(Errors.MissingOneOfPlugins, {
+ at: this.state.startLoc,
+ missingPlugin: pluginNames
+ });
+ }
+ }
+ errorBuilder(error) {
+ return (pos, lineStart, curLine) => {
+ this.raise(error, {
+ at: buildPosition(pos, lineStart, curLine)
+ });
+ };
+ }
+}
+class ClassScope {
+ constructor() {
+ this.privateNames = new Set();
+ this.loneAccessors = new Map();
+ this.undefinedPrivateNames = new Map();
+ }
+}
+class ClassScopeHandler {
+ constructor(parser) {
+ this.parser = void 0;
+ this.stack = [];
+ this.undefinedPrivateNames = new Map();
+ this.parser = parser;
+ }
+ current() {
+ return this.stack[this.stack.length - 1];
+ }
+ enter() {
+ this.stack.push(new ClassScope());
+ }
+ exit() {
+ const oldClassScope = this.stack.pop();
+ const current = this.current();
+ for (const [name, loc] of Array.from(oldClassScope.undefinedPrivateNames)) {
+ if (current) {
+ if (!current.undefinedPrivateNames.has(name)) {
+ current.undefinedPrivateNames.set(name, loc);
+ }
+ } else {
+ this.parser.raise(Errors.InvalidPrivateFieldResolution, {
+ at: loc,
+ identifierName: name
+ });
+ }
+ }
+ }
+ declarePrivateName(name, elementType, loc) {
+ const {
+ privateNames,
+ loneAccessors,
+ undefinedPrivateNames
+ } = this.current();
+ let redefined = privateNames.has(name);
+ if (elementType & 3) {
+ const accessor = redefined && loneAccessors.get(name);
+ if (accessor) {
+ const oldStatic = accessor & 4;
+ const newStatic = elementType & 4;
+ const oldKind = accessor & 3;
+ const newKind = elementType & 3;
+ redefined = oldKind === newKind || oldStatic !== newStatic;
+ if (!redefined) loneAccessors.delete(name);
+ } else if (!redefined) {
+ loneAccessors.set(name, elementType);
+ }
+ }
+ if (redefined) {
+ this.parser.raise(Errors.PrivateNameRedeclaration, {
+ at: loc,
+ identifierName: name
+ });
+ }
+ privateNames.add(name);
+ undefinedPrivateNames.delete(name);
+ }
+ usePrivateName(name, loc) {
+ let classScope;
+ for (classScope of this.stack) {
+ if (classScope.privateNames.has(name)) return;
+ }
+ if (classScope) {
+ classScope.undefinedPrivateNames.set(name, loc);
+ } else {
+ this.parser.raise(Errors.InvalidPrivateFieldResolution, {
+ at: loc,
+ identifierName: name
+ });
+ }
+ }
+}
+class ExpressionScope {
+ constructor(type = 0) {
+ this.type = type;
+ }
+ canBeArrowParameterDeclaration() {
+ return this.type === 2 || this.type === 1;
+ }
+ isCertainlyParameterDeclaration() {
+ return this.type === 3;
+ }
+}
+class ArrowHeadParsingScope extends ExpressionScope {
+ constructor(type) {
+ super(type);
+ this.declarationErrors = new Map();
+ }
+ recordDeclarationError(ParsingErrorClass, {
+ at
+ }) {
+ const index = at.index;
+ this.declarationErrors.set(index, [ParsingErrorClass, at]);
+ }
+ clearDeclarationError(index) {
+ this.declarationErrors.delete(index);
+ }
+ iterateErrors(iterator) {
+ this.declarationErrors.forEach(iterator);
+ }
+}
+class ExpressionScopeHandler {
+ constructor(parser) {
+ this.parser = void 0;
+ this.stack = [new ExpressionScope()];
+ this.parser = parser;
+ }
+ enter(scope) {
+ this.stack.push(scope);
+ }
+ exit() {
+ this.stack.pop();
+ }
+ recordParameterInitializerError(toParseError, {
+ at: node
+ }) {
+ const origin = {
+ at: node.loc.start
+ };
+ const {
+ stack
+ } = this;
+ let i = stack.length - 1;
+ let scope = stack[i];
+ while (!scope.isCertainlyParameterDeclaration()) {
+ if (scope.canBeArrowParameterDeclaration()) {
+ scope.recordDeclarationError(toParseError, origin);
+ } else {
+ return;
+ }
+ scope = stack[--i];
+ }
+ this.parser.raise(toParseError, origin);
+ }
+ recordArrowParameterBindingError(error, {
+ at: node
+ }) {
+ const {
+ stack
+ } = this;
+ const scope = stack[stack.length - 1];
+ const origin = {
+ at: node.loc.start
+ };
+ if (scope.isCertainlyParameterDeclaration()) {
+ this.parser.raise(error, origin);
+ } else if (scope.canBeArrowParameterDeclaration()) {
+ scope.recordDeclarationError(error, origin);
+ } else {
+ return;
+ }
+ }
+ recordAsyncArrowParametersError({
+ at
+ }) {
+ const {
+ stack
+ } = this;
+ let i = stack.length - 1;
+ let scope = stack[i];
+ while (scope.canBeArrowParameterDeclaration()) {
+ if (scope.type === 2) {
+ scope.recordDeclarationError(Errors.AwaitBindingIdentifier, {
+ at
+ });
+ }
+ scope = stack[--i];
+ }
+ }
+ validateAsPattern() {
+ const {
+ stack
+ } = this;
+ const currentScope = stack[stack.length - 1];
+ if (!currentScope.canBeArrowParameterDeclaration()) return;
+ currentScope.iterateErrors(([toParseError, loc]) => {
+ this.parser.raise(toParseError, {
+ at: loc
+ });
+ let i = stack.length - 2;
+ let scope = stack[i];
+ while (scope.canBeArrowParameterDeclaration()) {
+ scope.clearDeclarationError(loc.index);
+ scope = stack[--i];
+ }
+ });
+ }
+}
+function newParameterDeclarationScope() {
+ return new ExpressionScope(3);
+}
+function newArrowHeadScope() {
+ return new ArrowHeadParsingScope(1);
+}
+function newAsyncArrowScope() {
+ return new ArrowHeadParsingScope(2);
+}
+function newExpressionScope() {
+ return new ExpressionScope();
+}
+class ProductionParameterHandler {
+ constructor() {
+ this.stacks = [];
+ }
+ enter(flags) {
+ this.stacks.push(flags);
+ }
+ exit() {
+ this.stacks.pop();
+ }
+ currentFlags() {
+ return this.stacks[this.stacks.length - 1];
+ }
+ get hasAwait() {
+ return (this.currentFlags() & 2) > 0;
+ }
+ get hasYield() {
+ return (this.currentFlags() & 1) > 0;
+ }
+ get hasReturn() {
+ return (this.currentFlags() & 4) > 0;
+ }
+ get hasIn() {
+ return (this.currentFlags() & 8) > 0;
+ }
+}
+function functionFlags(isAsync, isGenerator) {
+ return (isAsync ? 2 : 0) | (isGenerator ? 1 : 0);
+}
+class UtilParser extends Tokenizer {
+ addExtra(node, key, value, enumerable = true) {
+ if (!node) return;
+ const extra = node.extra = node.extra || {};
+ if (enumerable) {
+ extra[key] = value;
+ } else {
+ Object.defineProperty(extra, key, {
+ enumerable,
+ value
+ });
+ }
+ }
+ isContextual(token) {
+ return this.state.type === token && !this.state.containsEsc;
+ }
+ isUnparsedContextual(nameStart, name) {
+ const nameEnd = nameStart + name.length;
+ if (this.input.slice(nameStart, nameEnd) === name) {
+ const nextCh = this.input.charCodeAt(nameEnd);
+ return !(isIdentifierChar(nextCh) || (nextCh & 0xfc00) === 0xd800);
+ }
+ return false;
+ }
+ isLookaheadContextual(name) {
+ const next = this.nextTokenStart();
+ return this.isUnparsedContextual(next, name);
+ }
+ eatContextual(token) {
+ if (this.isContextual(token)) {
+ this.next();
+ return true;
+ }
+ return false;
+ }
+ expectContextual(token, toParseError) {
+ if (!this.eatContextual(token)) {
+ if (toParseError != null) {
+ throw this.raise(toParseError, {
+ at: this.state.startLoc
+ });
+ }
+ this.unexpected(null, token);
+ }
+ }
+ canInsertSemicolon() {
+ return this.match(139) || this.match(8) || this.hasPrecedingLineBreak();
+ }
+ hasPrecedingLineBreak() {
+ return lineBreak.test(this.input.slice(this.state.lastTokEndLoc.index, this.state.start));
+ }
+ hasFollowingLineBreak() {
+ skipWhiteSpaceToLineBreak.lastIndex = this.state.end;
+ return skipWhiteSpaceToLineBreak.test(this.input);
+ }
+ isLineTerminator() {
+ return this.eat(13) || this.canInsertSemicolon();
+ }
+ semicolon(allowAsi = true) {
+ if (allowAsi ? this.isLineTerminator() : this.eat(13)) return;
+ this.raise(Errors.MissingSemicolon, {
+ at: this.state.lastTokEndLoc
+ });
+ }
+ expect(type, loc) {
+ this.eat(type) || this.unexpected(loc, type);
+ }
+ tryParse(fn, oldState = this.state.clone()) {
+ const abortSignal = {
+ node: null
+ };
+ try {
+ const node = fn((node = null) => {
+ abortSignal.node = node;
+ throw abortSignal;
+ });
+ if (this.state.errors.length > oldState.errors.length) {
+ const failState = this.state;
+ this.state = oldState;
+ this.state.tokensLength = failState.tokensLength;
+ return {
+ node,
+ error: failState.errors[oldState.errors.length],
+ thrown: false,
+ aborted: false,
+ failState
+ };
+ }
+ return {
+ node,
+ error: null,
+ thrown: false,
+ aborted: false,
+ failState: null
+ };
+ } catch (error) {
+ const failState = this.state;
+ this.state = oldState;
+ if (error instanceof SyntaxError) {
+ return {
+ node: null,
+ error,
+ thrown: true,
+ aborted: false,
+ failState
+ };
+ }
+ if (error === abortSignal) {
+ return {
+ node: abortSignal.node,
+ error: null,
+ thrown: false,
+ aborted: true,
+ failState
+ };
+ }
+ throw error;
+ }
+ }
+ checkExpressionErrors(refExpressionErrors, andThrow) {
+ if (!refExpressionErrors) return false;
+ const {
+ shorthandAssignLoc,
+ doubleProtoLoc,
+ privateKeyLoc,
+ optionalParametersLoc
+ } = refExpressionErrors;
+ const hasErrors = !!shorthandAssignLoc || !!doubleProtoLoc || !!optionalParametersLoc || !!privateKeyLoc;
+ if (!andThrow) {
+ return hasErrors;
+ }
+ if (shorthandAssignLoc != null) {
+ this.raise(Errors.InvalidCoverInitializedName, {
+ at: shorthandAssignLoc
+ });
+ }
+ if (doubleProtoLoc != null) {
+ this.raise(Errors.DuplicateProto, {
+ at: doubleProtoLoc
+ });
+ }
+ if (privateKeyLoc != null) {
+ this.raise(Errors.UnexpectedPrivateField, {
+ at: privateKeyLoc
+ });
+ }
+ if (optionalParametersLoc != null) {
+ this.unexpected(optionalParametersLoc);
+ }
+ }
+ isLiteralPropertyName() {
+ return tokenIsLiteralPropertyName(this.state.type);
+ }
+ isPrivateName(node) {
+ return node.type === "PrivateName";
+ }
+ getPrivateNameSV(node) {
+ return node.id.name;
+ }
+ hasPropertyAsPrivateName(node) {
+ return (node.type === "MemberExpression" || node.type === "OptionalMemberExpression") && this.isPrivateName(node.property);
+ }
+ isObjectProperty(node) {
+ return node.type === "ObjectProperty";
+ }
+ isObjectMethod(node) {
+ return node.type === "ObjectMethod";
+ }
+ initializeScopes(inModule = this.options.sourceType === "module") {
+ const oldLabels = this.state.labels;
+ this.state.labels = [];
+ const oldExportedIdentifiers = this.exportedIdentifiers;
+ this.exportedIdentifiers = new Set();
+ const oldInModule = this.inModule;
+ this.inModule = inModule;
+ const oldScope = this.scope;
+ const ScopeHandler = this.getScopeHandler();
+ this.scope = new ScopeHandler(this, inModule);
+ const oldProdParam = this.prodParam;
+ this.prodParam = new ProductionParameterHandler();
+ const oldClassScope = this.classScope;
+ this.classScope = new ClassScopeHandler(this);
+ const oldExpressionScope = this.expressionScope;
+ this.expressionScope = new ExpressionScopeHandler(this);
+ return () => {
+ this.state.labels = oldLabels;
+ this.exportedIdentifiers = oldExportedIdentifiers;
+ this.inModule = oldInModule;
+ this.scope = oldScope;
+ this.prodParam = oldProdParam;
+ this.classScope = oldClassScope;
+ this.expressionScope = oldExpressionScope;
+ };
+ }
+ enterInitialScopes() {
+ let paramFlags = 0;
+ if (this.inModule) {
+ paramFlags |= 2;
+ }
+ this.scope.enter(1);
+ this.prodParam.enter(paramFlags);
+ }
+ checkDestructuringPrivate(refExpressionErrors) {
+ const {
+ privateKeyLoc
+ } = refExpressionErrors;
+ if (privateKeyLoc !== null) {
+ this.expectPlugin("destructuringPrivate", privateKeyLoc);
+ }
+ }
+}
+class ExpressionErrors {
+ constructor() {
+ this.shorthandAssignLoc = null;
+ this.doubleProtoLoc = null;
+ this.privateKeyLoc = null;
+ this.optionalParametersLoc = null;
+ }
+}
+class Node {
+ constructor(parser, pos, loc) {
+ this.type = "";
+ this.start = pos;
+ this.end = 0;
+ this.loc = new SourceLocation(loc);
+ if (parser != null && parser.options.ranges) this.range = [pos, 0];
+ if (parser != null && parser.filename) this.loc.filename = parser.filename;
+ }
+}
+const NodePrototype = Node.prototype;
+{
+ NodePrototype.__clone = function () {
+ const newNode = new Node(undefined, this.start, this.loc.start);
+ const keys = Object.keys(this);
+ for (let i = 0, length = keys.length; i < length; i++) {
+ const key = keys[i];
+ if (key !== "leadingComments" && key !== "trailingComments" && key !== "innerComments") {
+ newNode[key] = this[key];
+ }
+ }
+ return newNode;
+ };
+}
+function clonePlaceholder(node) {
+ return cloneIdentifier(node);
+}
+function cloneIdentifier(node) {
+ const {
+ type,
+ start,
+ end,
+ loc,
+ range,
+ extra,
+ name
+ } = node;
+ const cloned = Object.create(NodePrototype);
+ cloned.type = type;
+ cloned.start = start;
+ cloned.end = end;
+ cloned.loc = loc;
+ cloned.range = range;
+ cloned.extra = extra;
+ cloned.name = name;
+ if (type === "Placeholder") {
+ cloned.expectedNode = node.expectedNode;
+ }
+ return cloned;
+}
+function cloneStringLiteral(node) {
+ const {
+ type,
+ start,
+ end,
+ loc,
+ range,
+ extra
+ } = node;
+ if (type === "Placeholder") {
+ return clonePlaceholder(node);
+ }
+ const cloned = Object.create(NodePrototype);
+ cloned.type = type;
+ cloned.start = start;
+ cloned.end = end;
+ cloned.loc = loc;
+ cloned.range = range;
+ if (node.raw !== undefined) {
+ cloned.raw = node.raw;
+ } else {
+ cloned.extra = extra;
+ }
+ cloned.value = node.value;
+ return cloned;
+}
+class NodeUtils extends UtilParser {
+ startNode() {
+ return new Node(this, this.state.start, this.state.startLoc);
+ }
+ startNodeAt(loc) {
+ return new Node(this, loc.index, loc);
+ }
+ startNodeAtNode(type) {
+ return this.startNodeAt(type.loc.start);
+ }
+ finishNode(node, type) {
+ return this.finishNodeAt(node, type, this.state.lastTokEndLoc);
+ }
+ finishNodeAt(node, type, endLoc) {
+ node.type = type;
+ node.end = endLoc.index;
+ node.loc.end = endLoc;
+ if (this.options.ranges) node.range[1] = endLoc.index;
+ if (this.options.attachComment) this.processComment(node);
+ return node;
+ }
+ resetStartLocation(node, startLoc) {
+ node.start = startLoc.index;
+ node.loc.start = startLoc;
+ if (this.options.ranges) node.range[0] = startLoc.index;
+ }
+ resetEndLocation(node, endLoc = this.state.lastTokEndLoc) {
+ node.end = endLoc.index;
+ node.loc.end = endLoc;
+ if (this.options.ranges) node.range[1] = endLoc.index;
+ }
+ resetStartLocationFromNode(node, locationNode) {
+ this.resetStartLocation(node, locationNode.loc.start);
+ }
+}
+const reservedTypes = new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "static", "string", "true", "typeof", "void"]);
+const FlowErrors = ParseErrorEnum`flow`({
+ AmbiguousConditionalArrow: "Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.",
+ AmbiguousDeclareModuleKind: "Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.",
+ AssignReservedType: ({
+ reservedType
+ }) => `Cannot overwrite reserved type ${reservedType}.`,
+ DeclareClassElement: "The `declare` modifier can only appear on class fields.",
+ DeclareClassFieldInitializer: "Initializers are not allowed in fields with the `declare` modifier.",
+ DuplicateDeclareModuleExports: "Duplicate `declare module.exports` statement.",
+ EnumBooleanMemberNotInitialized: ({
+ memberName,
+ enumName
+ }) => `Boolean enum members need to be initialized. Use either \`${memberName} = true,\` or \`${memberName} = false,\` in enum \`${enumName}\`.`,
+ EnumDuplicateMemberName: ({
+ memberName,
+ enumName
+ }) => `Enum member names need to be unique, but the name \`${memberName}\` has already been used before in enum \`${enumName}\`.`,
+ EnumInconsistentMemberValues: ({
+ enumName
+ }) => `Enum \`${enumName}\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.`,
+ EnumInvalidExplicitType: ({
+ invalidEnumType,
+ enumName
+ }) => `Enum type \`${invalidEnumType}\` is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${enumName}\`.`,
+ EnumInvalidExplicitTypeUnknownSupplied: ({
+ enumName
+ }) => `Supplied enum type is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${enumName}\`.`,
+ EnumInvalidMemberInitializerPrimaryType: ({
+ enumName,
+ memberName,
+ explicitType
+ }) => `Enum \`${enumName}\` has type \`${explicitType}\`, so the initializer of \`${memberName}\` needs to be a ${explicitType} literal.`,
+ EnumInvalidMemberInitializerSymbolType: ({
+ enumName,
+ memberName
+ }) => `Symbol enum members cannot be initialized. Use \`${memberName},\` in enum \`${enumName}\`.`,
+ EnumInvalidMemberInitializerUnknownType: ({
+ enumName,
+ memberName
+ }) => `The enum member initializer for \`${memberName}\` needs to be a literal (either a boolean, number, or string) in enum \`${enumName}\`.`,
+ EnumInvalidMemberName: ({
+ enumName,
+ memberName,
+ suggestion
+ }) => `Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \`${memberName}\`, consider using \`${suggestion}\`, in enum \`${enumName}\`.`,
+ EnumNumberMemberNotInitialized: ({
+ enumName,
+ memberName
+ }) => `Number enum members need to be initialized, e.g. \`${memberName} = 1\` in enum \`${enumName}\`.`,
+ EnumStringMemberInconsistentlyInitialized: ({
+ enumName
+ }) => `String enum members need to consistently either all use initializers, or use no initializers, in enum \`${enumName}\`.`,
+ GetterMayNotHaveThisParam: "A getter cannot have a `this` parameter.",
+ ImportReflectionHasImportType: "An `import module` declaration can not use `type` or `typeof` keyword.",
+ ImportTypeShorthandOnlyInPureImport: "The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.",
+ InexactInsideExact: "Explicit inexact syntax cannot appear inside an explicit exact object type.",
+ InexactInsideNonObject: "Explicit inexact syntax cannot appear in class or interface definitions.",
+ InexactVariance: "Explicit inexact syntax cannot have variance.",
+ InvalidNonTypeImportInDeclareModule: "Imports within a `declare module` body must always be `import type` or `import typeof`.",
+ MissingTypeParamDefault: "Type parameter declaration needs a default, since a preceding type parameter declaration has a default.",
+ NestedDeclareModule: "`declare module` cannot be used inside another `declare module`.",
+ NestedFlowComment: "Cannot have a flow comment inside another flow comment.",
+ PatternIsOptional: Object.assign({
+ message: "A binding pattern parameter cannot be optional in an implementation signature."
+ }, {
+ reasonCode: "OptionalBindingPattern"
+ }),
+ SetterMayNotHaveThisParam: "A setter cannot have a `this` parameter.",
+ SpreadVariance: "Spread properties cannot have variance.",
+ ThisParamAnnotationRequired: "A type annotation is required for the `this` parameter.",
+ ThisParamBannedInConstructor: "Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.",
+ ThisParamMayNotBeOptional: "The `this` parameter cannot be optional.",
+ ThisParamMustBeFirst: "The `this` parameter must be the first function parameter.",
+ ThisParamNoDefault: "The `this` parameter may not have a default value.",
+ TypeBeforeInitializer: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",
+ TypeCastInPattern: "The type cast expression is expected to be wrapped with parenthesis.",
+ UnexpectedExplicitInexactInObject: "Explicit inexact syntax must appear at the end of an inexact object.",
+ UnexpectedReservedType: ({
+ reservedType
+ }) => `Unexpected reserved type ${reservedType}.`,
+ UnexpectedReservedUnderscore: "`_` is only allowed as a type argument to call or new.",
+ UnexpectedSpaceBetweenModuloChecks: "Spaces between `%` and `checks` are not allowed here.",
+ UnexpectedSpreadType: "Spread operator cannot appear in class or interface definitions.",
+ UnexpectedSubtractionOperand: 'Unexpected token, expected "number" or "bigint".',
+ UnexpectedTokenAfterTypeParameter: "Expected an arrow function after this type parameter declaration.",
+ UnexpectedTypeParameterBeforeAsyncArrowFunction: "Type parameters must come after the async keyword, e.g. instead of ` async () => {}`, use `async () => {}`.",
+ UnsupportedDeclareExportKind: ({
+ unsupportedExportKind,
+ suggestion
+ }) => `\`declare export ${unsupportedExportKind}\` is not supported. Use \`${suggestion}\` instead.`,
+ UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.",
+ UnterminatedFlowComment: "Unterminated flow-comment."
+});
+function isEsModuleType(bodyElement) {
+ return bodyElement.type === "DeclareExportAllDeclaration" || bodyElement.type === "DeclareExportDeclaration" && (!bodyElement.declaration || bodyElement.declaration.type !== "TypeAlias" && bodyElement.declaration.type !== "InterfaceDeclaration");
+}
+function hasTypeImportKind(node) {
+ return node.importKind === "type" || node.importKind === "typeof";
+}
+const exportSuggestions = {
+ const: "declare export var",
+ let: "declare export var",
+ type: "export type",
+ interface: "export interface"
+};
+function partition(list, test) {
+ const list1 = [];
+ const list2 = [];
+ for (let i = 0; i < list.length; i++) {
+ (test(list[i], i, list) ? list1 : list2).push(list[i]);
+ }
+ return [list1, list2];
+}
+const FLOW_PRAGMA_REGEX = /\*?\s*@((?:no)?flow)\b/;
+var flow = superClass => class FlowParserMixin extends superClass {
+ constructor(...args) {
+ super(...args);
+ this.flowPragma = undefined;
+ }
+ getScopeHandler() {
+ return FlowScopeHandler;
+ }
+ shouldParseTypes() {
+ return this.getPluginOption("flow", "all") || this.flowPragma === "flow";
+ }
+ shouldParseEnums() {
+ return !!this.getPluginOption("flow", "enums");
+ }
+ finishToken(type, val) {
+ if (type !== 133 && type !== 13 && type !== 28) {
+ if (this.flowPragma === undefined) {
+ this.flowPragma = null;
+ }
+ }
+ super.finishToken(type, val);
+ }
+ addComment(comment) {
+ if (this.flowPragma === undefined) {
+ const matches = FLOW_PRAGMA_REGEX.exec(comment.value);
+ if (!matches) ;else if (matches[1] === "flow") {
+ this.flowPragma = "flow";
+ } else if (matches[1] === "noflow") {
+ this.flowPragma = "noflow";
+ } else {
+ throw new Error("Unexpected flow pragma");
+ }
+ }
+ super.addComment(comment);
+ }
+ flowParseTypeInitialiser(tok) {
+ const oldInType = this.state.inType;
+ this.state.inType = true;
+ this.expect(tok || 14);
+ const type = this.flowParseType();
+ this.state.inType = oldInType;
+ return type;
+ }
+ flowParsePredicate() {
+ const node = this.startNode();
+ const moduloLoc = this.state.startLoc;
+ this.next();
+ this.expectContextual(110);
+ if (this.state.lastTokStart > moduloLoc.index + 1) {
+ this.raise(FlowErrors.UnexpectedSpaceBetweenModuloChecks, {
+ at: moduloLoc
+ });
+ }
+ if (this.eat(10)) {
+ node.value = super.parseExpression();
+ this.expect(11);
+ return this.finishNode(node, "DeclaredPredicate");
+ } else {
+ return this.finishNode(node, "InferredPredicate");
+ }
+ }
+ flowParseTypeAndPredicateInitialiser() {
+ const oldInType = this.state.inType;
+ this.state.inType = true;
+ this.expect(14);
+ let type = null;
+ let predicate = null;
+ if (this.match(54)) {
+ this.state.inType = oldInType;
+ predicate = this.flowParsePredicate();
+ } else {
+ type = this.flowParseType();
+ this.state.inType = oldInType;
+ if (this.match(54)) {
+ predicate = this.flowParsePredicate();
+ }
+ }
+ return [type, predicate];
+ }
+ flowParseDeclareClass(node) {
+ this.next();
+ this.flowParseInterfaceish(node, true);
+ return this.finishNode(node, "DeclareClass");
+ }
+ flowParseDeclareFunction(node) {
+ this.next();
+ const id = node.id = this.parseIdentifier();
+ const typeNode = this.startNode();
+ const typeContainer = this.startNode();
+ if (this.match(47)) {
+ typeNode.typeParameters = this.flowParseTypeParameterDeclaration();
+ } else {
+ typeNode.typeParameters = null;
+ }
+ this.expect(10);
+ const tmp = this.flowParseFunctionTypeParams();
+ typeNode.params = tmp.params;
+ typeNode.rest = tmp.rest;
+ typeNode.this = tmp._this;
+ this.expect(11);
+ [typeNode.returnType, node.predicate] = this.flowParseTypeAndPredicateInitialiser();
+ typeContainer.typeAnnotation = this.finishNode(typeNode, "FunctionTypeAnnotation");
+ id.typeAnnotation = this.finishNode(typeContainer, "TypeAnnotation");
+ this.resetEndLocation(id);
+ this.semicolon();
+ this.scope.declareName(node.id.name, 2048, node.id.loc.start);
+ return this.finishNode(node, "DeclareFunction");
+ }
+ flowParseDeclare(node, insideModule) {
+ if (this.match(80)) {
+ return this.flowParseDeclareClass(node);
+ } else if (this.match(68)) {
+ return this.flowParseDeclareFunction(node);
+ } else if (this.match(74)) {
+ return this.flowParseDeclareVariable(node);
+ } else if (this.eatContextual(127)) {
+ if (this.match(16)) {
+ return this.flowParseDeclareModuleExports(node);
+ } else {
+ if (insideModule) {
+ this.raise(FlowErrors.NestedDeclareModule, {
+ at: this.state.lastTokStartLoc
+ });
+ }
+ return this.flowParseDeclareModule(node);
+ }
+ } else if (this.isContextual(130)) {
+ return this.flowParseDeclareTypeAlias(node);
+ } else if (this.isContextual(131)) {
+ return this.flowParseDeclareOpaqueType(node);
+ } else if (this.isContextual(129)) {
+ return this.flowParseDeclareInterface(node);
+ } else if (this.match(82)) {
+ return this.flowParseDeclareExportDeclaration(node, insideModule);
+ } else {
+ this.unexpected();
+ }
+ }
+ flowParseDeclareVariable(node) {
+ this.next();
+ node.id = this.flowParseTypeAnnotatableIdentifier(true);
+ this.scope.declareName(node.id.name, 5, node.id.loc.start);
+ this.semicolon();
+ return this.finishNode(node, "DeclareVariable");
+ }
+ flowParseDeclareModule(node) {
+ this.scope.enter(0);
+ if (this.match(133)) {
+ node.id = super.parseExprAtom();
+ } else {
+ node.id = this.parseIdentifier();
+ }
+ const bodyNode = node.body = this.startNode();
+ const body = bodyNode.body = [];
+ this.expect(5);
+ while (!this.match(8)) {
+ let bodyNode = this.startNode();
+ if (this.match(83)) {
+ this.next();
+ if (!this.isContextual(130) && !this.match(87)) {
+ this.raise(FlowErrors.InvalidNonTypeImportInDeclareModule, {
+ at: this.state.lastTokStartLoc
+ });
+ }
+ super.parseImport(bodyNode);
+ } else {
+ this.expectContextual(125, FlowErrors.UnsupportedStatementInDeclareModule);
+ bodyNode = this.flowParseDeclare(bodyNode, true);
+ }
+ body.push(bodyNode);
+ }
+ this.scope.exit();
+ this.expect(8);
+ this.finishNode(bodyNode, "BlockStatement");
+ let kind = null;
+ let hasModuleExport = false;
+ body.forEach(bodyElement => {
+ if (isEsModuleType(bodyElement)) {
+ if (kind === "CommonJS") {
+ this.raise(FlowErrors.AmbiguousDeclareModuleKind, {
+ at: bodyElement
+ });
+ }
+ kind = "ES";
+ } else if (bodyElement.type === "DeclareModuleExports") {
+ if (hasModuleExport) {
+ this.raise(FlowErrors.DuplicateDeclareModuleExports, {
+ at: bodyElement
+ });
+ }
+ if (kind === "ES") {
+ this.raise(FlowErrors.AmbiguousDeclareModuleKind, {
+ at: bodyElement
+ });
+ }
+ kind = "CommonJS";
+ hasModuleExport = true;
+ }
+ });
+ node.kind = kind || "CommonJS";
+ return this.finishNode(node, "DeclareModule");
+ }
+ flowParseDeclareExportDeclaration(node, insideModule) {
+ this.expect(82);
+ if (this.eat(65)) {
+ if (this.match(68) || this.match(80)) {
+ node.declaration = this.flowParseDeclare(this.startNode());
+ } else {
+ node.declaration = this.flowParseType();
+ this.semicolon();
+ }
+ node.default = true;
+ return this.finishNode(node, "DeclareExportDeclaration");
+ } else {
+ if (this.match(75) || this.isLet() || (this.isContextual(130) || this.isContextual(129)) && !insideModule) {
+ const label = this.state.value;
+ throw this.raise(FlowErrors.UnsupportedDeclareExportKind, {
+ at: this.state.startLoc,
+ unsupportedExportKind: label,
+ suggestion: exportSuggestions[label]
+ });
+ }
+ if (this.match(74) || this.match(68) || this.match(80) || this.isContextual(131)) {
+ node.declaration = this.flowParseDeclare(this.startNode());
+ node.default = false;
+ return this.finishNode(node, "DeclareExportDeclaration");
+ } else if (this.match(55) || this.match(5) || this.isContextual(129) || this.isContextual(130) || this.isContextual(131)) {
+ node = this.parseExport(node, null);
+ if (node.type === "ExportNamedDeclaration") {
+ node.type = "ExportDeclaration";
+ node.default = false;
+ delete node.exportKind;
+ }
+ node.type = "Declare" + node.type;
+ return node;
+ }
+ }
+ this.unexpected();
+ }
+ flowParseDeclareModuleExports(node) {
+ this.next();
+ this.expectContextual(111);
+ node.typeAnnotation = this.flowParseTypeAnnotation();
+ this.semicolon();
+ return this.finishNode(node, "DeclareModuleExports");
+ }
+ flowParseDeclareTypeAlias(node) {
+ this.next();
+ const finished = this.flowParseTypeAlias(node);
+ finished.type = "DeclareTypeAlias";
+ return finished;
+ }
+ flowParseDeclareOpaqueType(node) {
+ this.next();
+ const finished = this.flowParseOpaqueType(node, true);
+ finished.type = "DeclareOpaqueType";
+ return finished;
+ }
+ flowParseDeclareInterface(node) {
+ this.next();
+ this.flowParseInterfaceish(node, false);
+ return this.finishNode(node, "DeclareInterface");
+ }
+ flowParseInterfaceish(node, isClass) {
+ node.id = this.flowParseRestrictedIdentifier(!isClass, true);
+ this.scope.declareName(node.id.name, isClass ? 17 : 8201, node.id.loc.start);
+ if (this.match(47)) {
+ node.typeParameters = this.flowParseTypeParameterDeclaration();
+ } else {
+ node.typeParameters = null;
+ }
+ node.extends = [];
+ if (this.eat(81)) {
+ do {
+ node.extends.push(this.flowParseInterfaceExtends());
+ } while (!isClass && this.eat(12));
+ }
+ if (isClass) {
+ node.implements = [];
+ node.mixins = [];
+ if (this.eatContextual(117)) {
+ do {
+ node.mixins.push(this.flowParseInterfaceExtends());
+ } while (this.eat(12));
+ }
+ if (this.eatContextual(113)) {
+ do {
+ node.implements.push(this.flowParseInterfaceExtends());
+ } while (this.eat(12));
+ }
+ }
+ node.body = this.flowParseObjectType({
+ allowStatic: isClass,
+ allowExact: false,
+ allowSpread: false,
+ allowProto: isClass,
+ allowInexact: false
+ });
+ }
+ flowParseInterfaceExtends() {
+ const node = this.startNode();
+ node.id = this.flowParseQualifiedTypeIdentifier();
+ if (this.match(47)) {
+ node.typeParameters = this.flowParseTypeParameterInstantiation();
+ } else {
+ node.typeParameters = null;
+ }
+ return this.finishNode(node, "InterfaceExtends");
+ }
+ flowParseInterface(node) {
+ this.flowParseInterfaceish(node, false);
+ return this.finishNode(node, "InterfaceDeclaration");
+ }
+ checkNotUnderscore(word) {
+ if (word === "_") {
+ this.raise(FlowErrors.UnexpectedReservedUnderscore, {
+ at: this.state.startLoc
+ });
+ }
+ }
+ checkReservedType(word, startLoc, declaration) {
+ if (!reservedTypes.has(word)) return;
+ this.raise(declaration ? FlowErrors.AssignReservedType : FlowErrors.UnexpectedReservedType, {
+ at: startLoc,
+ reservedType: word
+ });
+ }
+ flowParseRestrictedIdentifier(liberal, declaration) {
+ this.checkReservedType(this.state.value, this.state.startLoc, declaration);
+ return this.parseIdentifier(liberal);
+ }
+ flowParseTypeAlias(node) {
+ node.id = this.flowParseRestrictedIdentifier(false, true);
+ this.scope.declareName(node.id.name, 8201, node.id.loc.start);
+ if (this.match(47)) {
+ node.typeParameters = this.flowParseTypeParameterDeclaration();
+ } else {
+ node.typeParameters = null;
+ }
+ node.right = this.flowParseTypeInitialiser(29);
+ this.semicolon();
+ return this.finishNode(node, "TypeAlias");
+ }
+ flowParseOpaqueType(node, declare) {
+ this.expectContextual(130);
+ node.id = this.flowParseRestrictedIdentifier(true, true);
+ this.scope.declareName(node.id.name, 8201, node.id.loc.start);
+ if (this.match(47)) {
+ node.typeParameters = this.flowParseTypeParameterDeclaration();
+ } else {
+ node.typeParameters = null;
+ }
+ node.supertype = null;
+ if (this.match(14)) {
+ node.supertype = this.flowParseTypeInitialiser(14);
+ }
+ node.impltype = null;
+ if (!declare) {
+ node.impltype = this.flowParseTypeInitialiser(29);
+ }
+ this.semicolon();
+ return this.finishNode(node, "OpaqueType");
+ }
+ flowParseTypeParameter(requireDefault = false) {
+ const nodeStartLoc = this.state.startLoc;
+ const node = this.startNode();
+ const variance = this.flowParseVariance();
+ const ident = this.flowParseTypeAnnotatableIdentifier();
+ node.name = ident.name;
+ node.variance = variance;
+ node.bound = ident.typeAnnotation;
+ if (this.match(29)) {
+ this.eat(29);
+ node.default = this.flowParseType();
+ } else {
+ if (requireDefault) {
+ this.raise(FlowErrors.MissingTypeParamDefault, {
+ at: nodeStartLoc
+ });
+ }
+ }
+ return this.finishNode(node, "TypeParameter");
+ }
+ flowParseTypeParameterDeclaration() {
+ const oldInType = this.state.inType;
+ const node = this.startNode();
+ node.params = [];
+ this.state.inType = true;
+ if (this.match(47) || this.match(142)) {
+ this.next();
+ } else {
+ this.unexpected();
+ }
+ let defaultRequired = false;
+ do {
+ const typeParameter = this.flowParseTypeParameter(defaultRequired);
+ node.params.push(typeParameter);
+ if (typeParameter.default) {
+ defaultRequired = true;
+ }
+ if (!this.match(48)) {
+ this.expect(12);
+ }
+ } while (!this.match(48));
+ this.expect(48);
+ this.state.inType = oldInType;
+ return this.finishNode(node, "TypeParameterDeclaration");
+ }
+ flowParseTypeParameterInstantiation() {
+ const node = this.startNode();
+ const oldInType = this.state.inType;
+ node.params = [];
+ this.state.inType = true;
+ this.expect(47);
+ const oldNoAnonFunctionType = this.state.noAnonFunctionType;
+ this.state.noAnonFunctionType = false;
+ while (!this.match(48)) {
+ node.params.push(this.flowParseType());
+ if (!this.match(48)) {
+ this.expect(12);
+ }
+ }
+ this.state.noAnonFunctionType = oldNoAnonFunctionType;
+ this.expect(48);
+ this.state.inType = oldInType;
+ return this.finishNode(node, "TypeParameterInstantiation");
+ }
+ flowParseTypeParameterInstantiationCallOrNew() {
+ const node = this.startNode();
+ const oldInType = this.state.inType;
+ node.params = [];
+ this.state.inType = true;
+ this.expect(47);
+ while (!this.match(48)) {
+ node.params.push(this.flowParseTypeOrImplicitInstantiation());
+ if (!this.match(48)) {
+ this.expect(12);
+ }
+ }
+ this.expect(48);
+ this.state.inType = oldInType;
+ return this.finishNode(node, "TypeParameterInstantiation");
+ }
+ flowParseInterfaceType() {
+ const node = this.startNode();
+ this.expectContextual(129);
+ node.extends = [];
+ if (this.eat(81)) {
+ do {
+ node.extends.push(this.flowParseInterfaceExtends());
+ } while (this.eat(12));
+ }
+ node.body = this.flowParseObjectType({
+ allowStatic: false,
+ allowExact: false,
+ allowSpread: false,
+ allowProto: false,
+ allowInexact: false
+ });
+ return this.finishNode(node, "InterfaceTypeAnnotation");
+ }
+ flowParseObjectPropertyKey() {
+ return this.match(134) || this.match(133) ? super.parseExprAtom() : this.parseIdentifier(true);
+ }
+ flowParseObjectTypeIndexer(node, isStatic, variance) {
+ node.static = isStatic;
+ if (this.lookahead().type === 14) {
+ node.id = this.flowParseObjectPropertyKey();
+ node.key = this.flowParseTypeInitialiser();
+ } else {
+ node.id = null;
+ node.key = this.flowParseType();
+ }
+ this.expect(3);
+ node.value = this.flowParseTypeInitialiser();
+ node.variance = variance;
+ return this.finishNode(node, "ObjectTypeIndexer");
+ }
+ flowParseObjectTypeInternalSlot(node, isStatic) {
+ node.static = isStatic;
+ node.id = this.flowParseObjectPropertyKey();
+ this.expect(3);
+ this.expect(3);
+ if (this.match(47) || this.match(10)) {
+ node.method = true;
+ node.optional = false;
+ node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.loc.start));
+ } else {
+ node.method = false;
+ if (this.eat(17)) {
+ node.optional = true;
+ }
+ node.value = this.flowParseTypeInitialiser();
+ }
+ return this.finishNode(node, "ObjectTypeInternalSlot");
+ }
+ flowParseObjectTypeMethodish(node) {
+ node.params = [];
+ node.rest = null;
+ node.typeParameters = null;
+ node.this = null;
+ if (this.match(47)) {
+ node.typeParameters = this.flowParseTypeParameterDeclaration();
+ }
+ this.expect(10);
+ if (this.match(78)) {
+ node.this = this.flowParseFunctionTypeParam(true);
+ node.this.name = null;
+ if (!this.match(11)) {
+ this.expect(12);
+ }
+ }
+ while (!this.match(11) && !this.match(21)) {
+ node.params.push(this.flowParseFunctionTypeParam(false));
+ if (!this.match(11)) {
+ this.expect(12);
+ }
+ }
+ if (this.eat(21)) {
+ node.rest = this.flowParseFunctionTypeParam(false);
+ }
+ this.expect(11);
+ node.returnType = this.flowParseTypeInitialiser();
+ return this.finishNode(node, "FunctionTypeAnnotation");
+ }
+ flowParseObjectTypeCallProperty(node, isStatic) {
+ const valueNode = this.startNode();
+ node.static = isStatic;
+ node.value = this.flowParseObjectTypeMethodish(valueNode);
+ return this.finishNode(node, "ObjectTypeCallProperty");
+ }
+ flowParseObjectType({
+ allowStatic,
+ allowExact,
+ allowSpread,
+ allowProto,
+ allowInexact
+ }) {
+ const oldInType = this.state.inType;
+ this.state.inType = true;
+ const nodeStart = this.startNode();
+ nodeStart.callProperties = [];
+ nodeStart.properties = [];
+ nodeStart.indexers = [];
+ nodeStart.internalSlots = [];
+ let endDelim;
+ let exact;
+ let inexact = false;
+ if (allowExact && this.match(6)) {
+ this.expect(6);
+ endDelim = 9;
+ exact = true;
+ } else {
+ this.expect(5);
+ endDelim = 8;
+ exact = false;
+ }
+ nodeStart.exact = exact;
+ while (!this.match(endDelim)) {
+ let isStatic = false;
+ let protoStartLoc = null;
+ let inexactStartLoc = null;
+ const node = this.startNode();
+ if (allowProto && this.isContextual(118)) {
+ const lookahead = this.lookahead();
+ if (lookahead.type !== 14 && lookahead.type !== 17) {
+ this.next();
+ protoStartLoc = this.state.startLoc;
+ allowStatic = false;
+ }
+ }
+ if (allowStatic && this.isContextual(106)) {
+ const lookahead = this.lookahead();
+ if (lookahead.type !== 14 && lookahead.type !== 17) {
+ this.next();
+ isStatic = true;
+ }
+ }
+ const variance = this.flowParseVariance();
+ if (this.eat(0)) {
+ if (protoStartLoc != null) {
+ this.unexpected(protoStartLoc);
+ }
+ if (this.eat(0)) {
+ if (variance) {
+ this.unexpected(variance.loc.start);
+ }
+ nodeStart.internalSlots.push(this.flowParseObjectTypeInternalSlot(node, isStatic));
+ } else {
+ nodeStart.indexers.push(this.flowParseObjectTypeIndexer(node, isStatic, variance));
+ }
+ } else if (this.match(10) || this.match(47)) {
+ if (protoStartLoc != null) {
+ this.unexpected(protoStartLoc);
+ }
+ if (variance) {
+ this.unexpected(variance.loc.start);
+ }
+ nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, isStatic));
+ } else {
+ let kind = "init";
+ if (this.isContextual(99) || this.isContextual(104)) {
+ const lookahead = this.lookahead();
+ if (tokenIsLiteralPropertyName(lookahead.type)) {
+ kind = this.state.value;
+ this.next();
+ }
+ }
+ const propOrInexact = this.flowParseObjectTypeProperty(node, isStatic, protoStartLoc, variance, kind, allowSpread, allowInexact != null ? allowInexact : !exact);
+ if (propOrInexact === null) {
+ inexact = true;
+ inexactStartLoc = this.state.lastTokStartLoc;
+ } else {
+ nodeStart.properties.push(propOrInexact);
+ }
+ }
+ this.flowObjectTypeSemicolon();
+ if (inexactStartLoc && !this.match(8) && !this.match(9)) {
+ this.raise(FlowErrors.UnexpectedExplicitInexactInObject, {
+ at: inexactStartLoc
+ });
+ }
+ }
+ this.expect(endDelim);
+ if (allowSpread) {
+ nodeStart.inexact = inexact;
+ }
+ const out = this.finishNode(nodeStart, "ObjectTypeAnnotation");
+ this.state.inType = oldInType;
+ return out;
+ }
+ flowParseObjectTypeProperty(node, isStatic, protoStartLoc, variance, kind, allowSpread, allowInexact) {
+ if (this.eat(21)) {
+ const isInexactToken = this.match(12) || this.match(13) || this.match(8) || this.match(9);
+ if (isInexactToken) {
+ if (!allowSpread) {
+ this.raise(FlowErrors.InexactInsideNonObject, {
+ at: this.state.lastTokStartLoc
+ });
+ } else if (!allowInexact) {
+ this.raise(FlowErrors.InexactInsideExact, {
+ at: this.state.lastTokStartLoc
+ });
+ }
+ if (variance) {
+ this.raise(FlowErrors.InexactVariance, {
+ at: variance
+ });
+ }
+ return null;
+ }
+ if (!allowSpread) {
+ this.raise(FlowErrors.UnexpectedSpreadType, {
+ at: this.state.lastTokStartLoc
+ });
+ }
+ if (protoStartLoc != null) {
+ this.unexpected(protoStartLoc);
+ }
+ if (variance) {
+ this.raise(FlowErrors.SpreadVariance, {
+ at: variance
+ });
+ }
+ node.argument = this.flowParseType();
+ return this.finishNode(node, "ObjectTypeSpreadProperty");
+ } else {
+ node.key = this.flowParseObjectPropertyKey();
+ node.static = isStatic;
+ node.proto = protoStartLoc != null;
+ node.kind = kind;
+ let optional = false;
+ if (this.match(47) || this.match(10)) {
+ node.method = true;
+ if (protoStartLoc != null) {
+ this.unexpected(protoStartLoc);
+ }
+ if (variance) {
+ this.unexpected(variance.loc.start);
+ }
+ node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.loc.start));
+ if (kind === "get" || kind === "set") {
+ this.flowCheckGetterSetterParams(node);
+ }
+ if (!allowSpread && node.key.name === "constructor" && node.value.this) {
+ this.raise(FlowErrors.ThisParamBannedInConstructor, {
+ at: node.value.this
+ });
+ }
+ } else {
+ if (kind !== "init") this.unexpected();
+ node.method = false;
+ if (this.eat(17)) {
+ optional = true;
+ }
+ node.value = this.flowParseTypeInitialiser();
+ node.variance = variance;
+ }
+ node.optional = optional;
+ return this.finishNode(node, "ObjectTypeProperty");
+ }
+ }
+ flowCheckGetterSetterParams(property) {
+ const paramCount = property.kind === "get" ? 0 : 1;
+ const length = property.value.params.length + (property.value.rest ? 1 : 0);
+ if (property.value.this) {
+ this.raise(property.kind === "get" ? FlowErrors.GetterMayNotHaveThisParam : FlowErrors.SetterMayNotHaveThisParam, {
+ at: property.value.this
+ });
+ }
+ if (length !== paramCount) {
+ this.raise(property.kind === "get" ? Errors.BadGetterArity : Errors.BadSetterArity, {
+ at: property
+ });
+ }
+ if (property.kind === "set" && property.value.rest) {
+ this.raise(Errors.BadSetterRestParameter, {
+ at: property
+ });
+ }
+ }
+ flowObjectTypeSemicolon() {
+ if (!this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9)) {
+ this.unexpected();
+ }
+ }
+ flowParseQualifiedTypeIdentifier(startLoc, id) {
+ var _startLoc;
+ (_startLoc = startLoc) != null ? _startLoc : startLoc = this.state.startLoc;
+ let node = id || this.flowParseRestrictedIdentifier(true);
+ while (this.eat(16)) {
+ const node2 = this.startNodeAt(startLoc);
+ node2.qualification = node;
+ node2.id = this.flowParseRestrictedIdentifier(true);
+ node = this.finishNode(node2, "QualifiedTypeIdentifier");
+ }
+ return node;
+ }
+ flowParseGenericType(startLoc, id) {
+ const node = this.startNodeAt(startLoc);
+ node.typeParameters = null;
+ node.id = this.flowParseQualifiedTypeIdentifier(startLoc, id);
+ if (this.match(47)) {
+ node.typeParameters = this.flowParseTypeParameterInstantiation();
+ }
+ return this.finishNode(node, "GenericTypeAnnotation");
+ }
+ flowParseTypeofType() {
+ const node = this.startNode();
+ this.expect(87);
+ node.argument = this.flowParsePrimaryType();
+ return this.finishNode(node, "TypeofTypeAnnotation");
+ }
+ flowParseTupleType() {
+ const node = this.startNode();
+ node.types = [];
+ this.expect(0);
+ while (this.state.pos < this.length && !this.match(3)) {
+ node.types.push(this.flowParseType());
+ if (this.match(3)) break;
+ this.expect(12);
+ }
+ this.expect(3);
+ return this.finishNode(node, "TupleTypeAnnotation");
+ }
+ flowParseFunctionTypeParam(first) {
+ let name = null;
+ let optional = false;
+ let typeAnnotation = null;
+ const node = this.startNode();
+ const lh = this.lookahead();
+ const isThis = this.state.type === 78;
+ if (lh.type === 14 || lh.type === 17) {
+ if (isThis && !first) {
+ this.raise(FlowErrors.ThisParamMustBeFirst, {
+ at: node
+ });
+ }
+ name = this.parseIdentifier(isThis);
+ if (this.eat(17)) {
+ optional = true;
+ if (isThis) {
+ this.raise(FlowErrors.ThisParamMayNotBeOptional, {
+ at: node
+ });
+ }
+ }
+ typeAnnotation = this.flowParseTypeInitialiser();
+ } else {
+ typeAnnotation = this.flowParseType();
+ }
+ node.name = name;
+ node.optional = optional;
+ node.typeAnnotation = typeAnnotation;
+ return this.finishNode(node, "FunctionTypeParam");
+ }
+ reinterpretTypeAsFunctionTypeParam(type) {
+ const node = this.startNodeAt(type.loc.start);
+ node.name = null;
+ node.optional = false;
+ node.typeAnnotation = type;
+ return this.finishNode(node, "FunctionTypeParam");
+ }
+ flowParseFunctionTypeParams(params = []) {
+ let rest = null;
+ let _this = null;
+ if (this.match(78)) {
+ _this = this.flowParseFunctionTypeParam(true);
+ _this.name = null;
+ if (!this.match(11)) {
+ this.expect(12);
+ }
+ }
+ while (!this.match(11) && !this.match(21)) {
+ params.push(this.flowParseFunctionTypeParam(false));
+ if (!this.match(11)) {
+ this.expect(12);
+ }
+ }
+ if (this.eat(21)) {
+ rest = this.flowParseFunctionTypeParam(false);
+ }
+ return {
+ params,
+ rest,
+ _this
+ };
+ }
+ flowIdentToTypeAnnotation(startLoc, node, id) {
+ switch (id.name) {
+ case "any":
+ return this.finishNode(node, "AnyTypeAnnotation");
+ case "bool":
+ case "boolean":
+ return this.finishNode(node, "BooleanTypeAnnotation");
+ case "mixed":
+ return this.finishNode(node, "MixedTypeAnnotation");
+ case "empty":
+ return this.finishNode(node, "EmptyTypeAnnotation");
+ case "number":
+ return this.finishNode(node, "NumberTypeAnnotation");
+ case "string":
+ return this.finishNode(node, "StringTypeAnnotation");
+ case "symbol":
+ return this.finishNode(node, "SymbolTypeAnnotation");
+ default:
+ this.checkNotUnderscore(id.name);
+ return this.flowParseGenericType(startLoc, id);
+ }
+ }
+ flowParsePrimaryType() {
+ const startLoc = this.state.startLoc;
+ const node = this.startNode();
+ let tmp;
+ let type;
+ let isGroupedType = false;
+ const oldNoAnonFunctionType = this.state.noAnonFunctionType;
+ switch (this.state.type) {
+ case 5:
+ return this.flowParseObjectType({
+ allowStatic: false,
+ allowExact: false,
+ allowSpread: true,
+ allowProto: false,
+ allowInexact: true
+ });
+ case 6:
+ return this.flowParseObjectType({
+ allowStatic: false,
+ allowExact: true,
+ allowSpread: true,
+ allowProto: false,
+ allowInexact: false
+ });
+ case 0:
+ this.state.noAnonFunctionType = false;
+ type = this.flowParseTupleType();
+ this.state.noAnonFunctionType = oldNoAnonFunctionType;
+ return type;
+ case 47:
+ node.typeParameters = this.flowParseTypeParameterDeclaration();
+ this.expect(10);
+ tmp = this.flowParseFunctionTypeParams();
+ node.params = tmp.params;
+ node.rest = tmp.rest;
+ node.this = tmp._this;
+ this.expect(11);
+ this.expect(19);
+ node.returnType = this.flowParseType();
+ return this.finishNode(node, "FunctionTypeAnnotation");
+ case 10:
+ this.next();
+ if (!this.match(11) && !this.match(21)) {
+ if (tokenIsIdentifier(this.state.type) || this.match(78)) {
+ const token = this.lookahead().type;
+ isGroupedType = token !== 17 && token !== 14;
+ } else {
+ isGroupedType = true;
+ }
+ }
+ if (isGroupedType) {
+ this.state.noAnonFunctionType = false;
+ type = this.flowParseType();
+ this.state.noAnonFunctionType = oldNoAnonFunctionType;
+ if (this.state.noAnonFunctionType || !(this.match(12) || this.match(11) && this.lookahead().type === 19)) {
+ this.expect(11);
+ return type;
+ } else {
+ this.eat(12);
+ }
+ }
+ if (type) {
+ tmp = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(type)]);
+ } else {
+ tmp = this.flowParseFunctionTypeParams();
+ }
+ node.params = tmp.params;
+ node.rest = tmp.rest;
+ node.this = tmp._this;
+ this.expect(11);
+ this.expect(19);
+ node.returnType = this.flowParseType();
+ node.typeParameters = null;
+ return this.finishNode(node, "FunctionTypeAnnotation");
+ case 133:
+ return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation");
+ case 85:
+ case 86:
+ node.value = this.match(85);
+ this.next();
+ return this.finishNode(node, "BooleanLiteralTypeAnnotation");
+ case 53:
+ if (this.state.value === "-") {
+ this.next();
+ if (this.match(134)) {
+ return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", node);
+ }
+ if (this.match(135)) {
+ return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", node);
+ }
+ throw this.raise(FlowErrors.UnexpectedSubtractionOperand, {
+ at: this.state.startLoc
+ });
+ }
+ this.unexpected();
+ return;
+ case 134:
+ return this.parseLiteral(this.state.value, "NumberLiteralTypeAnnotation");
+ case 135:
+ return this.parseLiteral(this.state.value, "BigIntLiteralTypeAnnotation");
+ case 88:
+ this.next();
+ return this.finishNode(node, "VoidTypeAnnotation");
+ case 84:
+ this.next();
+ return this.finishNode(node, "NullLiteralTypeAnnotation");
+ case 78:
+ this.next();
+ return this.finishNode(node, "ThisTypeAnnotation");
+ case 55:
+ this.next();
+ return this.finishNode(node, "ExistsTypeAnnotation");
+ case 87:
+ return this.flowParseTypeofType();
+ default:
+ if (tokenIsKeyword(this.state.type)) {
+ const label = tokenLabelName(this.state.type);
+ this.next();
+ return super.createIdentifier(node, label);
+ } else if (tokenIsIdentifier(this.state.type)) {
+ if (this.isContextual(129)) {
+ return this.flowParseInterfaceType();
+ }
+ return this.flowIdentToTypeAnnotation(startLoc, node, this.parseIdentifier());
+ }
+ }
+ this.unexpected();
+ }
+ flowParsePostfixType() {
+ const startLoc = this.state.startLoc;
+ let type = this.flowParsePrimaryType();
+ let seenOptionalIndexedAccess = false;
+ while ((this.match(0) || this.match(18)) && !this.canInsertSemicolon()) {
+ const node = this.startNodeAt(startLoc);
+ const optional = this.eat(18);
+ seenOptionalIndexedAccess = seenOptionalIndexedAccess || optional;
+ this.expect(0);
+ if (!optional && this.match(3)) {
+ node.elementType = type;
+ this.next();
+ type = this.finishNode(node, "ArrayTypeAnnotation");
+ } else {
+ node.objectType = type;
+ node.indexType = this.flowParseType();
+ this.expect(3);
+ if (seenOptionalIndexedAccess) {
+ node.optional = optional;
+ type = this.finishNode(node, "OptionalIndexedAccessType");
+ } else {
+ type = this.finishNode(node, "IndexedAccessType");
+ }
+ }
+ }
+ return type;
+ }
+ flowParsePrefixType() {
+ const node = this.startNode();
+ if (this.eat(17)) {
+ node.typeAnnotation = this.flowParsePrefixType();
+ return this.finishNode(node, "NullableTypeAnnotation");
+ } else {
+ return this.flowParsePostfixType();
+ }
+ }
+ flowParseAnonFunctionWithoutParens() {
+ const param = this.flowParsePrefixType();
+ if (!this.state.noAnonFunctionType && this.eat(19)) {
+ const node = this.startNodeAt(param.loc.start);
+ node.params = [this.reinterpretTypeAsFunctionTypeParam(param)];
+ node.rest = null;
+ node.this = null;
+ node.returnType = this.flowParseType();
+ node.typeParameters = null;
+ return this.finishNode(node, "FunctionTypeAnnotation");
+ }
+ return param;
+ }
+ flowParseIntersectionType() {
+ const node = this.startNode();
+ this.eat(45);
+ const type = this.flowParseAnonFunctionWithoutParens();
+ node.types = [type];
+ while (this.eat(45)) {
+ node.types.push(this.flowParseAnonFunctionWithoutParens());
+ }
+ return node.types.length === 1 ? type : this.finishNode(node, "IntersectionTypeAnnotation");
+ }
+ flowParseUnionType() {
+ const node = this.startNode();
+ this.eat(43);
+ const type = this.flowParseIntersectionType();
+ node.types = [type];
+ while (this.eat(43)) {
+ node.types.push(this.flowParseIntersectionType());
+ }
+ return node.types.length === 1 ? type : this.finishNode(node, "UnionTypeAnnotation");
+ }
+ flowParseType() {
+ const oldInType = this.state.inType;
+ this.state.inType = true;
+ const type = this.flowParseUnionType();
+ this.state.inType = oldInType;
+ return type;
+ }
+ flowParseTypeOrImplicitInstantiation() {
+ if (this.state.type === 132 && this.state.value === "_") {
+ const startLoc = this.state.startLoc;
+ const node = this.parseIdentifier();
+ return this.flowParseGenericType(startLoc, node);
+ } else {
+ return this.flowParseType();
+ }
+ }
+ flowParseTypeAnnotation() {
+ const node = this.startNode();
+ node.typeAnnotation = this.flowParseTypeInitialiser();
+ return this.finishNode(node, "TypeAnnotation");
+ }
+ flowParseTypeAnnotatableIdentifier(allowPrimitiveOverride) {
+ const ident = allowPrimitiveOverride ? this.parseIdentifier() : this.flowParseRestrictedIdentifier();
+ if (this.match(14)) {
+ ident.typeAnnotation = this.flowParseTypeAnnotation();
+ this.resetEndLocation(ident);
+ }
+ return ident;
+ }
+ typeCastToParameter(node) {
+ node.expression.typeAnnotation = node.typeAnnotation;
+ this.resetEndLocation(node.expression, node.typeAnnotation.loc.end);
+ return node.expression;
+ }
+ flowParseVariance() {
+ let variance = null;
+ if (this.match(53)) {
+ variance = this.startNode();
+ if (this.state.value === "+") {
+ variance.kind = "plus";
+ } else {
+ variance.kind = "minus";
+ }
+ this.next();
+ return this.finishNode(variance, "Variance");
+ }
+ return variance;
+ }
+ parseFunctionBody(node, allowExpressionBody, isMethod = false) {
+ if (allowExpressionBody) {
+ this.forwardNoArrowParamsConversionAt(node, () => super.parseFunctionBody(node, true, isMethod));
+ return;
+ }
+ super.parseFunctionBody(node, false, isMethod);
+ }
+ parseFunctionBodyAndFinish(node, type, isMethod = false) {
+ if (this.match(14)) {
+ const typeNode = this.startNode();
+ [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser();
+ node.returnType = typeNode.typeAnnotation ? this.finishNode(typeNode, "TypeAnnotation") : null;
+ }
+ return super.parseFunctionBodyAndFinish(node, type, isMethod);
+ }
+ parseStatementLike(flags) {
+ if (this.state.strict && this.isContextual(129)) {
+ const lookahead = this.lookahead();
+ if (tokenIsKeywordOrIdentifier(lookahead.type)) {
+ const node = this.startNode();
+ this.next();
+ return this.flowParseInterface(node);
+ }
+ } else if (this.shouldParseEnums() && this.isContextual(126)) {
+ const node = this.startNode();
+ this.next();
+ return this.flowParseEnumDeclaration(node);
+ }
+ const stmt = super.parseStatementLike(flags);
+ if (this.flowPragma === undefined && !this.isValidDirective(stmt)) {
+ this.flowPragma = null;
+ }
+ return stmt;
+ }
+ parseExpressionStatement(node, expr, decorators) {
+ if (expr.type === "Identifier") {
+ if (expr.name === "declare") {
+ if (this.match(80) || tokenIsIdentifier(this.state.type) || this.match(68) || this.match(74) || this.match(82)) {
+ return this.flowParseDeclare(node);
+ }
+ } else if (tokenIsIdentifier(this.state.type)) {
+ if (expr.name === "interface") {
+ return this.flowParseInterface(node);
+ } else if (expr.name === "type") {
+ return this.flowParseTypeAlias(node);
+ } else if (expr.name === "opaque") {
+ return this.flowParseOpaqueType(node, false);
+ }
+ }
+ }
+ return super.parseExpressionStatement(node, expr, decorators);
+ }
+ shouldParseExportDeclaration() {
+ const {
+ type
+ } = this.state;
+ if (tokenIsFlowInterfaceOrTypeOrOpaque(type) || this.shouldParseEnums() && type === 126) {
+ return !this.state.containsEsc;
+ }
+ return super.shouldParseExportDeclaration();
+ }
+ isExportDefaultSpecifier() {
+ const {
+ type
+ } = this.state;
+ if (tokenIsFlowInterfaceOrTypeOrOpaque(type) || this.shouldParseEnums() && type === 126) {
+ return this.state.containsEsc;
+ }
+ return super.isExportDefaultSpecifier();
+ }
+ parseExportDefaultExpression() {
+ if (this.shouldParseEnums() && this.isContextual(126)) {
+ const node = this.startNode();
+ this.next();
+ return this.flowParseEnumDeclaration(node);
+ }
+ return super.parseExportDefaultExpression();
+ }
+ parseConditional(expr, startLoc, refExpressionErrors) {
+ if (!this.match(17)) return expr;
+ if (this.state.maybeInArrowParameters) {
+ const nextCh = this.lookaheadCharCode();
+ if (nextCh === 44 || nextCh === 61 || nextCh === 58 || nextCh === 41) {
+ this.setOptionalParametersError(refExpressionErrors);
+ return expr;
+ }
+ }
+ this.expect(17);
+ const state = this.state.clone();
+ const originalNoArrowAt = this.state.noArrowAt;
+ const node = this.startNodeAt(startLoc);
+ let {
+ consequent,
+ failed
+ } = this.tryParseConditionalConsequent();
+ let [valid, invalid] = this.getArrowLikeExpressions(consequent);
+ if (failed || invalid.length > 0) {
+ const noArrowAt = [...originalNoArrowAt];
+ if (invalid.length > 0) {
+ this.state = state;
+ this.state.noArrowAt = noArrowAt;
+ for (let i = 0; i < invalid.length; i++) {
+ noArrowAt.push(invalid[i].start);
+ }
+ ({
+ consequent,
+ failed
+ } = this.tryParseConditionalConsequent());
+ [valid, invalid] = this.getArrowLikeExpressions(consequent);
+ }
+ if (failed && valid.length > 1) {
+ this.raise(FlowErrors.AmbiguousConditionalArrow, {
+ at: state.startLoc
+ });
+ }
+ if (failed && valid.length === 1) {
+ this.state = state;
+ noArrowAt.push(valid[0].start);
+ this.state.noArrowAt = noArrowAt;
+ ({
+ consequent,
+ failed
+ } = this.tryParseConditionalConsequent());
+ }
+ }
+ this.getArrowLikeExpressions(consequent, true);
+ this.state.noArrowAt = originalNoArrowAt;
+ this.expect(14);
+ node.test = expr;
+ node.consequent = consequent;
+ node.alternate = this.forwardNoArrowParamsConversionAt(node, () => this.parseMaybeAssign(undefined, undefined));
+ return this.finishNode(node, "ConditionalExpression");
+ }
+ tryParseConditionalConsequent() {
+ this.state.noArrowParamsConversionAt.push(this.state.start);
+ const consequent = this.parseMaybeAssignAllowIn();
+ const failed = !this.match(14);
+ this.state.noArrowParamsConversionAt.pop();
+ return {
+ consequent,
+ failed
+ };
+ }
+ getArrowLikeExpressions(node, disallowInvalid) {
+ const stack = [node];
+ const arrows = [];
+ while (stack.length !== 0) {
+ const node = stack.pop();
+ if (node.type === "ArrowFunctionExpression") {
+ if (node.typeParameters || !node.returnType) {
+ this.finishArrowValidation(node);
+ } else {
+ arrows.push(node);
+ }
+ stack.push(node.body);
+ } else if (node.type === "ConditionalExpression") {
+ stack.push(node.consequent);
+ stack.push(node.alternate);
+ }
+ }
+ if (disallowInvalid) {
+ arrows.forEach(node => this.finishArrowValidation(node));
+ return [arrows, []];
+ }
+ return partition(arrows, node => node.params.every(param => this.isAssignable(param, true)));
+ }
+ finishArrowValidation(node) {
+ var _node$extra;
+ this.toAssignableList(node.params, (_node$extra = node.extra) == null ? void 0 : _node$extra.trailingCommaLoc, false);
+ this.scope.enter(2 | 4);
+ super.checkParams(node, false, true);
+ this.scope.exit();
+ }
+ forwardNoArrowParamsConversionAt(node, parse) {
+ let result;
+ if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {
+ this.state.noArrowParamsConversionAt.push(this.state.start);
+ result = parse();
+ this.state.noArrowParamsConversionAt.pop();
+ } else {
+ result = parse();
+ }
+ return result;
+ }
+ parseParenItem(node, startLoc) {
+ node = super.parseParenItem(node, startLoc);
+ if (this.eat(17)) {
+ node.optional = true;
+ this.resetEndLocation(node);
+ }
+ if (this.match(14)) {
+ const typeCastNode = this.startNodeAt(startLoc);
+ typeCastNode.expression = node;
+ typeCastNode.typeAnnotation = this.flowParseTypeAnnotation();
+ return this.finishNode(typeCastNode, "TypeCastExpression");
+ }
+ return node;
+ }
+ assertModuleNodeAllowed(node) {
+ if (node.type === "ImportDeclaration" && (node.importKind === "type" || node.importKind === "typeof") || node.type === "ExportNamedDeclaration" && node.exportKind === "type" || node.type === "ExportAllDeclaration" && node.exportKind === "type") {
+ return;
+ }
+ super.assertModuleNodeAllowed(node);
+ }
+ parseExportDeclaration(node) {
+ if (this.isContextual(130)) {
+ node.exportKind = "type";
+ const declarationNode = this.startNode();
+ this.next();
+ if (this.match(5)) {
+ node.specifiers = this.parseExportSpecifiers(true);
+ super.parseExportFrom(node);
+ return null;
+ } else {
+ return this.flowParseTypeAlias(declarationNode);
+ }
+ } else if (this.isContextual(131)) {
+ node.exportKind = "type";
+ const declarationNode = this.startNode();
+ this.next();
+ return this.flowParseOpaqueType(declarationNode, false);
+ } else if (this.isContextual(129)) {
+ node.exportKind = "type";
+ const declarationNode = this.startNode();
+ this.next();
+ return this.flowParseInterface(declarationNode);
+ } else if (this.shouldParseEnums() && this.isContextual(126)) {
+ node.exportKind = "value";
+ const declarationNode = this.startNode();
+ this.next();
+ return this.flowParseEnumDeclaration(declarationNode);
+ } else {
+ return super.parseExportDeclaration(node);
+ }
+ }
+ eatExportStar(node) {
+ if (super.eatExportStar(node)) return true;
+ if (this.isContextual(130) && this.lookahead().type === 55) {
+ node.exportKind = "type";
+ this.next();
+ this.next();
+ return true;
+ }
+ return false;
+ }
+ maybeParseExportNamespaceSpecifier(node) {
+ const {
+ startLoc
+ } = this.state;
+ const hasNamespace = super.maybeParseExportNamespaceSpecifier(node);
+ if (hasNamespace && node.exportKind === "type") {
+ this.unexpected(startLoc);
+ }
+ return hasNamespace;
+ }
+ parseClassId(node, isStatement, optionalId) {
+ super.parseClassId(node, isStatement, optionalId);
+ if (this.match(47)) {
+ node.typeParameters = this.flowParseTypeParameterDeclaration();
+ }
+ }
+ parseClassMember(classBody, member, state) {
+ const {
+ startLoc
+ } = this.state;
+ if (this.isContextual(125)) {
+ if (super.parseClassMemberFromModifier(classBody, member)) {
+ return;
+ }
+ member.declare = true;
+ }
+ super.parseClassMember(classBody, member, state);
+ if (member.declare) {
+ if (member.type !== "ClassProperty" && member.type !== "ClassPrivateProperty" && member.type !== "PropertyDefinition") {
+ this.raise(FlowErrors.DeclareClassElement, {
+ at: startLoc
+ });
+ } else if (member.value) {
+ this.raise(FlowErrors.DeclareClassFieldInitializer, {
+ at: member.value
+ });
+ }
+ }
+ }
+ isIterator(word) {
+ return word === "iterator" || word === "asyncIterator";
+ }
+ readIterator() {
+ const word = super.readWord1();
+ const fullWord = "@@" + word;
+ if (!this.isIterator(word) || !this.state.inType) {
+ this.raise(Errors.InvalidIdentifier, {
+ at: this.state.curPosition(),
+ identifierName: fullWord
+ });
+ }
+ this.finishToken(132, fullWord);
+ }
+ getTokenFromCode(code) {
+ const next = this.input.charCodeAt(this.state.pos + 1);
+ if (code === 123 && next === 124) {
+ this.finishOp(6, 2);
+ } else if (this.state.inType && (code === 62 || code === 60)) {
+ this.finishOp(code === 62 ? 48 : 47, 1);
+ } else if (this.state.inType && code === 63) {
+ if (next === 46) {
+ this.finishOp(18, 2);
+ } else {
+ this.finishOp(17, 1);
+ }
+ } else if (isIteratorStart(code, next, this.input.charCodeAt(this.state.pos + 2))) {
+ this.state.pos += 2;
+ this.readIterator();
+ } else {
+ super.getTokenFromCode(code);
+ }
+ }
+ isAssignable(node, isBinding) {
+ if (node.type === "TypeCastExpression") {
+ return this.isAssignable(node.expression, isBinding);
+ } else {
+ return super.isAssignable(node, isBinding);
+ }
+ }
+ toAssignable(node, isLHS = false) {
+ if (!isLHS && node.type === "AssignmentExpression" && node.left.type === "TypeCastExpression") {
+ node.left = this.typeCastToParameter(node.left);
+ }
+ super.toAssignable(node, isLHS);
+ }
+ toAssignableList(exprList, trailingCommaLoc, isLHS) {
+ for (let i = 0; i < exprList.length; i++) {
+ const expr = exprList[i];
+ if ((expr == null ? void 0 : expr.type) === "TypeCastExpression") {
+ exprList[i] = this.typeCastToParameter(expr);
+ }
+ }
+ super.toAssignableList(exprList, trailingCommaLoc, isLHS);
+ }
+ toReferencedList(exprList, isParenthesizedExpr) {
+ for (let i = 0; i < exprList.length; i++) {
+ var _expr$extra;
+ const expr = exprList[i];
+ if (expr && expr.type === "TypeCastExpression" && !((_expr$extra = expr.extra) != null && _expr$extra.parenthesized) && (exprList.length > 1 || !isParenthesizedExpr)) {
+ this.raise(FlowErrors.TypeCastInPattern, {
+ at: expr.typeAnnotation
+ });
+ }
+ }
+ return exprList;
+ }
+ parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) {
+ const node = super.parseArrayLike(close, canBePattern, isTuple, refExpressionErrors);
+ if (canBePattern && !this.state.maybeInArrowParameters) {
+ this.toReferencedList(node.elements);
+ }
+ return node;
+ }
+ isValidLVal(type, isParenthesized, binding) {
+ return type === "TypeCastExpression" || super.isValidLVal(type, isParenthesized, binding);
+ }
+ parseClassProperty(node) {
+ if (this.match(14)) {
+ node.typeAnnotation = this.flowParseTypeAnnotation();
+ }
+ return super.parseClassProperty(node);
+ }
+ parseClassPrivateProperty(node) {
+ if (this.match(14)) {
+ node.typeAnnotation = this.flowParseTypeAnnotation();
+ }
+ return super.parseClassPrivateProperty(node);
+ }
+ isClassMethod() {
+ return this.match(47) || super.isClassMethod();
+ }
+ isClassProperty() {
+ return this.match(14) || super.isClassProperty();
+ }
+ isNonstaticConstructor(method) {
+ return !this.match(14) && super.isNonstaticConstructor(method);
+ }
+ pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) {
+ if (method.variance) {
+ this.unexpected(method.variance.loc.start);
+ }
+ delete method.variance;
+ if (this.match(47)) {
+ method.typeParameters = this.flowParseTypeParameterDeclaration();
+ }
+ super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper);
+ if (method.params && isConstructor) {
+ const params = method.params;
+ if (params.length > 0 && this.isThisParam(params[0])) {
+ this.raise(FlowErrors.ThisParamBannedInConstructor, {
+ at: method
+ });
+ }
+ } else if (method.type === "MethodDefinition" && isConstructor && method.value.params) {
+ const params = method.value.params;
+ if (params.length > 0 && this.isThisParam(params[0])) {
+ this.raise(FlowErrors.ThisParamBannedInConstructor, {
+ at: method
+ });
+ }
+ }
+ }
+ pushClassPrivateMethod(classBody, method, isGenerator, isAsync) {
+ if (method.variance) {
+ this.unexpected(method.variance.loc.start);
+ }
+ delete method.variance;
+ if (this.match(47)) {
+ method.typeParameters = this.flowParseTypeParameterDeclaration();
+ }
+ super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);
+ }
+ parseClassSuper(node) {
+ super.parseClassSuper(node);
+ if (node.superClass && this.match(47)) {
+ node.superTypeParameters = this.flowParseTypeParameterInstantiation();
+ }
+ if (this.isContextual(113)) {
+ this.next();
+ const implemented = node.implements = [];
+ do {
+ const node = this.startNode();
+ node.id = this.flowParseRestrictedIdentifier(true);
+ if (this.match(47)) {
+ node.typeParameters = this.flowParseTypeParameterInstantiation();
+ } else {
+ node.typeParameters = null;
+ }
+ implemented.push(this.finishNode(node, "ClassImplements"));
+ } while (this.eat(12));
+ }
+ }
+ checkGetterSetterParams(method) {
+ super.checkGetterSetterParams(method);
+ const params = this.getObjectOrClassMethodParams(method);
+ if (params.length > 0) {
+ const param = params[0];
+ if (this.isThisParam(param) && method.kind === "get") {
+ this.raise(FlowErrors.GetterMayNotHaveThisParam, {
+ at: param
+ });
+ } else if (this.isThisParam(param)) {
+ this.raise(FlowErrors.SetterMayNotHaveThisParam, {
+ at: param
+ });
+ }
+ }
+ }
+ parsePropertyNamePrefixOperator(node) {
+ node.variance = this.flowParseVariance();
+ }
+ parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) {
+ if (prop.variance) {
+ this.unexpected(prop.variance.loc.start);
+ }
+ delete prop.variance;
+ let typeParameters;
+ if (this.match(47) && !isAccessor) {
+ typeParameters = this.flowParseTypeParameterDeclaration();
+ if (!this.match(10)) this.unexpected();
+ }
+ const result = super.parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors);
+ if (typeParameters) {
+ (result.value || result).typeParameters = typeParameters;
+ }
+ return result;
+ }
+ parseAssignableListItemTypes(param) {
+ if (this.eat(17)) {
+ if (param.type !== "Identifier") {
+ this.raise(FlowErrors.PatternIsOptional, {
+ at: param
+ });
+ }
+ if (this.isThisParam(param)) {
+ this.raise(FlowErrors.ThisParamMayNotBeOptional, {
+ at: param
+ });
+ }
+ param.optional = true;
+ }
+ if (this.match(14)) {
+ param.typeAnnotation = this.flowParseTypeAnnotation();
+ } else if (this.isThisParam(param)) {
+ this.raise(FlowErrors.ThisParamAnnotationRequired, {
+ at: param
+ });
+ }
+ if (this.match(29) && this.isThisParam(param)) {
+ this.raise(FlowErrors.ThisParamNoDefault, {
+ at: param
+ });
+ }
+ this.resetEndLocation(param);
+ return param;
+ }
+ parseMaybeDefault(startLoc, left) {
+ const node = super.parseMaybeDefault(startLoc, left);
+ if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) {
+ this.raise(FlowErrors.TypeBeforeInitializer, {
+ at: node.typeAnnotation
+ });
+ }
+ return node;
+ }
+ checkImportReflection(node) {
+ super.checkImportReflection(node);
+ if (node.module && node.importKind !== "value") {
+ this.raise(FlowErrors.ImportReflectionHasImportType, {
+ at: node.specifiers[0].loc.start
+ });
+ }
+ }
+ parseImportSpecifierLocal(node, specifier, type) {
+ specifier.local = hasTypeImportKind(node) ? this.flowParseRestrictedIdentifier(true, true) : this.parseIdentifier();
+ node.specifiers.push(this.finishImportSpecifier(specifier, type));
+ }
+ isPotentialImportPhase(isExport) {
+ if (super.isPotentialImportPhase(isExport)) return true;
+ if (this.isContextual(130)) {
+ if (!isExport) return true;
+ const ch = this.lookaheadCharCode();
+ return ch === 123 || ch === 42;
+ }
+ return !isExport && this.isContextual(87);
+ }
+ applyImportPhase(node, isExport, phase, loc) {
+ super.applyImportPhase(node, isExport, phase, loc);
+ if (isExport) {
+ if (!phase && this.match(65)) {
+ return;
+ }
+ node.exportKind = phase === "type" ? phase : "value";
+ } else {
+ if (phase === "type" && this.match(55)) this.unexpected();
+ node.importKind = phase === "type" || phase === "typeof" ? phase : "value";
+ }
+ }
+ parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) {
+ const firstIdent = specifier.imported;
+ let specifierTypeKind = null;
+ if (firstIdent.type === "Identifier") {
+ if (firstIdent.name === "type") {
+ specifierTypeKind = "type";
+ } else if (firstIdent.name === "typeof") {
+ specifierTypeKind = "typeof";
+ }
+ }
+ let isBinding = false;
+ if (this.isContextual(93) && !this.isLookaheadContextual("as")) {
+ const as_ident = this.parseIdentifier(true);
+ if (specifierTypeKind !== null && !tokenIsKeywordOrIdentifier(this.state.type)) {
+ specifier.imported = as_ident;
+ specifier.importKind = specifierTypeKind;
+ specifier.local = cloneIdentifier(as_ident);
+ } else {
+ specifier.imported = firstIdent;
+ specifier.importKind = null;
+ specifier.local = this.parseIdentifier();
+ }
+ } else {
+ if (specifierTypeKind !== null && tokenIsKeywordOrIdentifier(this.state.type)) {
+ specifier.imported = this.parseIdentifier(true);
+ specifier.importKind = specifierTypeKind;
+ } else {
+ if (importedIsString) {
+ throw this.raise(Errors.ImportBindingIsString, {
+ at: specifier,
+ importName: firstIdent.value
+ });
+ }
+ specifier.imported = firstIdent;
+ specifier.importKind = null;
+ }
+ if (this.eatContextual(93)) {
+ specifier.local = this.parseIdentifier();
+ } else {
+ isBinding = true;
+ specifier.local = cloneIdentifier(specifier.imported);
+ }
+ }
+ const specifierIsTypeImport = hasTypeImportKind(specifier);
+ if (isInTypeOnlyImport && specifierIsTypeImport) {
+ this.raise(FlowErrors.ImportTypeShorthandOnlyInPureImport, {
+ at: specifier
+ });
+ }
+ if (isInTypeOnlyImport || specifierIsTypeImport) {
+ this.checkReservedType(specifier.local.name, specifier.local.loc.start, true);
+ }
+ if (isBinding && !isInTypeOnlyImport && !specifierIsTypeImport) {
+ this.checkReservedWord(specifier.local.name, specifier.loc.start, true, true);
+ }
+ return this.finishImportSpecifier(specifier, "ImportSpecifier");
+ }
+ parseBindingAtom() {
+ switch (this.state.type) {
+ case 78:
+ return this.parseIdentifier(true);
+ default:
+ return super.parseBindingAtom();
+ }
+ }
+ parseFunctionParams(node, isConstructor) {
+ const kind = node.kind;
+ if (kind !== "get" && kind !== "set" && this.match(47)) {
+ node.typeParameters = this.flowParseTypeParameterDeclaration();
+ }
+ super.parseFunctionParams(node, isConstructor);
+ }
+ parseVarId(decl, kind) {
+ super.parseVarId(decl, kind);
+ if (this.match(14)) {
+ decl.id.typeAnnotation = this.flowParseTypeAnnotation();
+ this.resetEndLocation(decl.id);
+ }
+ }
+ parseAsyncArrowFromCallExpression(node, call) {
+ if (this.match(14)) {
+ const oldNoAnonFunctionType = this.state.noAnonFunctionType;
+ this.state.noAnonFunctionType = true;
+ node.returnType = this.flowParseTypeAnnotation();
+ this.state.noAnonFunctionType = oldNoAnonFunctionType;
+ }
+ return super.parseAsyncArrowFromCallExpression(node, call);
+ }
+ shouldParseAsyncArrow() {
+ return this.match(14) || super.shouldParseAsyncArrow();
+ }
+ parseMaybeAssign(refExpressionErrors, afterLeftParse) {
+ var _jsx;
+ let state = null;
+ let jsx;
+ if (this.hasPlugin("jsx") && (this.match(142) || this.match(47))) {
+ state = this.state.clone();
+ jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state);
+ if (!jsx.error) return jsx.node;
+ const {
+ context
+ } = this.state;
+ const currentContext = context[context.length - 1];
+ if (currentContext === types.j_oTag || currentContext === types.j_expr) {
+ context.pop();
+ }
+ }
+ if ((_jsx = jsx) != null && _jsx.error || this.match(47)) {
+ var _jsx2, _jsx3;
+ state = state || this.state.clone();
+ let typeParameters;
+ const arrow = this.tryParse(abort => {
+ var _arrowExpression$extr;
+ typeParameters = this.flowParseTypeParameterDeclaration();
+ const arrowExpression = this.forwardNoArrowParamsConversionAt(typeParameters, () => {
+ const result = super.parseMaybeAssign(refExpressionErrors, afterLeftParse);
+ this.resetStartLocationFromNode(result, typeParameters);
+ return result;
+ });
+ if ((_arrowExpression$extr = arrowExpression.extra) != null && _arrowExpression$extr.parenthesized) abort();
+ const expr = this.maybeUnwrapTypeCastExpression(arrowExpression);
+ if (expr.type !== "ArrowFunctionExpression") abort();
+ expr.typeParameters = typeParameters;
+ this.resetStartLocationFromNode(expr, typeParameters);
+ return arrowExpression;
+ }, state);
+ let arrowExpression = null;
+ if (arrow.node && this.maybeUnwrapTypeCastExpression(arrow.node).type === "ArrowFunctionExpression") {
+ if (!arrow.error && !arrow.aborted) {
+ if (arrow.node.async) {
+ this.raise(FlowErrors.UnexpectedTypeParameterBeforeAsyncArrowFunction, {
+ at: typeParameters
+ });
+ }
+ return arrow.node;
+ }
+ arrowExpression = arrow.node;
+ }
+ if ((_jsx2 = jsx) != null && _jsx2.node) {
+ this.state = jsx.failState;
+ return jsx.node;
+ }
+ if (arrowExpression) {
+ this.state = arrow.failState;
+ return arrowExpression;
+ }
+ if ((_jsx3 = jsx) != null && _jsx3.thrown) throw jsx.error;
+ if (arrow.thrown) throw arrow.error;
+ throw this.raise(FlowErrors.UnexpectedTokenAfterTypeParameter, {
+ at: typeParameters
+ });
+ }
+ return super.parseMaybeAssign(refExpressionErrors, afterLeftParse);
+ }
+ parseArrow(node) {
+ if (this.match(14)) {
+ const result = this.tryParse(() => {
+ const oldNoAnonFunctionType = this.state.noAnonFunctionType;
+ this.state.noAnonFunctionType = true;
+ const typeNode = this.startNode();
+ [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser();
+ this.state.noAnonFunctionType = oldNoAnonFunctionType;
+ if (this.canInsertSemicolon()) this.unexpected();
+ if (!this.match(19)) this.unexpected();
+ return typeNode;
+ });
+ if (result.thrown) return null;
+ if (result.error) this.state = result.failState;
+ node.returnType = result.node.typeAnnotation ? this.finishNode(result.node, "TypeAnnotation") : null;
+ }
+ return super.parseArrow(node);
+ }
+ shouldParseArrow(params) {
+ return this.match(14) || super.shouldParseArrow(params);
+ }
+ setArrowFunctionParameters(node, params) {
+ if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {
+ node.params = params;
+ } else {
+ super.setArrowFunctionParameters(node, params);
+ }
+ }
+ checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged = true) {
+ if (isArrowFunction && this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {
+ return;
+ }
+ for (let i = 0; i < node.params.length; i++) {
+ if (this.isThisParam(node.params[i]) && i > 0) {
+ this.raise(FlowErrors.ThisParamMustBeFirst, {
+ at: node.params[i]
+ });
+ }
+ }
+ super.checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged);
+ }
+ parseParenAndDistinguishExpression(canBeArrow) {
+ return super.parseParenAndDistinguishExpression(canBeArrow && this.state.noArrowAt.indexOf(this.state.start) === -1);
+ }
+ parseSubscripts(base, startLoc, noCalls) {
+ if (base.type === "Identifier" && base.name === "async" && this.state.noArrowAt.indexOf(startLoc.index) !== -1) {
+ this.next();
+ const node = this.startNodeAt(startLoc);
+ node.callee = base;
+ node.arguments = super.parseCallExpressionArguments(11, false);
+ base = this.finishNode(node, "CallExpression");
+ } else if (base.type === "Identifier" && base.name === "async" && this.match(47)) {
+ const state = this.state.clone();
+ const arrow = this.tryParse(abort => this.parseAsyncArrowWithTypeParameters(startLoc) || abort(), state);
+ if (!arrow.error && !arrow.aborted) return arrow.node;
+ const result = this.tryParse(() => super.parseSubscripts(base, startLoc, noCalls), state);
+ if (result.node && !result.error) return result.node;
+ if (arrow.node) {
+ this.state = arrow.failState;
+ return arrow.node;
+ }
+ if (result.node) {
+ this.state = result.failState;
+ return result.node;
+ }
+ throw arrow.error || result.error;
+ }
+ return super.parseSubscripts(base, startLoc, noCalls);
+ }
+ parseSubscript(base, startLoc, noCalls, subscriptState) {
+ if (this.match(18) && this.isLookaheadToken_lt()) {
+ subscriptState.optionalChainMember = true;
+ if (noCalls) {
+ subscriptState.stop = true;
+ return base;
+ }
+ this.next();
+ const node = this.startNodeAt(startLoc);
+ node.callee = base;
+ node.typeArguments = this.flowParseTypeParameterInstantiation();
+ this.expect(10);
+ node.arguments = this.parseCallExpressionArguments(11, false);
+ node.optional = true;
+ return this.finishCallExpression(node, true);
+ } else if (!noCalls && this.shouldParseTypes() && this.match(47)) {
+ const node = this.startNodeAt(startLoc);
+ node.callee = base;
+ const result = this.tryParse(() => {
+ node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew();
+ this.expect(10);
+ node.arguments = super.parseCallExpressionArguments(11, false);
+ if (subscriptState.optionalChainMember) {
+ node.optional = false;
+ }
+ return this.finishCallExpression(node, subscriptState.optionalChainMember);
+ });
+ if (result.node) {
+ if (result.error) this.state = result.failState;
+ return result.node;
+ }
+ }
+ return super.parseSubscript(base, startLoc, noCalls, subscriptState);
+ }
+ parseNewCallee(node) {
+ super.parseNewCallee(node);
+ let targs = null;
+ if (this.shouldParseTypes() && this.match(47)) {
+ targs = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node;
+ }
+ node.typeArguments = targs;
+ }
+ parseAsyncArrowWithTypeParameters(startLoc) {
+ const node = this.startNodeAt(startLoc);
+ this.parseFunctionParams(node, false);
+ if (!this.parseArrow(node)) return;
+ return super.parseArrowExpression(node, undefined, true);
+ }
+ readToken_mult_modulo(code) {
+ const next = this.input.charCodeAt(this.state.pos + 1);
+ if (code === 42 && next === 47 && this.state.hasFlowComment) {
+ this.state.hasFlowComment = false;
+ this.state.pos += 2;
+ this.nextToken();
+ return;
+ }
+ super.readToken_mult_modulo(code);
+ }
+ readToken_pipe_amp(code) {
+ const next = this.input.charCodeAt(this.state.pos + 1);
+ if (code === 124 && next === 125) {
+ this.finishOp(9, 2);
+ return;
+ }
+ super.readToken_pipe_amp(code);
+ }
+ parseTopLevel(file, program) {
+ const fileNode = super.parseTopLevel(file, program);
+ if (this.state.hasFlowComment) {
+ this.raise(FlowErrors.UnterminatedFlowComment, {
+ at: this.state.curPosition()
+ });
+ }
+ return fileNode;
+ }
+ skipBlockComment() {
+ if (this.hasPlugin("flowComments") && this.skipFlowComment()) {
+ if (this.state.hasFlowComment) {
+ throw this.raise(FlowErrors.NestedFlowComment, {
+ at: this.state.startLoc
+ });
+ }
+ this.hasFlowCommentCompletion();
+ const commentSkip = this.skipFlowComment();
+ if (commentSkip) {
+ this.state.pos += commentSkip;
+ this.state.hasFlowComment = true;
+ }
+ return;
+ }
+ return super.skipBlockComment(this.state.hasFlowComment ? "*-/" : "*/");
+ }
+ skipFlowComment() {
+ const {
+ pos
+ } = this.state;
+ let shiftToFirstNonWhiteSpace = 2;
+ while ([32, 9].includes(this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace))) {
+ shiftToFirstNonWhiteSpace++;
+ }
+ const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos);
+ const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1);
+ if (ch2 === 58 && ch3 === 58) {
+ return shiftToFirstNonWhiteSpace + 2;
+ }
+ if (this.input.slice(shiftToFirstNonWhiteSpace + pos, shiftToFirstNonWhiteSpace + pos + 12) === "flow-include") {
+ return shiftToFirstNonWhiteSpace + 12;
+ }
+ if (ch2 === 58 && ch3 !== 58) {
+ return shiftToFirstNonWhiteSpace;
+ }
+ return false;
+ }
+ hasFlowCommentCompletion() {
+ const end = this.input.indexOf("*/", this.state.pos);
+ if (end === -1) {
+ throw this.raise(Errors.UnterminatedComment, {
+ at: this.state.curPosition()
+ });
+ }
+ }
+ flowEnumErrorBooleanMemberNotInitialized(loc, {
+ enumName,
+ memberName
+ }) {
+ this.raise(FlowErrors.EnumBooleanMemberNotInitialized, {
+ at: loc,
+ memberName,
+ enumName
+ });
+ }
+ flowEnumErrorInvalidMemberInitializer(loc, enumContext) {
+ return this.raise(!enumContext.explicitType ? FlowErrors.EnumInvalidMemberInitializerUnknownType : enumContext.explicitType === "symbol" ? FlowErrors.EnumInvalidMemberInitializerSymbolType : FlowErrors.EnumInvalidMemberInitializerPrimaryType, Object.assign({
+ at: loc
+ }, enumContext));
+ }
+ flowEnumErrorNumberMemberNotInitialized(loc, {
+ enumName,
+ memberName
+ }) {
+ this.raise(FlowErrors.EnumNumberMemberNotInitialized, {
+ at: loc,
+ enumName,
+ memberName
+ });
+ }
+ flowEnumErrorStringMemberInconsistentlyInitialized(node, {
+ enumName
+ }) {
+ this.raise(FlowErrors.EnumStringMemberInconsistentlyInitialized, {
+ at: node,
+ enumName
+ });
+ }
+ flowEnumMemberInit() {
+ const startLoc = this.state.startLoc;
+ const endOfInit = () => this.match(12) || this.match(8);
+ switch (this.state.type) {
+ case 134:
+ {
+ const literal = this.parseNumericLiteral(this.state.value);
+ if (endOfInit()) {
+ return {
+ type: "number",
+ loc: literal.loc.start,
+ value: literal
+ };
+ }
+ return {
+ type: "invalid",
+ loc: startLoc
+ };
+ }
+ case 133:
+ {
+ const literal = this.parseStringLiteral(this.state.value);
+ if (endOfInit()) {
+ return {
+ type: "string",
+ loc: literal.loc.start,
+ value: literal
+ };
+ }
+ return {
+ type: "invalid",
+ loc: startLoc
+ };
+ }
+ case 85:
+ case 86:
+ {
+ const literal = this.parseBooleanLiteral(this.match(85));
+ if (endOfInit()) {
+ return {
+ type: "boolean",
+ loc: literal.loc.start,
+ value: literal
+ };
+ }
+ return {
+ type: "invalid",
+ loc: startLoc
+ };
+ }
+ default:
+ return {
+ type: "invalid",
+ loc: startLoc
+ };
+ }
+ }
+ flowEnumMemberRaw() {
+ const loc = this.state.startLoc;
+ const id = this.parseIdentifier(true);
+ const init = this.eat(29) ? this.flowEnumMemberInit() : {
+ type: "none",
+ loc
+ };
+ return {
+ id,
+ init
+ };
+ }
+ flowEnumCheckExplicitTypeMismatch(loc, context, expectedType) {
+ const {
+ explicitType
+ } = context;
+ if (explicitType === null) {
+ return;
+ }
+ if (explicitType !== expectedType) {
+ this.flowEnumErrorInvalidMemberInitializer(loc, context);
+ }
+ }
+ flowEnumMembers({
+ enumName,
+ explicitType
+ }) {
+ const seenNames = new Set();
+ const members = {
+ booleanMembers: [],
+ numberMembers: [],
+ stringMembers: [],
+ defaultedMembers: []
+ };
+ let hasUnknownMembers = false;
+ while (!this.match(8)) {
+ if (this.eat(21)) {
+ hasUnknownMembers = true;
+ break;
+ }
+ const memberNode = this.startNode();
+ const {
+ id,
+ init
+ } = this.flowEnumMemberRaw();
+ const memberName = id.name;
+ if (memberName === "") {
+ continue;
+ }
+ if (/^[a-z]/.test(memberName)) {
+ this.raise(FlowErrors.EnumInvalidMemberName, {
+ at: id,
+ memberName,
+ suggestion: memberName[0].toUpperCase() + memberName.slice(1),
+ enumName
+ });
+ }
+ if (seenNames.has(memberName)) {
+ this.raise(FlowErrors.EnumDuplicateMemberName, {
+ at: id,
+ memberName,
+ enumName
+ });
+ }
+ seenNames.add(memberName);
+ const context = {
+ enumName,
+ explicitType,
+ memberName
+ };
+ memberNode.id = id;
+ switch (init.type) {
+ case "boolean":
+ {
+ this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "boolean");
+ memberNode.init = init.value;
+ members.booleanMembers.push(this.finishNode(memberNode, "EnumBooleanMember"));
+ break;
+ }
+ case "number":
+ {
+ this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "number");
+ memberNode.init = init.value;
+ members.numberMembers.push(this.finishNode(memberNode, "EnumNumberMember"));
+ break;
+ }
+ case "string":
+ {
+ this.flowEnumCheckExplicitTypeMismatch(init.loc, context, "string");
+ memberNode.init = init.value;
+ members.stringMembers.push(this.finishNode(memberNode, "EnumStringMember"));
+ break;
+ }
+ case "invalid":
+ {
+ throw this.flowEnumErrorInvalidMemberInitializer(init.loc, context);
+ }
+ case "none":
+ {
+ switch (explicitType) {
+ case "boolean":
+ this.flowEnumErrorBooleanMemberNotInitialized(init.loc, context);
+ break;
+ case "number":
+ this.flowEnumErrorNumberMemberNotInitialized(init.loc, context);
+ break;
+ default:
+ members.defaultedMembers.push(this.finishNode(memberNode, "EnumDefaultedMember"));
+ }
+ }
+ }
+ if (!this.match(8)) {
+ this.expect(12);
+ }
+ }
+ return {
+ members,
+ hasUnknownMembers
+ };
+ }
+ flowEnumStringMembers(initializedMembers, defaultedMembers, {
+ enumName
+ }) {
+ if (initializedMembers.length === 0) {
+ return defaultedMembers;
+ } else if (defaultedMembers.length === 0) {
+ return initializedMembers;
+ } else if (defaultedMembers.length > initializedMembers.length) {
+ for (const member of initializedMembers) {
+ this.flowEnumErrorStringMemberInconsistentlyInitialized(member, {
+ enumName
+ });
+ }
+ return defaultedMembers;
+ } else {
+ for (const member of defaultedMembers) {
+ this.flowEnumErrorStringMemberInconsistentlyInitialized(member, {
+ enumName
+ });
+ }
+ return initializedMembers;
+ }
+ }
+ flowEnumParseExplicitType({
+ enumName
+ }) {
+ if (!this.eatContextual(102)) return null;
+ if (!tokenIsIdentifier(this.state.type)) {
+ throw this.raise(FlowErrors.EnumInvalidExplicitTypeUnknownSupplied, {
+ at: this.state.startLoc,
+ enumName
+ });
+ }
+ const {
+ value
+ } = this.state;
+ this.next();
+ if (value !== "boolean" && value !== "number" && value !== "string" && value !== "symbol") {
+ this.raise(FlowErrors.EnumInvalidExplicitType, {
+ at: this.state.startLoc,
+ enumName,
+ invalidEnumType: value
+ });
+ }
+ return value;
+ }
+ flowEnumBody(node, id) {
+ const enumName = id.name;
+ const nameLoc = id.loc.start;
+ const explicitType = this.flowEnumParseExplicitType({
+ enumName
+ });
+ this.expect(5);
+ const {
+ members,
+ hasUnknownMembers
+ } = this.flowEnumMembers({
+ enumName,
+ explicitType
+ });
+ node.hasUnknownMembers = hasUnknownMembers;
+ switch (explicitType) {
+ case "boolean":
+ node.explicitType = true;
+ node.members = members.booleanMembers;
+ this.expect(8);
+ return this.finishNode(node, "EnumBooleanBody");
+ case "number":
+ node.explicitType = true;
+ node.members = members.numberMembers;
+ this.expect(8);
+ return this.finishNode(node, "EnumNumberBody");
+ case "string":
+ node.explicitType = true;
+ node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, {
+ enumName
+ });
+ this.expect(8);
+ return this.finishNode(node, "EnumStringBody");
+ case "symbol":
+ node.members = members.defaultedMembers;
+ this.expect(8);
+ return this.finishNode(node, "EnumSymbolBody");
+ default:
+ {
+ const empty = () => {
+ node.members = [];
+ this.expect(8);
+ return this.finishNode(node, "EnumStringBody");
+ };
+ node.explicitType = false;
+ const boolsLen = members.booleanMembers.length;
+ const numsLen = members.numberMembers.length;
+ const strsLen = members.stringMembers.length;
+ const defaultedLen = members.defaultedMembers.length;
+ if (!boolsLen && !numsLen && !strsLen && !defaultedLen) {
+ return empty();
+ } else if (!boolsLen && !numsLen) {
+ node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, {
+ enumName
+ });
+ this.expect(8);
+ return this.finishNode(node, "EnumStringBody");
+ } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) {
+ for (const member of members.defaultedMembers) {
+ this.flowEnumErrorBooleanMemberNotInitialized(member.loc.start, {
+ enumName,
+ memberName: member.id.name
+ });
+ }
+ node.members = members.booleanMembers;
+ this.expect(8);
+ return this.finishNode(node, "EnumBooleanBody");
+ } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) {
+ for (const member of members.defaultedMembers) {
+ this.flowEnumErrorNumberMemberNotInitialized(member.loc.start, {
+ enumName,
+ memberName: member.id.name
+ });
+ }
+ node.members = members.numberMembers;
+ this.expect(8);
+ return this.finishNode(node, "EnumNumberBody");
+ } else {
+ this.raise(FlowErrors.EnumInconsistentMemberValues, {
+ at: nameLoc,
+ enumName
+ });
+ return empty();
+ }
+ }
+ }
+ }
+ flowParseEnumDeclaration(node) {
+ const id = this.parseIdentifier();
+ node.id = id;
+ node.body = this.flowEnumBody(this.startNode(), id);
+ return this.finishNode(node, "EnumDeclaration");
+ }
+ isLookaheadToken_lt() {
+ const next = this.nextTokenStart();
+ if (this.input.charCodeAt(next) === 60) {
+ const afterNext = this.input.charCodeAt(next + 1);
+ return afterNext !== 60 && afterNext !== 61;
+ }
+ return false;
+ }
+ maybeUnwrapTypeCastExpression(node) {
+ return node.type === "TypeCastExpression" ? node.expression : node;
+ }
+};
+const entities = {
+ __proto__: null,
+ quot: "\u0022",
+ amp: "&",
+ apos: "\u0027",
+ lt: "<",
+ gt: ">",
+ nbsp: "\u00A0",
+ iexcl: "\u00A1",
+ cent: "\u00A2",
+ pound: "\u00A3",
+ curren: "\u00A4",
+ yen: "\u00A5",
+ brvbar: "\u00A6",
+ sect: "\u00A7",
+ uml: "\u00A8",
+ copy: "\u00A9",
+ ordf: "\u00AA",
+ laquo: "\u00AB",
+ not: "\u00AC",
+ shy: "\u00AD",
+ reg: "\u00AE",
+ macr: "\u00AF",
+ deg: "\u00B0",
+ plusmn: "\u00B1",
+ sup2: "\u00B2",
+ sup3: "\u00B3",
+ acute: "\u00B4",
+ micro: "\u00B5",
+ para: "\u00B6",
+ middot: "\u00B7",
+ cedil: "\u00B8",
+ sup1: "\u00B9",
+ ordm: "\u00BA",
+ raquo: "\u00BB",
+ frac14: "\u00BC",
+ frac12: "\u00BD",
+ frac34: "\u00BE",
+ iquest: "\u00BF",
+ Agrave: "\u00C0",
+ Aacute: "\u00C1",
+ Acirc: "\u00C2",
+ Atilde: "\u00C3",
+ Auml: "\u00C4",
+ Aring: "\u00C5",
+ AElig: "\u00C6",
+ Ccedil: "\u00C7",
+ Egrave: "\u00C8",
+ Eacute: "\u00C9",
+ Ecirc: "\u00CA",
+ Euml: "\u00CB",
+ Igrave: "\u00CC",
+ Iacute: "\u00CD",
+ Icirc: "\u00CE",
+ Iuml: "\u00CF",
+ ETH: "\u00D0",
+ Ntilde: "\u00D1",
+ Ograve: "\u00D2",
+ Oacute: "\u00D3",
+ Ocirc: "\u00D4",
+ Otilde: "\u00D5",
+ Ouml: "\u00D6",
+ times: "\u00D7",
+ Oslash: "\u00D8",
+ Ugrave: "\u00D9",
+ Uacute: "\u00DA",
+ Ucirc: "\u00DB",
+ Uuml: "\u00DC",
+ Yacute: "\u00DD",
+ THORN: "\u00DE",
+ szlig: "\u00DF",
+ agrave: "\u00E0",
+ aacute: "\u00E1",
+ acirc: "\u00E2",
+ atilde: "\u00E3",
+ auml: "\u00E4",
+ aring: "\u00E5",
+ aelig: "\u00E6",
+ ccedil: "\u00E7",
+ egrave: "\u00E8",
+ eacute: "\u00E9",
+ ecirc: "\u00EA",
+ euml: "\u00EB",
+ igrave: "\u00EC",
+ iacute: "\u00ED",
+ icirc: "\u00EE",
+ iuml: "\u00EF",
+ eth: "\u00F0",
+ ntilde: "\u00F1",
+ ograve: "\u00F2",
+ oacute: "\u00F3",
+ ocirc: "\u00F4",
+ otilde: "\u00F5",
+ ouml: "\u00F6",
+ divide: "\u00F7",
+ oslash: "\u00F8",
+ ugrave: "\u00F9",
+ uacute: "\u00FA",
+ ucirc: "\u00FB",
+ uuml: "\u00FC",
+ yacute: "\u00FD",
+ thorn: "\u00FE",
+ yuml: "\u00FF",
+ OElig: "\u0152",
+ oelig: "\u0153",
+ Scaron: "\u0160",
+ scaron: "\u0161",
+ Yuml: "\u0178",
+ fnof: "\u0192",
+ circ: "\u02C6",
+ tilde: "\u02DC",
+ Alpha: "\u0391",
+ Beta: "\u0392",
+ Gamma: "\u0393",
+ Delta: "\u0394",
+ Epsilon: "\u0395",
+ Zeta: "\u0396",
+ Eta: "\u0397",
+ Theta: "\u0398",
+ Iota: "\u0399",
+ Kappa: "\u039A",
+ Lambda: "\u039B",
+ Mu: "\u039C",
+ Nu: "\u039D",
+ Xi: "\u039E",
+ Omicron: "\u039F",
+ Pi: "\u03A0",
+ Rho: "\u03A1",
+ Sigma: "\u03A3",
+ Tau: "\u03A4",
+ Upsilon: "\u03A5",
+ Phi: "\u03A6",
+ Chi: "\u03A7",
+ Psi: "\u03A8",
+ Omega: "\u03A9",
+ alpha: "\u03B1",
+ beta: "\u03B2",
+ gamma: "\u03B3",
+ delta: "\u03B4",
+ epsilon: "\u03B5",
+ zeta: "\u03B6",
+ eta: "\u03B7",
+ theta: "\u03B8",
+ iota: "\u03B9",
+ kappa: "\u03BA",
+ lambda: "\u03BB",
+ mu: "\u03BC",
+ nu: "\u03BD",
+ xi: "\u03BE",
+ omicron: "\u03BF",
+ pi: "\u03C0",
+ rho: "\u03C1",
+ sigmaf: "\u03C2",
+ sigma: "\u03C3",
+ tau: "\u03C4",
+ upsilon: "\u03C5",
+ phi: "\u03C6",
+ chi: "\u03C7",
+ psi: "\u03C8",
+ omega: "\u03C9",
+ thetasym: "\u03D1",
+ upsih: "\u03D2",
+ piv: "\u03D6",
+ ensp: "\u2002",
+ emsp: "\u2003",
+ thinsp: "\u2009",
+ zwnj: "\u200C",
+ zwj: "\u200D",
+ lrm: "\u200E",
+ rlm: "\u200F",
+ ndash: "\u2013",
+ mdash: "\u2014",
+ lsquo: "\u2018",
+ rsquo: "\u2019",
+ sbquo: "\u201A",
+ ldquo: "\u201C",
+ rdquo: "\u201D",
+ bdquo: "\u201E",
+ dagger: "\u2020",
+ Dagger: "\u2021",
+ bull: "\u2022",
+ hellip: "\u2026",
+ permil: "\u2030",
+ prime: "\u2032",
+ Prime: "\u2033",
+ lsaquo: "\u2039",
+ rsaquo: "\u203A",
+ oline: "\u203E",
+ frasl: "\u2044",
+ euro: "\u20AC",
+ image: "\u2111",
+ weierp: "\u2118",
+ real: "\u211C",
+ trade: "\u2122",
+ alefsym: "\u2135",
+ larr: "\u2190",
+ uarr: "\u2191",
+ rarr: "\u2192",
+ darr: "\u2193",
+ harr: "\u2194",
+ crarr: "\u21B5",
+ lArr: "\u21D0",
+ uArr: "\u21D1",
+ rArr: "\u21D2",
+ dArr: "\u21D3",
+ hArr: "\u21D4",
+ forall: "\u2200",
+ part: "\u2202",
+ exist: "\u2203",
+ empty: "\u2205",
+ nabla: "\u2207",
+ isin: "\u2208",
+ notin: "\u2209",
+ ni: "\u220B",
+ prod: "\u220F",
+ sum: "\u2211",
+ minus: "\u2212",
+ lowast: "\u2217",
+ radic: "\u221A",
+ prop: "\u221D",
+ infin: "\u221E",
+ ang: "\u2220",
+ and: "\u2227",
+ or: "\u2228",
+ cap: "\u2229",
+ cup: "\u222A",
+ int: "\u222B",
+ there4: "\u2234",
+ sim: "\u223C",
+ cong: "\u2245",
+ asymp: "\u2248",
+ ne: "\u2260",
+ equiv: "\u2261",
+ le: "\u2264",
+ ge: "\u2265",
+ sub: "\u2282",
+ sup: "\u2283",
+ nsub: "\u2284",
+ sube: "\u2286",
+ supe: "\u2287",
+ oplus: "\u2295",
+ otimes: "\u2297",
+ perp: "\u22A5",
+ sdot: "\u22C5",
+ lceil: "\u2308",
+ rceil: "\u2309",
+ lfloor: "\u230A",
+ rfloor: "\u230B",
+ lang: "\u2329",
+ rang: "\u232A",
+ loz: "\u25CA",
+ spades: "\u2660",
+ clubs: "\u2663",
+ hearts: "\u2665",
+ diams: "\u2666"
+};
+const JsxErrors = ParseErrorEnum`jsx`({
+ AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.",
+ MissingClosingTagElement: ({
+ openingTagName
+ }) => `Expected corresponding JSX closing tag for <${openingTagName}>.`,
+ MissingClosingTagFragment: "Expected corresponding JSX closing tag for <>.",
+ UnexpectedSequenceExpression: "Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?",
+ UnexpectedToken: ({
+ unexpected,
+ HTMLEntity
+ }) => `Unexpected token \`${unexpected}\`. Did you mean \`${HTMLEntity}\` or \`{'${unexpected}'}\`?`,
+ UnsupportedJsxValue: "JSX value should be either an expression or a quoted JSX text.",
+ UnterminatedJsxContent: "Unterminated JSX contents.",
+ UnwrappedAdjacentJSXElements: "Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...>?"
+});
+function isFragment(object) {
+ return object ? object.type === "JSXOpeningFragment" || object.type === "JSXClosingFragment" : false;
+}
+function getQualifiedJSXName(object) {
+ if (object.type === "JSXIdentifier") {
+ return object.name;
+ }
+ if (object.type === "JSXNamespacedName") {
+ return object.namespace.name + ":" + object.name.name;
+ }
+ if (object.type === "JSXMemberExpression") {
+ return getQualifiedJSXName(object.object) + "." + getQualifiedJSXName(object.property);
+ }
+ throw new Error("Node had unexpected type: " + object.type);
+}
+var jsx = superClass => class JSXParserMixin extends superClass {
+ jsxReadToken() {
+ let out = "";
+ let chunkStart = this.state.pos;
+ for (;;) {
+ if (this.state.pos >= this.length) {
+ throw this.raise(JsxErrors.UnterminatedJsxContent, {
+ at: this.state.startLoc
+ });
+ }
+ const ch = this.input.charCodeAt(this.state.pos);
+ switch (ch) {
+ case 60:
+ case 123:
+ if (this.state.pos === this.state.start) {
+ if (ch === 60 && this.state.canStartJSXElement) {
+ ++this.state.pos;
+ this.finishToken(142);
+ } else {
+ super.getTokenFromCode(ch);
+ }
+ return;
+ }
+ out += this.input.slice(chunkStart, this.state.pos);
+ this.finishToken(141, out);
+ return;
+ case 38:
+ out += this.input.slice(chunkStart, this.state.pos);
+ out += this.jsxReadEntity();
+ chunkStart = this.state.pos;
+ break;
+ case 62:
+ case 125:
+ default:
+ if (isNewLine(ch)) {
+ out += this.input.slice(chunkStart, this.state.pos);
+ out += this.jsxReadNewLine(true);
+ chunkStart = this.state.pos;
+ } else {
+ ++this.state.pos;
+ }
+ }
+ }
+ }
+ jsxReadNewLine(normalizeCRLF) {
+ const ch = this.input.charCodeAt(this.state.pos);
+ let out;
+ ++this.state.pos;
+ if (ch === 13 && this.input.charCodeAt(this.state.pos) === 10) {
+ ++this.state.pos;
+ out = normalizeCRLF ? "\n" : "\r\n";
+ } else {
+ out = String.fromCharCode(ch);
+ }
+ ++this.state.curLine;
+ this.state.lineStart = this.state.pos;
+ return out;
+ }
+ jsxReadString(quote) {
+ let out = "";
+ let chunkStart = ++this.state.pos;
+ for (;;) {
+ if (this.state.pos >= this.length) {
+ throw this.raise(Errors.UnterminatedString, {
+ at: this.state.startLoc
+ });
+ }
+ const ch = this.input.charCodeAt(this.state.pos);
+ if (ch === quote) break;
+ if (ch === 38) {
+ out += this.input.slice(chunkStart, this.state.pos);
+ out += this.jsxReadEntity();
+ chunkStart = this.state.pos;
+ } else if (isNewLine(ch)) {
+ out += this.input.slice(chunkStart, this.state.pos);
+ out += this.jsxReadNewLine(false);
+ chunkStart = this.state.pos;
+ } else {
+ ++this.state.pos;
+ }
+ }
+ out += this.input.slice(chunkStart, this.state.pos++);
+ this.finishToken(133, out);
+ }
+ jsxReadEntity() {
+ const startPos = ++this.state.pos;
+ if (this.codePointAtPos(this.state.pos) === 35) {
+ ++this.state.pos;
+ let radix = 10;
+ if (this.codePointAtPos(this.state.pos) === 120) {
+ radix = 16;
+ ++this.state.pos;
+ }
+ const codePoint = this.readInt(radix, undefined, false, "bail");
+ if (codePoint !== null && this.codePointAtPos(this.state.pos) === 59) {
+ ++this.state.pos;
+ return String.fromCodePoint(codePoint);
+ }
+ } else {
+ let count = 0;
+ let semi = false;
+ while (count++ < 10 && this.state.pos < this.length && !(semi = this.codePointAtPos(this.state.pos) == 59)) {
+ ++this.state.pos;
+ }
+ if (semi) {
+ const desc = this.input.slice(startPos, this.state.pos);
+ const entity = entities[desc];
+ ++this.state.pos;
+ if (entity) {
+ return entity;
+ }
+ }
+ }
+ this.state.pos = startPos;
+ return "&";
+ }
+ jsxReadWord() {
+ let ch;
+ const start = this.state.pos;
+ do {
+ ch = this.input.charCodeAt(++this.state.pos);
+ } while (isIdentifierChar(ch) || ch === 45);
+ this.finishToken(140, this.input.slice(start, this.state.pos));
+ }
+ jsxParseIdentifier() {
+ const node = this.startNode();
+ if (this.match(140)) {
+ node.name = this.state.value;
+ } else if (tokenIsKeyword(this.state.type)) {
+ node.name = tokenLabelName(this.state.type);
+ } else {
+ this.unexpected();
+ }
+ this.next();
+ return this.finishNode(node, "JSXIdentifier");
+ }
+ jsxParseNamespacedName() {
+ const startLoc = this.state.startLoc;
+ const name = this.jsxParseIdentifier();
+ if (!this.eat(14)) return name;
+ const node = this.startNodeAt(startLoc);
+ node.namespace = name;
+ node.name = this.jsxParseIdentifier();
+ return this.finishNode(node, "JSXNamespacedName");
+ }
+ jsxParseElementName() {
+ const startLoc = this.state.startLoc;
+ let node = this.jsxParseNamespacedName();
+ if (node.type === "JSXNamespacedName") {
+ return node;
+ }
+ while (this.eat(16)) {
+ const newNode = this.startNodeAt(startLoc);
+ newNode.object = node;
+ newNode.property = this.jsxParseIdentifier();
+ node = this.finishNode(newNode, "JSXMemberExpression");
+ }
+ return node;
+ }
+ jsxParseAttributeValue() {
+ let node;
+ switch (this.state.type) {
+ case 5:
+ node = this.startNode();
+ this.setContext(types.brace);
+ this.next();
+ node = this.jsxParseExpressionContainer(node, types.j_oTag);
+ if (node.expression.type === "JSXEmptyExpression") {
+ this.raise(JsxErrors.AttributeIsEmpty, {
+ at: node
+ });
+ }
+ return node;
+ case 142:
+ case 133:
+ return this.parseExprAtom();
+ default:
+ throw this.raise(JsxErrors.UnsupportedJsxValue, {
+ at: this.state.startLoc
+ });
+ }
+ }
+ jsxParseEmptyExpression() {
+ const node = this.startNodeAt(this.state.lastTokEndLoc);
+ return this.finishNodeAt(node, "JSXEmptyExpression", this.state.startLoc);
+ }
+ jsxParseSpreadChild(node) {
+ this.next();
+ node.expression = this.parseExpression();
+ this.setContext(types.j_expr);
+ this.state.canStartJSXElement = true;
+ this.expect(8);
+ return this.finishNode(node, "JSXSpreadChild");
+ }
+ jsxParseExpressionContainer(node, previousContext) {
+ if (this.match(8)) {
+ node.expression = this.jsxParseEmptyExpression();
+ } else {
+ const expression = this.parseExpression();
+ node.expression = expression;
+ }
+ this.setContext(previousContext);
+ this.state.canStartJSXElement = true;
+ this.expect(8);
+ return this.finishNode(node, "JSXExpressionContainer");
+ }
+ jsxParseAttribute() {
+ const node = this.startNode();
+ if (this.match(5)) {
+ this.setContext(types.brace);
+ this.next();
+ this.expect(21);
+ node.argument = this.parseMaybeAssignAllowIn();
+ this.setContext(types.j_oTag);
+ this.state.canStartJSXElement = true;
+ this.expect(8);
+ return this.finishNode(node, "JSXSpreadAttribute");
+ }
+ node.name = this.jsxParseNamespacedName();
+ node.value = this.eat(29) ? this.jsxParseAttributeValue() : null;
+ return this.finishNode(node, "JSXAttribute");
+ }
+ jsxParseOpeningElementAt(startLoc) {
+ const node = this.startNodeAt(startLoc);
+ if (this.eat(143)) {
+ return this.finishNode(node, "JSXOpeningFragment");
+ }
+ node.name = this.jsxParseElementName();
+ return this.jsxParseOpeningElementAfterName(node);
+ }
+ jsxParseOpeningElementAfterName(node) {
+ const attributes = [];
+ while (!this.match(56) && !this.match(143)) {
+ attributes.push(this.jsxParseAttribute());
+ }
+ node.attributes = attributes;
+ node.selfClosing = this.eat(56);
+ this.expect(143);
+ return this.finishNode(node, "JSXOpeningElement");
+ }
+ jsxParseClosingElementAt(startLoc) {
+ const node = this.startNodeAt(startLoc);
+ if (this.eat(143)) {
+ return this.finishNode(node, "JSXClosingFragment");
+ }
+ node.name = this.jsxParseElementName();
+ this.expect(143);
+ return this.finishNode(node, "JSXClosingElement");
+ }
+ jsxParseElementAt(startLoc) {
+ const node = this.startNodeAt(startLoc);
+ const children = [];
+ const openingElement = this.jsxParseOpeningElementAt(startLoc);
+ let closingElement = null;
+ if (!openingElement.selfClosing) {
+ contents: for (;;) {
+ switch (this.state.type) {
+ case 142:
+ startLoc = this.state.startLoc;
+ this.next();
+ if (this.eat(56)) {
+ closingElement = this.jsxParseClosingElementAt(startLoc);
+ break contents;
+ }
+ children.push(this.jsxParseElementAt(startLoc));
+ break;
+ case 141:
+ children.push(this.parseExprAtom());
+ break;
+ case 5:
+ {
+ const node = this.startNode();
+ this.setContext(types.brace);
+ this.next();
+ if (this.match(21)) {
+ children.push(this.jsxParseSpreadChild(node));
+ } else {
+ children.push(this.jsxParseExpressionContainer(node, types.j_expr));
+ }
+ break;
+ }
+ default:
+ this.unexpected();
+ }
+ }
+ if (isFragment(openingElement) && !isFragment(closingElement) && closingElement !== null) {
+ this.raise(JsxErrors.MissingClosingTagFragment, {
+ at: closingElement
+ });
+ } else if (!isFragment(openingElement) && isFragment(closingElement)) {
+ this.raise(JsxErrors.MissingClosingTagElement, {
+ at: closingElement,
+ openingTagName: getQualifiedJSXName(openingElement.name)
+ });
+ } else if (!isFragment(openingElement) && !isFragment(closingElement)) {
+ if (getQualifiedJSXName(closingElement.name) !== getQualifiedJSXName(openingElement.name)) {
+ this.raise(JsxErrors.MissingClosingTagElement, {
+ at: closingElement,
+ openingTagName: getQualifiedJSXName(openingElement.name)
+ });
+ }
+ }
+ }
+ if (isFragment(openingElement)) {
+ node.openingFragment = openingElement;
+ node.closingFragment = closingElement;
+ } else {
+ node.openingElement = openingElement;
+ node.closingElement = closingElement;
+ }
+ node.children = children;
+ if (this.match(47)) {
+ throw this.raise(JsxErrors.UnwrappedAdjacentJSXElements, {
+ at: this.state.startLoc
+ });
+ }
+ return isFragment(openingElement) ? this.finishNode(node, "JSXFragment") : this.finishNode(node, "JSXElement");
+ }
+ jsxParseElement() {
+ const startLoc = this.state.startLoc;
+ this.next();
+ return this.jsxParseElementAt(startLoc);
+ }
+ setContext(newContext) {
+ const {
+ context
+ } = this.state;
+ context[context.length - 1] = newContext;
+ }
+ parseExprAtom(refExpressionErrors) {
+ if (this.match(141)) {
+ return this.parseLiteral(this.state.value, "JSXText");
+ } else if (this.match(142)) {
+ return this.jsxParseElement();
+ } else if (this.match(47) && this.input.charCodeAt(this.state.pos) !== 33) {
+ this.replaceToken(142);
+ return this.jsxParseElement();
+ } else {
+ return super.parseExprAtom(refExpressionErrors);
+ }
+ }
+ skipSpace() {
+ const curContext = this.curContext();
+ if (!curContext.preserveSpace) super.skipSpace();
+ }
+ getTokenFromCode(code) {
+ const context = this.curContext();
+ if (context === types.j_expr) {
+ this.jsxReadToken();
+ return;
+ }
+ if (context === types.j_oTag || context === types.j_cTag) {
+ if (isIdentifierStart(code)) {
+ this.jsxReadWord();
+ return;
+ }
+ if (code === 62) {
+ ++this.state.pos;
+ this.finishToken(143);
+ return;
+ }
+ if ((code === 34 || code === 39) && context === types.j_oTag) {
+ this.jsxReadString(code);
+ return;
+ }
+ }
+ if (code === 60 && this.state.canStartJSXElement && this.input.charCodeAt(this.state.pos + 1) !== 33) {
+ ++this.state.pos;
+ this.finishToken(142);
+ return;
+ }
+ super.getTokenFromCode(code);
+ }
+ updateContext(prevType) {
+ const {
+ context,
+ type
+ } = this.state;
+ if (type === 56 && prevType === 142) {
+ context.splice(-2, 2, types.j_cTag);
+ this.state.canStartJSXElement = false;
+ } else if (type === 142) {
+ context.push(types.j_oTag);
+ } else if (type === 143) {
+ const out = context[context.length - 1];
+ if (out === types.j_oTag && prevType === 56 || out === types.j_cTag) {
+ context.pop();
+ this.state.canStartJSXElement = context[context.length - 1] === types.j_expr;
+ } else {
+ this.setContext(types.j_expr);
+ this.state.canStartJSXElement = true;
+ }
+ } else {
+ this.state.canStartJSXElement = tokenComesBeforeExpression(type);
+ }
+ }
+};
+class TypeScriptScope extends Scope {
+ constructor(...args) {
+ super(...args);
+ this.types = new Set();
+ this.enums = new Set();
+ this.constEnums = new Set();
+ this.classes = new Set();
+ this.exportOnlyBindings = new Set();
+ }
+}
+class TypeScriptScopeHandler extends ScopeHandler {
+ constructor(...args) {
+ super(...args);
+ this.importsStack = [];
+ }
+ createScope(flags) {
+ this.importsStack.push(new Set());
+ return new TypeScriptScope(flags);
+ }
+ enter(flags) {
+ if (flags == 256) {
+ this.importsStack.push(new Set());
+ }
+ super.enter(flags);
+ }
+ exit() {
+ const flags = super.exit();
+ if (flags == 256) {
+ this.importsStack.pop();
+ }
+ return flags;
+ }
+ hasImport(name, allowShadow) {
+ const len = this.importsStack.length;
+ if (this.importsStack[len - 1].has(name)) {
+ return true;
+ }
+ if (!allowShadow && len > 1) {
+ for (let i = 0; i < len - 1; i++) {
+ if (this.importsStack[i].has(name)) return true;
+ }
+ }
+ return false;
+ }
+ declareName(name, bindingType, loc) {
+ if (bindingType & 4096) {
+ if (this.hasImport(name, true)) {
+ this.parser.raise(Errors.VarRedeclaration, {
+ at: loc,
+ identifierName: name
+ });
+ }
+ this.importsStack[this.importsStack.length - 1].add(name);
+ return;
+ }
+ const scope = this.currentScope();
+ if (bindingType & 1024) {
+ this.maybeExportDefined(scope, name);
+ scope.exportOnlyBindings.add(name);
+ return;
+ }
+ super.declareName(name, bindingType, loc);
+ if (bindingType & 2) {
+ if (!(bindingType & 1)) {
+ this.checkRedeclarationInScope(scope, name, bindingType, loc);
+ this.maybeExportDefined(scope, name);
+ }
+ scope.types.add(name);
+ }
+ if (bindingType & 256) scope.enums.add(name);
+ if (bindingType & 512) {
+ scope.constEnums.add(name);
+ }
+ if (bindingType & 128) scope.classes.add(name);
+ }
+ isRedeclaredInScope(scope, name, bindingType) {
+ if (scope.enums.has(name)) {
+ if (bindingType & 256) {
+ const isConst = !!(bindingType & 512);
+ const wasConst = scope.constEnums.has(name);
+ return isConst !== wasConst;
+ }
+ return true;
+ }
+ if (bindingType & 128 && scope.classes.has(name)) {
+ if (scope.lexical.has(name)) {
+ return !!(bindingType & 1);
+ } else {
+ return false;
+ }
+ }
+ if (bindingType & 2 && scope.types.has(name)) {
+ return true;
+ }
+ return super.isRedeclaredInScope(scope, name, bindingType);
+ }
+ checkLocalExport(id) {
+ const {
+ name
+ } = id;
+ if (this.hasImport(name)) return;
+ const len = this.scopeStack.length;
+ for (let i = len - 1; i >= 0; i--) {
+ const scope = this.scopeStack[i];
+ if (scope.types.has(name) || scope.exportOnlyBindings.has(name)) return;
+ }
+ super.checkLocalExport(id);
+ }
+}
+const getOwn$1 = (object, key) => Object.hasOwnProperty.call(object, key) && object[key];
+const unwrapParenthesizedExpression = node => {
+ return node.type === "ParenthesizedExpression" ? unwrapParenthesizedExpression(node.expression) : node;
+};
+class LValParser extends NodeUtils {
+ toAssignable(node, isLHS = false) {
+ var _node$extra, _node$extra3;
+ let parenthesized = undefined;
+ if (node.type === "ParenthesizedExpression" || (_node$extra = node.extra) != null && _node$extra.parenthesized) {
+ parenthesized = unwrapParenthesizedExpression(node);
+ if (isLHS) {
+ if (parenthesized.type === "Identifier") {
+ this.expressionScope.recordArrowParameterBindingError(Errors.InvalidParenthesizedAssignment, {
+ at: node
+ });
+ } else if (parenthesized.type !== "MemberExpression" && !this.isOptionalMemberExpression(parenthesized)) {
+ this.raise(Errors.InvalidParenthesizedAssignment, {
+ at: node
+ });
+ }
+ } else {
+ this.raise(Errors.InvalidParenthesizedAssignment, {
+ at: node
+ });
+ }
+ }
+ switch (node.type) {
+ case "Identifier":
+ case "ObjectPattern":
+ case "ArrayPattern":
+ case "AssignmentPattern":
+ case "RestElement":
+ break;
+ case "ObjectExpression":
+ node.type = "ObjectPattern";
+ for (let i = 0, length = node.properties.length, last = length - 1; i < length; i++) {
+ var _node$extra2;
+ const prop = node.properties[i];
+ const isLast = i === last;
+ this.toAssignableObjectExpressionProp(prop, isLast, isLHS);
+ if (isLast && prop.type === "RestElement" && (_node$extra2 = node.extra) != null && _node$extra2.trailingCommaLoc) {
+ this.raise(Errors.RestTrailingComma, {
+ at: node.extra.trailingCommaLoc
+ });
+ }
+ }
+ break;
+ case "ObjectProperty":
+ {
+ const {
+ key,
+ value
+ } = node;
+ if (this.isPrivateName(key)) {
+ this.classScope.usePrivateName(this.getPrivateNameSV(key), key.loc.start);
+ }
+ this.toAssignable(value, isLHS);
+ break;
+ }
+ case "SpreadElement":
+ {
+ throw new Error("Internal @babel/parser error (this is a bug, please report it)." + " SpreadElement should be converted by .toAssignable's caller.");
+ }
+ case "ArrayExpression":
+ node.type = "ArrayPattern";
+ this.toAssignableList(node.elements, (_node$extra3 = node.extra) == null ? void 0 : _node$extra3.trailingCommaLoc, isLHS);
+ break;
+ case "AssignmentExpression":
+ if (node.operator !== "=") {
+ this.raise(Errors.MissingEqInAssignment, {
+ at: node.left.loc.end
+ });
+ }
+ node.type = "AssignmentPattern";
+ delete node.operator;
+ this.toAssignable(node.left, isLHS);
+ break;
+ case "ParenthesizedExpression":
+ this.toAssignable(parenthesized, isLHS);
+ break;
+ }
+ }
+ toAssignableObjectExpressionProp(prop, isLast, isLHS) {
+ if (prop.type === "ObjectMethod") {
+ this.raise(prop.kind === "get" || prop.kind === "set" ? Errors.PatternHasAccessor : Errors.PatternHasMethod, {
+ at: prop.key
+ });
+ } else if (prop.type === "SpreadElement") {
+ prop.type = "RestElement";
+ const arg = prop.argument;
+ this.checkToRestConversion(arg, false);
+ this.toAssignable(arg, isLHS);
+ if (!isLast) {
+ this.raise(Errors.RestTrailingComma, {
+ at: prop
+ });
+ }
+ } else {
+ this.toAssignable(prop, isLHS);
+ }
+ }
+ toAssignableList(exprList, trailingCommaLoc, isLHS) {
+ const end = exprList.length - 1;
+ for (let i = 0; i <= end; i++) {
+ const elt = exprList[i];
+ if (!elt) continue;
+ if (elt.type === "SpreadElement") {
+ elt.type = "RestElement";
+ const arg = elt.argument;
+ this.checkToRestConversion(arg, true);
+ this.toAssignable(arg, isLHS);
+ } else {
+ this.toAssignable(elt, isLHS);
+ }
+ if (elt.type === "RestElement") {
+ if (i < end) {
+ this.raise(Errors.RestTrailingComma, {
+ at: elt
+ });
+ } else if (trailingCommaLoc) {
+ this.raise(Errors.RestTrailingComma, {
+ at: trailingCommaLoc
+ });
+ }
+ }
+ }
+ }
+ isAssignable(node, isBinding) {
+ switch (node.type) {
+ case "Identifier":
+ case "ObjectPattern":
+ case "ArrayPattern":
+ case "AssignmentPattern":
+ case "RestElement":
+ return true;
+ case "ObjectExpression":
+ {
+ const last = node.properties.length - 1;
+ return node.properties.every((prop, i) => {
+ return prop.type !== "ObjectMethod" && (i === last || prop.type !== "SpreadElement") && this.isAssignable(prop);
+ });
+ }
+ case "ObjectProperty":
+ return this.isAssignable(node.value);
+ case "SpreadElement":
+ return this.isAssignable(node.argument);
+ case "ArrayExpression":
+ return node.elements.every(element => element === null || this.isAssignable(element));
+ case "AssignmentExpression":
+ return node.operator === "=";
+ case "ParenthesizedExpression":
+ return this.isAssignable(node.expression);
+ case "MemberExpression":
+ case "OptionalMemberExpression":
+ return !isBinding;
+ default:
+ return false;
+ }
+ }
+ toReferencedList(exprList, isParenthesizedExpr) {
+ return exprList;
+ }
+ toReferencedListDeep(exprList, isParenthesizedExpr) {
+ this.toReferencedList(exprList, isParenthesizedExpr);
+ for (const expr of exprList) {
+ if ((expr == null ? void 0 : expr.type) === "ArrayExpression") {
+ this.toReferencedListDeep(expr.elements);
+ }
+ }
+ }
+ parseSpread(refExpressionErrors) {
+ const node = this.startNode();
+ this.next();
+ node.argument = this.parseMaybeAssignAllowIn(refExpressionErrors, undefined);
+ return this.finishNode(node, "SpreadElement");
+ }
+ parseRestBinding() {
+ const node = this.startNode();
+ this.next();
+ node.argument = this.parseBindingAtom();
+ return this.finishNode(node, "RestElement");
+ }
+ parseBindingAtom() {
+ switch (this.state.type) {
+ case 0:
+ {
+ const node = this.startNode();
+ this.next();
+ node.elements = this.parseBindingList(3, 93, 1);
+ return this.finishNode(node, "ArrayPattern");
+ }
+ case 5:
+ return this.parseObjectLike(8, true);
+ }
+ return this.parseIdentifier();
+ }
+ parseBindingList(close, closeCharCode, flags) {
+ const allowEmpty = flags & 1;
+ const elts = [];
+ let first = true;
+ while (!this.eat(close)) {
+ if (first) {
+ first = false;
+ } else {
+ this.expect(12);
+ }
+ if (allowEmpty && this.match(12)) {
+ elts.push(null);
+ } else if (this.eat(close)) {
+ break;
+ } else if (this.match(21)) {
+ elts.push(this.parseAssignableListItemTypes(this.parseRestBinding(), flags));
+ if (!this.checkCommaAfterRest(closeCharCode)) {
+ this.expect(close);
+ break;
+ }
+ } else {
+ const decorators = [];
+ if (this.match(26) && this.hasPlugin("decorators")) {
+ this.raise(Errors.UnsupportedParameterDecorator, {
+ at: this.state.startLoc
+ });
+ }
+ while (this.match(26)) {
+ decorators.push(this.parseDecorator());
+ }
+ elts.push(this.parseAssignableListItem(flags, decorators));
+ }
+ }
+ return elts;
+ }
+ parseBindingRestProperty(prop) {
+ this.next();
+ prop.argument = this.parseIdentifier();
+ this.checkCommaAfterRest(125);
+ return this.finishNode(prop, "RestElement");
+ }
+ parseBindingProperty() {
+ const prop = this.startNode();
+ const {
+ type,
+ startLoc
+ } = this.state;
+ if (type === 21) {
+ return this.parseBindingRestProperty(prop);
+ } else if (type === 138) {
+ this.expectPlugin("destructuringPrivate", startLoc);
+ this.classScope.usePrivateName(this.state.value, startLoc);
+ prop.key = this.parsePrivateName();
+ } else {
+ this.parsePropertyName(prop);
+ }
+ prop.method = false;
+ return this.parseObjPropValue(prop, startLoc, false, false, true, false);
+ }
+ parseAssignableListItem(flags, decorators) {
+ const left = this.parseMaybeDefault();
+ this.parseAssignableListItemTypes(left, flags);
+ const elt = this.parseMaybeDefault(left.loc.start, left);
+ if (decorators.length) {
+ left.decorators = decorators;
+ }
+ return elt;
+ }
+ parseAssignableListItemTypes(param, flags) {
+ return param;
+ }
+ parseMaybeDefault(startLoc, left) {
+ var _startLoc, _left;
+ (_startLoc = startLoc) != null ? _startLoc : startLoc = this.state.startLoc;
+ left = (_left = left) != null ? _left : this.parseBindingAtom();
+ if (!this.eat(29)) return left;
+ const node = this.startNodeAt(startLoc);
+ node.left = left;
+ node.right = this.parseMaybeAssignAllowIn();
+ return this.finishNode(node, "AssignmentPattern");
+ }
+ isValidLVal(type, isUnparenthesizedInAssign, binding) {
+ return getOwn$1({
+ AssignmentPattern: "left",
+ RestElement: "argument",
+ ObjectProperty: "value",
+ ParenthesizedExpression: "expression",
+ ArrayPattern: "elements",
+ ObjectPattern: "properties"
+ }, type);
+ }
+ isOptionalMemberExpression(expression) {
+ return expression.type === "OptionalMemberExpression";
+ }
+ checkLVal(expression, {
+ in: ancestor,
+ binding = 64,
+ checkClashes = false,
+ strictModeChanged = false,
+ hasParenthesizedAncestor = false
+ }) {
+ var _expression$extra;
+ const type = expression.type;
+ if (this.isObjectMethod(expression)) return;
+ const isOptionalMemberExpression = this.isOptionalMemberExpression(expression);
+ if (isOptionalMemberExpression || type === "MemberExpression") {
+ if (isOptionalMemberExpression) {
+ this.expectPlugin("optionalChainingAssign", expression.loc.start);
+ if (ancestor.type !== "AssignmentExpression") {
+ this.raise(Errors.InvalidLhsOptionalChaining, {
+ at: expression,
+ ancestor
+ });
+ }
+ }
+ if (binding !== 64) {
+ this.raise(Errors.InvalidPropertyBindingPattern, {
+ at: expression
+ });
+ }
+ return;
+ }
+ if (type === "Identifier") {
+ this.checkIdentifier(expression, binding, strictModeChanged);
+ const {
+ name
+ } = expression;
+ if (checkClashes) {
+ if (checkClashes.has(name)) {
+ this.raise(Errors.ParamDupe, {
+ at: expression
+ });
+ } else {
+ checkClashes.add(name);
+ }
+ }
+ return;
+ }
+ const validity = this.isValidLVal(type, !(hasParenthesizedAncestor || (_expression$extra = expression.extra) != null && _expression$extra.parenthesized) && ancestor.type === "AssignmentExpression", binding);
+ if (validity === true) return;
+ if (validity === false) {
+ const ParseErrorClass = binding === 64 ? Errors.InvalidLhs : Errors.InvalidLhsBinding;
+ this.raise(ParseErrorClass, {
+ at: expression,
+ ancestor
+ });
+ return;
+ }
+ const [key, isParenthesizedExpression] = Array.isArray(validity) ? validity : [validity, type === "ParenthesizedExpression"];
+ const nextAncestor = type === "ArrayPattern" || type === "ObjectPattern" ? {
+ type
+ } : ancestor;
+ for (const child of [].concat(expression[key])) {
+ if (child) {
+ this.checkLVal(child, {
+ in: nextAncestor,
+ binding,
+ checkClashes,
+ strictModeChanged,
+ hasParenthesizedAncestor: isParenthesizedExpression
+ });
+ }
+ }
+ }
+ checkIdentifier(at, bindingType, strictModeChanged = false) {
+ if (this.state.strict && (strictModeChanged ? isStrictBindReservedWord(at.name, this.inModule) : isStrictBindOnlyReservedWord(at.name))) {
+ if (bindingType === 64) {
+ this.raise(Errors.StrictEvalArguments, {
+ at,
+ referenceName: at.name
+ });
+ } else {
+ this.raise(Errors.StrictEvalArgumentsBinding, {
+ at,
+ bindingName: at.name
+ });
+ }
+ }
+ if (bindingType & 8192 && at.name === "let") {
+ this.raise(Errors.LetInLexicalBinding, {
+ at
+ });
+ }
+ if (!(bindingType & 64)) {
+ this.declareNameFromIdentifier(at, bindingType);
+ }
+ }
+ declareNameFromIdentifier(identifier, binding) {
+ this.scope.declareName(identifier.name, binding, identifier.loc.start);
+ }
+ checkToRestConversion(node, allowPattern) {
+ switch (node.type) {
+ case "ParenthesizedExpression":
+ this.checkToRestConversion(node.expression, allowPattern);
+ break;
+ case "Identifier":
+ case "MemberExpression":
+ break;
+ case "ArrayExpression":
+ case "ObjectExpression":
+ if (allowPattern) break;
+ default:
+ this.raise(Errors.InvalidRestAssignmentPattern, {
+ at: node
+ });
+ }
+ }
+ checkCommaAfterRest(close) {
+ if (!this.match(12)) {
+ return false;
+ }
+ this.raise(this.lookaheadCharCode() === close ? Errors.RestTrailingComma : Errors.ElementAfterRest, {
+ at: this.state.startLoc
+ });
+ return true;
+ }
+}
+const getOwn = (object, key) => Object.hasOwnProperty.call(object, key) && object[key];
+function nonNull(x) {
+ if (x == null) {
+ throw new Error(`Unexpected ${x} value.`);
+ }
+ return x;
+}
+function assert(x) {
+ if (!x) {
+ throw new Error("Assert fail");
+ }
+}
+const TSErrors = ParseErrorEnum`typescript`({
+ AbstractMethodHasImplementation: ({
+ methodName
+ }) => `Method '${methodName}' cannot have an implementation because it is marked abstract.`,
+ AbstractPropertyHasInitializer: ({
+ propertyName
+ }) => `Property '${propertyName}' cannot have an initializer because it is marked abstract.`,
+ AccesorCannotDeclareThisParameter: "'get' and 'set' accessors cannot declare 'this' parameters.",
+ AccesorCannotHaveTypeParameters: "An accessor cannot have type parameters.",
+ AccessorCannotBeOptional: "An 'accessor' property cannot be declared optional.",
+ ClassMethodHasDeclare: "Class methods cannot have the 'declare' modifier.",
+ ClassMethodHasReadonly: "Class methods cannot have the 'readonly' modifier.",
+ ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference: "A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.",
+ ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.",
+ DeclareAccessor: ({
+ kind
+ }) => `'declare' is not allowed in ${kind}ters.`,
+ DeclareClassFieldHasInitializer: "Initializers are not allowed in ambient contexts.",
+ DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.",
+ DuplicateAccessibilityModifier: ({
+ modifier
+ }) => `Accessibility modifier already seen.`,
+ DuplicateModifier: ({
+ modifier
+ }) => `Duplicate modifier: '${modifier}'.`,
+ EmptyHeritageClauseType: ({
+ token
+ }) => `'${token}' list cannot be empty.`,
+ EmptyTypeArguments: "Type argument list cannot be empty.",
+ EmptyTypeParameters: "Type parameter list cannot be empty.",
+ ExpectedAmbientAfterExportDeclare: "'export declare' must be followed by an ambient declaration.",
+ ImportAliasHasImportType: "An import alias can not use 'import type'.",
+ ImportReflectionHasImportType: "An `import module` declaration can not use `type` modifier",
+ IncompatibleModifiers: ({
+ modifiers
+ }) => `'${modifiers[0]}' modifier cannot be used with '${modifiers[1]}' modifier.`,
+ IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier.",
+ IndexSignatureHasAccessibility: ({
+ modifier
+ }) => `Index signatures cannot have an accessibility modifier ('${modifier}').`,
+ IndexSignatureHasDeclare: "Index signatures cannot have the 'declare' modifier.",
+ IndexSignatureHasOverride: "'override' modifier cannot appear on an index signature.",
+ IndexSignatureHasStatic: "Index signatures cannot have the 'static' modifier.",
+ InitializerNotAllowedInAmbientContext: "Initializers are not allowed in ambient contexts.",
+ InvalidModifierOnTypeMember: ({
+ modifier
+ }) => `'${modifier}' modifier cannot appear on a type member.`,
+ InvalidModifierOnTypeParameter: ({
+ modifier
+ }) => `'${modifier}' modifier cannot appear on a type parameter.`,
+ InvalidModifierOnTypeParameterPositions: ({
+ modifier
+ }) => `'${modifier}' modifier can only appear on a type parameter of a class, interface or type alias.`,
+ InvalidModifiersOrder: ({
+ orderedModifiers
+ }) => `'${orderedModifiers[0]}' modifier must precede '${orderedModifiers[1]}' modifier.`,
+ InvalidPropertyAccessAfterInstantiationExpression: "Invalid property access after an instantiation expression. " + "You can either wrap the instantiation expression in parentheses, or delete the type arguments.",
+ InvalidTupleMemberLabel: "Tuple members must be labeled with a simple identifier.",
+ MissingInterfaceName: "'interface' declarations must be followed by an identifier.",
+ NonAbstractClassHasAbstractMethod: "Abstract methods can only appear within an abstract class.",
+ NonClassMethodPropertyHasAbstractModifer: "'abstract' modifier can only appear on a class, method, or property declaration.",
+ OptionalTypeBeforeRequired: "A required element cannot follow an optional element.",
+ OverrideNotInSubClass: "This member cannot have an 'override' modifier because its containing class does not extend another class.",
+ PatternIsOptional: "A binding pattern parameter cannot be optional in an implementation signature.",
+ PrivateElementHasAbstract: "Private elements cannot have the 'abstract' modifier.",
+ PrivateElementHasAccessibility: ({
+ modifier
+ }) => `Private elements cannot have an accessibility modifier ('${modifier}').`,
+ ReadonlyForMethodSignature: "'readonly' modifier can only appear on a property declaration or index signature.",
+ ReservedArrowTypeParam: "This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `() => ...`.",
+ ReservedTypeAssertion: "This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.",
+ SetAccesorCannotHaveOptionalParameter: "A 'set' accessor cannot have an optional parameter.",
+ SetAccesorCannotHaveRestParameter: "A 'set' accessor cannot have rest parameter.",
+ SetAccesorCannotHaveReturnType: "A 'set' accessor cannot have a return type annotation.",
+ SingleTypeParameterWithoutTrailingComma: ({
+ typeParameterName
+ }) => `Single type parameter ${typeParameterName} should have a trailing comma. Example usage: <${typeParameterName},>.`,
+ StaticBlockCannotHaveModifier: "Static class blocks cannot have any modifier.",
+ TupleOptionalAfterType: "A labeled tuple optional element must be declared using a question mark after the name and before the colon (`name?: type`), rather than after the type (`name: type?`).",
+ TypeAnnotationAfterAssign: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",
+ TypeImportCannotSpecifyDefaultAndNamed: "A type-only import can specify a default import or named bindings, but not both.",
+ TypeModifierIsUsedInTypeExports: "The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.",
+ TypeModifierIsUsedInTypeImports: "The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.",
+ UnexpectedParameterModifier: "A parameter property is only allowed in a constructor implementation.",
+ UnexpectedReadonly: "'readonly' type modifier is only permitted on array and tuple literal types.",
+ UnexpectedTypeAnnotation: "Did not expect a type annotation here.",
+ UnexpectedTypeCastInParameter: "Unexpected type cast in parameter position.",
+ UnsupportedImportTypeArgument: "Argument in a type import must be a string literal.",
+ UnsupportedParameterPropertyKind: "A parameter property may not be declared using a binding pattern.",
+ UnsupportedSignatureParameterKind: ({
+ type
+ }) => `Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${type}.`
+});
+function keywordTypeFromName(value) {
+ switch (value) {
+ case "any":
+ return "TSAnyKeyword";
+ case "boolean":
+ return "TSBooleanKeyword";
+ case "bigint":
+ return "TSBigIntKeyword";
+ case "never":
+ return "TSNeverKeyword";
+ case "number":
+ return "TSNumberKeyword";
+ case "object":
+ return "TSObjectKeyword";
+ case "string":
+ return "TSStringKeyword";
+ case "symbol":
+ return "TSSymbolKeyword";
+ case "undefined":
+ return "TSUndefinedKeyword";
+ case "unknown":
+ return "TSUnknownKeyword";
+ default:
+ return undefined;
+ }
+}
+function tsIsAccessModifier(modifier) {
+ return modifier === "private" || modifier === "public" || modifier === "protected";
+}
+function tsIsVarianceAnnotations(modifier) {
+ return modifier === "in" || modifier === "out";
+}
+var typescript = superClass => class TypeScriptParserMixin extends superClass {
+ constructor(...args) {
+ super(...args);
+ this.tsParseInOutModifiers = this.tsParseModifiers.bind(this, {
+ allowedModifiers: ["in", "out"],
+ disallowedModifiers: ["const", "public", "private", "protected", "readonly", "declare", "abstract", "override"],
+ errorTemplate: TSErrors.InvalidModifierOnTypeParameter
+ });
+ this.tsParseConstModifier = this.tsParseModifiers.bind(this, {
+ allowedModifiers: ["const"],
+ disallowedModifiers: ["in", "out"],
+ errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions
+ });
+ this.tsParseInOutConstModifiers = this.tsParseModifiers.bind(this, {
+ allowedModifiers: ["in", "out", "const"],
+ disallowedModifiers: ["public", "private", "protected", "readonly", "declare", "abstract", "override"],
+ errorTemplate: TSErrors.InvalidModifierOnTypeParameter
+ });
+ }
+ getScopeHandler() {
+ return TypeScriptScopeHandler;
+ }
+ tsIsIdentifier() {
+ return tokenIsIdentifier(this.state.type);
+ }
+ tsTokenCanFollowModifier() {
+ return (this.match(0) || this.match(5) || this.match(55) || this.match(21) || this.match(138) || this.isLiteralPropertyName()) && !this.hasPrecedingLineBreak();
+ }
+ tsNextTokenCanFollowModifier() {
+ this.next();
+ return this.tsTokenCanFollowModifier();
+ }
+ tsParseModifier(allowedModifiers, stopOnStartOfClassStaticBlock) {
+ if (!tokenIsIdentifier(this.state.type) && this.state.type !== 58 && this.state.type !== 75) {
+ return undefined;
+ }
+ const modifier = this.state.value;
+ if (allowedModifiers.indexOf(modifier) !== -1) {
+ if (stopOnStartOfClassStaticBlock && this.tsIsStartOfStaticBlocks()) {
+ return undefined;
+ }
+ if (this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))) {
+ return modifier;
+ }
+ }
+ return undefined;
+ }
+ tsParseModifiers({
+ allowedModifiers,
+ disallowedModifiers,
+ stopOnStartOfClassStaticBlock,
+ errorTemplate = TSErrors.InvalidModifierOnTypeMember
+ }, modified) {
+ const enforceOrder = (loc, modifier, before, after) => {
+ if (modifier === before && modified[after]) {
+ this.raise(TSErrors.InvalidModifiersOrder, {
+ at: loc,
+ orderedModifiers: [before, after]
+ });
+ }
+ };
+ const incompatible = (loc, modifier, mod1, mod2) => {
+ if (modified[mod1] && modifier === mod2 || modified[mod2] && modifier === mod1) {
+ this.raise(TSErrors.IncompatibleModifiers, {
+ at: loc,
+ modifiers: [mod1, mod2]
+ });
+ }
+ };
+ for (;;) {
+ const {
+ startLoc
+ } = this.state;
+ const modifier = this.tsParseModifier(allowedModifiers.concat(disallowedModifiers != null ? disallowedModifiers : []), stopOnStartOfClassStaticBlock);
+ if (!modifier) break;
+ if (tsIsAccessModifier(modifier)) {
+ if (modified.accessibility) {
+ this.raise(TSErrors.DuplicateAccessibilityModifier, {
+ at: startLoc,
+ modifier
+ });
+ } else {
+ enforceOrder(startLoc, modifier, modifier, "override");
+ enforceOrder(startLoc, modifier, modifier, "static");
+ enforceOrder(startLoc, modifier, modifier, "readonly");
+ modified.accessibility = modifier;
+ }
+ } else if (tsIsVarianceAnnotations(modifier)) {
+ if (modified[modifier]) {
+ this.raise(TSErrors.DuplicateModifier, {
+ at: startLoc,
+ modifier
+ });
+ }
+ modified[modifier] = true;
+ enforceOrder(startLoc, modifier, "in", "out");
+ } else {
+ if (Object.hasOwnProperty.call(modified, modifier)) {
+ this.raise(TSErrors.DuplicateModifier, {
+ at: startLoc,
+ modifier
+ });
+ } else {
+ enforceOrder(startLoc, modifier, "static", "readonly");
+ enforceOrder(startLoc, modifier, "static", "override");
+ enforceOrder(startLoc, modifier, "override", "readonly");
+ enforceOrder(startLoc, modifier, "abstract", "override");
+ incompatible(startLoc, modifier, "declare", "override");
+ incompatible(startLoc, modifier, "static", "abstract");
+ }
+ modified[modifier] = true;
+ }
+ if (disallowedModifiers != null && disallowedModifiers.includes(modifier)) {
+ this.raise(errorTemplate, {
+ at: startLoc,
+ modifier
+ });
+ }
+ }
+ }
+ tsIsListTerminator(kind) {
+ switch (kind) {
+ case "EnumMembers":
+ case "TypeMembers":
+ return this.match(8);
+ case "HeritageClauseElement":
+ return this.match(5);
+ case "TupleElementTypes":
+ return this.match(3);
+ case "TypeParametersOrArguments":
+ return this.match(48);
+ }
+ }
+ tsParseList(kind, parseElement) {
+ const result = [];
+ while (!this.tsIsListTerminator(kind)) {
+ result.push(parseElement());
+ }
+ return result;
+ }
+ tsParseDelimitedList(kind, parseElement, refTrailingCommaPos) {
+ return nonNull(this.tsParseDelimitedListWorker(kind, parseElement, true, refTrailingCommaPos));
+ }
+ tsParseDelimitedListWorker(kind, parseElement, expectSuccess, refTrailingCommaPos) {
+ const result = [];
+ let trailingCommaPos = -1;
+ for (;;) {
+ if (this.tsIsListTerminator(kind)) {
+ break;
+ }
+ trailingCommaPos = -1;
+ const element = parseElement();
+ if (element == null) {
+ return undefined;
+ }
+ result.push(element);
+ if (this.eat(12)) {
+ trailingCommaPos = this.state.lastTokStart;
+ continue;
+ }
+ if (this.tsIsListTerminator(kind)) {
+ break;
+ }
+ if (expectSuccess) {
+ this.expect(12);
+ }
+ return undefined;
+ }
+ if (refTrailingCommaPos) {
+ refTrailingCommaPos.value = trailingCommaPos;
+ }
+ return result;
+ }
+ tsParseBracketedList(kind, parseElement, bracket, skipFirstToken, refTrailingCommaPos) {
+ if (!skipFirstToken) {
+ if (bracket) {
+ this.expect(0);
+ } else {
+ this.expect(47);
+ }
+ }
+ const result = this.tsParseDelimitedList(kind, parseElement, refTrailingCommaPos);
+ if (bracket) {
+ this.expect(3);
+ } else {
+ this.expect(48);
+ }
+ return result;
+ }
+ tsParseImportType() {
+ const node = this.startNode();
+ this.expect(83);
+ this.expect(10);
+ if (!this.match(133)) {
+ this.raise(TSErrors.UnsupportedImportTypeArgument, {
+ at: this.state.startLoc
+ });
+ }
+ node.argument = super.parseExprAtom();
+ this.expect(11);
+ if (this.eat(16)) {
+ node.qualifier = this.tsParseEntityName();
+ }
+ if (this.match(47)) {
+ node.typeParameters = this.tsParseTypeArguments();
+ }
+ return this.finishNode(node, "TSImportType");
+ }
+ tsParseEntityName(allowReservedWords = true) {
+ let entity = this.parseIdentifier(allowReservedWords);
+ while (this.eat(16)) {
+ const node = this.startNodeAtNode(entity);
+ node.left = entity;
+ node.right = this.parseIdentifier(allowReservedWords);
+ entity = this.finishNode(node, "TSQualifiedName");
+ }
+ return entity;
+ }
+ tsParseTypeReference() {
+ const node = this.startNode();
+ node.typeName = this.tsParseEntityName();
+ if (!this.hasPrecedingLineBreak() && this.match(47)) {
+ node.typeParameters = this.tsParseTypeArguments();
+ }
+ return this.finishNode(node, "TSTypeReference");
+ }
+ tsParseThisTypePredicate(lhs) {
+ this.next();
+ const node = this.startNodeAtNode(lhs);
+ node.parameterName = lhs;
+ node.typeAnnotation = this.tsParseTypeAnnotation(false);
+ node.asserts = false;
+ return this.finishNode(node, "TSTypePredicate");
+ }
+ tsParseThisTypeNode() {
+ const node = this.startNode();
+ this.next();
+ return this.finishNode(node, "TSThisType");
+ }
+ tsParseTypeQuery() {
+ const node = this.startNode();
+ this.expect(87);
+ if (this.match(83)) {
+ node.exprName = this.tsParseImportType();
+ } else {
+ node.exprName = this.tsParseEntityName();
+ }
+ if (!this.hasPrecedingLineBreak() && this.match(47)) {
+ node.typeParameters = this.tsParseTypeArguments();
+ }
+ return this.finishNode(node, "TSTypeQuery");
+ }
+ tsParseTypeParameter(parseModifiers) {
+ const node = this.startNode();
+ parseModifiers(node);
+ node.name = this.tsParseTypeParameterName();
+ node.constraint = this.tsEatThenParseType(81);
+ node.default = this.tsEatThenParseType(29);
+ return this.finishNode(node, "TSTypeParameter");
+ }
+ tsTryParseTypeParameters(parseModifiers) {
+ if (this.match(47)) {
+ return this.tsParseTypeParameters(parseModifiers);
+ }
+ }
+ tsParseTypeParameters(parseModifiers) {
+ const node = this.startNode();
+ if (this.match(47) || this.match(142)) {
+ this.next();
+ } else {
+ this.unexpected();
+ }
+ const refTrailingCommaPos = {
+ value: -1
+ };
+ node.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this, parseModifiers), false, true, refTrailingCommaPos);
+ if (node.params.length === 0) {
+ this.raise(TSErrors.EmptyTypeParameters, {
+ at: node
+ });
+ }
+ if (refTrailingCommaPos.value !== -1) {
+ this.addExtra(node, "trailingComma", refTrailingCommaPos.value);
+ }
+ return this.finishNode(node, "TSTypeParameterDeclaration");
+ }
+ tsFillSignature(returnToken, signature) {
+ const returnTokenRequired = returnToken === 19;
+ const paramsKey = "parameters";
+ const returnTypeKey = "typeAnnotation";
+ signature.typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier);
+ this.expect(10);
+ signature[paramsKey] = this.tsParseBindingListForSignature();
+ if (returnTokenRequired) {
+ signature[returnTypeKey] = this.tsParseTypeOrTypePredicateAnnotation(returnToken);
+ } else if (this.match(returnToken)) {
+ signature[returnTypeKey] = this.tsParseTypeOrTypePredicateAnnotation(returnToken);
+ }
+ }
+ tsParseBindingListForSignature() {
+ const list = super.parseBindingList(11, 41, 2);
+ for (const pattern of list) {
+ const {
+ type
+ } = pattern;
+ if (type === "AssignmentPattern" || type === "TSParameterProperty") {
+ this.raise(TSErrors.UnsupportedSignatureParameterKind, {
+ at: pattern,
+ type
+ });
+ }
+ }
+ return list;
+ }
+ tsParseTypeMemberSemicolon() {
+ if (!this.eat(12) && !this.isLineTerminator()) {
+ this.expect(13);
+ }
+ }
+ tsParseSignatureMember(kind, node) {
+ this.tsFillSignature(14, node);
+ this.tsParseTypeMemberSemicolon();
+ return this.finishNode(node, kind);
+ }
+ tsIsUnambiguouslyIndexSignature() {
+ this.next();
+ if (tokenIsIdentifier(this.state.type)) {
+ this.next();
+ return this.match(14);
+ }
+ return false;
+ }
+ tsTryParseIndexSignature(node) {
+ if (!(this.match(0) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this)))) {
+ return;
+ }
+ this.expect(0);
+ const id = this.parseIdentifier();
+ id.typeAnnotation = this.tsParseTypeAnnotation();
+ this.resetEndLocation(id);
+ this.expect(3);
+ node.parameters = [id];
+ const type = this.tsTryParseTypeAnnotation();
+ if (type) node.typeAnnotation = type;
+ this.tsParseTypeMemberSemicolon();
+ return this.finishNode(node, "TSIndexSignature");
+ }
+ tsParsePropertyOrMethodSignature(node, readonly) {
+ if (this.eat(17)) node.optional = true;
+ const nodeAny = node;
+ if (this.match(10) || this.match(47)) {
+ if (readonly) {
+ this.raise(TSErrors.ReadonlyForMethodSignature, {
+ at: node
+ });
+ }
+ const method = nodeAny;
+ if (method.kind && this.match(47)) {
+ this.raise(TSErrors.AccesorCannotHaveTypeParameters, {
+ at: this.state.curPosition()
+ });
+ }
+ this.tsFillSignature(14, method);
+ this.tsParseTypeMemberSemicolon();
+ const paramsKey = "parameters";
+ const returnTypeKey = "typeAnnotation";
+ if (method.kind === "get") {
+ if (method[paramsKey].length > 0) {
+ this.raise(Errors.BadGetterArity, {
+ at: this.state.curPosition()
+ });
+ if (this.isThisParam(method[paramsKey][0])) {
+ this.raise(TSErrors.AccesorCannotDeclareThisParameter, {
+ at: this.state.curPosition()
+ });
+ }
+ }
+ } else if (method.kind === "set") {
+ if (method[paramsKey].length !== 1) {
+ this.raise(Errors.BadSetterArity, {
+ at: this.state.curPosition()
+ });
+ } else {
+ const firstParameter = method[paramsKey][0];
+ if (this.isThisParam(firstParameter)) {
+ this.raise(TSErrors.AccesorCannotDeclareThisParameter, {
+ at: this.state.curPosition()
+ });
+ }
+ if (firstParameter.type === "Identifier" && firstParameter.optional) {
+ this.raise(TSErrors.SetAccesorCannotHaveOptionalParameter, {
+ at: this.state.curPosition()
+ });
+ }
+ if (firstParameter.type === "RestElement") {
+ this.raise(TSErrors.SetAccesorCannotHaveRestParameter, {
+ at: this.state.curPosition()
+ });
+ }
+ }
+ if (method[returnTypeKey]) {
+ this.raise(TSErrors.SetAccesorCannotHaveReturnType, {
+ at: method[returnTypeKey]
+ });
+ }
+ } else {
+ method.kind = "method";
+ }
+ return this.finishNode(method, "TSMethodSignature");
+ } else {
+ const property = nodeAny;
+ if (readonly) property.readonly = true;
+ const type = this.tsTryParseTypeAnnotation();
+ if (type) property.typeAnnotation = type;
+ this.tsParseTypeMemberSemicolon();
+ return this.finishNode(property, "TSPropertySignature");
+ }
+ }
+ tsParseTypeMember() {
+ const node = this.startNode();
+ if (this.match(10) || this.match(47)) {
+ return this.tsParseSignatureMember("TSCallSignatureDeclaration", node);
+ }
+ if (this.match(77)) {
+ const id = this.startNode();
+ this.next();
+ if (this.match(10) || this.match(47)) {
+ return this.tsParseSignatureMember("TSConstructSignatureDeclaration", node);
+ } else {
+ node.key = this.createIdentifier(id, "new");
+ return this.tsParsePropertyOrMethodSignature(node, false);
+ }
+ }
+ this.tsParseModifiers({
+ allowedModifiers: ["readonly"],
+ disallowedModifiers: ["declare", "abstract", "private", "protected", "public", "static", "override"]
+ }, node);
+ const idx = this.tsTryParseIndexSignature(node);
+ if (idx) {
+ return idx;
+ }
+ super.parsePropertyName(node);
+ if (!node.computed && node.key.type === "Identifier" && (node.key.name === "get" || node.key.name === "set") && this.tsTokenCanFollowModifier()) {
+ node.kind = node.key.name;
+ super.parsePropertyName(node);
+ }
+ return this.tsParsePropertyOrMethodSignature(node, !!node.readonly);
+ }
+ tsParseTypeLiteral() {
+ const node = this.startNode();
+ node.members = this.tsParseObjectTypeMembers();
+ return this.finishNode(node, "TSTypeLiteral");
+ }
+ tsParseObjectTypeMembers() {
+ this.expect(5);
+ const members = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this));
+ this.expect(8);
+ return members;
+ }
+ tsIsStartOfMappedType() {
+ this.next();
+ if (this.eat(53)) {
+ return this.isContextual(122);
+ }
+ if (this.isContextual(122)) {
+ this.next();
+ }
+ if (!this.match(0)) {
+ return false;
+ }
+ this.next();
+ if (!this.tsIsIdentifier()) {
+ return false;
+ }
+ this.next();
+ return this.match(58);
+ }
+ tsParseMappedTypeParameter() {
+ const node = this.startNode();
+ node.name = this.tsParseTypeParameterName();
+ node.constraint = this.tsExpectThenParseType(58);
+ return this.finishNode(node, "TSTypeParameter");
+ }
+ tsParseMappedType() {
+ const node = this.startNode();
+ this.expect(5);
+ if (this.match(53)) {
+ node.readonly = this.state.value;
+ this.next();
+ this.expectContextual(122);
+ } else if (this.eatContextual(122)) {
+ node.readonly = true;
+ }
+ this.expect(0);
+ node.typeParameter = this.tsParseMappedTypeParameter();
+ node.nameType = this.eatContextual(93) ? this.tsParseType() : null;
+ this.expect(3);
+ if (this.match(53)) {
+ node.optional = this.state.value;
+ this.next();
+ this.expect(17);
+ } else if (this.eat(17)) {
+ node.optional = true;
+ }
+ node.typeAnnotation = this.tsTryParseType();
+ this.semicolon();
+ this.expect(8);
+ return this.finishNode(node, "TSMappedType");
+ }
+ tsParseTupleType() {
+ const node = this.startNode();
+ node.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), true, false);
+ let seenOptionalElement = false;
+ node.elementTypes.forEach(elementNode => {
+ const {
+ type
+ } = elementNode;
+ if (seenOptionalElement && type !== "TSRestType" && type !== "TSOptionalType" && !(type === "TSNamedTupleMember" && elementNode.optional)) {
+ this.raise(TSErrors.OptionalTypeBeforeRequired, {
+ at: elementNode
+ });
+ }
+ seenOptionalElement || (seenOptionalElement = type === "TSNamedTupleMember" && elementNode.optional || type === "TSOptionalType");
+ });
+ return this.finishNode(node, "TSTupleType");
+ }
+ tsParseTupleElementType() {
+ const {
+ startLoc
+ } = this.state;
+ const rest = this.eat(21);
+ let labeled;
+ let label;
+ let optional;
+ let type;
+ const isWord = tokenIsKeywordOrIdentifier(this.state.type);
+ const chAfterWord = isWord ? this.lookaheadCharCode() : null;
+ if (chAfterWord === 58) {
+ labeled = true;
+ optional = false;
+ label = this.parseIdentifier(true);
+ this.expect(14);
+ type = this.tsParseType();
+ } else if (chAfterWord === 63) {
+ optional = true;
+ const startLoc = this.state.startLoc;
+ const wordName = this.state.value;
+ const typeOrLabel = this.tsParseNonArrayType();
+ if (this.lookaheadCharCode() === 58) {
+ labeled = true;
+ label = this.createIdentifier(this.startNodeAt(startLoc), wordName);
+ this.expect(17);
+ this.expect(14);
+ type = this.tsParseType();
+ } else {
+ labeled = false;
+ type = typeOrLabel;
+ this.expect(17);
+ }
+ } else {
+ type = this.tsParseType();
+ optional = this.eat(17);
+ labeled = this.eat(14);
+ }
+ if (labeled) {
+ let labeledNode;
+ if (label) {
+ labeledNode = this.startNodeAtNode(label);
+ labeledNode.optional = optional;
+ labeledNode.label = label;
+ labeledNode.elementType = type;
+ if (this.eat(17)) {
+ labeledNode.optional = true;
+ this.raise(TSErrors.TupleOptionalAfterType, {
+ at: this.state.lastTokStartLoc
+ });
+ }
+ } else {
+ labeledNode = this.startNodeAtNode(type);
+ labeledNode.optional = optional;
+ this.raise(TSErrors.InvalidTupleMemberLabel, {
+ at: type
+ });
+ labeledNode.label = type;
+ labeledNode.elementType = this.tsParseType();
+ }
+ type = this.finishNode(labeledNode, "TSNamedTupleMember");
+ } else if (optional) {
+ const optionalTypeNode = this.startNodeAtNode(type);
+ optionalTypeNode.typeAnnotation = type;
+ type = this.finishNode(optionalTypeNode, "TSOptionalType");
+ }
+ if (rest) {
+ const restNode = this.startNodeAt(startLoc);
+ restNode.typeAnnotation = type;
+ type = this.finishNode(restNode, "TSRestType");
+ }
+ return type;
+ }
+ tsParseParenthesizedType() {
+ const node = this.startNode();
+ this.expect(10);
+ node.typeAnnotation = this.tsParseType();
+ this.expect(11);
+ return this.finishNode(node, "TSParenthesizedType");
+ }
+ tsParseFunctionOrConstructorType(type, abstract) {
+ const node = this.startNode();
+ if (type === "TSConstructorType") {
+ node.abstract = !!abstract;
+ if (abstract) this.next();
+ this.next();
+ }
+ this.tsInAllowConditionalTypesContext(() => this.tsFillSignature(19, node));
+ return this.finishNode(node, type);
+ }
+ tsParseLiteralTypeNode() {
+ const node = this.startNode();
+ switch (this.state.type) {
+ case 134:
+ case 135:
+ case 133:
+ case 85:
+ case 86:
+ node.literal = super.parseExprAtom();
+ break;
+ default:
+ this.unexpected();
+ }
+ return this.finishNode(node, "TSLiteralType");
+ }
+ tsParseTemplateLiteralType() {
+ const node = this.startNode();
+ node.literal = super.parseTemplate(false);
+ return this.finishNode(node, "TSLiteralType");
+ }
+ parseTemplateSubstitution() {
+ if (this.state.inType) return this.tsParseType();
+ return super.parseTemplateSubstitution();
+ }
+ tsParseThisTypeOrThisTypePredicate() {
+ const thisKeyword = this.tsParseThisTypeNode();
+ if (this.isContextual(116) && !this.hasPrecedingLineBreak()) {
+ return this.tsParseThisTypePredicate(thisKeyword);
+ } else {
+ return thisKeyword;
+ }
+ }
+ tsParseNonArrayType() {
+ switch (this.state.type) {
+ case 133:
+ case 134:
+ case 135:
+ case 85:
+ case 86:
+ return this.tsParseLiteralTypeNode();
+ case 53:
+ if (this.state.value === "-") {
+ const node = this.startNode();
+ const nextToken = this.lookahead();
+ if (nextToken.type !== 134 && nextToken.type !== 135) {
+ this.unexpected();
+ }
+ node.literal = this.parseMaybeUnary();
+ return this.finishNode(node, "TSLiteralType");
+ }
+ break;
+ case 78:
+ return this.tsParseThisTypeOrThisTypePredicate();
+ case 87:
+ return this.tsParseTypeQuery();
+ case 83:
+ return this.tsParseImportType();
+ case 5:
+ return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this)) ? this.tsParseMappedType() : this.tsParseTypeLiteral();
+ case 0:
+ return this.tsParseTupleType();
+ case 10:
+ return this.tsParseParenthesizedType();
+ case 25:
+ case 24:
+ return this.tsParseTemplateLiteralType();
+ default:
+ {
+ const {
+ type
+ } = this.state;
+ if (tokenIsIdentifier(type) || type === 88 || type === 84) {
+ const nodeType = type === 88 ? "TSVoidKeyword" : type === 84 ? "TSNullKeyword" : keywordTypeFromName(this.state.value);
+ if (nodeType !== undefined && this.lookaheadCharCode() !== 46) {
+ const node = this.startNode();
+ this.next();
+ return this.finishNode(node, nodeType);
+ }
+ return this.tsParseTypeReference();
+ }
+ }
+ }
+ this.unexpected();
+ }
+ tsParseArrayTypeOrHigher() {
+ let type = this.tsParseNonArrayType();
+ while (!this.hasPrecedingLineBreak() && this.eat(0)) {
+ if (this.match(3)) {
+ const node = this.startNodeAtNode(type);
+ node.elementType = type;
+ this.expect(3);
+ type = this.finishNode(node, "TSArrayType");
+ } else {
+ const node = this.startNodeAtNode(type);
+ node.objectType = type;
+ node.indexType = this.tsParseType();
+ this.expect(3);
+ type = this.finishNode(node, "TSIndexedAccessType");
+ }
+ }
+ return type;
+ }
+ tsParseTypeOperator() {
+ const node = this.startNode();
+ const operator = this.state.value;
+ this.next();
+ node.operator = operator;
+ node.typeAnnotation = this.tsParseTypeOperatorOrHigher();
+ if (operator === "readonly") {
+ this.tsCheckTypeAnnotationForReadOnly(node);
+ }
+ return this.finishNode(node, "TSTypeOperator");
+ }
+ tsCheckTypeAnnotationForReadOnly(node) {
+ switch (node.typeAnnotation.type) {
+ case "TSTupleType":
+ case "TSArrayType":
+ return;
+ default:
+ this.raise(TSErrors.UnexpectedReadonly, {
+ at: node
+ });
+ }
+ }
+ tsParseInferType() {
+ const node = this.startNode();
+ this.expectContextual(115);
+ const typeParameter = this.startNode();
+ typeParameter.name = this.tsParseTypeParameterName();
+ typeParameter.constraint = this.tsTryParse(() => this.tsParseConstraintForInferType());
+ node.typeParameter = this.finishNode(typeParameter, "TSTypeParameter");
+ return this.finishNode(node, "TSInferType");
+ }
+ tsParseConstraintForInferType() {
+ if (this.eat(81)) {
+ const constraint = this.tsInDisallowConditionalTypesContext(() => this.tsParseType());
+ if (this.state.inDisallowConditionalTypesContext || !this.match(17)) {
+ return constraint;
+ }
+ }
+ }
+ tsParseTypeOperatorOrHigher() {
+ const isTypeOperator = tokenIsTSTypeOperator(this.state.type) && !this.state.containsEsc;
+ return isTypeOperator ? this.tsParseTypeOperator() : this.isContextual(115) ? this.tsParseInferType() : this.tsInAllowConditionalTypesContext(() => this.tsParseArrayTypeOrHigher());
+ }
+ tsParseUnionOrIntersectionType(kind, parseConstituentType, operator) {
+ const node = this.startNode();
+ const hasLeadingOperator = this.eat(operator);
+ const types = [];
+ do {
+ types.push(parseConstituentType());
+ } while (this.eat(operator));
+ if (types.length === 1 && !hasLeadingOperator) {
+ return types[0];
+ }
+ node.types = types;
+ return this.finishNode(node, kind);
+ }
+ tsParseIntersectionTypeOrHigher() {
+ return this.tsParseUnionOrIntersectionType("TSIntersectionType", this.tsParseTypeOperatorOrHigher.bind(this), 45);
+ }
+ tsParseUnionTypeOrHigher() {
+ return this.tsParseUnionOrIntersectionType("TSUnionType", this.tsParseIntersectionTypeOrHigher.bind(this), 43);
+ }
+ tsIsStartOfFunctionType() {
+ if (this.match(47)) {
+ return true;
+ }
+ return this.match(10) && this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this));
+ }
+ tsSkipParameterStart() {
+ if (tokenIsIdentifier(this.state.type) || this.match(78)) {
+ this.next();
+ return true;
+ }
+ if (this.match(5)) {
+ const {
+ errors
+ } = this.state;
+ const previousErrorCount = errors.length;
+ try {
+ this.parseObjectLike(8, true);
+ return errors.length === previousErrorCount;
+ } catch (_unused) {
+ return false;
+ }
+ }
+ if (this.match(0)) {
+ this.next();
+ const {
+ errors
+ } = this.state;
+ const previousErrorCount = errors.length;
+ try {
+ super.parseBindingList(3, 93, 1);
+ return errors.length === previousErrorCount;
+ } catch (_unused2) {
+ return false;
+ }
+ }
+ return false;
+ }
+ tsIsUnambiguouslyStartOfFunctionType() {
+ this.next();
+ if (this.match(11) || this.match(21)) {
+ return true;
+ }
+ if (this.tsSkipParameterStart()) {
+ if (this.match(14) || this.match(12) || this.match(17) || this.match(29)) {
+ return true;
+ }
+ if (this.match(11)) {
+ this.next();
+ if (this.match(19)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+ tsParseTypeOrTypePredicateAnnotation(returnToken) {
+ return this.tsInType(() => {
+ const t = this.startNode();
+ this.expect(returnToken);
+ const node = this.startNode();
+ const asserts = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));
+ if (asserts && this.match(78)) {
+ let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate();
+ if (thisTypePredicate.type === "TSThisType") {
+ node.parameterName = thisTypePredicate;
+ node.asserts = true;
+ node.typeAnnotation = null;
+ thisTypePredicate = this.finishNode(node, "TSTypePredicate");
+ } else {
+ this.resetStartLocationFromNode(thisTypePredicate, node);
+ thisTypePredicate.asserts = true;
+ }
+ t.typeAnnotation = thisTypePredicate;
+ return this.finishNode(t, "TSTypeAnnotation");
+ }
+ const typePredicateVariable = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));
+ if (!typePredicateVariable) {
+ if (!asserts) {
+ return this.tsParseTypeAnnotation(false, t);
+ }
+ node.parameterName = this.parseIdentifier();
+ node.asserts = asserts;
+ node.typeAnnotation = null;
+ t.typeAnnotation = this.finishNode(node, "TSTypePredicate");
+ return this.finishNode(t, "TSTypeAnnotation");
+ }
+ const type = this.tsParseTypeAnnotation(false);
+ node.parameterName = typePredicateVariable;
+ node.typeAnnotation = type;
+ node.asserts = asserts;
+ t.typeAnnotation = this.finishNode(node, "TSTypePredicate");
+ return this.finishNode(t, "TSTypeAnnotation");
+ });
+ }
+ tsTryParseTypeOrTypePredicateAnnotation() {
+ if (this.match(14)) {
+ return this.tsParseTypeOrTypePredicateAnnotation(14);
+ }
+ }
+ tsTryParseTypeAnnotation() {
+ if (this.match(14)) {
+ return this.tsParseTypeAnnotation();
+ }
+ }
+ tsTryParseType() {
+ return this.tsEatThenParseType(14);
+ }
+ tsParseTypePredicatePrefix() {
+ const id = this.parseIdentifier();
+ if (this.isContextual(116) && !this.hasPrecedingLineBreak()) {
+ this.next();
+ return id;
+ }
+ }
+ tsParseTypePredicateAsserts() {
+ if (this.state.type !== 109) {
+ return false;
+ }
+ const containsEsc = this.state.containsEsc;
+ this.next();
+ if (!tokenIsIdentifier(this.state.type) && !this.match(78)) {
+ return false;
+ }
+ if (containsEsc) {
+ this.raise(Errors.InvalidEscapedReservedWord, {
+ at: this.state.lastTokStartLoc,
+ reservedWord: "asserts"
+ });
+ }
+ return true;
+ }
+ tsParseTypeAnnotation(eatColon = true, t = this.startNode()) {
+ this.tsInType(() => {
+ if (eatColon) this.expect(14);
+ t.typeAnnotation = this.tsParseType();
+ });
+ return this.finishNode(t, "TSTypeAnnotation");
+ }
+ tsParseType() {
+ assert(this.state.inType);
+ const type = this.tsParseNonConditionalType();
+ if (this.state.inDisallowConditionalTypesContext || this.hasPrecedingLineBreak() || !this.eat(81)) {
+ return type;
+ }
+ const node = this.startNodeAtNode(type);
+ node.checkType = type;
+ node.extendsType = this.tsInDisallowConditionalTypesContext(() => this.tsParseNonConditionalType());
+ this.expect(17);
+ node.trueType = this.tsInAllowConditionalTypesContext(() => this.tsParseType());
+ this.expect(14);
+ node.falseType = this.tsInAllowConditionalTypesContext(() => this.tsParseType());
+ return this.finishNode(node, "TSConditionalType");
+ }
+ isAbstractConstructorSignature() {
+ return this.isContextual(124) && this.lookahead().type === 77;
+ }
+ tsParseNonConditionalType() {
+ if (this.tsIsStartOfFunctionType()) {
+ return this.tsParseFunctionOrConstructorType("TSFunctionType");
+ }
+ if (this.match(77)) {
+ return this.tsParseFunctionOrConstructorType("TSConstructorType");
+ } else if (this.isAbstractConstructorSignature()) {
+ return this.tsParseFunctionOrConstructorType("TSConstructorType", true);
+ }
+ return this.tsParseUnionTypeOrHigher();
+ }
+ tsParseTypeAssertion() {
+ if (this.getPluginOption("typescript", "disallowAmbiguousJSXLike")) {
+ this.raise(TSErrors.ReservedTypeAssertion, {
+ at: this.state.startLoc
+ });
+ }
+ const node = this.startNode();
+ node.typeAnnotation = this.tsInType(() => {
+ this.next();
+ return this.match(75) ? this.tsParseTypeReference() : this.tsParseType();
+ });
+ this.expect(48);
+ node.expression = this.parseMaybeUnary();
+ return this.finishNode(node, "TSTypeAssertion");
+ }
+ tsParseHeritageClause(token) {
+ const originalStartLoc = this.state.startLoc;
+ const delimitedList = this.tsParseDelimitedList("HeritageClauseElement", () => {
+ const node = this.startNode();
+ node.expression = this.tsParseEntityName();
+ if (this.match(47)) {
+ node.typeParameters = this.tsParseTypeArguments();
+ }
+ return this.finishNode(node, "TSExpressionWithTypeArguments");
+ });
+ if (!delimitedList.length) {
+ this.raise(TSErrors.EmptyHeritageClauseType, {
+ at: originalStartLoc,
+ token
+ });
+ }
+ return delimitedList;
+ }
+ tsParseInterfaceDeclaration(node, properties = {}) {
+ if (this.hasFollowingLineBreak()) return null;
+ this.expectContextual(129);
+ if (properties.declare) node.declare = true;
+ if (tokenIsIdentifier(this.state.type)) {
+ node.id = this.parseIdentifier();
+ this.checkIdentifier(node.id, 130);
+ } else {
+ node.id = null;
+ this.raise(TSErrors.MissingInterfaceName, {
+ at: this.state.startLoc
+ });
+ }
+ node.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);
+ if (this.eat(81)) {
+ node.extends = this.tsParseHeritageClause("extends");
+ }
+ const body = this.startNode();
+ body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this));
+ node.body = this.finishNode(body, "TSInterfaceBody");
+ return this.finishNode(node, "TSInterfaceDeclaration");
+ }
+ tsParseTypeAliasDeclaration(node) {
+ node.id = this.parseIdentifier();
+ this.checkIdentifier(node.id, 2);
+ node.typeAnnotation = this.tsInType(() => {
+ node.typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutModifiers);
+ this.expect(29);
+ if (this.isContextual(114) && this.lookahead().type !== 16) {
+ const node = this.startNode();
+ this.next();
+ return this.finishNode(node, "TSIntrinsicKeyword");
+ }
+ return this.tsParseType();
+ });
+ this.semicolon();
+ return this.finishNode(node, "TSTypeAliasDeclaration");
+ }
+ tsInNoContext(cb) {
+ const oldContext = this.state.context;
+ this.state.context = [oldContext[0]];
+ try {
+ return cb();
+ } finally {
+ this.state.context = oldContext;
+ }
+ }
+ tsInType(cb) {
+ const oldInType = this.state.inType;
+ this.state.inType = true;
+ try {
+ return cb();
+ } finally {
+ this.state.inType = oldInType;
+ }
+ }
+ tsInDisallowConditionalTypesContext(cb) {
+ const oldInDisallowConditionalTypesContext = this.state.inDisallowConditionalTypesContext;
+ this.state.inDisallowConditionalTypesContext = true;
+ try {
+ return cb();
+ } finally {
+ this.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext;
+ }
+ }
+ tsInAllowConditionalTypesContext(cb) {
+ const oldInDisallowConditionalTypesContext = this.state.inDisallowConditionalTypesContext;
+ this.state.inDisallowConditionalTypesContext = false;
+ try {
+ return cb();
+ } finally {
+ this.state.inDisallowConditionalTypesContext = oldInDisallowConditionalTypesContext;
+ }
+ }
+ tsEatThenParseType(token) {
+ if (this.match(token)) {
+ return this.tsNextThenParseType();
+ }
+ }
+ tsExpectThenParseType(token) {
+ return this.tsInType(() => {
+ this.expect(token);
+ return this.tsParseType();
+ });
+ }
+ tsNextThenParseType() {
+ return this.tsInType(() => {
+ this.next();
+ return this.tsParseType();
+ });
+ }
+ tsParseEnumMember() {
+ const node = this.startNode();
+ node.id = this.match(133) ? super.parseStringLiteral(this.state.value) : this.parseIdentifier(true);
+ if (this.eat(29)) {
+ node.initializer = super.parseMaybeAssignAllowIn();
+ }
+ return this.finishNode(node, "TSEnumMember");
+ }
+ tsParseEnumDeclaration(node, properties = {}) {
+ if (properties.const) node.const = true;
+ if (properties.declare) node.declare = true;
+ this.expectContextual(126);
+ node.id = this.parseIdentifier();
+ this.checkIdentifier(node.id, node.const ? 8971 : 8459);
+ this.expect(5);
+ node.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this));
+ this.expect(8);
+ return this.finishNode(node, "TSEnumDeclaration");
+ }
+ tsParseModuleBlock() {
+ const node = this.startNode();
+ this.scope.enter(0);
+ this.expect(5);
+ super.parseBlockOrModuleBlockBody(node.body = [], undefined, true, 8);
+ this.scope.exit();
+ return this.finishNode(node, "TSModuleBlock");
+ }
+ tsParseModuleOrNamespaceDeclaration(node, nested = false) {
+ node.id = this.parseIdentifier();
+ if (!nested) {
+ this.checkIdentifier(node.id, 1024);
+ }
+ if (this.eat(16)) {
+ const inner = this.startNode();
+ this.tsParseModuleOrNamespaceDeclaration(inner, true);
+ node.body = inner;
+ } else {
+ this.scope.enter(256);
+ this.prodParam.enter(0);
+ node.body = this.tsParseModuleBlock();
+ this.prodParam.exit();
+ this.scope.exit();
+ }
+ return this.finishNode(node, "TSModuleDeclaration");
+ }
+ tsParseAmbientExternalModuleDeclaration(node) {
+ if (this.isContextual(112)) {
+ node.global = true;
+ node.id = this.parseIdentifier();
+ } else if (this.match(133)) {
+ node.id = super.parseStringLiteral(this.state.value);
+ } else {
+ this.unexpected();
+ }
+ if (this.match(5)) {
+ this.scope.enter(256);
+ this.prodParam.enter(0);
+ node.body = this.tsParseModuleBlock();
+ this.prodParam.exit();
+ this.scope.exit();
+ } else {
+ this.semicolon();
+ }
+ return this.finishNode(node, "TSModuleDeclaration");
+ }
+ tsParseImportEqualsDeclaration(node, maybeDefaultIdentifier, isExport) {
+ node.isExport = isExport || false;
+ node.id = maybeDefaultIdentifier || this.parseIdentifier();
+ this.checkIdentifier(node.id, 4096);
+ this.expect(29);
+ const moduleReference = this.tsParseModuleReference();
+ if (node.importKind === "type" && moduleReference.type !== "TSExternalModuleReference") {
+ this.raise(TSErrors.ImportAliasHasImportType, {
+ at: moduleReference
+ });
+ }
+ node.moduleReference = moduleReference;
+ this.semicolon();
+ return this.finishNode(node, "TSImportEqualsDeclaration");
+ }
+ tsIsExternalModuleReference() {
+ return this.isContextual(119) && this.lookaheadCharCode() === 40;
+ }
+ tsParseModuleReference() {
+ return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(false);
+ }
+ tsParseExternalModuleReference() {
+ const node = this.startNode();
+ this.expectContextual(119);
+ this.expect(10);
+ if (!this.match(133)) {
+ this.unexpected();
+ }
+ node.expression = super.parseExprAtom();
+ this.expect(11);
+ this.sawUnambiguousESM = true;
+ return this.finishNode(node, "TSExternalModuleReference");
+ }
+ tsLookAhead(f) {
+ const state = this.state.clone();
+ const res = f();
+ this.state = state;
+ return res;
+ }
+ tsTryParseAndCatch(f) {
+ const result = this.tryParse(abort => f() || abort());
+ if (result.aborted || !result.node) return;
+ if (result.error) this.state = result.failState;
+ return result.node;
+ }
+ tsTryParse(f) {
+ const state = this.state.clone();
+ const result = f();
+ if (result !== undefined && result !== false) {
+ return result;
+ }
+ this.state = state;
+ }
+ tsTryParseDeclare(nany) {
+ if (this.isLineTerminator()) {
+ return;
+ }
+ let startType = this.state.type;
+ let kind;
+ if (this.isContextual(100)) {
+ startType = 74;
+ kind = "let";
+ }
+ return this.tsInAmbientContext(() => {
+ switch (startType) {
+ case 68:
+ nany.declare = true;
+ return super.parseFunctionStatement(nany, false, false);
+ case 80:
+ nany.declare = true;
+ return this.parseClass(nany, true, false);
+ case 126:
+ return this.tsParseEnumDeclaration(nany, {
+ declare: true
+ });
+ case 112:
+ return this.tsParseAmbientExternalModuleDeclaration(nany);
+ case 75:
+ case 74:
+ if (!this.match(75) || !this.isLookaheadContextual("enum")) {
+ nany.declare = true;
+ return this.parseVarStatement(nany, kind || this.state.value, true);
+ }
+ this.expect(75);
+ return this.tsParseEnumDeclaration(nany, {
+ const: true,
+ declare: true
+ });
+ case 129:
+ {
+ const result = this.tsParseInterfaceDeclaration(nany, {
+ declare: true
+ });
+ if (result) return result;
+ }
+ default:
+ if (tokenIsIdentifier(startType)) {
+ return this.tsParseDeclaration(nany, this.state.value, true, null);
+ }
+ }
+ });
+ }
+ tsTryParseExportDeclaration() {
+ return this.tsParseDeclaration(this.startNode(), this.state.value, true, null);
+ }
+ tsParseExpressionStatement(node, expr, decorators) {
+ switch (expr.name) {
+ case "declare":
+ {
+ const declaration = this.tsTryParseDeclare(node);
+ if (declaration) {
+ declaration.declare = true;
+ }
+ return declaration;
+ }
+ case "global":
+ if (this.match(5)) {
+ this.scope.enter(256);
+ this.prodParam.enter(0);
+ const mod = node;
+ mod.global = true;
+ mod.id = expr;
+ mod.body = this.tsParseModuleBlock();
+ this.scope.exit();
+ this.prodParam.exit();
+ return this.finishNode(mod, "TSModuleDeclaration");
+ }
+ break;
+ default:
+ return this.tsParseDeclaration(node, expr.name, false, decorators);
+ }
+ }
+ tsParseDeclaration(node, value, next, decorators) {
+ switch (value) {
+ case "abstract":
+ if (this.tsCheckLineTerminator(next) && (this.match(80) || tokenIsIdentifier(this.state.type))) {
+ return this.tsParseAbstractDeclaration(node, decorators);
+ }
+ break;
+ case "module":
+ if (this.tsCheckLineTerminator(next)) {
+ if (this.match(133)) {
+ return this.tsParseAmbientExternalModuleDeclaration(node);
+ } else if (tokenIsIdentifier(this.state.type)) {
+ return this.tsParseModuleOrNamespaceDeclaration(node);
+ }
+ }
+ break;
+ case "namespace":
+ if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) {
+ return this.tsParseModuleOrNamespaceDeclaration(node);
+ }
+ break;
+ case "type":
+ if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) {
+ return this.tsParseTypeAliasDeclaration(node);
+ }
+ break;
+ }
+ }
+ tsCheckLineTerminator(next) {
+ if (next) {
+ if (this.hasFollowingLineBreak()) return false;
+ this.next();
+ return true;
+ }
+ return !this.isLineTerminator();
+ }
+ tsTryParseGenericAsyncArrowFunction(startLoc) {
+ if (!this.match(47)) return;
+ const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;
+ this.state.maybeInArrowParameters = true;
+ const res = this.tsTryParseAndCatch(() => {
+ const node = this.startNodeAt(startLoc);
+ node.typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier);
+ super.parseFunctionParams(node);
+ node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation();
+ this.expect(19);
+ return node;
+ });
+ this.state.maybeInArrowParameters = oldMaybeInArrowParameters;
+ if (!res) return;
+ return super.parseArrowExpression(res, null, true);
+ }
+ tsParseTypeArgumentsInExpression() {
+ if (this.reScan_lt() !== 47) return;
+ return this.tsParseTypeArguments();
+ }
+ tsParseTypeArguments() {
+ const node = this.startNode();
+ node.params = this.tsInType(() => this.tsInNoContext(() => {
+ this.expect(47);
+ return this.tsParseDelimitedList("TypeParametersOrArguments", this.tsParseType.bind(this));
+ }));
+ if (node.params.length === 0) {
+ this.raise(TSErrors.EmptyTypeArguments, {
+ at: node
+ });
+ } else if (!this.state.inType && this.curContext() === types.brace) {
+ this.reScan_lt_gt();
+ }
+ this.expect(48);
+ return this.finishNode(node, "TSTypeParameterInstantiation");
+ }
+ tsIsDeclarationStart() {
+ return tokenIsTSDeclarationStart(this.state.type);
+ }
+ isExportDefaultSpecifier() {
+ if (this.tsIsDeclarationStart()) return false;
+ return super.isExportDefaultSpecifier();
+ }
+ parseAssignableListItem(flags, decorators) {
+ const startLoc = this.state.startLoc;
+ const modified = {};
+ this.tsParseModifiers({
+ allowedModifiers: ["public", "private", "protected", "override", "readonly"]
+ }, modified);
+ const accessibility = modified.accessibility;
+ const override = modified.override;
+ const readonly = modified.readonly;
+ if (!(flags & 4) && (accessibility || readonly || override)) {
+ this.raise(TSErrors.UnexpectedParameterModifier, {
+ at: startLoc
+ });
+ }
+ const left = this.parseMaybeDefault();
+ this.parseAssignableListItemTypes(left, flags);
+ const elt = this.parseMaybeDefault(left.loc.start, left);
+ if (accessibility || readonly || override) {
+ const pp = this.startNodeAt(startLoc);
+ if (decorators.length) {
+ pp.decorators = decorators;
+ }
+ if (accessibility) pp.accessibility = accessibility;
+ if (readonly) pp.readonly = readonly;
+ if (override) pp.override = override;
+ if (elt.type !== "Identifier" && elt.type !== "AssignmentPattern") {
+ this.raise(TSErrors.UnsupportedParameterPropertyKind, {
+ at: pp
+ });
+ }
+ pp.parameter = elt;
+ return this.finishNode(pp, "TSParameterProperty");
+ }
+ if (decorators.length) {
+ left.decorators = decorators;
+ }
+ return elt;
+ }
+ isSimpleParameter(node) {
+ return node.type === "TSParameterProperty" && super.isSimpleParameter(node.parameter) || super.isSimpleParameter(node);
+ }
+ tsDisallowOptionalPattern(node) {
+ for (const param of node.params) {
+ if (param.type !== "Identifier" && param.optional && !this.state.isAmbientContext) {
+ this.raise(TSErrors.PatternIsOptional, {
+ at: param
+ });
+ }
+ }
+ }
+ setArrowFunctionParameters(node, params, trailingCommaLoc) {
+ super.setArrowFunctionParameters(node, params, trailingCommaLoc);
+ this.tsDisallowOptionalPattern(node);
+ }
+ parseFunctionBodyAndFinish(node, type, isMethod = false) {
+ if (this.match(14)) {
+ node.returnType = this.tsParseTypeOrTypePredicateAnnotation(14);
+ }
+ const bodilessType = type === "FunctionDeclaration" ? "TSDeclareFunction" : type === "ClassMethod" || type === "ClassPrivateMethod" ? "TSDeclareMethod" : undefined;
+ if (bodilessType && !this.match(5) && this.isLineTerminator()) {
+ return this.finishNode(node, bodilessType);
+ }
+ if (bodilessType === "TSDeclareFunction" && this.state.isAmbientContext) {
+ this.raise(TSErrors.DeclareFunctionHasImplementation, {
+ at: node
+ });
+ if (node.declare) {
+ return super.parseFunctionBodyAndFinish(node, bodilessType, isMethod);
+ }
+ }
+ this.tsDisallowOptionalPattern(node);
+ return super.parseFunctionBodyAndFinish(node, type, isMethod);
+ }
+ registerFunctionStatementId(node) {
+ if (!node.body && node.id) {
+ this.checkIdentifier(node.id, 1024);
+ } else {
+ super.registerFunctionStatementId(node);
+ }
+ }
+ tsCheckForInvalidTypeCasts(items) {
+ items.forEach(node => {
+ if ((node == null ? void 0 : node.type) === "TSTypeCastExpression") {
+ this.raise(TSErrors.UnexpectedTypeAnnotation, {
+ at: node.typeAnnotation
+ });
+ }
+ });
+ }
+ toReferencedList(exprList, isInParens) {
+ this.tsCheckForInvalidTypeCasts(exprList);
+ return exprList;
+ }
+ parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) {
+ const node = super.parseArrayLike(close, canBePattern, isTuple, refExpressionErrors);
+ if (node.type === "ArrayExpression") {
+ this.tsCheckForInvalidTypeCasts(node.elements);
+ }
+ return node;
+ }
+ parseSubscript(base, startLoc, noCalls, state) {
+ if (!this.hasPrecedingLineBreak() && this.match(35)) {
+ this.state.canStartJSXElement = false;
+ this.next();
+ const nonNullExpression = this.startNodeAt(startLoc);
+ nonNullExpression.expression = base;
+ return this.finishNode(nonNullExpression, "TSNonNullExpression");
+ }
+ let isOptionalCall = false;
+ if (this.match(18) && this.lookaheadCharCode() === 60) {
+ if (noCalls) {
+ state.stop = true;
+ return base;
+ }
+ state.optionalChainMember = isOptionalCall = true;
+ this.next();
+ }
+ if (this.match(47) || this.match(51)) {
+ let missingParenErrorLoc;
+ const result = this.tsTryParseAndCatch(() => {
+ if (!noCalls && this.atPossibleAsyncArrow(base)) {
+ const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(startLoc);
+ if (asyncArrowFn) {
+ return asyncArrowFn;
+ }
+ }
+ const typeArguments = this.tsParseTypeArgumentsInExpression();
+ if (!typeArguments) return;
+ if (isOptionalCall && !this.match(10)) {
+ missingParenErrorLoc = this.state.curPosition();
+ return;
+ }
+ if (tokenIsTemplate(this.state.type)) {
+ const result = super.parseTaggedTemplateExpression(base, startLoc, state);
+ result.typeParameters = typeArguments;
+ return result;
+ }
+ if (!noCalls && this.eat(10)) {
+ const node = this.startNodeAt(startLoc);
+ node.callee = base;
+ node.arguments = this.parseCallExpressionArguments(11, false);
+ this.tsCheckForInvalidTypeCasts(node.arguments);
+ node.typeParameters = typeArguments;
+ if (state.optionalChainMember) {
+ node.optional = isOptionalCall;
+ }
+ return this.finishCallExpression(node, state.optionalChainMember);
+ }
+ const tokenType = this.state.type;
+ if (tokenType === 48 || tokenType === 52 || tokenType !== 10 && tokenCanStartExpression(tokenType) && !this.hasPrecedingLineBreak()) {
+ return;
+ }
+ const node = this.startNodeAt(startLoc);
+ node.expression = base;
+ node.typeParameters = typeArguments;
+ return this.finishNode(node, "TSInstantiationExpression");
+ });
+ if (missingParenErrorLoc) {
+ this.unexpected(missingParenErrorLoc, 10);
+ }
+ if (result) {
+ if (result.type === "TSInstantiationExpression" && (this.match(16) || this.match(18) && this.lookaheadCharCode() !== 40)) {
+ this.raise(TSErrors.InvalidPropertyAccessAfterInstantiationExpression, {
+ at: this.state.startLoc
+ });
+ }
+ return result;
+ }
+ }
+ return super.parseSubscript(base, startLoc, noCalls, state);
+ }
+ parseNewCallee(node) {
+ var _callee$extra;
+ super.parseNewCallee(node);
+ const {
+ callee
+ } = node;
+ if (callee.type === "TSInstantiationExpression" && !((_callee$extra = callee.extra) != null && _callee$extra.parenthesized)) {
+ node.typeParameters = callee.typeParameters;
+ node.callee = callee.expression;
+ }
+ }
+ parseExprOp(left, leftStartLoc, minPrec) {
+ let isSatisfies;
+ if (tokenOperatorPrecedence(58) > minPrec && !this.hasPrecedingLineBreak() && (this.isContextual(93) || (isSatisfies = this.isContextual(120)))) {
+ const node = this.startNodeAt(leftStartLoc);
+ node.expression = left;
+ node.typeAnnotation = this.tsInType(() => {
+ this.next();
+ if (this.match(75)) {
+ if (isSatisfies) {
+ this.raise(Errors.UnexpectedKeyword, {
+ at: this.state.startLoc,
+ keyword: "const"
+ });
+ }
+ return this.tsParseTypeReference();
+ }
+ return this.tsParseType();
+ });
+ this.finishNode(node, isSatisfies ? "TSSatisfiesExpression" : "TSAsExpression");
+ this.reScan_lt_gt();
+ return this.parseExprOp(node, leftStartLoc, minPrec);
+ }
+ return super.parseExprOp(left, leftStartLoc, minPrec);
+ }
+ checkReservedWord(word, startLoc, checkKeywords, isBinding) {
+ if (!this.state.isAmbientContext) {
+ super.checkReservedWord(word, startLoc, checkKeywords, isBinding);
+ }
+ }
+ checkImportReflection(node) {
+ super.checkImportReflection(node);
+ if (node.module && node.importKind !== "value") {
+ this.raise(TSErrors.ImportReflectionHasImportType, {
+ at: node.specifiers[0].loc.start
+ });
+ }
+ }
+ checkDuplicateExports() {}
+ isPotentialImportPhase(isExport) {
+ if (super.isPotentialImportPhase(isExport)) return true;
+ if (this.isContextual(130)) {
+ const ch = this.lookaheadCharCode();
+ return isExport ? ch === 123 || ch === 42 : ch !== 61;
+ }
+ return !isExport && this.isContextual(87);
+ }
+ applyImportPhase(node, isExport, phase, loc) {
+ super.applyImportPhase(node, isExport, phase, loc);
+ if (isExport) {
+ node.exportKind = phase === "type" ? "type" : "value";
+ } else {
+ node.importKind = phase === "type" || phase === "typeof" ? phase : "value";
+ }
+ }
+ parseImport(node) {
+ if (this.match(133)) {
+ node.importKind = "value";
+ return super.parseImport(node);
+ }
+ let importNode;
+ if (tokenIsIdentifier(this.state.type) && this.lookaheadCharCode() === 61) {
+ node.importKind = "value";
+ return this.tsParseImportEqualsDeclaration(node);
+ } else if (this.isContextual(130)) {
+ const maybeDefaultIdentifier = this.parseMaybeImportPhase(node, false);
+ if (this.lookaheadCharCode() === 61) {
+ return this.tsParseImportEqualsDeclaration(node, maybeDefaultIdentifier);
+ } else {
+ importNode = super.parseImportSpecifiersAndAfter(node, maybeDefaultIdentifier);
+ }
+ } else {
+ importNode = super.parseImport(node);
+ }
+ if (importNode.importKind === "type" && importNode.specifiers.length > 1 && importNode.specifiers[0].type === "ImportDefaultSpecifier") {
+ this.raise(TSErrors.TypeImportCannotSpecifyDefaultAndNamed, {
+ at: importNode
+ });
+ }
+ return importNode;
+ }
+ parseExport(node, decorators) {
+ if (this.match(83)) {
+ this.next();
+ let maybeDefaultIdentifier = null;
+ if (this.isContextual(130) && this.isPotentialImportPhase(false)) {
+ maybeDefaultIdentifier = this.parseMaybeImportPhase(node, false);
+ } else {
+ node.importKind = "value";
+ }
+ return this.tsParseImportEqualsDeclaration(node, maybeDefaultIdentifier, true);
+ } else if (this.eat(29)) {
+ const assign = node;
+ assign.expression = super.parseExpression();
+ this.semicolon();
+ this.sawUnambiguousESM = true;
+ return this.finishNode(assign, "TSExportAssignment");
+ } else if (this.eatContextual(93)) {
+ const decl = node;
+ this.expectContextual(128);
+ decl.id = this.parseIdentifier();
+ this.semicolon();
+ return this.finishNode(decl, "TSNamespaceExportDeclaration");
+ } else {
+ return super.parseExport(node, decorators);
+ }
+ }
+ isAbstractClass() {
+ return this.isContextual(124) && this.lookahead().type === 80;
+ }
+ parseExportDefaultExpression() {
+ if (this.isAbstractClass()) {
+ const cls = this.startNode();
+ this.next();
+ cls.abstract = true;
+ return this.parseClass(cls, true, true);
+ }
+ if (this.match(129)) {
+ const result = this.tsParseInterfaceDeclaration(this.startNode());
+ if (result) return result;
+ }
+ return super.parseExportDefaultExpression();
+ }
+ parseVarStatement(node, kind, allowMissingInitializer = false) {
+ const {
+ isAmbientContext
+ } = this.state;
+ const declaration = super.parseVarStatement(node, kind, allowMissingInitializer || isAmbientContext);
+ if (!isAmbientContext) return declaration;
+ for (const {
+ id,
+ init
+ } of declaration.declarations) {
+ if (!init) continue;
+ if (kind !== "const" || !!id.typeAnnotation) {
+ this.raise(TSErrors.InitializerNotAllowedInAmbientContext, {
+ at: init
+ });
+ } else if (!isValidAmbientConstInitializer(init, this.hasPlugin("estree"))) {
+ this.raise(TSErrors.ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference, {
+ at: init
+ });
+ }
+ }
+ return declaration;
+ }
+ parseStatementContent(flags, decorators) {
+ if (this.match(75) && this.isLookaheadContextual("enum")) {
+ const node = this.startNode();
+ this.expect(75);
+ return this.tsParseEnumDeclaration(node, {
+ const: true
+ });
+ }
+ if (this.isContextual(126)) {
+ return this.tsParseEnumDeclaration(this.startNode());
+ }
+ if (this.isContextual(129)) {
+ const result = this.tsParseInterfaceDeclaration(this.startNode());
+ if (result) return result;
+ }
+ return super.parseStatementContent(flags, decorators);
+ }
+ parseAccessModifier() {
+ return this.tsParseModifier(["public", "protected", "private"]);
+ }
+ tsHasSomeModifiers(member, modifiers) {
+ return modifiers.some(modifier => {
+ if (tsIsAccessModifier(modifier)) {
+ return member.accessibility === modifier;
+ }
+ return !!member[modifier];
+ });
+ }
+ tsIsStartOfStaticBlocks() {
+ return this.isContextual(106) && this.lookaheadCharCode() === 123;
+ }
+ parseClassMember(classBody, member, state) {
+ const modifiers = ["declare", "private", "public", "protected", "override", "abstract", "readonly", "static"];
+ this.tsParseModifiers({
+ allowedModifiers: modifiers,
+ disallowedModifiers: ["in", "out"],
+ stopOnStartOfClassStaticBlock: true,
+ errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions
+ }, member);
+ const callParseClassMemberWithIsStatic = () => {
+ if (this.tsIsStartOfStaticBlocks()) {
+ this.next();
+ this.next();
+ if (this.tsHasSomeModifiers(member, modifiers)) {
+ this.raise(TSErrors.StaticBlockCannotHaveModifier, {
+ at: this.state.curPosition()
+ });
+ }
+ super.parseClassStaticBlock(classBody, member);
+ } else {
+ this.parseClassMemberWithIsStatic(classBody, member, state, !!member.static);
+ }
+ };
+ if (member.declare) {
+ this.tsInAmbientContext(callParseClassMemberWithIsStatic);
+ } else {
+ callParseClassMemberWithIsStatic();
+ }
+ }
+ parseClassMemberWithIsStatic(classBody, member, state, isStatic) {
+ const idx = this.tsTryParseIndexSignature(member);
+ if (idx) {
+ classBody.body.push(idx);
+ if (member.abstract) {
+ this.raise(TSErrors.IndexSignatureHasAbstract, {
+ at: member
+ });
+ }
+ if (member.accessibility) {
+ this.raise(TSErrors.IndexSignatureHasAccessibility, {
+ at: member,
+ modifier: member.accessibility
+ });
+ }
+ if (member.declare) {
+ this.raise(TSErrors.IndexSignatureHasDeclare, {
+ at: member
+ });
+ }
+ if (member.override) {
+ this.raise(TSErrors.IndexSignatureHasOverride, {
+ at: member
+ });
+ }
+ return;
+ }
+ if (!this.state.inAbstractClass && member.abstract) {
+ this.raise(TSErrors.NonAbstractClassHasAbstractMethod, {
+ at: member
+ });
+ }
+ if (member.override) {
+ if (!state.hadSuperClass) {
+ this.raise(TSErrors.OverrideNotInSubClass, {
+ at: member
+ });
+ }
+ }
+ super.parseClassMemberWithIsStatic(classBody, member, state, isStatic);
+ }
+ parsePostMemberNameModifiers(methodOrProp) {
+ const optional = this.eat(17);
+ if (optional) methodOrProp.optional = true;
+ if (methodOrProp.readonly && this.match(10)) {
+ this.raise(TSErrors.ClassMethodHasReadonly, {
+ at: methodOrProp
+ });
+ }
+ if (methodOrProp.declare && this.match(10)) {
+ this.raise(TSErrors.ClassMethodHasDeclare, {
+ at: methodOrProp
+ });
+ }
+ }
+ parseExpressionStatement(node, expr, decorators) {
+ const decl = expr.type === "Identifier" ? this.tsParseExpressionStatement(node, expr, decorators) : undefined;
+ return decl || super.parseExpressionStatement(node, expr, decorators);
+ }
+ shouldParseExportDeclaration() {
+ if (this.tsIsDeclarationStart()) return true;
+ return super.shouldParseExportDeclaration();
+ }
+ parseConditional(expr, startLoc, refExpressionErrors) {
+ if (!this.state.maybeInArrowParameters || !this.match(17)) {
+ return super.parseConditional(expr, startLoc, refExpressionErrors);
+ }
+ const result = this.tryParse(() => super.parseConditional(expr, startLoc));
+ if (!result.node) {
+ if (result.error) {
+ super.setOptionalParametersError(refExpressionErrors, result.error);
+ }
+ return expr;
+ }
+ if (result.error) this.state = result.failState;
+ return result.node;
+ }
+ parseParenItem(node, startLoc) {
+ node = super.parseParenItem(node, startLoc);
+ if (this.eat(17)) {
+ node.optional = true;
+ this.resetEndLocation(node);
+ }
+ if (this.match(14)) {
+ const typeCastNode = this.startNodeAt(startLoc);
+ typeCastNode.expression = node;
+ typeCastNode.typeAnnotation = this.tsParseTypeAnnotation();
+ return this.finishNode(typeCastNode, "TSTypeCastExpression");
+ }
+ return node;
+ }
+ parseExportDeclaration(node) {
+ if (!this.state.isAmbientContext && this.isContextual(125)) {
+ return this.tsInAmbientContext(() => this.parseExportDeclaration(node));
+ }
+ const startLoc = this.state.startLoc;
+ const isDeclare = this.eatContextual(125);
+ if (isDeclare && (this.isContextual(125) || !this.shouldParseExportDeclaration())) {
+ throw this.raise(TSErrors.ExpectedAmbientAfterExportDeclare, {
+ at: this.state.startLoc
+ });
+ }
+ const isIdentifier = tokenIsIdentifier(this.state.type);
+ const declaration = isIdentifier && this.tsTryParseExportDeclaration() || super.parseExportDeclaration(node);
+ if (!declaration) return null;
+ if (declaration.type === "TSInterfaceDeclaration" || declaration.type === "TSTypeAliasDeclaration" || isDeclare) {
+ node.exportKind = "type";
+ }
+ if (isDeclare) {
+ this.resetStartLocation(declaration, startLoc);
+ declaration.declare = true;
+ }
+ return declaration;
+ }
+ parseClassId(node, isStatement, optionalId, bindingType) {
+ if ((!isStatement || optionalId) && this.isContextual(113)) {
+ return;
+ }
+ super.parseClassId(node, isStatement, optionalId, node.declare ? 1024 : 8331);
+ const typeParameters = this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);
+ if (typeParameters) node.typeParameters = typeParameters;
+ }
+ parseClassPropertyAnnotation(node) {
+ if (!node.optional) {
+ if (this.eat(35)) {
+ node.definite = true;
+ } else if (this.eat(17)) {
+ node.optional = true;
+ }
+ }
+ const type = this.tsTryParseTypeAnnotation();
+ if (type) node.typeAnnotation = type;
+ }
+ parseClassProperty(node) {
+ this.parseClassPropertyAnnotation(node);
+ if (this.state.isAmbientContext && !(node.readonly && !node.typeAnnotation) && this.match(29)) {
+ this.raise(TSErrors.DeclareClassFieldHasInitializer, {
+ at: this.state.startLoc
+ });
+ }
+ if (node.abstract && this.match(29)) {
+ const {
+ key
+ } = node;
+ this.raise(TSErrors.AbstractPropertyHasInitializer, {
+ at: this.state.startLoc,
+ propertyName: key.type === "Identifier" && !node.computed ? key.name : `[${this.input.slice(key.start, key.end)}]`
+ });
+ }
+ return super.parseClassProperty(node);
+ }
+ parseClassPrivateProperty(node) {
+ if (node.abstract) {
+ this.raise(TSErrors.PrivateElementHasAbstract, {
+ at: node
+ });
+ }
+ if (node.accessibility) {
+ this.raise(TSErrors.PrivateElementHasAccessibility, {
+ at: node,
+ modifier: node.accessibility
+ });
+ }
+ this.parseClassPropertyAnnotation(node);
+ return super.parseClassPrivateProperty(node);
+ }
+ parseClassAccessorProperty(node) {
+ this.parseClassPropertyAnnotation(node);
+ if (node.optional) {
+ this.raise(TSErrors.AccessorCannotBeOptional, {
+ at: node
+ });
+ }
+ return super.parseClassAccessorProperty(node);
+ }
+ pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) {
+ const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier);
+ if (typeParameters && isConstructor) {
+ this.raise(TSErrors.ConstructorHasTypeParameters, {
+ at: typeParameters
+ });
+ }
+ const {
+ declare = false,
+ kind
+ } = method;
+ if (declare && (kind === "get" || kind === "set")) {
+ this.raise(TSErrors.DeclareAccessor, {
+ at: method,
+ kind
+ });
+ }
+ if (typeParameters) method.typeParameters = typeParameters;
+ super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper);
+ }
+ pushClassPrivateMethod(classBody, method, isGenerator, isAsync) {
+ const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier);
+ if (typeParameters) method.typeParameters = typeParameters;
+ super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);
+ }
+ declareClassPrivateMethodInScope(node, kind) {
+ if (node.type === "TSDeclareMethod") return;
+ if (node.type === "MethodDefinition" && !node.value.body) return;
+ super.declareClassPrivateMethodInScope(node, kind);
+ }
+ parseClassSuper(node) {
+ super.parseClassSuper(node);
+ if (node.superClass && (this.match(47) || this.match(51))) {
+ node.superTypeParameters = this.tsParseTypeArgumentsInExpression();
+ }
+ if (this.eatContextual(113)) {
+ node.implements = this.tsParseHeritageClause("implements");
+ }
+ }
+ parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) {
+ const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier);
+ if (typeParameters) prop.typeParameters = typeParameters;
+ return super.parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors);
+ }
+ parseFunctionParams(node, isConstructor) {
+ const typeParameters = this.tsTryParseTypeParameters(this.tsParseConstModifier);
+ if (typeParameters) node.typeParameters = typeParameters;
+ super.parseFunctionParams(node, isConstructor);
+ }
+ parseVarId(decl, kind) {
+ super.parseVarId(decl, kind);
+ if (decl.id.type === "Identifier" && !this.hasPrecedingLineBreak() && this.eat(35)) {
+ decl.definite = true;
+ }
+ const type = this.tsTryParseTypeAnnotation();
+ if (type) {
+ decl.id.typeAnnotation = type;
+ this.resetEndLocation(decl.id);
+ }
+ }
+ parseAsyncArrowFromCallExpression(node, call) {
+ if (this.match(14)) {
+ node.returnType = this.tsParseTypeAnnotation();
+ }
+ return super.parseAsyncArrowFromCallExpression(node, call);
+ }
+ parseMaybeAssign(refExpressionErrors, afterLeftParse) {
+ var _jsx, _jsx2, _typeCast, _jsx3, _typeCast2;
+ let state;
+ let jsx;
+ let typeCast;
+ if (this.hasPlugin("jsx") && (this.match(142) || this.match(47))) {
+ state = this.state.clone();
+ jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state);
+ if (!jsx.error) return jsx.node;
+ const {
+ context
+ } = this.state;
+ const currentContext = context[context.length - 1];
+ if (currentContext === types.j_oTag || currentContext === types.j_expr) {
+ context.pop();
+ }
+ }
+ if (!((_jsx = jsx) != null && _jsx.error) && !this.match(47)) {
+ return super.parseMaybeAssign(refExpressionErrors, afterLeftParse);
+ }
+ if (!state || state === this.state) state = this.state.clone();
+ let typeParameters;
+ const arrow = this.tryParse(abort => {
+ var _expr$extra, _typeParameters;
+ typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier);
+ const expr = super.parseMaybeAssign(refExpressionErrors, afterLeftParse);
+ if (expr.type !== "ArrowFunctionExpression" || (_expr$extra = expr.extra) != null && _expr$extra.parenthesized) {
+ abort();
+ }
+ if (((_typeParameters = typeParameters) == null ? void 0 : _typeParameters.params.length) !== 0) {
+ this.resetStartLocationFromNode(expr, typeParameters);
+ }
+ expr.typeParameters = typeParameters;
+ return expr;
+ }, state);
+ if (!arrow.error && !arrow.aborted) {
+ if (typeParameters) this.reportReservedArrowTypeParam(typeParameters);
+ return arrow.node;
+ }
+ if (!jsx) {
+ assert(!this.hasPlugin("jsx"));
+ typeCast = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state);
+ if (!typeCast.error) return typeCast.node;
+ }
+ if ((_jsx2 = jsx) != null && _jsx2.node) {
+ this.state = jsx.failState;
+ return jsx.node;
+ }
+ if (arrow.node) {
+ this.state = arrow.failState;
+ if (typeParameters) this.reportReservedArrowTypeParam(typeParameters);
+ return arrow.node;
+ }
+ if ((_typeCast = typeCast) != null && _typeCast.node) {
+ this.state = typeCast.failState;
+ return typeCast.node;
+ }
+ throw ((_jsx3 = jsx) == null ? void 0 : _jsx3.error) || arrow.error || ((_typeCast2 = typeCast) == null ? void 0 : _typeCast2.error);
+ }
+ reportReservedArrowTypeParam(node) {
+ var _node$extra;
+ if (node.params.length === 1 && !node.params[0].constraint && !((_node$extra = node.extra) != null && _node$extra.trailingComma) && this.getPluginOption("typescript", "disallowAmbiguousJSXLike")) {
+ this.raise(TSErrors.ReservedArrowTypeParam, {
+ at: node
+ });
+ }
+ }
+ parseMaybeUnary(refExpressionErrors, sawUnary) {
+ if (!this.hasPlugin("jsx") && this.match(47)) {
+ return this.tsParseTypeAssertion();
+ }
+ return super.parseMaybeUnary(refExpressionErrors, sawUnary);
+ }
+ parseArrow(node) {
+ if (this.match(14)) {
+ const result = this.tryParse(abort => {
+ const returnType = this.tsParseTypeOrTypePredicateAnnotation(14);
+ if (this.canInsertSemicolon() || !this.match(19)) abort();
+ return returnType;
+ });
+ if (result.aborted) return;
+ if (!result.thrown) {
+ if (result.error) this.state = result.failState;
+ node.returnType = result.node;
+ }
+ }
+ return super.parseArrow(node);
+ }
+ parseAssignableListItemTypes(param, flags) {
+ if (!(flags & 2)) return param;
+ if (this.eat(17)) {
+ param.optional = true;
+ }
+ const type = this.tsTryParseTypeAnnotation();
+ if (type) param.typeAnnotation = type;
+ this.resetEndLocation(param);
+ return param;
+ }
+ isAssignable(node, isBinding) {
+ switch (node.type) {
+ case "TSTypeCastExpression":
+ return this.isAssignable(node.expression, isBinding);
+ case "TSParameterProperty":
+ return true;
+ default:
+ return super.isAssignable(node, isBinding);
+ }
+ }
+ toAssignable(node, isLHS = false) {
+ switch (node.type) {
+ case "ParenthesizedExpression":
+ this.toAssignableParenthesizedExpression(node, isLHS);
+ break;
+ case "TSAsExpression":
+ case "TSSatisfiesExpression":
+ case "TSNonNullExpression":
+ case "TSTypeAssertion":
+ if (isLHS) {
+ this.expressionScope.recordArrowParameterBindingError(TSErrors.UnexpectedTypeCastInParameter, {
+ at: node
+ });
+ } else {
+ this.raise(TSErrors.UnexpectedTypeCastInParameter, {
+ at: node
+ });
+ }
+ this.toAssignable(node.expression, isLHS);
+ break;
+ case "AssignmentExpression":
+ if (!isLHS && node.left.type === "TSTypeCastExpression") {
+ node.left = this.typeCastToParameter(node.left);
+ }
+ default:
+ super.toAssignable(node, isLHS);
+ }
+ }
+ toAssignableParenthesizedExpression(node, isLHS) {
+ switch (node.expression.type) {
+ case "TSAsExpression":
+ case "TSSatisfiesExpression":
+ case "TSNonNullExpression":
+ case "TSTypeAssertion":
+ case "ParenthesizedExpression":
+ this.toAssignable(node.expression, isLHS);
+ break;
+ default:
+ super.toAssignable(node, isLHS);
+ }
+ }
+ checkToRestConversion(node, allowPattern) {
+ switch (node.type) {
+ case "TSAsExpression":
+ case "TSSatisfiesExpression":
+ case "TSTypeAssertion":
+ case "TSNonNullExpression":
+ this.checkToRestConversion(node.expression, false);
+ break;
+ default:
+ super.checkToRestConversion(node, allowPattern);
+ }
+ }
+ isValidLVal(type, isUnparenthesizedInAssign, binding) {
+ return getOwn({
+ TSTypeCastExpression: true,
+ TSParameterProperty: "parameter",
+ TSNonNullExpression: "expression",
+ TSAsExpression: (binding !== 64 || !isUnparenthesizedInAssign) && ["expression", true],
+ TSSatisfiesExpression: (binding !== 64 || !isUnparenthesizedInAssign) && ["expression", true],
+ TSTypeAssertion: (binding !== 64 || !isUnparenthesizedInAssign) && ["expression", true]
+ }, type) || super.isValidLVal(type, isUnparenthesizedInAssign, binding);
+ }
+ parseBindingAtom() {
+ if (this.state.type === 78) {
+ return this.parseIdentifier(true);
+ }
+ return super.parseBindingAtom();
+ }
+ parseMaybeDecoratorArguments(expr) {
+ if (this.match(47) || this.match(51)) {
+ const typeArguments = this.tsParseTypeArgumentsInExpression();
+ if (this.match(10)) {
+ const call = super.parseMaybeDecoratorArguments(expr);
+ call.typeParameters = typeArguments;
+ return call;
+ }
+ this.unexpected(null, 10);
+ }
+ return super.parseMaybeDecoratorArguments(expr);
+ }
+ checkCommaAfterRest(close) {
+ if (this.state.isAmbientContext && this.match(12) && this.lookaheadCharCode() === close) {
+ this.next();
+ return false;
+ }
+ return super.checkCommaAfterRest(close);
+ }
+ isClassMethod() {
+ return this.match(47) || super.isClassMethod();
+ }
+ isClassProperty() {
+ return this.match(35) || this.match(14) || super.isClassProperty();
+ }
+ parseMaybeDefault(startLoc, left) {
+ const node = super.parseMaybeDefault(startLoc, left);
+ if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) {
+ this.raise(TSErrors.TypeAnnotationAfterAssign, {
+ at: node.typeAnnotation
+ });
+ }
+ return node;
+ }
+ getTokenFromCode(code) {
+ if (this.state.inType) {
+ if (code === 62) {
+ this.finishOp(48, 1);
+ return;
+ }
+ if (code === 60) {
+ this.finishOp(47, 1);
+ return;
+ }
+ }
+ super.getTokenFromCode(code);
+ }
+ reScan_lt_gt() {
+ const {
+ type
+ } = this.state;
+ if (type === 47) {
+ this.state.pos -= 1;
+ this.readToken_lt();
+ } else if (type === 48) {
+ this.state.pos -= 1;
+ this.readToken_gt();
+ }
+ }
+ reScan_lt() {
+ const {
+ type
+ } = this.state;
+ if (type === 51) {
+ this.state.pos -= 2;
+ this.finishOp(47, 1);
+ return 47;
+ }
+ return type;
+ }
+ toAssignableList(exprList, trailingCommaLoc, isLHS) {
+ for (let i = 0; i < exprList.length; i++) {
+ const expr = exprList[i];
+ if ((expr == null ? void 0 : expr.type) === "TSTypeCastExpression") {
+ exprList[i] = this.typeCastToParameter(expr);
+ }
+ }
+ super.toAssignableList(exprList, trailingCommaLoc, isLHS);
+ }
+ typeCastToParameter(node) {
+ node.expression.typeAnnotation = node.typeAnnotation;
+ this.resetEndLocation(node.expression, node.typeAnnotation.loc.end);
+ return node.expression;
+ }
+ shouldParseArrow(params) {
+ if (this.match(14)) {
+ return params.every(expr => this.isAssignable(expr, true));
+ }
+ return super.shouldParseArrow(params);
+ }
+ shouldParseAsyncArrow() {
+ return this.match(14) || super.shouldParseAsyncArrow();
+ }
+ canHaveLeadingDecorator() {
+ return super.canHaveLeadingDecorator() || this.isAbstractClass();
+ }
+ jsxParseOpeningElementAfterName(node) {
+ if (this.match(47) || this.match(51)) {
+ const typeArguments = this.tsTryParseAndCatch(() => this.tsParseTypeArgumentsInExpression());
+ if (typeArguments) node.typeParameters = typeArguments;
+ }
+ return super.jsxParseOpeningElementAfterName(node);
+ }
+ getGetterSetterExpectedParamCount(method) {
+ const baseCount = super.getGetterSetterExpectedParamCount(method);
+ const params = this.getObjectOrClassMethodParams(method);
+ const firstParam = params[0];
+ const hasContextParam = firstParam && this.isThisParam(firstParam);
+ return hasContextParam ? baseCount + 1 : baseCount;
+ }
+ parseCatchClauseParam() {
+ const param = super.parseCatchClauseParam();
+ const type = this.tsTryParseTypeAnnotation();
+ if (type) {
+ param.typeAnnotation = type;
+ this.resetEndLocation(param);
+ }
+ return param;
+ }
+ tsInAmbientContext(cb) {
+ const oldIsAmbientContext = this.state.isAmbientContext;
+ this.state.isAmbientContext = true;
+ try {
+ return cb();
+ } finally {
+ this.state.isAmbientContext = oldIsAmbientContext;
+ }
+ }
+ parseClass(node, isStatement, optionalId) {
+ const oldInAbstractClass = this.state.inAbstractClass;
+ this.state.inAbstractClass = !!node.abstract;
+ try {
+ return super.parseClass(node, isStatement, optionalId);
+ } finally {
+ this.state.inAbstractClass = oldInAbstractClass;
+ }
+ }
+ tsParseAbstractDeclaration(node, decorators) {
+ if (this.match(80)) {
+ node.abstract = true;
+ return this.maybeTakeDecorators(decorators, this.parseClass(node, true, false));
+ } else if (this.isContextual(129)) {
+ if (!this.hasFollowingLineBreak()) {
+ node.abstract = true;
+ this.raise(TSErrors.NonClassMethodPropertyHasAbstractModifer, {
+ at: node
+ });
+ return this.tsParseInterfaceDeclaration(node);
+ }
+ } else {
+ this.unexpected(null, 80);
+ }
+ }
+ parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope) {
+ const method = super.parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope);
+ if (method.abstract) {
+ const hasBody = this.hasPlugin("estree") ? !!method.value.body : !!method.body;
+ if (hasBody) {
+ const {
+ key
+ } = method;
+ this.raise(TSErrors.AbstractMethodHasImplementation, {
+ at: method,
+ methodName: key.type === "Identifier" && !method.computed ? key.name : `[${this.input.slice(key.start, key.end)}]`
+ });
+ }
+ }
+ return method;
+ }
+ tsParseTypeParameterName() {
+ const typeName = this.parseIdentifier();
+ return typeName.name;
+ }
+ shouldParseAsAmbientContext() {
+ return !!this.getPluginOption("typescript", "dts");
+ }
+ parse() {
+ if (this.shouldParseAsAmbientContext()) {
+ this.state.isAmbientContext = true;
+ }
+ return super.parse();
+ }
+ getExpression() {
+ if (this.shouldParseAsAmbientContext()) {
+ this.state.isAmbientContext = true;
+ }
+ return super.getExpression();
+ }
+ parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly) {
+ if (!isString && isMaybeTypeOnly) {
+ this.parseTypeOnlyImportExportSpecifier(node, false, isInTypeExport);
+ return this.finishNode(node, "ExportSpecifier");
+ }
+ node.exportKind = "value";
+ return super.parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly);
+ }
+ parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) {
+ if (!importedIsString && isMaybeTypeOnly) {
+ this.parseTypeOnlyImportExportSpecifier(specifier, true, isInTypeOnlyImport);
+ return this.finishNode(specifier, "ImportSpecifier");
+ }
+ specifier.importKind = "value";
+ return super.parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, isInTypeOnlyImport ? 4098 : 4096);
+ }
+ parseTypeOnlyImportExportSpecifier(node, isImport, isInTypeOnlyImportExport) {
+ const leftOfAsKey = isImport ? "imported" : "local";
+ const rightOfAsKey = isImport ? "local" : "exported";
+ let leftOfAs = node[leftOfAsKey];
+ let rightOfAs;
+ let hasTypeSpecifier = false;
+ let canParseAsKeyword = true;
+ const loc = leftOfAs.loc.start;
+ if (this.isContextual(93)) {
+ const firstAs = this.parseIdentifier();
+ if (this.isContextual(93)) {
+ const secondAs = this.parseIdentifier();
+ if (tokenIsKeywordOrIdentifier(this.state.type)) {
+ hasTypeSpecifier = true;
+ leftOfAs = firstAs;
+ rightOfAs = isImport ? this.parseIdentifier() : this.parseModuleExportName();
+ canParseAsKeyword = false;
+ } else {
+ rightOfAs = secondAs;
+ canParseAsKeyword = false;
+ }
+ } else if (tokenIsKeywordOrIdentifier(this.state.type)) {
+ canParseAsKeyword = false;
+ rightOfAs = isImport ? this.parseIdentifier() : this.parseModuleExportName();
+ } else {
+ hasTypeSpecifier = true;
+ leftOfAs = firstAs;
+ }
+ } else if (tokenIsKeywordOrIdentifier(this.state.type)) {
+ hasTypeSpecifier = true;
+ if (isImport) {
+ leftOfAs = this.parseIdentifier(true);
+ if (!this.isContextual(93)) {
+ this.checkReservedWord(leftOfAs.name, leftOfAs.loc.start, true, true);
+ }
+ } else {
+ leftOfAs = this.parseModuleExportName();
+ }
+ }
+ if (hasTypeSpecifier && isInTypeOnlyImportExport) {
+ this.raise(isImport ? TSErrors.TypeModifierIsUsedInTypeImports : TSErrors.TypeModifierIsUsedInTypeExports, {
+ at: loc
+ });
+ }
+ node[leftOfAsKey] = leftOfAs;
+ node[rightOfAsKey] = rightOfAs;
+ const kindKey = isImport ? "importKind" : "exportKind";
+ node[kindKey] = hasTypeSpecifier ? "type" : "value";
+ if (canParseAsKeyword && this.eatContextual(93)) {
+ node[rightOfAsKey] = isImport ? this.parseIdentifier() : this.parseModuleExportName();
+ }
+ if (!node[rightOfAsKey]) {
+ node[rightOfAsKey] = cloneIdentifier(node[leftOfAsKey]);
+ }
+ if (isImport) {
+ this.checkIdentifier(node[rightOfAsKey], hasTypeSpecifier ? 4098 : 4096);
+ }
+ }
+};
+function isPossiblyLiteralEnum(expression) {
+ if (expression.type !== "MemberExpression") return false;
+ const {
+ computed,
+ property
+ } = expression;
+ if (computed && property.type !== "StringLiteral" && (property.type !== "TemplateLiteral" || property.expressions.length > 0)) {
+ return false;
+ }
+ return isUncomputedMemberExpressionChain(expression.object);
+}
+function isValidAmbientConstInitializer(expression, estree) {
+ var _expression$extra;
+ const {
+ type
+ } = expression;
+ if ((_expression$extra = expression.extra) != null && _expression$extra.parenthesized) {
+ return false;
+ }
+ if (estree) {
+ if (type === "Literal") {
+ const {
+ value
+ } = expression;
+ if (typeof value === "string" || typeof value === "boolean") {
+ return true;
+ }
+ }
+ } else {
+ if (type === "StringLiteral" || type === "BooleanLiteral") {
+ return true;
+ }
+ }
+ if (isNumber(expression, estree) || isNegativeNumber(expression, estree)) {
+ return true;
+ }
+ if (type === "TemplateLiteral" && expression.expressions.length === 0) {
+ return true;
+ }
+ if (isPossiblyLiteralEnum(expression)) {
+ return true;
+ }
+ return false;
+}
+function isNumber(expression, estree) {
+ if (estree) {
+ return expression.type === "Literal" && (typeof expression.value === "number" || "bigint" in expression);
+ }
+ return expression.type === "NumericLiteral" || expression.type === "BigIntLiteral";
+}
+function isNegativeNumber(expression, estree) {
+ if (expression.type === "UnaryExpression") {
+ const {
+ operator,
+ argument
+ } = expression;
+ if (operator === "-" && isNumber(argument, estree)) {
+ return true;
+ }
+ }
+ return false;
+}
+function isUncomputedMemberExpressionChain(expression) {
+ if (expression.type === "Identifier") return true;
+ if (expression.type !== "MemberExpression" || expression.computed) {
+ return false;
+ }
+ return isUncomputedMemberExpressionChain(expression.object);
+}
+const PlaceholderErrors = ParseErrorEnum`placeholders`({
+ ClassNameIsRequired: "A class name is required.",
+ UnexpectedSpace: "Unexpected space in placeholder."
+});
+var placeholders = superClass => class PlaceholdersParserMixin extends superClass {
+ parsePlaceholder(expectedNode) {
+ if (this.match(144)) {
+ const node = this.startNode();
+ this.next();
+ this.assertNoSpace();
+ node.name = super.parseIdentifier(true);
+ this.assertNoSpace();
+ this.expect(144);
+ return this.finishPlaceholder(node, expectedNode);
+ }
+ }
+ finishPlaceholder(node, expectedNode) {
+ const isFinished = !!(node.expectedNode && node.type === "Placeholder");
+ node.expectedNode = expectedNode;
+ return isFinished ? node : this.finishNode(node, "Placeholder");
+ }
+ getTokenFromCode(code) {
+ if (code === 37 && this.input.charCodeAt(this.state.pos + 1) === 37) {
+ this.finishOp(144, 2);
+ } else {
+ super.getTokenFromCode(code);
+ }
+ }
+ parseExprAtom(refExpressionErrors) {
+ return this.parsePlaceholder("Expression") || super.parseExprAtom(refExpressionErrors);
+ }
+ parseIdentifier(liberal) {
+ return this.parsePlaceholder("Identifier") || super.parseIdentifier(liberal);
+ }
+ checkReservedWord(word, startLoc, checkKeywords, isBinding) {
+ if (word !== undefined) {
+ super.checkReservedWord(word, startLoc, checkKeywords, isBinding);
+ }
+ }
+ parseBindingAtom() {
+ return this.parsePlaceholder("Pattern") || super.parseBindingAtom();
+ }
+ isValidLVal(type, isParenthesized, binding) {
+ return type === "Placeholder" || super.isValidLVal(type, isParenthesized, binding);
+ }
+ toAssignable(node, isLHS) {
+ if (node && node.type === "Placeholder" && node.expectedNode === "Expression") {
+ node.expectedNode = "Pattern";
+ } else {
+ super.toAssignable(node, isLHS);
+ }
+ }
+ chStartsBindingIdentifier(ch, pos) {
+ if (super.chStartsBindingIdentifier(ch, pos)) {
+ return true;
+ }
+ const nextToken = this.lookahead();
+ if (nextToken.type === 144) {
+ return true;
+ }
+ return false;
+ }
+ verifyBreakContinue(node, isBreak) {
+ if (node.label && node.label.type === "Placeholder") return;
+ super.verifyBreakContinue(node, isBreak);
+ }
+ parseExpressionStatement(node, expr) {
+ var _expr$extra;
+ if (expr.type !== "Placeholder" || (_expr$extra = expr.extra) != null && _expr$extra.parenthesized) {
+ return super.parseExpressionStatement(node, expr);
+ }
+ if (this.match(14)) {
+ const stmt = node;
+ stmt.label = this.finishPlaceholder(expr, "Identifier");
+ this.next();
+ stmt.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration();
+ return this.finishNode(stmt, "LabeledStatement");
+ }
+ this.semicolon();
+ node.name = expr.name;
+ return this.finishPlaceholder(node, "Statement");
+ }
+ parseBlock(allowDirectives, createNewLexicalScope, afterBlockParse) {
+ return this.parsePlaceholder("BlockStatement") || super.parseBlock(allowDirectives, createNewLexicalScope, afterBlockParse);
+ }
+ parseFunctionId(requireId) {
+ return this.parsePlaceholder("Identifier") || super.parseFunctionId(requireId);
+ }
+ parseClass(node, isStatement, optionalId) {
+ const type = isStatement ? "ClassDeclaration" : "ClassExpression";
+ this.next();
+ const oldStrict = this.state.strict;
+ const placeholder = this.parsePlaceholder("Identifier");
+ if (placeholder) {
+ if (this.match(81) || this.match(144) || this.match(5)) {
+ node.id = placeholder;
+ } else if (optionalId || !isStatement) {
+ node.id = null;
+ node.body = this.finishPlaceholder(placeholder, "ClassBody");
+ return this.finishNode(node, type);
+ } else {
+ throw this.raise(PlaceholderErrors.ClassNameIsRequired, {
+ at: this.state.startLoc
+ });
+ }
+ } else {
+ this.parseClassId(node, isStatement, optionalId);
+ }
+ super.parseClassSuper(node);
+ node.body = this.parsePlaceholder("ClassBody") || super.parseClassBody(!!node.superClass, oldStrict);
+ return this.finishNode(node, type);
+ }
+ parseExport(node, decorators) {
+ const placeholder = this.parsePlaceholder("Identifier");
+ if (!placeholder) return super.parseExport(node, decorators);
+ if (!this.isContextual(98) && !this.match(12)) {
+ node.specifiers = [];
+ node.source = null;
+ node.declaration = this.finishPlaceholder(placeholder, "Declaration");
+ return this.finishNode(node, "ExportNamedDeclaration");
+ }
+ this.expectPlugin("exportDefaultFrom");
+ const specifier = this.startNode();
+ specifier.exported = placeholder;
+ node.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")];
+ return super.parseExport(node, decorators);
+ }
+ isExportDefaultSpecifier() {
+ if (this.match(65)) {
+ const next = this.nextTokenStart();
+ if (this.isUnparsedContextual(next, "from")) {
+ if (this.input.startsWith(tokenLabelName(144), this.nextTokenStartSince(next + 4))) {
+ return true;
+ }
+ }
+ }
+ return super.isExportDefaultSpecifier();
+ }
+ maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier) {
+ var _specifiers;
+ if ((_specifiers = node.specifiers) != null && _specifiers.length) {
+ return true;
+ }
+ return super.maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier);
+ }
+ checkExport(node) {
+ const {
+ specifiers
+ } = node;
+ if (specifiers != null && specifiers.length) {
+ node.specifiers = specifiers.filter(node => node.exported.type === "Placeholder");
+ }
+ super.checkExport(node);
+ node.specifiers = specifiers;
+ }
+ parseImport(node) {
+ const placeholder = this.parsePlaceholder("Identifier");
+ if (!placeholder) return super.parseImport(node);
+ node.specifiers = [];
+ if (!this.isContextual(98) && !this.match(12)) {
+ node.source = this.finishPlaceholder(placeholder, "StringLiteral");
+ this.semicolon();
+ return this.finishNode(node, "ImportDeclaration");
+ }
+ const specifier = this.startNodeAtNode(placeholder);
+ specifier.local = placeholder;
+ node.specifiers.push(this.finishNode(specifier, "ImportDefaultSpecifier"));
+ if (this.eat(12)) {
+ const hasStarImport = this.maybeParseStarImportSpecifier(node);
+ if (!hasStarImport) this.parseNamedImportSpecifiers(node);
+ }
+ this.expectContextual(98);
+ node.source = this.parseImportSource();
+ this.semicolon();
+ return this.finishNode(node, "ImportDeclaration");
+ }
+ parseImportSource() {
+ return this.parsePlaceholder("StringLiteral") || super.parseImportSource();
+ }
+ assertNoSpace() {
+ if (this.state.start > this.state.lastTokEndLoc.index) {
+ this.raise(PlaceholderErrors.UnexpectedSpace, {
+ at: this.state.lastTokEndLoc
+ });
+ }
+ }
+};
+var v8intrinsic = superClass => class V8IntrinsicMixin extends superClass {
+ parseV8Intrinsic() {
+ if (this.match(54)) {
+ const v8IntrinsicStartLoc = this.state.startLoc;
+ const node = this.startNode();
+ this.next();
+ if (tokenIsIdentifier(this.state.type)) {
+ const name = this.parseIdentifierName();
+ const identifier = this.createIdentifier(node, name);
+ identifier.type = "V8IntrinsicIdentifier";
+ if (this.match(10)) {
+ return identifier;
+ }
+ }
+ this.unexpected(v8IntrinsicStartLoc);
+ }
+ }
+ parseExprAtom(refExpressionErrors) {
+ return this.parseV8Intrinsic() || super.parseExprAtom(refExpressionErrors);
+ }
+};
+function hasPlugin(plugins, expectedConfig) {
+ const [expectedName, expectedOptions] = typeof expectedConfig === "string" ? [expectedConfig, {}] : expectedConfig;
+ const expectedKeys = Object.keys(expectedOptions);
+ const expectedOptionsIsEmpty = expectedKeys.length === 0;
+ return plugins.some(p => {
+ if (typeof p === "string") {
+ return expectedOptionsIsEmpty && p === expectedName;
+ } else {
+ const [pluginName, pluginOptions] = p;
+ if (pluginName !== expectedName) {
+ return false;
+ }
+ for (const key of expectedKeys) {
+ if (pluginOptions[key] !== expectedOptions[key]) {
+ return false;
+ }
+ }
+ return true;
+ }
+ });
+}
+function getPluginOption(plugins, name, option) {
+ const plugin = plugins.find(plugin => {
+ if (Array.isArray(plugin)) {
+ return plugin[0] === name;
+ } else {
+ return plugin === name;
+ }
+ });
+ if (plugin && Array.isArray(plugin) && plugin.length > 1) {
+ return plugin[1][option];
+ }
+ return null;
+}
+const PIPELINE_PROPOSALS = ["minimal", "fsharp", "hack", "smart"];
+const TOPIC_TOKENS = ["^^", "@@", "^", "%", "#"];
+const RECORD_AND_TUPLE_SYNTAX_TYPES = ["hash", "bar"];
+function validatePlugins(plugins) {
+ if (hasPlugin(plugins, "decorators")) {
+ if (hasPlugin(plugins, "decorators-legacy")) {
+ throw new Error("Cannot use the decorators and decorators-legacy plugin together");
+ }
+ const decoratorsBeforeExport = getPluginOption(plugins, "decorators", "decoratorsBeforeExport");
+ if (decoratorsBeforeExport != null && typeof decoratorsBeforeExport !== "boolean") {
+ throw new Error("'decoratorsBeforeExport' must be a boolean, if specified.");
+ }
+ const allowCallParenthesized = getPluginOption(plugins, "decorators", "allowCallParenthesized");
+ if (allowCallParenthesized != null && typeof allowCallParenthesized !== "boolean") {
+ throw new Error("'allowCallParenthesized' must be a boolean.");
+ }
+ }
+ if (hasPlugin(plugins, "flow") && hasPlugin(plugins, "typescript")) {
+ throw new Error("Cannot combine flow and typescript plugins.");
+ }
+ if (hasPlugin(plugins, "placeholders") && hasPlugin(plugins, "v8intrinsic")) {
+ throw new Error("Cannot combine placeholders and v8intrinsic plugins.");
+ }
+ if (hasPlugin(plugins, "pipelineOperator")) {
+ const proposal = getPluginOption(plugins, "pipelineOperator", "proposal");
+ if (!PIPELINE_PROPOSALS.includes(proposal)) {
+ const proposalList = PIPELINE_PROPOSALS.map(p => `"${p}"`).join(", ");
+ throw new Error(`"pipelineOperator" requires "proposal" option whose value must be one of: ${proposalList}.`);
+ }
+ const tupleSyntaxIsHash = hasPlugin(plugins, ["recordAndTuple", {
+ syntaxType: "hash"
+ }]);
+ if (proposal === "hack") {
+ if (hasPlugin(plugins, "placeholders")) {
+ throw new Error("Cannot combine placeholders plugin and Hack-style pipes.");
+ }
+ if (hasPlugin(plugins, "v8intrinsic")) {
+ throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes.");
+ }
+ const topicToken = getPluginOption(plugins, "pipelineOperator", "topicToken");
+ if (!TOPIC_TOKENS.includes(topicToken)) {
+ const tokenList = TOPIC_TOKENS.map(t => `"${t}"`).join(", ");
+ throw new Error(`"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: ${tokenList}.`);
+ }
+ if (topicToken === "#" && tupleSyntaxIsHash) {
+ throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "hack", topicToken: "#" }]` and `["recordAndtuple", { syntaxType: "hash"}]`.');
+ }
+ } else if (proposal === "smart" && tupleSyntaxIsHash) {
+ throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "smart" }]` and `["recordAndtuple", { syntaxType: "hash"}]`.');
+ }
+ }
+ if (hasPlugin(plugins, "moduleAttributes")) {
+ {
+ if (hasPlugin(plugins, "importAssertions") || hasPlugin(plugins, "importAttributes")) {
+ throw new Error("Cannot combine importAssertions, importAttributes and moduleAttributes plugins.");
+ }
+ const moduleAttributesVersionPluginOption = getPluginOption(plugins, "moduleAttributes", "version");
+ if (moduleAttributesVersionPluginOption !== "may-2020") {
+ throw new Error("The 'moduleAttributes' plugin requires a 'version' option," + " representing the last proposal update. Currently, the" + " only supported value is 'may-2020'.");
+ }
+ }
+ }
+ if (hasPlugin(plugins, "importAssertions") && hasPlugin(plugins, "importAttributes")) {
+ throw new Error("Cannot combine importAssertions and importAttributes plugins.");
+ }
+ if (hasPlugin(plugins, "recordAndTuple") && getPluginOption(plugins, "recordAndTuple", "syntaxType") != null && !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(getPluginOption(plugins, "recordAndTuple", "syntaxType"))) {
+ throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: " + RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(", "));
+ }
+ if (hasPlugin(plugins, "asyncDoExpressions") && !hasPlugin(plugins, "doExpressions")) {
+ const error = new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.");
+ error.missingPlugins = "doExpressions";
+ throw error;
+ }
+ if (hasPlugin(plugins, "optionalChainingAssign") && getPluginOption(plugins, "optionalChainingAssign", "version") !== "2023-07") {
+ throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option," + " representing the last proposal update. Currently, the" + " only supported value is '2023-07'.");
+ }
+}
+const mixinPlugins = {
+ estree,
+ jsx,
+ flow,
+ typescript,
+ v8intrinsic,
+ placeholders
+};
+const mixinPluginNames = Object.keys(mixinPlugins);
+const defaultOptions = {
+ sourceType: "script",
+ sourceFilename: undefined,
+ startColumn: 0,
+ startLine: 1,
+ allowAwaitOutsideFunction: false,
+ allowReturnOutsideFunction: false,
+ allowNewTargetOutsideFunction: false,
+ allowImportExportEverywhere: false,
+ allowSuperOutsideMethod: false,
+ allowUndeclaredExports: false,
+ plugins: [],
+ strictMode: null,
+ ranges: false,
+ tokens: false,
+ createImportExpressions: false,
+ createParenthesizedExpressions: false,
+ errorRecovery: false,
+ attachComment: true,
+ annexB: true
+};
+function getOptions(opts) {
+ if (opts == null) {
+ return Object.assign({}, defaultOptions);
+ }
+ if (opts.annexB != null && opts.annexB !== false) {
+ throw new Error("The `annexB` option can only be set to `false`.");
+ }
+ const options = {};
+ for (const key of Object.keys(defaultOptions)) {
+ var _opts$key;
+ options[key] = (_opts$key = opts[key]) != null ? _opts$key : defaultOptions[key];
+ }
+ return options;
+}
+class ExpressionParser extends LValParser {
+ checkProto(prop, isRecord, protoRef, refExpressionErrors) {
+ if (prop.type === "SpreadElement" || this.isObjectMethod(prop) || prop.computed || prop.shorthand) {
+ return;
+ }
+ const key = prop.key;
+ const name = key.type === "Identifier" ? key.name : key.value;
+ if (name === "__proto__") {
+ if (isRecord) {
+ this.raise(Errors.RecordNoProto, {
+ at: key
+ });
+ return;
+ }
+ if (protoRef.used) {
+ if (refExpressionErrors) {
+ if (refExpressionErrors.doubleProtoLoc === null) {
+ refExpressionErrors.doubleProtoLoc = key.loc.start;
+ }
+ } else {
+ this.raise(Errors.DuplicateProto, {
+ at: key
+ });
+ }
+ }
+ protoRef.used = true;
+ }
+ }
+ shouldExitDescending(expr, potentialArrowAt) {
+ return expr.type === "ArrowFunctionExpression" && expr.start === potentialArrowAt;
+ }
+ getExpression() {
+ this.enterInitialScopes();
+ this.nextToken();
+ const expr = this.parseExpression();
+ if (!this.match(139)) {
+ this.unexpected();
+ }
+ this.finalizeRemainingComments();
+ expr.comments = this.state.comments;
+ expr.errors = this.state.errors;
+ if (this.options.tokens) {
+ expr.tokens = this.tokens;
+ }
+ return expr;
+ }
+ parseExpression(disallowIn, refExpressionErrors) {
+ if (disallowIn) {
+ return this.disallowInAnd(() => this.parseExpressionBase(refExpressionErrors));
+ }
+ return this.allowInAnd(() => this.parseExpressionBase(refExpressionErrors));
+ }
+ parseExpressionBase(refExpressionErrors) {
+ const startLoc = this.state.startLoc;
+ const expr = this.parseMaybeAssign(refExpressionErrors);
+ if (this.match(12)) {
+ const node = this.startNodeAt(startLoc);
+ node.expressions = [expr];
+ while (this.eat(12)) {
+ node.expressions.push(this.parseMaybeAssign(refExpressionErrors));
+ }
+ this.toReferencedList(node.expressions);
+ return this.finishNode(node, "SequenceExpression");
+ }
+ return expr;
+ }
+ parseMaybeAssignDisallowIn(refExpressionErrors, afterLeftParse) {
+ return this.disallowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse));
+ }
+ parseMaybeAssignAllowIn(refExpressionErrors, afterLeftParse) {
+ return this.allowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse));
+ }
+ setOptionalParametersError(refExpressionErrors, resultError) {
+ var _resultError$loc;
+ refExpressionErrors.optionalParametersLoc = (_resultError$loc = resultError == null ? void 0 : resultError.loc) != null ? _resultError$loc : this.state.startLoc;
+ }
+ parseMaybeAssign(refExpressionErrors, afterLeftParse) {
+ const startLoc = this.state.startLoc;
+ if (this.isContextual(108)) {
+ if (this.prodParam.hasYield) {
+ let left = this.parseYield();
+ if (afterLeftParse) {
+ left = afterLeftParse.call(this, left, startLoc);
+ }
+ return left;
+ }
+ }
+ let ownExpressionErrors;
+ if (refExpressionErrors) {
+ ownExpressionErrors = false;
+ } else {
+ refExpressionErrors = new ExpressionErrors();
+ ownExpressionErrors = true;
+ }
+ const {
+ type
+ } = this.state;
+ if (type === 10 || tokenIsIdentifier(type)) {
+ this.state.potentialArrowAt = this.state.start;
+ }
+ let left = this.parseMaybeConditional(refExpressionErrors);
+ if (afterLeftParse) {
+ left = afterLeftParse.call(this, left, startLoc);
+ }
+ if (tokenIsAssignment(this.state.type)) {
+ const node = this.startNodeAt(startLoc);
+ const operator = this.state.value;
+ node.operator = operator;
+ if (this.match(29)) {
+ this.toAssignable(left, true);
+ node.left = left;
+ const startIndex = startLoc.index;
+ if (refExpressionErrors.doubleProtoLoc != null && refExpressionErrors.doubleProtoLoc.index >= startIndex) {
+ refExpressionErrors.doubleProtoLoc = null;
+ }
+ if (refExpressionErrors.shorthandAssignLoc != null && refExpressionErrors.shorthandAssignLoc.index >= startIndex) {
+ refExpressionErrors.shorthandAssignLoc = null;
+ }
+ if (refExpressionErrors.privateKeyLoc != null && refExpressionErrors.privateKeyLoc.index >= startIndex) {
+ this.checkDestructuringPrivate(refExpressionErrors);
+ refExpressionErrors.privateKeyLoc = null;
+ }
+ } else {
+ node.left = left;
+ }
+ this.next();
+ node.right = this.parseMaybeAssign();
+ this.checkLVal(left, {
+ in: this.finishNode(node, "AssignmentExpression")
+ });
+ return node;
+ } else if (ownExpressionErrors) {
+ this.checkExpressionErrors(refExpressionErrors, true);
+ }
+ return left;
+ }
+ parseMaybeConditional(refExpressionErrors) {
+ const startLoc = this.state.startLoc;
+ const potentialArrowAt = this.state.potentialArrowAt;
+ const expr = this.parseExprOps(refExpressionErrors);
+ if (this.shouldExitDescending(expr, potentialArrowAt)) {
+ return expr;
+ }
+ return this.parseConditional(expr, startLoc, refExpressionErrors);
+ }
+ parseConditional(expr, startLoc, refExpressionErrors) {
+ if (this.eat(17)) {
+ const node = this.startNodeAt(startLoc);
+ node.test = expr;
+ node.consequent = this.parseMaybeAssignAllowIn();
+ this.expect(14);
+ node.alternate = this.parseMaybeAssign();
+ return this.finishNode(node, "ConditionalExpression");
+ }
+ return expr;
+ }
+ parseMaybeUnaryOrPrivate(refExpressionErrors) {
+ return this.match(138) ? this.parsePrivateName() : this.parseMaybeUnary(refExpressionErrors);
+ }
+ parseExprOps(refExpressionErrors) {
+ const startLoc = this.state.startLoc;
+ const potentialArrowAt = this.state.potentialArrowAt;
+ const expr = this.parseMaybeUnaryOrPrivate(refExpressionErrors);
+ if (this.shouldExitDescending(expr, potentialArrowAt)) {
+ return expr;
+ }
+ return this.parseExprOp(expr, startLoc, -1);
+ }
+ parseExprOp(left, leftStartLoc, minPrec) {
+ if (this.isPrivateName(left)) {
+ const value = this.getPrivateNameSV(left);
+ if (minPrec >= tokenOperatorPrecedence(58) || !this.prodParam.hasIn || !this.match(58)) {
+ this.raise(Errors.PrivateInExpectedIn, {
+ at: left,
+ identifierName: value
+ });
+ }
+ this.classScope.usePrivateName(value, left.loc.start);
+ }
+ const op = this.state.type;
+ if (tokenIsOperator(op) && (this.prodParam.hasIn || !this.match(58))) {
+ let prec = tokenOperatorPrecedence(op);
+ if (prec > minPrec) {
+ if (op === 39) {
+ this.expectPlugin("pipelineOperator");
+ if (this.state.inFSharpPipelineDirectBody) {
+ return left;
+ }
+ this.checkPipelineAtInfixOperator(left, leftStartLoc);
+ }
+ const node = this.startNodeAt(leftStartLoc);
+ node.left = left;
+ node.operator = this.state.value;
+ const logical = op === 41 || op === 42;
+ const coalesce = op === 40;
+ if (coalesce) {
+ prec = tokenOperatorPrecedence(42);
+ }
+ this.next();
+ if (op === 39 && this.hasPlugin(["pipelineOperator", {
+ proposal: "minimal"
+ }])) {
+ if (this.state.type === 96 && this.prodParam.hasAwait) {
+ throw this.raise(Errors.UnexpectedAwaitAfterPipelineBody, {
+ at: this.state.startLoc
+ });
+ }
+ }
+ node.right = this.parseExprOpRightExpr(op, prec);
+ const finishedNode = this.finishNode(node, logical || coalesce ? "LogicalExpression" : "BinaryExpression");
+ const nextOp = this.state.type;
+ if (coalesce && (nextOp === 41 || nextOp === 42) || logical && nextOp === 40) {
+ throw this.raise(Errors.MixingCoalesceWithLogical, {
+ at: this.state.startLoc
+ });
+ }
+ return this.parseExprOp(finishedNode, leftStartLoc, minPrec);
+ }
+ }
+ return left;
+ }
+ parseExprOpRightExpr(op, prec) {
+ const startLoc = this.state.startLoc;
+ switch (op) {
+ case 39:
+ switch (this.getPluginOption("pipelineOperator", "proposal")) {
+ case "hack":
+ return this.withTopicBindingContext(() => {
+ return this.parseHackPipeBody();
+ });
+ case "smart":
+ return this.withTopicBindingContext(() => {
+ if (this.prodParam.hasYield && this.isContextual(108)) {
+ throw this.raise(Errors.PipeBodyIsTighter, {
+ at: this.state.startLoc
+ });
+ }
+ return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(op, prec), startLoc);
+ });
+ case "fsharp":
+ return this.withSoloAwaitPermittingContext(() => {
+ return this.parseFSharpPipelineBody(prec);
+ });
+ }
+ default:
+ return this.parseExprOpBaseRightExpr(op, prec);
+ }
+ }
+ parseExprOpBaseRightExpr(op, prec) {
+ const startLoc = this.state.startLoc;
+ return this.parseExprOp(this.parseMaybeUnaryOrPrivate(), startLoc, tokenIsRightAssociative(op) ? prec - 1 : prec);
+ }
+ parseHackPipeBody() {
+ var _body$extra;
+ const {
+ startLoc
+ } = this.state;
+ const body = this.parseMaybeAssign();
+ const requiredParentheses = UnparenthesizedPipeBodyDescriptions.has(body.type);
+ if (requiredParentheses && !((_body$extra = body.extra) != null && _body$extra.parenthesized)) {
+ this.raise(Errors.PipeUnparenthesizedBody, {
+ at: startLoc,
+ type: body.type
+ });
+ }
+ if (!this.topicReferenceWasUsedInCurrentContext()) {
+ this.raise(Errors.PipeTopicUnused, {
+ at: startLoc
+ });
+ }
+ return body;
+ }
+ checkExponentialAfterUnary(node) {
+ if (this.match(57)) {
+ this.raise(Errors.UnexpectedTokenUnaryExponentiation, {
+ at: node.argument
+ });
+ }
+ }
+ parseMaybeUnary(refExpressionErrors, sawUnary) {
+ const startLoc = this.state.startLoc;
+ const isAwait = this.isContextual(96);
+ if (isAwait && this.isAwaitAllowed()) {
+ this.next();
+ const expr = this.parseAwait(startLoc);
+ if (!sawUnary) this.checkExponentialAfterUnary(expr);
+ return expr;
+ }
+ const update = this.match(34);
+ const node = this.startNode();
+ if (tokenIsPrefix(this.state.type)) {
+ node.operator = this.state.value;
+ node.prefix = true;
+ if (this.match(72)) {
+ this.expectPlugin("throwExpressions");
+ }
+ const isDelete = this.match(89);
+ this.next();
+ node.argument = this.parseMaybeUnary(null, true);
+ this.checkExpressionErrors(refExpressionErrors, true);
+ if (this.state.strict && isDelete) {
+ const arg = node.argument;
+ if (arg.type === "Identifier") {
+ this.raise(Errors.StrictDelete, {
+ at: node
+ });
+ } else if (this.hasPropertyAsPrivateName(arg)) {
+ this.raise(Errors.DeletePrivateField, {
+ at: node
+ });
+ }
+ }
+ if (!update) {
+ if (!sawUnary) {
+ this.checkExponentialAfterUnary(node);
+ }
+ return this.finishNode(node, "UnaryExpression");
+ }
+ }
+ const expr = this.parseUpdate(node, update, refExpressionErrors);
+ if (isAwait) {
+ const {
+ type
+ } = this.state;
+ const startsExpr = this.hasPlugin("v8intrinsic") ? tokenCanStartExpression(type) : tokenCanStartExpression(type) && !this.match(54);
+ if (startsExpr && !this.isAmbiguousAwait()) {
+ this.raiseOverwrite(Errors.AwaitNotInAsyncContext, {
+ at: startLoc
+ });
+ return this.parseAwait(startLoc);
+ }
+ }
+ return expr;
+ }
+ parseUpdate(node, update, refExpressionErrors) {
+ if (update) {
+ const updateExpressionNode = node;
+ this.checkLVal(updateExpressionNode.argument, {
+ in: this.finishNode(updateExpressionNode, "UpdateExpression")
+ });
+ return node;
+ }
+ const startLoc = this.state.startLoc;
+ let expr = this.parseExprSubscripts(refExpressionErrors);
+ if (this.checkExpressionErrors(refExpressionErrors, false)) return expr;
+ while (tokenIsPostfix(this.state.type) && !this.canInsertSemicolon()) {
+ const node = this.startNodeAt(startLoc);
+ node.operator = this.state.value;
+ node.prefix = false;
+ node.argument = expr;
+ this.next();
+ this.checkLVal(expr, {
+ in: expr = this.finishNode(node, "UpdateExpression")
+ });
+ }
+ return expr;
+ }
+ parseExprSubscripts(refExpressionErrors) {
+ const startLoc = this.state.startLoc;
+ const potentialArrowAt = this.state.potentialArrowAt;
+ const expr = this.parseExprAtom(refExpressionErrors);
+ if (this.shouldExitDescending(expr, potentialArrowAt)) {
+ return expr;
+ }
+ return this.parseSubscripts(expr, startLoc);
+ }
+ parseSubscripts(base, startLoc, noCalls) {
+ const state = {
+ optionalChainMember: false,
+ maybeAsyncArrow: this.atPossibleAsyncArrow(base),
+ stop: false
+ };
+ do {
+ base = this.parseSubscript(base, startLoc, noCalls, state);
+ state.maybeAsyncArrow = false;
+ } while (!state.stop);
+ return base;
+ }
+ parseSubscript(base, startLoc, noCalls, state) {
+ const {
+ type
+ } = this.state;
+ if (!noCalls && type === 15) {
+ return this.parseBind(base, startLoc, noCalls, state);
+ } else if (tokenIsTemplate(type)) {
+ return this.parseTaggedTemplateExpression(base, startLoc, state);
+ }
+ let optional = false;
+ if (type === 18) {
+ if (noCalls) {
+ this.raise(Errors.OptionalChainingNoNew, {
+ at: this.state.startLoc
+ });
+ if (this.lookaheadCharCode() === 40) {
+ state.stop = true;
+ return base;
+ }
+ }
+ state.optionalChainMember = optional = true;
+ this.next();
+ }
+ if (!noCalls && this.match(10)) {
+ return this.parseCoverCallAndAsyncArrowHead(base, startLoc, state, optional);
+ } else {
+ const computed = this.eat(0);
+ if (computed || optional || this.eat(16)) {
+ return this.parseMember(base, startLoc, state, computed, optional);
+ } else {
+ state.stop = true;
+ return base;
+ }
+ }
+ }
+ parseMember(base, startLoc, state, computed, optional) {
+ const node = this.startNodeAt(startLoc);
+ node.object = base;
+ node.computed = computed;
+ if (computed) {
+ node.property = this.parseExpression();
+ this.expect(3);
+ } else if (this.match(138)) {
+ if (base.type === "Super") {
+ this.raise(Errors.SuperPrivateField, {
+ at: startLoc
+ });
+ }
+ this.classScope.usePrivateName(this.state.value, this.state.startLoc);
+ node.property = this.parsePrivateName();
+ } else {
+ node.property = this.parseIdentifier(true);
+ }
+ if (state.optionalChainMember) {
+ node.optional = optional;
+ return this.finishNode(node, "OptionalMemberExpression");
+ } else {
+ return this.finishNode(node, "MemberExpression");
+ }
+ }
+ parseBind(base, startLoc, noCalls, state) {
+ const node = this.startNodeAt(startLoc);
+ node.object = base;
+ this.next();
+ node.callee = this.parseNoCallExpr();
+ state.stop = true;
+ return this.parseSubscripts(this.finishNode(node, "BindExpression"), startLoc, noCalls);
+ }
+ parseCoverCallAndAsyncArrowHead(base, startLoc, state, optional) {
+ const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;
+ let refExpressionErrors = null;
+ this.state.maybeInArrowParameters = true;
+ this.next();
+ const node = this.startNodeAt(startLoc);
+ node.callee = base;
+ const {
+ maybeAsyncArrow,
+ optionalChainMember
+ } = state;
+ if (maybeAsyncArrow) {
+ this.expressionScope.enter(newAsyncArrowScope());
+ refExpressionErrors = new ExpressionErrors();
+ }
+ if (optionalChainMember) {
+ node.optional = optional;
+ }
+ if (optional) {
+ node.arguments = this.parseCallExpressionArguments(11);
+ } else {
+ node.arguments = this.parseCallExpressionArguments(11, base.type === "Import", base.type !== "Super", node, refExpressionErrors);
+ }
+ let finishedNode = this.finishCallExpression(node, optionalChainMember);
+ if (maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) {
+ state.stop = true;
+ this.checkDestructuringPrivate(refExpressionErrors);
+ this.expressionScope.validateAsPattern();
+ this.expressionScope.exit();
+ finishedNode = this.parseAsyncArrowFromCallExpression(this.startNodeAt(startLoc), finishedNode);
+ } else {
+ if (maybeAsyncArrow) {
+ this.checkExpressionErrors(refExpressionErrors, true);
+ this.expressionScope.exit();
+ }
+ this.toReferencedArguments(finishedNode);
+ }
+ this.state.maybeInArrowParameters = oldMaybeInArrowParameters;
+ return finishedNode;
+ }
+ toReferencedArguments(node, isParenthesizedExpr) {
+ this.toReferencedListDeep(node.arguments, isParenthesizedExpr);
+ }
+ parseTaggedTemplateExpression(base, startLoc, state) {
+ const node = this.startNodeAt(startLoc);
+ node.tag = base;
+ node.quasi = this.parseTemplate(true);
+ if (state.optionalChainMember) {
+ this.raise(Errors.OptionalChainingNoTemplate, {
+ at: startLoc
+ });
+ }
+ return this.finishNode(node, "TaggedTemplateExpression");
+ }
+ atPossibleAsyncArrow(base) {
+ return base.type === "Identifier" && base.name === "async" && this.state.lastTokEndLoc.index === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 && base.start === this.state.potentialArrowAt;
+ }
+ expectImportAttributesPlugin() {
+ if (!this.hasPlugin("importAssertions")) {
+ this.expectPlugin("importAttributes");
+ }
+ }
+ finishCallExpression(node, optional) {
+ if (node.callee.type === "Import") {
+ if (node.arguments.length === 2) {
+ {
+ if (!this.hasPlugin("moduleAttributes")) {
+ this.expectImportAttributesPlugin();
+ }
+ }
+ }
+ if (node.arguments.length === 0 || node.arguments.length > 2) {
+ this.raise(Errors.ImportCallArity, {
+ at: node,
+ maxArgumentCount: this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions") || this.hasPlugin("moduleAttributes") ? 2 : 1
+ });
+ } else {
+ for (const arg of node.arguments) {
+ if (arg.type === "SpreadElement") {
+ this.raise(Errors.ImportCallSpreadArgument, {
+ at: arg
+ });
+ }
+ }
+ }
+ }
+ return this.finishNode(node, optional ? "OptionalCallExpression" : "CallExpression");
+ }
+ parseCallExpressionArguments(close, dynamicImport, allowPlaceholder, nodeForExtra, refExpressionErrors) {
+ const elts = [];
+ let first = true;
+ const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;
+ this.state.inFSharpPipelineDirectBody = false;
+ while (!this.eat(close)) {
+ if (first) {
+ first = false;
+ } else {
+ this.expect(12);
+ if (this.match(close)) {
+ if (dynamicImport && !this.hasPlugin("importAttributes") && !this.hasPlugin("importAssertions") && !this.hasPlugin("moduleAttributes")) {
+ this.raise(Errors.ImportCallArgumentTrailingComma, {
+ at: this.state.lastTokStartLoc
+ });
+ }
+ if (nodeForExtra) {
+ this.addTrailingCommaExtraToNode(nodeForExtra);
+ }
+ this.next();
+ break;
+ }
+ }
+ elts.push(this.parseExprListItem(false, refExpressionErrors, allowPlaceholder));
+ }
+ this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;
+ return elts;
+ }
+ shouldParseAsyncArrow() {
+ return this.match(19) && !this.canInsertSemicolon();
+ }
+ parseAsyncArrowFromCallExpression(node, call) {
+ var _call$extra;
+ this.resetPreviousNodeTrailingComments(call);
+ this.expect(19);
+ this.parseArrowExpression(node, call.arguments, true, (_call$extra = call.extra) == null ? void 0 : _call$extra.trailingCommaLoc);
+ if (call.innerComments) {
+ setInnerComments(node, call.innerComments);
+ }
+ if (call.callee.trailingComments) {
+ setInnerComments(node, call.callee.trailingComments);
+ }
+ return node;
+ }
+ parseNoCallExpr() {
+ const startLoc = this.state.startLoc;
+ return this.parseSubscripts(this.parseExprAtom(), startLoc, true);
+ }
+ parseExprAtom(refExpressionErrors) {
+ let node;
+ let decorators = null;
+ const {
+ type
+ } = this.state;
+ switch (type) {
+ case 79:
+ return this.parseSuper();
+ case 83:
+ node = this.startNode();
+ this.next();
+ if (this.match(16)) {
+ return this.parseImportMetaProperty(node);
+ }
+ if (this.match(10)) {
+ if (this.options.createImportExpressions) {
+ return this.parseImportCall(node);
+ } else {
+ return this.finishNode(node, "Import");
+ }
+ } else {
+ this.raise(Errors.UnsupportedImport, {
+ at: this.state.lastTokStartLoc
+ });
+ return this.finishNode(node, "Import");
+ }
+ case 78:
+ node = this.startNode();
+ this.next();
+ return this.finishNode(node, "ThisExpression");
+ case 90:
+ {
+ return this.parseDo(this.startNode(), false);
+ }
+ case 56:
+ case 31:
+ {
+ this.readRegexp();
+ return this.parseRegExpLiteral(this.state.value);
+ }
+ case 134:
+ return this.parseNumericLiteral(this.state.value);
+ case 135:
+ return this.parseBigIntLiteral(this.state.value);
+ case 136:
+ return this.parseDecimalLiteral(this.state.value);
+ case 133:
+ return this.parseStringLiteral(this.state.value);
+ case 84:
+ return this.parseNullLiteral();
+ case 85:
+ return this.parseBooleanLiteral(true);
+ case 86:
+ return this.parseBooleanLiteral(false);
+ case 10:
+ {
+ const canBeArrow = this.state.potentialArrowAt === this.state.start;
+ return this.parseParenAndDistinguishExpression(canBeArrow);
+ }
+ case 2:
+ case 1:
+ {
+ return this.parseArrayLike(this.state.type === 2 ? 4 : 3, false, true);
+ }
+ case 0:
+ {
+ return this.parseArrayLike(3, true, false, refExpressionErrors);
+ }
+ case 6:
+ case 7:
+ {
+ return this.parseObjectLike(this.state.type === 6 ? 9 : 8, false, true);
+ }
+ case 5:
+ {
+ return this.parseObjectLike(8, false, false, refExpressionErrors);
+ }
+ case 68:
+ return this.parseFunctionOrFunctionSent();
+ case 26:
+ decorators = this.parseDecorators();
+ case 80:
+ return this.parseClass(this.maybeTakeDecorators(decorators, this.startNode()), false);
+ case 77:
+ return this.parseNewOrNewTarget();
+ case 25:
+ case 24:
+ return this.parseTemplate(false);
+ case 15:
+ {
+ node = this.startNode();
+ this.next();
+ node.object = null;
+ const callee = node.callee = this.parseNoCallExpr();
+ if (callee.type === "MemberExpression") {
+ return this.finishNode(node, "BindExpression");
+ } else {
+ throw this.raise(Errors.UnsupportedBind, {
+ at: callee
+ });
+ }
+ }
+ case 138:
+ {
+ this.raise(Errors.PrivateInExpectedIn, {
+ at: this.state.startLoc,
+ identifierName: this.state.value
+ });
+ return this.parsePrivateName();
+ }
+ case 33:
+ {
+ return this.parseTopicReferenceThenEqualsSign(54, "%");
+ }
+ case 32:
+ {
+ return this.parseTopicReferenceThenEqualsSign(44, "^");
+ }
+ case 37:
+ case 38:
+ {
+ return this.parseTopicReference("hack");
+ }
+ case 44:
+ case 54:
+ case 27:
+ {
+ const pipeProposal = this.getPluginOption("pipelineOperator", "proposal");
+ if (pipeProposal) {
+ return this.parseTopicReference(pipeProposal);
+ }
+ this.unexpected();
+ break;
+ }
+ case 47:
+ {
+ const lookaheadCh = this.input.codePointAt(this.nextTokenStart());
+ if (isIdentifierStart(lookaheadCh) || lookaheadCh === 62) {
+ this.expectOnePlugin(["jsx", "flow", "typescript"]);
+ } else {
+ this.unexpected();
+ }
+ break;
+ }
+ default:
+ if (tokenIsIdentifier(type)) {
+ if (this.isContextual(127) && this.lookaheadInLineCharCode() === 123) {
+ return this.parseModuleExpression();
+ }
+ const canBeArrow = this.state.potentialArrowAt === this.state.start;
+ const containsEsc = this.state.containsEsc;
+ const id = this.parseIdentifier();
+ if (!containsEsc && id.name === "async" && !this.canInsertSemicolon()) {
+ const {
+ type
+ } = this.state;
+ if (type === 68) {
+ this.resetPreviousNodeTrailingComments(id);
+ this.next();
+ return this.parseAsyncFunctionExpression(this.startNodeAtNode(id));
+ } else if (tokenIsIdentifier(type)) {
+ if (this.lookaheadCharCode() === 61) {
+ return this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(id));
+ } else {
+ return id;
+ }
+ } else if (type === 90) {
+ this.resetPreviousNodeTrailingComments(id);
+ return this.parseDo(this.startNodeAtNode(id), true);
+ }
+ }
+ if (canBeArrow && this.match(19) && !this.canInsertSemicolon()) {
+ this.next();
+ return this.parseArrowExpression(this.startNodeAtNode(id), [id], false);
+ }
+ return id;
+ } else {
+ this.unexpected();
+ }
+ }
+ }
+ parseTopicReferenceThenEqualsSign(topicTokenType, topicTokenValue) {
+ const pipeProposal = this.getPluginOption("pipelineOperator", "proposal");
+ if (pipeProposal) {
+ this.state.type = topicTokenType;
+ this.state.value = topicTokenValue;
+ this.state.pos--;
+ this.state.end--;
+ this.state.endLoc = createPositionWithColumnOffset(this.state.endLoc, -1);
+ return this.parseTopicReference(pipeProposal);
+ } else {
+ this.unexpected();
+ }
+ }
+ parseTopicReference(pipeProposal) {
+ const node = this.startNode();
+ const startLoc = this.state.startLoc;
+ const tokenType = this.state.type;
+ this.next();
+ return this.finishTopicReference(node, startLoc, pipeProposal, tokenType);
+ }
+ finishTopicReference(node, startLoc, pipeProposal, tokenType) {
+ if (this.testTopicReferenceConfiguration(pipeProposal, startLoc, tokenType)) {
+ const nodeType = pipeProposal === "smart" ? "PipelinePrimaryTopicReference" : "TopicReference";
+ if (!this.topicReferenceIsAllowedInCurrentContext()) {
+ this.raise(pipeProposal === "smart" ? Errors.PrimaryTopicNotAllowed : Errors.PipeTopicUnbound, {
+ at: startLoc
+ });
+ }
+ this.registerTopicReference();
+ return this.finishNode(node, nodeType);
+ } else {
+ throw this.raise(Errors.PipeTopicUnconfiguredToken, {
+ at: startLoc,
+ token: tokenLabelName(tokenType)
+ });
+ }
+ }
+ testTopicReferenceConfiguration(pipeProposal, startLoc, tokenType) {
+ switch (pipeProposal) {
+ case "hack":
+ {
+ return this.hasPlugin(["pipelineOperator", {
+ topicToken: tokenLabelName(tokenType)
+ }]);
+ }
+ case "smart":
+ return tokenType === 27;
+ default:
+ throw this.raise(Errors.PipeTopicRequiresHackPipes, {
+ at: startLoc
+ });
+ }
+ }
+ parseAsyncArrowUnaryFunction(node) {
+ this.prodParam.enter(functionFlags(true, this.prodParam.hasYield));
+ const params = [this.parseIdentifier()];
+ this.prodParam.exit();
+ if (this.hasPrecedingLineBreak()) {
+ this.raise(Errors.LineTerminatorBeforeArrow, {
+ at: this.state.curPosition()
+ });
+ }
+ this.expect(19);
+ return this.parseArrowExpression(node, params, true);
+ }
+ parseDo(node, isAsync) {
+ this.expectPlugin("doExpressions");
+ if (isAsync) {
+ this.expectPlugin("asyncDoExpressions");
+ }
+ node.async = isAsync;
+ this.next();
+ const oldLabels = this.state.labels;
+ this.state.labels = [];
+ if (isAsync) {
+ this.prodParam.enter(2);
+ node.body = this.parseBlock();
+ this.prodParam.exit();
+ } else {
+ node.body = this.parseBlock();
+ }
+ this.state.labels = oldLabels;
+ return this.finishNode(node, "DoExpression");
+ }
+ parseSuper() {
+ const node = this.startNode();
+ this.next();
+ if (this.match(10) && !this.scope.allowDirectSuper && !this.options.allowSuperOutsideMethod) {
+ this.raise(Errors.SuperNotAllowed, {
+ at: node
+ });
+ } else if (!this.scope.allowSuper && !this.options.allowSuperOutsideMethod) {
+ this.raise(Errors.UnexpectedSuper, {
+ at: node
+ });
+ }
+ if (!this.match(10) && !this.match(0) && !this.match(16)) {
+ this.raise(Errors.UnsupportedSuper, {
+ at: node
+ });
+ }
+ return this.finishNode(node, "Super");
+ }
+ parsePrivateName() {
+ const node = this.startNode();
+ const id = this.startNodeAt(createPositionWithColumnOffset(this.state.startLoc, 1));
+ const name = this.state.value;
+ this.next();
+ node.id = this.createIdentifier(id, name);
+ return this.finishNode(node, "PrivateName");
+ }
+ parseFunctionOrFunctionSent() {
+ const node = this.startNode();
+ this.next();
+ if (this.prodParam.hasYield && this.match(16)) {
+ const meta = this.createIdentifier(this.startNodeAtNode(node), "function");
+ this.next();
+ if (this.match(103)) {
+ this.expectPlugin("functionSent");
+ } else if (!this.hasPlugin("functionSent")) {
+ this.unexpected();
+ }
+ return this.parseMetaProperty(node, meta, "sent");
+ }
+ return this.parseFunction(node);
+ }
+ parseMetaProperty(node, meta, propertyName) {
+ node.meta = meta;
+ const containsEsc = this.state.containsEsc;
+ node.property = this.parseIdentifier(true);
+ if (node.property.name !== propertyName || containsEsc) {
+ this.raise(Errors.UnsupportedMetaProperty, {
+ at: node.property,
+ target: meta.name,
+ onlyValidPropertyName: propertyName
+ });
+ }
+ return this.finishNode(node, "MetaProperty");
+ }
+ parseImportMetaProperty(node) {
+ const id = this.createIdentifier(this.startNodeAtNode(node), "import");
+ this.next();
+ if (this.isContextual(101)) {
+ if (!this.inModule) {
+ this.raise(Errors.ImportMetaOutsideModule, {
+ at: id
+ });
+ }
+ this.sawUnambiguousESM = true;
+ } else if (this.isContextual(105) || this.isContextual(97)) {
+ const isSource = this.isContextual(105);
+ if (!isSource) this.unexpected();
+ this.expectPlugin(isSource ? "sourcePhaseImports" : "deferredImportEvaluation");
+ if (!this.options.createImportExpressions) {
+ throw this.raise(Errors.DynamicImportPhaseRequiresImportExpressions, {
+ at: this.state.startLoc,
+ phase: this.state.value
+ });
+ }
+ this.next();
+ node.phase = isSource ? "source" : "defer";
+ return this.parseImportCall(node);
+ }
+ return this.parseMetaProperty(node, id, "meta");
+ }
+ parseLiteralAtNode(value, type, node) {
+ this.addExtra(node, "rawValue", value);
+ this.addExtra(node, "raw", this.input.slice(node.start, this.state.end));
+ node.value = value;
+ this.next();
+ return this.finishNode(node, type);
+ }
+ parseLiteral(value, type) {
+ const node = this.startNode();
+ return this.parseLiteralAtNode(value, type, node);
+ }
+ parseStringLiteral(value) {
+ return this.parseLiteral(value, "StringLiteral");
+ }
+ parseNumericLiteral(value) {
+ return this.parseLiteral(value, "NumericLiteral");
+ }
+ parseBigIntLiteral(value) {
+ return this.parseLiteral(value, "BigIntLiteral");
+ }
+ parseDecimalLiteral(value) {
+ return this.parseLiteral(value, "DecimalLiteral");
+ }
+ parseRegExpLiteral(value) {
+ const node = this.parseLiteral(value.value, "RegExpLiteral");
+ node.pattern = value.pattern;
+ node.flags = value.flags;
+ return node;
+ }
+ parseBooleanLiteral(value) {
+ const node = this.startNode();
+ node.value = value;
+ this.next();
+ return this.finishNode(node, "BooleanLiteral");
+ }
+ parseNullLiteral() {
+ const node = this.startNode();
+ this.next();
+ return this.finishNode(node, "NullLiteral");
+ }
+ parseParenAndDistinguishExpression(canBeArrow) {
+ const startLoc = this.state.startLoc;
+ let val;
+ this.next();
+ this.expressionScope.enter(newArrowHeadScope());
+ const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;
+ const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;
+ this.state.maybeInArrowParameters = true;
+ this.state.inFSharpPipelineDirectBody = false;
+ const innerStartLoc = this.state.startLoc;
+ const exprList = [];
+ const refExpressionErrors = new ExpressionErrors();
+ let first = true;
+ let spreadStartLoc;
+ let optionalCommaStartLoc;
+ while (!this.match(11)) {
+ if (first) {
+ first = false;
+ } else {
+ this.expect(12, refExpressionErrors.optionalParametersLoc === null ? null : refExpressionErrors.optionalParametersLoc);
+ if (this.match(11)) {
+ optionalCommaStartLoc = this.state.startLoc;
+ break;
+ }
+ }
+ if (this.match(21)) {
+ const spreadNodeStartLoc = this.state.startLoc;
+ spreadStartLoc = this.state.startLoc;
+ exprList.push(this.parseParenItem(this.parseRestBinding(), spreadNodeStartLoc));
+ if (!this.checkCommaAfterRest(41)) {
+ break;
+ }
+ } else {
+ exprList.push(this.parseMaybeAssignAllowIn(refExpressionErrors, this.parseParenItem));
+ }
+ }
+ const innerEndLoc = this.state.lastTokEndLoc;
+ this.expect(11);
+ this.state.maybeInArrowParameters = oldMaybeInArrowParameters;
+ this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;
+ let arrowNode = this.startNodeAt(startLoc);
+ if (canBeArrow && this.shouldParseArrow(exprList) && (arrowNode = this.parseArrow(arrowNode))) {
+ this.checkDestructuringPrivate(refExpressionErrors);
+ this.expressionScope.validateAsPattern();
+ this.expressionScope.exit();
+ this.parseArrowExpression(arrowNode, exprList, false);
+ return arrowNode;
+ }
+ this.expressionScope.exit();
+ if (!exprList.length) {
+ this.unexpected(this.state.lastTokStartLoc);
+ }
+ if (optionalCommaStartLoc) this.unexpected(optionalCommaStartLoc);
+ if (spreadStartLoc) this.unexpected(spreadStartLoc);
+ this.checkExpressionErrors(refExpressionErrors, true);
+ this.toReferencedListDeep(exprList, true);
+ if (exprList.length > 1) {
+ val = this.startNodeAt(innerStartLoc);
+ val.expressions = exprList;
+ this.finishNode(val, "SequenceExpression");
+ this.resetEndLocation(val, innerEndLoc);
+ } else {
+ val = exprList[0];
+ }
+ return this.wrapParenthesis(startLoc, val);
+ }
+ wrapParenthesis(startLoc, expression) {
+ if (!this.options.createParenthesizedExpressions) {
+ this.addExtra(expression, "parenthesized", true);
+ this.addExtra(expression, "parenStart", startLoc.index);
+ this.takeSurroundingComments(expression, startLoc.index, this.state.lastTokEndLoc.index);
+ return expression;
+ }
+ const parenExpression = this.startNodeAt(startLoc);
+ parenExpression.expression = expression;
+ return this.finishNode(parenExpression, "ParenthesizedExpression");
+ }
+ shouldParseArrow(params) {
+ return !this.canInsertSemicolon();
+ }
+ parseArrow(node) {
+ if (this.eat(19)) {
+ return node;
+ }
+ }
+ parseParenItem(node, startLoc) {
+ return node;
+ }
+ parseNewOrNewTarget() {
+ const node = this.startNode();
+ this.next();
+ if (this.match(16)) {
+ const meta = this.createIdentifier(this.startNodeAtNode(node), "new");
+ this.next();
+ const metaProp = this.parseMetaProperty(node, meta, "target");
+ if (!this.scope.inNonArrowFunction && !this.scope.inClass && !this.options.allowNewTargetOutsideFunction) {
+ this.raise(Errors.UnexpectedNewTarget, {
+ at: metaProp
+ });
+ }
+ return metaProp;
+ }
+ return this.parseNew(node);
+ }
+ parseNew(node) {
+ this.parseNewCallee(node);
+ if (this.eat(10)) {
+ const args = this.parseExprList(11);
+ this.toReferencedList(args);
+ node.arguments = args;
+ } else {
+ node.arguments = [];
+ }
+ return this.finishNode(node, "NewExpression");
+ }
+ parseNewCallee(node) {
+ const isImport = this.match(83);
+ const callee = this.parseNoCallExpr();
+ node.callee = callee;
+ if (isImport && (callee.type === "Import" || callee.type === "ImportExpression")) {
+ this.raise(Errors.ImportCallNotNewExpression, {
+ at: callee
+ });
+ }
+ }
+ parseTemplateElement(isTagged) {
+ const {
+ start,
+ startLoc,
+ end,
+ value
+ } = this.state;
+ const elemStart = start + 1;
+ const elem = this.startNodeAt(createPositionWithColumnOffset(startLoc, 1));
+ if (value === null) {
+ if (!isTagged) {
+ this.raise(Errors.InvalidEscapeSequenceTemplate, {
+ at: createPositionWithColumnOffset(this.state.firstInvalidTemplateEscapePos, 1)
+ });
+ }
+ }
+ const isTail = this.match(24);
+ const endOffset = isTail ? -1 : -2;
+ const elemEnd = end + endOffset;
+ elem.value = {
+ raw: this.input.slice(elemStart, elemEnd).replace(/\r\n?/g, "\n"),
+ cooked: value === null ? null : value.slice(1, endOffset)
+ };
+ elem.tail = isTail;
+ this.next();
+ const finishedNode = this.finishNode(elem, "TemplateElement");
+ this.resetEndLocation(finishedNode, createPositionWithColumnOffset(this.state.lastTokEndLoc, endOffset));
+ return finishedNode;
+ }
+ parseTemplate(isTagged) {
+ const node = this.startNode();
+ node.expressions = [];
+ let curElt = this.parseTemplateElement(isTagged);
+ node.quasis = [curElt];
+ while (!curElt.tail) {
+ node.expressions.push(this.parseTemplateSubstitution());
+ this.readTemplateContinuation();
+ node.quasis.push(curElt = this.parseTemplateElement(isTagged));
+ }
+ return this.finishNode(node, "TemplateLiteral");
+ }
+ parseTemplateSubstitution() {
+ return this.parseExpression();
+ }
+ parseObjectLike(close, isPattern, isRecord, refExpressionErrors) {
+ if (isRecord) {
+ this.expectPlugin("recordAndTuple");
+ }
+ const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;
+ this.state.inFSharpPipelineDirectBody = false;
+ const propHash = Object.create(null);
+ let first = true;
+ const node = this.startNode();
+ node.properties = [];
+ this.next();
+ while (!this.match(close)) {
+ if (first) {
+ first = false;
+ } else {
+ this.expect(12);
+ if (this.match(close)) {
+ this.addTrailingCommaExtraToNode(node);
+ break;
+ }
+ }
+ let prop;
+ if (isPattern) {
+ prop = this.parseBindingProperty();
+ } else {
+ prop = this.parsePropertyDefinition(refExpressionErrors);
+ this.checkProto(prop, isRecord, propHash, refExpressionErrors);
+ }
+ if (isRecord && !this.isObjectProperty(prop) && prop.type !== "SpreadElement") {
+ this.raise(Errors.InvalidRecordProperty, {
+ at: prop
+ });
+ }
+ if (prop.shorthand) {
+ this.addExtra(prop, "shorthand", true);
+ }
+ node.properties.push(prop);
+ }
+ this.next();
+ this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;
+ let type = "ObjectExpression";
+ if (isPattern) {
+ type = "ObjectPattern";
+ } else if (isRecord) {
+ type = "RecordExpression";
+ }
+ return this.finishNode(node, type);
+ }
+ addTrailingCommaExtraToNode(node) {
+ this.addExtra(node, "trailingComma", this.state.lastTokStart);
+ this.addExtra(node, "trailingCommaLoc", this.state.lastTokStartLoc, false);
+ }
+ maybeAsyncOrAccessorProp(prop) {
+ return !prop.computed && prop.key.type === "Identifier" && (this.isLiteralPropertyName() || this.match(0) || this.match(55));
+ }
+ parsePropertyDefinition(refExpressionErrors) {
+ let decorators = [];
+ if (this.match(26)) {
+ if (this.hasPlugin("decorators")) {
+ this.raise(Errors.UnsupportedPropertyDecorator, {
+ at: this.state.startLoc
+ });
+ }
+ while (this.match(26)) {
+ decorators.push(this.parseDecorator());
+ }
+ }
+ const prop = this.startNode();
+ let isAsync = false;
+ let isAccessor = false;
+ let startLoc;
+ if (this.match(21)) {
+ if (decorators.length) this.unexpected();
+ return this.parseSpread();
+ }
+ if (decorators.length) {
+ prop.decorators = decorators;
+ decorators = [];
+ }
+ prop.method = false;
+ if (refExpressionErrors) {
+ startLoc = this.state.startLoc;
+ }
+ let isGenerator = this.eat(55);
+ this.parsePropertyNamePrefixOperator(prop);
+ const containsEsc = this.state.containsEsc;
+ const key = this.parsePropertyName(prop, refExpressionErrors);
+ if (!isGenerator && !containsEsc && this.maybeAsyncOrAccessorProp(prop)) {
+ const keyName = key.name;
+ if (keyName === "async" && !this.hasPrecedingLineBreak()) {
+ isAsync = true;
+ this.resetPreviousNodeTrailingComments(key);
+ isGenerator = this.eat(55);
+ this.parsePropertyName(prop);
+ }
+ if (keyName === "get" || keyName === "set") {
+ isAccessor = true;
+ this.resetPreviousNodeTrailingComments(key);
+ prop.kind = keyName;
+ if (this.match(55)) {
+ isGenerator = true;
+ this.raise(Errors.AccessorIsGenerator, {
+ at: this.state.curPosition(),
+ kind: keyName
+ });
+ this.next();
+ }
+ this.parsePropertyName(prop);
+ }
+ }
+ return this.parseObjPropValue(prop, startLoc, isGenerator, isAsync, false, isAccessor, refExpressionErrors);
+ }
+ getGetterSetterExpectedParamCount(method) {
+ return method.kind === "get" ? 0 : 1;
+ }
+ getObjectOrClassMethodParams(method) {
+ return method.params;
+ }
+ checkGetterSetterParams(method) {
+ var _params;
+ const paramCount = this.getGetterSetterExpectedParamCount(method);
+ const params = this.getObjectOrClassMethodParams(method);
+ if (params.length !== paramCount) {
+ this.raise(method.kind === "get" ? Errors.BadGetterArity : Errors.BadSetterArity, {
+ at: method
+ });
+ }
+ if (method.kind === "set" && ((_params = params[params.length - 1]) == null ? void 0 : _params.type) === "RestElement") {
+ this.raise(Errors.BadSetterRestParameter, {
+ at: method
+ });
+ }
+ }
+ parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) {
+ if (isAccessor) {
+ const finishedProp = this.parseMethod(prop, isGenerator, false, false, false, "ObjectMethod");
+ this.checkGetterSetterParams(finishedProp);
+ return finishedProp;
+ }
+ if (isAsync || isGenerator || this.match(10)) {
+ if (isPattern) this.unexpected();
+ prop.kind = "method";
+ prop.method = true;
+ return this.parseMethod(prop, isGenerator, isAsync, false, false, "ObjectMethod");
+ }
+ }
+ parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors) {
+ prop.shorthand = false;
+ if (this.eat(14)) {
+ prop.value = isPattern ? this.parseMaybeDefault(this.state.startLoc) : this.parseMaybeAssignAllowIn(refExpressionErrors);
+ return this.finishNode(prop, "ObjectProperty");
+ }
+ if (!prop.computed && prop.key.type === "Identifier") {
+ this.checkReservedWord(prop.key.name, prop.key.loc.start, true, false);
+ if (isPattern) {
+ prop.value = this.parseMaybeDefault(startLoc, cloneIdentifier(prop.key));
+ } else if (this.match(29)) {
+ const shorthandAssignLoc = this.state.startLoc;
+ if (refExpressionErrors != null) {
+ if (refExpressionErrors.shorthandAssignLoc === null) {
+ refExpressionErrors.shorthandAssignLoc = shorthandAssignLoc;
+ }
+ } else {
+ this.raise(Errors.InvalidCoverInitializedName, {
+ at: shorthandAssignLoc
+ });
+ }
+ prop.value = this.parseMaybeDefault(startLoc, cloneIdentifier(prop.key));
+ } else {
+ prop.value = cloneIdentifier(prop.key);
+ }
+ prop.shorthand = true;
+ return this.finishNode(prop, "ObjectProperty");
+ }
+ }
+ parseObjPropValue(prop, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) {
+ const node = this.parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) || this.parseObjectProperty(prop, startLoc, isPattern, refExpressionErrors);
+ if (!node) this.unexpected();
+ return node;
+ }
+ parsePropertyName(prop, refExpressionErrors) {
+ if (this.eat(0)) {
+ prop.computed = true;
+ prop.key = this.parseMaybeAssignAllowIn();
+ this.expect(3);
+ } else {
+ const {
+ type,
+ value
+ } = this.state;
+ let key;
+ if (tokenIsKeywordOrIdentifier(type)) {
+ key = this.parseIdentifier(true);
+ } else {
+ switch (type) {
+ case 134:
+ key = this.parseNumericLiteral(value);
+ break;
+ case 133:
+ key = this.parseStringLiteral(value);
+ break;
+ case 135:
+ key = this.parseBigIntLiteral(value);
+ break;
+ case 136:
+ key = this.parseDecimalLiteral(value);
+ break;
+ case 138:
+ {
+ const privateKeyLoc = this.state.startLoc;
+ if (refExpressionErrors != null) {
+ if (refExpressionErrors.privateKeyLoc === null) {
+ refExpressionErrors.privateKeyLoc = privateKeyLoc;
+ }
+ } else {
+ this.raise(Errors.UnexpectedPrivateField, {
+ at: privateKeyLoc
+ });
+ }
+ key = this.parsePrivateName();
+ break;
+ }
+ default:
+ this.unexpected();
+ }
+ }
+ prop.key = key;
+ if (type !== 138) {
+ prop.computed = false;
+ }
+ }
+ return prop.key;
+ }
+ initFunction(node, isAsync) {
+ node.id = null;
+ node.generator = false;
+ node.async = isAsync;
+ }
+ parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) {
+ this.initFunction(node, isAsync);
+ node.generator = isGenerator;
+ this.scope.enter(2 | 16 | (inClassScope ? 64 : 0) | (allowDirectSuper ? 32 : 0));
+ this.prodParam.enter(functionFlags(isAsync, node.generator));
+ this.parseFunctionParams(node, isConstructor);
+ const finishedNode = this.parseFunctionBodyAndFinish(node, type, true);
+ this.prodParam.exit();
+ this.scope.exit();
+ return finishedNode;
+ }
+ parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) {
+ if (isTuple) {
+ this.expectPlugin("recordAndTuple");
+ }
+ const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;
+ this.state.inFSharpPipelineDirectBody = false;
+ const node = this.startNode();
+ this.next();
+ node.elements = this.parseExprList(close, !isTuple, refExpressionErrors, node);
+ this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;
+ return this.finishNode(node, isTuple ? "TupleExpression" : "ArrayExpression");
+ }
+ parseArrowExpression(node, params, isAsync, trailingCommaLoc) {
+ this.scope.enter(2 | 4);
+ let flags = functionFlags(isAsync, false);
+ if (!this.match(5) && this.prodParam.hasIn) {
+ flags |= 8;
+ }
+ this.prodParam.enter(flags);
+ this.initFunction(node, isAsync);
+ const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;
+ if (params) {
+ this.state.maybeInArrowParameters = true;
+ this.setArrowFunctionParameters(node, params, trailingCommaLoc);
+ }
+ this.state.maybeInArrowParameters = false;
+ this.parseFunctionBody(node, true);
+ this.prodParam.exit();
+ this.scope.exit();
+ this.state.maybeInArrowParameters = oldMaybeInArrowParameters;
+ return this.finishNode(node, "ArrowFunctionExpression");
+ }
+ setArrowFunctionParameters(node, params, trailingCommaLoc) {
+ this.toAssignableList(params, trailingCommaLoc, false);
+ node.params = params;
+ }
+ parseFunctionBodyAndFinish(node, type, isMethod = false) {
+ this.parseFunctionBody(node, false, isMethod);
+ return this.finishNode(node, type);
+ }
+ parseFunctionBody(node, allowExpression, isMethod = false) {
+ const isExpression = allowExpression && !this.match(5);
+ this.expressionScope.enter(newExpressionScope());
+ if (isExpression) {
+ node.body = this.parseMaybeAssign();
+ this.checkParams(node, false, allowExpression, false);
+ } else {
+ const oldStrict = this.state.strict;
+ const oldLabels = this.state.labels;
+ this.state.labels = [];
+ this.prodParam.enter(this.prodParam.currentFlags() | 4);
+ node.body = this.parseBlock(true, false, hasStrictModeDirective => {
+ const nonSimple = !this.isSimpleParamList(node.params);
+ if (hasStrictModeDirective && nonSimple) {
+ this.raise(Errors.IllegalLanguageModeDirective, {
+ at: (node.kind === "method" || node.kind === "constructor") && !!node.key ? node.key.loc.end : node
+ });
+ }
+ const strictModeChanged = !oldStrict && this.state.strict;
+ this.checkParams(node, !this.state.strict && !allowExpression && !isMethod && !nonSimple, allowExpression, strictModeChanged);
+ if (this.state.strict && node.id) {
+ this.checkIdentifier(node.id, 65, strictModeChanged);
+ }
+ });
+ this.prodParam.exit();
+ this.state.labels = oldLabels;
+ }
+ this.expressionScope.exit();
+ }
+ isSimpleParameter(node) {
+ return node.type === "Identifier";
+ }
+ isSimpleParamList(params) {
+ for (let i = 0, len = params.length; i < len; i++) {
+ if (!this.isSimpleParameter(params[i])) return false;
+ }
+ return true;
+ }
+ checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged = true) {
+ const checkClashes = !allowDuplicates && new Set();
+ const formalParameters = {
+ type: "FormalParameters"
+ };
+ for (const param of node.params) {
+ this.checkLVal(param, {
+ in: formalParameters,
+ binding: 5,
+ checkClashes,
+ strictModeChanged
+ });
+ }
+ }
+ parseExprList(close, allowEmpty, refExpressionErrors, nodeForExtra) {
+ const elts = [];
+ let first = true;
+ while (!this.eat(close)) {
+ if (first) {
+ first = false;
+ } else {
+ this.expect(12);
+ if (this.match(close)) {
+ if (nodeForExtra) {
+ this.addTrailingCommaExtraToNode(nodeForExtra);
+ }
+ this.next();
+ break;
+ }
+ }
+ elts.push(this.parseExprListItem(allowEmpty, refExpressionErrors));
+ }
+ return elts;
+ }
+ parseExprListItem(allowEmpty, refExpressionErrors, allowPlaceholder) {
+ let elt;
+ if (this.match(12)) {
+ if (!allowEmpty) {
+ this.raise(Errors.UnexpectedToken, {
+ at: this.state.curPosition(),
+ unexpected: ","
+ });
+ }
+ elt = null;
+ } else if (this.match(21)) {
+ const spreadNodeStartLoc = this.state.startLoc;
+ elt = this.parseParenItem(this.parseSpread(refExpressionErrors), spreadNodeStartLoc);
+ } else if (this.match(17)) {
+ this.expectPlugin("partialApplication");
+ if (!allowPlaceholder) {
+ this.raise(Errors.UnexpectedArgumentPlaceholder, {
+ at: this.state.startLoc
+ });
+ }
+ const node = this.startNode();
+ this.next();
+ elt = this.finishNode(node, "ArgumentPlaceholder");
+ } else {
+ elt = this.parseMaybeAssignAllowIn(refExpressionErrors, this.parseParenItem);
+ }
+ return elt;
+ }
+ parseIdentifier(liberal) {
+ const node = this.startNode();
+ const name = this.parseIdentifierName(liberal);
+ return this.createIdentifier(node, name);
+ }
+ createIdentifier(node, name) {
+ node.name = name;
+ node.loc.identifierName = name;
+ return this.finishNode(node, "Identifier");
+ }
+ parseIdentifierName(liberal) {
+ let name;
+ const {
+ startLoc,
+ type
+ } = this.state;
+ if (tokenIsKeywordOrIdentifier(type)) {
+ name = this.state.value;
+ } else {
+ this.unexpected();
+ }
+ const tokenIsKeyword = tokenKeywordOrIdentifierIsKeyword(type);
+ if (liberal) {
+ if (tokenIsKeyword) {
+ this.replaceToken(132);
+ }
+ } else {
+ this.checkReservedWord(name, startLoc, tokenIsKeyword, false);
+ }
+ this.next();
+ return name;
+ }
+ checkReservedWord(word, startLoc, checkKeywords, isBinding) {
+ if (word.length > 10) {
+ return;
+ }
+ if (!canBeReservedWord(word)) {
+ return;
+ }
+ if (checkKeywords && isKeyword(word)) {
+ this.raise(Errors.UnexpectedKeyword, {
+ at: startLoc,
+ keyword: word
+ });
+ return;
+ }
+ const reservedTest = !this.state.strict ? isReservedWord : isBinding ? isStrictBindReservedWord : isStrictReservedWord;
+ if (reservedTest(word, this.inModule)) {
+ this.raise(Errors.UnexpectedReservedWord, {
+ at: startLoc,
+ reservedWord: word
+ });
+ return;
+ } else if (word === "yield") {
+ if (this.prodParam.hasYield) {
+ this.raise(Errors.YieldBindingIdentifier, {
+ at: startLoc
+ });
+ return;
+ }
+ } else if (word === "await") {
+ if (this.prodParam.hasAwait) {
+ this.raise(Errors.AwaitBindingIdentifier, {
+ at: startLoc
+ });
+ return;
+ }
+ if (this.scope.inStaticBlock) {
+ this.raise(Errors.AwaitBindingIdentifierInStaticBlock, {
+ at: startLoc
+ });
+ return;
+ }
+ this.expressionScope.recordAsyncArrowParametersError({
+ at: startLoc
+ });
+ } else if (word === "arguments") {
+ if (this.scope.inClassAndNotInNonArrowFunction) {
+ this.raise(Errors.ArgumentsInClass, {
+ at: startLoc
+ });
+ return;
+ }
+ }
+ }
+ isAwaitAllowed() {
+ if (this.prodParam.hasAwait) return true;
+ if (this.options.allowAwaitOutsideFunction && !this.scope.inFunction) {
+ return true;
+ }
+ return false;
+ }
+ parseAwait(startLoc) {
+ const node = this.startNodeAt(startLoc);
+ this.expressionScope.recordParameterInitializerError(Errors.AwaitExpressionFormalParameter, {
+ at: node
+ });
+ if (this.eat(55)) {
+ this.raise(Errors.ObsoleteAwaitStar, {
+ at: node
+ });
+ }
+ if (!this.scope.inFunction && !this.options.allowAwaitOutsideFunction) {
+ if (this.isAmbiguousAwait()) {
+ this.ambiguousScriptDifferentAst = true;
+ } else {
+ this.sawUnambiguousESM = true;
+ }
+ }
+ if (!this.state.soloAwait) {
+ node.argument = this.parseMaybeUnary(null, true);
+ }
+ return this.finishNode(node, "AwaitExpression");
+ }
+ isAmbiguousAwait() {
+ if (this.hasPrecedingLineBreak()) return true;
+ const {
+ type
+ } = this.state;
+ return type === 53 || type === 10 || type === 0 || tokenIsTemplate(type) || type === 102 && !this.state.containsEsc || type === 137 || type === 56 || this.hasPlugin("v8intrinsic") && type === 54;
+ }
+ parseYield() {
+ const node = this.startNode();
+ this.expressionScope.recordParameterInitializerError(Errors.YieldInParameter, {
+ at: node
+ });
+ this.next();
+ let delegating = false;
+ let argument = null;
+ if (!this.hasPrecedingLineBreak()) {
+ delegating = this.eat(55);
+ switch (this.state.type) {
+ case 13:
+ case 139:
+ case 8:
+ case 11:
+ case 3:
+ case 9:
+ case 14:
+ case 12:
+ if (!delegating) break;
+ default:
+ argument = this.parseMaybeAssign();
+ }
+ }
+ node.delegate = delegating;
+ node.argument = argument;
+ return this.finishNode(node, "YieldExpression");
+ }
+ parseImportCall(node) {
+ this.next();
+ node.source = this.parseMaybeAssignAllowIn();
+ if (this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions")) {
+ node.options = null;
+ }
+ if (this.eat(12)) {
+ this.expectImportAttributesPlugin();
+ if (!this.match(11)) {
+ node.options = this.parseMaybeAssignAllowIn();
+ this.eat(12);
+ }
+ }
+ this.expect(11);
+ return this.finishNode(node, "ImportExpression");
+ }
+ checkPipelineAtInfixOperator(left, leftStartLoc) {
+ if (this.hasPlugin(["pipelineOperator", {
+ proposal: "smart"
+ }])) {
+ if (left.type === "SequenceExpression") {
+ this.raise(Errors.PipelineHeadSequenceExpression, {
+ at: leftStartLoc
+ });
+ }
+ }
+ }
+ parseSmartPipelineBodyInStyle(childExpr, startLoc) {
+ if (this.isSimpleReference(childExpr)) {
+ const bodyNode = this.startNodeAt(startLoc);
+ bodyNode.callee = childExpr;
+ return this.finishNode(bodyNode, "PipelineBareFunction");
+ } else {
+ const bodyNode = this.startNodeAt(startLoc);
+ this.checkSmartPipeTopicBodyEarlyErrors(startLoc);
+ bodyNode.expression = childExpr;
+ return this.finishNode(bodyNode, "PipelineTopicExpression");
+ }
+ }
+ isSimpleReference(expression) {
+ switch (expression.type) {
+ case "MemberExpression":
+ return !expression.computed && this.isSimpleReference(expression.object);
+ case "Identifier":
+ return true;
+ default:
+ return false;
+ }
+ }
+ checkSmartPipeTopicBodyEarlyErrors(startLoc) {
+ if (this.match(19)) {
+ throw this.raise(Errors.PipelineBodyNoArrow, {
+ at: this.state.startLoc
+ });
+ }
+ if (!this.topicReferenceWasUsedInCurrentContext()) {
+ this.raise(Errors.PipelineTopicUnused, {
+ at: startLoc
+ });
+ }
+ }
+ withTopicBindingContext(callback) {
+ const outerContextTopicState = this.state.topicContext;
+ this.state.topicContext = {
+ maxNumOfResolvableTopics: 1,
+ maxTopicIndex: null
+ };
+ try {
+ return callback();
+ } finally {
+ this.state.topicContext = outerContextTopicState;
+ }
+ }
+ withSmartMixTopicForbiddingContext(callback) {
+ if (this.hasPlugin(["pipelineOperator", {
+ proposal: "smart"
+ }])) {
+ const outerContextTopicState = this.state.topicContext;
+ this.state.topicContext = {
+ maxNumOfResolvableTopics: 0,
+ maxTopicIndex: null
+ };
+ try {
+ return callback();
+ } finally {
+ this.state.topicContext = outerContextTopicState;
+ }
+ } else {
+ return callback();
+ }
+ }
+ withSoloAwaitPermittingContext(callback) {
+ const outerContextSoloAwaitState = this.state.soloAwait;
+ this.state.soloAwait = true;
+ try {
+ return callback();
+ } finally {
+ this.state.soloAwait = outerContextSoloAwaitState;
+ }
+ }
+ allowInAnd(callback) {
+ const flags = this.prodParam.currentFlags();
+ const prodParamToSet = 8 & ~flags;
+ if (prodParamToSet) {
+ this.prodParam.enter(flags | 8);
+ try {
+ return callback();
+ } finally {
+ this.prodParam.exit();
+ }
+ }
+ return callback();
+ }
+ disallowInAnd(callback) {
+ const flags = this.prodParam.currentFlags();
+ const prodParamToClear = 8 & flags;
+ if (prodParamToClear) {
+ this.prodParam.enter(flags & ~8);
+ try {
+ return callback();
+ } finally {
+ this.prodParam.exit();
+ }
+ }
+ return callback();
+ }
+ registerTopicReference() {
+ this.state.topicContext.maxTopicIndex = 0;
+ }
+ topicReferenceIsAllowedInCurrentContext() {
+ return this.state.topicContext.maxNumOfResolvableTopics >= 1;
+ }
+ topicReferenceWasUsedInCurrentContext() {
+ return this.state.topicContext.maxTopicIndex != null && this.state.topicContext.maxTopicIndex >= 0;
+ }
+ parseFSharpPipelineBody(prec) {
+ const startLoc = this.state.startLoc;
+ this.state.potentialArrowAt = this.state.start;
+ const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;
+ this.state.inFSharpPipelineDirectBody = true;
+ const ret = this.parseExprOp(this.parseMaybeUnaryOrPrivate(), startLoc, prec);
+ this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;
+ return ret;
+ }
+ parseModuleExpression() {
+ this.expectPlugin("moduleBlocks");
+ const node = this.startNode();
+ this.next();
+ if (!this.match(5)) {
+ this.unexpected(null, 5);
+ }
+ const program = this.startNodeAt(this.state.endLoc);
+ this.next();
+ const revertScopes = this.initializeScopes(true);
+ this.enterInitialScopes();
+ try {
+ node.body = this.parseProgram(program, 8, "module");
+ } finally {
+ revertScopes();
+ }
+ return this.finishNode(node, "ModuleExpression");
+ }
+ parsePropertyNamePrefixOperator(prop) {}
+}
+const loopLabel = {
+ kind: "loop"
+ },
+ switchLabel = {
+ kind: "switch"
+ };
+const loneSurrogate = /[\uD800-\uDFFF]/u;
+const keywordRelationalOperator = /in(?:stanceof)?/y;
+function babel7CompatTokens(tokens, input) {
+ for (let i = 0; i < tokens.length; i++) {
+ const token = tokens[i];
+ const {
+ type
+ } = token;
+ if (typeof type === "number") {
+ {
+ if (type === 138) {
+ const {
+ loc,
+ start,
+ value,
+ end
+ } = token;
+ const hashEndPos = start + 1;
+ const hashEndLoc = createPositionWithColumnOffset(loc.start, 1);
+ tokens.splice(i, 1, new Token({
+ type: getExportedToken(27),
+ value: "#",
+ start: start,
+ end: hashEndPos,
+ startLoc: loc.start,
+ endLoc: hashEndLoc
+ }), new Token({
+ type: getExportedToken(132),
+ value: value,
+ start: hashEndPos,
+ end: end,
+ startLoc: hashEndLoc,
+ endLoc: loc.end
+ }));
+ i++;
+ continue;
+ }
+ if (tokenIsTemplate(type)) {
+ const {
+ loc,
+ start,
+ value,
+ end
+ } = token;
+ const backquoteEnd = start + 1;
+ const backquoteEndLoc = createPositionWithColumnOffset(loc.start, 1);
+ let startToken;
+ if (input.charCodeAt(start) === 96) {
+ startToken = new Token({
+ type: getExportedToken(22),
+ value: "`",
+ start: start,
+ end: backquoteEnd,
+ startLoc: loc.start,
+ endLoc: backquoteEndLoc
+ });
+ } else {
+ startToken = new Token({
+ type: getExportedToken(8),
+ value: "}",
+ start: start,
+ end: backquoteEnd,
+ startLoc: loc.start,
+ endLoc: backquoteEndLoc
+ });
+ }
+ let templateValue, templateElementEnd, templateElementEndLoc, endToken;
+ if (type === 24) {
+ templateElementEnd = end - 1;
+ templateElementEndLoc = createPositionWithColumnOffset(loc.end, -1);
+ templateValue = value === null ? null : value.slice(1, -1);
+ endToken = new Token({
+ type: getExportedToken(22),
+ value: "`",
+ start: templateElementEnd,
+ end: end,
+ startLoc: templateElementEndLoc,
+ endLoc: loc.end
+ });
+ } else {
+ templateElementEnd = end - 2;
+ templateElementEndLoc = createPositionWithColumnOffset(loc.end, -2);
+ templateValue = value === null ? null : value.slice(1, -2);
+ endToken = new Token({
+ type: getExportedToken(23),
+ value: "${",
+ start: templateElementEnd,
+ end: end,
+ startLoc: templateElementEndLoc,
+ endLoc: loc.end
+ });
+ }
+ tokens.splice(i, 1, startToken, new Token({
+ type: getExportedToken(20),
+ value: templateValue,
+ start: backquoteEnd,
+ end: templateElementEnd,
+ startLoc: backquoteEndLoc,
+ endLoc: templateElementEndLoc
+ }), endToken);
+ i += 2;
+ continue;
+ }
+ }
+ token.type = getExportedToken(type);
+ }
+ }
+ return tokens;
+}
+class StatementParser extends ExpressionParser {
+ parseTopLevel(file, program) {
+ file.program = this.parseProgram(program);
+ file.comments = this.state.comments;
+ if (this.options.tokens) {
+ file.tokens = babel7CompatTokens(this.tokens, this.input);
+ }
+ return this.finishNode(file, "File");
+ }
+ parseProgram(program, end = 139, sourceType = this.options.sourceType) {
+ program.sourceType = sourceType;
+ program.interpreter = this.parseInterpreterDirective();
+ this.parseBlockBody(program, true, true, end);
+ if (this.inModule && !this.options.allowUndeclaredExports && this.scope.undefinedExports.size > 0) {
+ for (const [localName, at] of Array.from(this.scope.undefinedExports)) {
+ this.raise(Errors.ModuleExportUndefined, {
+ at,
+ localName
+ });
+ }
+ }
+ let finishedProgram;
+ if (end === 139) {
+ finishedProgram = this.finishNode(program, "Program");
+ } else {
+ finishedProgram = this.finishNodeAt(program, "Program", createPositionWithColumnOffset(this.state.startLoc, -1));
+ }
+ return finishedProgram;
+ }
+ stmtToDirective(stmt) {
+ const directive = stmt;
+ directive.type = "Directive";
+ directive.value = directive.expression;
+ delete directive.expression;
+ const directiveLiteral = directive.value;
+ const expressionValue = directiveLiteral.value;
+ const raw = this.input.slice(directiveLiteral.start, directiveLiteral.end);
+ const val = directiveLiteral.value = raw.slice(1, -1);
+ this.addExtra(directiveLiteral, "raw", raw);
+ this.addExtra(directiveLiteral, "rawValue", val);
+ this.addExtra(directiveLiteral, "expressionValue", expressionValue);
+ directiveLiteral.type = "DirectiveLiteral";
+ return directive;
+ }
+ parseInterpreterDirective() {
+ if (!this.match(28)) {
+ return null;
+ }
+ const node = this.startNode();
+ node.value = this.state.value;
+ this.next();
+ return this.finishNode(node, "InterpreterDirective");
+ }
+ isLet() {
+ if (!this.isContextual(100)) {
+ return false;
+ }
+ return this.hasFollowingBindingAtom();
+ }
+ chStartsBindingIdentifier(ch, pos) {
+ if (isIdentifierStart(ch)) {
+ keywordRelationalOperator.lastIndex = pos;
+ if (keywordRelationalOperator.test(this.input)) {
+ const endCh = this.codePointAtPos(keywordRelationalOperator.lastIndex);
+ if (!isIdentifierChar(endCh) && endCh !== 92) {
+ return false;
+ }
+ }
+ return true;
+ } else if (ch === 92) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ chStartsBindingPattern(ch) {
+ return ch === 91 || ch === 123;
+ }
+ hasFollowingBindingAtom() {
+ const next = this.nextTokenStart();
+ const nextCh = this.codePointAtPos(next);
+ return this.chStartsBindingPattern(nextCh) || this.chStartsBindingIdentifier(nextCh, next);
+ }
+ hasInLineFollowingBindingIdentifier() {
+ const next = this.nextTokenInLineStart();
+ const nextCh = this.codePointAtPos(next);
+ return this.chStartsBindingIdentifier(nextCh, next);
+ }
+ startsUsingForOf() {
+ const {
+ type,
+ containsEsc
+ } = this.lookahead();
+ if (type === 102 && !containsEsc) {
+ return false;
+ } else if (tokenIsIdentifier(type) && !this.hasFollowingLineBreak()) {
+ this.expectPlugin("explicitResourceManagement");
+ return true;
+ }
+ }
+ startsAwaitUsing() {
+ let next = this.nextTokenInLineStart();
+ if (this.isUnparsedContextual(next, "using")) {
+ next = this.nextTokenInLineStartSince(next + 5);
+ const nextCh = this.codePointAtPos(next);
+ if (this.chStartsBindingIdentifier(nextCh, next)) {
+ this.expectPlugin("explicitResourceManagement");
+ return true;
+ }
+ }
+ return false;
+ }
+ parseModuleItem() {
+ return this.parseStatementLike(1 | 2 | 4 | 8);
+ }
+ parseStatementListItem() {
+ return this.parseStatementLike(2 | 4 | (!this.options.annexB || this.state.strict ? 0 : 8));
+ }
+ parseStatementOrSloppyAnnexBFunctionDeclaration(allowLabeledFunction = false) {
+ let flags = 0;
+ if (this.options.annexB && !this.state.strict) {
+ flags |= 4;
+ if (allowLabeledFunction) {
+ flags |= 8;
+ }
+ }
+ return this.parseStatementLike(flags);
+ }
+ parseStatement() {
+ return this.parseStatementLike(0);
+ }
+ parseStatementLike(flags) {
+ let decorators = null;
+ if (this.match(26)) {
+ decorators = this.parseDecorators(true);
+ }
+ return this.parseStatementContent(flags, decorators);
+ }
+ parseStatementContent(flags, decorators) {
+ const starttype = this.state.type;
+ const node = this.startNode();
+ const allowDeclaration = !!(flags & 2);
+ const allowFunctionDeclaration = !!(flags & 4);
+ const topLevel = flags & 1;
+ switch (starttype) {
+ case 60:
+ return this.parseBreakContinueStatement(node, true);
+ case 63:
+ return this.parseBreakContinueStatement(node, false);
+ case 64:
+ return this.parseDebuggerStatement(node);
+ case 90:
+ return this.parseDoWhileStatement(node);
+ case 91:
+ return this.parseForStatement(node);
+ case 68:
+ if (this.lookaheadCharCode() === 46) break;
+ if (!allowFunctionDeclaration) {
+ this.raise(this.state.strict ? Errors.StrictFunction : this.options.annexB ? Errors.SloppyFunctionAnnexB : Errors.SloppyFunction, {
+ at: this.state.startLoc
+ });
+ }
+ return this.parseFunctionStatement(node, false, !allowDeclaration && allowFunctionDeclaration);
+ case 80:
+ if (!allowDeclaration) this.unexpected();
+ return this.parseClass(this.maybeTakeDecorators(decorators, node), true);
+ case 69:
+ return this.parseIfStatement(node);
+ case 70:
+ return this.parseReturnStatement(node);
+ case 71:
+ return this.parseSwitchStatement(node);
+ case 72:
+ return this.parseThrowStatement(node);
+ case 73:
+ return this.parseTryStatement(node);
+ case 96:
+ if (!this.state.containsEsc && this.startsAwaitUsing()) {
+ if (!this.isAwaitAllowed()) {
+ this.raise(Errors.AwaitUsingNotInAsyncContext, {
+ at: node
+ });
+ } else if (!allowDeclaration) {
+ this.raise(Errors.UnexpectedLexicalDeclaration, {
+ at: node
+ });
+ }
+ this.next();
+ return this.parseVarStatement(node, "await using");
+ }
+ break;
+ case 107:
+ if (this.state.containsEsc || !this.hasInLineFollowingBindingIdentifier()) {
+ break;
+ }
+ this.expectPlugin("explicitResourceManagement");
+ if (!this.scope.inModule && this.scope.inTopLevel) {
+ this.raise(Errors.UnexpectedUsingDeclaration, {
+ at: this.state.startLoc
+ });
+ } else if (!allowDeclaration) {
+ this.raise(Errors.UnexpectedLexicalDeclaration, {
+ at: this.state.startLoc
+ });
+ }
+ return this.parseVarStatement(node, "using");
+ case 100:
+ {
+ if (this.state.containsEsc) {
+ break;
+ }
+ const next = this.nextTokenStart();
+ const nextCh = this.codePointAtPos(next);
+ if (nextCh !== 91) {
+ if (!allowDeclaration && this.hasFollowingLineBreak()) break;
+ if (!this.chStartsBindingIdentifier(nextCh, next) && nextCh !== 123) {
+ break;
+ }
+ }
+ }
+ case 75:
+ {
+ if (!allowDeclaration) {
+ this.raise(Errors.UnexpectedLexicalDeclaration, {
+ at: this.state.startLoc
+ });
+ }
+ }
+ case 74:
+ {
+ const kind = this.state.value;
+ return this.parseVarStatement(node, kind);
+ }
+ case 92:
+ return this.parseWhileStatement(node);
+ case 76:
+ return this.parseWithStatement(node);
+ case 5:
+ return this.parseBlock();
+ case 13:
+ return this.parseEmptyStatement(node);
+ case 83:
+ {
+ const nextTokenCharCode = this.lookaheadCharCode();
+ if (nextTokenCharCode === 40 || nextTokenCharCode === 46) {
+ break;
+ }
+ }
+ case 82:
+ {
+ if (!this.options.allowImportExportEverywhere && !topLevel) {
+ this.raise(Errors.UnexpectedImportExport, {
+ at: this.state.startLoc
+ });
+ }
+ this.next();
+ let result;
+ if (starttype === 83) {
+ result = this.parseImport(node);
+ if (result.type === "ImportDeclaration" && (!result.importKind || result.importKind === "value")) {
+ this.sawUnambiguousESM = true;
+ }
+ } else {
+ result = this.parseExport(node, decorators);
+ if (result.type === "ExportNamedDeclaration" && (!result.exportKind || result.exportKind === "value") || result.type === "ExportAllDeclaration" && (!result.exportKind || result.exportKind === "value") || result.type === "ExportDefaultDeclaration") {
+ this.sawUnambiguousESM = true;
+ }
+ }
+ this.assertModuleNodeAllowed(result);
+ return result;
+ }
+ default:
+ {
+ if (this.isAsyncFunction()) {
+ if (!allowDeclaration) {
+ this.raise(Errors.AsyncFunctionInSingleStatementContext, {
+ at: this.state.startLoc
+ });
+ }
+ this.next();
+ return this.parseFunctionStatement(node, true, !allowDeclaration && allowFunctionDeclaration);
+ }
+ }
+ }
+ const maybeName = this.state.value;
+ const expr = this.parseExpression();
+ if (tokenIsIdentifier(starttype) && expr.type === "Identifier" && this.eat(14)) {
+ return this.parseLabeledStatement(node, maybeName, expr, flags);
+ } else {
+ return this.parseExpressionStatement(node, expr, decorators);
+ }
+ }
+ assertModuleNodeAllowed(node) {
+ if (!this.options.allowImportExportEverywhere && !this.inModule) {
+ this.raise(Errors.ImportOutsideModule, {
+ at: node
+ });
+ }
+ }
+ decoratorsEnabledBeforeExport() {
+ if (this.hasPlugin("decorators-legacy")) return true;
+ return this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") !== false;
+ }
+ maybeTakeDecorators(maybeDecorators, classNode, exportNode) {
+ if (maybeDecorators) {
+ if (classNode.decorators && classNode.decorators.length > 0) {
+ if (typeof this.getPluginOption("decorators", "decoratorsBeforeExport") !== "boolean") {
+ this.raise(Errors.DecoratorsBeforeAfterExport, {
+ at: classNode.decorators[0]
+ });
+ }
+ classNode.decorators.unshift(...maybeDecorators);
+ } else {
+ classNode.decorators = maybeDecorators;
+ }
+ this.resetStartLocationFromNode(classNode, maybeDecorators[0]);
+ if (exportNode) this.resetStartLocationFromNode(exportNode, classNode);
+ }
+ return classNode;
+ }
+ canHaveLeadingDecorator() {
+ return this.match(80);
+ }
+ parseDecorators(allowExport) {
+ const decorators = [];
+ do {
+ decorators.push(this.parseDecorator());
+ } while (this.match(26));
+ if (this.match(82)) {
+ if (!allowExport) {
+ this.unexpected();
+ }
+ if (!this.decoratorsEnabledBeforeExport()) {
+ this.raise(Errors.DecoratorExportClass, {
+ at: this.state.startLoc
+ });
+ }
+ } else if (!this.canHaveLeadingDecorator()) {
+ throw this.raise(Errors.UnexpectedLeadingDecorator, {
+ at: this.state.startLoc
+ });
+ }
+ return decorators;
+ }
+ parseDecorator() {
+ this.expectOnePlugin(["decorators", "decorators-legacy"]);
+ const node = this.startNode();
+ this.next();
+ if (this.hasPlugin("decorators")) {
+ const startLoc = this.state.startLoc;
+ let expr;
+ if (this.match(10)) {
+ const startLoc = this.state.startLoc;
+ this.next();
+ expr = this.parseExpression();
+ this.expect(11);
+ expr = this.wrapParenthesis(startLoc, expr);
+ const paramsStartLoc = this.state.startLoc;
+ node.expression = this.parseMaybeDecoratorArguments(expr);
+ if (this.getPluginOption("decorators", "allowCallParenthesized") === false && node.expression !== expr) {
+ this.raise(Errors.DecoratorArgumentsOutsideParentheses, {
+ at: paramsStartLoc
+ });
+ }
+ } else {
+ expr = this.parseIdentifier(false);
+ while (this.eat(16)) {
+ const node = this.startNodeAt(startLoc);
+ node.object = expr;
+ if (this.match(138)) {
+ this.classScope.usePrivateName(this.state.value, this.state.startLoc);
+ node.property = this.parsePrivateName();
+ } else {
+ node.property = this.parseIdentifier(true);
+ }
+ node.computed = false;
+ expr = this.finishNode(node, "MemberExpression");
+ }
+ node.expression = this.parseMaybeDecoratorArguments(expr);
+ }
+ } else {
+ node.expression = this.parseExprSubscripts();
+ }
+ return this.finishNode(node, "Decorator");
+ }
+ parseMaybeDecoratorArguments(expr) {
+ if (this.eat(10)) {
+ const node = this.startNodeAtNode(expr);
+ node.callee = expr;
+ node.arguments = this.parseCallExpressionArguments(11, false);
+ this.toReferencedList(node.arguments);
+ return this.finishNode(node, "CallExpression");
+ }
+ return expr;
+ }
+ parseBreakContinueStatement(node, isBreak) {
+ this.next();
+ if (this.isLineTerminator()) {
+ node.label = null;
+ } else {
+ node.label = this.parseIdentifier();
+ this.semicolon();
+ }
+ this.verifyBreakContinue(node, isBreak);
+ return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement");
+ }
+ verifyBreakContinue(node, isBreak) {
+ let i;
+ for (i = 0; i < this.state.labels.length; ++i) {
+ const lab = this.state.labels[i];
+ if (node.label == null || lab.name === node.label.name) {
+ if (lab.kind != null && (isBreak || lab.kind === "loop")) break;
+ if (node.label && isBreak) break;
+ }
+ }
+ if (i === this.state.labels.length) {
+ const type = isBreak ? "BreakStatement" : "ContinueStatement";
+ this.raise(Errors.IllegalBreakContinue, {
+ at: node,
+ type
+ });
+ }
+ }
+ parseDebuggerStatement(node) {
+ this.next();
+ this.semicolon();
+ return this.finishNode(node, "DebuggerStatement");
+ }
+ parseHeaderExpression() {
+ this.expect(10);
+ const val = this.parseExpression();
+ this.expect(11);
+ return val;
+ }
+ parseDoWhileStatement(node) {
+ this.next();
+ this.state.labels.push(loopLabel);
+ node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement());
+ this.state.labels.pop();
+ this.expect(92);
+ node.test = this.parseHeaderExpression();
+ this.eat(13);
+ return this.finishNode(node, "DoWhileStatement");
+ }
+ parseForStatement(node) {
+ this.next();
+ this.state.labels.push(loopLabel);
+ let awaitAt = null;
+ if (this.isAwaitAllowed() && this.eatContextual(96)) {
+ awaitAt = this.state.lastTokStartLoc;
+ }
+ this.scope.enter(0);
+ this.expect(10);
+ if (this.match(13)) {
+ if (awaitAt !== null) {
+ this.unexpected(awaitAt);
+ }
+ return this.parseFor(node, null);
+ }
+ const startsWithLet = this.isContextual(100);
+ {
+ const startsWithAwaitUsing = this.isContextual(96) && this.startsAwaitUsing();
+ const starsWithUsingDeclaration = startsWithAwaitUsing || this.isContextual(107) && this.startsUsingForOf();
+ const isLetOrUsing = startsWithLet && this.hasFollowingBindingAtom() || starsWithUsingDeclaration;
+ if (this.match(74) || this.match(75) || isLetOrUsing) {
+ const initNode = this.startNode();
+ let kind;
+ if (startsWithAwaitUsing) {
+ kind = "await using";
+ if (!this.isAwaitAllowed()) {
+ this.raise(Errors.AwaitUsingNotInAsyncContext, {
+ at: this.state.startLoc
+ });
+ }
+ this.next();
+ } else {
+ kind = this.state.value;
+ }
+ this.next();
+ this.parseVar(initNode, true, kind);
+ const init = this.finishNode(initNode, "VariableDeclaration");
+ const isForIn = this.match(58);
+ if (isForIn && starsWithUsingDeclaration) {
+ this.raise(Errors.ForInUsing, {
+ at: init
+ });
+ }
+ if ((isForIn || this.isContextual(102)) && init.declarations.length === 1) {
+ return this.parseForIn(node, init, awaitAt);
+ }
+ if (awaitAt !== null) {
+ this.unexpected(awaitAt);
+ }
+ return this.parseFor(node, init);
+ }
+ }
+ const startsWithAsync = this.isContextual(95);
+ const refExpressionErrors = new ExpressionErrors();
+ const init = this.parseExpression(true, refExpressionErrors);
+ const isForOf = this.isContextual(102);
+ if (isForOf) {
+ if (startsWithLet) {
+ this.raise(Errors.ForOfLet, {
+ at: init
+ });
+ }
+ if (awaitAt === null && startsWithAsync && init.type === "Identifier") {
+ this.raise(Errors.ForOfAsync, {
+ at: init
+ });
+ }
+ }
+ if (isForOf || this.match(58)) {
+ this.checkDestructuringPrivate(refExpressionErrors);
+ this.toAssignable(init, true);
+ const type = isForOf ? "ForOfStatement" : "ForInStatement";
+ this.checkLVal(init, {
+ in: {
+ type
+ }
+ });
+ return this.parseForIn(node, init, awaitAt);
+ } else {
+ this.checkExpressionErrors(refExpressionErrors, true);
+ }
+ if (awaitAt !== null) {
+ this.unexpected(awaitAt);
+ }
+ return this.parseFor(node, init);
+ }
+ parseFunctionStatement(node, isAsync, isHangingDeclaration) {
+ this.next();
+ return this.parseFunction(node, 1 | (isHangingDeclaration ? 2 : 0) | (isAsync ? 8 : 0));
+ }
+ parseIfStatement(node) {
+ this.next();
+ node.test = this.parseHeaderExpression();
+ node.consequent = this.parseStatementOrSloppyAnnexBFunctionDeclaration();
+ node.alternate = this.eat(66) ? this.parseStatementOrSloppyAnnexBFunctionDeclaration() : null;
+ return this.finishNode(node, "IfStatement");
+ }
+ parseReturnStatement(node) {
+ if (!this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction) {
+ this.raise(Errors.IllegalReturn, {
+ at: this.state.startLoc
+ });
+ }
+ this.next();
+ if (this.isLineTerminator()) {
+ node.argument = null;
+ } else {
+ node.argument = this.parseExpression();
+ this.semicolon();
+ }
+ return this.finishNode(node, "ReturnStatement");
+ }
+ parseSwitchStatement(node) {
+ this.next();
+ node.discriminant = this.parseHeaderExpression();
+ const cases = node.cases = [];
+ this.expect(5);
+ this.state.labels.push(switchLabel);
+ this.scope.enter(0);
+ let cur;
+ for (let sawDefault; !this.match(8);) {
+ if (this.match(61) || this.match(65)) {
+ const isCase = this.match(61);
+ if (cur) this.finishNode(cur, "SwitchCase");
+ cases.push(cur = this.startNode());
+ cur.consequent = [];
+ this.next();
+ if (isCase) {
+ cur.test = this.parseExpression();
+ } else {
+ if (sawDefault) {
+ this.raise(Errors.MultipleDefaultsInSwitch, {
+ at: this.state.lastTokStartLoc
+ });
+ }
+ sawDefault = true;
+ cur.test = null;
+ }
+ this.expect(14);
+ } else {
+ if (cur) {
+ cur.consequent.push(this.parseStatementListItem());
+ } else {
+ this.unexpected();
+ }
+ }
+ }
+ this.scope.exit();
+ if (cur) this.finishNode(cur, "SwitchCase");
+ this.next();
+ this.state.labels.pop();
+ return this.finishNode(node, "SwitchStatement");
+ }
+ parseThrowStatement(node) {
+ this.next();
+ if (this.hasPrecedingLineBreak()) {
+ this.raise(Errors.NewlineAfterThrow, {
+ at: this.state.lastTokEndLoc
+ });
+ }
+ node.argument = this.parseExpression();
+ this.semicolon();
+ return this.finishNode(node, "ThrowStatement");
+ }
+ parseCatchClauseParam() {
+ const param = this.parseBindingAtom();
+ this.scope.enter(this.options.annexB && param.type === "Identifier" ? 8 : 0);
+ this.checkLVal(param, {
+ in: {
+ type: "CatchClause"
+ },
+ binding: 9
+ });
+ return param;
+ }
+ parseTryStatement(node) {
+ this.next();
+ node.block = this.parseBlock();
+ node.handler = null;
+ if (this.match(62)) {
+ const clause = this.startNode();
+ this.next();
+ if (this.match(10)) {
+ this.expect(10);
+ clause.param = this.parseCatchClauseParam();
+ this.expect(11);
+ } else {
+ clause.param = null;
+ this.scope.enter(0);
+ }
+ clause.body = this.withSmartMixTopicForbiddingContext(() => this.parseBlock(false, false));
+ this.scope.exit();
+ node.handler = this.finishNode(clause, "CatchClause");
+ }
+ node.finalizer = this.eat(67) ? this.parseBlock() : null;
+ if (!node.handler && !node.finalizer) {
+ this.raise(Errors.NoCatchOrFinally, {
+ at: node
+ });
+ }
+ return this.finishNode(node, "TryStatement");
+ }
+ parseVarStatement(node, kind, allowMissingInitializer = false) {
+ this.next();
+ this.parseVar(node, false, kind, allowMissingInitializer);
+ this.semicolon();
+ return this.finishNode(node, "VariableDeclaration");
+ }
+ parseWhileStatement(node) {
+ this.next();
+ node.test = this.parseHeaderExpression();
+ this.state.labels.push(loopLabel);
+ node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement());
+ this.state.labels.pop();
+ return this.finishNode(node, "WhileStatement");
+ }
+ parseWithStatement(node) {
+ if (this.state.strict) {
+ this.raise(Errors.StrictWith, {
+ at: this.state.startLoc
+ });
+ }
+ this.next();
+ node.object = this.parseHeaderExpression();
+ node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement());
+ return this.finishNode(node, "WithStatement");
+ }
+ parseEmptyStatement(node) {
+ this.next();
+ return this.finishNode(node, "EmptyStatement");
+ }
+ parseLabeledStatement(node, maybeName, expr, flags) {
+ for (const label of this.state.labels) {
+ if (label.name === maybeName) {
+ this.raise(Errors.LabelRedeclaration, {
+ at: expr,
+ labelName: maybeName
+ });
+ }
+ }
+ const kind = tokenIsLoop(this.state.type) ? "loop" : this.match(71) ? "switch" : null;
+ for (let i = this.state.labels.length - 1; i >= 0; i--) {
+ const label = this.state.labels[i];
+ if (label.statementStart === node.start) {
+ label.statementStart = this.state.start;
+ label.kind = kind;
+ } else {
+ break;
+ }
+ }
+ this.state.labels.push({
+ name: maybeName,
+ kind: kind,
+ statementStart: this.state.start
+ });
+ node.body = flags & 8 ? this.parseStatementOrSloppyAnnexBFunctionDeclaration(true) : this.parseStatement();
+ this.state.labels.pop();
+ node.label = expr;
+ return this.finishNode(node, "LabeledStatement");
+ }
+ parseExpressionStatement(node, expr, decorators) {
+ node.expression = expr;
+ this.semicolon();
+ return this.finishNode(node, "ExpressionStatement");
+ }
+ parseBlock(allowDirectives = false, createNewLexicalScope = true, afterBlockParse) {
+ const node = this.startNode();
+ if (allowDirectives) {
+ this.state.strictErrors.clear();
+ }
+ this.expect(5);
+ if (createNewLexicalScope) {
+ this.scope.enter(0);
+ }
+ this.parseBlockBody(node, allowDirectives, false, 8, afterBlockParse);
+ if (createNewLexicalScope) {
+ this.scope.exit();
+ }
+ return this.finishNode(node, "BlockStatement");
+ }
+ isValidDirective(stmt) {
+ return stmt.type === "ExpressionStatement" && stmt.expression.type === "StringLiteral" && !stmt.expression.extra.parenthesized;
+ }
+ parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse) {
+ const body = node.body = [];
+ const directives = node.directives = [];
+ this.parseBlockOrModuleBlockBody(body, allowDirectives ? directives : undefined, topLevel, end, afterBlockParse);
+ }
+ parseBlockOrModuleBlockBody(body, directives, topLevel, end, afterBlockParse) {
+ const oldStrict = this.state.strict;
+ let hasStrictModeDirective = false;
+ let parsedNonDirective = false;
+ while (!this.match(end)) {
+ const stmt = topLevel ? this.parseModuleItem() : this.parseStatementListItem();
+ if (directives && !parsedNonDirective) {
+ if (this.isValidDirective(stmt)) {
+ const directive = this.stmtToDirective(stmt);
+ directives.push(directive);
+ if (!hasStrictModeDirective && directive.value.value === "use strict") {
+ hasStrictModeDirective = true;
+ this.setStrict(true);
+ }
+ continue;
+ }
+ parsedNonDirective = true;
+ this.state.strictErrors.clear();
+ }
+ body.push(stmt);
+ }
+ afterBlockParse == null || afterBlockParse.call(this, hasStrictModeDirective);
+ if (!oldStrict) {
+ this.setStrict(false);
+ }
+ this.next();
+ }
+ parseFor(node, init) {
+ node.init = init;
+ this.semicolon(false);
+ node.test = this.match(13) ? null : this.parseExpression();
+ this.semicolon(false);
+ node.update = this.match(11) ? null : this.parseExpression();
+ this.expect(11);
+ node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement());
+ this.scope.exit();
+ this.state.labels.pop();
+ return this.finishNode(node, "ForStatement");
+ }
+ parseForIn(node, init, awaitAt) {
+ const isForIn = this.match(58);
+ this.next();
+ if (isForIn) {
+ if (awaitAt !== null) this.unexpected(awaitAt);
+ } else {
+ node.await = awaitAt !== null;
+ }
+ if (init.type === "VariableDeclaration" && init.declarations[0].init != null && (!isForIn || !this.options.annexB || this.state.strict || init.kind !== "var" || init.declarations[0].id.type !== "Identifier")) {
+ this.raise(Errors.ForInOfLoopInitializer, {
+ at: init,
+ type: isForIn ? "ForInStatement" : "ForOfStatement"
+ });
+ }
+ if (init.type === "AssignmentPattern") {
+ this.raise(Errors.InvalidLhs, {
+ at: init,
+ ancestor: {
+ type: "ForStatement"
+ }
+ });
+ }
+ node.left = init;
+ node.right = isForIn ? this.parseExpression() : this.parseMaybeAssignAllowIn();
+ this.expect(11);
+ node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement());
+ this.scope.exit();
+ this.state.labels.pop();
+ return this.finishNode(node, isForIn ? "ForInStatement" : "ForOfStatement");
+ }
+ parseVar(node, isFor, kind, allowMissingInitializer = false) {
+ const declarations = node.declarations = [];
+ node.kind = kind;
+ for (;;) {
+ const decl = this.startNode();
+ this.parseVarId(decl, kind);
+ decl.init = !this.eat(29) ? null : isFor ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn();
+ if (decl.init === null && !allowMissingInitializer) {
+ if (decl.id.type !== "Identifier" && !(isFor && (this.match(58) || this.isContextual(102)))) {
+ this.raise(Errors.DeclarationMissingInitializer, {
+ at: this.state.lastTokEndLoc,
+ kind: "destructuring"
+ });
+ } else if (kind === "const" && !(this.match(58) || this.isContextual(102))) {
+ this.raise(Errors.DeclarationMissingInitializer, {
+ at: this.state.lastTokEndLoc,
+ kind: "const"
+ });
+ }
+ }
+ declarations.push(this.finishNode(decl, "VariableDeclarator"));
+ if (!this.eat(12)) break;
+ }
+ return node;
+ }
+ parseVarId(decl, kind) {
+ const id = this.parseBindingAtom();
+ this.checkLVal(id, {
+ in: {
+ type: "VariableDeclarator"
+ },
+ binding: kind === "var" ? 5 : 8201
+ });
+ decl.id = id;
+ }
+ parseAsyncFunctionExpression(node) {
+ return this.parseFunction(node, 8);
+ }
+ parseFunction(node, flags = 0) {
+ const hangingDeclaration = flags & 2;
+ const isDeclaration = !!(flags & 1);
+ const requireId = isDeclaration && !(flags & 4);
+ const isAsync = !!(flags & 8);
+ this.initFunction(node, isAsync);
+ if (this.match(55)) {
+ if (hangingDeclaration) {
+ this.raise(Errors.GeneratorInSingleStatementContext, {
+ at: this.state.startLoc
+ });
+ }
+ this.next();
+ node.generator = true;
+ }
+ if (isDeclaration) {
+ node.id = this.parseFunctionId(requireId);
+ }
+ const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;
+ this.state.maybeInArrowParameters = false;
+ this.scope.enter(2);
+ this.prodParam.enter(functionFlags(isAsync, node.generator));
+ if (!isDeclaration) {
+ node.id = this.parseFunctionId();
+ }
+ this.parseFunctionParams(node, false);
+ this.withSmartMixTopicForbiddingContext(() => {
+ this.parseFunctionBodyAndFinish(node, isDeclaration ? "FunctionDeclaration" : "FunctionExpression");
+ });
+ this.prodParam.exit();
+ this.scope.exit();
+ if (isDeclaration && !hangingDeclaration) {
+ this.registerFunctionStatementId(node);
+ }
+ this.state.maybeInArrowParameters = oldMaybeInArrowParameters;
+ return node;
+ }
+ parseFunctionId(requireId) {
+ return requireId || tokenIsIdentifier(this.state.type) ? this.parseIdentifier() : null;
+ }
+ parseFunctionParams(node, isConstructor) {
+ this.expect(10);
+ this.expressionScope.enter(newParameterDeclarationScope());
+ node.params = this.parseBindingList(11, 41, 2 | (isConstructor ? 4 : 0));
+ this.expressionScope.exit();
+ }
+ registerFunctionStatementId(node) {
+ if (!node.id) return;
+ this.scope.declareName(node.id.name, !this.options.annexB || this.state.strict || node.generator || node.async ? this.scope.treatFunctionsAsVar ? 5 : 8201 : 17, node.id.loc.start);
+ }
+ parseClass(node, isStatement, optionalId) {
+ this.next();
+ const oldStrict = this.state.strict;
+ this.state.strict = true;
+ this.parseClassId(node, isStatement, optionalId);
+ this.parseClassSuper(node);
+ node.body = this.parseClassBody(!!node.superClass, oldStrict);
+ return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression");
+ }
+ isClassProperty() {
+ return this.match(29) || this.match(13) || this.match(8);
+ }
+ isClassMethod() {
+ return this.match(10);
+ }
+ isNonstaticConstructor(method) {
+ return !method.computed && !method.static && (method.key.name === "constructor" || method.key.value === "constructor");
+ }
+ parseClassBody(hadSuperClass, oldStrict) {
+ this.classScope.enter();
+ const state = {
+ hadConstructor: false,
+ hadSuperClass
+ };
+ let decorators = [];
+ const classBody = this.startNode();
+ classBody.body = [];
+ this.expect(5);
+ this.withSmartMixTopicForbiddingContext(() => {
+ while (!this.match(8)) {
+ if (this.eat(13)) {
+ if (decorators.length > 0) {
+ throw this.raise(Errors.DecoratorSemicolon, {
+ at: this.state.lastTokEndLoc
+ });
+ }
+ continue;
+ }
+ if (this.match(26)) {
+ decorators.push(this.parseDecorator());
+ continue;
+ }
+ const member = this.startNode();
+ if (decorators.length) {
+ member.decorators = decorators;
+ this.resetStartLocationFromNode(member, decorators[0]);
+ decorators = [];
+ }
+ this.parseClassMember(classBody, member, state);
+ if (member.kind === "constructor" && member.decorators && member.decorators.length > 0) {
+ this.raise(Errors.DecoratorConstructor, {
+ at: member
+ });
+ }
+ }
+ });
+ this.state.strict = oldStrict;
+ this.next();
+ if (decorators.length) {
+ throw this.raise(Errors.TrailingDecorator, {
+ at: this.state.startLoc
+ });
+ }
+ this.classScope.exit();
+ return this.finishNode(classBody, "ClassBody");
+ }
+ parseClassMemberFromModifier(classBody, member) {
+ const key = this.parseIdentifier(true);
+ if (this.isClassMethod()) {
+ const method = member;
+ method.kind = "method";
+ method.computed = false;
+ method.key = key;
+ method.static = false;
+ this.pushClassMethod(classBody, method, false, false, false, false);
+ return true;
+ } else if (this.isClassProperty()) {
+ const prop = member;
+ prop.computed = false;
+ prop.key = key;
+ prop.static = false;
+ classBody.body.push(this.parseClassProperty(prop));
+ return true;
+ }
+ this.resetPreviousNodeTrailingComments(key);
+ return false;
+ }
+ parseClassMember(classBody, member, state) {
+ const isStatic = this.isContextual(106);
+ if (isStatic) {
+ if (this.parseClassMemberFromModifier(classBody, member)) {
+ return;
+ }
+ if (this.eat(5)) {
+ this.parseClassStaticBlock(classBody, member);
+ return;
+ }
+ }
+ this.parseClassMemberWithIsStatic(classBody, member, state, isStatic);
+ }
+ parseClassMemberWithIsStatic(classBody, member, state, isStatic) {
+ const publicMethod = member;
+ const privateMethod = member;
+ const publicProp = member;
+ const privateProp = member;
+ const accessorProp = member;
+ const method = publicMethod;
+ const publicMember = publicMethod;
+ member.static = isStatic;
+ this.parsePropertyNamePrefixOperator(member);
+ if (this.eat(55)) {
+ method.kind = "method";
+ const isPrivateName = this.match(138);
+ this.parseClassElementName(method);
+ if (isPrivateName) {
+ this.pushClassPrivateMethod(classBody, privateMethod, true, false);
+ return;
+ }
+ if (this.isNonstaticConstructor(publicMethod)) {
+ this.raise(Errors.ConstructorIsGenerator, {
+ at: publicMethod.key
+ });
+ }
+ this.pushClassMethod(classBody, publicMethod, true, false, false, false);
+ return;
+ }
+ const isContextual = tokenIsIdentifier(this.state.type) && !this.state.containsEsc;
+ const isPrivate = this.match(138);
+ const key = this.parseClassElementName(member);
+ const maybeQuestionTokenStartLoc = this.state.startLoc;
+ this.parsePostMemberNameModifiers(publicMember);
+ if (this.isClassMethod()) {
+ method.kind = "method";
+ if (isPrivate) {
+ this.pushClassPrivateMethod(classBody, privateMethod, false, false);
+ return;
+ }
+ const isConstructor = this.isNonstaticConstructor(publicMethod);
+ let allowsDirectSuper = false;
+ if (isConstructor) {
+ publicMethod.kind = "constructor";
+ if (state.hadConstructor && !this.hasPlugin("typescript")) {
+ this.raise(Errors.DuplicateConstructor, {
+ at: key
+ });
+ }
+ if (isConstructor && this.hasPlugin("typescript") && member.override) {
+ this.raise(Errors.OverrideOnConstructor, {
+ at: key
+ });
+ }
+ state.hadConstructor = true;
+ allowsDirectSuper = state.hadSuperClass;
+ }
+ this.pushClassMethod(classBody, publicMethod, false, false, isConstructor, allowsDirectSuper);
+ } else if (this.isClassProperty()) {
+ if (isPrivate) {
+ this.pushClassPrivateProperty(classBody, privateProp);
+ } else {
+ this.pushClassProperty(classBody, publicProp);
+ }
+ } else if (isContextual && key.name === "async" && !this.isLineTerminator()) {
+ this.resetPreviousNodeTrailingComments(key);
+ const isGenerator = this.eat(55);
+ if (publicMember.optional) {
+ this.unexpected(maybeQuestionTokenStartLoc);
+ }
+ method.kind = "method";
+ const isPrivate = this.match(138);
+ this.parseClassElementName(method);
+ this.parsePostMemberNameModifiers(publicMember);
+ if (isPrivate) {
+ this.pushClassPrivateMethod(classBody, privateMethod, isGenerator, true);
+ } else {
+ if (this.isNonstaticConstructor(publicMethod)) {
+ this.raise(Errors.ConstructorIsAsync, {
+ at: publicMethod.key
+ });
+ }
+ this.pushClassMethod(classBody, publicMethod, isGenerator, true, false, false);
+ }
+ } else if (isContextual && (key.name === "get" || key.name === "set") && !(this.match(55) && this.isLineTerminator())) {
+ this.resetPreviousNodeTrailingComments(key);
+ method.kind = key.name;
+ const isPrivate = this.match(138);
+ this.parseClassElementName(publicMethod);
+ if (isPrivate) {
+ this.pushClassPrivateMethod(classBody, privateMethod, false, false);
+ } else {
+ if (this.isNonstaticConstructor(publicMethod)) {
+ this.raise(Errors.ConstructorIsAccessor, {
+ at: publicMethod.key
+ });
+ }
+ this.pushClassMethod(classBody, publicMethod, false, false, false, false);
+ }
+ this.checkGetterSetterParams(publicMethod);
+ } else if (isContextual && key.name === "accessor" && !this.isLineTerminator()) {
+ this.expectPlugin("decoratorAutoAccessors");
+ this.resetPreviousNodeTrailingComments(key);
+ const isPrivate = this.match(138);
+ this.parseClassElementName(publicProp);
+ this.pushClassAccessorProperty(classBody, accessorProp, isPrivate);
+ } else if (this.isLineTerminator()) {
+ if (isPrivate) {
+ this.pushClassPrivateProperty(classBody, privateProp);
+ } else {
+ this.pushClassProperty(classBody, publicProp);
+ }
+ } else {
+ this.unexpected();
+ }
+ }
+ parseClassElementName(member) {
+ const {
+ type,
+ value
+ } = this.state;
+ if ((type === 132 || type === 133) && member.static && value === "prototype") {
+ this.raise(Errors.StaticPrototype, {
+ at: this.state.startLoc
+ });
+ }
+ if (type === 138) {
+ if (value === "constructor") {
+ this.raise(Errors.ConstructorClassPrivateField, {
+ at: this.state.startLoc
+ });
+ }
+ const key = this.parsePrivateName();
+ member.key = key;
+ return key;
+ }
+ return this.parsePropertyName(member);
+ }
+ parseClassStaticBlock(classBody, member) {
+ var _member$decorators;
+ this.scope.enter(64 | 128 | 16);
+ const oldLabels = this.state.labels;
+ this.state.labels = [];
+ this.prodParam.enter(0);
+ const body = member.body = [];
+ this.parseBlockOrModuleBlockBody(body, undefined, false, 8);
+ this.prodParam.exit();
+ this.scope.exit();
+ this.state.labels = oldLabels;
+ classBody.body.push(this.finishNode(member, "StaticBlock"));
+ if ((_member$decorators = member.decorators) != null && _member$decorators.length) {
+ this.raise(Errors.DecoratorStaticBlock, {
+ at: member
+ });
+ }
+ }
+ pushClassProperty(classBody, prop) {
+ if (!prop.computed && (prop.key.name === "constructor" || prop.key.value === "constructor")) {
+ this.raise(Errors.ConstructorClassField, {
+ at: prop.key
+ });
+ }
+ classBody.body.push(this.parseClassProperty(prop));
+ }
+ pushClassPrivateProperty(classBody, prop) {
+ const node = this.parseClassPrivateProperty(prop);
+ classBody.body.push(node);
+ this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), 0, node.key.loc.start);
+ }
+ pushClassAccessorProperty(classBody, prop, isPrivate) {
+ if (!isPrivate && !prop.computed) {
+ const key = prop.key;
+ if (key.name === "constructor" || key.value === "constructor") {
+ this.raise(Errors.ConstructorClassField, {
+ at: key
+ });
+ }
+ }
+ const node = this.parseClassAccessorProperty(prop);
+ classBody.body.push(node);
+ if (isPrivate) {
+ this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), 0, node.key.loc.start);
+ }
+ }
+ pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) {
+ classBody.body.push(this.parseMethod(method, isGenerator, isAsync, isConstructor, allowsDirectSuper, "ClassMethod", true));
+ }
+ pushClassPrivateMethod(classBody, method, isGenerator, isAsync) {
+ const node = this.parseMethod(method, isGenerator, isAsync, false, false, "ClassPrivateMethod", true);
+ classBody.body.push(node);
+ const kind = node.kind === "get" ? node.static ? 6 : 2 : node.kind === "set" ? node.static ? 5 : 1 : 0;
+ this.declareClassPrivateMethodInScope(node, kind);
+ }
+ declareClassPrivateMethodInScope(node, kind) {
+ this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), kind, node.key.loc.start);
+ }
+ parsePostMemberNameModifiers(methodOrProp) {}
+ parseClassPrivateProperty(node) {
+ this.parseInitializer(node);
+ this.semicolon();
+ return this.finishNode(node, "ClassPrivateProperty");
+ }
+ parseClassProperty(node) {
+ this.parseInitializer(node);
+ this.semicolon();
+ return this.finishNode(node, "ClassProperty");
+ }
+ parseClassAccessorProperty(node) {
+ this.parseInitializer(node);
+ this.semicolon();
+ return this.finishNode(node, "ClassAccessorProperty");
+ }
+ parseInitializer(node) {
+ this.scope.enter(64 | 16);
+ this.expressionScope.enter(newExpressionScope());
+ this.prodParam.enter(0);
+ node.value = this.eat(29) ? this.parseMaybeAssignAllowIn() : null;
+ this.expressionScope.exit();
+ this.prodParam.exit();
+ this.scope.exit();
+ }
+ parseClassId(node, isStatement, optionalId, bindingType = 8331) {
+ if (tokenIsIdentifier(this.state.type)) {
+ node.id = this.parseIdentifier();
+ if (isStatement) {
+ this.declareNameFromIdentifier(node.id, bindingType);
+ }
+ } else {
+ if (optionalId || !isStatement) {
+ node.id = null;
+ } else {
+ throw this.raise(Errors.MissingClassName, {
+ at: this.state.startLoc
+ });
+ }
+ }
+ }
+ parseClassSuper(node) {
+ node.superClass = this.eat(81) ? this.parseExprSubscripts() : null;
+ }
+ parseExport(node, decorators) {
+ const maybeDefaultIdentifier = this.parseMaybeImportPhase(node, true);
+ const hasDefault = this.maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier);
+ const parseAfterDefault = !hasDefault || this.eat(12);
+ const hasStar = parseAfterDefault && this.eatExportStar(node);
+ const hasNamespace = hasStar && this.maybeParseExportNamespaceSpecifier(node);
+ const parseAfterNamespace = parseAfterDefault && (!hasNamespace || this.eat(12));
+ const isFromRequired = hasDefault || hasStar;
+ if (hasStar && !hasNamespace) {
+ if (hasDefault) this.unexpected();
+ if (decorators) {
+ throw this.raise(Errors.UnsupportedDecoratorExport, {
+ at: node
+ });
+ }
+ this.parseExportFrom(node, true);
+ return this.finishNode(node, "ExportAllDeclaration");
+ }
+ const hasSpecifiers = this.maybeParseExportNamedSpecifiers(node);
+ if (hasDefault && parseAfterDefault && !hasStar && !hasSpecifiers) {
+ this.unexpected(null, 5);
+ }
+ if (hasNamespace && parseAfterNamespace) {
+ this.unexpected(null, 98);
+ }
+ let hasDeclaration;
+ if (isFromRequired || hasSpecifiers) {
+ hasDeclaration = false;
+ if (decorators) {
+ throw this.raise(Errors.UnsupportedDecoratorExport, {
+ at: node
+ });
+ }
+ this.parseExportFrom(node, isFromRequired);
+ } else {
+ hasDeclaration = this.maybeParseExportDeclaration(node);
+ }
+ if (isFromRequired || hasSpecifiers || hasDeclaration) {
+ var _node2$declaration;
+ const node2 = node;
+ this.checkExport(node2, true, false, !!node2.source);
+ if (((_node2$declaration = node2.declaration) == null ? void 0 : _node2$declaration.type) === "ClassDeclaration") {
+ this.maybeTakeDecorators(decorators, node2.declaration, node2);
+ } else if (decorators) {
+ throw this.raise(Errors.UnsupportedDecoratorExport, {
+ at: node
+ });
+ }
+ return this.finishNode(node2, "ExportNamedDeclaration");
+ }
+ if (this.eat(65)) {
+ const node2 = node;
+ const decl = this.parseExportDefaultExpression();
+ node2.declaration = decl;
+ if (decl.type === "ClassDeclaration") {
+ this.maybeTakeDecorators(decorators, decl, node2);
+ } else if (decorators) {
+ throw this.raise(Errors.UnsupportedDecoratorExport, {
+ at: node
+ });
+ }
+ this.checkExport(node2, true, true);
+ return this.finishNode(node2, "ExportDefaultDeclaration");
+ }
+ this.unexpected(null, 5);
+ }
+ eatExportStar(node) {
+ return this.eat(55);
+ }
+ maybeParseExportDefaultSpecifier(node, maybeDefaultIdentifier) {
+ if (maybeDefaultIdentifier || this.isExportDefaultSpecifier()) {
+ this.expectPlugin("exportDefaultFrom", maybeDefaultIdentifier == null ? void 0 : maybeDefaultIdentifier.loc.start);
+ const id = maybeDefaultIdentifier || this.parseIdentifier(true);
+ const specifier = this.startNodeAtNode(id);
+ specifier.exported = id;
+ node.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")];
+ return true;
+ }
+ return false;
+ }
+ maybeParseExportNamespaceSpecifier(node) {
+ if (this.isContextual(93)) {
+ if (!node.specifiers) node.specifiers = [];
+ const specifier = this.startNodeAt(this.state.lastTokStartLoc);
+ this.next();
+ specifier.exported = this.parseModuleExportName();
+ node.specifiers.push(this.finishNode(specifier, "ExportNamespaceSpecifier"));
+ return true;
+ }
+ return false;
+ }
+ maybeParseExportNamedSpecifiers(node) {
+ if (this.match(5)) {
+ if (!node.specifiers) node.specifiers = [];
+ const isTypeExport = node.exportKind === "type";
+ node.specifiers.push(...this.parseExportSpecifiers(isTypeExport));
+ node.source = null;
+ node.declaration = null;
+ if (this.hasPlugin("importAssertions")) {
+ node.assertions = [];
+ }
+ return true;
+ }
+ return false;
+ }
+ maybeParseExportDeclaration(node) {
+ if (this.shouldParseExportDeclaration()) {
+ node.specifiers = [];
+ node.source = null;
+ if (this.hasPlugin("importAssertions")) {
+ node.assertions = [];
+ }
+ node.declaration = this.parseExportDeclaration(node);
+ return true;
+ }
+ return false;
+ }
+ isAsyncFunction() {
+ if (!this.isContextual(95)) return false;
+ const next = this.nextTokenInLineStart();
+ return this.isUnparsedContextual(next, "function");
+ }
+ parseExportDefaultExpression() {
+ const expr = this.startNode();
+ if (this.match(68)) {
+ this.next();
+ return this.parseFunction(expr, 1 | 4);
+ } else if (this.isAsyncFunction()) {
+ this.next();
+ this.next();
+ return this.parseFunction(expr, 1 | 4 | 8);
+ }
+ if (this.match(80)) {
+ return this.parseClass(expr, true, true);
+ }
+ if (this.match(26)) {
+ if (this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport") === true) {
+ this.raise(Errors.DecoratorBeforeExport, {
+ at: this.state.startLoc
+ });
+ }
+ return this.parseClass(this.maybeTakeDecorators(this.parseDecorators(false), this.startNode()), true, true);
+ }
+ if (this.match(75) || this.match(74) || this.isLet()) {
+ throw this.raise(Errors.UnsupportedDefaultExport, {
+ at: this.state.startLoc
+ });
+ }
+ const res = this.parseMaybeAssignAllowIn();
+ this.semicolon();
+ return res;
+ }
+ parseExportDeclaration(node) {
+ if (this.match(80)) {
+ const node = this.parseClass(this.startNode(), true, false);
+ return node;
+ }
+ return this.parseStatementListItem();
+ }
+ isExportDefaultSpecifier() {
+ const {
+ type
+ } = this.state;
+ if (tokenIsIdentifier(type)) {
+ if (type === 95 && !this.state.containsEsc || type === 100) {
+ return false;
+ }
+ if ((type === 130 || type === 129) && !this.state.containsEsc) {
+ const {
+ type: nextType
+ } = this.lookahead();
+ if (tokenIsIdentifier(nextType) && nextType !== 98 || nextType === 5) {
+ this.expectOnePlugin(["flow", "typescript"]);
+ return false;
+ }
+ }
+ } else if (!this.match(65)) {
+ return false;
+ }
+ const next = this.nextTokenStart();
+ const hasFrom = this.isUnparsedContextual(next, "from");
+ if (this.input.charCodeAt(next) === 44 || tokenIsIdentifier(this.state.type) && hasFrom) {
+ return true;
+ }
+ if (this.match(65) && hasFrom) {
+ const nextAfterFrom = this.input.charCodeAt(this.nextTokenStartSince(next + 4));
+ return nextAfterFrom === 34 || nextAfterFrom === 39;
+ }
+ return false;
+ }
+ parseExportFrom(node, expect) {
+ if (this.eatContextual(98)) {
+ node.source = this.parseImportSource();
+ this.checkExport(node);
+ this.maybeParseImportAttributes(node);
+ this.checkJSONModuleImport(node);
+ } else if (expect) {
+ this.unexpected();
+ }
+ this.semicolon();
+ }
+ shouldParseExportDeclaration() {
+ const {
+ type
+ } = this.state;
+ if (type === 26) {
+ this.expectOnePlugin(["decorators", "decorators-legacy"]);
+ if (this.hasPlugin("decorators")) {
+ if (this.getPluginOption("decorators", "decoratorsBeforeExport") === true) {
+ this.raise(Errors.DecoratorBeforeExport, {
+ at: this.state.startLoc
+ });
+ }
+ return true;
+ }
+ }
+ return type === 74 || type === 75 || type === 68 || type === 80 || this.isLet() || this.isAsyncFunction();
+ }
+ checkExport(node, checkNames, isDefault, isFrom) {
+ if (checkNames) {
+ var _node$specifiers;
+ if (isDefault) {
+ this.checkDuplicateExports(node, "default");
+ if (this.hasPlugin("exportDefaultFrom")) {
+ var _declaration$extra;
+ const declaration = node.declaration;
+ if (declaration.type === "Identifier" && declaration.name === "from" && declaration.end - declaration.start === 4 && !((_declaration$extra = declaration.extra) != null && _declaration$extra.parenthesized)) {
+ this.raise(Errors.ExportDefaultFromAsIdentifier, {
+ at: declaration
+ });
+ }
+ }
+ } else if ((_node$specifiers = node.specifiers) != null && _node$specifiers.length) {
+ for (const specifier of node.specifiers) {
+ const {
+ exported
+ } = specifier;
+ const exportName = exported.type === "Identifier" ? exported.name : exported.value;
+ this.checkDuplicateExports(specifier, exportName);
+ if (!isFrom && specifier.local) {
+ const {
+ local
+ } = specifier;
+ if (local.type !== "Identifier") {
+ this.raise(Errors.ExportBindingIsString, {
+ at: specifier,
+ localName: local.value,
+ exportName
+ });
+ } else {
+ this.checkReservedWord(local.name, local.loc.start, true, false);
+ this.scope.checkLocalExport(local);
+ }
+ }
+ }
+ } else if (node.declaration) {
+ if (node.declaration.type === "FunctionDeclaration" || node.declaration.type === "ClassDeclaration") {
+ const id = node.declaration.id;
+ if (!id) throw new Error("Assertion failure");
+ this.checkDuplicateExports(node, id.name);
+ } else if (node.declaration.type === "VariableDeclaration") {
+ for (const declaration of node.declaration.declarations) {
+ this.checkDeclaration(declaration.id);
+ }
+ }
+ }
+ }
+ }
+ checkDeclaration(node) {
+ if (node.type === "Identifier") {
+ this.checkDuplicateExports(node, node.name);
+ } else if (node.type === "ObjectPattern") {
+ for (const prop of node.properties) {
+ this.checkDeclaration(prop);
+ }
+ } else if (node.type === "ArrayPattern") {
+ for (const elem of node.elements) {
+ if (elem) {
+ this.checkDeclaration(elem);
+ }
+ }
+ } else if (node.type === "ObjectProperty") {
+ this.checkDeclaration(node.value);
+ } else if (node.type === "RestElement") {
+ this.checkDeclaration(node.argument);
+ } else if (node.type === "AssignmentPattern") {
+ this.checkDeclaration(node.left);
+ }
+ }
+ checkDuplicateExports(node, exportName) {
+ if (this.exportedIdentifiers.has(exportName)) {
+ if (exportName === "default") {
+ this.raise(Errors.DuplicateDefaultExport, {
+ at: node
+ });
+ } else {
+ this.raise(Errors.DuplicateExport, {
+ at: node,
+ exportName
+ });
+ }
+ }
+ this.exportedIdentifiers.add(exportName);
+ }
+ parseExportSpecifiers(isInTypeExport) {
+ const nodes = [];
+ let first = true;
+ this.expect(5);
+ while (!this.eat(8)) {
+ if (first) {
+ first = false;
+ } else {
+ this.expect(12);
+ if (this.eat(8)) break;
+ }
+ const isMaybeTypeOnly = this.isContextual(130);
+ const isString = this.match(133);
+ const node = this.startNode();
+ node.local = this.parseModuleExportName();
+ nodes.push(this.parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly));
+ }
+ return nodes;
+ }
+ parseExportSpecifier(node, isString, isInTypeExport, isMaybeTypeOnly) {
+ if (this.eatContextual(93)) {
+ node.exported = this.parseModuleExportName();
+ } else if (isString) {
+ node.exported = cloneStringLiteral(node.local);
+ } else if (!node.exported) {
+ node.exported = cloneIdentifier(node.local);
+ }
+ return this.finishNode(node, "ExportSpecifier");
+ }
+ parseModuleExportName() {
+ if (this.match(133)) {
+ const result = this.parseStringLiteral(this.state.value);
+ const surrogate = result.value.match(loneSurrogate);
+ if (surrogate) {
+ this.raise(Errors.ModuleExportNameHasLoneSurrogate, {
+ at: result,
+ surrogateCharCode: surrogate[0].charCodeAt(0)
+ });
+ }
+ return result;
+ }
+ return this.parseIdentifier(true);
+ }
+ isJSONModuleImport(node) {
+ if (node.assertions != null) {
+ return node.assertions.some(({
+ key,
+ value
+ }) => {
+ return value.value === "json" && (key.type === "Identifier" ? key.name === "type" : key.value === "type");
+ });
+ }
+ return false;
+ }
+ checkImportReflection(node) {
+ const {
+ specifiers
+ } = node;
+ const singleBindingType = specifiers.length === 1 ? specifiers[0].type : null;
+ if (node.phase === "source") {
+ if (singleBindingType !== "ImportDefaultSpecifier") {
+ this.raise(Errors.SourcePhaseImportRequiresDefault, {
+ at: specifiers[0].loc.start
+ });
+ }
+ } else if (node.phase === "defer") {
+ if (singleBindingType !== "ImportNamespaceSpecifier") {
+ this.raise(Errors.DeferImportRequiresNamespace, {
+ at: specifiers[0].loc.start
+ });
+ }
+ } else if (node.module) {
+ var _node$assertions;
+ if (singleBindingType !== "ImportDefaultSpecifier") {
+ this.raise(Errors.ImportReflectionNotBinding, {
+ at: specifiers[0].loc.start
+ });
+ }
+ if (((_node$assertions = node.assertions) == null ? void 0 : _node$assertions.length) > 0) {
+ this.raise(Errors.ImportReflectionHasAssertion, {
+ at: node.specifiers[0].loc.start
+ });
+ }
+ }
+ }
+ checkJSONModuleImport(node) {
+ if (this.isJSONModuleImport(node) && node.type !== "ExportAllDeclaration") {
+ const {
+ specifiers
+ } = node;
+ if (specifiers != null) {
+ const nonDefaultNamedSpecifier = specifiers.find(specifier => {
+ let imported;
+ if (specifier.type === "ExportSpecifier") {
+ imported = specifier.local;
+ } else if (specifier.type === "ImportSpecifier") {
+ imported = specifier.imported;
+ }
+ if (imported !== undefined) {
+ return imported.type === "Identifier" ? imported.name !== "default" : imported.value !== "default";
+ }
+ });
+ if (nonDefaultNamedSpecifier !== undefined) {
+ this.raise(Errors.ImportJSONBindingNotDefault, {
+ at: nonDefaultNamedSpecifier.loc.start
+ });
+ }
+ }
+ }
+ }
+ isPotentialImportPhase(isExport) {
+ if (isExport) return false;
+ return this.isContextual(105) || this.isContextual(97) || this.isContextual(127);
+ }
+ applyImportPhase(node, isExport, phase, loc) {
+ if (isExport) {
+ return;
+ }
+ if (phase === "module") {
+ this.expectPlugin("importReflection", loc);
+ node.module = true;
+ } else if (this.hasPlugin("importReflection")) {
+ node.module = false;
+ }
+ if (phase === "source") {
+ this.expectPlugin("sourcePhaseImports", loc);
+ node.phase = "source";
+ } else if (phase === "defer") {
+ this.expectPlugin("deferredImportEvaluation", loc);
+ node.phase = "defer";
+ } else if (this.hasPlugin("sourcePhaseImports")) {
+ node.phase = null;
+ }
+ }
+ parseMaybeImportPhase(node, isExport) {
+ if (!this.isPotentialImportPhase(isExport)) {
+ this.applyImportPhase(node, isExport, null);
+ return null;
+ }
+ const phaseIdentifier = this.parseIdentifier(true);
+ const {
+ type
+ } = this.state;
+ const isImportPhase = tokenIsKeywordOrIdentifier(type) ? type !== 98 || this.lookaheadCharCode() === 102 : type !== 12;
+ if (isImportPhase) {
+ this.resetPreviousIdentifierLeadingComments(phaseIdentifier);
+ this.applyImportPhase(node, isExport, phaseIdentifier.name, phaseIdentifier.loc.start);
+ return null;
+ } else {
+ this.applyImportPhase(node, isExport, null);
+ return phaseIdentifier;
+ }
+ }
+ isPrecedingIdImportPhase(phase) {
+ const {
+ type
+ } = this.state;
+ return tokenIsIdentifier(type) ? type !== 98 || this.lookaheadCharCode() === 102 : type !== 12;
+ }
+ parseImport(node) {
+ if (this.match(133)) {
+ return this.parseImportSourceAndAttributes(node);
+ }
+ return this.parseImportSpecifiersAndAfter(node, this.parseMaybeImportPhase(node, false));
+ }
+ parseImportSpecifiersAndAfter(node, maybeDefaultIdentifier) {
+ node.specifiers = [];
+ const hasDefault = this.maybeParseDefaultImportSpecifier(node, maybeDefaultIdentifier);
+ const parseNext = !hasDefault || this.eat(12);
+ const hasStar = parseNext && this.maybeParseStarImportSpecifier(node);
+ if (parseNext && !hasStar) this.parseNamedImportSpecifiers(node);
+ this.expectContextual(98);
+ return this.parseImportSourceAndAttributes(node);
+ }
+ parseImportSourceAndAttributes(node) {
+ var _node$specifiers2;
+ (_node$specifiers2 = node.specifiers) != null ? _node$specifiers2 : node.specifiers = [];
+ node.source = this.parseImportSource();
+ this.maybeParseImportAttributes(node);
+ this.checkImportReflection(node);
+ this.checkJSONModuleImport(node);
+ this.semicolon();
+ return this.finishNode(node, "ImportDeclaration");
+ }
+ parseImportSource() {
+ if (!this.match(133)) this.unexpected();
+ return this.parseExprAtom();
+ }
+ parseImportSpecifierLocal(node, specifier, type) {
+ specifier.local = this.parseIdentifier();
+ node.specifiers.push(this.finishImportSpecifier(specifier, type));
+ }
+ finishImportSpecifier(specifier, type, bindingType = 8201) {
+ this.checkLVal(specifier.local, {
+ in: {
+ type
+ },
+ binding: bindingType
+ });
+ return this.finishNode(specifier, type);
+ }
+ parseImportAttributes() {
+ this.expect(5);
+ const attrs = [];
+ const attrNames = new Set();
+ do {
+ if (this.match(8)) {
+ break;
+ }
+ const node = this.startNode();
+ const keyName = this.state.value;
+ if (attrNames.has(keyName)) {
+ this.raise(Errors.ModuleAttributesWithDuplicateKeys, {
+ at: this.state.startLoc,
+ key: keyName
+ });
+ }
+ attrNames.add(keyName);
+ if (this.match(133)) {
+ node.key = this.parseStringLiteral(keyName);
+ } else {
+ node.key = this.parseIdentifier(true);
+ }
+ this.expect(14);
+ if (!this.match(133)) {
+ throw this.raise(Errors.ModuleAttributeInvalidValue, {
+ at: this.state.startLoc
+ });
+ }
+ node.value = this.parseStringLiteral(this.state.value);
+ attrs.push(this.finishNode(node, "ImportAttribute"));
+ } while (this.eat(12));
+ this.expect(8);
+ return attrs;
+ }
+ parseModuleAttributes() {
+ const attrs = [];
+ const attributes = new Set();
+ do {
+ const node = this.startNode();
+ node.key = this.parseIdentifier(true);
+ if (node.key.name !== "type") {
+ this.raise(Errors.ModuleAttributeDifferentFromType, {
+ at: node.key
+ });
+ }
+ if (attributes.has(node.key.name)) {
+ this.raise(Errors.ModuleAttributesWithDuplicateKeys, {
+ at: node.key,
+ key: node.key.name
+ });
+ }
+ attributes.add(node.key.name);
+ this.expect(14);
+ if (!this.match(133)) {
+ throw this.raise(Errors.ModuleAttributeInvalidValue, {
+ at: this.state.startLoc
+ });
+ }
+ node.value = this.parseStringLiteral(this.state.value);
+ attrs.push(this.finishNode(node, "ImportAttribute"));
+ } while (this.eat(12));
+ return attrs;
+ }
+ maybeParseImportAttributes(node) {
+ let attributes;
+ let useWith = false;
+ if (this.match(76)) {
+ if (this.hasPrecedingLineBreak() && this.lookaheadCharCode() === 40) {
+ return;
+ }
+ this.next();
+ {
+ if (this.hasPlugin("moduleAttributes")) {
+ attributes = this.parseModuleAttributes();
+ } else {
+ this.expectImportAttributesPlugin();
+ attributes = this.parseImportAttributes();
+ }
+ }
+ useWith = true;
+ } else if (this.isContextual(94) && !this.hasPrecedingLineBreak()) {
+ if (this.hasPlugin("importAttributes")) {
+ if (this.getPluginOption("importAttributes", "deprecatedAssertSyntax") !== true) {
+ this.raise(Errors.ImportAttributesUseAssert, {
+ at: this.state.startLoc
+ });
+ }
+ this.addExtra(node, "deprecatedAssertSyntax", true);
+ } else {
+ this.expectOnePlugin(["importAttributes", "importAssertions"]);
+ }
+ this.next();
+ attributes = this.parseImportAttributes();
+ } else if (this.hasPlugin("importAttributes") || this.hasPlugin("importAssertions")) {
+ attributes = [];
+ } else {
+ if (this.hasPlugin("moduleAttributes")) {
+ attributes = [];
+ } else return;
+ }
+ if (!useWith && this.hasPlugin("importAssertions")) {
+ node.assertions = attributes;
+ } else {
+ node.attributes = attributes;
+ }
+ }
+ maybeParseDefaultImportSpecifier(node, maybeDefaultIdentifier) {
+ if (maybeDefaultIdentifier) {
+ const specifier = this.startNodeAtNode(maybeDefaultIdentifier);
+ specifier.local = maybeDefaultIdentifier;
+ node.specifiers.push(this.finishImportSpecifier(specifier, "ImportDefaultSpecifier"));
+ return true;
+ } else if (tokenIsKeywordOrIdentifier(this.state.type)) {
+ this.parseImportSpecifierLocal(node, this.startNode(), "ImportDefaultSpecifier");
+ return true;
+ }
+ return false;
+ }
+ maybeParseStarImportSpecifier(node) {
+ if (this.match(55)) {
+ const specifier = this.startNode();
+ this.next();
+ this.expectContextual(93);
+ this.parseImportSpecifierLocal(node, specifier, "ImportNamespaceSpecifier");
+ return true;
+ }
+ return false;
+ }
+ parseNamedImportSpecifiers(node) {
+ let first = true;
+ this.expect(5);
+ while (!this.eat(8)) {
+ if (first) {
+ first = false;
+ } else {
+ if (this.eat(14)) {
+ throw this.raise(Errors.DestructureNamedImport, {
+ at: this.state.startLoc
+ });
+ }
+ this.expect(12);
+ if (this.eat(8)) break;
+ }
+ const specifier = this.startNode();
+ const importedIsString = this.match(133);
+ const isMaybeTypeOnly = this.isContextual(130);
+ specifier.imported = this.parseModuleExportName();
+ const importSpecifier = this.parseImportSpecifier(specifier, importedIsString, node.importKind === "type" || node.importKind === "typeof", isMaybeTypeOnly, undefined);
+ node.specifiers.push(importSpecifier);
+ }
+ }
+ parseImportSpecifier(specifier, importedIsString, isInTypeOnlyImport, isMaybeTypeOnly, bindingType) {
+ if (this.eatContextual(93)) {
+ specifier.local = this.parseIdentifier();
+ } else {
+ const {
+ imported
+ } = specifier;
+ if (importedIsString) {
+ throw this.raise(Errors.ImportBindingIsString, {
+ at: specifier,
+ importName: imported.value
+ });
+ }
+ this.checkReservedWord(imported.name, specifier.loc.start, true, true);
+ if (!specifier.local) {
+ specifier.local = cloneIdentifier(imported);
+ }
+ }
+ return this.finishImportSpecifier(specifier, "ImportSpecifier", bindingType);
+ }
+ isThisParam(param) {
+ return param.type === "Identifier" && param.name === "this";
+ }
+}
+class Parser extends StatementParser {
+ constructor(options, input) {
+ options = getOptions(options);
+ super(options, input);
+ this.options = options;
+ this.initializeScopes();
+ this.plugins = pluginsMap(this.options.plugins);
+ this.filename = options.sourceFilename;
+ }
+ getScopeHandler() {
+ return ScopeHandler;
+ }
+ parse() {
+ this.enterInitialScopes();
+ const file = this.startNode();
+ const program = this.startNode();
+ this.nextToken();
+ file.errors = null;
+ this.parseTopLevel(file, program);
+ file.errors = this.state.errors;
+ return file;
+ }
+}
+function pluginsMap(plugins) {
+ const pluginMap = new Map();
+ for (const plugin of plugins) {
+ const [name, options] = Array.isArray(plugin) ? plugin : [plugin, {}];
+ if (!pluginMap.has(name)) pluginMap.set(name, options || {});
+ }
+ return pluginMap;
+}
+function parse(input, options) {
+ var _options;
+ if (((_options = options) == null ? void 0 : _options.sourceType) === "unambiguous") {
+ options = Object.assign({}, options);
+ try {
+ options.sourceType = "module";
+ const parser = getParser(options, input);
+ const ast = parser.parse();
+ if (parser.sawUnambiguousESM) {
+ return ast;
+ }
+ if (parser.ambiguousScriptDifferentAst) {
+ try {
+ options.sourceType = "script";
+ return getParser(options, input).parse();
+ } catch (_unused) {}
+ } else {
+ ast.program.sourceType = "script";
+ }
+ return ast;
+ } catch (moduleError) {
+ try {
+ options.sourceType = "script";
+ return getParser(options, input).parse();
+ } catch (_unused2) {}
+ throw moduleError;
+ }
+ } else {
+ return getParser(options, input).parse();
+ }
+}
+function parseExpression(input, options) {
+ const parser = getParser(options, input);
+ if (parser.options.strictMode) {
+ parser.state.strict = true;
+ }
+ return parser.getExpression();
+}
+function generateExportedTokenTypes(internalTokenTypes) {
+ const tokenTypes = {};
+ for (const typeName of Object.keys(internalTokenTypes)) {
+ tokenTypes[typeName] = getExportedToken(internalTokenTypes[typeName]);
+ }
+ return tokenTypes;
+}
+const tokTypes = generateExportedTokenTypes(tt);
+function getParser(options, input) {
+ let cls = Parser;
+ if (options != null && options.plugins) {
+ validatePlugins(options.plugins);
+ cls = getParserClass(options.plugins);
+ }
+ return new cls(options, input);
+}
+const parserClassCache = {};
+function getParserClass(pluginsFromOptions) {
+ const pluginList = mixinPluginNames.filter(name => hasPlugin(pluginsFromOptions, name));
+ const key = pluginList.join("/");
+ let cls = parserClassCache[key];
+ if (!cls) {
+ cls = Parser;
+ for (const plugin of pluginList) {
+ cls = mixinPlugins[plugin](cls);
+ }
+ parserClassCache[key] = cls;
+ }
+ return cls;
+}
+exports.parse = parse;
+exports.parseExpression = parseExpression;
+exports.tokTypes = tokTypes;
+//# sourceMappingURL=index.js.map
diff --git a/.output/server/node_modules/@babel/parser/package.json b/.output/server/node_modules/@babel/parser/package.json
new file mode 100644
index 0000000..cbe3a52
--- /dev/null
+++ b/.output/server/node_modules/@babel/parser/package.json
@@ -0,0 +1,46 @@
+{
+ "name": "@babel/parser",
+ "version": "7.23.5",
+ "description": "A JavaScript parser",
+ "author": "The Babel Team (https://babel.dev/team)",
+ "homepage": "https://babel.dev/docs/en/next/babel-parser",
+ "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A+parser+%28babylon%29%22+is%3Aopen",
+ "license": "MIT",
+ "publishConfig": {
+ "access": "public"
+ },
+ "keywords": [
+ "babel",
+ "javascript",
+ "parser",
+ "tc39",
+ "ecmascript",
+ "@babel/parser"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/babel/babel.git",
+ "directory": "packages/babel-parser"
+ },
+ "main": "./lib/index.js",
+ "types": "./typings/babel-parser.d.ts",
+ "files": [
+ "bin",
+ "lib",
+ "typings/babel-parser.d.ts",
+ "index.cjs"
+ ],
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "devDependencies": {
+ "@babel/code-frame": "^7.23.5",
+ "@babel/helper-check-duplicate-nodes": "^7.22.5",
+ "@babel/helper-fixtures": "^7.23.4",
+ "@babel/helper-string-parser": "^7.23.4",
+ "@babel/helper-validator-identifier": "^7.22.20",
+ "charcodes": "^0.2.0"
+ },
+ "bin": "./bin/babel-parser.js",
+ "type": "commonjs"
+}
\ No newline at end of file
diff --git a/.output/server/node_modules/@ctrl/tinycolor/dist/conversion.js b/.output/server/node_modules/@ctrl/tinycolor/dist/conversion.js
new file mode 100644
index 0000000..15782bd
--- /dev/null
+++ b/.output/server/node_modules/@ctrl/tinycolor/dist/conversion.js
@@ -0,0 +1,250 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.numberInputToObject = exports.parseIntFromHex = exports.convertHexToDecimal = exports.convertDecimalToHex = exports.rgbaToArgbHex = exports.rgbaToHex = exports.rgbToHex = exports.hsvToRgb = exports.rgbToHsv = exports.hslToRgb = exports.rgbToHsl = exports.rgbToRgb = void 0;
+var util_js_1 = require("./util.js");
+// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:
+//
+/**
+ * Handle bounds / percentage checking to conform to CSS color spec
+ *
+ * *Assumes:* r, g, b in [0, 255] or [0, 1]
+ * *Returns:* { r, g, b } in [0, 255]
+ */
+function rgbToRgb(r, g, b) {
+ return {
+ r: (0, util_js_1.bound01)(r, 255) * 255,
+ g: (0, util_js_1.bound01)(g, 255) * 255,
+ b: (0, util_js_1.bound01)(b, 255) * 255,
+ };
+}
+exports.rgbToRgb = rgbToRgb;
+/**
+ * Converts an RGB color value to HSL.
+ * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]
+ * *Returns:* { h, s, l } in [0,1]
+ */
+function rgbToHsl(r, g, b) {
+ r = (0, util_js_1.bound01)(r, 255);
+ g = (0, util_js_1.bound01)(g, 255);
+ b = (0, util_js_1.bound01)(b, 255);
+ var max = Math.max(r, g, b);
+ var min = Math.min(r, g, b);
+ var h = 0;
+ var s = 0;
+ var l = (max + min) / 2;
+ if (max === min) {
+ s = 0;
+ h = 0; // achromatic
+ }
+ else {
+ var d = max - min;
+ s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
+ switch (max) {
+ case r:
+ h = (g - b) / d + (g < b ? 6 : 0);
+ break;
+ case g:
+ h = (b - r) / d + 2;
+ break;
+ case b:
+ h = (r - g) / d + 4;
+ break;
+ default:
+ break;
+ }
+ h /= 6;
+ }
+ return { h: h, s: s, l: l };
+}
+exports.rgbToHsl = rgbToHsl;
+function hue2rgb(p, q, t) {
+ if (t < 0) {
+ t += 1;
+ }
+ if (t > 1) {
+ t -= 1;
+ }
+ if (t < 1 / 6) {
+ return p + (q - p) * (6 * t);
+ }
+ if (t < 1 / 2) {
+ return q;
+ }
+ if (t < 2 / 3) {
+ return p + (q - p) * (2 / 3 - t) * 6;
+ }
+ return p;
+}
+/**
+ * Converts an HSL color value to RGB.
+ *
+ * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]
+ * *Returns:* { r, g, b } in the set [0, 255]
+ */
+function hslToRgb(h, s, l) {
+ var r;
+ var g;
+ var b;
+ h = (0, util_js_1.bound01)(h, 360);
+ s = (0, util_js_1.bound01)(s, 100);
+ l = (0, util_js_1.bound01)(l, 100);
+ if (s === 0) {
+ // achromatic
+ g = l;
+ b = l;
+ r = l;
+ }
+ else {
+ var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
+ var p = 2 * l - q;
+ r = hue2rgb(p, q, h + 1 / 3);
+ g = hue2rgb(p, q, h);
+ b = hue2rgb(p, q, h - 1 / 3);
+ }
+ return { r: r * 255, g: g * 255, b: b * 255 };
+}
+exports.hslToRgb = hslToRgb;
+/**
+ * Converts an RGB color value to HSV
+ *
+ * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]
+ * *Returns:* { h, s, v } in [0,1]
+ */
+function rgbToHsv(r, g, b) {
+ r = (0, util_js_1.bound01)(r, 255);
+ g = (0, util_js_1.bound01)(g, 255);
+ b = (0, util_js_1.bound01)(b, 255);
+ var max = Math.max(r, g, b);
+ var min = Math.min(r, g, b);
+ var h = 0;
+ var v = max;
+ var d = max - min;
+ var s = max === 0 ? 0 : d / max;
+ if (max === min) {
+ h = 0; // achromatic
+ }
+ else {
+ switch (max) {
+ case r:
+ h = (g - b) / d + (g < b ? 6 : 0);
+ break;
+ case g:
+ h = (b - r) / d + 2;
+ break;
+ case b:
+ h = (r - g) / d + 4;
+ break;
+ default:
+ break;
+ }
+ h /= 6;
+ }
+ return { h: h, s: s, v: v };
+}
+exports.rgbToHsv = rgbToHsv;
+/**
+ * Converts an HSV color value to RGB.
+ *
+ * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]
+ * *Returns:* { r, g, b } in the set [0, 255]
+ */
+function hsvToRgb(h, s, v) {
+ h = (0, util_js_1.bound01)(h, 360) * 6;
+ s = (0, util_js_1.bound01)(s, 100);
+ v = (0, util_js_1.bound01)(v, 100);
+ var i = Math.floor(h);
+ var f = h - i;
+ var p = v * (1 - s);
+ var q = v * (1 - f * s);
+ var t = v * (1 - (1 - f) * s);
+ var mod = i % 6;
+ var r = [v, q, p, p, t, v][mod];
+ var g = [t, v, v, q, p, p][mod];
+ var b = [p, p, t, v, v, q][mod];
+ return { r: r * 255, g: g * 255, b: b * 255 };
+}
+exports.hsvToRgb = hsvToRgb;
+/**
+ * Converts an RGB color to hex
+ *
+ * Assumes r, g, and b are contained in the set [0, 255]
+ * Returns a 3 or 6 character hex
+ */
+function rgbToHex(r, g, b, allow3Char) {
+ var hex = [
+ (0, util_js_1.pad2)(Math.round(r).toString(16)),
+ (0, util_js_1.pad2)(Math.round(g).toString(16)),
+ (0, util_js_1.pad2)(Math.round(b).toString(16)),
+ ];
+ // Return a 3 character hex if possible
+ if (allow3Char &&
+ hex[0].startsWith(hex[0].charAt(1)) &&
+ hex[1].startsWith(hex[1].charAt(1)) &&
+ hex[2].startsWith(hex[2].charAt(1))) {
+ return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);
+ }
+ return hex.join('');
+}
+exports.rgbToHex = rgbToHex;
+/**
+ * Converts an RGBA color plus alpha transparency to hex
+ *
+ * Assumes r, g, b are contained in the set [0, 255] and
+ * a in [0, 1]. Returns a 4 or 8 character rgba hex
+ */
+// eslint-disable-next-line max-params
+function rgbaToHex(r, g, b, a, allow4Char) {
+ var hex = [
+ (0, util_js_1.pad2)(Math.round(r).toString(16)),
+ (0, util_js_1.pad2)(Math.round(g).toString(16)),
+ (0, util_js_1.pad2)(Math.round(b).toString(16)),
+ (0, util_js_1.pad2)(convertDecimalToHex(a)),
+ ];
+ // Return a 4 character hex if possible
+ if (allow4Char &&
+ hex[0].startsWith(hex[0].charAt(1)) &&
+ hex[1].startsWith(hex[1].charAt(1)) &&
+ hex[2].startsWith(hex[2].charAt(1)) &&
+ hex[3].startsWith(hex[3].charAt(1))) {
+ return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);
+ }
+ return hex.join('');
+}
+exports.rgbaToHex = rgbaToHex;
+/**
+ * Converts an RGBA color to an ARGB Hex8 string
+ * Rarely used, but required for "toFilter()"
+ */
+function rgbaToArgbHex(r, g, b, a) {
+ var hex = [
+ (0, util_js_1.pad2)(convertDecimalToHex(a)),
+ (0, util_js_1.pad2)(Math.round(r).toString(16)),
+ (0, util_js_1.pad2)(Math.round(g).toString(16)),
+ (0, util_js_1.pad2)(Math.round(b).toString(16)),
+ ];
+ return hex.join('');
+}
+exports.rgbaToArgbHex = rgbaToArgbHex;
+/** Converts a decimal to a hex value */
+function convertDecimalToHex(d) {
+ return Math.round(parseFloat(d) * 255).toString(16);
+}
+exports.convertDecimalToHex = convertDecimalToHex;
+/** Converts a hex value to a decimal */
+function convertHexToDecimal(h) {
+ return parseIntFromHex(h) / 255;
+}
+exports.convertHexToDecimal = convertHexToDecimal;
+/** Parse a base-16 hex value into a base-10 integer */
+function parseIntFromHex(val) {
+ return parseInt(val, 16);
+}
+exports.parseIntFromHex = parseIntFromHex;
+function numberInputToObject(color) {
+ return {
+ r: color >> 16,
+ g: (color & 0xff00) >> 8,
+ b: color & 0xff,
+ };
+}
+exports.numberInputToObject = numberInputToObject;
diff --git a/.output/server/node_modules/@ctrl/tinycolor/dist/css-color-names.js b/.output/server/node_modules/@ctrl/tinycolor/dist/css-color-names.js
new file mode 100644
index 0000000..bb6656e
--- /dev/null
+++ b/.output/server/node_modules/@ctrl/tinycolor/dist/css-color-names.js
@@ -0,0 +1,157 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.names = void 0;
+// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json
+/**
+ * @hidden
+ */
+exports.names = {
+ aliceblue: '#f0f8ff',
+ antiquewhite: '#faebd7',
+ aqua: '#00ffff',
+ aquamarine: '#7fffd4',
+ azure: '#f0ffff',
+ beige: '#f5f5dc',
+ bisque: '#ffe4c4',
+ black: '#000000',
+ blanchedalmond: '#ffebcd',
+ blue: '#0000ff',
+ blueviolet: '#8a2be2',
+ brown: '#a52a2a',
+ burlywood: '#deb887',
+ cadetblue: '#5f9ea0',
+ chartreuse: '#7fff00',
+ chocolate: '#d2691e',
+ coral: '#ff7f50',
+ cornflowerblue: '#6495ed',
+ cornsilk: '#fff8dc',
+ crimson: '#dc143c',
+ cyan: '#00ffff',
+ darkblue: '#00008b',
+ darkcyan: '#008b8b',
+ darkgoldenrod: '#b8860b',
+ darkgray: '#a9a9a9',
+ darkgreen: '#006400',
+ darkgrey: '#a9a9a9',
+ darkkhaki: '#bdb76b',
+ darkmagenta: '#8b008b',
+ darkolivegreen: '#556b2f',
+ darkorange: '#ff8c00',
+ darkorchid: '#9932cc',
+ darkred: '#8b0000',
+ darksalmon: '#e9967a',
+ darkseagreen: '#8fbc8f',
+ darkslateblue: '#483d8b',
+ darkslategray: '#2f4f4f',
+ darkslategrey: '#2f4f4f',
+ darkturquoise: '#00ced1',
+ darkviolet: '#9400d3',
+ deeppink: '#ff1493',
+ deepskyblue: '#00bfff',
+ dimgray: '#696969',
+ dimgrey: '#696969',
+ dodgerblue: '#1e90ff',
+ firebrick: '#b22222',
+ floralwhite: '#fffaf0',
+ forestgreen: '#228b22',
+ fuchsia: '#ff00ff',
+ gainsboro: '#dcdcdc',
+ ghostwhite: '#f8f8ff',
+ goldenrod: '#daa520',
+ gold: '#ffd700',
+ gray: '#808080',
+ green: '#008000',
+ greenyellow: '#adff2f',
+ grey: '#808080',
+ honeydew: '#f0fff0',
+ hotpink: '#ff69b4',
+ indianred: '#cd5c5c',
+ indigo: '#4b0082',
+ ivory: '#fffff0',
+ khaki: '#f0e68c',
+ lavenderblush: '#fff0f5',
+ lavender: '#e6e6fa',
+ lawngreen: '#7cfc00',
+ lemonchiffon: '#fffacd',
+ lightblue: '#add8e6',
+ lightcoral: '#f08080',
+ lightcyan: '#e0ffff',
+ lightgoldenrodyellow: '#fafad2',
+ lightgray: '#d3d3d3',
+ lightgreen: '#90ee90',
+ lightgrey: '#d3d3d3',
+ lightpink: '#ffb6c1',
+ lightsalmon: '#ffa07a',
+ lightseagreen: '#20b2aa',
+ lightskyblue: '#87cefa',
+ lightslategray: '#778899',
+ lightslategrey: '#778899',
+ lightsteelblue: '#b0c4de',
+ lightyellow: '#ffffe0',
+ lime: '#00ff00',
+ limegreen: '#32cd32',
+ linen: '#faf0e6',
+ magenta: '#ff00ff',
+ maroon: '#800000',
+ mediumaquamarine: '#66cdaa',
+ mediumblue: '#0000cd',
+ mediumorchid: '#ba55d3',
+ mediumpurple: '#9370db',
+ mediumseagreen: '#3cb371',
+ mediumslateblue: '#7b68ee',
+ mediumspringgreen: '#00fa9a',
+ mediumturquoise: '#48d1cc',
+ mediumvioletred: '#c71585',
+ midnightblue: '#191970',
+ mintcream: '#f5fffa',
+ mistyrose: '#ffe4e1',
+ moccasin: '#ffe4b5',
+ navajowhite: '#ffdead',
+ navy: '#000080',
+ oldlace: '#fdf5e6',
+ olive: '#808000',
+ olivedrab: '#6b8e23',
+ orange: '#ffa500',
+ orangered: '#ff4500',
+ orchid: '#da70d6',
+ palegoldenrod: '#eee8aa',
+ palegreen: '#98fb98',
+ paleturquoise: '#afeeee',
+ palevioletred: '#db7093',
+ papayawhip: '#ffefd5',
+ peachpuff: '#ffdab9',
+ peru: '#cd853f',
+ pink: '#ffc0cb',
+ plum: '#dda0dd',
+ powderblue: '#b0e0e6',
+ purple: '#800080',
+ rebeccapurple: '#663399',
+ red: '#ff0000',
+ rosybrown: '#bc8f8f',
+ royalblue: '#4169e1',
+ saddlebrown: '#8b4513',
+ salmon: '#fa8072',
+ sandybrown: '#f4a460',
+ seagreen: '#2e8b57',
+ seashell: '#fff5ee',
+ sienna: '#a0522d',
+ silver: '#c0c0c0',
+ skyblue: '#87ceeb',
+ slateblue: '#6a5acd',
+ slategray: '#708090',
+ slategrey: '#708090',
+ snow: '#fffafa',
+ springgreen: '#00ff7f',
+ steelblue: '#4682b4',
+ tan: '#d2b48c',
+ teal: '#008080',
+ thistle: '#d8bfd8',
+ tomato: '#ff6347',
+ turquoise: '#40e0d0',
+ violet: '#ee82ee',
+ wheat: '#f5deb3',
+ white: '#ffffff',
+ whitesmoke: '#f5f5f5',
+ yellow: '#ffff00',
+ yellowgreen: '#9acd32',
+};
diff --git a/.output/server/node_modules/@ctrl/tinycolor/dist/format-input.js b/.output/server/node_modules/@ctrl/tinycolor/dist/format-input.js
new file mode 100644
index 0000000..7636869
--- /dev/null
+++ b/.output/server/node_modules/@ctrl/tinycolor/dist/format-input.js
@@ -0,0 +1,189 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.isValidCSSUnit = exports.stringInputToObject = exports.inputToRGB = void 0;
+/* eslint-disable @typescript-eslint/no-redundant-type-constituents */
+var conversion_js_1 = require("./conversion.js");
+var css_color_names_js_1 = require("./css-color-names.js");
+var util_js_1 = require("./util.js");
+/**
+ * Given a string or object, convert that input to RGB
+ *
+ * Possible string inputs:
+ * ```
+ * "red"
+ * "#f00" or "f00"
+ * "#ff0000" or "ff0000"
+ * "#ff000000" or "ff000000"
+ * "rgb 255 0 0" or "rgb (255, 0, 0)"
+ * "rgb 1.0 0 0" or "rgb (1, 0, 0)"
+ * "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1"
+ * "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1"
+ * "hsl(0, 100%, 50%)" or "hsl 0 100% 50%"
+ * "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1"
+ * "hsv(0, 100%, 100%)" or "hsv 0 100% 100%"
+ * ```
+ */
+function inputToRGB(color) {
+ var rgb = { r: 0, g: 0, b: 0 };
+ var a = 1;
+ var s = null;
+ var v = null;
+ var l = null;
+ var ok = false;
+ var format = false;
+ if (typeof color === 'string') {
+ color = stringInputToObject(color);
+ }
+ if (typeof color === 'object') {
+ if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {
+ rgb = (0, conversion_js_1.rgbToRgb)(color.r, color.g, color.b);
+ ok = true;
+ format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';
+ }
+ else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {
+ s = (0, util_js_1.convertToPercentage)(color.s);
+ v = (0, util_js_1.convertToPercentage)(color.v);
+ rgb = (0, conversion_js_1.hsvToRgb)(color.h, s, v);
+ ok = true;
+ format = 'hsv';
+ }
+ else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {
+ s = (0, util_js_1.convertToPercentage)(color.s);
+ l = (0, util_js_1.convertToPercentage)(color.l);
+ rgb = (0, conversion_js_1.hslToRgb)(color.h, s, l);
+ ok = true;
+ format = 'hsl';
+ }
+ if (Object.prototype.hasOwnProperty.call(color, 'a')) {
+ a = color.a;
+ }
+ }
+ a = (0, util_js_1.boundAlpha)(a);
+ return {
+ ok: ok,
+ format: color.format || format,
+ r: Math.min(255, Math.max(rgb.r, 0)),
+ g: Math.min(255, Math.max(rgb.g, 0)),
+ b: Math.min(255, Math.max(rgb.b, 0)),
+ a: a,
+ };
+}
+exports.inputToRGB = inputToRGB;
+//
+var CSS_INTEGER = '[-\\+]?\\d+%?';
+//
+var CSS_NUMBER = '[-\\+]?\\d*\\.\\d+%?';
+// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.
+var CSS_UNIT = "(?:".concat(CSS_NUMBER, ")|(?:").concat(CSS_INTEGER, ")");
+// Actual matching.
+// Parentheses and commas are optional, but not required.
+// Whitespace can take the place of commas or opening paren
+var PERMISSIVE_MATCH3 = "[\\s|\\(]+(".concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")\\s*\\)?");
+var PERMISSIVE_MATCH4 = "[\\s|\\(]+(".concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")\\s*\\)?");
+var matchers = {
+ CSS_UNIT: new RegExp(CSS_UNIT),
+ rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),
+ rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),
+ hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),
+ hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),
+ hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),
+ hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),
+ hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
+ hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
+ hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
+ hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
+};
+/**
+ * Permissive string parsing. Take in a number of formats, and output an object
+ * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`
+ */
+function stringInputToObject(color) {
+ color = color.trim().toLowerCase();
+ if (color.length === 0) {
+ return false;
+ }
+ var named = false;
+ if (css_color_names_js_1.names[color]) {
+ color = css_color_names_js_1.names[color];
+ named = true;
+ }
+ else if (color === 'transparent') {
+ return { r: 0, g: 0, b: 0, a: 0, format: 'name' };
+ }
+ // Try to match string input using regular expressions.
+ // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]
+ // Just return an object and let the conversion functions handle that.
+ // This way the result will be the same whether the tinycolor is initialized with string or object.
+ var match = matchers.rgb.exec(color);
+ if (match) {
+ return { r: match[1], g: match[2], b: match[3] };
+ }
+ match = matchers.rgba.exec(color);
+ if (match) {
+ return { r: match[1], g: match[2], b: match[3], a: match[4] };
+ }
+ match = matchers.hsl.exec(color);
+ if (match) {
+ return { h: match[1], s: match[2], l: match[3] };
+ }
+ match = matchers.hsla.exec(color);
+ if (match) {
+ return { h: match[1], s: match[2], l: match[3], a: match[4] };
+ }
+ match = matchers.hsv.exec(color);
+ if (match) {
+ return { h: match[1], s: match[2], v: match[3] };
+ }
+ match = matchers.hsva.exec(color);
+ if (match) {
+ return { h: match[1], s: match[2], v: match[3], a: match[4] };
+ }
+ match = matchers.hex8.exec(color);
+ if (match) {
+ return {
+ r: (0, conversion_js_1.parseIntFromHex)(match[1]),
+ g: (0, conversion_js_1.parseIntFromHex)(match[2]),
+ b: (0, conversion_js_1.parseIntFromHex)(match[3]),
+ a: (0, conversion_js_1.convertHexToDecimal)(match[4]),
+ format: named ? 'name' : 'hex8',
+ };
+ }
+ match = matchers.hex6.exec(color);
+ if (match) {
+ return {
+ r: (0, conversion_js_1.parseIntFromHex)(match[1]),
+ g: (0, conversion_js_1.parseIntFromHex)(match[2]),
+ b: (0, conversion_js_1.parseIntFromHex)(match[3]),
+ format: named ? 'name' : 'hex',
+ };
+ }
+ match = matchers.hex4.exec(color);
+ if (match) {
+ return {
+ r: (0, conversion_js_1.parseIntFromHex)(match[1] + match[1]),
+ g: (0, conversion_js_1.parseIntFromHex)(match[2] + match[2]),
+ b: (0, conversion_js_1.parseIntFromHex)(match[3] + match[3]),
+ a: (0, conversion_js_1.convertHexToDecimal)(match[4] + match[4]),
+ format: named ? 'name' : 'hex8',
+ };
+ }
+ match = matchers.hex3.exec(color);
+ if (match) {
+ return {
+ r: (0, conversion_js_1.parseIntFromHex)(match[1] + match[1]),
+ g: (0, conversion_js_1.parseIntFromHex)(match[2] + match[2]),
+ b: (0, conversion_js_1.parseIntFromHex)(match[3] + match[3]),
+ format: named ? 'name' : 'hex',
+ };
+ }
+ return false;
+}
+exports.stringInputToObject = stringInputToObject;
+/**
+ * Check to see if it looks like a CSS unit
+ * (see `matchers` above for definition).
+ */
+function isValidCSSUnit(color) {
+ return Boolean(matchers.CSS_UNIT.exec(String(color)));
+}
+exports.isValidCSSUnit = isValidCSSUnit;
diff --git a/.output/server/node_modules/@ctrl/tinycolor/dist/from-ratio.js b/.output/server/node_modules/@ctrl/tinycolor/dist/from-ratio.js
new file mode 100644
index 0000000..14e9d15
--- /dev/null
+++ b/.output/server/node_modules/@ctrl/tinycolor/dist/from-ratio.js
@@ -0,0 +1,30 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.legacyRandom = exports.fromRatio = void 0;
+var index_js_1 = require("./index.js");
+var util_js_1 = require("./util.js");
+/**
+ * If input is an object, force 1 into "1.0" to handle ratios properly
+ * String input requires "1.0" as input, so 1 will be treated as 1
+ */
+function fromRatio(ratio, opts) {
+ var newColor = {
+ r: (0, util_js_1.convertToPercentage)(ratio.r),
+ g: (0, util_js_1.convertToPercentage)(ratio.g),
+ b: (0, util_js_1.convertToPercentage)(ratio.b),
+ };
+ if (ratio.a !== undefined) {
+ newColor.a = Number(ratio.a);
+ }
+ return new index_js_1.TinyColor(newColor, opts);
+}
+exports.fromRatio = fromRatio;
+/** old random function */
+function legacyRandom() {
+ return new index_js_1.TinyColor({
+ r: Math.random(),
+ g: Math.random(),
+ b: Math.random(),
+ });
+}
+exports.legacyRandom = legacyRandom;
diff --git a/.output/server/node_modules/@ctrl/tinycolor/dist/index.js b/.output/server/node_modules/@ctrl/tinycolor/dist/index.js
new file mode 100644
index 0000000..c9bc1d9
--- /dev/null
+++ b/.output/server/node_modules/@ctrl/tinycolor/dist/index.js
@@ -0,0 +1,512 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.tinycolor = exports.TinyColor = void 0;
+var conversion_js_1 = require("./conversion.js");
+var css_color_names_js_1 = require("./css-color-names.js");
+var format_input_1 = require("./format-input");
+var util_js_1 = require("./util.js");
+var TinyColor = /** @class */ (function () {
+ function TinyColor(color, opts) {
+ if (color === void 0) { color = ''; }
+ if (opts === void 0) { opts = {}; }
+ var _a;
+ // If input is already a tinycolor, return itself
+ if (color instanceof TinyColor) {
+ // eslint-disable-next-line no-constructor-return
+ return color;
+ }
+ if (typeof color === 'number') {
+ color = (0, conversion_js_1.numberInputToObject)(color);
+ }
+ this.originalInput = color;
+ var rgb = (0, format_input_1.inputToRGB)(color);
+ this.originalInput = color;
+ this.r = rgb.r;
+ this.g = rgb.g;
+ this.b = rgb.b;
+ this.a = rgb.a;
+ this.roundA = Math.round(100 * this.a) / 100;
+ this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;
+ this.gradientType = opts.gradientType;
+ // Don't let the range of [0,255] come back in [0,1].
+ // Potentially lose a little bit of precision here, but will fix issues where
+ // .5 gets interpreted as half of the total, instead of half of 1
+ // If it was supposed to be 128, this was already taken care of by `inputToRgb`
+ if (this.r < 1) {
+ this.r = Math.round(this.r);
+ }
+ if (this.g < 1) {
+ this.g = Math.round(this.g);
+ }
+ if (this.b < 1) {
+ this.b = Math.round(this.b);
+ }
+ this.isValid = rgb.ok;
+ }
+ TinyColor.prototype.isDark = function () {
+ return this.getBrightness() < 128;
+ };
+ TinyColor.prototype.isLight = function () {
+ return !this.isDark();
+ };
+ /**
+ * Returns the perceived brightness of the color, from 0-255.
+ */
+ TinyColor.prototype.getBrightness = function () {
+ // http://www.w3.org/TR/AERT#color-contrast
+ var rgb = this.toRgb();
+ return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;
+ };
+ /**
+ * Returns the perceived luminance of a color, from 0-1.
+ */
+ TinyColor.prototype.getLuminance = function () {
+ // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef
+ var rgb = this.toRgb();
+ var R;
+ var G;
+ var B;
+ var RsRGB = rgb.r / 255;
+ var GsRGB = rgb.g / 255;
+ var BsRGB = rgb.b / 255;
+ if (RsRGB <= 0.03928) {
+ R = RsRGB / 12.92;
+ }
+ else {
+ // eslint-disable-next-line prefer-exponentiation-operator
+ R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);
+ }
+ if (GsRGB <= 0.03928) {
+ G = GsRGB / 12.92;
+ }
+ else {
+ // eslint-disable-next-line prefer-exponentiation-operator
+ G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);
+ }
+ if (BsRGB <= 0.03928) {
+ B = BsRGB / 12.92;
+ }
+ else {
+ // eslint-disable-next-line prefer-exponentiation-operator
+ B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);
+ }
+ return 0.2126 * R + 0.7152 * G + 0.0722 * B;
+ };
+ /**
+ * Returns the alpha value of a color, from 0-1.
+ */
+ TinyColor.prototype.getAlpha = function () {
+ return this.a;
+ };
+ /**
+ * Sets the alpha value on the current color.
+ *
+ * @param alpha - The new alpha value. The accepted range is 0-1.
+ */
+ TinyColor.prototype.setAlpha = function (alpha) {
+ this.a = (0, util_js_1.boundAlpha)(alpha);
+ this.roundA = Math.round(100 * this.a) / 100;
+ return this;
+ };
+ /**
+ * Returns whether the color is monochrome.
+ */
+ TinyColor.prototype.isMonochrome = function () {
+ var s = this.toHsl().s;
+ return s === 0;
+ };
+ /**
+ * Returns the object as a HSVA object.
+ */
+ TinyColor.prototype.toHsv = function () {
+ var hsv = (0, conversion_js_1.rgbToHsv)(this.r, this.g, this.b);
+ return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };
+ };
+ /**
+ * Returns the hsva values interpolated into a string with the following format:
+ * "hsva(xxx, xxx, xxx, xx)".
+ */
+ TinyColor.prototype.toHsvString = function () {
+ var hsv = (0, conversion_js_1.rgbToHsv)(this.r, this.g, this.b);
+ var h = Math.round(hsv.h * 360);
+ var s = Math.round(hsv.s * 100);
+ var v = Math.round(hsv.v * 100);
+ return this.a === 1 ? "hsv(".concat(h, ", ").concat(s, "%, ").concat(v, "%)") : "hsva(".concat(h, ", ").concat(s, "%, ").concat(v, "%, ").concat(this.roundA, ")");
+ };
+ /**
+ * Returns the object as a HSLA object.
+ */
+ TinyColor.prototype.toHsl = function () {
+ var hsl = (0, conversion_js_1.rgbToHsl)(this.r, this.g, this.b);
+ return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };
+ };
+ /**
+ * Returns the hsla values interpolated into a string with the following format:
+ * "hsla(xxx, xxx, xxx, xx)".
+ */
+ TinyColor.prototype.toHslString = function () {
+ var hsl = (0, conversion_js_1.rgbToHsl)(this.r, this.g, this.b);
+ var h = Math.round(hsl.h * 360);
+ var s = Math.round(hsl.s * 100);
+ var l = Math.round(hsl.l * 100);
+ return this.a === 1 ? "hsl(".concat(h, ", ").concat(s, "%, ").concat(l, "%)") : "hsla(".concat(h, ", ").concat(s, "%, ").concat(l, "%, ").concat(this.roundA, ")");
+ };
+ /**
+ * Returns the hex value of the color.
+ * @param allow3Char will shorten hex value to 3 char if possible
+ */
+ TinyColor.prototype.toHex = function (allow3Char) {
+ if (allow3Char === void 0) { allow3Char = false; }
+ return (0, conversion_js_1.rgbToHex)(this.r, this.g, this.b, allow3Char);
+ };
+ /**
+ * Returns the hex value of the color -with a # prefixed.
+ * @param allow3Char will shorten hex value to 3 char if possible
+ */
+ TinyColor.prototype.toHexString = function (allow3Char) {
+ if (allow3Char === void 0) { allow3Char = false; }
+ return '#' + this.toHex(allow3Char);
+ };
+ /**
+ * Returns the hex 8 value of the color.
+ * @param allow4Char will shorten hex value to 4 char if possible
+ */
+ TinyColor.prototype.toHex8 = function (allow4Char) {
+ if (allow4Char === void 0) { allow4Char = false; }
+ return (0, conversion_js_1.rgbaToHex)(this.r, this.g, this.b, this.a, allow4Char);
+ };
+ /**
+ * Returns the hex 8 value of the color -with a # prefixed.
+ * @param allow4Char will shorten hex value to 4 char if possible
+ */
+ TinyColor.prototype.toHex8String = function (allow4Char) {
+ if (allow4Char === void 0) { allow4Char = false; }
+ return '#' + this.toHex8(allow4Char);
+ };
+ /**
+ * Returns the shorter hex value of the color depends on its alpha -with a # prefixed.
+ * @param allowShortChar will shorten hex value to 3 or 4 char if possible
+ */
+ TinyColor.prototype.toHexShortString = function (allowShortChar) {
+ if (allowShortChar === void 0) { allowShortChar = false; }
+ return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar);
+ };
+ /**
+ * Returns the object as a RGBA object.
+ */
+ TinyColor.prototype.toRgb = function () {
+ return {
+ r: Math.round(this.r),
+ g: Math.round(this.g),
+ b: Math.round(this.b),
+ a: this.a,
+ };
+ };
+ /**
+ * Returns the RGBA values interpolated into a string with the following format:
+ * "RGBA(xxx, xxx, xxx, xx)".
+ */
+ TinyColor.prototype.toRgbString = function () {
+ var r = Math.round(this.r);
+ var g = Math.round(this.g);
+ var b = Math.round(this.b);
+ return this.a === 1 ? "rgb(".concat(r, ", ").concat(g, ", ").concat(b, ")") : "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(this.roundA, ")");
+ };
+ /**
+ * Returns the object as a RGBA object.
+ */
+ TinyColor.prototype.toPercentageRgb = function () {
+ var fmt = function (x) { return "".concat(Math.round((0, util_js_1.bound01)(x, 255) * 100), "%"); };
+ return {
+ r: fmt(this.r),
+ g: fmt(this.g),
+ b: fmt(this.b),
+ a: this.a,
+ };
+ };
+ /**
+ * Returns the RGBA relative values interpolated into a string
+ */
+ TinyColor.prototype.toPercentageRgbString = function () {
+ var rnd = function (x) { return Math.round((0, util_js_1.bound01)(x, 255) * 100); };
+ return this.a === 1
+ ? "rgb(".concat(rnd(this.r), "%, ").concat(rnd(this.g), "%, ").concat(rnd(this.b), "%)")
+ : "rgba(".concat(rnd(this.r), "%, ").concat(rnd(this.g), "%, ").concat(rnd(this.b), "%, ").concat(this.roundA, ")");
+ };
+ /**
+ * The 'real' name of the color -if there is one.
+ */
+ TinyColor.prototype.toName = function () {
+ if (this.a === 0) {
+ return 'transparent';
+ }
+ if (this.a < 1) {
+ return false;
+ }
+ var hex = '#' + (0, conversion_js_1.rgbToHex)(this.r, this.g, this.b, false);
+ for (var _i = 0, _a = Object.entries(css_color_names_js_1.names); _i < _a.length; _i++) {
+ var _b = _a[_i], key = _b[0], value = _b[1];
+ if (hex === value) {
+ return key;
+ }
+ }
+ return false;
+ };
+ TinyColor.prototype.toString = function (format) {
+ var formatSet = Boolean(format);
+ format = format !== null && format !== void 0 ? format : this.format;
+ var formattedString = false;
+ var hasAlpha = this.a < 1 && this.a >= 0;
+ var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');
+ if (needsAlphaFormat) {
+ // Special case for "transparent", all other non-alpha formats
+ // will return rgba when there is transparency.
+ if (format === 'name' && this.a === 0) {
+ return this.toName();
+ }
+ return this.toRgbString();
+ }
+ if (format === 'rgb') {
+ formattedString = this.toRgbString();
+ }
+ if (format === 'prgb') {
+ formattedString = this.toPercentageRgbString();
+ }
+ if (format === 'hex' || format === 'hex6') {
+ formattedString = this.toHexString();
+ }
+ if (format === 'hex3') {
+ formattedString = this.toHexString(true);
+ }
+ if (format === 'hex4') {
+ formattedString = this.toHex8String(true);
+ }
+ if (format === 'hex8') {
+ formattedString = this.toHex8String();
+ }
+ if (format === 'name') {
+ formattedString = this.toName();
+ }
+ if (format === 'hsl') {
+ formattedString = this.toHslString();
+ }
+ if (format === 'hsv') {
+ formattedString = this.toHsvString();
+ }
+ return formattedString || this.toHexString();
+ };
+ TinyColor.prototype.toNumber = function () {
+ return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);
+ };
+ TinyColor.prototype.clone = function () {
+ return new TinyColor(this.toString());
+ };
+ /**
+ * Lighten the color a given amount. Providing 100 will always return white.
+ * @param amount - valid between 1-100
+ */
+ TinyColor.prototype.lighten = function (amount) {
+ if (amount === void 0) { amount = 10; }
+ var hsl = this.toHsl();
+ hsl.l += amount / 100;
+ hsl.l = (0, util_js_1.clamp01)(hsl.l);
+ return new TinyColor(hsl);
+ };
+ /**
+ * Brighten the color a given amount, from 0 to 100.
+ * @param amount - valid between 1-100
+ */
+ TinyColor.prototype.brighten = function (amount) {
+ if (amount === void 0) { amount = 10; }
+ var rgb = this.toRgb();
+ rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));
+ rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));
+ rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));
+ return new TinyColor(rgb);
+ };
+ /**
+ * Darken the color a given amount, from 0 to 100.
+ * Providing 100 will always return black.
+ * @param amount - valid between 1-100
+ */
+ TinyColor.prototype.darken = function (amount) {
+ if (amount === void 0) { amount = 10; }
+ var hsl = this.toHsl();
+ hsl.l -= amount / 100;
+ hsl.l = (0, util_js_1.clamp01)(hsl.l);
+ return new TinyColor(hsl);
+ };
+ /**
+ * Mix the color with pure white, from 0 to 100.
+ * Providing 0 will do nothing, providing 100 will always return white.
+ * @param amount - valid between 1-100
+ */
+ TinyColor.prototype.tint = function (amount) {
+ if (amount === void 0) { amount = 10; }
+ return this.mix('white', amount);
+ };
+ /**
+ * Mix the color with pure black, from 0 to 100.
+ * Providing 0 will do nothing, providing 100 will always return black.
+ * @param amount - valid between 1-100
+ */
+ TinyColor.prototype.shade = function (amount) {
+ if (amount === void 0) { amount = 10; }
+ return this.mix('black', amount);
+ };
+ /**
+ * Desaturate the color a given amount, from 0 to 100.
+ * Providing 100 will is the same as calling greyscale
+ * @param amount - valid between 1-100
+ */
+ TinyColor.prototype.desaturate = function (amount) {
+ if (amount === void 0) { amount = 10; }
+ var hsl = this.toHsl();
+ hsl.s -= amount / 100;
+ hsl.s = (0, util_js_1.clamp01)(hsl.s);
+ return new TinyColor(hsl);
+ };
+ /**
+ * Saturate the color a given amount, from 0 to 100.
+ * @param amount - valid between 1-100
+ */
+ TinyColor.prototype.saturate = function (amount) {
+ if (amount === void 0) { amount = 10; }
+ var hsl = this.toHsl();
+ hsl.s += amount / 100;
+ hsl.s = (0, util_js_1.clamp01)(hsl.s);
+ return new TinyColor(hsl);
+ };
+ /**
+ * Completely desaturates a color into greyscale.
+ * Same as calling `desaturate(100)`
+ */
+ TinyColor.prototype.greyscale = function () {
+ return this.desaturate(100);
+ };
+ /**
+ * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.
+ * Values outside of this range will be wrapped into this range.
+ */
+ TinyColor.prototype.spin = function (amount) {
+ var hsl = this.toHsl();
+ var hue = (hsl.h + amount) % 360;
+ hsl.h = hue < 0 ? 360 + hue : hue;
+ return new TinyColor(hsl);
+ };
+ /**
+ * Mix the current color a given amount with another color, from 0 to 100.
+ * 0 means no mixing (return current color).
+ */
+ TinyColor.prototype.mix = function (color, amount) {
+ if (amount === void 0) { amount = 50; }
+ var rgb1 = this.toRgb();
+ var rgb2 = new TinyColor(color).toRgb();
+ var p = amount / 100;
+ var rgba = {
+ r: (rgb2.r - rgb1.r) * p + rgb1.r,
+ g: (rgb2.g - rgb1.g) * p + rgb1.g,
+ b: (rgb2.b - rgb1.b) * p + rgb1.b,
+ a: (rgb2.a - rgb1.a) * p + rgb1.a,
+ };
+ return new TinyColor(rgba);
+ };
+ TinyColor.prototype.analogous = function (results, slices) {
+ if (results === void 0) { results = 6; }
+ if (slices === void 0) { slices = 30; }
+ var hsl = this.toHsl();
+ var part = 360 / slices;
+ var ret = [this];
+ for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {
+ hsl.h = (hsl.h + part) % 360;
+ ret.push(new TinyColor(hsl));
+ }
+ return ret;
+ };
+ /**
+ * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js
+ */
+ TinyColor.prototype.complement = function () {
+ var hsl = this.toHsl();
+ hsl.h = (hsl.h + 180) % 360;
+ return new TinyColor(hsl);
+ };
+ TinyColor.prototype.monochromatic = function (results) {
+ if (results === void 0) { results = 6; }
+ var hsv = this.toHsv();
+ var h = hsv.h;
+ var s = hsv.s;
+ var v = hsv.v;
+ var res = [];
+ var modification = 1 / results;
+ while (results--) {
+ res.push(new TinyColor({ h: h, s: s, v: v }));
+ v = (v + modification) % 1;
+ }
+ return res;
+ };
+ TinyColor.prototype.splitcomplement = function () {
+ var hsl = this.toHsl();
+ var h = hsl.h;
+ return [
+ this,
+ new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),
+ new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),
+ ];
+ };
+ /**
+ * Compute how the color would appear on a background
+ */
+ TinyColor.prototype.onBackground = function (background) {
+ var fg = this.toRgb();
+ var bg = new TinyColor(background).toRgb();
+ var alpha = fg.a + bg.a * (1 - fg.a);
+ return new TinyColor({
+ r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha,
+ g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha,
+ b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha,
+ a: alpha,
+ });
+ };
+ /**
+ * Alias for `polyad(3)`
+ */
+ TinyColor.prototype.triad = function () {
+ return this.polyad(3);
+ };
+ /**
+ * Alias for `polyad(4)`
+ */
+ TinyColor.prototype.tetrad = function () {
+ return this.polyad(4);
+ };
+ /**
+ * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)
+ * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...
+ */
+ TinyColor.prototype.polyad = function (n) {
+ var hsl = this.toHsl();
+ var h = hsl.h;
+ var result = [this];
+ var increment = 360 / n;
+ for (var i = 1; i < n; i++) {
+ result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));
+ }
+ return result;
+ };
+ /**
+ * compare color vs current color
+ */
+ TinyColor.prototype.equals = function (color) {
+ return this.toRgbString() === new TinyColor(color).toRgbString();
+ };
+ return TinyColor;
+}());
+exports.TinyColor = TinyColor;
+// kept for backwards compatability with v1
+function tinycolor(color, opts) {
+ if (color === void 0) { color = ''; }
+ if (opts === void 0) { opts = {}; }
+ return new TinyColor(color, opts);
+}
+exports.tinycolor = tinycolor;
diff --git a/.output/server/node_modules/@ctrl/tinycolor/dist/interfaces.js b/.output/server/node_modules/@ctrl/tinycolor/dist/interfaces.js
new file mode 100644
index 0000000..c8ad2e5
--- /dev/null
+++ b/.output/server/node_modules/@ctrl/tinycolor/dist/interfaces.js
@@ -0,0 +1,2 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
diff --git a/.output/server/node_modules/@ctrl/tinycolor/dist/public_api.js b/.output/server/node_modules/@ctrl/tinycolor/dist/public_api.js
new file mode 100644
index 0000000..e57f647
--- /dev/null
+++ b/.output/server/node_modules/@ctrl/tinycolor/dist/public_api.js
@@ -0,0 +1,28 @@
+"use strict";
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __exportStar = (this && this.__exportStar) || function(m, exports) {
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var index_js_1 = require("./index.js");
+__exportStar(require("./index.js"), exports);
+__exportStar(require("./css-color-names.js"), exports);
+__exportStar(require("./readability.js"), exports);
+__exportStar(require("./to-ms-filter.js"), exports);
+__exportStar(require("./from-ratio.js"), exports);
+__exportStar(require("./format-input.js"), exports);
+__exportStar(require("./random.js"), exports);
+__exportStar(require("./interfaces.js"), exports);
+__exportStar(require("./conversion.js"), exports);
+// kept for backwards compatability with v1
+exports.default = index_js_1.tinycolor;
diff --git a/.output/server/node_modules/@ctrl/tinycolor/dist/random.js b/.output/server/node_modules/@ctrl/tinycolor/dist/random.js
new file mode 100644
index 0000000..5fd805c
--- /dev/null
+++ b/.output/server/node_modules/@ctrl/tinycolor/dist/random.js
@@ -0,0 +1,282 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.bounds = exports.random = void 0;
+/* eslint-disable @typescript-eslint/no-redundant-type-constituents */
+// randomColor by David Merfield under the CC0 license
+// https://github.com/davidmerfield/randomColor/
+var index_js_1 = require("./index.js");
+function random(options) {
+ if (options === void 0) { options = {}; }
+ // Check if we need to generate multiple colors
+ if (options.count !== undefined &&
+ options.count !== null) {
+ var totalColors = options.count;
+ var colors = [];
+ options.count = undefined;
+ while (totalColors > colors.length) {
+ // Since we're generating multiple colors,
+ // incremement the seed. Otherwise we'd just
+ // generate the same color each time...
+ options.count = null;
+ if (options.seed) {
+ options.seed += 1;
+ }
+ colors.push(random(options));
+ }
+ options.count = totalColors;
+ return colors;
+ }
+ // First we pick a hue (H)
+ var h = pickHue(options.hue, options.seed);
+ // Then use H to determine saturation (S)
+ var s = pickSaturation(h, options);
+ // Then use S and H to determine brightness (B).
+ var v = pickBrightness(h, s, options);
+ var res = { h: h, s: s, v: v };
+ if (options.alpha !== undefined) {
+ res.a = options.alpha;
+ }
+ // Then we return the HSB color in the desired format
+ return new index_js_1.TinyColor(res);
+}
+exports.random = random;
+function pickHue(hue, seed) {
+ var hueRange = getHueRange(hue);
+ var res = randomWithin(hueRange, seed);
+ // Instead of storing red as two seperate ranges,
+ // we group them, using negative numbers
+ if (res < 0) {
+ res = 360 + res;
+ }
+ return res;
+}
+function pickSaturation(hue, options) {
+ if (options.hue === 'monochrome') {
+ return 0;
+ }
+ if (options.luminosity === 'random') {
+ return randomWithin([0, 100], options.seed);
+ }
+ var saturationRange = getColorInfo(hue).saturationRange;
+ var sMin = saturationRange[0];
+ var sMax = saturationRange[1];
+ switch (options.luminosity) {
+ case 'bright':
+ sMin = 55;
+ break;
+ case 'dark':
+ sMin = sMax - 10;
+ break;
+ case 'light':
+ sMax = 55;
+ break;
+ default:
+ break;
+ }
+ return randomWithin([sMin, sMax], options.seed);
+}
+function pickBrightness(H, S, options) {
+ var bMin = getMinimumBrightness(H, S);
+ var bMax = 100;
+ switch (options.luminosity) {
+ case 'dark':
+ bMax = bMin + 20;
+ break;
+ case 'light':
+ bMin = (bMax + bMin) / 2;
+ break;
+ case 'random':
+ bMin = 0;
+ bMax = 100;
+ break;
+ default:
+ break;
+ }
+ return randomWithin([bMin, bMax], options.seed);
+}
+function getMinimumBrightness(H, S) {
+ var lowerBounds = getColorInfo(H).lowerBounds;
+ for (var i = 0; i < lowerBounds.length - 1; i++) {
+ var s1 = lowerBounds[i][0];
+ var v1 = lowerBounds[i][1];
+ var s2 = lowerBounds[i + 1][0];
+ var v2 = lowerBounds[i + 1][1];
+ if (S >= s1 && S <= s2) {
+ var m = (v2 - v1) / (s2 - s1);
+ var b = v1 - m * s1;
+ return m * S + b;
+ }
+ }
+ return 0;
+}
+function getHueRange(colorInput) {
+ var num = parseInt(colorInput, 10);
+ if (!Number.isNaN(num) && num < 360 && num > 0) {
+ return [num, num];
+ }
+ if (typeof colorInput === 'string') {
+ var namedColor = exports.bounds.find(function (n) { return n.name === colorInput; });
+ if (namedColor) {
+ var color = defineColor(namedColor);
+ if (color.hueRange) {
+ return color.hueRange;
+ }
+ }
+ var parsed = new index_js_1.TinyColor(colorInput);
+ if (parsed.isValid) {
+ var hue = parsed.toHsv().h;
+ return [hue, hue];
+ }
+ }
+ return [0, 360];
+}
+function getColorInfo(hue) {
+ // Maps red colors to make picking hue easier
+ if (hue >= 334 && hue <= 360) {
+ hue -= 360;
+ }
+ for (var _i = 0, bounds_1 = exports.bounds; _i < bounds_1.length; _i++) {
+ var bound = bounds_1[_i];
+ var color = defineColor(bound);
+ if (color.hueRange && hue >= color.hueRange[0] && hue <= color.hueRange[1]) {
+ return color;
+ }
+ }
+ throw Error('Color not found');
+}
+function randomWithin(range, seed) {
+ if (seed === undefined) {
+ return Math.floor(range[0] + Math.random() * (range[1] + 1 - range[0]));
+ }
+ // Seeded random algorithm from http://indiegamr.com/generate-repeatable-random-numbers-in-js/
+ var max = range[1] || 1;
+ var min = range[0] || 0;
+ seed = (seed * 9301 + 49297) % 233280;
+ var rnd = seed / 233280.0;
+ return Math.floor(min + rnd * (max - min));
+}
+function defineColor(bound) {
+ var sMin = bound.lowerBounds[0][0];
+ var sMax = bound.lowerBounds[bound.lowerBounds.length - 1][0];
+ var bMin = bound.lowerBounds[bound.lowerBounds.length - 1][1];
+ var bMax = bound.lowerBounds[0][1];
+ return {
+ name: bound.name,
+ hueRange: bound.hueRange,
+ lowerBounds: bound.lowerBounds,
+ saturationRange: [sMin, sMax],
+ brightnessRange: [bMin, bMax],
+ };
+}
+/**
+ * @hidden
+ */
+exports.bounds = [
+ {
+ name: 'monochrome',
+ hueRange: null,
+ lowerBounds: [
+ [0, 0],
+ [100, 0],
+ ],
+ },
+ {
+ name: 'red',
+ hueRange: [-26, 18],
+ lowerBounds: [
+ [20, 100],
+ [30, 92],
+ [40, 89],
+ [50, 85],
+ [60, 78],
+ [70, 70],
+ [80, 60],
+ [90, 55],
+ [100, 50],
+ ],
+ },
+ {
+ name: 'orange',
+ hueRange: [19, 46],
+ lowerBounds: [
+ [20, 100],
+ [30, 93],
+ [40, 88],
+ [50, 86],
+ [60, 85],
+ [70, 70],
+ [100, 70],
+ ],
+ },
+ {
+ name: 'yellow',
+ hueRange: [47, 62],
+ lowerBounds: [
+ [25, 100],
+ [40, 94],
+ [50, 89],
+ [60, 86],
+ [70, 84],
+ [80, 82],
+ [90, 80],
+ [100, 75],
+ ],
+ },
+ {
+ name: 'green',
+ hueRange: [63, 178],
+ lowerBounds: [
+ [30, 100],
+ [40, 90],
+ [50, 85],
+ [60, 81],
+ [70, 74],
+ [80, 64],
+ [90, 50],
+ [100, 40],
+ ],
+ },
+ {
+ name: 'blue',
+ hueRange: [179, 257],
+ lowerBounds: [
+ [20, 100],
+ [30, 86],
+ [40, 80],
+ [50, 74],
+ [60, 60],
+ [70, 52],
+ [80, 44],
+ [90, 39],
+ [100, 35],
+ ],
+ },
+ {
+ name: 'purple',
+ hueRange: [258, 282],
+ lowerBounds: [
+ [20, 100],
+ [30, 87],
+ [40, 79],
+ [50, 70],
+ [60, 65],
+ [70, 59],
+ [80, 52],
+ [90, 45],
+ [100, 42],
+ ],
+ },
+ {
+ name: 'pink',
+ hueRange: [283, 334],
+ lowerBounds: [
+ [20, 100],
+ [30, 90],
+ [40, 86],
+ [60, 84],
+ [80, 80],
+ [90, 75],
+ [100, 73],
+ ],
+ },
+];
diff --git a/.output/server/node_modules/@ctrl/tinycolor/dist/readability.js b/.output/server/node_modules/@ctrl/tinycolor/dist/readability.js
new file mode 100644
index 0000000..e358ff8
--- /dev/null
+++ b/.output/server/node_modules/@ctrl/tinycolor/dist/readability.js
@@ -0,0 +1,86 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.mostReadable = exports.isReadable = exports.readability = void 0;
+var index_js_1 = require("./index.js");
+// Readability Functions
+// ---------------------
+// false
+ * new TinyColor().isReadable('#000', '#111', { level: 'AA', size: 'large' }) => false
+ * ```
+ */
+function isReadable(color1, color2, wcag2) {
+ var _a, _b;
+ if (wcag2 === void 0) { wcag2 = { level: 'AA', size: 'small' }; }
+ var readabilityLevel = readability(color1, color2);
+ switch (((_a = wcag2.level) !== null && _a !== void 0 ? _a : 'AA') + ((_b = wcag2.size) !== null && _b !== void 0 ? _b : 'small')) {
+ case 'AAsmall':
+ case 'AAAlarge':
+ return readabilityLevel >= 4.5;
+ case 'AAlarge':
+ return readabilityLevel >= 3;
+ case 'AAAsmall':
+ return readabilityLevel >= 7;
+ default:
+ return false;
+ }
+}
+exports.isReadable = isReadable;
+/**
+ * Given a base color and a list of possible foreground or background
+ * colors for that base, returns the most readable color.
+ * Optionally returns Black or White if the most readable color is unreadable.
+ *
+ * @param baseColor - the base color.
+ * @param colorList - array of colors to pick the most readable one from.
+ * @param args - and object with extra arguments
+ *
+ * Example
+ * ```ts
+ * new TinyColor().mostReadable('#123', ['#124", "#125'], { includeFallbackColors: false }).toHexString(); // "#112255"
+ * new TinyColor().mostReadable('#123', ['#124", "#125'],{ includeFallbackColors: true }).toHexString(); // "#ffffff"
+ * new TinyColor().mostReadable('#a8015a', ["#faf3f3"], { includeFallbackColors:true, level: 'AAA', size: 'large' }).toHexString(); // "#faf3f3"
+ * new TinyColor().mostReadable('#a8015a', ["#faf3f3"], { includeFallbackColors:true, level: 'AAA', size: 'small' }).toHexString(); // "#ffffff"
+ * ```
+ */
+function mostReadable(baseColor, colorList, args) {
+ if (args === void 0) { args = { includeFallbackColors: false, level: 'AA', size: 'small' }; }
+ var bestColor = null;
+ var bestScore = 0;
+ var includeFallbackColors = args.includeFallbackColors, level = args.level, size = args.size;
+ for (var _i = 0, colorList_1 = colorList; _i < colorList_1.length; _i++) {
+ var color = colorList_1[_i];
+ var score = readability(baseColor, color);
+ if (score > bestScore) {
+ bestScore = score;
+ bestColor = new index_js_1.TinyColor(color);
+ }
+ }
+ if (isReadable(baseColor, bestColor, { level: level, size: size }) || !includeFallbackColors) {
+ return bestColor;
+ }
+ args.includeFallbackColors = false;
+ return mostReadable(baseColor, ['#fff', '#000'], args);
+}
+exports.mostReadable = mostReadable;
diff --git a/.output/server/node_modules/@ctrl/tinycolor/dist/to-ms-filter.js b/.output/server/node_modules/@ctrl/tinycolor/dist/to-ms-filter.js
new file mode 100644
index 0000000..bb97d9d
--- /dev/null
+++ b/.output/server/node_modules/@ctrl/tinycolor/dist/to-ms-filter.js
@@ -0,0 +1,20 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.toMsFilter = void 0;
+var conversion_js_1 = require("./conversion.js");
+var index_js_1 = require("./index.js");
+/**
+ * Returns the color represented as a Microsoft filter for use in old versions of IE.
+ */
+function toMsFilter(firstColor, secondColor) {
+ var color = new index_js_1.TinyColor(firstColor);
+ var hex8String = '#' + (0, conversion_js_1.rgbaToArgbHex)(color.r, color.g, color.b, color.a);
+ var secondHex8String = hex8String;
+ var gradientType = color.gradientType ? 'GradientType = 1, ' : '';
+ if (secondColor) {
+ var s = new index_js_1.TinyColor(secondColor);
+ secondHex8String = '#' + (0, conversion_js_1.rgbaToArgbHex)(s.r, s.g, s.b, s.a);
+ }
+ return "progid:DXImageTransform.Microsoft.gradient(".concat(gradientType, "startColorstr=").concat(hex8String, ",endColorstr=").concat(secondHex8String, ")");
+}
+exports.toMsFilter = toMsFilter;
diff --git a/.output/server/node_modules/@ctrl/tinycolor/dist/util.js b/.output/server/node_modules/@ctrl/tinycolor/dist/util.js
new file mode 100644
index 0000000..05485b6
--- /dev/null
+++ b/.output/server/node_modules/@ctrl/tinycolor/dist/util.js
@@ -0,0 +1,92 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.pad2 = exports.convertToPercentage = exports.boundAlpha = exports.isPercentage = exports.isOnePointZero = exports.clamp01 = exports.bound01 = void 0;
+/**
+ * Take input from [0, n] and return it as [0, 1]
+ * @hidden
+ */
+function bound01(n, max) {
+ if (isOnePointZero(n)) {
+ n = '100%';
+ }
+ var isPercent = isPercentage(n);
+ n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));
+ // Automatically convert percentage into number
+ if (isPercent) {
+ n = parseInt(String(n * max), 10) / 100;
+ }
+ // Handle floating point rounding errors
+ if (Math.abs(n - max) < 0.000001) {
+ return 1;
+ }
+ // Convert into [0, 1] range if it isn't already
+ if (max === 360) {
+ // If n is a hue given in degrees,
+ // wrap around out-of-range values into [0, 360] range
+ // then convert into [0, 1].
+ n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));
+ }
+ else {
+ // If n not a hue given in degrees
+ // Convert into [0, 1] range if it isn't already.
+ n = (n % max) / parseFloat(String(max));
+ }
+ return n;
+}
+exports.bound01 = bound01;
+/**
+ * Force a number between 0 and 1
+ * @hidden
+ */
+function clamp01(val) {
+ return Math.min(1, Math.max(0, val));
+}
+exports.clamp01 = clamp01;
+/**
+ * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1
+ *
+ * @hidden
+ */
+function isOnePointZero(n) {
+ return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;
+}
+exports.isOnePointZero = isOnePointZero;
+/**
+ * Check to see if string passed in is a percentage
+ * @hidden
+ */
+function isPercentage(n) {
+ return typeof n === 'string' && n.indexOf('%') !== -1;
+}
+exports.isPercentage = isPercentage;
+/**
+ * Return a valid alpha value [0,1] with all invalid values being set to 1
+ * @hidden
+ */
+function boundAlpha(a) {
+ a = parseFloat(a);
+ if (isNaN(a) || a < 0 || a > 1) {
+ a = 1;
+ }
+ return a;
+}
+exports.boundAlpha = boundAlpha;
+/**
+ * Replace a decimal with it's percentage value
+ * @hidden
+ */
+function convertToPercentage(n) {
+ if (n <= 1) {
+ return "".concat(Number(n) * 100, "%");
+ }
+ return n;
+}
+exports.convertToPercentage = convertToPercentage;
+/**
+ * Force a hex value to have 2 characters
+ * @hidden
+ */
+function pad2(c) {
+ return c.length === 1 ? '0' + c : String(c);
+}
+exports.pad2 = pad2;
diff --git a/.output/server/node_modules/@ctrl/tinycolor/package.json b/.output/server/node_modules/@ctrl/tinycolor/package.json
new file mode 100644
index 0000000..2173855
--- /dev/null
+++ b/.output/server/node_modules/@ctrl/tinycolor/package.json
@@ -0,0 +1,80 @@
+{
+ "name": "@ctrl/tinycolor",
+ "version": "3.6.1",
+ "description": "Fast, small color manipulation and conversion for JavaScript",
+ "author": "Scott Cooper ",
+ "publishConfig": {
+ "access": "public"
+ },
+ "license": "MIT",
+ "homepage": "https://tinycolor.vercel.app",
+ "repository": "scttcper/tinycolor",
+ "keywords": [
+ "typescript",
+ "color",
+ "manipulation",
+ "tinycolor",
+ "hsa",
+ "rgb"
+ ],
+ "main": "dist/public_api.js",
+ "module": "dist/module/public_api.js",
+ "typings": "dist/public_api.d.ts",
+ "files": [
+ "dist"
+ ],
+ "sideEffects": false,
+ "scripts": {
+ "build:demo": "rollup -c rollup.demo.js",
+ "watch:demo": "rollup -c rollup.demo.js -w",
+ "lint": "eslint --ext .js,.ts, .",
+ "lint:fix": "eslint --fix --ext .js,.ts, .",
+ "prepare": "npm run build",
+ "build": "del-cli dist && tsc -p tsconfig.build.json && tsc -p tsconfig.module.json && ts-node build",
+ "build:docs": "typedoc --out demo/public/docs --hideGenerator --tsconfig tsconfig.build.json src/public_api.ts",
+ "test": "jest",
+ "test:ci": "jest --ci --runInBand --reporters=default --reporters=jest-junit --coverage",
+ "test:watch": "jest --watch"
+ },
+ "dependencies": {},
+ "devDependencies": {
+ "@babel/plugin-transform-modules-commonjs": "7.19.6",
+ "@babel/preset-typescript": "7.18.6",
+ "@ctrl/eslint-config": "3.5.6",
+ "@jest/globals": "29.3.1",
+ "@types/node": "18.11.11",
+ "del-cli": "5.0.0",
+ "jest": "29.3.1",
+ "jest-junit": "15.0.0",
+ "rollup": "2.70.1",
+ "rollup-plugin-livereload": "2.0.5",
+ "rollup-plugin-serve": "1.1.0",
+ "rollup-plugin-sourcemaps": "0.6.3",
+ "rollup-plugin-terser": "7.0.2",
+ "rollup-plugin-typescript2": "0.34.1",
+ "ts-node": "10.9.1",
+ "typedoc": "0.23.21",
+ "typescript": "4.9.3"
+ },
+ "jest": {
+ "testEnvironment": "node",
+ "coverageProvider": "v8",
+ "moduleNameMapper": {
+ "(.+)\\.js": "$1"
+ }
+ },
+ "babel": {
+ "presets": [
+ "@babel/preset-typescript"
+ ],
+ "plugins": [
+ "@babel/plugin-transform-modules-commonjs"
+ ]
+ },
+ "release": {
+ "branch": "master"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+}
\ No newline at end of file
diff --git a/.output/server/node_modules/@popperjs/core/dist/index.mjs b/.output/server/node_modules/@popperjs/core/dist/index.mjs
new file mode 100644
index 0000000..927eb4b
--- /dev/null
+++ b/.output/server/node_modules/@popperjs/core/dist/index.mjs
@@ -0,0 +1 @@
+var E="top",R="bottom",W="right",P="left",me="auto",G=[E,R,W,P],U="start",J="end",Xe="clippingParents",je="viewport",K="popper",Ye="reference",De=G.reduce(function(t,e){return t.concat([e+"-"+U,e+"-"+J])},[]),Ee=[].concat(G,[me]).reduce(function(t,e){return t.concat([e,e+"-"+U,e+"-"+J])},[]),Ge="beforeRead",Je="read",Ke="afterRead",Qe="beforeMain",Ze="main",et="afterMain",tt="beforeWrite",nt="write",rt="afterWrite",ot=[Ge,Je,Ke,Qe,Ze,et,tt,nt,rt];function C(t){return t?(t.nodeName||"").toLowerCase():null}function H(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function Q(t){var e=H(t).Element;return t instanceof e||t instanceof Element}function B(t){var e=H(t).HTMLElement;return t instanceof e||t instanceof HTMLElement}function Pe(t){if(typeof ShadowRoot=="undefined")return!1;var e=H(t).ShadowRoot;return t instanceof e||t instanceof ShadowRoot}function Mt(t){var e=t.state;Object.keys(e.elements).forEach(function(n){var r=e.styles[n]||{},o=e.attributes[n]||{},i=e.elements[n];!B(i)||!C(i)||(Object.assign(i.style,r),Object.keys(o).forEach(function(a){var s=o[a];s===!1?i.removeAttribute(a):i.setAttribute(a,s===!0?"":s)}))})}function Rt(t){var e=t.state,n={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,n.popper),e.styles=n,e.elements.arrow&&Object.assign(e.elements.arrow.style,n.arrow),function(){Object.keys(e.elements).forEach(function(r){var o=e.elements[r],i=e.attributes[r]||{},a=Object.keys(e.styles.hasOwnProperty(r)?e.styles[r]:n[r]),s=a.reduce(function(f,c){return f[c]="",f},{});!B(o)||!C(o)||(Object.assign(o.style,s),Object.keys(i).forEach(function(f){o.removeAttribute(f)}))})}}var Ae={name:"applyStyles",enabled:!0,phase:"write",fn:Mt,effect:Rt,requires:["computeStyles"]};function q(t){return t.split("-")[0]}var X=Math.max,ve=Math.min,Z=Math.round;function ee(t,e){e===void 0&&(e=!1);var n=t.getBoundingClientRect(),r=1,o=1;if(B(t)&&e){var i=t.offsetHeight,a=t.offsetWidth;a>0&&(r=Z(n.width)/a||1),i>0&&(o=Z(n.height)/i||1)}return{width:n.width/r,height:n.height/o,top:n.top/o,right:n.right/r,bottom:n.bottom/o,left:n.left/r,x:n.left/r,y:n.top/o}}function ke(t){var e=ee(t),n=t.offsetWidth,r=t.offsetHeight;return Math.abs(e.width-n)<=1&&(n=e.width),Math.abs(e.height-r)<=1&&(r=e.height),{x:t.offsetLeft,y:t.offsetTop,width:n,height:r}}function it(t,e){var n=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(n&&Pe(n)){var r=e;do{if(r&&t.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function N(t){return H(t).getComputedStyle(t)}function Wt(t){return["table","td","th"].indexOf(C(t))>=0}function I(t){return((Q(t)?t.ownerDocument:t.document)||window.document).documentElement}function ge(t){return C(t)==="html"?t:t.assignedSlot||t.parentNode||(Pe(t)?t.host:null)||I(t)}function at(t){return!B(t)||N(t).position==="fixed"?null:t.offsetParent}function Bt(t){var e=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,n=navigator.userAgent.indexOf("Trident")!==-1;if(n&&B(t)){var r=N(t);if(r.position==="fixed")return null}var o=ge(t);for(Pe(o)&&(o=o.host);B(o)&&["html","body"].indexOf(C(o))<0;){var i=N(o);if(i.transform!=="none"||i.perspective!=="none"||i.contain==="paint"||["transform","perspective"].indexOf(i.willChange)!==-1||e&&i.willChange==="filter"||e&&i.filter&&i.filter!=="none")return o;o=o.parentNode}return null}function se(t){for(var e=H(t),n=at(t);n&&Wt(n)&&N(n).position==="static";)n=at(n);return n&&(C(n)==="html"||C(n)==="body"&&N(n).position==="static")?e:n||Bt(t)||e}function Le(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function fe(t,e,n){return X(t,ve(e,n))}function St(t,e,n){var r=fe(t,e,n);return r>n?n:r}function st(){return{top:0,right:0,bottom:0,left:0}}function ft(t){return Object.assign({},st(),t)}function ct(t,e){return e.reduce(function(n,r){return n[r]=t,n},{})}var Tt=function(t,e){return t=typeof t=="function"?t(Object.assign({},e.rects,{placement:e.placement})):t,ft(typeof t!="number"?t:ct(t,G))};function Ht(t){var e,n=t.state,r=t.name,o=t.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=q(n.placement),f=Le(s),c=[P,W].indexOf(s)>=0,u=c?"height":"width";if(!(!i||!a)){var m=Tt(o.padding,n),v=ke(i),l=f==="y"?E:P,h=f==="y"?R:W,p=n.rects.reference[u]+n.rects.reference[f]-a[f]-n.rects.popper[u],g=a[f]-n.rects.reference[f],x=se(i),y=x?f==="y"?x.clientHeight||0:x.clientWidth||0:0,$=p/2-g/2,d=m[l],b=y-v[u]-m[h],w=y/2-v[u]/2+$,O=fe(d,w,b),j=f;n.modifiersData[r]=(e={},e[j]=O,e.centerOffset=O-w,e)}}function Ct(t){var e=t.state,n=t.options,r=n.element,o=r===void 0?"[data-popper-arrow]":r;o!=null&&(typeof o=="string"&&(o=e.elements.popper.querySelector(o),!o)||!it(e.elements.popper,o)||(e.elements.arrow=o))}var pt={name:"arrow",enabled:!0,phase:"main",fn:Ht,effect:Ct,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function te(t){return t.split("-")[1]}var qt={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Vt(t){var e=t.x,n=t.y,r=window,o=r.devicePixelRatio||1;return{x:Z(e*o)/o||0,y:Z(n*o)/o||0}}function ut(t){var e,n=t.popper,r=t.popperRect,o=t.placement,i=t.variation,a=t.offsets,s=t.position,f=t.gpuAcceleration,c=t.adaptive,u=t.roundOffsets,m=t.isFixed,v=a.x,l=v===void 0?0:v,h=a.y,p=h===void 0?0:h,g=typeof u=="function"?u({x:l,y:p}):{x:l,y:p};l=g.x,p=g.y;var x=a.hasOwnProperty("x"),y=a.hasOwnProperty("y"),$=P,d=E,b=window;if(c){var w=se(n),O="clientHeight",j="clientWidth";if(w===H(n)&&(w=I(n),N(w).position!=="static"&&s==="absolute"&&(O="scrollHeight",j="scrollWidth")),w=w,o===E||(o===P||o===W)&&i===J){d=R;var A=m&&w===b&&b.visualViewport?b.visualViewport.height:w[O];p-=A-r.height,p*=f?1:-1}if(o===P||(o===E||o===R)&&i===J){$=W;var k=m&&w===b&&b.visualViewport?b.visualViewport.width:w[j];l-=k-r.width,l*=f?1:-1}}var D=Object.assign({position:s},c&&qt),S=u===!0?Vt({x:l,y:p}):{x:l,y:p};if(l=S.x,p=S.y,f){var L;return Object.assign({},D,(L={},L[d]=y?"0":"",L[$]=x?"0":"",L.transform=(b.devicePixelRatio||1)<=1?"translate("+l+"px, "+p+"px)":"translate3d("+l+"px, "+p+"px, 0)",L))}return Object.assign({},D,(e={},e[d]=y?p+"px":"",e[$]=x?l+"px":"",e.transform="",e))}function Nt(t){var e=t.state,n=t.options,r=n.gpuAcceleration,o=r===void 0?!0:r,i=n.adaptive,a=i===void 0?!0:i,s=n.roundOffsets,f=s===void 0?!0:s,c={placement:q(e.placement),variation:te(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:o,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,ut(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:a,roundOffsets:f})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,ut(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:f})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}var Me={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Nt,data:{}},ye={passive:!0};function It(t){var e=t.state,n=t.instance,r=t.options,o=r.scroll,i=o===void 0?!0:o,a=r.resize,s=a===void 0?!0:a,f=H(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return i&&c.forEach(function(u){u.addEventListener("scroll",n.update,ye)}),s&&f.addEventListener("resize",n.update,ye),function(){i&&c.forEach(function(u){u.removeEventListener("scroll",n.update,ye)}),s&&f.removeEventListener("resize",n.update,ye)}}var Re={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:It,data:{}},_t={left:"right",right:"left",bottom:"top",top:"bottom"};function be(t){return t.replace(/left|right|bottom|top/g,function(e){return _t[e]})}var zt={start:"end",end:"start"};function lt(t){return t.replace(/start|end/g,function(e){return zt[e]})}function We(t){var e=H(t),n=e.pageXOffset,r=e.pageYOffset;return{scrollLeft:n,scrollTop:r}}function Be(t){return ee(I(t)).left+We(t).scrollLeft}function Ft(t){var e=H(t),n=I(t),r=e.visualViewport,o=n.clientWidth,i=n.clientHeight,a=0,s=0;return r&&(o=r.width,i=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(a=r.offsetLeft,s=r.offsetTop)),{width:o,height:i,x:a+Be(t),y:s}}function Ut(t){var e,n=I(t),r=We(t),o=(e=t.ownerDocument)==null?void 0:e.body,i=X(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),a=X(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),s=-r.scrollLeft+Be(t),f=-r.scrollTop;return N(o||n).direction==="rtl"&&(s+=X(n.clientWidth,o?o.clientWidth:0)-i),{width:i,height:a,x:s,y:f}}function Se(t){var e=N(t),n=e.overflow,r=e.overflowX,o=e.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function dt(t){return["html","body","#document"].indexOf(C(t))>=0?t.ownerDocument.body:B(t)&&Se(t)?t:dt(ge(t))}function ce(t,e){var n;e===void 0&&(e=[]);var r=dt(t),o=r===((n=t.ownerDocument)==null?void 0:n.body),i=H(r),a=o?[i].concat(i.visualViewport||[],Se(r)?r:[]):r,s=e.concat(a);return o?s:s.concat(ce(ge(a)))}function Te(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Xt(t){var e=ee(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}function ht(t,e){return e===je?Te(Ft(t)):Q(e)?Xt(e):Te(Ut(I(t)))}function Yt(t){var e=ce(ge(t)),n=["absolute","fixed"].indexOf(N(t).position)>=0,r=n&&B(t)?se(t):t;return Q(r)?e.filter(function(o){return Q(o)&&it(o,r)&&C(o)!=="body"}):[]}function Gt(t,e,n){var r=e==="clippingParents"?Yt(t):[].concat(e),o=[].concat(r,[n]),i=o[0],a=o.reduce(function(s,f){var c=ht(t,f);return s.top=X(c.top,s.top),s.right=ve(c.right,s.right),s.bottom=ve(c.bottom,s.bottom),s.left=X(c.left,s.left),s},ht(t,i));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}function mt(t){var e=t.reference,n=t.element,r=t.placement,o=r?q(r):null,i=r?te(r):null,a=e.x+e.width/2-n.width/2,s=e.y+e.height/2-n.height/2,f;switch(o){case E:f={x:a,y:e.y-n.height};break;case R:f={x:a,y:e.y+e.height};break;case W:f={x:e.x+e.width,y:s};break;case P:f={x:e.x-n.width,y:s};break;default:f={x:e.x,y:e.y}}var c=o?Le(o):null;if(c!=null){var u=c==="y"?"height":"width";switch(i){case U:f[c]=f[c]-(e[u]/2-n[u]/2);break;case J:f[c]=f[c]+(e[u]/2-n[u]/2);break}}return f}function ne(t,e){e===void 0&&(e={});var n=e,r=n.placement,o=r===void 0?t.placement:r,i=n.boundary,a=i===void 0?Xe:i,s=n.rootBoundary,f=s===void 0?je:s,c=n.elementContext,u=c===void 0?K:c,m=n.altBoundary,v=m===void 0?!1:m,l=n.padding,h=l===void 0?0:l,p=ft(typeof h!="number"?h:ct(h,G)),g=u===K?Ye:K,x=t.rects.popper,y=t.elements[v?g:u],$=Gt(Q(y)?y:y.contextElement||I(t.elements.popper),a,f),d=ee(t.elements.reference),b=mt({reference:d,element:x,strategy:"absolute",placement:o}),w=Te(Object.assign({},x,b)),O=u===K?w:d,j={top:$.top-O.top+p.top,bottom:O.bottom-$.bottom+p.bottom,left:$.left-O.left+p.left,right:O.right-$.right+p.right},A=t.modifiersData.offset;if(u===K&&A){var k=A[o];Object.keys(j).forEach(function(D){var S=[W,R].indexOf(D)>=0?1:-1,L=[E,R].indexOf(D)>=0?"y":"x";j[D]+=k[L]*S})}return j}function Jt(t,e){e===void 0&&(e={});var n=e,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=f===void 0?Ee:f,u=te(r),m=u?s?De:De.filter(function(h){return te(h)===u}):G,v=m.filter(function(h){return c.indexOf(h)>=0});v.length===0&&(v=m);var l=v.reduce(function(h,p){return h[p]=ne(t,{placement:p,boundary:o,rootBoundary:i,padding:a})[q(p)],h},{});return Object.keys(l).sort(function(h,p){return l[h]-l[p]})}function Kt(t){if(q(t)===me)return[];var e=be(t);return[lt(t),e,lt(e)]}function Qt(t){var e=t.state,n=t.options,r=t.name;if(!e.modifiersData[r]._skip){for(var o=n.mainAxis,i=o===void 0?!0:o,a=n.altAxis,s=a===void 0?!0:a,f=n.fallbackPlacements,c=n.padding,u=n.boundary,m=n.rootBoundary,v=n.altBoundary,l=n.flipVariations,h=l===void 0?!0:l,p=n.allowedAutoPlacements,g=e.options.placement,x=q(g),y=x===g,$=f||(y||!h?[be(g)]:Kt(g)),d=[g].concat($).reduce(function(z,V){return z.concat(q(V)===me?Jt(e,{placement:V,boundary:u,rootBoundary:m,padding:c,flipVariations:h,allowedAutoPlacements:p}):V)},[]),b=e.rects.reference,w=e.rects.popper,O=new Map,j=!0,A=d[0],k=0;k=0,oe=re?"width":"height",M=ne(e,{placement:D,boundary:u,rootBoundary:m,altBoundary:v,padding:c}),T=re?L?W:P:L?R:E;b[oe]>w[oe]&&(T=be(T));var pe=be(T),_=[];if(i&&_.push(M[S]<=0),s&&_.push(M[T]<=0,M[pe]<=0),_.every(function(z){return z})){A=D,j=!1;break}O.set(D,_)}if(j)for(var ue=h?3:1,xe=function(z){var V=d.find(function(de){var ae=O.get(de);if(ae)return ae.slice(0,z).every(function(Y){return Y})});if(V)return A=V,"break"},ie=ue;ie>0;ie--){var le=xe(ie);if(le==="break")break}e.placement!==A&&(e.modifiersData[r]._skip=!0,e.placement=A,e.reset=!0)}}var vt={name:"flip",enabled:!0,phase:"main",fn:Qt,requiresIfExists:["offset"],data:{_skip:!1}};function gt(t,e,n){return n===void 0&&(n={x:0,y:0}),{top:t.top-e.height-n.y,right:t.right-e.width+n.x,bottom:t.bottom-e.height+n.y,left:t.left-e.width-n.x}}function yt(t){return[E,W,R,P].some(function(e){return t[e]>=0})}function Zt(t){var e=t.state,n=t.name,r=e.rects.reference,o=e.rects.popper,i=e.modifiersData.preventOverflow,a=ne(e,{elementContext:"reference"}),s=ne(e,{altBoundary:!0}),f=gt(a,r),c=gt(s,o,i),u=yt(f),m=yt(c);e.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:m},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":m})}var bt={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Zt};function en(t,e,n){var r=q(t),o=[P,E].indexOf(r)>=0?-1:1,i=typeof n=="function"?n(Object.assign({},e,{placement:t})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[P,W].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}function tn(t){var e=t.state,n=t.options,r=t.name,o=n.offset,i=o===void 0?[0,0]:o,a=Ee.reduce(function(u,m){return u[m]=en(m,e.rects,i),u},{}),s=a[e.placement],f=s.x,c=s.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=f,e.modifiersData.popperOffsets.y+=c),e.modifiersData[r]=a}var wt={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:tn};function nn(t){var e=t.state,n=t.name;e.modifiersData[n]=mt({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})}var He={name:"popperOffsets",enabled:!0,phase:"read",fn:nn,data:{}};function rn(t){return t==="x"?"y":"x"}function on(t){var e=t.state,n=t.options,r=t.name,o=n.mainAxis,i=o===void 0?!0:o,a=n.altAxis,s=a===void 0?!1:a,f=n.boundary,c=n.rootBoundary,u=n.altBoundary,m=n.padding,v=n.tether,l=v===void 0?!0:v,h=n.tetherOffset,p=h===void 0?0:h,g=ne(e,{boundary:f,rootBoundary:c,padding:m,altBoundary:u}),x=q(e.placement),y=te(e.placement),$=!y,d=Le(x),b=rn(d),w=e.modifiersData.popperOffsets,O=e.rects.reference,j=e.rects.popper,A=typeof p=="function"?p(Object.assign({},e.rects,{placement:e.placement})):p,k=typeof A=="number"?{mainAxis:A,altAxis:A}:Object.assign({mainAxis:0,altAxis:0},A),D=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,S={x:0,y:0};if(w){if(i){var L,re=d==="y"?E:P,oe=d==="y"?R:W,M=d==="y"?"height":"width",T=w[d],pe=T+g[re],_=T-g[oe],ue=l?-j[M]/2:0,xe=y===U?O[M]:j[M],ie=y===U?-j[M]:-O[M],le=e.elements.arrow,z=l&&le?ke(le):{width:0,height:0},V=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:st(),de=V[re],ae=V[oe],Y=fe(0,O[M],z[M]),jt=$?O[M]/2-ue-Y-de-k.mainAxis:xe-Y-de-k.mainAxis,Dt=$?-O[M]/2+ue+Y+ae+k.mainAxis:ie+Y+ae+k.mainAxis,Oe=e.elements.arrow&&se(e.elements.arrow),Et=Oe?d==="y"?Oe.clientTop||0:Oe.clientLeft||0:0,Ce=(L=D==null?void 0:D[d])!=null?L:0,Pt=T+jt-Ce-Et,At=T+Dt-Ce,qe=fe(l?ve(pe,Pt):pe,T,l?X(_,At):_);w[d]=qe,S[d]=qe-T}if(s){var Ve,kt=d==="x"?E:P,Lt=d==="x"?R:W,F=w[b],he=b==="y"?"height":"width",Ne=F+g[kt],Ie=F-g[Lt],$e=[E,P].indexOf(x)!==-1,_e=(Ve=D==null?void 0:D[b])!=null?Ve:0,ze=$e?Ne:F-O[he]-j[he]-_e+k.altAxis,Fe=$e?F+O[he]+j[he]-_e-k.altAxis:Ie,Ue=l&&$e?St(ze,F,Fe):fe(l?ze:Ne,F,l?Fe:Ie);w[b]=Ue,S[b]=Ue-F}e.modifiersData[r]=S}}var xt={name:"preventOverflow",enabled:!0,phase:"main",fn:on,requiresIfExists:["offset"]};function an(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function sn(t){return t===H(t)||!B(t)?We(t):an(t)}function fn(t){var e=t.getBoundingClientRect(),n=Z(e.width)/t.offsetWidth||1,r=Z(e.height)/t.offsetHeight||1;return n!==1||r!==1}function cn(t,e,n){n===void 0&&(n=!1);var r=B(e),o=B(e)&&fn(e),i=I(e),a=ee(t,o),s={scrollLeft:0,scrollTop:0},f={x:0,y:0};return(r||!r&&!n)&&((C(e)!=="body"||Se(i))&&(s=sn(e)),B(e)?(f=ee(e,!0),f.x+=e.clientLeft,f.y+=e.clientTop):i&&(f.x=Be(i))),{x:a.left+s.scrollLeft-f.x,y:a.top+s.scrollTop-f.y,width:a.width,height:a.height}}function pn(t){var e=new Map,n=new Set,r=[];t.forEach(function(i){e.set(i.name,i)});function o(i){n.add(i.name);var a=[].concat(i.requires||[],i.requiresIfExists||[]);a.forEach(function(s){if(!n.has(s)){var f=e.get(s);f&&o(f)}}),r.push(i)}return t.forEach(function(i){n.has(i.name)||o(i)}),r}function un(t){var e=pn(t);return ot.reduce(function(n,r){return n.concat(e.filter(function(o){return o.phase===r}))},[])}function ln(t){var e;return function(){return e||(e=new Promise(function(n){Promise.resolve().then(function(){e=void 0,n(t())})})),e}}function dn(t){var e=t.reduce(function(n,r){var o=n[r.name];return n[r.name]=o?Object.assign({},o,r,{options:Object.assign({},o.options,r.options),data:Object.assign({},o.data,r.data)}):r,n},{});return Object.keys(e).map(function(n){return e[n]})}var Ot={placement:"bottom",modifiers:[],strategy:"absolute"};function $t(){for(var t=arguments.length,e=new Array(t),n=0;n",
+ "license": "MIT",
+ "repository": "github:popperjs/popper-core",
+ "keywords": [
+ "tooltip",
+ "popover",
+ "dropdown",
+ "popup",
+ "popper",
+ "positioning engine"
+ ],
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/popperjs"
+ },
+ "files": [
+ "index.d.ts",
+ "/dist",
+ "/lib"
+ ],
+ "sideEffects": false,
+ "publishConfig": {
+ "access": "public"
+ },
+ "prettier": {
+ "semi": true,
+ "trailingComma": "es5",
+ "singleQuote": true,
+ "proseWrap": "always"
+ },
+ "babel": {
+ "extends": "./.config/babel.config"
+ },
+ "jest": {
+ "preset": "./.config/jest.config"
+ },
+ "eslintConfig": {
+ "extends": "./.config/eslint.config"
+ },
+ "husky": {
+ "hooks": {
+ "pre-commit": "pretty-quick --staged"
+ }
+ },
+ "devDependencies": {
+ "@ampproject/rollup-plugin-closure-compiler": "^0.26.0",
+ "@atomico/rollup-plugin-sizes": "^1.1.4",
+ "@babel/cli": "^7.12.17",
+ "@babel/core": "^7.12.17",
+ "@babel/plugin-transform-flow-strip-types": "^7.12.13",
+ "@babel/plugin-transform-runtime": "^7.12.17",
+ "@babel/preset-env": "^7.12.17",
+ "@fezvrasta/tsc-silent": "^1.3.0",
+ "@khanacademy/flow-to-ts": "^0.3.0",
+ "@rollup/plugin-babel": "^5.3.1",
+ "@rollup/plugin-replace": "^2.3.4",
+ "babel-eslint": "^10.0.3",
+ "babel-jest": "^26.6.3",
+ "babel-plugin-add-import-extension": "^1.4.4",
+ "babel-plugin-annotate-pure-calls": "^0.4.0",
+ "babel-plugin-dev-expression": "^0.2.2",
+ "babel-plugin-inline-replace-variables": "^1.3.1",
+ "babel-plugin-transform-inline-environment-variables": "^0.4.3",
+ "concurrently": "^5.3.0",
+ "dotenv": "^8.2.0",
+ "esbuild": "^0.14.38",
+ "esbuild-plugin-flow": "^0.3.2",
+ "eslint": "^7.20.0",
+ "eslint-plugin-flowtype": "^5.2.2",
+ "eslint-plugin-import": "^2.22.1",
+ "eslint-plugin-unused-imports": "^1.1.0",
+ "esno": "^0.14.1",
+ "flow-bin": "^0.139.0",
+ "flow-copy-source": "^2.0.9",
+ "get-port-cli": "^2.0.0",
+ "husky": "^5.0.9",
+ "jest": "^26.6.3",
+ "jest-environment-jsdom-sixteen": "^1.0.3",
+ "jest-environment-puppeteer": "^4.4.0",
+ "jest-image-snapshot": "^4.3.0",
+ "jest-puppeteer": "^4.4.0",
+ "pinst": "^2.1.4",
+ "poster": "^0.0.9",
+ "prettier": "^2.2.1",
+ "pretty-quick": "^3.1.0",
+ "puppeteer": "^10.4.0",
+ "replace-in-files-cli": "^1.0.0",
+ "rollup": "^2.70.2",
+ "rollup-plugin-esbuild": "^4.9.1",
+ "rollup-plugin-flow-entry": "^0.3.3",
+ "rollup-plugin-license": "^2.2.0",
+ "rollup-plugin-terser": "^7.0.2",
+ "rollup-plugin-visualizer": "^4.2.0",
+ "serve": "^11.3.2",
+ "typescript": "^4.1.5"
+ },
+ "scripts": {
+ "clean": "rimraf lib && rimraf dist && rimraf test/visual/dist",
+ "test": "yarn test:unit && yarn test:functional",
+ "test:unit": "jest --coverage src",
+ "test:functional": "DEV_PORT=`get-port` jest tests/functional",
+ "test:flow": "flow",
+ "test:typescript": "tsc --project tests/typescript/tsconfig.json",
+ "test:eslint": "eslint .",
+ "dev": "NODE_ENV=dev concurrently 'yarn serve' 'yarn build:dev --watch'",
+ "serve": "serve -l ${DEV_PORT:-5000} tests/visual",
+ "build": "yarn clean && esmo build/build.ts && pnpm run build:typescript",
+ "build:typescript": "rimraf dist/typescript; flow-to-ts \"src/**/*.js\" --write --inline-utility-types; tsc-silent --project .config/tsconfig.json --createSourceFile .config/createSourceFile.js --suppress @; rimraf \"src/**/*.ts\""
+ },
+ "readme": "\n\n \n
\n\n\n
Tooltip & Popover Positioning Engine \n\n\n\n \n \n \n \n \n \n \n \n \n
\n\n \n\n\n**Positioning tooltips and popovers is difficult. Popper is here to help!**\n\nGiven an element, such as a button, and a tooltip element describing it, Popper\nwill automatically put the tooltip in the right place near the button.\n\nIt will position _any_ UI element that \"pops out\" from the flow of your document\nand floats near a target element. The most common example is a tooltip, but it\nalso includes popovers, drop-downs, and more. All of these can be generically\ndescribed as a \"popper\" element.\n\n## Demo\n\n[](https://popper.js.org)\n\n## Docs\n\n- [v2.x (latest)](https://popper.js.org/docs/v2/)\n- [v1.x](https://popper.js.org/docs/v1/)\n\nWe've created a\n[Migration Guide](https://popper.js.org/docs/v2/migration-guide/) to help you\nmigrate from Popper 1 to Popper 2.\n\nTo contribute to the Popper website and documentation, please visit the\n[dedicated repository](https://github.com/popperjs/website).\n\n## Why not use pure CSS?\n\n- **Clipping and overflow issues**: Pure CSS poppers will not be prevented from\n overflowing clipping boundaries, such as the viewport. It will get partially\n cut off or overflows if it's near the edge since there is no dynamic\n positioning logic. When using Popper, your popper will always be positioned in\n the right place without needing manual adjustments.\n- **No flipping**: CSS poppers will not flip to a different placement to fit\n better in view if necessary. While you can manually adjust for the main axis\n overflow, this feature cannot be achieved via CSS alone. Popper automatically\n flips the tooltip to make it fit in view as best as possible for the user.\n- **No virtual positioning**: CSS poppers cannot follow the mouse cursor or be\n used as a context menu. Popper allows you to position your tooltip relative to\n any coordinates you desire.\n- **Slower development cycle**: When pure CSS is used to position popper\n elements, the lack of dynamic positioning means they must be carefully placed\n to consider overflow on all screen sizes. In reusable component libraries,\n this means a developer can't just add the component anywhere on the page,\n because these issues need to be considered and adjusted for every time. With\n Popper, you can place your elements anywhere and they will be positioned\n correctly, without needing to consider different screen sizes, layouts, etc.\n This massively speeds up development time because this work is automatically\n offloaded to Popper.\n- **Lack of extensibility**: CSS poppers cannot be easily extended to fit any\n arbitrary use case you may need to adjust for. Popper is built with\n extensibility in mind.\n\n## Why Popper?\n\nWith the CSS drawbacks out of the way, we now move on to Popper in the\nJavaScript space itself.\n\nNaive JavaScript tooltip implementations usually have the following problems:\n\n- **Scrolling containers**: They don't ensure the tooltip stays with the\n reference element while scrolling when inside any number of scrolling\n containers.\n- **DOM context**: They often require the tooltip move outside of its original\n DOM context because they don't handle `offsetParent` contexts.\n- **Compatibility**: Popper handles an incredible number of edge cases regarding\n different browsers and environments (mobile viewports, RTL, scrollbars enabled\n or disabled, etc.). Popper is a popular and well-maintained library, so you\n can be confident positioning will work for your users on any device.\n- **Configurability**: They often lack advanced configurability to suit any\n possible use case.\n- **Size**: They are usually relatively large in size, or require an ancient\n jQuery dependency.\n- **Performance**: They often have runtime performance issues and update the\n tooltip position too slowly.\n\n**Popper solves all of these key problems in an elegant, performant manner.** It\nis a lightweight ~3 kB library that aims to provide a reliable and extensible\npositioning engine you can use to ensure all your popper elements are positioned\nin the right place.\n\nWhen you start writing your own popper implementation, you'll quickly run into\nall of the problems mentioned above. These widgets are incredibly common in our\nUIs; we've done the hard work figuring this out so you don't need to spend hours\nfixing and handling numerous edge cases that we already ran into while building\nthe library!\n\nPopper is used in popular libraries like Bootstrap, Foundation, Material UI, and\nmore. It's likely you've already used popper elements on the web positioned by\nPopper at some point in the past few years.\n\nSince we write UIs using powerful abstraction libraries such as React or Angular\nnowadays, you'll also be glad to know Popper can fully integrate with them and\nbe a good citizen together with your other components. Check out `react-popper`\nfor the official Popper wrapper for React.\n\n## Installation\n\n### 1. Package Manager\n\n```bash\n# With npm\nnpm i @popperjs/core\n\n# With Yarn\nyarn add @popperjs/core\n```\n\n### 2. CDN\n\n```html\n\n\n\n\n\n```\n\n### 3. Direct Download?\n\nManaging dependencies by \"directly downloading\" them and placing them into your\nsource code is not recommended for a variety of reasons, including missing out\non feat/fix updates easily. Please use a versioning management system like a CDN\nor npm/Yarn.\n\n## Usage\n\nThe most straightforward way to get started is to import Popper from the `unpkg`\nCDN, which includes all of its features. You can call the `Popper.createPopper`\nconstructor to create new popper instances.\n\nHere is a complete example:\n\n```html\n\nPopper example \n\n\n\nI'm a button \nI'm a tooltip
\n\n\n\n```\n\nVisit the [tutorial](https://popper.js.org/docs/v2/tutorial/) for an example of\nhow to build your own tooltip from scratch using Popper.\n\n### Module bundlers\n\nYou can import the `createPopper` constructor from the fully-featured file:\n\n```js\nimport { createPopper } from '@popperjs/core';\n\nconst button = document.querySelector('#button');\nconst tooltip = document.querySelector('#tooltip');\n\n// Pass the button, the tooltip, and some options, and Popper will do the\n// magic positioning for you:\ncreatePopper(button, tooltip, {\n placement: 'right',\n});\n```\n\nAll the modifiers listed in the docs menu will be enabled and \"just work\", so\nyou don't need to think about setting Popper up. The size of Popper including\nall of its features is about 5 kB minzipped, but it may grow a bit in the\nfuture.\n\n#### Popper Lite (tree-shaking)\n\nIf bundle size is important, you'll want to take advantage of tree-shaking. The\nlibrary is built in a modular way to allow to import only the parts you really\nneed.\n\n```js\nimport { createPopperLite as createPopper } from '@popperjs/core';\n```\n\nThe Lite version includes the most necessary modifiers that will compute the\noffsets of the popper, compute and add the positioning styles, and add event\nlisteners. This is close in bundle size to pure CSS tooltip libraries, and\nbehaves somewhat similarly.\n\nHowever, this does not include the features that makes Popper truly useful.\n\nThe two most useful modifiers not included in Lite are `preventOverflow` and\n`flip`:\n\n```js\nimport {\n createPopperLite as createPopper,\n preventOverflow,\n flip,\n} from '@popperjs/core';\n\nconst button = document.querySelector('#button');\nconst tooltip = document.querySelector('#tooltip');\n\ncreatePopper(button, tooltip, {\n modifiers: [preventOverflow, flip],\n});\n```\n\nAs you make more poppers, you may be finding yourself needing other modifiers\nprovided by the library.\n\nSee [tree-shaking](https://popper.js.org/docs/v2/performance/#tree-shaking) for more\ninformation.\n\n## Distribution targets\n\nPopper is distributed in 3 different versions, in 3 different file formats.\n\nThe 3 file formats are:\n\n- `esm` (works with `import` syntax — **recommended**)\n- `umd` (works with `