1 line
136 KiB
JavaScript
1 line
136 KiB
JavaScript
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-35114226"],{"040d":function(e,t,i){"use strict";i("59e5")},"0793":function(e,t,i){"use strict";i("6d13")},"19aa":function(e,t,i){"use strict";var n=i("3a9b"),a=TypeError;e.exports=function(e,t){if(n(t,e))return e;throw new a("Incorrect invocation")}},"25fc":function(e,t,i){"use strict";i("2dd2")},"2c7d":function(e){e.exports=JSON.parse('{"upgradeToVip":"一键升级","createKMindDoc":"创建KMind文档","copySuccessAnywhere":"复制成功,请在思源中的任意位置直接粘贴即可","copyMirrorBlock":"复制 KMind 镜像块","copyMirrorBlockNotKMind":"该文档不是 KMind 文档树导图","cannotGetKmindPath":"无法获取 KMind 文档路径","mirrorBlockCopied":"镜像块已复制,可在任意位置粘贴","copyMirrorBlockFailed":"复制镜像块失败","deleteSuccess":"删除成功","createFailed":"新建kmind文件失败,请重试!","createSuccess":"新建kmind文件成功!","createNewKmind":"创建一张新的导图","renameSuccess":"重命名成功","fileAlreadyExists":"文件名已存在,请重新输入","cannotInputSpecialSymbols":"不可以输入特殊符号哦~","fileName":"文件名称","warning":"警告:此操作不可逆!!!","confirmDelete":"确定要永久删除","rename":"重命名","copyLinkDirectly":"直接复制超链接","copySuccess":"复制成功","clickToCopy":"点击复制如下内容:","copyLink":"复制超链接:","minimize":"最小化","add":"新建","kmindProNotActivated":"KMind: 请在顶部KMind菜单栏开通pro功能后使用","switchToKMindView":"切换为KMind视图","switchToEditView":"切换为编辑视图","openKmind":"打开kmind","kmindGlobalConfig":"KMind 全局配置","kmindLicenseInfo":"KMind授权信息","overview":"概览","docTreeKmindCount":"文档树导图数量","dockKmindCount":"dock栏导图数量","widgetKmindCount":"挂件导图数量","historyRecordConfig":"历史记录配置","createHistoryForAllKmind":"一键为所有已存在的kmind创建一份历史记录","progress":"进度","createHistorySuccess":"创建成功,如果使用了思源同步,请记得同步一下","createHistoryFailed":"创建失败","licenseUser":"授权用户","licenseEmail":"授权邮箱","activeCode":"激活码","afdOrder":"爱发电订单号","pleaseLoginSiYuanAccount":"请先登录思源账号","refresh":"刷新","pleaseInputLegalEmail":"请输入合法的邮箱","pleaseInputActiveCode":"请输入激活码","pleaseInputAFDOrder":"请输入爱发电订单号","getActivationCodeByAFDOrder":"通过爱发电订单号获取激活码","activate":"激活","getActivationCode":"获取激活码","findActivationCode":"查找激活码","pleaseInputKMxxxOrderNumber":"请输入kmindxxx订单号","pleaseNoteKMindProMustBindSiYuanAccount":"请注意:KMind Pro 必须绑定思源账号","annualSubscription":"年付订阅","description":"描述","studentPartyReallyUnableToAffordThisPrice":"学生党真的很难负担这个价格?","ifYouReallyThinkThisPluginIsHelpfulToYourStudies":"如果你真的认为这个插件对你的学习有帮助","pleaseUseYourSchoolEmailToSendTheGradeScreenshotEmail":"请使用你的学校邮箱发送非挂科成绩截图邮件","contactMeAtEmail":"到 kmind_app@outlook.com 联系我","iWillGiveYouAnAnnualSubscription":"我会赠送您一个年付订阅,次年可凭非挂科的成绩单续订","pleaseDoNotHaveAnyConcerns":"请不要有任何顾虑","getPaymentQRCode":"获取付款二维码","considerAgain":"再考虑考虑","doYouHaveADonationId":"您有捐赠码吗?","ifYouHaveADonationId":"如果有的话,请输入捐赠单号,可以双倍抵扣费用,超出不补","dueToTheDesignOfWeChatPraiseCode":"注意:由于微信的赞赏码设计原因","donationIdNeedsToBeContactedAndSentAfterSendingPraiseScreenshot":"捐赠单号需要联系我并发送赞赏截图后才可正常获取折后价","youCan":"你可以","joinQQGroup":"加入QQ群","contactMeOrSendPraiseScreenshotToEmail":"联系我或发送赞赏截图到邮箱","iWillDealWithItImmediatelyAndReply":"看到后会第一时间处理并回复","email":"kmind_app@outlook.com","getDiscountPrice":"获取折后价","thankYouForYourGenerousDonation":"谢谢您的慷慨捐赠,捐赠金额可以全额抵扣支付费用,请","clickMeToGetActivationCodeDirectly":"点我直接获取激活码","upgrade":"升级","kmind2PermanentSubscription":"KMind2 永久订阅","updateSummary":"更新摘要","detailedTextAndPictureClickMeToView":"详细图文点我查看","globalConfigTips":"全局配置(文档树内导图,Dock栏导图,挂件导图生效)","openKmindConfig":"当打开一张KMind的时候,想要它是什么样的呢?","newKmindConfig":"当新建一张KMind的时候,想要它是什么样的呢?","leftKeySelectionRightKeyDrag":"左键选择,右键拖拽","openKmindAutoZenMode":"自动进入禅模式","newKmindAutoSelectTheme":"切换到指定主题","newKmindAutoSelectStructure":"切换到指定结构","siYuanToKMindConfig":"思源一键转KMind配置","siYuanToKMindAutoSelectTheme":"切换到指定主题","siYuanToKMindAutoSelectStructure":"切换到指定结构","mobileDocTreeKmindEdit":"开启移动端文档树导图编辑功能","mobileDocTreeKmindEditWarning":"如果开启了云同步功能,请保证同步完毕后再开始编辑导图,否则可能会导致出现冲突","showToolbarInDesktop":"桌面端显示悬浮工具栏","close":"关闭","mobileNotSupport":"由于移动端的思源不支持新建tab页,所以暂无法显示,您可以通过镜像块或者挂件KMind或者文档树导图在移动端继续使用KMind","licenseInfo":{"licenseUser":"授权用户","pleaseLoginSiYuanAccount":"请先登录思源账号","refresh":"刷新","licenseEmail":"授权邮箱","pleaseInputLegalEmail":"请输入合法邮箱","activeCode":"激活码","pleaseInputActiveCode":"请输入激活码, kmind-xxxx","activate":"激活","getActivationCode":"获取激活码","close":"关闭","pleaseInputKMxxxOrderNumber":"请输入KM-xxx开头的订单号,在您的支付宝或者微信的付款记录中可以找到","findActivationCode":"找回激活码","pleaseNoteKMindProMustBindSiYuanAccount":"请注意:目前KMind pro版必须绑定思源账户使用,请登录思源账户后再 购买 & 激活","licenseTo":"KMind Pro版授权给","subscriptionType":"订阅类型:","expireTime":"授权到期时间:","refreshLicense":"刷新授权","haveQuestions":"有疑问?请:","licenseSuccess":"KMind: 授权验证成功","licenseExpired":"KMind: 授权已过期,请重新激活","kmindAuthorizationVerificationFailed":"KMind: 授权验证失败,请重新激活","cloudAuthorizationVerificationFailed":"KMind: 云授权验证失败,请重新激活","cloudAuthorizationVerificationSuccess":"KMind: 云授权验证成功","pleaseInputOrderNumber":"请输入订单号","pleaseTryAgainAfter30s":"请30s后再试","ifTheOrderNumberIsCorrect":"如果订单号正确,激活码会在10分钟内发送至您的邮箱,请注意查收(可能在垃圾邮件中)","networkErrorPleaseContactMe":"网络错误,请联系我: kmind_app@outlook.com","pleaseInputLegalActivationCode":"请输入合法激活码","kmindActivationFailed":"KMind:激活失败,请检查网络或者联系我: kmind_app@outlook.com","kmindActivationSuccess":"KMind:激活成功"},"trial":{"status":"试用状态","current":"当前:","inTrial":"试用中","notTrial":"未试用","remainingLabel":"剩余:","oneClickApplySevenDaysPro":"一键开启 7 天 Pro 功能试用","applying":"正在申请试用...","applySevenDays":"申请 7 天试用","trialCard":"试用时长卡","trialCardPlaceholder":"输入时长卡兑换码","redeem":"兑换","trialType":"试用类型:","trialExpire":"试用到期:","extendCardPlaceholder":"输入加时卡兑换码","alreadyApplied":"已申请过试用","applied":"试用已开启(7天)","applyFailed":"试用申请失败","statusError":"获取试用状态失败","cardCodeRequired":"请输入时长卡兑换码","redeemSuccess":"兑换成功,试用已延长","redeemFailed":"兑换失败,请稍后重试","redeemError":"兑换失败","noRemaining":"0天","daysHours":"{days}天{hours}小时","hours":"{hours}小时"},"stripe":{"intro":"国际用户可通过 Stripe(USD)购买 KMind Pro:","pleaseFillEmail":"请先在上方填写授权邮箱(用于接收激活码)。","buyAnnual":"购买年付订阅(Stripe)","buyV2":"购买 KMind2 永久订阅(Stripe)","afterPaymentEmail":"支付成功后,激活码会自动发送到你的邮箱;如未收到,可使用“找回激活码”。","needHelpEmail":"遇到问题请联系:","docs":"使用文档:","telegram":"加入 Telegram 获取支持与更新:","openingCheckout":"正在打开 Stripe 支付页面...","orderCreated":"订单已创建:{orderId}。支付完成后激活码会发送到邮箱;如未收到,可用该订单号在“找回激活码”中找回。","checkoutFailed":"创建 Stripe 支付失败,请稍后重试或联系我"},"addDocTreeKMind":{"title":"创建KMind文档树导图","createDocTreeKmind":"创建 KMind 文档树导图","createAboveDocTreeKmind":"在上方新建 KMind 导图","createBelowDocTreeKmind":"在下方新建 KMind 导图","versionWarning":"警告:思源笔记版本低于 3.1.8,文档树导图功能可能不稳定","inputPrompt":"请输入文档树导图名称","confirmButton":"确定","cancelButton":"取消","inputPlaceholder":"请输入文档树导图名称","defaultName":"未命名导图","nameEmpty":"名称不能为空","fileName":"文档名称","cannotInputSpecialSymbols":"文件名不能包含特殊字符 \\\\/:*?\\"<>|","createSuccess":"文档树导图创建成功","createFailed":"创建文档树导图失败:","kmindProNotActivated":"KMind Pro 尚未激活","kmindLicenseInfo":"KMind授权信息","upgradeToVip":"升级为专业版"},"menu":{"globalConfig":"KMind 全局配置","themeDesigner":"主题设计器","kmindPro":"- KMind PRO -","toggleMocMode":"切换 MOC 模式","enableMocMode":"已开启 MOC 模式","disableMocMode":"已关闭 MOC 模式"},"globalConfig":{"overview":"概览","docTreeMindmap":"文档树导图","dockMindmap":"dock栏导图","widgetMindmap":"挂件导图","historyConfig":"历史记录配置","historyConfigTip":"为所有已存在的kmind创建历史记录,这将使您可以查看和恢复之前的版本。","startCreate":"开始创建","creating":"创建中","noKmindForHistory":"没有找到需要创建历史记录的导图","creatingHistory":"正在创建历史记录...","historyCreatedSuccess":"历史记录创建完成!成功创建 {count} 个历史记录","historyCreatedWithError":"历史记录创建完成!成功 {success} 个,失败 {fail} 个","globalConfigTab":"全局配置","mocConfigTab":"MOC 配置","leftClickRightDrag":"左键选择,右键拖拽","leftClickRightDragTip":"开启后:左键用于选择节点,右键用于拖拽画布","enableMobileEdit":"开启移动端文档树导图编辑功能","mobileEditWarning":"如果开启了云同步功能,请保证同步完毕后再开始编辑导图,否则可能会导致出现冲突","showDesktopToolbar":"桌面端显示悬浮工具栏","loadDockIcon":"加载 Dock 栏图标","loadDockIconTip":"关闭后将隐藏 Dock 栏图标(重启思源后生效)","loadDockIconNeedRestart":"Dock 栏图标设置已保存,重启思源后生效","siyuanHyperlinkLeftClickAction":"思源超链接左键行为","siyuanHyperlinkLeftClickActionTip":"配置左键点击思源超链接时的默认动作","openSiyuanTab":"直接打开思源标签页","openSiyuanTabRight":"在右侧打开思源标签页","openSiyuanTabBottom":"在下方打开思源标签页","openSiyuanFloat":"打开思源浮窗","openKmindConfigTab":"打开KMind配置","autoZenMode":"自动进入禅模式","autoReadOnlyMode":"自动进入只读模式","newKmindConfigTab":"新建KMind配置","switchToTheme":"切换到指定主题","switchToLayout":"切换到指定结构","siyuanToKmindConfigTab":"思源一键转KMind配置","mocDefaultTheme":"MOC 默认主题","mocDefaultLayout":"MOC 默认布局","myTheme":"我的主题","classic":"经典","dark":"暗色","simple":"简约","configSaved":"配置已保存","configSavedNeedReload":"配置已保存,重新开关 KMind 导图后生效","shortcutConfigTab":"快捷键配置","shortcutConfigTip":"仅在 KMind 视图激活时生效;未激活时不会拦截思源/浏览器快捷键。","shortcutUnsavedTip":"已修改快捷键配置,保存后生效","shortcutConfigSaved":"快捷键配置已保存并立即生效","shortcutReservedTitle":"保留键(不可修改)","shortcutDocTreeOnlyTitle":"仅文档树导图可用:","shortcutDocTreeOnlyBadge":"仅文档树导图","shortcutCategoryNode":"节点结构与编辑","shortcutCategoryCanvas":"画布与视图","shortcutCategoryOutline":"大纲","shortcutCategoryTool":"工具","shortcutCategoryFile":"文件/搜索","shortcutDefault":"默认","shortcutUsingDefault":"默认","shortcutDisabled":"已禁用","shortcutSave":"保存","shortcutResetAll":"恢复默认(全部)","shortcutDisable":"禁用","shortcutRestoreDefault":"恢复默认","shortcutRecord":"录入快捷键","shortcutRecording":"录入中…","shortcutCancelRecord":"取消录入(Esc)","shortcutRecordingHint":"请按下要绑定的快捷键(按 Esc 取消)","shortcutInvalidKey":"该按键组合不受支持,请换一个","shortcutReservedKeyWarn":"该按键为保留键(Ctrl/Cmd+A/C/V/X/Z/Y),暂不支持占用或修改","shortcutConflictTitle":"快捷键冲突","shortcutConflictCannotSave":"存在快捷键冲突,无法保存","shortcutJumpTo":"跳转到:","shortcutColumnCommand":"命令","shortcutColumnKeys":"快捷键","shortcutColumnOps":"操作","mocSectionTitle":"MOC 导图交互","enableMocInlineDocIcon":"启用内联文档图标","enableMocInlineDocIconTip":"在 MOC 模式下,在节点文本后显示“打开文档”小图标","mocInlineHoverDuration":"悬停时长(毫秒)","mocInlineHoverDurationTip":"鼠标悬停内联图标达到该时长后,显示思源悬浮窗","mocInlineOpenPosition":"单击打开位置","openRight":"右侧(推荐)","openBottom":"下方","openCurrent":"当前标签","logicalStructure":"逻辑结构图","logicalStructureLeft":"向左逻辑结构图","mindMap":"思维导图","organizationStructure":"组织结构图","catalogOrganization":"目录组织图","timeline":"时间轴","timeline2":"时间轴2","verticalTimeline":"竖向时间轴","fishbone":"鱼骨图","radial":"径向布局","theme_classic":"脑图经典","theme_blackHumour":"黑色幽默","theme_lateNightOffice":"深夜办公室","theme_blackGold":"黑金","theme_orangeJuice":"橙汁","theme_neonLamp":"霓虹灯","theme_darkNightLceBlade":"暗夜冰刃","theme_dark":"暗色","theme_dark2":"暗色2","theme_dark3":"暗色3","theme_dark4":"暗色4","theme_dark5":"暗色5","theme_dark6":"暗色6","theme_dark7":"暗色7","theme_default":"默认","theme_skyGreen":"天清绿","theme_classicGreen":"经典绿","theme_classicBlue":"经典蓝","theme_blueSky":"天空蓝","theme_brainImpairedPink":"脑残粉","theme_earthYellow":"泥土黄","theme_freshGreen":"清新绿","theme_freshRed":"清新红","theme_romanticPurple":"浪漫紫","theme_pinkGrape":"粉红葡萄","theme_mint":"薄荷","theme_gold":"金色vip","theme_vitalityOrange":"活力橙","theme_greenLeaf":"绿叶","theme_minions":"小黄人","theme_simpleBlack":"简约黑","theme_courseGreen":"课程绿","theme_coffee":"咖啡","theme_redSpirit":"红色精神","theme_avocado":"牛油果","theme_autumn":"秋天","theme_oreo":"奥利奥","theme_shallowSea":"浅海","theme_lemonBubbles":"柠檬气泡","theme_rose":"玫瑰","theme_seaBlueLine":"海蓝线","theme_morandi":"莫兰迪","theme_cactus":"仙人掌","theme_classic2":"脑图经典2","theme_classic3":"脑图经典3","theme_classic4":"脑图经典4","theme_classic5":"脑图经典5","theme_classic6":"脑图经典6","theme_classic7":"脑图经典7","theme_classic8":"脑图经典8","theme_classic9":"脑图经典9","theme_classic10":"脑图经典10","theme_classic11":"脑图经典11","theme_classic12":"脑图经典12","theme_classic13":"脑图经典13","theme_classic14":"脑图经典14","theme_classic15":"脑图经典15"},"themeDesigner":{"title":"主题设计器","currentTheme":"当前主题","loadTheme":"加载主题","saveTheme":"保存主题","exportTheme":"导出主题","importTheme":"导入主题","themeName":"主题名称","themeDescription":"主题描述","author":"作者","backgroundColor":"背景颜色","lineColor":"连线颜色","rootNode":"根节点","secondNode":"二级节点","otherNode":"其他节点","childNode":"三级及以下节点","generalizationNode":"概要节点","newTheme":"新建","resetTheme":"重置","generalStyle":"通用样式","backgroundSettings":"背景设置","lineStyle":"连线样式","lineStyleType":"连线风格","straight":"直线","curve":"曲线","direct":"直连","brace":"括号","roundedCornerSize":"圆角大小","roundedCornerTip":"仅在连线风格为直线(straight)时生效,支持logicalStructure、mindMap、verticalTimeline布局","nodeSpacing":"节点间距","nodeMargin":"节点外边距","marginX":"水平外边距","marginY":"垂直外边距","fillColor":"填充颜色","borderColor":"边框颜色","textColor":"文本颜色","fontSize":"字体大小","borderWidth":"边框宽度","paddingX":"水平内边距","paddingY":"垂直内边距","lineWidth":"连线宽度","nodeShape":"节点形状","rectangle":"矩形","roundedRectangle":"圆角矩形","ellipse":"椭圆","circle":"圆形","diamond":"菱形","parallelogram":"平行四边形","preview":"预览","saveSuccess":"保存成功","saveFailed":"保存失败","exportSuccess":"导出成功","exportFailed":"导出失败","importSuccess":"导入成功","importFailed":"导入失败","themeNameRequired":"请输入主题名称","confirmDelete":"确定删除主题","deleteSuccess":"删除成功","deleteFailed":"删除失败","pleaseSelectTheme":"请选择一个主题","myThemes":"我的主题","shareTheme":"分享主题","shareToGallery":"分享到主题广场","updateShare":"更新分享","viewShare":"查看分享","copyTheme":"复制主题","renameTheme":"重命名主题","deleteTheme":"删除主题","useTheme":"使用此主题","noThemes":"暂无自定义主题","searchTheme":"搜索主题","createdAt":"创建时间","updatedAt":"更新时间","shareSuccess":"主题分享成功!","shareFailed":"分享失败,请重试","shareNotFound":"未找到分享信息","confirmUpdateShare":"确定要更新分享的主题吗?","updateShareTitle":"更新确认","updateShareSuccess":"主题更新成功","updateShareFailed":"更新失败,请重试","copySuccess":"复制成功","copyFailed":"复制失败","renameSuccess":"重命名成功","renameFailed":"重命名失败","untitledTheme":"未命名主题","themeNameExists":"主题名称已存在,请使用其他名称","saveBeforeNew":"是否保存当前主题后再新建?","tip":"提示","saveAndNew":"保存并新建","directNew":"直接新建","confirmReset":"确定要重置当前主题为默认样式吗?所有未保存的更改将丢失。","confirm":"确定","cancel":"取消","resetSuccess":"主题已重置为默认样式","themeExistsOverwrite":"主题\\"{name}\\"已存在,是否覆盖?","overwrite":"覆盖","copy":"副本","themeCopied":"主题已复制,请修改名称后保存","importFailedFormat":"主题导入失败,请检查文件格式","confirmDeleteCurrent":"确定要删除当前主题吗?","warning":"警告","themeAlreadyShared":"该主题已分享到云端","update":"更新","currentVersion":"当前版本","newVersion":"新版本","inputChangeLog":"请输入本次更新的内容说明(200字以内)","updateTheme":"更新主题","changeLogPlaceholder":"例如:优化了配色方案,调整了节点样式...","changeLogTooLong":"更新说明不能超过200个字符","basicStyle":"基础样式","shape":"形状","borderRadius":"圆角大小","textStyle":"文字样式","fontFamily":"字体","microsoftYahei":"微软雅黑","songti":"宋体","heiti":"黑体","kaiti":"楷体","fontWeight":"字体粗细","normal":"正常","bold":"粗体","bolder":"更粗","lighter":"较细","fontStyle":"字体样式","italic":"斜体","borderStyle":"边框样式","pleaseSetThemeName":"请先设置主题名称","pleaseAuthorizeFirst":"请先授权后再分享主题","authorizationExpired":"授权已过期,请重新授权","generatePreviewFailed":"生成主题预览失败,请重试","getUploadUrlFailed":"获取上传地址失败","uploadCoverFailed":"上传封面图失败","uploadThemeDataFailed":"上传主题数据失败","publishThemeFailed":"发布主题失败","updateFailed":"更新失败","updateSuccess":"主题更新成功!","updateFailedRetry":"更新失败,请重试","themeNameEmpty":"主题名称不能为空","themeMissingId":"主题缺少唯一标识符","previewNotFound":"未找到主题预览图,请先在主题设计器中保存主题","readPreviewFailed":"读取主题预览失败,请先在主题设计器中保存主题","pleaseAuthorize":"请先授权","pleaseAuthorizeToView":"请先授权后再查看分享状态","generatingPreview":"正在生成主题预览...","gettingUploadUrl":"正在获取上传地址...","uploadingCover":"正在上传封面图...","uploadingThemeData":"正在上传主题数据...","publishingTheme":"正在发布主题...","readingPreview":"正在读取主题预览...","processingPreview":"正在处理主题预览...","uploadingNewCover":"正在上传新封面...","updatingThemeInfo":"正在更新主题信息...","updatingTheme":"正在更新主题..."},"cloudThemes":{"title":"云端主题广场","subtitle":"探索和分享精美的思维导图主题","loading":"正在加载主题...","noThemes":"暂无主题","author":"作者","version":"版本","views":"浏览","createdAt":"创建时间","updatedAt":"更新于","lastUpdate":"最后更新","latestChangeLog":"最新更新日志","versionHistory":"版本历史","latest":"最新","import":"导入主题","downloadJson":"下载 JSON 文件","serviceUnavailable":"云端服务暂不可用","loadError":"加载主题列表失败","loadDetailError":"加载主题详情失败","noThemeData":"主题数据不可用","importSuccess":"主题导入成功","importError":"主题导入失败","downloadSuccess":"下载成功","downloadError":"下载失败"},"shortcutCommands":{"EDIT_NODE":"编辑节点","QUICK_EDIT_NODE":"快速编辑节点(全选)","INSERT_CHILD_NODE":"插入下级节点","INSERT_NODE":"插入同级节点","INSERT_PARENT_NODE":"插入父节点","UP_NODE":"上移节点","DOWN_NODE":"下移节点","ADD_GENERALIZATION":"插入概要","TOGGLE_EXPAND":"展开/收起节点","REMOVE_NODE":"删除节点","REMOVE_CURRENT_NODE":"仅删除当前节点","ADD_SIYUAN_PAGE":"节点子文档","BIND_PROTYLE_BLOCK_ID":"绑定思源块ID","TOGGLE_TODO":"添加/删除待办","COPY_NODE_HYPERLINK":"复制节点超链接","KMIND_COPY_CUR_NODE_TO_PNG":"复制该节点为图片","KMIND_COPY_NODE_MIRROR_BLOCK":"复制节点镜像块","RESET_LAYOUT":"一键整理布局","RETURN_CENTER":"回到根节点","VIEW_ENLARGE":"放大","VIEW_NARROW":"缩小","VIEW_FIT":"适应画布","SEARCH":"搜索和替换","SAVE":"保存","TOGGLE_OUTLINE_SIDEBAR":"打开/关闭大纲侧边栏","TOGGLE_OUTLINE_EDIT":"进入/退出大纲全屏编辑","TOGGLE_ZEN_MODE":"切换禅模式","TOGGLE_READONLY_MODE":"切换只读/可编辑模式","TOGGLE_MINI_MAP":"开关小地图","SHOW_NOTE_EDITOR":"备注","SHOW_NODE_TAG":"标签","SHOW_NODE_LINK":"超链接","SHOW_NODE_IMAGE":"图片","SHOW_NODE_ICON":"图标","CREATE_ASSOCIATIVE_LINE":"添加关联线","OPEN_FORMULA_SIDEBAR":"公式","TOGGLE_PAINTER":"格式刷"},"changelog":{"v2135":{"title":"更新摘要","url":"https://docs.kmind.app/changelog/kmind-v2135-adds-pro-trial-function-z2q2w2a.html","lines":["新增 PRO 一键试用功能(需登录思源账号)","新增多根外框功能:支持多个根节点/思源块节点,支持一键调整外框流动效果","快捷键新增只读模式切换","优化镜像块性能(默认增量更新),优化节点拖拽交互","修复多根模式下画布调整大小导致根节点位置变动、偶现节点内容错位等问题","修复插件影响 PDF 跳转的问题,优化思源块节点拖拽(新增拖拽手柄)"]},"v2134":{"title":"更新摘要","url":"https://docs.kmind.app/changelog/kmind-v2134-optimize-save-failure-prompt.html","lines":["优化打开同一张导图的时候,保存失败的提示"]},"v2133":{"title":"更新摘要","url":"https://docs.kmind.app/changelog/kmind-v2133-epic-update-supports-dragging-siyuan-blocks-directly-into-the-map-8l5g.html","lines":["新增直接拖拽思源文档到导图中,拖拽到空白处创建新根节点,拖拽到节点上更新该节点的思源超链接","新增直接拖拽思源块到导图中,按住 Shift 创建子节点并渲染为思源块,否则创建思源块区域","新增 KMind Dock 栏 Icon 隐藏配置","新增内置全局快捷键配置,开箱即用,禅模式、超链接等,支持自定义配置","修复多根模式下大纲展开空白、导入导出部分文件失效的 Bug","优化控制台 debugger 输出,修改全局快捷键后导图中快捷键提示同步更新"]},"v2131":{"title":"更新摘要","url":"https://docs.kmind.app/changelog/kmind-v2131-multiple-roots-support-different-layouts-13jlro.html","lines":["支持为每个根单独设置主题 & 布局","优化子节点拖拽成为新根节点的交互","新增根节点收缩功能","根节点新增删除逻辑,首次Del键可以删除子节点,再次Del即可删除根节点","新增节点思源超链接icon单击的全局配置"]},"v2130":{"title":"更新摘要","url":"https://docs.kmind.app/changelog/kmind-v2130-supports-multiroot-mode-1gp6gm.html","lines":["支持多根节点模式,双击画布空白处即可创建额外的根节点","右键节点可绑定思源块并渲染","拖拽子节点到空白画布超过2秒,可将该子节点变为新的根节点","使用节点的 TODO 功能创建轻量 TODO 根节点","使用节点子文档功能快速创建思源子文档,实践轻量 MOC"]},"v2120":{"title":"更新摘要","url":"https://docs.kmind.app/changelog/kmind-v2120-node-supports-direct-rendering-of-siyuan-blocks-and-supports-quick-reference-to-siyuan-documents-vn9kt.html","lines":["文档树导图节点支持直接渲染思源块","节点编辑时支持 (( 和 {{ 快捷引用思源文档","思源文档树右键菜单支持插入平级 KMind 导图","节点新增化学方程式支持","思源文档一键转 KMind 导图功能增强"]},"v2110":{"title":"更新摘要","url":"https://docs.kmind.app/changelog/kmind-v2110-adds-new-bracket-connection-style-z2rs8y6.html","lines":["新增括号连线风格(仅在特定布局下可用),推荐搭配彩虹线条功能使用","主题设计器支持括号连线风格与节点外边距配置","导入弹窗支持直接粘贴 Markdown 文本,整体优化 Markdown 导入效果"]},"v2102":{"title":"更新摘要","url":"https://docs.kmind.app/changelog/kmind-v2102-fix-inline-slash-and-dom-popup-shortcuts.html","lines":["修复节点内联编辑无法输入斜杠 `/` 的问题(会误触展开/收起节点快捷键)","修复 DOM 模式下使用弹框编辑节点时,`Ctrl+A` 等编辑快捷键无法生效的问题"]},"v2101":{"title":"更新摘要","lines":["修复 MOC 模式引发的偶发性快捷键失效 Bug","修复 i18n warn,优化性能"]},"v2100":{"title":"更新摘要","url":"https://docs.kmind.app/changelog/kmind-v2100-new-moc-mode-z1xgf5m.html","htmlLines":["<p>重磅发布:全新 MOC 模式!</p>","<div style=\'margin: 10px 0;\'>"," <p style=\'margin: 8px 0;\'><b>新增功能:</b></p>"," <p style=\'margin: 4px 0 4px 16px;\'>• MOC 模式 - 将文档树以导图形式展示,节点与思源文档一一对应</p>"," <p style=\'margin: 4px 0 4px 16px;\'>• 节点图片直接复制功能</p>"," <p style=\'margin: 4px 0 4px 16px;\'>• 全局只读功能 - 避免误操作</p>","</div>","<div style=\'margin: 10px 0;\'>"," <p style=\'margin: 8px 0; color: #67C23A;\'>💡 欢迎使用主题设计器,设计你的专属主题!</p>"," <a href=\'javascript:void(0)\' style=\'display:inline-block;padding:6px 12px;border:1px solid #E6A23C;color:#E6A23C;border-radius:4px;text-decoration:none;margin:6px 8px 6px 0;\' onclick=\\"window.kmindApi && window.kmindApi.plugin && window.kmindApi.plugin.openConfigDialog && window.kmindApi.plugin.openConfigDialog(\'主题设计器\',\'ThemeDesigner\')\\">打开主题设计器</a>"," <a href=\'javascript:void(0)\' style=\'display:inline-block;padding:6px 12px;border:1px solid #409EFF;color:#409EFF;border-radius:4px;text-decoration:none;margin:6px 0;\' onclick=\\"window.kmindApi && window.kmindApi.plugin && window.kmindApi.plugin.openConfigDialog && window.kmindApi.plugin.openConfigDialog(\'KMind 全局配置\',\'GlobalConfig\')\\">打开全局配置</a>","</div>","<div style=\'margin-top: 10px;\'>"," <a href=\'https://docs.kmind.app/changelog/kmind-v2100-new-moc-mode-z1xgf5m.html\' target=\'_blank\' rel=\'noopener\' style=\'color:#909399;font-size:12px;text-decoration:none;\'>查看完整更新日志 →</a>","</div>"]},"v292":{"title":"更新摘要","url":"https://docs.kmind.app/changelog/kmind-v292.html","htmlLines":["<p><b>v2.9.2</b> 发布:优化悬浮工具栏体验,修复若干问题。</p>","<p>新增:一键设置入口,优化移动端体验。</p>","<a href=\'javascript:void(0)\' style=\'display:inline-block;padding:4px 10px;border:1px solid #409EFF;color:#409EFF;border-radius:4px;text-decoration:none;margin-top:6px;\' onclick=\\"window.kmindApi && window.kmindApi.plugin && window.kmindApi.plugin.openConfigDialog && window.kmindApi.plugin.openConfigDialog(\'KMind 全局配置\',\'GlobalConfig\')\\">打开 KMind 全局配置</a>"]},"v281":{"title":"更新摘要","url":"https://kmind.app/changelog/kmind-v281-optimizes-the-floating-toolbar-experience-and-adds-global-configuration-68gfd.html","lines":["优化悬浮工具栏体验,新增全局配置,新增去除思源PDF链接功能","新增全局配置,可以配置桌面端是否显示悬浮工具栏,默认显示","新增去除思源PDF超链接功能,入口:右键->选择移除思源PDF关联","优化悬浮工具栏体验,重构全局配置设置页面"],"actions":[{"type":"openGlobalConfig","label":"点我一键设置"}]},"v280":{"title":"更新摘要","url":"https://s2.loli.net/2025/04/19/9VbGhuqtMQHgoBI.webp","lines":["新增直觉按钮,新增直接跳转PDF标注,移动端开放文档树导图编辑","优化底层数据结构,减少约30%存储空间,完善移动端支持","打开全局配置,体验更多功能"],"actions":[{"type":"openGlobalConfig","label":"点我一键设置"}]},"v270":{"title":"更新摘要","lines":["本次更新包含若干体验优化与修复"]},"v261":{"title":"更新摘要","url":"https://docs.kmind.app/changelog/kimind-v261-global-configuration-of-one-click-transition-map-1hoxvv.html","lines":["新增全局配置:一键转KMind等功能"],"actions":[{"type":"openGlobalConfig","label":"点我一键设置"}]},"v260":{"title":"更新摘要","url":"https://docs.kmind.app/changelog/v260.html","lines":["新增配置、优化若干功能,修复已知问题"],"actions":[{"type":"openGlobalConfig","label":"打开全局配置查看更多"}]},"v250":{"title":"更新摘要","url":"https://siyuannote.space/x/20241111153508-dx2yrwp","lines":["新增导图历史记录,适配了挂件,dock栏导图,文档树导图","新增数据兜底保护策略,会拦截掉异常空数据的写入,最大化保证数据安全","新增全局历史记录配置与概览(pro) 入口:思源上方菜单栏右侧->KMind图标->kmind全局配置"],"actions":[{"type":"openGlobalConfig","label":"点我一键设置(限免)"}]}}}')},"2dd2":function(e,t,i){},"42d9":function(e,t,i){"use strict";i("98c1")},5899:function(e,t,i){"use strict";i.r(t);var n=function(){var e=this,t=e._self._c;return t("div",{staticClass:"theme-batch-page"},[t("div",{staticClass:"left-panel"},[t("h2",{staticClass:"panel-title"},[e._v("Material 3 批量主题生成")]),t("el-form",{staticClass:"options-form",attrs:{"label-width":"100px",size:"small"}},[t("el-form-item",{attrs:{label:"色相数量"}},[t("el-input-number",{attrs:{min:1,max:24},model:{value:e.options.hueCount,callback:function(t){e.$set(e.options,"hueCount",t)},expression:"options.hueCount"}})],1),t("el-form-item",{attrs:{label:"每色相变体"}},[t("el-input-number",{attrs:{min:1,max:6},model:{value:e.options.variantsPerHue,callback:function(t){e.$set(e.options,"variantsPerHue",t)},expression:"options.variantsPerHue"}})],1),t("el-form-item",{attrs:{label:"暗色主题比例"}},[t("div",{staticClass:"slider-row"},[t("el-slider",{staticStyle:{flex:"1"},attrs:{min:0,max:1,step:.1},model:{value:e.options.darkRatio,callback:function(t){e.$set(e.options,"darkRatio",t)},expression:"options.darkRatio"}}),t("span",{staticClass:"slider-value"},[e._v(" "+e._s(Math.round(100*e.options.darkRatio))+"% ")])],1)])],1),t("div",{staticClass:"actions"},[t("el-button",{attrs:{type:"primary",loading:e.generating},on:{click:e.handleGenerate}},[e._v(" 生成主题 (预计 "+e._s(e.estimatedCount)+" 个) ")]),t("el-button",{attrs:{disabled:0===e.generatedThemes.length},on:{click:e.clearAll}},[e._v(" 清空 ")])],1),t("el-divider"),t("h3",{staticClass:"panel-subtitle"},[e._v("导出 & 下载")]),t("div",{staticClass:"export-actions"},[t("el-button",{attrs:{type:"success",disabled:0===e.generatedThemes.length},on:{click:e.exportBundleJson}},[e._v(" 导出导入包 (JSON) ")]),t("el-button",{attrs:{disabled:0===e.generatedThemes.length},on:{click:e.copyBundleJson}},[e._v(" 复制导入包 JSON ")]),t("el-button",{attrs:{disabled:0===e.generatedThemes.length},on:{click:e.downloadAllCovers}},[e._v(" 批量下载封面 (PNG) ")])],1),t("p",{staticClass:"hint-text"},[e._v(" 提示:导出的 JSON 可在 kmind-next 后台「主题导入」页面选择账号后批量导入。 ")]),t("el-divider"),t("h3",{staticClass:"panel-subtitle"},[e._v("手动添加主题")]),t("p",{staticClass:"hint-text"},[e._v(" 在此粘贴单个主题的 JSON(结构与主题设计器导出的主题一致),点击「解析并添加」后会加入到列表并自动生成封面。 ")]),t("el-input",{staticClass:"manual-json-input",attrs:{type:"textarea",rows:8,placeholder:"粘贴主题 JSON,例如从主题设计器导出的内容(包含 meta 和样式配置)"},model:{value:e.manualThemeJson,callback:function(t){e.manualThemeJson=t},expression:"manualThemeJson"}}),t("div",{staticClass:"manual-actions"},[t("el-button",{attrs:{size:"small",type:"primary",loading:e.addingFromJson},on:{click:e.handleAddThemeFromJson}},[e._v(" 解析并添加 ")]),t("el-button",{attrs:{size:"small"},on:{click:function(t){e.manualThemeJson=""}}},[e._v(" 清空输入 ")])],1)],1),t("div",{staticClass:"right-panel"},[t("div",{staticClass:"right-header"},[t("div",[t("h3",{staticClass:"right-title"},[e._v("已生成主题 ("+e._s(e.generatedThemes.length)+")")]),t("p",{staticClass:"right-subtitle"},[e._v(" 可在此调整名称和描述,封面为使用示例导图自动渲染的预览图。 ")])])]),t("div",{staticClass:"table-wrapper"},[t("el-table",{staticStyle:{width:"100%"},attrs:{data:e.generatedThemes,height:"100%"}},[t("el-table-column",{attrs:{prop:"name",label:"名称",width:"260"},scopedSlots:e._u([{key:"default",fn:function(i){return[t("el-input",{attrs:{size:"mini",maxlength:"100","show-word-limit":""},model:{value:i.row.name,callback:function(t){e.$set(i.row,"name",t)},expression:"scope.row.name"}})]}}])}),t("el-table-column",{attrs:{prop:"description",label:"描述"},scopedSlots:e._u([{key:"default",fn:function(i){return[t("el-input",{attrs:{size:"mini",maxlength:"200","show-word-limit":""},model:{value:i.row.description,callback:function(t){e.$set(i.row,"description",t)},expression:"scope.row.description"}})]}}])}),t("el-table-column",{attrs:{label:"封面预览",width:"220"},scopedSlots:e._u([{key:"default",fn:function(i){return[t("div",{staticClass:"cover-preview"},[i.row.coverDataUrl?t("img",{attrs:{src:i.row.coverDataUrl,alt:"cover"}}):t("span",{staticClass:"no-cover"},[e._v("生成中...")])])]}}])}),t("el-table-column",{attrs:{prop:"isDark",label:"暗色",width:"80"},scopedSlots:e._u([{key:"default",fn:function(i){return[t("el-tag",{attrs:{type:i.row.isDark?"info":"warning",size:"mini"}},[e._v(" "+e._s(i.row.isDark?"是":"否")+" ")])]}}])}),t("el-table-column",{attrs:{label:"操作",width:"160"},scopedSlots:e._u([{key:"default",fn:function(i){return[t("div",{staticClass:"action-cell"},[t("el-button",{attrs:{size:"mini",type:"text"},on:{click:function(t){return e.openInDesigner(i.$index)}}},[e._v(" 用设计器编辑 ")]),t("el-button",{attrs:{size:"mini",type:"text"},on:{click:function(t){return e.previewJson(i.$index)}}},[e._v(" 预览JSON ")]),t("el-button",{attrs:{size:"mini",type:"text"},on:{click:function(t){return e.copyRowJson(i.$index)}}},[e._v(" 复制JSON ")]),t("el-button",{attrs:{size:"mini",type:"text"},on:{click:function(t){return e.removeOne(i.$index)}}},[e._v(" 删除 ")])],1)]}}])})],1)],1)]),t("el-dialog",{attrs:{title:"主题设计器",visible:e.themeDesignerVisible,width:"90%","close-on-click-modal":!1},on:{"update:visible":function(t){e.themeDesignerVisible=t}}},[t("div",{staticStyle:{height:"600px"}},[e.themeDesignerVisible?t("ThemeDesigner",{attrs:{plugin:{},"initial-theme":e.editingThemeData},on:{"update:theme":e.handleDesignerUpdate}}):e._e()],1),t("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[t("el-button",{on:{click:function(t){e.themeDesignerVisible=!1}}},[e._v("取消")]),t("el-button",{attrs:{type:"primary"},on:{click:e.confirmDesignerChanges}},[e._v(" 应用到当前主题 ")])],1)]),t("el-dialog",{attrs:{title:e.jsonPreviewTitle||"主题 JSON 预览",visible:e.jsonPreviewVisible,width:"70%"},on:{"update:visible":function(t){e.jsonPreviewVisible=t}}},[t("el-input",{attrs:{type:"textarea",rows:20,readonly:""},model:{value:e.jsonPreviewText,callback:function(t){e.jsonPreviewText=t},expression:"jsonPreviewText"}})],1)],1)},a=[],o=(i("14d9"),i("88a7"),i("271a"),i("5494"),i("7145")),r=i("13cc"),s=i("67c2"),l=i("e1bd"),c=function(){var e=this,t=e._self._c,i=e._self._setupProxy;return t("div",{staticClass:"theme-designer"},[t("div",{staticClass:"theme-designer-header"},[t("div",{staticClass:"header-left"},[t("el-input",{staticClass:"theme-name-input",attrs:{placeholder:i.t("themeDesigner.themeName"),maxlength:128,"show-word-limit":""},on:{input:i.filterThemeName,focus:function(e){i.previousThemeName=i.currentTheme.meta.name},blur:i.handleThemeNameChange},scopedSlots:e._u([{key:"prepend",fn:function(){return[t("i",{staticClass:"el-icon-edit"})]},proxy:!0}]),model:{value:i.currentTheme.meta.name,callback:function(t){e.$set(i.currentTheme.meta,"name",t)},expression:"currentTheme.meta.name"}}),t("el-input",{staticClass:"theme-desc-input",staticStyle:{"margin-top":"5px"},attrs:{placeholder:i.t("themeDesigner.themeDescription"),maxlength:200,"show-word-limit":""},on:{input:i.filterDescription},scopedSlots:e._u([{key:"prepend",fn:function(){return[t("i",{staticClass:"el-icon-document"})]},proxy:!0}]),model:{value:i.currentTheme.meta.description,callback:function(t){e.$set(i.currentTheme.meta,"description",t)},expression:"currentTheme.meta.description"}})],1),t("div",{staticClass:"header-right"},[t("el-button-group",[t("el-button",{attrs:{icon:"el-icon-files"},on:{click:function(e){i.showThemeList=!0}}},[e._v(e._s(i.t("themeDesigner.myThemes")))]),t("el-button",{attrs:{icon:"el-icon-plus"},on:{click:i.handleNew}},[e._v(e._s(i.t("themeDesigner.newTheme")))]),t("el-button",{attrs:{icon:"el-icon-refresh"},on:{click:i.handleReset}},[e._v(e._s(i.t("themeDesigner.resetTheme")))]),t("el-button",{attrs:{type:"primary",icon:"el-icon-check"},on:{click:i.handleSave}},[e._v(e._s(i.t("themeDesigner.saveTheme")))]),t("el-button",{attrs:{type:"success",icon:"el-icon-share"},on:{click:i.handleShare}},[e._v(e._s(i.t("themeDesigner.shareTheme")))]),t("el-dropdown",{attrs:{trigger:"click"},on:{command:i.handleMoreAction}},[t("el-button",{attrs:{icon:"el-icon-more"}}),t("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[t("el-dropdown-item",{attrs:{command:"copy",icon:"el-icon-copy-document"}},[e._v(e._s(i.t("themeDesigner.copyTheme")))]),t("el-dropdown-item",{attrs:{command:"import",icon:"el-icon-upload2"}},[e._v(e._s(i.t("themeDesigner.importTheme")))]),t("el-dropdown-item",{attrs:{command:"export",icon:"el-icon-download"}},[e._v(e._s(i.t("themeDesigner.exportTheme")))]),t("el-dropdown-item",{attrs:{command:"delete",icon:"el-icon-delete",divided:""}},[e._v(e._s(i.t("themeDesigner.deleteTheme")))])],1)],1)],1)],1)]),t("div",{staticClass:"theme-designer-body"},[t("div",{staticClass:"designer-sidebar"},[t("el-tabs",{attrs:{type:"card"},model:{value:i.activeTab,callback:function(e){i.activeTab=e},expression:"activeTab"}},[t("el-tab-pane",{attrs:{label:i.t("themeDesigner.generalStyle"),name:"general"}},[t("div",{staticClass:"config-section"},[t("h4",[e._v(e._s(i.t("themeDesigner.backgroundSettings")))]),t("div",{staticClass:"config-item"},[t("label",[e._v(e._s(i.t("themeDesigner.backgroundColor")))]),t("el-color-picker",{attrs:{"show-alpha":"",predefine:i.predefineColors},model:{value:i.currentTheme.backgroundColor,callback:function(t){e.$set(i.currentTheme,"backgroundColor",t)},expression:"currentTheme.backgroundColor"}})],1)]),t("div",{staticClass:"config-section"},[t("h4",[e._v(e._s(i.t("themeDesigner.lineStyle")))]),t("div",{staticClass:"config-item"},[t("label",[e._v(e._s(i.t("themeDesigner.lineColor")))]),t("el-color-picker",{attrs:{predefine:i.predefineColors},model:{value:i.currentTheme.lineColor,callback:function(t){e.$set(i.currentTheme,"lineColor",t)},expression:"currentTheme.lineColor"}})],1),t("div",{staticClass:"config-item"},[t("label",[e._v(e._s(i.t("themeDesigner.lineWidth")))]),t("el-slider",{attrs:{min:1,max:5,step:.5,"show-input":""},model:{value:i.currentTheme.lineWidth,callback:function(t){e.$set(i.currentTheme,"lineWidth",t)},expression:"currentTheme.lineWidth"}})],1),t("div",{staticClass:"config-item"},[t("label",[e._v(e._s(i.t("themeDesigner.lineStyleType")))]),t("el-select",{model:{value:i.currentTheme.lineStyle,callback:function(t){e.$set(i.currentTheme,"lineStyle",t)},expression:"currentTheme.lineStyle"}},[t("el-option",{attrs:{label:i.t("themeDesigner.straight"),value:"straight"}}),t("el-option",{attrs:{label:i.t("themeDesigner.curve"),value:"curve"}}),t("el-option",{attrs:{label:i.t("themeDesigner.direct"),value:"direct"}}),t("el-option",{attrs:{label:i.t("themeDesigner.brace"),value:"brace"}})],1)],1),"straight"===i.currentTheme.lineStyle?t("div",{staticClass:"config-item"},[t("label",[e._v(" "+e._s(i.t("themeDesigner.roundedCornerSize"))+" "),t("el-tooltip",{attrs:{content:i.t("themeDesigner.roundedCornerTip"),placement:"top"}},[t("i",{staticClass:"el-icon-question",staticStyle:{"margin-left":"4px","font-size":"12px",color:"#909399"}})])],1),t("el-slider",{attrs:{min:0,max:20,"show-input":""},model:{value:i.currentTheme.lineRadius,callback:function(t){e.$set(i.currentTheme,"lineRadius",t)},expression:"currentTheme.lineRadius"}})],1):e._e()]),t("div",{staticClass:"config-section"},[t("h4",[e._v(e._s(i.t("themeDesigner.nodeSpacing")))]),t("div",{staticClass:"config-item"},[t("label",[e._v(e._s(i.t("themeDesigner.paddingX")))]),t("el-slider",{attrs:{min:5,max:30,"show-input":""},model:{value:i.currentTheme.paddingX,callback:function(t){e.$set(i.currentTheme,"paddingX",t)},expression:"currentTheme.paddingX"}})],1),t("div",{staticClass:"config-item"},[t("label",[e._v(e._s(i.t("themeDesigner.paddingY")))]),t("el-slider",{attrs:{min:3,max:20,"show-input":""},model:{value:i.currentTheme.paddingY,callback:function(t){e.$set(i.currentTheme,"paddingY",t)},expression:"currentTheme.paddingY"}})],1)]),t("div",{staticClass:"config-section"},[t("h4",[e._v(e._s(i.t("themeDesigner.nodeMargin")))]),t("div",{staticClass:"config-subsection"},[t("h5",[e._v(e._s(i.t("themeDesigner.secondNode")))]),t("div",{staticClass:"config-item"},[t("label",[e._v(e._s(i.t("themeDesigner.marginX")))]),t("el-slider",{attrs:{min:20,max:200,"show-input":""},model:{value:i.currentTheme.second.marginX,callback:function(t){e.$set(i.currentTheme.second,"marginX",t)},expression:"currentTheme.second.marginX"}})],1),t("div",{staticClass:"config-item"},[t("label",[e._v(e._s(i.t("themeDesigner.marginY")))]),t("el-slider",{attrs:{min:0,max:100,"show-input":""},model:{value:i.currentTheme.second.marginY,callback:function(t){e.$set(i.currentTheme.second,"marginY",t)},expression:"currentTheme.second.marginY"}})],1)]),t("div",{staticClass:"config-subsection"},[t("h5",[e._v(e._s(i.t("themeDesigner.childNode")))]),t("div",{staticClass:"config-item"},[t("label",[e._v(e._s(i.t("themeDesigner.marginX")))]),t("el-slider",{attrs:{min:20,max:200,"show-input":""},model:{value:i.currentTheme.node.marginX,callback:function(t){e.$set(i.currentTheme.node,"marginX",t)},expression:"currentTheme.node.marginX"}})],1),t("div",{staticClass:"config-item"},[t("label",[e._v(e._s(i.t("themeDesigner.marginY")))]),t("el-slider",{attrs:{min:0,max:100,"show-input":""},model:{value:i.currentTheme.node.marginY,callback:function(t){e.$set(i.currentTheme.node,"marginY",t)},expression:"currentTheme.node.marginY"}})],1)])])]),t("el-tab-pane",{attrs:{label:i.t("themeDesigner.rootNode"),name:"root"}},[t(i.NodeStyleConfig,{attrs:{nodeStyle:i.currentTheme.root,predefineColors:i.predefineColors},on:{update:function(e){return i.handleNodeStyleUpdate("root",e)}}})],1),t("el-tab-pane",{attrs:{label:i.t("themeDesigner.secondNode"),name:"second"}},[t(i.NodeStyleConfig,{attrs:{nodeStyle:i.currentTheme.second,predefineColors:i.predefineColors},on:{update:function(e){return i.handleNodeStyleUpdate("second",e)}}})],1),t("el-tab-pane",{attrs:{label:i.t("themeDesigner.childNode"),name:"node"}},[t(i.NodeStyleConfig,{attrs:{nodeStyle:i.currentTheme.node,predefineColors:i.predefineColors},on:{update:function(e){return i.handleNodeStyleUpdate("node",e)}}})],1),t("el-tab-pane",{attrs:{label:i.t("themeDesigner.generalizationNode"),name:"generalization"}},[t(i.NodeStyleConfig,{attrs:{nodeStyle:i.currentTheme.generalization,predefineColors:i.predefineColors},on:{update:function(e){return i.handleNodeStyleUpdate("generalization",e)}}})],1)],1)],1),t("div",{staticClass:"designer-preview"},[t("div",{staticClass:"preview-header"},[t("span",[e._v(e._s(i.t("themeDesigner.preview")))]),t("el-button-group",{attrs:{size:"mini"}},[t("el-button",{attrs:{icon:"el-icon-zoom-in"},on:{click:i.handleZoomIn}}),t("el-button",{attrs:{icon:"el-icon-zoom-out"},on:{click:i.handleZoomOut}}),t("el-button",{on:{click:i.handleResetZoom}},[e._v("100%")])],1)],1),t("div",{ref:"previewContainer",staticClass:"preview-content"},[t("div",{attrs:{id:"theme-preview-mindmap"}})])])]),t(i.ThemeList,{ref:"themeListRef",attrs:{themes:i.userThemes,plugin:e.plugin},on:{select:i.handleSelectTheme,delete:i.handleDeleteTheme,copy:i.handleCopyTheme,export:i.handleExportSpecificTheme},model:{value:i.showThemeList,callback:function(e){i.showThemeList=e},expression:"showThemeList"}}),t("input",{ref:"fileInput",staticStyle:{display:"none"},attrs:{type:"file",accept:".js,.json"},on:{change:i.handleImportFile}})],1)},d=[],m=(i("d9e2"),i("b7ef"),i("2b0e")),h=i("5c96"),u=function(){var e=this,t=e._self._c,i=e._self._setupProxy;return t("div",{staticClass:"node-style-config"},[t("div",{staticClass:"config-section"},[t("h4",[e._v(e._s(i.t("themeDesigner.basicStyle")))]),t("div",{staticClass:"config-item"},[t("label",[e._v(e._s(i.t("themeDesigner.shape")))]),t("el-select",{on:{change:i.emitUpdate},model:{value:i.localStyle.shape,callback:function(t){e.$set(i.localStyle,"shape",t)},expression:"localStyle.shape"}},[t("el-option",{attrs:{label:i.t("themeDesigner.rectangle"),value:"rectangle"}}),t("el-option",{attrs:{label:i.t("themeDesigner.roundedRectangle"),value:"roundedRectangle"}}),t("el-option",{attrs:{label:i.t("themeDesigner.ellipse"),value:"ellipse"}}),t("el-option",{attrs:{label:i.t("themeDesigner.circle"),value:"circle"}}),t("el-option",{attrs:{label:i.t("themeDesigner.diamond"),value:"diamond"}})],1)],1),t("div",{staticClass:"config-item"},[t("label",[e._v(e._s(i.t("themeDesigner.fillColor")))]),t("el-color-picker",{attrs:{"show-alpha":"",predefine:e.predefineColors},on:{change:i.emitUpdate},model:{value:i.localStyle.fillColor,callback:function(t){e.$set(i.localStyle,"fillColor",t)},expression:"localStyle.fillColor"}})],1),"rectangle"===i.localStyle.shape||"roundedRectangle"===i.localStyle.shape?t("div",{staticClass:"config-item"},[t("label",[e._v(e._s(i.t("themeDesigner.borderRadius")))]),t("el-slider",{attrs:{min:0,max:20,"show-input":""},on:{change:i.emitUpdate},model:{value:i.localStyle.borderRadius,callback:function(t){e.$set(i.localStyle,"borderRadius",t)},expression:"localStyle.borderRadius"}})],1):e._e()]),t("div",{staticClass:"config-section"},[t("h4",[e._v(e._s(i.t("themeDesigner.textStyle")))]),t("div",{staticClass:"config-item"},[t("label",[e._v(e._s(i.t("themeDesigner.textColor")))]),t("el-color-picker",{attrs:{predefine:e.predefineColors},on:{change:i.emitUpdate},model:{value:i.localStyle.color,callback:function(t){e.$set(i.localStyle,"color",t)},expression:"localStyle.color"}})],1),t("div",{staticClass:"config-item"},[t("label",[e._v(e._s(i.t("themeDesigner.fontFamily")))]),t("el-select",{on:{change:i.emitUpdate},model:{value:i.localStyle.fontFamily,callback:function(t){e.$set(i.localStyle,"fontFamily",t)},expression:"localStyle.fontFamily"}},[t("el-option",{attrs:{label:i.t("themeDesigner.microsoftYahei"),value:"微软雅黑, Microsoft YaHei"}}),t("el-option",{attrs:{label:i.t("themeDesigner.songti"),value:"宋体, SimSun"}}),t("el-option",{attrs:{label:i.t("themeDesigner.heiti"),value:"黑体, SimHei"}}),t("el-option",{attrs:{label:i.t("themeDesigner.kaiti"),value:"楷体, KaiTi"}}),t("el-option",{attrs:{label:"Arial",value:"Arial, sans-serif"}}),t("el-option",{attrs:{label:"Helvetica",value:"Helvetica, sans-serif"}}),t("el-option",{attrs:{label:"Times New Roman",value:"Times New Roman, serif"}})],1)],1),t("div",{staticClass:"config-item"},[t("label",[e._v(e._s(i.t("themeDesigner.fontSize")))]),t("el-input-number",{attrs:{min:10,max:48},on:{change:i.emitUpdate},model:{value:i.localStyle.fontSize,callback:function(t){e.$set(i.localStyle,"fontSize",t)},expression:"localStyle.fontSize"}})],1),t("div",{staticClass:"config-item"},[t("label",[e._v(e._s(i.t("themeDesigner.fontWeight")))]),t("el-select",{on:{change:i.emitUpdate},model:{value:i.localStyle.fontWeight,callback:function(t){e.$set(i.localStyle,"fontWeight",t)},expression:"localStyle.fontWeight"}},[t("el-option",{attrs:{label:i.t("themeDesigner.normal"),value:"normal"}}),t("el-option",{attrs:{label:i.t("themeDesigner.bold"),value:"bold"}}),t("el-option",{attrs:{label:i.t("themeDesigner.bolder"),value:"bolder"}}),t("el-option",{attrs:{label:i.t("themeDesigner.lighter"),value:"lighter"}})],1)],1),t("div",{staticClass:"config-item"},[t("label",[e._v(e._s(i.t("themeDesigner.fontStyle")))]),t("el-select",{on:{change:i.emitUpdate},model:{value:i.localStyle.fontStyle,callback:function(t){e.$set(i.localStyle,"fontStyle",t)},expression:"localStyle.fontStyle"}},[t("el-option",{attrs:{label:i.t("themeDesigner.normal"),value:"normal"}}),t("el-option",{attrs:{label:i.t("themeDesigner.italic"),value:"italic"}})],1)],1)]),t("div",{staticClass:"config-section"},[t("h4",[e._v(e._s(i.t("themeDesigner.borderStyle")))]),t("div",{staticClass:"config-item"},[t("label",[e._v(e._s(i.t("themeDesigner.borderColor")))]),t("el-color-picker",{attrs:{"show-alpha":"",predefine:e.predefineColors},on:{change:i.emitUpdate},model:{value:i.localStyle.borderColor,callback:function(t){e.$set(i.localStyle,"borderColor",t)},expression:"localStyle.borderColor"}})],1),t("div",{staticClass:"config-item"},[t("label",[e._v(e._s(i.t("themeDesigner.borderWidth")))]),t("el-slider",{attrs:{min:0,max:5,step:.5,"show-input":""},on:{change:i.emitUpdate},model:{value:i.localStyle.borderWidth,callback:function(t){e.$set(i.localStyle,"borderWidth",t)},expression:"localStyle.borderWidth"}})],1)])])},p=[];i("13d5");let g={zh_CN:{},en_US:{}};try{try{g.zh_CN=i("2c7d"),g.en_US=i("90f9")}catch{}}catch(Q){console.warn("Failed to load i18n files for ThemeDesigner")}function f(){var e;const t=null===(e=globalThis.siyuan)||void 0===e||null===(e=e.config)||void 0===e?void 0:e.lang;if(t)return"zh_CN"===t?"zh_CN":"en_US";const i=navigator.language.toLowerCase();return i.includes("zh")?"zh_CN":"en_US"}function v(e,t){return t.split(".").reduce((e,t)=>null===e||void 0===e?void 0:e[t],e)}function y(e){const t=f(),i=g[t]||g.zh_CN,n=v(i,e);if(void 0!==n)return n;const a={"themeDesigner.title":"zh_CN"===t?"主题设计器":"Theme Designer","themeDesigner.currentTheme":"zh_CN"===t?"当前主题":"Current Theme","themeDesigner.loadTheme":"zh_CN"===t?"加载主题":"Load Theme","themeDesigner.saveTheme":"zh_CN"===t?"保存主题":"Save Theme","themeDesigner.exportTheme":"zh_CN"===t?"导出主题":"Export Theme","themeDesigner.importTheme":"zh_CN"===t?"导入主题":"Import Theme","themeDesigner.themeName":"zh_CN"===t?"主题名称":"Theme Name","themeDesigner.themeDescription":"zh_CN"===t?"主题描述":"Theme Description","themeDesigner.author":"zh_CN"===t?"作者":"Author","themeDesigner.backgroundColor":"zh_CN"===t?"背景颜色":"Background Color","themeDesigner.lineColor":"zh_CN"===t?"连线颜色":"Line Color","themeDesigner.rootNode":"zh_CN"===t?"根节点":"Root Node","themeDesigner.secondNode":"zh_CN"===t?"二级节点":"Second Node","themeDesigner.otherNode":"zh_CN"===t?"其他节点":"Other Nodes","themeDesigner.fillColor":"zh_CN"===t?"填充颜色":"Fill Color","themeDesigner.borderColor":"zh_CN"===t?"边框颜色":"Border Color","themeDesigner.textColor":"zh_CN"===t?"文本颜色":"Text Color","themeDesigner.fontSize":"zh_CN"===t?"字体大小":"Font Size","themeDesigner.borderWidth":"zh_CN"===t?"边框宽度":"Border Width","themeDesigner.paddingX":"zh_CN"===t?"水平内边距":"Horizontal Padding","themeDesigner.paddingY":"zh_CN"===t?"垂直内边距":"Vertical Padding","themeDesigner.lineWidth":"zh_CN"===t?"连线宽度":"Line Width","themeDesigner.preview":"zh_CN"===t?"预览":"Preview","themeDesigner.myThemes":"zh_CN"===t?"我的主题":"My Themes","themeDesigner.shareTheme":"zh_CN"===t?"分享主题":"Share Theme","themeDesigner.shareToGallery":"zh_CN"===t?"分享到主题广场":"Share to Theme Gallery","themeDesigner.saveSuccess":"zh_CN"===t?"保存成功":"Save Successful","themeDesigner.saveFailed":"zh_CN"===t?"保存失败":"Save Failed","themeDesigner.themeNameRequired":"zh_CN"===t?"请输入主题名称":"Please enter theme name","themeDesigner.confirmDelete":"zh_CN"===t?"确定删除主题":"Confirm delete theme","themeDesigner.deleteSuccess":"zh_CN"===t?"删除成功":"Delete Successful","themeDesigner.deleteFailed":"zh_CN"===t?"删除失败":"Delete Failed","themeDesigner.pleaseSelectTheme":"zh_CN"===t?"请选择一个主题":"Please select a theme","themeDesigner.themeAlreadyShared":"zh_CN"===t?"该主题已分享到云端":"This theme has been shared to the cloud","themeDesigner.currentVersion":"zh_CN"===t?"当前版本":"Current Version","themeDesigner.newVersion":"zh_CN"===t?"新版本":"New Version","themeDesigner.inputChangeLog":"zh_CN"===t?"请输入本次更新的内容说明(200字以内)":"Please enter the update description (within 200 characters)","themeDesigner.updateTheme":"zh_CN"===t?"更新主题":"Update Theme","themeDesigner.changeLogPlaceholder":"zh_CN"===t?"例如:优化了配色方案,调整了节点样式...":"e.g.: Optimized color scheme, adjusted node styles...","themeDesigner.changeLogTooLong":"zh_CN"===t?"更新说明不能超过200个字符":"Update description cannot exceed 200 characters","themeDesigner.update":"zh_CN"===t?"更新":"Update","themeDesigner.cancel":"zh_CN"===t?"取消":"Cancel","themeDesigner.updateSuccess":"zh_CN"===t?"主题更新成功":"Theme updated successfully","themeDesigner.updateFailed":"zh_CN"===t?"主题更新失败":"Theme update failed","themeDesigner.straight":"zh_CN"===t?"直线":"Straight","themeDesigner.curve":"zh_CN"===t?"曲线":"Curve","themeDesigner.direct":"zh_CN"===t?"直连":"Direct","themeDesigner.brace":"zh_CN"===t?"括号":"Brace","themeDesigner.nodeMargin":"zh_CN"===t?"节点外边距":"Node Margin","themeDesigner.marginX":"zh_CN"===t?"水平外边距":"Horizontal Margin","themeDesigner.marginY":"zh_CN"===t?"垂直外边距":"Vertical Margin","themeDesigner.childNode":"zh_CN"===t?"三级及以下节点":"Child Nodes"};return a[e]||e}var b={__name:"NodeStyleConfig",props:{nodeStyle:{type:Object,required:!0},predefineColors:{type:Array,default:()=>[]}},emits:["update"],setup(e,{emit:t}){const i=e,n=Object(m["reactive"])({...i.nodeStyle});Object(m["watch"])(()=>i.nodeStyle,e=>{Object.assign(n,e)},{deep:!0});const a=()=>{t("update",{...n})};return{__sfc:!0,props:i,emit:t,localStyle:n,emitUpdate:a,t:y}}},w=b,T=(i("42d9"),i("2877")),C=Object(T["a"])(w,u,p,!1,null,"9a4613a0",null),D=C.exports,S=function(){var e=this,t=e._self._c,i=e._self._setupProxy;return t("el-drawer",{attrs:{visible:i.visible,title:i.t("themeDesigner.myThemes"),direction:"rtl",size:"400px","append-to-body":!0},on:{"update:visible":function(e){i.visible=e}}},[t("div",{staticClass:"theme-list"},[t("div",{staticClass:"theme-list-header"},[t("el-input",{attrs:{placeholder:i.t("themeDesigner.searchTheme"),"prefix-icon":"el-icon-search",size:"small",clearable:""},model:{value:i.searchKeyword,callback:function(e){i.searchKeyword=e},expression:"searchKeyword"}})],1),t("div",{staticClass:"theme-list-content"},[e._l(i.filteredThemes,(function(n){var a,o;return t("div",{key:n.meta.name,staticClass:"theme-item",on:{click:function(e){return i.handleSelect(n.meta.name)}}},[t("div",{staticClass:"theme-preview"},[i.themePreviews[n.meta.name]?t("img",{staticClass:"preview-svg",attrs:{src:i.themePreviews[n.meta.name],alt:n.meta.name}}):t("div",{staticClass:"preview-colors"},[t("span",{staticClass:"color-block",style:{backgroundColor:n.backgroundColor}}),t("span",{staticClass:"color-block",style:{backgroundColor:null===(a=n.root)||void 0===a?void 0:a.fillColor}}),t("span",{staticClass:"color-block",style:{backgroundColor:null===(o=n.second)||void 0===o?void 0:o.fillColor}}),t("span",{staticClass:"color-block",style:{backgroundColor:n.lineColor}})])]),t("div",{staticClass:"theme-info"},[t("div",{staticClass:"theme-name"},[e._v(" "+e._s(i.getThemeLocalizedName(n))+" ")]),t("div",{staticClass:"theme-meta"},[n.meta.author?t("span",[e._v(e._s(i.t("themeDesigner.author"))+": "+e._s(n.meta.author))]):e._e(),t("span",[e._v(e._s(i.formatDate(n.meta.updateTime)))])]),i.getThemeLocalizedDescription(n)?t("div",{staticClass:"theme-description"},[e._v(" "+e._s(i.getThemeLocalizedDescription(n))+" ")]):e._e()]),t("div",{staticClass:"theme-actions",on:{click:function(e){e.stopPropagation()}}},[t("el-dropdown",{attrs:{trigger:"click"},on:{command:function(e){return i.handleCommand(e,n)}}},[t("el-button",{attrs:{type:"text",icon:"el-icon-more",circle:""}}),t("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[t("el-dropdown-item",{attrs:{command:"select"}},[t("i",{staticClass:"el-icon-check"}),e._v(" "+e._s(i.t("themeDesigner.useTheme"))+" ")]),t("el-dropdown-item",{attrs:{command:"copy"}},[t("i",{staticClass:"el-icon-copy-document"}),e._v(" "+e._s(i.t("themeDesigner.copyTheme"))+" ")]),t("el-dropdown-item",{attrs:{command:"export"}},[t("i",{staticClass:"el-icon-download"}),e._v(" "+e._s(i.t("themeDesigner.exportTheme"))+" ")]),n.meta.id&&!i.sharedThemes[n.meta.id]?t("el-dropdown-item",{attrs:{command:"share",divided:""}},[t("i",{staticClass:"el-icon-share"}),e._v(" "+e._s(i.t("themeDesigner.shareTheme"))+" ")]):e._e(),n.meta.id&&i.sharedThemes[n.meta.id]?t("el-dropdown-item",{attrs:{command:"viewShared",divided:""}},[t("i",{staticClass:"el-icon-view"}),e._v(" "+e._s(i.t("themeDesigner.viewShare"))+" ")]):e._e(),n.meta.id&&i.sharedThemes[n.meta.id]?t("el-dropdown-item",{attrs:{command:"updateShare"}},[t("i",{staticClass:"el-icon-refresh"}),e._v(" "+e._s(i.t("themeDesigner.updateShare"))+" ")]):e._e(),t("el-dropdown-item",{attrs:{command:"delete",divided:""}},[t("i",{staticClass:"el-icon-delete"}),e._v(" "+e._s(i.t("themeDesigner.deleteTheme"))+" ")])],1)],1)],1)])})),0===i.filteredThemes.length?t("div",{staticClass:"empty-state"},[t("i",{staticClass:"el-icon-folder-opened"}),t("p",[e._v(e._s(i.t("themeDesigner.noThemes")))])]):e._e()],2)])])},k=[],_=(i("2c66"),i("249d"),i("40e9"),i("907a"),i("986a"),i("1d02"),i("3c5d"),i("6ce5"),i("2834"),i("4ea1"),i("0e71")),x=i("b2d1");const O=x["b"];const N="/data/storage/petal/kmind/config/auth.kmindconf";async function M(){try{const e=await Object(_["getFileForPlugin"])({path:N});return e&&404!==e.code?e.code&&0!==e.code?(console.warn("获取授权信息时出现错误:",e.msg),null):e:null}catch(Q){return console.error("获取授权信息失败:",Q),null}}async function A(){try{await Object(_["deleteFileForPlugin"])({path:N})}catch(Q){console.error("清除授权信息失败:",Q)}}async function E(e,t){try{var i,n,a,o;if(null===(i=e.meta)||void 0===i||null===(i=i.name)||void 0===i||!i.trim())return void h["Message"].warning(y("themeDesigner.pleaseSetThemeName"));const r=Object(h["Message"])({message:"正在准备分享...",type:"info",duration:0}),s=await M();if(!s){r.close(),h["Message"].warning(y("themeDesigner.pleaseAuthorizeFirst"));const e=O+"/siyuan-auth?from=siyuan";return void window.open(e,"_blank")}if(s.expires_at<Date.now()){r.close(),h["Message"].warning(y("themeDesigner.authorizationExpired")),await A();const e=O+"/siyuan-auth?from=siyuan";return void window.open(e,"_blank")}r.message=y("themeDesigner.generatingPreview");const l=await t();if(!l)return r.close(),void h["Message"].error(y("themeDesigner.generatePreviewFailed"));const c=atob(l),d=new Uint8Array(c.length);for(let e=0;e<c.length;e++)d[e]=c.charCodeAt(e);r.message=y("themeDesigner.gettingUploadUrl");const m=await Object(_["forwardProxyForPlugin"])({url:O+"/api/themes/upload-cover",method:"POST",headers:[{Authorization:"Bearer "+s.token,"Content-Type":"application/json"}],payload:{fileType:"webp"}});if(null===m||void 0===m||null===(n=m.data)||void 0===n||!n.body)return r.close(),void h["Message"].error(y("themeDesigner.getUploadUrlFailed"));const u=JSON.parse(m.data.body);if(!u.success)return r.close(),void h["Message"].error(u.error||y("themeDesigner.getUploadUrlFailed"));r.message=y("themeDesigner.uploadingCover");const p=await fetch(u.data.cover.uploadUrl,{method:"PUT",headers:{"Content-Type":"image/webp"},body:d});if(!p.ok)return r.close(),void h["Message"].error(y("themeDesigner.uploadCoverFailed"));r.message=y("themeDesigner.uploadingThemeData");const g=JSON.stringify(e),f=await fetch(u.data.data.uploadUrl,{method:"PUT",headers:{"Content-Type":"application/json"},body:g});if(!f.ok)return r.close(),void h["Message"].error(y("themeDesigner.uploadThemeDataFailed"));r.message=y("themeDesigner.publishingTheme");const v={name:e.meta.name.trim(),description:(null===(a=e.meta.description)||void 0===a?void 0:a.trim())||null,meta_id:e.meta.id,version:e.meta.version||"1.0.0",change_log:null,cover_key:u.data.cover.key,data_key:u.data.data.key},b=await Object(_["forwardProxyForPlugin"])({url:O+"/api/themes",method:"POST",headers:[{Authorization:"Bearer "+s.token,"Content-Type":"application/json"}],payload:v});if(null===b||void 0===b||null===(o=b.data)||void 0===o||!o.body)return r.close(),void h["Message"].error(y("themeDesigner.publishThemeFailed"));const w=JSON.parse(b.data.body);if(!w.success)return r.close(),void h["Message"].error(w.error||y("themeDesigner.publishThemeFailed"));r.close(),h["Message"].success(y("themeDesigner.shareSuccess"));const T=`${O}/themes/${w.data.id}`;return window.open(T,"_blank"),!0}catch(Q){return console.error("分享主题失败:",Q),h["Message"].error(y("themeDesigner.shareFailed")),!1}}async function F(e,t=!1){try{var i,n;const o=await M();if(!o){if(t){h["Message"].warning(y("themeDesigner.pleaseAuthorizeToView"));const e=O+"/siyuan-auth?from=siyuan";window.open(e,"_blank")}return null}if(o.expires_at<Date.now()){if(t){h["Message"].warning(y("themeDesigner.authorizationExpired")),await A();const e=O+"/siyuan-auth?from=siyuan";window.open(e,"_blank")}return null}const r=await Object(_["forwardProxyForPlugin"])({url:O+"/api/themes/check-shared",method:"GET",headers:[{Authorization:"Bearer "+o.token}]});if(null===r||void 0===r||null===(i=r.data)||void 0===i||!i.body)return null;const s=JSON.parse(r.data.body);if(!s.success)return null;const l=null===e||void 0===e||null===(n=e.meta)||void 0===n?void 0:n.id;if(!l){var a;const t=null===e||void 0===e||null===(a=e.meta)||void 0===a?void 0:a.name;return t&&s.data.find(e=>e.name===t)||null}const c=s.data.find(e=>e.metaId===l);return c||null}catch(Q){return console.error("检查主题分享状态失败:",Q),null}}async function P(e,t,i,n=""){try{var a,o;const s=await M();if(!s){h["Message"].warning(y("themeDesigner.pleaseAuthorize"));const e=O+"/siyuan-auth?from=siyuan";return window.open(e,"_blank"),!1}if(s.expires_at<Date.now()){h["Message"].warning(y("themeDesigner.authorizationExpired")),await A();const e=O+"/siyuan-auth?from=siyuan";return window.open(e,"_blank"),!1}const l=Object(h["Message"])({message:y("themeDesigner.updatingTheme"),type:"info",duration:0}),c=await i();let d=null,m=null;if(c){var r;const e=atob(c),i=new Uint8Array(e.length);for(let t=0;t<e.length;t++)i[t]=e.charCodeAt(t);const n=await Object(_["forwardProxyForPlugin"])({url:O+"/api/themes/upload-cover",method:"POST",headers:[{Authorization:"Bearer "+s.token,"Content-Type":"application/json"}],payload:{fileType:"webp"}});if(null!==n&&void 0!==n&&null!==(r=n.data)&&void 0!==r&&r.body){const e=JSON.parse(n.data.body);if(e.success){const n=await fetch(e.data.cover.uploadUrl,{method:"PUT",headers:{"Content-Type":"image/webp"},body:i}),a=await fetch(e.data.data.uploadUrl,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});n.ok&&a.ok&&(d=e.data.cover.key,m=e.data.data.key)}}}const u={name:t.meta.name.trim(),description:(null===(a=t.meta.description)||void 0===a?void 0:a.trim())||null,version:t.meta.version||"1.0.0",change_log:n||null};d&&(u.cover_key=d),m&&(u.data_key=m);const p=await Object(_["forwardProxyForPlugin"])({url:`${O}/api/themes/${e}`,method:"PUT",headers:[{Authorization:"Bearer "+s.token,"Content-Type":"application/json"}],payload:u});if(l.close(),null===p||void 0===p||null===(o=p.data)||void 0===o||!o.body)return h["Message"].error(y("themeDesigner.updateFailed")),!1;const g=JSON.parse(p.data.body);return g.success?(h["Message"].success(y("themeDesigner.updateSuccess")),!0):(h["Message"].error(g.error||y("themeDesigner.updateFailed")),!1)}catch(Q){return console.error("更新主题失败:",Q),h["Message"].error(y("themeDesigner.updateFailedRetry")),!1}}async function R(e){try{var t,i,n,a,o;if(null===(t=e.meta)||void 0===t||null===(t=t.name)||void 0===t||!t.trim())return h["Message"].warning(y("themeDesigner.themeNameEmpty")),!1;if(null===(i=e.meta)||void 0===i||!i.id)return h["Message"].warning(y("themeDesigner.themeMissingId")),!1;const r=Object(h["Message"])({message:"正在准备分享...",type:"info",duration:0}),s=await M();if(!s){r.close(),h["Message"].warning(y("themeDesigner.pleaseAuthorizeFirst"));const e=O+"/siyuan-auth?from=siyuan";return window.open(e,"_blank"),!1}if(s.expires_at<Date.now()){r.close(),h["Message"].warning(y("themeDesigner.authorizationExpired")),await A();const e=O+"/siyuan-auth?from=siyuan";return window.open(e,"_blank"),!1}r.message=y("themeDesigner.readingPreview");const l=`/data/storage/petal/kmind/theme/${e.meta.name}.webp`;let c=null;try{if(c=await Object(_["getFileForPlugin"])({path:l}),!c)return r.close(),h["Message"].warning(y("themeDesigner.previewNotFound")),!1}catch(Q){return r.close(),h["Message"].warning(y("themeDesigner.readPreviewFailed")),!1}r.message=y("themeDesigner.processingPreview"),r.message=y("themeDesigner.gettingUploadUrl");const d=await Object(_["forwardProxyForPlugin"])({url:O+"/api/themes/upload-cover",method:"POST",headers:[{Authorization:"Bearer "+s.token,"Content-Type":"application/json"}],payload:{fileType:"webp"}});if(null===d||void 0===d||null===(n=d.data)||void 0===n||!n.body)return r.close(),h["Message"].error(y("themeDesigner.getUploadUrlFailed")),!1;const m=JSON.parse(d.data.body);if(!m.success)return r.close(),h["Message"].error(m.error||y("themeDesigner.getUploadUrlFailed")),!1;r.message=y("themeDesigner.uploadingCover");const u=await fetch(m.data.cover.uploadUrl,{method:"PUT",headers:{"Content-Type":"image/webp"},body:c});if(!u.ok)return r.close(),h["Message"].error(y("themeDesigner.uploadCoverFailed")),!1;r.message=y("themeDesigner.uploadingThemeData");const p=await fetch(m.data.data.uploadUrl,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!p.ok)return r.close(),h["Message"].error(y("themeDesigner.uploadThemeDataFailed")),!1;r.message=y("themeDesigner.publishingTheme");const g={name:e.meta.name.trim(),description:(null===(a=e.meta.description)||void 0===a?void 0:a.trim())||null,cover_key:m.data.cover.key,data_key:m.data.data.key},f=await Object(_["forwardProxyForPlugin"])({url:O+"/api/themes",method:"POST",headers:[{Authorization:"Bearer "+s.token,"Content-Type":"application/json"}],payload:g});if(null===f||void 0===f||null===(o=f.data)||void 0===o||!o.body)return r.close(),h["Message"].error(y("themeDesigner.publishThemeFailed")),!1;const v=JSON.parse(f.data.body);if(!v.success)return r.close(),h["Message"].error(v.error||y("themeDesigner.publishThemeFailed")),!1;r.close(),h["Message"].success(y("themeDesigner.shareSuccess"));const b=`${O}/themes/${v.data.id}`;return window.open(b,"_blank"),!0}catch(Q){return console.error("分享主题失败:",Q),h["Message"].error(y("themeDesigner.shareFailed")),!1}}async function I(e,t){try{var i,n;const o=await M();if(!o){h["Message"].warning(y("themeDesigner.pleaseAuthorize"));const e=O+"/siyuan-auth?from=siyuan";return window.open(e,"_blank"),!1}if(o.expires_at<Date.now()){h["Message"].warning(y("themeDesigner.authorizationExpired")),await A();const e=O+"/siyuan-auth?from=siyuan";return window.open(e,"_blank"),!1}const r=Object(h["Message"])({message:y("themeDesigner.updatingTheme"),type:"info",duration:0});r.message=y("themeDesigner.readingPreview");const s=`/data/storage/petal/kmind/theme/${t.meta.name}.webp`;let l=null,c=null,d=null;try{if(l=await Object(_["getFileForPlugin"])({path:s}),l){var a;const e=await Object(_["forwardProxyForPlugin"])({url:O+"/api/themes/upload-cover",method:"POST",headers:[{Authorization:"Bearer "+o.token,"Content-Type":"application/json"}],payload:{fileType:"webp"}});if(null!==e&&void 0!==e&&null!==(a=e.data)&&void 0!==a&&a.body){const i=JSON.parse(e.data.body);if(i.success){r.message=y("themeDesigner.uploadingNewCover");const e=await fetch(i.data.cover.uploadUrl,{method:"PUT",headers:{"Content-Type":"image/webp"},body:l});r.message=y("themeDesigner.uploadingThemeData");const n=await fetch(i.data.data.uploadUrl,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});e.ok&&n.ok&&(c=i.data.cover.key,d=i.data.data.key)}}}}catch(Q){console.log("未找到或无法读取WebP文件,跳过封面更新")}r.message=y("themeDesigner.updatingThemeInfo");const m={name:t.meta.name.trim(),description:(null===(i=t.meta.description)||void 0===i?void 0:i.trim())||null};c&&(m.cover_key=c),d&&(m.data_key=d);const u=await Object(_["forwardProxyForPlugin"])({url:`${O}/api/themes/${e}`,method:"PUT",headers:[{Authorization:"Bearer "+o.token,"Content-Type":"application/json"}],payload:m});if(r.close(),null===u||void 0===u||null===(n=u.data)||void 0===n||!n.body)return h["Message"].error(y("themeDesigner.updateFailed")),!1;const p=JSON.parse(u.data.body);return p.success?(h["Message"].success(y("themeDesigner.updateSuccess")),!0):(h["Message"].error(p.error||y("themeDesigner.updateFailed")),!1)}catch(Q){return console.error("更新主题失败:",Q),h["Message"].error(y("themeDesigner.updateFailedRetry")),!1}}var z={__name:"ThemeList",props:{value:{type:Boolean,default:!1},themes:{type:Array,default:()=>[]},plugin:{type:Object,required:!0}},emits:["input","select","delete","copy","export"],setup(e,{expose:t,emit:i}){const n=e;t({refreshSharedStatus:async()=>{await k(!0),await Object(m["nextTick"])()}});const a=Object(m["computed"])({get:()=>n.value,set:e=>i("input",e)}),o=Object(m["ref"])(""),r=Object(m["ref"])({}),s=Object(m["ref"])({}),l=Object(m["ref"])(!1),c=()=>{var e;const t=null===(e=globalThis.siyuan)||void 0===e||null===(e=e.config)||void 0===e?void 0:e.lang;if(t)return"zh_CN"===t?"zh_CN":"en_US";const i=navigator.language.toLowerCase();return i.includes("zh")?"zh_CN":"en_US"},d=e=>{var t,i;const n=c();return null!==(t=e.meta)&&void 0!==t&&null!==(t=t.i18n)&&void 0!==t&&null!==(t=t.name)&&void 0!==t&&t[n]?e.meta.i18n.name[n]:(null===(i=e.meta)||void 0===i?void 0:i.name)||""},u=e=>{var t,i;const n=c();return null!==(t=e.meta)&&void 0!==t&&null!==(t=t.i18n)&&void 0!==t&&null!==(t=t.description)&&void 0!==t&&t[n]?e.meta.i18n.description[n]:(null===(i=e.meta)||void 0===i?void 0:i.description)||""},p=async e=>{const t=`/data/storage/petal/kmind/theme/${e}.webp`,i=`/data/storage/petal/kmind/theme/${e}.svg`;try{const i=await Object(_["getFileForPlugin"])({path:t});if(i){let t;i instanceof Uint8Array||console.warn("Unexpected webp content type:",typeof i),t=new Blob([i],{type:"image/webp"});const n=URL.createObjectURL(t);return void(r.value[e]=n)}}catch{}try{const t=await Object(_["getFileForPlugin"])({path:i});if(t){const i=new Blob([t],{type:"image/svg+xml"}),n=URL.createObjectURL(i);r.value[e]=n}}catch(Q){console.log(`主题 ${e} 没有预览图`)}};Object(m["watch"])(()=>n.themes,async e=>{if(e&&e.length>0){for(const t of e)r.value[t.meta.name]||await p(t.meta.name);await k()}},{immediate:!0,deep:!0});const g=()=>{Object.values(r.value).forEach(e=>{"string"===typeof e&&e.startsWith("blob:")&&URL.revokeObjectURL(e)}),r.value={}},f=Object(m["computed"])(()=>{if(!o.value)return console.log("props.themes:",n.themes),n.themes;const e=o.value.toLowerCase();return n.themes.filter(t=>{var i;const n=d(t).toLowerCase(),a=u(t).toLowerCase(),o=(null===(i=t.meta.author)||void 0===i?void 0:i.toLowerCase())||"";return n.includes(e)||a.includes(e)||o.includes(e)})}),v=e=>{if(!e)return"";const t=new Date(e);return t.toLocaleDateString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit"})},b=e=>{i("select",e)},w=async(e,t)=>{switch(e){case"select":i("select",t.meta.name);break;case"copy":i("copy",t);break;case"export":i("export",t);break;case"share":await T(t);break;case"updateShare":await C(t);break;case"viewShared":x(t);break;case"delete":h["MessageBox"].confirm(`确定要删除主题"${t.meta.name}"吗?`,"删除确认",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{i("delete",t.meta.name)});break}},T=async e=>{try{const t=await R(e);t&&(await k(!0),h["Message"].success(y("themeDesigner.shareSuccess")))}catch(Q){console.error("分享主题失败:",Q),h["Message"].error(y("themeDesigner.shareFailed"))}},C=async e=>{const t=s.value[e.meta.id];if(t)try{h["MessageBox"].confirm(y("themeDesigner.confirmUpdateShare"),y("themeDesigner.updateShareTitle"),{confirmButtonText:y("themeDesigner.confirm"),cancelButtonText:y("themeDesigner.cancel"),type:"info"}).then(async()=>{const i=await I(t.id,e);i&&(h["Message"].success(y("themeDesigner.updateShareSuccess")),await k(!0))})}catch(Q){console.error("更新主题失败:",Q),h["Message"].error(y("themeDesigner.updateShareFailed"))}else h["Message"].warning(y("themeDesigner.shareNotFound"))},D="/data/storage/petal/kmind/config/auth.kmindconf",S=async()=>{try{const e=await Object(_["getFileForPlugin"])({path:D});return e||null}catch(Q){return null}},k=async(e=!1)=>{if((!l.value||e)&&n.themes&&0!==n.themes.length)try{var t;l.value=!0;const e=await S();if(!e)return s.value={},void console.log("未登录,清空分享状态");console.log("开始检查分享状态,当前主题数:",n.themes.length);const i=await Object(_["forwardProxyForPlugin"])({url:O+"/api/themes/check-shared",method:"GET",headers:[{Authorization:"Bearer "+e.token}]});if(null!==i&&void 0!==i&&null!==(t=i.data)&&void 0!==t&&t.body){const e=JSON.parse(i.data.body);if(e.success&&e.data){console.log("API返回已分享主题数:",e.data.length),console.log("API返回的主题:",e.data.map(e=>({name:e.name,metaId:e.metaId})));const t={};n.themes.forEach(i=>{var n,a;const o=null===(n=i.meta)||void 0===n?void 0:n.id,r=null===(a=i.meta)||void 0===a?void 0:a.name;if(!o)return void console.log(`跳过主题 "${r}":没有meta.id`);const s=e.data.find(e=>e.metaId===o);s?(t[o]=s,console.log(`主题 "${r}" (meta.id: ${o}) 已分享,ID: ${s.id}`)):console.log(`主题 "${r}" (meta.id: ${o}) 未分享`)}),s.value={},await Object(m["nextTick"])(),s.value=t,console.log("分享状态更新完成,已分享主题数:",Object.keys(t).length),console.log("已分享主题列表:",Object.keys(t)),console.log("sharedThemes.value:",s.value)}}}catch(Q){console.error("检查已分享主题失败:",Q)}finally{l.value=!1}},x=e=>{if(!e.meta.id)return void console.warn("主题没有meta.id,无法查看分享");const t=s.value[e.meta.id];if(t){const e=`${O}/themes/${t.id}`;window.open(e,"_blank")}};return Object(m["watch"])(a,async e=>{e&&n.themes.length>0&&await k()}),Object(m["onBeforeUnmount"])(()=>{g()}),{__sfc:!0,props:n,emit:i,visible:a,searchKeyword:o,themePreviews:r,sharedThemes:s,isCheckingShared:l,getCurrentLang:c,getThemeLocalizedName:d,getThemeLocalizedDescription:u,loadThemePreview:p,cleanupPreviews:g,filteredThemes:f,formatDate:v,handleSelect:b,handleCommand:w,handleShareTheme:T,handleUpdateShare:C,AUTH_FILE_PATH:D,getAuth:S,checkSharedThemes:k,viewSharedTheme:x,t:y}}},L=z,U=(i("0793"),Object(T["a"])(L,S,k,!1,null,"746e7913",null)),K=U.exports;function j(e){Object(m["ref"])([]);const t="/data/storage/petal/kmind/theme",i=async()=>{try{return await Object(_["putFileForPlugin"])({path:t,isDir:!0}),!0}catch(Q){return console.error("创建主题目录失败:",Q),!1}},n=async()=>{try{await i();const e=await Object(_["listFileForPlugin"])({path:t}),n=[];for(const t of e)if(!t.isDir&&t.name.endsWith(".json")){const e=await a(t.name.replace(".json",""));e&&n.push(e)}return n}catch(Q){return console.error("获取主题列表失败:",Q),[]}},a=async e=>{try{const i=`${t}/${e}.json`,n=await Object(_["getFileForPlugin"])({path:i});if(!n)return null;const a=n;return a.meta||(a.meta={name:e,author:"",version:"1.0.0",description:"",createTime:(new Date).toISOString(),updateTime:(new Date).toISOString()}),a}catch(Q){return console.error("加载主题失败:",Q),null}},o=async(e,n=null,a=null)=>{try{await i();const o=e.meta.name,s=`${t}/${o}.json`,l=v(e);console.log("准备保存的theme",e),console.log("准备保存的content",l);const c=await Object(_["putFileForPlugin"])({path:s,target:l});return 0===c.code&&(n&&await r(o,n,"svg"),a&&await r(o,a,"webp")),0===c.code}catch(Q){return console.error("保存主题失败:",Q),!1}},r=async(e,i,n="svg")=>{try{const a="webp"===n?"webp":"svg",o=`${t}/${e}.${a}`;let r=i;if("webp"===n)if("string"===typeof i){const e=atob(i),t=new Uint8Array(e.length);for(let i=0;i<e.length;i++)t[i]=e.charCodeAt(i);r=t}else i instanceof Uint8Array&&(r=i);else"svg"===n&&(r=i);return await Object(_["putFileForPlugin"])({path:o,target:r}),!0}catch(Q){return console.error(`保存${n}预览图失败:`,Q),!1}},s=e=>`${t}/${e}.svg`,l=async e=>{try{const i=`${t}/${e}.svg`;return await Object(_["getFileForPlugin"])({path:i}),!0}catch{return!1}},c=e=>`${t}/${e}.webp`,d=async e=>{try{const i=`${t}/${e}.webp`;return await Object(_["getFileForPlugin"])({path:i}),!0}catch{return!1}},h=async e=>{try{const i=`${t}/${e}.json`,n=`${t}/${e}.svg`,a=`${t}/${e}.webp`,o=await Object(_["deleteFileForPlugin"])({path:i});try{await Object(_["deleteFileForPlugin"])({path:n})}catch{}try{await Object(_["deleteFileForPlugin"])({path:a})}catch{}return 0===o.code}catch(Q){return console.error("删除主题失败:",Q),!1}},u=async(e,i,n=null,s=null)=>{try{const l=await a(e);if(!l)return!1;l.meta.name=i,l.meta.updateTime=(new Date).toISOString();const c=await o(l,n,s);if(c){if(!n)try{const n=`${t}/${e}.svg`,a=await Object(_["getFileForPlugin"])({path:n});a&&await r(i,a,"svg")}catch{}if(!s)try{const n=`${t}/${e}.webp`,a=await Object(_["getFileForPlugin"])({path:n});a&&await r(i,a,"webp")}catch{}await h(e)}return c}catch(Q){return console.error("重命名主题失败:",Q),!1}},p=async(e,t="")=>{if(!e||""===e.trim())return!1;if(e===t)return!0;const i=await n();return!i.some(t=>t.meta.name===e)},g=async e=>{try{const t=await y(e),i=JSON.parse(t);i.meta||(i.meta={name:e.name.replace(/\.json$/,""),author:"",version:"1.0.0",description:"",createTime:(new Date).toISOString(),updateTime:(new Date).toISOString()});const n=i.meta.name;let a=n,o=1;while(!await p(a))a=`${n}_${o}`,o++;return i.meta.name=a,i}catch(Q){return console.error("导入主题失败:",Q),null}},f=e=>{try{const t=v(e),i=new Blob([t],{type:"application/json"}),n=URL.createObjectURL(i),a=document.createElement("a");return a.href=n,a.download=e.meta.name+".json",document.body.appendChild(a),a.click(),document.body.removeChild(a),URL.revokeObjectURL(n),!0}catch(Q){return console.error("导出主题失败:",Q),!1}},v=e=>JSON.stringify(e,null,2),y=e=>new Promise((t,i)=>{const n=new FileReader;n.onload=e=>t(e.target.result),n.onerror=i,n.readAsText(e)});return{listThemes:n,loadTheme:a,saveTheme:o,deleteTheme:h,renameTheme:u,validateThemeName:p,importTheme:g,exportTheme:f,saveThemePreview:r,getThemePreviewPath:s,hasThemePreview:l,getWebpPreviewPath:c,hasWebpPreview:d}}var B={__name:"index",props:{plugin:{type:Object,required:!0},initialTheme:{type:Object,required:!1}},emits:["update:theme"],setup(e,{emit:t}){const i=e,n=Object(l["a"])("0123456789abcdefghijklmnopqrstuvwxyz",24),a=e=>{var t,i;const n=f();return null!==(t=e.meta)&&void 0!==t&&null!==(t=t.i18n)&&void 0!==t&&null!==(t=t.name)&&void 0!==t&&t[n]?e.meta.i18n.name[n]:(null===(i=e.meta)||void 0===i?void 0:i.name)||y("themeDesigner.untitledTheme")},s=e=>{var t,i;const n=f();return null!==(t=e.meta)&&void 0!==t&&null!==(t=t.i18n)&&void 0!==t&&null!==(t=t.description)&&void 0!==t&&t[n]?e.meta.i18n.description[n]:(null===(i=e.meta)||void 0===i?void 0:i.description)||""};r["a"].init(o["a"]);const c=j(i.plugin),d=async()=>{if(!S.value)return null;try{const e=await S.value.export("svg",!1,"preview");let t="";if(e.includes("base64,")){const i=e.split("base64,")[1];t=atob(i)}else t=e.includes("charset=utf-8,")?decodeURIComponent(e.split("charset=utf-8,")[1]):e.substring(e.indexOf(",")+1);const i=400,n=300,a=new DOMParser,o=a.parseFromString(t,"image/svg+xml"),r=o.querySelector("svg");if(!r)return null;const s=parseFloat(r.getAttribute("width")||"800"),l=parseFloat(r.getAttribute("height")||"600"),c=(Math.min(i/s,n/l),r.getAttribute("viewBox"));if(c||r.setAttribute("viewBox",`0 0 ${s} ${l}`),r.setAttribute("width",i),r.setAttribute("height",n),b.backgroundColor&&"#ffffff"!==b.backgroundColor){const e=o.createElementNS("http://www.w3.org/2000/svg","rect");e.setAttribute("width","100%"),e.setAttribute("height","100%"),e.setAttribute("fill",b.backgroundColor),r.insertBefore(e,r.firstChild)}const d=new XMLSerializer;return d.serializeToString(r)}catch(Q){return console.error("生成SVG预览图失败:",Q),null}},u=async()=>{if(!S.value)return null;try{const e=await S.value.export("svg",!1,"preview");return new Promise((t,i)=>{const n=new Image;n.onload=()=>{const e=document.createElement("canvas"),i=400,a=300;e.width=i,e.height=a;const o=e.getContext("2d"),r=Math.min(i/n.width,a/n.height),s=n.width*r,l=n.height*r,c=(i-s)/2,d=(a-l)/2;o.fillStyle=b.backgroundColor||"#ffffff",o.fillRect(0,0,i,a),o.drawImage(n,c,d,s,l);const m=e.toDataURL("image/webp",.8);if(m&&m.startsWith("data:image/webp")){const e=m.split(",")[1];t(e)}else console.warn("浏览器不支持WebP格式"),t(null)},n.onerror=()=>{console.error("SVG转换为图片失败"),i(new Error("SVG转换为图片失败"))},n.src=e})}catch(Q){return console.error("生成WebP预览图失败:",Q),null}},p=["rgba(0, 0, 0, 0)","#549688","#4285f4","#ea4335","#fbbc05","#34a853","#ff6900","#fcb900","#7bdcb5","#00d084","#8ed1fc","#0693e3","#abb8c3","#eb144c","#f78da7","#9900ef"],g=e=>({meta:{id:"km-theme-"+n(),name:e||y("themeDesigner.untitledTheme"),i18n:{name:{zh_CN:e||"未命名主题",en_US:e||"Untitled Theme"},description:{zh_CN:"",en_US:""}},author:"",version:"1.0.0",description:"",createTime:(new Date).toISOString(),updateTime:(new Date).toISOString()},backgroundColor:"#F7FAFC",lineColor:"#2D3748",lineWidth:1.5,lineStyle:"straight",lineRadius:8,paddingX:16,paddingY:8,generalizationLineWidth:1,generalizationLineColor:"#2D3748",root:{shape:"rectangle",fillColor:"#2D3748",color:"#FFFFFF",borderColor:"",borderWidth:2,borderDasharray:"",borderRadius:8,fontSize:20,fontWeight:"bold",fontFamily:"",textAlign:"center",textVerticalAlign:"middle",paddingX:24,paddingY:14,imgMaxWidth:100,imgMaxHeight:100},second:{shape:"rectangle",fillColor:"#718096",color:"#FFFFFF",borderColor:"",borderWidth:1.5,borderDasharray:"",borderRadius:6,fontSize:16,fontWeight:"normal",fontFamily:"",textAlign:"left",textVerticalAlign:"middle",paddingX:20,paddingY:10,marginX:100,marginY:40,imgMaxWidth:100,imgMaxHeight:100},node:{shape:"rectangle",fillColor:"#EDF2F7",color:"#2D3748",borderColor:"",borderWidth:1,borderDasharray:"",borderRadius:4,fontSize:14,fontWeight:"normal",fontFamily:"",textAlign:"left",textVerticalAlign:"middle",paddingX:16,paddingY:8,marginX:50,marginY:0,imgMaxWidth:100,imgMaxHeight:100},generalization:{shape:"rectangle",fillColor:"#FFF5F5",color:"#742A2A",borderColor:"",borderWidth:1,borderRadius:6,fontSize:14,fontWeight:"normal",fontFamily:"",textAlign:"center",textVerticalAlign:"middle",paddingX:12,paddingY:6,imgMaxWidth:100,imgMaxHeight:100}}),v=g(y("themeDesigner.untitledTheme")),b=Object(m["reactive"])(JSON.parse(JSON.stringify(v)));if(i.initialTheme)try{const e=JSON.parse(JSON.stringify(i.initialTheme));Object.assign(b,e)}catch(ce){console.warn("初始化外部主题失败,将使用默认主题",ce)}const w=Object(m["ref"])("general"),T=Object(m["ref"])(!1),C=Object(m["ref"])([]),S=Object(m["ref"])(null),k=Object(m["ref"])(null),_=Object(m["ref"])(null),x=Object(m["ref"])(null),N={data:{text:"KMIND"},children:[{data:{text:"Subtopic",generalization:{text:"Summary"}},children:[{data:{text:"Add Content"},children:[]},{data:{text:"Add Content"},children:[]}]},{data:{text:"Subtopic"},children:[{data:{text:"Add Content"},children:[]},{data:{text:"Add Content"},children:[]}]}]},M=()=>{S.value&&S.value.destroy();const e={...b};delete e.meta,o["a"].defineTheme("customPreview",e),S.value=new o["a"]({el:document.getElementById("theme-preview-mindmap"),data:N,theme:"customPreview",layout:"logicalStructure",readonly:!0,isShowCreateChildBtnIcon:!1,mousewheelAction:"zoom",mousewheelMoveStep:50,enableFreeDrag:!1,isShowDrag:!1,isShowExpandBtn:!1,isShowNodeNote:!1,isShowNodeHyperlink:!1,isShowNodeImage:!1,isShowNodeIcon:!1,isShowNodeTag:!1})},A=()=>{if(S.value){const e={...b};delete e.meta,o["a"].updateTheme("customPreview",e),S.value.refreshTheme()}},R=Object(m["ref"])(""),I=async()=>{const e=await c.validateThemeName(b.meta.name,R.value);return e||h["Message"].warning(y("themeDesigner.themeNameExists")),e},z=e=>e.replace(/[^\u4e00-\u9fa5a-zA-Z0-9\s_-]/g,""),L=()=>{const e=z(b.meta.name);e!==b.meta.name&&(b.meta.name=e),b.meta.name.length>128&&(b.meta.name=b.meta.name.substring(0,128))},U=()=>{const e=z(b.meta.description||"");e!==b.meta.description&&(b.meta.description=e),b.meta.description&&b.meta.description.length>200&&(b.meta.description=b.meta.description.substring(0,200));const t=f();b.meta.i18n||(b.meta.i18n={name:{},description:{}}),b.meta.i18n.description||(b.meta.i18n.description={}),b.meta.i18n.description[t]=b.meta.description},B=async()=>{if(R.value&&R.value!==b.meta.name){const e=f();b.meta.i18n||(b.meta.i18n={name:{},description:{}}),b.meta.i18n.name||(b.meta.i18n.name={}),b.meta.i18n.name[e]=b.meta.name;const t=await d(),i=await c.renameTheme(R.value,b.meta.name,t);i?(h["Message"].success(y("themeDesigner.renameSuccess")),R.value=b.meta.name,se()):(b.meta.name=R.value,h["Message"].error(y("themeDesigner.renameFailed")))}},G=(e,t)=>{Object.assign(b[e],t),A()},Y=()=>{h["MessageBox"].confirm(y("themeDesigner.saveBeforeNew"),y("themeDesigner.tip"),{confirmButtonText:y("themeDesigner.saveAndNew"),cancelButtonText:y("themeDesigner.directNew"),distinguishCancelAndClose:!0,type:"warning"}).then(()=>{W().then(()=>{const e=g(y("themeDesigner.untitledTheme"));e.meta.name=z(`${y("themeDesigner.newTheme")}_${Date.now()}`).substring(0,128),e.meta.description="",Object.assign(b,e),R.value="",A()})}).catch(e=>{if("cancel"===e){const e=g(y("themeDesigner.untitledTheme"));e.meta.name=z(`${y("themeDesigner.newTheme")}_${Date.now()}`).substring(0,128),e.meta.description="",Object.assign(b,e),R.value="",A()}})},$=()=>{h["MessageBox"].confirm(y("themeDesigner.confirmReset"),y("themeDesigner.tip"),{confirmButtonText:y("themeDesigner.confirm"),cancelButtonText:y("themeDesigner.cancel"),type:"warning"}).then(()=>{const e=b.meta.name,t=g(e);Object.assign(b,t),A(),h["Message"].success(y("themeDesigner.resetSuccess"))}).catch(()=>{})},W=async()=>{L(),U();const e=await c.listThemes(),t=e.find(e=>e.meta.name===b.meta.name);if(t)try{await h["MessageBox"].confirm(y("themeDesigner.themeExistsOverwrite").replace("{name}",b.meta.name),y("themeDesigner.tip"),{confirmButtonText:y("themeDesigner.overwrite"),cancelButtonText:y("themeDesigner.cancel"),type:"warning"})}catch{return}b.meta.updateTime=(new Date).toISOString();const i=await d(),n=await u(),a=await c.saveTheme(b,i,n);a?(h["Message"].success(y("themeDesigner.saveSuccess")),se()):h["Message"].error(y("themeDesigner.saveFailed"))},V=e=>{switch(e){case"copy":H(b);break;case"import":_.value.click();break;case"export":X();break;case"share":ee();break;case"delete":Z();break}},H=e=>{const t=JSON.parse(JSON.stringify(e||b));let i=`${t.meta.name}_${y("themeDesigner.copy")}`;i=z(i).substring(0,128),t.meta.name=i,t.meta.id="km-theme-"+n(),t.meta.createTime=(new Date).toISOString(),t.meta.updateTime=(new Date).toISOString(),t.meta.description&&(t.meta.description=z(t.meta.description).substring(0,200)),Object.assign(b,t),A(),h["Message"].success(y("themeDesigner.themeCopied"))},J=async e=>{const t=e.target.files[0];if(!t)return;const i=await c.importTheme(t);i?(i.meta&&i.meta.name&&(i.meta.name=z(i.meta.name).substring(0,128)),i.meta&&i.meta.description&&(i.meta.description=z(i.meta.description).substring(0,200)),i.meta.id||(i.meta.id="km-theme-"+n()),Object.assign(b,i),A(),h["Message"].success(y("themeDesigner.importSuccess"))):h["Message"].error(y("themeDesigner.importFailedFormat")),e.target.value=""},X=()=>{c.exportTheme(b)},q=e=>{c.exportTheme(e)},Z=()=>{h["MessageBox"].confirm(y("themeDesigner.confirmDeleteCurrent"),y("themeDesigner.warning"),{confirmButtonText:y("themeDesigner.confirm"),cancelButtonText:y("themeDesigner.cancel"),type:"warning"}).then(async()=>{const e=await c.deleteTheme(b.meta.name);if(e){h["Message"].success(y("themeDesigner.deleteSuccess"));const e=g(y("themeDesigner.untitledTheme"));Object.assign(b,e),A(),se()}})},ee=async()=>{await W();const e=await F(b,!0);if(e){b.meta.version;const t=e.version||"1.0.0",i=te(t);h["MessageBox"].prompt(y("themeDesigner.themeAlreadyShared")+"\n\n"+`${y("themeDesigner.currentVersion")}: ${t}\n`+`${y("themeDesigner.newVersion")}: ${i}\n\n`+y("themeDesigner.inputChangeLog"),y("themeDesigner.updateTheme"),{confirmButtonText:y("themeDesigner.update"),cancelButtonText:y("themeDesigner.cancel"),inputType:"textarea",inputPlaceholder:y("themeDesigner.changeLogPlaceholder"),inputValue:"",inputValidator:e=>!(e&&e.length>200)||y("themeDesigner.changeLogTooLong"),customClass:"theme-update-dialog"}).then(async({value:t})=>{b.meta.version=i,b.meta.updateTime=(new Date).toISOString();const n=await P(e.id,b,u,t);if(n){var a;await W(),await(null===(a=x.value)||void 0===a?void 0:a.refreshSharedStatus());const t=`${O}/themes/${e.id}`;window.open(t,"_blank")}}).catch(()=>{})}else{const e=await E(b,u);var t;if(e)await(null===(t=x.value)||void 0===t?void 0:t.refreshSharedStatus())}},te=e=>{const t=e.split("."),i=parseInt(t[0])||0,n=parseInt(t[1])||0,a=parseInt(t[2])||0;return`${i}.${n}.${a+1}`},ie=async e=>{const t=await c.loadTheme(e);t&&(Object.assign(b,t),R.value=t.meta.name,A(),T.value=!1)},ne=async e=>{const t=await c.deleteTheme(e);t&&(h["Message"].success("主题删除成功"),se())},ae=()=>{if(S.value){const e=S.value.view.scale;S.value.view.setScale(1.1*e)}},oe=()=>{if(S.value){const e=S.value.view.scale;S.value.view.setScale(.9*e)}},re=()=>{S.value&&S.value.view.setScale(1)},se=async()=>{C.value=await c.listThemes()};let le=null;return Object(m["watch"])(()=>b,()=>{le&&clearTimeout(le),le=setTimeout(()=>{A(),t("update:theme",JSON.parse(JSON.stringify(b)))},300)},{deep:!0}),Object(m["onMounted"])(()=>{Object(m["nextTick"])(()=>{M(),se()})}),Object(m["onUnmounted"])(()=>{S.value&&S.value.destroy()}),{__sfc:!0,props:i,emit:t,generateThemeId:n,getThemeLocalizedName:a,getThemeLocalizedDescription:s,themeManager:c,generateSvgPreview:d,generateWebpPreview:u,predefineColors:p,getDefaultTheme:g,defaultTheme:v,currentTheme:b,activeTab:w,showThemeList:T,userThemes:C,mindMap:S,previewContainer:k,fileInput:_,themeListRef:x,previewData:N,initPreviewMindMap:M,updatePreviewTheme:A,previousThemeName:R,validateThemeName:I,filterSpecialChars:z,filterThemeName:L,filterDescription:U,handleThemeNameChange:B,handleNodeStyleUpdate:G,handleNew:Y,handleReset:$,handleSave:W,handleMoreAction:V,handleCopyTheme:H,handleImportFile:J,handleExportTheme:X,handleExportSpecificTheme:q,handleDeleteCurrentTheme:Z,handleShare:ee,incrementVersion:te,handleSelectTheme:ie,handleDeleteTheme:ne,handleZoomIn:ae,handleZoomOut:oe,handleResetZoom:re,loadUserThemes:se,updateTimer:le,NodeStyleConfig:D,ThemeList:K,t:y}}},G=B,Y=(i("040d"),Object(T["a"])(G,c,d,!1,null,"035e9f1c",null)),$=Y.exports;r["a"].init(o["a"]),o["a"].usePlugin(s["a"]);const W=Object(l["a"])("0123456789abcdefghijklmnopqrstuvwxyz",24),V={data:{text:"KMIND"},children:[{data:{text:"Subtopic",generalization:{text:"Summary"}},children:[{data:{text:"Add Content"},children:[]},{data:{text:"Add Content"},children:[]}]},{data:{text:"Subtopic"},children:[{data:{text:"Add Content"},children:[]},{data:{text:"Add Content"},children:[]}]}]};function H(e,t,i){return`hsl(${e}, ${t}%, ${i}%)`}function J(e,t,i,n){const a=(new Date).toISOString(),o=n?8:98,r=n?20:30,s=n?28:45,l=n?18:96,c=n?70:30,d=(i-1)*(n?4:-4),m=e=>Math.max(0,Math.min(100,e)),h=H(t,n?10:8,m(o+(n?0:d))),u=H(t,60,m(r+d)),p=H(t,50,m(s+d)),g=H(t,n?28:10,m(l+d)),f=H(t,40,m(c+(n?5:-5))),v="#FFFFFF",y=n?"#E2E8F0":"#2D3748";return{meta:{id:"km-theme-"+W(),name:e,i18n:{name:{zh_CN:e,en_US:e},description:{zh_CN:"",en_US:""}},author:"",version:"1.0.0",description:"",createTime:a,updateTime:a},backgroundColor:h,lineColor:f,lineWidth:1.5,lineStyle:"straight",lineRadius:8,paddingX:16,paddingY:8,generalizationLineWidth:1,generalizationLineColor:f,root:{shape:"rectangle",fillColor:u,color:v,borderColor:"",borderWidth:2,borderDasharray:"",borderRadius:14,fontSize:20,fontWeight:"bold",fontFamily:"",textAlign:"center",textVerticalAlign:"middle",paddingX:24,paddingY:14,imgMaxWidth:100,imgMaxHeight:100},second:{shape:"rectangle",fillColor:p,color:v,borderColor:"",borderWidth:1.5,borderDasharray:"",borderRadius:10,fontSize:16,fontWeight:"normal",fontFamily:"",textAlign:"left",textVerticalAlign:"middle",paddingX:20,paddingY:10,marginX:100,marginY:40,imgMaxWidth:100,imgMaxHeight:100},node:{shape:"rectangle",fillColor:g,color:y,borderColor:"transparent",borderWidth:1,borderDasharray:"",borderRadius:6,fontSize:14,fontWeight:"normal",fontFamily:"",textAlign:"left",textVerticalAlign:"middle",paddingX:16,paddingY:8,marginX:50,marginY:0,imgMaxWidth:100,imgMaxHeight:100},generalization:{shape:"rectangle",fillColor:n?H(t,28,18):"#FFF5F5",color:n?"#FED7D7":"#742A2A",borderColor:n?H(t,40,60):"#FC8181",borderWidth:1,borderDasharray:"",borderRadius:8,fontSize:14,fontWeight:"normal",fontFamily:"",textAlign:"center",textVerticalAlign:"middle",paddingX:12,paddingY:6,imgMaxWidth:100,imgMaxHeight:100}}}var X={name:"ThemeBatchGenerator",components:{ThemeDesigner:$},data(){return{options:{hueCount:8,variantsPerHue:3,darkRatio:.4},generating:!1,generatedThemes:[],themeDesignerVisible:!1,editingThemeIndex:null,editingThemeData:null,jsonPreviewVisible:!1,jsonPreviewTitle:"",jsonPreviewText:"",manualThemeJson:"",addingFromJson:!1}},computed:{estimatedCount(){return this.options.hueCount*this.options.variantsPerHue}},methods:{buildBundlePayload(){return{version:1,generatedAt:(new Date).toISOString(),themes:this.generatedThemes.map(e=>({name:e.name,description:e.description||"",metaId:e.metaId||e.themeData.meta&&e.themeData.meta.id||null,version:e.version||"1.0.0",changeLog:e.changeLog||"",coverDataUrl:e.coverDataUrl,themeData:e.themeData}))}},async handleGenerate(){if(!this.generating){this.generating=!0;try{const{hueCount:e,variantsPerHue:t,darkRatio:i}=this.options,n=[];for(let a=0;a<e;a++){const o=Math.round(360/e*a);for(let e=1;e<=t;e++){const t=Math.random()<i,r=`KMind M3 ${t?"Dark":"Light"} ${a+1}-${e}`,s=J(r,o,e,t),l=await this.generateCover(s);n.push({name:r,description:"",metaId:s.meta.id,version:s.meta.version,changeLog:"",isDark:t,coverDataUrl:l,themeData:s}),n.length%4===0&&await new Promise(e=>setTimeout(e,20))}}this.generatedThemes=n,this.$message.success(`已生成 ${n.length} 个主题`)}catch(Q){console.error("生成主题失败:",Q),this.$message.error("生成主题失败")}finally{this.generating=!1}}},async generateCover(e){try{const t=document.createElement("div");t.style.position="fixed",t.style.left="-9999px",t.style.top="0",t.style.width="400px",t.style.height="300px",document.body.appendChild(t);const i=`preview-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,n={...e};delete n.meta,o["a"].defineTheme(i,n);const a=new o["a"]({el:t,data:V,theme:i,layout:"logicalStructure",readonly:!0,isShowCreateChildBtnIcon:!1,mousewheelAction:"zoom"});await new Promise(e=>setTimeout(e,120));const r=await a.export("png",!1,"preview");return a.destroy(),document.body.removeChild(t),r}catch(Q){return console.error("生成封面失败:",Q),""}},exportBundleJson(){if(!this.generatedThemes.length)return;const e=this.buildBundlePayload(),t=new Blob([JSON.stringify(e,null,2)],{type:"application/json;charset=utf-8"}),i=URL.createObjectURL(t),n=document.createElement("a");n.href=i,n.download=`kmind-theme-batch-${Date.now()}.json`,document.body.appendChild(n),n.click(),document.body.removeChild(n),URL.revokeObjectURL(i),this.$message.success("已导出 JSON 导入包")},async copyBundleJson(){if(!this.generatedThemes.length)return;const e=this.buildBundlePayload(),t=JSON.stringify(e,null,2);try{if(navigator.clipboard&&navigator.clipboard.writeText)await navigator.clipboard.writeText(t);else{const e=document.createElement("textarea");e.value=t,e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e)}this.$message.success("已复制导入包 JSON 到剪贴板")}catch(Q){console.error("复制导入包 JSON 失败:",Q),this.$message.error("复制导入包 JSON 失败")}},downloadAllCovers(){const e=this.generatedThemes.filter(e=>e.coverDataUrl);e.length&&(e.forEach((e,t)=>{setTimeout(()=>{const t=document.createElement("a");t.href=e.coverDataUrl,t.download=(e.name||e.metaId||"theme")+"-cover.png",document.body.appendChild(t),t.click(),document.body.removeChild(t)},200*t)}),this.$message.success(`开始下载 ${e.length} 个封面`))},clearAll(){this.generatedThemes=[],this.$message.success("已清空生成列表")},removeOne(e){this.generatedThemes.splice(e,1)},previewJson(e){const t=this.generatedThemes[e];if(!t)return;this.jsonPreviewTitle=t.name||t.metaId||"主题 "+(e+1);const i={name:t.name,description:t.description,metaId:t.metaId,version:t.version,changeLog:t.changeLog,isDark:t.isDark,coverDataUrl:t.coverDataUrl,themeData:t.themeData};this.jsonPreviewText=JSON.stringify(i,null,2),this.jsonPreviewVisible=!0},async copyRowJson(e){const t=this.generatedThemes[e];if(!t)return;const i={themes:[{name:t.name,description:t.description||"",metaId:t.metaId||t.themeData.meta&&t.themeData.meta.id||null,version:t.version||"1.0.0",changeLog:t.changeLog||"",coverDataUrl:t.coverDataUrl,themeData:t.themeData}]},n=JSON.stringify(i,null,2);try{if(navigator.clipboard&&navigator.clipboard.writeText)await navigator.clipboard.writeText(n);else{const e=document.createElement("textarea");e.value=n,e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e)}this.$message.success("已复制该主题的导入 JSON")}catch(Q){console.error("复制行 JSON 失败:",Q),this.$message.error("复制该主题 JSON 失败")}},async handleAddThemeFromJson(){if(this.manualThemeJson&&this.manualThemeJson.trim()){this.addingFromJson=!0;try{let e=null;try{e=JSON.parse(this.manualThemeJson)}catch(Q){return void this.$message.error("JSON 解析失败,请检查格式")}const t=Array.isArray(e)?e:[e];if(!t.length)return void this.$message.warning("未解析到有效的主题对象");let i=0;for(let n=0;n<t.length;n++){const e=t[n];if(!e||"object"!==typeof e)continue;const a=e.meta||{},o=a.name||"Imported Theme "+Date.now(),r="string"===typeof a.description?a.description:"",s="km-theme-"+W(),l=a.version||"1.0.0",c=e.backgroundColor||"",d="string"===typeof c&&(c.toLowerCase().includes("#0")||c.toLowerCase().includes("#1")||c.toLowerCase().includes("hsl")&&c.includes("%")),m=JSON.parse(JSON.stringify(e));m.meta||(m.meta={}),m.meta.id=s,m.meta.name||(m.meta.name=o),m.meta.version||(m.meta.version=l),"string"===typeof r&&(m.meta.description=r);const h=await this.generateCover(m);this.generatedThemes.push({name:o,description:r,metaId:s,version:l,changeLog:"",isDark:d,coverDataUrl:h,themeData:m}),i++,n%3===0&&await new Promise(e=>setTimeout(e,10))}i>0?this.$message.success(`已从 JSON 添加 ${i} 个主题`):this.$message.warning("未能从 JSON 中提取有效主题")}finally{this.addingFromJson=!1}}else this.$message.warning("请先粘贴主题 JSON")},openInDesigner(e){const t=this.generatedThemes[e];t&&t.themeData&&(this.editingThemeIndex=e,this.editingThemeData=JSON.parse(JSON.stringify(t.themeData)),this.themeDesignerVisible=!0)},handleDesignerUpdate(e){e&&(this.editingThemeData=JSON.parse(JSON.stringify(e)))},async confirmDesignerChanges(){if(null===this.editingThemeIndex||this.editingThemeIndex<0||this.editingThemeIndex>=this.generatedThemes.length||!this.editingThemeData)this.themeDesignerVisible=!1;else try{const e=this.generatedThemes[this.editingThemeIndex],t=JSON.parse(JSON.stringify(this.editingThemeData));t.meta&&t.meta.name&&(e.name=t.meta.name),t.meta&&"string"===typeof t.meta.description&&(e.description=t.meta.description),e.themeData=t;const i=await this.generateCover(t);i&&(e.coverDataUrl=i),this.$message.success("已应用主题设计器中的修改")}catch(Q){console.error("应用设计器修改失败:",Q),this.$message.error("应用设计器修改失败")}finally{this.themeDesignerVisible=!1,this.editingThemeIndex=null,this.editingThemeData=null}}}},q=X,Z=(i("25fc"),Object(T["a"])(q,n,a,!1,null,"38ddfa3e",null));t["default"]=Z.exports},"59e5":function(e,t,i){},"6d13":function(e,t,i){},"90f9":function(e){e.exports=JSON.parse('{"upgradeToVip":"Upgrade Now","createKMindDoc":"Create KMind Document","copySuccessAnywhere":"Copied successfully, paste anywhere in SiYuan","copyMirrorBlock":"Copy KMind Mirror Block","copyMirrorBlockNotKMind":"This document is not a KMind document tree mind map","cannotGetKmindPath":"Cannot get KMind document path","mirrorBlockCopied":"Mirror block copied, paste anywhere","copyMirrorBlockFailed":"Failed to copy mirror block","deleteSuccess":"Deleted successfully","createFailed":"Failed to create kmind file, please try again!","createSuccess":"KMind file created successfully!","createNewKmind":"Create a new mind map","renameSuccess":"Renamed successfully","fileAlreadyExists":"File name already exists, please enter a new name","cannotInputSpecialSymbols":"Special symbols are not allowed","fileName":"File Name","warning":"Warning: This operation cannot be undone!!!","confirmDelete":"Are you sure you want to permanently delete","rename":"Rename","copyLinkDirectly":"Copy Link Directly","copySuccess":"Copied successfully","clickToCopy":"Click to copy the following content:","copyLink":"Copy link:","minimize":"Minimize","add":"New","kmindProNotActivated":"KMind: Please activate pro features from the top KMind menu","switchToKMindView":"Switch to KMind View","switchToEditView":"Switch to Edit View","openKmind":"Open kmind","kmindGlobalConfig":"KMind Global Configuration","kmindLicenseInfo":"KMind License Information","overview":"Overview","docTreeKmindCount":"Document tree mind maps","dockKmindCount":"Dock mind maps","widgetKmindCount":"Widget mind maps","historyRecordConfig":"History Record Configuration","createHistoryForAllKmind":"Create history records for all existing kmind files","progress":"Progress","createHistorySuccess":"Created successfully, please sync if you\'re using SiYuan sync","createHistoryFailed":"Creation failed","licenseUser":"Licensed User","licenseEmail":"Licensed Email","activeCode":"Activation Code","afdOrder":"Afdian Order Number","pleaseLoginSiYuanAccount":"Please login to SiYuan account first","refresh":"Refresh","pleaseInputLegalEmail":"Please enter a valid email","pleaseInputActiveCode":"Please enter activation code","pleaseInputAFDOrder":"Please enter Afdian order number","getActivationCodeByAFDOrder":"Get activation code by Afdian order number","activate":"Activate","getActivationCode":"Get Activation Code","findActivationCode":"Find Activation Code","pleaseInputKMxxxOrderNumber":"Please enter kmindxxx order number","pleaseNoteKMindProMustBindSiYuanAccount":"Note: KMind Pro must be bound to SiYuan account","annualSubscription":"Annual Subscription","description":"Description","studentPartyReallyUnableToAffordThisPrice":"Student unable to afford this price?","ifYouReallyThinkThisPluginIsHelpfulToYourStudies":"If you really think this plugin is helpful to your studies","pleaseUseYourSchoolEmailToSendTheGradeScreenshotEmail":"Please use your school email to send grade screenshot","contactMeAtEmail":"Contact me at kmind_app@outlook.com","iWillGiveYouAnAnnualSubscription":"I will give you an annual subscription, renewable next year with grade transcript","pleaseDoNotHaveAnyConcerns":"Please don\'t have any concerns","getPaymentQRCode":"Get Payment QR Code","considerAgain":"Think again","doYouHaveADonationId":"Do you have a donation ID?","ifYouHaveADonationId":"If you have one, please enter the donation ID for double credit","dueToTheDesignOfWeChatPraiseCode":"Note: Due to WeChat appreciation code design","donationIdNeedsToBeContactedAndSentAfterSendingPraiseScreenshot":"Donation ID needs to be sent after sending appreciation screenshot","youCan":"You can","joinQQGroup":"Join QQ Group","contactMeOrSendPraiseScreenshotToEmail":"Contact me or send appreciation screenshot to email","iWillDealWithItImmediatelyAndReply":"I will deal with it immediately and reply","email":"kmind_app@outlook.com","getDiscountPrice":"Get Discounted Price","thankYouForYourGenerousDonation":"Thank you for your generous donation, the donation amount can fully offset the payment","clickMeToGetActivationCodeDirectly":"Click me to get activation code directly","upgrade":"Upgrade","kmind2PermanentSubscription":"KMind2 Permanent Subscription","updateSummary":"Update Summary","detailedTextAndPictureClickMeToView":"Click me for detailed text and pictures","globalConfigTips":"Global Configuration (Document tree, Dock, Widget mind maps)","openKmindConfig":"When opening a KMind, what do you want it to look like?","newKmindConfig":"When creating a new KMind, what do you want it to look like?","leftKeySelectionRightKeyDrag":"Left click to select, right click to drag","openKmindAutoZenMode":"Auto enter zen mode","newKmindAutoSelectTheme":"Switch to specified theme","newKmindAutoSelectStructure":"Switch to specified structure","siYuanToKMindConfig":"SiYuan to KMind Configuration","siYuanToKMindAutoSelectTheme":"Switch to specified theme","siYuanToKMindAutoSelectStructure":"Switch to specified structure","mobileDocTreeKmindEdit":"Enable mobile document tree mind map editing","mobileDocTreeKmindEditWarning":"If cloud sync is enabled, please ensure sync is complete before editing mind maps","showToolbarInDesktop":"Show floating toolbar on desktop","close":"Close","mobileNotSupport":"Since SiYuan mobile doesn\'t support new tabs, you can use KMind through mirror blocks, widgets, or document tree mind maps","licenseInfo":{"licenseUser":"Licensed User","pleaseLoginSiYuanAccount":"Please login to SiYuan account first","refresh":"Refresh","licenseEmail":"Licensed Email","pleaseInputLegalEmail":"Please enter a valid email","activeCode":"Activation Code","pleaseInputActiveCode":"Please enter activation code, kmind-xxxx","activate":"Activate","getActivationCode":"Get Activation Code","close":"Close","pleaseInputKMxxxOrderNumber":"Please enter kmind-xxx order number","findActivationCode":"Find Activation Code","pleaseNoteKMindProMustBindSiYuanAccount":"Note: KMind Pro must be bound to SiYuan account, please login to SiYuan account first","licenseTo":"KMind Pro version authorized to","subscriptionType":"Subscription Type:","expireTime":"Authorization Expiration Time:","refreshLicense":"Refresh License","haveQuestions":"Have questions? Please:","licenseSuccess":"KMind: Authorization verification successful","licenseExpired":"KMind: Authorization expired, please re-activate","kmindAuthorizationVerificationFailed":"KMind: Authorization verification failed, please re-activate","cloudAuthorizationVerificationFailed":"KMind: Cloud authorization verification failed, please re-activate","cloudAuthorizationVerificationSuccess":"KMind: Cloud authorization verification successful","pleaseInputOrderNumber":"Please enter order number","pleaseTryAgainAfter30s":"Please try again after 30s","ifTheOrderNumberIsCorrect":"If the order number is correct, the activation code will be sent to your email within 10 minutes, please check your email","networkErrorPleaseContactMe":"Network error, please contact me: kmind_app@outlook.com","pleaseInputLegalActivationCode":"Please enter a valid activation code","kmindActivationFailed":"KMind: Activation failed, please check network or contact me: kmind_app@outlook.com","kmindActivationSuccess":"KMind: Activation successful"},"trial":{"status":"Trial Status","current":"Current:","inTrial":"In trial","notTrial":"Not in trial","remainingLabel":"Remaining:","oneClickApplySevenDaysPro":"Start 7-day Pro trial","applying":"Applying for trial...","applySevenDays":"Apply for 7-day trial","trialCard":"Trial time card","trialCardPlaceholder":"Enter trial card code","redeem":"Redeem","trialType":"Trial type:","trialExpire":"Trial expires:","extendCardPlaceholder":"Enter extension card code","alreadyApplied":"Trial already applied","applied":"Trial started (7 days)","applyFailed":"Trial application failed","statusError":"Failed to fetch trial status","cardCodeRequired":"Please enter a trial card code","redeemSuccess":"Redeemed successfully, trial extended","redeemFailed":"Redemption failed, please try again later","redeemError":"Redemption failed","noRemaining":"0 days","daysHours":"{days} days {hours} hours","hours":"{hours} hours"},"stripe":{"intro":"For international users, you can pay with Stripe (USD) to purchase KMind Pro:","pleaseFillEmail":"Please fill in your email above (used to receive the activation code).","buyAnnual":"Buy Annual (Stripe)","buyV2":"Buy KMind2 Lifetime (Stripe)","afterPaymentEmail":"After payment, the activation code will be sent to your email automatically. If you don\'t receive it, use “Find Activation Code”.","needHelpEmail":"Need help? Email:","docs":"Docs:","telegram":"Join Telegram for support and updates:","openingCheckout":"Opening Stripe checkout...","orderCreated":"Order created: {orderId}. After payment, the activation code will be emailed. If not received, use “Find Activation Code” with this order id.","checkoutFailed":"Failed to create Stripe checkout, please try again later or contact me."},"addDocTreeKMind":{"title":"Create KMind Document Tree Mind Map","createDocTreeKmind":"Create KMind Document Tree Mind Map","createAboveDocTreeKmind":"Create KMind mindmap above","createBelowDocTreeKmind":"Create KMind mindmap below","versionWarning":"Warning: SiYuan version is lower than 3.1.8, document tree mind map feature may be unstable","inputPrompt":"Please enter document tree mind map name","confirmButton":"Confirm","cancelButton":"Cancel","inputPlaceholder":"Please enter document tree mind map name","defaultName":"Untitled Mind Map","nameEmpty":"Name cannot be empty","fileName":"Document Name","cannotInputSpecialSymbols":"File name cannot contain special characters \\\\/:*?\\"<>|","createSuccess":"Document tree mind map created successfully","createFailed":"Failed to create document tree mind map: ","kmindProNotActivated":"KMind Pro is not activated","kmindLicenseInfo":"KMind License Information","upgradeToVip":"Upgrade to Pro"},"menu":{"globalConfig":"KMind Global Config","themeDesigner":"Theme Designer","kmindPro":"- KMind PRO -","toggleMocMode":"Toggle MOC Mode","enableMocMode":"MOC Mode Enabled","disableMocMode":"MOC Mode Disabled"},"globalConfig":{"overview":"Overview","docTreeMindmap":"Document Tree Mindmap","dockMindmap":"Dock Mindmap","widgetMindmap":"Widget Mindmap","historyConfig":"History Configuration","historyConfigTip":"Create history records for all existing kmind files, allowing you to view and restore previous versions.","startCreate":"Start Creating","creating":"Creating","noKmindForHistory":"No mind maps found for history creation","creatingHistory":"Creating history records...","historyCreatedSuccess":"History creation completed! Successfully created {count} history records","historyCreatedWithError":"History creation completed! Success: {success}, Failed: {fail}","globalConfigTab":"Global Config","leftClickRightDrag":"Left Click Select, Right Click Drag","leftClickRightDragTip":"When enabled: Left click to select nodes, right click to drag canvas","enableMobileEdit":"Enable Mobile Document Tree Mindmap Editing","mobileEditWarning":"If cloud sync is enabled, please ensure sync is complete before editing mindmaps to avoid conflicts","showDesktopToolbar":"Show Floating Toolbar on Desktop","loadDockIcon":"Show Dock Icon","loadDockIconTip":"Turn off to hide the Dock icon (takes effect after restarting SiYuan)","loadDockIconNeedRestart":"Dock icon setting saved. Please restart SiYuan to apply.","siyuanHyperlinkLeftClickAction":"SiYuan hyperlink left-click","siyuanHyperlinkLeftClickActionTip":"Choose the default action when left-clicking a SiYuan hyperlink","openSiyuanTab":"Open in current tab","openSiyuanTabRight":"Open in right tab","openSiyuanTabBottom":"Open in bottom tab","openSiyuanFloat":"Open SiYuan float window","openKmindConfigTab":"Open KMind Config","mocConfigTab":"MOC Config","autoZenMode":"Auto Enter Zen Mode","autoReadOnlyMode":"Auto Enter Read-only Mode","newKmindConfigTab":"New KMind Config","switchToTheme":"Switch to Theme","switchToLayout":"Switch to Layout","siyuanToKmindConfigTab":"SiYuan to KMind Config","mocDefaultTheme":"Default MOC Theme","mocDefaultLayout":"Default MOC Layout","myTheme":"My Themes","classic":"Classic","dark":"Dark","simple":"Simple","configSaved":"Config Saved","configSavedNeedReload":"Config saved. Please reopen KMind mindmap to apply.","shortcutConfigTab":"Shortcut Keys","shortcutConfigTip":"Only takes effect when KMind view is active; it will not intercept SiYuan/browser shortcuts when inactive.","shortcutUnsavedTip":"Shortcut changes are not applied until you save.","shortcutConfigSaved":"Shortcut keys saved and applied immediately","shortcutReservedTitle":"Reserved Keys (not editable)","shortcutDocTreeOnlyTitle":"Doc-tree only:","shortcutDocTreeOnlyBadge":"Doc-tree only","shortcutCategoryNode":"Node","shortcutCategoryCanvas":"Canvas / View","shortcutCategoryOutline":"Outline","shortcutCategoryTool":"Tools","shortcutCategoryFile":"File / Search","shortcutDefault":"Default","shortcutUsingDefault":"Default","shortcutDisabled":"Disabled","shortcutSave":"Save","shortcutResetAll":"Reset All","shortcutDisable":"Disable","shortcutRestoreDefault":"Restore Default","shortcutRecord":"Record Shortcut","shortcutRecording":"Recording…","shortcutCancelRecord":"Cancel (Esc)","shortcutRecordingHint":"Press the shortcut you want to bind (Esc to cancel)","shortcutInvalidKey":"This key combination is not supported","shortcutReservedKeyWarn":"This is a reserved key (Ctrl/Cmd+A/C/V/X/Z/Y) and cannot be used","shortcutConflictTitle":"Shortcut Conflict","shortcutConflictCannotSave":"Conflicts detected. Cannot save.","shortcutJumpTo":"Jump to:","shortcutColumnCommand":"Command","shortcutColumnKeys":"Shortcut Keys","shortcutColumnOps":"Actions","mocSectionTitle":"MOC Interactions","enableMocInlineDocIcon":"Enable inline doc icon","enableMocInlineDocIconTip":"In MOC mode, show an inline \\"Open Doc\\" icon after node text","mocInlineHoverDuration":"Hover Duration (ms)","mocInlineHoverDurationTip":"Show SiYuan float window after hovering over the inline icon for this duration","mocInlineOpenPosition":"Click Open Position","openRight":"Right (recommended)","openBottom":"Bottom","openCurrent":"Current Tab","logicalStructure":"Logical Structure","logicalStructureLeft":"Left Logical Structure","mindMap":"Mind Map","organizationStructure":"Organization Chart","catalogOrganization":"Catalog Organization","timeline":"Timeline","timeline2":"Timeline 2","verticalTimeline":"Vertical Timeline","fishbone":"Fishbone","radial":"Radial Layout","theme_classic":"Classic","theme_blackHumour":"Black Humour","theme_lateNightOffice":"Late Night Office","theme_blackGold":"Black Gold","theme_orangeJuice":"Orange Juice","theme_neonLamp":"Neon Lamp","theme_darkNightLceBlade":"Dark Night Ice Blade","theme_dark":"Dark","theme_dark2":"Dark 2","theme_dark3":"Dark 3","theme_dark4":"Dark 4","theme_dark5":"Dark 5","theme_dark6":"Dark 6","theme_dark7":"Dark 7","theme_default":"Default","theme_skyGreen":"Sky Green","theme_classicGreen":"Classic Green","theme_classicBlue":"Classic Blue","theme_blueSky":"Blue Sky","theme_brainImpairedPink":"Brain Impaired Pink","theme_earthYellow":"Earth Yellow","theme_freshGreen":"Fresh Green","theme_freshRed":"Fresh Red","theme_romanticPurple":"Romantic Purple","theme_pinkGrape":"Pink Grape","theme_mint":"Mint","theme_gold":"Gold VIP","theme_vitalityOrange":"Vitality Orange","theme_greenLeaf":"Green Leaf","theme_minions":"Minions","theme_simpleBlack":"Simple Black","theme_courseGreen":"Course Green","theme_coffee":"Coffee","theme_redSpirit":"Red Spirit","theme_avocado":"Avocado","theme_autumn":"Autumn","theme_oreo":"Oreo","theme_shallowSea":"Shallow Sea","theme_lemonBubbles":"Lemon Bubbles","theme_rose":"Rose","theme_seaBlueLine":"Sea Blue Line","theme_morandi":"Morandi","theme_cactus":"Cactus","theme_classic2":"Classic 2","theme_classic3":"Classic 3","theme_classic4":"Classic 4","theme_classic5":"Classic 5","theme_classic6":"Classic 6","theme_classic7":"Classic 7","theme_classic8":"Classic 8","theme_classic9":"Classic 9","theme_classic10":"Classic 10","theme_classic11":"Classic 11","theme_classic12":"Classic 12","theme_classic13":"Classic 13","theme_classic14":"Classic 14","theme_classic15":"Classic 15"},"themeDesigner":{"title":"Theme Designer","currentTheme":"Current Theme","loadTheme":"Load Theme","saveTheme":"Save Theme","exportTheme":"Export Theme","importTheme":"Import Theme","themeName":"Theme Name","themeDescription":"Theme Description","author":"Author","backgroundColor":"Background Color","lineColor":"Line Color","rootNode":"Root Node","secondNode":"Second Node","otherNode":"Other Nodes","childNode":"Child Nodes","generalizationNode":"Generalization Node","newTheme":"New","resetTheme":"Reset","generalStyle":"General Style","backgroundSettings":"Background Settings","lineStyle":"Line Style","lineStyleType":"Line Style Type","straight":"Straight","curve":"Curve","direct":"Direct","brace":"Brace","roundedCornerSize":"Rounded Corner Size","roundedCornerTip":"Only applies to straight line style, supports logicalStructure, mindMap, verticalTimeline layouts","nodeSpacing":"Node Spacing","nodeMargin":"Node Margin","marginX":"Horizontal Margin","marginY":"Vertical Margin","fillColor":"Fill Color","borderColor":"Border Color","textColor":"Text Color","fontSize":"Font Size","borderWidth":"Border Width","paddingX":"Horizontal Padding","paddingY":"Vertical Padding","lineWidth":"Line Width","nodeShape":"Node Shape","rectangle":"Rectangle","roundedRectangle":"Rounded Rectangle","ellipse":"Ellipse","circle":"Circle","diamond":"Diamond","parallelogram":"Parallelogram","preview":"Preview","saveSuccess":"Save Successful","saveFailed":"Save Failed","exportSuccess":"Export Successful","exportFailed":"Export Failed","importSuccess":"Import Successful","importFailed":"Import Failed","themeNameRequired":"Please enter theme name","confirmDelete":"Confirm delete theme","deleteSuccess":"Delete Successful","deleteFailed":"Delete Failed","pleaseSelectTheme":"Please select a theme","myThemes":"My Themes","shareTheme":"Share Theme","shareToGallery":"Share to Theme Gallery","updateShare":"Update Share","viewShare":"View Share","copyTheme":"Copy Theme","renameTheme":"Rename Theme","deleteTheme":"Delete Theme","useTheme":"Use This Theme","noThemes":"No custom themes","searchTheme":"Search Theme","createdAt":"Created","updatedAt":"Updated","shareSuccess":"Theme shared successfully!","shareFailed":"Share failed, please retry","shareNotFound":"Share info not found","confirmUpdateShare":"Are you sure you want to update the shared theme?","updateShareTitle":"Update Confirmation","updateShareSuccess":"Theme updated successfully","updateShareFailed":"Update failed, please retry","copySuccess":"Copy Successful","copyFailed":"Copy Failed","renameSuccess":"Rename Successful","renameFailed":"Rename Failed","untitledTheme":"Untitled Theme","themeNameExists":"Theme name already exists, please use another name","saveBeforeNew":"Save current theme before creating new one?","tip":"Tip","saveAndNew":"Save and New","directNew":"Direct New","confirmReset":"Reset current theme to default style? All unsaved changes will be lost.","confirm":"Confirm","cancel":"Cancel","resetSuccess":"Theme has been reset to default style","themeExistsOverwrite":"Theme \\"{name}\\" already exists, overwrite?","overwrite":"Overwrite","copy":"Copy","themeCopied":"Theme copied, please rename and save","importFailedFormat":"Theme import failed, please check file format","confirmDeleteCurrent":"Delete current theme?","warning":"Warning","themeAlreadyShared":"This theme has been shared to the cloud","update":"Update","currentVersion":"Current Version","newVersion":"New Version","inputChangeLog":"Please enter the update description (within 200 characters)","updateTheme":"Update Theme","changeLogPlaceholder":"e.g.: Optimized color scheme, adjusted node styles...","changeLogTooLong":"Update description cannot exceed 200 characters","basicStyle":"Basic Style","shape":"Shape","borderRadius":"Border Radius","textStyle":"Text Style","fontFamily":"Font Family","microsoftYahei":"Microsoft YaHei","songti":"SimSun","heiti":"SimHei","kaiti":"KaiTi","fontWeight":"Font Weight","normal":"Normal","bold":"Bold","bolder":"Bolder","lighter":"Lighter","fontStyle":"Font Style","italic":"Italic","borderStyle":"Border Style","pleaseSetThemeName":"Please set theme name first","pleaseAuthorizeFirst":"Please authorize before sharing theme","authorizationExpired":"Authorization expired, please re-authorize","generatePreviewFailed":"Failed to generate theme preview, please retry","getUploadUrlFailed":"Failed to get upload URL","uploadCoverFailed":"Failed to upload cover image","uploadThemeDataFailed":"Failed to upload theme data","publishThemeFailed":"Failed to publish theme","updateFailed":"Update failed","updateSuccess":"Theme updated successfully!","updateFailedRetry":"Update failed, please retry","themeNameEmpty":"Theme name cannot be empty","themeMissingId":"Theme missing unique identifier","previewNotFound":"Theme preview not found, please save theme in theme designer first","readPreviewFailed":"Failed to read theme preview, please save theme in theme designer first","pleaseAuthorize":"Please authorize first","pleaseAuthorizeToView":"Please authorize before viewing share status","generatingPreview":"Generating theme preview...","gettingUploadUrl":"Getting upload URL...","uploadingCover":"Uploading cover image...","uploadingThemeData":"Uploading theme data...","publishingTheme":"Publishing theme...","readingPreview":"Reading theme preview...","processingPreview":"Processing theme preview...","uploadingNewCover":"Uploading new cover...","updatingThemeInfo":"Updating theme info...","updatingTheme":"Updating theme..."},"cloudThemes":{"title":"Cloud Theme Gallery","subtitle":"Explore and share beautiful mind map themes","loading":"Loading themes...","noThemes":"No themes available","author":"Author","version":"Version","views":"Views","createdAt":"Created","updatedAt":"Updated","lastUpdate":"Last Update","latestChangeLog":"Latest Change Log","versionHistory":"Version History","latest":"Latest","import":"Import Theme","downloadJson":"Download JSON","serviceUnavailable":"Cloud service is unavailable","loadError":"Failed to load theme list","loadDetailError":"Failed to load theme details","noThemeData":"Theme data not available","importSuccess":"Theme imported successfully","importError":"Failed to import theme","downloadSuccess":"Download successful","downloadError":"Download failed"},"shortcutCommands":{"EDIT_NODE":"Edit node","QUICK_EDIT_NODE":"Quick edit node (select all)","INSERT_CHILD_NODE":"Insert child node","INSERT_NODE":"Insert sibling node","INSERT_PARENT_NODE":"Insert parent node","UP_NODE":"Move node up","DOWN_NODE":"Move node down","ADD_GENERALIZATION":"Insert summary","TOGGLE_EXPAND":"Expand / collapse node","REMOVE_NODE":"Delete node","REMOVE_CURRENT_NODE":"Delete current node only","ADD_SIYUAN_PAGE":"Node sub-document","BIND_PROTYLE_BLOCK_ID":"Bind SiYuan block ID","TOGGLE_TODO":"Toggle TODO","COPY_NODE_HYPERLINK":"Copy node hyperlink","KMIND_COPY_CUR_NODE_TO_PNG":"Copy node as image","KMIND_COPY_NODE_MIRROR_BLOCK":"Copy node mirror block","RESET_LAYOUT":"Auto layout","RETURN_CENTER":"Center to root","VIEW_ENLARGE":"Zoom in","VIEW_NARROW":"Zoom out","VIEW_FIT":"Fit canvas","SEARCH":"Search & replace","SAVE":"Save","TOGGLE_OUTLINE_SIDEBAR":"Toggle outline sidebar","TOGGLE_OUTLINE_EDIT":"Toggle outline fullscreen edit","TOGGLE_ZEN_MODE":"Toggle zen mode","TOGGLE_READONLY_MODE":"Toggle read-only / edit mode","TOGGLE_MINI_MAP":"Toggle mini map","SHOW_NOTE_EDITOR":"Note","SHOW_NODE_TAG":"Tag","SHOW_NODE_LINK":"Hyperlink","SHOW_NODE_IMAGE":"Image","SHOW_NODE_ICON":"Icon","CREATE_ASSOCIATIVE_LINE":"Add associative line","OPEN_FORMULA_SIDEBAR":"Formula","TOGGLE_PAINTER":"Format painter"},"changelog":{"v2135":{"title":"Update Summary","url":"https://docs.kmind.app/en/changelog/kmind-v2135-adds-pro-trial-function-z2q2w2a.html","lines":["Added one-click Pro trial (SiYuan account login required)","Added multi-root frames: manage multiple root nodes / SiYuan block nodes with adjustable flowing animation","Added a shortcut to toggle read-only mode","Improved mirror block performance (incremental updates by default) and node dragging interaction","Fixed root position shifting on canvas resize in multi-root mode and occasional node content misalignment","Fixed an issue where the plugin could affect PDF jumps; improved SiYuan block node dragging with a drag handle"]},"v2134":{"title":"Update Summary","url":"https://docs.kmind.app/en/changelog/kmind-v2134-optimize-save-failure-prompt.html","lines":["Optimized the save failure prompt when opening the same mind map"]},"v2133":{"title":"Update Summary","url":"https://docs.kmind.app/en/changelog/kmind-v2133-epic-update-supports-dragging-siyuan-blocks-directly-into-the-map-8l5g.html","lines":["Support dragging SiYuan documents directly into the map: drop on blank to create new root node, drop on node to update its SiYuan hyperlink","Support dragging SiYuan blocks directly into the map: hold Shift to create child node and render as SiYuan block, otherwise create SiYuan block area","Added KMind Dock icon visibility configuration","Added built-in global shortcut key configuration, ready to use: Zen mode, hyperlinks, etc., with customizable settings","Fixed blank outline expansion and import/export issues in multi-root mode","Optimized console debugger output, shortcut hints in map sync when global shortcuts are modified"]},"v2131":{"title":"Update Summary","url":"https://docs.kmind.app/en/changelog/kmind-v2131-multiple-roots-support-different-layouts-13jlro.html","lines":["Support setting different theme & layout for each root individually","Optimized the interaction for dragging child nodes to become new root nodes","Added root node collapse functionality","Added new delete logic for root nodes: first Del key deletes child nodes, second Del deletes the root node","Added global configuration for SiYuan hyperlink icon click behavior"]},"v2130":{"title":"Update Summary","url":"https://docs.kmind.app/en/changelog/kmind-v2130-supports-multiroot-mode-1gp6gm.html","lines":["Support multi-root mode, double-click on blank canvas to create additional root nodes","Right-click nodes to bind and render SiYuan blocks","Drag child nodes to blank canvas for more than 2 seconds to turn them into new root nodes","Use node TODO feature to create lightweight TODO root nodes","Use node sub-document feature to quickly create SiYuan sub-documents, practicing lightweight MOC"]},"v2120":{"title":"Update Summary","url":"https://docs.kmind.app/en/changelog/kmind-v2120-node-supports-direct-rendering-of-siyuan-blocks-and-supports-quick-reference-to-siyuan-documents-vn9kt.html","lines":["Document tree map nodes now support direct rendering of SiYuan blocks","Support (( and {{ shortcuts to quickly reference SiYuan documents while editing","SiYuan document tree right-click menu now supports inserting sibling KMind maps","Added chemical equation support for nodes","Enhanced one-click SiYuan document to KMind map conversion"]},"v2110":{"title":"Update Summary","url":"https://docs.kmind.app/en/changelog/kmind-v2110-adds-new-bracket-connection-style-z2rs8y6.html","lines":["Add a new bracket connection line style (available for specific layouts, works best with rainbow lines)","Theme Designer now supports bracket line style and node margin settings","Import dialog now supports pasting Markdown text directly and improves Markdown import behavior"]},"v2102":{"title":"Update Summary","url":"https://docs.kmind.app/en/changelog/kmind-v2102-fix-inline-slash-and-dom-popup-shortcuts.html","lines":["Fix an issue where typing `/` during inline node editing would trigger the expand/collapse shortcut instead of being entered as text","Fix an issue where `Ctrl+A` and other editing shortcuts did not work in the DOM-mode popup editor"]},"v2101":{"title":"Update Summary","lines":["Fix occasional shortcut key failures caused by MOC mode","Fix i18n warnings and improve performance"]},"v2100":{"title":"Update Summary","url":"https://docs.kmind.app/en/changelog/kmind-v2100-new-moc-mode-z1xgf5m.html","htmlLines":["<p>Major Release: New MOC Mode!</p>","<div style=\'margin: 10px 0;\'>"," <p style=\'margin: 8px 0;\'><b>New Features:</b></p>"," <p style=\'margin: 4px 0 4px 16px;\'>• MOC Mode - Display document tree as mind map with one-to-one node-document mapping</p>"," <p style=\'margin: 4px 0 4px 16px;\'>• Direct copy node images</p>"," <p style=\'margin: 4px 0 4px 16px;\'>• Global read-only mode - Prevent accidental modifications</p>","</div>","<div style=\'margin: 10px 0;\'>"," <p style=\'margin: 8px 0; color: #67C23A;\'>💡 Try Theme Designer to create your custom theme!</p>"," <a href=\'javascript:void(0)\' style=\'display:inline-block;padding:6px 12px;border:1px solid #E6A23C;color:#E6A23C;border-radius:4px;text-decoration:none;margin:6px 8px 6px 0;\' onclick=\\"window.kmindApi && window.kmindApi.plugin && window.kmindApi.plugin.openConfigDialog && window.kmindApi.plugin.openConfigDialog(\'Theme Designer\',\'ThemeDesigner\')\\">Open Theme Designer</a>"," <a href=\'javascript:void(0)\' style=\'display:inline-block;padding:6px 12px;border:1px solid #409EFF;color:#409EFF;border-radius:4px;text-decoration:none;margin:6px 0;\' onclick=\\"window.kmindApi && window.kmindApi.plugin && window.kmindApi.plugin.openConfigDialog && window.kmindApi.plugin.openConfigDialog(\'KMind Global Configuration\',\'GlobalConfig\')\\">Open Global Config</a>","</div>","<div style=\'margin-top: 10px;\'>"," <a href=\'https://docs.kmind.app/en/changelog/kmind-v2100-new-moc-mode-z1xgf5m.html\' target=\'_blank\' rel=\'noopener\' style=\'color:#909399;font-size:12px;text-decoration:none;\'>View full changelog →</a>","</div>"]},"v292":{"title":"Update Summary","url":"https://docs.kmind.app/en/changelog/kmind-v292.html","htmlLines":["<p><b>v2.9.2</b> released: optimize floating toolbar experience and fix issues.</p>","<p>New: one-click setup entry, improved mobile experience.</p>","<a href=\'javascript:void(0)\' style=\'display:inline-block;padding:4px 10px;border:1px solid #409EFF;color:#409EFF;border-radius:4px;text-decoration:none;margin-top:6px;\' onclick=\\"window.kmindApi && window.kmindApi.plugin && window.kmindApi.plugin.openConfigDialog && window.kmindApi.plugin.openConfigDialog(\'KMind Global Configuration\',\'GlobalConfig\')\\">Open KMind Global Configuration</a>"]},"v281":{"title":"Update Summary","url":"https://kmind.app/en/changelog/kmind-v281-optimizes-the-floating-toolbar-experience-and-adds-global-configuration-68gfd.html","lines":["Optimize floating toolbar experience, add global configuration, add removing SiYuan PDF link","Add global configuration to control desktop floating toolbar visibility (enabled by default)","Support removing SiYuan PDF hyperlink: Right click -> Remove link","Refactor global configuration settings page"],"actions":[{"type":"openGlobalConfig","label":"Open KMind Global Config"}]},"v280":{"title":"Update Summary","url":"https://s2.loli.net/2025/04/19/9VbGhuqtMQHgoBI.webp","lines":["Add Intuition button, jump to PDF annotations, enable doc tree mindmap editing on mobile","Optimize data structure, reduce about 30% storage, improve mobile support","Open Global Config to explore more features"],"actions":[{"type":"openGlobalConfig","label":"Open KMind Global Config"}]},"v270":{"title":"Update Summary","lines":["General improvements and bug fixes"]},"v261":{"title":"Update Summary","url":"https://docs.kmind.app/en/changelog/kimind-v261-global-configuration-of-one-click-transition-map-1hoxvv.html","lines":["Add global configuration: one-click transition to KMind"],"actions":[{"type":"openGlobalConfig","label":"Open KMind Global Config"}]},"v260":{"title":"Update Summary","url":"https://docs.kmind.app/changelog/v260.html","lines":["Add configurations, various optimizations, and bug fixes"],"actions":[{"type":"openGlobalConfig","label":"See more in Global Config"}]},"v250":{"title":"Update Summary","url":"https://siyuannote.space/x/20241111153508-dx2yrwp","lines":["Add mindmap history; support widget, dock, and doc tree mindmaps","Add data protection strategy to prevent empty data writes","Add global history configuration and overview (pro). Menu: Top -> KMind -> Global Config"],"actions":[{"type":"openGlobalConfig","label":"One-click setup (free)"}]}}}')},"98c1":function(e,t,i){},b7ef:function(e,t,i){"use strict";var n=i("23e7"),a=i("da84"),o=i("d066"),r=i("5c6c"),s=i("9bf2").f,l=i("1a2d"),c=i("19aa"),d=i("7156"),m=i("e391"),h=i("cf98"),u=i("0d26"),p=i("83ab"),g=i("c430"),f="DOMException",v=o("Error"),y=o(f),b=function(){c(this,w);var e=arguments.length,t=m(e<1?void 0:arguments[0]),i=m(e<2?void 0:arguments[1],"Error"),n=new y(t,i),a=new v(t);return a.name=f,s(n,"stack",r(1,u(a.stack,1))),d(n,this,b),n},w=b.prototype=y.prototype,T="stack"in new v(f),C="stack"in new y(1,2),D=y&&p&&Object.getOwnPropertyDescriptor(a,f),S=!!D&&!(D.writable&&D.configurable),k=T&&!S&&!C;n({global:!0,constructor:!0,forced:g||k},{DOMException:k?b:y});var _=o(f),x=_.prototype;if(x.constructor!==_)for(var O in g||s(x,"constructor",r(1,_)),h)if(l(h,O)){var N=h[O],M=N.s;l(_,M)||s(_,M,r(6,N.c))}},cf98:function(e,t,i){"use strict";e.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}},e1bd:function(e,t,i){"use strict";i.d(t,"a",(function(){return r})),i.d(t,"b",(function(){return s}));const n="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let a=e=>crypto.getRandomValues(new Uint8Array(e)),o=(e,t,i)=>{let n=(2<<Math.log2(e.length-1))-1,a=-~(1.6*n*t/e.length);return(o=t)=>{let r="";while(1){let t=i(a),s=0|a;while(s--)if(r+=e[t[s]&n]||"",r.length>=o)return r}}},r=(e,t=21)=>o(e,0|t,a),s=(e=21)=>{let t="",i=crypto.getRandomValues(new Uint8Array(e|=0));while(e--)t+=n[63&i[e]];return t}}}]); |