{"version":3,"file":"element-plus.mjs","names":[],"sources":["../src/element-plus.ts"],"sourcesContent":["/** Element Plus 组件全局配置 */\n\nimport * as ElementPlusIconsVue from \"@element-plus/icons-vue\";\nimport ElementPlus, { ElDialog, ElForm, ElInput, ElInputNumber, ElMessageBox, ElSelect, ElTable, ElTree, ElTreeSelect } from \"element-plus\";\nimport { useOverlay } from \"./hooks\";\nimport { callOptionalFunction } from \"./utils\";\nimport type { Action, ElMessageBoxOptions, ElMessageBoxShortcutMethod, MessageBoxData, MessageBoxState } from \"element-plus\";\nimport type { App, AppContext } from \"vue\";\n\n/* Element Plus 默认值设置。 */\nElDialog.setPropsDefaults({\n\t/** 默认拖拽。 */\n\tdraggable: true,\n});\n\nElForm.setPropsDefaults({\n\t/** 默认标签宽度。 */\n\tlabelWidth: \"auto\",\n\t/** 默认标签后缀。 */\n\tlabelSuffix: \"：\",\n\t/** 校验失败时默认滚动到第一个错误表单项。 */\n\tscrollToError: true,\n});\n\nElInput.setPropsDefaults({\n\t/** 默认显示字数统计。 */\n\tshowWordLimit: true,\n});\n\nElInputNumber.setPropsDefaults({\n\t/** 默认不显示控制按钮。 */\n\tcontrols: false,\n\t/** 默认左对齐。 */\n\talign: \"left\",\n});\n\nElSelect.setPropsDefaults({\n\t/** 默认加载提示。 */\n\tloadingText: \"加载中...\",\n\t/** 默认无匹配数据提示。 */\n\tnoMatchText: \"暂无匹配的数据\",\n\t/** 默认无数据提示。 */\n\tnoDataText: \"暂无数据\",\n\t/** 多选时默认折叠标签。 */\n\tcollapseTags: true,\n\t/** 默认在悬停折叠标签时显示完整内容。 */\n\tcollapseTagsTooltip: true,\n});\n\nElTable.setPropsDefaults({\n\t/** 默认显示边框。 */\n\tborder: true,\n\t/** 默认高亮当前行。 */\n\thighlightCurrentRow: true,\n\t/** 默认行 Key。 */\n\trowKey: \"id\",\n});\n\nElTree.setPropsDefaults({\n\t/** 默认展开所有节点。 */\n\tdefaultExpandAll: true,\n\t/** 默认点击时选中节点。 */\n\tcheckOnClickNode: true,\n\t/** 默认高亮当前节点。 */\n\thighlightCurrent: true,\n});\n\nElTreeSelect.setPropsDefaults({\n\t/** 默认加载提示。 */\n\tloadingText: \"加载中...\",\n\t/** 默认无匹配数据提示。 */\n\tnoMatchText: \"暂无匹配的数据\",\n\t/** 默认无数据提示。 */\n\tnoDataText: \"暂无数据\",\n\t/** 多选时默认折叠标签。 */\n\tcollapseTags: true,\n\t/** 默认在悬停折叠标签时显示完整内容。 */\n\tcollapseTagsTooltip: true,\n\t/** 默认展开所有节点。 */\n\tdefaultExpandAll: true,\n\t/** 默认点击时选中节点。 */\n\tcheckOnClickNode: true,\n\t/** 默认高亮当前节点。 */\n\thighlightCurrent: true,\n\t/** 默认仅通过箭头展开或收起节点。 */\n\texpandOnClickNode: false,\n});\n\n// ElMessageBox 默认配置\nconst elMessageBox = (\n\ttype: \"alert\" | \"confirm\" | \"prompt\",\n\tmessage: ElMessageBoxOptions[\"message\"],\n\toptions?: ElMessageBoxOptions,\n\tappContext?: AppContext | null\n): Promise<MessageBoxData> => {\n\t// 不直接修改调用方传入的配置，避免复用同一个 Options 对象时残留本次默认值和 beforeClose 包装。\n\tconst resolvedOptions: ElMessageBoxOptions = { ...(options ?? {}) };\n\t// 默认提示\n\tresolvedOptions.title ??= \"温馨提示\";\n\t// 默认拖拽\n\tresolvedOptions.draggable ??= true;\n\t// 默认 取消按钮的文本内容\n\tresolvedOptions.cancelButtonText ??= \"取消\";\n\t// 默认 确定按钮的文本内容\n\tresolvedOptions.confirmButtonText ??= \"确定\";\n\t// 默认 是否可通过点击遮罩层关闭 MessageBox\n\tresolvedOptions.closeOnClickModal ??= false;\n\t// 默认 是否可通过按下 ESC 键关闭 MessageBox\n\tresolvedOptions.closeOnPressEscape ??= false;\n\n\t// 关闭之前的判断逻辑\n\tif (resolvedOptions.beforeClose != null) {\n\t\tconst localBeforeClose = resolvedOptions.beforeClose;\n\t\tconst localConfirmButtonText = resolvedOptions.confirmButtonText;\n\t\tconst localShowCancelButton = resolvedOptions.showCancelButton;\n\t\tresolvedOptions.beforeClose = (action: Action, instance: MessageBoxState, done: () => void): void => {\n\t\t\tif (action === \"confirm\") {\n\t\t\t\tuseOverlay.show(0);\n\t\t\t\tinstance.confirmButtonLoading = true;\n\t\t\t\tinstance.showCancelButton = false;\n\t\t\t\tinstance.confirmButtonText = \"加载中...\";\n\t\t\t\tlet completed = false;\n\n\t\t\t\tconst cancelLoading = (): void => {\n\t\t\t\t\tinstance.confirmButtonLoading = false;\n\t\t\t\t\tinstance.showCancelButton = localShowCancelButton ?? false;\n\t\t\t\t\tinstance.confirmButtonText = localConfirmButtonText;\n\t\t\t\t\tuseOverlay.hide();\n\t\t\t\t};\n\n\t\t\t\tconst newDone = (): void => {\n\t\t\t\t\tif (completed) return;\n\t\t\t\t\tcompleted = true;\n\t\t\t\t\tcancelLoading();\n\t\t\t\t\tdone();\n\t\t\t\t};\n\n\t\t\t\tcallOptionalFunction(localBeforeClose, action, instance, newDone)\n\t\t\t\t\t.then(() => newDone())\n\t\t\t\t\t.catch((error: unknown) => {\n\t\t\t\t\t\tif (!completed) cancelLoading();\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tdone();\n\t\t\t}\n\t\t};\n\t}\n\n\t// 根据类型有一些判断\n\tswitch (type) {\n\t\tcase \"alert\":\n\t\t\tbreak;\n\t\tcase \"confirm\":\n\t\t\tresolvedOptions.showCancelButton ??= true;\n\t\t\tbreak;\n\t\tcase \"prompt\":\n\t\t\tresolvedOptions.showCancelButton ??= true;\n\t\t\tbreak;\n\t}\n\n\treturn ElMessageBox({ message, ...resolvedOptions, boxType: type }, appContext);\n};\n\ntype MESSAGE_BOX_TYPE = \"alert\" | \"confirm\" | \"prompt\";\nconst MESSAGE_BOX_DEFAULT_OPTS: Record<MESSAGE_BOX_TYPE, Partial<ElMessageBoxOptions>> = {\n\talert: { closeOnPressEscape: false, closeOnClickModal: false },\n\tconfirm: { showCancelButton: true },\n\tprompt: { showCancelButton: true, showInput: true },\n};\n\nconst isAppContext = (value: ElMessageBoxOptions | AppContext | null | undefined): value is AppContext =>\n\ttypeof value === \"object\" && value !== null && \"app\" in value && \"config\" in value;\n\nconst createMessageBoxShortcut = (type: MESSAGE_BOX_TYPE): ElMessageBoxShortcutMethod => {\n\tfunction shortcut(\n\t\tmessage: ElMessageBoxOptions[\"message\"],\n\t\toptions?: ElMessageBoxOptions,\n\t\tappContext?: AppContext | null\n\t): Promise<MessageBoxData>;\n\tfunction shortcut(\n\t\tmessage: ElMessageBoxOptions[\"message\"],\n\t\ttitle: ElMessageBoxOptions[\"title\"],\n\t\toptions?: ElMessageBoxOptions,\n\t\tappContext?: AppContext | null\n\t): Promise<MessageBoxData>;\n\tfunction shortcut(\n\t\tmessage: ElMessageBoxOptions[\"message\"],\n\t\ttitleOrOptions?: string | ElMessageBoxOptions,\n\t\toptionsOrContext?: ElMessageBoxOptions | AppContext | null,\n\t\tappContext?: AppContext | null\n\t): Promise<MessageBoxData> {\n\t\tif (typeof titleOrOptions === \"string\") {\n\t\t\tconst options = isAppContext(optionsOrContext) ? undefined : optionsOrContext;\n\t\t\treturn elMessageBox(type, message, { ...MESSAGE_BOX_DEFAULT_OPTS[type], title: titleOrOptions, ...(options ?? {}) }, appContext);\n\t\t}\n\n\t\tconst context = optionsOrContext === null || isAppContext(optionsOrContext) ? optionsOrContext : undefined;\n\t\treturn elMessageBox(type, message, { ...MESSAGE_BOX_DEFAULT_OPTS[type], ...(titleOrOptions ?? {}) }, context);\n\t}\n\n\treturn shortcut;\n};\n\nElMessageBox.alert = createMessageBoxShortcut(\"alert\");\nElMessageBox.prompt = createMessageBoxShortcut(\"prompt\");\nElMessageBox.confirm = createMessageBoxShortcut(\"confirm\");\n\n/**\n * 注册 Element Plus 及其全部图标。\n *\n * @param app - Vue 应用实例。\n */\nexport const installElementPlus = (app: App): void => {\n\t/** 注册 Element Plus 全部图标，供 FaIcon 按名称解析。 */\n\tfor (const [key, component] of Object.entries(ElementPlusIconsVue)) app.component(`el-icon-${key}`, component);\n\n\t/** Element Plus 组件完整引入 */\n\tapp.use(ElementPlus);\n};\n"],"mappings":"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"}