diff --git a/i18n.json b/i18n.json new file mode 100644 index 0000000..f6a2477 --- /dev/null +++ b/i18n.json @@ -0,0 +1,2015 @@ +{ + "default": "zh_CN", + "languages": [ + { + "code": "zh_CN", + "name": "简体中文 (中国)", + "lang": { + "need_api_key": "需要API Key", + "dont_need_api_key": "不需要API Key(不稳定)", + "prompt": "提示词", + "negative_prompt": "反向词", + "txt2img": "文生图", + "img2img": "图生图", + "please_enter_new_keyword": "请输入新关键词", + "local_language": "本地语言", + "increase_weight_add_parentheses": "增加关键词权重:叠加()", + "increase_weight_subtract_parentheses": "增加关键词权重:减少()", + "decrease_weight_add_brackets": "减弱关键词权重:叠加[]", + "decrease_weight_subtract_brackets": "减弱关键词权重:减少[]", + "translate_keyword_to_local_language": "翻译关键词到本地语言", + "copy_to_clipboard": "复制到剪贴板", + "disable_keyword": "禁用关键词", + "enable_keyword": "启用关键词", + "copy_keywords_to_clipboard": "复制所有关键词到剪贴板", + "translate_keywords_to_local_language": "翻译所有关键词到本地语言", + "translate_keyword_to_english": "翻译为英文", + "translate_all_keywords_to_english": "翻译所有非英文的关键词到英文", + "auto_translate_to_english": "输入新关键词后自动翻译到英文", + "auto_translate_to_local_language": "输入新关键词后自动翻译到本地语言", + "translate_api": "翻译接口", + "history": "历史记录", + "clear_history": "清除历史记录", + "clear_history_confirm": "确定要清除历史记录吗?", + "clear_history_success": "历史记录已清除", + "max_history_count": "最大历史记录数", + "favorite": "收藏列表", + "add_to_favorite": "添加到收藏", + "remove_from_favorite": "从收藏中移除", + "use": "使用", + "click_to_edit": "鼠标左键点击进行编辑", + "drop_to_order": "鼠标左键按住拖动进行排序", + "enter_to_save": "按回车键保存关键词", + "enter_to_add": "按回车键添加关键词", + "translate_api_not_found": "翻译API未找到", + "translate_language_not_support": "翻译语言不支持", + "translate_api_not_support": "翻译API不支持", + "unset_name": "未设置名称", + "no_history": "暂无历史记录", + "get_history_error": "获取历史记录失败", + "no_favorite": "暂无收藏", + "get_favorite_error": "获取收藏失败", + "hide_default_input_box": "隐藏默认输入框", + "show_default_input_box": "显示默认输入框", + "translate_test": "翻译测试", + "close": "关闭", + "save": "保存", + "delete_all_keywords": "删除所有关键词", + "delete_all_keywords_confirm": "确定要删除所有关键词吗?", + "whether_to_enable_tooltip": "是否启用每个功能的提示框,如果你已经熟练掌握本扩展的所有功能,可以取消勾选", + "delete_all_history": "删除所有历史记录", + "delete_all_history_confirm": "确定要删除所有历史记录吗?", + "please_enter_the_content_here": "请输入内容", + "not_api_key_desc": "免费的翻译接口不稳定,并不是每个接口都能在你的电脑中使用,请尽量申请api key使用稳定的官方接口", + "setting_desc": "设置:翻译API、自动翻译、显示/隐藏...", + "line_break_character": "换行符号", + "tagcomplete_translate_desc": "

使用 DominikDoom/a1111-sd-webui-tagcomplete 扩展中的 danbooru.csv 增强翻译功能,以达到节省网络请求、精准翻译的目的。

点击刷新按钮后,将扫描以下路径的csv文件: extensions\\a1111-sd-webui-tagcomplete\\tags、extensions\\sd-webui-prompt-all-in-one\\tags。

你可以前往git仓库 Physton/sd-webui-prompt-all-in-one-assets/tags 下载csv文件。

", + "test": "测试", + "refresh": "刷新", + "not_enable": "不启用", + "translate_result": "{0} 的翻译结果是:{1}", + "not_found_csv_file": "没有找到csv文件", + "theme_extension": "主题:扩展插件样式", + "is_remove_space": "是否去除每个关键词逗号后的空格。
勾选后将自动去除空格(不便阅读)。
取消勾选则保留1个空格(影响TOKEN计数)。", + "theme": "主题", + "enhance": "增强", + "only_csv_on_auto": "自动翻译只使用CSV翻译(不使用网络翻译),手动点击翻译按钮才使用CSV加网络翻译。", + "one_translate_all_keywords": "一键翻译所有关键词", + "auto_translate": "输入新关键词后自动翻译", + "is_remove_last_comma": "是否去除Prompt最后的一个逗号。
勾选后Prompt输出为“aaa,bbb,ccc”。
取消勾选Prompt输出为“aaa,bbb,ccc,”。", + "is_keep_weight_zero": "是否保留关键词权重为0的格式。
勾选后关键词保留格式为“(text:0)”。
取消勾选将不保留格式为“test”。", + "is_keep_weight_one": "是否保留关键词权重为1的格式。
勾选后关键词保留格式为“(text:1)”。
取消勾选将不保留格式为“test”。", + "prompt_format": "Prompt格式", + "tagcomplete_translate_desc2": "选择了错误的CSV文件,将导致翻译结果为空,或者为“0”。更换文件后,请点击下方的测试按钮,然后检查翻译的结果是否正确的显示了你的本地语言。", + "dblclick_to_disable": "鼠标双击禁用/启用关键词", + "batch_operation": "批量操作", + "success": "成功!", + "failed": "失败!", + "packages_desc": "检测到部分python包没有安装或者未安装成功,你需要点击尝试重新安装。所有包安装成功后,所有功能才能够正常使用。
如果点击安装按钮后,还是无法成功安装。你需要手动复制命令并在终端执行。", + "installed": "已安装", + "not_install": "未安装", + "install": "安装", + "packages_installing": "开始安装......如需查询详细安装日志,请前往WebUI控制台查看。安装完成后,本窗口将自动关闭!", + "today_not_show": "今日不再显示本窗口", + "free": "免费", + "apply_for_free": "申请后免费使用", + "chatgpt_prompts_preset": "StableDiffusion是一款利用深度学习的文生图模型,支持通过使用提示词来产生新的图像,描述要包含或省略的元素。\n我在这里引入StableDiffusion算法中的Prompt概念,又被称为提示符。\n下面的prompt是用来指导AI绘画模型创作图像的。它们包含了图像的各种细节,如人物的外观、背景、颜色和光线效果,以及图像的主题和风格。这些prompt的格式经常包含括号内的加权数字,用于指定某些细节的重要性或强调。例如,\"(masterpiece:1.5)\"表示作品质量是非常重要的,多个括号也有类似作用。此外,如果使用中括号,如\"{blue hair:white hair:0.3}\",这代表将蓝发和白发加以融合,蓝发占比为0.3。\n以下是用prompt帮助AI模型生成图像的例子:masterpiece,(bestquality),highlydetailed,ultra-detailed,cold,solo,(1girl),(detailedeyes),(shinegoldeneyes),(longliverhair),expressionless,(long sleeves),(puffy sleeves),(white wings),shinehalo,(heavymetal:1.2),(metaljewelry),cross-lacedfootwear (chain),(Whitedoves:1.2)\n\n仿照例子,给出一套详细描述以下内容的prompt。直接开始给出prompt不需要用自然语言描述:", + "use_chatgpt_gen_prompts": "使用ChatGPT生成Prompt", + "input_image_desc": "请输入图片描述,例如:一只猫坐在建筑物顶部,非常高清、非常真实的照片。", + "api_config": "API配置", + "image_desc": "图片描述", + "preset": "预设", + "ai_one": "发给AI的第一句话", + "ai_two": "发给AI的第二句话", + "restore_to_default": "恢复到系统默认", + "generate": "生成", + "generate_result": "生成结果", + "is_required": "{0} 必须输入!", + "is_not_dict": "{0} 必须是字典!", + "no_response_from": "没有从 {0} 收到返回内容!", + "request_error": "{0} 请求错误!", + "response_is_empty": "{0} 返回内容为空!", + "response_error": "{0} 返回内容错误!", + "install_success": "{0} 安装成功!", + "install_failed": "Error: {0} 安装失败!", + "translate_text_is_empty": "翻译文本为空!", + "about_desc": "关于、更新、帮助、文档", + "version": "版本", + "unknown_version": "未知版本", + "has_new_version": "有新的版本,请及时更新", + "wiki_desc": "安装教程、功能详解、使用方法、常见问题等等,详见:" + } + }, + { + "code": "zh_HK", + "name": "繁體中文 (中國香港)", + "lang": { + "need_api_key": "需要API Key", + "dont_need_api_key": "唔使API Key(唔太可靠)", + "prompt": "提示詞", + "negative_prompt": "反向詞", + "txt2img": "文生圖", + "img2img": "圖生圖", + "please_enter_new_keyword": "請輸入新關鍵詞", + "local_language": "本地語言", + "increase_weight_add_parentheses": "增加關鍵詞權重:疊加()", + "increase_weight_subtract_parentheses": "增加關鍵詞權重:減少()", + "decrease_weight_add_brackets": "減弱關鍵詞權重:疊加[]", + "decrease_weight_subtract_brackets": "減弱關鍵詞權重:減少[]", + "translate_keyword_to_local_language": "翻譯關鍵詞到本地語言", + "copy_to_clipboard": "複製到剪貼板", + "disable_keyword": "禁用關鍵詞", + "enable_keyword": "啟用關鍵詞", + "copy_keywords_to_clipboard": "複製所有關鍵詞到剪貼板", + "translate_keywords_to_local_language": "翻譯所有關鍵詞到本地語言", + "translate_keyword_to_english": "翻譯為英文", + "translate_all_keywords_to_english": "翻譯所有非英文的關鍵詞到英文", + "auto_translate_to_english": "輸入新關鍵詞後自動翻譯到英文", + "auto_translate_to_local_language": "輸入新關鍵詞後自動翻譯到本地語言", + "translate_api": "翻譯接口", + "history": "歷史記錄", + "clear_history": "清除歷史記錄", + "clear_history_confirm": "確定要清除歷史記錄嗎?", + "clear_history_success": "歷史記錄已清除", + "max_history_count": "最大歷史記錄數", + "favorite": "收藏列表", + "add_to_favorite": "添加到收藏", + "remove_from_favorite": "從收藏中移除", + "use": "使用", + "click_to_edit": "滑鼠左鍵點擊進行編輯", + "drop_to_order": "滑鼠左鍵按住拖動進行排序", + "enter_to_save": "按回車鍵保存關鍵詞", + "enter_to_add": "按回車鍵添加關鍵詞", + "translate_api_not_found": "翻譯API未找到", + "translate_language_not_support": "翻譯語言唔支援", + "translate_api_not_support": "翻譯API唔支援", + "unset_name": "未設置名稱", + "no_history": "暫無歷史記錄", + "get_history_error": "獲取歷史記錄失敗", + "no_favorite": "暫無收藏", + "get_favorite_error": "獲取收藏失敗", + "hide_default_input_box": "隱藏預設輸入框", + "show_default_input_box": "顯示預設輸入框", + "translate_test": "翻譯測試", + "close": "關閉", + "save": "保存", + "delete_all_keywords": "刪除所有關鍵詞", + "delete_all_keywords_confirm": "確定要刪除所有關鍵詞嗎?", + "whether_to_enable_tooltip": "是否啟用每個功能的提示框,如果你已經熟悉使用本擴展的所有功能,可以取消勾選", + "delete_all_history": "刪除所有歷史記錄", + "delete_all_history_confirm": "確定要刪除所有歷史記錄嗎?", + "please_enter_the_content_here": "請輸入內容", + "not_api_key_desc": "免費嘅翻譯接口唔太可靠,唔係每個接口都可以喺你嘅電腦中使用,請盡量申請api key使用穩定嘅官方接口", + "setting_desc": "設置:翻譯API、自動翻譯、顯示/隱藏...", + "line_break_character": "換行符號", + "tagcomplete_translate_desc": "

使用 DominikDoom/a1111-sd-webui-tagcomplete 擴展中的 danbooru.csv 增強翻譯功能,以達到節省網絡請求、精確翻譯的目的。

點擊刷新按鈕後,將掃描以下路徑的csv文件:extensions\\a1111-sd-webui-tagcomplete\\tags、extensions\\sd-webui-prompt-all-in-one\\tags。

你可以前往git倉庫 Physton/sd-webui-prompt-all-in-one-assets/tags 下載csv文件。

", + "test": "測試", + "refresh": "刷新", + "not_enable": "不啟用", + "translate_result": "{0} 的翻譯結果是:{1}", + "not_found_csv_file": "沒有找到csv文件", + "theme_extension": "主題:擴展插件樣式", + "is_remove_space": "是否去除每個關鍵詞逗號後的空格。
勾選後將自動去除空格(不便閱讀)。
取消勾選則保留1個空格(影響TOKEN計數)。", + "theme": "主題", + "enhance": "增強", + "only_csv_on_auto": "自動翻譯僅使用CSV翻譯(不使用網路翻譯),需手動點擊翻譯按鈕才會使用CSV加網路翻譯。", + "one_translate_all_keywords": "一鍵翻譯所有關鍵詞", + "auto_translate": "輸入新關鍵詞後自動翻譯", + "is_remove_last_comma": "是否去除Prompt最後的一個逗號。
勾選後Prompt輸出為“aaa,bbb,ccc”。
取消勾選Prompt輸出為“aaa,bbb,ccc,”。", + "is_keep_weight_zero": "是否保留關鍵詞權重為0的格式。
勾選後關鍵詞保留格式為“(text:0)”。
取消勾選將不保留格式為“test”。", + "is_keep_weight_one": "是否保留關鍵詞權重為1的格式。
勾選後關鍵詞保留格式為“(text:1)”。
取消勾選將不保留格式為“test”。", + "prompt_format": "Prompt格式", + "tagcomplete_translate_desc2": "選擇了錯誤的CSV文件,將導致翻譯結果為空或為“0”。更換文件後,請點擊下方的測試按鈕,然後檢查翻譯的結果是否正確地顯示了您的本地語言。", + "dblclick_to_disable": "滑鼠雙擊禁用/啟用關鍵字", + "batch_operation": "批量操作", + "success": "成功!", + "failed": "失敗!", + "packages_desc": "檢測到部分python包沒有安裝或者未安裝成功,你需要點擊嘗試重新安裝。所有包安裝成功後,所有功能才能夠正常使用。
如果點擊安裝按鈕後,還是無法成功安裝。你需要手動複製命令並在終端執行。", + "installed": "已安裝", + "not_install": "未安裝", + "install": "安裝", + "packages_installing": "開始安裝......如需查詢詳細安裝日誌,請前往WebUI控制台查看。安裝完成後,本窗口將自動關閉!", + "today_not_show": "今日不再顯示本窗口", + "free": "免費", + "apply_for_free": "申請後免費使用", + "chatgpt_prompts_preset": "StableDiffusion是一款利用深度學習的文生圖模型,支持通過使用提示詞來產生新的圖像,描述要包含或省略的元素。\n我在這裡引入StableDiffusion算法中的Prompt概念,又被稱為提示符。\n下面的prompt是用來指導AI繪畫模型創作圖像的。它們包含了圖像的各種細節,如人物的外觀、背景、顏色和光線效果,以及圖像的主題和風格。這些prompt的格式經常包含括號內的加權數字,用於指定某些細節的重要性或強調。例如,\"(masterpiece:1.5)\"表示作品質量是非常重要的,多個括號也有類似作用。此外,如果使用中括號,如\"{blue hair:white hair:0.3}\",這代表將藍髮和白髮加以融合,藍髮佔比為0.3。\n以下是用prompt幫助AI模型生成圖像的例子:masterpiece,(bestquality),highlydetailed,ultra-detailed,cold,solo,(1girl),(detailedeyes),(shinegoldeneyes),(longliverhair),expressionless,(long sleeves),(puffy sleeves),(white wings),shinehalo,(heavymetal:1.2),(metaljewelry),cross-lacedfootwear (chain),(Whitedoves:1.2)\n仿照例子,給出一套詳細描述以下內容的prompt。直接開始給出prompt不需要用自然語言描述:", + "use_chatgpt_gen_prompts": "使用ChatGPT生成Prompt", + "input_image_desc": "請輸入圖片描述,例如:一隻貓坐在建築物頂部,非常高清、非常真實的照片。", + "api_config": "API配置", + "image_desc": "圖片描述", + "preset": "預設", + "ai_one": "發給AI的第一句話", + "ai_two": "發給AI的第二句話", + "restore_to_default": "恢復到系統默認", + "generate": "生成", + "generate_result": "生成結果", + "is_required": "{0} 必須輸入!", + "is_not_dict": "{0} 必須是字典!", + "no_response_from": "沒有從 {0} 收到返回內容!", + "request_error": "{0} 請求錯誤!", + "response_is_empty": "{0} 返回內容為空!", + "response_error": "{0} 返回內容錯誤!", + "install_success": "{0} 安裝成功!", + "install_failed": "Error: {0} 安裝失敗!", + "translate_text_is_empty": "翻譯文本為空!", + "about_desc": "關於、更新、幫助、文件", + "version": "版本", + "unknown_version": "未知版本", + "has_new_version": "有新的版本,請及時更新", + "wiki_desc": "安裝教程、功能詳解、使用方法、常見問題等等,詳見:" + } + }, + { + "code": "zh_TW", + "name": "繁体中文 (中國台灣)", + "lang": { + "need_api_key": "需要API Key", + "dont_need_api_key": "不需要API Key(不穩定)", + "prompt": "提示詞", + "negative_prompt": "反向詞", + "txt2img": "文生圖", + "img2img": "圖生圖", + "please_enter_new_keyword": "請輸入新關鍵詞", + "local_language": "本地語言", + "increase_weight_add_parentheses": "增加關鍵詞權重:疊加()", + "increase_weight_subtract_parentheses": "增加關鍵詞權重:減少()", + "decrease_weight_add_brackets": "減弱關鍵詞權重:疊加[]", + "decrease_weight_subtract_brackets": "減弱關鍵詞權重:減少[]", + "translate_keyword_to_local_language": "翻譯關鍵詞到本地語言", + "copy_to_clipboard": "複製到剪貼板", + "disable_keyword": "禁用關鍵詞", + "enable_keyword": "啟用關鍵詞", + "copy_keywords_to_clipboard": "複製所有關鍵詞到剪貼板", + "translate_keywords_to_local_language": "翻譯所有關鍵詞到本地語言", + "translate_keyword_to_english": "翻譯為英文", + "translate_all_keywords_to_english": "翻譯所有非英文的關鍵詞到英文", + "auto_translate_to_english": "輸入新關鍵詞後自動翻譯到英文", + "auto_translate_to_local_language": "輸入新關鍵詞後自動翻譯到本地語言", + "translate_api": "翻譯接口", + "history": "歷史記錄", + "clear_history": "清除歷史記錄", + "clear_history_confirm": "確定要清除歷史記錄嗎?", + "clear_history_success": "歷史記錄已清除", + "max_history_count": "最大歷史記錄數", + "favorite": "收藏列表", + "add_to_favorite": "添加到收藏", + "remove_from_favorite": "從收藏中移除", + "use": "使用", + "click_to_edit": "滑鼠左鍵點擊進行編輯", + "drop_to_order": "滑鼠左鍵按住拖動進行排序", + "enter_to_save": "按回車鍵保存關鍵詞", + "enter_to_add": "按回車鍵添加關鍵詞", + "translate_api_not_found": "翻譯API未找到", + "translate_language_not_support": "翻譯語言不支持", + "translate_api_not_support": "翻譯API不支持", + "unset_name": "未設置名稱", + "no_history": "暫無歷史記錄", + "get_history_error": "獲取歷史記錄失敗", + "no_favorite": "暫無收藏", + "get_favorite_error": "獲取收藏失敗", + "hide_default_input_box": "隱藏默認輸入框", + "show_default_input_box": "顯示默認輸入框", + "translate_test": "翻譯測試", + "close": "關閉", + "save": "保存", + "delete_all_keywords": "刪除所有關鍵詞", + "delete_all_keywords_confirm": "確定要刪除所有關鍵詞嗎?", + "whether_to_enable_tooltip": "是否啟用每個功能的提示框,如果你已經熟練掌握本擴展的所有功能,可以取消勾選", + "delete_all_history": "删除所有歷史記錄", + "delete_all_history_confirm": "確定要删除所有歷史記錄嗎?", + "please_enter_the_content_here": "請輸入內容", + "not_api_key_desc": "免費的翻譯介面不穩定,不是每一個介面都能在你的電腦上使用,建議申請API Key以使用穩定的官方介面。", + "setting_desc": "設置:翻譯API、自動翻譯、顯示/隱藏...", + "line_break_character": "換行字元", + "tagcomplete_translate_desc": "

使用 DominikDoom/a1111-sd-webui-tagcomplete 擴展中的 danbooru.csv 增強翻譯功能,以達到節省網路請求、精確翻譯的目的。

點擊重新整理按鈕後,將掃描以下路徑的csv檔案:extensions\\a1111-sd-webui-tagcomplete\\tags、extensions\\sd-webui-prompt-all-in-one\\tags。

你可以前往git儲存庫 Physton/sd-webui-prompt-all-in-one-assets/tags 下載csv檔案。

", + "test": "測試", + "refresh": "重新整理", + "not_enable": "不啟用", + "translate_result": "{0} 的翻譯結果是:{1}", + "not_found_csv_file": "找不到csv檔案", + "theme_extension": "主題:擴充套件樣式", + "is_remove_space": "是否移除每個關鍵字逗號後的空格。
勾選後會自動移除空格(不易閱讀)。
取消勾選則保留 1 個空格(會影響 TOKEN 計數)。", + "theme": "主題", + "enhance": "增強", + "only_csv_on_auto": "自動翻譯僅使用CSV翻譯(不使用網路翻譯),需手動點擊翻譯按鈕才會使用CSV加網路翻譯。", + "one_translate_all_keywords": "一鍵翻譯所有關鍵詞", + "auto_translate": "輸入新關鍵詞後自動翻譯", + "is_remove_last_comma": "是否移除Prompt結尾的逗號。
勾選後Prompt輸出為“aaa,bbb,ccc”。
取消勾選Prompt輸出為“aaa,bbb,ccc,”。", + "is_keep_weight_zero": "是否保留關鍵詞權重為0的格式。
勾選後關鍵詞保留格式為“(text:0)”。
取消勾選將不保留格式為“test”。", + "is_keep_weight_one": "是否保留關鍵詞權重為1的格式。
勾選後關鍵詞保留格式為“(text:1)”。
取消勾選將不保留格式為“test”。", + "prompt_format": "Prompt格式", + "tagcomplete_translate_desc2": "選擇了錯誤的CSV檔案,會導致翻譯結果為空或“0”。更改檔案後,請點擊下方的測試按鈕,檢查是否正確顯示本地語言的翻譯結果。", + "dblclick_to_disable": "滑鼠雙擊禁用/啟用關鍵字", + "batch_operation": "批次操作", + "success": "成功!", + "failed": "失敗!", + "packages_desc": "偵測到部分python包沒有安裝或者未安裝成功,你需要點擊嘗試重新安裝。所有包安裝成功後,所有功能才能夠正常使用。
如果點擊安裝按鈕後,還是無法成功安裝。你需要手動複製命令並在終端執行。", + "installed": "已安裝", + "not_install": "未安裝", + "install": "安裝", + "packages_installing": "開始安裝......如需查詢詳細安裝日誌,請前往WebUI控制台查看。安裝完成後,本視窗將自動關閉!", + "today_not_show": "今日不再顯示本視窗", + "free": "免費", + "apply_for_free": "申請後免費使用", + "chatgpt_prompts_preset": "StableDiffusion是一款利用深度學習的文生圖模型,支持通過使用提示詞來產生新的圖像,描述要包含或省略的元素。\n我在這裡引入StableDiffusion算法中的Prompt概念,又被稱為提示符。\n下面的prompt是用來指導AI繪畫模型創作圖像的。它們包含了圖像的各種細節,如人物的外觀、背景、顏色和光線效果,以及圖像的主題和風格。這些prompt的格式經常包含括號內的加權數字,用於指定某些細節的重要性或強調。例如,\"(masterpiece:1.5)\"表示作品質量是非常重要的,多個括號也有類似作用。此外,如果使用中括號,如\"{blue hair:white hair:0.3}\",這代表將藍髮和白髮加以融合,藍髮佔比為0.3。\n以下是用prompt幫助AI模型生成圖像的例子:masterpiece,(bestquality),highlydetailed,ultra-detailed,cold,solo,(1girl),(detailedeyes),(shinegoldeneyes),(longliverhair),expressionless,(long sleeves),(puffy sleeves),(white wings),shinehalo,(heavymetal:1.2),(metaljewelry),cross-lacedfootwear (chain),(Whitedoves:1.2)\n仿照例子,給出一套詳細描述以下內容的prompt。直接開始給出prompt不需要用自然語言描述:", + "use_chatgpt_gen_prompts": "使用ChatGPT生成Prompt", + "input_image_desc": "請輸入圖片描述,例如:一隻貓坐在建築物頂部,非常高清、非常真實的照片。", + "api_config": "API配置", + "image_desc": "圖片描述", + "preset": "預設", + "ai_one": "發給AI的第一句話", + "ai_two": "發給AI的第二句話", + "restore_to_default": "恢復到系統預設", + "generate": "生成", + "generate_result": "生成結果", + "is_required": "{0} 必須輸入!", + "is_not_dict": "{0} 必須是字典!", + "no_response_from": "沒有從 {0} 收到返回內容!", + "request_error": "{0} 請求錯誤!", + "response_is_empty": "{0} 返回內容為空!", + "response_error": "{0} 返回內容錯誤!", + "install_success": "{0} 安裝成功!", + "install_failed": "Error: {0} 安裝失敗!", + "translate_text_is_empty": "翻譯文本為空!", + "about_desc": "關於、更新、幫助、文件", + "version": "版本", + "unknown_version": "未知版本", + "has_new_version": "有新的版本,請及時更新", + "wiki_desc": "安裝教程、功能詳解、使用方法、常見問題等等,詳見:" + } + }, + { + "code": "en_US", + "name": "English (US)", + "lang": { + "need_api_key": "API Key Required", + "dont_need_api_key": "API Key Not Required (Unstable)", + "prompt": "Prompt", + "negative_prompt": "Negative Prompt", + "txt2img": "Text to Image", + "img2img": "Image to Image", + "please_enter_new_keyword": "Please Enter New Keyword", + "local_language": "Local Language", + "increase_weight_add_parentheses": "Increase Keyword Weight: Add ()", + "increase_weight_subtract_parentheses": "Increase Keyword Weight: Subtract ()", + "decrease_weight_add_brackets": "Decrease Keyword Weight: Add []", + "decrease_weight_subtract_brackets": "Decrease Keyword Weight: Subtract []", + "translate_keyword_to_local_language": "Translate Keyword to Local Language", + "copy_to_clipboard": "Copy to Clipboard", + "disable_keyword": "Disable Keyword", + "enable_keyword": "Enable Keyword", + "copy_keywords_to_clipboard": "Copy All Keywords to Clipboard", + "translate_keywords_to_local_language": "Translate All Keywords to Local Language", + "translate_keyword_to_english": "Translate to English", + "translate_all_keywords_to_english": "Translate All Non-English Keywords to English", + "auto_translate_to_english": "Automatically Translate to English After Entering New Keyword", + "auto_translate_to_local_language": "Automatically Translate to Local Language After Entering New Keyword", + "translate_api": "Translation API", + "history": "History", + "clear_history": "Clear History", + "clear_history_confirm": "Are you sure you want to clear the history?", + "clear_history_success": "History cleared", + "max_history_count": "Maximum History Count", + "favorite": "Favorites", + "add_to_favorite": "Add to Favorites", + "remove_from_favorite": "Remove from Favorites", + "use": "Use", + "click_to_edit": "Click Left Mouse Button to Edit", + "drop_to_order": "Hold Down Left Mouse Button to Drag and Sort", + "enter_to_save": "Press Enter to Save Keyword", + "enter_to_add": "Press Enter to Add Keyword", + "translate_api_not_found": "Translation API Not Found", + "translate_language_not_support": "Translation Language Not Supported", + "translate_api_not_support": "Translation API Not Supported", + "unset_name": "Name Not Set", + "no_history": "No History", + "get_history_error": "Failed to Get History", + "no_favorite": "No Favorites", + "get_favorite_error": "Failed to Get Favorites", + "hide_default_input_box": "Hide Default Input Box", + "show_default_input_box": "Show Default Input Box", + "translate_test": "Translate Test", + "close": "Close", + "save": "Save", + "delete_all_keywords": "Delete All Keywords", + "delete_all_keywords_confirm": "Are you sure you want to delete all keywords?", + "whether_to_enable_tooltip": "Enable Tooltips for Each Function. If You Are Familiar with All the Functions of This Extension, You Can Uncheck This Option.", + "delete_all_history": "Delete All History", + "delete_all_history_confirm": "Are you sure you want to delete all history?", + "please_enter_the_content_here": "Please enter content", + "not_api_key_desc": "Free translation interfaces are unstable, and not every interface can be used on your computer. Please apply for an API Key to use the stable official interface.", + "setting_desc": "Settings: Translation API, automatic translation, show/hide...", + "line_break_character": "Line break character", + "tagcomplete_translate_desc": "

Enhance translation function using danbooru.csv in DominikDoom/a1111-sd-webui-tagcomplete extension to achieve the purpose of saving network requests and accurate translation.

After clicking the refresh button, csv files from the following paths will be scanned: extensions\\a1111-sd-webui-tagcomplete\\tags, extensions\\sd-webui-prompt-all-in-one\\tags.

You can download csv files from git repository Physton/sd-webui-prompt-all-in-one-assets/tags.

", + "test": "Test", + "refresh": "Refresh", + "not_enable": "Not enable", + "translate_result": "The translation result of {0} is: {1}", + "not_found_csv_file": "Csv file not found", + "theme_extension": "Theme: Extension Plugin Style", + "is_remove_space": "Whether to remove the spaces after each comma in the keyword.
Checking will automatically remove the spaces (difficult to read).
Unchecking will keep one space (affecting TOKEN count).", + "theme": "Theme", + "enhance": "Enhance", + "only_csv_on_auto": "Automatic translation uses only CSV translation (not network translation). To use both CSV and network translation, click the translate button manually.", + "one_translate_all_keywords": "Translate all keywords in one click", + "auto_translate": "Automatically translate after entering new keywords", + "is_remove_last_comma": "Remove the last comma in Prompt or not.
When selected, Prompt output is \"aaa,bbb,ccc\".
When unselected, Prompt output is \"aaa,bbb,ccc,\".", + "is_keep_weight_zero": "Keep the format of keywords with a weight of 0 or not.
When selected, the keyword format is kept as \"(text:0)\".
When unselected, the format is not kept as \"test\".", + "is_keep_weight_one": "Keep the format of keywords with a weight of 1 or not.
When selected, the keyword format is kept as \"(text:1)\".
When unselected, the format is not kept as \"test\".", + "prompt_format": "Prompt Format", + "tagcomplete_translate_desc2": "Selecting the wrong CSV file will result in an empty or '0' translation. After changing the file, please click the test button below and check if the translated result is correctly displayed in your local language.", + "dblclick_to_disable": "Double-click to disable/enable keyword", + "batch_operation": "Batch operation", + "success": "Success!", + "failed": "Failed!", + "packages_desc": "Some packages of python are detected to have not been installed or installed unsuccessfully. You need to click to try reinstalling them. After all the packages are successfully installed, all the functions can work normally.
If you still cannot install them successfully after clicking the install button, you need to manually copy the command and execute it in the terminal.", + "installed": "Installed", + "not_install": "Not installed", + "install": "Install", + "packages_installing": "Starting to install......If you need to check the detailed installation log, please go to the WebUI console to view it. After the installation is completed, this window will close automatically!", + "today_not_show": "Do not show this window today", + "free": "Free", + "apply_for_free": "Apply for free use", + "chatgpt_prompts_preset": "StableDiffusion is a deep learning text-to-image model that generates images based on prompts. These prompts can specify the desired elements of the image, such as the appearance of characters, background, color and lighting effects, as well as the theme and style of the image. The prompts often contain weighted numbers in parentheses to indicate the importance or emphasis of certain details. For example, \"(masterpiece:1.5)\" indicates that the quality of the work is very important. Multiple parentheses also have similar effects. In addition, if square brackets are used, such as \"{blue hair:white hair:0.3}\", this represents the fusion of blue and white hair, with blue hair accounting for 0.3.\nHere is an example of using prompts to help an AI model generate an image: masterpiece,(bestquality),highlydetailed,ultra-detailed,cold,solo,(1girl),(detailedeyes),(shinegoldeneyes),(longliverhair),expressionless,(long sleeves),(puffy sleeves),(white wings),shinehalo,(heavymetal:1.2),(metaljewelry),cross-lacedfootwear (chain),(Whitedoves:1.2)\n\nFollowing the example, provide a set of prompts that detail the following content. Start the prompts directly without using natural language to describe them: ", + "use_chatgpt_gen_prompts": "Use ChatGPT to Generate Prompts", + "input_image_desc": "Please enter the image description, for example: a cat sitting on top of a building, a very high-definition, very authentic photo.", + "api_config": "API Configuration", + "image_desc": "Image Description", + "preset": "Preset", + "ai_one": "First Sentence Sent to AI", + "ai_two": "Second Sentence Sent to AI", + "restore_to_default": "Restore to System Default", + "generate": "Generate", + "generate_result": "Generate Result", + "is_required": "{0} is required!", + "is_not_dict": "{0} must be a dictionary!", + "no_response_from": "No response from {0}!", + "request_error": "{0} request error!", + "response_is_empty": "{0} response is empty!", + "response_error": "{0} response error!", + "install_success": "{0} installed successfully!", + "install_failed": "Error: {0} installation failed!", + "translate_text_is_empty": "Translation text is empty!", + "about_desc": "About, Updates, Help, Documentation", + "version": "Version", + "unknown_version": "Unknown Version", + "has_new_version": "There is a new version available, please update", + "wiki_desc": "Installation tutorial, detailed features, usage instructions, frequently asked questions, etc. See:" + } + }, + { + "code": "af_ZA", + "name": "Afrikaans (South Africa)", + "lang": {} + }, + { + "code": "sq_AL", + "name": "Shqip (Shqipëria)", + "lang": {} + }, + { + "code": "am_ET", + "name": "አማርኛ (ኢትዮጵያ)", + "lang": {} + }, + { + "code": "ar_SA", + "name": "العربية (السعودية)", + "lang": { + "need_api_key": "يتطلب مفتاح API", + "dont_need_api_key": "لا يتطلب مفتاح API (غير مستقر)", + "prompt": "كلمات تذكيرية", + "negative_prompt": "كلمات تذكيرية عكسية", + "txt2img": "النص إلى الصورة", + "img2img": "الصورة إلى صورة", + "please_enter_new_keyword": "يرجى إدخال كلمة مفتاحية جديدة", + "local_language": "اللغة المحلية", + "increase_weight_add_parentheses": "زيادة وزن الكلمات الرئيسية: تراكب ()", + "increase_weight_subtract_parentheses": "زيادة وزن الكلمات الرئيسية: انقاص ()", + "decrease_weight_add_brackets": "تقليل وزن الكلمات الرئيسية: تراكب []", + "decrease_weight_subtract_brackets": "تقليل وزن الكلمات الرئيسية: انقاص []", + "translate_keyword_to_local_language": "ترجمة الكلمة المفتاحية إلى اللغة المحلية", + "copy_to_clipboard": "نسخ إلى الحافظة", + "disable_keyword": "تعطيل الكلمة المفتاحية", + "enable_keyword": "تمكين الكلمة المفتاحية", + "copy_keywords_to_clipboard": "نسخ جميع الكلمات المفتاحية إلى الحافظة", + "translate_keywords_to_local_language": "ترجمة جميع الكلمات المفتاحية إلى اللغة المحلية", + "translate_keyword_to_english": "ترجمة إلى الإنجليزية", + "translate_all_keywords_to_english": "ترجمة جميع الكلمات المفتاحية غير الإنجليزية إلى الإنجليزية", + "auto_translate_to_english": "الترجمة التلقائية إلى الإنجليزية بعد إدخال كلمة مفتاحية جديدة", + "auto_translate_to_local_language": "الترجمة التلقائية إلى اللغة المحلية بعد إدخال كلمة مفتاحية جديدة", + "translate_api": "واجهة برمجة الترجمة", + "history": "سجل الأحداث", + "clear_history": "مسح سجل الأحداث", + "clear_history_confirm": "هل أنت متأكد من رغبتك في مسح سجل الأحداث؟", + "clear_history_success": "تم مسح سجل الأحداث بنجاح", + "max_history_count": "أقصى عدد لسجل الأحداث", + "favorite": "القائمة المفضلة", + "add_to_favorite": "إضافة إلى قائمة المفضلة", + "remove_from_favorite": "إزالة من قائمة المفضلة", + "use": "استخدام", + "click_to_edit": "انقر بزر الماوس الأيسر للتحرير", + "drop_to_order": "استمر في النقر والسحب اليساري للترتيب", + "enter_to_save": "اضغط على مفتاح Enter لحفظ الكلمة المفتاحية", + "enter_to_add": "اضغط على مفتاح Enter لإضافة كلمة مفتاحية", + "translate_api_not_found": "لم يتم العثور على واجهة برمجة الترجمة", + "translate_language_not_support": "اللغة المراد ترجمتها غير مدعومة", + "translate_api_not_support": "واجهة برمجة الترجمة غير مدعومة", + "unset_name": "لم يتم تعيين الاسم", + "no_history": "لا يوجد سجل أحداث", + "get_history_error": "فشل في الحصول على سجل الأحداث", + "no_favorite": "لا يوجد قائمة مفضلة", + "get_favorite_error": "فشل في الحصول على قائمة المفضلة", + "hide_default_input_box": "إخفاء مربع الإدخال الافتراضي", + "show_default_input_box": "إظهار مربع الإدخال الافتراضي", + "translate_test": "اختبار الترجمة", + "close": "إغلاق", + "save": "حفظ", + "delete_all_keywords": "حذف جميع الكلمات المفتاحية", + "delete_all_keywords_confirm": "هل أنت متأكد من رغبتك في حذف جميع الكلمات المفتاحية؟", + "whether_to_enable_tooltip": "هل تريد تمكين نافذة تلميح لكل وظيفة؟ إذا كنت قد اكتسبت الخبرة المطلوبة في استخدام هذه الإضافة، يمكنك إلغاء التحديد", + "delete_all_history": "حذف جميع السجلات", + "delete_all_history_confirm": "هل أنت متأكد من رغبتك في حذف جميع السجلات؟", + "please_enter_the_content_here": "يرجى إدخال المحتوى", + "not_api_key_desc": "الواجهات البرمجية المجانية للترجمة غير مستقرة، ولا يمكن استخدام كل الواجهات على جهاز الكمبيوتر الخاص بك. يرجى طلب مفتاح واجهة برمجة التطبيقات لاستخدام الواجهة الرسمية والمستقرة.", + "setting_desc": "الإعدادات: واجهة برمجة تطبيقات الترجمة، الترجمة التلقائية، إظهار/إخفاء...", + "line_break_character": "حرف فاصل السطر", + "tagcomplete_translate_desc": "

تحسين وظيفة الترجمة باستخدام ملف danbooru.csv في امتداد DominikDoom/a1111-sd-webui-tagcomplete لتحقيق الهدف من توفير طلبات الشبكة والترجمة الدقيقة.

بعد النقر على زر التحديث ، سيتم فحص ملفات csv من المسارات التالية: extensions\\a1111-sd-webui-tagcomplete\\tags و extensions\\sd-webui-prompt-all-in-one\\tags.

يمكنك تنزيل ملفات csv من مستودع git Physton/sd-webui-prompt-all-in-one-assets/tags.

", + "test": "اختبار", + "refresh": "تحديث", + "not_enable": "غير مفعّل", + "translate_result": "نتيجة ترجمة {0} هي: {1}", + "not_found_csv_file": "لم يتم العثور على ملف csv", + "theme_extension": "السمة: نمط الوظيفة التكميلية للامتداد", + "is_remove_space": "هل ترغب في إزالة المسافات بعد كل فاصلة في الكلمات الرئيسية؟
إذا حددت هذا الخيار، سيتم إزالة المسافات تلقائياً (مما يجعل النص أقل وضوحاً).
إذا لم تحدد هذا الخيار سيتم الاحتفاظ بمسافة واحدة (مما يؤثر على عداد رموز الرموز).", + "theme": "الموضوع", + "enhance": "تحسين", + "only_csv_on_auto": "الترجمة الآلية تستخدم فقط ترجمة CSV (لا تستخدم الترجمة عبر الشبكة) ، والنقر على زر الترجمة يدويًا لاستخدام الترجمة CSV والترجمة عبر الشبكة.", + "one_translate_all_keywords": "ترجم جميع الكلمات الرئيسية بنقرة واحدة", + "auto_translate": "ترجم تلقائيًا بعد إدخال كلمات رئيسية جديدة", + "prompt_format": "تنسيق Prompt", + "tagcomplete_translate_desc2": "اختيار ملف CSV الخاطئ سيؤدي إلى ترجمة فارغة أو '0'. بعد تغيير الملف، يرجى النقر على زر الاختبار أدناه والتحقق مما إذا كانت النتيجة المترجمة تعرض بشكل صحيح بلغتك المحلية.", + "dblclick_to_disable": "انقر مرتين لتعطيل / تمكين الكلمة الرئيسية", + "batch_operation": "العمليات الجماعية", + "success": "نجاح!", + "failed": "فشل!", + "packages_desc": "تم اكتشاف بعض حزم Python بأنها لم تتم تثبيتها أو لم تتم التثبيت بنجاح. تحتاج إلى النقر لمحاولة إعادة التثبيت. بعد تثبيت جميع الحزم بنجاح ، يمكن لجميع الوظائف العمل بشكل طبيعي.
إذا لم تتمكن من تثبيتها بنجاح بعد النقر على زر التثبيت ، فيجب عليك نسخ الأمر يدويًا وتنفيذه في وحدة المعالجة المركزية.", + "installed": "مثبت", + "not_install": "غير مثبت", + "install": "تثبيت", + "packages_installing": "بدء التثبيت ...... إذا كنت بحاجة إلى التحقق من سجل التثبيت التفصيلي ، فيرجى الانتقال إلى وحدة التحكم WebUI لعرضه. بعد الانتهاء من التثبيت ، سيتم إغلاق هذه النافذة تلقائيًا!", + "today_not_show": "لا تظهر هذه النافذة اليوم", + "free": "مجاني", + "apply_for_free": "التقديم للاستخدام المجاني", + "use_chatgpt_gen_prompts": "استخدم ChatGPT لتوليد Prompts", + "input_image_desc": "يرجى إدخال وصف الصورة ، على سبيل المثال: قطة جالسة على سطح مبنى ، صورة عالية الدقة ومفصلة جدًا.", + "api_config": "تكوين API", + "image_desc": "وصف الصورة", + "preset": "مسبق التعيين", + "ai_one": "الجملة الأولى المرسلة إلى AI", + "ai_two": "الجملة الثانية المرسلة إلى AI", + "restore_to_default": "استعادة لافتراضيات النظام", + "generate": "توليد", + "generate_result": "نتيجة التوليد", + "is_required": "يجب إدخال {0}!", + "is_not_dict": "{0} يجب أن يكون قاموسًا!", + "no_response_from": "لم يتم الرد من {0}!", + "request_error": "خطأ في طلب {0}!", + "response_is_empty": "الرد من {0} فارغ!", + "response_error": "خطأ في الرد من {0}!", + "install_success": "تم تثبيت {0} بنجاح!", + "install_failed": "خطأ: فشل تثبيت {0}!", + "translate_text_is_empty": "نص الترجمة فارغ!", + "about_desc": "حول، تحديثات، مساعدة، وثائق", + "version": "الإصدار", + "unknown_version": "إصدار غير معروف", + "has_new_version": "هناك إصدار جديد متاح، يرجى التحديث في الوقت المناسب", + "wiki_desc": "دليل التثبيت، التفاصيل الكاملة للميزات، تعليمات الاستخدام، الأسئلة الشائعة، وما إلى ذلك. انظر:" + } + }, + { + "code": "hy_AM", + "name": "Հայերեն (Հայաստան)", + "lang": {} + }, + { + "code": "as_IN", + "name": "অসমীয়া (ভাৰত)", + "lang": {} + }, + { + "code": "az_Latn_AZ", + "name": "Azərbaycan dili (Latın, Azərbaycan)", + "lang": {} + }, + { + "code": "bn_BD", + "name": "বাংলা (বাংলাদেশ)", + "lang": {} + }, + { + "code": "ba_RU", + "name": "Башҡорт (Россия)", + "lang": {} + }, + { + "code": "eu_ES", + "name": "Euskara (Espainia)", + "lang": {} + }, + { + "code": "bs_Latn_BA", + "name": "Bosanski (Latinski, Bosna i Hercegovina)", + "lang": {} + }, + { + "code": "bg_BG", + "name": "Български (България)", + "lang": {} + }, + { + "code": "ca_ES", + "name": "Català (Espanya)", + "lang": {} + }, + { + "code": "hr_HR", + "name": "Hrvatski (Hrvatska)", + "lang": {} + }, + { + "code": "cs_CZ", + "name": "Čeština (Česká republika)", + "lang": {} + }, + { + "code": "da_DK", + "name": "Dansk (Danmark)", + "lang": {} + }, + { + "code": "prs_AF", + "name": "درى (افغانستان)", + "lang": {} + }, + { + "code": "dv_MV", + "name": "ދިވެހިބަސް (ދިވެހިރާއްޖެ)", + "lang": {} + }, + { + "code": "nl_NL", + "name": "Nederlands (Nederland)", + "lang": {} + }, + { + "code": "et_EE", + "name": "Eesti (Eesti)", + "lang": {} + }, + { + "code": "fo_FO", + "name": "Føroyskt (Føroyar)", + "lang": {} + }, + { + "code": "fj_FJ", + "name": "vosa Vakaviti (Viti)", + "lang": {} + }, + { + "code": "fil_PH", + "name": "Filipino (Pilipinas)", + "lang": {} + }, + { + "code": "fi_FI", + "name": "Suomi (Suomi)", + "lang": {} + }, + { + "code": "fr_FR", + "name": "Français (France)", + "lang": { + "need_api_key": "Clé API requise", + "dont_need_api_key": "Pas besoin de clé API (instable)", + "prompt": "Mot d'indice", + "negative_prompt": "Mot d'indice négatif", + "txt2img": "Texte vers image", + "img2img": "Image vers image", + "please_enter_new_keyword": "Veuillez entrer un nouveau mot-clé", + "local_language": "Langue locale", + "increase_weight_add_parentheses": "Augmenter le poids des mots clés : ajouter ()", + "increase_weight_subtract_parentheses": "Augmenter le poids des mots clés : soustraire ()", + "decrease_weight_add_brackets": "Diminuer le poids des mots clés : ajouter []", + "decrease_weight_subtract_brackets": "Diminuer le poids des mots clés : soustraire []", + "translate_keyword_to_local_language": "Traduire le mot-clé dans la langue locale", + "copy_to_clipboard": "Copier dans le presse-papiers", + "disable_keyword": "Désactiver le mot-clé", + "enable_keyword": "Activer le mot-clé", + "copy_keywords_to_clipboard": "Copier tous les mots clés dans le presse-papiers", + "translate_keywords_to_local_language": "Traduire tous les mots clés dans la langue locale", + "translate_keyword_to_english": "Traduire en anglais", + "translate_all_keywords_to_english": "Traduire tous les mots clés non-anglais en anglais", + "auto_translate_to_english": "Traduire automatiquement en anglais après avoir entré un nouveau mot-clé", + "auto_translate_to_local_language": "Traduire automatiquement dans la langue locale après avoir entré un nouveau mot-clé", + "translate_api": "API de traduction", + "history": "Historique", + "clear_history": "Effacer l'historique", + "clear_history_confirm": "Êtes-vous sûr de vouloir effacer l'historique ?", + "clear_history_success": "L'historique a bien été effacé", + "max_history_count": "Nombre maximum d'éléments dans l'historique", + "favorite": "Favoris", + "add_to_favorite": "Ajouter aux favoris", + "remove_from_favorite": "Retirer des favoris", + "use": "Utiliser", + "click_to_edit": "Cliquez avec le bouton gauche de la souris pour éditer", + "drop_to_order": "Maintenez le bouton gauche de la souris enfoncé et faites glisser pour réorganiser", + "enter_to_save": "Appuyez sur Entrée pour enregistrer le mot-clé", + "enter_to_add": "Appuyez sur Entrée pour ajouter un mot-clé", + "translate_api_not_found": "API de traduction introuvable", + "translate_language_not_support": "Langue de traduction non prise en charge", + "translate_api_not_support": "API de traduction non prise en charge", + "unset_name": "Nom non défini", + "no_history": "Aucun historique", + "get_history_error": "Erreur lors de la récupération de l'historique", + "no_favorite": "Aucun favori", + "get_favorite_error": "Erreur lors de la récupération des favoris", + "hide_default_input_box": "Masquer la boîte de saisie par défaut", + "show_default_input_box": "Afficher la boîte de saisie par défaut", + "translate_test": "Test de traduction", + "close": "Fermer", + "save": "Enregistrer", + "delete_all_keywords": "Supprimer tous les mots clés", + "delete_all_keywords_confirm": "Êtes-vous sûr de vouloir supprimer tous les mots clés ?", + "whether_to_enable_tooltip": "Voulez-vous activer les info-bulles de chaque fonction ? Si vous maîtrisez déjà toutes les fonctions de cette extension, vous pouvez décocher cette option", + "delete_all_history": "Supprimer tout l'historique", + "delete_all_history_confirm": "Êtes-vous sûr de vouloir supprimer tout l'historique ?", + "please_enter_the_content_here": "Veuillez entrer le contenu", + "not_api_key_desc": "Les interfaces de traduction gratuites sont instables et toutes les interfaces ne peuvent pas être utilisées sur votre ordinateur. Veuillez demander une clé d'API pour utiliser l'interface officielle stable.", + "setting_desc": "Paramètres : API de traduction, traduction automatique, afficher/masquer...", + "line_break_character": "Caractère de saut de ligne", + "tagcomplete_translate_desc": "

Améliorer la fonction de traduction en utilisant le fichier danbooru.csv dans l'extension DominikDoom/a1111-sd-webui-tagcomplete pour atteindre l'objectif d'économiser les demandes réseau et la traduction précise.

Après avoir cliqué sur le bouton Actualiser, les fichiers csv des chemins suivants seront analysés : extensions\\a1111-sd-webui-tagcomplete\\tags, extensions\\sd-webui-prompt-all-in-one\\tags.

Vous pouvez télécharger des fichiers csv à partir du dépôt git Physton/sd-webui-prompt-all-in-one-assets/tags.

", + "test": "Test", + "refresh": "Actualiser", + "not_enable": "Non activé", + "translate_result": "Le résultat de la traduction de {0} est : {1}", + "not_found_csv_file": "Fichier csv non trouvé", + "theme_extension": "Thème : Style de plugin d'extension", + "is_remove_space": "Indique si les espaces après chaque virgule dans le mot-clé doivent être supprimés.
La sélection automatique supprime les espaces (difficiles à lire).
La désélection conserve un espace (affectant la comptabilisation des TOKEN).", + "theme": "Thème", + "enhance": "Améliorer", + "only_csv_on_auto": "La traduction automatique utilise uniquement la traduction CSV (pas de traduction réseau). Pour utiliser à la fois la traduction CSV et la traduction réseau, cliquez sur le bouton de traduction manuellement.", + "one_translate_all_keywords": "Traduire tous les mots clés en un clic", + "auto_translate": "Traduire automatiquement après avoir saisi de nouveaux mots clés", + "is_remove_last_comma": "Supprimer ou non la dernière virgule dans Prompt.
Lorsqu'elle est sélectionnée, la sortie Prompt est \"aaa,bbb, ccc\".
Lorsqu'elle n'est pas sélectionnée, la sortie Prompt est \"aaa,bbb,ccc,\".", + "is_keep_weight_zero": "Conserver ou non le format des mots clés ayant un poids de 0.
Lorsqu'elle est sélectionnée, le format du mot clé est conservé sous la forme de \"(text:0)\".
Lorsqu'elle n'est pas sélectionnée, le format n'est pas conservé sous la forme de \"test\".", + "is_keep_weight_one": "Conserver ou non le format des mots clés ayant un poids de 1.
Lorsqu'elle est sélectionnée, le format du mot clé est conservé sous la forme de \"(text:1)\".
Lorsqu'elle n'est pas sélectionnée, le format n'est pas conservé sous la forme de \"test\".", + "prompt_format": "Format du prompt", + "tagcomplete_translate_desc2": "Sélectionner le mauvais fichier CSV entraînera une traduction vide ou '0'. Après avoir changé le fichier, veuillez cliquer sur le bouton de test ci-dessous et vérifier si le résultat traduit est correctement affiché dans votre langue locale.", + "dblclick_to_disable": "Double-cliquez pour désactiver/activer le mot-clé", + "batch_operation": "Opération en lot", + "success": "Réussite!", + "failed": "Échec!", + "packages_desc": "Certains packages de python sont détectés comme non installés ou installés de manière infructueuse. Vous devez cliquer pour essayer de les réinstaller. Après que tous les packages sont installés avec succès, toutes les fonctions peuvent fonctionner normalement.
Si vous ne pouvez toujours pas les installer avec succès après avoir cliqué sur le bouton d'installation, vous devez copier la commande manuellement et l'exécuter dans le terminal.", + "installed": "Installé", + "not_install": "Non installé", + "install": "Installer", + "packages_installing": "Démarrage de l'installation ...... Si vous avez besoin de vérifier le journal d'installation détaillé, veuillez aller sur la console WebUI pour le consulter. Après l'installation, cette fenêtre se fermera automatiquement !", + "today_not_show": "Ne pas afficher cette fenêtre aujourd'hui", + "free": "Gratuit", + "apply_for_free": "Demande d'utilisation gratuite", + "use_chatgpt_gen_prompts": "Utiliser ChatGPT pour générer des prompts", + "input_image_desc": "Veuillez entrer la description de l'image, par exemple : un chat assis sur le toit d'un bâtiment, une photo très haute définition, très authentique.", + "api_config": "Configuration de l'API", + "image_desc": "Description de l'image", + "preset": "Préréglage", + "ai_one": "Première phrase envoyée à l'IA", + "ai_two": "Deuxième phrase envoyée à l'IA", + "restore_to_default": "Restaurer les paramètres par défaut du système", + "generate": "Générer", + "generate_result": "Résultat de la génération", + "is_required": "{0} est requis !", + "is_not_dict": "{0} doit être un dictionnaire !", + "no_response_from": "Aucune réponse de {0} !", + "request_error": "Erreur de requête {0} !", + "response_is_empty": "La réponse de {0} est vide !", + "response_error": "Erreur de réponse de {0} !", + "install_success": "{0} installé avec succès !", + "install_failed": "Erreur : échec de l'installation de {0} !", + "translate_text_is_empty": "Le texte de traduction est vide !", + "about_desc": "À propos, Mises à jour, Aide, Documentation", + "version": "Version", + "unknown_version": "Version inconnue", + "has_new_version": "Une nouvelle version est disponible, veuillez mettre à jour", + "wiki_desc": "Tutoriel d'installation, fonctionnalités détaillées, instructions d'utilisation, questions fréquentes, etc. Voir :" + } + }, + { + "code": "fr_CA", + "name": "Français (Canada)", + "lang": {} + }, + { + "code": "gl_ES", + "name": "Galego (España)", + "lang": {} + }, + { + "code": "ka_GE", + "name": "ქართული (საქართველო)", + "lang": {} + }, + { + "code": "de_DE", + "name": "Deutsch (Deutschland)", + "lang": { + "need_api_key": "API-Schlüssel erforderlich", + "dont_need_api_key": "Kein API-Schlüssel erforderlich (instabil)", + "prompt": "Eingabeaufforderung", + "negative_prompt": "Negativ Eingabeaufforderung", + "txt2img": "Text zu Bild", + "img2img": "Bild zu Bild", + "please_enter_new_keyword": "Bitte geben Sie ein neues Schlüsselwort ein", + "local_language": "Lokale Sprache", + "increase_weight_add_parentheses": "Schlüsselwortgewicht erhöhen: () hinzufügen", + "increase_weight_subtract_parentheses": "Schlüsselwortgewicht erhöhen: () entfernen", + "decrease_weight_add_brackets": "Schlüsselwortgewicht verringern: [] hinzufügen", + "decrease_weight_subtract_brackets": "Schlüsselwortgewicht verringern: [] entfernen", + "translate_keyword_to_local_language": "Schlüsselwort in die lokale Sprache übersetzen", + "copy_to_clipboard": "In die Zwischenablage kopieren", + "disable_keyword": "Schlüsselwort deaktivieren", + "enable_keyword": "Schlüsselwort aktivieren", + "copy_keywords_to_clipboard": "Alle Schlüsselwörter in die Zwischenablage kopieren", + "translate_keywords_to_local_language": "Alle Schlüsselwörter in die lokale Sprache übersetzen", + "translate_keyword_to_english": "In Englisch übersetzen", + "translate_all_keywords_to_english": "Alle nicht englischen Schlüsselwörter ins Englische übersetzen", + "auto_translate_to_english": "Nach Eingabe eines neuen Schlüsselworts automatisch ins Englische übersetzen", + "auto_translate_to_local_language": "Nach Eingabe eines neuen Schlüsselworts automatisch in die lokale Sprache übersetzen", + "translate_api": "Übersetzungs-API", + "history": "Verlauf", + "clear_history": "Verlauf löschen", + "clear_history_confirm": "Möchten Sie den Verlauf wirklich löschen?", + "clear_history_success": "Verlauf erfolgreich gelöscht", + "max_history_count": "Maximale Anzahl von Einträgen im Verlauf", + "favorite": "Favoriten", + "add_to_favorite": "Zu Favoriten hinzufügen", + "remove_from_favorite": "Aus Favoriten entfernen", + "use": "Anwenden", + "click_to_edit": "Linksklick zur Bearbeitung", + "drop_to_order": "Linksklick halten und ziehen, um zu sortieren", + "enter_to_save": "Drücken Sie die Eingabetaste, um das Schlüsselwort zu speichern", + "enter_to_add": "Drücken Sie die Eingabetaste, um ein Schlüsselwort hinzuzufügen", + "translate_api_not_found": "Übersetzungs-API nicht gefunden", + "translate_language_not_support": "Übersetzungssprache wird nicht unterstützt", + "translate_api_not_support": "Übersetzungs-API wird nicht unterstützt", + "unset_name": "Name nicht festgelegt", + "no_history": "Kein Verlauf vorhanden", + "get_history_error": "Fehler beim Abrufen des Verlaufs", + "no_favorite": "Keine Favoriten vorhanden", + "get_favorite_error": "Fehler beim Abrufen der Favoriten", + "hide_default_input_box": "Standard-Eingabefeld ausblenden", + "show_default_input_box": "Standard-Eingabefeld anzeigen", + "translate_test": "Übersetzungstest", + "close": "Schließen", + "save": "Speichern", + "delete_all_keywords": "Alle Schlüsselwörter löschen", + "delete_all_keywords_confirm": "Möchten Sie wirklich alle Schlüsselwörter löschen?", + "whether_to_enable_tooltip": "Soll jeder Funktionshinweis aktiviert werden? Wenn Sie mit allen Funktionen dieser Erweiterung vertraut sind, können Sie das Kontrollkästchen deaktivieren.", + "delete_all_history": "Alle Verlaufseinträge löschen", + "delete_all_history_confirm": "Möchten Sie wirklich alle Verlaufseinträge löschen?", + "please_enter_the_content_here": "Bitte Inhalt eingeben", + "not_api_key_desc": "Kostenlose Übersetzungs-Schnittstellen sind instabil, und nicht jede Schnittstelle kann auf Ihrem Computer verwendet werden. Bitte beantragen Sie einen API-Schlüssel, um die stabile offizielle Schnittstelle zu verwenden.", + "setting_desc": "Einstellungen: Übersetzungs-API, automatische Übersetzung, Anzeigen/Ausblenden...", + "line_break_character": "Zeilenumbruch-Zeichen", + "tagcomplete_translate_desc": "

Verbessern Sie die Übersetzungsfunktion mit der danbooru.csv in der Erweiterung DominikDoom/a1111-sd-webui-tagcomplete, um das Ziel zu erreichen, Netzwerkanforderungen zu sparen und präzise Übersetzungen durchzuführen.

Nach dem Klicken auf die Aktualisierungsschaltfläche werden csv-Dateien aus den folgenden Pfaden gescannt: extensions\\a1111-sd-webui-tagcomplete\\tags, extensions\\sd-webui-prompt-all-in-one\\tags.

Sie können csv-Dateien aus dem Git-Repository Physton/sd-webui-prompt-all-in-one-assets/tags herunterladen.

", + "test": "Testen", + "refresh": "Aktualisieren", + "not_enable": "Nicht aktiviert", + "translate_result": "Das Übersetzungsergebnis von {0} lautet: {1}", + "not_found_csv_file": "Csv-Datei nicht gefunden", + "theme_extension": "Thema: Erweiterungs-Plugin-Stil", + "is_remove_space": "Gibt an, ob die Leerzeichen nach jedem Komma im Schlüsselwort entfernt werden sollen.
Durch das Aktivieren wird die Leerzeichen automatisch entfernt (schwer zu lesen).
Wenn diese Option deaktiviert ist, wird ein Leerzeichen beibehalten (was sich auf die TOKEN-Zählung auswirkt).", + "theme": "Thema", + "enhance": "Verbessern", + "only_csv_on_auto": "Die automatische Übersetzung verwendet nur die CSV-Übersetzung (keine Netzwerkübersetzung). Um sowohl die CSV- als auch die Netzwerkübersetzung zu verwenden, klicken Sie manuell auf die Übersetzungsschaltfläche.", + "one_translate_all_keywords": "Alle Schlüsselwörter mit einem Klick übersetzen", + "auto_translate": "Automatisch übersetzen, nachdem neue Schlüsselwörter eingegeben wurden", + "is_remove_last_comma": "Das letzte Komma in Prompt entfernen oder nicht.
Wenn ausgewählt, wird der Prompt-Ausgang als \"aaa,bbb,ccc\" ausgegeben.
Wenn nicht ausgewählt, wird der Prompt-Ausgang als \"aaa,bbb,ccc,\" ausgegeben.", + "is_keep_weight_zero": "Das Format von Schlüsselwörtern mit einem Gewicht von 0 beibehalten oder nicht.
Wenn ausgewählt, wird das Schlüsselwortformat als \"(text:0)\" beibehalten.
Wenn nicht ausgewählt, wird das Format nicht als \"test\" beibehalten.", + "is_keep_weight_one": "Das Format von Schlüsselwörtern mit einem Gewicht von 1 beibehalten oder nicht.
Wenn ausgewählt, wird das Schlüsselwortformat als \"(text:1)\" beibehalten.
Wenn nicht ausgewählt, wird das Format nicht als \"test\" beibehalten.", + "prompt_format": "Prompt-Format", + "tagcomplete_translate_desc2": "Die Auswahl der falschen CSV-Datei führt zu einer leeren oder '0' Übersetzung. Nachdem Sie die Datei geändert haben, klicken Sie bitte auf die Test-Schaltfläche unten und prüfen Sie, ob das übersetzte Ergebnis korrekt in Ihrer lokalen Sprache angezeigt wird.", + "dblclick_to_disable": "Doppelklicken zum Deaktivieren/Aktivieren des Schlüsselworts", + "batch_operation": "Massenoperation", + "success": "Erfolg!", + "failed": "Fehlgeschlagen!", + "packages_desc": "Einige Pakete von Python werden erkannt, dass sie nicht installiert oder erfolglos installiert wurden. Sie müssen klicken, um sie erneut zu installieren. Nachdem alle Pakete erfolgreich installiert wurden, können alle Funktionen normal funktionieren.
Wenn Sie sie nach dem Klicken auf die Install-Schaltfläche immer noch nicht erfolgreich installieren können, müssen Sie den Befehl manuell kopieren und ihn im Terminal ausführen.", + "installed": "Installiert", + "not_install": "Nicht installiert", + "install": "Installieren", + "packages_installing": "Starte die Installation......Wenn Sie das detaillierte Installationsprotokoll überprüfen müssen, gehen Sie bitte zur WebUI-Konsole, um es anzuzeigen. Nachdem die Installation abgeschlossen ist, wird dieses Fenster automatisch geschlossen!", + "today_not_show": "Diese Fenster heute nicht anzeigen", + "free": "Kostenlos", + "apply_for_free": "Für kostenlose Nutzung bewerben", + "use_chatgpt_gen_prompts": "Verwenden von ChatGPT zur Generierung von Prompts", + "input_image_desc": "Bitte geben Sie die Bildbeschreibung ein, zum Beispiel: Eine Katze sitzt auf dem Dach eines Gebäudes, ein sehr hochauflösendes, sehr authentisches Foto.", + "api_config": "API-Konfiguration", + "image_desc": "Bildbeschreibung", + "preset": "Voreinstellung", + "ai_one": "Erster Satz, der an die AI gesendet wird", + "ai_two": "Zweiter Satz, der an die AI gesendet wird", + "restore_to_default": "Auf werkseitige Voreinstellungen zurücksetzen", + "generate": "Generieren", + "generate_result": "Generiertes Ergebnis", + "is_required": "{0} ist erforderlich!", + "is_not_dict": "{0} muss ein Wörterbuch sein!", + "no_response_from": "Keine Antwort von {0} erhalten!", + "request_error": "{0} Anfragefehler!", + "response_is_empty": "{0} Antwort ist leer!", + "response_error": "{0} Antwortfehler!", + "install_success": "{0} erfolgreich installiert!", + "install_failed": "Fehler: {0} Installation fehlgeschlagen!", + "translate_text_is_empty": "Übersetzungstext ist leer!", + "about_desc": "Über, Updates, Hilfe, Dokumentation", + "version": "Version", + "unknown_version": "Unbekannte Version", + "has_new_version": "Es ist eine neue Version verfügbar, bitte aktualisieren", + "wiki_desc": "Installationsanleitung, detaillierte Funktionen, Verwendungshinweise, häufig gestellte Fragen usw. Siehe:" + } + }, + { + "code": "el_GR", + "name": "Ελληνικά (Ελλάδα)", + "lang": {} + }, + { + "code": "gu_IN", + "name": "ગુજરાતી (ભારત)", + "lang": {} + }, + { + "code": "ht_HT", + "name": "Kreyòl ayisyen (Ayiti)", + "lang": {} + }, + { + "code": "he_IL", + "name": "עברית (ישראל)", + "lang": {} + }, + { + "code": "hi_IN", + "name": "हिन्दी (भारत)", + "lang": {} + }, + { + "code": "mww_Latn_US", + "name": "Hmong Daw (Latn, United States)", + "lang": {} + }, + { + "code": "hu_HU", + "name": "Magyar (Magyarország)", + "lang": {} + }, + { + "code": "is_IS", + "name": "Íslenska (Ísland)", + "lang": {} + }, + { + "code": "id_ID", + "name": "Bahasa Indonesia (Indonesia)", + "lang": {} + }, + { + "code": "ikt_CA", + "name": "Inuktitut (Kanatami)", + "lang": {} + }, + { + "code": "iu_Latn_CA", + "name": "Inuktitut (Latin, Canada)", + "lang": {} + }, + { + "code": "iu_CA", + "name": "ᐃᓄᒃᑎᑐᑦ (ᑲᓇᑕᒥ)", + "lang": {} + }, + { + "code": "ga_IE", + "name": "Gaeilge (Éire)", + "lang": {} + }, + { + "code": "it_IT", + "name": "Italiano (Italia)", + "lang": { + "need_api_key": "API Key necessaria", + "dont_need_api_key": "Non è necessario l'API Key (instabile)", + "prompt": "Suggerimento", + "negative_prompt": "Suggerimento inverso", + "txt2img": "Testo in immagine", + "img2img": "Immagine in immagine", + "please_enter_new_keyword": "Inserisci una nuova parola chiave", + "local_language": "Lingua locale", + "increase_weight_add_parentheses": "Aumento del peso della parola chiave: somma ()", + "increase_weight_subtract_parentheses": "Aumento del peso della parola chiave: sottrazione ()", + "decrease_weight_add_brackets": "Diminuzione del peso della parola chiave: somma []", + "decrease_weight_subtract_brackets": "Diminuzione del peso della parola chiave: sottrazione []", + "translate_keyword_to_local_language": "Traduci parola chiave nella lingua locale", + "copy_to_clipboard": "Copia negli appunti", + "disable_keyword": "Disattiva parola chiave", + "enable_keyword": "Abilita parola chiave", + "copy_keywords_to_clipboard": "Copia tutte le parole chiave negli appunti", + "translate_keywords_to_local_language": "Traduci tutte le parole chiave nella lingua locale", + "translate_keyword_to_english": "Traduci in inglese", + "translate_all_keywords_to_english": "Traduci tutte le parole chiave non in inglese in inglese", + "auto_translate_to_english": "Traduci automaticamente in inglese dopo aver inserito una nuova parola chiave", + "auto_translate_to_local_language": "Traduci automaticamente nella lingua locale dopo aver inserito una nuova parola chiave", + "translate_api": "API di traduzione", + "history": "Storico", + "clear_history": "Elimina storico", + "clear_history_confirm": "Sei sicuro di voler eliminare lo storico?", + "clear_history_success": "Storico eliminato con successo", + "max_history_count": "Numero massimo di voci nello storico", + "favorite": "Preferiti", + "add_to_favorite": "Aggiungi ai preferiti", + "remove_from_favorite": "Rimuovi dai preferiti", + "use": "Usa", + "click_to_edit": "Clicca con il pulsante sinistro per modificare", + "drop_to_order": "Trascina con il pulsante sinistro per ordinare", + "enter_to_save": "Premi il tasto Invio per salvare la parola chiave", + "enter_to_add": "Premi il tasto Invio per aggiungere la parola chiave", + "translate_api_not_found": "API di traduzione non trovata", + "translate_language_not_support": "La lingua di traduzione non è supportata", + "translate_api_not_support": "L'API di traduzione non è supportata", + "unset_name": "Nome non impostato", + "no_history": "Nessuno storico presente", + "get_history_error": "Errore nel recupero dello storico", + "no_favorite": "Nessun preferito presente", + "get_favorite_error": "Errore nel recupero dei preferiti", + "hide_default_input_box": "Nascondi la casella di input predefinita", + "show_default_input_box": "Mostra la casella di input predefinita", + "translate_test": "Test di traduzione", + "close": "Chiudi", + "save": "Salva", + "delete_all_keywords": "Elimina tutte le parole chiave", + "delete_all_keywords_confirm": "Sei sicuro di voler eliminare tutte le parole chiave?", + "whether_to_enable_tooltip": "Abilitare o meno i suggerimenti per ogni funzione. Se sei già esperto di tutte le funzionalità dell'estensione, puoi deselezionare questa opzione", + "delete_all_history": "Elimina tutto lo storico", + "delete_all_history_confirm": "Sei sicuro di voler eliminare tutto lo storico?", + "please_enter_the_content_here": "Si prega di inserire il contenuto", + "not_api_key_desc": "Le interfacce di traduzione gratuite sono instabili e non tutte le interfacce possono essere utilizzate sul vostro computer. Si prega di richiedere una chiave API per utilizzare l'interfaccia ufficiale stabile.", + "setting_desc": "Impostazioni: API di traduzione, traduzione automatica, Mostra/Nascondi...", + "line_break_character": "Carattere di ritorno a capo", + "tagcomplete_translate_desc": "

Migliora la funzione di traduzione utilizzando il file danbooru.csv nell'estensione DominikDoom/a1111-sd-webui-tagcomplete per raggiungere l'obiettivo di risparmiare richieste di rete e una traduzione precisa.

Dopo aver cliccato sul pulsante Aggiorna, verranno analizzati i file csv dai seguenti percorsi: extensions\\a1111-sd-webui-tagcomplete\\tags, extensions\\sd-webui-prompt-all-in-one\\tags.

Puoi scaricare i file csv dal repository git Physton/sd-webui-prompt-all-in-one-assets/tags.

", + "test": "Test", + "refresh": "Aggiorna", + "not_enable": "Non abilitato", + "translate_result": "Il risultato della traduzione di {0} è : {1}", + "not_found_csv_file": "File csv non trovato", + "theme_extension": "Tema: Stile del plug-in di estensione", + "is_remove_space": "Indica se gli spazi dopo ogni virgola nelle parole chiave devono essere rimossi.
La selezione automatica rimuove gli spazi (difficili da leggere).
La deselezione mantiene uno spazio (influenzando il conteggio dei TOKEN).", + "theme": "Tema", + "enhance": "Migliorare", + "only_csv_on_auto": "La traduzione automatica utilizza solo la traduzione CSV (non la traduzione di rete). Per utilizzare sia la traduzione CSV che la traduzione di rete, fare clic manualmente sul pulsante di traduzione.", + "one_translate_all_keywords": "Traduci tutte le parole chiave in un solo clic", + "auto_translate": "Traduzione automatica dopo aver inserito nuove parole chiave", + "is_remove_last_comma": "Rimuovere o meno l'ultima virgola in Prompt.
Quando selezionato, l'output di Prompt è \"aaa,bbb,ccc\".
Quando non selezionato, l'output di Prompt è \"aaa,bbb,ccc,\".", + "is_keep_weight_zero": "Mantenere o meno il formato delle parole chiave con un peso pari a 0.
Quando selezionato, il formato della parola chiave viene mantenuto come \"(text:0)\".
Quando non selezionato, il formato non viene mantenuto come \"test\".", + "is_keep_weight_one": "Mantenere o meno il formato delle parole chiave con un peso pari a 1.
Quando selezionato, il formato della parola chiave viene mantenuto come \"(text:1)\".
Quando non selezionato, il formato non viene mantenuto come \"test\".", + "prompt_format": "Formato del prompt", + "tagcomplete_translate_desc2": "La selezione del file CSV sbagliato comporterà una traduzione vuota o '0'. Dopo aver modificato il file, fare clic sul pulsante di test di seguito e verificare se il risultato tradotto viene visualizzato correttamente nella propria lingua locale.", + "dblclick_to_disable": "Doppio clic per disabilitare/abilitare la parola chiave", + "batch_operation": "Operazione batch", + "success": "Successo!", + "failed": "Fallito!", + "packages_desc": "Alcuni pacchetti di Python vengono rilevati come non installati o installati senza successo. Devi fare clic per tentare di reinstallarli. Dopo che tutti i pacchetti sono stati installati con successo, tutte le funzioni possono funzionare normalmente.
Se non riesci ancora a installarli correttamente dopo aver cliccato sul pulsante di installazione, devi copiare il comando manualmente ed eseguirlo nel terminale.", + "installed": "Installato", + "not_install": "Non installato", + "install": "Installa", + "packages_installing": "Avvio dell'installazione ...... Se hai bisogno di controllare il registro di installazione dettagliato, vai alla console WebUI per visualizzarlo. Dopo l'installazione, questa finestra verrà chiusa automaticamente!", + "today_not_show": "Non mostrare questa finestra oggi", + "free": "Gratuito", + "apply_for_free": "Richiedi l'uso gratuito", + "use_chatgpt_gen_prompts": "Utilizza ChatGPT per generare prompt", + "input_image_desc": "Inserisci la descrizione dell'immagine, ad esempio: un gatto seduto in cima a un edificio, una foto molto ad alta definizione e molto autentica.", + "api_config": "Configurazione API", + "image_desc": "Descrizione dell'immagine", + "preset": "Preimpostazioni", + "ai_one": "Prima frase inviata all'AI", + "ai_two": "Seconda frase inviata all'AI", + "restore_to_default": "Ripristina impostazioni predefinite di sistema", + "generate": "Genera", + "generate_result": "Risultato della generazione", + "is_required": "{0} è richiesto!", + "is_not_dict": "{0} deve essere un dizionario!", + "no_response_from": "Nessuna risposta da {0}!", + "request_error": "Errore di richiesta {0}!", + "response_is_empty": "La risposta da {0} è vuota!", + "response_error": "Errore di risposta da {0}!", + "install_success": "{0} installato con successo!", + "install_failed": "Errore: installazione di {0} non riuscita!", + "translate_text_is_empty": "Il testo della traduzione è vuoto!", + "about_desc": "Informazioni, Aggiornamenti, Aiuto, Documentazione", + "version": "Versione", + "unknown_version": "Versione sconosciuta", + "has_new_version": "È disponibile una nuova versione, si prega di aggiornare", + "wiki_desc": "Tutorial di installazione, funzionalità dettagliate, istruzioni per l'uso, domande frequenti, ecc. Vedi:" + } + }, + { + "code": "ja_JP", + "name": "日本語 (日本)", + "lang": { + "need_api_key": "APIキーが必要です", + "dont_need_api_key": "APIキーが不要です(不安定)", + "prompt": "プロンプト", + "negative_prompt": "ネガティブなプロンプト", + "txt2img": "テキストから画像", + "img2img": "画像から画像", + "please_enter_new_keyword": "新しいキーワードを入力してください", + "local_language": "現地言語", + "increase_weight_add_parentheses": "キーワードの重みを増やす:()を追加する", + "increase_weight_subtract_parentheses": "キーワードの重みを増やす:()を減らす", + "decrease_weight_add_brackets": "キーワードの重みを減らす:[]を追加する", + "decrease_weight_subtract_brackets": "キーワードの重みを減らす:[]を減らす", + "translate_keyword_to_local_language": "キーワードを現地言語に翻訳する", + "copy_to_clipboard": "クリップボードにコピー", + "disable_keyword": "キーワードを無効にする", + "enable_keyword": "キーワードを有効にする", + "copy_keywords_to_clipboard": "すべてのキーワードをクリップボードにコピー", + "translate_keywords_to_local_language": "すべてのキーワードを現地言語に翻訳する", + "translate_keyword_to_english": "英語に翻訳", + "translate_all_keywords_to_english": "英語以外のすべてのキーワードを英語に翻訳する", + "auto_translate_to_english": "新しいキーワードを入力したら自動的に英語に翻訳する", + "auto_translate_to_local_language": "新しいキーワードを入力したら自動的に現地言語に翻訳する", + "translate_api": "翻訳API", + "history": "履歴", + "clear_history": "履歴をクリア", + "clear_history_confirm": "本当に履歴をクリアしますか?", + "clear_history_success": "履歴がクリアされました", + "max_history_count": "最大履歴数", + "favorite": "お気に入りリスト", + "add_to_favorite": "お気に入りに追加", + "remove_from_favorite": "お気に入りから削除", + "use": "使用する", + "click_to_edit": "左クリックで編集", + "drop_to_order": "左クリックでドラッグ&ドロップして並べ替える", + "enter_to_save": "Enterキーを押してキーワードを保存する", + "enter_to_add": "Enterキーを押してキーワードを追加する", + "translate_api_not_found": "翻訳APIが見つかりません", + "translate_language_not_support": "翻訳言語がサポートされていません", + "translate_api_not_support": "翻訳APIはサポートされていません", + "unset_name": "名前が設定されていません", + "no_history": "履歴がありません", + "get_history_error": "履歴の取得に失敗しました", + "no_favorite": "お気に入りがありません", + "get_favorite_error": "お気に入りの取得に失敗しました", + "hide_default_input_box": "デフォルトの入力ボックスを非表示にする", + "show_default_input_box": "デフォルトの入力ボックスを表示する", + "translate_test": "翻訳テスト", + "close": "閉じる", + "save": "保存", + "delete_all_keywords": "すべてのキーワードを削除する", + "delete_all_keywords_confirm": "本当にすべてのキーワードを削除しますか?", + "whether_to_enable_tooltip": "各機能のツールチップを有効にするかどうか(この拡張機能のすべての機能を熟知している場合はチェックを外してください)", + "delete_all_history": "すべての履歴を削除する", + "delete_all_history_confirm": "本当にすべての履歴を削除しますか?", + "please_enter_the_content_here": "コンテンツを入力してください", + "not_api_key_desc": "無料の翻訳インターフェースは不安定であり、すべてのインターフェースをあなたのコンピュータで使用できるわけではありません。安定した公式インターフェイスを使用するにはAPI Keyを申請してください。", + "setting_desc": "設定:翻訳API、自動翻訳、表示/非表示...", + "line_break_character": "改行文字", + "tagcomplete_translate_desc": "

DominikDoom/a1111-sd-webui-tagcomplete 拡張機能の danbooru.csv を使用して翻訳機能を強化し、ネットワーク要求を節約し、正確な翻訳を実現します。

更新ボタンをクリックすると、以下のパスのcsvファイルがスキャンされます:extensions\\a1111-sd-webui-tagcomplete\\tags、extensions\\sd-webui-prompt-all-in-one\\tags。

gitリポジトリ Physton/sd-webui-prompt-all-in-one-assets/tags からcsvファイルをダウンロードできます

", + "test": "テスト", + "refresh": "更新", + "not_enable": "無効にする", + "translate_result": "{0}の翻訳結果は:{1}", + "not_found_csv_file": "csvファイルが見つかりません", + "theme_extension": "テーマ:拡張プラグインスタイル", + "is_remove_space": "キーワードのコンマ後のスペースを削除するかどうか。
チェックすると、自動的にスペースが削除されます(読みづらい)。
チェックを外すと、空白が1つ残ります(TOKEN数に影響します)。", + "theme": "テーマ", + "enhance": "強化", + "only_csv_on_auto": "自動翻訳はCSV翻訳のみを使用します(ネットワーク翻訳ではありません)。CSVおよびネットワーク翻訳を両方使用するには、手動で翻訳ボタンをクリックしてください。", + "one_translate_all_keywords": "すべてのキーワードをワンクリックで翻訳する", + "auto_translate": "新しいキーワードを入力した後、自動的に翻訳する", + "is_remove_last_comma": "Promptの最後のカンマを削除するかどうか。
選択した場合、Promptの出力は「aaa,bbb,ccc」になります。
選択されていない場合、Promptの出力は「aaa,bbb,ccc,」になります。", + "is_keep_weight_zero": "重みが0のキーワードのフォーマットを保持するかどうか。
選択した場合、キーワードのフォーマットは「(text:0)」として保持されます。
選択されていない場合、フォーマットは「test」として保持されません。", + "is_keep_weight_one": "重みが1のキーワードのフォーマットを保持するかどうか。
選択した場合、キーワードのフォーマットは「(text:1)」として保持されます。
選択されていない場合、フォーマットは「test」として保持されません。", + "prompt_format": "プロンプトの形式", + "tagcomplete_translate_desc2": "間違ったCSVファイルを選択すると、空の翻訳または「0」になります。ファイルを変更した後、下のテストボタンをクリックして、翻訳結果が正しくローカル言語で表示されるかどうかを確認してください。", + "dblclick_to_disable": "キーワードの無効化/有効化にはダブルクリックしてください", + "batch_operation": "バッチ操作", + "success": "成功しました!", + "failed": "失敗しました!", + "packages_desc": "一部のPythonパッケージがインストールされていないか、または正常にインストールされていません。再インストールするためにクリックする必要があります。すべてのパッケージが正常にインストールされると、すべての機能が正常に動作します。
インストールボタンをクリックしてもうまくインストールできない場合は、コマンドを手動でコピーしてターミナルで実行する必要があります。", + "installed": "インストール済み", + "not_install": "未インストール", + "install": "インストール", + "packages_installing": "インストールを開始します......詳細なインストールログを確認する必要がある場合は、WebUIコンソールに移動して表示してください。インストールが完了すると、このウィンドウは自動的に閉じられます!", + "today_not_show": "今日このウィンドウを表示しない", + "free": "無料", + "apply_for_free": "無料使用を申請する", + "use_chatgpt_gen_prompts": "ChatGPTを使用してプロンプトを生成する", + "input_image_desc": "画像の説明を入力してください。たとえば、建物の屋上に座っている猫、非常に高精細で非常にリアルな写真など。", + "api_config": "API構成", + "image_desc": "画像の説明", + "preset": "プリセット", + "ai_one": "AIに送信される最初の文", + "ai_two": "AIに送信される2番目の文", + "restore_to_default": "システムデフォルトに復元", + "generate": "生成", + "generate_result": "生成結果", + "is_required": "{0} が必要です!", + "is_not_dict": "{0} は辞書である必要があります!", + "no_response_from": "{0} からの応答がありません!", + "request_error": "{0} のリクエストエラーです!", + "response_is_empty": "{0} の応答が空です!", + "response_error": "{0} の応答エラーです!", + "install_success": "{0} のインストールに成功しました!", + "install_failed": "エラー:{0} のインストールに失敗しました!", + "translate_text_is_empty": "翻訳テキストが空です!", + "about_desc": "バージョン、更新、ヘルプ、ドキュメント", + "version": "バージョン", + "unknown_version": "不明のバージョン", + "has_new_version": "新しいバージョンがあります。更新してください", + "wiki_desc": "インストールチュートリアル、詳細な機能、使用方法、よくある質問などはこちらを参照してください:" + } + }, + { + "code": "kn_IN", + "name": "ಕನ್ನಡ (ಭಾರತ)", + "lang": {} + }, + { + "code": "kk_KZ", + "name": "Қазақ (Қазақстан)", + "lang": {} + }, + { + "code": "km_KH", + "name": "ភាសាខ្មែរ (កម្ពុជា)", + "lang": {} + }, + { + "code": "tlh_Latn", + "name": "Klingon (Latn)", + "lang": {} + }, + { + "code": "tlh_Piqd", + "name": "Klingon (plqaD)", + "lang": {} + }, + { + "code": "ko_KR", + "name": "한국어 (대한민국)", + "lang": { + "need_api_key": "API 키 필요", + "dont_need_api_key": "API 키 필요 없음 (불안정)", + "prompt": "프롬프트", + "negative_prompt": "부정적인 프롬프트", + "txt2img": "텍스트에서 이미지로", + "img2img": "이미지에서 이미지로", + "please_enter_new_keyword": "새로운 키워드를 입력하세요", + "local_language": "현지어", + "increase_weight_add_parentheses": "키워드 가중치 증가 : () 쌓임", + "increase_weight_subtract_parentheses": "키워드 가중치 증가 : () 감소", + "decrease_weight_add_brackets": "키워드 가중치 감소 : [] 쌓임", + "decrease_weight_subtract_brackets": "키워드 가중치 감소 : [] 감소", + "translate_keyword_to_local_language": "키워드를 현지어로 번역", + "copy_to_clipboard": "클립보드로 복사", + "disable_keyword": "키워드 비활성화", + "enable_keyword": "키워드 활성화", + "copy_keywords_to_clipboard": "모든 키워드를 클립보드로 복사", + "translate_keywords_to_local_language": "모든 키워드를 현지어로 번역", + "translate_keyword_to_english": "영어로 번역", + "translate_all_keywords_to_english": "모든 비영어권 키워드를 영어로 번역", + "auto_translate_to_english": "새 키워드 입력 후 자동으로 영어로 번역", + "auto_translate_to_local_language": "새 키워드 입력 후 자동으로 현지어로 번역", + "translate_api": "번역 API", + "history": "기록", + "clear_history": "기록 지우기", + "clear_history_confirm": "정말 기록을 지우시겠습니까?", + "clear_history_success": "기록이 지워졌습니다.", + "max_history_count": "최대 기록 수", + "favorite": "즐겨찾기 목록", + "add_to_favorite": "즐겨찾기에 추가", + "remove_from_favorite": "즐겨찾기에서 제거", + "use": "사용", + "click_to_edit": "편집하려면 마우스 왼쪽 버튼 클릭", + "drop_to_order": "정렬하려면 마우스 왼쪽 버튼을 누른 채 드래그하세요", + "enter_to_save": "엔터 키를 눌러 키워드 저장", + "enter_to_add": "엔터 키를 눌러 키워드 추가", + "translate_api_not_found": "번역 API를 찾을 수 없습니다.", + "translate_language_not_support": "번역 언어를 지원하지 않습니다.", + "translate_api_not_support": "번역 API를 지원하지 않습니다.", + "unset_name": "이름 설정 안됨", + "no_history": "기록 없음", + "get_history_error": "기록 가져오기 실패", + "no_favorite": "즐겨찾기 없음", + "get_favorite_error": "즐겨찾기 가져오기 실패", + "hide_default_input_box": "기본 입력 상자 숨기기", + "show_default_input_box": "기본 입력 상자 보이기", + "translate_test": "번역 테스트", + "close": "닫기", + "save": "저장", + "delete_all_keywords": "모든 키워드 삭제", + "delete_all_keywords_confirm": "정말 모든 키워드를 삭제하시겠습니까?", + "whether_to_enable_tooltip": "각 기능에 대한 도움말 설명을 사용할 지 여부, 확장 프로그램의 모든 기능을 이미 익히셨다면 체크 해제 가능", + "delete_all_history": "모든 기록 삭제", + "delete_all_history_confirm": "정말 모든 기록을 삭제하시겠습니까?", + "please_enter_the_content_here": "내용을 입력하세요", + "not_api_key_desc": "무료 번역 인터페이스는 불안정합니다. 모든 인터페이스를 컴퓨터에서 사용할 수 있는 것은 아닙니다. 안정적인 공식 인터페이스를 사용하려면 API 키를 신청하십시오.", + "setting_desc": "설정: 번역 API, 자동 번역, 표시/숨기기...", + "line_break_character": "개행 문자", + "tagcomplete_translate_desc": "

DominikDoom/a1111-sd-webui-tagcomplete 확장 프로그램의 danbooru.csv 를 사용하여 번역 기능을 향상시켜 네트워크 요청을 절약하고 정확한 번역을 달성하십시오.

새로 고침 버튼을 클릭하면 다음 경로의 csv 파일이 스캔됩니다 : extensions\\a1111-sd-webui-tagcomplete\\tags, extensions\\sd-webui-prompt-all-in-one\\tags.

git 저장소 Physton/sd-webui-prompt-all-in-one-assets/tags 에서 csv 파일을 다운로드 할 수 있습니다.

", + "test": "테스트", + "refresh": "새로 고침", + "not_enable": "비활성화", + "translate_result": "{0}의 번역 결과는 : {1}입니다.", + "not_found_csv_file": "csv 파일을 찾을 수 없습니다", + "theme_extension": "테마: 확장 플러그인 스타일", + "is_remove_space": "키워드의 쉼표 뒤 공백을 제거할지 여부입니다.
확인하면 자동으로 공백이 제거됩니다(읽기 어려움).
선택을 취소하면 공백 1개가 유지됩니다.(TOKEN 계산에 영향을 미칩니다).", + "theme": "테마", + "enhance": "강화", + "only_csv_on_auto": "자동 번역은 CSV 번역 만 사용합니다 (네트워크 번역은 사용하지 않음). CSV 및 네트워크 번역을 모두 사용하려면 수동으로 번역 버튼을 클릭하십시오.", + "one_translate_all_keywords": "모든 키워드를 한 번의 클릭으로 번역하세요", + "auto_translate": "새 키워드를 입력한 후 자동으로 번역하기", + "is_remove_last_comma": "Prompt의 마지막 쉼표를 제거할 것인가요?
선택한 경우, Prompt 출력은 \"aaa,bbb,ccc\"가 됩니다.
선택하지 않은 경우, Prompt 출력은 \"aaa,bbb,ccc,\"가 됩니다.", + "is_keep_weight_zero": "무게가 0인 키워드 형식을 유지할 것인가요?
선택한 경우, 키워드 형식은 \"(text:0)\"로 유지됩니다.
선택하지 않은 경우, 형식은 \"test\"로 유지되지 않습니다.", + "is_keep_weight_one": "무게가 1인 키워드 형식을 유지할 것인가요?
선택한 경우, 키워드 형식은 \"(text:1)\"로 유지됩니다.
선택하지 않은 경우, 형식은 \"test\"로 유지되지 않습니다.", + "prompt_format": "프롬프트 형식", + "tagcomplete_translate_desc2": "잘못된 CSV 파일을 선택하면 빈 번역이나 '0'이 됩니다. 파일을 변경한 후에는 아래의 테스트 버튼을 클릭하고 번역된 결과가 로컬 언어로 올바르게 표시되는지 확인하십시오.", + "dblclick_to_disable": "키워드를 사용 안 함/사용으로 바꾸려면 더블 클릭", + "batch_operation": "일괄 작업", + "success": "성공!", + "failed": "실패!", + "packages_desc": "일부 Python 패키지가 설치되지 않았거나 설치하지 못했습니다. 다시 설치하려면 클릭해야합니다. 모두 성공적으로 설치 된 후 모든 기능을 정상적으로 사용할 수 있습니다.
설치 버튼을 클릭 한 후에도 여전히 성공적으로 설치 할 수 없는 경우 명령을 수동으로 복사하고 터미널에서 실행해야합니다.", + "installed": "설치됨", + "not_install": "미설치", + "install": "설치", + "packages_installing": "설치 시작 중 ...... 자세한 설치 로그를 확인해야하는 경우 WebUI 콘솔로 이동하여 확인하십시오. 설치가 완료되면이 창이 자동으로 닫힙니다!", + "today_not_show": "오늘 이 창을 표시하지 않음", + "free": "무료", + "apply_for_free": "무료 사용 신청", + "use_chatgpt_gen_prompts": "ChatGPT를 사용하여 프롬프트를 생성합니다", + "input_image_desc": "이미지 설명을 입력하세요. 예 : 건물 꼭대기에 앉아있는 고양이, 매우 고화질이며 매우 현실적인 사진 등", + "api_config": "API 구성", + "image_desc": "이미지 설명", + "preset": "사전 설정", + "ai_one": "AI에게 전송 된 첫 번째 문장", + "ai_two": "AI에게 전송 된 두 번째 문장", + "restore_to_default": "시스템 기본값으로 복원", + "generate": "생성", + "generate_result": "생성 결과", + "is_required": "{0} 입력이 필요합니다!", + "is_not_dict": "{0}은(는) 사전이어야 합니다!", + "no_response_from": "{0}에서 응답이 없습니다!", + "request_error": "{0} 요청 오류입니다!", + "response_is_empty": "{0} 응답이 비어 있습니다!", + "response_error": "{0} 응답 오류입니다!", + "install_success": "{0} 설치에 성공했습니다!", + "install_failed": "오류: {0} 설치 실패!", + "translate_text_is_empty": "번역 텍스트가 비어 있습니다!", + "about_desc": "버전, 업데이트, 도움말, 문서", + "version": "버전", + "unknown_version": "알 수 없는 버전", + "has_new_version": "새로운 버전이 있습니다. 업데이트하세요", + "wiki_desc": "설치 안내서, 자세한 기능, 사용 방법, 자주 묻는 질문 등은 다음을 참조하세요:" + } + }, + { + "code": "ku_Arab_IQ", + "name": "کوردی (عێراق)", + "lang": {} + }, + { + "code": "ku_Latn_TR", + "name": "Kurmancî (Latînî, Tirkiye)", + "lang": {} + }, + { + "code": "ky_KG", + "name": "Кыргызча (Кыргызстан)", + "lang": {} + }, + { + "code": "lo_LA", + "name": "ລາວ (ລາວ)", + "lang": {} + }, + { + "code": "lv_LV", + "name": "Latviešu (Latvija)", + "lang": {} + }, + { + "code": "lt_LT", + "name": "Lietuvių (Lietuva)", + "lang": {} + }, + { + "code": "mk_MK", + "name": "Македонски (Северна Македонија)", + "lang": {} + }, + { + "code": "mg_MG", + "name": "Malagasy (Madagasikara)", + "lang": {} + }, + { + "code": "ms_Latn_MY", + "name": "Bahasa Melayu (Latin, Malaysia)", + "lang": {} + }, + { + "code": "ml_IN", + "name": "മലയാളം (ഇന്ത്യ)", + "lang": {} + }, + { + "code": "mt_MT", + "name": "Malti (Malta)", + "lang": {} + }, + { + "code": "mi_NZ", + "name": "Māori (Aotearoa)", + "lang": {} + }, + { + "code": "mr_IN", + "name": "मराठी (भारत)", + "lang": {} + }, + { + "code": "mn_Cyrl_MN", + "name": "Монгол (Кирилл, Монгол улс)", + "lang": {} + }, + { + "code": "mn_Mong_CN", + "name": "ᠮᠣᠩᠭᠣᠯ ᠤᠯᠤᠰ (ᠨᠢᠭᠡᠳᠦᠯ ᠤᠨᠤᠭ᠎ᠠ)", + "lang": {} + }, + { + "code": "my_MM", + "name": "မြန်မာ (မြန်မာ)", + "lang": {} + }, + { + "code": "ne_NP", + "name": "नेपाली (नेपाल)", + "lang": {} + }, + { + "code": "no_NO", + "name": "Norsk bokmål (Norge)", + "lang": {} + }, + { + "code": "or_IN", + "name": "ଓଡ଼ିଆ (ଭାରତ)", + "lang": {} + }, + { + "code": "ps_AF", + "name": "پښتو (افغانستان)", + "lang": {} + }, + { + "code": "fa_IR", + "name": "فارسی (ایران)", + "lang": {} + }, + { + "code": "pl_PL", + "name": "Polski (Polska)", + "lang": {} + }, + { + "code": "pt_BR", + "name": "Português (Brasil)", + "lang": {} + }, + { + "code": "pt_PT", + "name": "Português (Portugal)", + "lang": { + "need_api_key": "API Key necessário", + "dont_need_api_key": "Não é necessário API Key (instável)", + "prompt": "Palavra-chave", + "negative_prompt": "Palavra-chave negativa", + "txt2img": "Texto para imagem", + "img2img": "Imagem para imagem", + "please_enter_new_keyword": "Por favor, introduza uma nova palavra-chave", + "local_language": "Língua local", + "increase_weight_add_parentheses": "Aumentar o peso da palavra-chave: Adicionar ()", + "increase_weight_subtract_parentheses": "Aumentar o peso da palavra-chave: Subtrair ()", + "decrease_weight_add_brackets": "Diminuir o peso da palavra-chave: Adicionar []", + "decrease_weight_subtract_brackets": "Diminuir o peso da palavra-chave: Subtrair []", + "translate_keyword_to_local_language": "Traduzir palavra-chave para a língua local", + "copy_to_clipboard": "Copiar para a área de transferência", + "disable_keyword": "Desativar palavra-chave", + "enable_keyword": "Ativar palavra-chave", + "copy_keywords_to_clipboard": "Copiar todas as palavras-chave para a área de transferência", + "translate_keywords_to_local_language": "Traduzir todas as palavras-chave para a língua local", + "translate_keyword_to_english": "Traduzir para inglês", + "translate_all_keywords_to_english": "Traduzir todas as palavras-chave não inglesas para inglês", + "auto_translate_to_english": "Auto tradução para inglês após a introdução de uma nova palavra-chave", + "auto_translate_to_local_language": "Auto tradução para a língua local após a introdução de uma nova palavra-chave", + "translate_api": "API de tradução", + "history": "Histórico", + "clear_history": "Limpar histórico", + "clear_history_confirm": "Tem a certeza que pretende limpar o histórico?", + "clear_history_success": "O histórico foi limpo com sucesso", + "max_history_count": "Contagem máxima do histórico", + "favorite": "Lista de favoritos", + "add_to_favorite": "Adicionar aos favoritos", + "remove_from_favorite": "Remover dos favoritos", + "use": "Usar", + "click_to_edit": "Clique com o botão esquerdo do rato para editar", + "drop_to_order": "Mantenha pressionado o botão esquerdo do rato e arraste para reordenar", + "enter_to_save": "Pressione Enter para guardar a palavra-chave", + "enter_to_add": "Pressione Enter para adicionar a palavra-chave", + "translate_api_not_found": "API de tradução não encontrada", + "translate_language_not_support": "Língua de tradução não suportada", + "translate_api_not_support": "API de tradução não suportada", + "unset_name": "Nome não definido", + "no_history": "Sem histórico", + "get_history_error": "Erro ao obter histórico", + "no_favorite": "Sem favoritos", + "get_favorite_error": "Erro ao obter favoritos", + "hide_default_input_box": "Ocultar caixa de entrada padrão", + "show_default_input_box": "Mostrar caixa de entrada padrão", + "translate_test": "Teste de tradução", + "close": "Fechar", + "save": "Guardar", + "delete_all_keywords": "Eliminar todas as palavras-chave", + "delete_all_keywords_confirm": "Tem a certeza que pretende eliminar todas as palavras-chave?", + "whether_to_enable_tooltip": "Deseja ativar a caixa de ferramentas de sugestões para cada funcionalidade? Se já estiver familiarizado com todas as funcionalidades desta extensão, pode desmarcar esta opção.", + "delete_all_history": "Eliminar todo o histórico", + "delete_all_history_confirm": "Tem a certeza que pretende eliminar todo o histórico?", + "please_enter_the_content_here": "Por favor, digite o conteúdo", + "not_api_key_desc": "As interfaces de tradução gratuitas são instáveis e nem todas as interfaces podem ser usadas no seu computador. Por favor, solicite uma chave de API para usar a interface oficial estável.", + "setting_desc": "Configuração: API de tradução, tradução automática, mostrar/ocultar...", + "line_break_character": "Caractere de quebra de linha", + "tagcomplete_translate_desc": "

Aprimore a função de tradução usando danbooru.csv na extensão DominikDoom/a1111-sd-webui-tagcomplete para alcançar o objetivo de economizar solicitações de rede e tradução precisa.

Após clicar no botão Atualizar, os arquivos csv dos seguintes caminhos serão verificados: extensions\\a1111-sd-webui-tagcomplete\\tags, extensions\\sd-webui-prompt-all-in-one\\tags.

Você pode baixar arquivos csv do repositório git Physton/sd-webui-prompt-all-in-one-assets/tags.

", + "test": "Testar", + "refresh": "Atualizar", + "not_enable": "Não habilitado", + "translate_result": "O resultado da tradução de {0} é: {1}", + "not_found_csv_file": "Arquivo csv não encontrado", + "theme_extension": "Tema: Estilo de plugin de extensão", + "is_remove_space": "Indique se os espaços após cada vírgula na palavra-chave devem ser removidos.
A seleção automática remove os espaços (difícil de ler).
A desseleção mantém um espaço (afetando a contagem de TOKEN).", + "theme": "Tema", + "enhance": "Melhorar", + "only_csv_on_auto": "A tradução automática utiliza apenas a tradução CSV (não a tradução de rede). Para usar tanto a tradução CSV como a tradução de rede, clique manualmente no botão de tradução.", + "one_translate_all_keywords": "Traduzir todas as palavras-chave com um clique", + "auto_translate": "Traduzir automaticamente após inserir novas palavras-chave", + "is_remove_last_comma": "Remover ou não a última vírgula em Prompt.
Quando selecionado, a saída do Prompt é \"aaa,bbb,ccc\".
Quando não selecionado, a saída do Prompt é \"aaa,bbb,ccc,\".", + "is_keep_weight_zero": "Manter ou não o formato das palavras-chave com um peso de 0.
Quando selecionado, o formato da palavra-chave é mantido como \"(text:0)\".
Quando não selecionado, o formato não é mantido como \"test\".", + "is_keep_weight_one": "Manter ou não o formato das palavras-chave com um peso de 1.
Quando selecionado, o formato da palavra-chave é mantido como \"(text:1)\".
Quando não selecionado, o formato não é mantido como \"test\".", + "prompt_format": "Formato do prompt", + "tagcomplete_translate_desc2": "Selecionar o arquivo CSV errado resultará em uma tradução vazia ou '0'. Após alterar o arquivo, clique no botão de teste abaixo e verifique se o resultado traduzido é exibido corretamente em seu idioma local.", + "dblclick_to_disable": "Clique duas vezes para desativar/ativar palavra-chave", + "batch_operation": "Operação em lote", + "success": "Sucesso!", + "failed": "Falha!", + "packages_desc": "Alguns pacotes do Python são detectados como não instalados ou instalados sem sucesso. Você precisa clicar para tentar reinstalá-los. Depois que todos os pacotes forem instalados com sucesso, todas as funções podem funcionar normalmente.
Se você ainda não conseguir instalá-los com sucesso após clicar no botão de instalação, precisará copiar o comando manualmente e executá-lo no terminal.", + "installed": "Instalados", + "not_install": "Não instalado", + "install": "Instalar", + "packages_installing": "Iniciando a instalação ...... Se você precisar verificar o log de instalação detalhado, vá para o console WebUI para visualizá-lo. Depois que a instalação for concluída, esta janela será fechada automaticamente!", + "today_not_show": "Não mostrar esta janela hoje", + "free": "Grátis", + "apply_for_free": "Solicitar uso gratuito", + "use_chatgpt_gen_prompts": "Usar o ChatGPT para Gerar Prompt", + "input_image_desc": "Por favor, escreva a descrição da imagem, por exemplo: um gato sentado no topo de um edifício, uma foto muito realista e de alta definição.", + "api_config": "Configuração da API", + "image_desc": "Descrição da Imagem", + "preset": "Predefinição", + "ai_one": "Primeira frase enviada para o AI", + "ai_two": "Segunda frase enviada para o AI", + "restore_to_default": "Restaurar às predefinições do sistema", + "generate": "Gerar", + "generate_result": "Resultado da Geração", + "is_required": "{0} é obrigatório!", + "is_not_dict": "{0} deve ser um dicionário!", + "no_response_from": "Sem resposta de {0}!", + "request_error": "Erro de requisição {0}!", + "response_is_empty": "A resposta de {0} está vazia!", + "response_error": "Erro de resposta de {0}!", + "install_success": "{0} instalado com sucesso!", + "install_failed": "Erro: falha na instalação de {0}!", + "translate_text_is_empty": "O texto de tradução está vazio!", + "about_desc": "Sobre, Atualizações, Ajuda, Documentação", + "version": "Versão", + "unknown_version": "Versão desconhecida", + "has_new_version": "Há uma nova versão disponível, por favor atualize", + "wiki_desc": "Tutorial de instalação, recursos detalhados, instruções de uso, perguntas frequentes, etc. Veja:" + } + }, + { + "code": "pa_Guru_IN", + "name": "ਪੰਜਾਬੀ (ਗੁਰਮੁਖੀ, ਭਾਰਤ)", + "lang": {} + }, + { + "code": "otq_Latn_MX", + "name": "Querétaro Otomi (Latn, México)", + "lang": {} + }, + { + "code": "ro_RO", + "name": "Română (România)", + "lang": {} + }, + { + "code": "ru_RU", + "name": "Русский (Россия)", + "lang": { + "need_api_key": "API-ключ необходим", + "dont_need_api_key": "API-ключ не требуется (нестабильно)", + "prompt": "Подсказка", + "negative_prompt": "Обратная подсказка", + "txt2img": "Текст в картинку", + "img2img": "Картинка в картинку", + "please_enter_new_keyword": "Введите новое ключевое слово", + "local_language": "Локальный язык", + "increase_weight_add_parentheses": "Увеличить вес ключевого слова: добавить ()", + "increase_weight_subtract_parentheses": "Увеличить вес ключевого слова: убрать ()", + "decrease_weight_add_brackets": "Уменьшить вес ключевого слова: добавить []", + "decrease_weight_subtract_brackets": "Уменьшить вес ключевого слова: убрать []", + "translate_keyword_to_local_language": "Перевести ключевое слово на локальный язык", + "copy_to_clipboard": "Копировать в буфер обмена", + "disable_keyword": "Отключить ключевое слово", + "enable_keyword": "Включить ключевое слово", + "copy_keywords_to_clipboard": "Копировать все ключевые слова в буфер обмена", + "translate_keywords_to_local_language": "Перевести все ключевые слова на локальный язык", + "translate_keyword_to_english": "Перевести на английский", + "translate_all_keywords_to_english": "Перевести все ключевые слова, кроме английского, на английский", + "auto_translate_to_english": "Автоматически переводить на английский после ввода нового ключевого слова", + "auto_translate_to_local_language": "Автоматически переводить на локальный язык после ввода нового ключевого слова", + "translate_api": "API для перевода", + "history": "История", + "clear_history": "Очистить историю", + "clear_history_confirm": "Вы действительно хотите очистить историю?", + "clear_history_success": "История была успешно очищена", + "max_history_count": "Максимальное количество записей истории", + "favorite": "Избранное", + "add_to_favorite": "Добавить в избранное", + "remove_from_favorite": "Убрать из избранного", + "use": "Использование", + "click_to_edit": "Щелкните левой кнопкой мыши, чтобы редактировать", + "drop_to_order": "Удерживайте левую кнопку мыши и перетаскивайте для сортировки", + "enter_to_save": "Нажмите Enter, чтобы сохранить ключевое слово", + "enter_to_add": "Нажмите Enter, чтобы добавить ключевое слово", + "translate_api_not_found": "API для перевода не найден", + "translate_language_not_support": "Язык перевода не поддерживается", + "translate_api_not_support": "API для перевода не поддерживается", + "unset_name": "Не задано имя", + "no_history": "Нет записей в истории", + "get_history_error": "Ошибка при получении истории", + "no_favorite": "Нет избранных элементов", + "get_favorite_error": "Ошибка при получении избранного", + "hide_default_input_box": "Скрыть стандартное поле ввода", + "show_default_input_box": "Показать стандартное поле ввода", + "translate_test": "Тест перевода", + "close": "Закрыть", + "save": "Сохранить", + "delete_all_keywords": "Удалить все ключевые слова", + "delete_all_keywords_confirm": "Вы действительно хотите удалить все ключевые слова?", + "whether_to_enable_tooltip": "Включить всплывающие подсказки для каждой функции. Если вы уже владеете всеми функциями расширения, можете снимать галочку.", + "delete_all_history": "Удалить всю историю", + "delete_all_history_confirm": "Вы действительно хотите удалить всю историю?", + "please_enter_the_content_here": "Пожалуйста, введите содержимое", + "not_api_key_desc": "Бесплатные интерфейсы перевода нестабильны и не каждый интерфейс можно использовать на вашем компьютере. Пожалуйста, получите API Key для использования стабильного официального интерфейса", + "setting_desc": "Настройки: API перевода, автоматический перевод, показать/скрыть...", + "line_break_character": "Символ перевода строки", + "tagcomplete_translate_desc": "

Улучшение функции перевода с использованием danbooru.csv в расширении DominikDoom/a1111-sd-webui-tagcomplete для достижения цели экономии запросов к сети и точного перевода.

После нажатия кнопки Обновить будут просканированы CSV-файлы из следующих путей: extensions\\a1111-sd-webui-tagcomplete\\tags, extensions\\sd-webui-prompt-all-in-one\\tags.

Вы можете скачать CSV-файлы из репозитория Git Physton/sd-webui-prompt-all-in-one-assets/tags.

", + "test": "Тест", + "refresh": "Обновить", + "not_enable": "Не активировано", + "translate_result": "Результат перевода {0}: {1}", + "not_found_csv_file": "CSV-файл не найден", + "theme_extension": "Тема: Стиль расширения плагина", + "is_remove_space": "Указывает, нужно ли удалять пробелы после каждой запятой в ключевом слове.
При выборе будет автоматически удалены пробелы (трудно читать).
Если этот параметр не выбран, то будет сохранен один пробел (влияет на подсчет TOKEN).", + "theme": "Тема", + "enhance": "Улучшить", + "only_csv_on_auto": "Автоматический перевод использует только CSV-перевод (не сетевой перевод). Чтобы использовать как CSV-, так и сетевой перевод, вручную нажмите кнопку перевода.", + "one_translate_all_keywords": "Перевести все ключевые слова одним нажатием кнопки", + "auto_translate": "Автоматический перевод новых ключевых слов", + "is_remove_last_comma": "Удалить последнюю запятую в Prompt или нет?
Если выбрано, то в Prompt будет выводиться \"aaa,bbb,ccc\".
Если не выбрано, то в Prompt будет выводиться \"aaa,bbb,ccc,\".", + "is_keep_weight_zero": "Сохранять формат ключевых слов с нулевым весом или нет?
Если выбрано, то формат ключевых слов будет сохранен как \"(test:0)\".
Если не выбрано, то формат будет \"test\" без скобок.", + "is_keep_weight_one": "Сохранять формат ключевых слов с весом 1 или нет?
Если выбрано, то формат ключевых слов будет сохранен как \"(test:1)\".
Если не выбрано, то формат будет \"test\" без скобок.", + "prompt_format": "Формат Prompt", + "tagcomplete_translate_desc2": "Выбор неправильного файла CSV приведет к пустому или «0» переводу. После изменения файла нажмите кнопку тестирования ниже и проверьте, правильно ли отображен переведенный результат на вашем локальном языке.", + "dblclick_to_disable": "Двойной щелчок, чтобы отключить/включить ключевое слово", + "batch_operation": "Пакетная операция", + "success": "Успех!", + "failed": "Не удалось!", + "packages_desc": "Некоторые пакеты Python обнаружены как незапущенные или запущенные безуспешно. Вам нужно щелкнуть, чтобы попробовать повторно установить их. После того, как все пакеты будут успешно установлены, все функции могут работать нормально.
Если вы по-прежнему не можете успешно установить их после нажатия кнопки установки, вам нужно вручную скопировать команду и выполнить ее в терминале.", + "installed": "Установленный", + "not_install": "Не установлен", + "install": "Установить", + "packages_installing": "Запуск установки ...... Если вам нужно проверить подробный журнал установки, перейдите на консоль WebUI, чтобы просмотреть его. После завершения установки это окно будет автоматически закрыто!", + "today_not_show": "Не показывать это окно сегодня", + "free": "Бесплатно", + "apply_for_free": "Подать заявку на бесплатное использование", + "use_chatgpt_gen_prompts": "Использовать ChatGPT для генерации промптов", + "input_image_desc": "Введите описание изображения, например: кошка, сидящая на вершине здания, очень высокое разрешение, очень реалистичное фото.", + "api_config": "Конфигурация API", + "image_desc": "Описание изображения", + "preset": "Предустановка", + "ai_one": "Первое предложение, отправленное AI", + "ai_two": "Второе предложение, отправленное AI", + "restore_to_default": "Восстановить настройки по умолчанию системы", + "generate": "Генерировать", + "generate_result": "Результат генерации", + "is_required": "Необходимо указать {0}!", + "is_not_dict": "{0} должен быть словарем!", + "no_response_from": "Нет ответа от {0}!", + "request_error": "Ошибка запроса {0}!", + "response_is_empty": "Ответ от {0} пуст!", + "response_error": "Ошибка ответа от {0}!", + "install_success": "{0} успешно установлен!", + "install_failed": "Ошибка: не удалось установить {0}!", + "translate_text_is_empty": "Текст для перевода пуст!", + "about_desc": "О программе, Обновления, Помощь, Документация", + "version": "Версия", + "unknown_version": "Неизвестная версия", + "has_new_version": "Доступна новая версия, пожалуйста, обновитесь", + "wiki_desc": "Инструкция по установке, подробные функции, инструкции по использованию, часто задаваемые вопросы и т. д. Смотрите:" + } + }, + { + "code": "sm_Latn_WS", + "name": "Samoan (Latn, Samoa)", + "lang": {} + }, + { + "code": "sr_Cyrl_RS", + "name": "Српски (ћирилица, Србија)", + "lang": {} + }, + { + "code": "sr_Latn_RS", + "name": "Srpski (latinica, Srbija)", + "lang": {} + }, + { + "code": "sk_SK", + "name": "Slovenčina (Slovensko)", + "lang": {} + }, + { + "code": "sl_SI", + "name": "Slovenščina (Slovenija)", + "lang": {} + }, + { + "code": "so_SO", + "name": "Soomaali (Soomaaliya)", + "lang": {} + }, + { + "code": "es_ES", + "name": "Español (España)", + "lang": { + "need_api_key": "Se necesita una clave de API", + "dont_need_api_key": "No se necesita una clave de API (inestable)", + "prompt": "Palabra clave", + "negative_prompt": "Palabra clave negativa", + "txt2img": "Texto a imagen", + "img2img": "Imagen a imagen", + "please_enter_new_keyword": "Por favor, introduce una nueva palabra clave", + "local_language": "Idioma local", + "increase_weight_add_parentheses": "Aumentar el peso de la palabra clave: añadir ()", + "increase_weight_subtract_parentheses": "Aumentar el peso de la palabra clave: restar ()", + "decrease_weight_add_brackets": "Disminuir el peso de la palabra clave: añadir []", + "decrease_weight_subtract_brackets": "Disminuir el peso de la palabra clave: restar []", + "translate_keyword_to_local_language": "Traducir palabra clave al idioma local", + "copy_to_clipboard": "Copiar al portapapeles", + "disable_keyword": "Desactivar palabra clave", + "enable_keyword": "Activar palabra clave", + "copy_keywords_to_clipboard": "Copiar todas las palabras clave al portapapeles", + "translate_keywords_to_local_language": "Traducir todas las palabras clave al idioma local", + "translate_keyword_to_english": "Traducir al inglés", + "translate_all_keywords_to_english": "Traducir todas las palabras clave no inglesas al inglés", + "auto_translate_to_english": "Traducción automática al inglés después de ingresar una nueva palabra clave", + "auto_translate_to_local_language": "Traducción automática al idioma local después de ingresar una nueva palabra clave", + "translate_api": "API de traducción", + "history": "Historial", + "clear_history": "Borrar historial", + "clear_history_confirm": "¿Seguro que quieres borrar el historial?", + "clear_history_success": "Historial borrado correctamente", + "max_history_count": "Número máximo de entradas en el historial", + "favorite": "Favoritos", + "add_to_favorite": "Añadir a favoritos", + "remove_from_favorite": "Eliminar de favoritos", + "use": "Utilizar", + "click_to_edit": "Haz clic en la izquierda para editar", + "drop_to_order": "Mantén pulsado el botón izquierdo del ratón y arrastra para ordenar", + "enter_to_save": "Presiona Enter para guardar la palabra clave", + "enter_to_add": "Presiona Enter para añadir una palabra clave", + "translate_api_not_found": "API de traducción no encontrada", + "translate_language_not_support": "Idioma de traducción no soportado", + "translate_api_not_support": "API de traducción no soportada", + "unset_name": "Nombre no establecido", + "no_history": "No hay historial", + "get_history_error": "Error al obtener el historial", + "no_favorite": "No hay favoritos", + "get_favorite_error": "Error al obtener los favoritos", + "hide_default_input_box": "Ocultar cuadro de entrada predeterminado", + "show_default_input_box": "Mostrar cuadro de entrada predeterminado", + "translate_test": "Prueba de traducción", + "close": "Cerrar", + "save": "Guardar", + "delete_all_keywords": "Eliminar todas las palabras clave", + "delete_all_keywords_confirm": "¿Estás seguro de que quieres eliminar todas las palabras clave?", + "whether_to_enable_tooltip": "¿Activar información sobre herramientas para cada función? Si ya estás familiarizado con todas las funciones de esta extensión, puedes desactivar esta opción.", + "delete_all_history": "Eliminar todo el historial", + "delete_all_history_confirm": "¿Seguro que quieres eliminar todo el historial?", + "please_enter_the_content_here": "Por favor, ingrese el contenido", + "not_api_key_desc": "Las interfaces de traducción gratuitas son inestables y no todas las interfaces se pueden usar en su computadora. Por favor, solicite una clave de API para usar la interfaz oficial estable.", + "setting_desc": "Configuración: API de traducción, traducción automática, mostrar/ocultar...", + "line_break_character": "Carácter de salto de línea", + "tagcomplete_translate_desc": "

Mejore la función de traducción utilizando danbooru.csv en la extensión DominikDoom/a1111-sd-webui-tagcomplete para lograr el objetivo de ahorrar solicitudes de red y traducción precisa.

Después de hacer clic en el botón Actualizar, se escanearán los archivos csv de las siguientes rutas: extensiones\\a1111-sd-webui-tagcomplete\\etiquetas, extensiones\\sd-webui-prompt-all-in-one\\etiquetas.

Puede descargar archivos CSV desde el repositorio Git Physton/sd-webui-prompt-all-in-one-assets/tags.

", + "test": "Prueba", + "refresh": "Actualizar", + "not_enable": "No habilitado", + "translate_result": "El resultado de la traducción de {0} es: {1}", + "not_found_csv_file": "Archivo csv no encontrado", + "theme_extension": "Tema: Estilo de complemento de extensión", + "is_remove_space": "Indica si deben eliminarse los espacios después de cada coma en la palabra clave.
La selección automática elimina los espacios (difícil de leer).
La deselección conserva un espacio (afectando el recuento de TOKEN).", + "theme": "Tema", + "enhance": "Mejorar", + "only_csv_on_auto": "La traducción automática utiliza solo la traducción CSV (no la traducción de red). Para utilizar tanto la traducción CSV como la traducción de red, haga clic en el botón de traducción manualmente.", + "one_translate_all_keywords": "Traducir todas las palabras clave con un solo clic", + "auto_translate": "Traducción automática de nuevas palabras clave", + "is_remove_last_comma": "¿Eliminar la última coma en el Prompt?
Si está marcado, el Prompt mostrará \"aaa,bbb,ccc\".
Si no está marcado, el Prompt mostrará \"aaa,bbb,ccc,\".", + "is_keep_weight_zero": "¿Mantener el formato de palabras clave con peso 0?
Si está marcado, el formato será \"(test:0)\".
Si no está marcado, el formato será \"test\" sin paréntesis.", + "is_keep_weight_one": "¿Mantener el formato de palabras clave con peso 1?
Si está marcado, el formato será \"(test:1)\".
Si no está marcado, el formato será \"test\" sin paréntesis.", + "prompt_format": "Formato de Prompt", + "tagcomplete_translate_desc2": "Seleccionar el archivo CSV incorrecto dará como resultado una traducción vacía o '0'. Después de cambiar el archivo, por favor haga clic en el botón de prueba a continuación y compruebe si el resultado traducido se muestra correctamente en su idioma local.", + "dblclick_to_disable": "Doble clic para desactivar/activar la palabra clave", + "batch_operation": "Operación por lotes", + "success": "Éxito!", + "failed": "Fracaso!", + "packages_desc": "Algunos paquetes de Python se detectan como no instalados o instalados sin éxito. Debe hacer clic para intentar reinstalarlos. Después de que todos los paquetes estén instalados correctamente, todas las funciones pueden funcionar normalmente.
Si aún no puede instalarlos con éxito después de hacer clic en el botón de instalación, debe copiar el comando manualmente y ejecutarlo en la terminal.", + "installed": "Instalado", + "not_install": "No instalado", + "install": "Instalar", + "packages_installing": "Iniciando la instalación...... Si necesita verificar el registro de instalación detallado, vaya a la consola WebUI para verlo. ¡Después de que finalice la instalación, esta ventana se cerrará automáticamente!", + "today_not_show": "No mostrar esta ventana hoy", + "free": "Gratis", + "apply_for_free": "Solicitar uso gratuito", + "use_chatgpt_gen_prompts": "Usar ChatGPT para generar Prompts", + "input_image_desc": "Ingrese la descripción de la imagen, por ejemplo: un gato sentado en la parte superior de un edificio, una foto muy realista y de alta definición.", + "api_config": "Configuración del API", + "image_desc": "Descripción de la Imagen", + "preset": "Preajuste", + "ai_one": "Primera oración enviada a AI", + "ai_two": "Segunda oración enviada a AI", + "restore_to_default": "Restaurar a los valores predeterminados del sistema", + "generate": "Generar", + "generate_result": "Generar Resultado", + "is_required": "¡{0} es obligatorio!", + "is_not_dict": "¡{0} debe ser un diccionario!", + "no_response_from": "¡No se ha recibido respuesta de {0}!", + "request_error": "¡Error de solicitud {0}!", + "response_is_empty": "¡La respuesta de {0} está vacía!", + "response_error": "¡Error de respuesta de {0}!", + "install_success": "¡{0} instalado correctamente!", + "install_failed": "Error: ¡No se pudo instalar {0}!", + "translate_text_is_empty": "¡El texto de traducción está vacío!", + "about_desc": "Acerca de, Actualizaciones, Ayuda, Documentación", + "version": "Versión", + "unknown_version": "Versión desconocida", + "has_new_version": "Hay una nueva versión disponible, por favor actualiza", + "wiki_desc": "Tutorial de instalación, características detalladas, instrucciones de uso, preguntas frecuentes, etc. Ver:" + } + }, + { + "code": "sw_KE", + "name": "Kiswahili (Kenya)", + "lang": {} + }, + { + "code": "sv_SE", + "name": "Svenska (Sverige)", + "lang": {} + }, + { + "code": "ty_PF", + "name": "Reo Tahiti (Polynésie française)", + "lang": {} + }, + { + "code": "ta_IN", + "name": "தமிழ் (இந்தியா)", + "lang": {} + }, + { + "code": "tt_Latn_RU", + "name": "Татарча (латин, Россия)", + "lang": {} + }, + { + "code": "te_IN", + "name": "తెలుగు (భారత)", + "lang": {} + }, + { + "code": "th_TH", + "name": "ไทย (ไทย)", + "lang": {} + }, + { + "code": "bo_CN", + "name": "བོད་ཡིག (རྒྱ་གར།)", + "lang": {} + }, + { + "code": "ti_ET", + "name": "ትግርኛ (ኢትዮጵያ)", + "lang": {} + }, + { + "code": "to_TO", + "name": "lea fakatonga (Tonga)", + "lang": {} + }, + { + "code": "tr_TR", + "name": "Türkçe (Türkiye)", + "lang": {} + }, + { + "code": "uk_UA", + "name": "Українська (Україна)", + "lang": {} + }, + { + "code": "ur_PK", + "name": "اردو (پاکستان)", + "lang": {} + }, + { + "code": "ug_Arab_CN", + "name": "ئۇيغۇرچە (ئۇيغۇرچە، جۇڭگو)", + "lang": {} + }, + { + "code": "uz_Latn_UZ", + "name": "O'zbekcha (Lotin, O'zbekiston)", + "lang": {} + }, + { + "code": "vi_VN", + "name": "Tiếng Việt (Việt Nam)", + "lang": {} + }, + { + "code": "cy_GB", + "name": "Cymraeg (Y Deyrnas Unedig)", + "lang": {} + }, + { + "code": "yua_MX", + "name": "Yucatec Maya (México)", + "lang": {} + }, + { + "code": "zu_ZA", + "name": "isiZulu (iNingizimu Afrika)", + "lang": {} + } + ] +} \ No newline at end of file diff --git a/i18n.json.REMOVED.git-id b/i18n.json.REMOVED.git-id deleted file mode 100644 index cb8ae2d..0000000 --- a/i18n.json.REMOVED.git-id +++ /dev/null @@ -1 +0,0 @@ -f6a24778b29e3ac4ce40489a30befea649c34fe9 \ No newline at end of file diff --git a/javascript/main.entry.js b/javascript/main.entry.js new file mode 100644 index 0000000..eee6bab --- /dev/null +++ b/javascript/main.entry.js @@ -0,0 +1,67 @@ +(function(Tn){typeof define=="function"&&define.amd?define(Tn):Tn()})(function(){"use strict";var t1=Object.defineProperty;var n1=(Tn,Kt,Ai)=>Kt in Tn?t1(Tn,Kt,{enumerable:!0,configurable:!0,writable:!0,value:Ai}):Tn[Kt]=Ai;var Ed=(Tn,Kt,Ai)=>(n1(Tn,typeof Kt!="symbol"?Kt+"":Kt,Ai),Ai);function Tn(e,t){const n=Object.create(null),i=e.split(",");for(let r=0;r!!n[r.toLowerCase()]:r=>!!n[r]}function Kt(e){if(Ue(e)){const t={};for(let n=0;n{if(n){const i=n.split(xd);i.length>1&&(t[i[0].trim()]=i[1].trim())}}),t}function At(e){let t="";if(Mt(e))t=e;else if(Ue(e))for(let n=0;nAr(n,t))}const ce=e=>Mt(e)?e:e==null?"":Ue(e)||Tt(e)&&(e.toString===jl||!Je(e.toString))?JSON.stringify(e,Fl,2):String(e),Fl=(e,t)=>t&&t.__v_isRef?Fl(e,t.value):er(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[i,r])=>(n[`${i} =>`]=r,n),{})}:tr(t)?{[`Set(${t.size})`]:[...t.values()]}:Tt(t)&&!Ue(t)&&!$l(t)?String(t):t,wt={},Qi=[],Dn=()=>{},Od=()=>!1,Dd=/^on[^a-z]/,ws=e=>Dd.test(e),jo=e=>e.startsWith("onUpdate:"),Gt=Object.assign,$o=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Pd=Object.prototype.hasOwnProperty,nt=(e,t)=>Pd.call(e,t),Ue=Array.isArray,er=e=>Or(e)==="[object Map]",tr=e=>Or(e)==="[object Set]",Hl=e=>Or(e)==="[object Date]",Je=e=>typeof e=="function",Mt=e=>typeof e=="string",Lr=e=>typeof e=="symbol",Tt=e=>e!==null&&typeof e=="object",Bl=e=>Tt(e)&&Je(e.then)&&Je(e.catch),jl=Object.prototype.toString,Or=e=>jl.call(e),Id=e=>Or(e).slice(8,-1),$l=e=>Or(e)==="[object Object]",Uo=e=>Mt(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Ts=Tn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),_s=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Nd=/-(\w)/g,Un=_s(e=>e.replace(Nd,(t,n)=>n?n.toUpperCase():"")),Rd=/\B([A-Z])/g,nr=_s(e=>e.replace(Rd,"-$1").toLowerCase()),Es=_s(e=>e.charAt(0).toUpperCase()+e.slice(1)),Wo=_s(e=>e?`on${Es(e)}`:""),xs=(e,t)=>!Object.is(e,t),Ss=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},As=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Ul;const Md=()=>Ul||(Ul=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let Pn;class Fd{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Pn,!t&&Pn&&(this.index=(Pn.scopes||(Pn.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=Pn;try{return Pn=this,t()}finally{Pn=n}}}on(){Pn=this}off(){Pn=this.parent}stop(t){if(this._active){let n,i;for(n=0,i=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},Wl=e=>(e.w&gi)>0,Vl=e=>(e.n&gi)>0,jd=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let i=0;i{(g==="length"||g>=d)&&c.push(m)})}else switch(n!==void 0&&c.push(l.get(n)),t){case"add":Ue(e)?Uo(n)&&c.push(l.get("length")):(c.push(l.get(Li)),er(e)&&c.push(l.get(zo)));break;case"delete":Ue(e)||(c.push(l.get(Li)),er(e)&&c.push(l.get(zo)));break;case"set":er(e)&&c.push(l.get(Li));break}if(c.length===1)c[0]&&Yo(c[0]);else{const d=[];for(const m of c)m&&d.push(...m);Yo(Vo(d))}}function Yo(e,t){const n=Ue(e)?e:[...e];for(const i of n)i.computed&&Xl(i);for(const i of n)i.computed||Xl(i)}function Xl(e,t){(e!==In||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const Ud=Tn("__proto__,__v_isRef,__isVue"),Yl=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Lr)),Wd=Go(),Vd=Go(!1,!0),Kd=Go(!0),Gl=qd();function qd(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const i=ht(this);for(let o=0,l=this.length;o{e[t]=function(...n){ir();const i=ht(this)[t].apply(this,n);return rr(),i}}),e}function zd(e){const t=ht(this);return tn(t,"has",e),t.hasOwnProperty(e)}function Go(e=!1,t=!1){return function(i,r,o){if(r==="__v_isReactive")return!e;if(r==="__v_isReadonly")return e;if(r==="__v_isShallow")return t;if(r==="__v_raw"&&o===(e?t?up:su:t?ru:iu).get(i))return i;const l=Ue(i);if(!e){if(l&&nt(Gl,r))return Reflect.get(Gl,r,o);if(r==="hasOwnProperty")return zd}const c=Reflect.get(i,r,o);return(Lr(r)?Yl.has(r):Ud(r))||(e||tn(i,"get",r),t)?c:Jt(c)?l&&Uo(r)?c:c.value:Tt(c)?e?ou(c):Qo(c):c}}const Xd=Jl(),Yd=Jl(!0);function Jl(e=!1){return function(n,i,r,o){let l=n[i];if(Pr(l)&&Jt(l)&&!Jt(r))return!1;if(!e&&(!ta(r)&&!Pr(r)&&(l=ht(l),r=ht(r)),!Ue(n)&&Jt(l)&&!Jt(r)))return l.value=r,!0;const c=Ue(n)&&Uo(i)?Number(i)e,Ls=e=>Reflect.getPrototypeOf(e);function Os(e,t,n=!1,i=!1){e=e.__v_raw;const r=ht(e),o=ht(t);n||(t!==o&&tn(r,"get",t),tn(r,"get",o));const{has:l}=Ls(r),c=i?Jo:n?ia:na;if(l.call(r,t))return c(e.get(t));if(l.call(r,o))return c(e.get(o));e!==r&&e.get(t)}function Ds(e,t=!1){const n=this.__v_raw,i=ht(n),r=ht(e);return t||(e!==r&&tn(i,"has",e),tn(i,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function Ps(e,t=!1){return e=e.__v_raw,!t&&tn(ht(e),"iterate",Li),Reflect.get(e,"size",e)}function Ql(e){e=ht(e);const t=ht(this);return Ls(t).has.call(t,e)||(t.add(e),ii(t,"add",e,e)),this}function eu(e,t){t=ht(t);const n=ht(this),{has:i,get:r}=Ls(n);let o=i.call(n,e);o||(e=ht(e),o=i.call(n,e));const l=r.call(n,e);return n.set(e,t),o?xs(t,l)&&ii(n,"set",e,t):ii(n,"add",e,t),this}function tu(e){const t=ht(this),{has:n,get:i}=Ls(t);let r=n.call(t,e);r||(e=ht(e),r=n.call(t,e)),i&&i.call(t,e);const o=t.delete(e);return r&&ii(t,"delete",e,void 0),o}function nu(){const e=ht(this),t=e.size!==0,n=e.clear();return t&&ii(e,"clear",void 0,void 0),n}function Is(e,t){return function(i,r){const o=this,l=o.__v_raw,c=ht(l),d=t?Jo:e?ia:na;return!e&&tn(c,"iterate",Li),l.forEach((m,g)=>i.call(r,d(m),d(g),o))}}function Ns(e,t,n){return function(...i){const r=this.__v_raw,o=ht(r),l=er(o),c=e==="entries"||e===Symbol.iterator&&l,d=e==="keys"&&l,m=r[e](...i),g=n?Jo:t?ia:na;return!t&&tn(o,"iterate",d?zo:Li),{next(){const{value:w,done:T}=m.next();return T?{value:w,done:T}:{value:c?[g(w[0]),g(w[1])]:g(w),done:T}},[Symbol.iterator](){return this}}}}function vi(e){return function(...t){return e==="delete"?!1:this}}function tp(){const e={get(o){return Os(this,o)},get size(){return Ps(this)},has:Ds,add:Ql,set:eu,delete:tu,clear:nu,forEach:Is(!1,!1)},t={get(o){return Os(this,o,!1,!0)},get size(){return Ps(this)},has:Ds,add:Ql,set:eu,delete:tu,clear:nu,forEach:Is(!1,!0)},n={get(o){return Os(this,o,!0)},get size(){return Ps(this,!0)},has(o){return Ds.call(this,o,!0)},add:vi("add"),set:vi("set"),delete:vi("delete"),clear:vi("clear"),forEach:Is(!0,!1)},i={get(o){return Os(this,o,!0,!0)},get size(){return Ps(this,!0)},has(o){return Ds.call(this,o,!0)},add:vi("add"),set:vi("set"),delete:vi("delete"),clear:vi("clear"),forEach:Is(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=Ns(o,!1,!1),n[o]=Ns(o,!0,!1),t[o]=Ns(o,!1,!0),i[o]=Ns(o,!0,!0)}),[e,n,t,i]}const[np,ip,rp,sp]=tp();function Zo(e,t){const n=t?e?sp:rp:e?ip:np;return(i,r,o)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?i:Reflect.get(nt(n,r)&&r in i?n:i,r,o)}const op={get:Zo(!1,!1)},ap={get:Zo(!1,!0)},lp={get:Zo(!0,!1)},iu=new WeakMap,ru=new WeakMap,su=new WeakMap,up=new WeakMap;function cp(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function fp(e){return e.__v_skip||!Object.isExtensible(e)?0:cp(Id(e))}function Qo(e){return Pr(e)?e:ea(e,!1,Zl,op,iu)}function dp(e){return ea(e,!1,ep,ap,ru)}function ou(e){return ea(e,!0,Qd,lp,su)}function ea(e,t,n,i,r){if(!Tt(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=r.get(e);if(o)return o;const l=fp(e);if(l===0)return e;const c=new Proxy(e,l===2?i:n);return r.set(e,c),c}function sr(e){return Pr(e)?sr(e.__v_raw):!!(e&&e.__v_isReactive)}function Pr(e){return!!(e&&e.__v_isReadonly)}function ta(e){return!!(e&&e.__v_isShallow)}function au(e){return sr(e)||Pr(e)}function ht(e){const t=e&&e.__v_raw;return t?ht(t):e}function lu(e){return ks(e,"__v_skip",!0),e}const na=e=>Tt(e)?Qo(e):e,ia=e=>Tt(e)?ou(e):e;function pp(e){mi&&In&&(e=ht(e),zl(e.dep||(e.dep=Vo())))}function hp(e,t){e=ht(e);const n=e.dep;n&&Yo(n)}function Jt(e){return!!(e&&e.__v_isRef===!0)}function gp(e){return Jt(e)?e.value:e}const mp={get:(e,t,n)=>gp(Reflect.get(e,t,n)),set:(e,t,n,i)=>{const r=e[t];return Jt(r)&&!Jt(n)?(r.value=n,!0):Reflect.set(e,t,n,i)}};function uu(e){return sr(e)?e:new Proxy(e,mp)}var cu;class vp{constructor(t,n,i,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this[cu]=!1,this._dirty=!0,this.effect=new Xo(t,()=>{this._dirty||(this._dirty=!0,hp(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=i}get value(){const t=ht(this);return pp(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}cu="__v_isReadonly";function yp(e,t,n=!1){let i,r;const o=Je(e);return o?(i=e,r=Dn):(i=e.get,r=e.set),new vp(i,r,o||!r,n)}function r1(e,...t){}function yi(e,t,n,i){let r;try{r=i?e(...i):e()}catch(o){Rs(o,t,n)}return r}function Nn(e,t,n,i){if(Je(e)){const o=yi(e,t,n,i);return o&&Bl(o)&&o.catch(l=>{Rs(l,t,n)}),o}const r=[];for(let o=0;o>>1;Nr(qt[i])Wn&&qt.splice(t,1)}function _p(e){Ue(e)?or.push(...e):(!ri||!ri.includes(e,e.allowRecurse?Oi+1:Oi))&&or.push(e),du()}function pu(e,t=Ir?Wn+1:0){for(;tNr(n)-Nr(i)),Oi=0;Oie.id==null?1/0:e.id,Ep=(e,t)=>{const n=Nr(e)-Nr(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function gu(e){ra=!1,Ir=!0,qt.sort(Ep);const t=Dn;try{for(Wn=0;WnMt(N)?N.trim():N)),w&&(r=n.map(As))}let c,d=i[c=Wo(t)]||i[c=Wo(Un(t))];!d&&o&&(d=i[c=Wo(nr(t))]),d&&Nn(d,e,6,r);const m=i[c+"Once"];if(m){if(!e.emitted)e.emitted={};else if(e.emitted[c])return;e.emitted[c]=!0,Nn(m,e,6,r)}}function mu(e,t,n=!1){const i=t.emitsCache,r=i.get(e);if(r!==void 0)return r;const o=e.emits;let l={},c=!1;if(!Je(e)){const d=m=>{const g=mu(m,t,!0);g&&(c=!0,Gt(l,g))};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}return!o&&!c?(Tt(e)&&i.set(e,null),null):(Ue(o)?o.forEach(d=>l[d]=null):Gt(l,o),Tt(e)&&i.set(e,l),l)}function Ms(e,t){return!e||!ws(t)?!1:(t=t.slice(2).replace(/Once$/,""),nt(e,t[0].toLowerCase()+t.slice(1))||nt(e,nr(t))||nt(e,t))}let _n=null,vu=null;function Fs(e){const t=_n;return _n=e,vu=e&&e.type.__scopeId||null,t}function Sp(e,t=_n,n){if(!t||e._n)return e;const i=(...r)=>{i._d&&$u(-1);const o=Fs(t);let l;try{l=e(...r)}finally{Fs(o),i._d&&$u(1)}return l};return i._n=!0,i._c=!0,i._d=!0,i}function s1(){}function aa(e){const{type:t,vnode:n,proxy:i,withProxy:r,props:o,propsOptions:[l],slots:c,attrs:d,emit:m,render:g,renderCache:w,data:T,setupState:N,ctx:S,inheritAttrs:O}=e;let U,P;const Z=Fs(e);try{if(n.shapeFlag&4){const L=r||i;U=Vn(g.call(L,L,w,o,N,T,S)),P=d}else{const L=t;U=Vn(L.length>1?L(o,{attrs:d,slots:c,emit:m}):L(o,null)),P=t.props?d:kp(d)}}catch(L){Mr.length=0,Rs(L,e,1),U=ve(Ri)}let se=U;if(P&&O!==!1){const L=Object.keys(P),{shapeFlag:ke}=se;L.length&&ke&7&&(l&&L.some(jo)&&(P=Ap(P,l)),se=ar(se,P))}return n.dirs&&(se=ar(se),se.dirs=se.dirs?se.dirs.concat(n.dirs):n.dirs),n.transition&&(se.transition=n.transition),U=se,Fs(Z),U}const kp=e=>{let t;for(const n in e)(n==="class"||n==="style"||ws(n))&&((t||(t={}))[n]=e[n]);return t},Ap=(e,t)=>{const n={};for(const i in e)(!jo(i)||!(i.slice(9)in t))&&(n[i]=e[i]);return n};function Lp(e,t,n){const{props:i,children:r,component:o}=e,{props:l,children:c,patchFlag:d}=t,m=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&d>=0){if(d&1024)return!0;if(d&16)return i?yu(i,l,m):!!l;if(d&8){const g=t.dynamicProps;for(let w=0;we.__isSuspense;function Pp(e,t){t&&t.pendingBranch?Ue(e)?t.effects.push(...e):t.effects.push(e):_p(e)}function Ip(e,t){if(It){let n=It.provides;const i=It.parent&&It.parent.provides;i===n&&(n=It.provides=Object.create(i)),n[e]=t}}function Hs(e,t,n=!1){const i=It||_n;if(i){const r=i.parent==null?i.vnode.appContext&&i.vnode.appContext.provides:i.parent.provides;if(r&&e in r)return r[e];if(arguments.length>1)return n&&Je(t)?t.call(i.proxy):t}}const Bs={};function la(e,t,n){return bu(e,t,n)}function bu(e,t,{immediate:n,deep:i,flush:r,onTrack:o,onTrigger:l}=wt){const c=Bd()===(It==null?void 0:It.scope)?It:null;let d,m=!1,g=!1;if(Jt(e)?(d=()=>e.value,m=ta(e)):sr(e)?(d=()=>e,i=!0):Ue(e)?(g=!0,m=e.some(se=>sr(se)||ta(se)),d=()=>e.map(se=>{if(Jt(se))return se.value;if(sr(se))return Di(se);if(Je(se))return yi(se,c,2)})):Je(e)?t?d=()=>yi(e,c,2):d=()=>{if(!(c&&c.isUnmounted))return w&&w(),Nn(e,c,3,[T])}:d=Dn,t&&i){const se=d;d=()=>Di(se())}let w,T=se=>{w=P.onStop=()=>{yi(se,c,4)}},N;if(Br)if(T=Dn,t?n&&Nn(t,c,3,[d(),g?[]:void 0,T]):d(),r==="sync"){const se=Ah();N=se.__watcherHandles||(se.__watcherHandles=[])}else return Dn;let S=g?new Array(e.length).fill(Bs):Bs;const O=()=>{if(P.active)if(t){const se=P.run();(i||m||(g?se.some((L,ke)=>xs(L,S[ke])):xs(se,S)))&&(w&&w(),Nn(t,c,3,[se,S===Bs?void 0:g&&S[0]===Bs?[]:S,T]),S=se)}else P.run()};O.allowRecurse=!!t;let U;r==="sync"?U=O:r==="post"?U=()=>nn(O,c&&c.suspense):(O.pre=!0,c&&(O.id=c.uid),U=()=>oa(O));const P=new Xo(d,U);t?n?O():S=P.run():r==="post"?nn(P.run.bind(P),c&&c.suspense):P.run();const Z=()=>{P.stop(),c&&c.scope&&$o(c.scope.effects,P)};return N&&N.push(Z),Z}function Np(e,t,n){const i=this.proxy,r=Mt(e)?e.includes(".")?Cu(i,e):()=>i[e]:e.bind(i,i);let o;Je(t)?o=t:(o=t.handler,n=t);const l=It;lr(this);const c=bu(r,o.bind(i),n);return l?lr(l):Mi(),c}function Cu(e,t){const n=t.split(".");return()=>{let i=e;for(let r=0;r{Di(n,t)});else if($l(e))for(const n in e)Di(e[n],t);return e}function Rp(e){return Je(e)?{setup:e,name:e.name}:e}const js=e=>!!e.type.__asyncLoader,wu=e=>e.type.__isKeepAlive;function Mp(e,t){Tu(e,"a",t)}function Fp(e,t){Tu(e,"da",t)}function Tu(e,t,n=It){const i=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if($s(t,i,n),n){let r=n.parent;for(;r&&r.parent;)wu(r.parent.vnode)&&Hp(i,t,n,r),r=r.parent}}function Hp(e,t,n,i){const r=$s(t,e,i,!0);_u(()=>{$o(i[t],r)},n)}function $s(e,t,n=It,i=!1){if(n){const r=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...l)=>{if(n.isUnmounted)return;ir(),lr(n);const c=Nn(t,n,e,l);return Mi(),rr(),c});return i?r.unshift(o):r.push(o),o}}const si=e=>(t,n=It)=>(!Br||e==="sp")&&$s(e,(...i)=>t(...i),n),Bp=si("bm"),jp=si("m"),$p=si("bu"),Up=si("u"),Wp=si("bum"),_u=si("um"),Vp=si("sp"),Kp=si("rtg"),qp=si("rtc");function zp(e,t=It){$s("ec",e,t)}function fe(e,t){const n=_n;if(n===null)return e;const i=zs(n)||n.proxy,r=e.dirs||(e.dirs=[]);for(let o=0;ot(l,c,void 0,o&&o[c]));else{const l=Object.keys(e);r=new Array(l.length);for(let c=0,d=l.length;ce?Ku(e)?zs(e)||e.proxy:ua(e.parent):null,Rr=Gt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>ua(e.parent),$root:e=>ua(e.root),$emit:e=>e.emit,$options:e=>da(e),$forceUpdate:e=>e.f||(e.f=()=>oa(e.update)),$nextTick:e=>e.n||(e.n=Cp.bind(e.proxy)),$watch:e=>Np.bind(e)}),ca=(e,t)=>e!==wt&&!e.__isScriptSetup&&nt(e,t),Gp={get({_:e},t){const{ctx:n,setupState:i,data:r,props:o,accessCache:l,type:c,appContext:d}=e;let m;if(t[0]!=="$"){const N=l[t];if(N!==void 0)switch(N){case 1:return i[t];case 2:return r[t];case 4:return n[t];case 3:return o[t]}else{if(ca(i,t))return l[t]=1,i[t];if(r!==wt&&nt(r,t))return l[t]=2,r[t];if((m=e.propsOptions[0])&&nt(m,t))return l[t]=3,o[t];if(n!==wt&&nt(n,t))return l[t]=4,n[t];fa&&(l[t]=0)}}const g=Rr[t];let w,T;if(g)return t==="$attrs"&&tn(e,"get",t),g(e);if((w=c.__cssModules)&&(w=w[t]))return w;if(n!==wt&&nt(n,t))return l[t]=4,n[t];if(T=d.config.globalProperties,nt(T,t))return T[t]},set({_:e},t,n){const{data:i,setupState:r,ctx:o}=e;return ca(r,t)?(r[t]=n,!0):i!==wt&&nt(i,t)?(i[t]=n,!0):nt(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:i,appContext:r,propsOptions:o}},l){let c;return!!n[l]||e!==wt&&nt(e,l)||ca(t,l)||(c=o[0])&&nt(c,l)||nt(i,l)||nt(Rr,l)||nt(r.config.globalProperties,l)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:nt(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};let fa=!0;function Jp(e){const t=da(e),n=e.proxy,i=e.ctx;fa=!1,t.beforeCreate&&ku(t.beforeCreate,e,"bc");const{data:r,computed:o,methods:l,watch:c,provide:d,inject:m,created:g,beforeMount:w,mounted:T,beforeUpdate:N,updated:S,activated:O,deactivated:U,beforeDestroy:P,beforeUnmount:Z,destroyed:se,unmounted:L,render:ke,renderTracked:p,renderTriggered:Pe,errorCaptured:Me,serverPrefetch:ne,expose:Y,inheritAttrs:Ee,components:De,directives:Te,filters:tt}=t;if(m&&Zp(m,i,null,e.appContext.config.unwrapInjectedRef),l)for(const Ie in l){const be=l[Ie];Je(be)&&(i[Ie]=be.bind(n))}if(r){const Ie=r.call(n,n);Tt(Ie)&&(e.data=Qo(Ie))}if(fa=!0,o)for(const Ie in o){const be=o[Ie],st=Je(be)?be.bind(n,n):Je(be.get)?be.get.bind(n,n):Dn,St=!Je(be)&&Je(be.set)?be.set.bind(n):Dn,ot=Sh({get:st,set:St});Object.defineProperty(i,Ie,{enumerable:!0,configurable:!0,get:()=>ot.value,set:we=>ot.value=we})}if(c)for(const Ie in c)Au(c[Ie],i,n,Ie);if(d){const Ie=Je(d)?d.call(n):d;Reflect.ownKeys(Ie).forEach(be=>{Ip(be,Ie[be])})}g&&ku(g,e,"c");function $e(Ie,be){Ue(be)?be.forEach(st=>Ie(st.bind(n))):be&&Ie(be.bind(n))}if($e(Bp,w),$e(jp,T),$e($p,N),$e(Up,S),$e(Mp,O),$e(Fp,U),$e(zp,Me),$e(qp,p),$e(Kp,Pe),$e(Wp,Z),$e(_u,L),$e(Vp,ne),Ue(Y))if(Y.length){const Ie=e.exposed||(e.exposed={});Y.forEach(be=>{Object.defineProperty(Ie,be,{get:()=>n[be],set:st=>n[be]=st})})}else e.exposed||(e.exposed={});ke&&e.render===Dn&&(e.render=ke),Ee!=null&&(e.inheritAttrs=Ee),De&&(e.components=De),Te&&(e.directives=Te)}function Zp(e,t,n=Dn,i=!1){Ue(e)&&(e=pa(e));for(const r in e){const o=e[r];let l;Tt(o)?"default"in o?l=Hs(o.from||r,o.default,!0):l=Hs(o.from||r):l=Hs(o),Jt(l)&&i?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>l.value,set:c=>l.value=c}):t[r]=l}}function ku(e,t,n){Nn(Ue(e)?e.map(i=>i.bind(t.proxy)):e.bind(t.proxy),t,n)}function Au(e,t,n,i){const r=i.includes(".")?Cu(n,i):()=>n[i];if(Mt(e)){const o=t[e];Je(o)&&la(r,o)}else if(Je(e))la(r,e.bind(n));else if(Tt(e))if(Ue(e))e.forEach(o=>Au(o,t,n,i));else{const o=Je(e.handler)?e.handler.bind(n):t[e.handler];Je(o)&&la(r,o,e)}}function da(e){const t=e.type,{mixins:n,extends:i}=t,{mixins:r,optionsCache:o,config:{optionMergeStrategies:l}}=e.appContext,c=o.get(t);let d;return c?d=c:!r.length&&!n&&!i?d=t:(d={},r.length&&r.forEach(m=>Ws(d,m,l,!0)),Ws(d,t,l)),Tt(t)&&o.set(t,d),d}function Ws(e,t,n,i=!1){const{mixins:r,extends:o}=t;o&&Ws(e,o,n,!0),r&&r.forEach(l=>Ws(e,l,n,!0));for(const l in t)if(!(i&&l==="expose")){const c=Qp[l]||n&&n[l];e[l]=c?c(e[l],t[l]):t[l]}return e}const Qp={data:Lu,props:Ii,emits:Ii,methods:Ii,computed:Ii,beforeCreate:Zt,created:Zt,beforeMount:Zt,mounted:Zt,beforeUpdate:Zt,updated:Zt,beforeDestroy:Zt,beforeUnmount:Zt,destroyed:Zt,unmounted:Zt,activated:Zt,deactivated:Zt,errorCaptured:Zt,serverPrefetch:Zt,components:Ii,directives:Ii,watch:th,provide:Lu,inject:eh};function Lu(e,t){return t?e?function(){return Gt(Je(e)?e.call(this,this):e,Je(t)?t.call(this,this):t)}:t:e}function eh(e,t){return Ii(pa(e),pa(t))}function pa(e){if(Ue(e)){const t={};for(let n=0;n0)&&!(l&16)){if(l&8){const g=e.vnode.dynamicProps;for(let w=0;w{d=!0;const[T,N]=Du(w,t,!0);Gt(l,T),N&&c.push(...N)};!n&&t.mixins.length&&t.mixins.forEach(g),e.extends&&g(e.extends),e.mixins&&e.mixins.forEach(g)}if(!o&&!d)return Tt(e)&&i.set(e,Qi),Qi;if(Ue(o))for(let g=0;g-1,N[1]=O<0||S-1||nt(N,"default"))&&c.push(w)}}}const m=[l,c];return Tt(e)&&i.set(e,m),m}function Pu(e){return e[0]!=="$"}function Iu(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function Nu(e,t){return Iu(e)===Iu(t)}function Ru(e,t){return Ue(t)?t.findIndex(n=>Nu(n,e)):Je(t)&&Nu(t,e)?0:-1}const Mu=e=>e[0]==="_"||e==="$stable",ga=e=>Ue(e)?e.map(Vn):[Vn(e)],rh=(e,t,n)=>{if(t._n)return t;const i=Sp((...r)=>ga(t(...r)),n);return i._c=!1,i},Fu=(e,t,n)=>{const i=e._ctx;for(const r in e){if(Mu(r))continue;const o=e[r];if(Je(o))t[r]=rh(r,o,i);else if(o!=null){const l=ga(o);t[r]=()=>l}}},Hu=(e,t)=>{const n=ga(t);e.slots.default=()=>n},sh=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=ht(t),ks(t,"_",n)):Fu(t,e.slots={})}else e.slots={},t&&Hu(e,t);ks(e.slots,Ks,1)},oh=(e,t,n)=>{const{vnode:i,slots:r}=e;let o=!0,l=wt;if(i.shapeFlag&32){const c=t._;c?n&&c===1?o=!1:(Gt(r,t),!n&&c===1&&delete r._):(o=!t.$stable,Fu(t,r)),l=t}else t&&(Hu(e,t),l={default:1});if(o)for(const c in r)!Mu(c)&&!(c in l)&&delete r[c]};function Bu(){return{app:null,config:{isNativeTag:Od,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let ah=0;function lh(e,t){return function(i,r=null){Je(i)||(i=Object.assign({},i)),r!=null&&!Tt(r)&&(r=null);const o=Bu(),l=new Set;let c=!1;const d=o.app={_uid:ah++,_component:i,_props:r,_container:null,_context:o,_instance:null,version:Lh,get config(){return o.config},set config(m){},use(m,...g){return l.has(m)||(m&&Je(m.install)?(l.add(m),m.install(d,...g)):Je(m)&&(l.add(m),m(d,...g))),d},mixin(m){return o.mixins.includes(m)||o.mixins.push(m),d},component(m,g){return g?(o.components[m]=g,d):o.components[m]},directive(m,g){return g?(o.directives[m]=g,d):o.directives[m]},mount(m,g,w){if(!c){const T=ve(i,r);return T.appContext=o,g&&t?t(T,m):e(T,m,w),c=!0,d._container=m,m.__vue_app__=d,zs(T.component)||T.component.proxy}},unmount(){c&&(e(null,d._container),delete d._container.__vue_app__)},provide(m,g){return o.provides[m]=g,d}};return d}}function ma(e,t,n,i,r=!1){if(Ue(e)){e.forEach((T,N)=>ma(T,t&&(Ue(t)?t[N]:t),n,i,r));return}if(js(i)&&!r)return;const o=i.shapeFlag&4?zs(i.component)||i.component.proxy:i.el,l=r?null:o,{i:c,r:d}=e,m=t&&t.r,g=c.refs===wt?c.refs={}:c.refs,w=c.setupState;if(m!=null&&m!==d&&(Mt(m)?(g[m]=null,nt(w,m)&&(w[m]=null)):Jt(m)&&(m.value=null)),Je(d))yi(d,c,12,[l,g]);else{const T=Mt(d),N=Jt(d);if(T||N){const S=()=>{if(e.f){const O=T?nt(w,d)?w[d]:g[d]:d.value;r?Ue(O)&&$o(O,o):Ue(O)?O.includes(o)||O.push(o):T?(g[d]=[o],nt(w,d)&&(w[d]=g[d])):(d.value=[o],e.k&&(g[e.k]=d.value))}else T?(g[d]=l,nt(w,d)&&(w[d]=l)):N&&(d.value=l,e.k&&(g[e.k]=l))};l?(S.id=-1,nn(S,n)):S()}}}const nn=Pp;function uh(e){return ch(e)}function ch(e,t){const n=Md();n.__VUE__=!0;const{insert:i,remove:r,patchProp:o,createElement:l,createText:c,createComment:d,setText:m,setElementText:g,parentNode:w,nextSibling:T,setScopeId:N=Dn,insertStaticContent:S}=e,O=(k,D,W,J=null,H=null,V=null,le=!1,ie=null,re=!!D.dynamicChildren)=>{if(k===D)return;k&&!Hr(k,D)&&(J=Fe(k),we(k,H,V,!0),k=null),D.patchFlag===-2&&(re=!1,D.dynamicChildren=null);const{type:Q,ref:xe,shapeFlag:ge}=D;switch(Q){case Vs:U(k,D,W,J);break;case Ri:P(k,D,W,J);break;case va:k==null&&Z(D,W,J,le);break;case Re:De(k,D,W,J,H,V,le,ie,re);break;default:ge&1?ke(k,D,W,J,H,V,le,ie,re):ge&6?Te(k,D,W,J,H,V,le,ie,re):(ge&64||ge&128)&&Q.process(k,D,W,J,H,V,le,ie,re,dt)}xe!=null&&H&&ma(xe,k&&k.ref,V,D||k,!D)},U=(k,D,W,J)=>{if(k==null)i(D.el=c(D.children),W,J);else{const H=D.el=k.el;D.children!==k.children&&m(H,D.children)}},P=(k,D,W,J)=>{k==null?i(D.el=d(D.children||""),W,J):D.el=k.el},Z=(k,D,W,J)=>{[k.el,k.anchor]=S(k.children,D,W,J,k.el,k.anchor)},se=({el:k,anchor:D},W,J)=>{let H;for(;k&&k!==D;)H=T(k),i(k,W,J),k=H;i(D,W,J)},L=({el:k,anchor:D})=>{let W;for(;k&&k!==D;)W=T(k),r(k),k=W;r(D)},ke=(k,D,W,J,H,V,le,ie,re)=>{le=le||D.type==="svg",k==null?p(D,W,J,H,V,le,ie,re):ne(k,D,H,V,le,ie,re)},p=(k,D,W,J,H,V,le,ie)=>{let re,Q;const{type:xe,props:ge,shapeFlag:Ce,transition:Le,dirs:Ke}=k;if(re=k.el=l(k.type,V,ge&&ge.is,ge),Ce&8?g(re,k.children):Ce&16&&Me(k.children,re,null,J,H,V&&xe!=="foreignObject",le,ie),Ke&&Pi(k,null,J,"created"),Pe(re,k,k.scopeId,le,J),ge){for(const Ze in ge)Ze!=="value"&&!Ts(Ze)&&o(re,Ze,null,ge[Ze],V,k.children,J,H,_e);"value"in ge&&o(re,"value",null,ge.value),(Q=ge.onVnodeBeforeMount)&&Kn(Q,J,k)}Ke&&Pi(k,null,J,"beforeMount");const at=(!H||H&&!H.pendingBranch)&&Le&&!Le.persisted;at&&Le.beforeEnter(re),i(re,D,W),((Q=ge&&ge.onVnodeMounted)||at||Ke)&&nn(()=>{Q&&Kn(Q,J,k),at&&Le.enter(re),Ke&&Pi(k,null,J,"mounted")},H)},Pe=(k,D,W,J,H)=>{if(W&&N(k,W),J)for(let V=0;V{for(let Q=re;Q{const ie=D.el=k.el;let{patchFlag:re,dynamicChildren:Q,dirs:xe}=D;re|=k.patchFlag&16;const ge=k.props||wt,Ce=D.props||wt;let Le;W&&Ni(W,!1),(Le=Ce.onVnodeBeforeUpdate)&&Kn(Le,W,D,k),xe&&Pi(D,k,W,"beforeUpdate"),W&&Ni(W,!0);const Ke=H&&D.type!=="foreignObject";if(Q?Y(k.dynamicChildren,Q,ie,W,J,Ke,V):le||be(k,D,ie,null,W,J,Ke,V,!1),re>0){if(re&16)Ee(ie,D,ge,Ce,W,J,H);else if(re&2&&ge.class!==Ce.class&&o(ie,"class",null,Ce.class,H),re&4&&o(ie,"style",ge.style,Ce.style,H),re&8){const at=D.dynamicProps;for(let Ze=0;Ze{Le&&Kn(Le,W,D,k),xe&&Pi(D,k,W,"updated")},J)},Y=(k,D,W,J,H,V,le)=>{for(let ie=0;ie{if(W!==J){if(W!==wt)for(const ie in W)!Ts(ie)&&!(ie in J)&&o(k,ie,W[ie],null,le,D.children,H,V,_e);for(const ie in J){if(Ts(ie))continue;const re=J[ie],Q=W[ie];re!==Q&&ie!=="value"&&o(k,ie,Q,re,le,D.children,H,V,_e)}"value"in J&&o(k,"value",W.value,J.value)}},De=(k,D,W,J,H,V,le,ie,re)=>{const Q=D.el=k?k.el:c(""),xe=D.anchor=k?k.anchor:c("");let{patchFlag:ge,dynamicChildren:Ce,slotScopeIds:Le}=D;Le&&(ie=ie?ie.concat(Le):Le),k==null?(i(Q,W,J),i(xe,W,J),Me(D.children,W,xe,H,V,le,ie,re)):ge>0&&ge&64&&Ce&&k.dynamicChildren?(Y(k.dynamicChildren,Ce,W,H,V,le,ie),(D.key!=null||H&&D===H.subTree)&&ju(k,D,!0)):be(k,D,W,xe,H,V,le,ie,re)},Te=(k,D,W,J,H,V,le,ie,re)=>{D.slotScopeIds=ie,k==null?D.shapeFlag&512?H.ctx.activate(D,W,J,le,re):tt(D,W,J,H,V,le,re):ft(k,D,re)},tt=(k,D,W,J,H,V,le)=>{const ie=k.component=bh(k,J,H);if(wu(k)&&(ie.ctx.renderer=dt),Ch(ie),ie.asyncDep){if(H&&H.registerDep(ie,$e),!k.el){const re=ie.subTree=ve(Ri);P(null,re,D,W)}return}$e(ie,k,D,W,H,V,le)},ft=(k,D,W)=>{const J=D.component=k.component;if(Lp(k,D,W))if(J.asyncDep&&!J.asyncResolved){Ie(J,D,W);return}else J.next=D,Tp(J.update),J.update();else D.el=k.el,J.vnode=D},$e=(k,D,W,J,H,V,le)=>{const ie=()=>{if(k.isMounted){let{next:xe,bu:ge,u:Ce,parent:Le,vnode:Ke}=k,at=xe,Ze;Ni(k,!1),xe?(xe.el=Ke.el,Ie(k,xe,le)):xe=Ke,ge&&Ss(ge),(Ze=xe.props&&xe.props.onVnodeBeforeUpdate)&&Kn(Ze,Le,xe,Ke),Ni(k,!0);const Et=aa(k),Xt=k.subTree;k.subTree=Et,O(Xt,Et,w(Xt.el),Fe(Xt),k,H,V),xe.el=Et.el,at===null&&Op(k,Et.el),Ce&&nn(Ce,H),(Ze=xe.props&&xe.props.onVnodeUpdated)&&nn(()=>Kn(Ze,Le,xe,Ke),H)}else{let xe;const{el:ge,props:Ce}=D,{bm:Le,m:Ke,parent:at}=k,Ze=js(D);if(Ni(k,!1),Le&&Ss(Le),!Ze&&(xe=Ce&&Ce.onVnodeBeforeMount)&&Kn(xe,at,D),Ni(k,!0),ge&&ln){const Et=()=>{k.subTree=aa(k),ln(ge,k.subTree,k,H,null)};Ze?D.type.__asyncLoader().then(()=>!k.isUnmounted&&Et()):Et()}else{const Et=k.subTree=aa(k);O(null,Et,W,J,k,H,V),D.el=Et.el}if(Ke&&nn(Ke,H),!Ze&&(xe=Ce&&Ce.onVnodeMounted)){const Et=D;nn(()=>Kn(xe,at,Et),H)}(D.shapeFlag&256||at&&js(at.vnode)&&at.vnode.shapeFlag&256)&&k.a&&nn(k.a,H),k.isMounted=!0,D=W=J=null}},re=k.effect=new Xo(ie,()=>oa(Q),k.scope),Q=k.update=()=>re.run();Q.id=k.uid,Ni(k,!0),Q()},Ie=(k,D,W)=>{D.component=k;const J=k.vnode.props;k.vnode=D,k.next=null,ih(k,D.props,J,W),oh(k,D.children,W),ir(),pu(),rr()},be=(k,D,W,J,H,V,le,ie,re=!1)=>{const Q=k&&k.children,xe=k?k.shapeFlag:0,ge=D.children,{patchFlag:Ce,shapeFlag:Le}=D;if(Ce>0){if(Ce&128){St(Q,ge,W,J,H,V,le,ie,re);return}else if(Ce&256){st(Q,ge,W,J,H,V,le,ie,re);return}}Le&8?(xe&16&&_e(Q,H,V),ge!==Q&&g(W,ge)):xe&16?Le&16?St(Q,ge,W,J,H,V,le,ie,re):_e(Q,H,V,!0):(xe&8&&g(W,""),Le&16&&Me(ge,W,J,H,V,le,ie,re))},st=(k,D,W,J,H,V,le,ie,re)=>{k=k||Qi,D=D||Qi;const Q=k.length,xe=D.length,ge=Math.min(Q,xe);let Ce;for(Ce=0;Cexe?_e(k,H,V,!0,!1,ge):Me(D,W,J,H,V,le,ie,re,ge)},St=(k,D,W,J,H,V,le,ie,re)=>{let Q=0;const xe=D.length;let ge=k.length-1,Ce=xe-1;for(;Q<=ge&&Q<=Ce;){const Le=k[Q],Ke=D[Q]=re?bi(D[Q]):Vn(D[Q]);if(Hr(Le,Ke))O(Le,Ke,W,null,H,V,le,ie,re);else break;Q++}for(;Q<=ge&&Q<=Ce;){const Le=k[ge],Ke=D[Ce]=re?bi(D[Ce]):Vn(D[Ce]);if(Hr(Le,Ke))O(Le,Ke,W,null,H,V,le,ie,re);else break;ge--,Ce--}if(Q>ge){if(Q<=Ce){const Le=Ce+1,Ke=LeCe)for(;Q<=ge;)we(k[Q],H,V,!0),Q++;else{const Le=Q,Ke=Q,at=new Map;for(Q=Ke;Q<=Ce;Q++){const de=D[Q]=re?bi(D[Q]):Vn(D[Q]);de.key!=null&&at.set(de.key,Q)}let Ze,Et=0;const Xt=Ce-Ke+1;let ti=!1,Bn=0;const vn=new Array(Xt);for(Q=0;Q=Xt){we(de,H,V,!0);continue}let ye;if(de.key!=null)ye=at.get(de.key);else for(Ze=Ke;Ze<=Ce;Ze++)if(vn[Ze-Ke]===0&&Hr(de,D[Ze])){ye=Ze;break}ye===void 0?we(de,H,V,!0):(vn[ye-Ke]=Q+1,ye>=Bn?Bn=ye:ti=!0,O(de,D[ye],W,null,H,V,le,ie,re),Et++)}const q=ti?fh(vn):Qi;for(Ze=q.length-1,Q=Xt-1;Q>=0;Q--){const de=Ke+Q,ye=D[de],qe=de+1{const{el:V,type:le,transition:ie,children:re,shapeFlag:Q}=k;if(Q&6){ot(k.component.subTree,D,W,J);return}if(Q&128){k.suspense.move(D,W,J);return}if(Q&64){le.move(k,D,W,dt);return}if(le===Re){i(V,D,W);for(let ge=0;geie.enter(V),H);else{const{leave:ge,delayLeave:Ce,afterLeave:Le}=ie,Ke=()=>i(V,D,W),at=()=>{ge(V,()=>{Ke(),Le&&Le()})};Ce?Ce(V,Ke,at):at()}else i(V,D,W)},we=(k,D,W,J=!1,H=!1)=>{const{type:V,props:le,ref:ie,children:re,dynamicChildren:Q,shapeFlag:xe,patchFlag:ge,dirs:Ce}=k;if(ie!=null&&ma(ie,null,W,k,!0),xe&256){D.ctx.deactivate(k);return}const Le=xe&1&&Ce,Ke=!js(k);let at;if(Ke&&(at=le&&le.onVnodeBeforeUnmount)&&Kn(at,D,k),xe&6)Se(k.component,W,J);else{if(xe&128){k.suspense.unmount(W,J);return}Le&&Pi(k,null,D,"beforeUnmount"),xe&64?k.type.remove(k,D,W,H,dt,J):Q&&(V!==Re||ge>0&&ge&64)?_e(Q,D,W,!1,!0):(V===Re&&ge&384||!H&&xe&16)&&_e(re,D,W),J&&pe(k)}(Ke&&(at=le&&le.onVnodeUnmounted)||Le)&&nn(()=>{at&&Kn(at,D,k),Le&&Pi(k,null,D,"unmounted")},W)},pe=k=>{const{type:D,el:W,anchor:J,transition:H}=k;if(D===Re){he(W,J);return}if(D===va){L(k);return}const V=()=>{r(W),H&&!H.persisted&&H.afterLeave&&H.afterLeave()};if(k.shapeFlag&1&&H&&!H.persisted){const{leave:le,delayLeave:ie}=H,re=()=>le(W,V);ie?ie(k.el,V,re):re()}else V()},he=(k,D)=>{let W;for(;k!==D;)W=T(k),r(k),k=W;r(D)},Se=(k,D,W)=>{const{bum:J,scope:H,update:V,subTree:le,um:ie}=k;J&&Ss(J),H.stop(),V&&(V.active=!1,we(le,k,D,W)),ie&&nn(ie,D),nn(()=>{k.isUnmounted=!0},D),D&&D.pendingBranch&&!D.isUnmounted&&k.asyncDep&&!k.asyncResolved&&k.suspenseId===D.pendingId&&(D.deps--,D.deps===0&&D.resolve())},_e=(k,D,W,J=!1,H=!1,V=0)=>{for(let le=V;lek.shapeFlag&6?Fe(k.component.subTree):k.shapeFlag&128?k.suspense.next():T(k.anchor||k.el),ct=(k,D,W)=>{k==null?D._vnode&&we(D._vnode,null,null,!0):O(D._vnode||null,k,D,null,null,null,W),pu(),hu(),D._vnode=k},dt={p:O,um:we,m:ot,r:pe,mt:tt,mc:Me,pc:be,pbc:Y,n:Fe,o:e};let Wt,ln;return t&&([Wt,ln]=t(dt)),{render:ct,hydrate:Wt,createApp:lh(ct,Wt)}}function Ni({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function ju(e,t,n=!1){const i=e.children,r=t.children;if(Ue(i)&&Ue(r))for(let o=0;o>1,e[n[c]]0&&(t[i]=n[o-1]),n[o]=i)}}for(o=n.length,l=n[o-1];o-- >0;)n[o]=l,l=t[l];return n}const dh=e=>e.__isTeleport,Re=Symbol(void 0),Vs=Symbol(void 0),Ri=Symbol(void 0),va=Symbol(void 0),Mr=[];let Rn=null;function R(e=!1){Mr.push(Rn=e?null:[])}function ph(){Mr.pop(),Rn=Mr[Mr.length-1]||null}let Fr=1;function $u(e){Fr+=e}function Uu(e){return e.dynamicChildren=Fr>0?Rn||Qi:null,ph(),Fr>0&&Rn&&Rn.push(e),e}function B(e,t,n,i,r,o){return Uu(_(e,t,n,i,r,o,!0))}function vt(e,t,n,i,r){return Uu(ve(e,t,n,i,r,!0))}function hh(e){return e?e.__v_isVNode===!0:!1}function Hr(e,t){return e.type===t.type&&e.key===t.key}const Ks="__vInternal",Wu=({key:e})=>e??null,qs=({ref:e,ref_key:t,ref_for:n})=>e!=null?Mt(e)||Jt(e)||Je(e)?{i:_n,r:e,k:t,f:!!n}:e:null;function _(e,t=null,n=null,i=0,r=null,o=e===Re?0:1,l=!1,c=!1){const d={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Wu(t),ref:t&&qs(t),scopeId:vu,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:i,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:_n};return c?(ya(d,n),o&128&&e.normalize(d)):n&&(d.shapeFlag|=Mt(n)?8:16),Fr>0&&!l&&Rn&&(d.patchFlag>0||o&6)&&d.patchFlag!==32&&Rn.push(d),d}const ve=gh;function gh(e,t=null,n=null,i=0,r=null,o=!1){if((!e||e===Yp)&&(e=Ri),hh(e)){const c=ar(e,t,!0);return n&&ya(c,n),Fr>0&&!o&&Rn&&(c.shapeFlag&6?Rn[Rn.indexOf(e)]=c:Rn.push(c)),c.patchFlag|=-2,c}if(xh(e)&&(e=e.__vccOpts),t){t=mh(t);let{class:c,style:d}=t;c&&!Mt(c)&&(t.class=At(c)),Tt(d)&&(au(d)&&!Ue(d)&&(d=Gt({},d)),t.style=Kt(d))}const l=Mt(e)?1:Dp(e)?128:dh(e)?64:Tt(e)?4:Je(e)?2:0;return _(e,t,n,i,r,l,o,!0)}function mh(e){return e?au(e)||Ks in e?Gt({},e):e:null}function ar(e,t,n=!1){const{props:i,ref:r,patchFlag:o,children:l}=e,c=t?Vu(i||{},t):i;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Wu(c),ref:t&&t.ref?n&&r?Ue(r)?r.concat(qs(t)):[r,qs(t)]:qs(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Re?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ar(e.ssContent),ssFallback:e.ssFallback&&ar(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function $t(e=" ",t=0){return ve(Vs,null,e,t)}function ze(e="",t=!1){return t?(R(),vt(Ri,null,e)):ve(Ri,null,e)}function Vn(e){return e==null||typeof e=="boolean"?ve(Ri):Ue(e)?ve(Re,null,e.slice()):typeof e=="object"?bi(e):ve(Vs,null,String(e))}function bi(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ar(e)}function ya(e,t){let n=0;const{shapeFlag:i}=e;if(t==null)t=null;else if(Ue(t))n=16;else if(typeof t=="object")if(i&65){const r=t.default;r&&(r._c&&(r._d=!1),ya(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!(Ks in t)?t._ctx=_n:r===3&&_n&&(_n.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Je(t)?(t={default:t,_ctx:_n},n=32):(t=String(t),i&64?(n=16,t=[$t(t)]):n=8);e.children=t,e.shapeFlag|=n}function Vu(...e){const t={};for(let n=0;n{It=e,e.scope.on()},Mi=()=>{It&&It.scope.off(),It=null};function Ku(e){return e.vnode.shapeFlag&4}let Br=!1;function Ch(e,t=!1){Br=t;const{props:n,children:i}=e.vnode,r=Ku(e);nh(e,n,r,t),sh(e,i);const o=r?wh(e,t):void 0;return Br=!1,o}function wh(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=lu(new Proxy(e.ctx,Gp));const{setup:i}=n;if(i){const r=e.setupContext=i.length>1?_h(e):null;lr(e),ir();const o=yi(i,e,0,[e.props,r]);if(rr(),Mi(),Bl(o)){if(o.then(Mi,Mi),t)return o.then(l=>{qu(e,l,t)}).catch(l=>{Rs(l,e,0)});e.asyncDep=o}else qu(e,o,t)}else Xu(e,t)}function qu(e,t,n){Je(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Tt(t)&&(e.setupState=uu(t)),Xu(e,n)}let zu;function Xu(e,t,n){const i=e.type;if(!e.render){if(!t&&zu&&!i.render){const r=i.template||da(e).template;if(r){const{isCustomElement:o,compilerOptions:l}=e.appContext.config,{delimiters:c,compilerOptions:d}=i,m=Gt(Gt({isCustomElement:o,delimiters:c},l),d);i.render=zu(r,m)}}e.render=i.render||Dn}lr(e),ir(),Jp(e),rr(),Mi()}function Th(e){return new Proxy(e.attrs,{get(t,n){return tn(e,"get","$attrs"),t[n]}})}function _h(e){const t=i=>{e.exposed=i||{}};let n;return{get attrs(){return n||(n=Th(e))},slots:e.slots,emit:e.emit,expose:t}}function zs(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(uu(lu(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Rr)return Rr[n](e)},has(t,n){return n in t||n in Rr}}))}function Eh(e,t=!0){return Je(e)?e.displayName||e.name:e.name||t&&e.__name}function xh(e){return Je(e)&&"__vccOpts"in e}const Sh=(e,t)=>yp(e,t,Br),kh=Symbol(""),Ah=()=>Hs(kh),Lh="3.2.47",Oh="http://www.w3.org/2000/svg",Fi=typeof document<"u"?document:null,Yu=Fi&&Fi.createElement("template"),Dh={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,i)=>{const r=t?Fi.createElementNS(Oh,e):Fi.createElement(e,n?{is:n}:void 0);return e==="select"&&i&&i.multiple!=null&&r.setAttribute("multiple",i.multiple),r},createText:e=>Fi.createTextNode(e),createComment:e=>Fi.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Fi.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,i,r,o){const l=n?n.previousSibling:t.lastChild;if(r&&(r===o||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===o||!(r=r.nextSibling)););else{Yu.innerHTML=i?`${e}`:e;const c=Yu.content;if(i){const d=c.firstChild;for(;d.firstChild;)c.appendChild(d.firstChild);c.removeChild(d)}t.insertBefore(c,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function Ph(e,t,n){const i=e._vtc;i&&(t=(t?[t,...i]:[...i]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Ih(e,t,n){const i=e.style,r=Mt(n);if(n&&!r){if(t&&!Mt(t))for(const o in t)n[o]==null&&ba(i,o,"");for(const o in n)ba(i,o,n[o])}else{const o=i.display;r?t!==n&&(i.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(i.display=o)}}const Gu=/\s*!important$/;function ba(e,t,n){if(Ue(n))n.forEach(i=>ba(e,t,i));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const i=Nh(e,t);Gu.test(n)?e.setProperty(nr(i),n.replace(Gu,""),"important"):e[i]=n}}const Ju=["Webkit","Moz","ms"],Ca={};function Nh(e,t){const n=Ca[t];if(n)return n;let i=Un(t);if(i!=="filter"&&i in e)return Ca[t]=i;i=Es(i);for(let r=0;rwa||(jh.then(()=>wa=0),wa=Date.now());function Uh(e,t){const n=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=n.attached)return;Nn(Wh(i,n.value),t,5,[i])};return n.value=e,n.attached=$h(),n}function Wh(e,t){if(Ue(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(i=>r=>!r._stopped&&i&&i(r))}else return t}const ec=/^on[a-z]/,Vh=(e,t,n,i,r=!1,o,l,c,d)=>{t==="class"?Ph(e,i,r):t==="style"?Ih(e,n,i):ws(t)?jo(t)||Hh(e,t,n,i,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Kh(e,t,i,r))?Mh(e,t,i,o,l,c,d):(t==="true-value"?e._trueValue=i:t==="false-value"&&(e._falseValue=i),Rh(e,t,i,r))};function Kh(e,t,n,i){return i?!!(t==="innerHTML"||t==="textContent"||t in e&&ec.test(t)&&Je(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||ec.test(t)&&Mt(n)?!1:t in e}const ur=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Ue(t)?n=>Ss(t,n):t};function qh(e){e.target.composing=!0}function tc(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Hi={created(e,{modifiers:{lazy:t,trim:n,number:i}},r){e._assign=ur(r);const o=i||r.props&&r.props.type==="number";Ci(e,t?"change":"input",l=>{if(l.target.composing)return;let c=e.value;n&&(c=c.trim()),o&&(c=As(c)),e._assign(c)}),n&&Ci(e,"change",()=>{e.value=e.value.trim()}),t||(Ci(e,"compositionstart",qh),Ci(e,"compositionend",tc),Ci(e,"change",tc))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:i,number:r}},o){if(e._assign=ur(o),e.composing||document.activeElement===e&&e.type!=="range"&&(n||i&&e.value.trim()===t||(r||e.type==="number")&&As(e.value)===t))return;const l=t??"";e.value!==l&&(e.value=l)}},zh={deep:!0,created(e,t,n){e._assign=ur(n),Ci(e,"change",()=>{const i=e._modelValue,r=jr(e),o=e.checked,l=e._assign;if(Ue(i)){const c=Bo(i,r),d=c!==-1;if(o&&!d)l(i.concat(r));else if(!o&&d){const m=[...i];m.splice(c,1),l(m)}}else if(tr(i)){const c=new Set(i);o?c.add(r):c.delete(r),l(c)}else l(rc(e,o))})},mounted:nc,beforeUpdate(e,t,n){e._assign=ur(n),nc(e,t,n)}};function nc(e,{value:t,oldValue:n},i){e._modelValue=t,Ue(t)?e.checked=Bo(t,i.props.value)>-1:tr(t)?e.checked=t.has(i.props.value):t!==n&&(e.checked=Ar(t,rc(e,!0)))}const Xs={deep:!0,created(e,{value:t,modifiers:{number:n}},i){const r=tr(t);Ci(e,"change",()=>{const o=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>n?As(jr(l)):jr(l));e._assign(e.multiple?r?new Set(o):o:o[0])}),e._assign=ur(i)},mounted(e,{value:t}){ic(e,t)},beforeUpdate(e,t,n){e._assign=ur(n)},updated(e,{value:t}){ic(e,t)}};function ic(e,t){const n=e.multiple;if(!(n&&!Ue(t)&&!tr(t))){for(let i=0,r=e.options.length;i-1:o.selected=t.has(l);else if(Ar(jr(o),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function jr(e){return"_value"in e?e._value:e.value}function rc(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const Xh=["ctrl","shift","alt","meta"],Yh={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Xh.some(n=>e[`${n}Key`]&&!t.includes(n))},gt=(e,t)=>(n,...i)=>{for(let r=0;r{$r(e,!1)}):$r(e,t))},beforeUnmount(e,{value:t}){$r(e,t)}};function $r(e,t){e.style.display=t?e._vod:"none"}const Gh=Gt({patchProp:Vh},Dh);let sc;function Jh(){return sc||(sc=uh(Gh))}const Zh=(...e)=>{const t=Jh().createApp(...e),{mount:n}=t;return t.mount=i=>{const r=Qh(i);if(!r)return;const o=t._component;!Je(o)&&!o.render&&!o.template&&(o.template=r.innerHTML),r.innerHTML="";const l=n(r,!1,r instanceof SVGElement);return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),l},t};function Qh(e){return Mt(e)?document.querySelector(e):e}/**! + * Sortable 1.15.0 + * @author RubaXa + * @author owenm + * @license MIT + */function oc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),n.push.apply(n,i)}return n}function qn(e){for(var t=1;t=0)&&(n[r]=e[r]);return n}function ng(e,t){if(e==null)return{};var n=tg(e,t),i,r;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(e,i)&&(n[i]=e[i])}return n}var ig="1.15.0";function ai(e){if(typeof window<"u"&&window.navigator)return!!navigator.userAgent.match(e)}var li=ai(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Ur=ai(/Edge/i),ac=ai(/firefox/i),Wr=ai(/safari/i)&&!ai(/chrome/i)&&!ai(/android/i),lc=ai(/iP(ad|od|hone)/i),uc=ai(/chrome/i)&&ai(/android/i),cc={capture:!1,passive:!1};function ut(e,t,n){e.addEventListener(t,n,!li&&cc)}function it(e,t,n){e.removeEventListener(t,n,!li&&cc)}function Gs(e,t){if(t){if(t[0]===">"&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch{return!1}return!1}}function rg(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function zn(e,t,n,i){if(e){n=n||document;do{if(t!=null&&(t[0]===">"?e.parentNode===n&&Gs(e,t):Gs(e,t))||i&&e===n)return e;if(e===n)break}while(e=rg(e))}return null}var fc=/\s+/g;function pn(e,t,n){if(e&&t)if(e.classList)e.classList[n?"add":"remove"](t);else{var i=(" "+e.className+" ").replace(fc," ").replace(" "+t+" "," ");e.className=(i+(n?" "+t:"")).replace(fc," ")}}function We(e,t,n){var i=e&&e.style;if(i){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),t===void 0?n:n[t];!(t in i)&&t.indexOf("webkit")===-1&&(t="-webkit-"+t),i[t]=n+(typeof n=="string"?"":"px")}}function cr(e,t){var n="";if(typeof e=="string")n=e;else do{var i=We(e,"transform");i&&i!=="none"&&(n=i+" "+n)}while(!t&&(e=e.parentNode));var r=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return r&&new r(n)}function dc(e,t,n){if(e){var i=e.getElementsByTagName(t),r=0,o=i.length;if(n)for(;r=o:l=r<=o,!l)return i;if(i===Xn())break;i=wi(i,!1)}return!1}function fr(e,t,n,i){for(var r=0,o=0,l=e.children;o2&&arguments[2]!==void 0?arguments[2]:{},r=i.evt,o=ng(i,dg);Kr.pluginEvent.bind(Ve)(t,n,qn({dragEl:ae,parentEl:Pt,ghostEl:Ge,rootEl:xt,nextEl:Bi,lastDownEl:Js,cloneEl:Ot,cloneHidden:Ti,dragStarted:zr,putSortable:Ut,activeSortable:Ve.active,originalEvent:r,oldIndex:pr,oldDraggableIndex:qr,newIndex:gn,newDraggableIndex:_i,hideGhostForTarget:Ec,unhideGhostForTarget:xc,cloneNowHidden:function(){Ti=!0},cloneNowShown:function(){Ti=!1},dispatchSortableEvent:function(c){Qt({sortable:n,name:c,originalEvent:r})}},o))};function Qt(e){fg(qn({putSortable:Ut,cloneEl:Ot,targetEl:ae,rootEl:xt,oldIndex:pr,oldDraggableIndex:qr,newIndex:gn,newDraggableIndex:_i},e))}var ae,Pt,Ge,xt,Bi,Js,Ot,Ti,pr,gn,qr,_i,Zs,Ut,hr=!1,Qs=!1,eo=[],ji,Mn,xa,Sa,yc,bc,zr,gr,Xr,Yr=!1,to=!1,no,zt,ka=[],Aa=!1,io=[],ro=typeof document<"u",so=lc,Cc=Ur||li?"cssFloat":"float",pg=ro&&!uc&&!lc&&"draggable"in document.createElement("div"),wc=function(){if(ro){if(li)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto",e.style.pointerEvents==="auto"}}(),Tc=function(t,n){var i=We(t),r=parseInt(i.width)-parseInt(i.paddingLeft)-parseInt(i.paddingRight)-parseInt(i.borderLeftWidth)-parseInt(i.borderRightWidth),o=fr(t,0,n),l=fr(t,1,n),c=o&&We(o),d=l&&We(l),m=c&&parseInt(c.marginLeft)+parseInt(c.marginRight)+Ft(o).width,g=d&&parseInt(d.marginLeft)+parseInt(d.marginRight)+Ft(l).width;if(i.display==="flex")return i.flexDirection==="column"||i.flexDirection==="column-reverse"?"vertical":"horizontal";if(i.display==="grid")return i.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(o&&c.float&&c.float!=="none"){var w=c.float==="left"?"left":"right";return l&&(d.clear==="both"||d.clear===w)?"vertical":"horizontal"}return o&&(c.display==="block"||c.display==="flex"||c.display==="table"||c.display==="grid"||m>=r&&i[Cc]==="none"||l&&i[Cc]==="none"&&m+g>r)?"vertical":"horizontal"},hg=function(t,n,i){var r=i?t.left:t.top,o=i?t.right:t.bottom,l=i?t.width:t.height,c=i?n.left:n.top,d=i?n.right:n.bottom,m=i?n.width:n.height;return r===c||o===d||r+l/2===c+m/2},gg=function(t,n){var i;return eo.some(function(r){var o=r[hn].options.emptyInsertThreshold;if(!(!o||Ta(r))){var l=Ft(r),c=t>=l.left-o&&t<=l.right+o,d=n>=l.top-o&&n<=l.bottom+o;if(c&&d)return i=r}}),i},_c=function(t){function n(o,l){return function(c,d,m,g){var w=c.options.group.name&&d.options.group.name&&c.options.group.name===d.options.group.name;if(o==null&&(l||w))return!0;if(o==null||o===!1)return!1;if(l&&o==="clone")return o;if(typeof o=="function")return n(o(c,d,m,g),l)(c,d,m,g);var T=(l?c:d).options.group.name;return o===!0||typeof o=="string"&&o===T||o.join&&o.indexOf(T)>-1}}var i={},r=t.group;(!r||Ys(r)!="object")&&(r={name:r}),i.name=r.name,i.checkPull=n(r.pull,!0),i.checkPut=n(r.put),i.revertClone=r.revertClone,t.group=i},Ec=function(){!wc&&Ge&&We(Ge,"display","none")},xc=function(){!wc&&Ge&&We(Ge,"display","")};ro&&!uc&&document.addEventListener("click",function(e){if(Qs)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),Qs=!1,!1},!0);var $i=function(t){if(ae){t=t.touches?t.touches[0]:t;var n=gg(t.clientX,t.clientY);if(n){var i={};for(var r in t)t.hasOwnProperty(r)&&(i[r]=t[r]);i.target=i.rootEl=n,i.preventDefault=void 0,i.stopPropagation=void 0,n[hn]._onDragOver(i)}}},mg=function(t){ae&&ae.parentNode[hn]._isOutsideThisEl(t.target)};function Ve(e,t){if(!(e&&e.nodeType&&e.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=oi({},t),e[hn]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Tc(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(l,c){l.setData("Text",c.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:Ve.supportPointer!==!1&&"PointerEvent"in window&&!Wr,emptyInsertThreshold:5};Kr.initializePlugins(this,e,n);for(var i in n)!(i in t)&&(t[i]=n[i]);_c(t);for(var r in this)r.charAt(0)==="_"&&typeof this[r]=="function"&&(this[r]=this[r].bind(this));this.nativeDraggable=t.forceFallback?!1:pg,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?ut(e,"pointerdown",this._onTapStart):(ut(e,"mousedown",this._onTapStart),ut(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(ut(e,"dragover",this),ut(e,"dragenter",this)),eo.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),oi(this,lg())}Ve.prototype={constructor:Ve,_isOutsideThisEl:function(t){!this.el.contains(t)&&t!==this.el&&(gr=null)},_getDirection:function(t,n){return typeof this.options.direction=="function"?this.options.direction.call(this,t,n,ae):this.options.direction},_onTapStart:function(t){if(t.cancelable){var n=this,i=this.el,r=this.options,o=r.preventOnFilter,l=t.type,c=t.touches&&t.touches[0]||t.pointerType&&t.pointerType==="touch"&&t,d=(c||t).target,m=t.target.shadowRoot&&(t.path&&t.path[0]||t.composedPath&&t.composedPath()[0])||d,g=r.filter;if(Eg(i),!ae&&!(/mousedown|pointerdown/.test(l)&&t.button!==0||r.disabled)&&!m.isContentEditable&&!(!this.nativeDraggable&&Wr&&d&&d.tagName.toUpperCase()==="SELECT")&&(d=zn(d,r.draggable,i,!1),!(d&&d.animated)&&Js!==d)){if(pr=En(d),qr=En(d,r.draggable),typeof g=="function"){if(g.call(this,t,d,this)){Qt({sortable:n,rootEl:m,name:"filter",targetEl:d,toEl:i,fromEl:i}),rn("filter",n,{evt:t}),o&&t.cancelable&&t.preventDefault();return}}else if(g&&(g=g.split(",").some(function(w){if(w=zn(m,w.trim(),i,!1),w)return Qt({sortable:n,rootEl:w,name:"filter",targetEl:d,fromEl:i,toEl:i}),rn("filter",n,{evt:t}),!0}),g)){o&&t.cancelable&&t.preventDefault();return}r.handle&&!zn(m,r.handle,i,!1)||this._prepareDragStart(t,c,d)}}},_prepareDragStart:function(t,n,i){var r=this,o=r.el,l=r.options,c=o.ownerDocument,d;if(i&&!ae&&i.parentNode===o){var m=Ft(i);if(xt=o,ae=i,Pt=ae.parentNode,Bi=ae.nextSibling,Js=i,Zs=l.group,Ve.dragged=ae,ji={target:ae,clientX:(n||t).clientX,clientY:(n||t).clientY},yc=ji.clientX-m.left,bc=ji.clientY-m.top,this._lastX=(n||t).clientX,this._lastY=(n||t).clientY,ae.style["will-change"]="all",d=function(){if(rn("delayEnded",r,{evt:t}),Ve.eventCanceled){r._onDrop();return}r._disableDelayedDragEvents(),!ac&&r.nativeDraggable&&(ae.draggable=!0),r._triggerDragStart(t,n),Qt({sortable:r,name:"choose",originalEvent:t}),pn(ae,l.chosenClass,!0)},l.ignore.split(",").forEach(function(g){dc(ae,g.trim(),La)}),ut(c,"dragover",$i),ut(c,"mousemove",$i),ut(c,"touchmove",$i),ut(c,"mouseup",r._onDrop),ut(c,"touchend",r._onDrop),ut(c,"touchcancel",r._onDrop),ac&&this.nativeDraggable&&(this.options.touchStartThreshold=4,ae.draggable=!0),rn("delayStart",this,{evt:t}),l.delay&&(!l.delayOnTouchOnly||n)&&(!this.nativeDraggable||!(Ur||li))){if(Ve.eventCanceled){this._onDrop();return}ut(c,"mouseup",r._disableDelayedDrag),ut(c,"touchend",r._disableDelayedDrag),ut(c,"touchcancel",r._disableDelayedDrag),ut(c,"mousemove",r._delayedDragTouchMoveHandler),ut(c,"touchmove",r._delayedDragTouchMoveHandler),l.supportPointer&&ut(c,"pointermove",r._delayedDragTouchMoveHandler),r._dragStartTimer=setTimeout(d,l.delay)}else d()}},_delayedDragTouchMoveHandler:function(t){var n=t.touches?t.touches[0]:t;Math.max(Math.abs(n.clientX-this._lastX),Math.abs(n.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){ae&&La(ae),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;it(t,"mouseup",this._disableDelayedDrag),it(t,"touchend",this._disableDelayedDrag),it(t,"touchcancel",this._disableDelayedDrag),it(t,"mousemove",this._delayedDragTouchMoveHandler),it(t,"touchmove",this._delayedDragTouchMoveHandler),it(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,n){n=n||t.pointerType=="touch"&&t,!this.nativeDraggable||n?this.options.supportPointer?ut(document,"pointermove",this._onTouchMove):n?ut(document,"touchmove",this._onTouchMove):ut(document,"mousemove",this._onTouchMove):(ut(ae,"dragend",this),ut(xt,"dragstart",this._onDragStart));try{document.selection?ao(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(t,n){if(hr=!1,xt&&ae){rn("dragStarted",this,{evt:n}),this.nativeDraggable&&ut(document,"dragover",mg);var i=this.options;!t&&pn(ae,i.dragClass,!1),pn(ae,i.ghostClass,!0),Ve.active=this,t&&this._appendGhost(),Qt({sortable:this,name:"start",originalEvent:n})}else this._nulling()},_emulateDragOver:function(){if(Mn){this._lastX=Mn.clientX,this._lastY=Mn.clientY,Ec();for(var t=document.elementFromPoint(Mn.clientX,Mn.clientY),n=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(Mn.clientX,Mn.clientY),t!==n);)n=t;if(ae.parentNode[hn]._isOutsideThisEl(t),n)do{if(n[hn]){var i=void 0;if(i=n[hn]._onDragOver({clientX:Mn.clientX,clientY:Mn.clientY,target:t,rootEl:n}),i&&!this.options.dragoverBubble)break}t=n}while(n=n.parentNode);xc()}},_onTouchMove:function(t){if(ji){var n=this.options,i=n.fallbackTolerance,r=n.fallbackOffset,o=t.touches?t.touches[0]:t,l=Ge&&cr(Ge,!0),c=Ge&&l&&l.a,d=Ge&&l&&l.d,m=so&&zt&&hc(zt),g=(o.clientX-ji.clientX+r.x)/(c||1)+(m?m[0]-ka[0]:0)/(c||1),w=(o.clientY-ji.clientY+r.y)/(d||1)+(m?m[1]-ka[1]:0)/(d||1);if(!Ve.active&&!hr){if(i&&Math.max(Math.abs(o.clientX-this._lastX),Math.abs(o.clientY-this._lastY))=0&&(Qt({rootEl:Pt,name:"add",toEl:Pt,fromEl:xt,originalEvent:t}),Qt({sortable:this,name:"remove",toEl:Pt,originalEvent:t}),Qt({rootEl:Pt,name:"sort",toEl:Pt,fromEl:xt,originalEvent:t}),Qt({sortable:this,name:"sort",toEl:Pt,originalEvent:t})),Ut&&Ut.save()):gn!==pr&&gn>=0&&(Qt({sortable:this,name:"update",toEl:Pt,originalEvent:t}),Qt({sortable:this,name:"sort",toEl:Pt,originalEvent:t})),Ve.active&&((gn==null||gn===-1)&&(gn=pr,_i=qr),Qt({sortable:this,name:"end",toEl:Pt,originalEvent:t}),this.save()))),this._nulling()},_nulling:function(){rn("nulling",this),xt=ae=Pt=Ge=Bi=Ot=Js=Ti=ji=Mn=zr=gn=_i=pr=qr=gr=Xr=Ut=Zs=Ve.dragged=Ve.ghost=Ve.clone=Ve.active=null,io.forEach(function(t){t.checked=!0}),io.length=xa=Sa=0},handleEvent:function(t){switch(t.type){case"drop":case"dragend":this._onDrop(t);break;case"dragenter":case"dragover":ae&&(this._onDragOver(t),vg(t));break;case"selectstart":t.preventDefault();break}},toArray:function(){for(var t=[],n,i=this.el.children,r=0,o=i.length,l=this.options;ri.right+r||e.clientX<=i.right&&e.clientY>i.bottom&&e.clientX>=i.left:e.clientX>i.right&&e.clientY>i.top||e.clientX<=i.right&&e.clientY>i.bottom+r}function wg(e,t,n,i,r,o,l,c){var d=i?e.clientY:e.clientX,m=i?n.height:n.width,g=i?n.top:n.left,w=i?n.bottom:n.right,T=!1;if(!l){if(c&&nog+m*o/2:dw-no)return-Xr}else if(d>g+m*(1-r)/2&&dw-m*o/2)?d>g+m/2?1:-1:0}function Tg(e){return En(ae){if(e==null||e===!1||e===""||e.trim()==="")return[];e=e.replace(/,/g,","),e=e.replace(/。/g,","),e=e.replace(/、/g,","),e=e.replace(/;/g,","),e=e.replace(/./g,","),e=e.replace(/\t/g,` +`),e=e.replace(/\r/g,` +`),e=e.replace(/\n+/g,` +`);const t={"(":")","[":"]","<":">","{":"}"},n=Object.keys(t);let i=e.length,r="",o="",l="",c=0,d=[];for(let m=0;m$/,lycoRegex:/^\$/,weightNumRegex:/(.*):([0-9\.]+)/,weightNumRegexEN:/(.*):\s*([0-9\.]+)/,weightNumRegexCN:/(.*):\s*([0-9\.]+)/,bracketsEN:[{"(":"(",")":")"},{"[":"[","]":"]"},{"{":"{","}":"}"},{"<":"<",">":">"}],bracketsCN:[{"(":"(",")":")"},{"【":"[","】":"]"},{"《":"<","》":">"},{"「":"{","」":"}"},{"『":"{","』":"}"},{"〈":"<","〉":">"},{"﹝":"(","﹞":")"},{"﹛":"{","﹜":"}"},{"﹙":"(","﹚":")"}],replaceTag(e){return typeof e!="string"||e===""||(e=this.replaceBrackets(e),this.weightNumRegexEN.test(e)&&(e=e.replace(this.weightNumRegexEN,"$1:$2")),this.weightNumRegexCN.test(e)&&(e=e.replace(this.weightNumRegexCN,"$1:$2"))),e},replaceBrackets(e){const t=e.length;if(t===0)return e;let n={};this.bracketsCN.forEach(o=>{for(const l in o)n[l]=o[l]});let i=e[0],r=e[t-1];return typeof n[i]<"u"&&(e=n[i]+e.substring(1)),typeof n[r]<"u"&&(e=e.substring(0,t-1)+n[r]),e},hasBrackets(e){const t=e.length;if(t===0)return!1;let n=[];this.bracketsEN.forEach(o=>{let l=[];for(const c in o)l.push(c);n.push(l)}),this.bracketsCN.forEach(o=>{let l=[];for(const c in o)l.push(c);n.push(l)});let i=e[0],r=e[t-1];for(const o of n)if(o[0]===i&&o[1]===r)return o;return!1},splitTag(e){let t={left:"",value:"",right:""},n=e.match(/^([\(\<\{\[]+)(.*)$/);return!n||(t.left=n[1],e=n[2],n=e.match(/((\:[0-9\.]+)?[\)\>\}\]]+)$/),!n)?(t.value=e,t):(t.right=n[1],e=e.substring(0,e.length-t.right.length),t.value=e,t)},splitTags(e){return Sg(e)},canTranslate(e){return!(e.trim()===""||e[0]==="<"&&e[e.length-1]===">"||/^[0-9`~!@#$%^&*()_+\-=\[\]{}\\|;:'",.\/<>?]+$/.test(e)||/^[a-zA-Z]$/.test(e))},isEnglish(e){const t=e.length;if(e[0]==="<"&&e[t-1]===">")return!0;for(let n=0;n127)return!1;return!0},canOneTranslate(e){const t=["zh_CN","zh_HK","zh_TW","ar_SA","ja_JP","ko_KR","ru_RU"];return t.push("am_ET","hy_AM","as_IN","bn_BD","ba_RU","bg_BG","prs_AF","dv_MV","el_GR","gu_IN","he_IL","hi_IN","iu_CA","kn_IN","kk_KZ","km_KH","ku_Arab_IQ","ky_KG","lo_LA","mk_MK","ml_IN","mr_IN","mn_Cyrl_MN","mn_Mong_CN","my_MM","ne_NP","or_IN","ps_AF","fa_IR","pa_Guru_IN","sr_Cyrl_RS","ta_IN","tt_Latn_RU","te_IN","th_TH","bo_CN","ti_ET","uk_UA","ur_PK","ug_Arab_CN","vi_VN"),!!t.includes(e)},isEnglishByLangCode(e,t){if(!this.canOneTranslate(t))return-1;const n=e.length;for(let i=0;i127)return 0;return 1},getLang(e,t,n){return n[t]&&n[t].lang&&n[t].lang[e]?n[t].lang[e]:n.en_US&&n.en_US.lang&&n.en_US.lang[e]?n.en_US.lang[e]:e},escapeHtml(e){return e.replace(/[&<>'"]/g,t=>({"&":"&","<":"<",">":">","'":"'",'"':"""})[t]||t)},unescapeHtml(e){return e.replace(/&|<|>|'|"/g,t=>({"&":"&","<":"<",">":">","'":"'",""":'"'})[t]||t)},getTagWeightNum(e){const t=e.match(this.weightNumRegex);let n=t?parseFloat(t[2]):0;return n=n>=0?n:0,n},getTagIncWeight(e){return this.countLayers(e,"(",")")},getTagDecWeight(e){return this.countLayers(e,"[","]")},countLayers(e,t="(",n=")"){let i=0;if(e.length<2)return i;for(;;){let r=e[0],o=e[e.length-1];if(r===t&&o===n)i++,e=e.slice(1,e.length-1);else break}return i},setLayers(e,t=0,n="(",i=")",r=""){for(;;){let o=e[0],l=e[e.length-1];if(o===n&&l===i)e=e.slice(1,e.length-1);else break}return t===0?e:n.repeat(t)+e+r+i.repeat(t)},getTranslateApiInfo(e,t){let n=!1;for(const i in t)for(const r in i.children)if(r.key===e){n=r;break}return n},isEqualTags(e,t,n=[]){if(t.length!==e.length)return!1;for(let i=0;i{setTimeout(()=>{hideResults(e)},n)})},formatTime(e,t=!0){let n=new Date(e),i=n.getFullYear(),r=n.getMonth()+1;r<10&&(r="0"+r);let o=n.getDate();o<10&&(o="0"+o);let l=n.getHours();l<10&&(l="0"+l);let c=n.getMinutes();c<10&&(c="0"+c);let d=n.getSeconds();return d<10&&(d="0"+d),t?`${i}/${r}/${o} ${l}:${c}:${d}`:`${r}/${o} ${l}:${c}:${d}`},apiUrl(){let e;return e=window.location.origin+window.location.pathname,e+=e.endsWith("/")?"":"/",e+="physton_prompt/",e},removeCSS(e,t=!0){if(!e)return;let n=null;t?n=this.gradioApp().querySelector("#"+e):n=document.querySelector("#"+e),n&&n.remove()},loadCSS(e,t="",n=!0,i=!1,r=!0){n&&this.removeCSS(t,r);let o=this.apiUrl()+"styles?file="+encodeURIComponent(e);i||(o+="&t="+new Date().getTime());let l=document.createElement("link");l.id=t,l.rel="stylesheet",l.href=o,r?this.gradioApp().appendChild(l):document.body.appendChild(l)},swapElement(e,t){let n=e.parentNode,i=t.parentNode,r=e.nextSibling,o=t.nextSibling;n.insertBefore(t,r),i.insertBefore(e,o)},insertBefore(e,t){t.parentNode.insertBefore(e,t)},insertAfter(e,t){t.nextSibling?t.parentNode.insertBefore(e,t.nextSibling):t.parentNode.appendChild(e)},gradioContainer:null,gradioApp(){if(this.gradioContainer)return this.gradioContainer;const e=document.getElementsByTagName("gradio-app"),t=e.length==0?null:e[0].shadowRoot;if(t){const n=t.querySelectorAll(".gradio-container");for(let i=0;i{}},translateApis:{type:Array,default:()=>[]},translateApi:{type:String,default:""},translateApiConfig:{type:Object},tagCompleteFile:{type:String,default:""},onlyCsvOnAuto:{type:Boolean,default:!1}},data(){return{cancelMultiTranslate:!1}},computed:{langName(){for(const e in this.languages){const t=this.languages[e];if(t.code===this.languageCode)return t.name}return item.name}},methods:{getLang(e){return oe.getLang(e,this.languageCode,this.languages)},getCSV(e=null,t=!1){return window.tagCompleteFileCache=window.tagCompleteFileCache||{},window.tagCompleteFileLoading=window.tagCompleteFileLoading||{},new Promise((n,i)=>{if(e=e||this.tagCompleteFile,!t&&window.tagCompleteFileCache[e]){n(window.tagCompleteFileCache[e]);return}if(window.tagCompleteFileLoading[e]){const l=setInterval(()=>{window.tagCompleteFileLoading[e]||(clearInterval(l),n(window.tagCompleteFileCache[e]))},100);return}window.tagCompleteFileLoading[e]=!0;let r={toEn:new Map,toLocal:new Map},o=(l,c)=>{[l,l.replace(/\_/g," "),l.replace(/\-/g," ")].forEach(m=>r.toLocal.set(m,c)),r.toEn.set(c,l)};if(!e&&typeof translations=="object"&&translations instanceof Map){translations.forEach((l,c)=>{o(c,l)}),window.tagCompleteFileLoading[e]=!1,window.tagCompleteFileCache[e]=r,n(r);return}if(!e){window.tagCompleteFileLoading[e]=!1,window.tagCompleteFileCache[e]=r,i(this.getLang("not_found_csv_file"));return}this.gradioAPI.getCSV(e).then(l=>{l=l.replace(/\r/g,` +`),l.split(` +`).forEach(d=>{if(d===""||d.trim()==="")return;let m=d.split(",");if(m.length<2)return;let g=m[0].trim(),w=m[1].trim();g===""||w===""||o(g,w)}),window.tagCompleteFileLoading[e]=!1,window.tagCompleteFileCache[e]=r,n(r)}).catch(l=>{window.tagCompleteFileLoading[e]=!1,window.tagCompleteFileCache[e]=r,l.response&&l.response.status===404?i(this.getLang("not_found_csv_file")):i(l.message)})})},async translateToLocalByCSV(e,t=null,n=!1){let i=await this.getCSV(t,n);return e=e.trim().toLowerCase(),i.toLocal.has(e)?i.toLocal.get(e):""},async translateToEnByCSV(e,t=null,n=!1){let i=await this.getCSV(t,n);return e=e.trim().toLowerCase(),i.toEn.has(e)?i.toEn.get(e):""}}},Ui=Number.isNaN||window.isNaN,kg=/^-?(?:\d+|\d+\.\d+|\.\d+)(?:[eE][-+]?\d+)?$/,Ag=/\.\d*(?:0|9){10}\d*$/,Ac=(e,t=1e11)=>Ag.test(String(e))?Math.round(e*t)/t:e,Lg=Rp({name:"VueNumberInput",props:{attrs:{type:Object,default:void 0},center:Boolean,controls:Boolean,disabled:Boolean,inputtable:{type:Boolean,default:!0},inline:Boolean,max:{type:Number,default:1/0},min:{type:Number,default:-1/0},name:{type:String,default:void 0},placeholder:{type:String,default:void 0},readonly:Boolean,rounded:Boolean,size:{type:String,default:void 0},step:{type:Number,default:1},modelValue:{type:Number,default:NaN}},emits:["update:modelValue"],data(){return{value:NaN}},computed:{increasable(){return Ui(this.value)||this.valuethis.min}},watch:{modelValue:{immediate:!0,handler(e,t){!(Ui(e)&&typeof t>"u")&&e!==this.value&&this.setValue(e)}}},methods:{isNaN:Ui,change(e){this.setValue(e.target.value)},paste(e){const t=e.clipboardData||window.clipboardData;t&&!kg.test(t.getData("text"))&&e.preventDefault()},decrease(){if(this.decreasable){let{value:e}=this;Ui(e)&&(e=0),this.setValue(Ac(e-this.step))}},increase(){if(this.increasable){let{value:e}=this;Ui(e)&&(e=0),this.setValue(Ac(e+this.step))}},setValue(e){const t=this.value;let n=typeof e!="number"?parseFloat(e):e;Ui(n)||(this.min<=this.max&&(n=Math.min(this.max,Math.max(this.min,n))),this.rounded&&(n=Math.round(n))),this.value=n,n===t&&(this.$refs.input.value=String(n)),this.$emit("update:modelValue",n,t)}}}),sn=(e,t)=>{const n=e.__vccOpts||e;for(const[i,r]of t)n[i]=r;return n},Og=["disabled"],Dg=["name","value","min","max","step","readonly","disabled","placeholder"],Pg=["disabled"];function Ig(e,t,n,i,r,o){return R(),B("div",{class:At(["vue-number-input",{"vue-number-input--inline":e.inline,"vue-number-input--center":e.center,"vue-number-input--controls":e.controls,[`vue-number-input--${e.size}`]:e.size}])},[e.controls?(R(),B("button",{key:0,class:"vue-number-input__button vue-number-input__button--minus",type:"button",tabindex:"-1",disabled:e.disabled||e.readonly||!e.decreasable,onClick:t[0]||(t[0]=gt((...l)=>e.decrease&&e.decrease(...l),["prevent"]))},null,8,Og)):ze("",!0),_("input",Vu({ref:"input",class:"vue-number-input__input"},e.attrs,{type:"number",name:e.name,value:isNaN(e.value)?"":e.value,min:e.min,max:e.max,step:e.step,readonly:e.readonly||!e.inputtable,disabled:e.disabled||!e.decreasable&&!e.increasable,placeholder:e.placeholder,autocomplete:"off",onChange:t[1]||(t[1]=(...l)=>e.change&&e.change(...l)),onPaste:t[2]||(t[2]=(...l)=>e.paste&&e.paste(...l))}),null,16,Dg),e.controls?(R(),B("button",{key:1,class:"vue-number-input__button vue-number-input__button--plus",type:"button",tabindex:"-1",disabled:e.disabled||e.readonly||!e.increasable,onClick:t[3]||(t[3]=gt((...l)=>e.increase&&e.increase(...l),["prevent"]))},null,8,Pg)):ze("",!0)],2)}const Ng=sn(Lg,[["render",Ig]]),Rg={data(){return{autocompleteResults:null,showAppendList:!1,appendListStyle:{top:0,left:0},appendListSelected:null,appendListChildSelected:null,appendList:[{type:"wrap",name:"line_break_character",icon:"wrap",children:[]}]}},computed:{appendListChildItemTags(){return this.appendListSelected===null?[]:this.appendListChildSelected===null?[]:this.appendList[this.appendListSelected].type!=="favorite"&&this.appendList[this.appendListSelected].type!=="history"?[]:this.appendList[this.appendListSelected].children[this.appendListChildSelected].tags}},mounted(){[{name:"txt2img",type:"prompt",key:"txt2img",neg:!1},{name:"txt2img",type:"negative_prompt",key:"txt2img_neg",neg:!0},{name:"img2img",type:"prompt",key:"img2img",neg:!1},{name:"img2img",type:"negative_prompt",key:"img2img_neg",neg:!0}].forEach(t=>{t.neg===this.neg&&this.appendList.push({type:"favorite",name:["favorite",t.name],icon:"favorite",key:t.key,dataKey:"favorite."+t.key,children:[]})})},methods:{onUnfoldClick(){this.hidePanel&&this.$nextTick(()=>{this.onResize()}),this.$emit("update:hidePanel",!this.hidePanel)},onTranslatesToLocalClick(){if(this.tags.length===0)return;if(this.loading.all_local){this.cancelMultiTranslate=!0,this.loading.all_local=!1;return}this.loading.all_local=!0;let e=[];for(const t in this.tags)this.tags[t].type&&this.tags[t].type!=="text"||e.push(t);return this.translates(e,!0,!0).finally(()=>{this.loading.all_local=!1,this.updateTags()})},onTranslatesToEnglishClick(){if(this.tags.length===0)return;if(this.loading.all_en){this.cancelMultiTranslate=!0,this.loading.all_en=!1;return}this.loading.all_en=!0;let e=[];for(const t in this.tags)this.tags[t].type&&this.tags[t].type!=="text"||e.push(t);this.translates(e,!1,!0).finally(()=>{this.loading.all_en=!1,this.updateTags()})},onCopyAllTagsClick(){this.copy(this.prompt)},onDeleteAllTagsClick(){confirm(this.getLang("delete_all_keywords_confirm"))&&(this.tags=[],this.updateTags())},appendListItemName(e){let t=[];if(typeof e.name=="object")for(let n of e.name)t.push(this.getLang(n));else t=[this.getLang(e.name)];return t.join(" / ")},onAppendTagFocus(e){if(this.$refs.promptTagAppend.value===""||this.$refs.promptTagAppend.value.trim()===""){this.appendListStyle={top:e.target.offsetTop+e.target.offsetHeight+"px",left:e.target.offsetLeft+"px"},this.appendListSelected=null,this.appendListChildSelected=null,this.showAppendList=!0;let t=[];this.appendList.forEach(n=>{typeof n.dataKey=="string"&&t.push(n.dataKey)}),this.gradioAPI.getDatas(t).then(n=>{this.appendList.forEach(i=>{typeof i.dataKey=="string"&&(i.children=n[i.dataKey]||[],i.children.reverse())})})}this._setTextareaFocus()},onAppendTagBlur(e){setTimeout(()=>{this.showAppendList=!1},300)},selectAppendList(e=!0){this.appendList.length!==0&&(this.appendListSelected===null?this.appendListSelected=0:e?(this.appendListSelected++,this.appendListSelected>=this.appendList.length&&(this.appendListSelected=0)):(this.appendListSelected--,this.appendListSelected<0&&(this.appendListSelected=this.appendList.length-1)),this.appendListChildSelected=null)},selectAppendListChild(e=!0){this.appendList.length!==0&&this.appendListSelected!==null&&this.appendList[this.appendListSelected].children.length!==0&&(this.appendListChildSelected===null?this.appendListChildSelected=0:e?(this.appendListChildSelected++,this.appendListChildSelected>=this.appendList[this.appendListSelected].children.length&&(this.appendListChildSelected=0)):(this.appendListChildSelected--,this.appendListChildSelected<0&&(this.appendListChildSelected=this.appendList[this.appendListSelected].children.length-1)),this.scrollAppendListChild())},scrollAppendListChild(){this.appendListSelected!==null&&(this.appendListChildSelected===0||this.appendListChildSelected===null?this.$refs.promptAppendListChildren[this.appendListSelected].scrollTop=0:this.$refs.promptAppendListChild[this.appendListChildSelected].scrollIntoView({behavior:"smooth",block:"center"}))},onAppendTagKeyDown(e,t=null){if(!(e.keyCode===38||e.keyCode===40))if(e.keyCode===13){if(this.getAutocompleteResults()&&this.autocompleteResults.style.display==="block"&&this.getAutocompleteResultsSelected()){let i=this.getAutocompleteResultsSelectedText();setTimeout(()=>{t=this.$refs.promptTagAppend.value,i?t=i:(i=this.getAutocompleteResultsSelectedText(),i&&(t=i)),this.onAppendTagKeyDown(e,t)},300);return}let n=this.$refs.promptTagAppend.value;if(this.$refs.promptTagAppend.value="",this.showAppendList=!0,console.log(n,t),t)n=n.replace(/\s*,\s*$/,"").trim(),oe.hasBrackets(n)&&(n=oe.replaceBrackets(n)),this._appendTag(n,t),this.updateTags();else{oe.hasBrackets(n)?(n=oe.replaceBrackets(n),n=[n]):n=oe.splitTags(n);let i=[];n.forEach(r=>{let o=-1;r===` +`?o=this._appendTag(` +`,` +`,!1,-1,"wrap"):o=this._appendTag(r),o!==-1&&i.push(o)}),this.updatePrompt(),this.autoTranslateToEnglish||this.autoTranslateToLocal?this.$nextTick(()=>{let r=!(this.tagCompleteFile&&this.onlyCsvOnAuto);this.autoTranslateToEnglish?this.translates(i,!1,r).finally(()=>{this.updateTags()}):this.autoTranslateToLocal&&this.translates(i,!0,r).finally(()=>{this.updateTags()})}):this.updateTags()}}else this.removeAutocompleteResultsSelected()},onAppendTagKeyUp(e){this.$refs.promptTagAppend.value===""||this.$refs.promptTagAppend.value.trim()===""?(this.$refs.promptTagAppend.value="",this.showAppendList=!0,e.keyCode===38||e.keyCode===40?this.appendListChildSelected===null?this.selectAppendList(e.keyCode===40):this.selectAppendListChild(e.keyCode===40):e.keyCode===37||e.keyCode===39?this.appendListSelected!==null&&(e.keyCode===37?(this.appendListChildSelected=null,this.scrollAppendListChild()):this.appendList[this.appendListSelected].children.length===0?this.appendListChildSelected=null:(this.appendListChildSelected=0,this.scrollAppendListChild())):e.keyCode===13&&(this._appendTagByList(),this.scrollAppendListChild(),this.appendListSelected=null,this.appendListChildSelected=null)):this.showAppendList=!1},onAppendGroupClick(e,t,n){if(e!==null){if(this.appendListSelected=e,t===null){if(this.appendList[this.appendListSelected].children.length>0)return}else this.appendListChildSelected=t;this._appendTagByList()}},onAppendListChildMouseLeave(e,t,n){this.appendListSelected=null,this.appendListChildSelected=null},onAppendListChildMouseEnter(e,t,n){this.appendListSelected=e,this.appendListChildSelected=t},_appendTagByList(){if(this.appendListSelected===null)return;const e=this.appendList[this.appendListSelected];let t=null;e.children.length>0&&this.appendListChildSelected!==null&&(t=e.children[this.appendListChildSelected]);let n=[];switch(e.type){case"wrap":n.push({value:` +`,localValue:` +`,disabled:!1,type:"wrap"});break;case"lora":break;case"favorite":case"history":t&&t.tags.forEach(i=>{n.push({value:i.value,localValue:i.localValue,disabled:i.disabled,type:i.type||"text"})});break}n.length<=0||(n.forEach(i=>{this._appendTag(i.value,i.localValue,i.disabled,-1,i.type)}),this.updateTags())},getAutocompleteResults(){if(!this.autocompleteResults){const e=this.$refs.promptTagAppend.parentElement.querySelector(".autocompleteResults");e&&(this.autocompleteResults=e,this.autocompleteResults.getAttribute("data-mousemove")!=="true"&&(this.autocompleteResults.setAttribute("data-mousemove","true"),this.autocompleteResults.addEventListener("mousemove",t=>{this.bindAutocompleteResultsClick()})))}return this.autocompleteResults},removeAutocompleteResultsSelected(){const e=this.getAutocompleteResults();return e?(e.querySelectorAll("li").forEach(t=>{t.classList.remove("selected")}),!0):!1},getAutocompleteResultsSelected(){const e=this.getAutocompleteResults();if(!e)return null;const t=e.querySelector("li.selected");return t||null},getAutocompleteResultsSelectedText(e=null){if(!e&&(e=this.getAutocompleteResultsSelected(),!e))return null;const i=e.querySelector(".acListItem").innerText.match(/\[(.+?)\]/);return i?i[1]:null},bindAutocompleteResultsClick(){if(this.getAutocompleteResults(),!this.autocompleteResults)return;this.autocompleteResults.querySelectorAll("li").forEach(t=>{t.getAttribute("physton-on-clicked")!=="true"&&(t.setAttribute("physton-on-clicked","true"),t.addEventListener("click",()=>{this.onAutocompleteResultsClicked(t)}))})},onAutocompleteResultsClicked(e){const t=this.getAutocompleteResultsSelectedText(e);setTimeout(()=>{let n=this.$refs.promptTagAppend.value.replace(/,\s*$/,"");this.$refs.promptTagAppend.value="",n=n.replace(/\s*,\s*$/,"").trim(),oe.hasBrackets(n)&&(n=oe.replaceBrackets(n)),this._appendTag(n,t),this.updateTags()},300)}}},Mg={data(){return{dropStartX:0,dropStartY:0,dropEndX:0,dropEndY:0,dropOffsetX:0,dropOffsetY:0,dropIsSelecting:!1,dropIsStart:!1,dropIsEnd:!1,dropArea:{top:0,left:0,width:0,height:0},dropTags:[],dropTimeId:0}},methods:{_dropOver(){this.dropIsSelecting=!1,this.dropIsStart=!1,this.dropIsEnd=!1,this.dropTags=[];for(let e=0;ethis.dropArea.left+this.dropArea.width||r>this.dropArea.top+this.dropArea.height)?(e.push(n.getAttribute("data-id")),n.classList.add("drop-selected")):n.classList.remove("drop-selected"),this.dropTags=e}},onDropMouseUp(e){this.dropIsSelecting=!1,this.dropIsStart=!1,this.dropIsEnd=!0,this.$refs.dropSelectBtns.style.left=this.$refs.dropSelectBox.style.left,this.$refs.dropSelectBtns.style.top=this.$refs.dropSelectBox.style.top},_getDropTags(){let e=[];return this.dropTags.forEach(t=>{let n=this.tags.find(i=>i.id===t);n&&e.push(n)}),e},_getDropIndexes(){let e=[];return this.dropTags.forEach(t=>{let n=this.tags.findIndex(i=>i.id===t);n!==-1&&e.push(n)}),e},_getDropTagsEle(){let e=[];return this.dropTags.forEach(t=>{let n=this.$refs.promptTagsList.querySelector(`.prompt-tag[data-id="${t}"]`);n&&e.push(n)}),e},onDropCopy(){let e=this._getDropTags();this._dropOver();let t=this.genPrompt(e,!0);this.copy(t)},onDropFavorite(){let e=this._getDropTags();this._dropOver();let t=this.genPrompt(e,!0);this.gradioAPI.pushFavorite(this.favoriteKey,e,t,"").then(n=>{n?(this.$toastr.success(this.getLang("success")),this.$emit("refreshFavorites",this.favoriteKey)):this.$toastr.error(this.getLang("failed"))}).catch(n=>{this.$toastr.error(this.getLang("failed"))})},onDropDisable(){let e=this._getDropTags();this._dropOver(),e.forEach(t=>{t.disabled=!0}),this.updateTags()},onDropEnable(){let e=this._getDropTags();this._dropOver(),e.forEach(t=>{t.disabled=!1}),this.updateTags()},onDropDelete(){let e=this._getDropIndexes();this._dropOver(),e.sort((t,n)=>n-t),e.forEach(t=>{this.tags.splice(t,1)}),this.updateTags()}}};var Lc=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ha(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ba="__autosizeInputGhost",Fg={" ":"nbsp","<":"lt",">":"gt"};function Hg(e){return"&"+Fg[e]+";"}function Bg(e){return e.replace(/\s|<|>/g,Hg)}function jg(){var e=document.createElement("div");return e.id=Ba,e.style.cssText="display:inline-block;height:0;overflow:hidden;position:absolute;top:0;visibility:hidden;white-space:nowrap;",document.body.appendChild(e),e}var $g=function(e,t){var n=window.getComputedStyle(e),i="box-sizing:"+n.boxSizing+";border-left:"+n.borderLeftWidth+" solid red;border-right:"+n.borderRightWidth+" solid red;font-family:"+n.fontFamily+";font-feature-settings:"+n.fontFeatureSettings+";font-kerning:"+n.fontKerning+";font-size:"+n.fontSize+";font-stretch:"+n.fontStretch+";font-style:"+n.fontStyle+";font-variant:"+n.fontVariant+";font-variant-caps:"+n.fontVariantCaps+";font-variant-ligatures:"+n.fontVariantLigatures+";font-variant-numeric:"+n.fontVariantNumeric+";font-weight:"+n.fontWeight+";letter-spacing:"+n.letterSpacing+";margin-left:"+n.marginLeft+";margin-right:"+n.marginRight+";padding-left:"+n.paddingLeft+";padding-right:"+n.paddingRight+";text-indent:"+n.textIndent+";text-transform:"+n.textTransform;function r(){var l=e.value||e.getAttribute("placeholder")||"",c=document.getElementById(Ba)||jg();c.style.cssText+=i,c.innerHTML=Bg(l);var d=window.getComputedStyle(c).width;return e.style.width=d,d}e.addEventListener("input",r);var o=r();return t&&t.minWidth&&o!=="0px"&&(e.style.minWidth=o),function(){e.removeEventListener("input",r);var l=document.getElementById(Ba);l&&l.parentNode.removeChild(l)}};const Ug=Ha($g),Wg={data(){return{tagClickTimeId:0}},mounted(){oe.gradioApp().addEventListener("mousemove",()=>{this.$refs.highlightPrompt.hide()})},methods:{_setTag(e){typeof e.type=="string"&&e.type==="wrap"?(e.weightNum=1,e.incWeight=0,e.decWeight=0):(e.weightNum=oe.getTagWeightNum(e.value),e.weightNum=e.weightNum<=0?1:e.weightNum,e.incWeight=oe.getTagIncWeight(e.value),e.decWeight=oe.getTagDecWeight(e.value)),this._setTagClass(e),this.$nextTick(()=>{this._setTagHeight(e)})},_setTagHeight(e){setTimeout(()=>{let t=this.$refs["promptTagValue-"+e.id][0],n=t.offsetHeight;t.parentNode.style.height=n+"px",this.$refs["promptTagEdit-"+e.id]&&(this.$refs["promptTagEdit-"+e.id][0].style.height=n+"px"),this.$refs["promptTagDelete-"+e.id]&&(this.$refs["promptTagDelete-"+e.id][0].style.height=n+"px")},300)},_setTagClass(e){if(e.isLora=!1,e.loraExists=!1,e.isLyco=!1,e.lycoExists=!1,e.isEmbedding=!1,!(typeof e.type=="string"&&e.type==="wrap")){const n=e.value.match(oe.loraRegex);if(n){e.isLora=!0;const i=this.loraExists(n[1]);i!==!1&&(e.loraExists=!0,e.loraName=i)}if(!e.isLora){const i=e.value.match(oe.lycoRegex);if(i){e.isLyco=!0;const r=this.lycoExists(i[1]);r!==!1&&(e.lycoExists=!0,e.lycoName=r)}}if(!e.isLora&&!e.isLyco){const i=this.embeddingExists(e.value);i!==!1&&(e.isEmbedding=!0,e.value=i)}}let t=["prompt-tag-value"];return e.isLora?(t.push("lora-tag"),e.loraExists||t.push("lora-not-exists")):e.isLyco?(t.push("lyco-tag"),e.lycoExists||t.push("lyco-not-exists")):e.isEmbedding?t.push("embedding-tag"):this.neg&&t.push("neg-tag"),e.classes=t,t},_setTagById(e,t=null,n=null){let i=this.tags.find(r=>r.id===e);return i?(t!==null&&(i.value=t),n!==null&&(i.localValue=n),i):!1},_appendTag(e,t="",n=!1,i=-1,r="text"){if(e==="")return-1;const o=Date.now()+(Math.random()*1e6).toFixed(0);let l={id:o,value:e==null||e===!1?"":e,localValue:t==null||t===!1?"":t,disabled:n,type:r};return this._setTag(l),i>=0?this.tags.splice(i,0,l):i=this.tags.push(l),this.$nextTick(()=>{this.$refs["promptTagEdit-"+o]&&Ug(this.$refs["promptTagEdit-"+o][0])}),i-1},renderTag(e){let t=this.tags.find(i=>i.id===e);if(!t)return"";let n=t.value;if(n=oe.escapeHtml(n),t.incWeight>0){n=oe.setLayers(n,0,"(",")"),n='
'+n+"
";let i='
'+"(".repeat(t.incWeight)+"
",r='
'+")".repeat(t.incWeight)+"
";n=i+n+r}else if(t.decWeight>0){n=oe.setLayers(n,0,"[","]"),n='
'+n+"
";let i='
'+"[".repeat(t.decWeight)+"
",r='
'+"]".repeat(t.decWeight)+"
";n=i+n+r}else n='
'+n+"
";return n},isFavorite(e){let t=this.tags.find(n=>n.id===e);if(!t)return!1;if(typeof window.phystonPromptfavorites=="object"){for(const n of window.phystonPromptfavorites)if(n.key===this.favoriteKey){for(const i of n.list)if(i.tags.length===1&&i.tags[0].value===t.value)return i.id}}return!1},onTagMouseEnter(e){let t=this.tags.find(n=>n.id===e);if(!t)return!1;t.isFavorite=this.isFavorite(t.id),this.$refs.highlightPrompt.show(t)},onTagClick(e){let t=this.tags.find(n=>n.id===e);if(!t)return!1;this.tagClickTimeId&&clearTimeout(this.tagClickTimeId),this.tagClickTimeId=setTimeout(()=>{this.editing={},this.editing[t.id]=!0,this.$forceUpdate(),this.$nextTick(()=>{const n=this.$refs["promptTagEdit-"+t.id][0];n.focus(),n.dispatchEvent(new Event("input"))}),clearTimeout(this.tagClickTimeId)},250)},onTagDblclick(e){let t=this.tags.find(n=>n.id===e);if(!t)return!1;clearTimeout(this.tagClickTimeId),this.onDisabledTagClick(t.id)},onTagInputBlur(e){let t=this.tags.find(n=>n.id===e);if(!t)return!1;this.editing[t.id]=!1},onTagInputKeyDown(e,t){if(t.keyCode===13){let n=this.tags.find(i=>i.id===e);if(!n)return!1;this.editing[n.id]=!1,n.value!==t.target.value&&(n.value=t.target.value,this._setTag(n),this.updateTags())}},onTagInputChange(e,t){let n=this.tags.find(i=>i.id===e);if(!n)return!1;n.value!==t.target.value&&(n.value=t.target.value,this._setTag(n),this.updateTags())},onTagWeightNumChange(e,t){let n=this.tags.find(l=>l.id===e);if(!n)return!1;if(t=typeof t=="number"||typeof a=="string"?t:t.target.value,n.weightNum==t)return;let i=t,r=n.value,o=n.localValue;if(i>0){if(i===1&&!this.autoKeepWeightOne){const l=oe.hasBrackets(r);l[0]==="("&&l[1]===")"&&(r=oe.setLayers(r,0,l[0],l[1]),o!==""&&(o=oe.setLayers(o,0,l[0],l[1]))),r=r.replace(oe.weightNumRegex,"$1"),o!==""&&(o=o.replace(oe.weightNumRegex,"$1"))}else{if(!oe.weightNumRegex.test(r)){let l=oe.hasBrackets(r);l?(r=oe.setLayers(r,1,l[0],l[1],":"+i),o!==""&&(o=oe.setLayers(o,1,l[0],l[1],":"+i))):(r=r+":"+i,o!==""&&(o=o+":"+i))}oe.hasBrackets(r)||(r=oe.setLayers(r,1,"(",")"),o!==""&&(o=oe.setLayers(o,1,"(",")")))}r!==n.value&&(n.value=r,o!==""&&(n.localValue=o),this._setTag(n))}else{const l=oe.hasBrackets(r);l[0]==="<"&&l[1]===">"?i=.1:this.autoKeepWeightZero?(n.value=r.replace(oe.weightNumRegex,"$1:0"),o!==""&&(n.localValue=n.localValue.replace(oe.weightNumRegex,"$1:0"))):(n.value=r.replace(oe.weightNumRegex,"$1"),o!==""&&(n.localValue=n.localValue.replace(oe.weightNumRegex,"$1")))}n.weightNum=i,this.updateTags()},onDeleteTagClick(e){let t=this.tags.find(i=>i.id===e);if(!t)return!1;let n=this.tags.indexOf(t);this.tags.splice(n,1),this.updateTags()},onFavoriteTagClick(e){let t=this.tags.find(i=>i.id===e);if(!t)return!1;let n=this.isFavorite(t.id);n?this.gradioAPI.unFavorite(this.favoriteKey,n).then(i=>{i&&(t.isFavorite=!1,this.$emit("refreshFavorites",this.favoriteKey))}):this.gradioAPI.pushFavorite(this.favoriteKey,[t],t.value,t.localValue===""?t.value:t.localValue).then(i=>{i&&(t.isFavorite=!0,this.$emit("refreshFavorites",this.favoriteKey))})},onDisabledTagClick(e){let t=this.tags.find(n=>n.id===e);t&&(t.disabled=!t.disabled,this.updateTags())},onIncWeightClick(e,t){let n=this.tags.find(l=>l.id===e);if(!n)return;let i=n.value,r=n.localValue;i=oe.setLayers(i,0,"[","]"),r!==""&&(r=oe.setLayers(r,0,"[","]"));let o=n.incWeight;o+=t,o<0&&(o=0),n.incWeight=o,n.decWeight=0,i=oe.setLayers(i,o,"(",")"),r!==""&&(r=oe.setLayers(r,o,"(",")")),n.value=i,r!==""&&(n.localValue=r),this.updateTags()},onDecWeightClick(e,t){let n=this.tags.find(l=>l.id===e);if(!n)return;let i=n.value,r=n.localValue;i=oe.setLayers(i,0,"(",")"),r!==""&&(r=oe.setLayers(r,0,"(",")"));let o=n.decWeight;o+=t,o<0&&(o=0),n.incWeight=0,n.decWeight=o,i=oe.setLayers(i,o,"[","]"),r!==""&&(r=oe.setLayers(r,o,"[","]")),n.value=i,r!==""&&(n.localValue=r),this.updateTags()},onWrapTagClick(e){let t=this.tags.find(o=>o.id===e);if(!t)return;let n=this.tags.indexOf(t),i=this._appendTag(` +`,` +`,!1,-1,"wrap"),r=this.tags[i];this.tags.splice(i,1),this.tags.splice(n+1,0,r),this.updateTags()},onTranslateToLocalClick(e){let t=this.tags.find(i=>i.id===e);if(!t)return;let n=this.tags.indexOf(t);this.loading[t.id+"_local"]||this.translates([n],!0,!0).finally(()=>{this.updateTags()})},onTranslateToEnglishClick(e){let t=this.tags.find(i=>i.id===e);if(!t)return;let n=this.tags.indexOf(t);this.loading[t.id+"_en"]||this.translates([n],!1,!0).finally(()=>{this.updateTags()})}}},Vg={name:"IconSvg",props:{name:{type:String,required:!0},svgName:{type:String,default:""}},data(){return{svgCode:""}},watch:{name:{handler:function(e,t){this.getSvg()},immediate:!1}},mounted(){this.getSvg()},methods:{getSvg(){if(!this.name)return;let e=this.svgName||this.name;if(window.loadingSvg=window.loadingSvg||{},window.isLoadSvg=window.isLoadSvg||{},window.isLoadSvg[e]){this.svgCode=localStorage.getItem("iconSVG-"+e);return}if(localStorage.getItem("iconSVG-"+e)&&(this.svgCode=localStorage.getItem("iconSVG-"+e)),window.loadingSvg[e]){const t=setInterval(()=>{window.loadingSvg[e]||(clearInterval(t),this.svgCode=localStorage.getItem("iconSVG-"+e))},10);return}window.loadingSvg[e]=!0,window.iconSvgHash||(window.iconSvgHash=new Date().getTime()),this.gradioAPI.styles("icons/"+e+".svg",window.iconSvgHash).then(t=>{this.svgCode=t,localStorage.setItem("iconSVG-"+e,t),window.isLoadSvg[e]=!0,window.loadingSvg[e]=!1}).catch(t=>{window.loadingSvg[e]=!1})}}},Kg=["innerHTML"];function qg(e,t,n,i,r,o){return fe((R(),B("div",{class:At(["icon-svg","icon-svg-"+n.name]),"data-name":"name",innerHTML:r.svgCode},null,10,Kg)),[[_t,r.svgCode]])}const Fn=sn(Vg,[["render",qg]]),zg={name:"HighlightPrompt",props:{textarea:{type:Object,required:!0},hideDefaultInput:{type:Boolean,default:!1}},data(){return{scrollTop:0,showTimeId:0,hideTimeId:0}},watch:{},mounted(){},methods:{show(e){this.showTimeId&&clearTimeout(this.showTimeId),this.showTimeId=setTimeout(()=>{this._show(e),this.showTimeId=0},10)},_show(e){if(this.hideDefaultInput)return this._hide();if(typeof e.type=="string"&&e.type==="wrap")return this._hide();let t=e.value,n=this.textarea.value;if(t===""||t.trim()==="")return this._hide();if(n===""||n.trim()==="")return this._hide();if(t=oe.escapeHtml(t),n=oe.escapeHtml(this.textarea.value),n.indexOf(t)===-1)return this._hide();this.textarea.parentNode.insertBefore(this.$refs.highlightPrompt,this.textarea.nextSibling);const r=window.getComputedStyle(this.textarea);for(const c of r)this.$refs.highlightPrompt.style[c]=r[c];this.$refs.highlightPrompt.style.display="block",this.textarea.style.display="none";let o="",l=n;for(;;){const c=l.indexOf(t);if(c===-1){o+=l;break}const d=c+t.length;o+=l.substring(0,c),o+='',o+=l.substring(c,d),o+="",l=l.substring(d)}this.$refs.highlightPrompt.innerHTML=o,this.$refs.highlightPrompt.scrollTop=this.scrollTop},hide(){this.showTimeId&&clearTimeout(this.showTimeId),this.hideTimeId&&clearTimeout(this.hideTimeId),this.hideTimeId=setTimeout(()=>{this._hide(),this.hideTimeId=0},10)},_hide(){this.textarea.style.display="block",this.$refs.highlightPrompt.style.display="none",this.scrollTop=this.textarea.scrollTop}}},Xg={class:"physton-highlight-prompt",ref:"highlightPrompt"};function Yg(e,t,n,i,r,o){return R(),B("div",Xg,null,512)}const Gg={name:"PhystonPrompt",components:{HighlightPrompt:sn(zg,[["render",Yg]]),VueNumberInput:Ng,IconSvg:Fn},mixins:[Yn,Rg,Mg,Wg],props:{name:{type:String,required:!0},neg:{type:Boolean,default:!1},textarea:{type:Object,required:!0},steps:{type:Object,required:!0},canOneTranslate:{type:Boolean,default:!1},autoTranslate:{type:Boolean,default:!1},autoTranslateToEnglish:{type:Boolean,default:!1},autoTranslateToLocal:{type:Boolean,default:!1},autoRemoveSpace:{type:Boolean,default:!1},autoRemoveLastComma:{type:Boolean,default:!1},autoKeepWeightZero:{type:Boolean,default:!1},autoKeepWeightOne:{type:Boolean,default:!1},hideDefaultInput:{type:Boolean,default:!1},hidePanel:{type:Boolean,default:!1},enableTooltip:{type:Boolean,default:!0},historyKey:{type:String,default:""},favoriteKey:{type:String,default:""},extraNetworks:{type:Array,default:()=>[]},loras:{type:Array,default:()=>[]},lycos:{type:Array,default:()=>[]},embeddings:{type:Array,default:()=>[]},version:{type:String,default:""},latestVersion:{type:String,default:""},isLatestVersion:{type:Boolean,default:!0}},emits:["update:languageCode","update:autoTranslate","update:autoTranslateToEnglish","update:autoTranslateToLocal","update:autoRemoveSpace","update:autoRemoveLastComma","update:autoKeepWeightZero","update:autoKeepWeightOne","update:hideDefaultInput","update:hidePanel","update:enableTooltip","update:translateApi","click:translateApi","click:promptFormat","click:selectTheme","click:showAbout","click:selectLanguage","click:showHistory","click:showFavorite","refreshFavorites","click:showChatgpt"],data(){return{prompt:"",counterText:"0/75",tags:[],sortable:null,droping:!1,loading:{},editing:{}}},computed:{isEnglish(){return this.languageCode==="en_US"},translateApiItem(){return oe.getTranslateApiItem(this.translateApis,this.translateApi)}},watch:{loras:{handler(){this.tags.forEach(e=>{this._setTagClass(e)})},immediate:!1},lycos:{handler(){this.tags.forEach(e=>{this._setTagClass(e)})},immediate:!1},embeddings:{handler(){this.tags.forEach(e=>{this._setTagClass(e)})},immediate:!1}},mounted(){this.$nextTick(()=>{this.initSortable();let e=[1e3,3e3,5e3,1e4],t=!1;e.forEach(n=>{t||setTimeout(()=>{t||typeof addAutocompleteToArea=="function"&&typeof TAC_CFG=="object"&&TAC_CFG&&TAC_CFG.activeIn&&(t=!0,addAutocompleteToArea(this.$refs.promptTagAppend))},n)}),this.init()})},methods:{init(){this.tags=[],this.onTextareaChange()},onTextareaChange(e){const t=this.textarea.parentElement.getElementsByClassName("autocompleteResults");if(t.length>0&&t[0].style.display!=="none")return;let n=this.textarea.value.trim();if(n===this.prompt.trim())return;let i=oe.splitTags(n),r=[],o=this.tags;this.tags=[];for(let l in i){let c=i[l];if(c===` +`)this._appendTag(` +`,` +`,!1,-1,"wrap");else{let d=!1;for(let T of o)if(T.value===c){d=T;break}const m=d?d.localValue:"",g=d?d.disabled:!1,w=this._appendTag(c,m,g,-1,"text");!d&&w!==-1&&r.push(w)}}if(this.autoTranslateToLocal&&e){let l=!(this.tagCompleteFile&&this.onlyCsvOnAuto);l=!1,this.translates(r,!0,l).finally(()=>{this.updateTags()})}else this.updateTags()},_setTextareaFocus(){if(typeof get_uiCurrentTabContent!="function"||typeof activePromptTextarea!="object")return;const e=get_uiCurrentTabContent();if(!e)return;let t=e.id.replace("tab_","");t&&(activePromptTextarea[t]=this.textarea)},copy(e){this.$copyText(e).then(()=>{this.$toastr.success(this.getLang("success"))}).catch(()=>{this.$toastr.error(this.getLang("failed"))})},genPrompt(e=null,t=!1){e=e||this.tags;let n=[],i=e.length;return e.forEach((r,o)=>{let l="";if(typeof r.type=="string"&&r.type==="wrap")l=` +`;else{let c=oe.replaceTag(r.value);c!==r.value&&(r.value=c,this._setTag(r));let d=oe.replaceTag(r.localValue);if(d!==r.localValue&&(r.localValue=d),r.weightNum>0&&(r.weightNum=Number(parseFloat(r.weightNum).toFixed(6)),r.value=r.value.replace(oe.weightNumRegex,"$1:"+r.weightNum),r.localValue!==""&&(r.localValue=r.localValue.replace(oe.weightNumRegex,"$1:"+r.weightNum))),r.disabled&&!t)return;let m=","+(this.autoRemoveSpace?"":" "),g=null,w=!1;if(o+1{const{token_count:n,max_length:i}=t;this.counterText=`${n}/${i}`}),this.tags.length&&this.gradioAPI.getLatestHistory(this.historyKey).then(t=>{t&&t.prompt===this.prompt?this.gradioAPI.setHistory(this.historyKey,t.id,this.tags,this.prompt,t.name).then(n=>{}).catch(n=>{}):this.gradioAPI.pushHistory(this.historyKey,this.tags,this.prompt).then(n=>{}).catch(n=>{})}).catch(t=>{}),this.$nextTick(()=>{for(let t=0;to.getAttribute("data-id")===i);r&&n.parentNode.insertBefore(r,n.nextElementSibling)}})},onResize(){this.tags.forEach(e=>{this._setTagHeight(e)})},initSortable(){this.sortable=Ve.create(this.$refs.promptTagsList,{animation:150,handle:".prompt-tag-value",draggable:".prompt-tag",onEnd:e=>{if(this.dropTags.length){let n=e.item,i=n.getAttribute("data-id"),r=this._getDropTagsEle(),o=r.findIndex(d=>d.getAttribute("data-id")===i),l=r.slice(0,o),c=r.slice(o+1).reverse();l.forEach(d=>{oe.insertBefore(d,n)}),c.forEach(d=>{oe.insertAfter(d,n)})}this._dropOver(),this.droping=!1;let t=[];for(let n=0;nt.indexOf(n.id)-t.indexOf(i.id)),this.$forceUpdate(),this.updateTags()},onChoose:e=>{if(console.log(e),this.dropTags.length){let n=e.item.getAttribute("data-id");this._getDropTagsEle().forEach(r=>{r.getAttribute("data-id")!==n&&(r.style.display="block",r.style.transition="transform 0.2s",r.style.transform="scale(0)",setTimeout(()=>{r.style.transition="",r.style.transform="",r.style.display="none"},300))})}this.editing={},this.droping=!0},onUnchoose:e=>{if(this.droping=null,this.dropTags.length){let n=e.item.getAttribute("data-id");this._getDropTagsEle().forEach(r=>{r.getAttribute("data-id")!==n&&(r.style.display="")})}}})},useHistory(e){this.tags=[],e.tags.forEach(t=>{this._appendTag(t.value,t.localValue,t.disabled,-1,t.type||"text")}),this.updateTags()},useFavorite(e){this.useHistory(e)},useChatgpt(e){let t=oe.splitTags(e);this.tags=[],t.forEach(n=>{this._appendTag(n,"",!1,-1,"text")}),this.updateTags()},onPromptMainClick(){this.onTextareaChange(!0),this._setTextareaFocus()},translates(e,t=!1,n=!0){return new Promise((i,r)=>{if(this.languageCode==="en_US"||this.languageCode==="en_GB"){i();return}let o=[],l=(w,T)=>{w.forEach(N=>{c(N,T)})},c=(w,T)=>{w.toLocal?this.loading[w.id+"_local"]=T:this.loading[w.id+"_en"]=T},d=(w,T)=>{w.toLocal?w.localValue=T:(w.localValue=w.value,w.value=T),this._setTagById(w.id,w.value,w.localValue)},m=w=>w.isLora&&w.loraExists?this.getExtraNetworkFullName(w.loraName,"lora"):w.isLyco&&w.lycoExists?this.getExtraNetworkFullName(w.lycoName,"lycoris"):w.isEmbedding?this.getExtraNetworkFullName(w.value,"textual inversion"):w.value;e.forEach(w=>{let T=this.tags[w],N=m(T);if(N!==T.value){T.localValue=N;return}if(oe.canTranslate(T.value)){if(T.isEnglish=oe.isEnglishByLangCode(T.value,this.languageCode),T.isEnglish===-1)t?T.toLocal=!0:T.toLocal=!1;else if(T.isEnglish===0)if(t)if(T.localValue==="")T.localValue=T.value,T.toLocal=!1;else{const S=T.value;T.value=T.localValue,T.localValue=S}else T.toLocal=!1;else T.toLocal=!0;c(T,!0),o.push(T)}});const g=w=>{if(w.length<=0){l(w,!1),i();return}let T={};w.forEach((S,O)=>{let U=S.toLocal?"en_US":this.languageCode,P=S.toLocal?this.languageCode:"en_US",Z=U+"."+P;T[Z]||(T[Z]={fromLang:U,toLang:P,tags:[]}),T[Z].tags.push(S)});const N=()=>{let S=T[Object.keys(T)[0]];if(!S){i();return}let O=S.tags.map(U=>m(U));this.gradioAPI.translates(O,S.fromLang,S.toLang,this.translateApi,this.translateApiConfig).then(U=>{U.success?(U.translated_text.forEach((Z,se)=>{let L=S.tags[se];Z!==""&&d(L,Z),c(L,!1)}),delete T[Object.keys(T)[0]],N()):(l(w,!1),this.$toastr.error(U.message),r(U.message))}).catch(U=>{l(w,!1),this.$toastr.error(U.message),r(U.message)})};N()};if(this.tagCompleteFile){let w=[];o.forEach(T=>{const N=oe.splitTag(T.value);N.value!==T.value&&(T.value=N.value,T.splits=N),T.toLocal?w.push(this.translateToLocalByCSV(T.value)):w.push(this.translateToEnByCSV(T.value))}),Promise.all(w).then(T=>{let N=[];T.forEach((S,O)=>{let U=o[O];U.splits&&(U.value=U.splits.left+U.value+U.splits.right),S===""?N.push(U):(U.splits&&(S=U.splits.left+S+U.splits.right),c(U,!1),d(U,S))}),n?g(N):(l(N,!1),i())}).catch(T=>{l(o,!1),this.$toastr.error(T),r(T)})}else n?g(o):(l(o,!1),i())})}}},Jg=["name"],Zg={class:"prompt-header"},Qg={class:"prompt-header-title"},em={class:"prompt-header-extend"},tm={class:"extend-content"},nm={class:"extend-btn-group"},im={class:"setting-box"},rm={key:0,class:"gradio-checkbox hover-scale-120"},sm=["checked"],om={class:"gradio-checkbox hover-scale-120"},am=["checked"],lm={class:"gradio-checkbox hover-scale-120"},um=["checked"],cm={class:"gradio-checkbox hover-scale-120"},fm=["checked"],dm={class:"prompt-header-extend"},pm={class:"extend-content"},hm={class:"extend-btn-group"},gm={key:0,class:"prompt-header-extend"},mm={class:"extend-content"},vm={class:"extend-btn-group"},ym={class:"prompt-header-extend"},bm={class:"extend-content"},Cm={class:"extend-btn-group"},wm={key:1,class:"prompt-header-extend"},Tm={class:"extend-content"},_m={class:"extend-btn-group"},Em={class:"prompt-header-extend prompt-append"},xm={class:"extend-content"},Sm={class:"gradio-checkbox hover-scale-120"},km={key:0},Am=["checked"],Lm={key:1},Om=["checked"],Dm=["placeholder"],Pm=["onClick"],Im={class:"arrow-right"},Nm=["onMouseleave","onMouseenter","onClick"],Rm={key:0,class:"tags-name"},Mm={key:1,class:"tags-name"},Fm={class:"tags-detail"},Hm={class:"tags-list"},Bm={key:0,class:"item-wrap"},jm={key:1,class:"tags-item"},$m={class:"item-tag-value"},Um={class:"item-tag-local-value"},Wm={class:"prompt-tags-list",ref:"promptTagsList"},Vm=["data-id"],Km=["onMouseenter"],qm={class:"prompt-tag-edit"},zm=["onClick","onDblclick","innerHTML"],Xm=["placeholder","value","onBlur","onKeydown","onChange"],Ym=["onClick"],Gm={class:"btn-tag-extend"},Jm=["onClick"],Zm=["onClick"],Qm=["onClick"],ev=["onClick"],tv=["onClick"],nv=["onClick"],iv=["onClick"],rv=["onClick"],sv=["onClick"],ov={class:"prompt-local-language"},av=["onClick"],lv={class:"local-language"},uv=["data-id"],cv={class:"btns-title"};function fv(e,t,n,i,r,o){const l=Lt("icon-svg"),c=Lt("vue-number-input"),d=Lt("highlight-prompt"),m=Us("tooltip");return R(),B("div",{class:"physton-prompt",name:n.name},[_("div",{class:At(["prompt-main",n.hidePanel?"fold":""]),onClick:t[44]||(t[44]=(...g)=>o.onPromptMainClick&&o.onPromptMainClick(...g))},[_("div",Zg,[_("div",{class:"prompt-unfold",onClick:t[0]||(t[0]=(...g)=>e.onUnfoldClick&&e.onUnfoldClick(...g))},[ve(l,{class:"hover-scale-120",name:"unfold"})]),_("div",Qg,ce(n.neg?e.getLang("negative_prompt"):e.getLang("prompt")),1),fe(_("div",{class:"prompt-header-counter"},"("+ce(r.counterText)+")",513),[[_t,r.counterText]]),_("div",em,[_("div",tm,[_("div",nm,[fe((R(),B("div",{class:"extend-btn-item",onClick:t[1]||(t[1]=g=>e.$emit("click:selectLanguage",g))},[ve(l,{class:"hover-scale-120",name:"i18n"})])),[[m,"Language: "+e.langName]]),_("div",{class:At(["extend-btn-item",n.isLatestVersion?"":"red-dot"])},[fe(ve(l,{class:"hover-scale-120",name:"setting"},null,512),[[m,e.getLang("setting_desc")]]),_("div",im,[o.translateApiItem.name&&!o.isEnglish?fe((R(),B("div",{key:0,class:"extend-btn-item",onClick:t[2]||(t[2]=g=>e.$emit("click:translateApi",g))},[ve(l,{class:"hover-scale-120",name:"api"})])),[[m,e.getLang("translate_api")+": "+o.translateApiItem.name]]):ze("",!0),fe((R(),B("div",{class:"extend-btn-item",onClick:t[3]||(t[3]=g=>e.$emit("click:promptFormat",g))},[ve(l,{class:"hover-scale-120",name:"format"})])),[[m,e.getLang("prompt_format")]]),fe((R(),B("div",{class:"extend-btn-item",onClick:t[4]||(t[4]=g=>e.$emit("click:selectTheme",g))},[ve(l,{class:"hover-scale-120",name:"theme"})])),[[m,e.getLang("theme_extension")]]),fe((R(),B("div",{class:At(["extend-btn-item",n.isLatestVersion?"":"red-dot"]),onClick:t[5]||(t[5]=g=>e.$emit("click:showAbout",g))},[ve(l,{class:"hover-scale-120",name:"about"})],2)),[[m,e.getLang("about_desc")]]),o.isEnglish?ze("",!0):(R(),B(Re,{key:1},[n.canOneTranslate?(R(),B("div",rm,[fe((R(),B("label",null,[_("input",{type:"checkbox",name:"auto_translate",value:"1",checked:n.autoTranslate,onChange:t[6]||(t[6]=g=>e.$emit("update:autoTranslate",g.target.checked))},null,40,sm),ve(l,{name:"translate"})])),[[m,e.getLang("auto_translate")]])])):(R(),B(Re,{key:1},[_("div",om,[fe((R(),B("label",null,[_("input",{type:"checkbox",name:"auto_translate_to_local_language",value:"1",checked:n.autoTranslateToLocal,onChange:t[7]||(t[7]=g=>e.$emit("update:autoTranslateToLocal",g.target.checked))},null,40,am),ve(l,{name:"translate"})])),[[m,e.getLang("auto_translate_to_local_language")]])]),_("div",lm,[fe((R(),B("label",null,[_("input",{type:"checkbox",name:"auto_translate_to_english",value:"1",checked:n.autoTranslateToEnglish,onChange:t[8]||(t[8]=g=>e.$emit("update:autoTranslateToEnglish",g.target.checked))},null,40,um),ve(l,{name:"english"})])),[[m,e.getLang("auto_translate_to_english")]])])],64))],64)),_("div",cm,[fe((R(),B("label",null,[_("input",{type:"checkbox",name:"enable_tooltip",value:"1",checked:n.enableTooltip,onChange:t[9]||(t[9]=g=>e.$emit("update:enableTooltip",g.target.checked))},null,40,fm),ve(l,{name:"tooltip"})])),[[m,e.getLang("whether_to_enable_tooltip")]])])])],2)])])]),_("div",dm,[_("div",pm,[_("div",hm,[fe((R(),B("div",{class:"extend-btn-item",ref:"historyButton",onClick:t[10]||(t[10]=g=>e.$emit("click:showHistory",g))},[ve(l,{class:"hover-scale-120",name:"history"})])),[[m,e.getLang("history")]]),fe((R(),B("div",{class:"extend-btn-item",ref:"favoriteButton",onClick:t[11]||(t[11]=g=>e.$emit("click:showFavorite",g))},[ve(l,{class:"hover-scale-120",name:"favorite"})])),[[m,e.getLang("favorite")]])])])]),o.isEnglish?ze("",!0):(R(),B("div",gm,[_("div",mm,[_("div",vm,[n.canOneTranslate?fe((R(),B("div",{key:0,class:"extend-btn-item",onClick:t[12]||(t[12]=(...g)=>e.onTranslatesToLocalClick&&e.onTranslatesToLocalClick(...g))},[r.loading.all_local?ze("",!0):(R(),vt(l,{key:0,class:"hover-scale-120",name:"translate"})),r.loading.all_local?(R(),vt(l,{key:1,class:"hover-scale-120",name:"loading"})):ze("",!0)])),[[m,e.getLang("one_translate_all_keywords")]]):(R(),B(Re,{key:1},[fe((R(),B("div",{class:"extend-btn-item",onClick:t[13]||(t[13]=(...g)=>e.onTranslatesToLocalClick&&e.onTranslatesToLocalClick(...g))},[r.loading.all_local?ze("",!0):(R(),vt(l,{key:0,class:"hover-scale-120",name:"translate"})),r.loading.all_local?(R(),vt(l,{key:1,class:"hover-scale-120",name:"loading"})):ze("",!0)])),[[m,e.getLang("translate_keywords_to_local_language")]]),fe((R(),B("div",{class:"extend-btn-item",onClick:t[14]||(t[14]=(...g)=>e.onTranslatesToEnglishClick&&e.onTranslatesToEnglishClick(...g))},[r.loading.all_en?ze("",!0):(R(),vt(l,{key:0,class:"hover-scale-120",name:"english"})),r.loading.all_en?(R(),vt(l,{key:1,class:"hover-scale-120",name:"loading"})):ze("",!0)])),[[m,e.getLang("translate_all_keywords_to_english")]])],64))])])])),_("div",ym,[_("div",bm,[_("div",Cm,[fe((R(),B("div",{class:"extend-btn-item",onClick:t[15]||(t[15]=(...g)=>e.onCopyAllTagsClick&&e.onCopyAllTagsClick(...g))},[ve(l,{class:"hover-scale-120",name:"copy"})])),[[m,e.getLang("copy_keywords_to_clipboard")]]),fe((R(),B("div",{class:"extend-btn-item",onClick:t[16]||(t[16]=(...g)=>e.onDeleteAllTagsClick&&e.onDeleteAllTagsClick(...g))},[ve(l,{class:"hover-scale-120",name:"remove"})])),[[m,e.getLang("delete_all_keywords")]])])])]),n.neg?ze("",!0):(R(),B("div",wm,[_("div",Tm,[_("div",_m,[fe((R(),B("div",{class:"extend-btn-item",onClick:t[17]||(t[17]=g=>e.$emit("click:showChatgpt",g))},[ve(l,{class:"hover-scale-120",name:"chatgpt"})])),[[m,e.getLang("use_chatgpt_gen_prompts")]])])])])),_("div",Em,[_("div",xm,[_("div",Sm,[n.hideDefaultInput?fe((R(),B("label",km,[_("input",{type:"checkbox",name:"hide_default_input",value:"1",checked:!n.hideDefaultInput,onChange:t[18]||(t[18]=g=>e.$emit("update:hideDefaultInput",!g.target.checked))},null,40,Am),ve(l,{name:"input"})])),[[m,e.getLang("show_default_input_box")]]):fe((R(),B("label",Lm,[_("input",{type:"checkbox",name:"hide_default_input",value:"1",checked:!n.hideDefaultInput,onChange:t[19]||(t[19]=g=>e.$emit("update:hideDefaultInput",!g.target.checked))},null,40,Om),ve(l,{name:"input"})])),[[m,e.getLang("hide_default_input_box")]])]),fe(_("textarea",{type:"text",class:"scroll-hide svelte-4xt1ch input-tag-append",ref:"promptTagAppend",placeholder:e.getLang("please_enter_new_keyword"),onFocus:t[20]||(t[20]=(...g)=>e.onAppendTagFocus&&e.onAppendTagFocus(...g)),onBlur:t[21]||(t[21]=(...g)=>e.onAppendTagBlur&&e.onAppendTagBlur(...g)),onKeyup:t[22]||(t[22]=(...g)=>e.onAppendTagKeyUp&&e.onAppendTagKeyUp(...g)),onKeydown:t[23]||(t[23]=(...g)=>e.onAppendTagKeyDown&&e.onAppendTagKeyDown(...g))},null,40,Dm),[[m,e.getLang("enter_to_add")]]),fe(_("div",{class:"prompt-append-list",ref:"promptAppendList",style:Kt(e.appendListStyle)},[(R(!0),B(Re,null,mt(e.appendList,(g,w)=>(R(),B("div",{key:g.type,class:At(["prompt-append-group",e.appendListSelected===w?"selected":""])},[_("div",{class:"append-group-name",onClick:T=>e.onAppendGroupClick(w,null,T)},[g.icon==="wrap"?(R(),vt(l,{key:0,class:"name-icon",name:"wrap"})):g.icon==="history"?(R(),vt(l,{key:1,class:"name-icon",name:"history"})):g.icon==="favorite"?(R(),vt(l,{key:2,class:"name-icon",name:"favorite"})):ze("",!0),$t(" "+ce(e.appendListItemName(g))+" ",1),fe(_("span",Im,null,512),[[_t,g.children.length>0]])],8,Pm),fe(_("div",{class:"append-group-list",ref_for:!0,ref:"promptAppendListChildren"},[(R(!0),B(Re,null,mt(g.children,(T,N)=>(R(),B("div",{key:N,ref_for:!0,ref:"promptAppendListChild",class:At(["append-item",e.appendListChildSelected===N?"selected":""]),onMouseleave:S=>e.onAppendListChildMouseLeave(w,N,S),onMouseenter:S=>e.onAppendListChildMouseEnter(w,N,S),onClick:S=>e.onAppendGroupClick(w,N,S)},[g.type==="favorite"||g.type==="history"?(R(),B(Re,{key:0},[T.name?(R(),B("div",Rm,ce(T.name),1)):(R(),B("div",Mm,ce(T.prompt),1))],64)):ze("",!0)],42,Nm))),128))],512),[[_t,g.children.length>0]]),fe(_("div",Fm,[_("div",Hm,[(R(!0),B(Re,null,mt(e.appendListChildItemTags,(T,N)=>(R(),B(Re,{key:N},[T.type&&T.type==="wrap"?(R(),B("div",Bm)):(R(),B("div",jm,[_("div",$m,ce(T.value),1),_("div",Um,ce(T.localValue),1)]))],64))),128))])],512),[[_t,e.appendListSelected!==null&&e.appendListChildSelected!==null&&e.appendListSelected===w&&(g.type==="favorite"||g.type==="history")]])],2))),128))],4),[[_t,e.showAppendList]])])])]),_("div",{class:At(["prompt-tags",r.droping?"droping":"",e.dropIsSelecting||e.dropIsEnd&&e.dropTags.length?"selecting":""]),ref:"promptTags",onMousedown:t[41]||(t[41]=(...g)=>e.onDropMouseDown&&e.onDropMouseDown(...g)),onMousemove:t[42]||(t[42]=(...g)=>e.onDropMouseMove&&e.onDropMouseMove(...g)),onMouseup:t[43]||(t[43]=(...g)=>e.onDropMouseUp&&e.onDropMouseUp(...g))},[_("div",Wm,[(R(!0),B(Re,null,mt(r.tags,(g,w)=>(R(),B("div",{key:g.id,class:At(["prompt-tag",g.disabled?"disabled":"",g.type==="wrap"?"wrap-tag":""]),ref_for:!0,ref:"promptTag-"+g.id,"data-id":g.id},[_("div",{class:"prompt-tag-main",onMouseenter:T=>e.onTagMouseEnter(g.id),onMousedown:t[24]||(t[24]=gt(()=>{},["stop"])),onMousemove:t[25]||(t[25]=gt(()=>{},["stop"])),onMouseup:t[26]||(t[26]=gt(()=>{},["stop"]))},[_("div",qm,[g.type==="wrap"?fe((R(),B("div",{key:0,class:"prompt-tag-value",ref_for:!0,ref:"promptTagValue-"+g.id,style:{width:"100%"}},[ve(l,{name:"wrap"})])),[[m,e.getLang("line_break_character")+"
"+e.getLang("drop_to_order")]]):(R(),B(Re,{key:1},[fe(_("div",{class:At(g.classes),ref_for:!0,ref:"promptTagValue-"+g.id,onClick:T=>e.onTagClick(g.id,T),onDblclick:T=>e.onTagDblclick(g.id),innerHTML:e.renderTag(g.id)},null,42,zm),[[_t,!r.editing[g.id]],[m,e.getLang("click_to_edit")+"
"+e.getLang("dblclick_to_disable")+"
"+e.getLang("drop_to_order")]]),fe(_("textarea",{type:"text",class:"scroll-hide svelte-4xt1ch input-tag-edit",ref_for:!0,ref:"promptTagEdit-"+g.id,placeholder:e.getLang("enter_to_save"),value:g.value,onBlur:T=>e.onTagInputBlur(g.id),onKeydown:T=>e.onTagInputKeyDown(g.id,T),onChange:T=>e.onTagInputChange(g.id,T)},null,40,Xm),[[_t,r.editing[g.id]]])],64)),_("div",{class:"btn-tag-delete",ref_for:!0,ref:"promptTagDelete-"+g.id,onClick:T=>e.onDeleteTagClick(g.id)},[ve(l,{name:"close"})],8,Ym)]),fe(_("div",Gm,[ve(c,{class:"input-number","model-value":g.weightNum,center:"",controls:"",min:0,step:.1,size:"small","onUpdate:modelValue":T=>e.onTagWeightNumChange(g.id,T)},null,8,["model-value","step","onUpdate:modelValue"]),fe((R(),B("button",{type:"button",onClick:T=>e.onIncWeightClick(g.id,1)},[ve(l,{name:"weight-parentheses-inc"})],8,Jm)),[[m,e.getLang("increase_weight_add_parentheses")]]),fe((R(),B("button",{type:"button",onClick:T=>e.onIncWeightClick(g.id,-1)},[ve(l,{name:"weight-parentheses-dec"})],8,Zm)),[[m,e.getLang("increase_weight_subtract_parentheses")]]),fe((R(),B("button",{type:"button",onClick:T=>e.onDecWeightClick(g.id,1)},[ve(l,{name:"weight-brackets-inc"})],8,Qm)),[[m,e.getLang("decrease_weight_add_brackets")]]),fe((R(),B("button",{type:"button",onClick:T=>e.onDecWeightClick(g.id,-1)},[ve(l,{name:"weight-brackets-dec"})],8,ev)),[[m,e.getLang("decrease_weight_subtract_brackets")]]),fe((R(),B("button",{type:"button",onClick:T=>e.onWrapTagClick(g.id)},[ve(l,{name:"wrap"})],8,tv)),[[m,e.getLang("line_break_character")]]),fe((R(),B("button",{type:"button",onClick:T=>e.onTranslateToEnglishClick(g.id)},[r.loading[g.id+"_en"]?ze("",!0):(R(),vt(l,{key:0,name:"english"})),r.loading[g.id+"_en"]?(R(),vt(l,{key:1,name:"loading"})):ze("",!0)],8,nv)),[[m,e.getLang("translate_keyword_to_english")],[_t,!o.isEnglish]]),fe((R(),B("button",{type:"button",onClick:T=>o.copy(g.value)},[ve(l,{name:"copy"})],8,iv)),[[m,e.getLang("copy_to_clipboard")]]),fe((R(),B("button",{type:"button",onClick:T=>e.onFavoriteTagClick(g.id)},[g.isFavorite?(R(),vt(l,{key:0,name:"favorite-yes"})):ze("",!0),g.isFavorite?ze("",!0):(R(),vt(l,{key:1,name:"favorite-no"}))],8,rv)),[[m,e.getLang(g.isFavorite?"remove_from_favorite":"add_to_favorite")]]),fe((R(),B("button",{type:"button",onClick:T=>e.onDisabledTagClick(g.id)},[g.disabled?ze("",!0):(R(),vt(l,{key:0,name:"disabled"})),g.disabled?(R(),vt(l,{key:1,name:"enable"})):ze("",!0)],8,sv)),[[m,e.getLang(g.disabled?"enable_keyword":"disable_keyword")]])],512),[[_t,g.type==="text"||!g.type]])],40,Km),fe(_("div",ov,[fe((R(),B("div",{class:"translate-to-local hover-scale-120",onClick:T=>e.onTranslateToLocalClick(g.id),onMousedown:t[27]||(t[27]=gt(()=>{},["stop"])),onMousemove:t[28]||(t[28]=gt(()=>{},["stop"])),onMouseup:t[29]||(t[29]=gt(()=>{},["stop"]))},[r.loading[g.id+"_local"]?ze("",!0):(R(),vt(l,{key:0,name:"translate"})),r.loading[g.id+"_local"]?(R(),vt(l,{key:1,name:"loading"})):ze("",!0)],40,av)),[[m,e.getLang("translate_keyword_to_local_language")]]),_("div",lv,ce(g.localValue),1)],512),[[_t,!o.isEnglish&&(g.type==="text"||!g.type)]])],10,Vm))),128)),(R(!0),B(Re,null,mt(r.tags,(g,w)=>(R(),B("div",{key:g.id,class:At(["prompt-wrap",g.type==="wrap"?"wrap-tag":""]),"data-id":g.id,ref_for:!0,ref:"promptTagWrap",onMousedown:t[30]||(t[30]=gt(()=>{},["stop"])),onMousemove:t[31]||(t[31]=gt(()=>{},["stop"])),onMouseup:t[32]||(t[32]=gt(()=>{},["stop"]))},null,42,uv))),128))],512),_("div",{class:"drop-select-bg",ref:"dropSelectBg",style:Kt({display:e.dropIsStart?"block":"none"})},null,4),_("div",{class:"drop-select-box",ref:"dropSelectBox",style:Kt({display:e.dropIsSelecting?"block":"none",top:e.dropArea.top+"px",left:e.dropArea.left+"px",width:e.dropArea.width+"px",height:e.dropArea.height+"px"})},null,4),_("div",{class:"drop-select-btns",ref:"dropSelectBtns",style:Kt({display:e.dropIsEnd&&e.dropTags.length?"flex":"none",top:e.dropEndY-32+"px",left:e.dropEndX+"px"}),onMousedown:t[38]||(t[38]=gt(()=>{},["stop"])),onMousemove:t[39]||(t[39]=gt(()=>{},["stop"])),onMouseup:t[40]||(t[40]=gt(()=>{},["stop"]))},[_("div",cv,ce(e.getLang("batch_operation")),1),fe((R(),B("button",{type:"button",onClick:t[33]||(t[33]=(...g)=>e.onDropCopy&&e.onDropCopy(...g))},[ve(l,{name:"copy"})])),[[m,e.getLang("copy_to_clipboard")]]),fe((R(),B("button",{type:"button",onClick:t[34]||(t[34]=(...g)=>e.onDropFavorite&&e.onDropFavorite(...g))},[ve(l,{name:"favorite-no"})])),[[m,e.getLang("add_to_favorite")]]),fe((R(),B("button",{type:"button",onClick:t[35]||(t[35]=(...g)=>e.onDropDisable&&e.onDropDisable(...g))},[ve(l,{name:"disabled"})])),[[m,e.getLang("disable_keyword")]]),fe((R(),B("button",{type:"button",onClick:t[36]||(t[36]=(...g)=>e.onDropEnable&&e.onDropEnable(...g))},[ve(l,{name:"enable"})])),[[m,e.getLang("enable_keyword")]]),_("button",{type:"button",onClick:t[37]||(t[37]=(...g)=>e.onDropDelete&&e.onDropDelete(...g))},[ve(l,{name:"remove"})])],36)],34)],2),ve(d,{ref:"highlightPrompt",textarea:n.textarea,"hide-default-input":n.hideDefaultInput},null,8,["textarea","hide-default-input"])],8,Jg)}const dv=sn(Gg,[["render",fv]]),pv={name:"TranslateSetting",components:{IconSvg:Fn},mixins:[Yn],props:{},data(){return{testText:`Hi, this extension is developed by Physton. Welcome to use it! +If you have any suggestions or opinions, please feel free to raise an issue or PR on Github. +If you find this extension helpful, please give me a star on Github! + +Developed by: Physton +Github: Physton/sd-webui-prompt-all-in-one`,translateSuccess:!1,errorMessage:"",translatedText:"",loading:!1,isOpen:!1,configs:[],apiKey:"",tagCompleteFiles:[],tagCompleteFilesLoading:!1,tagCompleteFileKey:"",tagCompleteResults:[],onlyCsvOnAutoValue:!1}},computed:{apiItem(){return oe.getTranslateApiItem(this.translateApis,this.apiKey)},supportApi(){if(!this.translateApis||this.translateApis.length<=0)return[];let e=JSON.parse(JSON.stringify(this.translateApis));return e.forEach(t=>{t.children=t.children.filter(n=>n.support[this.languageCode])}),e}},mounted(){this.translateSuccess=!1,this.errorMessage="",this.translatedText="",this.loading=!1},emits:["update:translateApi","forceUpdate:translateApi","update:tagCompleteFile","update:onlyCsvOnAuto"],watch:{apiKey:{handler:function(e,t){this.translateSuccess=!1,this.errorMessage="",this.translatedText="",this.loading=!1,this.configs=[],this.gradioAPI.getData("translate_api."+this.apiKey).then(n=>{const i=this.apiItem;if(i&&i.config){for(const r of this.apiItem.config)n?r.value=n[r.key]||r.default:r.value=r.default||"",this.configs.push(r);console.log(this.configs)}})},immediate:!1}},methods:{open(e){this.apiKey=e,this.isOpen=!0,this.errorMessage="",this.translatedText="",this.loading=!1,this.tagCompleteFileKey=this.tagCompleteFile,this.onlyCsvOnAutoValue=this.onlyCsvOnAuto,this.refreshCSVs()},getItemName(e){let t=e.name;return t=t.replace("[Free] ","["+this.getLang("free")+"] "),t=t.replace("[ApiKey] ","["+this.getLang("apply_for_free")+"] "),t},onChangeConfigValue(e){e.type==="input"&&e.value===""&&e.default&&(e.value=e.default)},refreshCSVs(){this.tagCompleteFilesLoading||(this.tagCompleteFilesLoading=!0,this.tagCompleteFiles=[],this.gradioAPI.getCSVs().then(e=>{if(this.tagCompleteFilesLoading=!1,!(!e||e.length<=0)){this.tagCompleteFiles.push({key:"",name:this.getLang("not_enable")});for(const t of e)this.tagCompleteFiles.push({key:t.key,name:t.key})}}).catch(e=>{this.tagCompleteFilesLoading=!1}))},onTestClick(){if(this.loading)return;this.translateSuccess=!1,this.errorMessage="",this.translatedText="",this.loading=!0;let e={};for(const t of this.configs)e[t.key]=t.value;this.translate(this.testText,"en_US",this.languageCode,this.apiKey,e).then(t=>{t.success?(this.translatedText=t.translated_text,this.translateSuccess=!0):this.errorMessage=t.message,this.loading=!1}).catch(t=>{this.errorMessage=t.message,this.loading=!1})},translate(e,t,n,i=null,r=null){return new Promise(async(o,l)=>{i=i||this.translateApi,r=r||this.translateApiConfig||{},this.gradioAPI.translate(e,t,n,i,r).then(c=>{c.success?o(c):l(c)}).catch(c=>{l(c)})})},onSaveClick(){this.isOpen=!1;let e={};for(const t of this.configs)e[t.key]=t.value;this.$emit("update:translateApi",this.apiKey),this.$emit("update:tagCompleteFile",this.tagCompleteFileKey),this.$emit("update:onlyCsvOnAuto",this.onlyCsvOnAutoValue),this.gradioAPI.setData("translate_api."+this.apiKey,e).then(t=>{this.apiKey===this.translateApi&&this.$emit("forceUpdate:translateApi")})},onCloseClick(){this.isOpen=!1},onTagCompleteTestClick(){this.tagCompleteResults=[],["1girl","Robot dog"].forEach(t=>{let n=this.getLang("translate_result");this.translateToLocalByCSV(t,this.tagCompleteFileKey,!0).then(i=>{this.tagCompleteResults.push(n.replace("{0}",t).replace("{1}",i))}).catch(i=>{this.$toastr.error(i)})})}}},hv={key:0,class:"physton-prompt-translate-setting"},gv={class:"translate-setting-main"},mv={class:"translate-setting-content"},vv={class:"setting-line"},yv={class:"line-title"},bv={class:"line-content"},Cv=["label"],wv=["value"],Tv={key:0,class:"setting-line"},_v=_("div",{class:"line-title"},null,-1),Ev={class:"line-content"},xv={class:"common-red"},Sv={key:1,class:"setting-line"},kv=_("div",{class:"line-title"},null,-1),Av={class:"line-content"},Lv={class:"help-list"},Ov={class:"help-item"},Dv=["href"],Pv={class:"setting-line"},Iv={class:"line-title"},Nv={class:"line-content"},Rv=["onUpdate:modelValue","onChange"],Mv=["onUpdate:modelValue"],Fv=["value"],Hv={class:"setting-line"},Bv={class:"line-title"},jv={class:"line-content"},$v={class:"setting-line"},Uv=_("div",{class:"line-title"},null,-1),Wv={class:"line-content"},Vv={class:"setting-line"},Kv=_("div",{class:"line-title"},null,-1),qv={class:"line-content"},zv={key:0,class:"translate-error"},Xv={class:"setting-line"},Yv=_("div",{class:"line-title"},"TagComplete",-1),Gv={class:"line-content"},Jv=["innerHTML"],Zv=["innerHTML"],Qv={class:"line-row"},ey=["value"],ty={class:"setting-line"},ny=_("div",{class:"line-title"},null,-1),iy={class:"line-content"},ry={ref:"tagCompleteResults"},sy={class:"setting-btns"};function oy(e,t,n,i,r,o){const l=Lt("icon-svg"),c=Us("tooltip");return r.isOpen?(R(),B("div",hv,[_("div",gv,[_("div",mv,[_("div",vv,[_("div",yv,ce(e.getLang("translate_api")),1),_("div",bv,[fe(_("select",{"onUpdate:modelValue":t[0]||(t[0]=d=>r.apiKey=d)},[(R(!0),B(Re,null,mt(o.supportApi,d=>(R(),B("optgroup",{key:d.type,label:e.getLang(d.type)},[(R(!0),B(Re,null,mt(d.children,m=>(R(),B("option",{key:m.key,value:m.key},ce(o.getItemName(m)),9,wv))),128))],8,Cv))),128))],512),[[Xs,r.apiKey]])])]),o.apiItem&&o.apiItem.type=="translators"?(R(),B("div",Tv,[_v,_("div",Ev,[_("span",xv,"*"+ce(e.getLang("not_api_key_desc")),1)])])):ze("",!0),o.apiItem.help?(R(),B("div",Sv,[kv,_("div",Av,[(R(!0),B(Re,null,mt(o.apiItem.help,d=>(R(),B("div",Lv,[_("div",Ov,[$t("[?] "),_("a",{href:d.url,target:"_blank"},ce(d.title),9,Dv)])]))),256))])])):ze("",!0),(R(!0),B(Re,null,mt(r.configs,d=>(R(),B("div",Pv,[_("div",Iv,ce(d.title),1),_("div",Nv,[d.type=="input"?fe((R(),B("input",{key:0,type:"text","onUpdate:modelValue":m=>d.value=m,onChange:m=>o.onChangeConfigValue(d)},null,40,Rv)),[[Hi,d.value]]):ze("",!0),d.type=="select"?fe((R(),B("select",{key:1,"onUpdate:modelValue":m=>d.value=m},[(R(!0),B(Re,null,mt(d.options,m=>(R(),B("option",{value:m},ce(m),9,Fv))),256))],8,Mv)),[[Xs,d.value]]):ze("",!0)])]))),256)),_("div",Hv,[_("div",Bv,ce(e.getLang("translate_test")),1),_("div",jv,[fe(_("textarea",{class:"test-input","onUpdate:modelValue":t[1]||(t[1]=d=>r.testText=d)},null,512),[[Hi,r.testText]])])]),_("div",$v,[Uv,_("div",Wv,[_("div",{class:"hover-scale-120 test-btn",onClick:t[2]||(t[2]=(...d)=>o.onTestClick&&o.onTestClick(...d))},[r.loading?(R(),vt(l,{key:0,name:"loading"})):(R(),B(Re,{key:1},[$t(ce(e.getLang("test")),1)],64))])])]),_("div",Vv,[Kv,_("div",qv,[!r.translateSuccess&&r.errorMessage?(R(),B("div",zv,ce(r.errorMessage),1)):ze("",!0),r.translatedText?fe((R(),B("textarea",{key:1,class:"test-input","onUpdate:modelValue":t[3]||(t[3]=d=>r.translatedText=d)},null,512)),[[Hi,r.translatedText]]):ze("",!0)])]),_("div",Xv,[Yv,_("div",Gv,[_("div",{innerHTML:e.getLang("tagcomplete_translate_desc")},null,8,Jv),_("div",{class:"common-red",innerHTML:e.getLang("tagcomplete_translate_desc2")},null,8,Zv),_("div",Qv,[fe(_("select",{"onUpdate:modelValue":t[4]||(t[4]=d=>r.tagCompleteFileKey=d),onChange:t[5]||(t[5]=d=>r.tagCompleteResults=[])},[(R(!0),B(Re,null,mt(r.tagCompleteFiles,d=>(R(),B("option",{value:d.key},ce(d.name),9,ey))),256))],544),[[Xs,r.tagCompleteFileKey]]),fe((R(),B("div",{class:"refresh-btn hover-scale-120",onClick:t[6]||(t[6]=(...d)=>o.refreshCSVs&&o.refreshCSVs(...d))},[r.tagCompleteFilesLoading?(R(),vt(l,{key:0,name:"loading"})):(R(),vt(l,{key:1,name:"refresh"}))])),[[c,e.getLang("refresh")]])]),_("label",{class:"onlyCsvOnAuto",style:Kt({display:r.tagCompleteFileKey?"flex":"none"})},[fe(_("input",{class:"hover-scale-120",type:"checkbox",value:"1","onUpdate:modelValue":t[7]||(t[7]=d=>r.onlyCsvOnAutoValue=d)},null,512),[[zh,r.onlyCsvOnAutoValue]]),_("span",null,ce(e.getLang("only_csv_on_auto")),1)],4)])]),fe(_("div",ty,[ny,_("div",iy,[_("div",{class:"hover-scale-120 test-btn",onClick:t[8]||(t[8]=(...d)=>o.onTagCompleteTestClick&&o.onTagCompleteTestClick(...d))},ce(e.getLang("test")),1),fe(_("div",ry,[(R(!0),B(Re,null,mt(r.tagCompleteResults,d=>(R(),B("p",{key:d},ce(d),1))),128))],512),[[_t,r.tagCompleteResults.length>0]])])],512),[[_t,r.tagCompleteFileKey]])]),_("div",sy,[_("div",{class:"translate-save hover-scale-120",onClick:t[9]||(t[9]=(...d)=>o.onSaveClick&&o.onSaveClick(...d))},ce(e.getLang("save")),1),_("div",{class:"translate-close hover-scale-120",onClick:t[10]||(t[10]=(...d)=>o.onCloseClick&&o.onCloseClick(...d))},ce(e.getLang("close")),1)])])])):ze("",!0)}const ay=sn(pv,[["render",oy]]),ly={name:"SelectLanguage",components:{IconSvg:Fn},mixins:[Yn],props:{},data(){return{isOpen:!1}},computed:{},mounted(){},methods:{open(){this.isOpen=!0,this.$nextTick(()=>{this.scrollToSelectedItem()})},close(){this.isOpen=!1},onLanguageClick(e){this.$emit("update:languageCode",e.code),this.close()},scrollToSelectedItem(){const e=this.$refs.items;for(let t=0;to.close&&o.close(...c))},[_("div",{class:"language-main",onClick:t[2]||(t[2]=gt(()=>{},["stop"]))},[_("div",{class:"language-close",onClick:t[0]||(t[0]=(...c)=>o.close&&o.close(...c))},[ve(l,{name:"close"})]),_("div",{class:"language-list",onClick:t[1]||(t[1]=gt(()=>{},["stop"]))},[(R(!0),B(Re,null,mt(e.languages,c=>(R(),B("div",{key:c.code,class:At(["language-item",c.code==e.languageCode?"selected":""]),ref_for:!0,ref:"items",onClick:d=>o.onLanguageClick(c)},ce(c.code)+" - "+ce(c.name),11,uy))),128))])])])):ze("",!0)}const fy=sn(ly,[["render",cy]]),dy={components:{IconSvg:Fn},props:{},mixins:[Yn],data(){return{favoriteKey:"",favorites:[{name:"txt2img",type:"prompt",key:"txt2img",list:[]},{name:"txt2img",type:"negative_prompt",key:"txt2img_neg",list:[]},{name:"img2img",type:"prompt",key:"img2img",list:[]},{name:"img2img",type:"negative_prompt",key:"img2img_neg",list:[]}],isShow:!1,loading:!1,emptyMsg:"",mouseEnter:!1,currentItem:{}}},emits:["use"],mounted(){this.favorites.forEach(e=>{this.getFavorites(e.key)})},methods:{formatTime(e){return oe.formatTime(e*1e3,!1)},getFavorites(e){if(!e)return;let t=this.favorites.find(n=>n.key===e);t&&(this.loading=!0,this.gradioAPI.getFavorites(e).then(n=>{n&&n.length>0&&(n.reverse(),n.forEach(i=>{i.is_favorite=!0}),t.list=n),window.phystonPromptfavorites=this.favorites,this.emptyMsg=this.getLang("no_favorite"),this.loading=!1}).catch(n=>{this.emptyMsg=this.getLang("get_favorite_error"),this.loading=!1}))},show(e,t){if(!(!e||!t)){if(this.favoriteKey=e,this.isShow){this.isShow=!1;return}this.mouseEnter=!1,this.loading=!0,this.isShow=!0,this.$refs.favorite.style.top=t.pageY+2+"px",this.$refs.favorite.style.left=t.pageX+2+"px",this.getFavorites(this.favoriteKey),setTimeout(()=>{this.mouseEnter||this.hide()},3e3)}},hide(){this.mouseEnter=!1,this.isShow=!1},onMouseEnter(){this.mouseEnter=!0},onMouseLeave(){this.hide()},onTabClick(e){this.favoriteKey=e,this.getFavorites(this.favoriteKey)},onFavoriteClick(e){let t=this.favorites.find(i=>i.key===this.favoriteKey);if(!t)return;let n=t.list[e];n.is_favorite?this.gradioAPI.unFavorite(this.favoriteKey,n.id).then(i=>{i&&(n.is_favorite=!1,window.phystonPromptfavorites=this.favorites)}):this.gradioAPI.doFavorite(this.favoriteKey,n.id).then(i=>{i&&(n.is_favorite=!0,window.phystonPromptfavorites=this.favorites)})},onCopyClick(e){let t=this.favorites.find(i=>i.key===this.favoriteKey);if(!t)return;let n=t.list[e];this.$copyText(n.prompt).then(()=>{this.$toastr.success("success!")}).catch(()=>{this.$toastr.error("error!")})},onNameKeyDown(e,t){t.keyCode===13&&t.target.blur()},onNameChange(e,t){let n=this.favorites.find(o=>o.key===this.favoriteKey);if(!n)return;let i=n.list[e];const r=t.target.value;this.gradioAPI.setFavoriteName(this.favoriteKey,i.id,r).then(o=>{o?(i.name=r,window.phystonPromptfavorites=this.favorites):t.target.value=i.name}).catch(o=>{t.target.value=i.name})},onItemMouseEnter(e){let t=this.favorites.find(n=>n.key===this.favoriteKey);t&&(this.currentItem=t.list[e])},onItemMouseLeave(e){this.currentItem={}},onUseClick(e){let t=this.favorites.find(n=>n.key===this.favoriteKey);t&&(this.hide(),this.$emit("use",t.list[e]))}}},py={class:"popup-tabs"},hy=["onClick"],gy={class:"tab-name"},my={class:"tab-type"},vy={class:"tab-count"},yy={class:"popup-detail"},by={class:"popup-item-tags"},Cy={key:0,class:"item-wrap"},wy={key:1,class:"item-tag"},Ty={class:"item-tag-value"},_y={class:"item-tag-local-value"},Ey={class:"content-list"},xy=["onMouseenter","onMouseleave"],Sy={class:"item-header"},ky={class:"item-header-left"},Ay={class:"item-header-index"},Ly={class:"item-header-time"},Oy={class:"item-header-name"},Dy=["value","onKeydown","onChange","placeholder"],Py={class:"item-header-right"},Iy=["onClick"],Ny=["onClick"],Ry=["onClick"],My=["onClick"],Fy={class:"item-prompt"},Hy={class:"content-empty"},By={key:1};function jy(e,t,n,i,r,o){const l=Lt("icon-svg"),c=Us("tooltip");return fe((R(),B("div",{class:"physton-prompt-favorite",ref:"favorite",onMouseenter:t[0]||(t[0]=(...d)=>o.onMouseEnter&&o.onMouseEnter(...d)),onMouseleave:t[1]||(t[1]=(...d)=>o.onMouseLeave&&o.onMouseLeave(...d)),onClick:t[2]||(t[2]=gt(()=>{},["stop"]))},[_("div",py,[(R(!0),B(Re,null,mt(r.favorites,d=>(R(),B("div",{key:d.key,class:At(["popup-tab",d.key===r.favoriteKey?"active":""]),onClick:m=>o.onTabClick(d.key)},[_("div",gy,ce(e.getLang(d.name)),1),_("div",my,ce(e.getLang(d.type)),1),_("div",vy,ce(d.list.length),1)],10,hy))),128))]),fe(_("div",yy,[_("div",by,[(R(!0),B(Re,null,mt(r.currentItem.tags,(d,m)=>(R(),B(Re,{key:m},[d.type&&d.type==="wrap"?(R(),B("div",Cy)):(R(),B("div",wy,[_("div",Ty,ce(d.value),1),_("div",_y,ce(d.localValue),1)]))],64))),128))])],512),[[_t,r.currentItem&&r.currentItem.tags]]),(R(!0),B(Re,null,mt(r.favorites,d=>(R(),B("div",{key:d.key,class:At(["popup-tab-content",d.key===r.favoriteKey?"active":""])},[fe(_("div",Ey,[(R(!0),B(Re,null,mt(d.list,(m,g)=>(R(),B("div",{class:"content-item",key:m.id,onMouseenter:w=>o.onItemMouseEnter(g),onMouseleave:w=>o.onItemMouseLeave(g)},[_("div",Sy,[_("div",ky,[_("div",Ay,ce(d.list.length-g),1),_("div",Ly,ce(o.formatTime(m.time)),1),_("div",Oy,[_("input",{class:"header-name-input",value:m.name,onKeydown:w=>o.onNameKeyDown(g,w),onChange:w=>o.onNameChange(g,w),placeholder:e.getLang("unset_name")},null,40,Dy)])]),_("div",Py,[fe((R(),B("div",{class:"header-btn-favorite hover-scale-140",onClick:w=>o.onFavoriteClick(g)},[ve(l,{name:"favorite-yes"})],8,Iy)),[[_t,m.is_favorite],[c,e.getLang("remove_from_favorite")]]),fe((R(),B("div",{class:"header-btn-favorite hover-scale-140",onClick:w=>o.onFavoriteClick(g)},[ve(l,{name:"favorite-no"})],8,Ny)),[[_t,!m.is_favorite],[c,e.getLang("add_to_favorite")]]),fe((R(),B("div",{class:"header-btn-copy hover-scale-140",onClick:w=>o.onCopyClick(g)},[ve(l,{name:"copy"})],8,Ry)),[[c,e.getLang("copy_to_clipboard")]]),fe((R(),B("div",{class:"header-btn-use hover-scale-140",onClick:w=>o.onUseClick(g)},[ve(l,{name:"use"})],8,My)),[[c,e.getLang("use")]])])]),_("div",Fy,ce(m.prompt),1)],40,xy))),128))],512),[[_t,d.list.length>0]]),fe(_("div",Hy,[r.loading?(R(),vt(l,{key:0,name:"loading"})):(R(),B("span",By,ce(r.emptyMsg),1))],512),[[_t,d.list.length===0]])],2))),128))],544)),[[_t,r.isShow]])}const $y=sn(dy,[["render",jy]]),Uy={components:{IconSvg:Fn},props:{},mixins:[Yn],data(){return{historyKey:"",histories:[{name:"txt2img",type:"prompt",key:"txt2img",list:[]},{name:"txt2img",type:"negative_prompt",key:"txt2img_neg",list:[]},{name:"img2img",type:"prompt",key:"img2img",list:[]},{name:"img2img",type:"negative_prompt",key:"img2img_neg",list:[]}],isShow:!1,loading:!1,emptyMsg:"",mouseEnter:!1,currentItem:{}}},emits:["use","refreshFavorites"],mounted(){},methods:{formatTime(e){return oe.formatTime(e*1e3,!1)},getHistories(e){if(!e)return;let t=this.histories.find(n=>n.key===e);t&&(this.loading=!0,this.gradioAPI.getHistories(e).then(n=>{n&&n.length>0&&(n.reverse(),t.list=n),this.emptyMsg=this.getLang("no_history"),this.loading=!1}).catch(n=>{this.emptyMsg=this.getLang("get_history_error"),this.loading=!1}))},show(e,t){if(!(!e||!t)){if(this.historyKey=e,this.isShow){this.isShow=!1;return}this.mouseEnter=!1,this.loading=!0,this.isShow=!0,this.$refs.history.style.top=t.pageY+2+"px",this.$refs.history.style.left=t.pageX+2+"px",this.getHistories(this.historyKey),setTimeout(()=>{this.mouseEnter||this.hide()},3e3)}},hide(){this.mouseEnter=!1,this.isShow=!1},onMouseEnter(){this.mouseEnter=!0},onMouseLeave(){this.hide()},onTabClick(e){this.historyKey=e,this.getHistories(this.historyKey)},onDeleteClick(e){let t=this.histories.find(i=>i.key===this.historyKey);if(!t)return;let n=t.list[e];this.gradioAPI.deleteHistory(this.historyKey,n.id).then(i=>{i&&t.list.splice(e,1)})},onFavoriteClick(e){let t=this.histories.find(i=>i.key===this.historyKey);if(!t)return;let n=t.list[e];n.is_favorite?this.gradioAPI.unFavorite(this.historyKey,n.id).then(i=>{i&&(n.is_favorite=!1,this.$emit("refreshFavorites",this.historyKey))}):this.gradioAPI.doFavorite(this.historyKey,n.id).then(i=>{i&&(n.is_favorite=!0,this.$emit("refreshFavorites",this.historyKey))})},onCopyClick(e){let t=this.histories.find(i=>i.key===this.historyKey);if(!t)return;let n=t.list[e];this.$copyText(n.prompt).then(()=>{this.$toastr.success("success!")}).catch(()=>{this.$toastr.error("error!")})},onNameKeyDown(e,t){t.keyCode===13&&t.target.blur()},onNameChange(e,t){let n=this.histories.find(o=>o.key===this.historyKey);if(!n)return;let i=n.list[e];const r=t.target.value;this.gradioAPI.setHistoryName(this.historyKey,i.id,r).then(o=>{o?(i.name=r,this.$emit("refreshFavorites",this.historyKey)):t.target.value=i.name}).catch(o=>{t.target.value=i.name})},onItemMouseEnter(e){let t=this.histories.find(n=>n.key===this.historyKey);t&&(this.currentItem=t.list[e])},onItemMouseLeave(e){this.currentItem={}},onUseClick(e){let t=this.histories.find(n=>n.key===this.historyKey);t&&(this.hide(),this.$emit("use",t.list[e]))},onDeleteAllHistoryClick(){let e=this.histories.find(t=>t.key===this.historyKey);e&&confirm(this.getLang("delete_all_history_confirm"))&&this.gradioAPI.deleteHistories(this.historyKey).then(t=>{e.list=[]}).catch(t=>{})}}},Wy={class:"popup-tabs"},Vy=["onClick"],Ky={class:"tab-name"},qy={class:"tab-type"},zy={class:"tab-count"},Xy={class:"popup-detail"},Yy={class:"popup-item-tags"},Gy={key:0,class:"item-wrap"},Jy={key:1,class:"item-tag"},Zy={class:"item-tag-value"},Qy={class:"item-tag-local-value"},eb={class:"content-list"},tb=["onMouseenter","onMouseleave"],nb={class:"item-header"},ib={class:"item-header-left"},rb={class:"item-header-index"},sb={class:"item-header-time"},ob={class:"item-header-name"},ab=["value","onKeydown","onChange","placeholder"],lb={class:"item-header-right"},ub=["onClick"],cb=["onClick"],fb=["onClick"],db=["onClick"],pb=["onClick"],hb={class:"item-prompt"},gb={class:"content-empty"},mb={key:1};function vb(e,t,n,i,r,o){const l=Lt("icon-svg"),c=Us("tooltip");return fe((R(),B("div",{class:"physton-prompt-history",ref:"history",onMouseenter:t[1]||(t[1]=(...d)=>o.onMouseEnter&&o.onMouseEnter(...d)),onMouseleave:t[2]||(t[2]=(...d)=>o.onMouseLeave&&o.onMouseLeave(...d)),onClick:t[3]||(t[3]=gt(()=>{},["stop"]))},[_("div",Wy,[(R(!0),B(Re,null,mt(r.histories,d=>(R(),B("div",{key:d.key,class:At(["popup-tab",d.key===r.historyKey?"active":""]),onClick:m=>o.onTabClick(d.key)},[_("div",Ky,ce(e.getLang(d.name)),1),_("div",qy,ce(e.getLang(d.type)),1),_("div",zy,ce(d.list.length),1)],10,Vy))),128))]),fe(_("div",Xy,[_("div",Yy,[(R(!0),B(Re,null,mt(r.currentItem.tags,(d,m)=>(R(),B(Re,{key:m},[d.type&&d.type==="wrap"?(R(),B("div",Gy)):(R(),B("div",Jy,[_("div",Zy,ce(d.value),1),_("div",Qy,ce(d.localValue),1)]))],64))),128))])],512),[[_t,r.currentItem&&r.currentItem.tags]]),(R(!0),B(Re,null,mt(r.histories,d=>(R(),B("div",{key:d.key,class:At(["popup-tab-content",d.key===r.historyKey?"active":""])},[fe(_("div",eb,[_("div",{class:"clear-btn",onClick:t[0]||(t[0]=(...m)=>o.onDeleteAllHistoryClick&&o.onDeleteAllHistoryClick(...m))},[ve(l,{name:"remove"}),$t(" "+ce(e.getLang("delete_all_history")),1)]),(R(!0),B(Re,null,mt(d.list,(m,g)=>(R(),B("div",{class:"content-item",key:m.id,onMouseenter:w=>o.onItemMouseEnter(g),onMouseleave:w=>o.onItemMouseLeave(g)},[_("div",nb,[_("div",ib,[_("div",rb,ce(d.list.length-g),1),_("div",sb,ce(o.formatTime(m.time)),1),_("div",ob,[_("input",{class:"header-name-input",value:m.name,onKeydown:w=>o.onNameKeyDown(g,w),onChange:w=>o.onNameChange(g,w),placeholder:e.getLang("unset_name")},null,40,ab)])]),_("div",lb,[_("div",{class:"header-btn-favorite hover-scale-140",onClick:w=>o.onDeleteClick(g)},[ve(l,{name:"remove"})],8,ub),fe((R(),B("div",{class:"header-btn-favorite hover-scale-140",onClick:w=>o.onFavoriteClick(g)},[ve(l,{name:"favorite-yes"})],8,cb)),[[_t,m.is_favorite],[c,e.getLang("remove_from_favorite")]]),fe((R(),B("div",{class:"header-btn-favorite hover-scale-140",onClick:w=>o.onFavoriteClick(g)},[ve(l,{name:"favorite-no"})],8,fb)),[[_t,!m.is_favorite],[c,e.getLang("add_to_favorite")]]),fe((R(),B("div",{class:"header-btn-copy hover-scale-140",onClick:w=>o.onCopyClick(g)},[ve(l,{name:"copy"})],8,db)),[[c,e.getLang("copy_to_clipboard")]]),fe((R(),B("div",{class:"header-btn-use hover-scale-140",onClick:w=>o.onUseClick(g)},[ve(l,{name:"use"})],8,pb)),[[c,e.getLang("use")]])])]),_("div",hb,ce(m.prompt),1)],40,tb))),128))],512),[[_t,d.list.length>0]]),fe(_("div",gb,[r.loading?(R(),vt(l,{key:0,name:"loading"})):(R(),B("span",mb,ce(r.emptyMsg),1))],512),[[_t,d.list.length===0]])],2))),128))],544)),[[_t,r.isShow]])}const yb=sn(Uy,[["render",vb]]),bb={name:"ExtensionCss",components:{IconSvg:Fn},mixins:[Yn],props:{},data(){return{isOpen:!1,list:[]}},computed:{},mounted(){},methods:{init(){this.refresh(!0)},refresh(e=!1){this.gradioAPI.getExtensionCssList().then(t=>{let n=[];for(let i=0;i{i.sort=i.manifest.type+"."+i.dir}),n.sort((i,r)=>i.sort>r.sort?1:-1),this.list=n,e&&this.list.forEach(i=>{i.selected&&oe.loadCSS(i.style,i.id,!0,!1)})})},getName(e){if(!e)return"";let t=e.manifest.name;return e.manifest.i18n&&e.manifest.i18n[this.languageCode]&&(t=e.manifest.i18n[this.languageCode]),t},onChangeSelect(e){let t=this.list.find(n=>n.id===e);t&&(t.selected=!t.selected,t.selected?oe.loadCSS(t.style,t.id,!0,!1):oe.removeCSS(t.id),this.gradioAPI.setData(t.dataName,t.selected))},open(){this.isOpen=!0,this.refresh(!1)},close(){this.isOpen=!1}}},Cb={class:"extension-table"},wb=["checked","onChange"],Tb={class:"extension-name"},_b={class:"extension-type"},Eb={class:"extension-dir"},xb={class:"extension-author"};function Sb(e,t,n,i,r,o){const l=Lt("icon-svg");return r.isOpen?(R(),B("div",{key:0,class:"physton-prompt-extension-css",onClick:t[3]||(t[3]=(...c)=>o.close&&o.close(...c))},[_("div",{class:"extension-main",onClick:t[2]||(t[2]=gt(()=>{},["stop"]))},[_("div",{class:"extension-close",onClick:t[0]||(t[0]=(...c)=>o.close&&o.close(...c))},[ve(l,{name:"close"})]),_("div",{class:"extension-list",onClick:t[1]||(t[1]=gt(()=>{},["stop"]))},[_("table",Cb,[(R(!0),B(Re,null,mt(r.list,(c,d)=>(R(),B("tr",{key:c.dir,class:"extension-item",ref_for:!0,ref:"items"},[_("td",null,[_("input",{class:"extension-checkbox",type:"checkbox",name:"extension-item",checked:c.selected,onChange:m=>o.onChangeSelect(c.id)},null,40,wb)]),_("td",Tb,ce(o.getName(c)),1),_("td",_b,ce(e.getLang(c.manifest.type)),1),_("td",Eb,ce(c.dir),1),_("td",xb,[c.manifest.author?(R(),B(Re,{key:0},[$t("By: "+ce(c.manifest.author),1)],64)):ze("",!0)])]))),128))])])])])):ze("",!0)}const kb=sn(bb,[["render",Sb]]),Ab={name:"PromptFormat",components:{IconSvg:Fn},mixins:[Yn],props:{autoRemoveSpace:{type:Boolean,default:!1},autoRemoveLastComma:{type:Boolean,default:!1},autoKeepWeightZero:{type:Boolean,default:!1},autoKeepWeightOne:{type:Boolean,default:!1}},data(){return{isOpen:!1}},emits:["update:autoRemoveSpace","update:autoRemoveLastComma","update:autoKeepWeightZero","update:autoKeepWeightOne"],computed:{},mounted(){},methods:{open(){this.isOpen=!0},close(){this.isOpen=!1}}},Lb={class:"format-item"},Ob=["checked"],Db=["innerHTML"],Pb={class:"format-item"},Ib=["checked"],Nb=["innerHTML"],Rb={class:"format-item"},Mb=["checked"],Fb=["innerHTML"],Hb={class:"format-item"},Bb=["checked"],jb=["innerHTML"];function $b(e,t,n,i,r,o){const l=Lt("icon-svg");return r.isOpen?(R(),B("div",{key:0,class:"physton-prompt-format",onClick:t[7]||(t[7]=(...c)=>o.close&&o.close(...c))},[_("div",{class:"format-main",onClick:t[6]||(t[6]=gt(()=>{},["stop"]))},[_("div",{class:"format-close",onClick:t[0]||(t[0]=(...c)=>o.close&&o.close(...c))},[ve(l,{name:"close"})]),_("div",{class:"format-list",onClick:t[5]||(t[5]=gt(()=>{},["stop"]))},[_("div",Lb,[_("input",{class:"format-checkbox",type:"checkbox",checked:n.autoRemoveSpace,onChange:t[1]||(t[1]=c=>e.$emit("update:autoRemoveSpace",c.target.checked))},null,40,Ob),_("div",{class:"format-desc",innerHTML:e.getLang("is_remove_space")},null,8,Db)]),_("div",Pb,[_("input",{class:"format-checkbox",type:"checkbox",checked:n.autoRemoveLastComma,onChange:t[2]||(t[2]=c=>e.$emit("update:autoRemoveLastComma",c.target.checked))},null,40,Ib),_("div",{class:"format-desc",innerHTML:e.getLang("is_remove_last_comma")},null,8,Nb)]),_("div",Rb,[_("input",{class:"format-checkbox",type:"checkbox",checked:n.autoKeepWeightZero,onChange:t[3]||(t[3]=c=>e.$emit("update:autoKeepWeightZero",c.target.checked))},null,40,Mb),_("div",{class:"format-desc",innerHTML:e.getLang("is_keep_weight_zero")},null,8,Fb)]),_("div",Hb,[_("input",{class:"format-checkbox",type:"checkbox",checked:n.autoKeepWeightOne,onChange:t[4]||(t[4]=c=>e.$emit("update:autoKeepWeightOne",c.target.checked))},null,40,Bb),_("div",{class:"format-desc",innerHTML:e.getLang("is_keep_weight_one")},null,8,jb)])])])])):ze("",!0)}const Ub=sn(Ab,[["render",$b]]),Wb={name:"PackagesState",components:{IconSvg:Fn},mixins:[Yn],props:{python:{type:String,default:"./python"},packagesState:{type:Array,default:()=>[]}},data(){return{todayNotShow:!1,isOpen:!1,loading:!1,showResult:!1,result:`1112323 +sfsdfsdf +2222 +3333 +1112323 +sfsdfsdf +2222 +3333 +1112323 +sfsdfsdf +2222 +3333`}},emits:[],computed:{},watch:{packagesState:{handler(){this.isAllInstalled()||this.open()},deep:!0}},mounted(){},methods:{isInstalled(e){for(let t of this.packagesState)if(t.name===e)return t.state;return!1},isAllInstalled(){for(let e of this.packagesState)if(!e.state)return!1;return!0},getCommand(e){return`${this.python} -m pip install ${e.package}`},onInstallClick(){if(this.loading)return;this.loading=!0,this.showResult=!0,this.result="";let e=[];this.packagesState.forEach(i=>{i.state||e.push(i)});const t=(i=!1)=>{this.loading=!1,i&&(this.result+=` +complete!`,setTimeout(this.close,2e3)),this.scrollToBottom()},n=()=>{let i=e.shift();if(!i)return t(!0);this.gradioAPI.installPackage(i.name,i.package).then(r=>{this.result+=`${r.message} +`,r.state?(this.scrollToBottom(),n()):t(!1)}).catch(r=>{console.log(r),this.result+=`${i.name} install failed +${r.message} +`,t(!1)})};n()},scrollToBottom(){this.$nextTick(()=>{this.$refs.result.scrollTop=this.$refs.result.scrollHeight})},onTodayNotShowChange(){this.todayNotShow=!this.todayNotShow,this.gradioAPI.setData("packagesStateTodayNotShow",new Date().toLocaleDateString())},open(){this.gradioAPI.getData("packagesStateTodayNotShow").then(e=>{e&&e===new Date().toLocaleDateString()?this.close():(this.result="",this.loading=!1,this.showResult=!1,this.isOpen=!0)}).catch(e=>{})},close(){this.isOpen=!1}}},Vb={class:"today-now-show"},Kb=["value"],qb=_("div",{class:"state-body-name"},"sd-webui-prompt-all-in-one",-1),zb=["innerHTML"],Xb={class:"package-list"},Yb={class:"package-name"},Gb={class:"package-command"},Jb={key:0,class:"install-result"};function Zb(e,t,n,i,r,o){const l=Lt("icon-svg");return r.isOpen?(R(),B("div",{key:0,class:"physton-packages-state",onClick:t[6]||(t[6]=(...c)=>o.close&&o.close(...c))},[_("div",{class:"state-main",onClick:t[5]||(t[5]=gt(()=>{},["stop"]))},[_("div",{class:"state-close",onClick:t[0]||(t[0]=(...c)=>o.close&&o.close(...c))},[ve(l,{name:"close"})]),_("div",{class:"state-body",onClick:t[4]||(t[4]=gt(()=>{},["stop"]))},[_("div",Vb,[_("label",null,[_("input",{type:"checkbox",value:r.todayNotShow,onChange:t[1]||(t[1]=(...c)=>o.onTodayNotShowChange&&o.onTodayNotShowChange(...c))},null,40,Kb),$t(" "+ce(e.getLang("today_not_show")),1)])]),qb,_("div",{class:"state-body-language",onClick:t[2]||(t[2]=c=>e.$emit("click:selectLanguage",c))},[ve(l,{name:"i18n"}),_("div",null,"Language: "+ce(e.langName),1)]),_("div",{class:"state-body-desc",innerHTML:e.getLang("packages_desc")},null,8,zb),_("div",Xb,[(R(!0),B(Re,null,mt(n.packagesState,c=>(R(),B("div",{key:c.name,class:"package-item"},[_("div",Yb,ce(c.name),1),_("div",{class:At(["package-state",c.state?"installed":"not_install"])},ce(e.getLang(c.state?"installed":"not_install")),3),_("div",Gb,ce(o.getCommand(c)),1)]))),128))]),_("div",{class:"btn-packages-install hover-scale-120",onClick:t[3]||(t[3]=(...c)=>o.onInstallClick&&o.onInstallClick(...c))},[r.loading?(R(),vt(l,{key:0,name:"loading"})):(R(),B(Re,{key:1},[$t(ce(e.getLang("install")),1)],64))]),r.showResult?(R(),B("div",Jb,[$t(ce(e.getLang("packages_installing"))+" ",1),r.result?(R(),B("div",{key:0,class:"result-content",ref:"result"},ce(r.result),513)):ze("",!0)])):ze("",!0)])])])):ze("",!0)}const Qb=sn(Wb,[["render",Zb]]),eC={name:"ChatgptPrompt",components:{IconSvg:Fn},mixins:[Yn],props:{},data(){return{isOpen:!1,api:{},configs:[],chatPreset:"",hidePanels:{api:!0},imageDesc:"",promptResult:"",saveConfigIng:!1,genIng:!1}},emits:["use"],computed:{},mounted(){},methods:{open(){this.isOpen=!0,this.saveConfigIng=!1,this.genIng=!1,this.gradioAPI.getDatas(["chatgpt_prompts_preset","chatgpt_key","translate_api.openai"]).then(e=>{console.log(e),e.chatgpt_prompts_preset!==null?this.chatPreset=e.chatgpt_prompts_preset:this.chatPreset=this.getLang("chatgpt_prompts_preset"),this.configs=[];let t={},n=oe.getTranslateApiItem(this.translateApis,"openai");if(n=JSON.parse(JSON.stringify(n)),e.chatgpt_key&&typeof e.chatgpt_key=="object")for(const i of n.config)t[i.key]=e.chatgpt_key[i.key]||i.default||"";else if(e["translate_api.openai"]&&e["translate_api.openai"].api_key)for(const i of n.config)t[i.key]=e["translate_api.openai"][i.key]||i.default||"";else for(const i of n.config)t[i.key]=i.default||"";t.api_key||(this.hidePanels.api=!1);for(const i of n.config)i.value=t[i.key],this.configs.push(i)})},close(){this.isOpen=!1},onUnfoldClick(e){this.hidePanels[e]=!this.hidePanels[e]},onSaveConfigClick(){if(this.saveConfigIng)return;this.saveConfigIng=!0;let e={};this.configs.forEach(t=>{e[t.key]=t.value}),this.gradioAPI.setData("chatgpt_key",e).then(t=>{this.$toastr.success(this.getLang("success")),this.saveConfigIng=!1}).catch(t=>{this.$toastr.error(t.message||t),this.saveConfigIng=!1})},onPresetChange(e){this.chatPreset=e.target.value,this._saveChatPreset()},onRestoreClick(){this.chatPreset=this.getLang("chatgpt_prompts_preset"),this._saveChatPreset()},_saveChatPreset(){this.gradioAPI.setData("chatgpt_prompts_preset",this.chatPreset)},onGenClick(){if(this.genIng)return;if(!this.imageDesc)return this.$refs.imageDesc.focus();if(this.imageDesc=this.imageDesc.trim(),!this.imageDesc)return this.$refs.imageDesc.focus();this.genIng=!0;let e=[{role:"user",content:this.chatPreset},{role:"user",content:this.imageDesc}],t={};this.configs.forEach(n=>{t[n.key]=n.value}),this.gradioAPI.genOpenAI(e,t).then(n=>{n.success?this.promptResult=n.result:this.$toastr.error(n.message||"error"),this.genIng=!1}).catch(n=>{this.$toastr.error(n.message||n),this.genIng=!1})},onUseClick(){this.$emit("use",this.promptResult),this.close()}}},tC={class:"panel-header"},nC={class:"panel-title"},iC={class:"panel-content"},rC={class:"body-line"},sC={class:"line-title"},oC={class:"line-content"},aC=["onUpdate:modelValue"],lC=["onUpdate:modelValue"],uC=["value"],cC={class:"body-line"},fC=_("div",{class:"line-title"},null,-1),dC={class:"line-content text-right"},pC={class:"panel-header"},hC={class:"panel-title"},gC={class:"panel-content"},mC={class:"body-line"},vC={class:"line-title"},yC={class:"line-subtitle"},bC={class:"line-content"},CC=["value"],wC={class:"body-line"},TC=_("div",{class:"line-title"},null,-1),_C={class:"line-content text-right"},EC={class:"body-line"},xC={class:"line-title"},SC={class:"line-subtitle"},kC={class:"line-content"},AC=["placeholder"],LC={class:"body-line"},OC=_("div",{class:"line-title"},null,-1),DC={class:"line-content text-right"},PC={class:"panel-header"},IC={class:"panel-title"},NC={class:"panel-content"},RC={class:"body-line"},MC={class:"line-title"},FC={class:"line-content"},HC={key:0,class:"body-line"},BC=_("div",{class:"line-title"},null,-1),jC={class:"line-content text-right"};function $C(e,t,n,i,r,o){const l=Lt("icon-svg");return r.isOpen?(R(),B("div",{key:0,class:"physton-chatgpt-prompt",onClick:t[13]||(t[13]=(...c)=>o.close&&o.close(...c))},[_("div",{class:"chatgpt-main",onClick:t[12]||(t[12]=gt(()=>{},["stop"]))},[_("div",{class:"chatgpt-close",onClick:t[0]||(t[0]=(...c)=>o.close&&o.close(...c))},[ve(l,{name:"close"})]),_("div",{class:"chatgpt-body",onClick:t[11]||(t[11]=gt(()=>{},["stop"]))},[_("div",{class:At(["body-panel",r.hidePanels.api?"fold":""])},[_("div",tC,[_("div",{class:"panel-unfold",onClick:t[1]||(t[1]=c=>o.onUnfoldClick("api"))},[ve(l,{class:"hover-scale-120",name:"unfold"})]),_("div",nC,ce(e.getLang("api_config")),1)]),_("div",iC,[(R(!0),B(Re,null,mt(r.configs,c=>(R(),B("div",rC,[_("div",sC,ce(c.title),1),_("div",oC,[c.type=="input"?fe((R(),B("input",{key:0,type:"text","onUpdate:modelValue":d=>c.value=d},null,8,aC)),[[Hi,c.value]]):ze("",!0),c.type=="select"?fe((R(),B("select",{key:1,"onUpdate:modelValue":d=>c.value=d},[(R(!0),B(Re,null,mt(c.options,d=>(R(),B("option",{value:d},ce(d),9,uC))),256))],8,lC)),[[Xs,c.value]]):ze("",!0)])]))),256)),_("div",cC,[fC,_("div",dC,[_("div",{class:"common-btn hover-scale-120",onClick:t[2]||(t[2]=(...c)=>o.onSaveConfigClick&&o.onSaveConfigClick(...c))},[r.saveConfigIng?(R(),vt(l,{key:0,name:"loading"})):(R(),B(Re,{key:1},[$t(ce(e.getLang("save")),1)],64))])])])])],2),_("div",{class:At(["body-panel",r.hidePanels.send?"fold":""])},[_("div",pC,[_("div",{class:"panel-unfold",onClick:t[3]||(t[3]=c=>o.onUnfoldClick("send"))},[ve(l,{class:"hover-scale-120",name:"unfold"})]),_("div",hC,ce(e.getLang("image_desc")),1)]),_("div",gC,[_("div",mC,[_("div",vC,[$t(ce(e.getLang("preset"))+" ",1),_("div",yC,ce(e.getLang("ai_one")),1)]),_("div",bC,[_("textarea",{value:r.chatPreset,onChange:t[4]||(t[4]=(...c)=>o.onPresetChange&&o.onPresetChange(...c)),style:{height:"100px"}},null,40,CC)])]),_("div",wC,[TC,_("div",_C,[_("a",{href:"javascript:",onClick:t[5]||(t[5]=(...c)=>o.onRestoreClick&&o.onRestoreClick(...c))},ce(e.getLang("restore_to_default")),1)])]),_("div",EC,[_("div",xC,[$t(ce(e.getLang("image_desc"))+" ",1),_("div",SC,ce(e.getLang("ai_two")),1)]),_("div",kC,[fe(_("textarea",{style:{height:"100px"},ref:"imageDesc","onUpdate:modelValue":t[6]||(t[6]=c=>r.imageDesc=c),placeholder:e.getLang("input_image_desc")},null,8,AC),[[Hi,r.imageDesc]])])]),_("div",LC,[OC,_("div",DC,[_("div",{class:"common-btn hover-scale-120",onClick:t[7]||(t[7]=(...c)=>o.onGenClick&&o.onGenClick(...c))},[r.genIng?(R(),vt(l,{key:0,name:"loading"})):(R(),B(Re,{key:1},[$t(ce(e.getLang("generate")),1)],64))])])])])],2),_("div",{class:At(["body-panel",r.hidePanels.result?"fold":""])},[_("div",PC,[_("div",{class:"panel-unfold",onClick:t[8]||(t[8]=c=>o.onUnfoldClick("result"))},[ve(l,{class:"hover-scale-120",name:"unfold"})]),_("div",IC,ce(e.getLang("generate_result")),1)]),_("div",NC,[_("div",RC,[_("div",MC,ce(e.getLang("generate_result")),1),_("div",FC,[fe(_("textarea",{style:{height:"100px"},"onUpdate:modelValue":t[9]||(t[9]=c=>r.promptResult=c)},null,512),[[Hi,r.promptResult]])])]),r.promptResult?(R(),B("div",HC,[BC,_("div",jC,[_("div",{class:"common-btn hover-scale-120",onClick:t[10]||(t[10]=(...c)=>o.onUseClick&&o.onUseClick(...c))},ce(e.getLang("use")),1)])])):ze("",!0)])],2)])])])):ze("",!0)}const UC=sn(eC,[["render",$C]]),WC={name:"About",components:{IconSvg:Fn},mixins:[Yn],props:{version:{type:String,default:""},latestVersion:{type:String,default:""},isLatestVersion:{type:Boolean,default:!0}},data(){return{isOpen:!1,loading:!1,versions:[],icons:[{title:"GitHub stars",url:"https://github.com/Physton/sd-webui-prompt-all-in-one/stargazers",image:"https://img.shields.io/github/stars/Physton/sd-webui-prompt-all-in-one?style=plastic"},{title:"GitHub forks",url:"https://github.com/Physton/sd-webui-prompt-all-in-one/network/members",image:"https://img.shields.io/github/forks/Physton/sd-webui-prompt-all-in-one?style=plastic"},{title:"GitHub issues",url:"https://github.com/Physton/sd-webui-prompt-all-in-one/issues",image:"https://img.shields.io/github/issues/Physton/sd-webui-prompt-all-in-one?style=plastic"},{title:"GitHub issues closed",url:"https://github.com/Physton/sd-webui-prompt-all-in-one/issues?q=is%3Aissue+is%3Aclosed",image:"https://img.shields.io/github/issues-closed/Physton/sd-webui-prompt-all-in-one?style=plastic"},{title:"GitHub license",url:"https://github.com/Physton/sd-webui-prompt-all-in-one/blob/master/LICENSE.md",image:"https://img.shields.io/github/license/Physton/sd-webui-prompt-all-in-one?style=plastic"},{title:"GitHub commits",url:"https://github.com/Physton/sd-webui-prompt-all-in-one/commits/main",image:"https://img.shields.io/github/last-commit/Physton/sd-webui-prompt-all-in-one?style=plastic"}]}},emits:["use"],computed:{},mounted(){},methods:{open(){this.isOpen=!0,this.versions=[],this.loading=!0,this.gradioAPI.getRemoteVersions().then(e=>{this.loading=!1;let t=[];e.forEach((n,i)=>{n.is_update_readme||(n.date=oe.formatTime(n.date),t.push(n))}),this.versions=t}).catch(e=>{this.loading=!1})},close(){this.isOpen=!1},commitUrl(e){return"https://github.com/Physton/sd-webui-prompt-all-in-one/commit/"+e},formatVersion(e){return e?e.slice(0,7):this.getLang("unknown_version")}}},VC=_("p",{class:"body-title"},[_("a",{href:"https://github.com/Physton/sd-webui-prompt-all-in-one",target:"_blank"},"sd-webui-prompt-all-in-one")],-1),KC=["href"],qC=["src","alt"],zC=["href"],XC={key:0,class:"has-new-version"},YC=["href"],GC=_("a",{href:"https://physton.github.io/sd-webui-prompt-all-in-one-assets/#/Installation",target:"_blank"},"Wiki",-1),JC={class:"version-list"},ZC={class:"item-header"},QC={class:"version-sha"},ew=["href"],tw={class:"version-date"},nw={class:"version-msg"};function iw(e,t,n,i,r,o){const l=Lt("icon-svg");return r.isOpen?(R(),B("div",{key:0,class:"physton-about-prompt",onClick:t[3]||(t[3]=(...c)=>o.close&&o.close(...c))},[_("div",{class:"about-main",onClick:t[2]||(t[2]=gt(()=>{},["stop"]))},[_("div",{class:"about-close",onClick:t[0]||(t[0]=(...c)=>o.close&&o.close(...c))},[ve(l,{name:"close"})]),_("div",{class:"about-body",onClick:t[1]||(t[1]=gt(()=>{},["stop"]))},[VC,_("p",null,[(R(!0),B(Re,null,mt(r.icons,c=>(R(),B("a",{key:c.title,href:c.url,target:"_blank"},[_("img",{src:c.image,alt:c.title},null,8,qC)],8,KC))),128))]),_("p",null,[_("span",null,[$t(ce(e.getLang("version"))+": ",1),_("a",{href:o.commitUrl(n.version),target:"_blank"},ce(o.formatVersion(n.version)),9,zC)]),!n.isLatestVersion&&n.latestVersion?(R(),B("span",XC,[$t("    ("+ce(e.getLang("has_new_version"))+": ",1),_("a",{href:o.commitUrl(n.latestVersion),target:"_blank"},ce(o.formatVersion(n.latestVersion)),9,YC),$t(")")])):ze("",!0)]),_("p",null,[$t(ce(e.getLang("wiki_desc"))+" ",1),GC]),_("div",JC,[r.loading?(R(),vt(l,{key:0,name:"loading"})):ze("",!0),(R(!0),B(Re,null,mt(r.versions,c=>(R(),B("div",{class:"version-item",key:c.version},[_("div",ZC,[_("div",QC,[_("a",{href:o.commitUrl(c.version),target:"_blank"},ce(o.formatVersion(c.version)),9,ew)]),_("div",tw,ce(c.date),1)]),_("div",nw,ce(c.message),1)]))),128))])])])])):ze("",!0)}const rw={name:"App",components:{About:sn(WC,[["render",iw]]),ChatgptPrompt:UC,PackagesState:Qb,PromptFormat:Ub,ExtensionCss:kb,IconSvg:Fn,History:yb,Favorite:$y,SelectLanguage:fy,TranslateSetting:ay,PhystonPrompt:dv},mixins:[],data(){return{prompts:[{tab:"tab_txt2img",prompt:"txt2img_prompt",counter:"txt2img_token_counter",button:"txt2img_token_button",steps:"txt2img_steps",historyKey:"txt2img",favoriteKey:"txt2img",$prompt:null,$textarea:null,$steps:null,name:"txt2img_prompt",neg:!1,hideDefaultInputKey:"txt2ImgHideDefaultInput",hideDefaultInput:!1,hidePanelKey:"txt2ImgHidePanel",hidePanel:!1,id:"phystonPrompt_txt2img_prompt"},{tab:"tab_txt2img",prompt:"txt2img_neg_prompt",counter:"txt2img_negative_token_counter",button:"txt2img_negative_token_button",steps:"txt2img_steps",historyKey:"txt2img_neg",favoriteKey:"txt2img_neg",$prompt:null,$textarea:null,$steps:null,name:"txt2img_neg_prompt",neg:!0,hideDefaultInputKey:"txt2ImgNegHideDefaultInput",hideDefaultInput:!1,hidePanelKey:"txt2ImgNegHidePanel",hidePanel:!1,id:"phystonPrompt_txt2img_neg_prompt"},{tab:"tab_img2img",prompt:"img2img_prompt",counter:"img2img_token_counter",button:"img2img_token_button",steps:"img2img_steps",historyKey:"img2img",favoriteKey:"img2img",$prompt:null,$textarea:null,$steps:null,name:"img2img_prompt",neg:!1,hideDefaultInputKey:"img2ImgHideDefaultInput",hideDefaultInput:!1,hidePanelKey:"img2ImgHidePanel",hidePanel:!1,id:"phystonPrompt_img2img_prompt"},{tab:"tab_img2img",prompt:"img2img_neg_prompt",counter:"img2img_negative_token_counter",button:"img2img_negative_token_button",steps:"img2img_steps",historyKey:"img2img_neg",favoriteKey:"img2img_neg",$prompt:null,$textarea:null,$steps:null,name:"img2img_neg_prompt",neg:!0,hideDefaultInputKey:"img2ImgNegHideDefaultInput",hideDefaultInput:!1,hidePanelKey:"img2ImgNegHidePanel",hidePanel:!1,id:"phystonPrompt_img2img_neg_prompt"}],languageCode:"",languages:{},translateApis:[],translateApi:"",translateApiConfig:{},canOneTranslate:!1,autoTranslate:!1,autoTranslateToEnglish:!1,autoTranslateToLocal:!1,autoRemoveSpace:!0,autoRemoveLastComma:!1,autoKeepWeightZero:!1,autoKeepWeightOne:!1,enableTooltip:!0,tagCompleteFile:"",onlyCsvOnAuto:!1,startWatchSave:!1,pasteBtn:null,showPastePopup:!1,pasteTitle:"",pasteContent:"",pasteLoading:!1,historyCurrentPrompt:"",favoriteCurrentPrompt:"",chatgptCurrentPrompt:"",extraNetworks:[],loras:[],lycos:[],embeddings:[],python:"",packagesState:[],version:"",latestVersion:"",isLatestVersion:!0}},watch:{languageCode:{handler:function(e,t){this.startWatchSave&&(console.log("onLanguageCodeChange",e),this.canOneTranslate=oe.canOneTranslate(this.languageCode),this.gradioAPI.setData("languageCode",e).then(n=>{}).catch(n=>{}))},immediate:!1},autoTranslateToEnglish:{handler:function(e,t){this.startWatchSave&&(console.log("onAutoTranslateToEnglishChange",e),this.gradioAPI.setData("autoTranslateToEnglish",e).then(n=>{}).catch(n=>{}))},immediate:!1},autoTranslateToLocal:{handler:function(e,t){this.startWatchSave&&(console.log("onAutoTranslateToLocalChange",e),this.gradioAPI.setData("autoTranslateToLocal",e).then(n=>{}).catch(n=>{}))},immediate:!1},autoTranslate:{handler:function(e,t){this.startWatchSave&&(this.autoTranslate&&(this.autoTranslateToEnglish=!0,this.autoTranslateToLocal=!0),console.log("onAutoTranslateChange",e),this.gradioAPI.setData("autoTranslate",e).then(n=>{}).catch(n=>{}))},immediate:!1},autoRemoveSpace:{handler:function(e,t){this.startWatchSave&&(console.log("onAutoRemoveSpaceChange",e),this.gradioAPI.setData("autoRemoveSpace",e).then(n=>{}).catch(n=>{}))},immediate:!1},autoRemoveLastComma:{handler:function(e,t){this.startWatchSave&&(console.log("onAutoRemoveLastCommaChange",e),this.gradioAPI.setData("autoRemoveLastComma",e).then(n=>{}).catch(n=>{}))},immediate:!1},autoKeepWeightZero:{handler:function(e,t){this.startWatchSave&&(console.log("onAutoKeepWeightZeroChange",e),this.gradioAPI.setData("autoKeepWeightZero",e).then(n=>{}).catch(n=>{}))},immediate:!1},autoKeepWeightOne:{handler:function(e,t){this.startWatchSave&&(console.log("onAutoKeepWeightOneChange",e),this.gradioAPI.setData("autoKeepWeightOne",e).then(n=>{}).catch(n=>{}))},immediate:!1},enableTooltip:{handler:function(e,t){this.startWatchSave&&(localStorage.setItem("phystonPromptEnableTooltip",e?"true":"false"),this.updateTippyState(),this.gradioAPI.setData("enableTooltip",e).then(n=>{}).catch(n=>{}))},immediate:!1},translateApi:{handler:function(e,t){this.startWatchSave&&(console.log("onTranslateApiChange",e,t),this.updateTranslateApiConfig(),this.gradioAPI.setData("translateApi",e).then(n=>{}).catch(n=>{}))},immediate:!1},tagCompleteFile:{handler:function(e,t){this.startWatchSave&&(console.log("onTagCompleteFileChange",e,t),this.gradioAPI.setData("tagCompleteFile",e).then(n=>{}).catch(n=>{}))},immediate:!1},onlyCsvOnAuto(){this.startWatchSave&&(console.log("onOnlyCsvOnAutoChange",this.onlyCsvOnAuto),this.gradioAPI.setData("onlyCsvOnAuto",this.onlyCsvOnAuto).then(e=>{}).catch(e=>{}))}},mounted(){oe.loadCSS("toastr.min.css","physton-prompt-toastr",!0,!0,!1),oe.loadCSS("tippy.css","physton-prompt-tippy",!0,!0,!1),oe.loadCSS("main.min.css","physton-prompt-main",!0);const t=new URLSearchParams(window.location.search).get("__theme");oe.gradioApp().classList.contains(t)||oe.gradioApp().classList.add(t),this.gradioAPI.getConfig().then(n=>{console.log("config:",n),this.languageCode=n.i18n.default,this.translateApi=n.translate_apis.default,this.translateApis=n.translate_apis.apis,this.python=n.python,this.packagesState=n.packages_state;let i={};n.i18n.languages.forEach(r=>{i[r.code]=r}),this.languages=i,this.init()}).catch(n=>{this.$toastr.error("Connection to backend API service failed. Please manually refresh the webpage. If it still doesn't work, please restart the WebUI.
连接到后台接口服务失败,请手动再刷新一次网页。如果还是不行,请重启WebUI。

"+n.message,"sd-webui-prompt-all-in-one",{timeOut:2e4}),console.log(n)})},methods:{getLang(e){return oe.getLang(e,this.languageCode,this.languages)},init(){this.loadExtraNetworks();let e=["languageCode","autoTranslate","autoTranslateToEnglish","autoTranslateToLocal","autoRemoveSpace","autoRemoveLastComma","autoKeepWeightZero","autoKeepWeightOne","translateApi","enableTooltip","tagCompleteFile","onlyCsvOnAuto","extensionSelect.minimalist"];this.prompts.forEach(t=>{e.push(t.hideDefaultInputKey),e.push(t.hidePanelKey)}),this.gradioAPI.getDatas(e).then(t=>{if(t.languageCode!==null){let n=!1;for(let i in this.languages)if(this.languages[i].code===t.languageCode){n=!0;break}n&&(this.languageCode=t.languageCode,this.$forceUpdate())}this.canOneTranslate=oe.canOneTranslate(this.languageCode),t.autoTranslateToEnglish!==null&&(this.autoTranslateToEnglish=t.autoTranslateToEnglish),t.autoTranslateToLocal!==null&&(this.autoTranslateToLocal=t.autoTranslateToLocal),t.autoTranslate!==null?(this.autoTranslate=t.autoTranslate,this.autoTranslate&&(this.autoTranslateToEnglish=!0,this.autoTranslateToLocal=!0)):this.canOneTranslate?(this.autoTranslate=this.autoTranslateToEnglish||this.autoTranslateToLocal,this.autoTranslateToEnglish=!0,this.autoTranslateToLocal=!0):this.autoTranslate=!1,t.autoRemoveSpace!==null&&(this.autoRemoveSpace=t.autoRemoveSpace),t.autoRemoveLastComma!==null&&(this.autoRemoveLastComma=t.autoRemoveLastComma),t.autoKeepWeightZero!==null&&(this.autoKeepWeightZero=t.autoKeepWeightZero),t.autoKeepWeightOne!==null&&(this.autoKeepWeightOne=t.autoKeepWeightOne),t.enableTooltip!==null&&(this.enableTooltip=t.enableTooltip),localStorage.setItem("phystonPromptEnableTooltip",this.enableTooltip?"true":"false"),this.updateTippyState(),t.translateApi!==null&&(this.translateApi=t.translateApi),t.tagCompleteFile!==null&&(this.tagCompleteFile=t.tagCompleteFile,this.$nextTick(()=>{this.$refs.translateSetting.getCSV(this.tagCompleteFile)})),t.onlyCsvOnAuto!==null&&(this.onlyCsvOnAuto=t.onlyCsvOnAuto),t["extensionSelect.minimalist"]===null&&this.gradioAPI.setData("extensionSelect.minimalist",!0),this.updateTranslateApiConfig(),this.$refs.extensionCss.init(),this.prompts.forEach(n=>{t[n.hideDefaultInputKey]!==null&&(n.hideDefaultInput=t[n.hideDefaultInputKey]),t[n.hidePanelKey]!==null&&(n.hidePanel=t[n.hidePanelKey]),n.$prompt=oe.gradioApp().querySelector("#"+n.prompt),n.$textarea=n.$prompt.getElementsByTagName("textarea")[0],n.$steps=oe.gradioApp().querySelector("#"+n.steps)}),this.$nextTick(()=>{this.prompts.forEach(n=>{const i=oe.gradioApp().querySelector("#"+n.id);n.$prompt.parentElement.parentElement.parentElement.appendChild(i),n.$prompt.parentElement.parentElement.style.display=n.hideDefaultInput?"none":"flex"}),this.startWatchSave=!0}),this.handlePaste(),this.gradioAPI.getVersion().then(n=>{this.version=n.version,this.latestVersion=n.latest_version,this.isLatestVersion=n.version===n.latest_version})})},updateTippyState(){for(const e of this.$tippyList)this.enableTooltip?e.enable():e.disable()},updateTranslateApiConfig(){this.gradioAPI.getData("translate_api."+this.translateApi).then(e=>{let t={};const n=oe.getTranslateApiItem(this.translateApis,this.translateApi);if(n.config){for(const i of n.config)n.type==="translators"&&i.key==="region"&&!e.region?t[i.key]=this.languageCode==="zh_CN"||this.languageCode==="zh_HK"||this.languageCode==="zh_TW"?"China":"EN":e?t[i.key]=e[i.key]:t[i.key]=i.default||"";t.concurrent=n.concurrent||0}this.translateApiConfig=t})},onPromptFormatClick(e){this.$refs.promptFormat.open(e)},onSelectLanguageClick(e){this.$refs.selectLanguage.open(e)},onTranslateApiClick(){this.$refs.translateSetting.open(this.translateApi)},onSelectThemeClick(){this.$refs.extensionCss.open()},handlePaste(){if(typeof gradioApp!="function")return;const e=gradioApp().querySelectorAll("#paste");!e||e.length<=0||e.forEach((t,n)=>{const i=t.cloneNode(!0);i.id="paste-new-"+n,i.innerHTML="🗒",t.parentNode.insertBefore(i,t.nextSibling),i.addEventListener("click",()=>{this.pasteBtn=t,this.openPastePopup()}),this.pasteTitle=t.title})},openPastePopup(){this.pasteContent="",this.pasteLoading=!1,this.showPastePopup=!0},closePastePopup(){this.showPastePopup=!1},onClickPasteSubmit(){this.pasteLoading=!0;const e=get_uiCurrentTabContent();let t=null,n=null,i=null,r=null,o=[];for(const l of this.prompts)l.tab==e.id&&(console.log(l),o.push(l.id),l.neg?(n=l.$textarea,r=l.$prompt):(t=l.$textarea,i=l.$prompt));if(!t||!i||!r){this.pasteLoading=!1;return}t.value=this.pasteContent,t.dispatchEvent(new Event("input")),this.pasteBtn.dispatchEvent(new Event("click")),setTimeout(()=>{let l=0,c=0;l=setInterval(()=>{if(c++,c>100){this.pasteLoading=!1,clearInterval(l);return}i.getElementsByClassName("hide").length>0&&r.getElementsByClassName("hide").length>0&&(this.pasteLoading=!1,this.closePastePopup(),clearInterval(l),oe.hideCompleteResults(t),oe.hideCompleteResults(n),o.forEach((d,m)=>{setTimeout(()=>{this.$refs[d][0].onTextareaChange(!0)},1e3)}))},100)},1e3)},onUpdateHideDefaultInput(e,t){const n=this.prompts.find(i=>i.id==e);n&&(n.hideDefaultInput=t,this.gradioAPI.setData(n.hideDefaultInputKey,n.hideDefaultInput),n.$prompt.parentElement.parentElement.style.display=n.hideDefaultInput?"none":"flex")},onUpdateHidePanel(e,t){const n=this.prompts.find(i=>i.id==e);n&&(n.hidePanel=t,this.gradioAPI.setData(n.hidePanelKey,n.hidePanel))},onShowHistory(e,t){this.$refs.favorite.hide(),this.historyCurrentPrompt=e;const n=this.prompts.find(i=>i.id==e);n&&this.$refs.history.show(n.historyKey,t)},onUseHistory(e){if(!this.historyCurrentPrompt)return;const t=this.prompts.find(n=>n.id==this.historyCurrentPrompt);t&&this.$refs[t.id][0].useFavorite(e)},onShowFavorite(e,t){this.$refs.history.hide(),this.favoriteCurrentPrompt=e;const n=this.prompts.find(i=>i.id==e);n&&this.$refs.favorite.show(n.favoriteKey,t)},onUseFavorite(e){if(!this.favoriteCurrentPrompt)return;const t=this.prompts.find(n=>n.id==this.favoriteCurrentPrompt);t&&this.$refs[t.id][0].useFavorite(e)},onRefreshFavorites(e){this.$refs.favorite.getFavorites(e)},onShowChatgpt(e,t){this.chatgptCurrentPrompt=e,this.prompts.find(i=>i.id==e)&&this.$refs.chatgptPrompt.open()},onUseChatgpt(e){if(!this.chatgptCurrentPrompt)return;const t=this.prompts.find(n=>n.id==this.chatgptCurrentPrompt);t&&this.$refs[t.id][0].useChatgpt(e)},onShowAbout(){this.$refs.about.open()}}},sw={class:"paste-popup-title"},ow={class:"paste-popup-body"},aw=["placeholder"],lw={key:1,class:"paste-submit"};function uw(e,t,n,i,r,o){const l=Lt("physton-prompt"),c=Lt("translate-setting"),d=Lt("select-language"),m=Lt("prompt-format"),g=Lt("history"),w=Lt("favorite"),T=Lt("extension-css"),N=Lt("packages-state"),S=Lt("chatgpt-prompt"),O=Lt("about"),U=Lt("icon-svg");return R(),B("div",null,[(R(!0),B(Re,null,mt(r.prompts,P=>(R(),B(Re,{key:P.name},[P.$textarea?(R(),vt(l,{key:0,id:P.id,ref_for:!0,ref:P.id,name:P.name,neg:P.neg,textarea:P.$textarea,steps:P.$steps,"language-code":r.languageCode,"onUpdate:languageCode":t[0]||(t[0]=Z=>r.languageCode=Z),"translate-apis":r.translateApis,languages:r.languages,"history-key":P.historyKey,"onClick:showHistory":Z=>o.onShowHistory(P.id,Z),"favorite-key":P.favoriteKey,onRefreshFavorites:o.onRefreshFavorites,"onClick:showFavorite":Z=>o.onShowFavorite(P.id,Z),"can-one-translate":r.canOneTranslate,"onUpdate:canOneTranslate":t[1]||(t[1]=Z=>r.canOneTranslate=Z),"auto-translate":r.autoTranslate,"onUpdate:autoTranslate":t[2]||(t[2]=Z=>r.autoTranslate=Z),"auto-translate-to-english":r.autoTranslateToEnglish,"onUpdate:autoTranslateToEnglish":t[3]||(t[3]=Z=>r.autoTranslateToEnglish=Z),"auto-translate-to-local":r.autoTranslateToLocal,"onUpdate:autoTranslateToLocal":t[4]||(t[4]=Z=>r.autoTranslateToLocal=Z),"auto-remove-space":r.autoRemoveSpace,"onUpdate:autoRemoveSpace":t[5]||(t[5]=Z=>r.autoRemoveSpace=Z),"auto-remove-last-comma":r.autoRemoveLastComma,"onUpdate:autoRemoveLastComma":t[6]||(t[6]=Z=>r.autoRemoveLastComma=Z),"auto-keep-weight-zero":r.autoKeepWeightZero,"onUpdate:autoKeepWeightZero":t[7]||(t[7]=Z=>r.autoKeepWeightZero=Z),"auto-keep-weight-one":r.autoKeepWeightOne,"onUpdate:autoKeepWeightOne":t[8]||(t[8]=Z=>r.autoKeepWeightOne=Z),"hide-default-input":P.hideDefaultInput,"onUpdate:hideDefaultInput":Z=>o.onUpdateHideDefaultInput(P.id,Z),"hide-panel":P.hidePanel,"onUpdate:hidePanel":Z=>o.onUpdateHidePanel(P.id,Z),"enable-tooltip":r.enableTooltip,"onUpdate:enableTooltip":t[9]||(t[9]=Z=>r.enableTooltip=Z),"translate-api":r.translateApi,"onUpdate:translateApi":t[10]||(t[10]=Z=>r.translateApi=Z),"translate-api-config":r.translateApiConfig,"onClick:translateApi":o.onTranslateApiClick,"onClick:promptFormat":o.onPromptFormatClick,"tag-complete-file":r.tagCompleteFile,"onUpdate:tagCompleteFile":t[11]||(t[11]=Z=>r.tagCompleteFile=Z),"only-csv-on-auto":r.onlyCsvOnAuto,"onUpdate:onlyCsvOnAuto":t[12]||(t[12]=Z=>r.onlyCsvOnAuto=Z),"onClick:selectLanguage":o.onSelectLanguageClick,"onClick:selectTheme":o.onSelectThemeClick,"onClick:showChatgpt":Z=>o.onShowChatgpt(P.id,Z),"extra-networks":r.extraNetworks,loras:r.loras,lycos:r.lycos,embeddings:r.embeddings,version:r.version,"latest-version":r.latestVersion,"is-latest-version":r.isLatestVersion,"onClick:showAbout":o.onShowAbout},null,8,["id","name","neg","textarea","steps","language-code","translate-apis","languages","history-key","onClick:showHistory","favorite-key","onRefreshFavorites","onClick:showFavorite","can-one-translate","auto-translate","auto-translate-to-english","auto-translate-to-local","auto-remove-space","auto-remove-last-comma","auto-keep-weight-zero","auto-keep-weight-one","hide-default-input","onUpdate:hideDefaultInput","hide-panel","onUpdate:hidePanel","enable-tooltip","translate-api","translate-api-config","onClick:translateApi","onClick:promptFormat","tag-complete-file","only-csv-on-auto","onClick:selectLanguage","onClick:selectTheme","onClick:showChatgpt","extra-networks","loras","lycos","embeddings","version","latest-version","is-latest-version","onClick:showAbout"])):ze("",!0)],64))),128)),ve(c,{ref:"translateSetting","language-code":r.languageCode,"onUpdate:languageCode":t[13]||(t[13]=P=>r.languageCode=P),"translate-apis":r.translateApis,languages:r.languages,"onForceUpdate:translateApi":o.updateTranslateApiConfig,"tag-complete-file":r.tagCompleteFile,"onUpdate:tagCompleteFile":t[14]||(t[14]=P=>r.tagCompleteFile=P),"only-csv-on-auto":r.onlyCsvOnAuto,"onUpdate:onlyCsvOnAuto":t[15]||(t[15]=P=>r.onlyCsvOnAuto=P),"translate-api":r.translateApi,"onUpdate:translateApi":t[16]||(t[16]=P=>r.translateApi=P)},null,8,["language-code","translate-apis","languages","onForceUpdate:translateApi","tag-complete-file","only-csv-on-auto","translate-api"]),ve(d,{ref:"selectLanguage","language-code":r.languageCode,"onUpdate:languageCode":t[17]||(t[17]=P=>r.languageCode=P),"translate-apis":r.translateApis,languages:r.languages,"translate-api":r.translateApi,"onUpdate:translateApi":t[18]||(t[18]=P=>r.translateApi=P),"tag-complete-file":r.tagCompleteFile,"onUpdate:tagCompleteFile":t[19]||(t[19]=P=>r.tagCompleteFile=P),"only-csv-on-auto":r.onlyCsvOnAuto,"onUpdate:onlyCsvOnAuto":t[20]||(t[20]=P=>r.onlyCsvOnAuto=P)},null,8,["language-code","translate-apis","languages","translate-api","tag-complete-file","only-csv-on-auto"]),ve(m,{ref:"promptFormat","language-code":r.languageCode,"onUpdate:languageCode":t[21]||(t[21]=P=>r.languageCode=P),"translate-apis":r.translateApis,languages:r.languages,"auto-remove-space":r.autoRemoveSpace,"onUpdate:autoRemoveSpace":t[22]||(t[22]=P=>r.autoRemoveSpace=P),"auto-remove-last-comma":r.autoRemoveLastComma,"onUpdate:autoRemoveLastComma":t[23]||(t[23]=P=>r.autoRemoveLastComma=P),"auto-keep-weight-zero":r.autoKeepWeightZero,"onUpdate:autoKeepWeightZero":t[24]||(t[24]=P=>r.autoKeepWeightZero=P),"auto-keep-weight-one":r.autoKeepWeightOne,"onUpdate:autoKeepWeightOne":t[25]||(t[25]=P=>r.autoKeepWeightOne=P)},null,8,["language-code","translate-apis","languages","auto-remove-space","auto-remove-last-comma","auto-keep-weight-zero","auto-keep-weight-one"]),ve(g,{ref:"history","language-code":r.languageCode,"onUpdate:languageCode":t[26]||(t[26]=P=>r.languageCode=P),"translate-apis":r.translateApis,languages:r.languages,"tag-complete-file":r.tagCompleteFile,"onUpdate:tagCompleteFile":t[27]||(t[27]=P=>r.tagCompleteFile=P),"only-csv-on-auto":r.onlyCsvOnAuto,"onUpdate:onlyCsvOnAuto":t[28]||(t[28]=P=>r.onlyCsvOnAuto=P),onRefreshFavorites:o.onRefreshFavorites,onUse:o.onUseHistory},null,8,["language-code","translate-apis","languages","tag-complete-file","only-csv-on-auto","onRefreshFavorites","onUse"]),ve(w,{ref:"favorite","language-code":r.languageCode,"onUpdate:languageCode":t[29]||(t[29]=P=>r.languageCode=P),"translate-apis":r.translateApis,languages:r.languages,"tag-complete-file":r.tagCompleteFile,"onUpdate:tagCompleteFile":t[30]||(t[30]=P=>r.tagCompleteFile=P),"only-csv-on-auto":r.onlyCsvOnAuto,"onUpdate:onlyCsvOnAuto":t[31]||(t[31]=P=>r.onlyCsvOnAuto=P),onUse:o.onUseFavorite},null,8,["language-code","translate-apis","languages","tag-complete-file","only-csv-on-auto","onUse"]),ve(T,{ref:"extensionCss","language-code":r.languageCode,"onUpdate:languageCode":t[32]||(t[32]=P=>r.languageCode=P),"translate-apis":r.translateApis,languages:r.languages},null,8,["language-code","translate-apis","languages"]),ve(N,{ref:"packagesState","language-code":r.languageCode,"onUpdate:languageCode":t[33]||(t[33]=P=>r.languageCode=P),"translate-apis":r.translateApis,languages:r.languages,"onClick:selectLanguage":o.onSelectLanguageClick,"packages-state":r.packagesState,python:r.python},null,8,["language-code","translate-apis","languages","onClick:selectLanguage","packages-state","python"]),ve(S,{ref:"chatgptPrompt","language-code":r.languageCode,"onUpdate:languageCode":t[34]||(t[34]=P=>r.languageCode=P),"translate-apis":r.translateApis,languages:r.languages,onUse:o.onUseChatgpt},null,8,["language-code","translate-apis","languages","onUse"]),ve(O,{ref:"about","language-code":r.languageCode,"onUpdate:languageCode":t[35]||(t[35]=P=>r.languageCode=P),"translate-apis":r.translateApis,languages:r.languages,version:r.version,"latest-version":r.latestVersion,"is-latest-version":r.isLatestVersion},null,8,["language-code","translate-apis","languages","version","latest-version","is-latest-version"]),r.showPastePopup?(R(),B("div",{key:0,class:"physton-paste-popup",onClick:t[40]||(t[40]=(...P)=>o.closePastePopup&&o.closePastePopup(...P))},[_("div",{class:"paste-popup-main",onClick:t[39]||(t[39]=gt(()=>{},["stop"]))},[_("div",{class:"paste-popup-close",onClick:t[36]||(t[36]=(...P)=>o.closePastePopup&&o.closePastePopup(...P))},[ve(U,{name:"close"})]),_("div",sw,ce(r.pasteTitle),1),_("div",ow,[fe(_("textarea",{class:"paste-content","onUpdate:modelValue":t[37]||(t[37]=P=>r.pasteContent=P),placeholder:o.getLang("please_enter_the_content_here")},null,8,aw),[[Hi,r.pasteContent]]),r.pasteLoading?(R(),B("div",lw,[ve(U,{name:"loading"})])):(R(),B("div",{key:0,class:"paste-submit",onClick:t[38]||(t[38]=(...P)=>o.onClickPasteSubmit&&o.onClickPasteSubmit(...P))},"Submit"))])])])):ze("",!0)])}const cw=sn(rw,[["render",uw]]);var Oc={exports:{}},ja={exports:{}};/*! + * jQuery JavaScript Library v3.6.4 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2023-03-08T15:28Z + */var Dc;function fw(){return Dc||(Dc=1,function(e){(function(t,n){e.exports=t.document?n(t,!0):function(i){if(!i.document)throw new Error("jQuery requires a window with a document");return n(i)}})(typeof window<"u"?window:Lc,function(t,n){var i=[],r=Object.getPrototypeOf,o=i.slice,l=i.flat?function(s){return i.flat.call(s)}:function(s){return i.concat.apply([],s)},c=i.push,d=i.indexOf,m={},g=m.toString,w=m.hasOwnProperty,T=w.toString,N=T.call(Object),S={},O=function(u){return typeof u=="function"&&typeof u.nodeType!="number"&&typeof u.item!="function"},U=function(u){return u!=null&&u===u.window},P=t.document,Z={type:!0,src:!0,nonce:!0,noModule:!0};function se(s,u,f){f=f||P;var h,v,y=f.createElement("script");if(y.text=s,u)for(h in Z)v=u[h]||u.getAttribute&&u.getAttribute(h),v&&y.setAttribute(h,v);f.head.appendChild(y).parentNode.removeChild(y)}function L(s){return s==null?s+"":typeof s=="object"||typeof s=="function"?m[g.call(s)]||"object":typeof s}var ke="3.6.4",p=function(s,u){return new p.fn.init(s,u)};p.fn=p.prototype={jquery:ke,constructor:p,length:0,toArray:function(){return o.call(this)},get:function(s){return s==null?o.call(this):s<0?this[s+this.length]:this[s]},pushStack:function(s){var u=p.merge(this.constructor(),s);return u.prevObject=this,u},each:function(s){return p.each(this,s)},map:function(s){return this.pushStack(p.map(this,function(u,f){return s.call(u,f,u)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(p.grep(this,function(s,u){return(u+1)%2}))},odd:function(){return this.pushStack(p.grep(this,function(s,u){return u%2}))},eq:function(s){var u=this.length,f=+s+(s<0?u:0);return this.pushStack(f>=0&&f0&&u-1 in s}var Me=function(s){var u,f,h,v,y,b,A,E,F,$,ee,j,K,Oe,Ye,Ae,Bt,Rt,yn,yt="sizzle"+1*new Date,Xe=s.document,fn=0,lt=0,Dt=Ro(),vs=Ro(),Po=Ro(),bn=Ro(),Xi=function(C,x){return C===x&&(ee=!0),0},Yi={}.hasOwnProperty,dn=[],Si=dn.pop,Ln=dn.push,ki=dn.push,gd=dn.slice,Gi=function(C,x){for(var I=0,z=C.length;I+~]|"+pt+")"+pt+"*"),W_=new RegExp(pt+"|>"),V_=new RegExp(Ll),K_=new RegExp("^"+Ji+"$"),No={ID:new RegExp("^#("+Ji+")"),CLASS:new RegExp("^\\.("+Ji+")"),TAG:new RegExp("^("+Ji+"|[*])"),ATTR:new RegExp("^"+md),PSEUDO:new RegExp("^"+Ll),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+pt+"*(even|odd|(([+-]|)(\\d*)n|)"+pt+"*(?:([+-]|)"+pt+"*(\\d+)|))"+pt+"*\\)|)","i"),bool:new RegExp("^(?:"+Al+")$","i"),needsContext:new RegExp("^"+pt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+pt+"*((?:-\\d)?\\d*)"+pt+"*\\)|)(?=[^-]|$)","i")},q_=/HTML$/i,z_=/^(?:input|select|textarea|button)$/i,X_=/^h\d$/i,ys=/^[^{]+\{\s*\[native \w/,Y_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Ol=/[+~]/,pi=new RegExp("\\\\[\\da-fA-F]{1,6}"+pt+"?|\\\\([^\\r\\n\\f])","g"),hi=function(C,x){var I="0x"+C.slice(1)-65536;return x||(I<0?String.fromCharCode(I+65536):String.fromCharCode(I>>10|55296,I&1023|56320))},yd=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,bd=function(C,x){return x?C==="\0"?"�":C.slice(0,-1)+"\\"+C.charCodeAt(C.length-1).toString(16)+" ":"\\"+C},Cd=function(){j()},G_=Fo(function(C){return C.disabled===!0&&C.nodeName.toLowerCase()==="fieldset"},{dir:"parentNode",next:"legend"});try{ki.apply(dn=gd.call(Xe.childNodes),Xe.childNodes),dn[Xe.childNodes.length].nodeType}catch{ki={apply:dn.length?function(x,I){Ln.apply(x,gd.call(I))}:function(x,I){for(var z=x.length,M=0;x[z++]=I[M++];);x.length=z-1}}}function bt(C,x,I,z){var M,G,te,ue,me,He,Ne,je=x&&x.ownerDocument,Qe=x?x.nodeType:9;if(I=I||[],typeof C!="string"||!C||Qe!==1&&Qe!==9&&Qe!==11)return I;if(!z&&(j(x),x=x||K,Ye)){if(Qe!==11&&(me=Y_.exec(C)))if(M=me[1]){if(Qe===9)if(te=x.getElementById(M)){if(te.id===M)return I.push(te),I}else return I;else if(je&&(te=je.getElementById(M))&&yn(x,te)&&te.id===M)return I.push(te),I}else{if(me[2])return ki.apply(I,x.getElementsByTagName(C)),I;if((M=me[3])&&f.getElementsByClassName&&x.getElementsByClassName)return ki.apply(I,x.getElementsByClassName(M)),I}if(f.qsa&&!bn[C+" "]&&(!Ae||!Ae.test(C))&&(Qe!==1||x.nodeName.toLowerCase()!=="object")){if(Ne=C,je=x,Qe===1&&(W_.test(C)||vd.test(C))){for(je=Ol.test(C)&&Pl(x.parentNode)||x,(je!==x||!f.scope)&&((ue=x.getAttribute("id"))?ue=ue.replace(yd,bd):x.setAttribute("id",ue=yt)),He=b(C),G=He.length;G--;)He[G]=(ue?"#"+ue:":scope")+" "+Mo(He[G]);Ne=He.join(",")}try{return ki.apply(I,je.querySelectorAll(Ne)),I}catch{bn(C,!0)}finally{ue===yt&&x.removeAttribute("id")}}}return E(C.replace(Io,"$1"),x,I,z)}function Ro(){var C=[];function x(I,z){return C.push(I+" ")>h.cacheLength&&delete x[C.shift()],x[I+" "]=z}return x}function $n(C){return C[yt]=!0,C}function On(C){var x=K.createElement("fieldset");try{return!!C(x)}catch{return!1}finally{x.parentNode&&x.parentNode.removeChild(x),x=null}}function Dl(C,x){for(var I=C.split("|"),z=I.length;z--;)h.attrHandle[I[z]]=x}function wd(C,x){var I=x&&C,z=I&&C.nodeType===1&&x.nodeType===1&&C.sourceIndex-x.sourceIndex;if(z)return z;if(I){for(;I=I.nextSibling;)if(I===x)return-1}return C?1:-1}function J_(C){return function(x){var I=x.nodeName.toLowerCase();return I==="input"&&x.type===C}}function Z_(C){return function(x){var I=x.nodeName.toLowerCase();return(I==="input"||I==="button")&&x.type===C}}function Td(C){return function(x){return"form"in x?x.parentNode&&x.disabled===!1?"label"in x?"label"in x.parentNode?x.parentNode.disabled===C:x.disabled===C:x.isDisabled===C||x.isDisabled!==!C&&G_(x)===C:x.disabled===C:"label"in x?x.disabled===C:!1}}function Zi(C){return $n(function(x){return x=+x,$n(function(I,z){for(var M,G=C([],I.length,x),te=G.length;te--;)I[M=G[te]]&&(I[M]=!(z[M]=I[M]))})})}function Pl(C){return C&&typeof C.getElementsByTagName<"u"&&C}f=bt.support={},y=bt.isXML=function(C){var x=C&&C.namespaceURI,I=C&&(C.ownerDocument||C).documentElement;return!q_.test(x||I&&I.nodeName||"HTML")},j=bt.setDocument=function(C){var x,I,z=C?C.ownerDocument||C:Xe;return z==K||z.nodeType!==9||!z.documentElement||(K=z,Oe=K.documentElement,Ye=!y(K),Xe!=K&&(I=K.defaultView)&&I.top!==I&&(I.addEventListener?I.addEventListener("unload",Cd,!1):I.attachEvent&&I.attachEvent("onunload",Cd)),f.scope=On(function(M){return Oe.appendChild(M).appendChild(K.createElement("div")),typeof M.querySelectorAll<"u"&&!M.querySelectorAll(":scope fieldset div").length}),f.cssHas=On(function(){try{return K.querySelector(":has(*,:jqfake)"),!1}catch{return!0}}),f.attributes=On(function(M){return M.className="i",!M.getAttribute("className")}),f.getElementsByTagName=On(function(M){return M.appendChild(K.createComment("")),!M.getElementsByTagName("*").length}),f.getElementsByClassName=ys.test(K.getElementsByClassName),f.getById=On(function(M){return Oe.appendChild(M).id=yt,!K.getElementsByName||!K.getElementsByName(yt).length}),f.getById?(h.filter.ID=function(M){var G=M.replace(pi,hi);return function(te){return te.getAttribute("id")===G}},h.find.ID=function(M,G){if(typeof G.getElementById<"u"&&Ye){var te=G.getElementById(M);return te?[te]:[]}}):(h.filter.ID=function(M){var G=M.replace(pi,hi);return function(te){var ue=typeof te.getAttributeNode<"u"&&te.getAttributeNode("id");return ue&&ue.value===G}},h.find.ID=function(M,G){if(typeof G.getElementById<"u"&&Ye){var te,ue,me,He=G.getElementById(M);if(He){if(te=He.getAttributeNode("id"),te&&te.value===M)return[He];for(me=G.getElementsByName(M),ue=0;He=me[ue++];)if(te=He.getAttributeNode("id"),te&&te.value===M)return[He]}return[]}}),h.find.TAG=f.getElementsByTagName?function(M,G){if(typeof G.getElementsByTagName<"u")return G.getElementsByTagName(M);if(f.qsa)return G.querySelectorAll(M)}:function(M,G){var te,ue=[],me=0,He=G.getElementsByTagName(M);if(M==="*"){for(;te=He[me++];)te.nodeType===1&&ue.push(te);return ue}return He},h.find.CLASS=f.getElementsByClassName&&function(M,G){if(typeof G.getElementsByClassName<"u"&&Ye)return G.getElementsByClassName(M)},Bt=[],Ae=[],(f.qsa=ys.test(K.querySelectorAll))&&(On(function(M){var G;Oe.appendChild(M).innerHTML="",M.querySelectorAll("[msallowcapture^='']").length&&Ae.push("[*^$]="+pt+`*(?:''|"")`),M.querySelectorAll("[selected]").length||Ae.push("\\["+pt+"*(?:value|"+Al+")"),M.querySelectorAll("[id~="+yt+"-]").length||Ae.push("~="),G=K.createElement("input"),G.setAttribute("name",""),M.appendChild(G),M.querySelectorAll("[name='']").length||Ae.push("\\["+pt+"*name"+pt+"*="+pt+`*(?:''|"")`),M.querySelectorAll(":checked").length||Ae.push(":checked"),M.querySelectorAll("a#"+yt+"+*").length||Ae.push(".#.+[+~]"),M.querySelectorAll("\\\f"),Ae.push("[\\r\\n\\f]")}),On(function(M){M.innerHTML="";var G=K.createElement("input");G.setAttribute("type","hidden"),M.appendChild(G).setAttribute("name","D"),M.querySelectorAll("[name=d]").length&&Ae.push("name"+pt+"*[*^$|!~]?="),M.querySelectorAll(":enabled").length!==2&&Ae.push(":enabled",":disabled"),Oe.appendChild(M).disabled=!0,M.querySelectorAll(":disabled").length!==2&&Ae.push(":enabled",":disabled"),M.querySelectorAll("*,:x"),Ae.push(",.*:")})),(f.matchesSelector=ys.test(Rt=Oe.matches||Oe.webkitMatchesSelector||Oe.mozMatchesSelector||Oe.oMatchesSelector||Oe.msMatchesSelector))&&On(function(M){f.disconnectedMatch=Rt.call(M,"*"),Rt.call(M,"[s!='']:x"),Bt.push("!=",Ll)}),f.cssHas||Ae.push(":has"),Ae=Ae.length&&new RegExp(Ae.join("|")),Bt=Bt.length&&new RegExp(Bt.join("|")),x=ys.test(Oe.compareDocumentPosition),yn=x||ys.test(Oe.contains)?function(M,G){var te=M.nodeType===9&&M.documentElement||M,ue=G&&G.parentNode;return M===ue||!!(ue&&ue.nodeType===1&&(te.contains?te.contains(ue):M.compareDocumentPosition&&M.compareDocumentPosition(ue)&16))}:function(M,G){if(G){for(;G=G.parentNode;)if(G===M)return!0}return!1},Xi=x?function(M,G){if(M===G)return ee=!0,0;var te=!M.compareDocumentPosition-!G.compareDocumentPosition;return te||(te=(M.ownerDocument||M)==(G.ownerDocument||G)?M.compareDocumentPosition(G):1,te&1||!f.sortDetached&&G.compareDocumentPosition(M)===te?M==K||M.ownerDocument==Xe&&yn(Xe,M)?-1:G==K||G.ownerDocument==Xe&&yn(Xe,G)?1:$?Gi($,M)-Gi($,G):0:te&4?-1:1)}:function(M,G){if(M===G)return ee=!0,0;var te,ue=0,me=M.parentNode,He=G.parentNode,Ne=[M],je=[G];if(!me||!He)return M==K?-1:G==K?1:me?-1:He?1:$?Gi($,M)-Gi($,G):0;if(me===He)return wd(M,G);for(te=M;te=te.parentNode;)Ne.unshift(te);for(te=G;te=te.parentNode;)je.unshift(te);for(;Ne[ue]===je[ue];)ue++;return ue?wd(Ne[ue],je[ue]):Ne[ue]==Xe?-1:je[ue]==Xe?1:0}),K},bt.matches=function(C,x){return bt(C,null,null,x)},bt.matchesSelector=function(C,x){if(j(C),f.matchesSelector&&Ye&&!bn[x+" "]&&(!Bt||!Bt.test(x))&&(!Ae||!Ae.test(x)))try{var I=Rt.call(C,x);if(I||f.disconnectedMatch||C.document&&C.document.nodeType!==11)return I}catch{bn(x,!0)}return bt(x,K,null,[C]).length>0},bt.contains=function(C,x){return(C.ownerDocument||C)!=K&&j(C),yn(C,x)},bt.attr=function(C,x){(C.ownerDocument||C)!=K&&j(C);var I=h.attrHandle[x.toLowerCase()],z=I&&Yi.call(h.attrHandle,x.toLowerCase())?I(C,x,!Ye):void 0;return z!==void 0?z:f.attributes||!Ye?C.getAttribute(x):(z=C.getAttributeNode(x))&&z.specified?z.value:null},bt.escape=function(C){return(C+"").replace(yd,bd)},bt.error=function(C){throw new Error("Syntax error, unrecognized expression: "+C)},bt.uniqueSort=function(C){var x,I=[],z=0,M=0;if(ee=!f.detectDuplicates,$=!f.sortStable&&C.slice(0),C.sort(Xi),ee){for(;x=C[M++];)x===C[M]&&(z=I.push(M));for(;z--;)C.splice(I[z],1)}return $=null,C},v=bt.getText=function(C){var x,I="",z=0,M=C.nodeType;if(M){if(M===1||M===9||M===11){if(typeof C.textContent=="string")return C.textContent;for(C=C.firstChild;C;C=C.nextSibling)I+=v(C)}else if(M===3||M===4)return C.nodeValue}else for(;x=C[z++];)I+=v(x);return I},h=bt.selectors={cacheLength:50,createPseudo:$n,match:No,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(C){return C[1]=C[1].replace(pi,hi),C[3]=(C[3]||C[4]||C[5]||"").replace(pi,hi),C[2]==="~="&&(C[3]=" "+C[3]+" "),C.slice(0,4)},CHILD:function(C){return C[1]=C[1].toLowerCase(),C[1].slice(0,3)==="nth"?(C[3]||bt.error(C[0]),C[4]=+(C[4]?C[5]+(C[6]||1):2*(C[3]==="even"||C[3]==="odd")),C[5]=+(C[7]+C[8]||C[3]==="odd")):C[3]&&bt.error(C[0]),C},PSEUDO:function(C){var x,I=!C[6]&&C[2];return No.CHILD.test(C[0])?null:(C[3]?C[2]=C[4]||C[5]||"":I&&V_.test(I)&&(x=b(I,!0))&&(x=I.indexOf(")",I.length-x)-I.length)&&(C[0]=C[0].slice(0,x),C[2]=I.slice(0,x)),C.slice(0,3))}},filter:{TAG:function(C){var x=C.replace(pi,hi).toLowerCase();return C==="*"?function(){return!0}:function(I){return I.nodeName&&I.nodeName.toLowerCase()===x}},CLASS:function(C){var x=Dt[C+" "];return x||(x=new RegExp("(^|"+pt+")"+C+"("+pt+"|$)"))&&Dt(C,function(I){return x.test(typeof I.className=="string"&&I.className||typeof I.getAttribute<"u"&&I.getAttribute("class")||"")})},ATTR:function(C,x,I){return function(z){var M=bt.attr(z,C);return M==null?x==="!=":x?(M+="",x==="="?M===I:x==="!="?M!==I:x==="^="?I&&M.indexOf(I)===0:x==="*="?I&&M.indexOf(I)>-1:x==="$="?I&&M.slice(-I.length)===I:x==="~="?(" "+M.replace($_," ")+" ").indexOf(I)>-1:x==="|="?M===I||M.slice(0,I.length+1)===I+"-":!1):!0}},CHILD:function(C,x,I,z,M){var G=C.slice(0,3)!=="nth",te=C.slice(-4)!=="last",ue=x==="of-type";return z===1&&M===0?function(me){return!!me.parentNode}:function(me,He,Ne){var je,Qe,Ct,Be,jt,Yt,Cn=G!==te?"nextSibling":"previousSibling",kt=me.parentNode,bs=ue&&me.nodeName.toLowerCase(),Cs=!Ne&&!ue,wn=!1;if(kt){if(G){for(;Cn;){for(Be=me;Be=Be[Cn];)if(ue?Be.nodeName.toLowerCase()===bs:Be.nodeType===1)return!1;Yt=Cn=C==="only"&&!Yt&&"nextSibling"}return!0}if(Yt=[te?kt.firstChild:kt.lastChild],te&&Cs){for(Be=kt,Ct=Be[yt]||(Be[yt]={}),Qe=Ct[Be.uniqueID]||(Ct[Be.uniqueID]={}),je=Qe[C]||[],jt=je[0]===fn&&je[1],wn=jt&&je[2],Be=jt&&kt.childNodes[jt];Be=++jt&&Be&&Be[Cn]||(wn=jt=0)||Yt.pop();)if(Be.nodeType===1&&++wn&&Be===me){Qe[C]=[fn,jt,wn];break}}else if(Cs&&(Be=me,Ct=Be[yt]||(Be[yt]={}),Qe=Ct[Be.uniqueID]||(Ct[Be.uniqueID]={}),je=Qe[C]||[],jt=je[0]===fn&&je[1],wn=jt),wn===!1)for(;(Be=++jt&&Be&&Be[Cn]||(wn=jt=0)||Yt.pop())&&!((ue?Be.nodeName.toLowerCase()===bs:Be.nodeType===1)&&++wn&&(Cs&&(Ct=Be[yt]||(Be[yt]={}),Qe=Ct[Be.uniqueID]||(Ct[Be.uniqueID]={}),Qe[C]=[fn,wn]),Be===me)););return wn-=M,wn===z||wn%z===0&&wn/z>=0}}},PSEUDO:function(C,x){var I,z=h.pseudos[C]||h.setFilters[C.toLowerCase()]||bt.error("unsupported pseudo: "+C);return z[yt]?z(x):z.length>1?(I=[C,C,"",x],h.setFilters.hasOwnProperty(C.toLowerCase())?$n(function(M,G){for(var te,ue=z(M,x),me=ue.length;me--;)te=Gi(M,ue[me]),M[te]=!(G[te]=ue[me])}):function(M){return z(M,0,I)}):z}},pseudos:{not:$n(function(C){var x=[],I=[],z=A(C.replace(Io,"$1"));return z[yt]?$n(function(M,G,te,ue){for(var me,He=z(M,null,ue,[]),Ne=M.length;Ne--;)(me=He[Ne])&&(M[Ne]=!(G[Ne]=me))}):function(M,G,te){return x[0]=M,z(x,null,te,I),x[0]=null,!I.pop()}}),has:$n(function(C){return function(x){return bt(C,x).length>0}}),contains:$n(function(C){return C=C.replace(pi,hi),function(x){return(x.textContent||v(x)).indexOf(C)>-1}}),lang:$n(function(C){return K_.test(C||"")||bt.error("unsupported lang: "+C),C=C.replace(pi,hi).toLowerCase(),function(x){var I;do if(I=Ye?x.lang:x.getAttribute("xml:lang")||x.getAttribute("lang"))return I=I.toLowerCase(),I===C||I.indexOf(C+"-")===0;while((x=x.parentNode)&&x.nodeType===1);return!1}}),target:function(C){var x=s.location&&s.location.hash;return x&&x.slice(1)===C.id},root:function(C){return C===Oe},focus:function(C){return C===K.activeElement&&(!K.hasFocus||K.hasFocus())&&!!(C.type||C.href||~C.tabIndex)},enabled:Td(!1),disabled:Td(!0),checked:function(C){var x=C.nodeName.toLowerCase();return x==="input"&&!!C.checked||x==="option"&&!!C.selected},selected:function(C){return C.parentNode&&C.parentNode.selectedIndex,C.selected===!0},empty:function(C){for(C=C.firstChild;C;C=C.nextSibling)if(C.nodeType<6)return!1;return!0},parent:function(C){return!h.pseudos.empty(C)},header:function(C){return X_.test(C.nodeName)},input:function(C){return z_.test(C.nodeName)},button:function(C){var x=C.nodeName.toLowerCase();return x==="input"&&C.type==="button"||x==="button"},text:function(C){var x;return C.nodeName.toLowerCase()==="input"&&C.type==="text"&&((x=C.getAttribute("type"))==null||x.toLowerCase()==="text")},first:Zi(function(){return[0]}),last:Zi(function(C,x){return[x-1]}),eq:Zi(function(C,x,I){return[I<0?I+x:I]}),even:Zi(function(C,x){for(var I=0;Ix?x:I;--z>=0;)C.push(z);return C}),gt:Zi(function(C,x,I){for(var z=I<0?I+x:I;++z1?function(x,I,z){for(var M=C.length;M--;)if(!C[M](x,I,z))return!1;return!0}:C[0]}function Q_(C,x,I){for(var z=0,M=x.length;z-1&&(te[Ne]=!(ue[Ne]=Qe))}}else kt=Ho(kt===ue?kt.splice(jt,kt.length):kt),M?M(null,ue,kt,He):ki.apply(ue,kt)})}function Rl(C){for(var x,I,z,M=C.length,G=h.relative[C[0].type],te=G||h.relative[" "],ue=G?1:0,me=Fo(function(je){return je===x},te,!0),He=Fo(function(je){return Gi(x,je)>-1},te,!0),Ne=[function(je,Qe,Ct){var Be=!G&&(Ct||Qe!==F)||((x=Qe).nodeType?me(je,Qe,Ct):He(je,Qe,Ct));return x=null,Be}];ue1&&Il(Ne),ue>1&&Mo(C.slice(0,ue-1).concat({value:C[ue-2].type===" "?"*":""})).replace(Io,"$1"),I,ue0,z=C.length>0,M=function(G,te,ue,me,He){var Ne,je,Qe,Ct=0,Be="0",jt=G&&[],Yt=[],Cn=F,kt=G||z&&h.find.TAG("*",He),bs=fn+=Cn==null?1:Math.random()||.1,Cs=kt.length;for(He&&(F=te==K||te||He);Be!==Cs&&(Ne=kt[Be])!=null;Be++){if(z&&Ne){for(je=0,!te&&Ne.ownerDocument!=K&&(j(Ne),ue=!Ye);Qe=C[je++];)if(Qe(Ne,te||K,ue)){me.push(Ne);break}He&&(fn=bs)}I&&((Ne=!Qe&&Ne)&&Ct--,G&&jt.push(Ne))}if(Ct+=Be,I&&Be!==Ct){for(je=0;Qe=x[je++];)Qe(jt,Yt,te,ue);if(G){if(Ct>0)for(;Be--;)jt[Be]||Yt[Be]||(Yt[Be]=Si.call(me));Yt=Ho(Yt)}ki.apply(me,Yt),He&&!G&&Yt.length>0&&Ct+x.length>1&&bt.uniqueSort(me)}return He&&(fn=bs,F=Cn),jt};return I?$n(M):M}return A=bt.compile=function(C,x){var I,z=[],M=[],G=Po[C+" "];if(!G){for(x||(x=b(C)),I=x.length;I--;)G=Rl(x[I]),G[yt]?z.push(G):M.push(G);G=Po(C,e1(M,z)),G.selector=C}return G},E=bt.select=function(C,x,I,z){var M,G,te,ue,me,He=typeof C=="function"&&C,Ne=!z&&b(C=He.selector||C);if(I=I||[],Ne.length===1){if(G=Ne[0]=Ne[0].slice(0),G.length>2&&(te=G[0]).type==="ID"&&x.nodeType===9&&Ye&&h.relative[G[1].type]){if(x=(h.find.ID(te.matches[0].replace(pi,hi),x)||[])[0],x)He&&(x=x.parentNode);else return I;C=C.slice(G.shift().value.length)}for(M=No.needsContext.test(C)?0:G.length;M--&&(te=G[M],!h.relative[ue=te.type]);)if((me=h.find[ue])&&(z=me(te.matches[0].replace(pi,hi),Ol.test(G[0].type)&&Pl(x.parentNode)||x))){if(G.splice(M,1),C=z.length&&Mo(G),!C)return ki.apply(I,z),I;break}}return(He||A(C,Ne))(z,x,!Ye,I,!x||Ol.test(C)&&Pl(x.parentNode)||x),I},f.sortStable=yt.split("").sort(Xi).join("")===yt,f.detectDuplicates=!!ee,j(),f.sortDetached=On(function(C){return C.compareDocumentPosition(K.createElement("fieldset"))&1}),On(function(C){return C.innerHTML="",C.firstChild.getAttribute("href")==="#"})||Dl("type|href|height|width",function(C,x,I){if(!I)return C.getAttribute(x,x.toLowerCase()==="type"?1:2)}),(!f.attributes||!On(function(C){return C.innerHTML="",C.firstChild.setAttribute("value",""),C.firstChild.getAttribute("value")===""}))&&Dl("value",function(C,x,I){if(!I&&C.nodeName.toLowerCase()==="input")return C.defaultValue}),On(function(C){return C.getAttribute("disabled")==null})||Dl(Al,function(C,x,I){var z;if(!I)return C[x]===!0?x.toLowerCase():(z=C.getAttributeNode(x))&&z.specified?z.value:null}),bt}(t);p.find=Me,p.expr=Me.selectors,p.expr[":"]=p.expr.pseudos,p.uniqueSort=p.unique=Me.uniqueSort,p.text=Me.getText,p.isXMLDoc=Me.isXML,p.contains=Me.contains,p.escapeSelector=Me.escape;var ne=function(s,u,f){for(var h=[],v=f!==void 0;(s=s[u])&&s.nodeType!==9;)if(s.nodeType===1){if(v&&p(s).is(f))break;h.push(s)}return h},Y=function(s,u){for(var f=[];s;s=s.nextSibling)s.nodeType===1&&s!==u&&f.push(s);return f},Ee=p.expr.match.needsContext;function De(s,u){return s.nodeName&&s.nodeName.toLowerCase()===u.toLowerCase()}var Te=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function tt(s,u,f){return O(u)?p.grep(s,function(h,v){return!!u.call(h,v,h)!==f}):u.nodeType?p.grep(s,function(h){return h===u!==f}):typeof u!="string"?p.grep(s,function(h){return d.call(u,h)>-1!==f}):p.filter(u,s,f)}p.filter=function(s,u,f){var h=u[0];return f&&(s=":not("+s+")"),u.length===1&&h.nodeType===1?p.find.matchesSelector(h,s)?[h]:[]:p.find.matches(s,p.grep(u,function(v){return v.nodeType===1}))},p.fn.extend({find:function(s){var u,f,h=this.length,v=this;if(typeof s!="string")return this.pushStack(p(s).filter(function(){for(u=0;u1?p.uniqueSort(f):f},filter:function(s){return this.pushStack(tt(this,s||[],!1))},not:function(s){return this.pushStack(tt(this,s||[],!0))},is:function(s){return!!tt(this,typeof s=="string"&&Ee.test(s)?p(s):s||[],!1).length}});var ft,$e=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,Ie=p.fn.init=function(s,u,f){var h,v;if(!s)return this;if(f=f||ft,typeof s=="string")if(s[0]==="<"&&s[s.length-1]===">"&&s.length>=3?h=[null,s,null]:h=$e.exec(s),h&&(h[1]||!u))if(h[1]){if(u=u instanceof p?u[0]:u,p.merge(this,p.parseHTML(h[1],u&&u.nodeType?u.ownerDocument||u:P,!0)),Te.test(h[1])&&p.isPlainObject(u))for(h in u)O(this[h])?this[h](u[h]):this.attr(h,u[h]);return this}else return v=P.getElementById(h[2]),v&&(this[0]=v,this.length=1),this;else return!u||u.jquery?(u||f).find(s):this.constructor(u).find(s);else{if(s.nodeType)return this[0]=s,this.length=1,this;if(O(s))return f.ready!==void 0?f.ready(s):s(p)}return p.makeArray(s,this)};Ie.prototype=p.fn,ft=p(P);var be=/^(?:parents|prev(?:Until|All))/,st={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({has:function(s){var u=p(s,this),f=u.length;return this.filter(function(){for(var h=0;h-1:f.nodeType===1&&p.find.matchesSelector(f,s))){y.push(f);break}}return this.pushStack(y.length>1?p.uniqueSort(y):y)},index:function(s){return s?typeof s=="string"?d.call(p(s),this[0]):d.call(this,s.jquery?s[0]:s):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(s,u){return this.pushStack(p.uniqueSort(p.merge(this.get(),p(s,u))))},addBack:function(s){return this.add(s==null?this.prevObject:this.prevObject.filter(s))}});function St(s,u){for(;(s=s[u])&&s.nodeType!==1;);return s}p.each({parent:function(s){var u=s.parentNode;return u&&u.nodeType!==11?u:null},parents:function(s){return ne(s,"parentNode")},parentsUntil:function(s,u,f){return ne(s,"parentNode",f)},next:function(s){return St(s,"nextSibling")},prev:function(s){return St(s,"previousSibling")},nextAll:function(s){return ne(s,"nextSibling")},prevAll:function(s){return ne(s,"previousSibling")},nextUntil:function(s,u,f){return ne(s,"nextSibling",f)},prevUntil:function(s,u,f){return ne(s,"previousSibling",f)},siblings:function(s){return Y((s.parentNode||{}).firstChild,s)},children:function(s){return Y(s.firstChild)},contents:function(s){return s.contentDocument!=null&&r(s.contentDocument)?s.contentDocument:(De(s,"template")&&(s=s.content||s),p.merge([],s.childNodes))}},function(s,u){p.fn[s]=function(f,h){var v=p.map(this,u,f);return s.slice(-5)!=="Until"&&(h=f),h&&typeof h=="string"&&(v=p.filter(h,v)),this.length>1&&(st[s]||p.uniqueSort(v),be.test(s)&&v.reverse()),this.pushStack(v)}});var ot=/[^\x20\t\r\n\f]+/g;function we(s){var u={};return p.each(s.match(ot)||[],function(f,h){u[h]=!0}),u}p.Callbacks=function(s){s=typeof s=="string"?we(s):p.extend({},s);var u,f,h,v,y=[],b=[],A=-1,E=function(){for(v=v||s.once,h=u=!0;b.length;A=-1)for(f=b.shift();++A-1;)y.splice(j,1),j<=A&&A--}),this},has:function($){return $?p.inArray($,y)>-1:y.length>0},empty:function(){return y&&(y=[]),this},disable:function(){return v=b=[],y=f="",this},disabled:function(){return!y},lock:function(){return v=b=[],!f&&!u&&(y=f=""),this},locked:function(){return!!v},fireWith:function($,ee){return v||(ee=ee||[],ee=[$,ee.slice?ee.slice():ee],b.push(ee),u||E()),this},fire:function(){return F.fireWith(this,arguments),this},fired:function(){return!!h}};return F};function pe(s){return s}function he(s){throw s}function Se(s,u,f,h){var v;try{s&&O(v=s.promise)?v.call(s).done(u).fail(f):s&&O(v=s.then)?v.call(s,u,f):u.apply(void 0,[s].slice(h))}catch(y){f.apply(void 0,[y])}}p.extend({Deferred:function(s){var u=[["notify","progress",p.Callbacks("memory"),p.Callbacks("memory"),2],["resolve","done",p.Callbacks("once memory"),p.Callbacks("once memory"),0,"resolved"],["reject","fail",p.Callbacks("once memory"),p.Callbacks("once memory"),1,"rejected"]],f="pending",h={state:function(){return f},always:function(){return v.done(arguments).fail(arguments),this},catch:function(y){return h.then(null,y)},pipe:function(){var y=arguments;return p.Deferred(function(b){p.each(u,function(A,E){var F=O(y[E[4]])&&y[E[4]];v[E[1]](function(){var $=F&&F.apply(this,arguments);$&&O($.promise)?$.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[E[0]+"With"](this,F?[$]:arguments)})}),y=null}).promise()},then:function(y,b,A){var E=0;function F($,ee,j,K){return function(){var Oe=this,Ye=arguments,Ae=function(){var Rt,yn;if(!($=E&&(j!==he&&(Oe=void 0,Ye=[Rt]),ee.rejectWith(Oe,Ye))}};$?Bt():(p.Deferred.getStackHook&&(Bt.stackTrace=p.Deferred.getStackHook()),t.setTimeout(Bt))}}return p.Deferred(function($){u[0][3].add(F(0,$,O(A)?A:pe,$.notifyWith)),u[1][3].add(F(0,$,O(y)?y:pe)),u[2][3].add(F(0,$,O(b)?b:he))}).promise()},promise:function(y){return y!=null?p.extend(y,h):h}},v={};return p.each(u,function(y,b){var A=b[2],E=b[5];h[b[1]]=A.add,E&&A.add(function(){f=E},u[3-y][2].disable,u[3-y][3].disable,u[0][2].lock,u[0][3].lock),A.add(b[3].fire),v[b[0]]=function(){return v[b[0]+"With"](this===v?void 0:this,arguments),this},v[b[0]+"With"]=A.fireWith}),h.promise(v),s&&s.call(v,v),v},when:function(s){var u=arguments.length,f=u,h=Array(f),v=o.call(arguments),y=p.Deferred(),b=function(A){return function(E){h[A]=this,v[A]=arguments.length>1?o.call(arguments):E,--u||y.resolveWith(h,v)}};if(u<=1&&(Se(s,y.done(b(f)).resolve,y.reject,!u),y.state()==="pending"||O(v[f]&&v[f].then)))return y.then();for(;f--;)Se(v[f],b(f),y.reject);return y.promise()}});var _e=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;p.Deferred.exceptionHook=function(s,u){t.console&&t.console.warn&&s&&_e.test(s.name)&&t.console.warn("jQuery.Deferred exception: "+s.message,s.stack,u)},p.readyException=function(s){t.setTimeout(function(){throw s})};var Fe=p.Deferred();p.fn.ready=function(s){return Fe.then(s).catch(function(u){p.readyException(u)}),this},p.extend({isReady:!1,readyWait:1,ready:function(s){(s===!0?--p.readyWait:p.isReady)||(p.isReady=!0,!(s!==!0&&--p.readyWait>0)&&Fe.resolveWith(P,[p]))}}),p.ready.then=Fe.then;function ct(){P.removeEventListener("DOMContentLoaded",ct),t.removeEventListener("load",ct),p.ready()}P.readyState==="complete"||P.readyState!=="loading"&&!P.documentElement.doScroll?t.setTimeout(p.ready):(P.addEventListener("DOMContentLoaded",ct),t.addEventListener("load",ct));var dt=function(s,u,f,h,v,y,b){var A=0,E=s.length,F=f==null;if(L(f)==="object"){v=!0;for(A in f)dt(s,u,A,f[A],!0,y,b)}else if(h!==void 0&&(v=!0,O(h)||(b=!0),F&&(b?(u.call(s,h),u=null):(F=u,u=function($,ee,j){return F.call(p($),j)})),u))for(;A1,null,!0)},removeData:function(s){return this.each(function(){V.remove(this,s)})}}),p.extend({queue:function(s,u,f){var h;if(s)return u=(u||"fx")+"queue",h=H.get(s,u),f&&(!h||Array.isArray(f)?h=H.access(s,u,p.makeArray(f)):h.push(f)),h||[]},dequeue:function(s,u){u=u||"fx";var f=p.queue(s,u),h=f.length,v=f.shift(),y=p._queueHooks(s,u),b=function(){p.dequeue(s,u)};v==="inprogress"&&(v=f.shift(),h--),v&&(u==="fx"&&f.unshift("inprogress"),delete y.stop,v.call(s,b,y)),!h&&y&&y.empty.fire()},_queueHooks:function(s,u){var f=u+"queueHooks";return H.get(s,f)||H.access(s,f,{empty:p.Callbacks("once memory").add(function(){H.remove(s,[u+"queue",f])})})}}),p.fn.extend({queue:function(s,u){var f=2;return typeof s!="string"&&(u=s,s="fx",f--),arguments.length\x20\t\r\n\f]*)/i,de=/^$|^module$|\/(?:java|ecma)script/i;(function(){var s=P.createDocumentFragment(),u=s.appendChild(P.createElement("div")),f=P.createElement("input");f.setAttribute("type","radio"),f.setAttribute("checked","checked"),f.setAttribute("name","t"),u.appendChild(f),S.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,u.innerHTML="",S.noCloneChecked=!!u.cloneNode(!0).lastChild.defaultValue,u.innerHTML="",S.option=!!u.lastChild})();var ye={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ye.tbody=ye.tfoot=ye.colgroup=ye.caption=ye.thead,ye.th=ye.td,S.option||(ye.optgroup=ye.option=[1,""]);function qe(s,u){var f;return typeof s.getElementsByTagName<"u"?f=s.getElementsByTagName(u||"*"):typeof s.querySelectorAll<"u"?f=s.querySelectorAll(u||"*"):f=[],u===void 0||u&&De(s,u)?p.merge([s],f):f}function et(s,u){for(var f=0,h=s.length;f-1){v&&v.push(y);continue}if(F=Ke(y),b=qe(ee.appendChild(y),"script"),F&&et(b),f)for($=0;y=b[$++];)de.test(y.type||"")&&f.push(y)}return ee}var fi=/^([^.]*)(?:\.(.+)|)/;function di(){return!0}function un(){return!1}function fs(s,u){return s===_r()==(u==="focus")}function _r(){try{return P.activeElement}catch{}}function ni(s,u,f,h,v,y){var b,A;if(typeof u=="object"){typeof f!="string"&&(h=h||f,f=void 0);for(A in u)ni(s,A,f,h,u[A],y);return s}if(h==null&&v==null?(v=f,h=f=void 0):v==null&&(typeof f=="string"?(v=h,h=void 0):(v=h,h=f,f=void 0)),v===!1)v=un;else if(!v)return s;return y===1&&(b=v,v=function(E){return p().off(E),b.apply(this,arguments)},v.guid=b.guid||(b.guid=p.guid++)),s.each(function(){p.event.add(this,u,v,h,f)})}p.event={global:{},add:function(s,u,f,h,v){var y,b,A,E,F,$,ee,j,K,Oe,Ye,Ae=H.get(s);if(W(s))for(f.handler&&(y=f,f=y.handler,v=y.selector),v&&p.find.matchesSelector(Le,v),f.guid||(f.guid=p.guid++),(E=Ae.events)||(E=Ae.events=Object.create(null)),(b=Ae.handle)||(b=Ae.handle=function(Bt){return typeof p<"u"&&p.event.triggered!==Bt.type?p.event.dispatch.apply(s,arguments):void 0}),u=(u||"").match(ot)||[""],F=u.length;F--;)A=fi.exec(u[F])||[],K=Ye=A[1],Oe=(A[2]||"").split(".").sort(),K&&(ee=p.event.special[K]||{},K=(v?ee.delegateType:ee.bindType)||K,ee=p.event.special[K]||{},$=p.extend({type:K,origType:Ye,data:h,handler:f,guid:f.guid,selector:v,needsContext:v&&p.expr.match.needsContext.test(v),namespace:Oe.join(".")},y),(j=E[K])||(j=E[K]=[],j.delegateCount=0,(!ee.setup||ee.setup.call(s,h,Oe,b)===!1)&&s.addEventListener&&s.addEventListener(K,b)),ee.add&&(ee.add.call(s,$),$.handler.guid||($.handler.guid=f.guid)),v?j.splice(j.delegateCount++,0,$):j.push($),p.event.global[K]=!0)},remove:function(s,u,f,h,v){var y,b,A,E,F,$,ee,j,K,Oe,Ye,Ae=H.hasData(s)&&H.get(s);if(!(!Ae||!(E=Ae.events))){for(u=(u||"").match(ot)||[""],F=u.length;F--;){if(A=fi.exec(u[F])||[],K=Ye=A[1],Oe=(A[2]||"").split(".").sort(),!K){for(K in E)p.event.remove(s,K+u[F],f,h,!0);continue}for(ee=p.event.special[K]||{},K=(h?ee.delegateType:ee.bindType)||K,j=E[K]||[],A=A[2]&&new RegExp("(^|\\.)"+Oe.join("\\.(?:.*\\.|)")+"(\\.|$)"),b=y=j.length;y--;)$=j[y],(v||Ye===$.origType)&&(!f||f.guid===$.guid)&&(!A||A.test($.namespace))&&(!h||h===$.selector||h==="**"&&$.selector)&&(j.splice(y,1),$.selector&&j.delegateCount--,ee.remove&&ee.remove.call(s,$));b&&!j.length&&((!ee.teardown||ee.teardown.call(s,Oe,Ae.handle)===!1)&&p.removeEvent(s,K,Ae.handle),delete E[K])}p.isEmptyObject(E)&&H.remove(s,"handle events")}},dispatch:function(s){var u,f,h,v,y,b,A=new Array(arguments.length),E=p.event.fix(s),F=(H.get(this,"events")||Object.create(null))[E.type]||[],$=p.event.special[E.type]||{};for(A[0]=E,u=1;u=1)){for(;F!==this;F=F.parentNode||this)if(F.nodeType===1&&!(s.type==="click"&&F.disabled===!0)){for(y=[],b={},f=0;f-1:p.find(v,this,null,[F]).length),b[v]&&y.push(h);y.length&&A.push({elem:F,handlers:y})}}return F=this,E\s*$/g;function Kf(s,u){return De(s,"table")&&De(u.nodeType!==11?u:u.firstChild,"tr")&&p(s).children("tbody")[0]||s}function c_(s){return s.type=(s.getAttribute("type")!==null)+"/"+s.type,s}function f_(s){return(s.type||"").slice(0,5)==="true/"?s.type=s.type.slice(5):s.removeAttribute("type"),s}function qf(s,u){var f,h,v,y,b,A,E;if(u.nodeType===1){if(H.hasData(s)&&(y=H.get(s),E=y.events,E)){H.remove(u,"handle events");for(v in E)for(f=0,h=E[v].length;f1&&typeof K=="string"&&!S.checkClone&&xr.test(K))return s.each(function(Ye){var Ae=s.eq(Ye);Oe&&(u[0]=K.call(this,Ye,Ae.html())),Sr(Ae,u,f,h)});if(ee&&(v=en(u,s[0].ownerDocument,!1,s,h),y=v.firstChild,v.childNodes.length===1&&(v=y),y||h)){for(b=p.map(qe(v,"script"),c_),A=b.length;$0&&et(b,!E&&qe(s,"script")),A},cleanData:function(s){for(var u,f,h,v=p.event.special,y=0;(f=s[y])!==void 0;y++)if(W(f)){if(u=f[H.expando]){if(u.events)for(h in u.events)v[h]?p.event.remove(f,h):p.removeEvent(f,h,u.handle);f[H.expando]=void 0}f[V.expando]&&(f[V.expando]=void 0)}}}),p.fn.extend({detach:function(s){return zf(this,s,!0)},remove:function(s){return zf(this,s)},text:function(s){return dt(this,function(u){return u===void 0?p.text(this):this.empty().each(function(){(this.nodeType===1||this.nodeType===11||this.nodeType===9)&&(this.textContent=u)})},null,s,arguments.length)},append:function(){return Sr(this,arguments,function(s){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var u=Kf(this,s);u.appendChild(s)}})},prepend:function(){return Sr(this,arguments,function(s){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var u=Kf(this,s);u.insertBefore(s,u.firstChild)}})},before:function(){return Sr(this,arguments,function(s){this.parentNode&&this.parentNode.insertBefore(s,this)})},after:function(){return Sr(this,arguments,function(s){this.parentNode&&this.parentNode.insertBefore(s,this.nextSibling)})},empty:function(){for(var s,u=0;(s=this[u])!=null;u++)s.nodeType===1&&(p.cleanData(qe(s,!1)),s.textContent="");return this},clone:function(s,u){return s=s??!1,u=u??s,this.map(function(){return p.clone(this,s,u)})},html:function(s){return dt(this,function(u){var f=this[0]||{},h=0,v=this.length;if(u===void 0&&f.nodeType===1)return f.innerHTML;if(typeof u=="string"&&!ds.test(u)&&!ye[(q.exec(u)||["",""])[1].toLowerCase()]){u=p.htmlPrefilter(u);try{for(;h=0&&(E+=Math.max(0,Math.ceil(s["offset"+u[0].toUpperCase()+u.slice(1)]-y-E-A-.5))||0),E}function nd(s,u,f){var h=Lo(s),v=!S.boxSizingReliable()||f,y=v&&p.css(s,"boxSizing",!1,h)==="border-box",b=y,A=ps(s,u,h),E="offset"+u[0].toUpperCase()+u.slice(1);if(ml.test(A)){if(!f)return A;A="auto"}return(!S.boxSizingReliable()&&y||!S.reliableTrDimensions()&&De(s,"tr")||A==="auto"||!parseFloat(A)&&p.css(s,"display",!1,h)==="inline")&&s.getClientRects().length&&(y=p.css(s,"boxSizing",!1,h)==="border-box",b=E in s,b&&(A=s[E])),A=parseFloat(A)||0,A+bl(s,u,f||(y?"border":"content"),b,h,A)+"px"}p.extend({cssHooks:{opacity:{get:function(s,u){if(u){var f=ps(s,"opacity");return f===""?"1":f}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(s,u,f,h){if(!(!s||s.nodeType===3||s.nodeType===8||!s.style)){var v,y,b,A=D(u),E=vl.test(u),F=s.style;if(E||(u=yl(A)),b=p.cssHooks[u]||p.cssHooks[A],f!==void 0){if(y=typeof f,y==="string"&&(v=ge.exec(f))&&v[1]&&(f=Et(s,u,v),y="number"),f==null||f!==f)return;y==="number"&&!E&&(f+=v&&v[3]||(p.cssNumber[A]?"":"px")),!S.clearCloneStyle&&f===""&&u.indexOf("background")===0&&(F[u]="inherit"),(!b||!("set"in b)||(f=b.set(s,f,h))!==void 0)&&(E?F.setProperty(u,f):F[u]=f)}else return b&&"get"in b&&(v=b.get(s,!1,h))!==void 0?v:F[u]}},css:function(s,u,f,h){var v,y,b,A=D(u),E=vl.test(u);return E||(u=yl(A)),b=p.cssHooks[u]||p.cssHooks[A],b&&"get"in b&&(v=b.get(s,!0,f)),v===void 0&&(v=ps(s,u,h)),v==="normal"&&u in ed&&(v=ed[u]),f===""||f?(y=parseFloat(v),f===!0||isFinite(y)?y||0:v):v}}),p.each(["height","width"],function(s,u){p.cssHooks[u]={get:function(f,h,v){if(h)return m_.test(p.css(f,"display"))&&(!f.getClientRects().length||!f.getBoundingClientRect().width)?Xf(f,v_,function(){return nd(f,u,v)}):nd(f,u,v)},set:function(f,h,v){var y,b=Lo(f),A=!S.scrollboxSize()&&b.position==="absolute",E=A||v,F=E&&p.css(f,"boxSizing",!1,b)==="border-box",$=v?bl(f,u,v,F,b):0;return F&&A&&($-=Math.ceil(f["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(b[u])-bl(f,u,"border",!1,b)-.5)),$&&(y=ge.exec(h))&&(y[3]||"px")!=="px"&&(f.style[u]=h,h=p.css(f,u)),td(f,h,$)}}}),p.cssHooks.marginLeft=Gf(S.reliableMarginLeft,function(s,u){if(u)return(parseFloat(ps(s,"marginLeft"))||s.getBoundingClientRect().left-Xf(s,{marginLeft:0},function(){return s.getBoundingClientRect().left}))+"px"}),p.each({margin:"",padding:"",border:"Width"},function(s,u){p.cssHooks[s+u]={expand:function(f){for(var h=0,v={},y=typeof f=="string"?f.split(" "):[f];h<4;h++)v[s+Ce[h]+u]=y[h]||y[h-2]||y[0];return v}},s!=="margin"&&(p.cssHooks[s+u].set=td)}),p.fn.extend({css:function(s,u){return dt(this,function(f,h,v){var y,b,A={},E=0;if(Array.isArray(h)){for(y=Lo(f),b=h.length;E1)}});function cn(s,u,f,h,v){return new cn.prototype.init(s,u,f,h,v)}p.Tween=cn,cn.prototype={constructor:cn,init:function(s,u,f,h,v,y){this.elem=s,this.prop=f,this.easing=v||p.easing._default,this.options=u,this.start=this.now=this.cur(),this.end=h,this.unit=y||(p.cssNumber[f]?"":"px")},cur:function(){var s=cn.propHooks[this.prop];return s&&s.get?s.get(this):cn.propHooks._default.get(this)},run:function(s){var u,f=cn.propHooks[this.prop];return this.options.duration?this.pos=u=p.easing[this.easing](s,this.options.duration*s,0,1,this.options.duration):this.pos=u=s,this.now=(this.end-this.start)*u+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),f&&f.set?f.set(this):cn.propHooks._default.set(this),this}},cn.prototype.init.prototype=cn.prototype,cn.propHooks={_default:{get:function(s){var u;return s.elem.nodeType!==1||s.elem[s.prop]!=null&&s.elem.style[s.prop]==null?s.elem[s.prop]:(u=p.css(s.elem,s.prop,""),!u||u==="auto"?0:u)},set:function(s){p.fx.step[s.prop]?p.fx.step[s.prop](s):s.elem.nodeType===1&&(p.cssHooks[s.prop]||s.elem.style[yl(s.prop)]!=null)?p.style(s.elem,s.prop,s.now+s.unit):s.elem[s.prop]=s.now}}},cn.propHooks.scrollTop=cn.propHooks.scrollLeft={set:function(s){s.elem.nodeType&&s.elem.parentNode&&(s.elem[s.prop]=s.now)}},p.easing={linear:function(s){return s},swing:function(s){return .5-Math.cos(s*Math.PI)/2},_default:"swing"},p.fx=cn.prototype.init,p.fx.step={};var kr,Oo,y_=/^(?:toggle|show|hide)$/,b_=/queueHooks$/;function Cl(){Oo&&(P.hidden===!1&&t.requestAnimationFrame?t.requestAnimationFrame(Cl):t.setTimeout(Cl,p.fx.interval),p.fx.tick())}function id(){return t.setTimeout(function(){kr=void 0}),kr=Date.now()}function Do(s,u){var f,h=0,v={height:s};for(u=u?1:0;h<4;h+=2-u)f=Ce[h],v["margin"+f]=v["padding"+f]=s;return u&&(v.opacity=v.width=s),v}function rd(s,u,f){for(var h,v=(jn.tweeners[u]||[]).concat(jn.tweeners["*"]),y=0,b=v.length;y1)},removeAttr:function(s){return this.each(function(){p.removeAttr(this,s)})}}),p.extend({attr:function(s,u,f){var h,v,y=s.nodeType;if(!(y===3||y===8||y===2)){if(typeof s.getAttribute>"u")return p.prop(s,u,f);if((y!==1||!p.isXMLDoc(s))&&(v=p.attrHooks[u.toLowerCase()]||(p.expr.match.bool.test(u)?sd:void 0)),f!==void 0){if(f===null){p.removeAttr(s,u);return}return v&&"set"in v&&(h=v.set(s,f,u))!==void 0?h:(s.setAttribute(u,f+""),f)}return v&&"get"in v&&(h=v.get(s,u))!==null?h:(h=p.find.attr(s,u),h??void 0)}},attrHooks:{type:{set:function(s,u){if(!S.radioValue&&u==="radio"&&De(s,"input")){var f=s.value;return s.setAttribute("type",u),f&&(s.value=f),u}}}},removeAttr:function(s,u){var f,h=0,v=u&&u.match(ot);if(v&&s.nodeType===1)for(;f=v[h++];)s.removeAttribute(f)}}),sd={set:function(s,u,f){return u===!1?p.removeAttr(s,f):s.setAttribute(f,f),f}},p.each(p.expr.match.bool.source.match(/\w+/g),function(s,u){var f=hs[u]||p.find.attr;hs[u]=function(h,v,y){var b,A,E=v.toLowerCase();return y||(A=hs[E],hs[E]=b,b=f(h,v,y)!=null?E:null,hs[E]=A),b}});var T_=/^(?:input|select|textarea|button)$/i,__=/^(?:a|area)$/i;p.fn.extend({prop:function(s,u){return dt(this,p.prop,s,u,arguments.length>1)},removeProp:function(s){return this.each(function(){delete this[p.propFix[s]||s]})}}),p.extend({prop:function(s,u,f){var h,v,y=s.nodeType;if(!(y===3||y===8||y===2))return(y!==1||!p.isXMLDoc(s))&&(u=p.propFix[u]||u,v=p.propHooks[u]),f!==void 0?v&&"set"in v&&(h=v.set(s,f,u))!==void 0?h:s[u]=f:v&&"get"in v&&(h=v.get(s,u))!==null?h:s[u]},propHooks:{tabIndex:{get:function(s){var u=p.find.attr(s,"tabindex");return u?parseInt(u,10):T_.test(s.nodeName)||__.test(s.nodeName)&&s.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),S.optSelected||(p.propHooks.selected={get:function(s){var u=s.parentNode;return u&&u.parentNode&&u.parentNode.selectedIndex,null},set:function(s){var u=s.parentNode;u&&(u.selectedIndex,u.parentNode&&u.parentNode.selectedIndex)}}),p.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){p.propFix[this.toLowerCase()]=this});function qi(s){var u=s.match(ot)||[];return u.join(" ")}function zi(s){return s.getAttribute&&s.getAttribute("class")||""}function wl(s){return Array.isArray(s)?s:typeof s=="string"?s.match(ot)||[]:[]}p.fn.extend({addClass:function(s){var u,f,h,v,y,b;return O(s)?this.each(function(A){p(this).addClass(s.call(this,A,zi(this)))}):(u=wl(s),u.length?this.each(function(){if(h=zi(this),f=this.nodeType===1&&" "+qi(h)+" ",f){for(y=0;y-1;)f=f.replace(" "+v+" "," ");b=qi(f),h!==b&&this.setAttribute("class",b)}}):this):this.attr("class","")},toggleClass:function(s,u){var f,h,v,y,b=typeof s,A=b==="string"||Array.isArray(s);return O(s)?this.each(function(E){p(this).toggleClass(s.call(this,E,zi(this),u),u)}):typeof u=="boolean"&&A?u?this.addClass(s):this.removeClass(s):(f=wl(s),this.each(function(){if(A)for(y=p(this),v=0;v-1)return!0;return!1}});var E_=/\r/g;p.fn.extend({val:function(s){var u,f,h,v=this[0];return arguments.length?(h=O(s),this.each(function(y){var b;this.nodeType===1&&(h?b=s.call(this,y,p(this).val()):b=s,b==null?b="":typeof b=="number"?b+="":Array.isArray(b)&&(b=p.map(b,function(A){return A==null?"":A+""})),u=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()],(!u||!("set"in u)||u.set(this,b,"value")===void 0)&&(this.value=b))})):v?(u=p.valHooks[v.type]||p.valHooks[v.nodeName.toLowerCase()],u&&"get"in u&&(f=u.get(v,"value"))!==void 0?f:(f=v.value,typeof f=="string"?f.replace(E_,""):f??"")):void 0}}),p.extend({valHooks:{option:{get:function(s){var u=p.find.attr(s,"value");return u??qi(p.text(s))}},select:{get:function(s){var u,f,h,v=s.options,y=s.selectedIndex,b=s.type==="select-one",A=b?null:[],E=b?y+1:v.length;for(y<0?h=E:h=b?y:0;h-1)&&(f=!0);return f||(s.selectedIndex=-1),y}}}}),p.each(["radio","checkbox"],function(){p.valHooks[this]={set:function(s,u){if(Array.isArray(u))return s.checked=p.inArray(p(s).val(),u)>-1}},S.checkOn||(p.valHooks[this].get=function(s){return s.getAttribute("value")===null?"on":s.value})}),S.focusin="onfocusin"in t;var od=/^(?:focusinfocus|focusoutblur)$/,ad=function(s){s.stopPropagation()};p.extend(p.event,{trigger:function(s,u,f,h){var v,y,b,A,E,F,$,ee,j=[f||P],K=w.call(s,"type")?s.type:s,Oe=w.call(s,"namespace")?s.namespace.split("."):[];if(y=ee=b=f=f||P,!(f.nodeType===3||f.nodeType===8)&&!od.test(K+p.event.triggered)&&(K.indexOf(".")>-1&&(Oe=K.split("."),K=Oe.shift(),Oe.sort()),E=K.indexOf(":")<0&&"on"+K,s=s[p.expando]?s:new p.Event(K,typeof s=="object"&&s),s.isTrigger=h?2:3,s.namespace=Oe.join("."),s.rnamespace=s.namespace?new RegExp("(^|\\.)"+Oe.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,s.result=void 0,s.target||(s.target=f),u=u==null?[s]:p.makeArray(u,[s]),$=p.event.special[K]||{},!(!h&&$.trigger&&$.trigger.apply(f,u)===!1))){if(!h&&!$.noBubble&&!U(f)){for(A=$.delegateType||K,od.test(A+K)||(y=y.parentNode);y;y=y.parentNode)j.push(y),b=y;b===(f.ownerDocument||P)&&j.push(b.defaultView||b.parentWindow||t)}for(v=0;(y=j[v++])&&!s.isPropagationStopped();)ee=y,s.type=v>1?A:$.bindType||K,F=(H.get(y,"events")||Object.create(null))[s.type]&&H.get(y,"handle"),F&&F.apply(y,u),F=E&&y[E],F&&F.apply&&W(y)&&(s.result=F.apply(y,u),s.result===!1&&s.preventDefault());return s.type=K,!h&&!s.isDefaultPrevented()&&(!$._default||$._default.apply(j.pop(),u)===!1)&&W(f)&&E&&O(f[K])&&!U(f)&&(b=f[E],b&&(f[E]=null),p.event.triggered=K,s.isPropagationStopped()&&ee.addEventListener(K,ad),f[K](),s.isPropagationStopped()&&ee.removeEventListener(K,ad),p.event.triggered=void 0,b&&(f[E]=b)),s.result}},simulate:function(s,u,f){var h=p.extend(new p.Event,f,{type:s,isSimulated:!0});p.event.trigger(h,null,u)}}),p.fn.extend({trigger:function(s,u){return this.each(function(){p.event.trigger(s,u,this)})},triggerHandler:function(s,u){var f=this[0];if(f)return p.event.trigger(s,u,f,!0)}}),S.focusin||p.each({focus:"focusin",blur:"focusout"},function(s,u){var f=function(h){p.event.simulate(u,h.target,p.event.fix(h))};p.event.special[u]={setup:function(){var h=this.ownerDocument||this.document||this,v=H.access(h,u);v||h.addEventListener(s,f,!0),H.access(h,u,(v||0)+1)},teardown:function(){var h=this.ownerDocument||this.document||this,v=H.access(h,u)-1;v?H.access(h,u,v):(h.removeEventListener(s,f,!0),H.remove(h,u))}}});var gs=t.location,ld={guid:Date.now()},Tl=/\?/;p.parseXML=function(s){var u,f;if(!s||typeof s!="string")return null;try{u=new t.DOMParser().parseFromString(s,"text/xml")}catch{}return f=u&&u.getElementsByTagName("parsererror")[0],(!u||f)&&p.error("Invalid XML: "+(f?p.map(f.childNodes,function(h){return h.textContent}).join(` +`):s)),u};var x_=/\[\]$/,ud=/\r?\n/g,S_=/^(?:submit|button|image|reset|file)$/i,k_=/^(?:input|select|textarea|keygen)/i;function _l(s,u,f,h){var v;if(Array.isArray(u))p.each(u,function(y,b){f||x_.test(s)?h(s,b):_l(s+"["+(typeof b=="object"&&b!=null?y:"")+"]",b,f,h)});else if(!f&&L(u)==="object")for(v in u)_l(s+"["+v+"]",u[v],f,h);else h(s,u)}p.param=function(s,u){var f,h=[],v=function(y,b){var A=O(b)?b():b;h[h.length]=encodeURIComponent(y)+"="+encodeURIComponent(A??"")};if(s==null)return"";if(Array.isArray(s)||s.jquery&&!p.isPlainObject(s))p.each(s,function(){v(this.name,this.value)});else for(f in s)_l(f,s[f],u,v);return h.join("&")},p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var s=p.prop(this,"elements");return s?p.makeArray(s):this}).filter(function(){var s=this.type;return this.name&&!p(this).is(":disabled")&&k_.test(this.nodeName)&&!S_.test(s)&&(this.checked||!vn.test(s))}).map(function(s,u){var f=p(this).val();return f==null?null:Array.isArray(f)?p.map(f,function(h){return{name:u.name,value:h.replace(ud,`\r +`)}}):{name:u.name,value:f.replace(ud,`\r +`)}}).get()}});var A_=/%20/g,L_=/#.*$/,O_=/([?&])_=[^&]*/,D_=/^(.*?):[ \t]*([^\r\n]*)$/mg,P_=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,I_=/^(?:GET|HEAD)$/,N_=/^\/\//,cd={},El={},fd="*/".concat("*"),xl=P.createElement("a");xl.href=gs.href;function dd(s){return function(u,f){typeof u!="string"&&(f=u,u="*");var h,v=0,y=u.toLowerCase().match(ot)||[];if(O(f))for(;h=y[v++];)h[0]==="+"?(h=h.slice(1)||"*",(s[h]=s[h]||[]).unshift(f)):(s[h]=s[h]||[]).push(f)}}function pd(s,u,f,h){var v={},y=s===El;function b(A){var E;return v[A]=!0,p.each(s[A]||[],function(F,$){var ee=$(u,f,h);if(typeof ee=="string"&&!y&&!v[ee])return u.dataTypes.unshift(ee),b(ee),!1;if(y)return!(E=ee)}),E}return b(u.dataTypes[0])||!v["*"]&&b("*")}function Sl(s,u){var f,h,v=p.ajaxSettings.flatOptions||{};for(f in u)u[f]!==void 0&&((v[f]?s:h||(h={}))[f]=u[f]);return h&&p.extend(!0,s,h),s}function R_(s,u,f){for(var h,v,y,b,A=s.contents,E=s.dataTypes;E[0]==="*";)E.shift(),h===void 0&&(h=s.mimeType||u.getResponseHeader("Content-Type"));if(h){for(v in A)if(A[v]&&A[v].test(h)){E.unshift(v);break}}if(E[0]in f)y=E[0];else{for(v in f){if(!E[0]||s.converters[v+" "+E[0]]){y=v;break}b||(b=v)}y=y||b}if(y)return y!==E[0]&&E.unshift(y),f[y]}function M_(s,u,f,h){var v,y,b,A,E,F={},$=s.dataTypes.slice();if($[1])for(b in s.converters)F[b.toLowerCase()]=s.converters[b];for(y=$.shift();y;)if(s.responseFields[y]&&(f[s.responseFields[y]]=u),!E&&h&&s.dataFilter&&(u=s.dataFilter(u,s.dataType)),E=y,y=$.shift(),y){if(y==="*")y=E;else if(E!=="*"&&E!==y){if(b=F[E+" "+y]||F["* "+y],!b){for(v in F)if(A=v.split(" "),A[1]===y&&(b=F[E+" "+A[0]]||F["* "+A[0]],b)){b===!0?b=F[v]:F[v]!==!0&&(y=A[0],$.unshift(A[1]));break}}if(b!==!0)if(b&&s.throws)u=b(u);else try{u=b(u)}catch(ee){return{state:"parsererror",error:b?ee:"No conversion from "+E+" to "+y}}}}return{state:"success",data:u}}p.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:gs.href,type:"GET",isLocal:P_.test(gs.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":fd,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":p.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(s,u){return u?Sl(Sl(s,p.ajaxSettings),u):Sl(p.ajaxSettings,s)},ajaxPrefilter:dd(cd),ajaxTransport:dd(El),ajax:function(s,u){typeof s=="object"&&(u=s,s=void 0),u=u||{};var f,h,v,y,b,A,E,F,$,ee,j=p.ajaxSetup({},u),K=j.context||j,Oe=j.context&&(K.nodeType||K.jquery)?p(K):p.event,Ye=p.Deferred(),Ae=p.Callbacks("once memory"),Bt=j.statusCode||{},Rt={},yn={},yt="canceled",Xe={readyState:0,getResponseHeader:function(lt){var Dt;if(E){if(!y)for(y={};Dt=D_.exec(v);)y[Dt[1].toLowerCase()+" "]=(y[Dt[1].toLowerCase()+" "]||[]).concat(Dt[2]);Dt=y[lt.toLowerCase()+" "]}return Dt==null?null:Dt.join(", ")},getAllResponseHeaders:function(){return E?v:null},setRequestHeader:function(lt,Dt){return E==null&&(lt=yn[lt.toLowerCase()]=yn[lt.toLowerCase()]||lt,Rt[lt]=Dt),this},overrideMimeType:function(lt){return E==null&&(j.mimeType=lt),this},statusCode:function(lt){var Dt;if(lt)if(E)Xe.always(lt[Xe.status]);else for(Dt in lt)Bt[Dt]=[Bt[Dt],lt[Dt]];return this},abort:function(lt){var Dt=lt||yt;return f&&f.abort(Dt),fn(0,Dt),this}};if(Ye.promise(Xe),j.url=((s||j.url||gs.href)+"").replace(N_,gs.protocol+"//"),j.type=u.method||u.type||j.method||j.type,j.dataTypes=(j.dataType||"*").toLowerCase().match(ot)||[""],j.crossDomain==null){A=P.createElement("a");try{A.href=j.url,A.href=A.href,j.crossDomain=xl.protocol+"//"+xl.host!=A.protocol+"//"+A.host}catch{j.crossDomain=!0}}if(j.data&&j.processData&&typeof j.data!="string"&&(j.data=p.param(j.data,j.traditional)),pd(cd,j,u,Xe),E)return Xe;F=p.event&&j.global,F&&p.active++===0&&p.event.trigger("ajaxStart"),j.type=j.type.toUpperCase(),j.hasContent=!I_.test(j.type),h=j.url.replace(L_,""),j.hasContent?j.data&&j.processData&&(j.contentType||"").indexOf("application/x-www-form-urlencoded")===0&&(j.data=j.data.replace(A_,"+")):(ee=j.url.slice(h.length),j.data&&(j.processData||typeof j.data=="string")&&(h+=(Tl.test(h)?"&":"?")+j.data,delete j.data),j.cache===!1&&(h=h.replace(O_,"$1"),ee=(Tl.test(h)?"&":"?")+"_="+ld.guid+++ee),j.url=h+ee),j.ifModified&&(p.lastModified[h]&&Xe.setRequestHeader("If-Modified-Since",p.lastModified[h]),p.etag[h]&&Xe.setRequestHeader("If-None-Match",p.etag[h])),(j.data&&j.hasContent&&j.contentType!==!1||u.contentType)&&Xe.setRequestHeader("Content-Type",j.contentType),Xe.setRequestHeader("Accept",j.dataTypes[0]&&j.accepts[j.dataTypes[0]]?j.accepts[j.dataTypes[0]]+(j.dataTypes[0]!=="*"?", "+fd+"; q=0.01":""):j.accepts["*"]);for($ in j.headers)Xe.setRequestHeader($,j.headers[$]);if(j.beforeSend&&(j.beforeSend.call(K,Xe,j)===!1||E))return Xe.abort();if(yt="abort",Ae.add(j.complete),Xe.done(j.success),Xe.fail(j.error),f=pd(El,j,u,Xe),!f)fn(-1,"No Transport");else{if(Xe.readyState=1,F&&Oe.trigger("ajaxSend",[Xe,j]),E)return Xe;j.async&&j.timeout>0&&(b=t.setTimeout(function(){Xe.abort("timeout")},j.timeout));try{E=!1,f.send(Rt,fn)}catch(lt){if(E)throw lt;fn(-1,lt)}}function fn(lt,Dt,vs,Po){var bn,Xi,Yi,dn,Si,Ln=Dt;E||(E=!0,b&&t.clearTimeout(b),f=void 0,v=Po||"",Xe.readyState=lt>0?4:0,bn=lt>=200&<<300||lt===304,vs&&(dn=R_(j,Xe,vs)),!bn&&p.inArray("script",j.dataTypes)>-1&&p.inArray("json",j.dataTypes)<0&&(j.converters["text script"]=function(){}),dn=M_(j,dn,Xe,bn),bn?(j.ifModified&&(Si=Xe.getResponseHeader("Last-Modified"),Si&&(p.lastModified[h]=Si),Si=Xe.getResponseHeader("etag"),Si&&(p.etag[h]=Si)),lt===204||j.type==="HEAD"?Ln="nocontent":lt===304?Ln="notmodified":(Ln=dn.state,Xi=dn.data,Yi=dn.error,bn=!Yi)):(Yi=Ln,(lt||!Ln)&&(Ln="error",lt<0&&(lt=0))),Xe.status=lt,Xe.statusText=(Dt||Ln)+"",bn?Ye.resolveWith(K,[Xi,Ln,Xe]):Ye.rejectWith(K,[Xe,Ln,Yi]),Xe.statusCode(Bt),Bt=void 0,F&&Oe.trigger(bn?"ajaxSuccess":"ajaxError",[Xe,j,bn?Xi:Yi]),Ae.fireWith(K,[Xe,Ln]),F&&(Oe.trigger("ajaxComplete",[Xe,j]),--p.active||p.event.trigger("ajaxStop")))}return Xe},getJSON:function(s,u,f){return p.get(s,u,f,"json")},getScript:function(s,u){return p.get(s,void 0,u,"script")}}),p.each(["get","post"],function(s,u){p[u]=function(f,h,v,y){return O(h)&&(y=y||v,v=h,h=void 0),p.ajax(p.extend({url:f,type:u,dataType:y,data:h,success:v},p.isPlainObject(f)&&f))}}),p.ajaxPrefilter(function(s){var u;for(u in s.headers)u.toLowerCase()==="content-type"&&(s.contentType=s.headers[u]||"")}),p._evalUrl=function(s,u,f){return p.ajax({url:s,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(h){p.globalEval(h,u,f)}})},p.fn.extend({wrapAll:function(s){var u;return this[0]&&(O(s)&&(s=s.call(this[0])),u=p(s,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&u.insertBefore(this[0]),u.map(function(){for(var f=this;f.firstElementChild;)f=f.firstElementChild;return f}).append(this)),this},wrapInner:function(s){return O(s)?this.each(function(u){p(this).wrapInner(s.call(this,u))}):this.each(function(){var u=p(this),f=u.contents();f.length?f.wrapAll(s):u.append(s)})},wrap:function(s){var u=O(s);return this.each(function(f){p(this).wrapAll(u?s.call(this,f):s)})},unwrap:function(s){return this.parent(s).not("body").each(function(){p(this).replaceWith(this.childNodes)}),this}}),p.expr.pseudos.hidden=function(s){return!p.expr.pseudos.visible(s)},p.expr.pseudos.visible=function(s){return!!(s.offsetWidth||s.offsetHeight||s.getClientRects().length)},p.ajaxSettings.xhr=function(){try{return new t.XMLHttpRequest}catch{}};var F_={0:200,1223:204},ms=p.ajaxSettings.xhr();S.cors=!!ms&&"withCredentials"in ms,S.ajax=ms=!!ms,p.ajaxTransport(function(s){var u,f;if(S.cors||ms&&!s.crossDomain)return{send:function(h,v){var y,b=s.xhr();if(b.open(s.type,s.url,s.async,s.username,s.password),s.xhrFields)for(y in s.xhrFields)b[y]=s.xhrFields[y];s.mimeType&&b.overrideMimeType&&b.overrideMimeType(s.mimeType),!s.crossDomain&&!h["X-Requested-With"]&&(h["X-Requested-With"]="XMLHttpRequest");for(y in h)b.setRequestHeader(y,h[y]);u=function(A){return function(){u&&(u=f=b.onload=b.onerror=b.onabort=b.ontimeout=b.onreadystatechange=null,A==="abort"?b.abort():A==="error"?typeof b.status!="number"?v(0,"error"):v(b.status,b.statusText):v(F_[b.status]||b.status,b.statusText,(b.responseType||"text")!=="text"||typeof b.responseText!="string"?{binary:b.response}:{text:b.responseText},b.getAllResponseHeaders()))}},b.onload=u(),f=b.onerror=b.ontimeout=u("error"),b.onabort!==void 0?b.onabort=f:b.onreadystatechange=function(){b.readyState===4&&t.setTimeout(function(){u&&f()})},u=u("abort");try{b.send(s.hasContent&&s.data||null)}catch(A){if(u)throw A}},abort:function(){u&&u()}}}),p.ajaxPrefilter(function(s){s.crossDomain&&(s.contents.script=!1)}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(s){return p.globalEval(s),s}}}),p.ajaxPrefilter("script",function(s){s.cache===void 0&&(s.cache=!1),s.crossDomain&&(s.type="GET")}),p.ajaxTransport("script",function(s){if(s.crossDomain||s.scriptAttrs){var u,f;return{send:function(h,v){u=p("","import common from \"@/utils/common\";\n\nexport default {\n data() {\n return {\n autocompleteResults: null,\n\n showAppendList: false,\n appendListStyle: {\n top: 0,\n left: 0,\n },\n appendListSelected: null,\n appendListChildSelected: null,\n appendList: [\n {\n \"type\": \"wrap\",\n \"name\": \"line_break_character\",\n \"icon\": \"wrap\",\n \"children\": []\n },\n /*{\n \"type\": \"lora\",\n \"name\": \"Lora\",\n \"children\": []\n },*/\n /*{\n \"type\": \"favorite\",\n \"name\": \"favorite\",\n \"icon\": \"favorite\",\n \"children\": []\n },\n {\n \"type\": \"history\",\n \"name\": \"history\",\n \"icon\": \"history\",\n \"children\": []\n }*/\n ],\n }\n },\n computed: {\n appendListChildItemTags() {\n if (this.appendListSelected === null) return []\n if (this.appendListChildSelected === null) return []\n if (this.appendList[this.appendListSelected].type !== 'favorite' && this.appendList[this.appendListSelected].type !== 'history') return []\n return this.appendList[this.appendListSelected].children[this.appendListChildSelected].tags\n }\n },\n mounted() {\n let temp = [\n {\n 'name': 'txt2img',\n 'type': 'prompt',\n 'key': 'txt2img',\n 'neg': false,\n },\n {\n 'name': 'txt2img',\n 'type': 'negative_prompt',\n 'key': 'txt2img_neg',\n 'neg': true,\n },\n {\n 'name': 'img2img',\n 'type': 'prompt',\n 'key': 'img2img',\n 'neg': false,\n },\n {\n 'name': 'img2img',\n 'type': 'negative_prompt',\n 'key': 'img2img_neg',\n 'neg': true,\n },\n ]\n /*for (let i = 0; i < temp.length; i++) {\n if (temp[i].key === this.favoriteKey) {\n // 排到第一位\n let item = temp[i]\n temp.splice(i, 1)\n temp.unshift(item)\n break\n }\n }*/\n temp.forEach(item => {\n if (item.neg !== this.neg) return\n this.appendList.push({\n 'type': \"favorite\",\n 'name': [\"favorite\", item.name/*, item.type*/],\n \"icon\": \"favorite\",\n \"key\": item.key,\n 'dataKey': 'favorite.' + item.key,\n \"children\": [],\n })\n })\n /*temp.forEach(item => {\n this.appendList.push({\n 'type': \"history\",\n 'name': [\"history\", item.name, item.type],\n \"icon\": \"history\",\n \"key\": item.key,\n 'dataKey': 'history.' + item.key,\n \"children\": [],\n })\n })*/\n },\n methods: {\n onUnfoldClick() {\n if (this.hidePanel) {\n this.$nextTick(() => {\n this.onResize()\n })\n }\n this.$emit(\"update:hidePanel\", !this.hidePanel)\n },\n onTranslatesToLocalClick() {\n if (this.tags.length === 0) return // 没有关键词需要翻译\n if (this.loading['all_local']) {\n // 正在翻译中,取消翻译\n this.cancelMultiTranslate = true\n this.loading['all_local'] = false\n return\n }\n this.loading['all_local'] = true\n let tagIndexes = []\n for (const index in this.tags) {\n if (this.tags[index].type && this.tags[index].type !== 'text') continue\n tagIndexes.push(index)\n }\n return this.translates(tagIndexes, true, true).finally(() => {\n this.loading['all_local'] = false\n this.updateTags()\n })\n },\n onTranslatesToEnglishClick() {\n if (this.tags.length === 0) return // 没有关键词需要翻译\n if (this.loading['all_en']) {\n // 正在翻译中,取消翻译\n this.cancelMultiTranslate = true\n this.loading['all_en'] = false\n return\n }\n this.loading['all_en'] = true\n let tagIndexes = []\n for (const index in this.tags) {\n if (this.tags[index].type && this.tags[index].type !== 'text') continue\n tagIndexes.push(index)\n }\n this.translates(tagIndexes, false, true).finally(() => {\n this.loading['all_en'] = false\n this.updateTags()\n })\n },\n onCopyAllTagsClick() {\n this.copy(this.prompt)\n },\n onDeleteAllTagsClick() {\n if (!confirm(this.getLang('delete_all_keywords_confirm'))) return\n this.tags = []\n this.updateTags()\n },\n appendListItemName(item) {\n let names = []\n if (typeof item.name === \"object\") {\n for (let name of item.name) {\n names.push(this.getLang(name))\n }\n } else {\n names = [this.getLang(item.name)]\n }\n return names.join(' / ')\n },\n onAppendTagFocus(e) {\n if (this.$refs.promptTagAppend.value === '' || this.$refs.promptTagAppend.value.trim() === '') {\n this.appendListStyle = {\n top: e.target.offsetTop + e.target.offsetHeight + 'px',\n left: e.target.offsetLeft + 'px',\n }\n this.appendListSelected = null\n this.appendListChildSelected = null\n this.showAppendList = true\n let dataKeys = []\n this.appendList.forEach(item => {\n if (typeof item['dataKey'] === 'string') {\n dataKeys.push(item['dataKey'])\n }\n })\n this.gradioAPI.getDatas(dataKeys).then(res => {\n this.appendList.forEach(item => {\n if (typeof item['dataKey'] !== 'string') return\n item.children = res[item['dataKey']] || []\n // 反转\n item.children.reverse()\n })\n })\n /*this.gradioAPI.getFavorites(this.favoriteKey).then(res => {\n this.appendList.forEach(item => {\n if (item.type !== 'favorite') return\n item.children = res\n })\n })\n this.gradioAPI.getHistories(this.historyKey).then(res => {\n this.appendList.forEach(item => {\n if (item.type !== 'history') return\n item.children = res\n })\n })*/\n }\n this._setTextareaFocus()\n },\n onAppendTagBlur(e) {\n setTimeout(() => {\n this.showAppendList = false\n }, 300)\n },\n selectAppendList(down = true) {\n if (this.appendList.length === 0) return\n if (this.appendListSelected === null) {\n this.appendListSelected = 0\n } else {\n if (down) {\n this.appendListSelected++\n if (this.appendListSelected >= this.appendList.length) {\n this.appendListSelected = 0\n }\n } else {\n this.appendListSelected--\n if (this.appendListSelected < 0) {\n this.appendListSelected = this.appendList.length - 1\n }\n }\n }\n this.appendListChildSelected = null\n },\n selectAppendListChild(down = true) {\n if (this.appendList.length === 0) return\n if (this.appendListSelected === null) return\n if (this.appendList[this.appendListSelected].children.length === 0) return\n if (this.appendListChildSelected === null) {\n this.appendListChildSelected = 0\n } else {\n if (down) {\n this.appendListChildSelected++\n if (this.appendListChildSelected >= this.appendList[this.appendListSelected].children.length) {\n this.appendListChildSelected = 0\n }\n } else {\n this.appendListChildSelected--\n if (this.appendListChildSelected < 0) {\n this.appendListChildSelected = this.appendList[this.appendListSelected].children.length - 1\n }\n }\n }\n this.scrollAppendListChild()\n },\n scrollAppendListChild() {\n if (this.appendListSelected === null) return\n if (this.appendListChildSelected === 0 || this.appendListChildSelected === null) {\n this.$refs.promptAppendListChildren[this.appendListSelected].scrollTop = 0\n } else {\n this.$refs.promptAppendListChild[this.appendListChildSelected].scrollIntoView({\n behavior: 'smooth',\n block: 'center'\n })\n }\n },\n onAppendTagKeyDown(e, localValue = null) {\n if (e.keyCode === 38 || e.keyCode === 40) {\n } else if (e.keyCode === 13) {\n if (this.getAutocompleteResults() && this.autocompleteResults.style.display === 'block' && this.getAutocompleteResultsSelected()) {\n let text = this.getAutocompleteResultsSelectedText()\n setTimeout(() => {\n localValue = this.$refs.promptTagAppend.value\n if (text) {\n localValue = text\n } else {\n text = this.getAutocompleteResultsSelectedText()\n if (text) localValue = text\n }\n this.onAppendTagKeyDown(e, localValue)\n }, 300)\n return\n }\n\n let tags = this.$refs.promptTagAppend.value\n this.$refs.promptTagAppend.value = ''\n this.showAppendList = true\n // [night light:magical forest: 5, 15]\n console.log(tags, localValue)\n if (localValue) {\n // 去除末尾的逗号\n tags = tags.replace(/\\s*,\\s*$/, '').trim()\n if (common.hasBrackets(tags)) {\n tags = common.replaceBrackets(tags)\n }\n this._appendTag(tags, localValue)\n this.updateTags()\n } else {\n if (common.hasBrackets(tags)) {\n // 如果已经被英文括号括起来,那么就不需要再分词了\n tags = common.replaceBrackets(tags)\n tags = [tags]\n } else {\n tags = common.splitTags(tags)\n }\n let indexes = []\n tags.forEach(tag => {\n let index = -1\n if (tag === \"\\n\") {\n index = this._appendTag(\"\\n\", \"\\n\", false, -1, 'wrap')\n } else {\n index = this._appendTag(tag)\n }\n if (index !== -1) indexes.push(index)\n })\n this.updatePrompt() // 先更新再翻译\n if (this.autoTranslateToEnglish || this.autoTranslateToLocal) {\n this.$nextTick(() => {\n let useNetwork = !(this.tagCompleteFile && this.onlyCsvOnAuto)\n if (this.autoTranslateToEnglish) {\n // 如果开启了自动翻译到英语,那么就自动翻译\n this.translates(indexes, false, useNetwork).finally(() => {\n this.updateTags()\n })\n } else if (this.autoTranslateToLocal) {\n // 如果开启了自动翻译到本地语言,那么就自动翻译\n this.translates(indexes, true, useNetwork).finally(() => {\n this.updateTags()\n })\n }\n })\n } else {\n this.updateTags()\n }\n }\n } else {\n // 不是上下键,也不是回车\n this.removeAutocompleteResultsSelected()\n }\n },\n onAppendTagKeyUp(e) {\n if (this.$refs.promptTagAppend.value === '' || this.$refs.promptTagAppend.value.trim() === '') {\n this.$refs.promptTagAppend.value = ''\n this.showAppendList = true\n\n if (e.keyCode === 38 || e.keyCode === 40) {\n // 如果是上下键\n if (this.appendListChildSelected === null) {\n this.selectAppendList(e.keyCode === 40)\n } else {\n this.selectAppendListChild(e.keyCode === 40)\n }\n } else if (e.keyCode === 37 || e.keyCode === 39) {\n // 如果是左右键\n if (this.appendListSelected !== null) {\n if (e.keyCode === 37) {\n this.appendListChildSelected = null\n this.scrollAppendListChild()\n } else {\n if (this.appendList[this.appendListSelected].children.length === 0) {\n this.appendListChildSelected = null\n } else {\n this.appendListChildSelected = 0\n this.scrollAppendListChild()\n }\n }\n }\n } else if (e.keyCode === 13) {\n // 如果是回车键\n this._appendTagByList()\n this.scrollAppendListChild()\n this.appendListSelected = null\n this.appendListChildSelected = null\n }\n } else {\n this.showAppendList = false\n }\n },\n onAppendGroupClick(index, childIndex, e) {\n if (index === null) return\n this.appendListSelected = index\n if (childIndex === null) {\n // 如果是点击的是父级\n if (this.appendList[this.appendListSelected].children.length > 0) return\n } else {\n this.appendListChildSelected = childIndex\n }\n this._appendTagByList()\n },\n onAppendListChildMouseLeave(index, childIndex, e) {\n this.appendListSelected = null\n this.appendListChildSelected = null\n },\n onAppendListChildMouseEnter(index, childIndex, e) {\n this.appendListSelected = index\n this.appendListChildSelected = childIndex\n },\n _appendTagByList() {\n if (this.appendListSelected === null) return\n const appendItem = this.appendList[this.appendListSelected]\n let appendChildItem = null\n if (appendItem.children.length > 0) {\n if (this.appendListChildSelected !== null) {\n // 有子项并且选中了子项\n appendChildItem = appendItem.children[this.appendListChildSelected]\n }\n } else {\n // 没有子项\n }\n let appendTags = []\n switch (appendItem.type) {\n case 'wrap':\n appendTags.push({\n value: \"\\n\",\n localValue: \"\\n\",\n disabled: false,\n type: 'wrap'\n })\n break\n case 'lora':\n break\n case 'favorite':\n case 'history':\n if (appendChildItem) {\n appendChildItem.tags.forEach(tag => {\n appendTags.push({\n value: tag.value,\n localValue: tag.localValue,\n disabled: tag.disabled,\n type: tag.type || 'text'\n })\n })\n }\n break\n }\n if (appendTags.length <= 0) return\n appendTags.forEach(tag => {\n this._appendTag(tag.value, tag.localValue, tag.disabled, -1, tag.type)\n })\n this.updateTags()\n },\n getAutocompleteResults() {\n if (!this.autocompleteResults) {\n const autocompleteResults = this.$refs.promptTagAppend.parentElement.querySelector('.autocompleteResults')\n if (autocompleteResults) {\n this.autocompleteResults = autocompleteResults\n // 增加mousemove事件\n if (this.autocompleteResults.getAttribute('data-mousemove') !== 'true') {\n this.autocompleteResults.setAttribute('data-mousemove', 'true')\n this.autocompleteResults.addEventListener('mousemove', (e) => {\n this.bindAutocompleteResultsClick()\n })\n }\n }\n }\n return this.autocompleteResults\n },\n removeAutocompleteResultsSelected() {\n const autocompleteResults = this.getAutocompleteResults()\n if (!autocompleteResults) return false\n autocompleteResults.querySelectorAll('li').forEach(li => {\n li.classList.remove('selected')\n })\n return true\n },\n getAutocompleteResultsSelected() {\n const autocompleteResults = this.getAutocompleteResults()\n if (!autocompleteResults) return null\n const el = autocompleteResults.querySelector('li.selected')\n if (!el) return null\n return el\n },\n getAutocompleteResultsSelectedText(el = null) {\n if (!el) {\n el = this.getAutocompleteResultsSelected()\n if (!el) return null\n }\n const $acListItem = el.querySelector('.acListItem')\n const text = $acListItem.innerText\n const match = text.match(/\\[(.+?)\\]/)\n if (!match) return null\n return match[1]\n },\n bindAutocompleteResultsClick() {\n this.getAutocompleteResults()\n if (!this.autocompleteResults) return\n // 获取列表\n let lis = this.autocompleteResults.querySelectorAll('li')\n // 给每个li绑定点击事件\n lis.forEach(li => {\n // 判断是否已经绑定过\n if (li.getAttribute('physton-on-clicked') === 'true') return\n li.setAttribute('physton-on-clicked', 'true')\n li.addEventListener('click', () => {\n this.onAutocompleteResultsClicked(li)\n })\n })\n },\n onAutocompleteResultsClicked(li) {\n const text = this.getAutocompleteResultsSelectedText(li)\n setTimeout(() => {\n let tags = this.$refs.promptTagAppend.value.replace(/,\\s*$/, '')\n this.$refs.promptTagAppend.value = ''\n // 去除末尾的逗号\n tags = tags.replace(/\\s*,\\s*$/, '').trim()\n if (common.hasBrackets(tags)) {\n tags = common.replaceBrackets(tags)\n }\n this._appendTag(tags, text)\n this.updateTags()\n }, 300)\n },\n }\n}","export default {\n data() {\n return {\n // 鼠标框选功能\n dropStartX: 0,\n dropStartY: 0,\n dropEndX: 0,\n dropEndY: 0,\n dropOffsetX: 0,\n dropOffsetY: 0,\n dropIsSelecting: false,\n dropIsStart: false,\n dropIsEnd: false,\n dropArea: {\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n },\n dropTags: [],\n dropTimeId: 0,\n }\n },\n methods: {\n _dropOver() {\n this.dropIsSelecting = false\n this.dropIsStart = false\n this.dropIsEnd = false\n this.dropTags = []\n for (let i = 0; i < this.$refs.promptTagsList.children.length; i++) {\n let tag = this.$refs.promptTagsList.children[i]\n if (tag.style.display === 'none') {\n // 删除display:none属性\n tag.style.display = ''\n }\n tag.classList.remove('drop-selected')\n }\n },\n onDropMouseDown(e) {\n if (this.droping) return\n this._dropOver()\n this.dropOffsetX = e.clientX - e.layerX\n this.dropOffsetY = e.clientY - e.layerY\n this.dropStartX = e.clientX - this.dropOffsetX\n this.dropStartY = e.clientY - this.dropOffsetY\n this.dropEndX = e.clientX - this.dropOffsetX\n this.dropEndY = e.clientY - this.dropOffsetY\n this.dropIsStart = true\n },\n onDropMouseMove(e) {\n if (this.dropIsStart) {\n this.dropIsSelecting = true\n this.dropEndX = e.clientX - this.dropOffsetX\n this.dropEndY = e.clientY - this.dropOffsetY\n let left = Math.min(this.dropStartX, this.dropEndX)\n let top = Math.min(this.dropStartY, this.dropEndY)\n let width = Math.abs(this.dropStartX - this.dropEndX)\n let height = Math.abs(this.dropStartY - this.dropEndY)\n // 设置不超过 this.$refs.promptTags 范围\n left = Math.max(left, 0)\n top = Math.max(top, 0)\n width = Math.min(width, this.$refs.promptTags.clientWidth - left)\n height = Math.min(height, this.$refs.promptTags.clientHeight - top)\n\n this.dropArea.top = top\n this.dropArea.left = left\n this.dropArea.width = width\n this.dropArea.height = height\n\n if (this.dropTimeId) clearTimeout(this.dropTimeId)\n this.dropTimeId = setTimeout(this.dropSelectItems, 10)\n }\n },\n dropSelectItems() {\n if (this.dropTimeId) clearTimeout(this.dropTimeId)\n let selectIds = []\n for (let i = 0; i < this.$refs.promptTagsList.children.length; i++) {\n let tag = this.$refs.promptTagsList.children[i]\n if (!tag.classList.contains('prompt-tag')) continue\n let tagLeft = tag.offsetLeft\n let tagTop = tag.offsetTop\n let tagWidth = tag.clientWidth\n let tagHeight = tag.clientHeight\n let tagRight = tagLeft + tagWidth\n let tagBottom = tagTop + tagHeight\n let isSelect = !(tagRight < this.dropArea.left || tagBottom < this.dropArea.top || tagLeft > this.dropArea.left + this.dropArea.width || tagTop > this.dropArea.top + this.dropArea.height)\n if (isSelect) {\n selectIds.push(tag.getAttribute('data-id'))\n tag.classList.add('drop-selected')\n } else {\n tag.classList.remove('drop-selected')\n }\n this.dropTags = selectIds\n }\n },\n onDropMouseUp(e) {\n this.dropIsSelecting = false\n this.dropIsStart = false\n this.dropIsEnd = true\n this.$refs.dropSelectBtns.style.left = this.$refs.dropSelectBox.style.left\n this.$refs.dropSelectBtns.style.top = this.$refs.dropSelectBox.style.top\n },\n _getDropTags() {\n let tags = []\n this.dropTags.forEach(id => {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return\n tags.push(tag)\n })\n return tags\n },\n _getDropIndexes() {\n let indexes = []\n this.dropTags.forEach(id => {\n let index = this.tags.findIndex(tag => tag.id === id)\n if (index === -1) return\n indexes.push(index)\n })\n return indexes\n },\n _getDropTagsEle() {\n let elements = []\n this.dropTags.forEach(id => {\n let tag = this.$refs.promptTagsList.querySelector(`.prompt-tag[data-id=\"${id}\"]`)\n if (!tag) return\n elements.push(tag)\n })\n return elements\n },\n onDropCopy() {\n let tags = this._getDropTags()\n this._dropOver()\n let prompt = this.genPrompt(tags, true)\n this.copy(prompt)\n },\n onDropFavorite() {\n let tags = this._getDropTags()\n this._dropOver()\n let prompt = this.genPrompt(tags, true)\n this.gradioAPI.pushFavorite(this.favoriteKey, tags, prompt, '').then(res => {\n if (res) {\n this.$toastr.success(this.getLang('success'))\n this.$emit('refreshFavorites', this.favoriteKey)\n } else {\n this.$toastr.error(this.getLang('failed'))\n }\n }).catch(error => {\n this.$toastr.error(this.getLang('failed'))\n })\n },\n onDropDisable() {\n let tags = this._getDropTags()\n this._dropOver()\n tags.forEach(tag => {\n tag.disabled = true\n })\n this.updateTags()\n },\n onDropEnable() {\n let tags = this._getDropTags()\n this._dropOver()\n tags.forEach(tag => {\n tag.disabled = false\n })\n this.updateTags()\n },\n onDropDelete() {\n let indexes = this._getDropIndexes()\n this._dropOver()\n indexes.sort((a, b) => b - a)\n indexes.forEach(index => {\n this.tags.splice(index, 1)\n })\n this.updateTags()\n },\n }\n}","var GHOST_ELEMENT_ID = '__autosizeInputGhost'\n\nvar characterEntities = {\n ' ': 'nbsp',\n '<': 'lt',\n '>': 'gt'\n}\nfunction mapSpecialCharacterToCharacterEntity (specialCharacter) {\n return '&' + characterEntities[specialCharacter] + ';'\n}\nfunction escapeSpecialCharacters (string) {\n return string.replace(/\\s|<|>/g, mapSpecialCharacterToCharacterEntity)\n}\n\n// Create `ghostElement`, with inline styles to hide it and ensure that the text is all\n// on a single line.\nfunction createGhostElement () {\n var ghostElement = document.createElement('div')\n ghostElement.id = GHOST_ELEMENT_ID\n ghostElement.style.cssText =\n 'display:inline-block;height:0;overflow:hidden;position:absolute;top:0;visibility:hidden;white-space:nowrap;'\n document.body.appendChild(ghostElement)\n return ghostElement\n}\n\nmodule.exports = function (element, options) {\n var elementStyle = window.getComputedStyle(element)\n // prettier-ignore\n var elementCssText = 'box-sizing:' + elementStyle.boxSizing +\n ';border-left:' + elementStyle.borderLeftWidth + ' solid red' +\n ';border-right:' + elementStyle.borderRightWidth + ' solid red' +\n ';font-family:' + elementStyle.fontFamily +\n ';font-feature-settings:' + elementStyle.fontFeatureSettings +\n ';font-kerning:' + elementStyle.fontKerning +\n ';font-size:' + elementStyle.fontSize +\n ';font-stretch:' + elementStyle.fontStretch +\n ';font-style:' + elementStyle.fontStyle +\n ';font-variant:' + elementStyle.fontVariant +\n ';font-variant-caps:' + elementStyle.fontVariantCaps +\n ';font-variant-ligatures:' + elementStyle.fontVariantLigatures +\n ';font-variant-numeric:' + elementStyle.fontVariantNumeric +\n ';font-weight:' + elementStyle.fontWeight +\n ';letter-spacing:' + elementStyle.letterSpacing +\n ';margin-left:' + elementStyle.marginLeft +\n ';margin-right:' + elementStyle.marginRight +\n ';padding-left:' + elementStyle.paddingLeft +\n ';padding-right:' + elementStyle.paddingRight +\n ';text-indent:' + elementStyle.textIndent +\n ';text-transform:' + elementStyle.textTransform\n\n // Assigns an appropriate width to the given `element` based on its contents.\n function setWidth () {\n var string = element.value || element.getAttribute('placeholder') || ''\n // Check if the `ghostElement` exists. If no, create it.\n var ghostElement =\n document.getElementById(GHOST_ELEMENT_ID) || createGhostElement()\n // Copy all width-affecting styles to the `ghostElement`.\n ghostElement.style.cssText += elementCssText\n ghostElement.innerHTML = escapeSpecialCharacters(string)\n // Copy the width of `ghostElement` to `element`.\n var width = window.getComputedStyle(ghostElement).width\n element.style.width = width\n return width\n }\n\n element.addEventListener('input', setWidth)\n\n var width = setWidth()\n\n // Set `min-width` only if `options.minWidth` was set, and only if the initial\n // width is non-zero.\n if (options && options.minWidth && width !== '0px') {\n element.style.minWidth = width\n }\n\n // Return a function for unbinding the event listener and removing the `ghostElement`.\n return function () {\n element.removeEventListener('input', setWidth)\n var ghostElement = document.getElementById(GHOST_ELEMENT_ID)\n if (ghostElement) {\n ghostElement.parentNode.removeChild(ghostElement)\n }\n }\n}\n","import common from \"@/utils/common\";\nimport autoSizeInput from \"autosize-input\";\n\nexport default {\n data() {\n return {\n tagClickTimeId: 0,\n }\n },\n mounted() {\n common.gradioApp().addEventListener('mousemove', () => {\n this.$refs.highlightPrompt.hide()\n })\n },\n methods: {\n _setTag(tag) {\n if (typeof tag['type'] === 'string' && tag.type === 'wrap') {\n tag.weightNum = 1\n tag.incWeight = 0\n tag.decWeight = 0\n } else {\n tag.weightNum = common.getTagWeightNum(tag.value)\n tag.weightNum = tag.weightNum <= 0 ? 1 : tag.weightNum\n tag.incWeight = common.getTagIncWeight(tag.value)\n tag.decWeight = common.getTagDecWeight(tag.value)\n // const bracket = common.hasBrackets(tag.value)\n }\n this._setTagClass(tag)\n this.$nextTick(() => {\n this._setTagHeight(tag)\n })\n },\n _setTagHeight(tag) {\n setTimeout(() => {\n let $tag = this.$refs['promptTagValue-' + tag.id][0]\n let height = $tag.offsetHeight\n $tag.parentNode.style.height = height + 'px'\n if (this.$refs['promptTagEdit-' + tag.id]) {\n this.$refs['promptTagEdit-' + tag.id][0].style.height = height + 'px'\n }\n if (this.$refs['promptTagDelete-' + tag.id]) {\n this.$refs['promptTagDelete-' + tag.id][0].style.height = height + 'px'\n }\n }, 300)\n },\n _setTagClass(tag) {\n tag.isLora = false\n tag.loraExists = false\n tag.isLyco = false\n tag.lycoExists = false\n tag.isEmbedding = false\n\n if (typeof tag['type'] === 'string' && tag.type === 'wrap') {\n } else {\n // 判断是否lora\n const match = tag.value.match(common.loraRegex)\n if (match) {\n tag.isLora = true\n const loraName = this.loraExists(match[1])\n if (loraName !== false) {\n tag.loraExists = true\n tag.loraName = loraName\n }\n }\n\n if (!tag.isLora) {\n // 判断是否lyco\n const match = tag.value.match(common.lycoRegex)\n if (match) {\n tag.isLyco = true\n const lycoName = this.lycoExists(match[1])\n if (lycoName !== false) {\n tag.lycoExists = true\n tag.lycoName = lycoName\n }\n }\n }\n\n if (!tag.isLora && !tag.isLyco) {\n // 判断是否embedding\n const embeddingName = this.embeddingExists(tag.value)\n if (embeddingName !== false) {\n tag.isEmbedding = true\n tag.value = embeddingName\n }\n }\n }\n\n let classes = ['prompt-tag-value']\n if (tag.isLora) {\n classes.push('lora-tag')\n if (!tag.loraExists) {\n classes.push('lora-not-exists')\n }\n } else if (tag.isLyco) {\n classes.push('lyco-tag')\n if (!tag.lycoExists) {\n classes.push('lyco-not-exists')\n }\n } else if (tag.isEmbedding) {\n classes.push('embedding-tag')\n } else if (this.neg) {\n classes.push('neg-tag')\n }\n\n tag.classes = classes\n return classes\n },\n _setTagById(id, value = null, localValue = null) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n if (value !== null) tag.value = value\n if (localValue !== null) tag.localValue = localValue\n return tag\n },\n _appendTag(value, localValue = '', disabled = false, index = -1, type = 'text') {\n if (value === '') return -1\n // 唯一数:当前时间戳+随机数\n const id = Date.now() + (Math.random() * 1000000).toFixed(0)\n let tag = {\n id,\n value: value === null || value === undefined || value === false ? '' : value,\n localValue: localValue === null || localValue === undefined || localValue === false ? '' : localValue,\n disabled,\n type\n }\n this._setTag(tag)\n // value = common.setLayers(value, 0, '(', ')')\n // value = common.setLayers(value, 0, '[', ']')\n if (index >= 0) {\n // 插入到指定位置\n this.tags.splice(index, 0, tag)\n } else {\n index = this.tags.push(tag)\n }\n this.$nextTick(() => {\n if (this.$refs['promptTagEdit-' + id]) autoSizeInput(this.$refs['promptTagEdit-' + id][0])\n })\n return index - 1\n },\n renderTag(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return ''\n let value = tag.value\n value = common.escapeHtml(value)\n if (tag.incWeight > 0) {\n value = common.setLayers(value, 0, '(', ')')\n value = '
' + value + '
'\n let start = '
' + '('.repeat(tag.incWeight) + '
'\n let end = '
' + ')'.repeat(tag.incWeight) + '
'\n value = start + value + end\n } else if (tag.decWeight > 0) {\n value = common.setLayers(value, 0, '[', ']')\n value = '
' + value + '
'\n let start = '
' + '['.repeat(tag.decWeight) + '
'\n let end = '
' + ']'.repeat(tag.decWeight) + '
'\n value = start + value + end\n } else {\n value = '
' + value + '
'\n }\n return value\n },\n isFavorite(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n if (typeof window.phystonPromptfavorites === 'object') {\n for (const group of window.phystonPromptfavorites) {\n if (group.key !== this.favoriteKey) continue\n for (const favorite of group.list) {\n if (favorite.tags.length !== 1) continue\n if (favorite.tags[0].value === tag.value) return favorite.id\n }\n }\n }\n return false\n },\n onTagMouseEnter(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n tag.isFavorite = this.isFavorite(tag.id)\n\n this.$refs.highlightPrompt.show(tag)\n },\n onTagClick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n if (this.tagClickTimeId) clearTimeout(this.tagClickTimeId)\n this.tagClickTimeId = setTimeout(() => {\n this.editing = {}\n this.editing[tag.id] = true\n this.$forceUpdate()\n this.$nextTick(() => {\n const input = this.$refs['promptTagEdit-' + tag.id][0]\n input.focus()\n input.dispatchEvent(new Event('input'))\n // input.select()\n })\n clearTimeout(this.tagClickTimeId)\n }, 250)\n },\n onTagDblclick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n clearTimeout(this.tagClickTimeId)\n this.onDisabledTagClick(tag.id)\n },\n onTagInputBlur(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n this.editing[tag.id] = false\n },\n onTagInputKeyDown(id, e) {\n if (e.keyCode === 13) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n this.editing[tag.id] = false\n if (tag.value !== e.target.value) {\n tag.value = e.target.value\n this._setTag(tag)\n this.updateTags()\n }\n }\n },\n onTagInputChange(id, e) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n if (tag.value === e.target.value) return\n tag.value = e.target.value\n this._setTag(tag)\n this.updateTags()\n },\n onTagWeightNumChange(id, e) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n e = typeof e === \"number\" || typeof a === \"string\" ? e : e.target.value\n if (tag.weightNum == e) return\n let weightNum = e\n let value = tag.value\n let localValue = tag.localValue\n if (weightNum > 0) {\n if (weightNum === 1 && !this.autoKeepWeightOne) {\n // 如果权重数是1,那么就去掉权重数\n const bracket = common.hasBrackets(value)\n if (bracket[0] === '(' && bracket[1] === ')') {\n // 移除括号\n value = common.setLayers(value, 0, bracket[0], bracket[1])\n if (localValue !== '') localValue = common.setLayers(localValue, 0, bracket[0], bracket[1])\n } else {\n // 不移除括号\n }\n // 移除权重数\n value = value.replace(common.weightNumRegex, '$1')\n if (localValue !== '') localValue = localValue.replace(common.weightNumRegex, '$1')\n } else {\n // 如果原来没有权重数,那么就加上权重数\n if (!common.weightNumRegex.test(value)) {\n // 如果原来有括号,就要加到括号内\n let bracket = common.hasBrackets(value)\n if (bracket) {\n value = common.setLayers(value, 1, bracket[0], bracket[1], ':' + weightNum)\n if (localValue !== '') localValue = common.setLayers(localValue, 1, bracket[0], bracket[1], ':' + weightNum)\n } else {\n value = value + ':' + weightNum\n if (localValue !== '') localValue = localValue + ':' + weightNum\n }\n }\n // 如果原来没有括号() [] {} <>,那么就加上括号\n if (!common.hasBrackets(value)) {\n value = common.setLayers(value, 1, '(', ')')\n if (localValue !== '') localValue = common.setLayers(localValue, 1, '(', ')')\n }\n }\n if (value !== tag.value) {\n tag.value = value\n if (localValue !== '') tag.localValue = localValue\n this._setTag(tag)\n }\n } else {\n // 如果原来的括号是<>,那么最小权重数只能是0.1\n const bracket = common.hasBrackets(value)\n if (bracket[0] === '<' && bracket[1] === '>') {\n weightNum = 0.1\n } else {\n if (this.autoKeepWeightZero) {\n // 保留权重数\n tag.value = value.replace(common.weightNumRegex, '$1:0')\n if (localValue !== '') tag.localValue = tag.localValue.replace(common.weightNumRegex, '$1:0')\n } else {\n // 移除权重数\n tag.value = value.replace(common.weightNumRegex, '$1')\n if (localValue !== '') tag.localValue = tag.localValue.replace(common.weightNumRegex, '$1')\n }\n }\n }\n tag.weightNum = weightNum\n this.updateTags()\n },\n onDeleteTagClick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n let index = this.tags.indexOf(tag)\n this.tags.splice(index, 1)\n this.updateTags()\n },\n onFavoriteTagClick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return false\n let favoriteId = this.isFavorite(tag.id)\n if (!favoriteId) {\n // 收藏\n this.gradioAPI.pushFavorite(this.favoriteKey, [tag], tag.value, tag.localValue === '' ? tag.value : tag.localValue).then(res => {\n if (res) {\n tag.isFavorite = true\n this.$emit('refreshFavorites', this.favoriteKey)\n }\n })\n } else {\n // 取消收藏\n this.gradioAPI.unFavorite(this.favoriteKey, favoriteId).then(res => {\n if (res) {\n tag.isFavorite = false\n this.$emit('refreshFavorites', this.favoriteKey)\n }\n })\n }\n },\n onDisabledTagClick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return\n tag.disabled = !tag.disabled\n this.updateTags()\n },\n onIncWeightClick(id, num) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return\n let value = tag.value\n let localValue = tag.localValue\n value = common.setLayers(value, 0, '[', ']')\n if (localValue !== '') localValue = common.setLayers(localValue, 0, '[', ']')\n let incWeight = tag.incWeight\n incWeight += num\n if (incWeight < 0) incWeight = 0\n tag.incWeight = incWeight\n tag.decWeight = 0\n value = common.setLayers(value, incWeight, '(', ')')\n if (localValue !== '') localValue = common.setLayers(localValue, incWeight, '(', ')')\n tag.value = value\n if (localValue !== '') tag.localValue = localValue\n this.updateTags()\n },\n onDecWeightClick(id, num) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return\n let value = tag.value\n let localValue = tag.localValue\n value = common.setLayers(value, 0, '(', ')')\n if (localValue !== '') localValue = common.setLayers(localValue, 0, '(', ')')\n let decWeight = tag.decWeight\n decWeight += num\n if (decWeight < 0) decWeight = 0\n tag.incWeight = 0\n tag.decWeight = decWeight\n value = common.setLayers(value, decWeight, '[', ']')\n if (localValue !== '') localValue = common.setLayers(localValue, decWeight, '[', ']')\n tag.value = value\n if (localValue !== '') tag.localValue = localValue\n this.updateTags()\n },\n onWrapTagClick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return\n let index = this.tags.indexOf(tag)\n let wrapIndex = this._appendTag(\"\\n\", \"\\n\", false, -1, 'wrap')\n let wrapTag = this.tags[wrapIndex]\n // 移动到当前标签的下面\n this.tags.splice(wrapIndex, 1);\n // 然后将 'c' 插入到 'e' 后面\n this.tags.splice(index + 1, 0, wrapTag);\n this.updateTags()\n },\n onTranslateToLocalClick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return\n let index = this.tags.indexOf(tag)\n if (this.loading[tag.id + '_local']) return\n this.translates([index], true, true).finally(() => {\n this.updateTags()\n })\n },\n onTranslateToEnglishClick(id) {\n let tag = this.tags.find(tag => tag.id === id)\n if (!tag) return\n let index = this.tags.indexOf(tag)\n if (this.loading[tag.id + '_en']) return\n this.translates([index], false, true).finally(() => {\n this.updateTags()\n })\n },\n }\n}","\n","\n","\n\n\n","\n","\n","\n","\n","\n","\n","\n","\n","\n","\n\n","/*!\n * jQuery JavaScript Library v3.6.4\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2023-03-08T15:28Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.4\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.10\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2023-02-14\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trleadingCombinator = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t// Make sure the the `:has()` argument is parsed unforgivingly.\n\t// We include `*` in the test to detect buggy implementations that are\n\t// _selectively_ forgiving (specifically when the list includes at least\n\t// one valid selector).\n\t// Note that we treat complete lack of support for `:has()` as if it were\n\t// spec-compliant support, which is fine because use of `:has()` in such\n\t// environments will fail in the qSA path and fall back to jQuery traversal\n\t// anyway.\n\tsupport.cssHas = assert( function() {\n\t\ttry {\n\t\t\tdocument.querySelector( \":has(*,:jqfake)\" );\n\t\t\treturn false;\n\t\t} catch ( e ) {\n\t\t\treturn true;\n\t\t}\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\tif ( !support.cssHas ) {\n\n\t\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t\t// Our regular `try-catch` mechanism fails to detect natively-unsupported\n\t\t// pseudo-classes inside `:has()` (such as `:has(:contains(\"Foo\"))`)\n\t\t// in browsers that parse the `:has()` argument as a forgiving selector list.\n\t\t// https://drafts.csswg.org/selectors/#relational now requires the argument\n\t\t// to be parsed unforgivingly, but browsers have not yet fully adjusted.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\n\t\t\t// Support: IE <9 only\n\t\t\t// IE doesn't have `contains` on `document` so we need to check for\n\t\t\t// `documentElement` presence.\n\t\t\t// We need to fall back to `a` when `documentElement` is missing\n\t\t\t// as `ownerDocument` of elements within `