mirror of
https://github.com/SilenceLurker/ST-Amily2-Chat-Optimisation.git
synced 2026-06-06 11:15:50 +00:00
2 lines
57 KiB
JavaScript
2 lines
57 KiB
JavaScript
const _0x373225=_0x4c40;(function(_0x45d635,_0x52df80){const _0x2711f3=_0x4c40,_0x4d7555=_0x45d635();while(!![]){try{const _0x479196=-parseInt(_0x2711f3(0x18a))/0x1+parseInt(_0x2711f3(0x103))/0x2*(-parseInt(_0x2711f3(0x1fe))/0x3)+-parseInt(_0x2711f3(0x17b))/0x4+parseInt(_0x2711f3(0x12d))/0x5+-parseInt(_0x2711f3(0x166))/0x6*(parseInt(_0x2711f3(0x122))/0x7)+parseInt(_0x2711f3(0x192))/0x8*(-parseInt(_0x2711f3(0x15a))/0x9)+-parseInt(_0x2711f3(0x1aa))/0xa*(-parseInt(_0x2711f3(0x13d))/0xb);if(_0x479196===_0x52df80)break;else _0x4d7555['push'](_0x4d7555['shift']());}catch(_0x114787){_0x4d7555['push'](_0x4d7555['shift']());}}}(_0x162f,0x7b19f));import{getContext,extension_settings}from'/scripts/extensions.js';import{saveChat,saveSettingsDebounced}from'/script.js';import{log}from'./logger.js';import{fillWithSecondaryApi}from'./secondary-filler.js';import{getChatPiece,saveChatDebounced}from'../../utils/utils.js';import{extensionName}from'../../utils/settings.js';import{DEFAULT_AI_RULE_TEMPLATE,DEFAULT_AI_FLOW_TEMPLATE}from'./settings.js';import{renderTables}from'../../ui/table-bindings.js';import{updateOrInsertTableInChat}from'../../ui/message-table-renderer.js';const TABLE_DATA_KEY=_0x373225(0x13c);let currentTablesState=null,highlightedCells=new Set(),updatedTables=new Set();export function addHighlight(_0xec6508,_0x20f3cf,_0xc55595){const _0x7e5a16=_0x373225,_0x4606da=_0xec6508+'-'+_0x20f3cf+'-'+_0xc55595;highlightedCells[_0x7e5a16(0x189)](_0x4606da);}export function getHighlights(){return highlightedCells;}export function clearHighlights(){const _0x14d4ef=_0x373225;highlightedCells[_0x14d4ef(0x1d3)]>0x0&&(highlightedCells[_0x14d4ef(0x1a1)](),log('已清除所有单元格高亮标记。',_0x14d4ef(0x14e)));}export function getUpdatedTables(){return updatedTables;}export function clearUpdatedTables(){const _0x1713dc=_0x373225;updatedTables[_0x1713dc(0x1d3)]>0x0&&(updatedTables[_0x1713dc(0x1a1)](),log(_0x1713dc(0x1e0),_0x1713dc(0x14e)));}export function setMemoryState(_0x3cb563){currentTablesState=_0x3cb563;}function _0x162f(){const _0xd3f53f=['rowStatuses','删除列失败:在表格\x20','\x20中操作。','isArray','push','warn','【触发条件】只能在<user>明确表示要移除或废弃某条设定时,才能删除对应行。','size','状态回退失败,已中止操作。','回退并重新填表操作完成。','\x22\x20的表格已存在。','Amily2-','执行AI指令:\x20insertRow(tableIndex=','batch_filler_rule_template','columnWidths','【触发条件】任何时候,如果此表格的行数超过一行,必须删除旧的行,只保留最新、最准确的一行。','tables','【触发条件】当以下任一情况发生时,必须更新此行:\x0a1.\x20时间发生显著跳跃(例如,\x27几小时后\x27、\x27第二天\x27)。\x0a2.\x20角色从一个地点移动到另一个地点。\x0a3.\x20场景中关键角色的出入导致在场人员发生变化。','导入的预设已强制写入最新消息并立即保存。','body','已清除所有表格的更新标记。','amily2-force-ui-reload','object','未找到任何表格数据或全局预设,使用默认模板。','导入成功','无法找到可锚定的消息或保存失败,新表格可能不会被持久化!',']\x20已被成功废黜。','创建失败','every','【说明】:\x0a','\x20条消息加载表格状态...','some','global_table_preset','这是一个新创建的表格。','\x20的列。','\x22\x20已更新内存状态。','getPrototypeOf','createElement','number','无法找到可锚定的消息或保存失败,清空操作可能不会被持久化!','\x20已在边界。','未在AI返回内容中找到有效的\x20<Amily2Edit>\x20指令块。','mes','全局预设已设置!新聊天将默认使用此预设。','below','download','UI操作\x20\x22',']\x20末尾新增一行。',')行,请结合剧情缩减至(',')超出规定(','1866TIdLsG','无法找到可锚定的消息或保存失败,删除操作可能不会被持久化!','导入全局预设失败:\x20',']\x20的顺序已调整。','【核心作用】此表格用于精确追踪故事发生的即时时空背景,确保时间与空间的连续性。它应该始终只包含一行,代表当前的“镜头”位置。\x0a【字段详解】\x0a-\x20日期:\x20格式为\x27YYYY-MM-DD\x27。若日期未知,请根据上下文合理推断或设定一个初始日期,如\x27大夏3年-9月-10日\x27。\x0a-\x20时段:\x20严格遵循规定(凌晨:0-5时;早晨:5-8时;上午:8-11时;中午:11-13时;下午:13-16时;傍晚:16-19时;晚上:19-24时)。\x0a-\x20时间:\x20格式为\x27HH:MM\x27。若时间未知,可根据时段估算,如\x2708:30\x27。\x0a-\x20地点:\x20描述当前场景发生的具体位置,应尽可能精确,例如\x27XX街的咖啡馆\x27而非\x27城里\x27。\x0a-\x20此地角色:\x20列出当前场景中所有在场且参与互动的主要角色,用\x27/\x27分隔。','file','”已更新为“','rule_delete','filter','batch_filler_flow_template','【触发条件】当任务列表超过10行时,优先删除最早的、已经“已完成”且与当前剧情关联度最低的任务。如果存在内容完全重复的任务,应删除。','886Jlohav',',\x20rowIndex=','执行AI指令时发生错误:\x20','AI\x20指令更新了表格\x20[','【当前(','【全局预设导入】\x0a\x0a这将把选定的预设设置为所有新聊天的默认表格。\x0a\x0a此操作将覆盖任何已存在的全局预设,是否确定?','【触发条件】当一个物品被彻底摧毁、消耗完毕或永久失去其特殊意义时,可以删除。','【删除】:\x20','无法创建表格:名称不能为空。','trim','rowIndex,','stringify','聊天记录不足,无法执行回退操作。','导入的预设中缺少指令模板字段,模板将不会被更新。','所有表格的剧情内容已清空。','表格\x20\x22','无法移动列:索引\x20','UI已更新以显示回退后的状态。',')列,字符超出规定(','填表完成','readAsText','\x20行。','重要原因','新列\x201','charLimitRule','\x20行位置插入了新行。','onload','\x20(索引\x20','input','rows',')第(','6889127DtLHLb','全局预设已清除,新聊天将使用默认模板。','正在尝试从第\x20','已成功创建新表格:[','runner','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20const\x20{\x20insertRow,\x20deleteRow,\x20updateRow\x20}\x20=\x20runner;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',')\x20的第\x20','】已开始下载。','accept',')行以下,但切莫完全删除。】','\x20条消息中找到基准表格数据。','1582890nzrWVY','version','AI指令意图更新不存在的行\x20(rowIndex:\x20','length','插入了新列。','【核心作用】专门用于记录主角<user>掌握的各种技能、魔法、被动能力或特殊专长。\x0a【字段详解】\x0a-\x20技能名:\x20技能的正式名称。\x0a-\x20技能效果:\x20清晰、简洁地描述该技能使用时产生的具体效果、消耗和限制条件。','【触发条件】当一个角色被确认永久性死亡(非假死或失踪),且其存在不再对后续剧情有直接影响时,可以删除该行。','onchange','replace','【触发条件】当一个已知技能的效果发生进化、变异或被添加了新的限制/效果时(例如,技能升级),必须更新其“技能效果”描述。','导入的表格数据格式不正确:\x20','全局预设已被清除。','】已成功导出。','AI指令错误:尝试在不存在的表格索引\x20','【触发条件】当一个物品被明确赋予了特殊意义(如被赠予、在关键事件中扮演重要角色)或展示出独特功能时,应为其创建条目。','amily2_tables_data','234817NYVYjj','\x20的表格。','全局预设已成功导入并保存到扩展设置中。','技能名','normal','用户取消了清除全局预设的操作。','【核心作用】此表格记录了来自<user>的、超越故事本身的“元指令”或世界观设定,拥有最高解释权。内容应被严格遵守,禁止AI自行修改。\x0a【字段详解】\x0a-\x20类型:\x20指令的分类,如\x27世界观设定\x27、\x27剧情走向要求\x27、\x27角色行为禁令\x27。\x0a-\x20具体描述:\x20完整、准确地记录<user>提出的具体要求。','表格不存在。','Amily2-Table-Preset-v3.0-separated_templates','split','【核心作用】此表格是角色关系和状态的核心数据库,用于记录所有在故事中出现的重要角色的详细信息。\x0a【字段详解】\x0a-\x20角色名:\x20角色的唯一标识。\x0a-\x20外貌:\x20描述五官、发型、发色、肤色等面部特征。\x0a-\x20身形:\x20描述身高、体型、肌肉状况、特殊身体标记(如伤疤)等。\x0a-\x20衣着:\x20描述角色当前或标志性的穿着,包括服装、配饰等。\x0a-\x20性格:\x20概括角色的核心性格特质,使用1-3个关键词,如\x27勇敢/鲁莽/忠诚\x27。\x0a-\x20身份:\x20角色的社会背景或出身,如\x27贵族后裔\x27、\x27流浪者\x27。\x0a-\x20职业:\x20角色赖以谋生的工作或职责,如\x27佣兵\x27、\x27学者\x27。\x0a-\x20与<user>关系:\x20描述该角色与主角<user>之间的社会或情感关系,如\x27盟友\x27、\x27导师\x27、\x27敌人\x27。\x0a-\x20爱好:\x20角色的兴趣和消遣活动。\x0a-\x20住所:\x20角色的常住地。\x0a-\x20其他重要信息:\x20记录任何不属于以上类别但对角色至关重要的信息,如特殊能力、过去的经历等。','【清除全局预设】\x0a\x0a您确定要清除已设置的全局预设吗?\x0a\x0a清除后,新聊天将恢复使用扩展内置的默认表格模板。','createObjectURL','”已向','...]','constructor','操作已取消。','info','appendChild','无需清除,当前未设置任何全局预设。','重命名失败:表格不存在。','已根据AI的指示成功更新表格!','无法移动表格:索引\x20','pending-deletion','parse','Amily2-Table-Preset-v2.0-clean','执行失败','Amily2-Table-Preset-v2.0-full','\x20行已标记为待删除。','90189WsluXB','\x20行移动到第\x20','type','无法找到可锚定的消息或保存失败,顺序调整可能不会被持久化!','batchFillerFlowTemplate','toString','具体描述',']\x20的列“','状态回退成功,准备重新填表...','文件格式无效或缺少版本号/表格数据。','已成功将回退后的状态保存至最新消息。','【触发条件】如果发现表格中存在两个描述完全相同的重复技能,应删除其中一个。如果记录了非<user>的技能,应立即删除。','6iCjRWE','角色名','物品栏','无法清空:当前表格状态为空。','charLimitRules','target','\x20条表格操作指令...','纯净预设','batchFillerRuleTemplate','rowLimitRule','【触发条件】当以下情况发生时,应添加新行:\x0a1.\x20角色接下一个明确的、有目标的委托或命令。\x0a2.\x20角色们达成一个具体的、需要在未来执行的约定。\x0a3.\x20角色为自己设定一个长期的、关键性的目标。','回退状态保存失败,操作中止。','join','技能效果','click',',\x20data=','当前没有设置全局预设。','columnIndex','success','表格状态已准备写入消息\x20[','时空栏','2298796NEtxPp',']\x20的规则已更新。','limit','完整备份','其他重要信息','aiTemplate','技能栏','加载全局预设失败:\x20','开始时间/结束时间','缺少状态或目标消息,无法保存。','【触发条件】当<user>在故事中首次成功施展或习得一个全新的、表格中未记录的技能时,必须添加。','预设已成功导入并应用。','设定栏','导入预设失败:\x20','add','894610IQtMEn','\x0a\x20\x20\x20\x20\x20\x20\x20\x20','headers','rule_update','【触发条件】当一个有名有姓的角色首次出现,并与<user>或当前剧情发生有意义的互动时,必须为其创建新的一行。','任务栏','aiFlowTemplate','error','296PVxRgA','成功删除了表格\x20','插入行失败:找不到索引为\x20','fill','message',']\x20的第\x20','rule_add','note','重新填表失败:\x20','操作完成','indexOf','confirm','无法导出:当前表格状态为空。','重命名失败','aiRuleTemplate','clear','【触发条件】只能在<user>明确表示要修改某条设定时,才能更新对应行的描述。','href','回退重填过程中发生错误:\x20','splice','名为\x20\x22','result','removeChild','【触发条件】当<user>通过括号、旁白或其他明确的“第四面墙”方式,提出关于故事背景、规则或未来走向的指令时,必须记录于此。','1540XRKBSe','【触发条件】当角色的任何信息发生持久性或关键性变化时,必须更新对应单元格。例如:\x0a1.\x20外貌/身形/衣着发生永久性改变(如断肢、换上新装备)。\x0a2.\x20性格因重大事件而扭转。\x0a3.\x20身份或职业发生变更(如继承王位、被解雇)。\x0a4.\x20与<user>的关系发生根本性转变(如从敌人变为盟友)。','新列\x20','injectionFlowTemplate','物品名','forEach',')行(','执行AI指令:\x20deleteRow(tableIndex=','files','amily2_ai_template','.json','AI返回内容为空,无法更新表格。','left','表格\x20[','操作成功','extra','revokeObjectURL','从预设模板生成默认表格...','【触发条件】当故事开始,且此表格为空时,必须立即根据初始场景创建第一行。','【增加】:\x20','准备执行从AI返回的\x20','无法回退:聊天记录不足。','name','废黜表格后的状态已强制写入最新消息并立即保存。','\x0a*\x20','导入失败:','AI指令块为空,无需执行任何操作。','map','无法创建表格:名为\x20\x22','【警告】\x0a\x0a导入操作将完全覆盖您当前的AI指令模板和所有表格(包括结构和内容)。\x0a\x0a此操作不可逆,是否确定要继续?',']\x20的表头“','chat',')字限制,请进行缩减。】','正在执行回退并重新填表...'];_0x162f=function(){return _0xd3f53f;};return _0x162f();}export function getMemoryState(){return currentTablesState;}const defaultTemplate={'tables':[{'name':_0x373225(0x17a),'headers':['日期','时段','时间','地点','此地角色'],'note':_0x373225(0x202),'rule_add':_0x373225(0x1bc),'rule_delete':_0x373225(0x1db),'rule_update':_0x373225(0x1dd),'charLimitRules':{},'rowLimitRule':0x1,'rows':[]},{'name':'角色栏','headers':[_0x373225(0x167),'外貌','身形','衣着','性格','身份','职业','与<user>关系','爱好','住所',_0x373225(0x17f)],'note':_0x373225(0x147),'rule_add':_0x373225(0x18e),'rule_delete':_0x373225(0x133),'rule_update':_0x373225(0x1ab),'charLimitRules':{'10':0x1e},'rowLimitRule':0x0,'rows':[]},{'name':_0x373225(0x18f),'headers':['任务名','类型','详情','状态','执行者','地点',_0x373225(0x183),'结果'],'note':'【核心作用】追踪故事中的主要情节线、目标和挑战。只记录对剧情发展有重大影响的“任务”,忽略日常琐事。\x0a【字段详解】\x0a-\x20任务名:\x20任务的简洁概括,如\x27寻找失落的神器\x27。\x0a-\x20类型:\x20任务的分类,如\x27主线\x27、\x27支线\x27、\x27个人\x27、\x27约定\x27。\x0a-\x20详情:\x20对任务目标和背景的简要描述。\x0a-\x20状态:\x20任务的当前进展,如\x27未开始\x27、\x27进行中\x27、\x27已完成\x27、\x27已失败\x27、\x27已取消\x27。\x0a-\x20执行者:\x20负责完成此任务的角色名。\x0a-\x20地点:\x20任务关键环节发生的地点。\x0a-\x20开始时间/结束时间:\x20记录任务的起止时间,格式\x27YYYY-MM-DD\x27,若未结束则结束时间留空。\x0a-\x20结果:\x20任务完成或失败后的最终结果。','rule_add':_0x373225(0x170),'rule_delete':_0x373225(0x102),'rule_update':'【触发条件】当任务的“状态”发生任何变化时,必须更新。例如,从\x27进行中\x27变为\x27已完成\x27。当任务的“详情”或“结果”有新的关键信息补充时,也应更新。','charLimitRules':{},'rowLimitRule':0xa,'rows':[]},{'name':_0x373225(0x168),'headers':[_0x373225(0x1ae),'类型','详情','状态','拥有者',_0x373225(0x119)],'note':'【核心作用】记录那些在故事中具有特殊功能、背景或情感价值的关键物品。普通物品不应记录。\x0a【字段详解】\x0a-\x20物品名:\x20物品的名称。\x0a-\x20类型:\x20物品的分类,如\x27武器\x27、\x27道具\x27、\x27信物\x27、\x27关键物品\x27。\x0a-\x20详情:\x20描述物品的外观、材质和已知功能。\x0a-\x20状态:\x20物品的当前状况,如\x27完好\x27、\x27破损\x27、\x27能量耗尽\x27。\x0a-\x20拥有者:\x20当前持有该物品的角色名。\x0a-\x20重要原因:\x20解释该物品为何重要,例如\x27是解开谜题的钥匙\x27或\x27是母亲的遗物\x27。','rule_add':_0x373225(0x13b),'rule_delete':_0x373225(0x109),'rule_update':'【触发条件】当物品的“状态”(如被损坏)、“拥有者”(如被转交或被盗)或“详情”(如发现了新功能)发生变化时,必须更新。','charLimitRules':{},'rowLimitRule':0x0,'rows':[]},{'name':_0x373225(0x181),'headers':[_0x373225(0x140),_0x373225(0x173)],'note':_0x373225(0x132),'rule_add':_0x373225(0x185),'rule_delete':_0x373225(0x165),'rule_update':_0x373225(0x136),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]},{'name':_0x373225(0x187),'headers':['类型',_0x373225(0x160)],'note':_0x373225(0x143),'rule_add':_0x373225(0x1a9),'rule_delete':_0x373225(0x1d2),'rule_update':_0x373225(0x1a2),'charLimitRules':{},'rowLimitRule':0x0,'rows':[]}]};function getDefaultTables(){const _0x4a6b89=_0x373225;log(_0x4a6b89(0x1bb),_0x4a6b89(0x14e));const _0x936259=JSON[_0x4a6b89(0x155)](JSON[_0x4a6b89(0x10e)](defaultTemplate[_0x4a6b89(0x1dc)]));return _0x936259['forEach'](_0x105556=>{const _0x441803=_0x4a6b89;_0x105556[_0x441803(0x11b)]={'columnIndex':-0x1,'limit':0x0},_0x105556[_0x441803(0x16f)]=0x0,_0x105556[_0x441803(0x1da)]=[];}),_0x936259;}export function loadTables(_0x2d26d5=-0x1){const _0x17ad1c=_0x373225,_0xde1ec3=getContext();if(_0xde1ec3&&_0xde1ec3[_0x17ad1c(0x1c9)]&&_0xde1ec3[_0x17ad1c(0x1c9)][_0x17ad1c(0x130)]>0x0){const _0xc61b3f=_0x2d26d5===-0x1?_0xde1ec3['chat'][_0x17ad1c(0x130)]-0x1:_0x2d26d5-0x1;for(let _0x3d537d=_0xc61b3f;_0x3d537d>=0x0;_0x3d537d--){const _0x5a35bf=_0xde1ec3[_0x17ad1c(0x1c9)][_0x3d537d];if(_0x5a35bf[_0x17ad1c(0x1b9)]&&_0x5a35bf[_0x17ad1c(0x1b9)][TABLE_DATA_KEY]){log('在第\x20'+_0x3d537d+_0x17ad1c(0x12c),'info');let _0x18938a=JSON['parse'](JSON[_0x17ad1c(0x10e)](_0x5a35bf[_0x17ad1c(0x1b9)][TABLE_DATA_KEY]));return _0x18938a['forEach'](_0x153a73=>{const _0x51697e=_0x17ad1c;if(_0x153a73[_0x51697e(0x199)]===undefined)_0x153a73[_0x51697e(0x199)]='无';if(_0x153a73[_0x51697e(0x198)]===undefined)_0x153a73[_0x51697e(0x198)]='允许';if(_0x153a73[_0x51697e(0x205)]===undefined)_0x153a73['rule_delete']='允许';if(_0x153a73[_0x51697e(0x18d)]===undefined)_0x153a73[_0x51697e(0x18d)]='允许';_0x153a73[_0x51697e(0x11b)]&&!_0x153a73[_0x51697e(0x16a)]&&(_0x153a73[_0x51697e(0x16a)]={},_0x153a73[_0x51697e(0x11b)][_0x51697e(0x177)]!==-0x1&&_0x153a73[_0x51697e(0x11b)][_0x51697e(0x17d)]>0x0&&(_0x153a73[_0x51697e(0x16a)][_0x153a73[_0x51697e(0x11b)][_0x51697e(0x177)]]=_0x153a73[_0x51697e(0x11b)][_0x51697e(0x17d)]));delete _0x153a73[_0x51697e(0x11b)];if(_0x153a73[_0x51697e(0x16f)]===undefined)_0x153a73[_0x51697e(0x16f)]=0x0;if(_0x153a73['columnWidths']===undefined)_0x153a73['columnWidths']=[];!_0x153a73[_0x51697e(0x1cc)]&&(_0x153a73['rowStatuses']=Array(_0x153a73[_0x51697e(0x120)]['length'])[_0x51697e(0x195)]('normal'));}),currentTablesState=_0x18938a,currentTablesState;}}}if(extension_settings[extensionName]?.[_0x17ad1c(0x1ec)]){log('未在聊天记录中找到表格,正在加载全局预设...',_0x17ad1c(0x14e));try{const _0x2f22f0=extension_settings[extensionName][_0x17ad1c(0x1ec)];return currentTablesState=JSON['parse'](JSON[_0x17ad1c(0x10e)](_0x2f22f0[_0x17ad1c(0x1dc)])),_0x2f22f0['batchFillerRuleTemplate']!==undefined&&saveBatchFillerRuleTemplate(_0x2f22f0[_0x17ad1c(0x16e)]),_0x2f22f0[_0x17ad1c(0x15e)]!==undefined&&saveBatchFillerFlowTemplate(_0x2f22f0[_0x17ad1c(0x15e)]),currentTablesState;}catch(_0x37ea60){log(_0x17ad1c(0x182)+_0x37ea60[_0x17ad1c(0x196)],_0x17ad1c(0x191));}}return log(_0x17ad1c(0x1e3),_0x17ad1c(0x14e)),currentTablesState=getDefaultTables(),currentTablesState;}export function saveStateToMessage(_0x13becb,_0x5ede24){const _0x597d3f=_0x373225;if(!_0x13becb||!_0x5ede24)return log(_0x597d3f(0x184),_0x597d3f(0x191)),![];return!_0x5ede24[_0x597d3f(0x1b9)]&&(_0x5ede24[_0x597d3f(0x1b9)]={}),_0x5ede24['extra'][TABLE_DATA_KEY]=JSON[_0x597d3f(0x155)](JSON[_0x597d3f(0x10e)](_0x13becb)),log(_0x597d3f(0x179)+_0x5ede24[_0x597d3f(0x1f6)]['substring'](0x0,0x14)+_0x597d3f(0x14b),_0x597d3f(0x14e)),!![];}export function saveTables(_0x5dfd7e='未知操作'){const _0x27fe7c=_0x373225;return log(_0x27fe7c(0x1fa)+_0x5dfd7e+_0x27fe7c(0x1ef),_0x27fe7c(0x14e)),!![];}export function deleteColumn(_0x55b1d9,_0x3dcf64){const _0x3c1d8b=_0x373225,_0x21f590=getMemoryState();if(!_0x21f590[_0x55b1d9]||_0x3dcf64<0x0||_0x3dcf64>=_0x21f590[_0x55b1d9][_0x3c1d8b(0x18c)][_0x3c1d8b(0x130)]){log(_0x3c1d8b(0x1cd)+_0x55b1d9+'\x20中找不到索引为\x20'+_0x3dcf64+_0x3c1d8b(0x1ee),_0x3c1d8b(0x191));return;}_0x21f590[_0x55b1d9][_0x3c1d8b(0x18c)][_0x3c1d8b(0x1a5)](_0x3dcf64,0x1),_0x21f590[_0x55b1d9]['rows'][_0x3c1d8b(0x1af)](_0x57a3a1=>{const _0x197d5a=_0x3c1d8b;_0x57a3a1[_0x197d5a(0x130)]>_0x3dcf64&&_0x57a3a1[_0x197d5a(0x1a5)](_0x3dcf64,0x1);}),_0x21f590[_0x55b1d9][_0x3c1d8b(0x1da)]&&_0x21f590[_0x55b1d9][_0x3c1d8b(0x1da)][_0x3c1d8b(0x130)]>_0x3dcf64&&_0x21f590[_0x55b1d9][_0x3c1d8b(0x1da)][_0x3c1d8b(0x1a5)](_0x3dcf64,0x1),log(_0x3c1d8b(0x193)+_0x55b1d9+'\x20的第\x20'+(_0x3dcf64+0x1)+'\x20列。',_0x3c1d8b(0x178)),saveTables(_0x21f590);}export function moveRow(_0x1ad4f0,_0x540f2d,_0x29006c){const _0x4fbf60=_0x373225,_0x47579c=getMemoryState(),_0x465cb0=_0x47579c[_0x1ad4f0];if(!_0x465cb0||_0x540f2d<0x0||_0x540f2d>=_0x465cb0[_0x4fbf60(0x120)]['length'])return;const _0x259dd7=_0x29006c==='up'?_0x540f2d-0x1:_0x540f2d+0x1;if(_0x259dd7<0x0||_0x259dd7>=_0x465cb0[_0x4fbf60(0x120)][_0x4fbf60(0x130)])return;const [_0x339ea4]=_0x465cb0[_0x4fbf60(0x120)][_0x4fbf60(0x1a5)](_0x540f2d,0x1);_0x465cb0[_0x4fbf60(0x120)][_0x4fbf60(0x1a5)](_0x259dd7,0x0,_0x339ea4);if(_0x465cb0['rowStatuses']&&_0x465cb0[_0x4fbf60(0x1cc)]['length']===_0x465cb0[_0x4fbf60(0x120)]['length']+0x1){const [_0x11baf6]=_0x465cb0[_0x4fbf60(0x1cc)][_0x4fbf60(0x1a5)](_0x540f2d,0x1);_0x465cb0['rowStatuses']['splice'](_0x259dd7,0x0,_0x11baf6);}log('成功将表格\x20'+_0x1ad4f0+'\x20的第\x20'+(_0x540f2d+0x1)+_0x4fbf60(0x15b)+(_0x259dd7+0x1)+_0x4fbf60(0x118),_0x4fbf60(0x178)),saveTables(_0x47579c);}export function insertRow(_0x295512,_0x1170cd,_0x2498db=_0x373225(0x1f8)){const _0x1845ab=_0x373225,_0x4a7158=getMemoryState(),_0xf8e519=_0x4a7158[_0x295512];if(!_0xf8e519){log(_0x1845ab(0x194)+_0x295512+_0x1845ab(0x13e),_0x1845ab(0x191));return;}let _0x3ab778;typeof _0x1170cd===_0x1845ab(0x1f2)?_0x3ab778=_0x2498db==='above'?_0x1170cd:_0x1170cd+0x1:_0x3ab778=_0xf8e519[_0x1845ab(0x120)][_0x1845ab(0x130)];if(_0x3ab778<0x0)_0x3ab778=0x0;if(_0x3ab778>_0xf8e519[_0x1845ab(0x120)][_0x1845ab(0x130)])_0x3ab778=_0xf8e519['rows']['length'];const _0xa27ec=new Array(_0xf8e519[_0x1845ab(0x18c)][_0x1845ab(0x130)])[_0x1845ab(0x195)]('');if(typeof _0x1170cd===_0x1845ab(0x1e2)&&_0x1170cd!==null)for(const _0x44e688 in _0x1170cd){const _0x4f381b=parseInt(_0x44e688,0xa);!isNaN(_0x4f381b)&&_0x4f381b<_0xa27ec['length']&&(_0xa27ec[_0x4f381b]=_0x1170cd[_0x44e688],addHighlight(_0x295512,_0x3ab778,_0x4f381b));}_0xf8e519[_0x1845ab(0x120)][_0x1845ab(0x1a5)](_0x3ab778,0x0,_0xa27ec);if(!_0xf8e519[_0x1845ab(0x1cc)])_0xf8e519[_0x1845ab(0x1cc)]=Array(_0xf8e519[_0x1845ab(0x120)][_0x1845ab(0x130)])[_0x1845ab(0x195)](_0x1845ab(0x141));_0xf8e519[_0x1845ab(0x1cc)][_0x1845ab(0x1a5)](_0x3ab778,0x0,'normal'),updatedTables[_0x1845ab(0x189)](_0x295512),log('成功在表格\x20'+_0xf8e519[_0x1845ab(0x1c0)]+_0x1845ab(0x11e)+_0x295512+_0x1845ab(0x128)+(_0x3ab778+0x1)+_0x1845ab(0x11c),_0x1845ab(0x178));const _0x3abcf6=getContext();if(_0x3abcf6[_0x1845ab(0x1c9)]&&_0x3abcf6[_0x1845ab(0x1c9)][_0x1845ab(0x130)]>0x0){const _0x142d09=_0x3abcf6[_0x1845ab(0x1c9)][_0x3abcf6[_0x1845ab(0x1c9)]['length']-0x1];if(saveStateToMessage(_0x4a7158,_0x142d09)){saveChat();return;}}saveChatDebounced();}export function addRow(_0x2f8220){const _0x353f6e=_0x373225;if(!currentTablesState||!currentTablesState[_0x2f8220])return;const _0x2ac5e2=currentTablesState[_0x2f8220],_0x2796a0=_0x2ac5e2[_0x353f6e(0x18c)][_0x353f6e(0x130)],_0x34480d=Array(_0x2796a0)[_0x353f6e(0x195)]('');_0x2ac5e2['rows'][_0x353f6e(0x1d0)](_0x34480d);if(!_0x2ac5e2[_0x353f6e(0x1cc)])_0x2ac5e2[_0x353f6e(0x1cc)]=Array(_0x2ac5e2[_0x353f6e(0x120)][_0x353f6e(0x130)])[_0x353f6e(0x195)](_0x353f6e(0x141));_0x2ac5e2['rowStatuses'][_0x353f6e(0x1d0)](_0x353f6e(0x141)),updatedTables['add'](_0x2f8220);const _0x3abda9=_0x353f6e(0x1b7)+_0x2ac5e2[_0x353f6e(0x1c0)]+']\x20新增了一行。';log(_0x3abda9,_0x353f6e(0x14e));const _0x2d6a50=getContext();if(_0x2d6a50['chat']&&_0x2d6a50[_0x353f6e(0x1c9)][_0x353f6e(0x130)]>0x0){const _0x16b69e=_0x2d6a50['chat'][_0x2d6a50[_0x353f6e(0x1c9)][_0x353f6e(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x16b69e)){saveChat();return;}}saveChatDebounced();}export function addColumn(_0x5be419){const _0x57f62e=_0x373225;if(!currentTablesState||!currentTablesState[_0x5be419])return;const _0x3b7998=currentTablesState[_0x5be419],_0x2d9c7b=_0x57f62e(0x1ac)+(_0x3b7998['headers']['length']+0x1);_0x3b7998[_0x57f62e(0x18c)]['push'](_0x2d9c7b),_0x3b7998[_0x57f62e(0x120)][_0x57f62e(0x1af)](_0x1e9730=>_0x1e9730[_0x57f62e(0x1d0)](''));if(!_0x3b7998['columnWidths'])_0x3b7998['columnWidths']=[];_0x3b7998[_0x57f62e(0x1da)][_0x57f62e(0x1d0)](null);const _0x7eb1aa=_0x57f62e(0x1b7)+_0x3b7998[_0x57f62e(0x1c0)]+']\x20新增了一列。';log(_0x7eb1aa,_0x57f62e(0x14e));const _0x54ee9b=getContext();if(_0x54ee9b[_0x57f62e(0x1c9)]&&_0x54ee9b[_0x57f62e(0x1c9)]['length']>0x0){const _0x5a28b6=_0x54ee9b['chat'][_0x54ee9b['chat']['length']-0x1];if(saveStateToMessage(currentTablesState,_0x5a28b6)){saveChat();return;}}saveChatDebounced();}export function updateHeader(_0x2226f3,_0x1bbbb4,_0x3a1ec1){const _0x2003a3=_0x373225;if(!currentTablesState||!currentTablesState[_0x2226f3]||currentTablesState[_0x2226f3]['headers'][_0x1bbbb4]===undefined)return;const _0x2a4bc8=currentTablesState[_0x2226f3][_0x2003a3(0x1c0)],_0x18f017=currentTablesState[_0x2226f3][_0x2003a3(0x18c)][_0x1bbbb4];currentTablesState[_0x2226f3][_0x2003a3(0x18c)][_0x1bbbb4]=_0x3a1ec1;const _0x16d627='表格\x20['+_0x2a4bc8+_0x2003a3(0x1c8)+_0x18f017+_0x2003a3(0x204)+_0x3a1ec1+'”。';log(_0x16d627,_0x2003a3(0x14e));const _0x1a7529=getContext();if(_0x1a7529[_0x2003a3(0x1c9)]&&_0x1a7529[_0x2003a3(0x1c9)][_0x2003a3(0x130)]>0x0){const _0x337bd2=_0x1a7529[_0x2003a3(0x1c9)][_0x1a7529[_0x2003a3(0x1c9)][_0x2003a3(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x337bd2)){saveChat();return;}}saveChatDebounced();}export async function deleteRow(_0x3a2d9b,_0x988576){const _0x21960e=_0x373225,_0x447db7=currentTablesState?.[_0x3a2d9b];if(!_0x447db7||!_0x447db7[_0x21960e(0x120)][_0x988576])return;!_0x447db7[_0x21960e(0x1cc)]&&(_0x447db7[_0x21960e(0x1cc)]=Array(_0x447db7[_0x21960e(0x120)][_0x21960e(0x130)])[_0x21960e(0x195)](_0x21960e(0x141)));_0x447db7[_0x21960e(0x1cc)][_0x988576]=_0x21960e(0x154),updatedTables['add'](_0x3a2d9b);const _0x5efed5='表格\x20['+_0x447db7['name']+_0x21960e(0x197)+(_0x988576+0x1)+_0x21960e(0x159);log(_0x5efed5,_0x21960e(0x14e));const _0x598313=getContext();if(_0x598313['chat']?.[_0x21960e(0x130)]>0x0){const _0x5e183e=_0x598313['chat'][_0x598313[_0x21960e(0x1c9)][_0x21960e(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x5e183e)){await saveChat(),renderTables();return;}}await saveChatDebounced(),renderTables();}export async function restoreRow(_0x5c1349,_0x56db5a){const _0x41f34d=_0x373225,_0x35522f=currentTablesState?.[_0x5c1349];if(!_0x35522f||!_0x35522f[_0x41f34d(0x120)][_0x56db5a]||!_0x35522f['rowStatuses'])return;_0x35522f[_0x41f34d(0x1cc)][_0x56db5a]=_0x41f34d(0x141),updatedTables[_0x41f34d(0x189)](_0x5c1349);const _0x1970b5=_0x41f34d(0x1b7)+_0x35522f[_0x41f34d(0x1c0)]+_0x41f34d(0x197)+(_0x56db5a+0x1)+'\x20行已恢复。';log(_0x1970b5,_0x41f34d(0x14e));const _0x3118bd=getContext();if(_0x3118bd[_0x41f34d(0x1c9)]?.['length']>0x0){const _0x465d0f=_0x3118bd['chat'][_0x3118bd[_0x41f34d(0x1c9)][_0x41f34d(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x465d0f)){await saveChat(),renderTables();return;}}await saveChatDebounced(),renderTables();}export function commitPendingDeletions(){const _0x297d9f=_0x373225;if(!currentTablesState)return![];let _0xb5528b=0x0;currentTablesState[_0x297d9f(0x1af)]((_0x51fa24,_0x10dbaa)=>{const _0x2e5095=_0x297d9f;if(!_0x51fa24[_0x2e5095(0x1cc)]||_0x51fa24[_0x2e5095(0x1cc)][_0x2e5095(0x130)]===0x0)return;let _0x10658a=![];for(let _0x40fa53=_0x51fa24[_0x2e5095(0x120)][_0x2e5095(0x130)]-0x1;_0x40fa53>=0x0;_0x40fa53--){_0x51fa24[_0x2e5095(0x1cc)][_0x40fa53]===_0x2e5095(0x154)&&(_0x51fa24[_0x2e5095(0x120)][_0x2e5095(0x1a5)](_0x40fa53,0x1),_0x51fa24[_0x2e5095(0x1cc)]['splice'](_0x40fa53,0x1),_0xb5528b++,_0x10658a=!![]);}_0x10658a&&updatedTables[_0x2e5095(0x189)](_0x10dbaa);});if(_0xb5528b>0x0)return log('已提交并永久删除了\x20'+_0xb5528b+_0x297d9f(0x118),_0x297d9f(0x14e)),!![];return![];}export function insertColumn(_0x2969ec,_0x497230,_0x30e7ce){const _0x25a858=_0x373225;if(!currentTablesState||!currentTablesState[_0x2969ec])return;const _0x4be73b=currentTablesState[_0x2969ec],_0x4ac88d=_0x30e7ce==='left'?_0x497230:_0x497230+0x1,_0x3abb4a='新列';_0x4be73b[_0x25a858(0x18c)][_0x25a858(0x1a5)](_0x4ac88d,0x0,_0x3abb4a),_0x4be73b[_0x25a858(0x120)][_0x25a858(0x1af)](_0x3c663a=>_0x3c663a['splice'](_0x4ac88d,0x0,''));if(!_0x4be73b[_0x25a858(0x1da)])_0x4be73b[_0x25a858(0x1da)]=[];_0x4be73b[_0x25a858(0x1da)][_0x25a858(0x1a5)](_0x4ac88d,0x0,null);const _0x5bce12=_0x25a858(0x1b7)+_0x4be73b[_0x25a858(0x1c0)]+']\x20在第\x20'+(_0x497230+0x1)+'\x20列的'+(_0x30e7ce===_0x25a858(0x1b6)?'左侧':'右侧')+_0x25a858(0x131);log(_0x5bce12,_0x25a858(0x14e));const _0x57f0f8=getContext();if(_0x57f0f8[_0x25a858(0x1c9)]&&_0x57f0f8[_0x25a858(0x1c9)][_0x25a858(0x130)]>0x0){const _0x194404=_0x57f0f8[_0x25a858(0x1c9)][_0x57f0f8[_0x25a858(0x1c9)][_0x25a858(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x194404)){saveChat();return;}}saveChatDebounced();}export function moveColumn(_0x5e0612,_0x486de2,_0x5bb4f2){const _0x551479=_0x373225;if(!currentTablesState||!currentTablesState[_0x5e0612])return;const _0xfbdc80=currentTablesState[_0x5e0612],_0x4de219=_0xfbdc80[_0x551479(0x18c)],_0x4ff5f4=_0xfbdc80[_0x551479(0x120)],_0x45b007=_0x5bb4f2===_0x551479(0x1b6)?_0x486de2-0x1:_0x486de2+0x1;if(_0x45b007<0x0||_0x45b007>=_0x4de219[_0x551479(0x130)]){log(_0x551479(0x113)+_0x486de2+_0x551479(0x1f4),_0x551479(0x1d1));return;}const [_0x16cc01]=_0x4de219['splice'](_0x486de2,0x1);_0x4de219[_0x551479(0x1a5)](_0x45b007,0x0,_0x16cc01),_0x4ff5f4[_0x551479(0x1af)](_0x197523=>{const _0x3f5c1c=_0x551479,[_0x4e3d98]=_0x197523[_0x3f5c1c(0x1a5)](_0x486de2,0x1);_0x197523[_0x3f5c1c(0x1a5)](_0x45b007,0x0,_0x4e3d98);});if(_0xfbdc80[_0x551479(0x1da)]&&_0xfbdc80[_0x551479(0x1da)][_0x551479(0x130)]>_0x486de2){const [_0xe3375e]=_0xfbdc80[_0x551479(0x1da)][_0x551479(0x1a5)](_0x486de2,0x1);_0xfbdc80[_0x551479(0x1da)][_0x551479(0x1a5)](_0x45b007,0x0,_0xe3375e);}const _0x49819c=_0x551479(0x1b7)+_0xfbdc80[_0x551479(0x1c0)]+_0x551479(0x161)+_0x16cc01+_0x551479(0x14a)+(_0x5bb4f2===_0x551479(0x1b6)?'左':'右')+'移动。';log(_0x49819c,_0x551479(0x14e));const _0x2b8a7b=getContext();if(_0x2b8a7b[_0x551479(0x1c9)]&&_0x2b8a7b[_0x551479(0x1c9)][_0x551479(0x130)]>0x0){const _0x12595f=_0x2b8a7b[_0x551479(0x1c9)][_0x2b8a7b['chat'][_0x551479(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x12595f)){saveChat();return;}}saveChatDebounced();}export function deleteTable(_0x7a9bd1){const _0x195e99=_0x373225;if(!currentTablesState||!currentTablesState[_0x7a9bd1])return;const _0x2537a2=currentTablesState[_0x7a9bd1][_0x195e99(0x1c0)];currentTablesState[_0x195e99(0x1a5)](_0x7a9bd1,0x1);const _0xbe312a=_0x195e99(0x1b7)+_0x2537a2+_0x195e99(0x1e6);log(_0xbe312a,'success');const _0x2c98d2=getContext();if(_0x2c98d2[_0x195e99(0x1c9)]&&_0x2c98d2[_0x195e99(0x1c9)][_0x195e99(0x130)]>0x0){const _0x2408a4=_0x2c98d2[_0x195e99(0x1c9)][_0x2c98d2['chat'][_0x195e99(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x2408a4)){saveChat(),log(_0x195e99(0x1c1),'success');return;}}log(_0x195e99(0x1ff),'error'),saveChatDebounced();}export function addTable(_0x15f10b){const _0x4afac7=_0x373225;if(!_0x15f10b||!_0x15f10b[_0x4afac7(0x10c)]()){log(_0x4afac7(0x10b),_0x4afac7(0x191)),toastr[_0x4afac7(0x191)]('表格名称不能为空。','创建失败');return;}!currentTablesState&&loadTables();if(currentTablesState[_0x4afac7(0x1eb)](_0x46b4a0=>_0x46b4a0[_0x4afac7(0x1c0)]===_0x15f10b[_0x4afac7(0x10c)]())){log(_0x4afac7(0x1c6)+_0x15f10b+_0x4afac7(0x1d6),_0x4afac7(0x191)),toastr[_0x4afac7(0x191)](_0x4afac7(0x1a6)+_0x15f10b+'\x22\x20的表格已存在。',_0x4afac7(0x1e7));return;}const _0x4895a6={'name':_0x15f10b[_0x4afac7(0x10c)](),'headers':[_0x4afac7(0x11a)],'rows':[],'rowStatuses':[],'columnWidths':[],'note':_0x4afac7(0x1ed),'rule_add':'允许','rule_delete':'允许','rule_update':'允许','charLimitRules':{},'rowLimitRule':0x0};currentTablesState[_0x4afac7(0x1d0)](_0x4895a6);const _0x416ce9=_0x4afac7(0x125)+_0x15f10b[_0x4afac7(0x10c)]()+']。';log(_0x416ce9,_0x4afac7(0x178));const _0x354f16=getContext();if(_0x354f16[_0x4afac7(0x1c9)]&&_0x354f16['chat']['length']>0x0){const _0x5dbad6=_0x354f16[_0x4afac7(0x1c9)][_0x354f16['chat'][_0x4afac7(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x5dbad6)){saveChat(),log('新表格状态已强制写入最新消息并立即保存。','success');return;}}log(_0x4afac7(0x1e5),_0x4afac7(0x191)),saveChatDebounced();}export function renameTable(_0x1a1824,_0x209595){const _0x55f484=_0x373225;if(!currentTablesState||!currentTablesState[_0x1a1824]){log(_0x55f484(0x151),_0x55f484(0x191)),toastr['error'](_0x55f484(0x144),'重命名失败');return;}const _0x3750ec=_0x209595['trim']();if(!_0x3750ec){log('重命名失败:名称不能为空。','error'),toastr[_0x55f484(0x191)]('表格名称不能为空。',_0x55f484(0x19f));return;}if(currentTablesState['some']((_0x16088a,_0x7ab834)=>_0x7ab834!==_0x1a1824&&_0x16088a[_0x55f484(0x1c0)]===_0x3750ec)){log('重命名失败:名为\x20\x22'+_0x3750ec+_0x55f484(0x1d6),_0x55f484(0x191)),toastr[_0x55f484(0x191)](_0x55f484(0x1a6)+_0x3750ec+'\x22\x20的表格已存在。',_0x55f484(0x19f));return;}const _0x24b43f=currentTablesState[_0x1a1824]['name'];currentTablesState[_0x1a1824][_0x55f484(0x1c0)]=_0x3750ec,log(_0x55f484(0x112)+_0x24b43f+'\x22\x20已重命名为\x20\x22'+_0x3750ec+'\x22。',_0x55f484(0x178));const _0x2ba99d=getContext();if(_0x2ba99d[_0x55f484(0x1c9)]&&_0x2ba99d['chat'][_0x55f484(0x130)]>0x0){const _0x1d7878=_0x2ba99d['chat'][_0x2ba99d[_0x55f484(0x1c9)][_0x55f484(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x1d7878)){saveChat();return;}}saveChatDebounced();}export function moveTable(_0x3f7152,_0x5f4f9b){const _0x5c59b8=_0x373225;if(!currentTablesState||!currentTablesState[_0x3f7152])return;const _0x2728b8=_0x5f4f9b==='up'?_0x3f7152-0x1:_0x3f7152+0x1;if(_0x2728b8<0x0||_0x2728b8>=currentTablesState[_0x5c59b8(0x130)]){log(_0x5c59b8(0x153)+_0x3f7152+_0x5c59b8(0x1f4),_0x5c59b8(0x1d1));return;}const _0x251bd2=currentTablesState[_0x3f7152];currentTablesState[_0x3f7152]=currentTablesState[_0x2728b8],currentTablesState[_0x2728b8]=_0x251bd2;const _0x3c1cdb='表格\x20['+_0x251bd2[_0x5c59b8(0x1c0)]+_0x5c59b8(0x201);log(_0x3c1cdb,'success');const _0x59a33c=getContext();if(_0x59a33c[_0x5c59b8(0x1c9)]&&_0x59a33c[_0x5c59b8(0x1c9)][_0x5c59b8(0x130)]>0x0){const _0x13f4ea=_0x59a33c['chat'][_0x59a33c[_0x5c59b8(0x1c9)]['length']-0x1];if(saveStateToMessage(currentTablesState,_0x13f4ea)){saveChat(),log('表格顺序调整后的状态已强制写入最新消息并立即保存。',_0x5c59b8(0x178));return;}}log(_0x5c59b8(0x15d),'error'),saveChatDebounced();}export function updateTableRules(_0x2be7e3,_0xad0f1f){const _0x54012b=_0x373225;if(!currentTablesState||!currentTablesState[_0x2be7e3])return;const _0x2e2be5=currentTablesState[_0x2be7e3];_0x2e2be5[_0x54012b(0x199)]=_0xad0f1f[_0x54012b(0x199)],_0x2e2be5[_0x54012b(0x198)]=_0xad0f1f[_0x54012b(0x198)],_0x2e2be5['rule_delete']=_0xad0f1f[_0x54012b(0x205)],_0x2e2be5[_0x54012b(0x18d)]=_0xad0f1f[_0x54012b(0x18d)],_0x2e2be5[_0x54012b(0x16a)]=_0xad0f1f['charLimitRules'],_0x2e2be5[_0x54012b(0x16f)]=_0xad0f1f[_0x54012b(0x16f)],delete _0x2e2be5[_0x54012b(0x11b)];const _0x1997ca='表格\x20['+_0x2e2be5[_0x54012b(0x1c0)]+_0x54012b(0x17c);log(_0x1997ca,_0x54012b(0x14e));const _0x3713ad=getContext();if(_0x3713ad[_0x54012b(0x1c9)]&&_0x3713ad[_0x54012b(0x1c9)]['length']>0x0){const _0x3bd6b2=_0x3713ad['chat'][_0x3713ad[_0x54012b(0x1c9)][_0x54012b(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x3bd6b2)){saveChat();return;}}saveChatDebounced();}export function updateRow(_0x5337d1,_0x3bce00,_0x1105fd){const _0x1fbcfd=_0x373225;if(!currentTablesState||!currentTablesState[_0x5337d1]){log(_0x1fbcfd(0x13a)+_0x5337d1+_0x1fbcfd(0x1ce),'error');return;}const _0x433c26=currentTablesState[_0x5337d1];if(_0x3bce00>=_0x433c26[_0x1fbcfd(0x120)][_0x1fbcfd(0x130)]){log(_0x1fbcfd(0x12f)+_0x3bce00+'),已智能转换为在表格\x20['+_0x433c26[_0x1fbcfd(0x1c0)]+_0x1fbcfd(0x1fb),_0x1fbcfd(0x1d1)),insertRow(_0x5337d1,_0x1105fd);return;}const _0x4c46ff=_0x433c26[_0x1fbcfd(0x120)][_0x3bce00];for(const _0x24f69a in _0x1105fd){const _0x2b7530=parseInt(_0x24f69a,0xa);_0x2b7530<_0x4c46ff[_0x1fbcfd(0x130)]&&(_0x4c46ff[_0x2b7530]=_0x1105fd[_0x2b7530],addHighlight(_0x5337d1,_0x3bce00,_0x2b7530));}updatedTables['add'](_0x5337d1);const _0x28c364=_0x1fbcfd(0x106)+_0x433c26['name']+_0x1fbcfd(0x197)+(_0x3bce00+0x1)+_0x1fbcfd(0x118);log(_0x28c364,_0x1fbcfd(0x14e));const _0x564a4a=getContext();if(_0x564a4a[_0x1fbcfd(0x1c9)]&&_0x564a4a[_0x1fbcfd(0x1c9)][_0x1fbcfd(0x130)]>0x0){const _0x2807bc=_0x564a4a[_0x1fbcfd(0x1c9)][_0x564a4a[_0x1fbcfd(0x1c9)][_0x1fbcfd(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x2807bc)){saveChat();return;}}saveChatDebounced();}export function clearAllTables(){const _0x5cce5c=_0x373225;if(!currentTablesState){log(_0x5cce5c(0x169),_0x5cce5c(0x191));return;}currentTablesState[_0x5cce5c(0x1af)]((_0x1fa511,_0x467623)=>{const _0x3e09aa=_0x5cce5c;_0x1fa511['rows'][_0x3e09aa(0x130)]>0x0&&updatedTables[_0x3e09aa(0x189)](_0x467623),_0x1fa511[_0x3e09aa(0x120)]=[],_0x1fa511[_0x3e09aa(0x1cc)]=[];}),log('所有表格的行数据已在内存中清空。',_0x5cce5c(0x1d1));const _0x6040b5=getContext();if(_0x6040b5[_0x5cce5c(0x1c9)]&&_0x6040b5['chat'][_0x5cce5c(0x130)]>0x0){const _0x5b4891=_0x6040b5['chat'][_0x6040b5[_0x5cce5c(0x1c9)][_0x5cce5c(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0x5b4891)){saveChat(),log('清空行数据后的状态已强制写入最新消息并立即保存。',_0x5cce5c(0x178)),toastr[_0x5cce5c(0x178)](_0x5cce5c(0x111),_0x5cce5c(0x19b));return;}}log(_0x5cce5c(0x1f3),_0x5cce5c(0x191)),saveChatDebounced();}function checkTableRules(_0x657002){const _0x5bd2ad=_0x373225;let _0x4c8b39=[];_0x657002[_0x5bd2ad(0x16f)]&&_0x657002[_0x5bd2ad(0x16f)]>0x0&&_0x657002[_0x5bd2ad(0x120)][_0x5bd2ad(0x130)]>_0x657002[_0x5bd2ad(0x16f)]&&_0x4c8b39[_0x5bd2ad(0x1d0)](_0x5bd2ad(0x107)+_0x657002[_0x5bd2ad(0x1c0)]+_0x5bd2ad(0x1fd)+_0x657002['rowLimitRule']+_0x5bd2ad(0x1fc)+_0x657002['rowLimitRule']+_0x5bd2ad(0x12b));const _0x3a7cb5=_0x657002['charLimitRules']||{};for(const _0x4d2ec1 in _0x3a7cb5){const _0x2da230=parseInt(_0x4d2ec1,0xa),_0x37f154=_0x3a7cb5[_0x2da230];if(_0x37f154>0x0&&_0x2da230>=0x0&&_0x2da230<_0x657002[_0x5bd2ad(0x18c)][_0x5bd2ad(0x130)]){const _0x2a4155=_0x657002[_0x5bd2ad(0x18c)][_0x2da230],_0x5a4efa=[];_0x657002[_0x5bd2ad(0x120)]['forEach']((_0x2b14f8,_0x32f6ee)=>{const _0x2eaa0b=_0x5bd2ad;if(_0x657002[_0x2eaa0b(0x1cc)]&&_0x657002[_0x2eaa0b(0x1cc)][_0x32f6ee]===_0x2eaa0b(0x154))return;const _0x21b6c6=_0x2b14f8[_0x2da230]||'';_0x21b6c6[_0x2eaa0b(0x130)]>_0x37f154&&_0x5a4efa[_0x2eaa0b(0x1d0)](_0x32f6ee);});if(_0x5a4efa[_0x5bd2ad(0x130)]>0x0){const _0x2f5a64=_0x5a4efa[_0x5bd2ad(0x172)]('、');_0x4c8b39['push'](_0x5bd2ad(0x107)+_0x657002[_0x5bd2ad(0x1c0)]+_0x5bd2ad(0x121)+_0x2f5a64+_0x5bd2ad(0x1b0)+_0x2a4155+_0x5bd2ad(0x115)+_0x37f154+_0x5bd2ad(0x1ca));}}}return _0x4c8b39[_0x5bd2ad(0x172)]('\x0a');}export function convertTablesToCsvString(){const _0x3ba957=_0x373225;!currentTablesState&&loadTables();if(!currentTablesState)return'';let _0x3a4154='';return currentTablesState[_0x3ba957(0x1af)]((_0x360180,_0x8b7521)=>{const _0x3c3880=_0x3ba957;_0x3a4154+=_0x3c3880(0x1c2)+_0x8b7521+':'+_0x360180['name']+'\x0a',_0x3a4154+=_0x3c3880(0x1e9)+(_0x360180[_0x3c3880(0x199)]||'无')+'\x0a';const _0x30033f=_0x360180[_0x3c3880(0x1c0)]['replace'](/\s/g,'')+'内容';_0x3a4154+='<'+_0x30033f+'>\x0a';const _0x237579=_0x360180[_0x3c3880(0x18c)]['map']((_0x17e539,_0x2dcaca)=>_0x2dcaca+':'+_0x17e539)['join'](',');_0x3a4154+=_0x3c3880(0x10d)+_0x237579+'\x0a';_0x360180['rows']['length']===0x0||_0x360180[_0x3c3880(0x120)]['every']((_0x4c2d6d,_0xe92f22)=>_0x360180['rowStatuses']&&_0x360180[_0x3c3880(0x1cc)][_0xe92f22]===_0x3c3880(0x154))?_0x3a4154+='(该表当前内容为空)\x0a':_0x360180['rows'][_0x3c3880(0x1af)]((_0x30ec44,_0x2cad0f)=>{const _0x3be45e=_0x3c3880;if(_0x360180[_0x3be45e(0x1cc)]&&_0x360180[_0x3be45e(0x1cc)][_0x2cad0f]==='pending-deletion')return;if(Array['isArray'](_0x30ec44)){const _0x1e7f20=_0x30ec44[_0x3be45e(0x1c5)](_0x504172=>{const _0x27059e=_0x3be45e;return _0x504172===null||_0x504172===undefined||_0x504172===''?'未知':_0x504172[_0x27059e(0x15f)]();})[_0x3be45e(0x172)](',');_0x3a4154+=_0x2cad0f+','+_0x1e7f20+'\x0a';}});const _0x480e7f=checkTableRules(_0x360180);_0x480e7f&&(_0x3a4154+=_0x480e7f+'\x0a'),_0x3a4154+='</'+_0x30033f+'>\x0a',_0x3a4154+=_0x3c3880(0x1bd)+(_0x360180[_0x3c3880(0x198)]||'允许')+'\x0a',_0x3a4154+=_0x3c3880(0x10a)+(_0x360180[_0x3c3880(0x205)]||'允许')+'\x0a',_0x3a4154+='【修改】:\x20'+(_0x360180['rule_update']||'允许')+'\x0a',_0x8b7521<currentTablesState[_0x3c3880(0x130)]-0x1&&(_0x3a4154+='\x0a---\x0a');}),_0x3a4154;}export function convertTablesToCsvStringForContentOnly(){const _0x2e82cb=_0x373225,_0x4d7554=getMemoryState();if(!_0x4d7554||_0x4d7554[_0x2e82cb(0x130)]===0x0)return'';let _0x29d7c4='';return _0x4d7554[_0x2e82cb(0x1af)](_0x5e6b1b=>{const _0x5deb97=_0x2e82cb;_0x29d7c4+='\x0a<'+_0x5e6b1b[_0x5deb97(0x1c0)]+'>\x0a';const _0x1ee771=_0x5e6b1b[_0x5deb97(0x18c)][_0x5deb97(0x1c5)]((_0x384ffc,_0x5248af)=>String['fromCharCode'](0x41+_0x5248af)+':'+_0x384ffc)[_0x5deb97(0x172)](',');_0x29d7c4+=_0x1ee771+'\x0a';const _0x551152=_0x5e6b1b['rows']['filter']((_0x43aca1,_0x1149a1)=>!_0x5e6b1b['rowStatuses']||_0x5e6b1b[_0x5deb97(0x1cc)][_0x1149a1]!=='pending-deletion');_0x551152[_0x5deb97(0x130)]>0x0?_0x551152[_0x5deb97(0x1af)]((_0xbca138,_0x25672f)=>{const _0x4089b0=_0x5deb97;if(Array['isArray'](_0xbca138)){const _0x670cdf=_0xbca138[_0x4089b0(0x172)](','),_0x2b3f92=_0x5e6b1b[_0x4089b0(0x120)][_0x4089b0(0x19c)](_0xbca138);_0x29d7c4+=_0x2b3f92+0x1+':'+_0x670cdf+'\x0a';}}):_0x29d7c4+='(该表当前内容为空)\x0a',_0x29d7c4+='</'+_0x5e6b1b[_0x5deb97(0x1c0)]+'>\x0a';}),_0x29d7c4['trim']();}loadTables();export function getBatchFillerRuleTemplate(){return extension_settings[extensionName]?.['batch_filler_rule_template']??DEFAULT_AI_RULE_TEMPLATE;}export function saveBatchFillerRuleTemplate(_0x4872b2){const _0x41ec1a=_0x373225;extension_settings[extensionName][_0x41ec1a(0x1d9)]=_0x4872b2,saveSettingsDebounced();}export function getBatchFillerFlowTemplate(){const _0x5b08d9=_0x373225;return extension_settings[extensionName]?.[_0x5b08d9(0x101)]??DEFAULT_AI_FLOW_TEMPLATE;}export function saveBatchFillerFlowTemplate(_0x1751ba){const _0x5673c6=_0x373225;extension_settings[extensionName][_0x5673c6(0x101)]=_0x1751ba,saveSettingsDebounced();}export function getAiFlowTemplateForInjection(){const _0x53b302=_0x373225;return extension_settings[extensionName]?.[_0x53b302(0x1b3)]??DEFAULT_AI_FLOW_TEMPLATE;}export async function updateTableFromText(_0x4a3629){const _0x545e83=_0x373225;if(!_0x4a3629){log(_0x545e83(0x1b5),_0x545e83(0x1d1));return;}const _0x2cab68=_0x4a3629['match'](/<Amily2Edit>([\s\S]*?)<\/Amily2Edit>/);if(!_0x2cab68||!_0x2cab68[0x1]){log(_0x545e83(0x1f5),_0x545e83(0x1d1));return;}let _0xe3bf4=_0x2cab68[0x1][_0x545e83(0x135)](/<!--|-->/g,'')[_0x545e83(0x10c)]();if(!_0xe3bf4){log(_0x545e83(0x1c4),_0x545e83(0x14e));return;}const _0x472275=_0xe3bf4[_0x545e83(0x146)]('\x0a')[_0x545e83(0x206)](_0x1ec43f=>_0x1ec43f[_0x545e83(0x10c)]()!=='');log(_0x545e83(0x1be)+_0x472275['length']+_0x545e83(0x16c),_0x545e83(0x14e));const _0x354dbf={'insertRow':(_0x19b0db,_0x410929)=>{const _0x2cb702=_0x545e83;log(_0x2cb702(0x1d8)+_0x19b0db+',\x20data='+JSON['stringify'](_0x410929)+')',_0x2cb702(0x14e)),insertRow(_0x19b0db,_0x410929);},'deleteRow':(_0x1d204b,_0x8b3706)=>{const _0x3e6a3d=_0x545e83;log(_0x3e6a3d(0x1b1)+_0x1d204b+',\x20rowIndex='+_0x8b3706+')',_0x3e6a3d(0x14e)),deleteRow(_0x1d204b,_0x8b3706);},'updateRow':(_0x3ec711,_0xd15ecb,_0x55f0c9)=>{const _0x2f42e2=_0x545e83;log('执行AI指令:\x20updateRow(tableIndex='+_0x3ec711+_0x2f42e2(0x104)+_0xd15ecb+_0x2f42e2(0x175)+JSON[_0x2f42e2(0x10e)](_0x55f0c9)+')','info'),updateRow(_0x3ec711,_0xd15ecb,_0x55f0c9);}};try{const _0x495c5a=Object[_0x545e83(0x1f0)](async function(){})[_0x545e83(0x14c)],_0x149dd2=new _0x495c5a(_0x545e83(0x126),_0x545e83(0x127)+_0xe3bf4+_0x545e83(0x18b));await _0x149dd2(_0x354dbf),log('所有AI指令已成功执行完毕。',_0x545e83(0x178)),toastr[_0x545e83(0x178)](_0x545e83(0x152),_0x545e83(0x116)),document['dispatchEvent'](new CustomEvent(_0x545e83(0x1e1)));}catch(_0x7b3204){log(_0x545e83(0x105)+_0x7b3204[_0x545e83(0x196)],_0x545e83(0x191)),toastr[_0x545e83(0x191)]('执行AI指令时出错:\x20'+_0x7b3204[_0x545e83(0x196)],_0x545e83(0x157));}}export function saveAiTemplate(_0x827724){const _0x17d5c5=_0x373225;extension_settings[extensionName][_0x17d5c5(0x1b3)]=_0x827724,saveSettingsDebounced();}function _0x4c40(_0x1d17c2,_0x59ba13){const _0x162f90=_0x162f();return _0x4c40=function(_0x4c4064,_0x49c98d){_0x4c4064=_0x4c4064-0x101;let _0x908124=_0x162f90[_0x4c4064];return _0x908124;},_0x4c40(_0x1d17c2,_0x59ba13);}export function getAiTemplate(){return getAiFlowTemplateForInjection();}function exportPresetBase(_0x42f269=![]){const _0x42acbc=_0x373225;if(!currentTablesState){log(_0x42acbc(0x19e),'error'),toastr[_0x42acbc(0x191)]('没有可导出的表格数据。');return;}let _0x361a1f,_0x3c84d9,_0xe418bb;_0x42f269?(_0x361a1f=JSON[_0x42acbc(0x155)](JSON[_0x42acbc(0x10e)](currentTablesState)),_0x3c84d9=_0x42acbc(0x158),_0xe418bb=_0x42acbc(0x17e)):(_0x361a1f=currentTablesState[_0x42acbc(0x1c5)](_0x3b8732=>({'name':_0x3b8732[_0x42acbc(0x1c0)],'headers':_0x3b8732[_0x42acbc(0x18c)],'columnWidths':_0x3b8732[_0x42acbc(0x1da)]||[],'note':_0x3b8732[_0x42acbc(0x199)],'rule_add':_0x3b8732['rule_add'],'rule_delete':_0x3b8732[_0x42acbc(0x205)],'rule_update':_0x3b8732[_0x42acbc(0x18d)],'charLimitRules':_0x3b8732['charLimitRules']||{},'rowLimitRule':_0x3b8732[_0x42acbc(0x16f)]||0x0,'rows':[],'rowStatuses':[]})),_0x3c84d9=_0x42acbc(0x156),_0xe418bb=_0x42acbc(0x16d));const _0x78a6b4={'version':_0x42acbc(0x145),'batchFillerRuleTemplate':getBatchFillerRuleTemplate(),'batchFillerFlowTemplate':getBatchFillerFlowTemplate(),'tables':_0x361a1f},_0x57d598=new Blob([JSON['stringify'](_0x78a6b4,null,0x2)],{'type':'application/json'}),_0x5f3dea=URL[_0x42acbc(0x149)](_0x57d598),_0x17551a=document['createElement']('a');_0x17551a[_0x42acbc(0x1a3)]=_0x5f3dea,_0x17551a[_0x42acbc(0x1f9)]=_0x42acbc(0x1d7)+_0xe418bb+'-'+new Date()['toISOString']()['slice'](0x0,0xa)+'.json',document[_0x42acbc(0x1df)][_0x42acbc(0x14f)](_0x17551a),_0x17551a[_0x42acbc(0x174)](),document[_0x42acbc(0x1df)][_0x42acbc(0x1a8)](_0x17551a),URL[_0x42acbc(0x1ba)](_0x5f3dea),log('【'+_0xe418bb+_0x42acbc(0x139),_0x42acbc(0x178)),toastr[_0x42acbc(0x178)]('【'+_0xe418bb+_0x42acbc(0x129),'导出成功');}export function exportPreset(){exportPresetBase(![]);}export function exportPresetFull(){exportPresetBase(!![]);}export function importPreset(_0x25de51){const _0x493983=_0x373225,_0x372acd=document[_0x493983(0x1f1)](_0x493983(0x11f));_0x372acd[_0x493983(0x15c)]=_0x493983(0x203),_0x372acd[_0x493983(0x12a)]=_0x493983(0x1b4),_0x372acd['onchange']=_0x5aa18d=>{const _0x2f9252=_0x493983,_0x1c2adf=_0x5aa18d[_0x2f9252(0x16b)]['files'][0x0];if(!_0x1c2adf)return;const _0x3259ac=new FileReader();_0x3259ac['onload']=_0x3914d7=>{const _0x8e6e78=_0x2f9252;try{const _0x368b71=JSON[_0x8e6e78(0x155)](_0x3914d7[_0x8e6e78(0x16b)][_0x8e6e78(0x1a7)]);if(!_0x368b71[_0x8e6e78(0x12e)]||!Array[_0x8e6e78(0x1cf)](_0x368b71['tables']))throw new Error('文件格式无效或缺少版本号/表格数据。');const _0x170f61=window['confirm'](_0x8e6e78(0x1c7));if(!_0x170f61){log('用户取消了导入操作。',_0x8e6e78(0x14e)),toastr[_0x8e6e78(0x14e)]('导入操作已取消。');return;}if(_0x368b71[_0x8e6e78(0x12e)]===_0x8e6e78(0x145))saveBatchFillerRuleTemplate(_0x368b71[_0x8e6e78(0x16e)]||''),saveBatchFillerFlowTemplate(_0x368b71['batchFillerFlowTemplate']||''),saveAiTemplate(_0x368b71[_0x8e6e78(0x1ad)]||'');else{if(_0x368b71[_0x8e6e78(0x1a0)]!==undefined&&_0x368b71[_0x8e6e78(0x190)]!==undefined)saveBatchFillerRuleTemplate(_0x368b71[_0x8e6e78(0x1a0)]||''),saveBatchFillerFlowTemplate(_0x368b71[_0x8e6e78(0x190)]||''),saveAiTemplate(_0x368b71[_0x8e6e78(0x190)]||'');else _0x368b71[_0x8e6e78(0x180)]?(saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x368b71[_0x8e6e78(0x180)]||''),saveAiTemplate(_0x368b71[_0x8e6e78(0x180)]||'')):log(_0x8e6e78(0x110),_0x8e6e78(0x1d1));}const _0x1a61f9=_0x368b71[_0x8e6e78(0x1dc)];_0x1a61f9['forEach'](_0x168c4b=>{const _0x2fbfff=_0x8e6e78;if(_0x168c4b[_0x2fbfff(0x1c0)]===undefined||_0x168c4b[_0x2fbfff(0x18c)]===undefined||_0x168c4b[_0x2fbfff(0x120)]===undefined)throw new Error(_0x2fbfff(0x137)+JSON[_0x2fbfff(0x10e)](_0x168c4b));if(_0x168c4b[_0x2fbfff(0x199)]===undefined)_0x168c4b[_0x2fbfff(0x199)]='无';if(_0x168c4b['rule_add']===undefined)_0x168c4b['rule_add']='允许';if(_0x168c4b[_0x2fbfff(0x205)]===undefined)_0x168c4b[_0x2fbfff(0x205)]='允许';if(_0x168c4b[_0x2fbfff(0x18d)]===undefined)_0x168c4b['rule_update']='允许';if(_0x168c4b[_0x2fbfff(0x11b)]&&!_0x168c4b['charLimitRules'])_0x168c4b[_0x2fbfff(0x16a)]={},_0x168c4b[_0x2fbfff(0x11b)]['columnIndex']!==-0x1&&_0x168c4b[_0x2fbfff(0x11b)][_0x2fbfff(0x17d)]>0x0&&(_0x168c4b[_0x2fbfff(0x16a)][_0x168c4b[_0x2fbfff(0x11b)][_0x2fbfff(0x177)]]=_0x168c4b['charLimitRule'][_0x2fbfff(0x17d)]);else _0x168c4b[_0x2fbfff(0x16a)]===undefined&&(_0x168c4b['charLimitRules']={});delete _0x168c4b[_0x2fbfff(0x11b)],!_0x168c4b['rowStatuses']&&(_0x168c4b['rowStatuses']=Array(_0x168c4b[_0x2fbfff(0x120)][_0x2fbfff(0x130)])[_0x2fbfff(0x195)](_0x2fbfff(0x141))),_0x168c4b[_0x2fbfff(0x16f)]===undefined&&(_0x168c4b[_0x2fbfff(0x16f)]=0x0),_0x168c4b[_0x2fbfff(0x1da)]===undefined&&(_0x168c4b[_0x2fbfff(0x1da)]=[]);}),setMemoryState(_0x1a61f9);const _0x575ef5=getContext();if(_0x575ef5[_0x8e6e78(0x1c9)]&&_0x575ef5[_0x8e6e78(0x1c9)][_0x8e6e78(0x130)]>0x0){const _0x536a86=_0x575ef5['chat'][_0x575ef5[_0x8e6e78(0x1c9)][_0x8e6e78(0x130)]-0x1];saveStateToMessage(getMemoryState(),_0x536a86)&&(saveChat(),log(_0x8e6e78(0x1de),'success'));}else saveChatDebounced();log(_0x8e6e78(0x186),_0x8e6e78(0x178)),toastr['success']('预设已成功导入!',_0x8e6e78(0x1e4)),typeof _0x25de51==='function'&&_0x25de51();}catch(_0x4f7ae){log(_0x8e6e78(0x188)+_0x4f7ae[_0x8e6e78(0x196)],'error'),toastr[_0x8e6e78(0x191)](_0x8e6e78(0x1c3)+_0x4f7ae[_0x8e6e78(0x196)],'错误');}},_0x3259ac[_0x2f9252(0x117)](_0x1c2adf);},_0x372acd[_0x493983(0x174)]();}export async function rollbackState(){const _0x43af7e=_0x373225,_0x20654d=getContext();if(!_0x20654d||!_0x20654d[_0x43af7e(0x1c9)]||_0x20654d[_0x43af7e(0x1c9)][_0x43af7e(0x130)]<0x2)return log(_0x43af7e(0x1bf),_0x43af7e(0x1d1)),toastr['warning'](_0x43af7e(0x10f)),![];const _0x11a86e=_0x20654d[_0x43af7e(0x1c9)],_0x2e24bd=_0x11a86e[_0x43af7e(0x130)]-0x1,_0x4142ae=_0x11a86e[_0x2e24bd];log(_0x43af7e(0x124)+(_0x2e24bd-0x1)+_0x43af7e(0x1ea),'info');const _0x33ee25=loadTables(_0x2e24bd);if(!_0x33ee25)return log('未能在上一楼找到可用的表格状态,无法回退。','error'),toastr[_0x43af7e(0x191)]('未能在上一楼找到可用的表格状态。'),![];setMemoryState(_0x33ee25);if(saveStateToMessage(_0x33ee25,_0x4142ae))await saveChat(),log(_0x43af7e(0x164),_0x43af7e(0x178));else return log(_0x43af7e(0x171),_0x43af7e(0x191)),toastr[_0x43af7e(0x191)]('未能保存回退状态,操作中止。'),![];return renderTables(),updateOrInsertTableInChat(),log(_0x43af7e(0x114),'info'),!![];}export async function rollbackAndRefill(){const _0x3d0cf2=_0x373225;toastr[_0x3d0cf2(0x14e)](_0x3d0cf2(0x1cb));const _0x1baf39=await rollbackState();if(!_0x1baf39){toastr[_0x3d0cf2(0x191)](_0x3d0cf2(0x1d4));return;}toastr[_0x3d0cf2(0x178)](_0x3d0cf2(0x162));const _0x35e43d=getContext(),_0x2d479c=_0x35e43d[_0x3d0cf2(0x1c9)][_0x35e43d[_0x3d0cf2(0x1c9)][_0x3d0cf2(0x130)]-0x1];try{await fillWithSecondaryApi(_0x2d479c,!![]),log(_0x3d0cf2(0x1d5),_0x3d0cf2(0x178));}catch(_0x370fde){log(_0x3d0cf2(0x1a4)+_0x370fde[_0x3d0cf2(0x196)],_0x3d0cf2(0x191)),toastr[_0x3d0cf2(0x191)](_0x3d0cf2(0x19a)+_0x370fde[_0x3d0cf2(0x196)]);}}export function updateColumnWidth(_0x46ea10,_0x4d416d,_0x131746){const _0x3f925d=_0x373225;if(!currentTablesState||!currentTablesState[_0x46ea10])return;const _0x40afde=currentTablesState[_0x46ea10];!_0x40afde['columnWidths']&&(_0x40afde[_0x3f925d(0x1da)]=[]);while(_0x40afde[_0x3f925d(0x1da)][_0x3f925d(0x130)]<_0x40afde[_0x3f925d(0x18c)][_0x3f925d(0x130)]){_0x40afde['columnWidths']['push'](null);}_0x40afde[_0x3f925d(0x1da)][_0x4d416d]=_0x131746;const _0x206778=getContext();if(_0x206778[_0x3f925d(0x1c9)]&&_0x206778['chat']['length']>0x0){const _0xfffaa9=_0x206778[_0x3f925d(0x1c9)][_0x206778[_0x3f925d(0x1c9)][_0x3f925d(0x130)]-0x1];if(saveStateToMessage(currentTablesState,_0xfffaa9)){saveChat();return;}}saveChatDebounced();}export function isCurrentTablesEmpty(){const _0x1127af=_0x373225,_0x4ca1bb=getMemoryState();if(!_0x4ca1bb||_0x4ca1bb[_0x1127af(0x130)]===0x0)return!![];return _0x4ca1bb[_0x1127af(0x1e8)](_0x5759ce=>!_0x5759ce[_0x1127af(0x120)]||_0x5759ce[_0x1127af(0x120)][_0x1127af(0x130)]===0x0);}export function clearGlobalPreset(){const _0x31a974=_0x373225;if(extension_settings[extensionName]&&extension_settings[extensionName][_0x31a974(0x1ec)]){const _0xda6e51=window[_0x31a974(0x19d)](_0x31a974(0x148));_0xda6e51?(delete extension_settings[extensionName]['global_table_preset'],saveSettingsDebounced(),log(_0x31a974(0x138),_0x31a974(0x178)),toastr[_0x31a974(0x178)](_0x31a974(0x123),_0x31a974(0x1b8))):(log(_0x31a974(0x142),_0x31a974(0x14e)),toastr[_0x31a974(0x14e)]('操作已取消。'));}else log(_0x31a974(0x150),_0x31a974(0x14e)),toastr[_0x31a974(0x14e)](_0x31a974(0x176),'提示');}export function importGlobalPreset(_0x5a1455){const _0x5c1140=_0x373225,_0x1d0349=document[_0x5c1140(0x1f1)](_0x5c1140(0x11f));_0x1d0349['type']=_0x5c1140(0x203),_0x1d0349[_0x5c1140(0x12a)]=_0x5c1140(0x1b4),_0x1d0349[_0x5c1140(0x134)]=_0x39a6ef=>{const _0x55898a=_0x5c1140,_0x1b23bf=_0x39a6ef[_0x55898a(0x16b)][_0x55898a(0x1b2)][0x0];if(!_0x1b23bf)return;const _0x420294=new FileReader();_0x420294[_0x55898a(0x11d)]=_0x227325=>{const _0x541dbd=_0x55898a;try{const _0x44030c=JSON[_0x541dbd(0x155)](_0x227325['target'][_0x541dbd(0x1a7)]);if(!_0x44030c[_0x541dbd(0x12e)]||!Array[_0x541dbd(0x1cf)](_0x44030c['tables']))throw new Error(_0x541dbd(0x163));const _0x3008f3=window[_0x541dbd(0x19d)](_0x541dbd(0x108));if(!_0x3008f3){log('用户取消了全局预设导入操作。',_0x541dbd(0x14e)),toastr['info'](_0x541dbd(0x14d));return;}const _0x3479bf=_0x44030c[_0x541dbd(0x1dc)]['map'](_0x41e941=>({'name':_0x41e941[_0x541dbd(0x1c0)],'headers':_0x41e941['headers'],'note':_0x41e941['note'],'rule_add':_0x41e941[_0x541dbd(0x198)],'rule_delete':_0x41e941['rule_delete'],'rule_update':_0x41e941[_0x541dbd(0x18d)],'rows':[]}));!extension_settings[extensionName]&&(extension_settings[extensionName]={});extension_settings[extensionName][_0x541dbd(0x1ec)]={'version':_0x44030c['version'],'tables':_0x3479bf,'batchFillerRuleTemplate':_0x44030c['batchFillerRuleTemplate'],'batchFillerFlowTemplate':_0x44030c[_0x541dbd(0x15e)]},saveSettingsDebounced();if(_0x44030c['version']===_0x541dbd(0x145))saveBatchFillerRuleTemplate(_0x44030c[_0x541dbd(0x16e)]||''),saveBatchFillerFlowTemplate(_0x44030c['batchFillerFlowTemplate']||''),saveAiTemplate(_0x44030c[_0x541dbd(0x1ad)]||'');else{if(_0x44030c[_0x541dbd(0x1a0)]!==undefined&&_0x44030c[_0x541dbd(0x190)]!==undefined)saveBatchFillerRuleTemplate(_0x44030c[_0x541dbd(0x1a0)]||''),saveBatchFillerFlowTemplate(_0x44030c[_0x541dbd(0x190)]||''),saveAiTemplate(_0x44030c[_0x541dbd(0x190)]||'');else _0x44030c[_0x541dbd(0x180)]&&(saveBatchFillerRuleTemplate(''),saveBatchFillerFlowTemplate(_0x44030c[_0x541dbd(0x180)]||''),saveAiTemplate(_0x44030c[_0x541dbd(0x180)]||''));}log(_0x541dbd(0x13f),_0x541dbd(0x178)),toastr[_0x541dbd(0x178)](_0x541dbd(0x1f7),'设置成功'),typeof _0x5a1455==='function'&&_0x5a1455();}catch(_0x5dc607){log(_0x541dbd(0x200)+_0x5dc607[_0x541dbd(0x196)],'error'),toastr[_0x541dbd(0x191)](_0x541dbd(0x1c3)+_0x5dc607[_0x541dbd(0x196)],'错误');}},_0x420294[_0x55898a(0x117)](_0x1b23bf);},_0x1d0349[_0x5c1140(0x174)]();}
|