@ian2018cs/agenthub 0.1.86 → 0.1.87
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -159,7 +159,7 @@ ${ue}`:ue:je.push({type:"assistant",content:ue,timestamp:new Date,isStreaming:!0
|
|
|
159
159
|
|
|
160
160
|
同步后,这个本地技能将上传到共享 Git 仓库,其他人即可安装使用。本地副本将被删除,后续该技能将从共享仓库加载。`),!!await c(E,{title:W,confirmText:"确认同步"}))try{w(M.name);const X=await Y(`/api/skills/${M.name}/sync`,{method:"POST"});if(X.ok)k();else{const C=await X.json();o(C.error||"同步失败",{variant:"error"})}}catch(X){o(X.message,{variant:"error"})}finally{w(null)}},D=()=>{b.current?.click()},T=async M=>{const E=M.target.files?.[0];if(E)try{y(!0);const W=new FormData;W.append("skillZip",E);const X=await Y("/api/skills/import",{method:"POST",body:W});if(X.ok)k();else{const C=await X.json();o(C.error||"上传技能失败",{variant:"error"})}}catch(W){o(W.message,{variant:"error"})}finally{y(!1),b.current&&(b.current.value="")}},R=(M,E)=>{switch(M){case"repo":return e.jsx(tt,{variant:"outline",className:"text-xs bg-blue-50 dark:bg-blue-900/20 text-blue-700 dark:text-blue-300",children:E||"仓库"});case"imported":return e.jsx(tt,{variant:"outline",className:"text-xs bg-purple-50 dark:bg-purple-900/20 text-purple-700 dark:text-purple-300",children:"上传"});default:return e.jsx(tt,{variant:"outline",className:"text-xs",children:"本地新建"})}};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(Mn,{className:"w-5 h-5 text-amber-500"}),e.jsx("h3",{className:"text-lg font-medium text-foreground",children:"Skills 管理"})]}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Skills 是 ",et," 的扩展能力,可以通过 SKILLS.md 文件定义自定义指令和工作流程"]}),e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4",children:[e.jsxs("div",{className:"text-sm text-muted-foreground",children:["已安装: ",e.jsx("span",{className:"font-medium text-foreground",children:u.length})," 个技能"]}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx("input",{ref:b,type:"file",accept:".zip",className:"hidden",onChange:T}),e.jsxs(B,{onClick:D,variant:"outline",size:"sm",disabled:i,children:[e.jsx($t,{className:"w-4 h-4 mr-2"}),i?"上传中...":"上传本地技能"]}),e.jsxs(B,{onClick:()=>x(!0),className:"bg-amber-600 hover:bg-amber-700 text-white",size:"sm",children:[e.jsx(St,{className:"w-4 h-4 mr-2"}),"发现技能"]})]})]}),s&&e.jsx("div",{className:"bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4 text-red-800 dark:text-red-200 text-sm",children:s}),m?e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):u.length===0?e.jsxs("div",{className:"text-center py-8 text-muted-foreground",children:[e.jsx(Mn,{className:"w-12 h-12 mx-auto mb-4 opacity-50"}),e.jsx("p",{children:"还没有安装任何技能"}),e.jsx("p",{className:"text-xs mt-2",children:'点击"发现技能"从仓库安装,或"上传已有"本地技能'})]}):e.jsx("div",{className:"grid grid-cols-2 gap-3",children:u.map(M=>e.jsxs("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg px-4 pt-4 pb-1 flex flex-col",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap mb-1",children:[e.jsx("span",{className:"font-medium text-foreground",children:M.title||M.name}),R(M.source,M.repository),e.jsx(tt,{variant:"outline",className:"text-xs",title:M.scope==="local"&&M.projectPath?M.projectPath:void 0,children:M.scope==="local"?`local · ${M.projectPath?M.projectPath.split("/").filter(Boolean).pop():""}`:"user"})]}),M.description&&e.jsx("p",{className:"text-sm text-muted-foreground line-clamp-3 flex-1",children:M.description}),e.jsxs("div",{className:"flex items-center justify-end mt-2",children:[M.syncable&&e.jsx(B,{variant:"ghost",size:"sm",onClick:()=>I(M),disabled:j===M.name,title:"同步到云端",children:j===M.name?e.jsx(st,{className:"w-4 h-4 animate-spin"}):e.jsx(wa,{className:"w-4 h-4"})}),e.jsx(B,{variant:"ghost",size:"sm",onClick:()=>N(M.name),title:"下载技能",children:e.jsx(It,{className:"w-4 h-4"})}),e.jsx(B,{variant:"ghost",size:"sm",onClick:()=>S(M),className:"text-red-500 hover:text-red-600",title:"删除技能",children:e.jsx(xt,{className:"w-4 h-4"})})]})]},M.name))}),t&&e.jsx(Yc,{onClose:()=>x(!1),onInstalled:f,onOpenRepoManager:()=>{x(!1),a(!0)},projects:r}),h&&e.jsx(Jc,{onClose:()=>a(!1),onChanged:()=>{}})]})}function Kc({projects:r=[]}){const{showAlert:o,showConfirm:c}=it(),{hasPermission:u}=Xt(),[l,m]=n.useState([]),[d,s]=n.useState(!0),[p,t]=n.useState(!1),[x,h]=n.useState(null),[a,i]=n.useState(!1),[y,j]=n.useState(null),[w,b]=n.useState([]),[k,f]=n.useState(!1),[N,S]=n.useState(!1),I={};for(const X of r)if(X.agentInfo?.isAgent){const C=X.agentInfo.agentName;I[C]=X.agentInfo.installedVersion}const D=d?[]:r.filter(X=>X.agentInfo?.isAgent&&!l.some(C=>(C.dirName||C.name)===X.agentInfo.agentName));n.useEffect(()=>{T(),R()},[]);const T=async()=>{try{s(!0);const X=await Y("/api/agents");if(X.ok){const C=await X.json();m(C.agents||[])}else{const C=await X.json();o(C.error||"获取 Agent 列表失败",{variant:"error"})}}catch(X){o(X.message,{variant:"error"})}finally{s(!1)}},R=async()=>{try{f(!0);const X=await Y("/api/agents/submissions/my");if(X.ok){const C=await X.json();b(C.submissions||[])}}catch{}finally{f(!1)}},M=async()=>{try{t(!0);const X=await Y("/api/agents/refresh",{method:"POST"});if(X.ok)await T();else{const C=await X.json();o(C.error||"刷新失败",{variant:"error"})}}catch(X){o(X.message,{variant:"error"})}finally{t(!1)}},E=async(X,C=!1)=>{const $=X.dirName||X.name;h($);try{const te=await Y("/api/agents/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentName:$,force:C})}),ne=await te.json();if(te.status===409&&ne.conflict){h(null),await c("检测到本地 CLAUDE.md 已被修改,更新将覆盖本地改动,是否继续?",{title:"本地文件冲突",confirmText:"强制更新",variant:"warning"})&&await E(X,!0);return}te.ok?(o(`Agent "${X.display_name||X.name}" ${C?"更新":"安装"}成功!项目已创建,Skills 和 MCP 服务已安装。`,{title:C?"更新成功":"安装成功"}),window.refreshProjects?.(),window.refreshMcpServers?.(),T()):o(ne.error||"安装失败",{variant:"error"})}catch(te){o(te.message,{variant:"error"})}finally{h(null)}},W=X=>{const C=X.dirName||X.name,$=I[C];return $?$===X.version?{state:"up_to_date",installedVersion:$}:{state:"update_available",installedVersion:$,latestVersion:X.version}:{state:"not_installed"}};return d?e.jsxs("div",{className:"flex items-center justify-center py-12 text-gray-500 dark:text-gray-400",children:[e.jsx(st,{className:"w-5 h-5 animate-spin mr-2"}),"加载中..."]}):e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:"从共享项目仓库使用预配置的项目模板,包含所需的 Skills 和 MCP 服务。"}),e.jsxs("div",{className:"flex gap-2 flex-shrink-0",children:[e.jsxs(B,{variant:"outline",size:"sm",onClick:M,disabled:p,className:"flex items-center gap-1.5",children:[e.jsx(st,{className:`w-3.5 h-3.5 ${p?"animate-spin":""}`}),"刷新"]}),u("submit_agent")&&e.jsxs(B,{variant:"outline",size:"sm",onClick:()=>i(!0),className:"flex items-center gap-1.5",children:[e.jsx($t,{className:"w-3.5 h-3.5"}),"分享项目模板"]})]})]}),l.length===0?e.jsxs("div",{className:"text-center py-12 text-gray-500 dark:text-gray-400 border border-dashed border-gray-200 dark:border-gray-700 rounded-lg",children:[e.jsx(Lt,{className:"w-8 h-8 mx-auto mb-2 opacity-40"}),e.jsx("p",{className:"text-sm",children:"暂无可用共享项目模板"}),e.jsx("p",{className:"text-xs mt-1",children:'点击"刷新"从服务器获取最新共享项目模板列表'})]}):e.jsx("div",{className:"space-y-2",children:l.map(X=>{const C=X.dirName||X.name,$=W(X),te=y===C,ne=x===C;return e.jsxs("div",{className:"border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-3 p-3",children:[e.jsx("div",{className:"w-8 h-8 rounded-lg bg-blue-100 dark:bg-blue-900/30 flex items-center justify-center flex-shrink-0",children:e.jsx(Lt,{className:"w-4 h-4 text-blue-600 dark:text-blue-400"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"font-medium text-sm text-gray-900 dark:text-gray-100 truncate",children:X.display_name||X.name}),e.jsxs("span",{className:"text-xs text-gray-400 dark:text-gray-500 flex-shrink-0",children:["v",X.version]}),$.state==="update_available"&&e.jsxs(tt,{className:"text-xs bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400 border-amber-200 dark:border-amber-700 hover:bg-amber-200 dark:hover:bg-amber-900/50 flex-shrink-0",children:["有更新 v",$.latestVersion]}),$.state==="up_to_date"&&e.jsx(tt,{className:"text-xs bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400 border-green-200 dark:border-green-700 hover:bg-green-200 dark:hover:bg-green-900/50 flex-shrink-0",children:"已使用"})]}),X.description&&e.jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400 mt-0.5 truncate",children:X.description}),e.jsxs("div",{className:"flex items-center gap-3 mt-1",children:[X.skills?.length>0&&e.jsxs("span",{className:"text-xs text-gray-400 dark:text-gray-500",children:[X.skills.length," 个 Skill"]}),X.mcps?.length>0&&e.jsxs("span",{className:"text-xs text-gray-400 dark:text-gray-500",children:[X.mcps.length," 个 MCP"]})]})]}),e.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[e.jsx(B,{size:"sm",variant:$.state==="not_installed"?"default":"outline",onClick:()=>E(X),disabled:ne||$.state==="up_to_date",className:"text-xs h-7 px-2.5",children:ne?e.jsx(st,{className:"w-3 h-3 animate-spin"}):$.state==="up_to_date"?"已是最新":$.state==="update_available"?e.jsxs(e.Fragment,{children:[e.jsx(It,{className:"w-3 h-3 mr-1"}),"更新"]}):e.jsxs(e.Fragment,{children:[e.jsx(It,{className:"w-3 h-3 mr-1"}),"使用"]})}),(X.skills?.length>0||X.mcps?.length>0)&&e.jsx("button",{onClick:()=>j(te?null:C),className:"text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",children:te?e.jsx(Cn,{className:"w-4 h-4"}):e.jsx(Zt,{className:"w-4 h-4"})})]})]}),te&&e.jsxs("div",{className:"border-t border-gray-100 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/50 px-3 py-2 space-y-2",children:[X.skills?.length>0&&e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-medium text-gray-500 dark:text-gray-400 mb-1",children:"所需 Skills"}),e.jsx("div",{className:"flex flex-wrap gap-1",children:X.skills.map(G=>e.jsx(tt,{variant:"outline",className:"text-xs",children:G.name},G.name))})]}),X.mcps?.length>0&&e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-medium text-gray-500 dark:text-gray-400 mb-1",children:"所需 MCP 服务"}),e.jsx("div",{className:"flex flex-wrap gap-1",children:X.mcps.map(G=>e.jsx(tt,{variant:"outline",className:"text-xs",children:G.name},G.name))})]})]})]},C)})}),D.length>0&&e.jsxs("div",{className:"border border-amber-200 dark:border-amber-800 rounded-lg overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 bg-amber-50 dark:bg-amber-900/10 border-b border-amber-200 dark:border-amber-800",children:[e.jsx(Wt,{className:"w-3.5 h-3.5 text-amber-500"}),e.jsx("span",{className:"text-xs font-medium text-amber-700 dark:text-amber-400",children:"以下 Agent 已从仓库下线"})]}),e.jsx("div",{className:"divide-y divide-amber-100 dark:divide-amber-900/20",children:D.map(X=>e.jsxs("div",{className:"flex items-center justify-between px-3 py-2.5",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-sm text-gray-800 dark:text-gray-200",children:X.displayName}),e.jsx("span",{className:"text-xs text-gray-400 font-mono ml-2",children:X.agentInfo.agentName}),e.jsxs("span",{className:"text-xs text-amber-600 dark:text-amber-400 ml-2",children:["v",X.agentInfo.installedVersion]})]}),e.jsx("span",{className:"text-xs text-amber-500 dark:text-amber-400",children:"已下线,本地仍可继续使用"})]},X.agentInfo.agentName))})]}),(w.length>0||k)&&e.jsxs("div",{className:"mt-6",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsxs("button",{onClick:()=>S(X=>!X),className:"flex items-center gap-1 text-sm font-medium text-gray-700 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100",children:[N?e.jsx(Cn,{className:"w-3.5 h-3.5"}):e.jsx(Zt,{className:"w-3.5 h-3.5"}),"我的提交记录"]}),e.jsxs("button",{onClick:R,disabled:k,className:"text-xs text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 flex items-center gap-1",children:[e.jsx(st,{className:`w-3 h-3 ${k?"animate-spin":""}`}),"刷新"]})]}),N&&e.jsx("div",{className:"space-y-2",children:w.map(X=>{const C={pending:{label:"审核中",icon:Xr,color:"text-amber-600 dark:text-amber-400",bg:"bg-amber-50 dark:bg-amber-900/20 border-amber-200 dark:border-amber-800"},approved:{label:"已通过",icon:es,color:"text-green-600 dark:text-green-400",bg:"bg-green-50 dark:bg-green-900/20 border-green-200 dark:border-green-800"},rejected:{label:"已拒绝",icon:Qo,color:"text-red-600 dark:text-red-400",bg:"bg-red-50 dark:bg-red-900/20 border-red-200 dark:border-red-800"}},$=C[X.status]||C.pending,te=$.icon;return e.jsx("div",{className:`border rounded-lg px-3 py-2.5 ${$.bg}`,children:e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"text-sm font-medium text-gray-900 dark:text-gray-100 truncate",children:X.display_name}),e.jsxs("span",{className:"text-xs text-gray-400",children:["(",X.agent_name,")"]}),X.version&&e.jsxs("span",{className:"text-xs text-gray-400",children:["v",X.version]})]}),e.jsxs("p",{className:"text-xs text-gray-500 dark:text-gray-400 mt-0.5",children:["提交于 ",new Date(X.submitted_at).toLocaleString("zh-CN",{month:"numeric",day:"numeric",hour:"2-digit",minute:"2-digit"})]}),X.status==="rejected"&&X.reject_reason&&e.jsxs("p",{className:"text-xs text-red-600 dark:text-red-400 mt-1",children:["拒绝原因:",X.reject_reason]}),X.status==="approved"&&X.reviewed_at&&e.jsxs("p",{className:"text-xs text-green-600 dark:text-green-400 mt-0.5",children:["审核通过,已发布为 v",X.version]})]}),e.jsxs("div",{className:`flex items-center gap-1 flex-shrink-0 text-xs font-medium ${$.color}`,children:[e.jsx(te,{className:"w-3.5 h-3.5"}),$.label]})]})},X.id)})})]}),a&&e.jsx(Gn,{projects:r,onClose:()=>i(!1),onSubmitted:()=>{i(!1),R()}})]})}var Nn={exports:{}},$o;function Vc(){return $o||($o=1,function(r,o){(function(u,l){r.exports=l()})(globalThis,()=>(()=>{var c={949(d,s,p){Object.defineProperty(s,"__esModule",{value:!0}),s.CronParser=void 0;var t=p(515),x=function(){function h(a,i,y){i===void 0&&(i=!0),y===void 0&&(y=!1),this.expression=a,this.dayOfWeekStartIndexZero=i,this.monthStartIndexZero=y}return h.prototype.parse=function(){var a,i,y=(a=this.expression)!==null&&a!==void 0?a:"";if(y==="@reboot")return i=["@reboot","","","","","",""],i;if(y.startsWith("@")){var j=this.parseSpecial(this.expression);i=this.extractParts(j)}else i=this.extractParts(this.expression);return this.normalize(i),this.validate(i),i},h.prototype.parseSpecial=function(a){var i={"@yearly":"0 0 1 1 *","@annually":"0 0 1 1 *","@monthly":"0 0 1 * *","@weekly":"0 0 * * 0","@daily":"0 0 * * *","@midnight":"0 0 * * *","@hourly":"0 * * * *","@reboot":"@reboot"},y=i[a];if(!y)throw new Error("Unknown special expression.");return y},h.prototype.extractParts=function(a){if(!this.expression)throw new Error("cron expression is empty");for(var i=a.trim().split(/[ ]+/),y=0;y<i.length;y++)if(i[y].includes(",")){var j=i[y].split(",").map(function(b){return b.trim()}).filter(function(b){return b!==""}).map(function(b){return isNaN(Number(b))?b:Number(b)}).filter(function(b){return b!==null&&b!==""});j.length===0&&j.push("*"),j.sort(function(b,k){return b!==null&&k!==null?b-k:0}),i[y]=j.map(function(b){return b!==null?b.toString():""}).join(",")}if(i.length<5)throw new Error("Expression has only ".concat(i.length," part").concat(i.length==1?"":"s",". At least 5 parts are required."));if(i.length==5)i.unshift(""),i.push("");else if(i.length==6){var w=/\d{4}$/.test(i[5])||i[4]=="?"||i[2]=="?";w?i.unshift(""):i.push("")}else if(i.length>7)throw new Error("Expression has ".concat(i.length," parts; too many!"));return i},h.prototype.normalize=function(a){var i=this;if(a[3]=a[3].replace("?","*"),a[5]=a[5].replace("?","*"),a[2]=a[2].replace("?","*"),a[0].indexOf("0/")==0&&(a[0]=a[0].replace("0/","*/")),a[1].indexOf("0/")==0&&(a[1]=a[1].replace("0/","*/")),a[2].indexOf("0/")==0&&(a[2]=a[2].replace("0/","*/")),a[3].indexOf("1/")==0&&(a[3]=a[3].replace("1/","*/")),a[4].indexOf("1/")==0&&(a[4]=a[4].replace("1/","*/")),a[6].indexOf("1/")==0&&(a[6]=a[6].replace("1/","*/")),a[5]=a[5].replace(/(^\d)|([^#/\s]\d)/g,function(S){var I=S.replace(/\D/,""),D=I;return i.dayOfWeekStartIndexZero?I=="7"&&(D="0"):D=(parseInt(I)-1).toString(),S.replace(I,D)}),a[5]=="L"&&(a[5]="6"),a[3]=="?"&&(a[3]="*"),a[3].indexOf("W")>-1&&(a[3].indexOf(",")>-1||a[3].indexOf("-")>-1))throw new Error("The 'W' character can be specified only when the day-of-month is a single day, not a range or list of days.");var y={SUN:0,MON:1,TUE:2,WED:3,THU:4,FRI:5,SAT:6};for(var j in y)a[5]=a[5].replace(new RegExp(j,"gi"),y[j].toString());a[4]=a[4].replace(/(^\d{1,2})|([^#/\s]\d{1,2})/g,function(S){var I=S.replace(/\D/,""),D=I;return i.monthStartIndexZero&&(D=(parseInt(I)+1).toString()),S.replace(I,D)});var w={JAN:1,FEB:2,MAR:3,APR:4,MAY:5,JUN:6,JUL:7,AUG:8,SEP:9,OCT:10,NOV:11,DEC:12};for(var b in w)a[4]=a[4].replace(new RegExp(b,"gi"),w[b].toString());a[0]=="0"&&(a[0]=""),!/\*|\-|\,|\//.test(a[2])&&(/\*|\//.test(a[1])||/\*|\//.test(a[0]))&&(a[2]+="-".concat(a[2]));for(var k=0;k<a.length;k++)if(a[k].indexOf(",")!=-1&&(a[k]=a[k].split(",").filter(function(S){return S!==""}).join(",")||"*"),a[k]=="*/1"&&(a[k]="*"),a[k].indexOf("/")>-1&&!/^\*|\-|\,/.test(a[k])){var f=null;switch(k){case 4:f="12";break;case 5:f="6";break;case 6:f="9999";break;default:f=null;break}if(f!==null){var N=a[k].split("/");a[k]="".concat(N[0],"-").concat(f,"/").concat(N[1])}}},h.prototype.validate=function(a){var i="0-9,\\-*/";this.validateOnlyExpectedCharactersFound(a[0],i),this.validateOnlyExpectedCharactersFound(a[1],i),this.validateOnlyExpectedCharactersFound(a[2],i),this.validateOnlyExpectedCharactersFound(a[3],"0-9,\\-*/LW"),this.validateOnlyExpectedCharactersFound(a[4],i),this.validateOnlyExpectedCharactersFound(a[5],"0-9,\\-*/L#"),this.validateOnlyExpectedCharactersFound(a[6],i),this.validateAnyRanges(a)},h.prototype.validateAnyRanges=function(a){t.default.secondRange(a[0]),t.default.minuteRange(a[1]),t.default.hourRange(a[2]),t.default.dayOfMonthRange(a[3]),t.default.monthRange(a[4],this.monthStartIndexZero),t.default.dayOfWeekRange(a[5],this.dayOfWeekStartIndexZero)},h.prototype.validateOnlyExpectedCharactersFound=function(a,i){var y=a.match(new RegExp("[^".concat(i,"]+"),"gi"));if(y&&y.length)throw new Error("Expression contains invalid values: '".concat(y.toString(),"'"))},h}();s.CronParser=x},333(d,s,p){Object.defineProperty(s,"__esModule",{value:!0}),s.ExpressionDescriptor=void 0;var t=p(823),x=p(949),h=function(){function a(i,y){if(this.expression=i,this.options=y,this.expressionParts=new Array(5),!this.options.locale&&a.defaultLocale&&(this.options.locale=a.defaultLocale),!a.locales[this.options.locale]){var j=Object.keys(a.locales)[0];console.warn("Locale '".concat(this.options.locale,"' could not be found; falling back to '").concat(j,"'.")),this.options.locale=j}this.i18n=a.locales[this.options.locale],y.use24HourTimeFormat===void 0&&(y.use24HourTimeFormat=this.i18n.use24HourTimeFormatByDefault())}return a.toString=function(i,y){var j=y===void 0?{}:y,w=j.throwExceptionOnParseError,b=w===void 0?!0:w,k=j.verbose,f=k===void 0?!1:k,N=j.dayOfWeekStartIndexZero,S=N===void 0?!0:N,I=j.monthStartIndexZero,D=I===void 0?!1:I,T=j.use24HourTimeFormat,R=j.trimHoursLeadingZero,M=R===void 0?!1:R,E=j.locale,W=E===void 0?null:E,X=j.logicalAndDayFields,C=X===void 0?!1:X,$={throwExceptionOnParseError:b,verbose:f,dayOfWeekStartIndexZero:S,monthStartIndexZero:D,use24HourTimeFormat:T,trimHoursLeadingZero:M,locale:W,logicalAndDayFields:C};$.tzOffset&&console.warn("'tzOffset' option has been deprecated and is no longer supported.");var te=new a(i,$);return te.getFullDescription()},a.initialize=function(i,y){y===void 0&&(y="en"),a.specialCharacters=["/","-",",","*"],a.defaultLocale=y,i.load(a.locales)},a.prototype.getFullDescription=function(){var i,y,j="";try{var w=new x.CronParser(this.expression,this.options.dayOfWeekStartIndexZero,this.options.monthStartIndexZero);if(this.expressionParts=w.parse(),this.expressionParts[0]==="@reboot")return((y=(i=this.i18n).atReboot)===null||y===void 0?void 0:y.call(i))||"Run once, at startup";var b=this.getTimeOfDayDescription(),k=this.getDayOfMonthDescription(),f=this.getMonthDescription(),N=this.getDayOfWeekDescription(),S=this.getYearDescription();j+=b+k+N+f+S,j=this.transformVerbosity(j,!!this.options.verbose),j=j.charAt(0).toLocaleUpperCase()+j.substr(1)}catch(I){if(!this.options.throwExceptionOnParseError)j=this.i18n.anErrorOccuredWhenGeneratingTheExpressionD();else throw"".concat(I)}return j},a.prototype.getTimeOfDayDescription=function(){var i=this.expressionParts[0],y=this.expressionParts[1],j=this.expressionParts[2],w="";if(!t.StringUtilities.containsAny(y,a.specialCharacters)&&!t.StringUtilities.containsAny(j,a.specialCharacters)&&!t.StringUtilities.containsAny(i,a.specialCharacters))w+=this.i18n.atSpace()+this.formatTime(j,y,i);else if(!i&&y.indexOf("-")>-1&&!(y.indexOf(",")>-1)&&!(y.indexOf("/")>-1)&&!t.StringUtilities.containsAny(j,a.specialCharacters)){var b=y.split("-");w+=t.StringUtilities.format(this.i18n.everyMinuteBetweenX0AndX1(),this.formatTime(j,b[0],""),this.formatTime(j,b[1],""))}else if(!i&&j.indexOf(",")>-1&&j.indexOf("-")==-1&&j.indexOf("/")==-1&&!t.StringUtilities.containsAny(y,a.specialCharacters)){var k=j.split(",");w+=this.i18n.at();for(var f=0;f<k.length;f++)w+=" ",w+=this.formatTime(k[f],y,""),f<k.length-2&&(w+=","),f==k.length-2&&(w+=this.i18n.spaceAnd())}else{var N=this.getSecondsDescription(),S=this.getMinutesDescription(),I=this.getHoursDescription();if(w+=N,w&&S&&(w+=", "),w+=S,S===I)return w;w&&I&&(w+=", "),w+=I}return w},a.prototype.getSecondsDescription=function(){var i=this,y=this.getSegmentDescription(this.expressionParts[0],this.i18n.everySecond(),function(j){return j},function(j){return t.StringUtilities.format(i.i18n.everyX0Seconds(j),j)},function(j){return i.i18n.secondsX0ThroughX1PastTheMinute()},function(j){return j=="0"?"":parseInt(j)<20?i.i18n.atX0SecondsPastTheMinute(j):i.i18n.atX0SecondsPastTheMinuteGt20()||i.i18n.atX0SecondsPastTheMinute(j)});return y},a.prototype.getMinutesDescription=function(){var i=this,y=this.expressionParts[0],j=this.expressionParts[2],w=this.getSegmentDescription(this.expressionParts[1],this.i18n.everyMinute(),function(b){return b},function(b){return t.StringUtilities.format(i.i18n.everyX0Minutes(b),b)},function(b){return i.i18n.minutesX0ThroughX1PastTheHour()},function(b){var k,f;try{return b=="0"&&j.indexOf("/")==-1&&y==""?i.i18n.everyHour():b=="0"?((f=(k=i.i18n).onTheHour)===null||f===void 0?void 0:f.call(k))||i.i18n.atX0MinutesPastTheHour(b):parseInt(b)<20?i.i18n.atX0MinutesPastTheHour(b):i.i18n.atX0MinutesPastTheHourGt20()||i.i18n.atX0MinutesPastTheHour(b)}catch{return i.i18n.atX0MinutesPastTheHour(b)}});return w},a.prototype.getHoursDescription=function(){var i=this,y=this.expressionParts[2],j=0,w=[];y.split("/")[0].split(",").forEach(function(f){var N=f.split("-");N.length===2&&w.push({value:N[1],index:j+1}),j+=N.length});var b=0,k=this.getSegmentDescription(y,this.i18n.everyHour(),function(f){var N=w.find(function(I){return I.value===f&&I.index===b}),S=N&&i.expressionParts[1]!=="0";return b++,S?i.formatTime(f,"59",""):i.formatTime(f,"0","")},function(f){return t.StringUtilities.format(i.i18n.everyX0Hours(f),f)},function(f){return i.i18n.betweenX0AndX1()},function(f){return i.i18n.atX0()});return k},a.prototype.getDayOfWeekDescription=function(){var i=this,y=this.i18n.daysOfTheWeek(),j=null;return this.expressionParts[5]=="*"?j="":j=this.getSegmentDescription(this.expressionParts[5],this.i18n.commaEveryDay(),function(w,b){var k=w;w.indexOf("#")>-1?k=w.substring(0,w.indexOf("#")):w.indexOf("L")>-1&&(k=k.replace("L",""));var f=parseInt(k),N=i.i18n.daysOfTheWeekInCase?i.i18n.daysOfTheWeekInCase(b)[f]:y[f];if(w.indexOf("#")>-1){var S=null,I=w.substring(w.indexOf("#")+1),D=w.substring(0,w.indexOf("#"));switch(I){case"1":S=i.i18n.first(D);break;case"2":S=i.i18n.second(D);break;case"3":S=i.i18n.third(D);break;case"4":S=i.i18n.fourth(D);break;case"5":S=i.i18n.fifth(D);break}N=S+" "+N}return N},function(w){return parseInt(w)==1?"":t.StringUtilities.format(i.i18n.commaEveryX0DaysOfTheWeek(w),w)},function(w){var b=w.substring(0,w.indexOf("-")),k=i.expressionParts[3]!="*";return k?i.i18n.commaAndX0ThroughX1(b):i.i18n.commaX0ThroughX1(b)},function(w){var b=null;if(w.indexOf("#")>-1){var k=w.substring(w.indexOf("#")+1),f=w.substring(0,w.indexOf("#"));b=i.i18n.commaOnThe(k,f).trim()+i.i18n.spaceX0OfTheMonth()}else if(w.indexOf("L")>-1)b=i.i18n.commaOnTheLastX0OfTheMonth(w.replace("L",""));else{var N=i.expressionParts[3]!="*";N?i.options.logicalAndDayFields?b=i.i18n.commaOnlyOnX0(w):b=i.i18n.commaAndOnX0():b=i.i18n.commaOnlyOnX0(w)}return b}),j},a.prototype.getMonthDescription=function(){var i=this,y=this.i18n.monthsOfTheYear(),j=this.getSegmentDescription(this.expressionParts[4],"",function(w,b){return b&&i.i18n.monthsOfTheYearInCase?i.i18n.monthsOfTheYearInCase(b)[parseInt(w)-1]:y[parseInt(w)-1]},function(w){return parseInt(w)==1?"":t.StringUtilities.format(i.i18n.commaEveryX0Months(w),w)},function(w){return i.i18n.commaMonthX0ThroughMonthX1()||i.i18n.commaX0ThroughX1()},function(w){return i.i18n.commaOnlyInMonthX0?i.i18n.commaOnlyInMonthX0():i.i18n.commaOnlyInX0()});return j},a.prototype.getDayOfMonthDescription=function(){var i=this,y=null,j=this.expressionParts[3];switch(j){case"L":y=this.i18n.commaOnTheLastDayOfTheMonth();break;case"WL":case"LW":y=this.i18n.commaOnTheLastWeekdayOfTheMonth();break;default:var w=j.match(/(\d{1,2}W)|(W\d{1,2})/);if(w){var b=parseInt(w[0].replace("W","")),k=b==1?this.i18n.firstWeekday():t.StringUtilities.format(this.i18n.weekdayNearestDayX0(),b.toString());y=t.StringUtilities.format(this.i18n.commaOnTheX0OfTheMonth(),k);break}else{var f=j.match(/L-(\d{1,2})/);if(f){var N=f[1];y=t.StringUtilities.format(this.i18n.commaDaysBeforeTheLastDayOfTheMonth(N),N);break}else{if(j=="*"&&this.expressionParts[5]!="*")return"";y=this.getSegmentDescription(j,this.i18n.commaEveryDay(),function(S){return S=="L"?i.i18n.lastDay():i.i18n.dayX0?t.StringUtilities.format(i.i18n.dayX0(),S):S},function(S){return S=="1"?i.i18n.commaEveryDay():i.i18n.commaEveryX0Days(S)},function(S){return i.i18n.commaBetweenDayX0AndX1OfTheMonth(S)},function(S){return i.i18n.commaOnDayX0OfTheMonth(S)})}break}}return y},a.prototype.getYearDescription=function(){var i=this,y=this.getSegmentDescription(this.expressionParts[6],"",function(j){return/^\d+$/.test(j)?new Date(parseInt(j),1).getFullYear().toString():j},function(j){return t.StringUtilities.format(i.i18n.commaEveryX0Years(j),j)},function(j){return i.i18n.commaYearX0ThroughYearX1()||i.i18n.commaX0ThroughX1()},function(j){return i.i18n.commaOnlyInYearX0?i.i18n.commaOnlyInYearX0():i.i18n.commaOnlyInX0()});return y},a.prototype.getSegmentDescription=function(i,y,j,w,b,k){var f=null,N=i.indexOf("/")>-1,S=i.indexOf("-")>-1,I=i.indexOf(",")>-1;if(!i)f="";else if(i==="*")f=y;else if(!N&&!S&&!I)f=t.StringUtilities.format(k(i),j(i));else if(I){for(var D=i.split(","),T="",R=0;R<D.length;R++)if(R>0&&D.length>2&&(T+=",",R<D.length-1&&(T+=" ")),R>0&&D.length>1&&(R==D.length-1||D.length==2)&&(T+="".concat(this.i18n.spaceAnd()," ")),D[R].indexOf("/")>-1||D[R].indexOf("-")>-1){var M=D[R].indexOf("-")>-1&&D[R].indexOf("/")==-1,E=this.getSegmentDescription(D[R],y,j,w,M?this.i18n.commaX0ThroughX1:b,k);M&&(E=E.replace(", ","")),T+=E}else if(!N)T+=j(D[R]);else{var W=this.getSegmentDescription(D[R],y,j,w,b,k);W&&W.startsWith(", ")&&(W=W.substring(2)),T+=W}N?f=T:f=t.StringUtilities.format(k(i),T)}else if(N){var D=i.split("/");if(f=t.StringUtilities.format(w(D[1]),D[1]),D[0].indexOf("-")>-1){var X=this.generateRangeSegmentDescription(D[0],b,j);X.indexOf(", ")!=0&&(f+=", "),f+=X}else if(D[0].indexOf("*")==-1){var C=t.StringUtilities.format(k(D[0]),j(D[0]));C=C.replace(", ",""),f+=t.StringUtilities.format(this.i18n.commaStartingX0(),C)}}else S&&(f=this.generateRangeSegmentDescription(i,b,j));return f},a.prototype.generateRangeSegmentDescription=function(i,y,j){var w="",b=i.split("-"),k=j(b[0],1),f=j(b[1],2),N=y(i);return w+=t.StringUtilities.format(N,k,f),w},a.prototype.formatTime=function(i,y,j){var w=0,b=0,k=parseInt(i)+w,f=parseInt(y)+b;f>=60?(f-=60,k+=1):f<0&&(f+=60,k-=1),k>=24?k=k-24:k<0&&(k=24+k);var N="",S=!1;this.options.use24HourTimeFormat||(S=!!(this.i18n.setPeriodBeforeTime&&this.i18n.setPeriodBeforeTime()),N=S?"".concat(this.getPeriod(k)," "):" ".concat(this.getPeriod(k)),k>12&&(k-=12),k===0&&(k=12));var I="";j&&(I=":".concat(("00"+j).substring(j.length)));var D=k.toString(),T=("00"+D).substring(D.length),R=f.toString(),M=("00"+R).substring(R.length),E=this.options.trimHoursLeadingZero?D:T;return"".concat(S?N:"").concat(E,":").concat(M).concat(I).concat(S?"":N)},a.prototype.transformVerbosity=function(i,y){if(!y&&(i=i.replace(new RegExp(", ".concat(this.i18n.everyMinute()),"g"),""),i=i.replace(new RegExp(", ".concat(this.i18n.everyHour()),"g"),""),i=i.replace(new RegExp(this.i18n.commaEveryDay(),"g"),""),i=i.replace(/\, ?$/,""),this.i18n.conciseVerbosityReplacements))for(var j=0,w=Object.entries(this.i18n.conciseVerbosityReplacements());j<w.length;j++){var b=w[j],k=b[0],f=b[1];i=i.replace(new RegExp(k,"g"),f)}return i},a.prototype.getPeriod=function(i){return i>=12?this.i18n.pm&&this.i18n.pm()||"PM":this.i18n.am&&this.i18n.am()||"AM"},a.locales={},a}();s.ExpressionDescriptor=h},99(d,s,p){Object.defineProperty(s,"__esModule",{value:!0}),s.sr=s.hr=s.bg=s.my=s.vi=s.ar=s.th=s.af=s.hu=s.be=s.ca=s.fa=s.sw=s.sl=s.fi=s.sk=s.cs=s.he=s.ja=s.zh_TW=s.zh_CN=s.uk=s.tr=s.ru=s.ro=s.pt_PT=s.pt_BR=s.pl=s.sv=s.nb=s.nl=s.ko=s.id=s.it=s.fr=s.es=s.de=s.da=s.en=void 0;var t=p(486);Object.defineProperty(s,"en",{enumerable:!0,get:function(){return t.en}});var x=p(506);Object.defineProperty(s,"da",{enumerable:!0,get:function(){return x.da}});var h=p(230);Object.defineProperty(s,"de",{enumerable:!0,get:function(){return h.de}});var a=p(153);Object.defineProperty(s,"es",{enumerable:!0,get:function(){return a.es}});var i=p(517);Object.defineProperty(s,"fr",{enumerable:!0,get:function(){return i.fr}});var y=p(488);Object.defineProperty(s,"it",{enumerable:!0,get:function(){return y.it}});var j=p(72);Object.defineProperty(s,"id",{enumerable:!0,get:function(){return j.id}});var w=p(839);Object.defineProperty(s,"ko",{enumerable:!0,get:function(){return w.ko}});var b=p(647);Object.defineProperty(s,"nl",{enumerable:!0,get:function(){return b.nl}});var k=p(957);Object.defineProperty(s,"nb",{enumerable:!0,get:function(){return k.nb}});var f=p(544);Object.defineProperty(s,"sv",{enumerable:!0,get:function(){return f.sv}});var N=p(905);Object.defineProperty(s,"pl",{enumerable:!0,get:function(){return N.pl}});var S=p(556);Object.defineProperty(s,"pt_BR",{enumerable:!0,get:function(){return S.pt_BR}});var I=p(163);Object.defineProperty(s,"pt_PT",{enumerable:!0,get:function(){return I.pt_PT}});var D=p(614);Object.defineProperty(s,"ro",{enumerable:!0,get:function(){return D.ro}});var T=p(892);Object.defineProperty(s,"ru",{enumerable:!0,get:function(){return T.ru}});var R=p(631);Object.defineProperty(s,"tr",{enumerable:!0,get:function(){return R.tr}});var M=p(225);Object.defineProperty(s,"uk",{enumerable:!0,get:function(){return M.uk}});var E=p(571);Object.defineProperty(s,"zh_CN",{enumerable:!0,get:function(){return E.zh_CN}});var W=p(983);Object.defineProperty(s,"zh_TW",{enumerable:!0,get:function(){return W.zh_TW}});var X=p(904);Object.defineProperty(s,"ja",{enumerable:!0,get:function(){return X.ja}});var C=p(82);Object.defineProperty(s,"he",{enumerable:!0,get:function(){return C.he}});var $=p(651);Object.defineProperty(s,"cs",{enumerable:!0,get:function(){return $.cs}});var te=p(923);Object.defineProperty(s,"sk",{enumerable:!0,get:function(){return te.sk}});var ne=p(964);Object.defineProperty(s,"fi",{enumerable:!0,get:function(){return ne.fi}});var G=p(474);Object.defineProperty(s,"sl",{enumerable:!0,get:function(){return G.sl}});var ie=p(799);Object.defineProperty(s,"sw",{enumerable:!0,get:function(){return ie.sw}});var le=p(804);Object.defineProperty(s,"fa",{enumerable:!0,get:function(){return le.fa}});var xe=p(845);Object.defineProperty(s,"ca",{enumerable:!0,get:function(){return xe.ca}});var Ce=p(348);Object.defineProperty(s,"be",{enumerable:!0,get:function(){return Ce.be}});var be=p(194);Object.defineProperty(s,"hu",{enumerable:!0,get:function(){return be.hu}});var Se=p(810);Object.defineProperty(s,"af",{enumerable:!0,get:function(){return Se.af}});var Re=p(33);Object.defineProperty(s,"th",{enumerable:!0,get:function(){return Re.th}});var se=p(574);Object.defineProperty(s,"ar",{enumerable:!0,get:function(){return se.ar}});var we=p(292);Object.defineProperty(s,"vi",{enumerable:!0,get:function(){return we.vi}});var $e=p(919);Object.defineProperty(s,"my",{enumerable:!0,get:function(){return $e.my}});var We=p(622);Object.defineProperty(s,"bg",{enumerable:!0,get:function(){return We.bg}});var ye=p(131);Object.defineProperty(s,"hr",{enumerable:!0,get:function(){return ye.hr}});var Xe=p(716);Object.defineProperty(s,"sr",{enumerable:!0,get:function(){return Xe.sr}})},420(d,s,p){Object.defineProperty(s,"__esModule",{value:!0}),s.allLocalesLoader=void 0;var t=p(99),x=function(){function h(){}return h.prototype.load=function(a){for(var i in t)t.hasOwnProperty(i)&&(a[i]=new t[i])},h}();s.allLocalesLoader=x},810(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.af=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return", jaar %s na %s"},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Daar was 'n fout om die tydsuitdrukking the genereer. Raadpleeg asb die uitdrukking formaat."},t.prototype.everyMinute=function(){return"elke minuut"},t.prototype.everyHour=function(){return"elke uur"},t.prototype.atSpace=function(){return"Teen "},t.prototype.everyMinuteBetweenX0AndX1=function(){return"Elke minuut tussen %s en %s"},t.prototype.at=function(){return"Teen"},t.prototype.spaceAnd=function(){return" en"},t.prototype.everySecond=function(){return"elke sekonde"},t.prototype.everyX0Seconds=function(){return"elke %s sekonde"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"sekonde %s deur na %s na die minuut"},t.prototype.atX0SecondsPastTheMinute=function(){return"teen %s sekondes na die minuut"},t.prototype.everyX0Minutes=function(){return"elke %s minute"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"minute %s deur na %s na die uur"},t.prototype.atX0MinutesPastTheHour=function(){return"teen %s minute na die uur"},t.prototype.everyX0Hours=function(){return"elke %s ure"},t.prototype.betweenX0AndX1=function(){return"tussen %s en %s"},t.prototype.atX0=function(){return"teen %s"},t.prototype.commaEveryDay=function(){return", elke dag"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", elke %s dae van die week"},t.prototype.commaX0ThroughX1=function(){return", %s deur na %s"},t.prototype.commaAndX0ThroughX1=function(){return", en %s deur na %s"},t.prototype.first=function(){return"eerste"},t.prototype.second=function(){return"tweede"},t.prototype.third=function(){return"derde"},t.prototype.fourth=function(){return"vierde"},t.prototype.fifth=function(){return"vyfde"},t.prototype.commaOnThe=function(){return", op die "},t.prototype.spaceX0OfTheMonth=function(){return" %s van die maand"},t.prototype.lastDay=function(){return"die laaste dag"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", op die laaste %s van die maand"},t.prototype.commaOnlyOnX0=function(){return", net op %s"},t.prototype.commaAndOnX0=function(){return", en op %s"},t.prototype.commaEveryX0Months=function(){return", elke %s maande"},t.prototype.commaOnlyInX0=function(){return", net in %s"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", op die laaste dag van die maand"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", op die laaste weeksdag van die maand"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dae voor die laaste dag van die maand"},t.prototype.firstWeekday=function(){return"eerste weeksdag"},t.prototype.weekdayNearestDayX0=function(){return"weeksdag naaste aan dag %s"},t.prototype.commaOnTheX0OfTheMonth=function(){return", op die %s van die maande"},t.prototype.commaEveryX0Days=function(){return", elke %s dae"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", tussen dag %s en %s van die maand"},t.prototype.commaOnDayX0OfTheMonth=function(){return", op dag %s van die maand"},t.prototype.commaEveryHour=function(){return", elke uur"},t.prototype.commaEveryX0Years=function(){return", elke %s jare"},t.prototype.commaStartingX0=function(){return", beginnende %s"},t.prototype.daysOfTheWeek=function(){return["Sondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrydag","Saterdag"]},t.prototype.monthsOfTheYear=function(){return["Januarie","Februarie","Maart","April","Mei","Junie","Julie","Augustus","September","Oktober","November","Desember"]},t.prototype.onTheHour=function(){return"op die uur"},t}();s.af=p},574(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.ar=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"حدث خطأ في إنشاء وصف المصطلح٠ تأكد من تركيب مصطلح الكرون"},t.prototype.everyMinute=function(){return"كل دقيقة"},t.prototype.everyHour=function(){return"كل ساعة"},t.prototype.atSpace=function(){return" "},t.prototype.everyMinuteBetweenX0AndX1=function(){return"كل دقيقة بين %s و %s"},t.prototype.at=function(){return""},t.prototype.spaceAnd=function(){return" و"},t.prototype.everySecond=function(){return"كل ثانية"},t.prototype.everyX0Seconds=function(){return"كل %s ثواني"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"الثواني %s حتى %s من بداية الدقيقة"},t.prototype.atX0SecondsPastTheMinute=function(){return"الثانية %s من بداية الدقيقة"},t.prototype.everyX0Minutes=function(){return"كل %s دقائق"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"الدقائق %s حتى %s من بداية الساعة"},t.prototype.atX0MinutesPastTheHour=function(){return"الدقيقة %s من بداية الساعة"},t.prototype.everyX0Hours=function(){return"كل %s ساعات"},t.prototype.betweenX0AndX1=function(){return"بين %s و %s"},t.prototype.atX0=function(){return"%s"},t.prototype.commaEveryDay=function(){return"، كل يوم"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return"، كل %s من أيام الأسبوع"},t.prototype.commaX0ThroughX1=function(){return"، %s حتى %s"},t.prototype.commaAndX0ThroughX1=function(){return"، و %s حتى %s"},t.prototype.first=function(){return"أول"},t.prototype.second=function(){return"ثاني"},t.prototype.third=function(){return"ثالث"},t.prototype.fourth=function(){return"رابع"},t.prototype.fifth=function(){return"خامس"},t.prototype.commaOnThe=function(){return"، في ال"},t.prototype.spaceX0OfTheMonth=function(){return" %s من الشهر"},t.prototype.lastDay=function(){return"اليوم الأخير"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return"، في اخر %s من الشهر"},t.prototype.commaOnlyOnX0=function(){return"، %s فقط"},t.prototype.commaAndOnX0=function(){return"، وفي %s"},t.prototype.commaEveryX0Months=function(){return"، كل %s أشهر"},t.prototype.commaOnlyInX0=function(){return"، %s فقط"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return"، في اخر يوم من الشهر"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return"، في اخر يوم أسبوع من الشهر"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return"، %s أيام قبل اخر يوم من الشهر"},t.prototype.firstWeekday=function(){return"اول ايام الأسبوع"},t.prototype.weekdayNearestDayX0=function(){return"يوم الأسبوع الأقرب ليوم %s"},t.prototype.commaOnTheX0OfTheMonth=function(){return"، في %s من الشهر"},t.prototype.commaEveryX0Days=function(){return"، كل %s أيام"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return"، بين يوم %s و %s من الشهر"},t.prototype.commaOnDayX0OfTheMonth=function(){return"، في اليوم %s من الشهر"},t.prototype.commaEveryHour=function(){return"، كل ساعة"},t.prototype.commaEveryX0Years=function(){return"، كل %s سنوات"},t.prototype.commaStartingX0=function(){return"، بداية من %s"},t.prototype.daysOfTheWeek=function(){return["الأحد","الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت"]},t.prototype.monthsOfTheYear=function(){return["يناير","فبراير","مارس","ابريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"]},t.prototype.onTheHour=function(){return"في تمام الساعة"},t}();s.ar=p},348(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.be=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!1},t.prototype.everyMinute=function(){return"кожную хвіліну"},t.prototype.everyHour=function(){return"кожную гадзіну"},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Адбылася памылка падчас генерацыі апісання выразы. Праверце сінтаксіс крон-выразы."},t.prototype.atSpace=function(){return"У "},t.prototype.everyMinuteBetweenX0AndX1=function(){return"Кожную хвіліну з %s да %s"},t.prototype.at=function(){return"У"},t.prototype.spaceAnd=function(){return" і"},t.prototype.everySecond=function(){return"кожную секунду"},t.prototype.everyX0Seconds=function(){return"кожныя %s секунд"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"секунды з %s па %s"},t.prototype.atX0SecondsPastTheMinute=function(){return"у %s секунд"},t.prototype.everyX0Minutes=function(){return"кожныя %s хвілін"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"хвіліны з %s па %s"},t.prototype.atX0MinutesPastTheHour=function(){return"у %s хвілін"},t.prototype.everyX0Hours=function(){return"кожныя %s гадзін"},t.prototype.betweenX0AndX1=function(){return"з %s па %s"},t.prototype.atX0=function(){return"у %s"},t.prototype.commaEveryDay=function(){return", кожны дзень"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", кожныя %s дзён тыдня"},t.prototype.commaX0ThroughX1=function(){return", %s па %s"},t.prototype.commaAndX0ThroughX1=function(){return", і %s па %s"},t.prototype.first=function(){return"першы"},t.prototype.second=function(){return"другі"},t.prototype.third=function(){return"трэці"},t.prototype.fourth=function(){return"чацвёрты"},t.prototype.fifth=function(){return"пяты"},t.prototype.commaOnThe=function(){return", у "},t.prototype.spaceX0OfTheMonth=function(){return" %s месяца"},t.prototype.lastDay=function(){return"апошні дзень"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", у апошні %s месяца"},t.prototype.commaOnlyOnX0=function(){return", толькі ў %s"},t.prototype.commaAndOnX0=function(){return", і ў %s"},t.prototype.commaEveryX0Months=function(){return", кожныя %s месяцаў"},t.prototype.commaOnlyInX0=function(){return", толькі ў %s"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", у апошні дзень месяца"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", у апошні будні дзень месяца"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s дзён да апошняга дня месяца"},t.prototype.firstWeekday=function(){return"першы будны дзень"},t.prototype.weekdayNearestDayX0=function(){return"найбліжэйшы будны дзень да %s"},t.prototype.commaOnTheX0OfTheMonth=function(){return", у %s месяцы"},t.prototype.commaEveryX0Days=function(){return", кожныя %s дзён"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", з %s па %s лік месяца"},t.prototype.commaOnDayX0OfTheMonth=function(){return", у %s лік месяца"},t.prototype.commaEveryX0Years=function(){return", кожныя %s гадоў"},t.prototype.commaStartingX0=function(){return", пачатак %s"},t.prototype.daysOfTheWeek=function(){return["нядзеля","панядзелак","аўторак","серада","чацвер","пятніца","субота"]},t.prototype.monthsOfTheYear=function(){return["студзень","люты","сакавік","красавік","травень","чэрвень","ліпень","жнівень","верасень","кастрычнік","лістапад","снежань"]},t.prototype.onTheHour=function(){return"роўна ў гадзіну"},t}();s.be=p},622(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.bg=void 0;var p=function(a,i){var y=a!=null?Number(a):0;return y<2?i[0]:i[1]},t=function(a,i){var y=a!=null?Number(a):0;return i[[1,0,0,1,0,0,1][y]]},x=function(a,i){var y=a!=null?Number(a):1;y=Math.max(Math.min(y<10||y>20&&y%10!==0?y%10:3,3),1)-1;var j=["м","ж","ср"].indexOf(i);return["в","р","т"][y]+["и","а","о"][j]},h=function(){function a(){}return a.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},a.prototype.atX0MinutesPastTheHourGt20=function(){return null},a.prototype.commaMonthX0ThroughMonthX1=function(){return null},a.prototype.commaYearX0ThroughYearX1=function(){return null},a.prototype.use24HourTimeFormatByDefault=function(){return!0},a.prototype.everyMinute=function(){return"всяка минута"},a.prototype.everyHour=function(){return"всеки час"},a.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Възникна грешка при генериране на описанието на израза. Проверете синтаксиса на cron израза."},a.prototype.atSpace=function(){return"В "},a.prototype.everyMinuteBetweenX0AndX1=function(){return"Всяка минута от %s до %s"},a.prototype.at=function(){return"В"},a.prototype.spaceAnd=function(){return" и"},a.prototype.everySecond=function(){return"всяка секунда"},a.prototype.everyX0Seconds=function(i){return"всеки %s секунди"},a.prototype.secondsX0ThroughX1PastTheMinute=function(){return"секунди от %s до %s"},a.prototype.atX0SecondsPastTheMinute=function(i){return"%s-".concat(x(i,"ж")," секунда")},a.prototype.everyX0Minutes=function(i){return"всеки %s минути"},a.prototype.minutesX0ThroughX1PastTheHour=function(){return"минути от %s до %s"},a.prototype.atX0MinutesPastTheHour=function(i){return"%s-".concat(x(i,"ж")," минутa")},a.prototype.everyX0Hours=function(i){return"всеки %s часа"},a.prototype.betweenX0AndX1=function(){return"от %s до %s"},a.prototype.atX0=function(){return"в %s"},a.prototype.commaEveryDay=function(){return", всеки ден"},a.prototype.commaEveryX0DaysOfTheWeek=function(i){return p(i,[", всеки %s ден от седмицата",", всеки %s дена от седмицата"])},a.prototype.commaX0ThroughX1=function(i){return", от %s до %s"},a.prototype.commaAndX0ThroughX1=function(i){return" и от %s до %s"},a.prototype.first=function(i){return t(i,["первият","первата"])},a.prototype.second=function(i){return t(i,["вторият","втората"])},a.prototype.third=function(i){return t(i,["третият","третата"])},a.prototype.fourth=function(i){return t(i,["четвертият","четвертата"])},a.prototype.fifth=function(i){return t(i,["петият","петата"])},a.prototype.commaOnThe=function(i){return", "},a.prototype.spaceX0OfTheMonth=function(){return" %s на месеца"},a.prototype.lastDay=function(){return"последният ден"},a.prototype.commaOnTheLastX0OfTheMonth=function(i){return t(i,[", в последният %s от месеца",", в последната %s отмесеца"])},a.prototype.commaOnlyOnX0=function(i){return", %s"},a.prototype.commaAndOnX0=function(){return" и %s"},a.prototype.commaEveryX0Months=function(i){return" всеки %s месеца"},a.prototype.commaOnlyInMonthX0=function(){return", %s"},a.prototype.commaOnlyInX0=function(){return", в %s"},a.prototype.commaOnTheLastDayOfTheMonth=function(){return", в последният ден на месеца"},a.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", в последния делничен ден от месеца"},a.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(i){return p(i,[", %s ден преди края на месеца",", %s дена преди края на месеца"])},a.prototype.firstWeekday=function(){return"първият делничен ден"},a.prototype.weekdayNearestDayX0=function(){return"най-близкият делничен ден до %s число"},a.prototype.commaOnTheX0OfTheMonth=function(){return", на %s число от месеца"},a.prototype.commaEveryX0Days=function(i){return p(i,[", всеки %s ден",", всеки %s дена"])},a.prototype.commaBetweenDayX0AndX1OfTheMonth=function(i){var y,j=(y=i?.split("-"))!==null&&y!==void 0?y:[];return", от %s-".concat(x(j[0],"ср")," до %s-").concat(x(j[1],"ср")," число на месеца")},a.prototype.commaOnDayX0OfTheMonth=function(i){return", на %s-".concat(x(i,"ср")," число от месеца")},a.prototype.commaEveryX0Years=function(i){return p(i,[", всяка %s година",", всеки %s години"])},a.prototype.commaStartingX0=function(){return", започвайки %s"},a.prototype.daysOfTheWeek=function(){return["неделя","понеделник","вторник","сряда","четвъртък","петък","събота"]},a.prototype.monthsOfTheYear=function(){return["януари","февруари","март","април","май","юни","юли","август","септевмври","октомври","ноември","декември"]},a.prototype.onTheHour=function(){return"в началото на часа"},a}();s.bg=h},845(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.ca=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"S'ha produït un error mentres es generava la descripció de l'expressió. Revisi la sintaxi de la expressió de cron."},t.prototype.at=function(){return"A les"},t.prototype.atSpace=function(){return"A les "},t.prototype.atX0=function(){return"a les %s"},t.prototype.atX0MinutesPastTheHour=function(){return"als %s minuts de l'hora"},t.prototype.atX0SecondsPastTheMinute=function(){return"als %s segonds del minut"},t.prototype.betweenX0AndX1=function(){return"entre les %s i les %s"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", entre els dies %s i %s del mes"},t.prototype.commaEveryDay=function(){return", cada dia"},t.prototype.commaEveryX0Days=function(){return", cada %s dies"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", cada %s dies de la setmana"},t.prototype.commaEveryX0Months=function(){return", cada %s mesos"},t.prototype.commaOnDayX0OfTheMonth=function(){return", el dia %s del mes"},t.prototype.commaOnlyInX0=function(){return", sólo en %s"},t.prototype.commaOnlyOnX0=function(){return", només el %s"},t.prototype.commaAndOnX0=function(){return", i el %s"},t.prototype.commaOnThe=function(){return", en el "},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", en l'últim dia del mes"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", en l'últim dia de la setmana del mes"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dies abans de l'últim dia del mes"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", en l'últim %s del mes"},t.prototype.commaOnTheX0OfTheMonth=function(){return", en el %s del mes"},t.prototype.commaX0ThroughX1=function(){return", de %s a %s"},t.prototype.commaAndX0ThroughX1=function(){return", i de %s a %s"},t.prototype.everyHour=function(){return"cada hora"},t.prototype.everyMinute=function(){return"cada minut"},t.prototype.everyMinuteBetweenX0AndX1=function(){return"cada minut entre les %s i les %s"},t.prototype.everySecond=function(){return"cada segon"},t.prototype.everyX0Hours=function(){return"cada %s hores"},t.prototype.everyX0Minutes=function(){return"cada %s minuts"},t.prototype.everyX0Seconds=function(){return"cada %s segons"},t.prototype.fifth=function(){return"cinquè"},t.prototype.first=function(){return"primer"},t.prototype.firstWeekday=function(){return"primer dia de la setmana"},t.prototype.fourth=function(){return"quart"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"del minut %s al %s passada l'hora"},t.prototype.second=function(){return"segon"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"En els segons %s al %s de cada minut"},t.prototype.spaceAnd=function(){return" i"},t.prototype.spaceX0OfTheMonth=function(){return" %s del mes"},t.prototype.lastDay=function(){return"l'últim dia"},t.prototype.third=function(){return"tercer"},t.prototype.weekdayNearestDayX0=function(){return"dia de la setmana més proper al %s"},t.prototype.commaEveryX0Years=function(){return", cada %s anys"},t.prototype.commaStartingX0=function(){return", començant %s"},t.prototype.daysOfTheWeek=function(){return["diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte"]},t.prototype.monthsOfTheYear=function(){return["gener","febrer","març","abril","maig","juny","juliol","agost","setembre","octubre","novembre","desembre"]},t.prototype.onTheHour=function(){return"en punt"},t}();s.ca=p},651(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.cs=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Při vytváření popisu došlo k chybě. Zkontrolujte prosím správnost syntaxe cronu."},t.prototype.everyMinute=function(){return"každou minutu"},t.prototype.everyHour=function(){return"každou hodinu"},t.prototype.atSpace=function(){return"V "},t.prototype.everyMinuteBetweenX0AndX1=function(){return"Každou minutu mezi %s a %s"},t.prototype.at=function(){return"V"},t.prototype.spaceAnd=function(){return" a"},t.prototype.everySecond=function(){return"každou sekundu"},t.prototype.everyX0Seconds=function(){return"každých %s sekund"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"sekundy od %s do %s"},t.prototype.atX0SecondsPastTheMinute=function(){return"v %s sekund"},t.prototype.everyX0Minutes=function(){return"každých %s minut"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"minuty od %s do %s"},t.prototype.atX0MinutesPastTheHour=function(){return"v %s minut"},t.prototype.everyX0Hours=function(){return"každých %s hodin"},t.prototype.betweenX0AndX1=function(){return"mezi %s a %s"},t.prototype.atX0=function(){return"v %s"},t.prototype.commaEveryDay=function(){return", každý den"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", každých %s dní v týdnu"},t.prototype.commaX0ThroughX1=function(){return", od %s do %s"},t.prototype.commaAndX0ThroughX1=function(){return", a od %s do %s"},t.prototype.first=function(){return"první"},t.prototype.second=function(){return"druhý"},t.prototype.third=function(){return"třetí"},t.prototype.fourth=function(){return"čtvrtý"},t.prototype.fifth=function(){return"pátý"},t.prototype.commaOnThe=function(){return", "},t.prototype.spaceX0OfTheMonth=function(){return" %s v měsíci"},t.prototype.lastDay=function(){return"poslední den"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", poslední %s v měsíci"},t.prototype.commaOnlyOnX0=function(){return", pouze v %s"},t.prototype.commaAndOnX0=function(){return", a v %s"},t.prototype.commaEveryX0Months=function(){return", každých %s měsíců"},t.prototype.commaOnlyInX0=function(){return", pouze v %s"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", poslední den v měsíci"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", poslední pracovní den v měsíci"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dní před posledním dnem v měsíci"},t.prototype.firstWeekday=function(){return"první pracovní den"},t.prototype.weekdayNearestDayX0=function(){return"pracovní den nejblíže %s. dni"},t.prototype.commaOnTheX0OfTheMonth=function(){return", v %s v měsíci"},t.prototype.commaEveryX0Days=function(){return", každých %s dnů"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", mezi dny %s a %s v měsíci"},t.prototype.commaOnDayX0OfTheMonth=function(){return", %s. den v měsíci"},t.prototype.commaEveryX0Years=function(){return", každých %s roků"},t.prototype.commaStartingX0=function(){return", začínající %s"},t.prototype.daysOfTheWeek=function(){return["Neděle","Pondělí","Úterý","Středa","Čtvrtek","Pátek","Sobota"]},t.prototype.monthsOfTheYear=function(){return["Leden","Únor","Březen","Duben","Květen","Červen","Červenec","Srpen","Září","Říjen","Listopad","Prosinec"]},t.prototype.onTheHour=function(){return"v celou hodinu"},t}();s.cs=p},506(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.da=void 0;var p=function(){function t(){}return t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Der opstod en fejl ved generering af udtryksbeskrivelsen. Tjek cron-ekspressionssyntaxen."},t.prototype.at=function(){return"kl"},t.prototype.atSpace=function(){return"kl "},t.prototype.atX0=function(){return"kl %s"},t.prototype.atX0MinutesPastTheHour=function(){return"%s minutter efter timeskift"},t.prototype.atX0SecondsPastTheMinute=function(){return"%s sekunder efter minutskift"},t.prototype.betweenX0AndX1=function(){return"mellem %s og %s"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", mellem dag %s og %s i måneden"},t.prototype.commaEveryDay=function(){return", hver dag"},t.prototype.commaEveryX0Days=function(){return", hver %s. dag"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", hver %s. ugedag"},t.prototype.commaEveryX0Months=function(){return", hver %s. måned"},t.prototype.commaEveryX0Years=function(){return", hvert %s. år"},t.prototype.commaOnDayX0OfTheMonth=function(){return", på dag %s i måneden"},t.prototype.commaOnlyInX0=function(){return", kun i %s"},t.prototype.commaOnlyOnX0=function(x){return", på enhver %s"},t.prototype.commaAndOnX0=function(){return", og på %s"},t.prototype.commaOnThe=function(){return", på den "},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", på den sidste dag i måneden"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", på den sidste hverdag i måneden"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dage før den sidste dag i måneden"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", på den sidste %s i måneden"},t.prototype.commaOnTheX0OfTheMonth=function(){return", på den %s i måneden"},t.prototype.commaX0ThroughX1=function(){return", %s til og med %s"},t.prototype.commaAndX0ThroughX1=function(){return", og %s til og med %s"},t.prototype.everyHour=function(){return"hver time"},t.prototype.everyMinute=function(){return"hvert minut"},t.prototype.everyMinuteBetweenX0AndX1=function(){return"hvert minut mellem %s og %s"},t.prototype.everySecond=function(){return"hvert sekund"},t.prototype.everyX0Hours=function(){return"hver %s. time"},t.prototype.everyX0Minutes=function(){return"hvert %s. minut"},t.prototype.everyX0Seconds=function(){return"hvert %s. sekund"},t.prototype.fifth=function(){return"femte"},t.prototype.first=function(){return"første"},t.prototype.firstWeekday=function(){return"første hverdag"},t.prototype.fourth=function(){return"fjerde"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"minutterne fra %s til og med %s hver time"},t.prototype.second=function(){return"anden"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"sekunderne fra %s til og med %s hvert minut"},t.prototype.spaceAnd=function(){return" og"},t.prototype.spaceX0OfTheMonth=function(){return" %s i måneden"},t.prototype.lastDay=function(){return"sidste dag"},t.prototype.third=function(){return"tredje"},t.prototype.weekdayNearestDayX0=function(){return"hverdag nærmest dag %s"},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.commaStartingX0=function(){return", startende %s"},t.prototype.daysOfTheWeek=function(){return["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"]},t.prototype.monthsOfTheYear=function(){return["januar","februar","marts","april","maj","juni","juli","august","september","oktober","november","december"]},t.prototype.onTheHour=function(){return"på timen"},t}();s.da=p},230(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.de=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.everyMinute=function(){return"jede Minute"},t.prototype.everyHour=function(){return"jede Stunde"},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Beim Generieren der Ausdrucksbeschreibung ist ein Fehler aufgetreten. Überprüfen Sie die Syntax des Cron-Ausdrucks."},t.prototype.atSpace=function(){return"Um "},t.prototype.everyMinuteBetweenX0AndX1=function(){return"Jede Minute zwischen %s und %s"},t.prototype.at=function(){return"Um"},t.prototype.spaceAnd=function(){return" und"},t.prototype.everySecond=function(){return"Jede Sekunde"},t.prototype.everyX0Seconds=function(){return"alle %s Sekunden"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"Sekunden %s bis %s"},t.prototype.atX0SecondsPastTheMinute=function(){return"bei Sekunde %s"},t.prototype.everyX0Minutes=function(){return"alle %s Minuten"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"Minuten %s bis %s"},t.prototype.atX0MinutesPastTheHour=function(){return"bei Minute %s"},t.prototype.everyX0Hours=function(){return"alle %s Stunden"},t.prototype.betweenX0AndX1=function(){return"zwischen %s und %s"},t.prototype.atX0=function(){return"um %s"},t.prototype.commaEveryDay=function(){return", jeden Tag"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", alle %s Tage der Woche"},t.prototype.commaX0ThroughX1=function(){return", %s bis %s"},t.prototype.commaAndX0ThroughX1=function(){return", und %s bis %s"},t.prototype.first=function(){return"ersten"},t.prototype.second=function(){return"zweiten"},t.prototype.third=function(){return"dritten"},t.prototype.fourth=function(){return"vierten"},t.prototype.fifth=function(){return"fünften"},t.prototype.commaOnThe=function(){return", am "},t.prototype.spaceX0OfTheMonth=function(){return" %s des Monats"},t.prototype.lastDay=function(){return"der letzte Tag"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", am letzten %s des Monats"},t.prototype.commaOnlyOnX0=function(){return", nur jeden %s"},t.prototype.commaAndOnX0=function(){return", und jeden %s"},t.prototype.commaEveryX0Months=function(){return", alle %s Monate"},t.prototype.commaOnlyInX0=function(){return", nur im %s"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", am letzten Tag des Monats"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", am letzten Werktag des Monats"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s tage vor dem letzten Tag des Monats"},t.prototype.firstWeekday=function(){return"ersten Werktag"},t.prototype.weekdayNearestDayX0=function(){return"Werktag am nächsten zum %s Tag"},t.prototype.commaOnTheX0OfTheMonth=function(){return", am %s des Monats"},t.prototype.commaEveryX0Days=function(){return", alle %s Tage"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", zwischen Tag %s und %s des Monats"},t.prototype.commaOnDayX0OfTheMonth=function(){return", an Tag %s des Monats"},t.prototype.commaEveryX0Years=function(){return", alle %s Jahre"},t.prototype.commaStartingX0=function(){return", beginnend %s"},t.prototype.daysOfTheWeek=function(){return["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},t.prototype.monthsOfTheYear=function(){return["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"]},t.prototype.onTheHour=function(){return"zur vollen Stunde"},t}();s.de=p},486(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.en=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!1},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"An error occurred when generating the expression description. Check the cron expression syntax."},t.prototype.everyMinute=function(){return"every minute"},t.prototype.everyHour=function(){return"every hour"},t.prototype.atSpace=function(){return"At "},t.prototype.everyMinuteBetweenX0AndX1=function(){return"Every minute between %s and %s"},t.prototype.at=function(){return"At"},t.prototype.spaceAnd=function(){return" and"},t.prototype.everySecond=function(){return"every second"},t.prototype.everyX0Seconds=function(){return"every %s seconds"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"seconds %s through %s past the minute"},t.prototype.atX0SecondsPastTheMinute=function(){return"at %s seconds past the minute"},t.prototype.everyX0Minutes=function(){return"every %s minutes"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"minutes %s through %s past the hour"},t.prototype.atX0MinutesPastTheHour=function(){return"at %s minutes past the hour"},t.prototype.everyX0Hours=function(){return"every %s hours"},t.prototype.betweenX0AndX1=function(){return"between %s and %s"},t.prototype.atX0=function(){return"at %s"},t.prototype.commaEveryDay=function(){return", every day"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", every %s days of the week"},t.prototype.commaX0ThroughX1=function(){return", %s through %s"},t.prototype.commaAndX0ThroughX1=function(){return", %s through %s"},t.prototype.first=function(){return"first"},t.prototype.second=function(){return"second"},t.prototype.third=function(){return"third"},t.prototype.fourth=function(){return"fourth"},t.prototype.fifth=function(){return"fifth"},t.prototype.commaOnThe=function(){return", on the "},t.prototype.spaceX0OfTheMonth=function(){return" %s of the month"},t.prototype.lastDay=function(){return"the last day"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", on the last %s of the month"},t.prototype.commaOnlyOnX0=function(){return", only on %s"},t.prototype.commaAndOnX0=function(){return", and on %s"},t.prototype.commaEveryX0Months=function(){return", every %s months"},t.prototype.commaOnlyInX0=function(){return", only in %s"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", on the last day of the month"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", on the last weekday of the month"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s days before the last day of the month"},t.prototype.firstWeekday=function(){return"first weekday"},t.prototype.weekdayNearestDayX0=function(){return"weekday nearest day %s"},t.prototype.commaOnTheX0OfTheMonth=function(){return", on the %s of the month"},t.prototype.commaEveryX0Days=function(){return", every %s days in a month"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", between day %s and %s of the month"},t.prototype.commaOnDayX0OfTheMonth=function(){return", on day %s of the month"},t.prototype.commaEveryHour=function(){return", every hour"},t.prototype.commaEveryX0Years=function(){return", every %s years"},t.prototype.commaStartingX0=function(){return", starting %s"},t.prototype.daysOfTheWeek=function(){return["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},t.prototype.monthsOfTheYear=function(){return["January","February","March","April","May","June","July","August","September","October","November","December"]},t.prototype.atReboot=function(){return"Run once, at startup"},t.prototype.onTheHour=function(){return"on the hour"},t}();s.en=p},153(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.es=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Ocurrió un error mientras se generaba la descripción de la expresión. Revise la sintaxis de la expresión de cron."},t.prototype.at=function(){return"A las"},t.prototype.atSpace=function(){return"A las "},t.prototype.atX0=function(){return"a las %s"},t.prototype.atX0MinutesPastTheHour=function(){return"a los %s minutos de la hora"},t.prototype.atX0SecondsPastTheMinute=function(){return"a los %s segundos del minuto"},t.prototype.betweenX0AndX1=function(){return"entre las %s y las %s"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", entre los días %s y %s del mes"},t.prototype.commaEveryDay=function(){return", cada día"},t.prototype.commaEveryX0Days=function(){return", cada %s días"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", cada %s días de la semana"},t.prototype.commaEveryX0Months=function(){return", cada %s meses"},t.prototype.commaOnDayX0OfTheMonth=function(){return", el día %s del mes"},t.prototype.commaOnlyInX0=function(){return", sólo en %s"},t.prototype.commaOnlyOnX0=function(){return", sólo el %s"},t.prototype.commaAndOnX0=function(){return", y el %s"},t.prototype.commaOnThe=function(){return", en el "},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", en el último día del mes"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", en el último día de la semana del mes"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s días antes del último día del mes"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", en el último %s del mes"},t.prototype.commaOnTheX0OfTheMonth=function(){return", en el %s del mes"},t.prototype.commaX0ThroughX1=function(){return", de %s a %s"},t.prototype.commaAndX0ThroughX1=function(){return", y de %s a %s"},t.prototype.everyHour=function(){return"cada hora"},t.prototype.everyMinute=function(){return"cada minuto"},t.prototype.everyMinuteBetweenX0AndX1=function(){return"cada minuto entre las %s y las %s"},t.prototype.everySecond=function(){return"cada segundo"},t.prototype.everyX0Hours=function(){return"cada %s horas"},t.prototype.everyX0Minutes=function(){return"cada %s minutos"},t.prototype.everyX0Seconds=function(){return"cada %s segundos"},t.prototype.fifth=function(){return"quinto"},t.prototype.first=function(){return"primero"},t.prototype.firstWeekday=function(){return"primer día de la semana"},t.prototype.fourth=function(){return"cuarto"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"del minuto %s al %s pasada la hora"},t.prototype.second=function(){return"segundo"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"En los segundos %s al %s de cada minuto"},t.prototype.spaceAnd=function(){return" y"},t.prototype.spaceX0OfTheMonth=function(){return" %s del mes"},t.prototype.lastDay=function(){return"el último día"},t.prototype.third=function(){return"tercer"},t.prototype.weekdayNearestDayX0=function(){return"día de la semana más próximo al %s"},t.prototype.commaEveryX0Years=function(){return", cada %s años"},t.prototype.commaStartingX0=function(){return", comenzando %s"},t.prototype.daysOfTheWeek=function(){return["domingo","lunes","martes","miércoles","jueves","viernes","sábado"]},t.prototype.monthsOfTheYear=function(){return["enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre"]},t.prototype.onTheHour=function(){return"en punto"},t}();s.es=p},804(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.fa=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"خطایی در نمایش توضیحات این وظیفه رخ داد. لطفا ساختار آن را بررسی کنید."},t.prototype.everyMinute=function(){return"هر دقیقه"},t.prototype.everyHour=function(){return"هر ساعت"},t.prototype.atSpace=function(){return"در "},t.prototype.everyMinuteBetweenX0AndX1=function(){return"هر دقیقه بین %s و %s"},t.prototype.at=function(){return"در"},t.prototype.spaceAnd=function(){return" و"},t.prototype.everySecond=function(){return"هر ثانیه"},t.prototype.everyX0Seconds=function(){return"هر %s ثانیه"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"ثانیه %s تا %s دقیقه گذشته"},t.prototype.atX0SecondsPastTheMinute=function(){return"در %s قانیه از دقیقه گذشته"},t.prototype.everyX0Minutes=function(){return"هر %s دقیقه"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"دقیقه %s تا %s ساعت گذشته"},t.prototype.atX0MinutesPastTheHour=function(){return"در %s دقیقه پس از ساعت"},t.prototype.everyX0Hours=function(){return"هر %s ساعت"},t.prototype.betweenX0AndX1=function(){return"بین %s و %s"},t.prototype.atX0=function(){return"در %s"},t.prototype.commaEveryDay=function(){return", هر روز"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", هر %s روز از هفته"},t.prototype.commaX0ThroughX1=function(){return", %s تا %s"},t.prototype.commaAndX0ThroughX1=function(){return", و %s تا %s"},t.prototype.first=function(){return"اول"},t.prototype.second=function(){return"دوم"},t.prototype.third=function(){return"سوم"},t.prototype.fourth=function(){return"چهارم"},t.prototype.fifth=function(){return"پنجم"},t.prototype.commaOnThe=function(){return", در "},t.prototype.spaceX0OfTheMonth=function(){return" %s ماه"},t.prototype.lastDay=function(){return"آخرین روز"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", در %s ماه"},t.prototype.commaOnlyOnX0=function(){return", فقط در %s"},t.prototype.commaAndOnX0=function(){return", و در %s"},t.prototype.commaEveryX0Months=function(){return", هر %s ماه"},t.prototype.commaOnlyInX0=function(){return", فقط در %s"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", در آخرین روز ماه"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", در آخرین روز ماه"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s روز قبل از آخرین روز ماه"},t.prototype.firstWeekday=function(){return"اولین روز"},t.prototype.weekdayNearestDayX0=function(){return"روز نزدیک به روز %s"},t.prototype.commaOnTheX0OfTheMonth=function(){return", در %s ماه"},t.prototype.commaEveryX0Days=function(){return", هر %s روز"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", بین روز %s و %s ماه"},t.prototype.commaOnDayX0OfTheMonth=function(){return", در %s ماه"},t.prototype.commaEveryMinute=function(){return", هر minute"},t.prototype.commaEveryHour=function(){return", هر ساعت"},t.prototype.commaEveryX0Years=function(){return", هر %s سال"},t.prototype.commaStartingX0=function(){return", آغاز %s"},t.prototype.daysOfTheWeek=function(){return["یکشنبه","دوشنبه","سهشنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"]},t.prototype.monthsOfTheYear=function(){return["ژانویه","فوریه","مارس","آپریل","مه","ژوئن","ژوئیه","آگوست","سپتامبر","اکتبر","نوامبر","دسامبر"]},t.prototype.onTheHour=function(){return"سر ساعت"},t}();s.fa=p},964(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.fi=void 0;var p=function(){function t(){}return t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Virhe kuvauksen generoinnissa. Tarkista cron-syntaksi."},t.prototype.at=function(){return"Klo"},t.prototype.atSpace=function(){return"Klo "},t.prototype.atX0=function(){return"klo %s"},t.prototype.atX0MinutesPastTheHour=function(){return"%s minuuttia yli"},t.prototype.atX0MinutesPastTheHourGt20=function(){return"%s minuuttia yli"},t.prototype.atX0SecondsPastTheMinute=function(){return"%s sekunnnin jälkeen"},t.prototype.betweenX0AndX1=function(){return"%s - %s välillä"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", kuukauden päivien %s ja %s välillä"},t.prototype.commaEveryDay=function(){return", joka päivä"},t.prototype.commaEveryHour=function(){return", joka tunti"},t.prototype.commaEveryMinute=function(){return", joka minuutti"},t.prototype.commaEveryX0Days=function(){return", joka %s. päivä"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", joka %s. viikonpäivä"},t.prototype.commaEveryX0Months=function(){return", joka %s. kuukausi"},t.prototype.commaEveryX0Years=function(){return", joka %s. vuosi"},t.prototype.commaOnDayX0OfTheMonth=function(){return", kuukauden %s päivä"},t.prototype.commaOnlyInX0=function(){return", vain %s"},t.prototype.commaOnlyOnX0=function(){return", vain %s"},t.prototype.commaOnThe=function(){return","},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", kuukauden viimeisenä päivänä"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", kuukauden viimeisenä viikonpäivänä"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", kuukauden viimeinen %s"},t.prototype.commaOnTheX0OfTheMonth=function(){return", kuukauden %s"},t.prototype.commaX0ThroughX1=function(){return", %s - %s"},t.prototype.commaAndX0ThroughX1=function(){return", %s - %s"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s päivää ennen kuukauden viimeistä päivää"},t.prototype.commaStartingX0=function(){return", alkaen %s"},t.prototype.everyHour=function(){return"joka tunti"},t.prototype.everyMinute=function(){return"joka minuutti"},t.prototype.everyMinuteBetweenX0AndX1=function(){return"joka minuutti %s - %s välillä"},t.prototype.everySecond=function(){return"joka sekunti"},t.prototype.everyX0Hours=function(){return"joka %s. tunti"},t.prototype.everyX0Minutes=function(){return"joka %s. minuutti"},t.prototype.everyX0Seconds=function(){return"joka %s. sekunti"},t.prototype.fifth=function(){return"viides"},t.prototype.first=function(){return"ensimmäinen"},t.prototype.firstWeekday=function(){return"ensimmäinen viikonpäivä"},t.prototype.fourth=function(){return"neljäs"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"joka tunti minuuttien %s - %s välillä"},t.prototype.second=function(){return"toinen"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"joka minuutti sekunttien %s - %s välillä"},t.prototype.spaceAnd=function(){return" ja"},t.prototype.spaceAndSpace=function(){return" ja "},t.prototype.spaceX0OfTheMonth=function(){return" %s kuukaudessa"},t.prototype.third=function(){return"kolmas"},t.prototype.weekdayNearestDayX0=function(){return"viikonpäivä lähintä %s päivää"},t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.lastDay=function(){return"viimeinen päivä"},t.prototype.commaAndOnX0=function(){return", ja edelleen %s"},t.prototype.daysOfTheWeek=function(){return["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"]},t.prototype.monthsOfTheYear=function(){return["tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu","heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"]},t.prototype.onTheHour=function(){return"tasalta"},t}();s.fi=p},517(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.fr=void 0;var p=function(){function t(){}return t.prototype.conciseVerbosityReplacements=function(){return{"de le":"du"}},t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Une erreur est survenue en générant la description de l'expression cron. Vérifiez sa syntaxe."},t.prototype.everyMinute=function(){return"toutes les minutes"},t.prototype.everyHour=function(){return"toutes les heures"},t.prototype.atSpace=function(){return"À "},t.prototype.everyMinuteBetweenX0AndX1=function(){return"Toutes les minutes entre %s et %s"},t.prototype.at=function(){return"À"},t.prototype.spaceAnd=function(){return" et"},t.prototype.everySecond=function(){return"toutes les secondes"},t.prototype.everyX0Seconds=function(){return"toutes les %s secondes"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"les secondes entre %s et %s après la minute"},t.prototype.atX0SecondsPastTheMinute=function(){return"%s secondes après la minute"},t.prototype.everyX0Minutes=function(){return"toutes les %s minutes"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"les minutes entre %s et %s après l'heure"},t.prototype.atX0MinutesPastTheHour=function(){return"%s minutes après l'heure"},t.prototype.everyX0Hours=function(){return"toutes les %s heures"},t.prototype.betweenX0AndX1=function(){return"de %s à %s"},t.prototype.atX0=function(){return"%s"},t.prototype.commaEveryDay=function(){return", tous les jours"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", tous les %s jours de la semaine"},t.prototype.commaX0ThroughX1=function(){return", de %s à %s"},t.prototype.commaAndX0ThroughX1=function(){return", et de %s à %s"},t.prototype.first=function(){return"premier"},t.prototype.second=function(){return"second"},t.prototype.third=function(){return"troisième"},t.prototype.fourth=function(){return"quatrième"},t.prototype.fifth=function(){return"cinquième"},t.prototype.commaOnThe=function(){return", le "},t.prototype.spaceX0OfTheMonth=function(){return" %s du mois"},t.prototype.lastDay=function(){return"le dernier jour"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", le dernier %s du mois"},t.prototype.commaOnlyOnX0=function(){return", uniquement le %s"},t.prototype.commaAndOnX0=function(){return", et %s"},t.prototype.commaEveryX0Months=function(){return", tous les %s mois"},t.prototype.commaOnlyInX0=function(){return", uniquement en %s"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", le dernier jour du mois"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", le dernier jour ouvrable du mois"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s jours avant le dernier jour du mois"},t.prototype.firstWeekday=function(){return"premier jour ouvrable"},t.prototype.weekdayNearestDayX0=function(){return"jour ouvrable le plus proche du %s"},t.prototype.commaOnTheX0OfTheMonth=function(){return", le %s du mois"},t.prototype.commaEveryX0Days=function(){return", tous les %s jours"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", du %s au %s du mois"},t.prototype.commaOnDayX0OfTheMonth=function(){return", le %s du mois"},t.prototype.commaEveryHour=function(){return", chaque heure"},t.prototype.commaEveryX0Years=function(){return", tous les %s ans"},t.prototype.commaDaysX0ThroughX1=function(){return", du %s au %s"},t.prototype.commaStartingX0=function(){return", à partir de %s"},t.prototype.daysOfTheWeek=function(){return["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},t.prototype.monthsOfTheYear=function(){return["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"]},t.prototype.onTheHour=function(){return"à l'heure pile"},t}();s.fr=p},82(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.he=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"אירעה שגיאה בעת יצירת תיאור הביטוי. בדוק את תחביר הביטוי cron."},t.prototype.everyMinute=function(){return"כל דקה"},t.prototype.everyHour=function(){return"כל שעה"},t.prototype.atSpace=function(){return"ב "},t.prototype.everyMinuteBetweenX0AndX1=function(){return"כל דקה %s עד %s"},t.prototype.at=function(){return"ב"},t.prototype.spaceAnd=function(){return" ו"},t.prototype.everySecond=function(){return"כל שניה"},t.prototype.everyX0Seconds=function(){return"כל %s שניות"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"%s עד %s שניות של הדקה"},t.prototype.atX0SecondsPastTheMinute=function(){return"ב %s שניות של הדקה"},t.prototype.everyX0Minutes=function(){return"כל %s דקות"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"%s עד %s דקות של השעה"},t.prototype.atX0MinutesPastTheHour=function(){return"ב %s דקות של השעה"},t.prototype.everyX0Hours=function(){return"כל %s שעות"},t.prototype.betweenX0AndX1=function(){return"%s עד %s"},t.prototype.atX0=function(){return"ב %s"},t.prototype.commaEveryDay=function(){return", כל יום"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", כל %s ימים בשבוע"},t.prototype.commaX0ThroughX1=function(){return", %s עד %s"},t.prototype.commaAndX0ThroughX1=function(){return", ו %s עד %s"},t.prototype.first=function(){return"ראשון"},t.prototype.second=function(){return"שני"},t.prototype.third=function(){return"שלישי"},t.prototype.fourth=function(){return"רביעי"},t.prototype.fifth=function(){return"חמישי"},t.prototype.commaOnThe=function(){return", ב "},t.prototype.spaceX0OfTheMonth=function(){return" %s של החודש"},t.prototype.lastDay=function(){return"היום האחרון"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", רק ב %s של החודש"},t.prototype.commaOnlyOnX0=function(){return", רק ב %s"},t.prototype.commaAndOnX0=function(){return", וב %s"},t.prototype.commaEveryX0Months=function(){return", כל %s חודשים"},t.prototype.commaOnlyInX0=function(){return", רק ב %s"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", ביום האחרון של החודש"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", ביום החול האחרון של החודש"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s ימים לפני היום האחרון בחודש"},t.prototype.firstWeekday=function(){return"יום החול הראשון"},t.prototype.weekdayNearestDayX0=function(){return"יום החול הראשון הקרוב אל %s"},t.prototype.commaOnTheX0OfTheMonth=function(){return", ביום ה%s של החודש"},t.prototype.commaEveryX0Days=function(){return", כל %s ימים"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", בין היום ה%s וה%s של החודש"},t.prototype.commaOnDayX0OfTheMonth=function(){return", ביום ה%s של החודש"},t.prototype.commaEveryX0Years=function(){return", כל %s שנים"},t.prototype.commaStartingX0=function(){return", החל מ %s"},t.prototype.daysOfTheWeek=function(){return["יום ראשון","יום שני","יום שלישי","יום רביעי","יום חמישי","יום שישי","יום שבת"]},t.prototype.monthsOfTheYear=function(){return["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"]},t.prototype.onTheHour=function(){return"בשעה עגולה"},t}();s.he=p},131(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.hr=void 0;var p=function(){function t(){}return t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Došlo je do pogreške pri generiranju izraza. Provjerite sintaksu cron izraza."},t.prototype.at=function(){return"U"},t.prototype.atSpace=function(){return"U "},t.prototype.atX0=function(){return"u %s"},t.prototype.atX0MinutesPastTheHour=function(){return"u %s minuta nakon punog sata"},t.prototype.atX0SecondsPastTheMinute=function(){return"u %s sekundi nakon pune minute"},t.prototype.betweenX0AndX1=function(){return"između %s i %s"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", između %s. i %s. dana u mjesecu"},t.prototype.commaEveryDay=function(){return", svaki dan"},t.prototype.commaEveryX0Days=function(){return", svakih %s dana"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", svakih %s dana u tjednu"},t.prototype.commaEveryX0Months=function(){return", svakih %s mjeseci"},t.prototype.commaEveryX0Years=function(){return", svakih %s godina"},t.prototype.commaOnDayX0OfTheMonth=function(){return", %s. dan u mjesecu"},t.prototype.commaOnlyInX0=function(){return", samo u %s"},t.prototype.commaOnlyOnX0=function(){return", samo %s"},t.prototype.commaAndOnX0=function(){return", i %s"},t.prototype.commaOnThe=function(){return", "},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", zadnji dan u mjesecu"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", zadnji radni dan u mjesecu"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dana prije kraja mjeseca"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", zadnji %s u mjesecu"},t.prototype.commaOnTheX0OfTheMonth=function(){return", %s u mjesecu"},t.prototype.commaX0ThroughX1=function(){return", od %s do %s"},t.prototype.commaAndX0ThroughX1=function(){return", i od %s do %s"},t.prototype.everyHour=function(){return"svaki sat"},t.prototype.everyMinute=function(){return"svaku minutu"},t.prototype.everyMinuteBetweenX0AndX1=function(){return"Svaku minutu između %s i %s"},t.prototype.everySecond=function(){return"svaku sekundu"},t.prototype.everyX0Hours=function(){return"svakih %s sati"},t.prototype.everyX0Minutes=function(){return"svakih %s minuta"},t.prototype.everyX0Seconds=function(){return"svakih %s sekundi"},t.prototype.fifth=function(){return"peti"},t.prototype.first=function(){return"prvi"},t.prototype.firstWeekday=function(){return"prvi radni dan"},t.prototype.fourth=function(){return"četvrti"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"minute od %s do %s nakon punog sata"},t.prototype.second=function(){return"drugi"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"sekunde od %s do %s nakon pune minute"},t.prototype.spaceAnd=function(){return" i"},t.prototype.spaceX0OfTheMonth=function(){return" %s u mjesecu"},t.prototype.lastDay=function(){return"zadnji dan"},t.prototype.third=function(){return"treći"},t.prototype.weekdayNearestDayX0=function(){return"radni dan najbliži %s. danu"},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.commaStartingX0=function(){return", počevši od %s"},t.prototype.daysOfTheWeek=function(){return["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"]},t.prototype.monthsOfTheYear=function(){return["siječanj","veljača","ožujak","travanj","svibanj","lipanj","srpanj","kolovoz","rujan","listopad","studeni","prosinac"]},t.prototype.onTheHour=function(){return"u puni sat"},t}();s.hr=p},194(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.hu=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Hiba történt a kifejezésleírás generálásakor. Ellenőrizze a cron kifejezés szintaxisát."},t.prototype.everyMinute=function(){return"minden percben"},t.prototype.everyHour=function(){return"minden órában"},t.prototype.atSpace=function(){return"Ekkor: "},t.prototype.everyMinuteBetweenX0AndX1=function(){return"percenként %s és %s között"},t.prototype.at=function(){return"Ekkor:"},t.prototype.spaceAnd=function(){return" és"},t.prototype.everySecond=function(){return"minden másodpercben"},t.prototype.everyX0Seconds=function(){return"%s másodpercenként"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"%s. másodpercben %s perc után"},t.prototype.atX0SecondsPastTheMinute=function(){return"%s. másodpercben"},t.prototype.everyX0Minutes=function(){return"minden %s. percben"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"%s. percben %s óra után"},t.prototype.atX0MinutesPastTheHour=function(){return"%s. percben"},t.prototype.everyX0Hours=function(){return"minden %s órában"},t.prototype.betweenX0AndX1=function(){return"%s és %s között"},t.prototype.atX0=function(){return"ekkor %s"},t.prototype.commaEveryDay=function(){return", minden nap"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", a hét minden %s napján"},t.prototype.commaX0ThroughX1=function(){return", %s - %s"},t.prototype.commaAndX0ThroughX1=function(){return", és %s - %s"},t.prototype.first=function(){return"első"},t.prototype.second=function(){return"második"},t.prototype.third=function(){return"harmadik"},t.prototype.fourth=function(){return"negyedik"},t.prototype.fifth=function(){return"ötödik"},t.prototype.commaOnThe=function(){return", "},t.prototype.spaceX0OfTheMonth=function(){return" %s a hónapban"},t.prototype.lastDay=function(){return"az utolsó nap"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", a hónap utolsó %s"},t.prototype.commaOnlyOnX0=function(){return", csak ekkor: %s"},t.prototype.commaAndOnX0=function(){return", és %s"},t.prototype.commaEveryX0Months=function(){return", minden %s hónapban"},t.prototype.commaOnlyInX0=function(){return", csak ekkor: %s"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", a hónap utolsó napján"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", a hónap utolsó hétköznapján"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s nappal a hónap utolsó napja előtt"},t.prototype.firstWeekday=function(){return"első hétköznap"},t.prototype.weekdayNearestDayX0=function(){return"hétköznap legközelebbi nap %s"},t.prototype.commaOnTheX0OfTheMonth=function(){return", a hónap %s"},t.prototype.commaEveryX0Days=function(){return", %s naponként"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", a hónap %s és %s napja között"},t.prototype.commaOnDayX0OfTheMonth=function(){return", a hónap %s napján"},t.prototype.commaEveryHour=function(){return", minden órában"},t.prototype.commaEveryX0Years=function(){return", %s évente"},t.prototype.commaStartingX0=function(){return", %s kezdettel"},t.prototype.daysOfTheWeek=function(){return["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"]},t.prototype.monthsOfTheYear=function(){return["január","február","március","április","május","június","július","augusztus","szeptember","október","november","december"]},t.prototype.onTheHour=function(){return"órakor"},t}();s.hu=p},72(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.id=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Terjadi kesalahan saat membuat deskripsi ekspresi. Periksa sintaks ekspresi cron."},t.prototype.everyMinute=function(){return"setiap menit"},t.prototype.everyHour=function(){return"setiap jam"},t.prototype.atSpace=function(){return"Pada "},t.prototype.everyMinuteBetweenX0AndX1=function(){return"Setiap menit diantara %s dan %s"},t.prototype.at=function(){return"Pada"},t.prototype.spaceAnd=function(){return" dan"},t.prototype.everySecond=function(){return"setiap detik"},t.prototype.everyX0Seconds=function(){return"setiap %s detik"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"detik ke %s sampai %s melewati menit"},t.prototype.atX0SecondsPastTheMinute=function(){return"pada %s detik lewat satu menit"},t.prototype.everyX0Minutes=function(){return"setiap %s menit"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"menit ke %s sampai %s melewati jam"},t.prototype.atX0MinutesPastTheHour=function(){return"pada %s menit melewati jam"},t.prototype.everyX0Hours=function(){return"setiap %s jam"},t.prototype.betweenX0AndX1=function(){return"diantara %s dan %s"},t.prototype.atX0=function(){return"pada %s"},t.prototype.commaEveryDay=function(){return", setiap hari"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", setiap hari %s dalam seminggu"},t.prototype.commaX0ThroughX1=function(){return", %s sampai %s"},t.prototype.commaAndX0ThroughX1=function(){return", dan %s sampai %s"},t.prototype.first=function(){return"pertama"},t.prototype.second=function(){return"kedua"},t.prototype.third=function(){return"ketiga"},t.prototype.fourth=function(){return"keempat"},t.prototype.fifth=function(){return"kelima"},t.prototype.commaOnThe=function(){return", di "},t.prototype.spaceX0OfTheMonth=function(){return" %s pada bulan"},t.prototype.lastDay=function(){return"hari terakhir"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", pada %s terakhir bulan ini"},t.prototype.commaOnlyOnX0=function(){return", hanya pada %s"},t.prototype.commaAndOnX0=function(){return", dan pada %s"},t.prototype.commaEveryX0Months=function(){return", setiap bulan %s "},t.prototype.commaOnlyInX0=function(){return", hanya pada %s"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", pada hari terakhir bulan ini"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", pada hari kerja terakhir setiap bulan"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s hari sebelum hari terakhir setiap bulan"},t.prototype.firstWeekday=function(){return"hari kerja pertama"},t.prototype.weekdayNearestDayX0=function(){return"hari kerja terdekat %s"},t.prototype.commaOnTheX0OfTheMonth=function(){return", pada %s bulan ini"},t.prototype.commaEveryX0Days=function(){return", setiap %s hari"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", antara hari %s dan %s dalam sebulan"},t.prototype.commaOnDayX0OfTheMonth=function(){return", pada hari %s dalam sebulan"},t.prototype.commaEveryHour=function(){return", setiap jam"},t.prototype.commaEveryX0Years=function(){return", setiap %s tahun"},t.prototype.commaStartingX0=function(){return", mulai pada %s"},t.prototype.daysOfTheWeek=function(){return["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"]},t.prototype.monthsOfTheYear=function(){return["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"]},t.prototype.onTheHour=function(){return"tepat pada jam"},t}();s.id=p},488(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.it=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"È verificato un errore durante la generazione la descrizione espressione. Controllare la sintassi delle espressioni cron."},t.prototype.at=function(){return"Alle"},t.prototype.atSpace=function(){return"Alle "},t.prototype.atX0=function(){return"alle %s"},t.prototype.atX0MinutesPastTheHour=function(){return"al %s minuto passata l'ora"},t.prototype.atX0SecondsPastTheMinute=function(){return"al %s secondo passato il minuto"},t.prototype.betweenX0AndX1=function(){return"tra le %s e le %s"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", tra il giorno %s e %s del mese"},t.prototype.commaEveryDay=function(){return", ogni giorno"},t.prototype.commaEveryX0Days=function(){return", ogni %s giorni"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", ogni %s giorni della settimana"},t.prototype.commaEveryX0Months=function(){return", ogni %s mesi"},t.prototype.commaEveryX0Years=function(){return", ogni %s anni"},t.prototype.commaOnDayX0OfTheMonth=function(){return", il giorno %s del mese"},t.prototype.commaOnlyInX0=function(){return", solo in %s"},t.prototype.commaOnlyOnX0=function(){return", solo il %s"},t.prototype.commaAndOnX0=function(){return", e il %s"},t.prototype.commaOnThe=function(){return", il "},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", l'ultimo giorno del mese"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", nell'ultima settimana del mese"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s giorni prima dell'ultimo giorno del mese"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", l'ultimo %s del mese"},t.prototype.commaOnTheX0OfTheMonth=function(){return", il %s del mese"},t.prototype.commaX0ThroughX1=function(){return", %s al %s"},t.prototype.commaAndX0ThroughX1=function(){return", e %s al %s"},t.prototype.everyHour=function(){return"ogni ora"},t.prototype.everyMinute=function(){return"ogni minuto"},t.prototype.everyMinuteBetweenX0AndX1=function(){return"Ogni minuto tra le %s e le %s"},t.prototype.everySecond=function(){return"ogni secondo"},t.prototype.everyX0Hours=function(){return"ogni %s ore"},t.prototype.everyX0Minutes=function(){return"ogni %s minuti"},t.prototype.everyX0Seconds=function(){return"ogni %s secondi"},t.prototype.fifth=function(){return"quinto"},t.prototype.first=function(){return"primo"},t.prototype.firstWeekday=function(){return"primo giorno della settimana"},t.prototype.fourth=function(){return"quarto"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"minuti %s al %s dopo l'ora"},t.prototype.second=function(){return"secondo"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"secondi %s al %s oltre il minuto"},t.prototype.spaceAnd=function(){return" e"},t.prototype.spaceX0OfTheMonth=function(){return" %s del mese"},t.prototype.lastDay=function(){return"l'ultimo giorno"},t.prototype.third=function(){return"terzo"},t.prototype.weekdayNearestDayX0=function(){return"giorno della settimana più vicino al %s"},t.prototype.commaStartingX0=function(){return", a partire %s"},t.prototype.daysOfTheWeek=function(){return["domenica","lunedì","martedì","mercoledì","giovedì","venerdì","sabato"]},t.prototype.monthsOfTheYear=function(){return["gennaio","febbraio","marzo","aprile","maggio","giugno","luglio","agosto","settembre","ottobre","novembre","dicembre"]},t.prototype.onTheHour=function(){return"all'ora esatta"},t}();s.it=p},904(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.ja=void 0;var p=function(){function t(){}return t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.everyMinute=function(){return"毎分"},t.prototype.everyHour=function(){return"毎時"},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"式の記述を生成する際にエラーが発生しました。Cron 式の構文を確認してください。"},t.prototype.atSpace=function(){return"次において実施"},t.prototype.everyMinuteBetweenX0AndX1=function(){return"%s から %s まで毎分"},t.prototype.at=function(){return"次において実施"},t.prototype.spaceAnd=function(){return"と"},t.prototype.everySecond=function(){return"毎秒"},t.prototype.everyX0Seconds=function(){return"%s 秒ごと"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"毎分 %s 秒から %s 秒まで"},t.prototype.atX0SecondsPastTheMinute=function(){return"毎分 %s 秒過ぎ"},t.prototype.everyX0Minutes=function(){return"%s 分ごと"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"毎時 %s 分から %s 分まで"},t.prototype.atX0MinutesPastTheHour=function(){return"毎時 %s 分過ぎ"},t.prototype.everyX0Hours=function(){return"%s 時間ごと"},t.prototype.betweenX0AndX1=function(){return"%s と %s の間"},t.prototype.atX0=function(){return"次において実施 %s"},t.prototype.commaEveryDay=function(){return"、毎日"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return"、週のうち %s 日ごと"},t.prototype.commaX0ThroughX1=function(){return"、%s から %s まで"},t.prototype.commaAndX0ThroughX1=function(){return"、%s から %s まで"},t.prototype.first=function(){return"1 番目"},t.prototype.second=function(){return"2 番目"},t.prototype.third=function(){return"3 番目"},t.prototype.fourth=function(){return"4 番目"},t.prototype.fifth=function(){return"5 番目"},t.prototype.commaOnThe=function(){return"次に"},t.prototype.spaceX0OfTheMonth=function(){return"月のうち %s"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return"月の最後の %s に"},t.prototype.commaOnlyOnX0=function(){return"%s にのみ"},t.prototype.commaEveryX0Months=function(){return"、%s か月ごと"},t.prototype.commaOnlyInX0=function(){return"%s でのみ"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return"次の最終日に"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return"月の最後の平日に"},t.prototype.firstWeekday=function(){return"最初の平日"},t.prototype.weekdayNearestDayX0=function(){return"%s 日の直近の平日"},t.prototype.commaOnTheX0OfTheMonth=function(){return"月の %s に"},t.prototype.commaEveryX0Days=function(){return"、%s 日ごと"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return"、月の %s 日から %s 日の間"},t.prototype.commaOnDayX0OfTheMonth=function(){return"、月の %s 日目"},t.prototype.spaceAndSpace=function(){return"と"},t.prototype.commaEveryMinute=function(){return"、毎分"},t.prototype.commaEveryHour=function(){return"、毎時"},t.prototype.commaEveryX0Years=function(){return"、%s 年ごと"},t.prototype.commaStartingX0=function(){return"、%s に開始"},t.prototype.aMPeriod=function(){return"AM"},t.prototype.pMPeriod=function(){return"PM"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return"月の最終日の %s 日前"},t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.lastDay=function(){return"最終日"},t.prototype.commaAndOnX0=function(){return"、〜と %s"},t.prototype.daysOfTheWeek=function(){return["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},t.prototype.monthsOfTheYear=function(){return["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]},t.prototype.onTheHour=function(){return"時ちょうど"},t}();s.ja=p},839(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.ko=void 0;var p=function(){function t(){}return t.prototype.setPeriodBeforeTime=function(){return!0},t.prototype.pm=function(){return"오후"},t.prototype.am=function(){return"오전"},t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!1},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"표현식 설명을 생성하는 중 오류가 발생했습니다. cron 표현식 구문을 확인하십시오."},t.prototype.everyMinute=function(){return"1분마다"},t.prototype.everyHour=function(){return"1시간마다"},t.prototype.atSpace=function(){return"시간 "},t.prototype.everyMinuteBetweenX0AndX1=function(){return"매분 %s~%s"},t.prototype.at=function(){return"시간"},t.prototype.spaceAnd=function(){return" 및"},t.prototype.everySecond=function(){return"1초마다"},t.prototype.everyX0Seconds=function(){return"%s초마다"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"%s~%s초"},t.prototype.atX0SecondsPastTheMinute=function(){return"%s초"},t.prototype.everyX0Minutes=function(){return"%s분마다"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"%s~%s분"},t.prototype.atX0MinutesPastTheHour=function(){return"%s분"},t.prototype.everyX0Hours=function(){return"%s시간마다"},t.prototype.betweenX0AndX1=function(){return"%s에서 %s 사이"},t.prototype.atX0=function(){return"%s에서"},t.prototype.commaEveryDay=function(){return", 매일"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", 주 중 %s일마다"},t.prototype.commaX0ThroughX1=function(){return", %s에서 %s까지"},t.prototype.commaAndX0ThroughX1=function(){return", 및 %s에서 %s까지"},t.prototype.first=function(){return"첫 번째"},t.prototype.second=function(){return"두 번째"},t.prototype.third=function(){return"세 번째"},t.prototype.fourth=function(){return"네 번째"},t.prototype.fifth=function(){return"다섯 번째"},t.prototype.commaOnThe=function(){return", 매월 "},t.prototype.spaceX0OfTheMonth=function(){return" %s"},t.prototype.lastDay=function(){return"마지막 날"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", 해당 월의 마지막 %s"},t.prototype.commaOnlyOnX0=function(){return", %s에만"},t.prototype.commaAndOnX0=function(){return", 및 %s에"},t.prototype.commaEveryX0Months=function(){return", %s개월마다"},t.prototype.commaOnlyInX0=function(){return", %s에만"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", 해당 월의 마지막 날에"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", 매월 마지막 평일"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", 해당 월의 마지막 날 %s일 전"},t.prototype.firstWeekday=function(){return"첫 번째 평일"},t.prototype.weekdayNearestDayX0=function(){return"%s일과 가장 가까운 평일"},t.prototype.commaOnTheX0OfTheMonth=function(){return", 매월 %s"},t.prototype.commaEveryX0Days=function(){return", %s일마다"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", 해당 월의 %s일에서 %s일까지"},t.prototype.commaOnDayX0OfTheMonth=function(){return", 매월 %s일"},t.prototype.commaEveryMinute=function(){return", 1분마다"},t.prototype.commaEveryHour=function(){return", 1시간마다"},t.prototype.commaEveryX0Years=function(){return", %s년마다"},t.prototype.commaStartingX0=function(){return", %s부터"},t.prototype.daysOfTheWeek=function(){return["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},t.prototype.monthsOfTheYear=function(){return["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"]},t.prototype.onTheHour=function(){return"정각"},t}();s.ko=p},919(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.my=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!1},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Terdapat ralat semasa menjana penerangan ungkapan. Sila periksa sintaks ungkapan cron."},t.prototype.everyMinute=function(){return"setiap minit"},t.prototype.everyHour=function(){return"setiap jam"},t.prototype.atSpace=function(){return"Pada "},t.prototype.everyMinuteBetweenX0AndX1=function(){return"Setiap minit antara %s dan %s"},t.prototype.at=function(){return"Pada"},t.prototype.spaceAnd=function(){return" dan"},t.prototype.everySecond=function(){return"setiap saat"},t.prototype.everyX0Seconds=function(){return"setiap %s saat"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"saat ke %s hingga %s selepas minit"},t.prototype.atX0SecondsPastTheMinute=function(){return"pada %s saat selepas minit"},t.prototype.everyX0Minutes=function(){return"setiap %s minit"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"minit ke %s hingga %s selepas jam"},t.prototype.atX0MinutesPastTheHour=function(){return"pada %s minit selepas jam"},t.prototype.everyX0Hours=function(){return"setiap %s jam"},t.prototype.betweenX0AndX1=function(){return"antara %s dan %s"},t.prototype.atX0=function(){return"pada %s"},t.prototype.commaEveryDay=function(){return", setiap hari"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", setiap %s hari dalam minggu"},t.prototype.commaX0ThroughX1=function(){return", %s hingga %s"},t.prototype.commaAndX0ThroughX1=function(){return", dan %s hingga %s"},t.prototype.first=function(){return"pertama"},t.prototype.second=function(){return"kedua"},t.prototype.third=function(){return"ketiga"},t.prototype.fourth=function(){return"keempat"},t.prototype.fifth=function(){return"kelima"},t.prototype.commaOnThe=function(){return", pada "},t.prototype.spaceX0OfTheMonth=function(){return" %s pada bulan"},t.prototype.lastDay=function(){return"hari terakhir"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", pada %s terakhir bulan"},t.prototype.commaOnlyOnX0=function(){return", hanya pada %s"},t.prototype.commaAndOnX0=function(){return", dan pada %s"},t.prototype.commaEveryX0Months=function(){return", setiap bulan %s"},t.prototype.commaOnlyInX0=function(){return", hanya pada %s"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", pada hari terakhir bulan"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", pada minggu terakhir bulan"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s hari sebelum hari terakhir bulan"},t.prototype.firstWeekday=function(){return"hari pertama minggu bekerja"},t.prototype.weekdayNearestDayX0=function(){return"hari bekerja yang terdekat dengan %s"},t.prototype.commaOnTheX0OfTheMonth=function(){return", pada %s bulan"},t.prototype.commaEveryX0Days=function(){return", setiap %s hari"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", antara hari %s dan %s dalam bulan"},t.prototype.commaOnDayX0OfTheMonth=function(){return", pada hari %s dalam bulan"},t.prototype.commaEveryHour=function(){return", setiap jam"},t.prototype.commaEveryX0Years=function(){return", setiap %s tahun"},t.prototype.commaStartingX0=function(){return", bermula %s"},t.prototype.daysOfTheWeek=function(){return["Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu"]},t.prototype.monthsOfTheYear=function(){return["Januari","Februari","Mac","April","Mei","Jun","Julai","Ogos","September","Oktober","November","Disember"]},t.prototype.onTheHour=function(){return"pada waktu yang tepat"},t}();s.my=p},957(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.nb=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"En feil inntraff ved generering av uttrykksbeskrivelse. Sjekk cron syntaks."},t.prototype.at=function(){return"Kl."},t.prototype.atSpace=function(){return"Kl."},t.prototype.atX0=function(){return"på %s"},t.prototype.atX0MinutesPastTheHour=function(){return"på %s minutter etter timen"},t.prototype.atX0SecondsPastTheMinute=function(){return"på %s sekunder etter minuttet"},t.prototype.betweenX0AndX1=function(){return"mellom %s og %s"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", mellom dag %s og %s av måneden"},t.prototype.commaEveryDay=function(){return", hver dag"},t.prototype.commaEveryX0Days=function(){return", hver %s dag"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", hver %s ukedag"},t.prototype.commaEveryX0Months=function(){return", hver %s måned"},t.prototype.commaEveryX0Years=function(){return", hvert %s år"},t.prototype.commaOnDayX0OfTheMonth=function(){return", på dag %s av måneden"},t.prototype.commaOnlyInX0=function(){return", bare i %s"},t.prototype.commaOnlyOnX0=function(){return", på %s"},t.prototype.commaAndOnX0=function(){return", og på %s"},t.prototype.commaOnThe=function(){return", på "},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", på den siste dagen i måneden"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", den siste ukedagen i måneden"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dager før den siste dagen i måneden"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", på den siste %s av måneden"},t.prototype.commaOnTheX0OfTheMonth=function(){return", på den %s av måneden"},t.prototype.commaX0ThroughX1=function(){return", %s til og med %s"},t.prototype.commaAndX0ThroughX1=function(){return", og %s til og med %s"},t.prototype.everyHour=function(){return"hver time"},t.prototype.everyMinute=function(){return"hvert minutt"},t.prototype.everyMinuteBetweenX0AndX1=function(){return"Hvert minutt mellom %s og %s"},t.prototype.everySecond=function(){return"hvert sekund"},t.prototype.everyX0Hours=function(){return"hver %s time"},t.prototype.everyX0Minutes=function(){return"hvert %s minutt"},t.prototype.everyX0Seconds=function(){return"hvert %s sekund"},t.prototype.fifth=function(){return"femte"},t.prototype.first=function(){return"første"},t.prototype.firstWeekday=function(){return"første ukedag"},t.prototype.fourth=function(){return"fjerde"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"minuttene fra %s til og med %s etter timen"},t.prototype.second=function(){return"andre"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"sekundene fra %s til og med %s etter minuttet"},t.prototype.spaceAnd=function(){return" og"},t.prototype.spaceX0OfTheMonth=function(){return" %s i måneden"},t.prototype.lastDay=function(){return"den siste dagen"},t.prototype.third=function(){return"tredje"},t.prototype.weekdayNearestDayX0=function(){return"ukedag nærmest dag %s"},t.prototype.commaStartingX0=function(){return", starter %s"},t.prototype.daysOfTheWeek=function(){return["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"]},t.prototype.monthsOfTheYear=function(){return["januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"]},t.prototype.onTheHour=function(){return"på timen"},t}();s.nb=p},647(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.nl=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.everyMinute=function(){return"elke minuut"},t.prototype.everyHour=function(){return"elk uur"},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Er is een fout opgetreden bij het vertalen van de gegevens. Controleer de gegevens."},t.prototype.atSpace=function(){return"Om "},t.prototype.everyMinuteBetweenX0AndX1=function(){return"Elke minuut tussen %s en %s"},t.prototype.at=function(){return"Om"},t.prototype.spaceAnd=function(){return" en"},t.prototype.everySecond=function(){return"elke seconde"},t.prototype.everyX0Seconds=function(){return"elke %s seconden"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"seconden %s t/m %s na de minuut"},t.prototype.atX0SecondsPastTheMinute=function(){return"op %s seconden na de minuut"},t.prototype.everyX0Minutes=function(){return"elke %s minuten"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"minuut %s t/m %s na het uur"},t.prototype.atX0MinutesPastTheHour=function(){return"op %s minuten na het uur"},t.prototype.everyX0Hours=function(){return"elke %s uur"},t.prototype.betweenX0AndX1=function(){return"tussen %s en %s"},t.prototype.atX0=function(){return"om %s"},t.prototype.commaEveryDay=function(){return", elke dag"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", elke %s dagen van de week"},t.prototype.commaX0ThroughX1=function(){return", %s t/m %s"},t.prototype.commaAndX0ThroughX1=function(){return", en %s t/m %s"},t.prototype.first=function(){return"eerste"},t.prototype.second=function(){return"tweede"},t.prototype.third=function(){return"derde"},t.prototype.fourth=function(){return"vierde"},t.prototype.fifth=function(){return"vijfde"},t.prototype.commaOnThe=function(){return", op de "},t.prototype.spaceX0OfTheMonth=function(){return" %s van de maand"},t.prototype.lastDay=function(){return"de laatste dag"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", op de laatste %s van de maand"},t.prototype.commaOnlyOnX0=function(){return", alleen op %s"},t.prototype.commaAndOnX0=function(){return", en op %s"},t.prototype.commaEveryX0Months=function(){return", elke %s maanden"},t.prototype.commaOnlyInX0=function(){return", alleen in %s"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", op de laatste dag van de maand"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", op de laatste werkdag van de maand"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dagen vóór de laatste dag van de maand"},t.prototype.firstWeekday=function(){return"eerste werkdag"},t.prototype.weekdayNearestDayX0=function(){return"werkdag dichtst bij dag %s"},t.prototype.commaOnTheX0OfTheMonth=function(){return", op de %s van de maand"},t.prototype.commaEveryX0Days=function(){return", elke %s dagen"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", tussen dag %s en %s van de maand"},t.prototype.commaOnDayX0OfTheMonth=function(){return", op dag %s van de maand"},t.prototype.commaEveryX0Years=function(){return", elke %s jaren"},t.prototype.commaStartingX0=function(){return", beginnend %s"},t.prototype.daysOfTheWeek=function(){return["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},t.prototype.monthsOfTheYear=function(){return["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"]},t.prototype.onTheHour=function(){return"op het hele uur"},t}();s.nl=p},905(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.pl=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Wystąpił błąd podczas generowania opisu wyrażenia cron. Sprawdź składnię wyrażenia cron."},t.prototype.at=function(){return"O"},t.prototype.atSpace=function(){return"O "},t.prototype.atX0=function(){return"o %s"},t.prototype.atX0MinutesPastTheHour=function(){return"w %s minucie"},t.prototype.atX0SecondsPastTheMinute=function(){return"w %s sekundzie"},t.prototype.betweenX0AndX1=function(){return"od %s do %s"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", od %s-ego do %s-ego dnia miesiąca"},t.prototype.commaEveryDay=function(){return", co dzień"},t.prototype.commaEveryX0Days=function(){return", co %s dni"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", co %s dni tygodnia"},t.prototype.commaEveryX0Months=function(){return", co %s miesięcy"},t.prototype.commaEveryX0Years=function(){return", co %s lat"},t.prototype.commaOnDayX0OfTheMonth=function(){return", %s-ego dnia miesiąca"},t.prototype.commaOnlyInX0=function(){return", tylko %s"},t.prototype.commaOnlyOnX0=function(){return", tylko %s"},t.prototype.commaAndOnX0=function(){return", i %s"},t.prototype.commaOnThe=function(){return", "},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", ostatni dzień miesiąca"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", ostatni dzień roboczy miesiąca"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dni przed ostatnim dniem miesiąca"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", ostatni %s miesiąca"},t.prototype.commaOnTheX0OfTheMonth=function(){return", %s miesiąca"},t.prototype.commaX0ThroughX1=function(){return", od %s do %s"},t.prototype.commaAndX0ThroughX1=function(){return", i od %s do %s"},t.prototype.everyHour=function(){return"co godzinę"},t.prototype.everyMinute=function(){return"co minutę"},t.prototype.everyMinuteBetweenX0AndX1=function(){return"Co minutę od %s do %s"},t.prototype.everySecond=function(){return"co sekundę"},t.prototype.everyX0Hours=function(){return"co %s godzin"},t.prototype.everyX0Minutes=function(){return"co %s minut"},t.prototype.everyX0Seconds=function(){return"co %s sekund"},t.prototype.fifth=function(){return"piąty"},t.prototype.first=function(){return"pierwszy"},t.prototype.firstWeekday=function(){return"pierwszy dzień roboczy"},t.prototype.fourth=function(){return"czwarty"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"minuty od %s do %s"},t.prototype.second=function(){return"drugi"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"sekundy od %s do %s"},t.prototype.spaceAnd=function(){return" i"},t.prototype.spaceX0OfTheMonth=function(){return" %s miesiąca"},t.prototype.lastDay=function(){return"ostatni dzień"},t.prototype.third=function(){return"trzeci"},t.prototype.weekdayNearestDayX0=function(){return"dzień roboczy najbliższy %s-ego dnia"},t.prototype.commaStartingX0=function(){return", startowy %s"},t.prototype.daysOfTheWeek=function(){return["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},t.prototype.monthsOfTheYear=function(){return["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"]},t.prototype.onTheHour=function(){return"o pełnej godzinie"},t}();s.pl=p},556(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.pt_BR=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Ocorreu um erro ao gerar a descrição da expressão Cron."},t.prototype.at=function(){return"às"},t.prototype.atSpace=function(){return"às "},t.prototype.atX0=function(){return"Às %s"},t.prototype.atX0MinutesPastTheHour=function(){return"aos %s minutos da hora"},t.prototype.atX0SecondsPastTheMinute=function(){return"aos %s segundos do minuto"},t.prototype.betweenX0AndX1=function(){return"entre %s e %s"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", entre os dias %s e %s do mês"},t.prototype.commaEveryDay=function(){return", a cada dia"},t.prototype.commaEveryX0Days=function(){return", a cada %s dias"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", a cada %s dias de semana"},t.prototype.commaEveryX0Months=function(){return", a cada %s meses"},t.prototype.commaOnDayX0OfTheMonth=function(){return", no dia %s do mês"},t.prototype.commaOnlyInX0=function(x){return x&&x.length>1&&x[1]==="-"?"somente %s":", somente em %s"},t.prototype.commaOnlyOnX0=function(x){return x&&x.length>1&&x[1]==="-"?", somente %s":", somente de %s"},t.prototype.commaAndOnX0=function(){return", e de %s"},t.prototype.commaOnThe=function(x,h){return h==="6"||h==="0"?", no":", na "},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", no último dia do mês"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", no último dia da semana do mês"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dias antes do último dia do mês"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", na última %s do mês"},t.prototype.commaOnTheX0OfTheMonth=function(){return", no %s do mês"},t.prototype.commaX0ThroughX1=function(){return", de %s a %s"},t.prototype.commaAndX0ThroughX1=function(){return", e de %s a %s"},t.prototype.everyHour=function(){return"a cada hora"},t.prototype.everyMinute=function(){return"a cada minuto"},t.prototype.everyMinuteBetweenX0AndX1=function(){return"a cada minuto entre %s e %s"},t.prototype.everySecond=function(){return"a cada segundo"},t.prototype.everyX0Hours=function(){return"a cada %s horas"},t.prototype.everyX0Minutes=function(){return"a cada %s minutos"},t.prototype.everyX0Seconds=function(){return"a cada %s segundos"},t.prototype.fifth=function(x){return x==="6"||x==="0"?"quinto":"quinta"},t.prototype.first=function(x){return x==="6"||x==="0"?"primeiro":"primeira"},t.prototype.firstWeekday=function(){return"primeiro dia da semana"},t.prototype.fourth=function(x){return x==="6"||x==="0"?"quarto":"quarta"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"do minuto %s até %s de cada hora"},t.prototype.second=function(x){return x==="6"||x==="0"?"segundo":"segunda"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"No segundo %s até %s de cada minuto"},t.prototype.spaceAnd=function(){return" e"},t.prototype.spaceX0OfTheMonth=function(){return" %s do mês"},t.prototype.lastDay=function(){return"o último dia"},t.prototype.third=function(x){return x==="6"||x==="0"?"terceiro":"terceira"},t.prototype.weekdayNearestDayX0=function(){return"dia da semana mais próximo do dia %s"},t.prototype.commaEveryX0Years=function(){return", a cada %s anos"},t.prototype.commaStartingX0=function(){return", iniciando %s"},t.prototype.daysOfTheWeek=function(){return["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},t.prototype.monthsOfTheYear=function(){return["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"]},t.prototype.onTheHour=function(){return"na hora certa"},t}();s.pt_BR=p},163(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.pt_PT=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Ocorreu um erro ao gerar a descrição da expressão Cron."},t.prototype.at=function(){return"às"},t.prototype.atSpace=function(){return"às "},t.prototype.atX0=function(){return"Às %s"},t.prototype.atX0MinutesPastTheHour=function(){return"aos %s minutos da hora"},t.prototype.atX0SecondsPastTheMinute=function(){return"aos %s segundos do minuto"},t.prototype.betweenX0AndX1=function(){return"entre %s e %s"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", entre os dias %s e %s do mês"},t.prototype.commaEveryDay=function(){return", a cada dia"},t.prototype.commaEveryX0Days=function(){return", a cada %s dias"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", a cada %s dias de semana"},t.prototype.commaEveryX0Months=function(){return", a cada %s meses"},t.prototype.commaOnDayX0OfTheMonth=function(){return", no dia %s do mês"},t.prototype.commaOnlyInX0=function(){return", somente em %s"},t.prototype.commaOnlyOnX0=function(){return", somente de %s"},t.prototype.commaAndOnX0=function(){return", e de %s"},t.prototype.commaOnThe=function(x,h){return h==="6"||h==="0"?", no":", na "},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", no último dia do mês"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", no último dia da semana do mês"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dias antes do último dia do mês"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", na última %s do mês"},t.prototype.commaOnTheX0OfTheMonth=function(){return", no %s do mês"},t.prototype.commaX0ThroughX1=function(){return", de %s a %s"},t.prototype.commaAndX0ThroughX1=function(){return", e de %s a %s"},t.prototype.everyHour=function(){return"a cada hora"},t.prototype.everyMinute=function(){return"a cada minuto"},t.prototype.everyMinuteBetweenX0AndX1=function(){return"a cada minuto entre %s e %s"},t.prototype.everySecond=function(){return"a cada segundo"},t.prototype.everyX0Hours=function(){return"a cada %s horas"},t.prototype.everyX0Minutes=function(){return"a cada %s minutos"},t.prototype.everyX0Seconds=function(){return"a cada %s segundos"},t.prototype.fifth=function(x){return x==="6"||x==="0"?"quinto":"quinta"},t.prototype.first=function(x){return x==="6"||x==="0"?"primeiro":"primeira"},t.prototype.firstWeekday=function(){return"primeiro dia da semana"},t.prototype.fourth=function(x){return x==="6"||x==="0"?"quarto":"quarta"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"do minuto %s até %s de cada hora"},t.prototype.second=function(x){return x==="6"||x==="0"?"segundo":"segunda"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"No segundo %s até %s de cada minuto"},t.prototype.spaceAnd=function(){return" e"},t.prototype.spaceX0OfTheMonth=function(){return" %s do mês"},t.prototype.lastDay=function(){return"o último dia"},t.prototype.third=function(x){return x==="6"||x==="0"?"terceiro":"terceira"},t.prototype.weekdayNearestDayX0=function(){return"dia da semana mais próximo do dia %s"},t.prototype.commaEveryX0Years=function(){return", a cada %s anos"},t.prototype.commaStartingX0=function(){return", iniciando %s"},t.prototype.daysOfTheWeek=function(){return["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},t.prototype.monthsOfTheYear=function(){return["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"]},t.prototype.onTheHour=function(){return"à hora certa"},t}();s.pt_PT=p},614(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.ro=void 0;var p=function(){function t(){}return t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Eroare la generarea descrierii. Verificați sintaxa."},t.prototype.at=function(){return"La"},t.prototype.atSpace=function(){return"La "},t.prototype.atX0=function(){return"la %s"},t.prototype.atX0MinutesPastTheHour=function(){return"la și %s minute"},t.prototype.atX0SecondsPastTheMinute=function(){return"la și %s secunde"},t.prototype.betweenX0AndX1=function(){return"între %s și %s"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", între zilele %s și %s ale lunii"},t.prototype.commaEveryDay=function(){return", în fiecare zi"},t.prototype.commaEveryX0Days=function(){return", la fiecare %s zile"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", la fiecare a %s-a zi a săptămânii"},t.prototype.commaEveryX0Months=function(){return", la fiecare %s luni"},t.prototype.commaEveryX0Years=function(){return", o dată la %s ani"},t.prototype.commaOnDayX0OfTheMonth=function(){return", în ziua %s a lunii"},t.prototype.commaOnlyInX0=function(){return", doar în %s"},t.prototype.commaOnlyOnX0=function(){return", doar %s"},t.prototype.commaAndOnX0=function(){return", și %s"},t.prototype.commaOnThe=function(){return", în "},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", în ultima zi a lunii"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", în ultima zi lucrătoare a lunii"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s zile înainte de ultima zi a lunii"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", în ultima %s a lunii"},t.prototype.commaOnTheX0OfTheMonth=function(){return", în %s a lunii"},t.prototype.commaX0ThroughX1=function(){return", de %s până %s"},t.prototype.commaAndX0ThroughX1=function(){return", și de %s până %s"},t.prototype.everyHour=function(){return"în fiecare oră"},t.prototype.everyMinute=function(){return"în fiecare minut"},t.prototype.everyMinuteBetweenX0AndX1=function(){return"În fiecare minut între %s și %s"},t.prototype.everySecond=function(){return"în fiecare secundă"},t.prototype.everyX0Hours=function(){return"la fiecare %s ore"},t.prototype.everyX0Minutes=function(){return"la fiecare %s minute"},t.prototype.everyX0Seconds=function(){return"la fiecare %s secunde"},t.prototype.fifth=function(){return"a cincea"},t.prototype.first=function(){return"prima"},t.prototype.firstWeekday=function(){return"prima zi a săptămânii"},t.prototype.fourth=function(){return"a patra"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"între minutele %s și %s"},t.prototype.second=function(){return"a doua"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"între secunda %s și secunda %s"},t.prototype.spaceAnd=function(){return" și"},t.prototype.spaceX0OfTheMonth=function(){return" %s a lunii"},t.prototype.lastDay=function(){return"ultima zi"},t.prototype.third=function(){return"a treia"},t.prototype.weekdayNearestDayX0=function(){return"cea mai apropiată zi a săptămânii de ziua %s"},t.prototype.commaMonthX0ThroughMonthX1=function(){return", din %s până în %s"},t.prototype.commaYearX0ThroughYearX1=function(){return", din %s până în %s"},t.prototype.atX0MinutesPastTheHourGt20=function(){return"la și %s de minute"},t.prototype.atX0SecondsPastTheMinuteGt20=function(){return"la și %s de secunde"},t.prototype.commaStartingX0=function(){return", pornire %s"},t.prototype.daysOfTheWeek=function(){return["duminică","luni","marți","miercuri","joi","vineri","sâmbătă"]},t.prototype.monthsOfTheYear=function(){return["ianuarie","februarie","martie","aprilie","mai","iunie","iulie","august","septembrie","octombrie","noiembrie","decembrie"]},t.prototype.onTheHour=function(){return"fix la oră"},t}();s.ro=p},892(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.ru=void 0;var p=function(h,a){var i=Number(h);return i!==void 0?a[i%100>4&&i%100<20?2:[2,0,1,1,1,2][i%10<5?Math.abs(i)%10:5]]:a[2]},t=function(h,a){var i=Number(h);return i!==void 0?a[i===0?0:i===1||i===2||i===4?1:2]:a[1]},x=function(){function h(){}return h.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},h.prototype.atX0MinutesPastTheHourGt20=function(){return null},h.prototype.commaMonthX0ThroughMonthX1=function(){return null},h.prototype.commaYearX0ThroughYearX1=function(){return null},h.prototype.use24HourTimeFormatByDefault=function(){return!0},h.prototype.everyMinute=function(){return"каждую минуту"},h.prototype.everyHour=function(){return"каждый час"},h.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Произошла ошибка во время генерации описания выражения. Проверьте синтаксис крон-выражения."},h.prototype.atSpace=function(){return"В "},h.prototype.everyMinuteBetweenX0AndX1=function(){return"Каждую минуту с %s по %s"},h.prototype.at=function(){return"В"},h.prototype.spaceAnd=function(){return" и"},h.prototype.everySecond=function(){return"каждую секунду"},h.prototype.everyX0Seconds=function(a){return p(a,["каждую %s секунду","каждые %s секунды","каждые %s секунд"])},h.prototype.secondsX0ThroughX1PastTheMinute=function(){return"секунды с %s по %s"},h.prototype.atX0SecondsPastTheMinute=function(a){return p(a,["в %s секунду","в %s секунды","в %s секунд"])},h.prototype.everyX0Minutes=function(a){return p(a,["каждую %s минуту","каждые %s минуты","каждые %s минут"])},h.prototype.minutesX0ThroughX1PastTheHour=function(){return"минуты с %s по %s"},h.prototype.atX0MinutesPastTheHour=function(a){return p(a,["в %s минуту","в %s минуты","в %s минут"])},h.prototype.everyX0Hours=function(a){return p(a,["каждый %s час","каждые %s часа","каждые %s часов"])},h.prototype.betweenX0AndX1=function(){return"с %s по %s"},h.prototype.atX0=function(){return"в %s"},h.prototype.commaEveryDay=function(){return", каждый день"},h.prototype.commaEveryX0DaysOfTheWeek=function(a){return p(a,[", каждый %s день недели",", каждые %s дня недели",", каждые %s дней недели"])},h.prototype.commaX0ThroughX1=function(a){return a&&(a[0]=="2"||a[0]=="3")?", со %s по %s":", с %s по %s"},h.prototype.commaAndX0ThroughX1=function(a){return a&&(a[0]=="2"||a[0]=="3")?" и со %s по %s":" и с %s по %s"},h.prototype.first=function(a){return t(a,["первое","первый","первую"])},h.prototype.second=function(a){return t(a,["второе","второй","вторую"])},h.prototype.third=function(a){return t(a,["третье","третий","третью"])},h.prototype.fourth=function(a){return t(a,["четвертое","четвертый","четвертую"])},h.prototype.fifth=function(a){return t(a,["пятое","пятый","пятую"])},h.prototype.commaOnThe=function(a){return a==="2"?", во ":", в "},h.prototype.spaceX0OfTheMonth=function(){return" %s месяца"},h.prototype.lastDay=function(){return"последний день"},h.prototype.commaOnTheLastX0OfTheMonth=function(a){return t(a,[", в последнее %s месяца",", в последний %s месяца",", в последнюю %s месяца"])},h.prototype.commaOnlyOnX0=function(a){return a&&a[0]==="2"?", только во %s":", только в %s"},h.prototype.commaAndOnX0=function(){return", и %s"},h.prototype.commaEveryX0Months=function(a){return p(a,[""," каждые %s месяца"," каждые %s месяцев"])},h.prototype.commaOnlyInMonthX0=function(){return", только %s"},h.prototype.commaOnlyInX0=function(){return", только в %s"},h.prototype.commaOnTheLastDayOfTheMonth=function(){return", в последний день месяца"},h.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", в последний будний день месяца"},h.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(a){return p(a,[", за %s день до конца месяца",", за %s дня до конца месяца",", за %s дней до конца месяца"])},h.prototype.firstWeekday=function(){return"первый будний день"},h.prototype.weekdayNearestDayX0=function(){return"ближайший будний день к %s числу"},h.prototype.commaOnTheX0OfTheMonth=function(){return", в %s месяца"},h.prototype.commaEveryX0Days=function(a){return p(a,[", каждый %s день",", каждые %s дня",", каждые %s дней"])},h.prototype.commaBetweenDayX0AndX1OfTheMonth=function(a){return a&&a.substring(0,a.indexOf("-"))=="2"?", со %s по %s число месяца":", с %s по %s число месяца"},h.prototype.commaOnDayX0OfTheMonth=function(a){return a&&a[0]=="2"?", во %s число месяца":", в %s число месяца"},h.prototype.commaEveryX0Years=function(a){return p(a,[", каждый %s год",", каждые %s года",", каждые %s лет"])},h.prototype.commaStartingX0=function(){return", начало %s"},h.prototype.daysOfTheWeek=function(){return["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"]},h.prototype.daysOfTheWeekInCase=function(a){return a===void 0&&(a=2),a==1?["воскресенья","понедельника","вторника","среды","четверга","пятницы","субботы"]:["воскресенье","понедельник","вторник","среду","четверг","пятницу","субботу"]},h.prototype.monthsOfTheYear=function(){return["январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь"]},h.prototype.monthsOfTheYearInCase=function(a){return a==1?["января","февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"]:this.monthsOfTheYear()},h.prototype.onTheHour=function(){return"ровно в час"},h}();s.ru=x},923(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.sk=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Pri vytváraní popisu došlo k chybe. Skontrolujte prosím správnosť syntaxe cronu."},t.prototype.everyMinute=function(){return"každú minútu"},t.prototype.everyHour=function(){return"každú hodinu"},t.prototype.atSpace=function(){return"V "},t.prototype.everyMinuteBetweenX0AndX1=function(){return"Každú minútu medzi %s a %s"},t.prototype.at=function(){return"V"},t.prototype.spaceAnd=function(){return" a"},t.prototype.everySecond=function(){return"každú sekundu"},t.prototype.everyX0Seconds=function(){return"každých %s sekúnd"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"sekundy od %s do %s"},t.prototype.atX0SecondsPastTheMinute=function(){return"v %s sekúnd"},t.prototype.everyX0Minutes=function(){return"každých %s minút"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"minúty od %s do %s"},t.prototype.atX0MinutesPastTheHour=function(){return"v %s minút"},t.prototype.everyX0Hours=function(){return"každých %s hodín"},t.prototype.betweenX0AndX1=function(){return"medzi %s a %s"},t.prototype.atX0=function(){return"v %s"},t.prototype.commaEveryDay=function(){return", každý deň"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", každých %s dní v týždni"},t.prototype.commaX0ThroughX1=function(){return", od %s do %s"},t.prototype.commaAndX0ThroughX1=function(){return", a od %s do %s"},t.prototype.first=function(){return"prvý"},t.prototype.second=function(){return"druhý"},t.prototype.third=function(){return"tretí"},t.prototype.fourth=function(){return"štvrtý"},t.prototype.fifth=function(){return"piaty"},t.prototype.commaOnThe=function(){return", "},t.prototype.spaceX0OfTheMonth=function(){return" %s v mesiaci"},t.prototype.lastDay=function(){return"posledný deň"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", posledný %s v mesiaci"},t.prototype.commaOnlyOnX0=function(){return", iba v %s"},t.prototype.commaAndOnX0=function(){return", a v %s"},t.prototype.commaEveryX0Months=function(){return", každých %s mesiacov"},t.prototype.commaOnlyInX0=function(){return", iba v %s"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", posledný deň v mesiaci"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", posledný pracovný deň v mesiaci"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dní pred posledným dňom v mesiaci"},t.prototype.firstWeekday=function(){return"prvý pracovný deň"},t.prototype.weekdayNearestDayX0=function(){return"pracovný deň najbližšie %s. dňu"},t.prototype.commaOnTheX0OfTheMonth=function(){return", v %s v mesiaci"},t.prototype.commaEveryX0Days=function(){return", každých %s dní"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", medzi dňami %s a %s v mesiaci"},t.prototype.commaOnDayX0OfTheMonth=function(){return", %s. deň v mesiaci"},t.prototype.commaEveryX0Years=function(){return", každých %s rokov"},t.prototype.commaStartingX0=function(){return", začínajúcich %s"},t.prototype.daysOfTheWeek=function(){return["Nedeľa","Pondelok","Utorok","Streda","Štvrtok","Piatok","Sobota"]},t.prototype.monthsOfTheYear=function(){return["Január","Február","Marec","Apríl","Máj","Jún","Júl","August","September","Október","November","December"]},t.prototype.onTheHour=function(){return"o celú hodinu"},t}();s.sk=p},474(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.sl=void 0;var p=function(){function t(){}return t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Pri generiranju opisa izraza je prišlo do napake. Preverite sintakso izraza cron."},t.prototype.at=function(){return"Ob"},t.prototype.atSpace=function(){return"Ob "},t.prototype.atX0=function(){return"ob %s"},t.prototype.atX0MinutesPastTheHour=function(){return"ob %s."},t.prototype.atX0SecondsPastTheMinute=function(){return"ob %s."},t.prototype.betweenX0AndX1=function(){return"od %s do %s"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", od %s. do %s. dne v mesecu"},t.prototype.commaEveryDay=function(){return", vsak dan"},t.prototype.commaEveryX0Days=function(){return", vsakih %s dni"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", vsakih %s dni v tednu"},t.prototype.commaEveryX0Months=function(){return", vsakih %s mesecev"},t.prototype.commaEveryX0Years=function(){return", vsakih %s let"},t.prototype.commaOnDayX0OfTheMonth=function(){return", %s. dan v mesecu"},t.prototype.commaOnlyInX0=function(){return", samo v %s"},t.prototype.commaOnlyOnX0=function(){return", samo v %s"},t.prototype.commaAndOnX0=function(){return"in naprej %s"},t.prototype.commaOnThe=function(){return", "},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", zadnji %s v mesecu"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", zadnji delovni dan v mesecu"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dni pred koncem meseca"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", zadnji %s v mesecu"},t.prototype.commaOnTheX0OfTheMonth=function(){return", %s v mesecu"},t.prototype.commaX0ThroughX1=function(){return", od %s do %s"},t.prototype.commaAndX0ThroughX1=function(){return", in od %s do %s"},t.prototype.everyHour=function(){return"vsako uro"},t.prototype.everyMinute=function(){return"vsako minuto"},t.prototype.everyMinuteBetweenX0AndX1=function(){return"Vsako minuto od %s do %s"},t.prototype.everySecond=function(){return"vsako sekundo"},t.prototype.everyX0Hours=function(){return"vsakih %s ur"},t.prototype.everyX0Minutes=function(){return"vsakih %s minut"},t.prototype.everyX0Seconds=function(){return"vsakih %s sekund"},t.prototype.fifth=function(){return"peti"},t.prototype.first=function(){return"prvi"},t.prototype.firstWeekday=function(){return"prvi delovni dan"},t.prototype.fourth=function(){return"četrti"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"minute od %s do %s"},t.prototype.second=function(){return"drugi"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"sekunde od %s do %s"},t.prototype.spaceAnd=function(){return" in"},t.prototype.spaceX0OfTheMonth=function(){return" %s v mesecu"},t.prototype.lastDay=function(){return"zadnjič"},t.prototype.third=function(){return"tretji"},t.prototype.weekdayNearestDayX0=function(){return"delovni dan, najbližji %s. dnevu"},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.commaStartingX0=function(){return", začenši %s"},t.prototype.daysOfTheWeek=function(){return["Nedelja","Ponedeljek","Torek","Sreda","Četrtek","Petek","Sobota"]},t.prototype.monthsOfTheYear=function(){return["januar","februar","marec","april","maj","junij","julij","avgust","september","oktober","november","december"]},t.prototype.onTheHour=function(){return"ob točni uri"},t}();s.sl=p},716(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.sr=void 0;var p=function(){function t(){}return t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Došlo je do greške pri generisanju izraza. Proverite sintaksu cron izraza."},t.prototype.at=function(){return"U"},t.prototype.atSpace=function(){return"U "},t.prototype.atX0=function(){return"u %s"},t.prototype.atX0MinutesPastTheHour=function(){return"u %s minuta posle punog sata"},t.prototype.atX0SecondsPastTheMinute=function(){return"u %s sekundi posle pune minute"},t.prototype.betweenX0AndX1=function(){return"između %s i %s"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", između %s. i %s. dana u mesecu"},t.prototype.commaEveryDay=function(){return", svaki dan"},t.prototype.commaEveryX0Days=function(){return", svakih %s dana"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", svakih %s dana u nedelji"},t.prototype.commaEveryX0Months=function(){return", svakih %s meseci"},t.prototype.commaEveryX0Years=function(){return", svakih %s godina"},t.prototype.commaOnDayX0OfTheMonth=function(){return", %s. dan u mesecu"},t.prototype.commaOnlyInX0=function(){return", samo u %s"},t.prototype.commaOnlyOnX0=function(){return", samo %s"},t.prototype.commaAndOnX0=function(){return", i %s"},t.prototype.commaOnThe=function(){return", "},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", poslednjeg dana u mesecu"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", poslednjeg radnog dana u mesecu"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dana pre kraja meseca"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", poslednji %s u mesecu"},t.prototype.commaOnTheX0OfTheMonth=function(){return", %s u mesecu"},t.prototype.commaX0ThroughX1=function(){return", od %s do %s"},t.prototype.commaAndX0ThroughX1=function(){return", i od %s do %s"},t.prototype.everyHour=function(){return"svaki sat"},t.prototype.everyMinute=function(){return"svakog minuta"},t.prototype.everyMinuteBetweenX0AndX1=function(){return"Svakog minuta između %s i %s"},t.prototype.everySecond=function(){return"svake sekunde"},t.prototype.everyX0Hours=function(){return"svakih %s sati"},t.prototype.everyX0Minutes=function(){return"svakih %s minuta"},t.prototype.everyX0Seconds=function(){return"svakih %s sekundi"},t.prototype.fifth=function(){return"peti"},t.prototype.first=function(){return"prvi"},t.prototype.firstWeekday=function(){return"prvi radni dan"},t.prototype.fourth=function(){return"četvrti"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"minute od %s do %s posle punog sata"},t.prototype.second=function(){return"drugi"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"sekunde od %s do %s posle pune minute"},t.prototype.spaceAnd=function(){return" i"},t.prototype.spaceX0OfTheMonth=function(){return" %s u mesecu"},t.prototype.lastDay=function(){return"poslednji dan"},t.prototype.third=function(){return"treći"},t.prototype.weekdayNearestDayX0=function(){return"radni dan najbliži %s. danu"},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.commaStartingX0=function(){return", počevši od %s"},t.prototype.daysOfTheWeek=function(){return["Nedelja","Ponedeljak","Utorak","Sreda","Četvrtak","Petak","Subota"]},t.prototype.monthsOfTheYear=function(){return["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar"]},t.prototype.onTheHour=function(){return"u pun sat"},t}();s.sr=p},544(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.sv=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Ett fel inträffade vid generering av uttryckets beskrivning. Kontrollera cron-uttryckets syntax."},t.prototype.everyMinute=function(){return"varje minut"},t.prototype.everyHour=function(){return"varje timme"},t.prototype.atSpace=function(){return"Kl "},t.prototype.everyMinuteBetweenX0AndX1=function(){return"Varje minut mellan %s och %s"},t.prototype.at=function(){return"Kl"},t.prototype.spaceAnd=function(){return" och"},t.prototype.everySecond=function(){return"varje sekund"},t.prototype.everyX0Seconds=function(){return"varje %s sekund"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"sekunderna från %s till och med %s efter minuten"},t.prototype.atX0SecondsPastTheMinute=function(){return"på %s sekunder efter minuten"},t.prototype.everyX0Minutes=function(){return"var %s minut"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"minuterna från %s till och med %s efter timmen"},t.prototype.atX0MinutesPastTheHour=function(){return"på %s minuten efter timmen"},t.prototype.everyX0Hours=function(){return"var %s timme"},t.prototype.betweenX0AndX1=function(){return"mellan %s och %s"},t.prototype.atX0=function(){return"kl %s"},t.prototype.commaEveryDay=function(){return", varje dag"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", var %s dag i veckan"},t.prototype.commaX0ThroughX1=function(){return", %s till %s"},t.prototype.commaAndX0ThroughX1=function(){return", och %s till %s"},t.prototype.first=function(){return"första"},t.prototype.second=function(){return"andra"},t.prototype.third=function(){return"tredje"},t.prototype.fourth=function(){return"fjärde"},t.prototype.fifth=function(){return"femte"},t.prototype.commaOnThe=function(){return", den "},t.prototype.spaceX0OfTheMonth=function(){return" %sen av månaden"},t.prototype.lastDay=function(){return"den sista dagen"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", på sista %s av månaden"},t.prototype.commaOnlyOnX0=function(){return", varje %s"},t.prototype.commaAndOnX0=function(){return", och på %s"},t.prototype.commaEveryX0Months=function(){return", var %s månad"},t.prototype.commaOnlyInX0=function(){return", bara på %s"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", på sista dagen av månaden"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", på sista veckodag av månaden"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s dagar före den sista dagen i månaden"},t.prototype.firstWeekday=function(){return"första veckodag"},t.prototype.weekdayNearestDayX0=function(){return"veckodagen närmast dag %s"},t.prototype.commaOnTheX0OfTheMonth=function(){return", på den %s av månaden"},t.prototype.commaEveryX0Days=function(){return", var %s dag"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", mellan dag %s och %s av månaden"},t.prototype.commaOnDayX0OfTheMonth=function(){return", på dag %s av månaden"},t.prototype.commaEveryX0Years=function(){return", var %s år"},t.prototype.commaStartingX0=function(){return", startar %s"},t.prototype.daysOfTheWeek=function(){return["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"]},t.prototype.monthsOfTheYear=function(){return["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"]},t.prototype.onTheHour=function(){return"på heltimmen"},t}();s.sv=p},799(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.sw=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Kuna tatizo wakati wa kutunga msemo. Angalia cron expression syntax."},t.prototype.everyMinute=function(){return"kila dakika"},t.prototype.everyHour=function(){return"kila saa"},t.prototype.atSpace=function(){return"Kwa "},t.prototype.everyMinuteBetweenX0AndX1=function(){return"Kila dakika kwanzia %s hadi %s"},t.prototype.at=function(){return"Kwa"},t.prototype.spaceAnd=function(){return" na"},t.prototype.everySecond=function(){return"kila sekunde"},t.prototype.everyX0Seconds=function(){return"kila sekunde %s"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"sekunde ya %s hadi %s baada ya dakika"},t.prototype.atX0SecondsPastTheMinute=function(){return"sekunde %s baada ya dakika"},t.prototype.everyX0Minutes=function(){return"kila dakika %s"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"minutes %s through %s past the hour"},t.prototype.atX0MinutesPastTheHour=function(){return"at %s minutes past the hour"},t.prototype.everyX0Hours=function(){return"every %s hours"},t.prototype.betweenX0AndX1=function(){return"kati ya %s na %s"},t.prototype.atX0=function(){return"kwenye %s"},t.prototype.commaEveryDay=function(){return", kila siku"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", kila siku %s ya wiki"},t.prototype.commaX0ThroughX1=function(){return", %s hadi %s"},t.prototype.commaAndX0ThroughX1=function(){return", na %s hadi %s"},t.prototype.first=function(){return"ya kwanza"},t.prototype.second=function(){return"ya pili"},t.prototype.third=function(){return"ya tatu"},t.prototype.fourth=function(){return"ya nne"},t.prototype.fifth=function(){return"ya tano"},t.prototype.commaOnThe=function(){return", kwenye "},t.prototype.spaceX0OfTheMonth=function(){return" siku %s ya mwezi"},t.prototype.lastDay=function(){return"siku ya mwisho"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", siku ya %s ya mwezi"},t.prototype.commaOnlyOnX0=function(){return", kwa %s tu"},t.prototype.commaAndOnX0=function(){return", na pia %s"},t.prototype.commaEveryX0Months=function(){return", kila mwezi wa %s"},t.prototype.commaOnlyInX0=function(){return", kwa %s tu"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", siku ya mwisho wa mwezi"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", wikendi ya mwisho wa mwezi"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", siku ya %s kabla ya siku ya mwisho wa mwezi"},t.prototype.firstWeekday=function(){return"siku za kazi ya kwanza"},t.prototype.weekdayNearestDayX0=function(){return"siku ya kazi karibu na siku ya %s"},t.prototype.commaOnTheX0OfTheMonth=function(){return", siku ya %s ya mwezi"},t.prototype.commaEveryX0Days=function(){return", kila siku %s"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", kati ya siku %s na %s ya mwezi"},t.prototype.commaOnDayX0OfTheMonth=function(){return", siku ya %s ya mwezi"},t.prototype.commaEveryX0Years=function(){return", kila miaka %s"},t.prototype.commaStartingX0=function(){return", kwanzia %s"},t.prototype.daysOfTheWeek=function(){return["Jumapili","Jumatatu","Jumanne","Jumatano","Alhamisi","Ijumaa","Jumamosi"]},t.prototype.monthsOfTheYear=function(){return["Januari","Februari","Machi","Aprili","Mei","Juni","Julai","Agosti","Septemba","Oktoba","Novemba","Desemba"]},t.prototype.onTheHour=function(){return"saa kamili"},t}();s.sw=p},33(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.th=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!1},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"เกิดข้อผิดพลาดขณะสร้างคำอธิบายนิพจน์ ตรวจสอบไวยากรณ์นิพจน์ครอน"},t.prototype.everyMinute=function(){return"ทุกๆ นาที"},t.prototype.everyHour=function(){return"ทุกๆ ชั่วโมง"},t.prototype.atSpace=function(){return"เมื่อ "},t.prototype.everyMinuteBetweenX0AndX1=function(){return"ทุกๆ นาที %s และ %s"},t.prototype.at=function(){return"เมื่อ"},t.prototype.spaceAnd=function(){return" และ"},t.prototype.everySecond=function(){return"ทุกๆ วินาที"},t.prototype.everyX0Seconds=function(){return"ทุกๆ %s วินาที"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"วินาที %s ถึง %s นาทีที่ผ่านมา"},t.prototype.atX0SecondsPastTheMinute=function(){return"เมื่อ %s วินาที นาทีที่ผ่านมา"},t.prototype.everyX0Minutes=function(){return"ทุกๆ %s นาที"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"นาที %s ถึง %s ชั่วโมงที่ผ่านมา"},t.prototype.atX0MinutesPastTheHour=function(){return"เมื่อ %s นาที ชั่วโมงที่ผ่านมา"},t.prototype.everyX0Hours=function(){return"ทุกๆ %s ชั่วโมง"},t.prototype.betweenX0AndX1=function(){return"ระหว่าง %s ถึง %s"},t.prototype.atX0=function(){return"เมื่อ %s"},t.prototype.commaEveryDay=function(){return", ทุกๆ วัน"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", ทุกๆ %s วันของสัปดาห์"},t.prototype.commaX0ThroughX1=function(){return", %s ถึง %s"},t.prototype.commaAndX0ThroughX1=function(){return", %s ถึง %s"},t.prototype.first=function(){return"แรก"},t.prototype.second=function(){return"ที่สอง"},t.prototype.third=function(){return"ที่สาม"},t.prototype.fourth=function(){return"ที่สี่"},t.prototype.fifth=function(){return"ที่ห้า"},t.prototype.commaOnThe=function(){return", ในวัน "},t.prototype.spaceX0OfTheMonth=function(){return" %s ของเดือน"},t.prototype.lastDay=function(){return"วันสุดท้าย"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", ณ สุดท้าย %s ของเดือน"},t.prototype.commaOnlyOnX0=function(){return", เท่านั้น %s"},t.prototype.commaAndOnX0=function(){return", และใน %s"},t.prototype.commaEveryX0Months=function(){return", ทุกๆ %s เดือน"},t.prototype.commaOnlyInX0=function(){return", เท่านั้น %s"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", ในวันสิ้นเดือน"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", ในวันธรรมดาสุดท้ายของเดือน"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s วันก่อนวันสุดท้ายของเดือน"},t.prototype.firstWeekday=function(){return"วันธรรมดาวันแรก"},t.prototype.weekdayNearestDayX0=function(){return"วันธรรมดาที่ใกล้ที่สุด %s"},t.prototype.commaOnTheX0OfTheMonth=function(){return", ในวัน %s ของเดือน"},t.prototype.commaEveryX0Days=function(){return", ทุกๆ %s วัน"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", ระหว่างวัน %s และ %s ของเดือน"},t.prototype.commaOnDayX0OfTheMonth=function(){return", ในวัน %s ของเดือน"},t.prototype.commaEveryHour=function(){return", ทุกๆ ชั่วโมง"},t.prototype.commaEveryX0Years=function(){return", ทุกๆ %s ปี"},t.prototype.commaStartingX0=function(){return", เริ่ม %s"},t.prototype.daysOfTheWeek=function(){return["วันอาทิตย์","วันจันทร์","วันอังคาร","วันพุธ","วันพฤหัสบดี","วันศุกร์","วันเสาร์"]},t.prototype.monthsOfTheYear=function(){return["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"]},t.prototype.onTheHour=function(){return"ตรงชั่วโมง"},t}();s.th=p},631(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.tr=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.everyMinute=function(){return"her dakika"},t.prototype.everyHour=function(){return"her saat"},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"İfade açıklamasını oluştururken bir hata oluştu. Cron ifadesini gözden geçirin."},t.prototype.atSpace=function(){return"Saat "},t.prototype.everyMinuteBetweenX0AndX1=function(){return"Saat %s ve %s arasındaki her dakika"},t.prototype.at=function(){return"Saat"},t.prototype.spaceAnd=function(){return" ve"},t.prototype.everySecond=function(){return"her saniye"},t.prototype.everyX0Seconds=function(){return"her %s saniyede bir"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"dakikaların %s. ve %s. saniyeleri arası"},t.prototype.atX0SecondsPastTheMinute=function(){return"dakikaların %s. saniyesinde"},t.prototype.everyX0Minutes=function(){return"her %s dakikada bir"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"saatlerin %s. ve %s. dakikaları arası"},t.prototype.atX0MinutesPastTheHour=function(){return"saatlerin %s. dakikasında"},t.prototype.everyX0Hours=function(){return"her %s saatte"},t.prototype.betweenX0AndX1=function(){return"%s ile %s arasında"},t.prototype.atX0=function(){return"saat %s"},t.prototype.commaEveryDay=function(){return", her gün"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", ayın her %s günü"},t.prototype.commaX0ThroughX1=function(){return", %s ile %s arasında"},t.prototype.commaAndX0ThroughX1=function(){return", ve %s ile %s arasında"},t.prototype.first=function(){return"ilk"},t.prototype.second=function(){return"ikinci"},t.prototype.third=function(){return"üçüncü"},t.prototype.fourth=function(){return"dördüncü"},t.prototype.fifth=function(){return"beşinci"},t.prototype.commaOnThe=function(){return", ayın "},t.prototype.spaceX0OfTheMonth=function(){return" %s günü"},t.prototype.lastDay=function(){return"son gün"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", ayın son %s günü"},t.prototype.commaOnlyOnX0=function(){return", sadece %s günü"},t.prototype.commaAndOnX0=function(){return", ve %s"},t.prototype.commaEveryX0Months=function(){return", %s ayda bir"},t.prototype.commaOnlyInX0=function(){return", sadece %s için"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", ayın son günü"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", ayın son iş günü"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s ayın son gününden önceki günler"},t.prototype.firstWeekday=function(){return"ilk iş günü"},t.prototype.weekdayNearestDayX0=function(){return"%s. günü sonrasındaki ilk iş günü"},t.prototype.commaOnTheX0OfTheMonth=function(){return", ayın %s"},t.prototype.commaEveryX0Days=function(){return", %s günde bir"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", ayın %s. ve %s. günleri arası"},t.prototype.commaOnDayX0OfTheMonth=function(){return", ayın %s. günü"},t.prototype.commaEveryX0Years=function(){return", %s yılda bir"},t.prototype.commaStartingX0=function(){return", başlangıç %s"},t.prototype.daysOfTheWeek=function(){return["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"]},t.prototype.monthsOfTheYear=function(){return["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"]},t.prototype.onTheHour=function(){return"saatin başında"},t}();s.tr=p},225(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.uk=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.everyMinute=function(){return"щохвилини"},t.prototype.everyHour=function(){return"щогодини"},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"ВІдбулася помилка підчас генерації опису. Перевірта правильність написання cron виразу."},t.prototype.atSpace=function(){return"О "},t.prototype.everyMinuteBetweenX0AndX1=function(){return"Щохвилини між %s та %s"},t.prototype.at=function(){return"О"},t.prototype.spaceAnd=function(){return" та"},t.prototype.everySecond=function(){return"Щосекунди"},t.prototype.everyX0Seconds=function(){return"кожні %s секунд"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"з %s по %s секунду"},t.prototype.atX0SecondsPastTheMinute=function(){return"о %s секунді"},t.prototype.everyX0Minutes=function(){return"кожні %s хвилин"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"з %s по %s хвилину"},t.prototype.atX0MinutesPastTheHour=function(){return"о %s хвилині"},t.prototype.everyX0Hours=function(){return"кожні %s годин"},t.prototype.betweenX0AndX1=function(){return"між %s та %s"},t.prototype.atX0=function(){return"о %s"},t.prototype.commaEveryDay=function(){return", щоденно"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", кожен %s день тижня"},t.prototype.commaX0ThroughX1=function(){return", %s по %s"},t.prototype.commaAndX0ThroughX1=function(){return", та %s по %s"},t.prototype.first=function(){return"перший"},t.prototype.second=function(){return"другий"},t.prototype.third=function(){return"третій"},t.prototype.fourth=function(){return"четвертий"},t.prototype.fifth=function(){return"п'ятий"},t.prototype.commaOnThe=function(){return", в "},t.prototype.spaceX0OfTheMonth=function(){return" %s місяця"},t.prototype.lastDay=function(){return"останній день"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", в останній %s місяця"},t.prototype.commaOnlyOnX0=function(){return", тільки в %s"},t.prototype.commaAndOnX0=function(){return", і в %s"},t.prototype.commaEveryX0Months=function(){return", кожен %s місяць"},t.prototype.commaOnlyInX0=function(){return", тільки в %s"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", в останній день місяця"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", в останній будень місяця"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s днів до останнього дня місяця"},t.prototype.firstWeekday=function(){return"перший будень"},t.prototype.weekdayNearestDayX0=function(){return"будень найближчий до %s дня"},t.prototype.commaOnTheX0OfTheMonth=function(){return", в %s місяця"},t.prototype.commaEveryX0Days=function(){return", кожен %s день"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", між %s та %s днями місяця"},t.prototype.commaOnDayX0OfTheMonth=function(){return", на %s день місяця"},t.prototype.commaEveryX0Years=function(){return", кожні %s роки"},t.prototype.commaStartingX0=function(){return", початок %s"},t.prototype.daysOfTheWeek=function(){return["неділя","понеділок","вівторок","середа","четвер","п'ятниця","субота"]},t.prototype.monthsOfTheYear=function(){return["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"]},t.prototype.onTheHour=function(){return"рівно о годині"},t}();s.uk=p},292(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.vi=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return null},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"Đã xảy ra lỗi khi tạo mô tả biểu thức. Vui lòng kiểm tra cú pháp biểu thức cron."},t.prototype.everyMinute=function(){return"mỗi phút"},t.prototype.everyHour=function(){return"mỗi giờ"},t.prototype.atSpace=function(){return"Vào "},t.prototype.everyMinuteBetweenX0AndX1=function(){return"Mỗi phút giữa %s and %s"},t.prototype.at=function(){return"Vào"},t.prototype.spaceAnd=function(){return" và"},t.prototype.everySecond=function(){return"mỗi giây"},t.prototype.everyX0Seconds=function(){return"mỗi %s giây"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"giây thứ %s qua phút thứ %s"},t.prototype.atX0SecondsPastTheMinute=function(){return"tại giây thứ %s của mỗi phút"},t.prototype.everyX0Minutes=function(){return"mỗi %s phút"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"phút thứ %s qua %s tiếng"},t.prototype.atX0MinutesPastTheHour=function(){return"vào %s phút của mỗi tiếng"},t.prototype.everyX0Hours=function(){return"mỗi %s tiếng"},t.prototype.betweenX0AndX1=function(){return"giữa %s và %s"},t.prototype.atX0=function(){return"vào %s"},t.prototype.commaEveryDay=function(){return", mỗi ngày"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", mỗi %s ngày trong tuần"},t.prototype.commaX0ThroughX1=function(){return", %s đến %s"},t.prototype.commaAndX0ThroughX1=function(){return", %s đến %s"},t.prototype.first=function(){return"đầu tiên"},t.prototype.second=function(){return"thứ 2"},t.prototype.third=function(){return"thứ 3"},t.prototype.fourth=function(){return"thứ 4"},t.prototype.fifth=function(){return"thứ 5"},t.prototype.commaOnThe=function(){return", trên "},t.prototype.spaceX0OfTheMonth=function(){return" %s của tháng"},t.prototype.lastDay=function(){return"ngày cuối cùng"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", vào ngày %s cuối cùng của tháng"},t.prototype.commaOnlyOnX0=function(){return", chỉ trên %s"},t.prototype.commaAndOnX0=function(){return", và hơn %s"},t.prototype.commaEveryX0Months=function(){return", mỗi ngày %s tháng"},t.prototype.commaOnlyInX0=function(){return", chỉ trong %s"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", vào ngày cuối cùng của tháng"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", vào ngày cuối tuần của tháng"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s ngày trước ngày cuối cùng của tháng"},t.prototype.firstWeekday=function(){return"ngày đầu tuần"},t.prototype.weekdayNearestDayX0=function(){return"ngày trong tuần ngày gần nhất %s"},t.prototype.commaOnTheX0OfTheMonth=function(){return", vào ngày %s của tháng"},t.prototype.commaEveryX0Days=function(){return", mỗi %s ngày"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", giữa ngày %s và %s trong tháng"},t.prototype.commaOnDayX0OfTheMonth=function(){return", vào %s ngày trong tháng"},t.prototype.commaEveryHour=function(){return", mỗi tiếng"},t.prototype.commaEveryX0Years=function(){return", mỗi %s năm"},t.prototype.commaStartingX0=function(){return", bắt đầu %s"},t.prototype.daysOfTheWeek=function(){return["Chủ nhật","Thứ 2","Thứ 3","Thứ 4","Thứ 5","Thứ 6","Thứ 7"]},t.prototype.monthsOfTheYear=function(){return["Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12"]},t.prototype.onTheHour=function(){return"đúng giờ"},t}();s.vi=p},571(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.zh_CN=void 0;var p=function(){function t(){}return t.prototype.setPeriodBeforeTime=function(){return!0},t.prototype.pm=function(){return"下午"},t.prototype.am=function(){return"上午"},t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return", 从%s年至%s年"},t.prototype.use24HourTimeFormatByDefault=function(){return!1},t.prototype.everyMinute=function(){return"每分钟"},t.prototype.everyHour=function(){return"每小时"},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"生成表达式描述时发生了错误,请检查cron表达式语法。"},t.prototype.atSpace=function(){return"在"},t.prototype.everyMinuteBetweenX0AndX1=function(){return"在 %s 至 %s 之间的每分钟"},t.prototype.at=function(){return"在"},t.prototype.spaceAnd=function(){return" 和"},t.prototype.everySecond=function(){return"每秒"},t.prototype.everyX0Seconds=function(){return"每隔 %s 秒"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"在一分钟后的第 %s 到 %s 秒"},t.prototype.atX0SecondsPastTheMinute=function(){return"在一分钟后的第 %s 秒"},t.prototype.everyX0Minutes=function(){return"每隔 %s 分钟"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"在整点后的第 %s 到 %s 分钟"},t.prototype.atX0MinutesPastTheHour=function(){return"在整点后的第 %s 分钟"},t.prototype.everyX0Hours=function(){return"每隔 %s 小时"},t.prototype.betweenX0AndX1=function(){return"在 %s 和 %s 之间"},t.prototype.atX0=function(){return"在%s"},t.prototype.commaEveryDay=function(){return", 每天"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", 每周的每 %s 天"},t.prototype.commaX0ThroughX1=function(){return", %s至%s"},t.prototype.commaAndX0ThroughX1=function(){return", 和%s至%s"},t.prototype.first=function(){return"第一个"},t.prototype.second=function(){return"第二个"},t.prototype.third=function(){return"第三个"},t.prototype.fourth=function(){return"第四个"},t.prototype.fifth=function(){return"第五个"},t.prototype.commaOnThe=function(){return", 限每月的"},t.prototype.spaceX0OfTheMonth=function(){return"%s"},t.prototype.lastDay=function(){return"本月最后一天"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", 限每月的最后一个%s"},t.prototype.commaOnlyOnX0=function(){return", 仅%s"},t.prototype.commaAndOnX0=function(){return", 或者为%s"},t.prototype.commaEveryX0Months=function(){return", 每隔 %s 个月"},t.prototype.commaOnlyInX0=function(){return", 仅限%s"},t.prototype.commaOnlyInMonthX0=function(){return", 仅于%s份"},t.prototype.commaOnlyInYearX0=function(){return", 仅于 %s 年"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", 限每月的最后一天"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", 限每月的最后一个工作日"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", 限每月最后%s天"},t.prototype.firstWeekday=function(){return"第一个工作日"},t.prototype.weekdayNearestDayX0=function(){return"最接近 %s 号的工作日"},t.prototype.commaOnTheX0OfTheMonth=function(){return", 限每月的%s"},t.prototype.commaEveryX0Days=function(){return", 每隔 %s 天"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", 限每月的 %s 至 %s 之间"},t.prototype.commaOnDayX0OfTheMonth=function(){return", 限每月%s"},t.prototype.commaEveryX0Years=function(){return", 每隔 %s 年"},t.prototype.commaStartingX0=function(){return", %s开始"},t.prototype.dayX0=function(){return" %s 号"},t.prototype.daysOfTheWeek=function(){return["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},t.prototype.monthsOfTheYear=function(){return["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},t.prototype.onTheHour=function(){return"整点"},t}();s.zh_CN=p},983(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.zh_TW=void 0;var p=function(){function t(){}return t.prototype.atX0SecondsPastTheMinuteGt20=function(){return null},t.prototype.atX0MinutesPastTheHourGt20=function(){return null},t.prototype.commaMonthX0ThroughMonthX1=function(){return null},t.prototype.commaYearX0ThroughYearX1=function(){return", 從 %s 年至 %s 年"},t.prototype.use24HourTimeFormatByDefault=function(){return!0},t.prototype.everyMinute=function(){return"每分鐘"},t.prototype.everyHour=function(){return"每小時"},t.prototype.anErrorOccuredWhenGeneratingTheExpressionD=function(){return"產生表達式描述時發生了錯誤,請檢查 cron 表達式語法。"},t.prototype.atSpace=function(){return"在 "},t.prototype.everyMinuteBetweenX0AndX1=function(){return"在 %s 和 %s 之間的每分鐘"},t.prototype.at=function(){return"在"},t.prototype.spaceAnd=function(){return" 和"},t.prototype.everySecond=function(){return"每秒"},t.prototype.everyX0Seconds=function(){return"每 %s 秒"},t.prototype.secondsX0ThroughX1PastTheMinute=function(){return"在一分鐘後的 %s 到 %s 秒"},t.prototype.atX0SecondsPastTheMinute=function(){return"在一分鐘後的 %s 秒"},t.prototype.everyX0Minutes=function(){return"每 %s 分鐘"},t.prototype.minutesX0ThroughX1PastTheHour=function(){return"在整點後的 %s 到 %s 分鐘"},t.prototype.atX0MinutesPastTheHour=function(){return"在整點後的 %s 分"},t.prototype.everyX0Hours=function(){return"每 %s 小時"},t.prototype.betweenX0AndX1=function(){return"在 %s 和 %s 之間"},t.prototype.atX0=function(){return"在 %s"},t.prototype.commaEveryDay=function(){return", 每天"},t.prototype.commaEveryX0DaysOfTheWeek=function(){return", 每週的每 %s 天"},t.prototype.commaX0ThroughX1=function(){return", %s 到 %s"},t.prototype.commaAndX0ThroughX1=function(){return", 和 %s 到 %s"},t.prototype.first=function(){return"第一個"},t.prototype.second=function(){return"第二個"},t.prototype.third=function(){return"第三個"},t.prototype.fourth=function(){return"第四個"},t.prototype.fifth=function(){return"第五個"},t.prototype.commaOnThe=function(){return", 在每月 "},t.prototype.spaceX0OfTheMonth=function(){return"%s "},t.prototype.lastDay=function(){return"最後一天"},t.prototype.commaOnTheLastX0OfTheMonth=function(){return", 每月的最後一個 %s "},t.prototype.commaOnlyOnX0=function(){return", 僅在 %s"},t.prototype.commaAndOnX0=function(){return", 或 %s"},t.prototype.commaEveryX0Months=function(){return", 每 %s 月"},t.prototype.commaOnlyInX0=function(){return", 僅在 %s"},t.prototype.commaOnlyInMonthX0=function(){return", 僅在 %s"},t.prototype.commaOnlyInYearX0=function(){return", 僅在 %s 年"},t.prototype.commaOnTheLastDayOfTheMonth=function(){return", 每月的最後一天"},t.prototype.commaOnTheLastWeekdayOfTheMonth=function(){return", 每月的最後一個工作日"},t.prototype.commaDaysBeforeTheLastDayOfTheMonth=function(){return", %s 這個月的最後一天的前幾天"},t.prototype.firstWeekday=function(){return"第一個工作日"},t.prototype.weekdayNearestDayX0=function(){return"最接近 %s 號的工作日"},t.prototype.commaOnTheX0OfTheMonth=function(){return", 每月的 %s "},t.prototype.commaEveryX0Days=function(){return", 每 %s 天"},t.prototype.commaBetweenDayX0AndX1OfTheMonth=function(){return", 在每月的 %s 和 %s 之間"},t.prototype.commaOnDayX0OfTheMonth=function(){return", 每月的 %s"},t.prototype.commaEveryX0Years=function(){return", 每 %s 年"},t.prototype.commaStartingX0=function(){return", %s 開始"},t.prototype.dayX0=function(){return" %s 號"},t.prototype.daysOfTheWeek=function(){return["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},t.prototype.monthsOfTheYear=function(){return["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},t.prototype.onTheHour=function(){return"整點"},t}();s.zh_TW=p},515(d,s){Object.defineProperty(s,"__esModule",{value:!0});function p(x,h){if(!x)throw new Error(h)}var t=function(){function x(){}return x.secondRange=function(h){for(var a=h.split(","),i=0;i<a.length;i++)if(!isNaN(parseInt(a[i],10))){var y=parseInt(a[i],10);p(y>=0&&y<=59,"seconds part must be >= 0 and <= 59")}},x.minuteRange=function(h){for(var a=h.split(","),i=0;i<a.length;i++)if(!isNaN(parseInt(a[i],10))){var y=parseInt(a[i],10);p(y>=0&&y<=59,"minutes part must be >= 0 and <= 59")}},x.hourRange=function(h){for(var a=h.split(","),i=0;i<a.length;i++)if(!isNaN(parseInt(a[i],10))){var y=parseInt(a[i],10);p(y>=0&&y<=23,"hours part must be >= 0 and <= 23")}},x.dayOfMonthRange=function(h){for(var a=h.split(","),i=0;i<a.length;i++)if(!isNaN(parseInt(a[i],10))){var y=parseInt(a[i],10);p(y>=1&&y<=31,"DOM part must be >= 1 and <= 31")}},x.monthRange=function(h,a){for(var i=h.split(","),y=0;y<i.length;y++)if(!isNaN(parseInt(i[y],10))){var j=parseInt(i[y],10);p(j>=1&&j<=12,a?"month part must be >= 0 and <= 11":"month part must be >= 1 and <= 12")}},x.dayOfWeekRange=function(h,a){for(var i=h.split(","),y=0;y<i.length;y++)if(!isNaN(parseInt(i[y],10))){var j=parseInt(i[y],10);p(j>=0&&j<=6,a?"DOW part must be >= 0 and <= 6":"DOW part must be >= 1 and <= 7")}},x}();s.default=t},823(d,s){Object.defineProperty(s,"__esModule",{value:!0}),s.StringUtilities=void 0;var p=function(){function t(){}return t.format=function(x){for(var h=[],a=1;a<arguments.length;a++)h[a-1]=arguments[a];return x.replace(/%s/g,function(i){return h.shift()})},t.containsAny=function(x,h){return h.some(function(a){return x.indexOf(a)>-1})},t}();s.StringUtilities=p}},u={};function l(d){var s=u[d];if(s!==void 0)return s.exports;var p=u[d]={exports:{}};return c[d](p,p.exports,l),p.exports}var m={};return(()=>{var d=m;Object.defineProperty(d,"__esModule",{value:!0}),d.toString=void 0;var s=l(333),p=l(420);s.ExpressionDescriptor.initialize(new p.allLocalesLoader),d.default=s.ExpressionDescriptor;var t=s.ExpressionDescriptor.toString;d.toString=t})(),m})())}(Nn)),Nn.exports}var Tn,Wo;function Zc(){if(Wo)return Tn;Wo=1;var r=Vc();return Tn=r,Tn}var Qc=Zc();const el=Vr(Qc);function Ss(r){try{const o=r.trim().split(/\s+/);if(o.length!==5)return r;const[c,u,l,m,d]=o,s=el.toString(r,{locale:"zh_CN",use24HourTimeFormat:!0}),p=l==="*"&&m==="*"&&d==="*",t=!u.includes("*")&&!u.includes("/")&&!c.includes("*")&&!c.includes("/");return p&&t&&!s.includes("每")?"每天 "+s.replace(/^在\s*/,""):s}catch{return r}}function Ho(r){return r?new Date(r).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}):"从未"}function tl({mode:r,intervalMin:o,hour:c,minute:u,dow:l,dom:m}){switch(r){case"interval":return`*/${o} * * * *`;case"hourly":return`${u} * * * *`;case"daily":return`${u} ${c} * * *`;case"weekly":return`${u} ${c} * * ${l}`;case"monthly":return`${u} ${c} ${m} * *`;default:return`${u} ${c} * * *`}}function rl(r){const o={mode:"daily",intervalMin:10,hour:9,minute:0,dow:1,dom:1};if(!r)return o;try{const[c,u,l,m,d]=r.trim().split(/\s+/);if(c.startsWith("*/")&&u==="*"&&l==="*"&&m==="*"&&d==="*")return{...o,mode:"interval",intervalMin:parseInt(c.slice(2))||10};if(!c.includes("*")&&!c.includes("/")&&u==="*"&&l==="*"&&m==="*"&&d==="*")return{...o,mode:"hourly",minute:parseInt(c)};if(!c.includes("*")&&!c.includes("/")&&!u.includes("*")&&!u.includes("/")&&l==="*"&&m==="*"&&d==="*")return{...o,mode:"daily",hour:parseInt(u),minute:parseInt(c)};if(!c.includes("*")&&!c.includes("/")&&!u.includes("*")&&!u.includes("/")&&l==="*"&&m==="*"&&!d.includes("*")&&!d.includes("/"))return{...o,mode:"weekly",hour:parseInt(u),minute:parseInt(c),dow:parseInt(d)};if(!c.includes("*")&&!c.includes("/")&&!u.includes("*")&&!u.includes("/")&&!l.includes("*")&&!l.includes("/")&&m==="*"&&d==="*")return{...o,mode:"monthly",hour:parseInt(u),minute:parseInt(c),dom:parseInt(l)}}catch{}return o}const nl=["周日","周一","周二","周三","周四","周五","周六"],ol=[5,10,15,20,30,45,60],sl=[{value:"interval",label:"每隔N分钟"},{value:"hourly",label:"每小时"},{value:"daily",label:"每天"},{value:"weekly",label:"每周"},{value:"monthly",label:"每月"}],Vt="rounded-md border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 text-sm px-2 pr-7 py-1.5 focus:outline-none focus:ring-2 focus:ring-blue-500";function Sn({hour:r,minute:o,onChange:c}){const u=Array.from({length:24},(m,d)=>d),l=Array.from({length:60},(m,d)=>d);return e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("select",{value:r,onChange:m=>c({hour:parseInt(m.target.value),minute:o}),className:Vt,children:u.map(m=>e.jsx("option",{value:m,children:String(m).padStart(2,"0")},m))}),e.jsx("span",{className:"text-gray-500 dark:text-gray-400 font-medium",children:":"}),e.jsx("select",{value:o,onChange:m=>c({hour:r,minute:parseInt(m.target.value)}),className:Vt,children:l.map(m=>e.jsx("option",{value:m,children:String(m).padStart(2,"0")},m))})]})}function al({value:r,onChange:o}){const{mode:c,intervalMin:u,hour:l,minute:m,dow:d,dom:s}=r,p=t=>o({...r,...t});return e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("label",{className:"text-sm text-gray-600 dark:text-gray-400 w-16 shrink-0",children:"频率"}),e.jsx("select",{value:c,onChange:t=>p({mode:t.target.value}),className:Vt,children:sl.map(t=>e.jsx("option",{value:t.value,children:t.label},t.value))})]}),c==="interval"&&e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("label",{className:"text-sm text-gray-600 dark:text-gray-400 w-16 shrink-0",children:"间隔"}),e.jsx("select",{value:u,onChange:t=>p({intervalMin:parseInt(t.target.value)}),className:Vt,children:ol.map(t=>e.jsxs("option",{value:t,children:["每 ",t," 分钟"]},t))})]}),c==="hourly"&&e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("label",{className:"text-sm text-gray-600 dark:text-gray-400 w-16 shrink-0",children:"分钟"}),e.jsx("select",{value:m,onChange:t=>p({minute:parseInt(t.target.value)}),className:Vt,children:Array.from({length:60},(t,x)=>x).map(t=>e.jsxs("option",{value:t,children:["每小时第 ",String(t).padStart(2,"0")," 分"]},t))})]}),c==="daily"&&e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("label",{className:"text-sm text-gray-600 dark:text-gray-400 w-16 shrink-0",children:"时间"}),e.jsx(Sn,{hour:l,minute:m,onChange:p})]}),c==="weekly"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("label",{className:"text-sm text-gray-600 dark:text-gray-400 w-16 shrink-0",children:"星期"}),e.jsx("div",{className:"flex gap-1 flex-wrap",children:nl.map((t,x)=>e.jsx("button",{type:"button",onClick:()=>p({dow:x}),className:`px-2.5 py-1 rounded text-xs font-medium transition-colors ${d===x?"bg-blue-600 text-white":"bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-600"}`,children:t},x))})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("label",{className:"text-sm text-gray-600 dark:text-gray-400 w-16 shrink-0",children:"时间"}),e.jsx(Sn,{hour:l,minute:m,onChange:p})]})]}),c==="monthly"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("label",{className:"text-sm text-gray-600 dark:text-gray-400 w-16 shrink-0",children:"几号"}),e.jsx("select",{value:s,onChange:t=>p({dom:parseInt(t.target.value)}),className:Vt,children:Array.from({length:31},(t,x)=>x+1).map(t=>e.jsxs("option",{value:t,children:["每月 ",t," 号"]},t))})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("label",{className:"text-sm text-gray-600 dark:text-gray-400 w-16 shrink-0",children:"时间"}),e.jsx(Sn,{hour:l,minute:m,onChange:p})]})]})]})}const il={mode:"daily",intervalMin:10,hour:9,minute:0,dow:1,dom:1};function cl({editTask:r,onClose:o,onSave:c}){const[u,l]=n.useState(r?.prompt||""),[m,d]=n.useState(r?rl(r.cronExpr):il),[s,p]=n.useState(r?.channel||""),[t,x]=n.useState(r?.webhookUrl||""),[h,a]=n.useState(r?r.recurring:!0),[i,y]=n.useState(r?.projectPath||""),[j,w]=n.useState([]),[b,k]=n.useState(!1),[f,N]=n.useState(!1),[S,I]=n.useState("");n.useEffect(()=>{he.auth.feishuStatus().then(E=>E.json()).then(E=>k(!!E.bound)).catch(()=>{}),he.projects().then(E=>E.json()).then(E=>{const W=Array.isArray(E)?E:E.projects||[];w(W),!r&&W.length>0&&!i&&y(W[0].fullPath)}).catch(()=>{})},[]);const D=tl(m),T=Ss(D),R=!!r,M=async()=>{if(!u.trim()){I("请填写执行内容");return}if(s==="webhook"&&!t.trim()){I("Webhook 渠道需要填写 URL");return}N(!0),I("");try{const E={cronExpr:D,prompt:u.trim(),recurring:h,channel:s,webhookUrl:t.trim()||void 0,projectPath:i||void 0},W=R?`/api/cron-tasks/${r.id}`:"/api/cron-tasks",X=await Y(W,{method:R?"PUT":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(E)}),C=await X.json();if(!X.ok){I(C.error||"保存失败");return}c(C.task)}catch{I("网络错误,请重试")}finally{N(!1)}};return e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/50",onClick:E=>E.target===E.currentTarget&&o(),children:e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-xl shadow-xl w-full max-w-lg max-h-[90vh] flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between px-5 py-4 border-b border-gray-200 dark:border-gray-700",children:[e.jsx("h3",{className:"text-base font-semibold text-gray-900 dark:text-gray-100",children:R?"编辑定时任务":"新建定时任务"}),e.jsx("button",{onClick:o,className:"p-1 rounded-md text-gray-400 hover:text-gray-600 dark:hover:text-gray-200 hover:bg-gray-100 dark:hover:bg-gray-700",children:e.jsx(Ue,{size:18})})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto px-5 py-4 space-y-5",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300",children:"执行项目"}),j.length===0?e.jsx("p",{className:"text-sm text-gray-400 dark:text-gray-500",children:"加载中…"}):e.jsx("select",{value:i,onChange:E=>y(E.target.value),className:`w-full ${Vt}`,children:j.map(E=>e.jsx("option",{value:E.fullPath,children:E.displayName},E.fullPath))})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300",children:"执行内容"}),e.jsx("textarea",{value:u,onChange:E=>l(E.target.value),rows:3,placeholder:"例:帮我总结今天的待办事项,以简洁清单形式呈现",className:"w-full rounded-lg border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 text-sm px-3 py-2 resize-none focus:outline-none focus:ring-2 focus:ring-blue-500 placeholder-gray-400 dark:placeholder-gray-500"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300",children:"执行频率"}),e.jsxs("div",{className:"bg-gray-50 dark:bg-gray-700/50 rounded-lg p-3 space-y-3",children:[e.jsx(al,{value:m,onChange:d}),e.jsxs("div",{className:"pt-2 border-t border-gray-200 dark:border-gray-600 flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"text-sm font-medium text-blue-600 dark:text-blue-400",children:T}),e.jsx("code",{className:"text-xs font-mono text-gray-400 dark:text-gray-500",children:D})]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300",children:"投递渠道"}),e.jsx("div",{className:"grid grid-cols-3 gap-2",children:[{value:"",icon:e.jsx(Or,{size:14}),label:"网页端"},{value:"feishu",icon:e.jsx(Cr,{size:14}),label:"飞书",disabled:!b,tip:"未绑定飞书"},{value:"webhook",icon:e.jsx(lr,{size:14}),label:"Webhook"}].map(E=>e.jsxs("button",{type:"button",disabled:E.disabled,onClick:()=>!E.disabled&&p(E.value),title:E.disabled?E.tip:void 0,className:`flex items-center justify-center gap-1.5 py-2 rounded-lg border text-sm font-medium transition-colors ${E.disabled?"opacity-40 cursor-not-allowed border-gray-200 dark:border-gray-700 text-gray-400":s===E.value?"border-blue-500 bg-blue-50 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400":"border-gray-200 dark:border-gray-700 text-gray-600 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-700"}`,children:[E.icon,E.label]},E.value))}),s==="webhook"&&e.jsx("input",{type:"url",value:t,onChange:E=>x(E.target.value),placeholder:"https://your-webhook-url.com/...",className:"w-full rounded-lg border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-700 text-gray-900 dark:text-gray-100 text-sm px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500 placeholder-gray-400 dark:placeholder-gray-500"})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium text-gray-700 dark:text-gray-300",children:"单次执行"}),e.jsx("p",{className:"text-xs text-gray-500 dark:text-gray-400",children:"开启后触发一次即自动删除"})]}),e.jsx("button",{type:"button",onClick:()=>a(E=>!E),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors ${h?"bg-gray-300 dark:bg-gray-600":"bg-blue-600"}`,children:e.jsx("span",{className:`inline-block h-4 w-4 transform rounded-full bg-white shadow transition-transform ${h?"translate-x-1":"translate-x-6"}`})})]}),S&&e.jsx("p",{className:"text-sm text-red-500 dark:text-red-400",children:S})]}),e.jsxs("div",{className:"flex items-center justify-end gap-2 px-5 py-4 border-t border-gray-200 dark:border-gray-700",children:[e.jsx("button",{onClick:o,className:"px-4 py-2 text-sm text-gray-600 dark:text-gray-300 hover:text-gray-900 dark:hover:text-gray-100 transition-colors",children:"取消"}),e.jsx("button",{onClick:M,disabled:f,className:"px-4 py-2 text-sm font-medium rounded-lg bg-blue-600 hover:bg-blue-700 text-white disabled:opacity-60 transition-colors",children:f?"保存中…":"保存"})]})]})})}function ll({channel:r}){return r==="feishu"?e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium bg-blue-100 text-blue-700 dark:bg-blue-900/40 dark:text-blue-300",children:[e.jsx(Cr,{size:10})," 飞书"]}):r==="webhook"?e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium bg-purple-100 text-purple-700 dark:bg-purple-900/40 dark:text-purple-300",children:[e.jsx(lr,{size:10})," Webhook"]}):e.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium bg-gray-100 text-gray-600 dark:bg-gray-700 dark:text-gray-300",children:[e.jsx(Or,{size:10})," 网页"]})}function dl(){const[r,o]=n.useState([]),[c,u]=n.useState(!0),[l,m]=n.useState(null),[d,s]=n.useState(null),{showConfirm:p}=it(),t=n.useCallback(async()=>{u(!0);try{const i=await Y("/api/cron-tasks");if(i.ok){const y=await i.json();o(y.tasks||[])}}catch(i){console.error("Failed to fetch cron tasks",i)}finally{u(!1)}},[]);n.useEffect(()=>{t()},[t]);const x=async i=>{m(i.id);try{const y=await Y(`/api/cron-tasks/${i.id}/pause`,{method:"PATCH"});if(y.ok){const j=await y.json();o(w=>w.map(b=>b.id===i.id?{...b,isPaused:j.isPaused}:b))}}catch(y){console.error("Toggle pause failed",y)}finally{m(null)}},h=async i=>{if(await p(`确定要删除定时任务吗?
|
|
161
161
|
|
|
162
|
-
${i.cronExpr} — ${i.prompt.slice(0,60)}${i.prompt.length>60?"…":""}`,{title:"删除定时任务",variant:"danger",confirmText:"删除",cancelText:"取消"})){m(i.id);try{(await Y(`/api/cron-tasks/${i.id}`,{method:"DELETE"})).ok&&o(w=>w.filter(b=>b.id!==i.id))}catch(j){console.error("Delete failed",j)}finally{m(null)}}},a=i=>{o(d==="create"?y=>[...y,i]:y=>y.map(j=>j.id===i.id?i:j)),s(null)};return c?e.jsxs("div",{className:"flex items-center justify-center py-16 text-gray-400 dark:text-gray-500",children:[e.jsx(st,{size:18,className:"animate-spin mr-2"})," 加载中…"]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:"管理定时任务,可新建、编辑、暂停或删除。"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("button",{onClick:t,className:"flex items-center gap-1.5 text-sm text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 transition-colors",children:[e.jsx(st,{size:14})," 刷新"]}),e.jsxs("button",{onClick:()=>s("create"),className:"flex items-center gap-1.5 text-sm font-medium px-3 py-1.5 rounded-lg bg-blue-600 hover:bg-blue-700 text-white transition-colors",children:[e.jsx(_t,{size:14})," 新建任务"]})]})]}),r.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-16 text-gray-400 dark:text-gray-500 gap-3",children:[e.jsx(Xr,{size:32,className:"opacity-40"}),e.jsx("p",{className:"text-sm",children:"暂无定时任务"}),e.jsx("button",{onClick:()=>s("create"),className:"text-xs text-blue-500 hover:text-blue-600 dark:text-blue-400",children:"+ 创建第一个定时任务"})]}):e.jsx("div",{className:"space-y-2",children:r.map(i=>e.jsx("div",{className:`rounded-lg border p-4 transition-colors ${i.isPaused?"border-gray-200 bg-gray-50 dark:border-gray-700 dark:bg-gray-800/50 opacity-70":"border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-800"}`,children:e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"flex-1 min-w-0 space-y-1.5",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"text-sm font-medium text-gray-800 dark:text-gray-200",title:i.cronExpr,children:Ss(i.cronExpr)}),e.jsx("code",{className:"text-xs font-mono text-gray-400 dark:text-gray-500",children:i.cronExpr}),e.jsx(ll,{channel:i.channel}),!i.recurring&&e.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium bg-amber-100 text-amber-700 dark:bg-amber-900/40 dark:text-amber-300",children:"单次"}),i.isPaused&&e.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium bg-gray-200 text-gray-600 dark:bg-gray-600 dark:text-gray-300",children:"已暂停"})]}),e.jsx("p",{className:"text-sm text-gray-700 dark:text-gray-300 truncate",title:i.prompt,children:i.prompt.length>80?i.prompt.slice(0,80)+"…":i.prompt}),e.jsxs("div",{className:"flex items-center gap-3 text-xs text-gray-400 dark:text-gray-500 flex-wrap",children:[e.jsxs("span",{children:["最近触发:",Ho(i.lastFiredAt)]}),e.jsxs("span",{children:["创建:",Ho(i.createdAt)]}),i.sessionMode==="resume_session"&&e.jsx("span",{children:"复用会话"})]})]}),e.jsxs("div",{className:"flex items-center gap-1 shrink-0",children:[e.jsx("button",{onClick:()=>x(i),disabled:l===i.id,title:i.isPaused?"恢复":"暂停",className:"p-1.5 rounded-md text-gray-400 hover:text-gray-600 hover:bg-gray-100 dark:hover:text-gray-200 dark:hover:bg-gray-700 disabled:opacity-40 transition-colors",children:i.isPaused?e.jsx(Na,{size:15}):e.jsx(Ta,{size:15})}),e.jsx("button",{onClick:()=>s(i),disabled:l===i.id,title:"编辑",className:"p-1.5 rounded-md text-gray-400 hover:text-gray-600 hover:bg-gray-100 dark:hover:text-gray-200 dark:hover:bg-gray-700 disabled:opacity-40 transition-colors",children:e.jsx(Sa,{size:15})}),e.jsx("button",{onClick:()=>h(i),disabled:l===i.id,title:"删除",className:"p-1.5 rounded-md text-gray-400 hover:text-red-500 hover:bg-red-50 dark:hover:bg-red-900/20 disabled:opacity-40 transition-colors",children:e.jsx(xt,{size:15})})]})]})},i.id))})]}),d!==null&&e.jsx(cl,{editTask:d==="create"?null:d,onClose:()=>s(null),onSave:a})]})}function ul({onClose:r,onChanged:o}){const{showAlert:c,showConfirm:u}=it(),[l,m]=n.useState([]),[d,s]=n.useState(!0),[p,t]=n.useState(null),[x,h]=n.useState(""),[a,i]=n.useState(!1),[y,j]=n.useState(null);n.useEffect(()=>{w()},[]);const w=async()=>{try{s(!0),t(null);const f=await Y("/api/mcp-repos");if(f.ok){const N=await f.json();m(N.repos||[])}else{const N=await f.json();t(N.error||"Failed to fetch repos")}}catch(f){t(f.message)}finally{s(!1)}},b=async f=>{if(f.preventDefault(),!x.trim()){t("请输入仓库 URL");return}try{i(!0),t(null);const N=await Y("/api/mcp-repos",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:x.trim()})});if(N.ok)h(""),w(),o?.();else{const S=await N.json();t(S.error||"Failed to add repo")}}catch(N){t(N.message)}finally{i(!1)}},k=async(f,N)=>{if(await u(`确定要移除仓库 "${f}/${N}" 吗?`,{title:"移除仓库",variant:"danger",confirmText:"确认移除"}))try{j(`${f}/${N}`);const S=await Y(`/api/mcp-repos/${f}/${N}`,{method:"DELETE"});if(S.ok)w(),o?.();else{const I=await S.json();c(I.error||"移除仓库失败",{variant:"error"})}}catch(S){c(S.message,{variant:"error"})}finally{j(null)}};return e.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-[10000] p-4",children:e.jsxs("div",{className:"bg-background rounded-xl shadow-xl w-full max-w-2xl max-h-[90vh] flex flex-col",children:[e.jsxs("div",{className:"flex items-center gap-3 p-4 border-b border-border",children:[e.jsx(B,{variant:"ghost",size:"icon",onClick:r,children:e.jsx(er,{className:"w-5 h-5"})}),e.jsx("h2",{className:"text-lg font-semibold text-foreground",children:"管理 MCP 仓库"})]}),e.jsxs("div",{className:"flex-1 overflow-auto p-4 space-y-6",children:[e.jsxs("div",{className:"bg-gray-50 dark:bg-gray-900/50 rounded-lg p-4 space-y-4",children:[e.jsx("h3",{className:"font-medium text-foreground",children:"添加 MCP 仓库"}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["仓库中每个文件夹代表一个 MCP 服务,需包含 ",e.jsx("code",{className:"bg-gray-100 dark:bg-gray-800 px-1 rounded",children:"mcp.json"}),"(配置)和 ",e.jsx("code",{className:"bg-gray-100 dark:bg-gray-800 px-1 rounded",children:"mcp.yaml"}),"(说明)。"]}),e.jsxs("form",{onSubmit:b,className:"space-y-3",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm text-muted-foreground mb-1",children:"仓库 URL"}),e.jsx(at,{type:"text",placeholder:"owner/name 或 https://github.com/owner/name",value:x,onChange:f=>h(f.target.value),disabled:a})]}),e.jsxs(B,{type:"submit",disabled:a||!x.trim(),className:"bg-purple-600 hover:bg-purple-700 text-white",children:[e.jsx(_t,{className:"w-4 h-4 mr-2"}),a?"添加中...":"添加仓库"]})]})]}),p&&e.jsx("div",{className:"bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4 text-red-800 dark:text-red-200 text-sm",children:p}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("h3",{className:"font-medium text-foreground",children:"已添加的仓库"}),d?e.jsx("div",{className:"text-center py-4 text-muted-foreground",children:"加载中..."}):l.length===0?e.jsxs("div",{className:"text-center py-8 text-muted-foreground",children:[e.jsx(Zo,{className:"w-12 h-12 mx-auto mb-4 opacity-50"}),e.jsx("p",{children:"还没有添加任何 MCP 仓库"})]}):l.map(f=>e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:"font-medium text-foreground",children:[f.owner,"/",f.repo]}),f.isSystem&&e.jsx(tt,{variant:"outline",className:"text-xs bg-purple-50 dark:bg-purple-900/20 text-purple-700 dark:text-purple-300",children:"内置"})]}),e.jsxs("div",{className:"flex items-center gap-3 mt-1 text-sm text-muted-foreground",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(tn,{className:"w-3 h-3"}),"分支: main"]}),e.jsxs(tt,{variant:"outline",className:"text-xs",children:[f.serviceCount," 个 MCP 服务"]})]})]}),e.jsx("div",{className:"flex items-center gap-2 ml-4",children:!f.isSystem&&e.jsx(B,{variant:"ghost",size:"sm",onClick:()=>k(f.owner,f.repo),disabled:y===`${f.owner}/${f.repo}`,className:"text-red-500 hover:text-red-600",children:e.jsx(xt,{className:"w-4 h-4"})})})]})},`${f.owner}/${f.repo}`))]})]})]})})}const pl=r=>{switch(r){case"stdio":return e.jsx(Fn,{className:"w-3 h-3"});case"sse":return e.jsx(Or,{className:"w-3 h-3"});case"http":return e.jsx(lr,{className:"w-3 h-3"});default:return e.jsx(en,{className:"w-3 h-3"})}};function ml({onClose:r,onInstalled:o,onOpenRepoManager:c,projects:u=[]}){const{showAlert:l,showConfirm:m}=it(),[d,s]=n.useState([]),[p,t]=n.useState([]),[x,h]=n.useState(!0),[a,i]=n.useState(null),[y,j]=n.useState(""),[w,b]=n.useState("all"),[k,f]=n.useState(null),[N,S]=n.useState(null),[I,D]=n.useState(null),[T,R]=n.useState("user"),[M,E]=n.useState("");n.useEffect(()=>{W()},[]);const W=async(G=!1)=>{try{h(!0),i(null),G&&await Y("/api/mcp-repos/refresh",{method:"POST"});const[ie,le]=await Promise.all([Y("/api/mcp-repos/available"),Y("/api/mcp-repos")]);if(ie.ok){const xe=await ie.json();s(xe.services||[])}if(le.ok){const xe=await le.json();t(xe.repos||[])}}catch(ie){i(ie.message)}finally{h(!1)}},X=G=>{D(G),R("user"),E("")},C=()=>{D(null),R("user"),E("")},$=async()=>{const G=I;if(G){if(T==="local"&&!M){l("请选择要安装到的项目",{variant:"warning"});return}try{D(null),f(G.dirName+G.repository);const ie={servicePath:G.path,scope:T};T==="local"&&M&&(ie.projectPath=M);const le=await Y("/api/mcp-repos/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(ie)});if(le.ok)W(),o?.();else{const xe=await le.json();l(xe.error||"安装 MCP 服务失败",{variant:"error"})}}catch(ie){l(ie.message,{variant:"error"})}finally{f(null),R("user"),E("")}}},te=async G=>{if(!(!G.serverNames||G.serverNames.length===0)&&await m(`确定要卸载 "${G.name}" 吗?这将移除 ${G.serverNames.join(", ")} 的配置。`,{title:"卸载 MCP 服务",variant:"danger",confirmText:"确认卸载"}))try{S(G.dirName+G.repository);for(const ie of G.serverNames)await Y(`/api/mcp-repos/uninstall/${encodeURIComponent(ie)}`,{method:"DELETE"});W(),o?.()}catch(ie){l(ie.message,{variant:"error"})}finally{S(null)}},ne=d.filter(G=>{if(y){const ie=y.toLowerCase();if(!G.dirName?.toLowerCase().includes(ie)&&!G.name?.toLowerCase().includes(ie)&&!G.description?.toLowerCase().includes(ie))return!1}return!(w!=="all"&&G.repository!==w)});return e.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-[10000] p-4",children:e.jsxs("div",{className:"bg-background rounded-xl shadow-xl w-full max-w-4xl max-h-[90vh] flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between p-4 border-b border-border",children:[e.jsx("h2",{className:"text-lg font-semibold text-foreground",children:"MCP 仓库"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(B,{variant:"ghost",size:"sm",onClick:()=>W(!0),disabled:x,children:[e.jsx(st,{className:`w-4 h-4 ${x?"animate-spin":""}`}),e.jsx("span",{className:"ml-1 hidden sm:inline",children:"刷新"})]}),e.jsxs(B,{variant:"ghost",size:"sm",onClick:c,children:[e.jsx(Ht,{className:"w-4 h-4"}),e.jsx("span",{className:"ml-1 hidden sm:inline",children:"仓库管理"})]}),e.jsx(B,{variant:"ghost",size:"icon",onClick:r,children:e.jsx(Ue,{className:"w-5 h-5"})})]})]}),e.jsx("div",{className:"px-4 pt-4 pb-2"}),e.jsxs("div",{className:"px-4 pb-4 flex flex-wrap gap-3",children:[e.jsx("div",{className:"flex-1 min-w-[200px]",children:e.jsxs("div",{className:"relative",children:[e.jsx(St,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),e.jsx(at,{type:"text",placeholder:"搜索 MCP 服务名称或描述...",value:y,onChange:G=>j(G.target.value),className:"pl-10"})]})}),e.jsxs("select",{value:w,onChange:G=>b(G.target.value),className:"px-3 py-2 rounded-md border border-border bg-background text-foreground text-sm min-w-[120px]",children:[e.jsx("option",{value:"all",children:"全部仓库"}),p.map(G=>e.jsxs("option",{value:`${G.owner}/${G.repo}`,children:[G.owner,"/",G.repo]},`${G.owner}/${G.repo}`))]})]}),e.jsxs("div",{className:"flex-1 overflow-auto px-4 pb-4",children:[a&&e.jsx("div",{className:"bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4 text-red-800 dark:text-red-200 text-sm mb-4",children:a}),x?e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):ne.length===0?e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:d.length===0?e.jsxs(e.Fragment,{children:[e.jsx("p",{children:"没有可用的 MCP 服务"}),e.jsx("p",{className:"text-xs mt-2",children:"请先添加 MCP 仓库"}),e.jsxs(B,{variant:"outline",size:"sm",className:"mt-4",onClick:c,children:[e.jsx(Ht,{className:"w-4 h-4 mr-2"}),"管理仓库"]})]}):e.jsx("p",{children:"没有找到匹配的 MCP 服务"})}):e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:ne.map(G=>{const ie=`${G.repository}-${G.dirName}`,le=k===G.dirName+G.repository,xe=N===G.dirName+G.repository,Ce=I&&I.dirName+I.repository===G.dirName+G.repository;return e.jsx("div",{className:"border border-border rounded-lg p-4 hover:border-purple-500/50 transition-colors",children:e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsxs("div",{className:"mb-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h4",{className:"font-medium text-foreground",children:G.name||G.dirName}),e.jsxs(tt,{variant:"outline",className:"text-xs flex items-center gap-1",children:[pl(G.type),G.type]})]}),e.jsxs("div",{className:"flex items-center gap-1 mt-1",children:[e.jsx("span",{className:"text-xs text-muted-foreground",children:G.repository}),G.serverNames?.length>0&&e.jsxs("span",{className:"text-xs text-muted-foreground ml-2",children:["· ",G.serverNames.join(", ")]})]})]}),G.description&&e.jsx("p",{className:"text-sm text-muted-foreground flex-1 line-clamp-3 mb-3",children:G.description}),Ce&&e.jsxs("div",{className:"mt-2 mb-3 p-3 rounded-lg bg-muted/50 border border-border text-sm",children:[e.jsx("p",{className:"font-medium text-foreground mb-2",children:"选择安装位置"}),e.jsxs("label",{className:"flex items-center gap-2 mb-1 cursor-pointer",children:[e.jsx("input",{type:"radio",name:`scope-${ie}`,value:"user",checked:T==="user",onChange:()=>{R("user"),E("")},className:"accent-purple-600"}),e.jsx("span",{className:"text-foreground",children:"全局(所有项目可用)"})]}),e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[e.jsx("input",{type:"radio",name:`scope-${ie}`,value:"local",checked:T==="local",onChange:()=>R("local"),className:"accent-purple-600"}),e.jsx("span",{className:"text-foreground",children:"安装到指定项目"})]}),T==="local"&&e.jsxs("select",{value:M,onChange:be=>E(be.target.value),className:"mt-2 w-full px-2 py-1.5 rounded-md border border-border bg-background text-foreground text-xs",children:[e.jsx("option",{value:"",children:"选择项目..."}),u.map(be=>e.jsx("option",{value:be.path||be.fullPath,children:be.displayName||be.name},be.name))]}),e.jsxs("div",{className:"flex gap-2 mt-3",children:[e.jsx(B,{size:"sm",variant:"outline",onClick:C,className:"flex-1",children:"取消"}),e.jsx(B,{size:"sm",className:"bg-purple-600 hover:bg-purple-700 text-white flex-1",onClick:$,children:"确认安装"})]})]}),e.jsx("div",{className:"flex items-center gap-2 mt-auto pt-2",children:G.installed?e.jsxs(B,{size:"sm",variant:"outline",className:"ml-auto text-red-600 hover:text-red-700 border-red-200 hover:border-red-300",onClick:()=>te(G),disabled:xe,children:[e.jsx(xt,{className:"w-4 h-4 mr-1"}),xe?"卸载中...":"卸载"]}):!Ce&&e.jsxs(B,{size:"sm",className:"bg-purple-600 hover:bg-purple-700 text-white ml-auto",onClick:()=>X(G),disabled:le||!!I,children:[e.jsx(It,{className:"w-4 h-4 mr-1"}),le?"安装中...":"安装"]})})]})},ie)})})]})]})})}function fl({isOpen:r,onClose:o,projects:c=[],initialTab:u="shared_projects",autoScrollToBottom:l,onAutoScrollChange:m,sendByCtrlEnter:d,onSendByCtrlEnterChange:s}){const p=Zr(),{isDarkMode:t,toggleDarkMode:x}=eo(),{user:h,logout:a,hasPermission:i}=Xt(),{showAlert:y,showConfirm:j}=it(),[w,b]=n.useState([]),[k,f]=n.useState([]),[N,S]=n.useState(""),[I,D]=n.useState(""),[T,R]=n.useState(!1),[M,E]=n.useState(!1),[W,X]=n.useState(null),[C,$]=n.useState("name"),[te,ne]=n.useState([]),[G,ie]=n.useState(!1),[le,xe]=n.useState(null),[Ce,be]=n.useState(!1),[Se,Re]=n.useState(!1),[se,we]=n.useState({name:"",type:"stdio",scope:"user",projectPath:"",config:{command:"",args:[],env:{},url:"",headers:{},timeout:3e4},jsonInput:"",importMode:"form"}),[$e,We]=n.useState(!1),[ye,Xe]=n.useState({}),[Ee,Fe]=n.useState({}),[Ne,Be]=n.useState({}),[Pe,Ae]=n.useState(u),[_e,ze]=n.useState(""),[Le,Ke]=n.useState("permissions"),Je=i("tab_permissions")||i("tab_mcp")||i("tab_skills")||i("tab_models");n.useEffect(()=>{const H={permissions:"tab_permissions",mcp:"tab_mcp",skills:"tab_skills",models:"tab_models"},Q=H[Le];if(Q&&!i(Q)){const Te=["permissions","mcp","skills","models"].find(ht=>{const qe=H[ht];return!qe||i(qe)});Te&&Ke(Te)}},[i,Le]),n.useEffect(()=>{Pe==="agents"&&!Je&&Ae("shared_projects")},[Pe,Je]);const q=n.useRef(null),[z,O]=n.useState({saving:!1,hasChanges:!1}),ee=n.useCallback(H=>O(H),[]),[_,re]=n.useState(""),[U,ae]=n.useState(""),[de,Ie]=n.useState(""),[oe,Me]=n.useState(""),[Oe,pe]=n.useState(""),[rt,Ge]=n.useState(!1),[dt,gt]=n.useState(""),[v,Z]=n.useState(!1),[ce,me]=n.useState(""),[K,De]=n.useState(!1),[Ve,ut]=n.useState(null),[pt,ur]=n.useState(()=>localStorage.getItem("codeEditorTheme")||"dark"),[yt,Ze]=n.useState(()=>localStorage.getItem("codeEditorWordWrap")==="true"),[vt,Er]=n.useState(()=>localStorage.getItem("codeEditorShowMinimap")!=="false"),[Bt,Mt]=n.useState(()=>localStorage.getItem("codeEditorLineNumbers")!=="false"),[pr,mr]=n.useState(()=>localStorage.getItem("codeEditorFontSize")||"14"),jt=async()=>{try{const H=await Y("/api/mcp/config/read");if(H.ok){const Te=await H.json();if(Te.success&&Te.servers){ne(Te.servers);return}}const Q=await Y("/api/mcp/cli/list");if(Q.ok){const Te=await Q.json();if(Te.success&&Te.servers){const ht=Te.servers.map(qe=>({id:qe.name,name:qe.name,type:qe.type,scope:"user",config:{command:qe.command||"",args:qe.args||[],env:qe.env||{},url:qe.url||"",headers:qe.headers||{},timeout:3e4},created:new Date().toISOString(),updated:new Date().toISOString()}));ne(ht);return}}const fe=await Y("/api/mcp/servers?scope=user");if(fe.ok){const Te=await fe.json();ne(Te.servers||[])}else console.error("Failed to fetch MCP servers")}catch(H){console.error("Error fetching MCP servers:",H)}},Dr=async H=>{try{le&&await Ut(le.id,"user");const Q=await Y("/api/mcp/cli/add",{method:"POST",body:JSON.stringify({name:H.name,type:H.type,scope:H.scope,projectPath:H.projectPath,command:H.config?.command,args:H.config?.args||[],url:H.config?.url,headers:H.config?.headers||{},env:H.config?.env||{}})});if(Q.ok){const fe=await Q.json();if(fe.success)return await jt(),!0;throw new Error(fe.error||"Failed to save server via Claude CLI")}else{const fe=await Q.json();throw new Error(fe.error||"Failed to save server")}}catch(Q){throw console.error("Error saving MCP server:",Q),Q}},Ut=async(H,Q="user",fe="")=>{try{let Te=`/api/mcp/cli/remove/${encodeURIComponent(H)}?scope=${Q}`;Q==="local"&&fe&&(Te+=`&projectPath=${encodeURIComponent(fe)}`);const ht=await Y(Te,{method:"DELETE"});if(ht.ok){const qe=await ht.json();if(qe.success)return await jt(),!0;throw new Error(qe.error||"Failed to delete server via Claude CLI")}else{const qe=await ht.json();throw new Error(qe.error||"Failed to delete server")}}catch(Te){throw console.error("Error deleting MCP server:",Te),Te}},Pr=async(H,Q="user")=>{try{const fe=await Y(`/api/mcp/servers/${H}/test?scope=${Q}`,{method:"POST"});if(fe.ok)return(await fe.json()).testResult;{const Te=await fe.json();throw new Error(Te.error||"Failed to test server")}}catch(fe){throw console.error("Error testing MCP server:",fe),fe}},rr=async(H,Q="user")=>{try{const fe=await Y(`/api/mcp/servers/${H}/tools?scope=${Q}`,{method:"POST"});if(fe.ok)return(await fe.json()).toolsResult;{const Te=await fe.json();throw new Error(Te.error||"Failed to discover tools")}}catch(fe){throw console.error("Error discovering MCP tools:",fe),fe}};n.useEffect(()=>{r&&(rn(),Ae(u),he.auth.feishuStatus().then(H=>H.json()).then(H=>{ut(H.bound?H:!1)}).catch(()=>ut(!1)))},[r,u]),n.useEffect(()=>(window.refreshMcpServers=jt,()=>{delete window.refreshMcpServers}),[jt]),n.useEffect(()=>{localStorage.setItem("codeEditorTheme",pt),window.dispatchEvent(new Event("codeEditorSettingsChanged"))},[pt]),n.useEffect(()=>{localStorage.setItem("codeEditorWordWrap",yt.toString()),window.dispatchEvent(new Event("codeEditorSettingsChanged"))},[yt]),n.useEffect(()=>{localStorage.setItem("codeEditorShowMinimap",vt.toString()),window.dispatchEvent(new Event("codeEditorSettingsChanged"))},[vt]),n.useEffect(()=>{localStorage.setItem("codeEditorLineNumbers",Bt.toString()),window.dispatchEvent(new Event("codeEditorSettingsChanged"))},[Bt]),n.useEffect(()=>{localStorage.setItem("codeEditorFontSize",pr),window.dispatchEvent(new Event("codeEditorSettingsChanged"))},[pr]);const rn=async()=>{try{let H=null;try{const Q=await he.settings.getAgentPermissions();Q.ok&&(H=(await Q.json()).agentPermissions)}catch{}if(H)b(H.allowedTools||[]),f(H.disallowedTools||[]),R(H.skipPermissions||!1),$(H.projectSortOrder||"name"),localStorage.setItem("claude-settings",JSON.stringify(H));else{const Q=localStorage.getItem("claude-settings");if(Q){const fe=JSON.parse(Q);b(fe.allowedTools||[]),f(fe.disallowedTools||[]),R(fe.skipPermissions||!1),$(fe.projectSortOrder||"name")}else b([]),f([]),R(!1),$("name")}await jt()}catch(H){console.error("Error loading tool settings:",H),b([]),f([]),R(!1),$("name")}},ft=async()=>{E(!0),X(null);try{const H={allowedTools:w,disallowedTools:k,skipPermissions:T,projectSortOrder:C,lastUpdated:new Date().toISOString()};localStorage.setItem("claude-settings",JSON.stringify(H));try{await he.settings.saveAgentPermissions(H)}catch(Q){console.warn("Failed to sync agent permissions to server:",Q)}X("success"),setTimeout(()=>{o()},1e3)}catch(H){console.error("Error saving tool settings:",H),X("error")}finally{E(!1)}},Gt=async H=>{if(H.preventDefault(),Me(""),pe(""),!_){Me("请输入当前密码");return}if(!U){Me("请输入新密码");return}if(U.length<6){Me("新密码至少需要6个字符");return}if(U!==de){Me("两次输入的新密码不一致");return}Ge(!0);try{const Q=await he.auth.changePassword(_,U),fe=await Q.json();Q.ok?(pe("密码修改成功"),re(""),ae(""),Ie("")):Me(fe.error||"修改密码失败")}catch(Q){console.error("Error changing password:",Q),Me("网络错误,请稍后再试")}finally{Ge(!1)}},nr=h?.username&&!h.username.includes("@"),or=async()=>{Z(!0),me(""),gt(""),De(!1);try{const H=await he.auth.feishuBindToken(),Q=await H.json();H.ok&&Q.token?gt(Q.token):me(Q.error||"生成失败,请重试")}catch{me("网络错误,请稍后再试")}finally{Z(!1)}},fr=()=>{if(!dt)return;const H=`/auth ${dt}`;if(navigator.clipboard&&window.isSecureContext)navigator.clipboard.writeText(H).then(()=>{De(!0),setTimeout(()=>De(!1),2e3)});else{const Q=document.createElement("textarea");Q.value=H,Q.style.position="fixed",Q.style.opacity="0",document.body.appendChild(Q),Q.focus(),Q.select();try{document.execCommand("copy"),De(!0),setTimeout(()=>De(!1),2e3)}finally{document.body.removeChild(Q)}}},mt=()=>{we({name:"",type:"stdio",scope:"user",projectPath:"",config:{command:"",args:[],env:{},url:"",headers:{},timeout:3e4},jsonInput:"",importMode:"form"}),xe(null),ie(!1),ze("")},Yt=(H=null)=>{H?(xe(H),we({name:H.name,type:H.type,scope:H.scope,projectPath:H.projectPath||"",config:{...H.config},raw:H.raw,importMode:"form",jsonInput:""})):mt(),ie(!0)},hr=async H=>{H.preventDefault(),We(!0);try{if(se.importMode==="json"){const Q=await Y("/api/mcp/cli/add-json",{method:"POST",body:JSON.stringify({name:se.name,jsonConfig:se.jsonInput,scope:se.scope,projectPath:se.projectPath})});if(Q.ok){const fe=await Q.json();if(fe.success)await jt(),mt(),X("success");else throw new Error(fe.error||"Failed to add server via JSON")}else{const fe=await Q.json();throw new Error(fe.error||"Failed to add server")}}else await Dr(se),mt(),X("success")}catch(Q){y(`错误: ${Q.message}`,{variant:"error"}),X("error")}finally{We(!1)}},xr=async(H,Q,fe)=>{if(await j("确定要删除此 MCP 服务器吗?",{title:"删除 MCP 服务器",variant:"danger",confirmText:"确认删除"}))try{await Ut(H,Q,fe),X("success")}catch(Te){y(`错误: ${Te.message}`,{variant:"error"}),X("error")}},Ct=async(H,Q)=>{try{Xe({...ye,[H]:{loading:!0}});const fe=await Pr(H,Q);Xe({...ye,[H]:fe})}catch(fe){Xe({...ye,[H]:{success:!1,message:fe.message,details:[]}})}},bt=async(H,Q)=>{try{Be({...Ne,[H]:!0});const fe=await rr(H,Q);Fe({...Ee,[H]:fe})}catch{Fe({...Ee,[H]:{success:!1,tools:[],resources:[],prompts:[]}})}finally{Be({...Ne,[H]:!1})}},Et=(H,Q)=>{we(fe=>({...fe,config:{...fe.config,[H]:Q}}))};return r?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"modal-backdrop fixed inset-0 flex items-center justify-center z-[9999] md:p-4 bg-background/95",children:e.jsxs("div",{className:"bg-background border border-border md:rounded-lg shadow-xl w-full md:max-w-4xl h-full md:h-[90vh] flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between p-4 md:p-6 border-b border-border flex-shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(Ht,{className:"w-5 h-5 md:w-6 md:h-6 text-blue-600"}),e.jsx("h2",{className:"text-lg md:text-xl font-semibold text-foreground",children:"设置"})]}),e.jsx(B,{variant:"ghost",size:"sm",onClick:o,className:"text-muted-foreground hover:text-foreground touch-manipulation",children:e.jsx(Ue,{className:"w-5 h-5"})})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto",children:[e.jsx("div",{className:"border-b border-border",children:e.jsxs("div",{className:"flex px-4 md:px-6",children:[Je&&e.jsx("button",{onClick:()=>Ae("agents"),className:`px-4 py-3 text-sm font-medium border-b-2 transition-colors ${Pe==="agents"?"border-blue-600 text-blue-600 dark:text-blue-400":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"Agent"}),e.jsx("button",{onClick:()=>Ae("shared_projects"),className:`px-4 py-3 text-sm font-medium border-b-2 transition-colors ${Pe==="shared_projects"?"border-blue-600 text-blue-600 dark:text-blue-400":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"共享项目模板"}),e.jsx("button",{onClick:()=>Ae("cron_tasks"),className:`px-4 py-3 text-sm font-medium border-b-2 transition-colors ${Pe==="cron_tasks"?"border-blue-600 text-blue-600 dark:text-blue-400":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"定时任务"}),e.jsx("button",{onClick:()=>Ae("appearance"),className:`px-4 py-3 text-sm font-medium border-b-2 transition-colors ${Pe==="appearance"?"border-blue-600 text-blue-600 dark:text-blue-400":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"外观"}),e.jsx("button",{onClick:()=>Ae("account"),className:`px-4 py-3 text-sm font-medium border-b-2 transition-colors ${Pe==="account"?"border-blue-600 text-blue-600 dark:text-blue-400":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"账户"})]})}),e.jsxs("div",{className:"p-4 md:p-6 space-y-6 md:space-y-8 pb-safe-area-inset-bottom",children:[Pe==="appearance"&&e.jsx("div",{className:"space-y-6 md:space-y-8",children:Pe==="appearance"&&e.jsxs("div",{className:"space-y-6 md:space-y-8",children:[e.jsx("div",{className:"space-y-4",children:e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-foreground",children:"深色模式"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"切换浅色和深色主题"})]}),e.jsxs("button",{onClick:x,className:"relative inline-flex h-8 w-14 items-center rounded-full bg-gray-200 dark:bg-gray-700 transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 dark:focus:ring-offset-gray-900",role:"switch","aria-checked":t,"aria-label":"Toggle dark mode",children:[e.jsx("span",{className:"sr-only",children:"Toggle dark mode"}),e.jsx("span",{className:`${t?"translate-x-7":"translate-x-1"} inline-block h-6 w-6 transform rounded-full bg-white shadow-lg transition-transform duration-200 flex items-center justify-center`,children:t?e.jsx(Br,{className:"w-3.5 h-3.5 text-gray-700"}):e.jsx(Ur,{className:"w-3.5 h-3.5 text-yellow-500"})})]})]})})}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold text-foreground",children:"视图选项"}),e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"font-medium text-foreground flex items-center gap-2",children:[e.jsx(Xa,{className:"h-4 w-4 text-muted-foreground"}),"自动滚动到底部"]}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"有新消息时自动滚动到底部"})]}),e.jsxs("button",{onClick:()=>m&&m(!l),className:`relative inline-flex h-8 w-14 items-center rounded-full transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 dark:focus:ring-offset-gray-900 ${l?"bg-blue-600":"bg-gray-200 dark:bg-gray-700"}`,role:"switch","aria-checked":l,"aria-label":"Toggle auto scroll",children:[e.jsx("span",{className:"sr-only",children:"Toggle auto scroll"}),e.jsx("span",{className:`${l?"translate-x-7":"translate-x-1"} inline-block h-6 w-6 transform rounded-full bg-white shadow-lg transition-transform duration-200`})]})]})})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold text-foreground",children:"输入设置"}),e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"font-medium text-foreground flex items-center gap-2",children:[e.jsx(Ma,{className:"h-4 w-4 text-muted-foreground"}),"使用 Ctrl+Enter 发送"]}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"启用后,按 Ctrl+Enter 发送消息而不是 Enter。这对于输入法用户很有用,可以避免误发送。"})]}),e.jsxs("button",{onClick:()=>s&&s(!d),className:`relative inline-flex h-8 w-14 items-center rounded-full transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 dark:focus:ring-offset-gray-900 ${d?"bg-blue-600":"bg-gray-200 dark:bg-gray-700"}`,role:"switch","aria-checked":d,"aria-label":"Toggle ctrl enter",children:[e.jsx("span",{className:"sr-only",children:"Toggle ctrl enter"}),e.jsx("span",{className:`${d?"translate-x-7":"translate-x-1"} inline-block h-6 w-6 transform rounded-full bg-white shadow-lg transition-transform duration-200`})]})]})})]}),e.jsx("div",{className:"space-y-4",children:e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-foreground",children:"项目排序"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"侧边栏中项目的排序方式"})]}),e.jsxs("select",{value:C,onChange:H=>$(H.target.value),className:"text-sm bg-gray-50 dark:bg-gray-800 border border-gray-300 dark:border-gray-600 text-gray-900 dark:text-gray-100 rounded-lg focus:ring-blue-500 focus:border-blue-500 p-2 w-32",children:[e.jsx("option",{value:"name",children:"按字母顺序"}),e.jsx("option",{value:"date",children:"按最近活动"})]})]})})}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold text-foreground",children:"文件编辑器"}),e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-foreground",children:"编辑器主题"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"文件编辑器的默认主题"})]}),e.jsxs("button",{onClick:()=>ur(pt==="dark"?"light":"dark"),className:"relative inline-flex h-8 w-14 items-center rounded-full bg-gray-200 dark:bg-gray-700 transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 dark:focus:ring-offset-gray-900",role:"switch","aria-checked":pt==="dark","aria-label":"Toggle editor theme",children:[e.jsx("span",{className:"sr-only",children:"Toggle editor theme"}),e.jsx("span",{className:`${pt==="dark"?"translate-x-7":"translate-x-1"} inline-block h-6 w-6 transform rounded-full bg-white shadow-lg transition-transform duration-200 flex items-center justify-center`,children:pt==="dark"?e.jsx(Br,{className:"w-3.5 h-3.5 text-gray-700"}):e.jsx(Ur,{className:"w-3.5 h-3.5 text-yellow-500"})})]})]})}),e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-foreground",children:"自动换行"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"在编辑器中默认启用自动换行"})]}),e.jsxs("button",{onClick:()=>Ze(!yt),className:"relative inline-flex h-8 w-14 items-center rounded-full bg-gray-200 dark:bg-gray-700 transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 dark:focus:ring-offset-gray-900",role:"switch","aria-checked":yt,"aria-label":"Toggle word wrap",children:[e.jsx("span",{className:"sr-only",children:"Toggle word wrap"}),e.jsx("span",{className:`${yt?"translate-x-7":"translate-x-1"} inline-block h-6 w-6 transform rounded-full bg-white shadow-lg transition-transform duration-200`})]})]})}),e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-foreground",children:"显示小地图"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"在差异视图中显示小地图以便于导航"})]}),e.jsxs("button",{onClick:()=>Er(!vt),className:"relative inline-flex h-8 w-14 items-center rounded-full bg-gray-200 dark:bg-gray-700 transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 dark:focus:ring-offset-gray-900",role:"switch","aria-checked":vt,"aria-label":"Toggle minimap",children:[e.jsx("span",{className:"sr-only",children:"Toggle minimap"}),e.jsx("span",{className:`${vt?"translate-x-7":"translate-x-1"} inline-block h-6 w-6 transform rounded-full bg-white shadow-lg transition-transform duration-200`})]})]})}),e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-foreground",children:"显示行号"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"在编辑器中显示行号"})]}),e.jsxs("button",{onClick:()=>Mt(!Bt),className:"relative inline-flex h-8 w-14 items-center rounded-full bg-gray-200 dark:bg-gray-700 transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 dark:focus:ring-offset-gray-900",role:"switch","aria-checked":Bt,"aria-label":"Toggle line numbers",children:[e.jsx("span",{className:"sr-only",children:"Toggle line numbers"}),e.jsx("span",{className:`${Bt?"translate-x-7":"translate-x-1"} inline-block h-6 w-6 transform rounded-full bg-white shadow-lg transition-transform duration-200`})]})]})}),e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-foreground",children:"字体大小"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"编辑器字体大小(像素)"})]}),e.jsxs("select",{value:pr,onChange:H=>mr(H.target.value),className:"text-sm bg-gray-50 dark:bg-gray-800 border border-gray-300 dark:border-gray-600 text-gray-900 dark:text-gray-100 rounded-lg focus:ring-blue-500 focus:border-blue-500 p-2 w-24",children:[e.jsx("option",{value:"10",children:"10px"}),e.jsx("option",{value:"11",children:"11px"}),e.jsx("option",{value:"12",children:"12px"}),e.jsx("option",{value:"13",children:"13px"}),e.jsx("option",{value:"14",children:"14px"}),e.jsx("option",{value:"15",children:"15px"}),e.jsx("option",{value:"16",children:"16px"}),e.jsx("option",{value:"18",children:"18px"}),e.jsx("option",{value:"20",children:"20px"})]})]})})]})]})}),Pe==="agents"&&e.jsx("div",{className:"flex flex-col h-full min-h-[400px] md:min-h-[500px]",children:e.jsxs("div",{className:"flex-1 flex flex-col overflow-hidden",children:[e.jsx("div",{className:"border-b border-gray-200 dark:border-gray-700 flex-shrink-0",children:e.jsxs("div",{className:"flex px-2 md:px-4 overflow-x-auto",children:[i("tab_permissions")&&e.jsx("button",{onClick:()=>Ke("permissions"),className:`px-3 md:px-4 py-2 md:py-3 text-xs md:text-sm font-medium border-b-2 transition-colors whitespace-nowrap ${Le==="permissions"?"border-blue-600 text-blue-600 dark:text-blue-400":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"权限"}),i("tab_mcp")&&e.jsx("button",{onClick:()=>Ke("mcp"),className:`px-3 md:px-4 py-2 md:py-3 text-xs md:text-sm font-medium border-b-2 transition-colors whitespace-nowrap ${Le==="mcp"?"border-blue-600 text-blue-600 dark:text-blue-400":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"MCP 服务器"}),i("tab_skills")&&e.jsx("button",{onClick:()=>Ke("skills"),className:`px-3 md:px-4 py-2 md:py-3 text-xs md:text-sm font-medium border-b-2 transition-colors whitespace-nowrap ${Le==="skills"?"border-amber-600 text-amber-600 dark:text-amber-400":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"技能"}),i("tab_models")&&e.jsx("button",{onClick:()=>Ke("models"),className:`px-3 md:px-4 py-2 md:py-3 text-xs md:text-sm font-medium border-b-2 transition-colors whitespace-nowrap ${Le==="models"?"border-blue-600 text-blue-600 dark:text-blue-400":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"模型"})]})}),e.jsxs("div",{className:"flex-1 overflow-y-auto p-3 md:p-4",children:[Le==="permissions"&&e.jsx(Wc,{agent:"claude",skipPermissions:T,setSkipPermissions:R,allowedTools:w,setAllowedTools:b,disallowedTools:k,setDisallowedTools:f,newAllowedTool:N,setNewAllowedTool:S,newDisallowedTool:I,setNewDisallowedTool:D}),Le==="mcp"&&e.jsx(Bc,{agent:"claude",servers:te,onAdd:()=>Yt(),onEdit:H=>Yt(H),onDelete:(H,Q,fe)=>xr(H,Q,fe),onTest:(H,Q)=>Ct(H,Q),onDiscoverTools:(H,Q)=>bt(H,Q),testResults:ye,serverTools:Ee,toolsLoading:Ne,onDiscoverRepo:()=>be(!0)}),Le==="skills"&&e.jsx(qc,{projects:c}),Le==="models"&&e.jsx(Gc,{ref:q,onStatusChange:ee})]})]})}),Pe==="shared_projects"&&e.jsx(Kc,{projects:c}),Pe==="cron_tasks"&&e.jsx(dl,{}),Pe==="account"&&e.jsx("div",{className:"space-y-6 md:space-y-8",children:e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold text-foreground",children:"账户"}),e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 bg-primary/10 rounded-full flex items-center justify-center",children:e.jsx("span",{className:"text-lg font-semibold text-primary",children:h?.username?.charAt(0).toUpperCase()})}),e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-foreground",children:h?.username}),e.jsx("div",{className:"text-sm text-muted-foreground",children:h?.role==="super_admin"?"超级管理员":h?.role==="admin"?"管理员":"用户"})]})]})}),nr&&e.jsxs("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(En,{className:"w-5 h-5 text-blue-600"}),e.jsx("div",{className:"font-medium text-foreground",children:"修改密码"})]}),e.jsxs("form",{onSubmit:Gt,className:"space-y-3",children:[e.jsxs("div",{children:[e.jsx("label",{htmlFor:"currentPassword",className:"block text-sm font-medium text-foreground mb-1",children:"当前密码"}),e.jsx("input",{type:"password",id:"currentPassword",value:_,onChange:H=>re(H.target.value),className:"w-full px-3 py-2 border border-border rounded-md bg-background text-foreground focus:outline-none focus:ring-2 focus:ring-blue-500",placeholder:"请输入当前密码",disabled:rt})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"newPassword",className:"block text-sm font-medium text-foreground mb-1",children:"新密码"}),e.jsx("input",{type:"password",id:"newPassword",value:U,onChange:H=>ae(H.target.value),className:"w-full px-3 py-2 border border-border rounded-md bg-background text-foreground focus:outline-none focus:ring-2 focus:ring-blue-500",placeholder:"请输入新密码(至少6个字符)",disabled:rt})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"confirmNewPassword",className:"block text-sm font-medium text-foreground mb-1",children:"确认新密码"}),e.jsx("input",{type:"password",id:"confirmNewPassword",value:de,onChange:H=>Ie(H.target.value),className:"w-full px-3 py-2 border border-border rounded-md bg-background text-foreground focus:outline-none focus:ring-2 focus:ring-blue-500",placeholder:"请再次输入新密码",disabled:rt})]}),oe&&e.jsx("div",{className:"p-3 bg-red-100 dark:bg-red-900/20 border border-red-300 dark:border-red-800 rounded-md",children:e.jsx("p",{className:"text-sm text-red-700 dark:text-red-400",children:oe})}),Oe&&e.jsx("div",{className:"p-3 bg-green-100 dark:bg-green-900/20 border border-green-300 dark:border-green-800 rounded-md",children:e.jsx("p",{className:"text-sm text-green-700 dark:text-green-400",children:Oe})}),e.jsx("div",{className:"flex justify-end",children:e.jsx(B,{type:"submit",disabled:rt,className:"bg-blue-600 hover:bg-blue-700",children:rt?"修改中...":"修改密码"})})]})]}),i("feishu_binding")&&e.jsxs("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx("img",{src:"/feishu-logo.svg",alt:"飞书",className:"h-4"}),e.jsx("div",{className:"font-medium text-foreground",children:"飞书账号绑定"})]}),Ve?e.jsxs("div",{className:"flex items-center gap-2 mb-3 px-3 py-2 bg-green-50 dark:bg-green-900/20 border border-green-200 dark:border-green-800 rounded-md",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-green-500 shrink-0"}),e.jsxs("div",{className:"text-sm text-green-700 dark:text-green-400",children:["已绑定",e.jsx("span",{className:"ml-2 text-xs text-green-600/70 dark:text-green-500/70 font-mono",children:Ve.feishuOpenId}),Ve.createdAt&&e.jsxs("span",{className:"ml-2 text-xs text-green-600/70 dark:text-green-500/70",children:["· ",new Date(Ve.createdAt).toLocaleDateString("zh-CN")]})]})]}):Ve===!1?e.jsxs("div",{className:"flex items-center gap-2 mb-3 px-3 py-2 bg-gray-100 dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-md",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-gray-400 shrink-0"}),e.jsx("span",{className:"text-sm text-muted-foreground",children:"未绑定飞书账号"})]}):null,e.jsxs("p",{className:"text-sm text-muted-foreground mb-3",children:["生成绑定 Token,在飞书中向机器人发送 ",e.jsx("code",{className:"bg-gray-200 dark:bg-gray-700 px-1 rounded text-xs",children:"/auth <token>"})," 即可完成绑定,Token 有效期 24 小时。"]}),dt?e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2 p-2 bg-background border border-border rounded-md",children:[e.jsxs("code",{className:"flex-1 text-xs text-foreground font-mono break-all select-all",children:["/auth ",dt]}),e.jsx("button",{onClick:fr,className:"shrink-0 p-1.5 rounded hover:bg-gray-100 dark:hover:bg-gray-800 text-muted-foreground hover:text-foreground transition-colors",title:"复制命令",children:K?e.jsx(Nr,{className:"w-4 h-4 text-green-500"}):e.jsx(ts,{className:"w-4 h-4"})})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-xs text-muted-foreground",children:"复制上方命令,在飞书私聊机器人中发送"}),e.jsxs("button",{onClick:or,disabled:v,className:"flex items-center gap-1 text-xs text-blue-600 dark:text-blue-400 hover:underline disabled:opacity-50",children:[e.jsx(st,{className:"w-3 h-3"}),"重新生成"]})]})]}):e.jsxs("div",{className:"space-y-2",children:[ce&&e.jsx("p",{className:"text-sm text-red-500",children:ce}),e.jsxs(B,{onClick:or,disabled:v,variant:"outline",className:"gap-2",children:[v?e.jsx(st,{className:"w-4 h-4 animate-spin"}):e.jsx(En,{className:"w-4 h-4"}),v?"生成中...":"生成绑定 Token"]})]})]}),e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-foreground",children:"退出登录"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"结束当前会话"})]}),e.jsxs(B,{variant:"outline",className:"gap-2 text-red-600 dark:text-red-400 border-red-200 dark:border-red-800 hover:bg-red-50 dark:hover:bg-red-900/20",onClick:async()=>{await j("确定要退出登录吗?",{title:"退出登录",variant:"warning",confirmText:"退出"})&&(o(),p("/app"),a())},children:[e.jsx(Oa,{className:"w-4 h-4"}),"退出"]})]})})]})}),G&&e.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-[110] p-4",children:e.jsxs("div",{className:"bg-background border border-border rounded-lg w-full max-w-2xl max-h-[90vh] overflow-y-auto",children:[e.jsxs("div",{className:"flex items-center justify-between p-4 border-b border-border",children:[e.jsx("h3",{className:"text-lg font-medium text-foreground",children:le?"编辑 MCP 服务器":"添加 MCP 服务器"}),e.jsx(B,{variant:"ghost",size:"sm",onClick:mt,children:e.jsx(Ue,{className:"w-4 h-4"})})]}),e.jsxs("form",{onSubmit:hr,className:"p-4 space-y-4",children:[!le&&e.jsxs("div",{className:"flex gap-2 mb-4",children:[e.jsx("button",{type:"button",onClick:()=>we(H=>({...H,importMode:"form"})),className:`px-4 py-2 rounded-lg font-medium transition-colors ${se.importMode==="form"?"bg-blue-600 text-white":"bg-gray-100 dark:bg-gray-800 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700"}`,children:"表单输入"}),e.jsx("button",{type:"button",onClick:()=>we(H=>({...H,importMode:"json"})),className:`px-4 py-2 rounded-lg font-medium transition-colors ${se.importMode==="json"?"bg-blue-600 text-white":"bg-gray-100 dark:bg-gray-800 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700"}`,children:"JSON 导入"})]}),se.importMode==="form"&&le&&e.jsxs("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-3",children:[e.jsx("label",{className:"block text-sm font-medium text-foreground mb-2",children:"作用域"}),e.jsxs("div",{className:"flex items-center gap-2",children:[se.scope==="user"?e.jsx(lr,{className:"w-4 h-4"}):e.jsx(Sr,{className:"w-4 h-4"}),e.jsx("span",{className:"text-sm",children:se.scope==="user"?"用户(全局)":"项目(本地)"}),se.scope==="local"&&se.projectPath&&e.jsxs("span",{className:"text-xs text-muted-foreground",children:["- ",He(se.projectPath)]})]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"编辑现有服务器时无法更改作用域"})]}),se.importMode==="form"&&!le&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-foreground mb-2",children:"作用域 *"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("button",{type:"button",onClick:()=>we(H=>({...H,scope:"user",projectPath:""})),className:`flex-1 px-4 py-2 rounded-lg font-medium transition-colors ${se.scope==="user"?"bg-blue-600 text-white":"bg-gray-100 dark:bg-gray-800 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700"}`,children:e.jsxs("div",{className:"flex items-center justify-center gap-2",children:[e.jsx(lr,{className:"w-4 h-4"}),e.jsx("span",{children:"用户(全局)"})]})}),e.jsx("button",{type:"button",onClick:()=>we(H=>({...H,scope:"local"})),className:`flex-1 px-4 py-2 rounded-lg font-medium transition-colors ${se.scope==="local"?"bg-blue-600 text-white":"bg-gray-100 dark:bg-gray-800 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700"}`,children:e.jsxs("div",{className:"flex items-center justify-center gap-2",children:[e.jsx(Sr,{className:"w-4 h-4"}),e.jsx("span",{children:"项目(本地)"})]})})]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:se.scope==="user"?"用户作用域:在您机器上的所有项目中可用":"本地作用域:仅在选定的项目中可用"})]}),se.scope==="local"&&!le&&e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-foreground mb-2",children:"项目 *"}),e.jsxs("select",{value:se.projectPath,onChange:H=>we(Q=>({...Q,projectPath:H.target.value})),className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 rounded-lg focus:ring-blue-500 focus:border-blue-500",required:se.scope==="local",children:[e.jsx("option",{value:"",children:"选择项目..."}),c.map(H=>e.jsx("option",{value:H.path||H.fullPath,children:H.displayName||H.name},H.name))]}),se.projectPath&&e.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["Path: ",He(se.projectPath)]})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:se.importMode==="json"?"md:col-span-2":"",children:[e.jsx("label",{className:"block text-sm font-medium text-foreground mb-2",children:"服务器名称 *"}),e.jsx(at,{value:se.name,onChange:H=>{we(Q=>({...Q,name:H.target.value}))},placeholder:"my-server",required:!0})]}),se.importMode==="form"&&e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-foreground mb-2",children:"传输类型 *"}),e.jsxs("select",{value:se.type,onChange:H=>{we(Q=>({...Q,type:H.target.value}))},className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 rounded-lg focus:ring-blue-500 focus:border-blue-500",children:[e.jsx("option",{value:"stdio",children:"stdio"}),e.jsx("option",{value:"sse",children:"SSE"}),e.jsx("option",{value:"http",children:"HTTP"})]})]})]}),le&&se.raw&&se.importMode==="form"&&e.jsxs("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:[e.jsxs("h4",{className:"text-sm font-medium text-foreground mb-2",children:["配置详情 (from ",le.scope==="global"?"~/.claude.json":"project config",")"]}),e.jsx("pre",{className:"text-xs bg-gray-100 dark:bg-gray-800 p-3 rounded overflow-x-auto",children:JSON.stringify(se.raw,null,2)})]}),se.importMode==="json"&&e.jsx("div",{className:"space-y-4",children:e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-foreground mb-2",children:"JSON 配置 *"}),e.jsx("textarea",{value:se.jsonInput,onChange:H=>{we(Q=>({...Q,jsonInput:H.target.value}));try{if(H.target.value.trim()){const Q=JSON.parse(H.target.value);Q.type?Q.type==="stdio"&&!Q.command?ze("stdio 类型需要 command 字段"):(Q.type==="http"||Q.type==="sse")&&!Q.url?ze(`${Q.type} 类型需要 url 字段`):ze(""):ze("缺少必填字段:type")}}catch{H.target.value.trim()?ze("无效的 JSON 格式"):ze("")}},className:`w-full px-3 py-2 border ${_e?"border-red-500":"border-gray-300 dark:border-gray-600"} bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 rounded-lg focus:ring-blue-500 focus:border-blue-500 font-mono text-sm`,rows:"8",placeholder:`{
|
|
162
|
+
${i.cronExpr} — ${i.prompt.slice(0,60)}${i.prompt.length>60?"…":""}`,{title:"删除定时任务",variant:"danger",confirmText:"删除",cancelText:"取消"})){m(i.id);try{(await Y(`/api/cron-tasks/${i.id}`,{method:"DELETE"})).ok&&o(w=>w.filter(b=>b.id!==i.id))}catch(j){console.error("Delete failed",j)}finally{m(null)}}},a=i=>{o(d==="create"?y=>[...y,i]:y=>y.map(j=>j.id===i.id?i:j)),s(null)};return c?e.jsxs("div",{className:"flex items-center justify-center py-16 text-gray-400 dark:text-gray-500",children:[e.jsx(st,{size:18,className:"animate-spin mr-2"})," 加载中…"]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("p",{className:"text-sm text-gray-500 dark:text-gray-400",children:"管理定时任务,可新建、编辑、暂停或删除。"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(B,{variant:"outline",size:"sm",onClick:t,className:"flex items-center gap-1.5",children:[e.jsx(st,{size:14})," 刷新"]}),e.jsxs(B,{variant:"outline",size:"sm",onClick:()=>s("create"),className:"flex items-center gap-1.5",children:[e.jsx(_t,{size:14})," 新建任务"]})]})]}),r.length===0?e.jsxs("div",{className:"flex flex-col items-center justify-center py-16 text-gray-400 dark:text-gray-500 gap-3",children:[e.jsx(Xr,{size:32,className:"opacity-40"}),e.jsx("p",{className:"text-sm",children:"暂无定时任务"}),e.jsx("button",{onClick:()=>s("create"),className:"text-xs text-blue-500 hover:text-blue-600 dark:text-blue-400",children:"+ 创建第一个定时任务"})]}):e.jsx("div",{className:"space-y-2",children:r.map(i=>e.jsx("div",{className:`rounded-lg border p-4 transition-colors ${i.isPaused?"border-gray-200 bg-gray-50 dark:border-gray-700 dark:bg-gray-800/50 opacity-70":"border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-800"}`,children:e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"flex-1 min-w-0 space-y-1.5",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"text-sm font-medium text-gray-800 dark:text-gray-200",title:i.cronExpr,children:Ss(i.cronExpr)}),e.jsx("code",{className:"text-xs font-mono text-gray-400 dark:text-gray-500",children:i.cronExpr}),e.jsx(ll,{channel:i.channel}),!i.recurring&&e.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium bg-amber-100 text-amber-700 dark:bg-amber-900/40 dark:text-amber-300",children:"单次"}),i.isPaused&&e.jsx("span",{className:"inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium bg-gray-200 text-gray-600 dark:bg-gray-600 dark:text-gray-300",children:"已暂停"})]}),e.jsx("p",{className:"text-sm text-gray-700 dark:text-gray-300 truncate",title:i.prompt,children:i.prompt.length>80?i.prompt.slice(0,80)+"…":i.prompt}),e.jsxs("div",{className:"flex items-center gap-3 text-xs text-gray-400 dark:text-gray-500 flex-wrap",children:[e.jsxs("span",{children:["最近触发:",Ho(i.lastFiredAt)]}),e.jsxs("span",{children:["创建:",Ho(i.createdAt)]}),i.sessionMode==="resume_session"&&e.jsx("span",{children:"复用会话"})]})]}),e.jsxs("div",{className:"flex items-center gap-1 shrink-0",children:[e.jsx("button",{onClick:()=>x(i),disabled:l===i.id,title:i.isPaused?"恢复":"暂停",className:"p-1.5 rounded-md text-gray-400 hover:text-gray-600 hover:bg-gray-100 dark:hover:text-gray-200 dark:hover:bg-gray-700 disabled:opacity-40 transition-colors",children:i.isPaused?e.jsx(Na,{size:15}):e.jsx(Ta,{size:15})}),e.jsx("button",{onClick:()=>s(i),disabled:l===i.id,title:"编辑",className:"p-1.5 rounded-md text-gray-400 hover:text-gray-600 hover:bg-gray-100 dark:hover:text-gray-200 dark:hover:bg-gray-700 disabled:opacity-40 transition-colors",children:e.jsx(Sa,{size:15})}),e.jsx("button",{onClick:()=>h(i),disabled:l===i.id,title:"删除",className:"p-1.5 rounded-md text-gray-400 hover:text-red-500 hover:bg-red-50 dark:hover:bg-red-900/20 disabled:opacity-40 transition-colors",children:e.jsx(xt,{size:15})})]})]})},i.id))})]}),d!==null&&e.jsx(cl,{editTask:d==="create"?null:d,onClose:()=>s(null),onSave:a})]})}function ul({onClose:r,onChanged:o}){const{showAlert:c,showConfirm:u}=it(),[l,m]=n.useState([]),[d,s]=n.useState(!0),[p,t]=n.useState(null),[x,h]=n.useState(""),[a,i]=n.useState(!1),[y,j]=n.useState(null);n.useEffect(()=>{w()},[]);const w=async()=>{try{s(!0),t(null);const f=await Y("/api/mcp-repos");if(f.ok){const N=await f.json();m(N.repos||[])}else{const N=await f.json();t(N.error||"Failed to fetch repos")}}catch(f){t(f.message)}finally{s(!1)}},b=async f=>{if(f.preventDefault(),!x.trim()){t("请输入仓库 URL");return}try{i(!0),t(null);const N=await Y("/api/mcp-repos",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:x.trim()})});if(N.ok)h(""),w(),o?.();else{const S=await N.json();t(S.error||"Failed to add repo")}}catch(N){t(N.message)}finally{i(!1)}},k=async(f,N)=>{if(await u(`确定要移除仓库 "${f}/${N}" 吗?`,{title:"移除仓库",variant:"danger",confirmText:"确认移除"}))try{j(`${f}/${N}`);const S=await Y(`/api/mcp-repos/${f}/${N}`,{method:"DELETE"});if(S.ok)w(),o?.();else{const I=await S.json();c(I.error||"移除仓库失败",{variant:"error"})}}catch(S){c(S.message,{variant:"error"})}finally{j(null)}};return e.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-[10000] p-4",children:e.jsxs("div",{className:"bg-background rounded-xl shadow-xl w-full max-w-2xl max-h-[90vh] flex flex-col",children:[e.jsxs("div",{className:"flex items-center gap-3 p-4 border-b border-border",children:[e.jsx(B,{variant:"ghost",size:"icon",onClick:r,children:e.jsx(er,{className:"w-5 h-5"})}),e.jsx("h2",{className:"text-lg font-semibold text-foreground",children:"管理 MCP 仓库"})]}),e.jsxs("div",{className:"flex-1 overflow-auto p-4 space-y-6",children:[e.jsxs("div",{className:"bg-gray-50 dark:bg-gray-900/50 rounded-lg p-4 space-y-4",children:[e.jsx("h3",{className:"font-medium text-foreground",children:"添加 MCP 仓库"}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["仓库中每个文件夹代表一个 MCP 服务,需包含 ",e.jsx("code",{className:"bg-gray-100 dark:bg-gray-800 px-1 rounded",children:"mcp.json"}),"(配置)和 ",e.jsx("code",{className:"bg-gray-100 dark:bg-gray-800 px-1 rounded",children:"mcp.yaml"}),"(说明)。"]}),e.jsxs("form",{onSubmit:b,className:"space-y-3",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm text-muted-foreground mb-1",children:"仓库 URL"}),e.jsx(at,{type:"text",placeholder:"owner/name 或 https://github.com/owner/name",value:x,onChange:f=>h(f.target.value),disabled:a})]}),e.jsxs(B,{type:"submit",disabled:a||!x.trim(),className:"bg-purple-600 hover:bg-purple-700 text-white",children:[e.jsx(_t,{className:"w-4 h-4 mr-2"}),a?"添加中...":"添加仓库"]})]})]}),p&&e.jsx("div",{className:"bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4 text-red-800 dark:text-red-200 text-sm",children:p}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("h3",{className:"font-medium text-foreground",children:"已添加的仓库"}),d?e.jsx("div",{className:"text-center py-4 text-muted-foreground",children:"加载中..."}):l.length===0?e.jsxs("div",{className:"text-center py-8 text-muted-foreground",children:[e.jsx(Zo,{className:"w-12 h-12 mx-auto mb-4 opacity-50"}),e.jsx("p",{children:"还没有添加任何 MCP 仓库"})]}):l.map(f=>e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:"font-medium text-foreground",children:[f.owner,"/",f.repo]}),f.isSystem&&e.jsx(tt,{variant:"outline",className:"text-xs bg-purple-50 dark:bg-purple-900/20 text-purple-700 dark:text-purple-300",children:"内置"})]}),e.jsxs("div",{className:"flex items-center gap-3 mt-1 text-sm text-muted-foreground",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(tn,{className:"w-3 h-3"}),"分支: main"]}),e.jsxs(tt,{variant:"outline",className:"text-xs",children:[f.serviceCount," 个 MCP 服务"]})]})]}),e.jsx("div",{className:"flex items-center gap-2 ml-4",children:!f.isSystem&&e.jsx(B,{variant:"ghost",size:"sm",onClick:()=>k(f.owner,f.repo),disabled:y===`${f.owner}/${f.repo}`,className:"text-red-500 hover:text-red-600",children:e.jsx(xt,{className:"w-4 h-4"})})})]})},`${f.owner}/${f.repo}`))]})]})]})})}const pl=r=>{switch(r){case"stdio":return e.jsx(Fn,{className:"w-3 h-3"});case"sse":return e.jsx(Or,{className:"w-3 h-3"});case"http":return e.jsx(lr,{className:"w-3 h-3"});default:return e.jsx(en,{className:"w-3 h-3"})}};function ml({onClose:r,onInstalled:o,onOpenRepoManager:c,projects:u=[]}){const{showAlert:l,showConfirm:m}=it(),[d,s]=n.useState([]),[p,t]=n.useState([]),[x,h]=n.useState(!0),[a,i]=n.useState(null),[y,j]=n.useState(""),[w,b]=n.useState("all"),[k,f]=n.useState(null),[N,S]=n.useState(null),[I,D]=n.useState(null),[T,R]=n.useState("user"),[M,E]=n.useState("");n.useEffect(()=>{W()},[]);const W=async(G=!1)=>{try{h(!0),i(null),G&&await Y("/api/mcp-repos/refresh",{method:"POST"});const[ie,le]=await Promise.all([Y("/api/mcp-repos/available"),Y("/api/mcp-repos")]);if(ie.ok){const xe=await ie.json();s(xe.services||[])}if(le.ok){const xe=await le.json();t(xe.repos||[])}}catch(ie){i(ie.message)}finally{h(!1)}},X=G=>{D(G),R("user"),E("")},C=()=>{D(null),R("user"),E("")},$=async()=>{const G=I;if(G){if(T==="local"&&!M){l("请选择要安装到的项目",{variant:"warning"});return}try{D(null),f(G.dirName+G.repository);const ie={servicePath:G.path,scope:T};T==="local"&&M&&(ie.projectPath=M);const le=await Y("/api/mcp-repos/install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(ie)});if(le.ok)W(),o?.();else{const xe=await le.json();l(xe.error||"安装 MCP 服务失败",{variant:"error"})}}catch(ie){l(ie.message,{variant:"error"})}finally{f(null),R("user"),E("")}}},te=async G=>{if(!(!G.serverNames||G.serverNames.length===0)&&await m(`确定要卸载 "${G.name}" 吗?这将移除 ${G.serverNames.join(", ")} 的配置。`,{title:"卸载 MCP 服务",variant:"danger",confirmText:"确认卸载"}))try{S(G.dirName+G.repository);for(const ie of G.serverNames)await Y(`/api/mcp-repos/uninstall/${encodeURIComponent(ie)}`,{method:"DELETE"});W(),o?.()}catch(ie){l(ie.message,{variant:"error"})}finally{S(null)}},ne=d.filter(G=>{if(y){const ie=y.toLowerCase();if(!G.dirName?.toLowerCase().includes(ie)&&!G.name?.toLowerCase().includes(ie)&&!G.description?.toLowerCase().includes(ie))return!1}return!(w!=="all"&&G.repository!==w)});return e.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-[10000] p-4",children:e.jsxs("div",{className:"bg-background rounded-xl shadow-xl w-full max-w-4xl max-h-[90vh] flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between p-4 border-b border-border",children:[e.jsx("h2",{className:"text-lg font-semibold text-foreground",children:"MCP 仓库"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(B,{variant:"ghost",size:"sm",onClick:()=>W(!0),disabled:x,children:[e.jsx(st,{className:`w-4 h-4 ${x?"animate-spin":""}`}),e.jsx("span",{className:"ml-1 hidden sm:inline",children:"刷新"})]}),e.jsxs(B,{variant:"ghost",size:"sm",onClick:c,children:[e.jsx(Ht,{className:"w-4 h-4"}),e.jsx("span",{className:"ml-1 hidden sm:inline",children:"仓库管理"})]}),e.jsx(B,{variant:"ghost",size:"icon",onClick:r,children:e.jsx(Ue,{className:"w-5 h-5"})})]})]}),e.jsx("div",{className:"px-4 pt-4 pb-2"}),e.jsxs("div",{className:"px-4 pb-4 flex flex-wrap gap-3",children:[e.jsx("div",{className:"flex-1 min-w-[200px]",children:e.jsxs("div",{className:"relative",children:[e.jsx(St,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),e.jsx(at,{type:"text",placeholder:"搜索 MCP 服务名称或描述...",value:y,onChange:G=>j(G.target.value),className:"pl-10"})]})}),e.jsxs("select",{value:w,onChange:G=>b(G.target.value),className:"px-3 py-2 rounded-md border border-border bg-background text-foreground text-sm min-w-[120px]",children:[e.jsx("option",{value:"all",children:"全部仓库"}),p.map(G=>e.jsxs("option",{value:`${G.owner}/${G.repo}`,children:[G.owner,"/",G.repo]},`${G.owner}/${G.repo}`))]})]}),e.jsxs("div",{className:"flex-1 overflow-auto px-4 pb-4",children:[a&&e.jsx("div",{className:"bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg p-4 text-red-800 dark:text-red-200 text-sm mb-4",children:a}),x?e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):ne.length===0?e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:d.length===0?e.jsxs(e.Fragment,{children:[e.jsx("p",{children:"没有可用的 MCP 服务"}),e.jsx("p",{className:"text-xs mt-2",children:"请先添加 MCP 仓库"}),e.jsxs(B,{variant:"outline",size:"sm",className:"mt-4",onClick:c,children:[e.jsx(Ht,{className:"w-4 h-4 mr-2"}),"管理仓库"]})]}):e.jsx("p",{children:"没有找到匹配的 MCP 服务"})}):e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:ne.map(G=>{const ie=`${G.repository}-${G.dirName}`,le=k===G.dirName+G.repository,xe=N===G.dirName+G.repository,Ce=I&&I.dirName+I.repository===G.dirName+G.repository;return e.jsx("div",{className:"border border-border rounded-lg p-4 hover:border-purple-500/50 transition-colors",children:e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsxs("div",{className:"mb-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h4",{className:"font-medium text-foreground",children:G.name||G.dirName}),e.jsxs(tt,{variant:"outline",className:"text-xs flex items-center gap-1",children:[pl(G.type),G.type]})]}),e.jsxs("div",{className:"flex items-center gap-1 mt-1",children:[e.jsx("span",{className:"text-xs text-muted-foreground",children:G.repository}),G.serverNames?.length>0&&e.jsxs("span",{className:"text-xs text-muted-foreground ml-2",children:["· ",G.serverNames.join(", ")]})]})]}),G.description&&e.jsx("p",{className:"text-sm text-muted-foreground flex-1 line-clamp-3 mb-3",children:G.description}),Ce&&e.jsxs("div",{className:"mt-2 mb-3 p-3 rounded-lg bg-muted/50 border border-border text-sm",children:[e.jsx("p",{className:"font-medium text-foreground mb-2",children:"选择安装位置"}),e.jsxs("label",{className:"flex items-center gap-2 mb-1 cursor-pointer",children:[e.jsx("input",{type:"radio",name:`scope-${ie}`,value:"user",checked:T==="user",onChange:()=>{R("user"),E("")},className:"accent-purple-600"}),e.jsx("span",{className:"text-foreground",children:"全局(所有项目可用)"})]}),e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[e.jsx("input",{type:"radio",name:`scope-${ie}`,value:"local",checked:T==="local",onChange:()=>R("local"),className:"accent-purple-600"}),e.jsx("span",{className:"text-foreground",children:"安装到指定项目"})]}),T==="local"&&e.jsxs("select",{value:M,onChange:be=>E(be.target.value),className:"mt-2 w-full px-2 py-1.5 rounded-md border border-border bg-background text-foreground text-xs",children:[e.jsx("option",{value:"",children:"选择项目..."}),u.map(be=>e.jsx("option",{value:be.path||be.fullPath,children:be.displayName||be.name},be.name))]}),e.jsxs("div",{className:"flex gap-2 mt-3",children:[e.jsx(B,{size:"sm",variant:"outline",onClick:C,className:"flex-1",children:"取消"}),e.jsx(B,{size:"sm",className:"bg-purple-600 hover:bg-purple-700 text-white flex-1",onClick:$,children:"确认安装"})]})]}),e.jsx("div",{className:"flex items-center gap-2 mt-auto pt-2",children:G.installed?e.jsxs(B,{size:"sm",variant:"outline",className:"ml-auto text-red-600 hover:text-red-700 border-red-200 hover:border-red-300",onClick:()=>te(G),disabled:xe,children:[e.jsx(xt,{className:"w-4 h-4 mr-1"}),xe?"卸载中...":"卸载"]}):!Ce&&e.jsxs(B,{size:"sm",className:"bg-purple-600 hover:bg-purple-700 text-white ml-auto",onClick:()=>X(G),disabled:le||!!I,children:[e.jsx(It,{className:"w-4 h-4 mr-1"}),le?"安装中...":"安装"]})})]})},ie)})})]})]})})}function fl({isOpen:r,onClose:o,projects:c=[],initialTab:u="shared_projects",autoScrollToBottom:l,onAutoScrollChange:m,sendByCtrlEnter:d,onSendByCtrlEnterChange:s}){const p=Zr(),{isDarkMode:t,toggleDarkMode:x}=eo(),{user:h,logout:a,hasPermission:i}=Xt(),{showAlert:y,showConfirm:j}=it(),[w,b]=n.useState([]),[k,f]=n.useState([]),[N,S]=n.useState(""),[I,D]=n.useState(""),[T,R]=n.useState(!1),[M,E]=n.useState(!1),[W,X]=n.useState(null),[C,$]=n.useState("name"),[te,ne]=n.useState([]),[G,ie]=n.useState(!1),[le,xe]=n.useState(null),[Ce,be]=n.useState(!1),[Se,Re]=n.useState(!1),[se,we]=n.useState({name:"",type:"stdio",scope:"user",projectPath:"",config:{command:"",args:[],env:{},url:"",headers:{},timeout:3e4},jsonInput:"",importMode:"form"}),[$e,We]=n.useState(!1),[ye,Xe]=n.useState({}),[Ee,Fe]=n.useState({}),[Ne,Be]=n.useState({}),[Pe,Ae]=n.useState(u),[_e,ze]=n.useState(""),[Le,Ke]=n.useState("permissions"),Je=i("tab_permissions")||i("tab_mcp")||i("tab_skills")||i("tab_models");n.useEffect(()=>{const H={permissions:"tab_permissions",mcp:"tab_mcp",skills:"tab_skills",models:"tab_models"},Q=H[Le];if(Q&&!i(Q)){const Te=["permissions","mcp","skills","models"].find(ht=>{const qe=H[ht];return!qe||i(qe)});Te&&Ke(Te)}},[i,Le]),n.useEffect(()=>{Pe==="agents"&&!Je&&Ae("shared_projects")},[Pe,Je]);const q=n.useRef(null),[z,O]=n.useState({saving:!1,hasChanges:!1}),ee=n.useCallback(H=>O(H),[]),[_,re]=n.useState(""),[U,ae]=n.useState(""),[de,Ie]=n.useState(""),[oe,Me]=n.useState(""),[Oe,pe]=n.useState(""),[rt,Ge]=n.useState(!1),[dt,gt]=n.useState(""),[v,Z]=n.useState(!1),[ce,me]=n.useState(""),[K,De]=n.useState(!1),[Ve,ut]=n.useState(null),[pt,ur]=n.useState(()=>localStorage.getItem("codeEditorTheme")||"dark"),[yt,Ze]=n.useState(()=>localStorage.getItem("codeEditorWordWrap")==="true"),[vt,Er]=n.useState(()=>localStorage.getItem("codeEditorShowMinimap")!=="false"),[Bt,Mt]=n.useState(()=>localStorage.getItem("codeEditorLineNumbers")!=="false"),[pr,mr]=n.useState(()=>localStorage.getItem("codeEditorFontSize")||"14"),jt=async()=>{try{const H=await Y("/api/mcp/config/read");if(H.ok){const Te=await H.json();if(Te.success&&Te.servers){ne(Te.servers);return}}const Q=await Y("/api/mcp/cli/list");if(Q.ok){const Te=await Q.json();if(Te.success&&Te.servers){const ht=Te.servers.map(qe=>({id:qe.name,name:qe.name,type:qe.type,scope:"user",config:{command:qe.command||"",args:qe.args||[],env:qe.env||{},url:qe.url||"",headers:qe.headers||{},timeout:3e4},created:new Date().toISOString(),updated:new Date().toISOString()}));ne(ht);return}}const fe=await Y("/api/mcp/servers?scope=user");if(fe.ok){const Te=await fe.json();ne(Te.servers||[])}else console.error("Failed to fetch MCP servers")}catch(H){console.error("Error fetching MCP servers:",H)}},Dr=async H=>{try{le&&await Ut(le.id,"user");const Q=await Y("/api/mcp/cli/add",{method:"POST",body:JSON.stringify({name:H.name,type:H.type,scope:H.scope,projectPath:H.projectPath,command:H.config?.command,args:H.config?.args||[],url:H.config?.url,headers:H.config?.headers||{},env:H.config?.env||{}})});if(Q.ok){const fe=await Q.json();if(fe.success)return await jt(),!0;throw new Error(fe.error||"Failed to save server via Claude CLI")}else{const fe=await Q.json();throw new Error(fe.error||"Failed to save server")}}catch(Q){throw console.error("Error saving MCP server:",Q),Q}},Ut=async(H,Q="user",fe="")=>{try{let Te=`/api/mcp/cli/remove/${encodeURIComponent(H)}?scope=${Q}`;Q==="local"&&fe&&(Te+=`&projectPath=${encodeURIComponent(fe)}`);const ht=await Y(Te,{method:"DELETE"});if(ht.ok){const qe=await ht.json();if(qe.success)return await jt(),!0;throw new Error(qe.error||"Failed to delete server via Claude CLI")}else{const qe=await ht.json();throw new Error(qe.error||"Failed to delete server")}}catch(Te){throw console.error("Error deleting MCP server:",Te),Te}},Pr=async(H,Q="user")=>{try{const fe=await Y(`/api/mcp/servers/${H}/test?scope=${Q}`,{method:"POST"});if(fe.ok)return(await fe.json()).testResult;{const Te=await fe.json();throw new Error(Te.error||"Failed to test server")}}catch(fe){throw console.error("Error testing MCP server:",fe),fe}},rr=async(H,Q="user")=>{try{const fe=await Y(`/api/mcp/servers/${H}/tools?scope=${Q}`,{method:"POST"});if(fe.ok)return(await fe.json()).toolsResult;{const Te=await fe.json();throw new Error(Te.error||"Failed to discover tools")}}catch(fe){throw console.error("Error discovering MCP tools:",fe),fe}};n.useEffect(()=>{r&&(rn(),Ae(u),he.auth.feishuStatus().then(H=>H.json()).then(H=>{ut(H.bound?H:!1)}).catch(()=>ut(!1)))},[r,u]),n.useEffect(()=>(window.refreshMcpServers=jt,()=>{delete window.refreshMcpServers}),[jt]),n.useEffect(()=>{localStorage.setItem("codeEditorTheme",pt),window.dispatchEvent(new Event("codeEditorSettingsChanged"))},[pt]),n.useEffect(()=>{localStorage.setItem("codeEditorWordWrap",yt.toString()),window.dispatchEvent(new Event("codeEditorSettingsChanged"))},[yt]),n.useEffect(()=>{localStorage.setItem("codeEditorShowMinimap",vt.toString()),window.dispatchEvent(new Event("codeEditorSettingsChanged"))},[vt]),n.useEffect(()=>{localStorage.setItem("codeEditorLineNumbers",Bt.toString()),window.dispatchEvent(new Event("codeEditorSettingsChanged"))},[Bt]),n.useEffect(()=>{localStorage.setItem("codeEditorFontSize",pr),window.dispatchEvent(new Event("codeEditorSettingsChanged"))},[pr]);const rn=async()=>{try{let H=null;try{const Q=await he.settings.getAgentPermissions();Q.ok&&(H=(await Q.json()).agentPermissions)}catch{}if(H)b(H.allowedTools||[]),f(H.disallowedTools||[]),R(H.skipPermissions||!1),$(H.projectSortOrder||"name"),localStorage.setItem("claude-settings",JSON.stringify(H));else{const Q=localStorage.getItem("claude-settings");if(Q){const fe=JSON.parse(Q);b(fe.allowedTools||[]),f(fe.disallowedTools||[]),R(fe.skipPermissions||!1),$(fe.projectSortOrder||"name")}else b([]),f([]),R(!1),$("name")}await jt()}catch(H){console.error("Error loading tool settings:",H),b([]),f([]),R(!1),$("name")}},ft=async()=>{E(!0),X(null);try{const H={allowedTools:w,disallowedTools:k,skipPermissions:T,projectSortOrder:C,lastUpdated:new Date().toISOString()};localStorage.setItem("claude-settings",JSON.stringify(H));try{await he.settings.saveAgentPermissions(H)}catch(Q){console.warn("Failed to sync agent permissions to server:",Q)}X("success"),setTimeout(()=>{o()},1e3)}catch(H){console.error("Error saving tool settings:",H),X("error")}finally{E(!1)}},Gt=async H=>{if(H.preventDefault(),Me(""),pe(""),!_){Me("请输入当前密码");return}if(!U){Me("请输入新密码");return}if(U.length<6){Me("新密码至少需要6个字符");return}if(U!==de){Me("两次输入的新密码不一致");return}Ge(!0);try{const Q=await he.auth.changePassword(_,U),fe=await Q.json();Q.ok?(pe("密码修改成功"),re(""),ae(""),Ie("")):Me(fe.error||"修改密码失败")}catch(Q){console.error("Error changing password:",Q),Me("网络错误,请稍后再试")}finally{Ge(!1)}},nr=h?.username&&!h.username.includes("@"),or=async()=>{Z(!0),me(""),gt(""),De(!1);try{const H=await he.auth.feishuBindToken(),Q=await H.json();H.ok&&Q.token?gt(Q.token):me(Q.error||"生成失败,请重试")}catch{me("网络错误,请稍后再试")}finally{Z(!1)}},fr=()=>{if(!dt)return;const H=`/auth ${dt}`;if(navigator.clipboard&&window.isSecureContext)navigator.clipboard.writeText(H).then(()=>{De(!0),setTimeout(()=>De(!1),2e3)});else{const Q=document.createElement("textarea");Q.value=H,Q.style.position="fixed",Q.style.opacity="0",document.body.appendChild(Q),Q.focus(),Q.select();try{document.execCommand("copy"),De(!0),setTimeout(()=>De(!1),2e3)}finally{document.body.removeChild(Q)}}},mt=()=>{we({name:"",type:"stdio",scope:"user",projectPath:"",config:{command:"",args:[],env:{},url:"",headers:{},timeout:3e4},jsonInput:"",importMode:"form"}),xe(null),ie(!1),ze("")},Yt=(H=null)=>{H?(xe(H),we({name:H.name,type:H.type,scope:H.scope,projectPath:H.projectPath||"",config:{...H.config},raw:H.raw,importMode:"form",jsonInput:""})):mt(),ie(!0)},hr=async H=>{H.preventDefault(),We(!0);try{if(se.importMode==="json"){const Q=await Y("/api/mcp/cli/add-json",{method:"POST",body:JSON.stringify({name:se.name,jsonConfig:se.jsonInput,scope:se.scope,projectPath:se.projectPath})});if(Q.ok){const fe=await Q.json();if(fe.success)await jt(),mt(),X("success");else throw new Error(fe.error||"Failed to add server via JSON")}else{const fe=await Q.json();throw new Error(fe.error||"Failed to add server")}}else await Dr(se),mt(),X("success")}catch(Q){y(`错误: ${Q.message}`,{variant:"error"}),X("error")}finally{We(!1)}},xr=async(H,Q,fe)=>{if(await j("确定要删除此 MCP 服务器吗?",{title:"删除 MCP 服务器",variant:"danger",confirmText:"确认删除"}))try{await Ut(H,Q,fe),X("success")}catch(Te){y(`错误: ${Te.message}`,{variant:"error"}),X("error")}},Ct=async(H,Q)=>{try{Xe({...ye,[H]:{loading:!0}});const fe=await Pr(H,Q);Xe({...ye,[H]:fe})}catch(fe){Xe({...ye,[H]:{success:!1,message:fe.message,details:[]}})}},bt=async(H,Q)=>{try{Be({...Ne,[H]:!0});const fe=await rr(H,Q);Fe({...Ee,[H]:fe})}catch{Fe({...Ee,[H]:{success:!1,tools:[],resources:[],prompts:[]}})}finally{Be({...Ne,[H]:!1})}},Et=(H,Q)=>{we(fe=>({...fe,config:{...fe.config,[H]:Q}}))};return r?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"modal-backdrop fixed inset-0 flex items-center justify-center z-[9999] md:p-4 bg-background/95",children:e.jsxs("div",{className:"bg-background border border-border md:rounded-lg shadow-xl w-full md:max-w-4xl h-full md:h-[90vh] flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between p-4 md:p-6 border-b border-border flex-shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(Ht,{className:"w-5 h-5 md:w-6 md:h-6 text-blue-600"}),e.jsx("h2",{className:"text-lg md:text-xl font-semibold text-foreground",children:"设置"})]}),e.jsx(B,{variant:"ghost",size:"sm",onClick:o,className:"text-muted-foreground hover:text-foreground touch-manipulation",children:e.jsx(Ue,{className:"w-5 h-5"})})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto",children:[e.jsx("div",{className:"border-b border-border",children:e.jsxs("div",{className:"flex px-4 md:px-6",children:[Je&&e.jsx("button",{onClick:()=>Ae("agents"),className:`px-4 py-3 text-sm font-medium border-b-2 transition-colors ${Pe==="agents"?"border-blue-600 text-blue-600 dark:text-blue-400":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"Agent"}),e.jsx("button",{onClick:()=>Ae("shared_projects"),className:`px-4 py-3 text-sm font-medium border-b-2 transition-colors ${Pe==="shared_projects"?"border-blue-600 text-blue-600 dark:text-blue-400":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"共享项目模板"}),e.jsx("button",{onClick:()=>Ae("cron_tasks"),className:`px-4 py-3 text-sm font-medium border-b-2 transition-colors ${Pe==="cron_tasks"?"border-blue-600 text-blue-600 dark:text-blue-400":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"定时任务"}),e.jsx("button",{onClick:()=>Ae("appearance"),className:`px-4 py-3 text-sm font-medium border-b-2 transition-colors ${Pe==="appearance"?"border-blue-600 text-blue-600 dark:text-blue-400":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"外观"}),e.jsx("button",{onClick:()=>Ae("account"),className:`px-4 py-3 text-sm font-medium border-b-2 transition-colors ${Pe==="account"?"border-blue-600 text-blue-600 dark:text-blue-400":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"账户"})]})}),e.jsxs("div",{className:"p-4 md:p-6 space-y-6 md:space-y-8 pb-safe-area-inset-bottom",children:[Pe==="appearance"&&e.jsx("div",{className:"space-y-6 md:space-y-8",children:Pe==="appearance"&&e.jsxs("div",{className:"space-y-6 md:space-y-8",children:[e.jsx("div",{className:"space-y-4",children:e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-foreground",children:"深色模式"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"切换浅色和深色主题"})]}),e.jsxs("button",{onClick:x,className:"relative inline-flex h-8 w-14 items-center rounded-full bg-gray-200 dark:bg-gray-700 transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 dark:focus:ring-offset-gray-900",role:"switch","aria-checked":t,"aria-label":"Toggle dark mode",children:[e.jsx("span",{className:"sr-only",children:"Toggle dark mode"}),e.jsx("span",{className:`${t?"translate-x-7":"translate-x-1"} inline-block h-6 w-6 transform rounded-full bg-white shadow-lg transition-transform duration-200 flex items-center justify-center`,children:t?e.jsx(Br,{className:"w-3.5 h-3.5 text-gray-700"}):e.jsx(Ur,{className:"w-3.5 h-3.5 text-yellow-500"})})]})]})})}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold text-foreground",children:"视图选项"}),e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"font-medium text-foreground flex items-center gap-2",children:[e.jsx(Xa,{className:"h-4 w-4 text-muted-foreground"}),"自动滚动到底部"]}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"有新消息时自动滚动到底部"})]}),e.jsxs("button",{onClick:()=>m&&m(!l),className:`relative inline-flex h-8 w-14 items-center rounded-full transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 dark:focus:ring-offset-gray-900 ${l?"bg-blue-600":"bg-gray-200 dark:bg-gray-700"}`,role:"switch","aria-checked":l,"aria-label":"Toggle auto scroll",children:[e.jsx("span",{className:"sr-only",children:"Toggle auto scroll"}),e.jsx("span",{className:`${l?"translate-x-7":"translate-x-1"} inline-block h-6 w-6 transform rounded-full bg-white shadow-lg transition-transform duration-200`})]})]})})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold text-foreground",children:"输入设置"}),e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"font-medium text-foreground flex items-center gap-2",children:[e.jsx(Ma,{className:"h-4 w-4 text-muted-foreground"}),"使用 Ctrl+Enter 发送"]}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"启用后,按 Ctrl+Enter 发送消息而不是 Enter。这对于输入法用户很有用,可以避免误发送。"})]}),e.jsxs("button",{onClick:()=>s&&s(!d),className:`relative inline-flex h-8 w-14 items-center rounded-full transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 dark:focus:ring-offset-gray-900 ${d?"bg-blue-600":"bg-gray-200 dark:bg-gray-700"}`,role:"switch","aria-checked":d,"aria-label":"Toggle ctrl enter",children:[e.jsx("span",{className:"sr-only",children:"Toggle ctrl enter"}),e.jsx("span",{className:`${d?"translate-x-7":"translate-x-1"} inline-block h-6 w-6 transform rounded-full bg-white shadow-lg transition-transform duration-200`})]})]})})]}),e.jsx("div",{className:"space-y-4",children:e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-foreground",children:"项目排序"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"侧边栏中项目的排序方式"})]}),e.jsxs("select",{value:C,onChange:H=>$(H.target.value),className:"text-sm bg-gray-50 dark:bg-gray-800 border border-gray-300 dark:border-gray-600 text-gray-900 dark:text-gray-100 rounded-lg focus:ring-blue-500 focus:border-blue-500 p-2 w-32",children:[e.jsx("option",{value:"name",children:"按字母顺序"}),e.jsx("option",{value:"date",children:"按最近活动"})]})]})})}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold text-foreground",children:"文件编辑器"}),e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-foreground",children:"编辑器主题"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"文件编辑器的默认主题"})]}),e.jsxs("button",{onClick:()=>ur(pt==="dark"?"light":"dark"),className:"relative inline-flex h-8 w-14 items-center rounded-full bg-gray-200 dark:bg-gray-700 transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 dark:focus:ring-offset-gray-900",role:"switch","aria-checked":pt==="dark","aria-label":"Toggle editor theme",children:[e.jsx("span",{className:"sr-only",children:"Toggle editor theme"}),e.jsx("span",{className:`${pt==="dark"?"translate-x-7":"translate-x-1"} inline-block h-6 w-6 transform rounded-full bg-white shadow-lg transition-transform duration-200 flex items-center justify-center`,children:pt==="dark"?e.jsx(Br,{className:"w-3.5 h-3.5 text-gray-700"}):e.jsx(Ur,{className:"w-3.5 h-3.5 text-yellow-500"})})]})]})}),e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-foreground",children:"自动换行"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"在编辑器中默认启用自动换行"})]}),e.jsxs("button",{onClick:()=>Ze(!yt),className:"relative inline-flex h-8 w-14 items-center rounded-full bg-gray-200 dark:bg-gray-700 transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 dark:focus:ring-offset-gray-900",role:"switch","aria-checked":yt,"aria-label":"Toggle word wrap",children:[e.jsx("span",{className:"sr-only",children:"Toggle word wrap"}),e.jsx("span",{className:`${yt?"translate-x-7":"translate-x-1"} inline-block h-6 w-6 transform rounded-full bg-white shadow-lg transition-transform duration-200`})]})]})}),e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-foreground",children:"显示小地图"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"在差异视图中显示小地图以便于导航"})]}),e.jsxs("button",{onClick:()=>Er(!vt),className:"relative inline-flex h-8 w-14 items-center rounded-full bg-gray-200 dark:bg-gray-700 transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 dark:focus:ring-offset-gray-900",role:"switch","aria-checked":vt,"aria-label":"Toggle minimap",children:[e.jsx("span",{className:"sr-only",children:"Toggle minimap"}),e.jsx("span",{className:`${vt?"translate-x-7":"translate-x-1"} inline-block h-6 w-6 transform rounded-full bg-white shadow-lg transition-transform duration-200`})]})]})}),e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-foreground",children:"显示行号"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"在编辑器中显示行号"})]}),e.jsxs("button",{onClick:()=>Mt(!Bt),className:"relative inline-flex h-8 w-14 items-center rounded-full bg-gray-200 dark:bg-gray-700 transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 dark:focus:ring-offset-gray-900",role:"switch","aria-checked":Bt,"aria-label":"Toggle line numbers",children:[e.jsx("span",{className:"sr-only",children:"Toggle line numbers"}),e.jsx("span",{className:`${Bt?"translate-x-7":"translate-x-1"} inline-block h-6 w-6 transform rounded-full bg-white shadow-lg transition-transform duration-200`})]})]})}),e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-foreground",children:"字体大小"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"编辑器字体大小(像素)"})]}),e.jsxs("select",{value:pr,onChange:H=>mr(H.target.value),className:"text-sm bg-gray-50 dark:bg-gray-800 border border-gray-300 dark:border-gray-600 text-gray-900 dark:text-gray-100 rounded-lg focus:ring-blue-500 focus:border-blue-500 p-2 w-24",children:[e.jsx("option",{value:"10",children:"10px"}),e.jsx("option",{value:"11",children:"11px"}),e.jsx("option",{value:"12",children:"12px"}),e.jsx("option",{value:"13",children:"13px"}),e.jsx("option",{value:"14",children:"14px"}),e.jsx("option",{value:"15",children:"15px"}),e.jsx("option",{value:"16",children:"16px"}),e.jsx("option",{value:"18",children:"18px"}),e.jsx("option",{value:"20",children:"20px"})]})]})})]})]})}),Pe==="agents"&&e.jsx("div",{className:"flex flex-col h-full min-h-[400px] md:min-h-[500px]",children:e.jsxs("div",{className:"flex-1 flex flex-col overflow-hidden",children:[e.jsx("div",{className:"border-b border-gray-200 dark:border-gray-700 flex-shrink-0",children:e.jsxs("div",{className:"flex px-2 md:px-4 overflow-x-auto",children:[i("tab_permissions")&&e.jsx("button",{onClick:()=>Ke("permissions"),className:`px-3 md:px-4 py-2 md:py-3 text-xs md:text-sm font-medium border-b-2 transition-colors whitespace-nowrap ${Le==="permissions"?"border-blue-600 text-blue-600 dark:text-blue-400":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"权限"}),i("tab_mcp")&&e.jsx("button",{onClick:()=>Ke("mcp"),className:`px-3 md:px-4 py-2 md:py-3 text-xs md:text-sm font-medium border-b-2 transition-colors whitespace-nowrap ${Le==="mcp"?"border-blue-600 text-blue-600 dark:text-blue-400":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"MCP 服务器"}),i("tab_skills")&&e.jsx("button",{onClick:()=>Ke("skills"),className:`px-3 md:px-4 py-2 md:py-3 text-xs md:text-sm font-medium border-b-2 transition-colors whitespace-nowrap ${Le==="skills"?"border-amber-600 text-amber-600 dark:text-amber-400":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"技能"}),i("tab_models")&&e.jsx("button",{onClick:()=>Ke("models"),className:`px-3 md:px-4 py-2 md:py-3 text-xs md:text-sm font-medium border-b-2 transition-colors whitespace-nowrap ${Le==="models"?"border-blue-600 text-blue-600 dark:text-blue-400":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"模型"})]})}),e.jsxs("div",{className:"flex-1 overflow-y-auto p-3 md:p-4",children:[Le==="permissions"&&e.jsx(Wc,{agent:"claude",skipPermissions:T,setSkipPermissions:R,allowedTools:w,setAllowedTools:b,disallowedTools:k,setDisallowedTools:f,newAllowedTool:N,setNewAllowedTool:S,newDisallowedTool:I,setNewDisallowedTool:D}),Le==="mcp"&&e.jsx(Bc,{agent:"claude",servers:te,onAdd:()=>Yt(),onEdit:H=>Yt(H),onDelete:(H,Q,fe)=>xr(H,Q,fe),onTest:(H,Q)=>Ct(H,Q),onDiscoverTools:(H,Q)=>bt(H,Q),testResults:ye,serverTools:Ee,toolsLoading:Ne,onDiscoverRepo:()=>be(!0)}),Le==="skills"&&e.jsx(qc,{projects:c}),Le==="models"&&e.jsx(Gc,{ref:q,onStatusChange:ee})]})]})}),Pe==="shared_projects"&&e.jsx(Kc,{projects:c}),Pe==="cron_tasks"&&e.jsx(dl,{}),Pe==="account"&&e.jsx("div",{className:"space-y-6 md:space-y-8",children:e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold text-foreground",children:"账户"}),e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 bg-primary/10 rounded-full flex items-center justify-center",children:e.jsx("span",{className:"text-lg font-semibold text-primary",children:h?.username?.charAt(0).toUpperCase()})}),e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-foreground",children:h?.username}),e.jsx("div",{className:"text-sm text-muted-foreground",children:h?.role==="super_admin"?"超级管理员":h?.role==="admin"?"管理员":"用户"})]})]})}),nr&&e.jsxs("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx(En,{className:"w-5 h-5 text-blue-600"}),e.jsx("div",{className:"font-medium text-foreground",children:"修改密码"})]}),e.jsxs("form",{onSubmit:Gt,className:"space-y-3",children:[e.jsxs("div",{children:[e.jsx("label",{htmlFor:"currentPassword",className:"block text-sm font-medium text-foreground mb-1",children:"当前密码"}),e.jsx("input",{type:"password",id:"currentPassword",value:_,onChange:H=>re(H.target.value),className:"w-full px-3 py-2 border border-border rounded-md bg-background text-foreground focus:outline-none focus:ring-2 focus:ring-blue-500",placeholder:"请输入当前密码",disabled:rt})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"newPassword",className:"block text-sm font-medium text-foreground mb-1",children:"新密码"}),e.jsx("input",{type:"password",id:"newPassword",value:U,onChange:H=>ae(H.target.value),className:"w-full px-3 py-2 border border-border rounded-md bg-background text-foreground focus:outline-none focus:ring-2 focus:ring-blue-500",placeholder:"请输入新密码(至少6个字符)",disabled:rt})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"confirmNewPassword",className:"block text-sm font-medium text-foreground mb-1",children:"确认新密码"}),e.jsx("input",{type:"password",id:"confirmNewPassword",value:de,onChange:H=>Ie(H.target.value),className:"w-full px-3 py-2 border border-border rounded-md bg-background text-foreground focus:outline-none focus:ring-2 focus:ring-blue-500",placeholder:"请再次输入新密码",disabled:rt})]}),oe&&e.jsx("div",{className:"p-3 bg-red-100 dark:bg-red-900/20 border border-red-300 dark:border-red-800 rounded-md",children:e.jsx("p",{className:"text-sm text-red-700 dark:text-red-400",children:oe})}),Oe&&e.jsx("div",{className:"p-3 bg-green-100 dark:bg-green-900/20 border border-green-300 dark:border-green-800 rounded-md",children:e.jsx("p",{className:"text-sm text-green-700 dark:text-green-400",children:Oe})}),e.jsx("div",{className:"flex justify-end",children:e.jsx(B,{type:"submit",disabled:rt,className:"bg-blue-600 hover:bg-blue-700",children:rt?"修改中...":"修改密码"})})]})]}),i("feishu_binding")&&e.jsxs("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx("img",{src:"/feishu-logo.svg",alt:"飞书",className:"h-4"}),e.jsx("div",{className:"font-medium text-foreground",children:"飞书账号绑定"})]}),Ve?e.jsxs("div",{className:"flex items-center gap-2 mb-3 px-3 py-2 bg-green-50 dark:bg-green-900/20 border border-green-200 dark:border-green-800 rounded-md",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-green-500 shrink-0"}),e.jsxs("div",{className:"text-sm text-green-700 dark:text-green-400",children:["已绑定",e.jsx("span",{className:"ml-2 text-xs text-green-600/70 dark:text-green-500/70 font-mono",children:Ve.feishuOpenId}),Ve.createdAt&&e.jsxs("span",{className:"ml-2 text-xs text-green-600/70 dark:text-green-500/70",children:["· ",new Date(Ve.createdAt).toLocaleDateString("zh-CN")]})]})]}):Ve===!1?e.jsxs("div",{className:"flex items-center gap-2 mb-3 px-3 py-2 bg-gray-100 dark:bg-gray-800/50 border border-gray-200 dark:border-gray-700 rounded-md",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-gray-400 shrink-0"}),e.jsx("span",{className:"text-sm text-muted-foreground",children:"未绑定飞书账号"})]}):null,e.jsxs("p",{className:"text-sm text-muted-foreground mb-3",children:["生成绑定 Token,在飞书中向机器人发送 ",e.jsx("code",{className:"bg-gray-200 dark:bg-gray-700 px-1 rounded text-xs",children:"/auth <token>"})," 即可完成绑定,Token 有效期 24 小时。"]}),dt?e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2 p-2 bg-background border border-border rounded-md",children:[e.jsxs("code",{className:"flex-1 text-xs text-foreground font-mono break-all select-all",children:["/auth ",dt]}),e.jsx("button",{onClick:fr,className:"shrink-0 p-1.5 rounded hover:bg-gray-100 dark:hover:bg-gray-800 text-muted-foreground hover:text-foreground transition-colors",title:"复制命令",children:K?e.jsx(Nr,{className:"w-4 h-4 text-green-500"}):e.jsx(ts,{className:"w-4 h-4"})})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-xs text-muted-foreground",children:"复制上方命令,在飞书私聊机器人中发送"}),e.jsxs("button",{onClick:or,disabled:v,className:"flex items-center gap-1 text-xs text-blue-600 dark:text-blue-400 hover:underline disabled:opacity-50",children:[e.jsx(st,{className:"w-3 h-3"}),"重新生成"]})]})]}):e.jsxs("div",{className:"space-y-2",children:[ce&&e.jsx("p",{className:"text-sm text-red-500",children:ce}),e.jsxs(B,{onClick:or,disabled:v,variant:"outline",className:"gap-2",children:[v?e.jsx(st,{className:"w-4 h-4 animate-spin"}):e.jsx(En,{className:"w-4 h-4"}),v?"生成中...":"生成绑定 Token"]})]})]}),e.jsx("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-foreground",children:"退出登录"}),e.jsx("div",{className:"text-sm text-muted-foreground",children:"结束当前会话"})]}),e.jsxs(B,{variant:"outline",className:"gap-2 text-red-600 dark:text-red-400 border-red-200 dark:border-red-800 hover:bg-red-50 dark:hover:bg-red-900/20",onClick:async()=>{await j("确定要退出登录吗?",{title:"退出登录",variant:"warning",confirmText:"退出"})&&(o(),p("/app"),a())},children:[e.jsx(Oa,{className:"w-4 h-4"}),"退出"]})]})})]})}),G&&e.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-[110] p-4",children:e.jsxs("div",{className:"bg-background border border-border rounded-lg w-full max-w-2xl max-h-[90vh] overflow-y-auto",children:[e.jsxs("div",{className:"flex items-center justify-between p-4 border-b border-border",children:[e.jsx("h3",{className:"text-lg font-medium text-foreground",children:le?"编辑 MCP 服务器":"添加 MCP 服务器"}),e.jsx(B,{variant:"ghost",size:"sm",onClick:mt,children:e.jsx(Ue,{className:"w-4 h-4"})})]}),e.jsxs("form",{onSubmit:hr,className:"p-4 space-y-4",children:[!le&&e.jsxs("div",{className:"flex gap-2 mb-4",children:[e.jsx("button",{type:"button",onClick:()=>we(H=>({...H,importMode:"form"})),className:`px-4 py-2 rounded-lg font-medium transition-colors ${se.importMode==="form"?"bg-blue-600 text-white":"bg-gray-100 dark:bg-gray-800 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700"}`,children:"表单输入"}),e.jsx("button",{type:"button",onClick:()=>we(H=>({...H,importMode:"json"})),className:`px-4 py-2 rounded-lg font-medium transition-colors ${se.importMode==="json"?"bg-blue-600 text-white":"bg-gray-100 dark:bg-gray-800 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700"}`,children:"JSON 导入"})]}),se.importMode==="form"&&le&&e.jsxs("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-3",children:[e.jsx("label",{className:"block text-sm font-medium text-foreground mb-2",children:"作用域"}),e.jsxs("div",{className:"flex items-center gap-2",children:[se.scope==="user"?e.jsx(lr,{className:"w-4 h-4"}):e.jsx(Sr,{className:"w-4 h-4"}),e.jsx("span",{className:"text-sm",children:se.scope==="user"?"用户(全局)":"项目(本地)"}),se.scope==="local"&&se.projectPath&&e.jsxs("span",{className:"text-xs text-muted-foreground",children:["- ",He(se.projectPath)]})]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"编辑现有服务器时无法更改作用域"})]}),se.importMode==="form"&&!le&&e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-foreground mb-2",children:"作用域 *"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("button",{type:"button",onClick:()=>we(H=>({...H,scope:"user",projectPath:""})),className:`flex-1 px-4 py-2 rounded-lg font-medium transition-colors ${se.scope==="user"?"bg-blue-600 text-white":"bg-gray-100 dark:bg-gray-800 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700"}`,children:e.jsxs("div",{className:"flex items-center justify-center gap-2",children:[e.jsx(lr,{className:"w-4 h-4"}),e.jsx("span",{children:"用户(全局)"})]})}),e.jsx("button",{type:"button",onClick:()=>we(H=>({...H,scope:"local"})),className:`flex-1 px-4 py-2 rounded-lg font-medium transition-colors ${se.scope==="local"?"bg-blue-600 text-white":"bg-gray-100 dark:bg-gray-800 text-gray-700 dark:text-gray-300 hover:bg-gray-200 dark:hover:bg-gray-700"}`,children:e.jsxs("div",{className:"flex items-center justify-center gap-2",children:[e.jsx(Sr,{className:"w-4 h-4"}),e.jsx("span",{children:"项目(本地)"})]})})]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:se.scope==="user"?"用户作用域:在您机器上的所有项目中可用":"本地作用域:仅在选定的项目中可用"})]}),se.scope==="local"&&!le&&e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-foreground mb-2",children:"项目 *"}),e.jsxs("select",{value:se.projectPath,onChange:H=>we(Q=>({...Q,projectPath:H.target.value})),className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 rounded-lg focus:ring-blue-500 focus:border-blue-500",required:se.scope==="local",children:[e.jsx("option",{value:"",children:"选择项目..."}),c.map(H=>e.jsx("option",{value:H.path||H.fullPath,children:H.displayName||H.name},H.name))]}),se.projectPath&&e.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["Path: ",He(se.projectPath)]})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:se.importMode==="json"?"md:col-span-2":"",children:[e.jsx("label",{className:"block text-sm font-medium text-foreground mb-2",children:"服务器名称 *"}),e.jsx(at,{value:se.name,onChange:H=>{we(Q=>({...Q,name:H.target.value}))},placeholder:"my-server",required:!0})]}),se.importMode==="form"&&e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-foreground mb-2",children:"传输类型 *"}),e.jsxs("select",{value:se.type,onChange:H=>{we(Q=>({...Q,type:H.target.value}))},className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 rounded-lg focus:ring-blue-500 focus:border-blue-500",children:[e.jsx("option",{value:"stdio",children:"stdio"}),e.jsx("option",{value:"sse",children:"SSE"}),e.jsx("option",{value:"http",children:"HTTP"})]})]})]}),le&&se.raw&&se.importMode==="form"&&e.jsxs("div",{className:"bg-gray-50 dark:bg-gray-900/50 border border-gray-200 dark:border-gray-700 rounded-lg p-4",children:[e.jsxs("h4",{className:"text-sm font-medium text-foreground mb-2",children:["配置详情 (from ",le.scope==="global"?"~/.claude.json":"project config",")"]}),e.jsx("pre",{className:"text-xs bg-gray-100 dark:bg-gray-800 p-3 rounded overflow-x-auto",children:JSON.stringify(se.raw,null,2)})]}),se.importMode==="json"&&e.jsx("div",{className:"space-y-4",children:e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-foreground mb-2",children:"JSON 配置 *"}),e.jsx("textarea",{value:se.jsonInput,onChange:H=>{we(Q=>({...Q,jsonInput:H.target.value}));try{if(H.target.value.trim()){const Q=JSON.parse(H.target.value);Q.type?Q.type==="stdio"&&!Q.command?ze("stdio 类型需要 command 字段"):(Q.type==="http"||Q.type==="sse")&&!Q.url?ze(`${Q.type} 类型需要 url 字段`):ze(""):ze("缺少必填字段:type")}}catch{H.target.value.trim()?ze("无效的 JSON 格式"):ze("")}},className:`w-full px-3 py-2 border ${_e?"border-red-500":"border-gray-300 dark:border-gray-600"} bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-gray-100 rounded-lg focus:ring-blue-500 focus:border-blue-500 font-mono text-sm`,rows:"8",placeholder:`{
|
|
163
163
|
"type": "stdio",
|
|
164
164
|
"command": "/path/to/server",
|
|
165
165
|
"args": ["--api-key", "abc123"],
|
package/dist/index.html
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
|
|
26
26
|
<!-- Prevent zoom on iOS -->
|
|
27
27
|
<meta name="format-detection" content="telephone=no" />
|
|
28
|
-
<script type="module" crossorigin src="/assets/index-
|
|
28
|
+
<script type="module" crossorigin src="/assets/index-BJaZDc8y.js"></script>
|
|
29
29
|
<link rel="modulepreload" crossorigin href="/assets/vendor-react-Bv0Nkan8.js">
|
|
30
30
|
<link rel="modulepreload" crossorigin href="/assets/vendor-codemirror-sVRjxPVQ.js">
|
|
31
31
|
<link rel="modulepreload" crossorigin href="/assets/vendor-utils-00TdZexr.js">
|
package/package.json
CHANGED
package/server/routes/agents.js
CHANGED
|
@@ -205,8 +205,41 @@ function runGitOutput(args, cwd) {
|
|
|
205
205
|
}
|
|
206
206
|
|
|
207
207
|
/**
|
|
208
|
-
*
|
|
208
|
+
* Try to get git repo info (remote URL + branch) for a directory.
|
|
209
|
+
* Returns { repo, branch } or null if not a git repo / no remote.
|
|
210
|
+
*/
|
|
211
|
+
async function getGitRepoInfo(dirPath) {
|
|
212
|
+
try {
|
|
213
|
+
await fs.access(path.join(dirPath, '.git'));
|
|
214
|
+
} catch {
|
|
215
|
+
return null;
|
|
216
|
+
}
|
|
217
|
+
let repoUrl;
|
|
218
|
+
try {
|
|
219
|
+
repoUrl = await runGitOutput(['remote', 'get-url', 'origin'], dirPath);
|
|
220
|
+
} catch {
|
|
221
|
+
return null; // No remote
|
|
222
|
+
}
|
|
223
|
+
if (!repoUrl) return null;
|
|
224
|
+
|
|
225
|
+
let branch;
|
|
226
|
+
try {
|
|
227
|
+
branch = await runGitOutput(['branch', '--show-current'], dirPath);
|
|
228
|
+
} catch {
|
|
229
|
+
try {
|
|
230
|
+
branch = await runGitOutput(['rev-parse', '--abbrev-ref', 'HEAD'], dirPath);
|
|
231
|
+
} catch {
|
|
232
|
+
branch = 'main';
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
return { repo: repoUrl, branch: branch || 'main' };
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* Scan subdirectories of a project for git repositories (up to 2 levels deep).
|
|
209
240
|
* Returns array of { name, repo, branch }.
|
|
241
|
+
* Two-level scan is needed for comparison projects where git repos live inside
|
|
242
|
+
* sub-project folders (e.g. jigsolitaire/jigsolitaire, tile-journey-analytics/tile-genius).
|
|
210
243
|
*/
|
|
211
244
|
async function scanGitRepos(projectPath) {
|
|
212
245
|
const results = [];
|
|
@@ -224,37 +257,31 @@ async function scanGitRepos(projectPath) {
|
|
|
224
257
|
if (entry.name.startsWith('.') || SKIP_DIRS.has(entry.name)) continue;
|
|
225
258
|
|
|
226
259
|
const subdirPath = path.join(projectPath, entry.name);
|
|
260
|
+
const info = await getGitRepoInfo(subdirPath);
|
|
227
261
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
await fs.access(path.join(subdirPath, '.git'));
|
|
231
|
-
} catch {
|
|
262
|
+
if (info) {
|
|
263
|
+
results.push({ name: entry.name, ...info });
|
|
232
264
|
continue;
|
|
233
265
|
}
|
|
234
266
|
|
|
235
|
-
//
|
|
236
|
-
let
|
|
267
|
+
// Not a git repo itself — scan one level deeper (for comparison project structure)
|
|
268
|
+
let subEntries;
|
|
237
269
|
try {
|
|
238
|
-
|
|
270
|
+
subEntries = await fs.readdir(subdirPath, { withFileTypes: true });
|
|
239
271
|
} catch {
|
|
240
|
-
continue;
|
|
272
|
+
continue;
|
|
241
273
|
}
|
|
242
|
-
if (!repoUrl) continue;
|
|
243
274
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
branch = 'main';
|
|
275
|
+
for (const subEntry of subEntries) {
|
|
276
|
+
if (!subEntry.isDirectory() && !subEntry.isSymbolicLink()) continue;
|
|
277
|
+
if (subEntry.name.startsWith('.') || SKIP_DIRS.has(subEntry.name)) continue;
|
|
278
|
+
|
|
279
|
+
const subSubdirPath = path.join(subdirPath, subEntry.name);
|
|
280
|
+
const subInfo = await getGitRepoInfo(subSubdirPath);
|
|
281
|
+
if (subInfo) {
|
|
282
|
+
results.push({ name: `${entry.name}/${subEntry.name}`, ...subInfo });
|
|
253
283
|
}
|
|
254
284
|
}
|
|
255
|
-
if (!branch) branch = 'main';
|
|
256
|
-
|
|
257
|
-
results.push({ name: entry.name, repo: repoUrl, branch });
|
|
258
285
|
}
|
|
259
286
|
|
|
260
287
|
return results;
|