@lee576/vue3-gantt 1.0.0 → 1.0.1

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.
@@ -1,86 +1,86 @@
1
- (function(le,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("dayjs"),require("svg.js"),require("interactjs"),require("zod")):typeof define=="function"&&define.amd?define(["exports","vue","dayjs","svg.js","interactjs","zod"],e):(le=typeof globalThis<"u"?globalThis:le||self,e(le.Vue3Gantt={},le.Vue,le.dayjs,le.SVG,le.interact,le.zod))})(this,function(le,e,b,et,Te,Ee){"use strict";var ss=Object.defineProperty;var ds=(le,e,b)=>e in le?ss(le,e,{enumerable:!0,configurable:!0,writable:!0,value:b}):le[e]=b;var De=(le,e,b)=>ds(le,typeof e!="symbol"?e+"":e,b);function Ke(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var ve={exports:{}},Ct=ve.exports,tt;function wt(){return tt||(tt=1,function(t,o){(function(r,m){t.exports=m()})(Ct,function(){var r={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},m=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,p=/\d/,h=/\d\d/,n=/\d\d?/,s=/\d*[^-_:/,()\s\d]+/,c={},D=function(i){return(i=+i)+(i>68?1900:2e3)},k=function(i){return function(H){this[i]=+H}},u=[/[+-]\d\d:?(\d\d)?|Z/,function(i){(this.zone||(this.zone={})).offset=function(H){if(!H||H==="Z")return 0;var y=H.match(/([+-]|\d\d)/g),L=60*y[1]+(+y[2]||0);return L===0?0:y[0]==="+"?-L:L}(i)}],N=function(i){var H=c[i];return H&&(H.indexOf?H:H.s.concat(H.f))},_=function(i,H){var y,L=c.meridiem;if(L){for(var W=1;W<=24;W+=1)if(i.indexOf(L(W,0,H))>-1){y=W>12;break}}else y=i===(H?"pm":"PM");return y},S={A:[s,function(i){this.afternoon=_(i,!1)}],a:[s,function(i){this.afternoon=_(i,!0)}],Q:[p,function(i){this.month=3*(i-1)+1}],S:[p,function(i){this.milliseconds=100*+i}],SS:[h,function(i){this.milliseconds=10*+i}],SSS:[/\d{3}/,function(i){this.milliseconds=+i}],s:[n,k("seconds")],ss:[n,k("seconds")],m:[n,k("minutes")],mm:[n,k("minutes")],H:[n,k("hours")],h:[n,k("hours")],HH:[n,k("hours")],hh:[n,k("hours")],D:[n,k("day")],DD:[h,k("day")],Do:[s,function(i){var H=c.ordinal,y=i.match(/\d+/);if(this.day=y[0],H)for(var L=1;L<=31;L+=1)H(L).replace(/\[|\]/g,"")===i&&(this.day=L)}],w:[n,k("week")],ww:[h,k("week")],M:[n,k("month")],MM:[h,k("month")],MMM:[s,function(i){var H=N("months"),y=(N("monthsShort")||H.map(function(L){return L.slice(0,3)})).indexOf(i)+1;if(y<1)throw new Error;this.month=y%12||y}],MMMM:[s,function(i){var H=N("months").indexOf(i)+1;if(H<1)throw new Error;this.month=H%12||H}],Y:[/[+-]?\d+/,k("year")],YY:[h,function(i){this.year=D(i)}],YYYY:[/\d{4}/,k("year")],Z:u,ZZ:u};function v(i){var H,y;H=i,y=c&&c.formats;for(var L=(i=H.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(Y,K,O){var te=O&&O.toUpperCase();return K||y[O]||r[O]||y[te].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(ue,d,a){return d||a.slice(1)})})).match(m),W=L.length,z=0;z<W;z+=1){var ee=L[z],oe=S[ee],j=oe&&oe[0],ne=oe&&oe[1];L[z]=ne?{regex:j,parser:ne}:ee.replace(/^\[|\]$/g,"")}return function(Y){for(var K={},O=0,te=0;O<W;O+=1){var ue=L[O];if(typeof ue=="string")te+=ue.length;else{var d=ue.regex,a=ue.parser,f=Y.slice(te),l=d.exec(f)[0];a.call(K,l),Y=Y.replace(l,"")}}return function(T){var $=T.afternoon;if($!==void 0){var A=T.hours;$?A<12&&(T.hours+=12):A===12&&(T.hours=0),delete T.afternoon}}(K),K}}return function(i,H,y){y.p.customParseFormat=!0,i&&i.parseTwoDigitYear&&(D=i.parseTwoDigitYear);var L=H.prototype,W=L.parse;L.parse=function(z){var ee=z.date,oe=z.utc,j=z.args;this.$u=oe;var ne=j[1];if(typeof ne=="string"){var Y=j[2]===!0,K=j[3]===!0,O=Y||K,te=j[2];K&&(te=j[2]),c=this.$locale(),!Y&&te&&(c=y.Ls[te]),this.$d=function(f,l,T,$){try{if(["x","X"].indexOf(l)>-1)return new Date((l==="X"?1e3:1)*f);var A=v(l)(f),F=A.year,G=A.month,R=A.day,q=A.hours,me=A.minutes,ae=A.seconds,Z=A.milliseconds,fe=A.zone,B=A.week,E=new Date,Q=R||(F||G?1:E.getDate()),U=F||E.getFullYear(),J=0;F&&!G||(J=G>0?G-1:E.getMonth());var ce,ke=q||0,ge=me||0,C=ae||0,g=Z||0;return fe?new Date(Date.UTC(U,J,Q,ke,ge,C,g+60*fe.offset*1e3)):T?new Date(Date.UTC(U,J,Q,ke,ge,C,g)):(ce=new Date(U,J,Q,ke,ge,C,g),B&&(ce=$(ce).week(B).toDate()),ce)}catch{return new Date("")}}(ee,ne,oe,y),this.init(),te&&te!==!0&&(this.$L=this.locale(te).$L),O&&ee!=this.format(ne)&&(this.$d=new Date("")),c={}}else if(ne instanceof Array)for(var ue=ne.length,d=1;d<=ue;d+=1){j[1]=ne[d-1];var a=y.apply(this,j);if(a.isValid()){this.$d=a.$d,this.$L=a.$L,this.init();break}d===ue&&(this.$d=new Date(""))}else W.call(this,z)}}})}(ve)),ve.exports}var bt=wt();const St=Ke(bt);var He={exports:{}},Dt=He.exports,ot;function Tt(){return ot||(ot=1,function(t,o){(function(r,m){t.exports=m(b)})(Dt,function(r){function m(n){return n&&typeof n=="object"&&"default"in n?n:{default:n}}var p=m(r),h={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(n,s){return s==="W"?n+"周":n+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(n,s){var c=100*n+s;return c<600?"凌晨":c<900?"早上":c<1100?"上午":c<1300?"中午":c<1800?"下午":"晚上"}};return p.default.locale(h,null,!0),h})}(He)),He.exports}Tt();var Ye={exports:{}},Et=Ye.exports,nt;function Mt(){return nt||(nt=1,function(t,o){(function(r,m){t.exports=m()})(Et,function(){return{name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(r){var m=["th","st","nd","rd"],p=r%100;return"["+r+(m[(p-20)%10]||m[p]||m[0])+"]"}}})}(Ye)),Ye.exports}Mt();var ze={exports:{}},$t=ze.exports,at;function Vt(){return at||(at=1,function(t,o){(function(r,m){t.exports=m(b)})($t,function(r){function m(n){return n&&typeof n=="object"&&"default"in n?n:{default:n}}var p=m(r),h={name:"ja",weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(n){return n+"日"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日(ddd) HH:mm"},meridiem:function(n){return n<12?"午前":"午後"},relativeTime:{future:"%s後",past:"%s前",s:"数秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}};return p.default.locale(h,null,!0),h})}(ze)),ze.exports}Vt();var Ie={exports:{}},Nt=Ie.exports,rt;function Lt(){return rt||(rt=1,function(t,o){(function(r,m){t.exports=m(b)})(Nt,function(r){function m(n){return n&&typeof n=="object"&&"default"in n?n:{default:n}}var p=m(r),h={name:"ko",weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),ordinal:function(n){return n+"일"},formats:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},meridiem:function(n){return n<12?"오전":"오후"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"}};return p.default.locale(h,null,!0),h})}(Ie)),Ie.exports}Lt();var Re={exports:{}},At=Re.exports,it;function Bt(){return it||(it=1,function(t,o){(function(r,m){t.exports=m(b)})(At,function(r){function m(n){return n&&typeof n=="object"&&"default"in n?n:{default:n}}var p=m(r),h={name:"fr",weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinal:function(n){return""+n+(n===1?"er":"")}};return p.default.locale(h,null,!0),h})}(Re)),Re.exports}Bt();var Pe={exports:{}},Ft=Pe.exports,lt;function vt(){return lt||(lt=1,function(t,o){(function(r,m){t.exports=m(b)})(Ft,function(r){function m(c){return c&&typeof c=="object"&&"default"in c?c:{default:c}}var p=m(r),h={s:"ein paar Sekunden",m:["eine Minute","einer Minute"],mm:"%d Minuten",h:["eine Stunde","einer Stunde"],hh:"%d Stunden",d:["ein Tag","einem Tag"],dd:["%d Tage","%d Tagen"],M:["ein Monat","einem Monat"],MM:["%d Monate","%d Monaten"],y:["ein Jahr","einem Jahr"],yy:["%d Jahre","%d Jahren"]};function n(c,D,k){var u=h[k];return Array.isArray(u)&&(u=u[D?0:1]),u.replace("%d",c)}var s={name:"de",weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sept._Okt._Nov._Dez.".split("_"),ordinal:function(c){return c+"."},weekStart:1,yearStart:4,formats:{LTS:"HH:mm:ss",LT:"HH:mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},relativeTime:{future:"in %s",past:"vor %s",s:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n}};return p.default.locale(s,null,!0),s})}(Pe)),Pe.exports}vt();var Oe={exports:{}},Ht=Oe.exports,st;function Yt(){return st||(st=1,function(t,o){(function(r,m){t.exports=m(b)})(Ht,function(r){function m(n){return n&&typeof n=="object"&&"default"in n?n:{default:n}}var p=m(r),h={name:"es",monthsShort:"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},ordinal:function(n){return n+"º"}};return p.default.locale(h,null,!0),h})}(Oe)),Oe.exports}Yt();var _e={exports:{}},zt=_e.exports,dt;function It(){return dt||(dt=1,function(t,o){(function(r,m){t.exports=m(b)})(zt,function(r){function m(S){return S&&typeof S=="object"&&"default"in S?S:{default:S}}var p=m(r),h="января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),n="январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),s="янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),c="янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_"),D=/D[oD]?(\[[^[\]]*\]|\s)+MMMM?/;function k(S,v,i){var H,y;return i==="m"?v?"минута":"минуту":S+" "+(H=+S,y={mm:v?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"}[i].split("_"),H%10==1&&H%100!=11?y[0]:H%10>=2&&H%10<=4&&(H%100<10||H%100>=20)?y[1]:y[2])}var u=function(S,v){return D.test(v)?h[S.month()]:n[S.month()]};u.s=n,u.f=h;var N=function(S,v){return D.test(v)?s[S.month()]:c[S.month()]};N.s=c,N.f=s;var _={name:"ru",weekdays:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),weekdaysShort:"вск_пнд_втр_срд_чтв_птн_сбт".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),months:u,monthsShort:N,weekStart:1,yearStart:4,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",m:k,mm:k,h:"час",hh:k,d:"день",dd:k,M:"месяц",MM:k,y:"год",yy:k},ordinal:function(S){return S},meridiem:function(S){return S<4?"ночи":S<12?"утра":S<17?"дня":"вечера"}};return p.default.locale(_,null,!0),_})}(_e)),_e.exports}It();const Rt=Symbol("SetBarColor"),Pt=Symbol("AddRootTask"),je={SetBarColorSymbol:Rt,AddRootTaskSymbol:Pt};var X=(t=>(t.FINISH_TO_START="finish-to-start",t.START_TO_START="start-to-start",t.FINISH_TO_FINISH="finish-to-finish",t.START_TO_FINISH="start-to-finish",t.PARENT_CHILD="parent-child",t))(X||{}),pe=(t=>(t.STRAIGHT="straight",t.BEZIER="bezier",t.RIGHT_ANGLE="right-angle",t))(pe||{});const Ae={default:{color:"#3498db",width:2,dashArray:void 0,showArrow:!0,arrowColor:void 0,arrowSize:8,showLabels:!1,labelColor:"#666",labelFontSize:12,cornerRadius:5,pathType:pe.BEZIER,bezierCurvature:.4,rightAngleOffset:30,smoothCorners:!0,enableDashAnimation:!0,dashAnimationSpeed:.8,parentChildStyle:{color:"#95a5a6",width:1,dashArray:"3,3"},linkTypeColors:{finishToStart:"#3498db",startToStart:"#2ecc71",finishToFinish:"#e74c3c",startToFinish:"#f39c12"},linkTypeVisibility:{finishToStart:!0,startToStart:!0,finishToFinish:!0,startToFinish:!0,parentChild:!0}},business:{color:"#2c3e50",width:2,dashArray:void 0,showArrow:!0,arrowColor:"#e74c3c",arrowSize:10,showLabels:!0,labelColor:"#34495e",labelFontSize:11,cornerRadius:8,pathType:pe.RIGHT_ANGLE,bezierCurvature:.3,rightAngleOffset:40,smoothCorners:!0,enableDashAnimation:!0,dashAnimationSpeed:.6,parentChildStyle:{color:"#7f8c8d",width:2,dashArray:"5,2"},linkTypeColors:{finishToStart:"#2c3e50",startToStart:"#27ae60",finishToFinish:"#c0392b",startToFinish:"#d35400"},linkTypeVisibility:{finishToStart:!0,startToStart:!0,finishToFinish:!0,startToFinish:!0,parentChild:!0}},modern:{color:"#00bcd4",width:3,dashArray:void 0,showArrow:!0,arrowColor:"#ff5722",arrowSize:12,showLabels:!1,labelColor:"#607d8b",labelFontSize:12,cornerRadius:10,pathType:pe.BEZIER,bezierCurvature:.6,rightAngleOffset:50,smoothCorners:!0,enableDashAnimation:!0,dashAnimationSpeed:1,parentChildStyle:{color:"#90a4ae",width:2,dashArray:"8,4"},linkTypeColors:{finishToStart:"#00bcd4",startToStart:"#4caf50",finishToFinish:"#f44336",startToFinish:"#ff9800"},linkTypeVisibility:{finishToStart:!0,startToStart:!0,finishToFinish:!0,startToFinish:!0,parentChild:!0}},minimal:{color:"#666",width:1,dashArray:void 0,showArrow:!1,arrowColor:void 0,arrowSize:6,showLabels:!1,labelColor:"#999",labelFontSize:10,cornerRadius:3,pathType:pe.STRAIGHT,bezierCurvature:.2,rightAngleOffset:20,smoothCorners:!1,enableDashAnimation:!1,dashAnimationSpeed:.8,parentChildStyle:{color:"#ccc",width:1,dashArray:"2,2"},linkTypeColors:{finishToStart:"#666",startToStart:"#888",finishToFinish:"#555",startToFinish:"#777"},linkTypeVisibility:{finishToStart:!0,startToStart:!0,finishToFinish:!0,startToFinish:!0,parentChild:!0}},colorful:{color:"#9c27b0",width:2,dashArray:void 0,showArrow:!0,arrowColor:"#ff9800",arrowSize:9,showLabels:!0,labelColor:"#673ab7",labelFontSize:11,cornerRadius:6,pathType:pe.RIGHT_ANGLE,bezierCurvature:.5,rightAngleOffset:35,smoothCorners:!0,enableDashAnimation:!0,dashAnimationSpeed:1,parentChildStyle:{color:"#4caf50",width:2,dashArray:"4,3"},linkTypeColors:{finishToStart:"#9c27b0",startToStart:"#4caf50",finishToFinish:"#e91e63",startToFinish:"#ff9800"},linkTypeVisibility:{finishToStart:!0,startToStart:!0,finishToFinish:!0,startToFinish:!0,parentChild:!0}}},ct={[X.FINISH_TO_START]:{name:"完成-开始",description:"前置任务完成后,后续任务才能开始",color:"#3498db",priority:1},[X.START_TO_START]:{name:"开始-开始",description:"两个任务同时开始",color:"#2ecc71",priority:2},[X.FINISH_TO_FINISH]:{name:"完成-完成",description:"两个任务同时完成",color:"#e74c3c",priority:3},[X.START_TO_FINISH]:{name:"开始-完成",description:"前置任务开始后,后续任务才能完成",color:"#f39c12",priority:4},[X.PARENT_CHILD]:{name:"父子关系",description:"显示任务的层级关系",color:"#95a5a6",priority:0}};class Ot{constructor(){De(this,"config",e.reactive({...Ae.default}));De(this,"STORAGE_KEY","gantt-link-config");this.loadFromStorage()}loadFromStorage(){try{const o=localStorage.getItem(this.STORAGE_KEY);if(o){const r=JSON.parse(o);Object.assign(this.config,r)}}catch(o){console.warn("加载连线配置失败,使用默认配置:",o)}}saveToStorage(){try{localStorage.setItem(this.STORAGE_KEY,JSON.stringify(this.config))}catch(o){console.warn("保存连线配置失败:",o)}}getConfig(){return this.config}setTheme(o){Object.assign(this.config,Ae[o]),this.saveToStorage()}updateConfig(o){Object.assign(this.config,o),this.saveToStorage()}reset(){Object.assign(this.config,Ae.default),this.saveToStorage()}getLinkStyle(o){const r=ct[o];return o===X.PARENT_CHILD?{color:this.config.parentChildStyle.color,width:this.config.parentChildStyle.width,dashArray:this.config.parentChildStyle.dashArray}:{color:r.color,width:this.config.width,dashArray:this.config.dashArray}}exportConfig(){return JSON.stringify(this.config,null,2)}importConfig(o){try{const r=JSON.parse(o);return this.updateConfig(r),!0}catch(r){return console.error("导入配置失败:",r),!1}}clearStorage(){try{localStorage.removeItem(this.STORAGE_KEY),this.reset()}catch(o){console.warn("清除配置失败:",o)}}}const Ce=new Ot;function Be(){return{config:Ce.getConfig(),setTheme:Ce.setTheme.bind(Ce),updateConfig:Ce.updateConfig.bind(Ce),reset:Ce.reset.bind(Ce),getLinkStyle:Ce.getLinkStyle.bind(Ce),exportConfig:Ce.exportConfig.bind(Ce),importConfig:Ce.importConfig.bind(Ce),clearStorage:Ce.clearStorage.bind(Ce),themes:Ae,linkTypes:ct}}class _t{constructor(){De(this,"dependencies",e.reactive([]));De(this,"STORAGE_KEY","gantt-link-dependencies");this.loadFromStorage()}loadFromStorage(){try{const o=localStorage.getItem(this.STORAGE_KEY);if(o){const r=JSON.parse(o);this.dependencies.splice(0,this.dependencies.length,...r)}}catch(o){console.warn("加载连线依赖关系失败:",o)}}saveToStorage(){try{localStorage.setItem(this.STORAGE_KEY,JSON.stringify(this.dependencies))}catch(o){console.warn("保存连线依赖关系失败:",o)}}addDependency(o){const r=`link-${Date.now()}-${Math.random().toString(36).substring(2,11)}`;return this.dependencies.push({...o,id:r}),this.saveToStorage(),r}removeDependency(o){const r=this.dependencies.findIndex(m=>m.id===o);return r>-1?(this.dependencies.splice(r,1),this.saveToStorage(),!0):!1}getDependencies(){return this.dependencies}getTaskDependencies(o){return this.dependencies.filter(r=>r.sourceTaskId===o||r.targetTaskId===o)}clear(){this.dependencies.splice(0),this.saveToStorage()}clearStorage(){try{localStorage.removeItem(this.STORAGE_KEY),this.clear()}catch(o){console.warn("清除依赖关系失败:",o)}}wouldCreateCycle(o,r){const m=new Set,p=new Set,h=s=>{if(p.has(s))return!0;if(m.has(s))return!1;m.add(s),p.add(s);const c=this.dependencies.filter(D=>D.sourceTaskId===s);for(const D of c)if(h(D.targetTaskId))return!0;return p.delete(s),!1};this.dependencies.push({id:"temp",sourceTaskId:o,targetTaskId:r,type:X.FINISH_TO_START});const n=h(o);return this.dependencies.pop(),n}}const Ge=new _t,Qe={"zh-CN":{common:{confirm:"确定",cancel:"取消",save:"保存",delete:"删除",edit:"编辑",add:"添加",close:"关闭",export:"导出",import:"导入",config:"配置",settings:"设置",theme:"主题",to:"至",selectDate:"请选择日期"},date:{year:"年",month:"月",day:"日",hour:"时",week:"周",today:"今天",monday:"一",tuesday:"二",wednesday:"三",thursday:"四",friday:"五",saturday:"六",sunday:"日",january:"一月",february:"二月",march:"三月",april:"四月",may:"五月",june:"六月",july:"七月",august:"八月",september:"九月",october:"十月",november:"十一月",december:"十二月"},dateFormat:{full:"YYYY年MM月DD日",short:"YYYY-MM-DD",monthDay:"MM月DD日",yearMonth:"YYYY年MM月"},viewMode:{month:"月",week:"周",day:"日",hour:"时"},task:{addRoot:"添加根任务",addSub:"添加子任务",remove:"删除任务",edit:"编辑任务",name:"任务名称",priority:"优先级",startDate:"开始时间",endDate:"结束时间",duration:"耗时",progress:"进度",serialNumber:"序号"},link:{legend:"连线图例",parentChild:"父子关系",finishToStart:"完成-开始",startToStart:"开始-开始",finishToFinish:"完成-完成",startToFinish:"开始-完成",fs:"FS",ss:"SS",ff:"FF",sf:"SF",pc:"PC"},configPanel:{title:"甘特图配置",themeSettings:"主题设置",linkSettings:"连线设置",languageSettings:"语言设置",currentTheme:"当前",previewTheme:"预览",exportConfig:"导出配置",importConfig:"导入配置",linkConfig:{info:"以下配置用于任务依赖连线(完成-开始、开始-开始等关系)",pathType:"路径类型",straight:"直线",bezier:"贝塞尔",rightAngle:"直角",color:"颜色",width:"线宽",dashStyle:"虚线样式",solid:"实线",shortDash:"短虚线",mediumDash:"中虚线",longDash:"长虚线",dotDash:"点划线",curvature:"弯曲度",offset:"偏移距离",smoothCorners:"平滑转角",cornerRadius:"转角半径",showArrow:"显示箭头",arrowSize:"箭头大小",arrowColor:"箭头颜色",syncColor:"同步",dashAnimation:"虚线流动动画",animationSpeed:"动画速度",showLabels:"显示标签",labelColor:"标签颜色",fontSize:"字体大小",typeColors:"依赖类型颜色",parentChildStyle:"父子关系连线样式",parentChildInfo:"用于显示父任务与子任务之间的层级结构关系"}},theme:{metro:"Metro 金属质感",light:"浅色主题",dark:"深色主题",colorful:"多彩主题",ocean:"海洋主题",apple:"Apple 苹果风格",classic:"经典商务",metroDesc:"经典 Windows Metro 风格",lightDesc:"清爽明亮的浅色风格",darkDesc:"优雅专业的深色风格",colorfulDesc:"活力四射的多彩风格",oceanDesc:"沉静舒适的海洋风格",appleDesc:"简约优雅的 macOS 风格",classicDesc:"传统稳重的商务风格"},datePicker:{selectDate:"请选择日期",clearDate:"清除日期"},tooltip:{addSubTask:"添加子任务",removeTask:"删除当前任务",syncArrowColor:"与线条颜色同步",close:"关闭"}},"en-US":{common:{confirm:"Confirm",cancel:"Cancel",save:"Save",delete:"Delete",edit:"Edit",add:"Add",close:"Close",export:"Export",import:"Import",config:"Config",settings:"Settings",theme:"Theme",to:"to",selectDate:"Select Date"},date:{year:"Year",month:"Month",day:"Day",hour:"Hour",week:"Week",today:"Today",monday:"Mon",tuesday:"Tue",wednesday:"Wed",thursday:"Thu",friday:"Fri",saturday:"Sat",sunday:"Sun",january:"January",february:"February",march:"March",april:"April",may:"May",june:"June",july:"July",august:"August",september:"September",october:"October",november:"November",december:"December"},dateFormat:{full:"MMMM DD, YYYY",short:"MM/DD/YYYY",monthDay:"MMM DD",yearMonth:"MMMM YYYY"},viewMode:{month:"Month",week:"Week",day:"Day",hour:"Hour"},task:{addRoot:"Add Root Task",addSub:"Add Sub Task",remove:"Delete Task",edit:"Edit Task",name:"Task Name",priority:"Priority",startDate:"Start Date",endDate:"End Date",duration:"Duration",progress:"Progress",serialNumber:"No."},link:{legend:"Link Legend",parentChild:"Parent-Child",finishToStart:"Finish-to-Start",startToStart:"Start-to-Start",finishToFinish:"Finish-to-Finish",startToFinish:"Start-to-Finish",fs:"FS",ss:"SS",ff:"FF",sf:"SF",pc:"PC"},configPanel:{title:"Gantt Configuration",themeSettings:"Theme Settings",linkSettings:"Link Settings",languageSettings:"Language Settings",currentTheme:"Current",previewTheme:"Preview",exportConfig:"Export Config",importConfig:"Import Config",linkConfig:{info:"Configure task dependency links (Finish-to-Start, Start-to-Start, etc.)",pathType:"Path Type",straight:"Straight",bezier:"Bezier",rightAngle:"Right Angle",color:"Color",width:"Line Width",dashStyle:"Dash Style",solid:"Solid",shortDash:"Short Dash",mediumDash:"Medium Dash",longDash:"Long Dash",dotDash:"Dot Dash",curvature:"Curvature",offset:"Offset Distance",smoothCorners:"Smooth Corners",cornerRadius:"Corner Radius",showArrow:"Show Arrow",arrowSize:"Arrow Size",arrowColor:"Arrow Color",syncColor:"Sync",dashAnimation:"Dash Animation",animationSpeed:"Animation Speed",showLabels:"Show Labels",labelColor:"Label Color",fontSize:"Font Size",typeColors:"Dependency Type Colors",parentChildStyle:"Parent-Child Link Style",parentChildInfo:"Display hierarchical relationship between parent and child tasks"}},theme:{metro:"Metro",light:"Light",dark:"Dark",colorful:"Colorful",ocean:"Ocean",apple:"Apple",classic:"Classic",metroDesc:"Classic Windows Metro style",lightDesc:"Fresh and bright light style",darkDesc:"Elegant and professional dark style",colorfulDesc:"Vibrant and colorful style",oceanDesc:"Calm and comfortable ocean style",appleDesc:"Minimalist and elegant macOS style",classicDesc:"Traditional and stable business style"},datePicker:{selectDate:"Select Date",clearDate:"Clear Date"},tooltip:{addSubTask:"Add Sub Task",removeTask:"Delete Current Task",syncArrowColor:"Sync with line color",close:"Close"}},"ja-JP":{common:{confirm:"確認",cancel:"キャンセル",save:"保存",delete:"削除",edit:"編集",add:"追加",close:"閉じる",export:"エクスポート",import:"インポート",config:"設定",settings:"設定",theme:"テーマ",to:"から",selectDate:"日付を選択"},date:{year:"年",month:"月",day:"日",hour:"時",week:"週",today:"今日",monday:"月",tuesday:"火",wednesday:"水",thursday:"木",friday:"金",saturday:"土",sunday:"日",january:"1月",february:"2月",march:"3月",april:"4月",may:"5月",june:"6月",july:"7月",august:"8月",september:"9月",october:"10月",november:"11月",december:"12月"},dateFormat:{full:"YYYY年MM月DD日",short:"YYYY/MM/DD",monthDay:"MM月DD日",yearMonth:"YYYY年MM月"},viewMode:{month:"月",week:"週",day:"日",hour:"時"},task:{addRoot:"ルートタスクを追加",addSub:"サブタスクを追加",remove:"タスクを削除",edit:"タスクを編集",name:"タスク名",priority:"優先度",startDate:"開始日",endDate:"終了日",duration:"期間",progress:"進捗",serialNumber:"番号"},link:{legend:"リンク凡例",parentChild:"親子関係",finishToStart:"終了-開始",startToStart:"開始-開始",finishToFinish:"終了-終了",startToFinish:"開始-終了",fs:"FS",ss:"SS",ff:"FF",sf:"SF",pc:"PC"},configPanel:{title:"ガントチャート設定",themeSettings:"テーマ設定",linkSettings:"リンク設定",languageSettings:"言語設定",currentTheme:"現在",previewTheme:"プレビュー",exportConfig:"設定をエクスポート",importConfig:"設定をインポート",linkConfig:{info:"タスク依存関係リンク(終了-開始、開始-開始など)を設定",pathType:"パスタイプ",straight:"直線",bezier:"ベジェ曲線",rightAngle:"直角",color:"色",width:"線の太さ",dashStyle:"破線スタイル",solid:"実線",shortDash:"短い破線",mediumDash:"中破線",longDash:"長い破線",dotDash:"点線破線",curvature:"曲率",offset:"オフセット距離",smoothCorners:"滑らかな角",cornerRadius:"角の半径",showArrow:"矢印を表示",arrowSize:"矢印サイズ",arrowColor:"矢印の色",syncColor:"同期",dashAnimation:"破線アニメーション",animationSpeed:"アニメーション速度",showLabels:"ラベルを表示",labelColor:"ラベルの色",fontSize:"フォントサイズ",typeColors:"依存関係タイプの色",parentChildStyle:"親子リンクスタイル",parentChildInfo:"親タスクと子タスクの階層関係を表示"}},theme:{metro:"メトロ",light:"ライト",dark:"ダーク",colorful:"カラフル",ocean:"オーシャン",apple:"Apple",classic:"クラシック",metroDesc:"クラシックWindowsメトロスタイル",lightDesc:"明るく爽やかなライトスタイル",darkDesc:"エレガントでプロフェッショナルなダークスタイル",colorfulDesc:"活気あるカラフルスタイル",oceanDesc:"落ち着いた快適なオーシャンスタイル",appleDesc:"ミニマルでエレガントなmacOSスタイル",classicDesc:"伝統的で安定感のあるビジネススタイル"},datePicker:{selectDate:"日付を選択",clearDate:"日付をクリア"},tooltip:{addSubTask:"サブタスクを追加",removeTask:"現在のタスクを削除",syncArrowColor:"線の色と同期",close:"閉じる"}},"ko-KR":{common:{confirm:"확인",cancel:"취소",save:"저장",delete:"삭제",edit:"편집",add:"추가",close:"닫기",export:"내보내기",import:"가져오기",config:"설정",settings:"설정",theme:"테마",to:"에서",selectDate:"날짜 선택"},date:{year:"년",month:"월",day:"일",hour:"시",week:"주",today:"오늘",monday:"월",tuesday:"화",wednesday:"수",thursday:"목",friday:"금",saturday:"토",sunday:"일",january:"1월",february:"2월",march:"3월",april:"4월",may:"5월",june:"6월",july:"7월",august:"8월",september:"9월",october:"10월",november:"11월",december:"12월"},dateFormat:{full:"YYYY년 MM월 DD일",short:"YYYY-MM-DD",monthDay:"MM월 DD일",yearMonth:"YYYY년 MM월"},viewMode:{month:"월",week:"주",day:"일",hour:"시"},task:{addRoot:"루트 작업 추가",addSub:"하위 작업 추가",remove:"작업 삭제",edit:"작업 편집",name:"작업 이름",priority:"우선순위",startDate:"시작일",endDate:"종료일",duration:"기간",progress:"진행률",serialNumber:"번호"},link:{legend:"링크 범례",parentChild:"부모-자식",finishToStart:"종료-시작",startToStart:"시작-시작",finishToFinish:"종료-종료",startToFinish:"시작-종료",fs:"FS",ss:"SS",ff:"FF",sf:"SF",pc:"PC"},configPanel:{title:"간트 차트 설정",themeSettings:"테마 설정",linkSettings:"링크 설정",languageSettings:"언어 설정",currentTheme:"현재",previewTheme:"미리보기",exportConfig:"설정 내보내기",importConfig:"설정 가져오기",linkConfig:{info:"작업 종속성 링크 설정 (종료-시작, 시작-시작 등)",pathType:"경로 유형",straight:"직선",bezier:"베지어 곡선",rightAngle:"직각",color:"색상",width:"선 두께",dashStyle:"파선 스타일",solid:"실선",shortDash:"짧은 파선",mediumDash:"중간 파선",longDash:"긴 파선",dotDash:"점선 파선",curvature:"곡률",offset:"오프셋 거리",smoothCorners:"부드러운 모서리",cornerRadius:"모서리 반경",showArrow:"화살표 표시",arrowSize:"화살표 크기",arrowColor:"화살표 색상",syncColor:"동기화",dashAnimation:"파선 애니메이션",animationSpeed:"애니메이션 속도",showLabels:"레이블 표시",labelColor:"레이블 색상",fontSize:"글꼴 크기",typeColors:"종속성 유형 색상",parentChildStyle:"부모-자식 링크 스타일",parentChildInfo:"부모 작업과 자식 작업의 계층 관계 표시"}},theme:{metro:"메트로",light:"라이트",dark:"다크",colorful:"컬러풀",ocean:"오션",apple:"Apple",classic:"클래식",metroDesc:"클래식 Windows 메트로 스타일",lightDesc:"밝고 상쾌한 라이트 스타일",darkDesc:"우아하고 전문적인 다크 스타일",colorfulDesc:"활기찬 컬러풀 스타일",oceanDesc:"차분하고 편안한 오션 스타일",appleDesc:"미니멀하고 우아한 macOS 스타일",classicDesc:"전통적이고 안정적인 비즈니스 스타일"},datePicker:{selectDate:"날짜 선택",clearDate:"날짜 지우기"},tooltip:{addSubTask:"하위 작업 추가",removeTask:"현재 작업 삭제",syncArrowColor:"선 색상과 동기화",close:"닫기"}},"fr-FR":{common:{confirm:"Confirmer",cancel:"Annuler",save:"Enregistrer",delete:"Supprimer",edit:"Modifier",add:"Ajouter",close:"Fermer",export:"Exporter",import:"Importer",config:"Configuration",settings:"Paramètres",theme:"Thème",to:"à",selectDate:"Sélectionner la date"},date:{year:"Année",month:"Mois",day:"Jour",hour:"Heure",week:"Semaine",today:"Aujourd'hui",monday:"Lun",tuesday:"Mar",wednesday:"Mer",thursday:"Jeu",friday:"Ven",saturday:"Sam",sunday:"Dim",january:"Janvier",february:"Février",march:"Mars",april:"Avril",may:"Mai",june:"Juin",july:"Juillet",august:"Août",september:"Septembre",october:"Octobre",november:"Novembre",december:"Décembre"},dateFormat:{full:"DD MMMM YYYY",short:"DD/MM/YYYY",monthDay:"DD MMM",yearMonth:"MMMM YYYY"},viewMode:{month:"Mois",week:"Semaine",day:"Jour",hour:"Heure"},task:{addRoot:"Ajouter une tâche racine",addSub:"Ajouter une sous-tâche",remove:"Supprimer la tâche",edit:"Modifier la tâche",name:"Nom de la tâche",priority:"Priorité",startDate:"Date de début",endDate:"Date de fin",duration:"Durée",progress:"Progrès",serialNumber:"N°"},link:{legend:"Légende des liens",parentChild:"Parent-Enfant",finishToStart:"Fin-Début",startToStart:"Début-Début",finishToFinish:"Fin-Fin",startToFinish:"Début-Fin",fs:"FD",ss:"DD",ff:"FF",sf:"DF",pc:"PE"},configPanel:{title:"Configuration Gantt",themeSettings:"Paramètres du thème",linkSettings:"Paramètres des liens",languageSettings:"Paramètres de langue",currentTheme:"Actuel",previewTheme:"Aperçu",exportConfig:"Exporter la configuration",importConfig:"Importer la configuration",linkConfig:{info:"Configurer les liens de dépendance des tâches (Fin-Début, Début-Début, etc.)",pathType:"Type de chemin",straight:"Droit",bezier:"Bézier",rightAngle:"Angle droit",color:"Couleur",width:"Épaisseur de ligne",dashStyle:"Style de tiret",solid:"Solide",shortDash:"Tiret court",mediumDash:"Tiret moyen",longDash:"Tiret long",dotDash:"Point-tiret",curvature:"Courbure",offset:"Distance de décalage",smoothCorners:"Coins lisses",cornerRadius:"Rayon du coin",showArrow:"Afficher la flèche",arrowSize:"Taille de la flèche",arrowColor:"Couleur de la flèche",syncColor:"Synchroniser",dashAnimation:"Animation de tiret",animationSpeed:"Vitesse d'animation",showLabels:"Afficher les étiquettes",labelColor:"Couleur de l'étiquette",fontSize:"Taille de police",typeColors:"Couleurs des types de dépendance",parentChildStyle:"Style de lien parent-enfant",parentChildInfo:"Afficher la relation hiérarchique entre les tâches parent et enfant"}},theme:{metro:"Metro",light:"Clair",dark:"Sombre",colorful:"Coloré",ocean:"Océan",apple:"Apple",classic:"Classique",metroDesc:"Style Metro Windows classique",lightDesc:"Style clair frais et lumineux",darkDesc:"Style sombre élégant et professionnel",colorfulDesc:"Style coloré vibrant",oceanDesc:"Style océan calme et confortable",appleDesc:"Style macOS minimaliste et élégant",classicDesc:"Style business traditionnel et stable"},datePicker:{selectDate:"Sélectionner la date",clearDate:"Effacer la date"},tooltip:{addSubTask:"Ajouter une sous-tâche",removeTask:"Supprimer la tâche actuelle",syncArrowColor:"Synchroniser avec la couleur de la ligne",close:"Fermer"}},"de-DE":{common:{confirm:"Bestätigen",cancel:"Abbrechen",save:"Speichern",delete:"Löschen",edit:"Bearbeiten",add:"Hinzufügen",close:"Schließen",export:"Exportieren",import:"Importieren",config:"Konfiguration",settings:"Einstellungen",theme:"Thema",to:"bis",selectDate:"Datum auswählen"},date:{year:"Jahr",month:"Monat",day:"Tag",hour:"Stunde",week:"Woche",today:"Heute",monday:"Mo",tuesday:"Di",wednesday:"Mi",thursday:"Do",friday:"Fr",saturday:"Sa",sunday:"So",january:"Januar",february:"Februar",march:"März",april:"April",may:"Mai",june:"Juni",july:"Juli",august:"August",september:"September",october:"Oktober",november:"November",december:"Dezember"},dateFormat:{full:"DD. MMMM YYYY",short:"DD.MM.YYYY",monthDay:"DD. MMM",yearMonth:"MMMM YYYY"},viewMode:{month:"Monat",week:"Woche",day:"Tag",hour:"Stunde"},task:{addRoot:"Hauptaufgabe hinzufügen",addSub:"Unteraufgabe hinzufügen",remove:"Aufgabe löschen",edit:"Aufgabe bearbeiten",name:"Aufgabenname",priority:"Priorität",startDate:"Startdatum",endDate:"Enddatum",duration:"Dauer",progress:"Fortschritt",serialNumber:"Nr."},link:{legend:"Verknüpfungslegende",parentChild:"Übergeordnet-Untergeordnet",finishToStart:"Ende-Anfang",startToStart:"Anfang-Anfang",finishToFinish:"Ende-Ende",startToFinish:"Anfang-Ende",fs:"EA",ss:"AA",ff:"EE",sf:"AE",pc:"ÜU"},configPanel:{title:"Gantt-Konfiguration",themeSettings:"Themeneinstellungen",linkSettings:"Verknüpfungseinstellungen",languageSettings:"Spracheinstellungen",currentTheme:"Aktuell",previewTheme:"Vorschau",exportConfig:"Konfiguration exportieren",importConfig:"Konfiguration importieren",linkConfig:{info:"Aufgabenabhängigkeitsverknüpfungen konfigurieren (Ende-Anfang, Anfang-Anfang usw.)",pathType:"Pfadtyp",straight:"Gerade",bezier:"Bézier",rightAngle:"Rechter Winkel",color:"Farbe",width:"Linienstärke",dashStyle:"Strichstil",solid:"Durchgezogen",shortDash:"Kurzer Strich",mediumDash:"Mittlerer Strich",longDash:"Langer Strich",dotDash:"Punkt-Strich",curvature:"Krümmung",offset:"Versatzabstand",smoothCorners:"Glatte Ecken",cornerRadius:"Eckenradius",showArrow:"Pfeil anzeigen",arrowSize:"Pfeilgröße",arrowColor:"Pfeilfarbe",syncColor:"Synchronisieren",dashAnimation:"Strich-Animation",animationSpeed:"Animationsgeschwindigkeit",showLabels:"Beschriftungen anzeigen",labelColor:"Beschriftungsfarbe",fontSize:"Schriftgröße",typeColors:"Abhängigkeitstypfarben",parentChildStyle:"Übergeordnet-Untergeordnet-Verknüpfungsstil",parentChildInfo:"Hierarchische Beziehung zwischen übergeordneten und untergeordneten Aufgaben anzeigen"}},theme:{metro:"Metro",light:"Hell",dark:"Dunkel",colorful:"Farbenfroh",ocean:"Ozean",apple:"Apple",classic:"Klassisch",metroDesc:"Klassischer Windows Metro-Stil",lightDesc:"Frischer und heller Stil",darkDesc:"Eleganter und professioneller dunkler Stil",colorfulDesc:"Lebendiger farbenfroher Stil",oceanDesc:"Ruhiger und komfortabler Ozean-Stil",appleDesc:"Minimalistischer und eleganter macOS-Stil",classicDesc:"Traditioneller und stabiler Geschäftsstil"},datePicker:{selectDate:"Datum auswählen",clearDate:"Datum löschen"},tooltip:{addSubTask:"Unteraufgabe hinzufügen",removeTask:"Aktuelle Aufgabe löschen",syncArrowColor:"Mit Linienfarbe synchronisieren",close:"Schließen"}},"es-ES":{common:{confirm:"Confirmar",cancel:"Cancelar",save:"Guardar",delete:"Eliminar",edit:"Editar",add:"Agregar",close:"Cerrar",export:"Exportar",import:"Importar",config:"Configuración",settings:"Ajustes",theme:"Tema",to:"a",selectDate:"Seleccionar fecha"},date:{year:"Año",month:"Mes",day:"Día",hour:"Hora",week:"Semana",today:"Hoy",monday:"Lun",tuesday:"Mar",wednesday:"Mié",thursday:"Jue",friday:"Vie",saturday:"Sáb",sunday:"Dom",january:"Enero",february:"Febrero",march:"Marzo",april:"Abril",may:"Mayo",june:"Junio",july:"Julio",august:"Agosto",september:"Septiembre",october:"Octubre",november:"Noviembre",december:"Diciembre"},dateFormat:{full:"DD [de] MMMM [de] YYYY",short:"DD/MM/YYYY",monthDay:"DD MMM",yearMonth:"MMMM YYYY"},viewMode:{month:"Mes",week:"Semana",day:"Día",hour:"Hora"},task:{addRoot:"Agregar tarea raíz",addSub:"Agregar subtarea",remove:"Eliminar tarea",edit:"Editar tarea",name:"Nombre de tarea",priority:"Prioridad",startDate:"Fecha de inicio",endDate:"Fecha de fin",duration:"Duración",progress:"Progreso",serialNumber:"Nº"},link:{legend:"Leyenda de enlaces",parentChild:"Padre-Hijo",finishToStart:"Fin-Inicio",startToStart:"Inicio-Inicio",finishToFinish:"Fin-Fin",startToFinish:"Inicio-Fin",fs:"FI",ss:"II",ff:"FF",sf:"IF",pc:"PH"},configPanel:{title:"Configuración Gantt",themeSettings:"Configuración de tema",linkSettings:"Configuración de enlaces",languageSettings:"Configuración de idioma",currentTheme:"Actual",previewTheme:"Vista previa",exportConfig:"Exportar configuración",importConfig:"Importar configuración",linkConfig:{info:"Configurar enlaces de dependencia de tareas (Fin-Inicio, Inicio-Inicio, etc.)",pathType:"Tipo de ruta",straight:"Recta",bezier:"Bézier",rightAngle:"Ángulo recto",color:"Color",width:"Grosor de línea",dashStyle:"Estilo de guión",solid:"Sólido",shortDash:"Guión corto",mediumDash:"Guión medio",longDash:"Guión largo",dotDash:"Punto-guión",curvature:"Curvatura",offset:"Distancia de desplazamiento",smoothCorners:"Esquinas suaves",cornerRadius:"Radio de esquina",showArrow:"Mostrar flecha",arrowSize:"Tamaño de flecha",arrowColor:"Color de flecha",syncColor:"Sincronizar",dashAnimation:"Animación de guión",animationSpeed:"Velocidad de animación",showLabels:"Mostrar etiquetas",labelColor:"Color de etiqueta",fontSize:"Tamaño de fuente",typeColors:"Colores de tipo de dependencia",parentChildStyle:"Estilo de enlace padre-hijo",parentChildInfo:"Mostrar relación jerárquica entre tareas padre e hijo"}},theme:{metro:"Metro",light:"Claro",dark:"Oscuro",colorful:"Colorido",ocean:"Océano",apple:"Apple",classic:"Clásico",metroDesc:"Estilo Metro Windows clásico",lightDesc:"Estilo claro fresco y brillante",darkDesc:"Estilo oscuro elegante y profesional",colorfulDesc:"Estilo colorido vibrante",oceanDesc:"Estilo océano tranquilo y cómodo",appleDesc:"Estilo macOS minimalista y elegante",classicDesc:"Estilo empresarial tradicional y estable"},datePicker:{selectDate:"Seleccionar fecha",clearDate:"Borrar fecha"},tooltip:{addSubTask:"Agregar subtarea",removeTask:"Eliminar tarea actual",syncArrowColor:"Sincronizar con color de línea",close:"Cerrar"}},"ru-RU":{common:{confirm:"Подтвердить",cancel:"Отмена",save:"Сохранить",delete:"Удалить",edit:"Редактировать",add:"Добавить",close:"Закрыть",export:"Экспорт",import:"Импорт",config:"Конфигурация",settings:"Настройки",theme:"Тема",to:"до",selectDate:"Выбрать дату"},date:{year:"Год",month:"Месяц",day:"День",hour:"Час",week:"Неделя",today:"Сегодня",monday:"Пн",tuesday:"Вт",wednesday:"Ср",thursday:"Чт",friday:"Пт",saturday:"Сб",sunday:"Вс",january:"Январь",february:"Февраль",march:"Март",april:"Апрель",may:"Май",june:"Июнь",july:"Июль",august:"Август",september:"Сентябрь",october:"Октябрь",november:"Ноябрь",december:"Декабрь"},dateFormat:{full:"DD MMMM YYYY г.",short:"DD.MM.YYYY",monthDay:"DD MMM",yearMonth:"MMMM YYYY"},viewMode:{month:"Месяц",week:"Неделя",day:"День",hour:"Час"},task:{addRoot:"Добавить корневую задачу",addSub:"Добавить подзадачу",remove:"Удалить задачу",edit:"Редактировать задачу",name:"Название задачи",priority:"Приоритет",startDate:"Дата начала",endDate:"Дата окончания",duration:"Длительность",progress:"Прогресс",serialNumber:"№"},link:{legend:"Легенда связей",parentChild:"Родитель-Потомок",finishToStart:"Окончание-Начало",startToStart:"Начало-Начало",finishToFinish:"Окончание-Окончание",startToFinish:"Начало-Окончание",fs:"ОН",ss:"НН",ff:"ОО",sf:"НО",pc:"РП"},configPanel:{title:"Конфигурация Gantt",themeSettings:"Настройки темы",linkSettings:"Настройки связей",languageSettings:"Настройки языка",currentTheme:"Текущая",previewTheme:"Предпросмотр",exportConfig:"Экспорт конфигурации",importConfig:"Импорт конфигурации",linkConfig:{info:"Настройка связей зависимостей задач (Окончание-Начало, Начало-Начало и т.д.)",pathType:"Тип пути",straight:"Прямая",bezier:"Безье",rightAngle:"Прямой угол",color:"Цвет",width:"Толщина линии",dashStyle:"Стиль пунктира",solid:"Сплошная",shortDash:"Короткий пунктир",mediumDash:"Средний пунктир",longDash:"Длинный пунктир",dotDash:"Точка-тире",curvature:"Кривизна",offset:"Расстояние смещения",smoothCorners:"Сглаженные углы",cornerRadius:"Радиус угла",showArrow:"Показать стрелку",arrowSize:"Размер стрелки",arrowColor:"Цвет стрелки",syncColor:"Синхронизировать",dashAnimation:"Анимация пунктира",animationSpeed:"Скорость анимации",showLabels:"Показать метки",labelColor:"Цвет метки",fontSize:"Размер шрифта",typeColors:"Цвета типов зависимостей",parentChildStyle:"Стиль связи родитель-потомок",parentChildInfo:"Показать иерархическую связь между родительскими и дочерними задачами"}},theme:{metro:"Метро",light:"Светлая",dark:"Темная",colorful:"Красочная",ocean:"Океан",apple:"Apple",classic:"Классический",metroDesc:"Классический стиль Windows Metro",lightDesc:"Свежий и яркий светлый стиль",darkDesc:"Элегантный и профессиональный темный стиль",colorfulDesc:"Яркий красочный стиль",oceanDesc:"Спокойный и комфортный океанский стиль",appleDesc:"Минималистичный и элегантный стиль macOS",classicDesc:"Традиционный и стабильный деловой стиль"},datePicker:{selectDate:"Выбрать дату",clearDate:"Очистить дату"},tooltip:{addSubTask:"Добавить подзадачу",removeTask:"Удалить текущую задачу",syncArrowColor:"Синхронизировать с цветом линии",close:"Закрыть"}}},Fe=e.ref("zh-CN"),Ze=localStorage.getItem("gantt-locale");Ze&&Qe[Ze]&&(Fe.value=Ze);function Gt(t){const o=t.split(".");let r=Qe[Fe.value];for(const m of o)if(r&&typeof r=="object")r=r[m];else return t;return typeof r=="string"?r:t}function mt(t){Qe[t]&&(Fe.value=t,localStorage.setItem("gantt-locale",t))}function Wt(){return Fe.value}function Ut(){return[{value:"zh-CN",label:"🇨🇳 简体中文"},{value:"en-US",label:"🇺🇸 English"},{value:"ja-JP",label:"🇯🇵 日本語"},{value:"ko-KR",label:"🇰🇷 한국어"},{value:"fr-FR",label:"🇫🇷 Français"},{value:"de-DE",label:"🇩🇪 Deutsch"},{value:"es-ES",label:"🇪🇸 Español"},{value:"ru-RU",label:"🇷🇺 Русский"}]}function Me(){return{locale:e.computed(()=>Fe.value),t:Gt,setLocale:mt,getLocale:Wt,getLocales:Ut}}const qt=e.defineComponent({props:{date:{type:String,required:!0},minDate:String,maxDate:String},setup(t,{emit:o}){const{t:r,locale:m}=Me(),p=()=>({"zh-CN":"zh-cn","en-US":"en","ja-JP":"ja","ko-KR":"ko","fr-FR":"fr","de-DE":"de","es-ES":"es","ru-RU":"ru"})[m.value]||"en",h=e.computed(()=>{const g=p(),M=[];for(let I=1;I<=7;I++){const V=b().day(I).locale(g);M.push(V.format("dd"))}return M}),n=g=>{const M=p();return b().month(g-1).locale(M).format("MMMM")};let s=e.ref({year:0,month:0,day:0,week:0,date:"",weekStr:"",monthStr:""}),c=e.ref({year:0,month:0,day:0,week:0,date:"",monthStr:"",weekStr:""}),D=e.ref({year:0,month:0,day:0}),k=e.ref({year:0,month:0,day:0});const u=e.ref("fadeX_Prev"),N=e.ref(!1),_=e.ref(!1),S=e.ref(!1),v=e.ref(!1),i=e.ref(null),H=e.ref(null),y=e.ref(!1),L=e.ref(""),W=e.ref(null),z=e.ref(null),ee=e.ref(-1),oe=e.ref(-1),j=e.ref({row:-1,col:-1}),ne=e.computed(()=>{const g=[];for(let M=D.value.year;M<=k.value.year;M+=1)g.push(M);return g}),Y=e.computed(()=>{const g=[];for(let M=1;M<=12;M+=1)g.push(M);return g}),K=e.computed(()=>{const{year:g,month:M}=c.value,I=new Date(g,M,0).getDate(),V=[];let x=[],de;for(let P=1;P<=I;P+=1)de=new Date(g,M-1,P).getDay()+1,P===1&&de!==1?(d(x,de),a(x,P)):(a(x,P),P===I&&de!==7&&d(x,7-de+1)),(de%7===0||P===I)&&(V.push(x),x=[]);return c.value.monthStr=n(c.value.month),V}),O=g=>g>9?String(g):`0${g}`,te=(g,M=!1)=>{let I={year:0,month:0,day:0};const V=g.split("-");try{if(!V||V.length<3)throw new Error("时间格式不正确");if(I={year:Number(V[0]),month:Number(V[1]),day:Number(V[2])},M){I.week=new Date(I.year,I.month-1,I.day).getDay()+1,I.monthStr=n(I.month);const x=p();I.weekStr=b().day(I.week).locale(x).format("dddd")}}catch(x){console.error(x)}return I},ue=()=>{const g=te(t.date,!0);c.value={...g,date:`${g.year}-${O(g.month)}-${O(g.day)}`,week:g.week||0,monthStr:g.monthStr||"",weekStr:g.weekStr||""},D.value={...te(t.minDate||"1970-01-01")},k.value={...te(t.maxDate||"2099-12-31")},s.value={...c.value};const M=p(),I=b(c.value.date).locale(M),V=r("dateFormat.full");L.value=I.format(V)};e.watchEffect(()=>{t.date&&ue()}),e.onBeforeMount(()=>{ue()});const d=(g,M)=>{for(let I=1;I<M;I+=1)g.push({value:""})},a=(g,M)=>{const I={value:M},{day:V,month:x,year:de}=s.value,P=c.value;if(de===P.year&&x===P.month&&V===M){const re={...I,selected:!0};g.push(re);return}if(G()&&M<D.value.day){const re={...I,disabled:!0};g.push(re);return}if(R()&&M>k.value.day){const re={...I,disabled:!0};g.push(re);return}g.push(I)},f=()=>{if(_.value||(_.value=!0,setTimeout(()=>{_.value=!1},500),u.value="fadeX_Prev",G()))return;const{year:g,month:M}=c.value;M<=1?(c.value.year=g-1,c.value.month=12):c.value.month-=1},l=()=>{if(N.value||(N.value=!0,setTimeout(()=>{N.value=!1},500),u.value="fadeX_Next",R()))return;const{year:g,month:M}=c.value;M>=12?(c.value.year=g+1,c.value.month=1):c.value.month+=1};let T=g=>{s.value.year=c.value.year,s.value.month=c.value.month,s.value.week=c.value.week,s.value.date=c.value.date,s.value.weekStr=c.value.weekStr,s.value.monthStr=c.value.monthStr,s.value.day=g,s.value.week=new Date(c.value.year,c.value.month-1,g).getDay()+1;const M=p();s.value.weekStr=b().day(s.value.week).locale(M).format("dddd");const I=b(`${s.value.year}-${O(s.value.month)}-${O(s.value.day)}`).locale(M),V=r("dateFormat.full");L.value=I.format(V),y.value=!1};const $=g=>{if(g.disabled||g.value==="")return;T(Number(g.value));const{year:M,month:I,day:V,week:x,weekStr:de,monthStr:P}=s.value;o("confirm",{date:`${M}-${O(I)}-${O(V)}`,year:M,month:I,week:x,monthStr:P,weekStr:de,day:V})},A=g=>{S.value=!1,v.value=!1,c.value.month=g;let M;if(G()?M="copyMinDate":R()&&(M="copyMaxDate"),M){c.value.day=M==="copyMinDate"?D.value.day:k.value.day,T(c.value.day);return}let I=s.value.day;const V=new Date(c.value.year,c.value.month+1,0).getDate();I=Math.min(I,V),T(I)},F=g=>{S.value=!1,v.value=!1,c.value.year=g;let M;if(G()?M="copyMinDate":R()&&(M="copyMaxDate"),M){c.value.month=M==="copyMinDate"?D.value.month:k.value.month,c.value.day=M==="copyMinDate"?D.value.day:k.value.day,T(c.value.day);return}let I=s.value.day;const V=new Date(c.value.year,c.value.month,0).getDate();I=Math.min(I,V),T(I)},G=()=>c.value.year<=D.value.year&&c.value.month<=D.value.month,R=()=>c.value.year>=k.value.year&&c.value.month>=k.value.month,q=()=>{if(S.value){S.value=!1,v.value=!1;return}const g=ne.value.indexOf(s.value.year);S.value=!0,v.value=!1,setTimeout(()=>{i.value&&(i.value.scrollTop=(g-3)*40)})},me=()=>{if(v.value){S.value=!1,v.value=!1;return}const g=Y.value.indexOf(s.value.month);v.value=!0,S.value=!1,setTimeout(()=>{H.value&&(H.value.scrollTop=(g-3)*20)})},ae=()=>{S.value=!1},Z=()=>{L.value="",y.value=!1},fe=g=>{W.value&&z.value&&!W.value.contains(g.target)&&!z.value.contains(g.target)&&(y.value=!1)},B=g=>ee.value===g,E=g=>oe.value===g,Q=(g,M)=>j.value.row===M&&j.value.col===g,U=g=>{ee.value=g},J=()=>{ee.value=-1},ce=g=>{oe.value=g},ke=()=>{oe.value=-1},ge=(g,M)=>{j.value={row:M,col:g}},C=()=>{j.value={row:-1,col:-1}};return e.onMounted(()=>{document.addEventListener("click",fe)}),e.onUnmounted(()=>{document.removeEventListener("click",fe)}),{t:r,locale:m,getWeekNames:h,getMonthName:n,selectDate:s,showDate:c,copyMinDate:D,copyMaxDate:k,fadeXType:u,nextMonthClick:N,prevMonthClick:_,keepDoubleDigit:O,showYear:S,yearList:ne,rows:K,yearListRef:i,prevMonth:f,nextMonth:l,selectDay:$,selectYear:F,openYearList:q,openMonthList:me,monthList:Y,monthListRef:H,showMonth:v,selectMonth:A,openCalendarList:ae,showCalendar:y,selectedDateText:L,clearDate:Z,calendarRef:W,inputRef:z,isYearHovered:B,isMonthHovered:E,isDayHovered:Q,handleYearMouseEnter:U,handleYearMouseLeave:J,handleMonthMouseEnter:ce,handleMonthMouseLeave:ke,handleDayMouseEnter:ge,handleDayMouseLeave:C}}}),ye=(t,o)=>{const r=t.__vccOpts||t;for(const[m,p]of o)r[m]=p;return r},Jt={class:"date-picker-input-wrapper"},Kt=["placeholder"],jt={class:"e-calendar",ref:"calendarRef"},Qt={class:"e-date-select"},Zt={class:"e-date-year"},xt={class:"e-date-monthday"},Xt={class:"e-calendar-container"},eo={class:"e-calendar-toolbar"},to={key:0,class:"e-calendar-svg-cover"},oo={class:"e-calendar-toolbar-title"},no={key:0,class:"e-calendar-svg-cover"},ao={class:"e-calendar-week"},ro={class:"e-calendar-monthday"},io=["onClick","onMouseenter"],lo=["textContent"],so={key:0,class:"e-calendar-monthday-row-day-cover"},co={class:"e-calendar-year",ref:"yearList"},mo=["onClick","onMouseenter"],ho={class:"e-calendar-year",ref:"monthList"},fo=["onClick","onMouseenter"];function uo(t,o,r,m,p,h){return e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",Jt,[e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":o[0]||(o[0]=n=>t.selectedDateText=n),onClick:o[1]||(o[1]=n=>t.showCalendar=!0),readonly:"",placeholder:t.t("datePicker.selectDate"),class:"date-picker-input",ref:"inputRef"},null,8,Kt),[[e.vModelText,t.selectedDateText]]),t.selectedDateText?(e.openBlock(),e.createElementBlock("span",{key:0,class:"clear-date-button",onClick:o[2]||(o[2]=(...n)=>t.clearDate&&t.clearDate(...n))},o[12]||(o[12]=[e.createElementVNode("svg",{viewBox:"0 0 24 24"},[e.createElementVNode("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})],-1)]))):e.createCommentVNode("",!0)]),e.withDirectives(e.createElementVNode("div",jt,[e.createElementVNode("div",Qt,[e.createElementVNode("div",Zt,[e.createVNode(e.Transition,{name:"fadeY"},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock("div",{key:t.selectDate.year,class:e.normalizeClass(["e-date-year-select",{active:t.showYear}]),onClick:o[3]||(o[3]=(...n)=>t.openYearList&&t.openYearList(...n))},e.toDisplayString(t.selectDate.year),3))]),_:1})]),e.createElementVNode("div",xt,[e.createVNode(e.Transition,{name:"fadeY"},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock("div",{key:t.selectDate.day,class:e.normalizeClass(["e-date-monthday-select",{active:!t.showYear}]),onClick:o[5]||(o[5]=(...n)=>t.openCalendarList&&t.openCalendarList(...n))},[e.createElementVNode("span",null,e.toDisplayString(t.keepDoubleDigit(t.selectDate.month))+"-"+e.toDisplayString(t.keepDoubleDigit(t.selectDate.day)),1),o[13]||(o[13]=e.createTextVNode("  ")),e.createElementVNode("span",{style:{cursor:"pointer"},onClick:o[4]||(o[4]=(...n)=>t.openMonthList&&t.openMonthList(...n))},e.toDisplayString(t.showDate.monthStr),1)],2))]),_:1})])]),e.withDirectives(e.createElementVNode("div",Xt,[e.createElementVNode("div",eo,[e.createElementVNode("div",{class:"e-calendar-svg",onClick:o[6]||(o[6]=(...n)=>t.prevMonth&&t.prevMonth(...n))},[o[14]||(o[14]=e.createElementVNode("svg",{viewBox:"0 0 24 24",class:"e-calendar-svg-icon"},[e.createElementVNode("path",{d:"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"})],-1)),e.createVNode(e.Transition,{name:"e_calendar_svg_btn"},{default:e.withCtx(()=>[t.prevMonthClick?(e.openBlock(),e.createElementBlock("div",to)):e.createCommentVNode("",!0)]),_:1})]),e.createElementVNode("div",oo,[e.createVNode(e.Transition,{name:t.fadeXType},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock("div",{key:t.showDate.monthStr,class:"e-calendar-toolbar-title-content"},[e.createElementVNode("strong",null,e.toDisplayString(t.showDate.year),1),o[15]||(o[15]=e.createTextVNode("  ")),e.createElementVNode("span",{style:{cursor:"pointer"},onClick:o[7]||(o[7]=(...n)=>t.openMonthList&&t.openMonthList(...n))},e.toDisplayString(t.showDate.monthStr),1)]))]),_:1},8,["name"])]),e.createElementVNode("div",{class:"e-calendar-svg",onClick:o[8]||(o[8]=(...n)=>t.nextMonth&&t.nextMonth(...n))},[o[16]||(o[16]=e.createElementVNode("svg",{viewBox:"0 0 24 24",class:"e-calendar-svg-icon"},[e.createElementVNode("path",{d:"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"})],-1)),e.createVNode(e.Transition,{name:"e_calendar_svg_btn"},{default:e.withCtx(()=>[t.nextMonthClick?(e.openBlock(),e.createElementBlock("div",no)):e.createCommentVNode("",!0)]),_:1})])]),e.createElementVNode("div",ao,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.getWeekNames,(n,s)=>(e.openBlock(),e.createElementBlock("span",{key:s,class:"e-calendar-week-day"},e.toDisplayString(n),1))),128))]),e.createElementVNode("div",ro,[e.createVNode(e.Transition,{name:t.fadeXType},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock("div",{key:t.showDate.monthStr,class:"e-calendar-monthday-wrapper"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.rows,(n,s)=>(e.openBlock(),e.createElementBlock("div",{key:s,class:"e-calendar-monthday-row"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n,(c,D)=>(e.openBlock(),e.createElementBlock("span",{key:D,class:e.normalizeClass(["e-calendar-monthday-row-day",{active:c.selected,disabled:c.disabled,pointer:c.value!=="",hover:t.isDayHovered(D,s)}]),onClick:k=>t.selectDay(c),onMouseenter:k=>t.handleDayMouseEnter(D,s),onMouseleave:o[9]||(o[9]=k=>t.handleDayMouseLeave())},[e.createElementVNode("span",{textContent:e.toDisplayString(c.value),class:"e-calendar-monthday-row-day-value"},null,8,lo),e.createVNode(e.Transition,{name:"e_calendar_day"},{default:e.withCtx(()=>[c.selected?(e.openBlock(),e.createElementBlock("span",so)):e.createCommentVNode("",!0)]),_:2},1024)],42,io))),128))]))),128))]))]),_:1},8,["name"])])],512),[[e.vShow,!t.showYear&&!t.showMonth]]),e.withDirectives(e.createElementVNode("ul",co,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.yearList,(n,s)=>(e.openBlock(),e.createElementBlock("li",{key:s,class:e.normalizeClass({active:n===t.selectDate.year,hover:t.isYearHovered(s)}),onClick:c=>t.selectYear(n),onMouseenter:c=>t.handleYearMouseEnter(s),onMouseleave:o[10]||(o[10]=c=>t.handleYearMouseLeave())},e.toDisplayString(n),43,mo))),128))],512),[[e.vShow,t.showYear]]),e.withDirectives(e.createElementVNode("ul",ho,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.monthList,(n,s)=>(e.openBlock(),e.createElementBlock("li",{key:s,class:e.normalizeClass({active:n===t.selectDate.month,hover:t.isMonthHovered(s)}),onClick:c=>t.selectMonth(n),onMouseenter:c=>t.handleMonthMouseEnter(s),onMouseleave:o[11]||(o[11]=c=>t.handleMonthMouseLeave())},e.toDisplayString(t.getMonthName(n)),43,fo))),128))],512),[[e.vShow,t.showMonth]])],512),[[e.vShow,t.showCalendar]])])}const ht=ye(qt,[["render",uo],["__scopeId","data-v-5fca9540"]]),go=e.defineComponent({props:{direction:{type:String,default:"row"},min:{type:Number,required:!0},max:{type:Number,required:!0},paneLengthPercent:{type:Number,required:!0},triggerLength:{type:Number,required:!0}},emits:["update:paneLengthPercent"],setup(t,{emit:o}){let r=e.ref(null),m=e.ref(null),p=e.ref(0),h=e.ref("");const n=e.computed(()=>t.direction==="row"?"width":"height"),s=e.computed(()=>t.direction==="row"?"-webkit-gradient(linear,left top,right top,from(white), to(#D7D7D9))":"-webkit-gradient(linear, 0 0, 0 bottom, from(white), to(#D7D7D9))"),c=e.computed(()=>t.direction==="row"?"-webkit-gradient(linear,left top,right top,from(#A6D4E1), to(#2591C8))":"-webkit-gradient(linear, 0 0, 0 bottom, from(#A6D4E1), to(#2591C8))"),D=e.computed(()=>`calc(${t.paneLengthPercent}% - ${t.triggerLength/2}px)`),k=e.computed(()=>`${t.triggerLength}px`);e.onMounted(async()=>{await e.nextTick(),h.value=`background: ${s.value}`});const u=async()=>{await e.nextTick(),h.value=`background: ${s.value}`},N=async()=>{await e.nextTick(),h.value=`background: ${c.value}`},_=i=>{document.addEventListener("mousemove",S),document.addEventListener("mouseup",v),t.direction==="row"?p.value=i.pageX-i.target.getBoundingClientRect().left:p.value=i.pageY-i.target.getBoundingClientRect().top},S=async i=>{if(await e.nextTick(),h.value=`background: ${c.value}`,r.value){const H=r.value.getBoundingClientRect();let y=0;t.direction==="row"?y=(i.pageX-H.left-p.value+t.triggerLength/2)/H.width*100:y=(i.pageY-H.top-p.value+t.triggerLength/2)/H.height*100,y<t.min&&(y=t.min),y>t.max&&(y=t.max),o("update:paneLengthPercent",y)}},v=async()=>{await e.nextTick(),h.value=`background: ${s.value}`,document.removeEventListener("mousemove",S)};return{splitPane:r,trigger:m,lengthType:n,triggerDefaultColor:s,triggerMoveColor:c,paneLengthValue:D,triggerLengthValue:k,triggerBackGroud:h,handleMouseLeave:u,handleMouseOver:N,handleMouseDown:_,handleMouseUp:v}}});function po(t,o,r,m,p,h){return e.openBlock(),e.createElementBlock("div",{ref:"splitPane",class:e.normalizeClass(["split-pane",t.direction]),style:e.normalizeStyle({flexDirection:t.direction})},[e.createElementVNode("div",{class:"pane pane-one",style:e.normalizeStyle(`${t.lengthType}: ${t.paneLengthValue}`)},[e.renderSlot(t.$slots,"one",{},void 0,!0)],4),t.triggerDefaultColor&&t.triggerMoveColor?(e.openBlock(),e.createElementBlock("div",{key:0,ref:"trigger",class:"pane-trigger",style:e.normalizeStyle(`${t.lengthType}: ${t.triggerLengthValue}; ${t.triggerBackGroud}`)},[e.createElementVNode("div",{onClick:o[0]||(o[0]=(...n)=>t.handleMouseOver&&t.handleMouseOver(...n)),onMouseover:o[1]||(o[1]=(...n)=>t.handleMouseOver&&t.handleMouseOver(...n)),onMouseleave:o[2]||(o[2]=(...n)=>t.handleMouseLeave&&t.handleMouseLeave(...n)),onMousedown:o[3]||(o[3]=(...n)=>t.handleMouseDown&&t.handleMouseDown(...n)),class:"icon",style:e.normalizeStyle(`${t.lengthType}: ${t.triggerLengthValue}`)},null,36)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"pane pane-two",style:e.normalizeStyle(`${t.lengthType}: calc(${100-t.paneLengthPercent}% - ${t.triggerLength/2}px)`)},[e.renderSlot(t.$slots,"two",{},void 0,!0)],4)],6)}const ko=ye(go,[["render",po],["__scopeId","data-v-5d349302"]]),yo=e.defineComponent({props:{headers:{type:Array,required:!0}},setup(t){const{t:o}=Me(),r=e.ref(!1),m=e.ref(-1),p=e.ref(0),h=e.ref(0),n=e.ref(null),s=N=>{const S={no:"task.serialNumber",task:"task.name",priority:"task.priority",startdate:"task.startDate",enddate:"task.endDate",takestime:"task.duration",progress:"task.progress",id:"ID",parentId:"Parent ID"}[N.property];return S?S.includes(".")?o(S):S:N.title},c=(N,_)=>{N.preventDefault(),N.stopPropagation(),r.value=!0,m.value=_,p.value=N.clientX,h.value=t.headers[_].width;const S=N.target;n.value=S.closest(".headerCaption"),document.addEventListener("mousemove",k,{passive:!1}),document.addEventListener("mouseup",u),document.body.style.cursor="col-resize",document.body.style.userSelect="none"};let D=null;const k=N=>{!r.value||m.value<0||(N.preventDefault(),D!==null&&cancelAnimationFrame(D),D=requestAnimationFrame(()=>{const _=N.clientX-p.value,S=Math.max(50,h.value+_);n.value&&(n.value.style.width=`${S}px`),document.querySelectorAll(`.cellNo[columnindex="${m.value}"], .cell[columnindex="${m.value}"]`).forEach(i=>{i.style.minWidth=`${S}px`,i.style.maxWidth=`${S}px`}),D=null}))},u=()=>{if(r.value){if(D!==null&&(cancelAnimationFrame(D),D=null),n.value&&m.value>=0){const N=parseInt(n.value.style.width);t.headers[m.value].width=N}r.value=!1,m.value=-1,n.value=null,document.removeEventListener("mousemove",k),document.removeEventListener("mouseup",u),document.body.style.cursor="",document.body.style.userSelect=""}};return{getHeaderTitle:s,startResize:c}}}),Co={class:"header"},wo=["property","columnindex"],bo=["onMousedown"];function So(t,o,r,m,p,h){return e.openBlock(),e.createElementBlock("div",Co,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.headers,(n,s)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:s,property:n.property,columnindex:s,class:"headerCaption",style:e.normalizeStyle({width:`${n.width}px`})},[e.createElementVNode("span",null,e.toDisplayString(t.getHeaderTitle(n)),1),s<t.headers.length-1&&n.show?(e.openBlock(),e.createElementBlock("div",{key:0,class:"resize-handle",onMousedown:c=>t.startResize(c,s)},null,40,bo)):e.createCommentVNode("",!0)],12,wo)),[[e.vShow,n.show]])),128))])}const Do=ye(yo,[["render",So],["__scopeId","data-v-6f48e2fb"]]),To={monthHeaders:[],weekHeaders:[],dayHeaders:[],hourHeaders:[],tasks:[],taskHeaders:[],mapFields:{},scale:90,timelineCellCount:0,startGanttDate:null,endGanttDate:null,scrollFlag:!0,mode:null,expandRow:{pid:0,expand:!0},collapsedTasks:new Set,rootTask:{},subTask:{},editTask:{},removeTask:{},allowChangeTaskDate:{},barDate:{id:"",startDate:"",endDate:""}};let w=e.reactive(To),se={setMonthHeaders(t){w.monthHeaders=t},setDayHeaders(t){w.dayHeaders=t},setTasks(t){w.tasks=t},setTaskHeaders(t){w.taskHeaders=t},setWeekHeaders(t){w.weekHeaders=t},setHourHeaders(t){w.hourHeaders=t},setScale(t){w.scale=t},setMapFields(t){w.mapFields=t},setTimelineCellCount(t){w.timelineCellCount=t},setStartGanttDate(t){w.startGanttDate=t},setEndGanttDate(t){w.endGanttDate=t},setScrollFlag(t){w.scrollFlag=t},setMode(t){w.mode=t},setExpandRow(t){w.expandRow=t},toggleTaskCollapse(t){w.collapsedTasks.has(t)?w.collapsedTasks.delete(t):w.collapsedTasks.add(t),w.collapsedTasks=new Set(w.collapsedTasks)},setRootTask(t){w.rootTask=t},setSubTask(t){w.subTask=t},setEditTask(t){w.editTask=t},setRemoveTask(t){w.removeTask=t},setBarDate(t){w.barDate=t},setAllowChangeTaskDate(t){w.allowChangeTaskDate=t}};const be=e.reactive({shouldScrollToToday:!1,triggerScrollToToday(){this.shouldScrollToToday=!0},shouldScroll:!1,triggerScroll(){this.shouldScroll=!0},highlightedId:null,triggerHighlight(t){this.highlightedId=t}}),ft=e.ref(0),ut=e.ref(!1),Eo=t=>{ft.value=t},Mo=t=>{ut.value=t},gt=()=>({scrollTop:ft,scrollFlag:ut,setScrollTop:Eo,setScrollFlag:Mo}),$o=e.defineComponent({props:{headers:{type:Array,default:()=>[]},rowHeight:{type:Number,default:0},row:{type:Object,default:()=>({})}},setup(t){const o=e.ref(!0),r=e.ref(!1),m="添加子任务",p="删除当前任务",h=e.computed(()=>w.mapFields),n=e.computed(()=>w.subTask),s=e.computed(()=>w.collapsedTasks);e.inject("barHover");const c=e.inject("addRootTask"),D=e.computed(()=>{const z=t.row[h.value.id];return w.tasks.some(ee=>ee[h.value.parentId]===z)}),k=e.computed(()=>{const z=t.row[h.value.id];return s.value.has(z)}),u=e.computed(()=>{const z=t.row[h.value.parentId];if(!z||z==="0")return!1;const ee=w.tasks.filter(ne=>ne[h.value.parentId]===z);if(ee.length===0)return!1;const oe=t.row[h.value.id];return ee[ee.length-1][h.value.id]===oe}),N=e.computed(()=>{const z=[],ee=t.row.treeLevel||0;if(ee<=1)return z;const oe=ee-1,j=[];let ne=t.row;for(;ne;){j.unshift(ne);const Y=ne[h.value.parentId];if(!Y||Y==="0")break;const K=w.tasks.find(O=>O[h.value.id]===Y);if(!K)break;ne=K}for(let Y=j.length-2;Y>=0;Y--){const K=j[Y],O=K[h.value.id],te=K[h.value.parentId],ue=w.tasks.filter(d=>d[h.value.parentId]===te);if(ue.length>0){if(ue[ue.length-1][h.value.id]===O)break;{const f=K.treeLevel;f&&f>=1&&f!==oe&&z.push(f)}}}return z}),_=()=>{const z=t.row[h.value.id];se.toggleTaskCollapse(z)};e.onMounted(()=>{});const S=se.setSubTask,v=se.setEditTask,i=se.setRemoveTask,H=(z,ee)=>h.value[ee]?z[h.value[ee]]:z[ee]?z[ee]:null;return e.watch(()=>be.highlightedId,z=>{t.row[h.value.id]===z?r.value=!0:r.value=!1}),{showRow:o,hover:r,addTips:m,removeTips:p,mapFields:h,subTask:n,hasChildren:D,isCollapsed:k,isLastChild:u,getAncestorLines:N,toggleCollapse:_,setSubTask:S,setEditTask:v,setRemoveTask:i,checkField:H,hoverActive:()=>{be.triggerHighlight(t.row[h.value.id])},hoverInactive:()=>{be.triggerHighlight(null)},addRootTask:()=>{c&&c(t.row)}}}}),Vo=["columnindex"],No={class:"no-cell-content"},Lo={class:"tree-lines"},Ao=["title"],Bo={key:1,class:"collapse-placeholder"},Fo={class:"no-text"},vo={class:"action-buttons"},Ho=["columnindex"];function Yo(t,o,r,m,p,h){return t.showRow?(e.openBlock(),e.createElementBlock("div",{key:0,onMouseover:o[4]||(o[4]=n=>t.hoverActive()),onMouseleave:o[5]||(o[5]=n=>t.hoverInactive()),class:e.normalizeClass({active:t.hover})},[e.createElementVNode("div",{class:"row",onDblclick:o[3]||(o[3]=n=>t.setEditTask(t.row)),style:e.normalizeStyle({height:t.rowHeight+"px"})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.headers,(n,s)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[n.property==="no"?(e.openBlock(),e.createElementBlock("div",{class:"cellNo",key:s,columnindex:s,style:e.normalizeStyle({minWidth:n.width+"px",maxWidth:n.width+"px",height:t.rowHeight+"px"})},[e.createElementVNode("div",No,[e.createElementVNode("div",Lo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.getAncestorLines,c=>(e.openBlock(),e.createElementBlock("div",{key:"ancestor-"+c,class:"tree-line-vertical ancestor",style:e.normalizeStyle({left:c*16+8+"px"})},null,4))),128)),t.row.treeLevel===1&&t.hasChildren&&!t.isCollapsed?(e.openBlock(),e.createElementBlock("div",{key:0,class:"tree-line-vertical parent-to-child",style:e.normalizeStyle({left:t.row.treeLevel*16+8+"px"})},null,4)):e.createCommentVNode("",!0),t.row.treeLevel&&t.row.treeLevel>1?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",{class:e.normalizeClass(["tree-line-vertical current",{"is-last-child":t.isLastChild}]),style:e.normalizeStyle({left:(t.row.treeLevel-1)*16+8+"px"})},null,6),e.createElementVNode("div",{class:"tree-line-horizontal",style:e.normalizeStyle({left:(t.row.treeLevel-1)*16+8+"px",width:"32px"})},null,4),t.hasChildren&&!t.isCollapsed?(e.openBlock(),e.createElementBlock("div",{key:0,class:"tree-line-vertical parent-to-child",style:e.normalizeStyle({left:t.row.treeLevel*16+8+"px"})},null,4)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"no-left-section",style:e.normalizeStyle({paddingLeft:(t.row.treeLevel||0)*16+"px"})},[t.hasChildren?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:o[0]||(o[0]=e.withModifiers((...c)=>t.toggleCollapse&&t.toggleCollapse(...c),["stop"])),class:e.normalizeClass(["collapse-btn",{collapsed:t.isCollapsed}]),title:t.isCollapsed?"展开":"折叠"},o[6]||(o[6]=[e.createElementVNode("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},[e.createElementVNode("path",{class:"arrow",d:"M5 4 L14 9 L5 14 Z",fill:"currentColor"})],-1)]),10,Ao)):(e.openBlock(),e.createElementBlock("span",Bo)),e.createElementVNode("span",Fo,e.toDisplayString(t.row.no),1)],4),e.createElementVNode("div",vo,[e.createElementVNode("button",{onClick:o[1]||(o[1]=e.withModifiers(c=>t.setSubTask(t.row),["stop"])),class:"action-btn add-btn",title:"添加子任务"},o[7]||(o[7]=[e.createElementVNode("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"currentColor"},[e.createElementVNode("path",{d:"M8 2a.5.5 0 01.5.5v5h5a.5.5 0 010 1h-5v5a.5.5 0 01-1 0v-5h-5a.5.5 0 010-1h5v-5A.5.5 0 018 2z"})],-1)])),e.createElementVNode("button",{onClick:o[2]||(o[2]=e.withModifiers(c=>t.setRemoveTask(t.row),["stop"])),class:"action-btn delete-btn",title:"删除任务"},o[8]||(o[8]=[e.createElementVNode("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"currentColor"},[e.createElementVNode("path",{d:"M5.5 5.5A.5.5 0 016 6v6a.5.5 0 01-1 0V6a.5.5 0 01.5-.5zm2.5 0a.5.5 0 01.5.5v6a.5.5 0 01-1 0V6a.5.5 0 01.5-.5zm3 .5a.5.5 0 00-1 0v6a.5.5 0 001 0V6z"}),e.createElementVNode("path",{"fill-rule":"evenodd",d:"M14.5 3a1 1 0 01-1 1H13v9a2 2 0 01-2 2H5a2 2 0 01-2-2V4h-.5a1 1 0 01-1-1V2a1 1 0 011-1H6a1 1 0 011-1h2a1 1 0 011 1h3.5a1 1 0 011 1v1zM4.118 4L4 4.059V13a1 1 0 001 1h6a1 1 0 001-1V4.059L11.882 4H4.118zM2.5 3V2h11v1h-11z"})],-1)]))])])],12,Vo)):e.withDirectives((e.openBlock(),e.createElementBlock("div",{class:"cell",key:s+"-header",columnindex:s,style:e.normalizeStyle({minWidth:n.width+"px",maxWidth:n.width+"px",height:t.rowHeight+"px"})},e.toDisplayString(t.checkField(t.row,n.property)),13,Ho)),[[e.vShow,n.show]])],64))),256))],36)],34)):e.createCommentVNode("",!0)}const zo=ye($o,[["render",Yo],["__scopeId","data-v-5f1aeed2"]]),Io=e.defineComponent({props:{headers:Array,rowHeight:Number,tasks:Array},components:{TaskRow:zo},setup(t){const o=e.ref([]),r=e.computed(()=>w.mapFields),m=e.computed(()=>w.collapsedTasks),p=D=>{const k=new Set,u=t.tasks||w.tasks,N=_=>{u.filter(v=>v[r.value.parentId]===_).forEach(v=>{const i=v[r.value.id];k.add(i),N(i)})};return N(D),k},h=e.computed(()=>new Set(o.value.map(D=>D[r.value.id]))),n=e.computed(()=>{const D=h.value,k=w.tasks.filter(N=>!D.has(N[r.value.id])),u=new Set;return m.value.forEach(N=>{p(N).forEach(S=>u.add(S))}),k.filter(N=>!u.has(N[r.value.id]))}),s=e.computed({get:()=>w.expandRow,set:D=>{se.setExpandRow(D)}});e.watch(s,D=>{o.value=[],c(D.pid)});const c=D=>{let k=t.tasks?t.tasks.filter(u=>u[r.value.parentId]===D):[];if(k&&k.length>0)for(let u=0;u<k.length;u++)s.value.expand===!1&&o.value.push(k[u]),c(k[u][r.value.id])};return{filterTask:n,expandRow:s,recursionRow:c,mapFields:r}}});function Ro(t,o,r,m,p,h){const n=e.resolveComponent("TaskRow");return e.openBlock(),e.createElementBlock("div",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.filterTask,s=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:s.id+"_taskrow"},[t.headers?(e.openBlock(),e.createBlock(n,{key:0,headers:t.headers,rowHeight:t.rowHeight,row:s},null,8,["headers","rowHeight","row"])):e.createCommentVNode("",!0)],64))),128))])}const Po=ye(Io,[["render",Ro]]),Oo=e.defineComponent({props:{headers:{type:Array,default:()=>[]},rowHeight:{type:Number,default:0}},components:{TaskRecursionRow:Po},setup(t){const o=e.computed(()=>w.tasks),{scrollTop:r,scrollFlag:m,setScrollTop:p,setScrollFlag:h}=gt(),n=e.ref(null),s=e.computed(()=>w.mapFields),c=e.computed(()=>o.value.length*t.rowHeight),D=()=>o.value.filter(v=>v[s.value.parentId]==="0");e.watch(r,v=>{!m.value&&n.value&&(n.value.scrollTop=v)});let k=null;const u=()=>{k&&cancelAnimationFrame(k),k=requestAnimationFrame(()=>{n.value&&(h(!0),p(n.value.scrollTop)),k=null})},N=()=>{},_=()=>{if(n.value){const v=document.querySelector(".table .content");v&&(v.scrollWidth>v.clientWidth?n.value.style.paddingBottom="20px":n.value.style.paddingBottom="0px")}};e.watch(o,()=>{setTimeout(_,50)});const S=()=>{setTimeout(_,50)};return e.onMounted(()=>{n.value&&(n.value.scrollTop=r.value,setTimeout(_,100),window.addEventListener("resize",S))}),e.onUnmounted(()=>{window.removeEventListener("resize",S)}),{tasks:o,taskContent:n,scrollFlag:m,mapFields:s,setScrollFlag:h,getRootNode:D,scroll:u,mouseover:N,contentHeight:c}}});function _o(t,o,r,m,p,h){const n=e.resolveComponent("TaskRecursionRow");return e.openBlock(),e.createElementBlock("div",{ref:"taskContent",class:"content",onScroll:o[0]||(o[0]=s=>t.scroll()),onMouseover:o[1]||(o[1]=s=>t.mouseover())},[e.createElementVNode("div",{class:"content-inner",style:e.normalizeStyle({minHeight:t.contentHeight+"px"})},[e.createVNode(n,{headers:t.headers,rowHeight:t.rowHeight,tasks:t.tasks},null,8,["headers","rowHeight","tasks"])],4)],544)}const Go=ye(Oo,[["render",_o],["__scopeId","data-v-f24b681d"]]);var We={exports:{}},Wo=We.exports,pt;function Uo(){return pt||(pt=1,function(t,o){(function(r,m){t.exports=m()})(Wo,function(){return function(r,m,p){m.prototype.isBetween=function(h,n,s,c){var D=p(h),k=p(n),u=(c=c||"()")[0]==="(",N=c[1]===")";return(u?this.isAfter(D,s):!this.isBefore(D,s))&&(N?this.isBefore(k,s):!this.isAfter(k,s))||(u?this.isBefore(D,s):!this.isAfter(D,s))&&(N?this.isAfter(k,s):!this.isBefore(k,s))}}})}(We)),We.exports}var qo=Uo();const Jo=Ke(qo);b.extend(Jo);const Ko=e.defineComponent({props:{headersHeight:{type:Number,default:50},rowHeight:{type:Number,default:0}},components:{TaskHeader:Do,TaskContent:Go},setup(){const t=e.computed(()=>w.tasks),o=e.computed(()=>w.taskHeaders),r=e.computed({get:()=>w.rootTask,set:s=>{se.setRootTask(s)}}),m=e.computed(()=>w.startGanttDate),p=e.computed(()=>w.endGanttDate),h=se.setRootTask;return{tasks:t,taskHeaders:o,rootTask:r,startGanttDate:m,endGanttDate:p,setRootTask:h,scrollToToday:()=>{b().isBetween(m.value,p.value)&&be.triggerScrollToToday()}}}}),jo={class:"table"};function Qo(t,o,r,m,p,h){const n=e.resolveComponent("TaskHeader"),s=e.resolveComponent("TaskContent");return e.openBlock(),e.createElementBlock("div",jo,[e.createElementVNode("div",{class:"header",style:e.normalizeStyle({height:`${t.headersHeight}px`})},[(e.openBlock(),e.createElementBlock("svg",{ref:"addTaskSvg",t:"1647915776075",onClick:o[0]||(o[0]=c=>t.setRootTask({})),class:"addRootTask",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"3147",width:"200",height:"200"},o[2]||(o[2]=[e.createElementVNode("path",{d:"M864 0H160C70.4 0 0 70.4 0 160v704c0 89.6 70.4 160 160 160h704c89.6 0 160-70.4 160-160V160c0-89.6-70.4-160-160-160z m96 864c0 54.4-41.6 96-96 96H160c-54.4 0-96-41.6-96-96V160c0-54.4 41.6-96 96-96h704c54.4 0 96 41.6 96 96v704z",fill:"currentColor","p-id":"3148"},null,-1),e.createElementVNode("path",{d:"M768 480h-224V256c0-19.2-12.8-32-32-32s-32 12.8-32 32v224H256c-19.2 0-32 12.8-32 32s12.8 32 32 32h224v224c0 19.2 12.8 32 32 32s32-12.8 32-32v-224h224c19.2 0 32-12.8 32-32s-12.8-32-32-32z","p-id":"3149",fill:"currentColor"},null,-1)]),512)),(e.openBlock(),e.createElementBlock("svg",{ref:"jumpTodaySvg",t:"1647262391689",onClick:o[1]||(o[1]=c=>t.scrollToToday()),class:"jumpToToday",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"4965",width:"200",height:"200"},o[3]||(o[3]=[e.createElementVNode("path",{d:"M753.6 222.4h24c19.2 0 33.6-14.4 33.6-32V57.6c0-19.2-14.4-33.6-33.6-33.6h-24c-19.2 0-33.6 14.4-33.6 33.6v131.2c0 19.2 14.4 33.6 33.6 33.6zM251.2 222.4h24c19.2 0 33.6-14.4 33.6-32V57.6c0-19.2-14.4-33.6-33.6-33.6h-24c-19.2 0-33.6 14.4-33.6 33.6v131.2c0 19.2 14.4 33.6 33.6 33.6z",fill:"currentColor","p-id":"4966"},null,-1),e.createElementVNode("path",{d:"M928 134.4h-68.8v56c0 41.6-33.6 76.8-80 76.8h-24c-43.2 0-80-33.6-80-76.8V134.4h-320v56c0 41.6-33.6 76.8-80 76.8h-24c-43.2 0-80-33.6-80-76.8V134.4H105.6c-38.4 0-68.8 28.8-68.8 67.2v731.2c0 38.4 30.4 67.2 68.8 67.2h820.8c38.4 0 68.8-28.8 70.4-67.2V201.6c0-38.4-30.4-67.2-68.8-67.2zM105.6 932.8V355.2h820.8s0 577.6 1.6 577.6H105.6z",fill:"currentColor","p-id":"4967"},null,-1),e.createElementVNode("path",{d:"M500.8 548.8l-49.6 33.6c14.4 16 33.6 41.6 60.8 75.2l54.4-35.2c-19.2-22.4-40-46.4-65.6-73.6z",fill:"currentColor","p-id":"4968"},null,-1),e.createElementVNode("path",{d:"M553.6 451.2l14.4-14.4v-1.6H480c-51.2 68.8-118.4 121.6-196.8 155.2 11.2 12.8 25.6 28.8 41.6 54.4 80-40 142.4-89.6 188.8-148.8 43.2 59.2 102.4 107.2 180.8 144 14.4-19.2 27.2-35.2 41.6-52.8-76.8-30.4-137.6-76.8-182.4-136zM339.2 716.8h246.4c-30.4 43.2-62.4 81.6-94.4 116.8l60.8 33.6c49.6-56 89.6-108.8 123.2-155.2v-54.4h-336v59.2z",fill:"currentColor","p-id":"4969"},null,-1)]),512)),e.createVNode(n,{headers:t.taskHeaders},null,8,["headers"])],4),e.createElementVNode("div",{style:e.normalizeStyle({height:`calc(100% - ${t.headersHeight}px)`})},[Array.isArray(t.tasks)&&t.tasks.length>0?(e.openBlock(),e.createBlock(s,{key:0,headers:t.taskHeaders,rowHeight:t.rowHeight},null,8,["headers","rowHeight"])):e.createCommentVNode("",!0)],4)])}const Zo=ye(Ko,[["render",Qo],["__scopeId","data-v-5e09e335"]]),xo=e.defineComponent({props:{weekHeaders:{type:Array,default:()=>[]},dayHeaders:{type:Array,default:()=>[]},monthHeaders:{type:Array,default:()=>[]},hourHeaders:{type:Array,default:()=>[]}},setup(t){const{weekHeaders:o,dayHeaders:r,monthHeaders:m,hourHeaders:p}=e.toRefs(t),{locale:h}=Me();return{weekHeaders:o,dayHeaders:r,monthHeaders:m,hourHeaders:p,isToday:s=>{const D={"zh-CN":"zh-cn","en-US":"en","ja-JP":"ja","ko-KR":"ko","fr-FR":"fr","de-DE":"de","es-ES":"es","ru-RU":"ru"}[h.value]||"en";return s===b().locale(D).format("YYYY-MM-DD")}}}}),Xo={class:"headerContainer"},en={key:0,class:"header"},tn={key:1,class:"header"},on={key:2,class:"header"},nn={key:0,t:"1647262391689",class:"today",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"4965",width:"200",height:"200"},an={key:3,class:"header"};function rn(t,o,r,m,p,h){return e.openBlock(),e.createElementBlock("div",Xo,[t.monthHeaders&&t.monthHeaders.length>0?(e.openBlock(),e.createElementBlock("div",en,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.monthHeaders,n=>(e.openBlock(),e.createElementBlock("div",{key:n.title,class:"headerCaption",style:e.normalizeStyle([{"border-bottom":"0px"},{width:n.width+"px"}])},[e.createElementVNode("span",{style:e.normalizeStyle({width:n.width+"px"})},e.toDisplayString(n.title),5)],4))),128))])):e.createCommentVNode("",!0),t.weekHeaders&&t.weekHeaders.length>0?(e.openBlock(),e.createElementBlock("div",tn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.weekHeaders,n=>(e.openBlock(),e.createElementBlock("div",{key:n.title,class:"headerCaption",style:e.normalizeStyle([{"border-top":"1px"},{width:n.width+"px"}])},[e.createElementVNode("span",{style:e.normalizeStyle({width:n.width+"px"})},e.toDisplayString(n.title),5)],4))),128))])):e.createCommentVNode("",!0),t.dayHeaders&&t.dayHeaders.length>0?(e.openBlock(),e.createElementBlock("div",on,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.dayHeaders,n=>(e.openBlock(),e.createElementBlock("div",{key:n.title,class:"headerCaption",style:e.normalizeStyle({width:n.width+"px"})},[e.createElementVNode("span",{style:e.normalizeStyle({width:n.width+"px"})},e.toDisplayString(n.title),5),t.isToday(n.fulldate)?(e.openBlock(),e.createElementBlock("svg",nn,o[0]||(o[0]=[e.createElementVNode("path",{d:"M753.6 222.4h24c19.2 0 33.6-14.4 33.6-32V57.6c0-19.2-14.4-33.6-33.6-33.6h-24c-19.2 0-33.6 14.4-33.6 33.6v131.2c0 19.2 14.4 33.6 33.6 33.6zM251.2 222.4h24c19.2 0 33.6-14.4 33.6-32V57.6c0-19.2-14.4-33.6-33.6-33.6h-24c-19.2 0-33.6 14.4-33.6 33.6v131.2c0 19.2 14.4 33.6 33.6 33.6z",fill:"#707070","p-id":"4966"},null,-1),e.createElementVNode("path",{d:"M928 134.4h-68.8v56c0 41.6-33.6 76.8-80 76.8h-24c-43.2 0-80-33.6-80-76.8V134.4h-320v56c0 41.6-33.6 76.8-80 76.8h-24c-43.2 0-80-33.6-80-76.8V134.4H105.6c-38.4 0-68.8 28.8-68.8 67.2v731.2c0 38.4 30.4 67.2 68.8 67.2h820.8c38.4 0 68.8-28.8 70.4-67.2V201.6c0-38.4-30.4-67.2-68.8-67.2zM105.6 932.8V355.2h820.8s0 577.6 1.6 577.6H105.6z",fill:"#707070","p-id":"4967"},null,-1),e.createElementVNode("path",{d:"M500.8 548.8l-49.6 33.6c14.4 16 33.6 41.6 60.8 75.2l54.4-35.2c-19.2-22.4-40-46.4-65.6-73.6z",fill:"#707070","p-id":"4968"},null,-1),e.createElementVNode("path",{d:"M553.6 451.2l14.4-14.4v-1.6H480c-51.2 68.8-118.4 121.6-196.8 155.2 11.2 12.8 25.6 28.8 41.6 54.4 80-40 142.4-89.6 188.8-148.8 43.2 59.2 102.4 107.2 180.8 144 14.4-19.2 27.2-35.2 41.6-52.8-76.8-30.4-137.6-76.8-182.4-136zM339.2 716.8h246.4c-30.4 43.2-62.4 81.6-94.4 116.8l60.8 33.6c49.6-56 89.6-108.8 123.2-155.2v-54.4h-336v59.2z",fill:"#707070","p-id":"4969"},null,-1)]))):e.createCommentVNode("",!0)],4))),128))])):e.createCommentVNode("",!0),t.hourHeaders&&t.hourHeaders.length>0?(e.openBlock(),e.createElementBlock("div",an,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.hourHeaders,n=>(e.openBlock(),e.createElementBlock("div",{key:n.title,class:"headerCaption",style:e.normalizeStyle({width:n.width+"px",marginTop:"-2px"})},[e.createElementVNode("span",{style:e.normalizeStyle({width:n.width+"px"})},e.toDisplayString(n.title),5)],4))),128))])):e.createCommentVNode("",!0)])}const ln=ye(xo,[["render",rn],["__scopeId","data-v-8c8ab8ac"]]);var Ue={exports:{}},sn=Ue.exports,kt;function dn(){return kt||(kt=1,function(t,o){(function(r,m){t.exports=m()})(sn,function(){var r="day";return function(m,p,h){var n=function(D){return D.add(4-D.isoWeekday(),r)},s=p.prototype;s.isoWeekYear=function(){return n(this).year()},s.isoWeek=function(D){if(!this.$utils().u(D))return this.add(7*(D-this.isoWeek()),r);var k,u,N,_,S=n(this),v=(k=this.isoWeekYear(),u=this.$u,N=(u?h.utc:h)().year(k).startOf("year"),_=4-N.isoWeekday(),N.isoWeekday()>4&&(_+=7),N.add(_,r));return S.diff(v,"week")+1},s.isoWeekday=function(D){return this.$utils().u(D)?this.day()||7:this.day(this.day()%7?D:D-7)};var c=s.startOf;s.startOf=function(D,k){var u=this.$utils(),N=!!u.u(k)||k;return u.p(D)==="isoweek"?N?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):c.bind(this)(D,k)}}})}(Ue)),Ue.exports}var cn=dn();const mn=Ke(cn);b.extend(mn);const hn=e.defineComponent({name:"Bar",emits:["progress-update"],props:{rowHeight:{type:Number,default:0},row:{type:Object,default:()=>({})},startGanttDate:{type:String},endGanttDate:{type:String}},setup(t,{emit:o}){const r=e.ref(null),m=e.ref(t.rowHeight*.7),p=e.ref(null),h=e.ref(0),n=e.ref(0),s=e.ref(!0),c=e.ref(!1),D=e.ref(""),k=e.ref(!1),u=e.ref(0),N=e.ref(!1),_=e.computed(()=>w.timelineCellCount),S=e.computed(()=>w.scale),v=e.computed(()=>w.mode),i=e.computed(()=>w.mapFields),H=e.computed(()=>{const Y=Number(t.row[i.value.progress]);return isNaN(Y)?"0.00%":(Y*100).toFixed(2)+"%"}),y=e.inject(je.SetBarColorSymbol),L=Y=>{const K={taskId:t.row[i.value.id],oldProgress:Number(t.row[i.value.progress])||0,newProgress:Y,task:t.row};o("progress-update",K),window.dispatchEvent(new CustomEvent("taskProgressUpdate",{detail:K})),console.log("Task progress updated:",K)};e.watch(()=>be.highlightedId,Y=>{c.value=t.row[i.value.id]===Y});const W=()=>be.triggerHighlight(t.row[i.value.id]),z=()=>be.triggerHighlight(null),ee=Y=>{u.value;let K="#ffffff",O="#f8f8f8";if(r.value){let te=r.value.parentElement;for(;te;){if(te.hasAttribute("data-gantt-theme")){K=getComputedStyle(te).getPropertyValue("--bg-content").trim()||"#ffffff",O=getComputedStyle(te).getPropertyValue("--bg-secondary").trim()||"#f8f8f8";break}te=te.parentElement}}switch(v.value){case"月":case"日":{let te=b(t.startGanttDate).add(Y,"days");return te.isoWeekday()===7||te.isoWeekday()===1?O:K}case"周":case"时":return K}},oe=se.setBarDate,j=se.setAllowChangeTaskDate,ne=Y=>{let K=0;switch(v.value){case"月":case"日":{let B=b(t.row[i.value.startdate]).diff(b(t.startGanttDate),"days");K=S.value*B;let E=b(t.row[i.value.enddate]).diff(b(t.row[i.value.startdate]),"days")+1;n.value=E*S.value,t.row[i.value.takestime]=E+"天";break}case"周":{const B=b(t.startGanttDate).startOf("isoWeek"),E=b(t.row[i.value.startdate]).startOf("isoWeek");let Q=E.diff(B,"week");K=S.value*Q;let J=b(t.row[i.value.enddate]).startOf("isoWeek").diff(E,"week")+1;n.value=J*S.value,t.row[i.value.takestime]=J+"周";break}case"时":{let B=b(t.row[i.value.startdate]).diff(b(t.startGanttDate),"hours");K=S.value*B;let E=b(t.row[i.value.enddate]).diff(b(t.row[i.value.startdate]),"hours")+1;n.value=E*S.value,t.row[i.value.takestime]=E+"小时";break}}h.value=K;let O=et(Y);const te=getComputedStyle(Y).getPropertyValue("--border")||"#cecece";Y.setAttribute("data-x",K.toString()),Y.setAttribute("width",n.value.toString()),Y.setAttribute("stroke",te),Y.setAttribute("stroke-width","1px"),Y.style.transform=`translate(${K}px, 0px)`;let ue=O.select("pattern").first(),d=O.children().filter(B=>B.type==="g")[0]||O.group(),a=O.select(".innerRect").first(),f=O.select("rect:not(.innerRect):not(.progressHandle)").first(),l=O.select("text").first(),T=O.select(".progressHandle").first();ue||(ue=O.pattern(10,10,B=>{B.path("M10 -5 -10,15M15,0,0,15M0 -5 -20,15").fill("none").stroke({color:"gray",opacity:.4,width:5})})),d||(d=O.group());let $=t.row[i.value.progress]?Number(n.value)*Number(t.row[i.value.progress]):Number(n.value);a?(a.fill({color:D.value,opacity:.4}),a.width($)):(a=O.rect($,m.value).radius(10),a.addClass("innerRect"),d.add(a)),f?f.width(n.value):(f=O.rect(n.value,m.value).radius(10).fill(ue).stroke({color:te,width:1}),f.on("mouseover",()=>f.animate(200).attr({stroke:"#000",strokeWidth:2,opacity:1})),f.on("mouseleave",()=>f.animate(200).attr({stroke:"#0066ff",strokeWidth:10,opacity:.4}))),l?l.text(H.value):l=O.text(H.value).stroke("#faf7ec");const A=l.bbox();l.font({size:15,anchor:"middle",leading:"1em"}).fill("#000").attr("opacity",1).attr("dominant-baseline","middle").center(a.width()/2+A.width/2,a.height()/2);const F=12,G=8,R=$-F/2,q=m.value-G/2,me=$,ae=()=>{let B="#f59e0b",E="#d97706",Q="#fbbf24",U=Y.parentElement;for(;U;){if(U.hasAttribute("data-gantt-theme")){B=getComputedStyle(U).getPropertyValue("--primary").trim()||B,E=getComputedStyle(U).getPropertyValue("--primary-dark").trim()||E,Q=getComputedStyle(U).getPropertyValue("--primary-light").trim()||Q;break}U=U.parentElement}return{primary:B,primaryDark:E,primaryLight:Q}};let Z=Y.querySelector(".progressGuideLine");const fe=ae();if(!Z){const B=document.createElementNS("http://www.w3.org/2000/svg","line");B.setAttribute("class","progressGuideLine"),B.setAttribute("x1",String(me)),B.setAttribute("y1","0"),B.setAttribute("x2",String(me)),B.setAttribute("y2",String(q)),B.setAttribute("stroke",fe.primaryDark),B.setAttribute("stroke-width","2"),B.setAttribute("stroke-dasharray","4,3"),B.setAttribute("opacity","0.8"),Y.appendChild(B),Z=B}if(Z.setAttribute("x1",String(me)),Z.setAttribute("x2",String(me)),Z.setAttribute("y2",String(q)),Z.setAttribute("stroke",fe.primaryDark),Z.setAttribute("opacity","0.8"),T){T.move(R,q);const B=T.node;B.setAttribute("fill",fe.primary),B.setAttribute("stroke",fe.primaryDark)}else{const B=`${F/2},0 0,${G} ${F},${G}`;T=O.polygon(B).fill(fe.primary).stroke({color:fe.primaryDark,width:1}).addClass("progressHandle");const E=T.node;E.style.cursor="ew-resize",E.style.pointerEvents="auto",T.move(R,q);let Q=R;E.addEventListener("mouseenter",()=>{if(!N.value){const U=ae();E.setAttribute("fill",U.primaryLight),E.setAttribute("stroke",U.primary),E.setAttribute("stroke-width","2"),Z.setAttribute("stroke",U.primaryLight),Z.setAttribute("stroke-width","2"),Z.setAttribute("opacity","1")}}),E.addEventListener("mouseleave",()=>{if(!N.value){const U=ae();E.setAttribute("fill",U.primary),E.setAttribute("stroke",U.primaryDark),E.setAttribute("stroke-width","1"),Z.setAttribute("stroke",U.primaryDark),Z.setAttribute("stroke-width","2"),Z.setAttribute("opacity","0.8")}}),Te(E).draggable({inertia:!1,listeners:{start:()=>{N.value=!0;const U=ae();E.setAttribute("fill",U.primaryDark),E.setAttribute("stroke",U.primaryDark),E.setAttribute("stroke-width","2"),Z.setAttribute("stroke",U.primaryDark),Z.setAttribute("stroke-width","2"),Z.setAttribute("opacity","1")},move:U=>{Q+=U.dx,Q=Math.max(-12/2,Math.min(Q,n.value-F/2)),T.move(Q,q);const J=Q+F/2;Z.setAttribute("x1",String(J)),Z.setAttribute("x2",String(J));const ce=Math.min(1,Math.max(0,(Q+F/2)/n.value));a.width(ce*n.value),l.text((ce*100).toFixed(2)+"%"),l.center(a.width()/2+A.width/2,a.height()/2)},end:()=>{N.value=!1;const U=ae();E.setAttribute("fill",U.primary),E.setAttribute("stroke",U.primaryDark),E.setAttribute("stroke-width","1"),Z.setAttribute("stroke",U.primaryDark),Z.setAttribute("stroke-width","2"),Z.setAttribute("opacity","0.8");const J=Math.min(1,Math.max(0,(Q+F/2)/n.value));t.row[i.value.progress]=J,L(J)}}})}oe({id:t.row[i.value.id],startDate:t.row[i.value.startdate],endDate:t.row[i.value.enddate]}),Te(Y).draggable({inertia:!1,modifiers:[Te.modifiers.restrictRect({restriction:"parent",endOnly:!0})],autoScroll:!0,listeners:{start:B=>{N.value||(h.value=Number(B.target.getAttribute("data-x")),n.value=B.target.width.baseVal.value)},move:B=>{if(N.value)return;let E=((parseFloat(B.target.getAttribute("data-x")||"0")||0)+B.dx).toString();Object.assign(B.target.style,{width:`${B.rect.width}px`,height:`${B.rect.height}px`,transform:`translate(${E}px, 0px)`}),B.target.setAttribute("data-x",E),B.target.setAttribute("data-y","0")},end:B=>{if(N.value)return;let E=B.target,Q=parseFloat(E.getAttribute("data-x")||"0")||0,J=Math.round(Q/S.value)*S.value;J<0&&(J=0),J>_.value*S.value&&(J=_.value*S.value);const ce=i.value.parentId||"pid",ke=t.row[ce];if(ke&&ke!=="0"){const P=w.tasks.find(re=>String(re[i.value.id])===String(ke));if(P){let re=0;if(v.value==="月"||v.value==="日")re=b(P[i.value.startdate]).diff(b(t.startGanttDate),"days")*S.value;else if(v.value==="周"){const ie=b(t.startGanttDate).startOf("isoWeek");re=b(P[i.value.startdate]).startOf("isoWeek").diff(ie,"week")*S.value}else v.value==="时"&&(re=b(P[i.value.startdate]).diff(b(t.startGanttDate),"hours")*S.value);J<re&&(J=re)}}E.style.transform=`translate(${J}px, 0px)`,E.setAttribute("data-x",J.toString());const ge=Math.round((J-h.value)/S.value);let C=0,g=0;if(v.value==="月"||v.value==="日"?C=ge:v.value==="周"?C=ge*7:v.value==="时"&&(g=ge),v.value==="时")t.row[i.value.startdate]=b(t.row[i.value.startdate]).add(g,"hours").format("YYYY-MM-DD HH:mm:ss"),t.row[i.value.enddate]=b(t.row[i.value.enddate]).add(g,"hours").format("YYYY-MM-DD HH:mm:ss"),t.row[i.value.takestime]=b(t.row[i.value.enddate]).diff(b(t.row[i.value.startdate]),"hours")+1+"小时";else if(t.row[i.value.startdate]=b(t.row[i.value.startdate]).add(C,"days").format("YYYY-MM-DD HH:mm:ss"),t.row[i.value.enddate]=b(t.row[i.value.enddate]).add(C,"days").format("YYYY-MM-DD HH:mm:ss"),v.value==="月"||v.value==="日")t.row[i.value.takestime]=b(t.row[i.value.enddate]).diff(b(t.row[i.value.startdate]),"days")+1+"天";else if(v.value==="周"){const P=b(t.row[i.value.startdate]).startOf("isoWeek"),re=b(t.row[i.value.enddate]).startOf("isoWeek");t.row[i.value.takestime]=re.diff(P,"week")+1+"周"}const M=b(t.row[i.value.startdate]),I=t.row[i.value.id],V=(P,re)=>{const ie=[];for(const he of re)String(he[ce])===String(P)&&(ie.push(he),ie.push(...V(he[i.value.id],re)));return ie},x=V(I,w.tasks);if((v.value==="时"?g:C)>0)for(const P of x)b(P[i.value.startdate]).isBefore(M)&&(v.value==="时"?(P[i.value.startdate]=b(P[i.value.startdate]).add(g,"hours").format("YYYY-MM-DD HH:mm:ss"),P[i.value.enddate]=b(P[i.value.enddate]).add(g,"hours").format("YYYY-MM-DD HH:mm:ss")):(P[i.value.startdate]=b(P[i.value.startdate]).add(C,"days").format("YYYY-MM-DD HH:mm:ss"),P[i.value.enddate]=b(P[i.value.enddate]).add(C,"days").format("YYYY-MM-DD HH:mm:ss")),oe({id:P[i.value.id],startDate:P[i.value.startdate],endDate:P[i.value.enddate]}));oe({id:t.row[i.value.id],startDate:t.row[i.value.startdate],endDate:t.row[i.value.enddate]})}}}),Te(Y).resizable({edges:{left:!0,right:!0,bottom:!1,top:!1},listeners:{start:B=>{h.value=Number(B.target.getAttribute("data-x")),n.value=Number(B.target.getAttribute("width"))},end:B=>{j(t.row);let E=B.target,Q=B.rect.width,U=Math.round(Q/S.value);U<1&&(U=1),Q=U*S.value;let J=h.value;if(B.edges&&B.edges.left){J=h.value+(n.value-Q),J=Math.round(J/S.value)*S.value,J<0&&(J=0);const V=i.value.parentId||"pid",x=t.row[V];if(x&&x!=="0"){const de=w.tasks.find(P=>String(P[i.value.id])===String(x));if(de){let P=0;if(v.value==="月"||v.value==="日")P=b(de[i.value.startdate]).diff(b(t.startGanttDate),"days")*S.value;else if(v.value==="周"){const re=b(t.startGanttDate).startOf("isoWeek");P=b(de[i.value.startdate]).startOf("isoWeek").diff(re,"week")*S.value}else v.value==="时"&&(P=b(de[i.value.startdate]).diff(b(t.startGanttDate),"hours")*S.value);J<P&&(J=P,Q=h.value+n.value-J,U=Math.round(Q/S.value),U<1&&(U=1),Q=U*S.value)}}}E.setAttribute("width",Q.toString()),E.style.width=Q+"px",E.style.transform=`translate(${J}px, 0px)`,E.setAttribute("data-x",J.toString());const ce=Math.round(J/S.value),ke=ce+U-1;let ge,C;if(v.value==="月"||v.value==="日")ge=b(t.startGanttDate).add(ce,"days").format("YYYY-MM-DD HH:mm:ss"),C=b(t.startGanttDate).add(ke,"days").format("YYYY-MM-DD HH:mm:ss"),t.row[i.value.takestime]=U+"天";else if(v.value==="周"){const V=b(t.startGanttDate).startOf("isoWeek");ge=V.add(ce,"weeks").format("YYYY-MM-DD HH:mm:ss"),C=V.add(ke,"weeks").endOf("isoWeek").format("YYYY-MM-DD HH:mm:ss"),t.row[i.value.takestime]=U+"周"}else ge=b(t.startGanttDate).add(ce,"hours").format("YYYY-MM-DD HH:mm:ss"),C=b(t.startGanttDate).add(ke,"hours").format("YYYY-MM-DD HH:mm:ss"),t.row[i.value.takestime]=U+"小时";t.row[i.value.startdate]=ge,t.row[i.value.enddate]=C;let g=et(Y),M=g.select(".innerRect").first(),I=g.select("rect:not(.innerRect):not(.progressHandle)").first();if(M){let V=t.row[i.value.progress]?Q*Number(t.row[i.value.progress]):Q;M.width(V)}if(I&&I.width(Q),B.edges&&B.edges.left){const V=b(ge),x=t.row[i.value.id],de=i.value.parentId||"pid",P=(ie,he)=>{const Se=[];for(const Ve of he)String(Ve[de])===String(ie)&&(Se.push(Ve),Se.push(...P(Ve[i.value.id],he)));return Se},re=P(x,w.tasks);for(const ie of re)if(b(ie[i.value.startdate]).isBefore(V)){const he=V.diff(b(ie[i.value.startdate]),v.value==="时"?"hours":"days");v.value==="时"?(ie[i.value.startdate]=b(ie[i.value.startdate]).add(he,"hours").format("YYYY-MM-DD HH:mm:ss"),ie[i.value.enddate]=b(ie[i.value.enddate]).add(he,"hours").format("YYYY-MM-DD HH:mm:ss")):(ie[i.value.startdate]=b(ie[i.value.startdate]).add(he,"days").format("YYYY-MM-DD HH:mm:ss"),ie[i.value.enddate]=b(ie[i.value.enddate]).add(he,"days").format("YYYY-MM-DD HH:mm:ss")),oe({id:ie[i.value.id],startDate:ie[i.value.startdate],endDate:ie[i.value.enddate]})}}oe({id:t.row[i.value.id],startDate:ge,endDate:C})}},modifiers:[Te.modifiers.restrictEdges({outer:"parent"}),Te.modifiers.restrictSize({min:{width:S.value,height:m.value}})],inertia:!1,hold:1})};return e.watch(()=>[t.row[i.value.startdate],t.row[i.value.enddate]],()=>{r.value&&k.value&&ne(r.value)},{deep:!1}),e.onMounted(()=>{if(console.log(`[Bar] Component mounted, task: ${t.row[i.value.id]}, mode: ${w.mode}`),r.value&&!k.value&&(ne(r.value),k.value=!0),y&&(D.value=y(t.row),r.value&&ne(r.value)),r.value){let Y=r.value.parentElement;for(;Y&&!Y.hasAttribute("data-gantt-theme");)Y=Y.parentElement;if(Y){const K=new MutationObserver(()=>{u.value++});K.observe(Y,{attributes:!0,attributeFilter:["data-gantt-theme","style"]}),e.onBeforeUnmount(()=>K.disconnect())}}}),e.onDeactivated(()=>{if(r.value)try{Te(r.value).unset()}catch{}s.value=!1}),e.onBeforeUnmount(()=>{if(r.value)try{Te(r.value).unset()}catch{}s.value=!1}),{bar:r,barHeight:m,direction:p,oldBarDataX:h,oldBarWidth:n,showRow:s,hover:c,barColor:D,timelineCellCount:_,scale:S,mode:v,mapFields:i,hoverActive:W,hoverInactive:z,WeekEndColor:ee}}}),fn=["data-task-id"],un=["height"];function gn(t,o,r,m,p,h){return t.showRow?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["barRow",{active:t.hover}]),style:e.normalizeStyle({height:t.rowHeight+"px"}),onMouseover:o[0]||(o[0]=n=>t.hoverActive()),onMouseleave:o[1]||(o[1]=n=>t.hoverInactive()),"data-task-id":t.row[t.mapFields.id]},[t.showRow?(e.openBlock(),e.createElementBlock("svg",{key:"row.no",ref:"bar",class:e.normalizeClass(["bar",{active:t.hover}]),height:t.barHeight+"px",style:{overflow:"visible"}},null,10,un)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.timelineCellCount,n=>(e.openBlock(),e.createElementBlock("div",{key:n+t.row.id+t.timelineCellCount+t.showRow+"_template",class:"cell",style:e.normalizeStyle({width:t.scale+"px",minWidth:t.scale+"px",maxWidth:t.scale+"px",height:t.rowHeight+"px",background:t.WeekEndColor(n)})},null,4))),128))],46,fn)):e.createCommentVNode("",!0)}const pn=ye(hn,[["render",gn],["__scopeId","data-v-c1417b01"]]),kn=e.defineComponent({name:"BarRecursionRow",props:{rowHeight:{type:Number,default:0}},setup(){const t=e.ref([]),o=e.ref(0),r=e.computed(()=>w.tasks),m=e.computed(()=>w.timelineCellCount),p=e.computed(()=>w.scale),h=e.computed(()=>w.mode),n=e.computed(()=>w.startGanttDate?w.startGanttDate.toISOString():void 0),s=e.computed(()=>w.endGanttDate?w.endGanttDate.toISOString():void 0),c=e.computed(()=>w.mapFields),D=e.computed(()=>w.collapsedTasks),k=i=>{const H=new Set,y=L=>{r.value.filter(z=>z[c.value.parentId]===L).forEach(z=>{const ee=z[c.value.id];H.add(ee),y(ee)})};return y(i),H},u=e.computed(()=>new Set(t.value.map(i=>i[c.value.id]))),N=e.computed(()=>{const i=u.value,H=w.tasks.filter(L=>!i.has(L[c.value.id])),y=new Set;return D.value.forEach(L=>{k(L).forEach(z=>y.add(z))}),H.filter(L=>!y.has(L[c.value.id]))}),_=e.computed({get:()=>w.expandRow,set:i=>{se.setExpandRow(i)}});e.watch(_,i=>{t.value=[],S(i.pid)});const S=i=>{let H=r.value.filter(y=>y[c.value.parentId]===i);if(H&&H.length>0)for(let y=0;y<H.length;y++)_.value.expand===!1&&t.value.push(H[y]),S(H[y][c.value.id])},v=se.setExpandRow;return{hiddenTask:t,componentKey:o,allTask:r,timelineCellCount:m,scale:p,mode:h,startGanttDate:n,endGanttDate:s,mapFields:c,filterTask:N,expandRow:_,setExpandRow:v,recursionRow:S}},components:{Bar:pn},mounted(){this.$nextTick(()=>{})},activated(){this.componentKey++}});function yn(t,o,r,m,p,h){const n=e.resolveComponent("Bar");return e.openBlock(),e.createElementBlock("div",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.filterTask,s=>(e.openBlock(),e.createBlock(n,{key:s.id,startGanttDate:t.startGanttDate,endGanttDate:t.endGanttDate,row:s,rowHeight:t.rowHeight},null,8,["startGanttDate","endGanttDate","row","rowHeight"]))),128))])}const Cn=ye(kn,[["render",yn]]),wn=e.defineComponent({name:"TaskLinks",props:{containerWidth:{type:Number,required:!0},containerHeight:{type:Number,required:!0},linkConfig:{type:Object,default:()=>({color:"#3498db",width:2,dashArray:void 0,showArrow:!0,arrowColor:void 0,arrowSize:8,showLabels:!1,labelColor:"#666",labelFontSize:12,cornerRadius:5,pathType:pe.BEZIER,bezierCurvature:.4,rightAngleOffset:30,smoothCorners:!0,enableDashAnimation:!0,dashAnimationSpeed:.8,parentChildStyle:{color:"#95a5a6",width:1,dashArray:"3,3"}})}},setup(t){const o=e.ref([]),r=d=>{if(!w.tasks.find(q=>q[w.mapFields.id]===d))return null;const f=document.querySelector(`[data-task-id="${d}"]`);if(!f)return null;const l=f.querySelector(".bar");if(!l)return null;const T=f.closest(".table .content");if(!T)return null;const $=parseFloat(l.getAttribute("data-x")||"0"),A=l.width.baseVal.value,F=f.getBoundingClientRect(),G=T.getBoundingClientRect(),R=F.top-G.top;return{x:$,y:R,width:A,height:F.height,centerX:$+A/2,centerY:R+F.height/2,rightX:$+A,leftX:$,topY:R,bottomY:R+F.height}},m=(d,a)=>w.tasks.filter(l=>l[w.mapFields.parentId]===d&&l[w.mapFields.parentId]!=="0").findIndex(l=>l[w.mapFields.id]===a),p=()=>{const d=document.querySelector(".barRow");return d?d.offsetHeight:50},h=d=>{const a=p();return Math.floor(d/a)*a+a/2},n=(d,a)=>{const f=p();return(Math.floor(d/f)+1+a)*f+f/2},s=(d,a,f)=>{const l=p(),$=Math.floor(d/l)*l+l+f;return a>$+l?h($+l/2):h($)},c=d=>{const a=t.linkConfig.linkTypeColors;if(!a)return{[X.FINISH_TO_START]:"#3498db",[X.START_TO_START]:"#2ecc71",[X.FINISH_TO_FINISH]:"#e74c3c",[X.START_TO_FINISH]:"#f39c12",[X.PARENT_CHILD]:"#95a5a6"}[d]||t.linkConfig.color;switch(d){case X.FINISH_TO_START:return a.finishToStart||"#3498db";case X.START_TO_START:return a.startToStart||"#2ecc71";case X.FINISH_TO_FINISH:return a.finishToFinish||"#e74c3c";case X.START_TO_FINISH:return a.startToFinish||"#f39c12";default:return t.linkConfig.color}},D=d=>d===X.PARENT_CHILD?{color:t.linkConfig.parentChildStyle.color||"#95a5a6",width:t.linkConfig.parentChildStyle.width,dashArray:t.linkConfig.parentChildStyle.dashArray}:{color:c(d),width:t.linkConfig.width,dashArray:t.linkConfig.dashArray},k=(d,a,f,l="")=>{if(!d||!a)return"";const{pathType:T}=t.linkConfig;switch(f){case X.PARENT_CHILD:return u(d,a,T);case X.FINISH_TO_START:return v(d,a,T);case X.START_TO_START:return i(d,a,T);case X.FINISH_TO_FINISH:return H(d,a,T);case X.START_TO_FINISH:return y(d,a,T);default:return v(d,a,T)}},u=(d,a,f,l)=>{const T=d.id||d.taskId,$=a.id||a.taskId,A=m(T,$),F=d.leftX,G=d.centerY,R=t.linkConfig.arrowSize||8,q=a.leftX-R,me=a.centerY;return N(F,G,q,me,A,f)},N=(d,a,f,l,T,$)=>{const A=f-d,F=l-a;if(Math.abs(A)<30&&Math.abs(F)<15)return`M ${d} ${a} L ${f} ${l}`;switch($){case pe.STRAIGHT:return`M ${d} ${a} L ${f} ${l}`;case pe.BEZIER:return _(d,a,f,l);case pe.RIGHT_ANGLE:default:return S(d,a,f,l,T)}},_=(d,a,f,l,T)=>{const $=f-d,{bezierCurvature:A}=t.linkConfig;if($>0){const F=Math.min(Math.abs($)*A,60),G=d+F,R=f-F;return`M ${d} ${a} C ${G} ${a} ${R} ${l} ${f} ${l}`}else{const F=t.linkConfig.rightAngleOffset,G=s(a,l,F),R=F*A;return`M ${d} ${a}
2
- C ${d+R} ${a} ${d+R} ${G} ${d+F/2} ${G}
3
- C ${f-R} ${G} ${f-R} ${l} ${f} ${l}`}},S=(d,a,f,l,T)=>{const $=f-d,{rightAngleOffset:A,smoothCorners:F,cornerRadius:G}=t.linkConfig;if(n(a,T),$>0){const R=d+A;if(F&&G>0){const q=Math.min(G,Math.abs(l-a)/2,Math.abs(f-R)/2);return`M ${d} ${a}
4
- L ${R-q} ${a}
5
- Q ${R} ${a} ${R} ${a+(l>a?q:-q)}
6
- L ${R} ${l-(l>a?q:-q)}
7
- Q ${R} ${l} ${R+q} ${l}
8
- L ${f} ${l}`}else return`M ${d} ${a}
9
- L ${R} ${a}
10
- L ${R} ${l}
11
- L ${f} ${l}`}else{const R=A,q=s(a,l,R),me=d+R/2,ae=f-R/2;if(F&&G>0){const Z=Math.min(G,R/4);return`M ${d} ${a}
12
- L ${me-Z} ${a}
13
- Q ${me} ${a} ${me} ${a+Z}
14
- L ${me} ${q-Z}
15
- Q ${me} ${q} ${me+Z} ${q}
16
- L ${ae-Z} ${q}
17
- Q ${ae} ${q} ${ae} ${q+Z}
18
- L ${ae} ${l-Z}
19
- Q ${ae} ${l} ${ae+Z} ${l}
20
- L ${f} ${l}`}else return`M ${d} ${a}
21
- L ${me} ${a}
22
- L ${me} ${q}
23
- L ${ae} ${q}
24
- L ${ae} ${l}
25
- L ${f} ${l}`}},v=(d,a,f)=>{const l=t.linkConfig.arrowSize||8,T=d.rightX,$=d.centerY,A=a.leftX-l,F=a.centerY;return L(T,$,A,F,f,"horizontal")},i=(d,a,f)=>{const l=t.linkConfig.arrowSize||8,T=d.leftX,$=d.centerY,A=a.leftX-l,F=a.centerY;return L(T,$,A,F,f,"left-u")},H=(d,a,f)=>{const l=t.linkConfig.arrowSize||8,T=d.rightX,$=d.centerY,A=a.rightX+l,F=a.centerY;return L(T,$,A,F,f,"right-u")},y=(d,a,f)=>{const l=t.linkConfig.arrowSize||8,T=d.leftX,$=d.centerY,A=a.rightX+l,F=a.centerY;return L(T,$,A,F,f,"cross")},L=(d,a,f,l,T,$)=>{const{bezierCurvature:A,rightAngleOffset:F,smoothCorners:G,cornerRadius:R}=t.linkConfig;switch(T){case pe.STRAIGHT:return`M ${d} ${a} L ${f} ${l}`;case pe.BEZIER:return W(d,a,f,l,$,A);case pe.RIGHT_ANGLE:default:return z(d,a,f,l,$,F,G,R)}},W=(d,a,f,l,T,$)=>{const A=f-d,F=l-a;switch(T){case"horizontal":if(A>20&&Math.abs(F)<10)return`M ${d} ${a} L ${f} ${l}`;if(A<20){const ke=s(a,l,30),ge=30*$;return`M ${d} ${a}
26
- C ${d+ge} ${a} ${d+ge} ${ke} ${d+30/2} ${ke}
27
- C ${f-ge} ${ke} ${f-ge} ${l} ${f} ${l}`}const G=Math.min(Math.abs(A)*$,60),R=d+G,q=f-G;return`M ${d} ${a} C ${R} ${a} ${q} ${l} ${f} ${l}`;case"left-u":const me=25,ae=Math.min(d,f)-me,Z=me*$;if(Math.abs(F)>p()){const ce=h((a+l)/2);return`M ${d} ${a}
28
- C ${d-Z} ${a} ${ae} ${a+Z} ${ae} ${ce}
29
- C ${ae} ${l-Z} ${f-Z} ${l} ${f} ${l}`}return`M ${d} ${a} C ${ae} ${a} ${ae} ${l} ${f} ${l}`;case"right-u":const fe=25,B=Math.max(d,f)+fe,E=fe*$;if(Math.abs(F)>p()){const ce=h((a+l)/2);return`M ${d} ${a}
30
- C ${d+E} ${a} ${B} ${a+E} ${B} ${ce}
31
- C ${B} ${l-E} ${f+E} ${l} ${f} ${l}`}return`M ${d} ${a} C ${B} ${a} ${B} ${l} ${f} ${l}`;case"cross":if(A>20&&Math.abs(F)<10)return`M ${d} ${a} L ${f} ${l}`;const Q=Math.min(Math.abs(A)*$,60),U=d-Q,J=f+Q;return`M ${d} ${a} C ${U} ${a} ${J} ${l} ${f} ${l}`;default:return`M ${d} ${a} L ${f} ${l}`}},z=(d,a,f,l,T,$,A,F)=>{const G=f-d,R=l-a;switch(T){case"horizontal":if(G>20&&Math.abs(R)<10)return`M ${d} ${a} L ${f} ${l}`;if(G<20){const E=$,Q=s(a,l,E),U=d+E/2,J=f-E/2;if(A&&F>0){const ce=Math.min(F,E/4);return`M ${d} ${a}
32
- L ${U-ce} ${a}
33
- Q ${U} ${a} ${U} ${a+ce}
34
- L ${U} ${Q-ce}
35
- Q ${U} ${Q} ${U+ce} ${Q}
36
- L ${J-ce} ${Q}
37
- Q ${J} ${Q} ${J} ${Q+ce}
38
- L ${J} ${l-ce}
39
- Q ${J} ${l} ${J+ce} ${l}
40
- L ${f} ${l}`}return`M ${d} ${a}
41
- L ${U} ${a}
42
- L ${U} ${Q}
43
- L ${J} ${Q}
44
- L ${J} ${l}
45
- L ${f} ${l}`}const q=d+Math.abs(G)/2;if(A&&F>0){const E=Math.min(F,Math.abs(G)/4,Math.abs(R)/2);return R>0?`M ${d} ${a}
46
- L ${q-E} ${a}
47
- Q ${q} ${a} ${q} ${a+E}
48
- L ${q} ${l-E}
49
- Q ${q} ${l} ${q+E} ${l}
50
- L ${f} ${l}`:`M ${d} ${a}
51
- L ${q-E} ${a}
52
- Q ${q} ${a} ${q} ${a-E}
53
- L ${q} ${l+E}
54
- Q ${q} ${l} ${q+E} ${l}
55
- L ${f} ${l}`}return`M ${d} ${a} L ${q} ${a} L ${q} ${l} L ${f} ${l}`;case"left-u":const me=$,ae=Math.min(d,f)-me;if(A&&F>0){const E=Math.min(F,me/2,Math.abs(R)/4);return`M ${d} ${a}
56
- L ${ae+E} ${a}
57
- Q ${ae} ${a} ${ae} ${a+(R>0?E:-E)}
58
- L ${ae} ${l-(R>0?E:-E)}
59
- Q ${ae} ${l} ${ae+E} ${l}
60
- L ${f} ${l}`}return`M ${d} ${a} L ${ae} ${a} L ${ae} ${l} L ${f} ${l}`;case"right-u":const Z=$,fe=Math.max(d,f)+Z;if(A&&F>0){const E=Math.min(F,Z/2,Math.abs(R)/4);return`M ${d} ${a}
61
- L ${fe-E} ${a}
62
- Q ${fe} ${a} ${fe} ${a+(R>0?E:-E)}
63
- L ${fe} ${l-(R>0?E:-E)}
64
- Q ${fe} ${l} ${fe-E} ${l}
65
- L ${f} ${l}`}return`M ${d} ${a} L ${fe} ${a} L ${fe} ${l} L ${f} ${l}`;case"cross":if(G>20&&Math.abs(R)<10)return`M ${d} ${a} L ${f} ${l}`;const B=d+G/2;if(A&&F>0){const E=Math.min(F,Math.abs(G)/4,Math.abs(R)/2);return R>0?`M ${d} ${a}
66
- L ${B-E} ${a}
67
- Q ${B} ${a} ${B} ${a+E}
68
- L ${B} ${l-E}
69
- Q ${B} ${l} ${B+E} ${l}
70
- L ${f} ${l}`:`M ${d} ${a}
71
- L ${B-E} ${a}
72
- Q ${B} ${a} ${B} ${a-E}
73
- L ${B} ${l+E}
74
- Q ${B} ${l} ${B+E} ${l}
75
- L ${f} ${l}`}return`M ${d} ${a} L ${B} ${a} L ${B} ${l} L ${f} ${l}`;default:return`M ${d} ${a} L ${f} ${l}`}},ee=(d,a,f=X.FINISH_TO_START)=>{if(!d)return console.warn("子任务位置无效"),"";try{const l=d.leftX,T=d.centerY,$=l-a,A=T-a/2,F=T+a/2;return`${l},${T} ${$},${A} ${$},${F}`}catch(l){return console.error("箭头生成失败:",l),""}},oe=(d,a,f,l)=>{if(!d||!a)return"";try{let T,$,A="right";switch(f){case X.FINISH_TO_START:T=a.leftX,$=a.centerY,A="right";break;case X.START_TO_START:T=a.leftX,$=a.centerY,A="right";break;case X.FINISH_TO_FINISH:T=a.rightX,$=a.centerY,A="left";break;case X.START_TO_FINISH:T=a.rightX,$=a.centerY,A="left";break;default:T=a.leftX,$=a.centerY,A="right"}let F,G,R,q;return A==="right"?(F=T-l,G=$-l/2,R=T-l,q=$+l/2):(F=T+l,G=$-l/2,R=T+l,q=$+l/2),`${T},${$} ${F},${G} ${R},${q}`}catch(T){return console.error("依赖箭头生成失败:",T),""}},j=d=>{const a=new Set,f=l=>{w.tasks.filter($=>$[w.mapFields.parentId]===l).forEach($=>{const A=$[w.mapFields.id];a.add(A),f(A)})};return f(d),a},ne=d=>{for(const a of w.collapsedTasks)if(j(a).has(d))return!0;return!1},Y=()=>{console.log("updateLinks called");const d=[],a=t.linkConfig.linkTypeVisibility||{finishToStart:!0,startToStart:!0,finishToFinish:!0,startToFinish:!0,parentChild:!0};a.parentChild&&w.tasks.forEach(T=>{const $=T[w.mapFields.parentId],A=T[w.mapFields.id];if($&&$!=="0"){if(ne(A))return;const F=r($),G=r(A);if(F&&G){const R=`parent-child-${$}-${A}`,q={...F,id:$,taskId:$},me={...G,id:A,taskId:A},ae=k(q,me,X.PARENT_CHILD,R),Z=t.linkConfig.showArrow?ee(G,t.linkConfig.arrowSize,X.PARENT_CHILD):"";d.push({id:R,sourceId:$,targetId:A,type:X.PARENT_CHILD,path:ae,arrowPoints:Z,labelX:G.centerX,labelY:G.centerY-10})}}});const f=Ge.getDependencies();console.log("Dependencies:",f);const l=T=>{switch(T){case X.FINISH_TO_START:return a.finishToStart;case X.START_TO_START:return a.startToStart;case X.FINISH_TO_FINISH:return a.finishToFinish;case X.START_TO_FINISH:return a.startToFinish;case X.PARENT_CHILD:return a.parentChild;default:return!0}};f.forEach(T=>{if(!l(T.type))return;const $=r(T.sourceTaskId),A=r(T.targetTaskId);if($&&A){const F=`dependency-${T.id}`,G={...$,id:T.sourceTaskId,taskId:T.sourceTaskId},R={...A,id:T.targetTaskId,taskId:T.targetTaskId},q=k(G,R,T.type,F),me=t.linkConfig.showArrow?oe(G,R,T.type,t.linkConfig.arrowSize):"",ae={[X.FINISH_TO_START]:"FS",[X.START_TO_START]:"SS",[X.FINISH_TO_FINISH]:"FF",[X.START_TO_FINISH]:"SF",[X.PARENT_CHILD]:""};d.push({id:F,sourceId:T.sourceTaskId,targetId:T.targetTaskId,type:T.type,path:q,arrowPoints:me,label:ae[T.type]||"",labelX:($.centerX+A.centerX)/2,labelY:($.centerY+A.centerY)/2-10})}}),o.value=d};e.watch(()=>w.tasks,()=>{setTimeout(Y,50)},{deep:!0}),e.watch(()=>w.scale,()=>{setTimeout(Y,50)}),e.watch(()=>w.mode,()=>{setTimeout(Y,200)}),e.watch(()=>w.timelineCellCount,()=>{setTimeout(Y,100)}),e.watch(()=>[w.startGanttDate,w.endGanttDate],()=>{setTimeout(Y,100)}),e.watch(()=>w.barDate,()=>{requestAnimationFrame(Y)},{deep:!0}),e.watch(()=>t.linkConfig.linkTypeVisibility,()=>{setTimeout(Y,50)},{deep:!0}),e.watch(()=>w.collapsedTasks,()=>{setTimeout(Y,50)},{deep:!0});let K=null,O=null;e.onMounted(()=>{setTimeout(Y,100);const d=document.querySelector(".gantt");d&&(K=new ResizeObserver(Y),K.observe(d),O=new MutationObserver(a=>{let f=!1;a.forEach(l=>{var $,A;const T=l.target;if(l.type==="attributes"){const F=l.attributeName;(F==="data-x"||F==="width"||F==="style"||F==="transform")&&(($=T.classList)!=null&&$.contains("bar")||(A=T.classList)!=null&&A.contains("barRow")||T.tagName==="svg")&&(f=!0)}}),f&&requestAnimationFrame(Y)}),O.observe(d,{attributes:!0,subtree:!0,attributeFilter:["style","data-x","transform","width"]}))}),e.onUnmounted(()=>{K&&K.disconnect(),O&&O.disconnect()});const te=d=>{const a=D(d);return!!(a.dashArray&&a.dashArray.length>0)};return{links:o,updateLinks:Y,getLinkStyle:D,isDashedLine:te,getDashAnimationStyle:d=>{if(!te(d.type)||!t.linkConfig.enableDashAnimation)return{};const a=D(d.type),f=t.linkConfig.dashAnimationSpeed||.8,l=d.type===X.PARENT_CHILD?f*.6:f,A=(a.dashArray||"5,5").split(",").map(Number).reduce((F,G)=>F+G,0);return{"--animation-duration":`${l}s`,"--dash-length":`${A}px`}}}}}),bn=["width","height"],Sn=["d","stroke","stroke-width","stroke-dasharray"],Dn=["points","fill","stroke"],Tn=["x","y","fill","font-size"];function En(t,o,r,m,p,h){return e.openBlock(),e.createElementBlock("svg",{class:"task-links-layer",width:t.containerWidth,height:t.containerHeight,style:{position:"absolute",top:"0px",left:"0px",pointerEvents:"none",zIndex:50,overflow:"visible"}},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.links,n=>(e.openBlock(),e.createElementBlock("g",{key:n.id},[e.createElementVNode("path",{d:n.path,stroke:t.getLinkStyle(n.type).color,"stroke-width":t.getLinkStyle(n.type).width,"stroke-dasharray":t.getLinkStyle(n.type).dashArray,fill:"none",class:e.normalizeClass(["task-link",n.type,{"dash-animated":t.isDashedLine(n.type)&&t.linkConfig.enableDashAnimation}]),style:e.normalizeStyle(t.getDashAnimationStyle(n))},null,14,Sn),t.linkConfig.showArrow&&n.arrowPoints&&n.arrowPoints.length>0?(e.openBlock(),e.createElementBlock("polygon",{key:0,points:n.arrowPoints,fill:t.getLinkStyle(n.type).color,stroke:t.getLinkStyle(n.type).color,"stroke-width":.5,class:"task-link-arrow"},null,8,Dn)):e.createCommentVNode("",!0),n.label&&t.linkConfig.showLabels?(e.openBlock(),e.createElementBlock("text",{key:1,x:n.labelX,y:n.labelY,fill:t.linkConfig.labelColor,"font-size":t.linkConfig.labelFontSize,"text-anchor":"middle",class:"task-link-label"},e.toDisplayString(n.label),9,Tn)):e.createCommentVNode("",!0)]))),128))],8,bn)}const Mn=ye(wn,[["render",En],["__scopeId","data-v-42ca36e1"]]),$n=e.defineComponent({props:{rowHeight:{type:Number,required:!0},headers:{type:Array,default:()=>[]}},components:{BarRecursionRow:Cn,TaskLinks:Mn},setup(t){const o=e.ref(null),{scrollTop:r,scrollFlag:m,setScrollTop:p,setScrollFlag:h}=gt(),{config:n}=Be(),s=e.computed(()=>w.tasks),c=e.computed(()=>w.timelineCellCount),D=e.computed(()=>w.scale),k=e.computed(()=>w.mode),u=e.computed(()=>w.startGanttDate),N=e.computed(()=>w.endGanttDate),_=e.computed(()=>w.mapFields),S=e.computed(()=>c.value*D.value),v=e.computed(()=>s.value.length*t.rowHeight);e.watch(r,W=>{m.value&&o.value&&(o.value.scrollTop=W)}),e.onMounted(()=>{o.value&&(o.value.scrollTop=r.value)});const i=()=>s.value.filter(W=>W[_.value.parentId]==="0");let H=null;return{barContent:o,scrollFlag:m,tasks:s,timelineCellCount:c,scale:D,mode:k,startGanttDate:u,endGanttDate:N,mapFields:_,getRootNode:i,scroll:()=>{H&&cancelAnimationFrame(H),H=requestAnimationFrame(()=>{o.value&&(h(!1),p(o.value.scrollTop)),H=null})},mouseover:()=>{},setScrollFlag:h,containerWidth:S,containerHeight:v,linkConfig:n}}});function Vn(t,o,r,m,p,h){const n=e.resolveComponent("BarRecursionRow"),s=e.resolveComponent("TaskLinks");return t.tasks?(e.openBlock(),e.createElementBlock("div",{key:0,ref:"barContent",onScroll:o[0]||(o[0]=c=>t.scroll()),onMouseover:o[1]||(o[1]=c=>t.mouseover()),class:"content"},[e.createElementVNode("div",{class:"content-inner",style:e.normalizeStyle({minHeight:t.containerHeight+"px",position:"relative"})},[(e.openBlock(),e.createBlock(n,{key:`${t.mode}-${t.scale}-${t.timelineCellCount}`,rowHeight:t.rowHeight,tasks:t.tasks},null,8,["rowHeight","tasks"])),e.createVNode(s,{containerWidth:t.containerWidth,containerHeight:t.containerHeight,linkConfig:t.linkConfig},null,8,["containerWidth","containerHeight","linkConfig"])],4)],544)):e.createCommentVNode("",!0)}const Nn=ye($n,[["render",Vn],["__scopeId","data-v-821f7968"]]),Ln=e.defineComponent({props:{headersHeight:{type:Number,default:50},rowHeight:{type:Number,default:50}},components:{TimelineHeader:ln,TableContent:Nn},setup(t){const o=e.ref(null),r=e.computed(()=>w.dayHeaders),m=e.computed(()=>w.weekHeaders),p=e.computed(()=>w.monthHeaders),h=e.computed(()=>w.hourHeaders),n=e.computed(()=>w.startGanttDate),s=e.computed(()=>w.mode),c=e.computed(()=>w.scale);e.computed(()=>w.timelineCellCount*c.value+100),e.computed(()=>w.tasks.length*t.rowHeight+100);const D=()=>{if(o.value)switch(s.value){case"月":case"日":o.value.scrollLeft=Number(b().diff(b(n.value),"day"))*Number(c.value);break;case"周":const k=b().startOf("isoWeek"),u=b(n.value).startOf("isoWeek");o.value.scrollLeft=Number(k.diff(u,"week"))*Number(c.value);break;case"时":o.value.scrollLeft=Number(b().diff(b(n.value),"hour"))*Number(c.value);break}};return e.watch(()=>be.shouldScrollToToday,k=>{k&&(D(),be.shouldScrollToToday=!1)}),e.onMounted(()=>{}),{tableBar:o,dayHeaders:r,weekHeaders:m,monthHeaders:p,hourHeaders:h,startGanttDate:n,mode:s,scale:c,scrollToToday:D}}}),An={ref:"tableBar",class:"table"};function Bn(t,o,r,m,p,h){const n=e.resolveComponent("TimelineHeader"),s=e.resolveComponent("TableContent");return e.openBlock(),e.createElementBlock("div",An,[e.createElementVNode("div",{class:"header",style:e.normalizeStyle({height:`${t.headersHeight}px`})},[o[0]||(o[0]=e.createElementVNode("div",{class:"header-border-top"},null,-1)),e.createVNode(n,{weekHeaders:t.weekHeaders,hourHeaders:t.hourHeaders,dayHeaders:t.dayHeaders,monthHeaders:t.monthHeaders},null,8,["weekHeaders","hourHeaders","dayHeaders","monthHeaders"]),o[1]||(o[1]=e.createElementVNode("div",{class:"header-border-bottom"},null,-1))],4),e.createElementVNode("div",{class:"content",style:e.normalizeStyle({height:`calc(100% - ${t.headersHeight}px)`,width:"fit-content",position:"relative"})},[e.createVNode(s,{rowHeight:t.rowHeight},null,8,["rowHeight"])],4)],512)}const Fn=ye(Ln,[["render",Bn],["__scopeId","data-v-e26e2f76"]]),we=[{id:"metro",nameKey:"theme.metro",descKey:"theme.metroDesc",preview:"#0078d4",cssVariables:{"--primary":"#0078d4","--primary-dark":"#106ebe","--primary-light":"#1084d8","--secondary":"#0d5aa7","--bg-metal-light":"linear-gradient(145deg, #ffffff, #f5f5f5)","--bg-metal-normal":"linear-gradient(145deg, #f5f5f5, #e8e8e8)","--bg-metal-dark":"linear-gradient(145deg, #e6e6e6, #d0d0d0)","--bg-metal-pressed":"linear-gradient(145deg, #e0e0e0, #f8f8f8)","--bg-active":"linear-gradient(145deg, #0078d4, #106ebe)","--bg-active-hover":"linear-gradient(145deg, #1084d8, #0d5aa7)","--bg-active-pressed":"linear-gradient(145deg, #0d5aa7, #1084d8)","--border":"#d0d0d0","--border-dark":"#b0b0b0","--shadow-inset":"inset 0 1px 0 rgba(255, 255, 255, 0.8), inset 0 -1px 0 rgba(0, 0, 0, 0.1)","--shadow-outset":"0 2px 4px rgba(0, 0, 0, 0.1)","--shadow-active":"inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.3)","--text-primary":"#333333","--text-secondary":"#666666","--text-muted":"#999999","--text-white":"#ffffff","--bg-primary":"#f8f8f8","--bg-secondary":"#e8e8e8","--bg-content":"#ffffff","--row-hover":"#FFF3A1","--transition-fast":"0.15s ease","--transition-normal":"0.25s ease","--transition-slow":"0.35s ease","--font-family":"'Segoe UI', Tahoma, Geneva, Verdana, sans-serif","--font-size-base":"12px","--font-weight-normal":"500","--font-weight-bold":"600"}},{id:"dark",nameKey:"theme.dark",descKey:"theme.darkDesc",preview:"#00d4ff",cssVariables:{"--primary":"#00d4ff","--primary-dark":"#00b8e6","--primary-light":"#33ddff","--secondary":"#0099cc","--bg-metal-light":"linear-gradient(145deg, #3a3a3a, #2d2d2d)","--bg-metal-normal":"linear-gradient(145deg, #2d2d2d, #1f1f1f)","--bg-metal-dark":"linear-gradient(145deg, #1f1f1f, #0d0d0d)","--bg-metal-pressed":"linear-gradient(145deg, #0d0d0d, #2d2d2d)","--bg-active":"linear-gradient(145deg, #00d4ff, #0099cc)","--bg-active-hover":"linear-gradient(145deg, #33ddff, #00b8e6)","--bg-active-pressed":"linear-gradient(145deg, #00b8e6, #33ddff)","--border":"#404040","--border-dark":"#2d2d2d","--shadow-inset":"inset 0 1px 0 rgba(255, 255, 255, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.3)","--shadow-outset":"0 2px 8px rgba(0, 0, 0, 0.3)","--shadow-active":"inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.5)","--text-primary":"#ffffff","--text-secondary":"#cccccc","--text-muted":"#888888","--text-white":"#ffffff","--bg-primary":"#1a1a1a","--bg-secondary":"#2d2d2d","--bg-content":"#262626","--row-hover":"#3a4a5a","--transition-fast":"0.15s ease","--transition-normal":"0.25s ease","--transition-slow":"0.35s ease","--font-family":"'Segoe UI', Tahoma, Geneva, Verdana, sans-serif","--font-size-base":"12px","--font-weight-normal":"500","--font-weight-bold":"600"}},{id:"modern",nameKey:"theme.light",descKey:"theme.lightDesc",preview:"#6366f1",cssVariables:{"--primary":"#6366f1","--primary-dark":"#4f46e5","--primary-light":"#8b5cf6","--secondary":"#3730a3","--bg-metal-light":"linear-gradient(145deg, #fafafa, #f0f0f0)","--bg-metal-normal":"linear-gradient(145deg, #f0f0f0, #e0e0e0)","--bg-metal-dark":"linear-gradient(145deg, #e0e0e0, #d0d0d0)","--bg-metal-pressed":"linear-gradient(145deg, #d8d8d8, #f0f0f0)","--bg-active":"linear-gradient(145deg, #6366f1, #4f46e5)","--bg-active-hover":"linear-gradient(145deg, #8b5cf6, #6366f1)","--bg-active-pressed":"linear-gradient(145deg, #4f46e5, #8b5cf6)","--border":"#e0e0e0","--border-dark":"#c0c0c0","--shadow-inset":"inset 0 1px 0 rgba(255, 255, 255, 0.9), inset 0 -1px 0 rgba(0, 0, 0, 0.05)","--shadow-outset":"0 1px 3px rgba(0, 0, 0, 0.08)","--shadow-active":"inset 0 1px 0 rgba(255, 255, 255, 0.3), inset 0 -1px 0 rgba(0, 0, 0, 0.2)","--text-primary":"#1f2937","--text-secondary":"#6b7280","--text-muted":"#9ca3af","--text-white":"#ffffff","--bg-primary":"#ffffff","--bg-secondary":"#f9fafb","--bg-content":"#ffffff","--row-hover":"#e0e7ff","--transition-fast":"0.15s ease","--transition-normal":"0.25s ease","--transition-slow":"0.35s ease","--font-family":"'Inter', 'Segoe UI', sans-serif","--font-size-base":"12px","--font-weight-normal":"400","--font-weight-bold":"600"}},{id:"classic",nameKey:"theme.classic",descKey:"theme.classicDesc",preview:"#2563eb",cssVariables:{"--primary":"#2563eb","--primary-dark":"#1d4ed8","--primary-light":"#3b82f6","--secondary":"#1e40af","--bg-metal-light":"linear-gradient(145deg, #f8f9fa, #e9ecef)","--bg-metal-normal":"linear-gradient(145deg, #e9ecef, #dee2e6)","--bg-metal-dark":"linear-gradient(145deg, #dee2e6, #ced4da)","--bg-metal-pressed":"linear-gradient(145deg, #ced4da, #e9ecef)","--bg-active":"linear-gradient(145deg, #2563eb, #1d4ed8)","--bg-active-hover":"linear-gradient(145deg, #3b82f6, #2563eb)","--bg-active-pressed":"linear-gradient(145deg, #1d4ed8, #3b82f6)","--border":"#ced4da","--border-dark":"#adb5bd","--shadow-inset":"inset 0 1px 0 rgba(255, 255, 255, 0.7), inset 0 -1px 0 rgba(0, 0, 0, 0.1)","--shadow-outset":"0 2px 4px rgba(0, 0, 0, 0.12)","--shadow-active":"inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.25)","--text-primary":"#212529","--text-secondary":"#495057","--text-muted":"#6c757d","--text-white":"#ffffff","--bg-primary":"#ffffff","--bg-secondary":"#f8f9fa","--bg-content":"#ffffff","--row-hover":"#dbeafe","--transition-fast":"0.15s ease","--transition-normal":"0.25s ease","--transition-slow":"0.35s ease","--font-family":"'Times New Roman', serif","--font-size-base":"12px","--font-weight-normal":"400","--font-weight-bold":"700"}},{id:"colorful",nameKey:"theme.colorful",descKey:"theme.colorfulDesc",preview:"#f59e0b",cssVariables:{"--primary":"#f59e0b","--primary-dark":"#d97706","--primary-light":"#fbbf24","--secondary":"#b45309","--bg-metal-light":"linear-gradient(145deg, #fef3c7, #fed7aa)","--bg-metal-normal":"linear-gradient(145deg, #fed7aa, #fdba74)","--bg-metal-dark":"linear-gradient(145deg, #fdba74, #fb923c)","--bg-metal-pressed":"linear-gradient(145deg, #fb923c, #fed7aa)","--bg-active":"linear-gradient(145deg, #f59e0b, #d97706)","--bg-active-hover":"linear-gradient(145deg, #fbbf24, #f59e0b)","--bg-active-pressed":"linear-gradient(145deg, #d97706, #fbbf24)","--border":"#fdba74","--border-dark":"#fb923c","--shadow-inset":"inset 0 1px 0 rgba(255, 255, 255, 0.6), inset 0 -1px 0 rgba(0, 0, 0, 0.1)","--shadow-outset":"0 2px 6px rgba(245, 158, 11, 0.2)","--shadow-active":"inset 0 1px 0 rgba(255, 255, 255, 0.3), inset 0 -1px 0 rgba(0, 0, 0, 0.2)","--text-primary":"#92400e","--text-secondary":"#b45309","--text-muted":"#d97706","--text-white":"#ffffff","--bg-primary":"#fffbeb","--bg-secondary":"#fef3c7","--bg-content":"#ffffff","--row-hover":"#fef3c7","--transition-fast":"0.15s ease","--transition-normal":"0.25s ease","--transition-slow":"0.35s ease","--font-family":"'Comic Sans MS', cursive","--font-size-base":"12px","--font-weight-normal":"400","--font-weight-bold":"600"}},{id:"apple",nameKey:"theme.apple",descKey:"theme.appleDesc",preview:"#007aff",cssVariables:{"--primary":"#007aff","--primary-dark":"#0051d5","--primary-light":"#4da3ff","--secondary":"#5856d6","--bg-metal-light":"linear-gradient(145deg, #fafafa, #f2f2f7)","--bg-metal-normal":"linear-gradient(145deg, #f2f2f7, #e5e5ea)","--bg-metal-dark":"linear-gradient(145deg, #e5e5ea, #d1d1d6)","--bg-metal-pressed":"linear-gradient(145deg, #d1d1d6, #f2f2f7)","--bg-active":"linear-gradient(145deg, #007aff, #0051d5)","--bg-active-hover":"linear-gradient(145deg, #4da3ff, #007aff)","--bg-active-pressed":"linear-gradient(145deg, #0051d5, #4da3ff)","--border":"#d1d1d6","--border-dark":"#c7c7cc","--shadow-inset":"inset 0 0.5px 0 rgba(255, 255, 255, 0.9), inset 0 -0.5px 0 rgba(0, 0, 0, 0.08)","--shadow-outset":"0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.08)","--shadow-active":"inset 0 1px 0 rgba(255, 255, 255, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.2)","--text-primary":"#000000","--text-secondary":"#3c3c43","--text-muted":"#8e8e93","--text-white":"#ffffff","--bg-primary":"#ffffff","--bg-secondary":"#f2f2f7","--bg-content":"#ffffff","--row-hover":"#e8f4fd","--transition-fast":"0.2s cubic-bezier(0.4, 0, 0.2, 1)","--transition-normal":"0.3s cubic-bezier(0.4, 0, 0.2, 1)","--transition-slow":"0.4s cubic-bezier(0.4, 0, 0.2, 1)","--font-family":"'-apple-system', 'BlinkMacSystemFont', 'SF Pro Text', 'Helvetica Neue', sans-serif","--font-size-base":"13px","--font-weight-normal":"400","--font-weight-bold":"600"}}],$e=class $e{constructor(){De(this,"currentTheme","metro");De(this,"storageKey","gantt-theme");De(this,"ganttContainer",null)}static getInstance(){return $e.instance||($e.instance=new $e),$e.instance}setGanttContainer(o){console.log("Setting gantt container:",o),this.ganttContainer=o,this.loadTheme()}getCurrentTheme(){return this.currentTheme}setTheme(o){const r=we.find(m=>m.id===o);if(!r){console.warn(`Theme ${o} not found`);return}this.currentTheme=o,this.applyTheme(r),this.saveTheme()}applyTheme(o){if(!this.ganttContainer){console.warn("No gantt container available for theme application");return}console.log("Applying theme:",o.id,"to container:",this.ganttContainer),this.ganttContainer.setAttribute("data-gantt-theme",o.id),Object.entries(o.cssVariables).forEach(([r,m])=>{this.ganttContainer.style.setProperty(r,m)}),console.log("Theme applied successfully. Container styles:",this.ganttContainer.style.cssText)}loadTheme(){try{const o=localStorage.getItem(this.storageKey);o&&we.find(m=>m.id===o)&&(this.currentTheme=o);const r=we.find(m=>m.id===this.currentTheme);r&&this.applyTheme(r)}catch(o){console.warn("Failed to load theme from localStorage:",o)}}saveTheme(){try{localStorage.setItem(this.storageKey,this.currentTheme)}catch(o){console.warn("Failed to save theme to localStorage:",o)}}getThemes(){return we}getThemeInfo(o){return we.find(r=>r.id===o)}previewTheme(o){const r=we.find(m=>m.id===o);r&&this.applyTheme(r)}cancelPreview(){const o=we.find(r=>r.id===this.currentTheme);o&&this.applyTheme(o)}exportThemeConfig(){return JSON.stringify({currentTheme:this.currentTheme,timestamp:new Date().toISOString()},null,2)}importThemeConfig(o){try{const r=JSON.parse(o);return r.currentTheme&&we.find(m=>m.id===r.currentTheme)?(this.setTheme(r.currentTheme),!0):!1}catch(r){return console.error("Failed to import theme config:",r),!1}}};De($e,"instance");let xe=$e;const Ne=xe.getInstance(),vn=e.defineComponent({name:"GanttConfigPanel",setup(){var W,z,ee,oe,j,ne,Y,K,O,te,ue,d;const{t,locale:o,setLocale:r,getLocales:m}=Me(),p=e.ref(!1),h=e.ref(we),n=e.ref("metro"),s=e.computed(()=>o.value),c=e.computed(()=>m()),D=a=>{r(a)},k=e.inject("ganttContainer"),{config:u,updateConfig:N}=Be(),_=e.ref({pathType:u.pathType||pe.BEZIER,color:u.color||"#3498db",width:u.width||2,dashArray:u.dashArray,bezierCurvature:u.bezierCurvature||.5,rightAngleOffset:u.rightAngleOffset||40,smoothCorners:u.smoothCorners||!1,cornerRadius:u.cornerRadius||5,showArrow:u.showArrow!==void 0?u.showArrow:!0,arrowSize:u.arrowSize||8,arrowColor:u.arrowColor||"#3498db",enableDashAnimation:u.enableDashAnimation||!1,dashAnimationSpeed:u.dashAnimationSpeed||1,showLabels:u.showLabels||!1,labelColor:u.labelColor||"#333333",labelFontSize:u.labelFontSize||12,parentChildStyle:{color:((W=u.parentChildStyle)==null?void 0:W.color)||"#999999",width:((z=u.parentChildStyle)==null?void 0:z.width)||1.5,dashArray:((ee=u.parentChildStyle)==null?void 0:ee.dashArray)||"3,3"},linkTypeColors:{finishToStart:((oe=u.linkTypeColors)==null?void 0:oe.finishToStart)||"#3498db",startToStart:((j=u.linkTypeColors)==null?void 0:j.startToStart)||"#2ecc71",finishToFinish:((ne=u.linkTypeColors)==null?void 0:ne.finishToFinish)||"#e74c3c",startToFinish:((Y=u.linkTypeColors)==null?void 0:Y.startToFinish)||"#f39c12"},linkTypeVisibility:{finishToStart:((K=u.linkTypeVisibility)==null?void 0:K.finishToStart)??!0,startToStart:((O=u.linkTypeVisibility)==null?void 0:O.startToStart)??!0,finishToFinish:((te=u.linkTypeVisibility)==null?void 0:te.finishToFinish)??!0,startToFinish:((ue=u.linkTypeVisibility)==null?void 0:ue.startToFinish)??!0,parentChild:((d=u.linkTypeVisibility)==null?void 0:d.parentChild)??!0}}),S=e.computed(()=>[{value:pe.STRAIGHT,name:t("configPanel.linkConfig.straight"),preview:"M 10 20 L 50 20"},{value:pe.BEZIER,name:t("configPanel.linkConfig.bezier"),preview:"M 10 20 C 25 20 35 20 50 20"},{value:pe.RIGHT_ANGLE,name:t("configPanel.linkConfig.rightAngle"),preview:"M 10 20 L 30 20 L 30 30 L 50 30"}]),v=()=>{p.value=!p.value},i=()=>{p.value=!1},H=a=>{n.value=a,Ne.setTheme(a)},y=a=>{_.value.pathType=a,L()},L=()=>{N(_.value),console.log("Link config updated:",_.value)};return e.onMounted(()=>{k!=null&&k.value?(console.log("GanttConfigPanel: Setting gantt container to theme manager"),Ne.setGanttContainer(k.value)):console.warn("GanttConfigPanel: ganttContainer not available"),n.value=Ne.getCurrentTheme()}),e.watch(_,a=>{N(a)},{deep:!0}),{t,isOpen:p,themes:h,currentTheme:n,linkConfig:_,pathTypes:S,currentLocale:s,locales:c,togglePanel:v,closePanel:i,selectTheme:H,selectPathType:y,selectLocale:D,updateLinkConfig:L}}}),Hn={class:"config-panel-wrapper"},Yn=["title"],zn={class:"btn-content"},In={class:"btn-text"},Rn={class:"panel-header"},Pn=["title"],On={class:"panel-content"},_n={class:"config-section"},Gn={class:"section-title"},Wn={class:"language-selector-inline"},Un=["onClick"],qn={class:"lang-label"},Jn={key:0,class:"lang-check"},Kn={class:"config-section"},jn={class:"section-title"},Qn={class:"theme-grid"},Zn=["onClick"],xn={class:"theme-info"},Xn={class:"theme-name"},ea={class:"theme-desc"},ta={key:0,class:"theme-check"},oa={class:"config-section"},na={class:"section-title"},aa={class:"link-config-content"},ra={class:"config-info-box"},ia={width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",style:{"flex-shrink":"0"}},la={class:"config-group"},sa={class:"config-label"},da={class:"path-type-grid"},ca=["onClick"],ma={width:"50",height:"30",viewBox:"0 0 60 40"},ha=["d"],fa={class:"path-name"},ua={class:"config-group"},ga={class:"config-label"},pa={class:"config-group"},ka={class:"config-label"},ya={class:"config-group"},Ca={class:"config-label"},wa={value:void 0},ba={value:"3,3"},Sa={value:"5,5"},Da={value:"8,4"},Ta={value:"2,2,8,2"},Ea={key:0,class:"config-group"},Ma={class:"config-label"},$a={class:"config-group"},Va={class:"config-label"},Na={class:"config-group"},La={class:"config-label"},Aa={key:0,class:"config-group"},Ba={class:"config-label"},Fa={class:"config-group"},va={class:"config-label"},Ha={class:"config-group"},Ya={class:"config-label"},za={class:"config-group"},Ia={class:"config-label"},Ra={class:"color-group"},Pa=["title"],Oa={class:"config-group"},_a={class:"config-label"},Ga={key:3,class:"config-group"},Wa={class:"config-label"},Ua={class:"config-group"},qa={class:"config-label"},Ja={class:"config-group"},Ka={class:"config-label"},ja={class:"config-group"},Qa={class:"config-label"},Za={class:"config-subsection"},xa={class:"subsection-title"},Xa={width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",style:{"margin-right":"4px"}},er={class:"link-type-colors"},tr={class:"color-item"},or={class:"color-preview"},nr={width:"20",height:"10",viewBox:"0 0 20 10"},ar=["stroke"],rr=["fill"],ir={class:"color-label"},lr={class:"color-desc"},sr={class:"color-item"},dr={class:"color-preview"},cr={width:"20",height:"10",viewBox:"0 0 20 10"},mr=["stroke"],hr=["fill"],fr={class:"color-label"},ur={class:"color-desc"},gr={class:"color-item"},pr={class:"color-preview"},kr={width:"20",height:"10",viewBox:"0 0 20 10"},yr=["stroke"],Cr=["fill"],wr={class:"color-label"},br={class:"color-desc"},Sr={class:"color-item"},Dr={class:"color-preview"},Tr={width:"20",height:"10",viewBox:"0 0 20 10"},Er=["stroke"],Mr=["fill"],$r={class:"color-label"},Vr={class:"color-desc"},Nr={class:"config-subsection"},Lr={class:"subsection-title"},Ar={width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",style:{"margin-right":"4px"}},Br={class:"config-info-box",style:{"margin-bottom":"12px"}},Fr={style:{"font-size":"11px"}},vr={class:"config-group"},Hr={class:"config-label"},Yr={class:"config-group"},zr={class:"config-label"},Ir={class:"config-group"},Rr={class:"config-label"},Pr={value:void 0},Or={value:"3,3"},_r={value:"5,5"},Gr={value:"8,4"};function Wr(t,o,r,m,p,h){return e.openBlock(),e.createElementBlock("div",Hn,[e.createElementVNode("button",{class:e.normalizeClass(["config-btn",{active:t.isOpen}]),onClick:o[0]||(o[0]=(...n)=>t.togglePanel&&t.togglePanel(...n)),title:t.t("configPanel.title")},[e.createElementVNode("div",zn,[o[49]||(o[49]=e.createElementVNode("div",{class:"btn-icon"},[e.createElementVNode("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z"})])],-1)),e.createElementVNode("span",In,e.toDisplayString(t.t("common.config")),1)])],10,Yn),e.createVNode(e.Transition,{name:"panel-fade"},{default:e.withCtx(()=>[t.isOpen?(e.openBlock(),e.createElementBlock("div",{key:0,class:"config-panel",onClick:o[47]||(o[47]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",Rn,[e.createElementVNode("h3",null,e.toDisplayString(t.t("configPanel.title")),1),e.createElementVNode("button",{class:"close-btn",onClick:o[1]||(o[1]=(...n)=>t.closePanel&&t.closePanel(...n)),title:t.t("common.close")},o[50]||(o[50]=[e.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})],-1)]),8,Pn)]),e.createElementVNode("div",On,[e.createElementVNode("div",_n,[e.createElementVNode("h4",Gn,[o[51]||(o[51]=e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})],-1)),e.createTextVNode(" "+e.toDisplayString(t.t("configPanel.languageSettings")),1)]),e.createElementVNode("div",Wn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.locales,n=>(e.openBlock(),e.createElementBlock("div",{key:n.value,class:e.normalizeClass(["language-option",{active:t.currentLocale===n.value}]),onClick:s=>t.selectLocale(n.value)},[e.createElementVNode("span",qn,e.toDisplayString(n.label),1),t.currentLocale===n.value?(e.openBlock(),e.createElementBlock("div",Jn,o[52]||(o[52]=[e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"})],-1)]))):e.createCommentVNode("",!0)],10,Un))),128))])]),e.createElementVNode("div",Kn,[e.createElementVNode("h4",jn,[o[53]||(o[53]=e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9c.83 0 1.5-.67 1.5-1.5 0-.39-.15-.74-.39-1.01-.23-.26-.38-.61-.38-.99 0-.83.67-1.5 1.5-1.5H16c2.76 0 5-2.24 5-5 0-4.42-4.03-8-9-8zm-5.5 9c-.83 0-1.5-.67-1.5-1.5S5.67 9 6.5 9 8 9.67 8 10.5 7.33 12 6.5 12zm3-4C8.67 8 8 7.33 8 6.5S8.67 5 9.5 5s1.5.67 1.5 1.5S10.33 8 9.5 8zm5 0c-.83 0-1.5-.67-1.5-1.5S13.67 5 14.5 5s1.5.67 1.5 1.5S15.33 8 14.5 8zm3 4c-.83 0-1.5-.67-1.5-1.5S16.67 9 17.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"})],-1)),e.createTextVNode(" "+e.toDisplayString(t.t("configPanel.themeSettings")),1)]),e.createElementVNode("div",Qn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.themes,n=>(e.openBlock(),e.createElementBlock("div",{key:n.id,class:e.normalizeClass(["theme-card",{active:t.currentTheme===n.id}]),onClick:s=>t.selectTheme(n.id)},[e.createElementVNode("div",{class:"theme-preview",style:e.normalizeStyle({background:n.preview})},null,4),e.createElementVNode("div",xn,[e.createElementVNode("div",Xn,e.toDisplayString(t.t(n.nameKey)),1),e.createElementVNode("div",ea,e.toDisplayString(t.t(n.descKey)),1)]),t.currentTheme===n.id?(e.openBlock(),e.createElementBlock("div",ta,o[54]||(o[54]=[e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"})],-1)]))):e.createCommentVNode("",!0)],10,Zn))),128))])]),e.createElementVNode("div",oa,[e.createElementVNode("h4",na,[o[55]||(o[55]=e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M6 9l6 6 6-6"}),e.createElementVNode("circle",{cx:"4",cy:"9",r:"2"}),e.createElementVNode("circle",{cx:"20",cy:"9",r:"2"}),e.createElementVNode("path",{d:"M10 9h4"})],-1)),e.createTextVNode(" "+e.toDisplayString(t.t("configPanel.linkSettings")),1)]),e.createElementVNode("div",aa,[e.createElementVNode("div",ra,[(e.openBlock(),e.createElementBlock("svg",ia,o[56]||(o[56]=[e.createElementVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"},null,-1)]))),e.createElementVNode("span",null,e.toDisplayString(t.t("configPanel.linkConfig.info")),1)]),e.createElementVNode("div",la,[e.createElementVNode("label",sa,e.toDisplayString(t.t("configPanel.linkConfig.pathType")),1),e.createElementVNode("div",da,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.pathTypes,n=>(e.openBlock(),e.createElementBlock("div",{key:n.value,class:e.normalizeClass(["path-type-card",{active:t.linkConfig.pathType===n.value}]),onClick:s=>t.selectPathType(n.value)},[(e.openBlock(),e.createElementBlock("svg",ma,[e.createElementVNode("path",{d:n.preview,stroke:"currentColor","stroke-width":"2",fill:"none"},null,8,ha)])),e.createElementVNode("span",fa,e.toDisplayString(n.name),1)],10,ca))),128))])]),e.createElementVNode("div",ua,[e.createElementVNode("label",ga,e.toDisplayString(t.t("configPanel.linkConfig.color")),1),e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":o[2]||(o[2]=n=>t.linkConfig.color=n),onChange:o[3]||(o[3]=(...n)=>t.updateLinkConfig&&t.updateLinkConfig(...n)),class:"color-input"},null,544),[[e.vModelText,t.linkConfig.color]])]),e.createElementVNode("div",pa,[e.createElementVNode("label",ka,e.toDisplayString(t.t("configPanel.linkConfig.width"))+": "+e.toDisplayString(t.linkConfig.width)+"px",1),e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":o[4]||(o[4]=n=>t.linkConfig.width=n),onInput:o[5]||(o[5]=(...n)=>t.updateLinkConfig&&t.updateLinkConfig(...n)),min:"1",max:"5",step:"0.5",class:"range-input"},null,544),[[e.vModelText,t.linkConfig.width,void 0,{number:!0}]])]),e.createElementVNode("div",ya,[e.createElementVNode("label",Ca,e.toDisplayString(t.t("configPanel.linkConfig.dashStyle")),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":o[6]||(o[6]=n=>t.linkConfig.dashArray=n),onChange:o[7]||(o[7]=(...n)=>t.updateLinkConfig&&t.updateLinkConfig(...n)),class:"select-input"},[e.createElementVNode("option",wa,e.toDisplayString(t.t("configPanel.linkConfig.solid")),1),e.createElementVNode("option",ba,e.toDisplayString(t.t("configPanel.linkConfig.shortDash")),1),e.createElementVNode("option",Sa,e.toDisplayString(t.t("configPanel.linkConfig.mediumDash")),1),e.createElementVNode("option",Da,e.toDisplayString(t.t("configPanel.linkConfig.longDash")),1),e.createElementVNode("option",Ta,e.toDisplayString(t.t("configPanel.linkConfig.dotDash")),1)],544),[[e.vModelSelect,t.linkConfig.dashArray]])]),t.linkConfig.pathType==="bezier"?(e.openBlock(),e.createElementBlock("div",Ea,[e.createElementVNode("label",Ma,e.toDisplayString(t.t("configPanel.linkConfig.curvature"))+": "+e.toDisplayString(t.linkConfig.bezierCurvature),1),e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":o[8]||(o[8]=n=>t.linkConfig.bezierCurvature=n),onInput:o[9]||(o[9]=(...n)=>t.updateLinkConfig&&t.updateLinkConfig(...n)),min:"0.1",max:"1",step:"0.1",class:"range-input"},null,544),[[e.vModelText,t.linkConfig.bezierCurvature,void 0,{number:!0}]])])):e.createCommentVNode("",!0),t.linkConfig.pathType==="right-angle"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",$a,[e.createElementVNode("label",Va,e.toDisplayString(t.t("configPanel.linkConfig.offset"))+": "+e.toDisplayString(t.linkConfig.rightAngleOffset)+"px",1),e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":o[10]||(o[10]=n=>t.linkConfig.rightAngleOffset=n),onInput:o[11]||(o[11]=(...n)=>t.updateLinkConfig&&t.updateLinkConfig(...n)),min:"10",max:"80",step:"5",class:"range-input"},null,544),[[e.vModelText,t.linkConfig.rightAngleOffset,void 0,{number:!0}]])]),e.createElementVNode("div",Na,[e.createElementVNode("label",La,[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":o[12]||(o[12]=n=>t.linkConfig.smoothCorners=n),onChange:o[13]||(o[13]=(...n)=>t.updateLinkConfig&&t.updateLinkConfig(...n))},null,544),[[e.vModelCheckbox,t.linkConfig.smoothCorners]]),e.createTextVNode(" "+e.toDisplayString(t.t("configPanel.linkConfig.smoothCorners")),1)])]),t.linkConfig.smoothCorners?(e.openBlock(),e.createElementBlock("div",Aa,[e.createElementVNode("label",Ba,e.toDisplayString(t.t("configPanel.linkConfig.cornerRadius"))+": "+e.toDisplayString(t.linkConfig.cornerRadius)+"px",1),e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":o[14]||(o[14]=n=>t.linkConfig.cornerRadius=n),onInput:o[15]||(o[15]=(...n)=>t.updateLinkConfig&&t.updateLinkConfig(...n)),min:"0",max:"15",step:"1",class:"range-input"},null,544),[[e.vModelText,t.linkConfig.cornerRadius,void 0,{number:!0}]])])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),e.createElementVNode("div",Fa,[e.createElementVNode("label",va,[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":o[16]||(o[16]=n=>t.linkConfig.showArrow=n),onChange:o[17]||(o[17]=(...n)=>t.updateLinkConfig&&t.updateLinkConfig(...n))},null,544),[[e.vModelCheckbox,t.linkConfig.showArrow]]),e.createTextVNode(" "+e.toDisplayString(t.t("configPanel.linkConfig.showArrow")),1)])]),t.linkConfig.showArrow?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("div",Ha,[e.createElementVNode("label",Ya,e.toDisplayString(t.t("configPanel.linkConfig.arrowSize"))+": "+e.toDisplayString(t.linkConfig.arrowSize)+"px",1),e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":o[18]||(o[18]=n=>t.linkConfig.arrowSize=n),onInput:o[19]||(o[19]=(...n)=>t.updateLinkConfig&&t.updateLinkConfig(...n)),min:"4",max:"16",step:"1",class:"range-input"},null,544),[[e.vModelText,t.linkConfig.arrowSize,void 0,{number:!0}]])]),e.createElementVNode("div",za,[e.createElementVNode("label",Ia,e.toDisplayString(t.t("configPanel.linkConfig.arrowColor")),1),e.createElementVNode("div",Ra,[e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":o[20]||(o[20]=n=>t.linkConfig.arrowColor=n),onChange:o[21]||(o[21]=(...n)=>t.updateLinkConfig&&t.updateLinkConfig(...n)),class:"color-input"},null,544),[[e.vModelText,t.linkConfig.arrowColor]]),e.createElementVNode("button",{onClick:o[22]||(o[22]=n=>{t.linkConfig.arrowColor=t.linkConfig.color,t.updateLinkConfig()}),class:"sync-btn",title:t.t("tooltip.syncArrowColor")},e.toDisplayString(t.t("configPanel.linkConfig.syncColor")),9,Pa)])])],64)):e.createCommentVNode("",!0),e.createElementVNode("div",Oa,[e.createElementVNode("label",_a,[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":o[23]||(o[23]=n=>t.linkConfig.enableDashAnimation=n),onChange:o[24]||(o[24]=(...n)=>t.updateLinkConfig&&t.updateLinkConfig(...n))},null,544),[[e.vModelCheckbox,t.linkConfig.enableDashAnimation]]),e.createTextVNode(" "+e.toDisplayString(t.t("configPanel.linkConfig.dashAnimation")),1)])]),t.linkConfig.enableDashAnimation?(e.openBlock(),e.createElementBlock("div",Ga,[e.createElementVNode("label",Wa,e.toDisplayString(t.t("configPanel.linkConfig.animationSpeed"))+": "+e.toDisplayString(t.linkConfig.dashAnimationSpeed)+"s",1),e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":o[25]||(o[25]=n=>t.linkConfig.dashAnimationSpeed=n),onInput:o[26]||(o[26]=(...n)=>t.updateLinkConfig&&t.updateLinkConfig(...n)),min:"0.2",max:"3",step:"0.2",class:"range-input"},null,544),[[e.vModelText,t.linkConfig.dashAnimationSpeed,void 0,{number:!0}]])])):e.createCommentVNode("",!0),e.createElementVNode("div",Ua,[e.createElementVNode("label",qa,[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":o[27]||(o[27]=n=>t.linkConfig.showLabels=n),onChange:o[28]||(o[28]=(...n)=>t.updateLinkConfig&&t.updateLinkConfig(...n))},null,544),[[e.vModelCheckbox,t.linkConfig.showLabels]]),e.createTextVNode(" "+e.toDisplayString(t.t("configPanel.linkConfig.showLabels")),1)])]),t.linkConfig.showLabels?(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[e.createElementVNode("div",Ja,[e.createElementVNode("label",Ka,e.toDisplayString(t.t("configPanel.linkConfig.labelColor")),1),e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":o[29]||(o[29]=n=>t.linkConfig.labelColor=n),onChange:o[30]||(o[30]=(...n)=>t.updateLinkConfig&&t.updateLinkConfig(...n)),class:"color-input"},null,544),[[e.vModelText,t.linkConfig.labelColor]])]),e.createElementVNode("div",ja,[e.createElementVNode("label",Qa,e.toDisplayString(t.t("configPanel.linkConfig.fontSize"))+": "+e.toDisplayString(t.linkConfig.labelFontSize)+"px",1),e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":o[31]||(o[31]=n=>t.linkConfig.labelFontSize=n),onInput:o[32]||(o[32]=(...n)=>t.updateLinkConfig&&t.updateLinkConfig(...n)),min:"8",max:"16",step:"1",class:"range-input"},null,544),[[e.vModelText,t.linkConfig.labelFontSize,void 0,{number:!0}]])])],64)):e.createCommentVNode("",!0),e.createElementVNode("div",Za,[e.createElementVNode("h5",xa,[(e.openBlock(),e.createElementBlock("svg",Xa,o[57]||(o[57]=[e.createElementVNode("path",{d:"M19 15l-6 6-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.58L13 9l6 6z"},null,-1)]))),e.createTextVNode(" "+e.toDisplayString(t.t("configPanel.linkConfig.typeColors")),1)]),e.createElementVNode("div",er,[e.createElementVNode("div",tr,[e.createElementVNode("div",or,[(e.openBlock(),e.createElementBlock("svg",nr,[e.createElementVNode("line",{x1:"0",y1:"5",x2:"14",y2:"5",stroke:t.linkConfig.linkTypeColors.finishToStart,"stroke-width":"2"},null,8,ar),e.createElementVNode("polygon",{points:"20,5 14,2 14,8",fill:t.linkConfig.linkTypeColors.finishToStart},null,8,rr)]))]),e.createElementVNode("span",ir,e.toDisplayString(t.t("link.fs")),1),e.createElementVNode("span",lr,e.toDisplayString(t.t("link.finishToStart")),1),e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":o[33]||(o[33]=n=>t.linkConfig.linkTypeColors.finishToStart=n),onChange:o[34]||(o[34]=(...n)=>t.updateLinkConfig&&t.updateLinkConfig(...n)),class:"color-input-small"},null,544),[[e.vModelText,t.linkConfig.linkTypeColors.finishToStart]])]),e.createElementVNode("div",sr,[e.createElementVNode("div",dr,[(e.openBlock(),e.createElementBlock("svg",cr,[e.createElementVNode("line",{x1:"0",y1:"5",x2:"14",y2:"5",stroke:t.linkConfig.linkTypeColors.startToStart,"stroke-width":"2"},null,8,mr),e.createElementVNode("polygon",{points:"20,5 14,2 14,8",fill:t.linkConfig.linkTypeColors.startToStart},null,8,hr)]))]),e.createElementVNode("span",fr,e.toDisplayString(t.t("link.ss")),1),e.createElementVNode("span",ur,e.toDisplayString(t.t("link.startToStart")),1),e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":o[35]||(o[35]=n=>t.linkConfig.linkTypeColors.startToStart=n),onChange:o[36]||(o[36]=(...n)=>t.updateLinkConfig&&t.updateLinkConfig(...n)),class:"color-input-small"},null,544),[[e.vModelText,t.linkConfig.linkTypeColors.startToStart]])]),e.createElementVNode("div",gr,[e.createElementVNode("div",pr,[(e.openBlock(),e.createElementBlock("svg",kr,[e.createElementVNode("line",{x1:"0",y1:"5",x2:"14",y2:"5",stroke:t.linkConfig.linkTypeColors.finishToFinish,"stroke-width":"2"},null,8,yr),e.createElementVNode("polygon",{points:"20,5 14,2 14,8",fill:t.linkConfig.linkTypeColors.finishToFinish},null,8,Cr)]))]),e.createElementVNode("span",wr,e.toDisplayString(t.t("link.ff")),1),e.createElementVNode("span",br,e.toDisplayString(t.t("link.finishToFinish")),1),e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":o[37]||(o[37]=n=>t.linkConfig.linkTypeColors.finishToFinish=n),onChange:o[38]||(o[38]=(...n)=>t.updateLinkConfig&&t.updateLinkConfig(...n)),class:"color-input-small"},null,544),[[e.vModelText,t.linkConfig.linkTypeColors.finishToFinish]])]),e.createElementVNode("div",Sr,[e.createElementVNode("div",Dr,[(e.openBlock(),e.createElementBlock("svg",Tr,[e.createElementVNode("line",{x1:"0",y1:"5",x2:"14",y2:"5",stroke:t.linkConfig.linkTypeColors.startToFinish,"stroke-width":"2"},null,8,Er),e.createElementVNode("polygon",{points:"20,5 14,2 14,8",fill:t.linkConfig.linkTypeColors.startToFinish},null,8,Mr)]))]),e.createElementVNode("span",$r,e.toDisplayString(t.t("link.sf")),1),e.createElementVNode("span",Vr,e.toDisplayString(t.t("link.startToFinish")),1),e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":o[39]||(o[39]=n=>t.linkConfig.linkTypeColors.startToFinish=n),onChange:o[40]||(o[40]=(...n)=>t.updateLinkConfig&&t.updateLinkConfig(...n)),class:"color-input-small"},null,544),[[e.vModelText,t.linkConfig.linkTypeColors.startToFinish]])])])]),e.createElementVNode("div",Nr,[e.createElementVNode("h5",Lr,[(e.openBlock(),e.createElementBlock("svg",Ar,o[58]||(o[58]=[e.createElementVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"},null,-1)]))),e.createTextVNode(" "+e.toDisplayString(t.t("configPanel.linkConfig.parentChildStyle")),1)]),e.createElementVNode("div",Br,[e.createElementVNode("span",Fr,e.toDisplayString(t.t("configPanel.linkConfig.parentChildInfo")),1)]),e.createElementVNode("div",vr,[e.createElementVNode("label",Hr,e.toDisplayString(t.t("configPanel.linkConfig.color")),1),e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":o[41]||(o[41]=n=>t.linkConfig.parentChildStyle.color=n),onChange:o[42]||(o[42]=(...n)=>t.updateLinkConfig&&t.updateLinkConfig(...n)),class:"color-input"},null,544),[[e.vModelText,t.linkConfig.parentChildStyle.color]])]),e.createElementVNode("div",Yr,[e.createElementVNode("label",zr,e.toDisplayString(t.t("configPanel.linkConfig.width"))+": "+e.toDisplayString(t.linkConfig.parentChildStyle.width)+"px",1),e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":o[43]||(o[43]=n=>t.linkConfig.parentChildStyle.width=n),onInput:o[44]||(o[44]=(...n)=>t.updateLinkConfig&&t.updateLinkConfig(...n)),min:"1",max:"3",step:"0.5",class:"range-input"},null,544),[[e.vModelText,t.linkConfig.parentChildStyle.width,void 0,{number:!0}]])]),e.createElementVNode("div",Ir,[e.createElementVNode("label",Rr,e.toDisplayString(t.t("configPanel.linkConfig.dashStyle")),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":o[45]||(o[45]=n=>t.linkConfig.parentChildStyle.dashArray=n),onChange:o[46]||(o[46]=(...n)=>t.updateLinkConfig&&t.updateLinkConfig(...n)),class:"select-input"},[e.createElementVNode("option",Pr,e.toDisplayString(t.t("configPanel.linkConfig.solid")),1),e.createElementVNode("option",Or,e.toDisplayString(t.t("configPanel.linkConfig.shortDash")),1),e.createElementVNode("option",_r,e.toDisplayString(t.t("configPanel.linkConfig.mediumDash")),1),e.createElementVNode("option",Gr,e.toDisplayString(t.t("configPanel.linkConfig.longDash")),1)],544),[[e.vModelSelect,t.linkConfig.parentChildStyle.dashArray]])])])])])])])):e.createCommentVNode("",!0)]),_:1}),t.isOpen?(e.openBlock(),e.createElementBlock("div",{key:0,class:"panel-overlay",onClick:o[48]||(o[48]=(...n)=>t.closePanel&&t.closePanel(...n))})):e.createCommentVNode("",!0)])}const yt=ye(vn,[["render",Wr],["__scopeId","data-v-dd2290ad"]]);Ee.z.object({date:Ee.z.string().regex(/^\d{4}-\d{2}-\d{2}$/),year:Ee.z.number().int(),month:Ee.z.number().int().min(1).max(12),week:Ee.z.number().int().min(1).max(53),monthStr:Ee.z.string(),weekStr:Ee.z.string(),day:Ee.z.number().int().min(1).max(31)}),b.extend(St);const Ur=e.defineComponent({name:"Gantt",props:{styleConfig:{type:Object,required:!0,default:()=>({headersHeight:100,rowHeight:60}),validator:t=>t.headersHeight>0&&t.rowHeight>0},dataConfig:{type:Object,required:!0,default:()=>({dataSource:[],taskHeaders:[],mapFields:{}}),validator:t=>Array.isArray(t.dataSource)&&Array.isArray(t.taskHeaders)&&typeof t.mapFields=="object"&&t.mapFields!==null},eventConfig:{type:Object,required:!0}},components:{DatePicker:ht,SplitPane:ko,TaskTable:Zo,RightTable:Fn,GanttConfigPanel:yt},setup(t){var U,J,ce,ke,ge;const{t:o,locale:r}=Me(),m=()=>({"zh-CN":"zh-cn","en-US":"en","ja-JP":"ja","ko-KR":"ko","fr-FR":"fr","de-DE":"de","es-ES":"es","ru-RU":"ru"})[r.value]||"en",p=e.computed(()=>t.dataConfig.mapFields),h=e.computed(()=>t.dataConfig.dataSource),{config:n,updateConfig:s}=Be(),c=e.ref({finishToStart:((U=n.linkTypeVisibility)==null?void 0:U.finishToStart)??!0,startToStart:((J=n.linkTypeVisibility)==null?void 0:J.startToStart)??!0,finishToFinish:((ce=n.linkTypeVisibility)==null?void 0:ce.finishToFinish)??!0,startToFinish:((ke=n.linkTypeVisibility)==null?void 0:ke.startToFinish)??!0,parentChild:((ge=n.linkTypeVisibility)==null?void 0:ge.parentChild)??!0}),D=()=>{s({linkTypeVisibility:{...c.value}})},k=e.ref([]),u=e.ref(35),N=e.ref(["button is-active","button","button","button"]),_=e.ref("月"),S=e.ref(b().locale(m()).format("YYYY-MM-DD")),v=e.ref(b().locale(m()).add(-5,"y").format("YYYY-MM-DD")),i=e.ref(b().locale(m()).add(5,"y").format("YYYY-MM-DD")),H=e.ref(!1),y=e.ref("点击选择日期"),L=e.ref(b().locale(m()).format("YYYY-MM-DD")),W=e.ref(S.value),z=e.ref(b(S.value).locale(m()).add(5,"y").format("YYYY-MM-DD")),ee=e.ref(!1),oe=e.ref("点击选择日期"),j=e.ref([]),ne=e.ref([]),Y=e.ref([]),K=e.ref([]),O=e.ref(0),te=e.ref(0),ue=e.ref(null),d=e.ref(null),a=e.ref(""),f=e.ref(),l=e.computed(()=>w.subTask),T=e.computed(()=>w.editTask),$=e.computed(()=>w.removeTask),A=e.computed(()=>w.rootTask),F=e.computed(()=>w.allowChangeTaskDate),G=C=>{const g=b(y.value),M=b(oe.value);if(!(!g.isValid()||!M.isValid()||M.diff(g,"day")<0)){switch(ue.value=y.value+" 00:00:00",d.value=oe.value+" 23:59:59",Y.value=[],ne.value=[],j.value=[],K.value=[],C){case"月":{O.value=80;const V=[];let x=g.startOf("month");for(;x.isBefore(M)||x.isSame(M,"month");)V.push(x.format("YYYY-MM-DD")),x=x.add(1,"month");if(V.some(P=>b(P).format("YYYY-MM")===M.format("YYYY-MM"))||V.push(M.format("YYYY-MM-DD")),V.length===1){const P=M.diff(g,"day")+1;j.value.push({title:g.locale(m()).format("MMMM"),width:P*O.value})}else V.forEach((P,re)=>{if(re===0){const ie=g.endOf("month").format("YYYY-MM-DD"),he=b(ie).diff(g,"day")+1;j.value.push({title:b(P).locale(m()).format("MMMM"),width:he*O.value})}else if(re===V.length-1){const ie=M.startOf("month").format("YYYY-MM-DD"),he=M.diff(b(ie),"day")+1;j.value.push({title:b(P).locale(m()).format("MMMM"),width:he*O.value})}else{const ie=b(P,"YYYY-MM").daysInMonth();j.value.push({title:b(P).locale(m()).format("MMMM"),width:ie*O.value})}});let de=g;for(;de.isBefore(M)||de.isSame(M,"day");){const re=["zh-CN","ja-JP","ko-KR"].includes(r.value)?de.format("DD")+"日":de.format("DD"),ie=de.format("YYYY-MM-DD"),he=de.locale(m()).format("dddd");Y.value.push({title:he,width:O.value,fulldate:ie}),ne.value.push({title:re,width:O.value,fulldate:ie}),de=de.add(1,"day")}te.value=ne.value.length;break}case"周":{O.value=120;let V=g.startOf("isoWeek");const x=M.endOf("isoWeek"),de=[];let P=V.startOf("month");for(;P.isBefore(x)||P.isSame(x,"month");)de.push(P.format("YYYY-MM-DD")),P=P.add(1,"month");for(de.forEach((re,ie)=>{const he=b(re),Se=he.endOf("month");let Ve=0,Le=V.clone();for(;Le.isBefore(x)||Le.isSame(x,"week");){const Xe=Le.startOf("isoWeek"),Je=Le.endOf("isoWeek");(Xe.isSame(he,"month")||Je.isSame(he,"month")||Xe.isBefore(Se)&&Je.isAfter(he))&&Ve++,Le=Le.add(1,"week")}if(Ve>0){const Je=["zh-CN","ja-JP","ko-KR"].includes(r.value)?he.format("YYYY年MM月"):he.locale(m()).format("MMMM YYYY");j.value.push({title:Je,width:Ve*O.value})}});V.isBefore(x)||V.isSame(x,"week");){const re=V.startOf("isoWeek"),ie=V.endOf("isoWeek"),Se=["zh-CN","ja-JP","ko-KR"].includes(r.value)?`第${V.isoWeek()}周 (${re.format("MM/DD")}-${ie.format("MM/DD")})`:`Week ${V.isoWeek()} (${re.format("MM/DD")}-${ie.format("MM/DD")})`;Y.value.push({title:Se,width:O.value,fulldate:re.format("YYYY-MM-DD")}),V=V.add(1,"week")}te.value=Y.value.length;break}case"日":{O.value=80;let V=g;for(;V.isBefore(M)||V.isSame(M,"day");){const de=["zh-CN","ja-JP","ko-KR"].includes(r.value)?V.locale(m()).format("MMMM DD")+"日":V.locale(m()).format("MMMM DD"),P=V.format("YYYY-MM-DD"),re=V.locale(m()).format("dddd");Y.value.push({title:re,width:O.value,fulldate:P}),ne.value.push({title:de,width:O.value,fulldate:P}),V=V.add(1,"day")}te.value=ne.value.length;break}case"时":{O.value=30;let V=g;const x=M.endOf("day");for(;V.isBefore(x);){const P=["zh-CN","ja-JP","ko-KR"].includes(r.value)?V.locale(m()).format("MMMM DD")+"日":V.locale(m()).format("MMMM DD"),re=V.format("YYYY-MM-DD"),ie=V.locale(m()).format("dddd");Y.value.push({title:ie,width:24*O.value,fulldate:re}),ne.value.push({title:P,width:24*O.value,fulldate:re});for(let he=0;he<=23;he++){const Se=["zh-CN","ja-JP","ko-KR"].includes(r.value);K.value.push({title:Se?he+"点":`${he}:00`,width:O.value})}V=V.add(1,"day")}te.value=K.value.length;break}}t.eventConfig.queryTask(y.value,oe.value,_.value)}},R=(C,g)=>{let M=C.filter(I=>I[p.value.id]===g);M&&M.length>0&&(a.value=M[0].index+"."+a.value,R(C,M[0][p.value.parentId]))},q=(C,g,M)=>{let I=g.filter(V=>V[p.value.parentId]===C);if(I&&I.length>0){M++;for(let V=0;V<I.length;V++){I[V].treeLevel=M,I[V].index=V+1;let x=k.value.filter(de=>de[p.value.id]===I[V][p.value.parentId]);a.value="",x&&x.length>0?(a.value=x[0].index+"."+I[V].index,R(k.value,x[0][p.value.parentId]),I[V].no=a.value):I[V].no=V+1+"",k.value.push(I[V]),q(I[V][p.value.id],g,M)}}},me=C=>{for(let g=0;g<N.value.length;g++)N.value[g]="button";switch(C){case"月":{N.value[0]="button is-active";break}case"周":{N.value[1]="button is-active";break}case"日":{N.value[2]="button is-active";break}case"时":{N.value[3]="button is-active";break}}_.value=C,e.nextTick(()=>{const g=document.querySelector(".table .content");g&&(g.scrollLeft=0)})},ae=C=>{b(L.value).diff(b(C.date),"days")<0&&(oe.value=C.date,L.value=C.date),H.value=!1,y.value=C.date,S.value=C.date,W.value=C.date},Z=C=>{b(C.date).diff(b(S.value),"days")<0&&(y.value=b(C.date).format("YYYY-MM-DD"),S.value=b(C.date).format("YYYY-MM-DD")),ee.value=!1,oe.value=C.date,L.value=C.date,i.value=C.date};e.watch([_,y,oe],([C,g,M],[I,V,x])=>{(C!==I||g!==V||M!==x)&&G(C)}),e.watch(r,()=>{G(_.value)}),e.watch(A,C=>{t.eventConfig.addRootTask(C)}),e.watch(l,C=>{t.eventConfig.addSubTask(C)}),e.watch($,C=>{t.eventConfig.removeTask(C)}),e.watch(T,C=>{t.eventConfig.editTask(C)}),e.watch(F,C=>{t.eventConfig.allowChangeTaskDate(C)}),e.watch(()=>w.barDate,C=>{if(C){const{id:g,startDate:M,endDate:I}=C;g&&M&&I&&t.eventConfig.barDate(g,M,I)}}),e.watch(O,C=>{se.setScale(C)}),e.watch(()=>t.dataConfig.taskHeaders,C=>{se.setTaskHeaders(C)}),e.watch([j,ne,Y,K],([C,g,M,I])=>{se.setMonthHeaders(C),se.setDayHeaders(g),se.setWeekHeaders(M),se.setHourHeaders(I)}),e.watch(_,C=>{se.setMode(C)}),e.watch(p,C=>{C&&se.setMapFields(C)}),e.watch(()=>t.dataConfig.queryStartDate,C=>{C&&(se.setStartGanttDate(b(C).toDate()),ue.value=C,y.value=C,S.value=C)}),e.watch(()=>t.dataConfig.queryEndDate,C=>{C&&(se.setEndGanttDate(b(C).toDate()),d.value=C,oe.value=C,L.value=C)}),e.watch(te,C=>{C&&se.setTimelineCellCount(C)}),e.onBeforeMount(()=>{se.setMonthHeaders(j.value),se.setWeekHeaders(Y.value),se.setDayHeaders(ne.value),se.setHourHeaders(K.value),se.setTaskHeaders(t.dataConfig.taskHeaders),se.setMapFields(p.value),se.setTimelineCellCount(te.value),h.value&&h.value.length>0&&se.setTasks(h.value)});const fe=C=>{const g=C;t.eventConfig.updateProgress&&t.eventConfig.updateProgress(g.detail)};e.onMounted(()=>{j.value=[],Y.value=[],ne.value=[],K.value=[],console.log("Gantt onMounted, dataSource:",h.value),q("0",h.value,0),se.setTasks(k.value),console.log("initData after RecursionData:",k.value),e.nextTick(()=>{_.value="月",se.setMode(_.value)}),window.addEventListener("taskProgressUpdate",fe)});let B=null;e.watch(h,C=>{console.log("dataSource changed:",C),C&&C.length>0?(B&&clearTimeout(B),B=setTimeout(()=>{k.value=[],q("0",C,0),se.setTasks(k.value),console.log("Tasks updated:",k.value),B=null},100)):C&&C.length===0&&se.setTasks([])},{immediate:!1}),e.onBeforeUnmount(()=>{window.removeEventListener("taskProgressUpdate",fe)}),e.provide(je.AddRootTaskSymbol,C=>t.eventConfig.addRootTask(C)),e.provide(je.SetBarColorSymbol,C=>t.styleConfig.setBarColor(C)),e.provide("ganttContainer",f),e.watch(()=>t.dataConfig.dependencies,C=>{C&&C.length>0&&(console.log("Loading dependencies:",C),Ge.clear(),C.forEach(g=>{Ge.addDependency(g)}))},{immediate:!0});const E=C=>{console.log("连线配置已更新:",C)},Q=e.computed(()=>{var C,g,M,I;return{finishToStart:((C=n.linkTypeColors)==null?void 0:C.finishToStart)||"#3498db",startToStart:((g=n.linkTypeColors)==null?void 0:g.startToStart)||"#2ecc71",finishToFinish:((M=n.linkTypeColors)==null?void 0:M.finishToFinish)||"#e74c3c",startToFinish:((I=n.linkTypeColors)==null?void 0:I.startToFinish)||"#f39c12"}});return{t:o,subTask:l,editTask:T,removeTask:$,rootTask:A,allowChangeTaskDate:F,paneLengthPercent:u,startDate:S,endDate:L,minStartDate:v,maxStartDate:i,confirmStart:ae,minEndDate:W,maxEndDate:z,confirmEnd:Z,buttonClass:N,timeMode:me,onLinkConfigChange:E,ganttContainer:f,linkTypeColors:Q,linkTypeVisibility:c,updateLinkVisibility:D}}}),qr={class:"page gantt-container",ref:"ganttContainer"},Jr={class:"toolbar"},Kr={class:"dateInput"},jr={style:{"margin-right":"20px","margin-left":"20px",color:"#606266"}},Qr={class:"buttonGroup"},Zr={class:"metro-content"},xr={class:"metro-text"},Xr={class:"metro-content"},ei={class:"metro-text"},ti={class:"metro-content"},oi={class:"metro-text"},ni={class:"metro-content"},ai={class:"metro-text"},ri={class:"link-legend"},ii={class:"legend-title"},li={class:"legend-items"},si={class:"legend-label"},di={class:"legend-desc"},ci={width:"24",height:"12",viewBox:"0 0 24 12"},mi=["stroke"],hi=["fill"],fi={class:"legend-label"},ui={class:"legend-desc"},gi={width:"24",height:"12",viewBox:"0 0 24 12"},pi=["stroke"],ki=["fill"],yi={class:"legend-label"},Ci={class:"legend-desc"},wi={width:"24",height:"12",viewBox:"0 0 24 12"},bi=["stroke"],Si=["fill"],Di={class:"legend-label"},Ti={class:"legend-desc"},Ei={width:"24",height:"12",viewBox:"0 0 24 12"},Mi=["stroke"],$i=["fill"],Vi={class:"legend-label"},Ni={class:"legend-desc"},Li={class:"config-buttons"},Ai={class:"gantt"};function Bi(t,o,r,m,p,h){const n=e.resolveComponent("DatePicker"),s=e.resolveComponent("GanttConfigPanel"),c=e.resolveComponent("TaskTable"),D=e.resolveComponent("RightTable"),k=e.resolveComponent("SplitPane");return e.openBlock(),e.createElementBlock("div",qr,[e.createElementVNode("div",Jr,[e.createElementVNode("div",Kr,[e.createVNode(n,{date:t.startDate,"min-date":t.minStartDate,"max-date":t.maxStartDate,onConfirm:t.confirmStart},null,8,["date","min-date","max-date","onConfirm"]),e.createElementVNode("span",jr,e.toDisplayString(t.t("common.to")),1),e.createVNode(n,{date:t.endDate,"min-date":t.minEndDate,"max-date":t.maxEndDate,onConfirm:t.confirmEnd},null,8,["date","min-date","max-date","onConfirm"])]),e.createElementVNode("div",Qr,[e.createElementVNode("div",{class:e.normalizeClass([t.buttonClass[0],"metro-btn"]),onClick:o[0]||(o[0]=u=>t.timeMode("月"))},[e.createElementVNode("div",Zr,[o[15]||(o[15]=e.createElementVNode("div",{class:"metro-icon"},[e.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z"})])],-1)),e.createElementVNode("div",xr,e.toDisplayString(t.t("viewMode.month")),1)])],2),e.createElementVNode("div",{class:e.normalizeClass([t.buttonClass[1],"metro-btn"]),onClick:o[1]||(o[1]=u=>t.timeMode("周"))},[e.createElementVNode("div",Xr,[o[16]||(o[16]=e.createElementVNode("div",{class:"metro-icon"},[e.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z"})])],-1)),e.createElementVNode("div",ei,e.toDisplayString(t.t("viewMode.week")),1)])],2),e.createElementVNode("div",{class:e.normalizeClass([t.buttonClass[2],"metro-btn"]),onClick:o[2]||(o[2]=u=>t.timeMode("日"))},[e.createElementVNode("div",ti,[o[17]||(o[17]=e.createElementVNode("div",{class:"metro-icon"},[e.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 2 2h8c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 18H6V4h8v16z"})])],-1)),e.createElementVNode("div",oi,e.toDisplayString(t.t("viewMode.day")),1)])],2),e.createElementVNode("div",{class:e.normalizeClass([t.buttonClass[3],"metro-btn"]),onClick:o[3]||(o[3]=u=>t.timeMode("时"))},[e.createElementVNode("div",ni,[o[18]||(o[18]=e.createElementVNode("div",{class:"metro-icon"},[e.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z"})])],-1)),e.createElementVNode("div",ai,e.toDisplayString(t.t("viewMode.hour")),1)])],2)]),e.createElementVNode("div",ri,[e.createElementVNode("div",ii,[o[19]||(o[19]=e.createElementVNode("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M19 15l-6 6-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.58L13 9l6 6z"})],-1)),e.createTextVNode(" "+e.toDisplayString(t.t("link.legend")),1)]),e.createElementVNode("div",li,[e.createElementVNode("label",{class:e.normalizeClass(["legend-item",{disabled:!t.linkTypeVisibility.parentChild}]),title:"父子关系:显示任务的层级结构"},[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":o[4]||(o[4]=u=>t.linkTypeVisibility.parentChild=u),onChange:o[5]||(o[5]=(...u)=>t.updateLinkVisibility&&t.updateLinkVisibility(...u))},null,544),[[e.vModelCheckbox,t.linkTypeVisibility.parentChild]]),o[20]||(o[20]=e.createElementVNode("svg",{width:"24",height:"12",viewBox:"0 0 24 12"},[e.createElementVNode("line",{x1:"0",y1:"6",x2:"18",y2:"6",stroke:"#95a5a6","stroke-width":"1.5","stroke-dasharray":"3,3"}),e.createElementVNode("polygon",{points:"24,6 18,3 18,9",fill:"#95a5a6"})],-1)),e.createElementVNode("span",si,e.toDisplayString(t.t("link.pc")),1),e.createElementVNode("span",di,e.toDisplayString(t.t("link.parentChild")),1)],2),e.createElementVNode("label",{class:e.normalizeClass(["legend-item",{disabled:!t.linkTypeVisibility.finishToStart}]),title:"完成-开始:前置任务完成后,后续任务才能开始"},[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":o[6]||(o[6]=u=>t.linkTypeVisibility.finishToStart=u),onChange:o[7]||(o[7]=(...u)=>t.updateLinkVisibility&&t.updateLinkVisibility(...u))},null,544),[[e.vModelCheckbox,t.linkTypeVisibility.finishToStart]]),(e.openBlock(),e.createElementBlock("svg",ci,[e.createElementVNode("line",{x1:"0",y1:"6",x2:"18",y2:"6",stroke:t.linkTypeColors.finishToStart,"stroke-width":"2"},null,8,mi),e.createElementVNode("polygon",{points:"24,6 18,3 18,9",fill:t.linkTypeColors.finishToStart},null,8,hi)])),e.createElementVNode("span",fi,e.toDisplayString(t.t("link.fs")),1),e.createElementVNode("span",ui,e.toDisplayString(t.t("link.finishToStart")),1)],2),e.createElementVNode("label",{class:e.normalizeClass(["legend-item",{disabled:!t.linkTypeVisibility.startToStart}]),title:"开始-开始:两个任务同时开始"},[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":o[8]||(o[8]=u=>t.linkTypeVisibility.startToStart=u),onChange:o[9]||(o[9]=(...u)=>t.updateLinkVisibility&&t.updateLinkVisibility(...u))},null,544),[[e.vModelCheckbox,t.linkTypeVisibility.startToStart]]),(e.openBlock(),e.createElementBlock("svg",gi,[e.createElementVNode("line",{x1:"0",y1:"6",x2:"18",y2:"6",stroke:t.linkTypeColors.startToStart,"stroke-width":"2"},null,8,pi),e.createElementVNode("polygon",{points:"24,6 18,3 18,9",fill:t.linkTypeColors.startToStart},null,8,ki)])),e.createElementVNode("span",yi,e.toDisplayString(t.t("link.ss")),1),e.createElementVNode("span",Ci,e.toDisplayString(t.t("link.startToStart")),1)],2),e.createElementVNode("label",{class:e.normalizeClass(["legend-item",{disabled:!t.linkTypeVisibility.finishToFinish}]),title:"完成-完成:两个任务同时完成"},[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":o[10]||(o[10]=u=>t.linkTypeVisibility.finishToFinish=u),onChange:o[11]||(o[11]=(...u)=>t.updateLinkVisibility&&t.updateLinkVisibility(...u))},null,544),[[e.vModelCheckbox,t.linkTypeVisibility.finishToFinish]]),(e.openBlock(),e.createElementBlock("svg",wi,[e.createElementVNode("line",{x1:"0",y1:"6",x2:"18",y2:"6",stroke:t.linkTypeColors.finishToFinish,"stroke-width":"2"},null,8,bi),e.createElementVNode("polygon",{points:"24,6 18,3 18,9",fill:t.linkTypeColors.finishToFinish},null,8,Si)])),e.createElementVNode("span",Di,e.toDisplayString(t.t("link.ff")),1),e.createElementVNode("span",Ti,e.toDisplayString(t.t("link.finishToFinish")),1)],2),e.createElementVNode("label",{class:e.normalizeClass(["legend-item",{disabled:!t.linkTypeVisibility.startToFinish}]),title:"开始-完成:前置任务开始后,后续任务才能完成"},[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":o[12]||(o[12]=u=>t.linkTypeVisibility.startToFinish=u),onChange:o[13]||(o[13]=(...u)=>t.updateLinkVisibility&&t.updateLinkVisibility(...u))},null,544),[[e.vModelCheckbox,t.linkTypeVisibility.startToFinish]]),(e.openBlock(),e.createElementBlock("svg",Ei,[e.createElementVNode("line",{x1:"0",y1:"6",x2:"18",y2:"6",stroke:t.linkTypeColors.startToFinish,"stroke-width":"2"},null,8,Mi),e.createElementVNode("polygon",{points:"24,6 18,3 18,9",fill:t.linkTypeColors.startToFinish},null,8,$i)])),e.createElementVNode("span",Vi,e.toDisplayString(t.t("link.sf")),1),e.createElementVNode("span",Ni,e.toDisplayString(t.t("link.startToFinish")),1)],2)])]),e.createElementVNode("div",Li,[e.createVNode(s)])]),e.createElementVNode("div",Ai,[e.createVNode(k,{direction:"row",min:0,max:100,triggerLength:10,paneLengthPercent:t.paneLengthPercent,"onUpdate:paneLengthPercent":o[14]||(o[14]=u=>t.paneLengthPercent=u)},{one:e.withCtx(()=>[e.createVNode(c,{headersHeight:t.styleConfig.headersHeight,rowHeight:t.styleConfig.rowHeight},null,8,["headersHeight","rowHeight"])]),two:e.withCtx(()=>[e.createVNode(D,{ref:"barContent",headersHeight:t.styleConfig.headersHeight,rowHeight:t.styleConfig.rowHeight},null,8,["headersHeight","rowHeight"])]),_:1},8,["paneLengthPercent"])])],512)}const qe=ye(Ur,[["render",Bi],["__scopeId","data-v-64edda72"]]),Fi=e.defineComponent({name:"GanttThemeSelector",setup(){const{t}=Me(),o=e.ref(!1),r=e.ref("metro"),m=e.ref(""),p=e.ref(),h=e.ref(we),n=e.inject("ganttContainer"),s=()=>{o.value=!o.value},c=()=>{o.value=!1,u()},D=y=>{console.log("🎯 selectTheme called with:",y),console.log("📦 ganttContainer:",n),console.log("📦 ganttContainer.value:",n==null?void 0:n.value),r.value=y,m.value="",i(y);let L=null;if(n&&n.value?(L=n.value,console.log("✅ Using injected container reference")):(L=document.querySelector(".gantt-container")||document.querySelector(".page")||document.querySelector('[class*="gantt"]'),console.log("🔍 Using DOM query fallback, found:",L)),L){L.setAttribute("data-gantt-theme",y),console.log("✅ Container attribute set:",L.getAttribute("data-gantt-theme"));const W=document.querySelector(".page");W&&(W.setAttribute("data-gantt-theme",y),console.log("✅ Page element attribute set"));try{localStorage.setItem("gantt-theme",y),console.log("💾 Theme saved to localStorage:",y)}catch(z){console.warn("Failed to save theme:",z)}setTimeout(()=>{console.log("🔄 Forcing style recalculation..."),L&&(L.style.display="none",L.offsetHeight,L.style.display="")},50)}else console.error("❌ No gantt container found! Available elements:"),console.log("Available .page elements:",document.querySelectorAll(".page")),console.log("Available .gantt-container elements:",document.querySelectorAll(".gantt-container")),console.log("Available elements with gantt in class:",document.querySelectorAll('[class*="gantt"]'));c()},k=y=>{y!==r.value&&n&&n.value&&(m.value=y,i(y))},u=()=>{m.value&&n&&n.value&&(m.value="",i(r.value))},N=()=>{const y=Ne.exportThemeConfig(),L=new Blob([y],{type:"application/json"}),W=URL.createObjectURL(L),z=document.createElement("a");z.href=W,z.download=`gantt-theme-config-${new Date().toISOString().split("T")[0]}.json`,document.body.appendChild(z),z.click(),document.body.removeChild(z),URL.revokeObjectURL(W)},_=()=>{var y;(y=p.value)==null||y.click()},S=y=>{var W;const L=(W=y.target.files)==null?void 0:W[0];if(L){const z=new FileReader;z.onload=ee=>{var oe;try{const j=(oe=ee.target)==null?void 0:oe.result;Ne.importThemeConfig(j)?(r.value=Ne.getCurrentTheme(),alert("主题配置导入成功!")):alert("主题配置文件格式错误!")}catch{alert("主题配置文件格式错误!")}},z.readAsText(L)}},v=y=>{y.target.closest(".gantt-theme-selector")||c()},i=y=>{console.log("🎨 Starting theme injection for:",y);const L=document.getElementById("gantt-theme-styles");L&&(L.remove(),console.log("🗑️ Removed existing theme styles"));const W=we.find(j=>j.id===y);if(!W){console.error("❌ Theme not found:",y);return}console.log("📋 Theme found:",t(W.nameKey),"Variables count:",Object.keys(W.cssVariables).length);const z=document.createElement("style");z.id="gantt-theme-styles";const ee=Object.entries(W.cssVariables).map(([j,ne])=>`${j}: ${ne};`).join(`
76
- `);z.textContent=`
77
- /* 甘特图主题样式 - ${y} */
1
+ (function(ye,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("dayjs"),require("svg.js"),require("interactjs")):typeof define=="function"&&define.amd?define(["exports","vue","dayjs","svg.js","interactjs"],e):(ye=typeof globalThis<"u"?globalThis:ye||self,e(ye.Vue3Gantt={},ye.Vue,ye.dayjs,ye.SVG,ye.interact))})(this,function(ye,e,w,un,ze){"use strict";var iu=Object.defineProperty;var su=(ye,e,w)=>e in ye?iu(ye,e,{enumerable:!0,configurable:!0,writable:!0,value:w}):ye[e]=w;var et=(ye,e,w)=>su(ye,typeof e!="symbol"?e+"":e,w);function fn(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Pt={exports:{}},na=Pt.exports,Sn;function aa(){return Sn||(Sn=1,function(t,n){(function(o,r){t.exports=r()})(na,function(){var o={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},r=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,i=/\d/,s=/\d\d/,a=/\d\d?/,l=/\d*[^-_:/,()\s\d]+/,u={},d=function(m){return(m=+m)+(m>68?1900:2e3)},p=function(m){return function(R){this[m]=+R}},g=[/[+-]\d\d:?(\d\d)?|Z/,function(m){(this.zone||(this.zone={})).offset=function(R){if(!R||R==="Z")return 0;var b=R.match(/([+-]|\d\d)/g),v=60*b[1]+(+b[2]||0);return v===0?0:b[0]==="+"?-v:v}(m)}],C=function(m){var R=u[m];return R&&(R.indexOf?R:R.s.concat(R.f))},G=function(m,R){var b,v=u.meridiem;if(v){for(var V=1;V<=24;V+=1)if(m.indexOf(v(V,0,R))>-1){b=V>12;break}}else b=m===(R?"pm":"PM");return b},E={A:[l,function(m){this.afternoon=G(m,!1)}],a:[l,function(m){this.afternoon=G(m,!0)}],Q:[i,function(m){this.month=3*(m-1)+1}],S:[i,function(m){this.milliseconds=100*+m}],SS:[s,function(m){this.milliseconds=10*+m}],SSS:[/\d{3}/,function(m){this.milliseconds=+m}],s:[a,p("seconds")],ss:[a,p("seconds")],m:[a,p("minutes")],mm:[a,p("minutes")],H:[a,p("hours")],h:[a,p("hours")],HH:[a,p("hours")],hh:[a,p("hours")],D:[a,p("day")],DD:[s,p("day")],Do:[l,function(m){var R=u.ordinal,b=m.match(/\d+/);if(this.day=b[0],R)for(var v=1;v<=31;v+=1)R(v).replace(/\[|\]/g,"")===m&&(this.day=v)}],w:[a,p("week")],ww:[s,p("week")],M:[a,p("month")],MM:[s,p("month")],MMM:[l,function(m){var R=C("months"),b=(C("monthsShort")||R.map(function(v){return v.slice(0,3)})).indexOf(m)+1;if(b<1)throw new Error;this.month=b%12||b}],MMMM:[l,function(m){var R=C("months").indexOf(m)+1;if(R<1)throw new Error;this.month=R%12||R}],Y:[/[+-]?\d+/,p("year")],YY:[s,function(m){this.year=d(m)}],YYYY:[/\d{4}/,p("year")],Z:g,ZZ:g};function F(m){var R,b;R=m,b=u&&u.formats;for(var v=(m=R.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(A,Y,H){var X=H&&H.toUpperCase();return Y||b[H]||o[H]||b[X].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(Te,h,c){return h||c.slice(1)})})).match(r),V=v.length,k=0;k<V;k+=1){var J=v[k],j=E[J],U=j&&j[0],Q=j&&j[1];v[k]=Q?{regex:U,parser:Q}:J.replace(/^\[|\]$/g,"")}return function(A){for(var Y={},H=0,X=0;H<V;H+=1){var Te=v[H];if(typeof Te=="string")X+=Te.length;else{var h=Te.regex,c=Te.parser,y=A.slice(X),f=h.exec(y)[0];c.call(Y,f),A=A.replace(f,"")}}return function(D){var L=D.afternoon;if(L!==void 0){var M=D.hours;L?M<12&&(D.hours+=12):M===12&&(D.hours=0),delete D.afternoon}}(Y),Y}}return function(m,R,b){b.p.customParseFormat=!0,m&&m.parseTwoDigitYear&&(d=m.parseTwoDigitYear);var v=R.prototype,V=v.parse;v.parse=function(k){var J=k.date,j=k.utc,U=k.args;this.$u=j;var Q=U[1];if(typeof Q=="string"){var A=U[2]===!0,Y=U[3]===!0,H=A||Y,X=U[2];Y&&(X=U[2]),u=this.$locale(),!A&&X&&(u=b.Ls[X]),this.$d=function(y,f,D,L){try{if(["x","X"].indexOf(f)>-1)return new Date((f==="X"?1e3:1)*y);var M=F(f)(y),B=M.year,x=M.month,P=M.day,W=M.hours,te=M.minutes,le=M.seconds,re=M.milliseconds,De=M.zone,$=M.week,_=new Date,oe=P||(B||x?1:_.getDate()),q=B||_.getFullYear(),ne=0;B&&!x||(ne=x>0?x-1:_.getMonth());var ge,Me=W||0,Se=te||0,S=le||0,ee=re||0;return De?new Date(Date.UTC(q,ne,oe,Me,Se,S,ee+60*De.offset*1e3)):D?new Date(Date.UTC(q,ne,oe,Me,Se,S,ee)):(ge=new Date(q,ne,oe,Me,Se,S,ee),$&&(ge=L(ge).week($).toDate()),ge)}catch{return new Date("")}}(J,Q,j,b),this.init(),X&&X!==!0&&(this.$L=this.locale(X).$L),H&&J!=this.format(Q)&&(this.$d=new Date("")),u={}}else if(Q instanceof Array)for(var Te=Q.length,h=1;h<=Te;h+=1){U[1]=Q[h-1];var c=b.apply(this,U);if(c.isValid()){this.$d=c.$d,this.$L=c.$L,this.init();break}h===Te&&(this.$d=new Date(""))}else V.call(this,k)}}})}(Pt)),Pt.exports}var oa=aa();const ra=fn(oa);var Zt={exports:{}},ia=Zt.exports,vn;function sa(){return vn||(vn=1,function(t,n){(function(o,r){t.exports=r(w)})(ia,function(o){function r(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}var i=r(o),s={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(a,l){return l==="W"?a+"周":a+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(a,l){var u=100*a+l;return u<600?"凌晨":u<900?"早上":u<1100?"上午":u<1300?"中午":u<1800?"下午":"晚上"}};return i.default.locale(s,null,!0),s})}(Zt)),Zt.exports}sa();var Gt={exports:{}},la=Gt.exports,Dn;function da(){return Dn||(Dn=1,function(t,n){(function(o,r){t.exports=r()})(la,function(){return{name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(o){var r=["th","st","nd","rd"],i=o%100;return"["+o+(r[(i-20)%10]||r[i]||r[0])+"]"}}})}(Gt)),Gt.exports}da();var Wt={exports:{}},ca=Wt.exports,En;function ua(){return En||(En=1,function(t,n){(function(o,r){t.exports=r(w)})(ca,function(o){function r(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}var i=r(o),s={name:"ja",weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(a){return a+"日"},formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日(ddd) HH:mm"},meridiem:function(a){return a<12?"午前":"午後"},relativeTime:{future:"%s後",past:"%s前",s:"数秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}};return i.default.locale(s,null,!0),s})}(Wt)),Wt.exports}ua();var Ut={exports:{}},fa=Ut.exports,Mn;function ma(){return Mn||(Mn=1,function(t,n){(function(o,r){t.exports=r(w)})(fa,function(o){function r(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}var i=r(o),s={name:"ko",weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),ordinal:function(a){return a+"일"},formats:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},meridiem:function(a){return a<12?"오전":"오후"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"}};return i.default.locale(s,null,!0),s})}(Ut)),Ut.exports}ma();var jt={exports:{}},ha=jt.exports,$n;function pa(){return $n||($n=1,function(t,n){(function(o,r){t.exports=r(w)})(ha,function(o){function r(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}var i=r(o),s={name:"fr",weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinal:function(a){return""+a+(a===1?"er":"")}};return i.default.locale(s,null,!0),s})}(jt)),jt.exports}pa();var qt={exports:{}},ga=qt.exports,Nn;function ya(){return Nn||(Nn=1,function(t,n){(function(o,r){t.exports=r(w)})(ga,function(o){function r(u){return u&&typeof u=="object"&&"default"in u?u:{default:u}}var i=r(o),s={s:"ein paar Sekunden",m:["eine Minute","einer Minute"],mm:"%d Minuten",h:["eine Stunde","einer Stunde"],hh:"%d Stunden",d:["ein Tag","einem Tag"],dd:["%d Tage","%d Tagen"],M:["ein Monat","einem Monat"],MM:["%d Monate","%d Monaten"],y:["ein Jahr","einem Jahr"],yy:["%d Jahre","%d Jahren"]};function a(u,d,p){var g=s[p];return Array.isArray(g)&&(g=g[d?0:1]),g.replace("%d",u)}var l={name:"de",weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sept._Okt._Nov._Dez.".split("_"),ordinal:function(u){return u+"."},weekStart:1,yearStart:4,formats:{LTS:"HH:mm:ss",LT:"HH:mm",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},relativeTime:{future:"in %s",past:"vor %s",s:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a}};return i.default.locale(l,null,!0),l})}(qt)),qt.exports}ya();var Jt={exports:{}},ka=Jt.exports,Vn;function ba(){return Vn||(Vn=1,function(t,n){(function(o,r){t.exports=r(w)})(ka,function(o){function r(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}var i=r(o),s={name:"es",monthsShort:"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),weekStart:1,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},ordinal:function(a){return a+"º"}};return i.default.locale(s,null,!0),s})}(Jt)),Jt.exports}ba();var Kt={exports:{}},wa=Kt.exports,_n;function Ca(){return _n||(_n=1,function(t,n){(function(o,r){t.exports=r(w)})(wa,function(o){function r(E){return E&&typeof E=="object"&&"default"in E?E:{default:E}}var i=r(o),s="января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),a="январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),l="янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),u="янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_"),d=/D[oD]?(\[[^[\]]*\]|\s)+MMMM?/;function p(E,F,m){var R,b;return m==="m"?F?"минута":"минуту":E+" "+(R=+E,b={mm:F?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"}[m].split("_"),R%10==1&&R%100!=11?b[0]:R%10>=2&&R%10<=4&&(R%100<10||R%100>=20)?b[1]:b[2])}var g=function(E,F){return d.test(F)?s[E.month()]:a[E.month()]};g.s=a,g.f=s;var C=function(E,F){return d.test(F)?l[E.month()]:u[E.month()]};C.s=u,C.f=l;var G={name:"ru",weekdays:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),weekdaysShort:"вск_пнд_втр_срд_чтв_птн_сбт".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),months:g,monthsShort:C,weekStart:1,yearStart:4,formats:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",m:p,mm:p,h:"час",hh:p,d:"день",dd:p,M:"месяц",MM:p,y:"год",yy:p},ordinal:function(E){return E},meridiem:function(E){return E<4?"ночи":E<12?"утра":E<17?"дня":"вечера"}};return i.default.locale(G,null,!0),G})}(Kt)),Kt.exports}Ca();const Ta=Symbol("SetBarColor"),Sa=Symbol("SetTaskType"),va=Symbol("AddRootTask"),mt={SetBarColorSymbol:Ta,SetTaskTypeSymbol:Sa,AddRootTaskSymbol:va};var wt=(t=>(t.TASK="task",t.PROJECT="project",t.MILESTONE="milestone",t))(wt||{}),de=(t=>(t.FINISH_TO_START="finish-to-start",t.START_TO_START="start-to-start",t.FINISH_TO_FINISH="finish-to-finish",t.START_TO_FINISH="start-to-finish",t.PARENT_CHILD="parent-child",t))(de||{}),Ne=(t=>(t.STRAIGHT="straight",t.BEZIER="bezier",t.RIGHT_ANGLE="right-angle",t))(Ne||{});const Ct={default:{color:"#3498db",width:2,dashArray:void 0,showArrow:!0,arrowColor:void 0,arrowSize:8,showLabels:!1,labelColor:"#666",labelFontSize:12,cornerRadius:5,pathType:Ne.BEZIER,bezierCurvature:.4,rightAngleOffset:30,smoothCorners:!0,enableDashAnimation:!0,dashAnimationSpeed:.8,parentChildStyle:{color:"#95a5a6",width:1,dashArray:"3,3"},linkTypeColors:{finishToStart:"#3498db",startToStart:"#2ecc71",finishToFinish:"#e74c3c",startToFinish:"#f39c12"},linkTypeVisibility:{finishToStart:!0,startToStart:!0,finishToFinish:!0,startToFinish:!0,parentChild:!0}},business:{color:"#2c3e50",width:2,dashArray:void 0,showArrow:!0,arrowColor:"#e74c3c",arrowSize:10,showLabels:!0,labelColor:"#34495e",labelFontSize:11,cornerRadius:8,pathType:Ne.RIGHT_ANGLE,bezierCurvature:.3,rightAngleOffset:40,smoothCorners:!0,enableDashAnimation:!0,dashAnimationSpeed:.6,parentChildStyle:{color:"#7f8c8d",width:2,dashArray:"5,2"},linkTypeColors:{finishToStart:"#2c3e50",startToStart:"#27ae60",finishToFinish:"#c0392b",startToFinish:"#d35400"},linkTypeVisibility:{finishToStart:!0,startToStart:!0,finishToFinish:!0,startToFinish:!0,parentChild:!0}},modern:{color:"#00bcd4",width:3,dashArray:void 0,showArrow:!0,arrowColor:"#ff5722",arrowSize:12,showLabels:!1,labelColor:"#607d8b",labelFontSize:12,cornerRadius:10,pathType:Ne.BEZIER,bezierCurvature:.6,rightAngleOffset:50,smoothCorners:!0,enableDashAnimation:!0,dashAnimationSpeed:1,parentChildStyle:{color:"#90a4ae",width:2,dashArray:"8,4"},linkTypeColors:{finishToStart:"#00bcd4",startToStart:"#4caf50",finishToFinish:"#f44336",startToFinish:"#ff9800"},linkTypeVisibility:{finishToStart:!0,startToStart:!0,finishToFinish:!0,startToFinish:!0,parentChild:!0}},minimal:{color:"#666",width:1,dashArray:void 0,showArrow:!1,arrowColor:void 0,arrowSize:6,showLabels:!1,labelColor:"#999",labelFontSize:10,cornerRadius:3,pathType:Ne.STRAIGHT,bezierCurvature:.2,rightAngleOffset:20,smoothCorners:!1,enableDashAnimation:!1,dashAnimationSpeed:.8,parentChildStyle:{color:"#ccc",width:1,dashArray:"2,2"},linkTypeColors:{finishToStart:"#666",startToStart:"#888",finishToFinish:"#555",startToFinish:"#777"},linkTypeVisibility:{finishToStart:!0,startToStart:!0,finishToFinish:!0,startToFinish:!0,parentChild:!0}},colorful:{color:"#9c27b0",width:2,dashArray:void 0,showArrow:!0,arrowColor:"#ff9800",arrowSize:9,showLabels:!0,labelColor:"#673ab7",labelFontSize:11,cornerRadius:6,pathType:Ne.RIGHT_ANGLE,bezierCurvature:.5,rightAngleOffset:35,smoothCorners:!0,enableDashAnimation:!0,dashAnimationSpeed:1,parentChildStyle:{color:"#4caf50",width:2,dashArray:"4,3"},linkTypeColors:{finishToStart:"#9c27b0",startToStart:"#4caf50",finishToFinish:"#e91e63",startToFinish:"#ff9800"},linkTypeVisibility:{finishToStart:!0,startToStart:!0,finishToFinish:!0,startToFinish:!0,parentChild:!0}}},An={[de.FINISH_TO_START]:{name:"完成-开始",description:"前置任务完成后,后续任务才能开始",color:"#3498db",priority:1},[de.START_TO_START]:{name:"开始-开始",description:"两个任务同时开始",color:"#2ecc71",priority:2},[de.FINISH_TO_FINISH]:{name:"完成-完成",description:"两个任务同时完成",color:"#e74c3c",priority:3},[de.START_TO_FINISH]:{name:"开始-完成",description:"前置任务开始后,后续任务才能完成",color:"#f39c12",priority:4},[de.PARENT_CHILD]:{name:"父子关系",description:"显示任务的层级关系",color:"#95a5a6",priority:0}};class Da{constructor(){et(this,"config",e.reactive({...Ct.default}));et(this,"STORAGE_KEY","gantt-link-config");this.loadFromStorage()}loadFromStorage(){try{const n=localStorage.getItem(this.STORAGE_KEY);if(n){const o=JSON.parse(n);Object.assign(this.config,o)}}catch(n){console.warn("加载连线配置失败,使用默认配置:",n)}}saveToStorage(){try{localStorage.setItem(this.STORAGE_KEY,JSON.stringify(this.config))}catch(n){console.warn("保存连线配置失败:",n)}}getConfig(){return this.config}setTheme(n){Object.assign(this.config,Ct[n]),this.saveToStorage()}updateConfig(n){Object.assign(this.config,n),this.saveToStorage()}reset(){Object.assign(this.config,Ct.default),this.saveToStorage()}getLinkStyle(n){const o=An[n];return n===de.PARENT_CHILD?{color:this.config.parentChildStyle.color,width:this.config.parentChildStyle.width,dashArray:this.config.parentChildStyle.dashArray}:{color:o.color,width:this.config.width,dashArray:this.config.dashArray}}exportConfig(){return JSON.stringify(this.config,null,2)}importConfig(n){try{const o=JSON.parse(n);return this.updateConfig(o),!0}catch(o){return console.error("导入配置失败:",o),!1}}clearStorage(){try{localStorage.removeItem(this.STORAGE_KEY),this.reset()}catch(n){console.warn("清除配置失败:",n)}}}const Le=new Da;function Tt(){return{config:Le.getConfig(),setTheme:Le.setTheme.bind(Le),updateConfig:Le.updateConfig.bind(Le),reset:Le.reset.bind(Le),getLinkStyle:Le.getLinkStyle.bind(Le),exportConfig:Le.exportConfig.bind(Le),importConfig:Le.importConfig.bind(Le),clearStorage:Le.clearStorage.bind(Le),themes:Ct,linkTypes:An}}class Ea{constructor(){et(this,"dependencies",e.reactive([]));et(this,"STORAGE_KEY","gantt-link-dependencies");this.loadFromStorage()}loadFromStorage(){try{const n=localStorage.getItem(this.STORAGE_KEY);if(n){const o=JSON.parse(n);this.dependencies.splice(0,this.dependencies.length,...o)}}catch(n){console.warn("加载连线依赖关系失败:",n)}}saveToStorage(){try{localStorage.setItem(this.STORAGE_KEY,JSON.stringify(this.dependencies))}catch(n){console.warn("保存连线依赖关系失败:",n)}}addDependency(n){const o=`link-${Date.now()}-${Math.random().toString(36).substring(2,11)}`;return this.dependencies.push({...n,id:o}),this.saveToStorage(),o}removeDependency(n){const o=this.dependencies.findIndex(r=>r.id===n);return o>-1?(this.dependencies.splice(o,1),this.saveToStorage(),!0):!1}getDependencies(){return this.dependencies}getTaskDependencies(n){return this.dependencies.filter(o=>o.sourceTaskId===n||o.targetTaskId===n)}clear(){this.dependencies.splice(0),this.saveToStorage()}clearStorage(){try{localStorage.removeItem(this.STORAGE_KEY),this.clear()}catch(n){console.warn("清除依赖关系失败:",n)}}wouldCreateCycle(n,o){const r=new Set,i=new Set,s=l=>{if(i.has(l))return!0;if(r.has(l))return!1;r.add(l),i.add(l);const u=this.dependencies.filter(d=>d.sourceTaskId===l);for(const d of u)if(s(d.targetTaskId))return!0;return i.delete(l),!1};this.dependencies.push({id:"temp",sourceTaskId:n,targetTaskId:o,type:de.FINISH_TO_START});const a=s(n);return this.dependencies.pop(),a}}const Qt=new Ea,mn={"zh-CN":{common:{confirm:"确定",cancel:"取消",save:"保存",delete:"删除",edit:"编辑",add:"添加",close:"关闭",export:"导出",import:"导入",config:"配置",settings:"设置",theme:"主题",to:"至",selectDate:"请选择日期"},date:{year:"年",month:"月",day:"日",hour:"时",week:"周",today:"今天",monday:"一",tuesday:"二",wednesday:"三",thursday:"四",friday:"五",saturday:"六",sunday:"日",january:"一月",february:"二月",march:"三月",april:"四月",may:"五月",june:"六月",july:"七月",august:"八月",september:"九月",october:"十月",november:"十一月",december:"十二月"},dateFormat:{full:"YYYY年MM月DD日",short:"YYYY-MM-DD",monthDay:"MM月DD日",yearMonth:"YYYY年MM月"},viewMode:{month:"月",week:"周",day:"日",hour:"时"},task:{addRoot:"添加根任务",addSub:"添加子任务",remove:"删除任务",edit:"编辑任务",name:"任务名称",priority:"优先级",startDate:"开始时间",endDate:"结束时间",duration:"耗时",progress:"进度",serialNumber:"序号",type:"类型",taskType:"任务",projectType:"项目",milestoneType:"里程碑"},link:{legend:"连线图例",parentChild:"父子关系",finishToStart:"完成-开始",startToStart:"开始-开始",finishToFinish:"完成-完成",startToFinish:"开始-完成",fs:"FS",ss:"SS",ff:"FF",sf:"SF",pc:"PC"},configPanel:{title:"甘特图配置",themeSettings:"主题设置",linkSettings:"连线设置",languageSettings:"语言设置",currentTheme:"当前",previewTheme:"预览",exportConfig:"导出配置",importConfig:"导入配置",linkConfig:{info:"以下配置用于任务依赖连线(完成-开始、开始-开始等关系)",pathType:"路径类型",straight:"直线",bezier:"贝塞尔",rightAngle:"直角",color:"颜色",width:"线宽",dashStyle:"虚线样式",solid:"实线",shortDash:"短虚线",mediumDash:"中虚线",longDash:"长虚线",dotDash:"点划线",curvature:"弯曲度",offset:"偏移距离",smoothCorners:"平滑转角",cornerRadius:"转角半径",showArrow:"显示箭头",arrowSize:"箭头大小",arrowColor:"箭头颜色",syncColor:"同步",dashAnimation:"虚线流动动画",animationSpeed:"动画速度",showLabels:"显示标签",labelColor:"标签颜色",fontSize:"字体大小",typeColors:"依赖类型颜色",parentChildStyle:"父子关系连线样式",parentChildInfo:"用于显示父任务与子任务之间的层级结构关系"}},theme:{metro:"Metro 金属质感",light:"浅色主题",dark:"深色主题",colorful:"多彩主题",ocean:"海洋主题",apple:"Apple 苹果风格",classic:"经典商务",liquidGlass:"Liquid Glass 液态玻璃",metroDesc:"经典 Windows Metro 风格",lightDesc:"清爽明亮的浅色风格",darkDesc:"优雅专业的深色风格",colorfulDesc:"活力四射的多彩风格",oceanDesc:"沉静舒适的海洋风格",appleDesc:"简约优雅的 macOS 风格",classicDesc:"传统稳重的商务风格",liquidGlassDesc:"iOS 26 液态玻璃效果,半透明流动质感"},datePicker:{selectDate:"请选择日期",clearDate:"清除日期"},tooltip:{addSubTask:"添加子任务",removeTask:"删除当前任务",syncArrowColor:"与线条颜色同步",close:"关闭"}},"en-US":{common:{confirm:"Confirm",cancel:"Cancel",save:"Save",delete:"Delete",edit:"Edit",add:"Add",close:"Close",export:"Export",import:"Import",config:"Config",settings:"Settings",theme:"Theme",to:"to",selectDate:"Select Date"},date:{year:"Year",month:"Month",day:"Day",hour:"Hour",week:"Week",today:"Today",monday:"Mon",tuesday:"Tue",wednesday:"Wed",thursday:"Thu",friday:"Fri",saturday:"Sat",sunday:"Sun",january:"January",february:"February",march:"March",april:"April",may:"May",june:"June",july:"July",august:"August",september:"September",october:"October",november:"November",december:"December"},dateFormat:{full:"MMMM DD, YYYY",short:"MM/DD/YYYY",monthDay:"MMM DD",yearMonth:"MMMM YYYY"},viewMode:{month:"Month",week:"Week",day:"Day",hour:"Hour"},task:{addRoot:"Add Root Task",addSub:"Add Sub Task",remove:"Delete Task",edit:"Edit Task",name:"Task Name",priority:"Priority",startDate:"Start Date",endDate:"End Date",duration:"Duration",progress:"Progress",serialNumber:"No.",type:"Type",taskType:"Task",projectType:"Project",milestoneType:"Milestone"},link:{legend:"Link Legend",parentChild:"Parent-Child",finishToStart:"Finish-to-Start",startToStart:"Start-to-Start",finishToFinish:"Finish-to-Finish",startToFinish:"Start-to-Finish",fs:"FS",ss:"SS",ff:"FF",sf:"SF",pc:"PC"},configPanel:{title:"Gantt Configuration",themeSettings:"Theme Settings",linkSettings:"Link Settings",languageSettings:"Language Settings",currentTheme:"Current",previewTheme:"Preview",exportConfig:"Export Config",importConfig:"Import Config",linkConfig:{info:"Configure task dependency links (Finish-to-Start, Start-to-Start, etc.)",pathType:"Path Type",straight:"Straight",bezier:"Bezier",rightAngle:"Right Angle",color:"Color",width:"Line Width",dashStyle:"Dash Style",solid:"Solid",shortDash:"Short Dash",mediumDash:"Medium Dash",longDash:"Long Dash",dotDash:"Dot Dash",curvature:"Curvature",offset:"Offset Distance",smoothCorners:"Smooth Corners",cornerRadius:"Corner Radius",showArrow:"Show Arrow",arrowSize:"Arrow Size",arrowColor:"Arrow Color",syncColor:"Sync",dashAnimation:"Dash Animation",animationSpeed:"Animation Speed",showLabels:"Show Labels",labelColor:"Label Color",fontSize:"Font Size",typeColors:"Dependency Type Colors",parentChildStyle:"Parent-Child Link Style",parentChildInfo:"Display hierarchical relationship between parent and child tasks"}},theme:{metro:"Metro",light:"Light",dark:"Dark",colorful:"Colorful",ocean:"Ocean",apple:"Apple",classic:"Classic",liquidGlass:"Liquid Glass",metroDesc:"Classic Windows Metro style",lightDesc:"Fresh and bright light style",darkDesc:"Elegant and professional dark style",colorfulDesc:"Vibrant and colorful style",oceanDesc:"Calm and comfortable ocean style",appleDesc:"Minimalist and elegant macOS style",classicDesc:"Traditional and stable business style",liquidGlassDesc:"iOS 26 Liquid Glass effect with translucent fluidity"},datePicker:{selectDate:"Select Date",clearDate:"Clear Date"},tooltip:{addSubTask:"Add Sub Task",removeTask:"Delete Current Task",syncArrowColor:"Sync with line color",close:"Close"}},"ja-JP":{common:{confirm:"確認",cancel:"キャンセル",save:"保存",delete:"削除",edit:"編集",add:"追加",close:"閉じる",export:"エクスポート",import:"インポート",config:"設定",settings:"設定",theme:"テーマ",to:"から",selectDate:"日付を選択"},date:{year:"年",month:"月",day:"日",hour:"時",week:"週",today:"今日",monday:"月",tuesday:"火",wednesday:"水",thursday:"木",friday:"金",saturday:"土",sunday:"日",january:"1月",february:"2月",march:"3月",april:"4月",may:"5月",june:"6月",july:"7月",august:"8月",september:"9月",october:"10月",november:"11月",december:"12月"},dateFormat:{full:"YYYY年MM月DD日",short:"YYYY/MM/DD",monthDay:"MM月DD日",yearMonth:"YYYY年MM月"},viewMode:{month:"月",week:"週",day:"日",hour:"時"},task:{addRoot:"ルートタスクを追加",addSub:"サブタスクを追加",remove:"タスクを削除",edit:"タスクを編集",name:"タスク名",priority:"優先度",startDate:"開始日",endDate:"終了日",duration:"期間",progress:"進捗",serialNumber:"番号",type:"タイプ",taskType:"タスク",projectType:"プロジェクト",milestoneType:"マイルストーン"},link:{legend:"リンク凡例",parentChild:"親子関係",finishToStart:"終了-開始",startToStart:"開始-開始",finishToFinish:"終了-終了",startToFinish:"開始-終了",fs:"FS",ss:"SS",ff:"FF",sf:"SF",pc:"PC"},configPanel:{title:"ガントチャート設定",themeSettings:"テーマ設定",linkSettings:"リンク設定",languageSettings:"言語設定",currentTheme:"現在",previewTheme:"プレビュー",exportConfig:"設定をエクスポート",importConfig:"設定をインポート",linkConfig:{info:"タスク依存関係リンク(終了-開始、開始-開始など)を設定",pathType:"パスタイプ",straight:"直線",bezier:"ベジェ曲線",rightAngle:"直角",color:"色",width:"線の太さ",dashStyle:"破線スタイル",solid:"実線",shortDash:"短い破線",mediumDash:"中破線",longDash:"長い破線",dotDash:"点線破線",curvature:"曲率",offset:"オフセット距離",smoothCorners:"滑らかな角",cornerRadius:"角の半径",showArrow:"矢印を表示",arrowSize:"矢印サイズ",arrowColor:"矢印の色",syncColor:"同期",dashAnimation:"破線アニメーション",animationSpeed:"アニメーション速度",showLabels:"ラベルを表示",labelColor:"ラベルの色",fontSize:"フォントサイズ",typeColors:"依存関係タイプの色",parentChildStyle:"親子リンクスタイル",parentChildInfo:"親タスクと子タスクの階層関係を表示"}},theme:{metro:"メトロ",light:"ライト",dark:"ダーク",colorful:"カラフル",ocean:"オーシャン",apple:"Apple",classic:"クラシック",liquidGlass:"リキッドグラス",metroDesc:"クラシックWindowsメトロスタイル",lightDesc:"明るく爽やかなライトスタイル",darkDesc:"エレガントでプロフェッショナルなダークスタイル",colorfulDesc:"活気あるカラフルスタイル",oceanDesc:"落ち着いた快適なオーシャンスタイル",appleDesc:"ミニマルでエレガントなmacOSスタイル",classicDesc:"伝統的で安定感のあるビジネススタイル",liquidGlassDesc:"iOS 26 リキッドグラス効果、半透明で流動的な質感"},datePicker:{selectDate:"日付を選択",clearDate:"日付をクリア"},tooltip:{addSubTask:"サブタスクを追加",removeTask:"現在のタスクを削除",syncArrowColor:"線の色と同期",close:"閉じる"}},"ko-KR":{common:{confirm:"확인",cancel:"취소",save:"저장",delete:"삭제",edit:"편집",add:"추가",close:"닫기",export:"내보내기",import:"가져오기",config:"설정",settings:"설정",theme:"테마",to:"에서",selectDate:"날짜 선택"},date:{year:"년",month:"월",day:"일",hour:"시",week:"주",today:"오늘",monday:"월",tuesday:"화",wednesday:"수",thursday:"목",friday:"금",saturday:"토",sunday:"일",january:"1월",february:"2월",march:"3월",april:"4월",may:"5월",june:"6월",july:"7월",august:"8월",september:"9월",october:"10월",november:"11월",december:"12월"},dateFormat:{full:"YYYY년 MM월 DD일",short:"YYYY-MM-DD",monthDay:"MM월 DD일",yearMonth:"YYYY년 MM월"},viewMode:{month:"월",week:"주",day:"일",hour:"시"},task:{addRoot:"루트 작업 추가",addSub:"하위 작업 추가",remove:"작업 삭제",edit:"작업 편집",name:"작업 이름",priority:"우선순위",startDate:"시작일",endDate:"종료일",duration:"기간",progress:"진행률",serialNumber:"번호",type:"유형",taskType:"작업",projectType:"프로젝트",milestoneType:"마일스톤"},link:{legend:"링크 범례",parentChild:"부모-자식",finishToStart:"종료-시작",startToStart:"시작-시작",finishToFinish:"종료-종료",startToFinish:"시작-종료",fs:"FS",ss:"SS",ff:"FF",sf:"SF",pc:"PC"},configPanel:{title:"간트 차트 설정",themeSettings:"테마 설정",linkSettings:"링크 설정",languageSettings:"언어 설정",currentTheme:"현재",previewTheme:"미리보기",exportConfig:"설정 내보내기",importConfig:"설정 가져오기",linkConfig:{info:"작업 종속성 링크 설정 (종료-시작, 시작-시작 등)",pathType:"경로 유형",straight:"직선",bezier:"베지어 곡선",rightAngle:"직각",color:"색상",width:"선 두께",dashStyle:"파선 스타일",solid:"실선",shortDash:"짧은 파선",mediumDash:"중간 파선",longDash:"긴 파선",dotDash:"점선 파선",curvature:"곡률",offset:"오프셋 거리",smoothCorners:"부드러운 모서리",cornerRadius:"모서리 반경",showArrow:"화살표 표시",arrowSize:"화살표 크기",arrowColor:"화살표 색상",syncColor:"동기화",dashAnimation:"파선 애니메이션",animationSpeed:"애니메이션 속도",showLabels:"레이블 표시",labelColor:"레이블 색상",fontSize:"글꼴 크기",typeColors:"종속성 유형 색상",parentChildStyle:"부모-자식 링크 스타일",parentChildInfo:"부모 작업과 자식 작업의 계층 관계 표시"}},theme:{metro:"메트로",light:"라이트",dark:"다크",colorful:"컬러풀",ocean:"오션",apple:"Apple",classic:"클래식",liquidGlass:"리퀴드 글래스",metroDesc:"클래식 Windows 메트로 스타일",lightDesc:"밝고 상쾌한 라이트 스타일",darkDesc:"우아하고 전문적인 다크 스타일",colorfulDesc:"활기찬 컬러풀 스타일",oceanDesc:"차분하고 편안한 오션 스타일",appleDesc:"미니멀하고 우아한 macOS 스타일",classicDesc:"전통적이고 안정적인 비즈니스 스타일",liquidGlassDesc:"iOS 26 반투명 유동성을 지닌 리퀴드 글래스 효과"},datePicker:{selectDate:"날짜 선택",clearDate:"날짜 지우기"},tooltip:{addSubTask:"하위 작업 추가",removeTask:"현재 작업 삭제",syncArrowColor:"선 색상과 동기화",close:"닫기"}},"fr-FR":{common:{confirm:"Confirmer",cancel:"Annuler",save:"Enregistrer",delete:"Supprimer",edit:"Modifier",add:"Ajouter",close:"Fermer",export:"Exporter",import:"Importer",config:"Configuration",settings:"Paramètres",theme:"Thème",to:"à",selectDate:"Sélectionner la date"},date:{year:"Année",month:"Mois",day:"Jour",hour:"Heure",week:"Semaine",today:"Aujourd'hui",monday:"Lun",tuesday:"Mar",wednesday:"Mer",thursday:"Jeu",friday:"Ven",saturday:"Sam",sunday:"Dim",january:"Janvier",february:"Février",march:"Mars",april:"Avril",may:"Mai",june:"Juin",july:"Juillet",august:"Août",september:"Septembre",october:"Octobre",november:"Novembre",december:"Décembre"},dateFormat:{full:"DD MMMM YYYY",short:"DD/MM/YYYY",monthDay:"DD MMM",yearMonth:"MMMM YYYY"},viewMode:{month:"Mois",week:"Semaine",day:"Jour",hour:"Heure"},task:{addRoot:"Ajouter une tâche racine",addSub:"Ajouter une sous-tâche",remove:"Supprimer la tâche",edit:"Modifier la tâche",name:"Nom de la tâche",priority:"Priorité",startDate:"Date de début",endDate:"Date de fin",duration:"Durée",progress:"Progrès",serialNumber:"N°",type:"Type",taskType:"Tâche",projectType:"Projet",milestoneType:"Jalon"},link:{legend:"Légende des liens",parentChild:"Parent-Enfant",finishToStart:"Fin-Début",startToStart:"Début-Début",finishToFinish:"Fin-Fin",startToFinish:"Début-Fin",fs:"FD",ss:"DD",ff:"FF",sf:"DF",pc:"PE"},configPanel:{title:"Configuration Gantt",themeSettings:"Paramètres du thème",linkSettings:"Paramètres des liens",languageSettings:"Paramètres de langue",currentTheme:"Actuel",previewTheme:"Aperçu",exportConfig:"Exporter la configuration",importConfig:"Importer la configuration",linkConfig:{info:"Configurer les liens de dépendance des tâches (Fin-Début, Début-Début, etc.)",pathType:"Type de chemin",straight:"Droit",bezier:"Bézier",rightAngle:"Angle droit",color:"Couleur",width:"Épaisseur de ligne",dashStyle:"Style de tiret",solid:"Solide",shortDash:"Tiret court",mediumDash:"Tiret moyen",longDash:"Tiret long",dotDash:"Point-tiret",curvature:"Courbure",offset:"Distance de décalage",smoothCorners:"Coins lisses",cornerRadius:"Rayon du coin",showArrow:"Afficher la flèche",arrowSize:"Taille de la flèche",arrowColor:"Couleur de la flèche",syncColor:"Synchroniser",dashAnimation:"Animation de tiret",animationSpeed:"Vitesse d'animation",showLabels:"Afficher les étiquettes",labelColor:"Couleur de l'étiquette",fontSize:"Taille de police",typeColors:"Couleurs des types de dépendance",parentChildStyle:"Style de lien parent-enfant",parentChildInfo:"Afficher la relation hiérarchique entre les tâches parent et enfant"}},theme:{metro:"Metro",light:"Clair",dark:"Sombre",colorful:"Coloré",ocean:"Océan",apple:"Apple",classic:"Classique",liquidGlass:"Verre Liquide",metroDesc:"Style Metro Windows classique",lightDesc:"Style clair frais et lumineux",darkDesc:"Style sombre élégant et professionnel",colorfulDesc:"Style coloré vibrant",oceanDesc:"Style océan calme et confortable",appleDesc:"Style macOS minimaliste et élégant",classicDesc:"Style business traditionnel et stable",liquidGlassDesc:"Effet Verre Liquide iOS 26 avec fluidité translucide"},datePicker:{selectDate:"Sélectionner la date",clearDate:"Effacer la date"},tooltip:{addSubTask:"Ajouter une sous-tâche",removeTask:"Supprimer la tâche actuelle",syncArrowColor:"Synchroniser avec la couleur de la ligne",close:"Fermer"}},"de-DE":{common:{confirm:"Bestätigen",cancel:"Abbrechen",save:"Speichern",delete:"Löschen",edit:"Bearbeiten",add:"Hinzufügen",close:"Schließen",export:"Exportieren",import:"Importieren",config:"Konfiguration",settings:"Einstellungen",theme:"Thema",to:"bis",selectDate:"Datum auswählen"},date:{year:"Jahr",month:"Monat",day:"Tag",hour:"Stunde",week:"Woche",today:"Heute",monday:"Mo",tuesday:"Di",wednesday:"Mi",thursday:"Do",friday:"Fr",saturday:"Sa",sunday:"So",january:"Januar",february:"Februar",march:"März",april:"April",may:"Mai",june:"Juni",july:"Juli",august:"August",september:"September",october:"Oktober",november:"November",december:"Dezember"},dateFormat:{full:"DD. MMMM YYYY",short:"DD.MM.YYYY",monthDay:"DD. MMM",yearMonth:"MMMM YYYY"},viewMode:{month:"Monat",week:"Woche",day:"Tag",hour:"Stunde"},task:{addRoot:"Hauptaufgabe hinzufügen",addSub:"Unteraufgabe hinzufügen",remove:"Aufgabe löschen",edit:"Aufgabe bearbeiten",name:"Aufgabenname",priority:"Priorität",startDate:"Startdatum",endDate:"Enddatum",duration:"Dauer",progress:"Fortschritt",serialNumber:"Nr.",type:"Typ",taskType:"Aufgabe",projectType:"Projekt",milestoneType:"Meilenstein"},link:{legend:"Verknüpfungslegende",parentChild:"Übergeordnet-Untergeordnet",finishToStart:"Ende-Anfang",startToStart:"Anfang-Anfang",finishToFinish:"Ende-Ende",startToFinish:"Anfang-Ende",fs:"EA",ss:"AA",ff:"EE",sf:"AE",pc:"ÜU"},configPanel:{title:"Gantt-Konfiguration",themeSettings:"Themeneinstellungen",linkSettings:"Verknüpfungseinstellungen",languageSettings:"Spracheinstellungen",currentTheme:"Aktuell",previewTheme:"Vorschau",exportConfig:"Konfiguration exportieren",importConfig:"Konfiguration importieren",linkConfig:{info:"Aufgabenabhängigkeitsverknüpfungen konfigurieren (Ende-Anfang, Anfang-Anfang usw.)",pathType:"Pfadtyp",straight:"Gerade",bezier:"Bézier",rightAngle:"Rechter Winkel",color:"Farbe",width:"Linienstärke",dashStyle:"Strichstil",solid:"Durchgezogen",shortDash:"Kurzer Strich",mediumDash:"Mittlerer Strich",longDash:"Langer Strich",dotDash:"Punkt-Strich",curvature:"Krümmung",offset:"Versatzabstand",smoothCorners:"Glatte Ecken",cornerRadius:"Eckenradius",showArrow:"Pfeil anzeigen",arrowSize:"Pfeilgröße",arrowColor:"Pfeilfarbe",syncColor:"Synchronisieren",dashAnimation:"Strich-Animation",animationSpeed:"Animationsgeschwindigkeit",showLabels:"Beschriftungen anzeigen",labelColor:"Beschriftungsfarbe",fontSize:"Schriftgröße",typeColors:"Abhängigkeitstypfarben",parentChildStyle:"Übergeordnet-Untergeordnet-Verknüpfungsstil",parentChildInfo:"Hierarchische Beziehung zwischen übergeordneten und untergeordneten Aufgaben anzeigen"}},theme:{metro:"Metro",light:"Hell",dark:"Dunkel",colorful:"Farbenfroh",ocean:"Ozean",apple:"Apple",classic:"Klassisch",liquidGlass:"Flüssigglas",metroDesc:"Klassischer Windows Metro-Stil",lightDesc:"Frischer und heller Stil",darkDesc:"Eleganter und professioneller dunkler Stil",colorfulDesc:"Lebendiger farbenfroher Stil",oceanDesc:"Ruhiger und komfortabler Ozean-Stil",appleDesc:"Minimalistischer und eleganter macOS-Stil",classicDesc:"Traditioneller und stabiler Geschäftsstil",liquidGlassDesc:"iOS 26 Flüssigglas-Effekt mit durchscheinender Fließfähigkeit"},datePicker:{selectDate:"Datum auswählen",clearDate:"Datum löschen"},tooltip:{addSubTask:"Unteraufgabe hinzufügen",removeTask:"Aktuelle Aufgabe löschen",syncArrowColor:"Mit Linienfarbe synchronisieren",close:"Schließen"}},"es-ES":{common:{confirm:"Confirmar",cancel:"Cancelar",save:"Guardar",delete:"Eliminar",edit:"Editar",add:"Agregar",close:"Cerrar",export:"Exportar",import:"Importar",config:"Configuración",settings:"Ajustes",theme:"Tema",to:"a",selectDate:"Seleccionar fecha"},date:{year:"Año",month:"Mes",day:"Día",hour:"Hora",week:"Semana",today:"Hoy",monday:"Lun",tuesday:"Mar",wednesday:"Mié",thursday:"Jue",friday:"Vie",saturday:"Sáb",sunday:"Dom",january:"Enero",february:"Febrero",march:"Marzo",april:"Abril",may:"Mayo",june:"Junio",july:"Julio",august:"Agosto",september:"Septiembre",october:"Octubre",november:"Noviembre",december:"Diciembre"},dateFormat:{full:"DD [de] MMMM [de] YYYY",short:"DD/MM/YYYY",monthDay:"DD MMM",yearMonth:"MMMM YYYY"},viewMode:{month:"Mes",week:"Semana",day:"Día",hour:"Hora"},task:{addRoot:"Agregar tarea raíz",addSub:"Agregar subtarea",remove:"Eliminar tarea",edit:"Editar tarea",name:"Nombre de tarea",priority:"Prioridad",startDate:"Fecha de inicio",endDate:"Fecha de fin",duration:"Duración",progress:"Progreso",serialNumber:"Nº",type:"Tipo",taskType:"Tarea",projectType:"Proyecto",milestoneType:"Hito"},link:{legend:"Leyenda de enlaces",parentChild:"Padre-Hijo",finishToStart:"Fin-Inicio",startToStart:"Inicio-Inicio",finishToFinish:"Fin-Fin",startToFinish:"Inicio-Fin",fs:"FI",ss:"II",ff:"FF",sf:"IF",pc:"PH"},configPanel:{title:"Configuración Gantt",themeSettings:"Configuración de tema",linkSettings:"Configuración de enlaces",languageSettings:"Configuración de idioma",currentTheme:"Actual",previewTheme:"Vista previa",exportConfig:"Exportar configuración",importConfig:"Importar configuración",linkConfig:{info:"Configurar enlaces de dependencia de tareas (Fin-Inicio, Inicio-Inicio, etc.)",pathType:"Tipo de ruta",straight:"Recta",bezier:"Bézier",rightAngle:"Ángulo recto",color:"Color",width:"Grosor de línea",dashStyle:"Estilo de guión",solid:"Sólido",shortDash:"Guión corto",mediumDash:"Guión medio",longDash:"Guión largo",dotDash:"Punto-guión",curvature:"Curvatura",offset:"Distancia de desplazamiento",smoothCorners:"Esquinas suaves",cornerRadius:"Radio de esquina",showArrow:"Mostrar flecha",arrowSize:"Tamaño de flecha",arrowColor:"Color de flecha",syncColor:"Sincronizar",dashAnimation:"Animación de guión",animationSpeed:"Velocidad de animación",showLabels:"Mostrar etiquetas",labelColor:"Color de etiqueta",fontSize:"Tamaño de fuente",typeColors:"Colores de tipo de dependencia",parentChildStyle:"Estilo de enlace padre-hijo",parentChildInfo:"Mostrar relación jerárquica entre tareas padre e hijo"}},theme:{metro:"Metro",light:"Claro",dark:"Oscuro",colorful:"Colorido",ocean:"Océano",apple:"Apple",classic:"Clásico",liquidGlass:"Cristal Líquido",metroDesc:"Estilo Metro Windows clásico",lightDesc:"Estilo claro fresco y brillante",darkDesc:"Estilo oscuro elegante y profesional",colorfulDesc:"Estilo colorido vibrante",oceanDesc:"Estilo océano tranquilo y cómodo",appleDesc:"Estilo macOS minimalista y elegante",classicDesc:"Estilo empresarial tradicional y estable",liquidGlassDesc:"Efecto de Cristal Líquido iOS 26 con fluidez translúcida"},datePicker:{selectDate:"Seleccionar fecha",clearDate:"Borrar fecha"},tooltip:{addSubTask:"Agregar subtarea",removeTask:"Eliminar tarea actual",syncArrowColor:"Sincronizar con color de línea",close:"Cerrar"}},"ru-RU":{common:{confirm:"Подтвердить",cancel:"Отмена",save:"Сохранить",delete:"Удалить",edit:"Редактировать",add:"Добавить",close:"Закрыть",export:"Экспорт",import:"Импорт",config:"Конфигурация",settings:"Настройки",theme:"Тема",to:"до",selectDate:"Выбрать дату"},date:{year:"Год",month:"Месяц",day:"День",hour:"Час",week:"Неделя",today:"Сегодня",monday:"Пн",tuesday:"Вт",wednesday:"Ср",thursday:"Чт",friday:"Пт",saturday:"Сб",sunday:"Вс",january:"Январь",february:"Февраль",march:"Март",april:"Апрель",may:"Май",june:"Июнь",july:"Июль",august:"Август",september:"Сентябрь",october:"Октябрь",november:"Ноябрь",december:"Декабрь"},dateFormat:{full:"DD MMMM YYYY г.",short:"DD.MM.YYYY",monthDay:"DD MMM",yearMonth:"MMMM YYYY"},viewMode:{month:"Месяц",week:"Неделя",day:"День",hour:"Час"},task:{addRoot:"Добавить корневую задачу",addSub:"Добавить подзадачу",remove:"Удалить задачу",edit:"Редактировать задачу",name:"Название задачи",priority:"Приоритет",startDate:"Дата начала",endDate:"Дата окончания",duration:"Длительность",progress:"Прогресс",serialNumber:"№",type:"Тип",taskType:"Задача",projectType:"Проект",milestoneType:"Веха"},link:{legend:"Легенда связей",parentChild:"Родитель-Потомок",finishToStart:"Окончание-Начало",startToStart:"Начало-Начало",finishToFinish:"Окончание-Окончание",startToFinish:"Начало-Окончание",fs:"ОН",ss:"НН",ff:"ОО",sf:"НО",pc:"РП"},configPanel:{title:"Конфигурация Gantt",themeSettings:"Настройки темы",linkSettings:"Настройки связей",languageSettings:"Настройки языка",currentTheme:"Текущая",previewTheme:"Предпросмотр",exportConfig:"Экспорт конфигурации",importConfig:"Импорт конфигурации",linkConfig:{info:"Настройка связей зависимостей задач (Окончание-Начало, Начало-Начало и т.д.)",pathType:"Тип пути",straight:"Прямая",bezier:"Безье",rightAngle:"Прямой угол",color:"Цвет",width:"Толщина линии",dashStyle:"Стиль пунктира",solid:"Сплошная",shortDash:"Короткий пунктир",mediumDash:"Средний пунктир",longDash:"Длинный пунктир",dotDash:"Точка-тире",curvature:"Кривизна",offset:"Расстояние смещения",smoothCorners:"Сглаженные углы",cornerRadius:"Радиус угла",showArrow:"Показать стрелку",arrowSize:"Размер стрелки",arrowColor:"Цвет стрелки",syncColor:"Синхронизировать",dashAnimation:"Анимация пунктира",animationSpeed:"Скорость анимации",showLabels:"Показать метки",labelColor:"Цвет метки",fontSize:"Размер шрифта",typeColors:"Цвета типов зависимостей",parentChildStyle:"Стиль связи родитель-потомок",parentChildInfo:"Показать иерархическую связь между родительскими и дочерними задачами"}},theme:{metro:"Метро",light:"Светлая",dark:"Темная",colorful:"Красочная",ocean:"Океан",apple:"Apple",classic:"Классический",liquidGlass:"Жидкое стекло",metroDesc:"Классический стиль Windows Metro",lightDesc:"Свежий и яркий светлый стиль",darkDesc:"Элегантный и профессиональный темный стиль",colorfulDesc:"Яркий красочный стиль",oceanDesc:"Спокойный и комфортный океанский стиль",appleDesc:"Минималистичный и элегантный стиль macOS",classicDesc:"Традиционный и стабильный деловой стиль",liquidGlassDesc:"Эффект жидкого стекла iOS 26 с полупрозрачной текучестью"},datePicker:{selectDate:"Выбрать дату",clearDate:"Очистить дату"},tooltip:{addSubTask:"Добавить подзадачу",removeTask:"Удалить текущую задачу",syncArrowColor:"Синхронизировать с цветом линии",close:"Закрыть"}}},St=e.ref("zh-CN"),hn=localStorage.getItem("gantt-locale");hn&&mn[hn]&&(St.value=hn);function Ma(t){const n=t.split(".");let o=mn[St.value];for(const r of n)if(o&&typeof o=="object")o=o[r];else return t;return typeof o=="string"?o:t}function Ln(t){mn[t]&&(St.value=t,localStorage.setItem("gantt-locale",t))}function $a(){return St.value}function Na(){return[{value:"zh-CN",label:"🇨🇳 简体中文"},{value:"en-US",label:"🇺🇸 English"},{value:"ja-JP",label:"🇯🇵 日本語"},{value:"ko-KR",label:"🇰🇷 한국어"},{value:"fr-FR",label:"🇫🇷 Français"},{value:"de-DE",label:"🇩🇪 Deutsch"},{value:"es-ES",label:"🇪🇸 Español"},{value:"ru-RU",label:"🇷🇺 Русский"}]}function tt(){return{locale:e.computed(()=>St.value),t:Ma,setLocale:Ln,getLocale:$a,getLocales:Na}}const He=[{id:"metro",nameKey:"theme.metro",descKey:"theme.metroDesc",preview:"#0078d4",cssVariables:{"--primary":"#0078d4","--primary-dark":"#106ebe","--primary-light":"#1084d8","--secondary":"#0d5aa7","--bg-metal-light":"linear-gradient(145deg, #ffffff, #f5f5f5)","--bg-metal-normal":"linear-gradient(145deg, #f5f5f5, #e8e8e8)","--bg-metal-dark":"linear-gradient(145deg, #e6e6e6, #d0d0d0)","--bg-metal-pressed":"linear-gradient(145deg, #e0e0e0, #f8f8f8)","--bg-active":"linear-gradient(145deg, #0078d4, #106ebe)","--bg-active-hover":"linear-gradient(145deg, #1084d8, #0d5aa7)","--bg-active-pressed":"linear-gradient(145deg, #0d5aa7, #1084d8)","--border":"#d0d0d0","--border-dark":"#b0b0b0","--shadow-inset":"inset 0 1px 0 rgba(255, 255, 255, 0.8), inset 0 -1px 0 rgba(0, 0, 0, 0.1)","--shadow-outset":"0 2px 4px rgba(0, 0, 0, 0.1)","--shadow-active":"inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.3)","--text-primary":"#333333","--text-secondary":"#666666","--text-muted":"#999999","--text-white":"#ffffff","--bg-primary":"#f8f8f8","--bg-secondary":"#e8e8e8","--bg-content":"#ffffff","--row-hover":"#FFF3A1","--transition-fast":"0.15s ease","--transition-normal":"0.25s ease","--transition-slow":"0.35s ease","--font-family":"'Segoe UI', Tahoma, Geneva, Verdana, sans-serif","--font-size-base":"12px","--font-weight-normal":"500","--font-weight-bold":"600"}},{id:"dark",nameKey:"theme.dark",descKey:"theme.darkDesc",preview:"#00d4ff",cssVariables:{"--primary":"#00d4ff","--primary-dark":"#00b8e6","--primary-light":"#33ddff","--secondary":"#0099cc","--bg-metal-light":"linear-gradient(145deg, #3a3a3a, #2d2d2d)","--bg-metal-normal":"linear-gradient(145deg, #2d2d2d, #1f1f1f)","--bg-metal-dark":"linear-gradient(145deg, #1f1f1f, #0d0d0d)","--bg-metal-pressed":"linear-gradient(145deg, #0d0d0d, #2d2d2d)","--bg-active":"linear-gradient(145deg, #00d4ff, #0099cc)","--bg-active-hover":"linear-gradient(145deg, #33ddff, #00b8e6)","--bg-active-pressed":"linear-gradient(145deg, #00b8e6, #33ddff)","--border":"#404040","--border-dark":"#2d2d2d","--shadow-inset":"inset 0 1px 0 rgba(255, 255, 255, 0.1), inset 0 -1px 0 rgba(0, 0, 0, 0.3)","--shadow-outset":"0 2px 8px rgba(0, 0, 0, 0.3)","--shadow-active":"inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.5)","--text-primary":"#ffffff","--text-secondary":"#cccccc","--text-muted":"#888888","--text-white":"#ffffff","--bg-primary":"#1a1a1a","--bg-secondary":"#2d2d2d","--bg-content":"#262626","--row-hover":"#3a4a5a","--transition-fast":"0.15s ease","--transition-normal":"0.25s ease","--transition-slow":"0.35s ease","--font-family":"'Segoe UI', Tahoma, Geneva, Verdana, sans-serif","--font-size-base":"12px","--font-weight-normal":"500","--font-weight-bold":"600"}},{id:"modern",nameKey:"theme.light",descKey:"theme.lightDesc",preview:"#6366f1",cssVariables:{"--primary":"#6366f1","--primary-dark":"#4f46e5","--primary-light":"#8b5cf6","--secondary":"#3730a3","--bg-metal-light":"linear-gradient(145deg, #fafafa, #f0f0f0)","--bg-metal-normal":"linear-gradient(145deg, #f0f0f0, #e0e0e0)","--bg-metal-dark":"linear-gradient(145deg, #e0e0e0, #d0d0d0)","--bg-metal-pressed":"linear-gradient(145deg, #d8d8d8, #f0f0f0)","--bg-active":"linear-gradient(145deg, #6366f1, #4f46e5)","--bg-active-hover":"linear-gradient(145deg, #8b5cf6, #6366f1)","--bg-active-pressed":"linear-gradient(145deg, #4f46e5, #8b5cf6)","--border":"#e0e0e0","--border-dark":"#c0c0c0","--shadow-inset":"inset 0 1px 0 rgba(255, 255, 255, 0.9), inset 0 -1px 0 rgba(0, 0, 0, 0.05)","--shadow-outset":"0 1px 3px rgba(0, 0, 0, 0.08)","--shadow-active":"inset 0 1px 0 rgba(255, 255, 255, 0.3), inset 0 -1px 0 rgba(0, 0, 0, 0.2)","--text-primary":"#1f2937","--text-secondary":"#6b7280","--text-muted":"#9ca3af","--text-white":"#ffffff","--bg-primary":"#ffffff","--bg-secondary":"#f9fafb","--bg-content":"#ffffff","--row-hover":"#e0e7ff","--transition-fast":"0.15s ease","--transition-normal":"0.25s ease","--transition-slow":"0.35s ease","--font-family":"'Inter', 'Segoe UI', sans-serif","--font-size-base":"12px","--font-weight-normal":"400","--font-weight-bold":"600"}},{id:"classic",nameKey:"theme.classic",descKey:"theme.classicDesc",preview:"#2563eb",cssVariables:{"--primary":"#2563eb","--primary-dark":"#1d4ed8","--primary-light":"#3b82f6","--secondary":"#1e40af","--bg-metal-light":"linear-gradient(145deg, #f8f9fa, #e9ecef)","--bg-metal-normal":"linear-gradient(145deg, #e9ecef, #dee2e6)","--bg-metal-dark":"linear-gradient(145deg, #dee2e6, #ced4da)","--bg-metal-pressed":"linear-gradient(145deg, #ced4da, #e9ecef)","--bg-active":"linear-gradient(145deg, #2563eb, #1d4ed8)","--bg-active-hover":"linear-gradient(145deg, #3b82f6, #2563eb)","--bg-active-pressed":"linear-gradient(145deg, #1d4ed8, #3b82f6)","--border":"#ced4da","--border-dark":"#adb5bd","--shadow-inset":"inset 0 1px 0 rgba(255, 255, 255, 0.7), inset 0 -1px 0 rgba(0, 0, 0, 0.1)","--shadow-outset":"0 2px 4px rgba(0, 0, 0, 0.12)","--shadow-active":"inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.25)","--text-primary":"#212529","--text-secondary":"#495057","--text-muted":"#6c757d","--text-white":"#ffffff","--bg-primary":"#ffffff","--bg-secondary":"#f8f9fa","--bg-content":"#ffffff","--row-hover":"#dbeafe","--transition-fast":"0.15s ease","--transition-normal":"0.25s ease","--transition-slow":"0.35s ease","--font-family":"'Times New Roman', serif","--font-size-base":"12px","--font-weight-normal":"400","--font-weight-bold":"700"}},{id:"colorful",nameKey:"theme.colorful",descKey:"theme.colorfulDesc",preview:"#f59e0b",cssVariables:{"--primary":"#f59e0b","--primary-dark":"#d97706","--primary-light":"#fbbf24","--secondary":"#b45309","--bg-metal-light":"linear-gradient(145deg, #fef3c7, #fed7aa)","--bg-metal-normal":"linear-gradient(145deg, #fed7aa, #fdba74)","--bg-metal-dark":"linear-gradient(145deg, #fdba74, #fb923c)","--bg-metal-pressed":"linear-gradient(145deg, #fb923c, #fed7aa)","--bg-active":"linear-gradient(145deg, #f59e0b, #d97706)","--bg-active-hover":"linear-gradient(145deg, #fbbf24, #f59e0b)","--bg-active-pressed":"linear-gradient(145deg, #d97706, #fbbf24)","--border":"#fdba74","--border-dark":"#fb923c","--shadow-inset":"inset 0 1px 0 rgba(255, 255, 255, 0.6), inset 0 -1px 0 rgba(0, 0, 0, 0.1)","--shadow-outset":"0 2px 6px rgba(245, 158, 11, 0.2)","--shadow-active":"inset 0 1px 0 rgba(255, 255, 255, 0.3), inset 0 -1px 0 rgba(0, 0, 0, 0.2)","--text-primary":"#92400e","--text-secondary":"#b45309","--text-muted":"#d97706","--text-white":"#ffffff","--bg-primary":"#fffbeb","--bg-secondary":"#fef3c7","--bg-content":"#ffffff","--row-hover":"#fef3c7","--transition-fast":"0.15s ease","--transition-normal":"0.25s ease","--transition-slow":"0.35s ease","--font-family":"'Comic Sans MS', cursive","--font-size-base":"12px","--font-weight-normal":"400","--font-weight-bold":"600"}},{id:"apple",nameKey:"theme.apple",descKey:"theme.appleDesc",preview:"#007aff",cssVariables:{"--primary":"#007aff","--primary-dark":"#0051d5","--primary-light":"#4da3ff","--secondary":"#5856d6","--bg-metal-light":"linear-gradient(145deg, #fafafa, #f2f2f7)","--bg-metal-normal":"linear-gradient(145deg, #f2f2f7, #e5e5ea)","--bg-metal-dark":"linear-gradient(145deg, #e5e5ea, #d1d1d6)","--bg-metal-pressed":"linear-gradient(145deg, #d1d1d6, #f2f2f7)","--bg-active":"linear-gradient(145deg, #007aff, #0051d5)","--bg-active-hover":"linear-gradient(145deg, #4da3ff, #007aff)","--bg-active-pressed":"linear-gradient(145deg, #0051d5, #4da3ff)","--border":"#d1d1d6","--border-dark":"#c7c7cc","--shadow-inset":"inset 0 0.5px 0 rgba(255, 255, 255, 0.9), inset 0 -0.5px 0 rgba(0, 0, 0, 0.08)","--shadow-outset":"0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.08)","--shadow-active":"inset 0 1px 0 rgba(255, 255, 255, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.2)","--text-primary":"#000000","--text-secondary":"#3c3c43","--text-muted":"#8e8e93","--text-white":"#ffffff","--bg-primary":"#ffffff","--bg-secondary":"#f2f2f7","--bg-content":"#ffffff","--row-hover":"#e8f4fd","--transition-fast":"0.2s cubic-bezier(0.4, 0, 0.2, 1)","--transition-normal":"0.3s cubic-bezier(0.4, 0, 0.2, 1)","--transition-slow":"0.4s cubic-bezier(0.4, 0, 0.2, 1)","--font-family":"'-apple-system', 'BlinkMacSystemFont', 'SF Pro Text', 'Helvetica Neue', sans-serif","--font-size-base":"13px","--font-weight-normal":"400","--font-weight-bold":"600"}},{id:"liquidGlass",nameKey:"theme.liquidGlass",descKey:"theme.liquidGlassDesc",preview:"linear-gradient(135deg, rgba(255,255,255,0.5) 0%, rgba(220,240,255,0.6) 100%)",cssVariables:{"--primary":"#007aff","--primary-dark":"#0051d5","--primary-light":"#4da3ff","--secondary":"#5856d6","--bg-metal-light":"rgba(255, 255, 255, 0.65)","--bg-metal-normal":"rgba(245, 247, 250, 0.55)","--bg-metal-dark":"rgba(230, 235, 241, 0.6)","--bg-metal-pressed":"rgba(220, 228, 238, 0.7)","--bg-active":"rgba(0, 122, 255, 0.75)","--bg-active-hover":"rgba(77, 163, 255, 0.8)","--bg-active-pressed":"rgba(0, 81, 213, 0.85)","--border":"rgba(255, 255, 255, 0.4)","--border-dark":"rgba(200, 210, 220, 0.5)","--shadow-inset":"inset 0 1px 2px rgba(255, 255, 255, 0.95), inset 0 -1px 1px rgba(0, 0, 0, 0.05)","--shadow-outset":"0 8px 32px rgba(0, 122, 255, 0.12), 0 2px 8px rgba(0, 0, 0, 0.08), 0 0 1px rgba(255, 255, 255, 0.8)","--shadow-active":"inset 0 2px 4px rgba(255, 255, 255, 0.4), inset 0 -2px 4px rgba(0, 0, 0, 0.15), 0 4px 16px rgba(0, 122, 255, 0.25)","--text-primary":"#1d1d1f","--text-secondary":"#424245","--text-muted":"#86868b","--text-white":"#ffffff","--bg-primary":"rgba(250, 250, 252, 0.85)","--bg-secondary":"rgba(242, 242, 247, 0.75)","--bg-content":"rgba(255, 255, 255, 0.7)","--row-hover":"rgba(232, 244, 253, 0.6)","--transition-fast":"0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94)","--transition-normal":"0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94)","--transition-slow":"0.65s cubic-bezier(0.25, 0.46, 0.45, 0.94)","--font-family":"'-apple-system', 'BlinkMacSystemFont', 'SF Pro Display', 'Helvetica Neue', sans-serif","--font-size-base":"13px","--font-weight-normal":"400","--font-weight-bold":"600","--glass-blur":"12px","--glass-saturation":"180%","--glass-brightness":"105%","--glass-edge-highlight":"rgba(255, 255, 255, 0.9)","--glass-edge-shadow":"rgba(0, 0, 0, 0.1)","--glass-reflection":"linear-gradient(135deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.1) 50%, rgba(255,255,255,0.05) 100%)"}}],ft=class ft{constructor(){et(this,"currentTheme","metro");et(this,"storageKey","gantt-theme");et(this,"ganttContainer",null)}static getInstance(){return ft.instance||(ft.instance=new ft),ft.instance}setGanttContainer(n){this.ganttContainer=n,this.loadTheme()}getCurrentTheme(){return this.currentTheme}setTheme(n){const o=He.find(r=>r.id===n);if(!o){console.warn(`Theme ${n} not found`);return}this.currentTheme=n,this.applyTheme(o),this.saveTheme()}applyTheme(n){if(!this.ganttContainer){console.warn("No gantt container available for theme application");return}this.ganttContainer.setAttribute("data-gantt-theme",n.id),Object.entries(n.cssVariables).forEach(([o,r])=>{this.ganttContainer.style.setProperty(o,r)})}loadTheme(){try{const n=localStorage.getItem(this.storageKey);n&&He.find(r=>r.id===n)&&(this.currentTheme=n);const o=He.find(r=>r.id===this.currentTheme);o&&this.applyTheme(o)}catch(n){console.warn("Failed to load theme from localStorage:",n)}}saveTheme(){try{localStorage.setItem(this.storageKey,this.currentTheme)}catch(n){console.warn("Failed to save theme to localStorage:",n)}}getThemes(){return He}getThemeInfo(n){return He.find(o=>o.id===n)}previewTheme(n){const o=He.find(r=>r.id===n);o&&this.applyTheme(o)}cancelPreview(){const n=He.find(o=>o.id===this.currentTheme);n&&this.applyTheme(n)}exportThemeConfig(){return JSON.stringify({currentTheme:this.currentTheme,timestamp:new Date().toISOString()},null,2)}importThemeConfig(n){try{const o=JSON.parse(n);return o.currentTheme&&He.find(r=>r.id===o.currentTheme)?(this.setTheme(o.currentTheme),!0):!1}catch(o){return console.error("Failed to import theme config:",o),!1}}};et(ft,"instance");let pn=ft;const Ie=pn.getInstance(),Va=e.defineComponent({props:{date:{type:String,required:!0},minDate:String,maxDate:String},emits:["confirm","clear"],setup(t,{emit:n}){const{t:o,locale:r}=tt(),i=()=>({"zh-CN":"zh-cn","en-US":"en","ja-JP":"ja","ko-KR":"ko","fr-FR":"fr","de-DE":"de","es-ES":"es","ru-RU":"ru"})[r.value]||"en",s=e.computed(()=>{const z=i();return Array.from({length:7},(pe,_e)=>w().day(_e+1).locale(z).format("dd"))}),a=z=>w().month(z-1).locale(i()).format("MMMM"),l=e.ref(!1),u=e.ref(!1),d=e.ref(!1),p=e.ref(""),g=e.ref(0),C=e.ref("fadeX_Prev"),G=e.ref(!1),E=e.ref(!1),F=e.ref(null),m=e.ref(null),R=e.ref(null),b=e.ref(null),v=e.ref(0),V=e.ref(0),k=e.ref(Ie.getCurrentTheme()),J=e.ref(-1),j=e.ref(-1),U=e.ref({row:-1,col:-1}),Q=e.ref(new Date().getFullYear()),A=e.ref(new Date().getMonth()+1),Y=e.ref(new Date().getFullYear()),H=e.ref(new Date().getMonth()+1),X=e.ref(new Date().getDate()),Te=e.ref(1970),h=e.ref(1),c=e.ref(1),y=e.ref(2099),f=e.ref(12),D=e.ref(31),L=z=>{if(!z)return null;const pe=z.split("-");if(pe.length!==3)return null;const _e=parseInt(pe[0],10),Fe=parseInt(pe[1],10),je=parseInt(pe[2],10);return isNaN(_e)||isNaN(Fe)||isNaN(je)?null:{year:_e,month:Fe,day:je}},M=z=>z>9?String(z):`0${z}`,B=e.computed(()=>({year:Q.value,month:A.value,monthStr:a(A.value)})),x=e.computed(()=>({year:Y.value,month:H.value,day:X.value})),P=e.computed(()=>{const z=[];for(let pe=Te.value;pe<=y.value;pe++)z.push(pe);return z}),W=e.computed(()=>Array.from({length:12},(z,pe)=>pe+1)),te=e.computed(()=>({position:"fixed",top:`${v.value}px`,left:`${V.value}px`,zIndex:100002})),le=()=>Q.value<Te.value||Q.value===Te.value&&A.value<=h.value,re=()=>Q.value>y.value||Q.value===y.value&&A.value>=f.value,De=e.computed(()=>{g.value;const z=Q.value,pe=A.value,_e=new Date(z,pe,0).getDate(),Fe=[];let je=[];for(let qe=1;qe<=_e;qe++){const ta=new Date(z,pe-1,qe).getDay(),Ot=ta===0?7:ta;if(qe===1&&Ot>1)for(let xt=1;xt<Ot;xt++)je.push({value:""});const ru=z===Y.value&&pe===H.value&&qe===X.value;let Tn=!1;if(z===Te.value&&pe===h.value&&qe<c.value&&(Tn=!0),z===y.value&&pe===f.value&&qe>D.value&&(Tn=!0),je.push({value:qe,selected:ru,disabled:Tn}),qe===_e&&Ot<7)for(let xt=Ot;xt<7;xt++)je.push({value:""});(Ot===7||qe===_e)&&(Fe.push(je),je=[])}return Fe}),$=()=>{const z=L(t.date);if(z)Q.value=z.year,A.value=z.month,Y.value=z.year,H.value=z.month,X.value=z.day;else{const Fe=new Date;Q.value=Fe.getFullYear(),A.value=Fe.getMonth()+1,Y.value=Fe.getFullYear(),H.value=Fe.getMonth()+1,X.value=Fe.getDate()}const pe=L(t.minDate||"1970-01-01");pe&&(Te.value=pe.year,h.value=pe.month,c.value=pe.day);const _e=L(t.maxDate||"2099-12-31");_e&&(y.value=_e.year,f.value=_e.month,D.value=_e.day),_()},_=()=>{const z=`${Y.value}-${M(H.value)}-${M(X.value)}`,pe=i(),_e=o("dateFormat.full");p.value=w(z).locale(pe).format(_e)},oe=z=>{Q.value=z,u.value=!1,d.value=!1,g.value++},q=z=>{A.value=z,u.value=!1,d.value=!1,g.value++},ne=z=>{if(z.disabled||z.value==="")return;Y.value=Q.value,H.value=A.value,X.value=z.value,_(),l.value=!1;const pe=new Date(Y.value,H.value-1,X.value).getDay(),_e=pe===0?7:pe,Fe=i(),je=w(`${Y.value}-${H.value}-${X.value}`).locale(Fe).format("dddd");n("confirm",{date:`${Y.value}-${M(H.value)}-${M(X.value)}`,year:Y.value,month:H.value,day:X.value,week:_e,weekStr:je,monthStr:a(H.value)})},ge=()=>{G.value||le()||(G.value=!0,setTimeout(()=>G.value=!1,300),C.value="fadeX_Prev",A.value<=1?(Q.value--,A.value=12):A.value--,g.value++)},Me=()=>{E.value||re()||(E.value=!0,setTimeout(()=>E.value=!1,300),C.value="fadeX_Next",A.value>=12?(Q.value++,A.value=1):A.value++,g.value++)},Se=()=>{if(u.value=!u.value,d.value=!1,u.value&&R.value){const z=P.value.indexOf(Y.value);setTimeout(()=>{R.value&&(R.value.scrollTop=Math.max(0,z-3)*40)},0)}},S=()=>{if(d.value=!d.value,u.value=!1,d.value&&b.value){const z=H.value-1;setTimeout(()=>{b.value&&(b.value.scrollTop=Math.max(0,z-3)*40)},0)}},ee=()=>{u.value=!1},fe=()=>{if(m.value){const z=m.value.getBoundingClientRect();v.value=z.bottom+5,V.value=z.left}l.value=!0,setTimeout(()=>{k.value=Ie.getCurrentTheme(),Z(k.value)},0)},ve=()=>{p.value="",l.value=!1,n("clear")},Z=z=>{if(!F.value)return;const pe=Ie.getThemeInfo(z);pe&&(F.value.setAttribute("data-gantt-theme",z),Object.entries(pe.cssVariables).forEach(([_e,Fe])=>{F.value.style.setProperty(_e,Fe)}))},we=z=>{F.value&&m.value&&!F.value.contains(z.target)&&!m.value.contains(z.target)&&(l.value=!1)},Ee=z=>J.value===z,ae=z=>j.value===z,be=(z,pe)=>U.value.row===pe&&U.value.col===z,he=z=>J.value=z,Ce=()=>J.value=-1,Ze=z=>j.value=z,Xe=()=>j.value=-1,st=(z,pe)=>U.value={row:pe,col:z},zt=()=>U.value={row:-1,col:-1};return e.onBeforeMount(()=>$()),e.watch(()=>t.date,()=>$()),e.watch(()=>t.minDate,()=>$()),e.watch(()=>t.maxDate,()=>$()),e.onMounted(()=>{document.addEventListener("click",we);const z=setInterval(()=>{const pe=Ie.getCurrentTheme();pe!==k.value&&(k.value=pe,Z(pe))},100);e.onUnmounted(()=>clearInterval(z))}),e.onUnmounted(()=>document.removeEventListener("click",we)),{t:o,locale:r,getWeekNames:s,getMonthName:a,selectDate:x,showDate:B,copyMinDate:e.computed(()=>({year:Te.value,month:h.value,day:c.value})),copyMaxDate:e.computed(()=>({year:y.value,month:f.value,day:D.value})),fadeXType:C,nextMonthClick:E,prevMonthClick:G,keepDoubleDigit:M,showYear:u,updateKey:g,yearList:P,rows:De,yearListRef:R,prevMonth:ge,nextMonth:Me,selectDay:ne,selectYear:oe,openYearList:Se,openMonthList:S,monthList:W,monthListRef:b,showMonth:d,selectMonth:q,openCalendarList:ee,showCalendar:l,openCalendar:fe,selectedDateText:p,clearDate:ve,calendarRef:F,inputRef:m,calendarPosition:te,isYearHovered:Ee,isMonthHovered:ae,isDayHovered:be,handleYearMouseEnter:he,handleYearMouseLeave:Ce,handleMonthMouseEnter:Ze,handleMonthMouseLeave:Xe,handleDayMouseEnter:st,handleDayMouseLeave:zt}}}),Ve=(t,n)=>{const o=t.__vccOpts||t;for(const[r,i]of n)o[r]=i;return o},_a={class:"date-picker-input-wrapper"},Aa=["placeholder"],La={class:"e-date-select"},Ba={class:"e-date-year"},Fa={class:"e-date-monthday"},Ha={class:"e-calendar-container"},Ia={class:"e-calendar-toolbar"},Ra={key:0,class:"e-calendar-svg-cover"},Ya={class:"e-calendar-toolbar-title"},za={key:0,class:"e-calendar-svg-cover"},Oa={class:"e-calendar-week"},xa={class:"e-calendar-monthday"},Pa=["onClick","onMouseenter"],Za=["textContent"],Ga={key:0,class:"e-calendar-monthday-row-day-cover"},Wa={class:"e-calendar-year",ref:"yearListRef"},Ua=["onClick","onMouseenter"],ja={class:"e-calendar-year",ref:"monthListRef"},qa=["onClick","onMouseenter"];function Ja(t,n,o,r,i,s){return e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",_a,[e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":n[0]||(n[0]=a=>t.selectedDateText=a),onClick:n[1]||(n[1]=(...a)=>t.openCalendar&&t.openCalendar(...a)),readonly:"",placeholder:t.t("datePicker.selectDate"),class:"date-picker-input",ref:"inputRef"},null,8,Aa),[[e.vModelText,t.selectedDateText]]),t.selectedDateText?(e.openBlock(),e.createElementBlock("span",{key:0,class:"clear-date-button",onClick:n[2]||(n[2]=(...a)=>t.clearDate&&t.clearDate(...a))},n[12]||(n[12]=[e.createElementVNode("svg",{viewBox:"0 0 24 24"},[e.createElementVNode("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})],-1)]))):e.createCommentVNode("",!0)]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.withDirectives(e.createElementVNode("div",{class:"e-calendar",ref:"calendarRef",style:e.normalizeStyle(t.calendarPosition)},[e.createElementVNode("div",La,[e.createElementVNode("div",Ba,[e.createVNode(e.Transition,{name:"fadeY"},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock("div",{key:t.showDate.year,class:e.normalizeClass(["e-date-year-select",{active:t.showYear}]),onClick:n[3]||(n[3]=(...a)=>t.openYearList&&t.openYearList(...a))},e.toDisplayString(t.showDate.year),3))]),_:1})]),e.createElementVNode("div",Fa,[e.createVNode(e.Transition,{name:"fadeY"},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock("div",{key:t.showDate.year+"-"+t.showDate.month,class:e.normalizeClass(["e-date-monthday-select",{active:!t.showYear}]),onClick:n[5]||(n[5]=(...a)=>t.openCalendarList&&t.openCalendarList(...a))},[e.createElementVNode("span",null,e.toDisplayString(t.keepDoubleDigit(t.showDate.month))+"-"+e.toDisplayString(t.keepDoubleDigit(t.selectDate.day)),1),n[13]||(n[13]=e.createTextVNode("  ")),e.createElementVNode("span",{style:{cursor:"pointer"},onClick:n[4]||(n[4]=(...a)=>t.openMonthList&&t.openMonthList(...a))},e.toDisplayString(t.showDate.monthStr),1)],2))]),_:1})])]),e.withDirectives(e.createElementVNode("div",Ha,[e.createElementVNode("div",Ia,[e.createElementVNode("div",{class:"e-calendar-svg",onClick:n[6]||(n[6]=(...a)=>t.prevMonth&&t.prevMonth(...a))},[n[14]||(n[14]=e.createElementVNode("svg",{viewBox:"0 0 24 24",class:"e-calendar-svg-icon"},[e.createElementVNode("path",{d:"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"})],-1)),e.createVNode(e.Transition,{name:"e_calendar_svg_btn"},{default:e.withCtx(()=>[t.prevMonthClick?(e.openBlock(),e.createElementBlock("div",Ra)):e.createCommentVNode("",!0)]),_:1})]),e.createElementVNode("div",Ya,[e.createVNode(e.Transition,{name:t.fadeXType},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock("div",{key:t.showDate.year+"-"+t.showDate.month,class:"e-calendar-toolbar-title-content"},[e.createElementVNode("strong",null,e.toDisplayString(t.showDate.year),1),n[15]||(n[15]=e.createTextVNode("  ")),e.createElementVNode("span",{style:{cursor:"pointer"},onClick:n[7]||(n[7]=(...a)=>t.openMonthList&&t.openMonthList(...a))},e.toDisplayString(t.showDate.monthStr),1)]))]),_:1},8,["name"])]),e.createElementVNode("div",{class:"e-calendar-svg",onClick:n[8]||(n[8]=(...a)=>t.nextMonth&&t.nextMonth(...a))},[n[16]||(n[16]=e.createElementVNode("svg",{viewBox:"0 0 24 24",class:"e-calendar-svg-icon"},[e.createElementVNode("path",{d:"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"})],-1)),e.createVNode(e.Transition,{name:"e_calendar_svg_btn"},{default:e.withCtx(()=>[t.nextMonthClick?(e.openBlock(),e.createElementBlock("div",za)):e.createCommentVNode("",!0)]),_:1})])]),e.createElementVNode("div",Oa,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.getWeekNames,(a,l)=>(e.openBlock(),e.createElementBlock("span",{key:l,class:"e-calendar-week-day"},e.toDisplayString(a),1))),128))]),e.createElementVNode("div",xa,[(e.openBlock(),e.createElementBlock("div",{key:t.updateKey,class:"e-calendar-monthday-wrapper"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.rows,(a,l)=>(e.openBlock(),e.createElementBlock("div",{key:l,class:"e-calendar-monthday-row"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a,(u,d)=>(e.openBlock(),e.createElementBlock("span",{key:d,class:e.normalizeClass(["e-calendar-monthday-row-day",{active:u.selected,disabled:u.disabled,pointer:u.value!=="",hover:t.isDayHovered(d,l)}]),onClick:p=>t.selectDay(u),onMouseenter:p=>t.handleDayMouseEnter(d,l),onMouseleave:n[9]||(n[9]=p=>t.handleDayMouseLeave())},[e.createElementVNode("span",{textContent:e.toDisplayString(u.value),class:"e-calendar-monthday-row-day-value"},null,8,Za),e.createVNode(e.Transition,{name:"e_calendar_day"},{default:e.withCtx(()=>[u.selected?(e.openBlock(),e.createElementBlock("span",Ga)):e.createCommentVNode("",!0)]),_:2},1024)],42,Pa))),128))]))),128))]))])],512),[[e.vShow,!t.showYear&&!t.showMonth]]),e.withDirectives(e.createElementVNode("ul",Wa,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.yearList,(a,l)=>(e.openBlock(),e.createElementBlock("li",{key:l,class:e.normalizeClass({active:a===t.selectDate.year,hover:t.isYearHovered(l)}),onClick:u=>t.selectYear(a),onMouseenter:u=>t.handleYearMouseEnter(l),onMouseleave:n[10]||(n[10]=u=>t.handleYearMouseLeave())},e.toDisplayString(a),43,Ua))),128))],512),[[e.vShow,t.showYear]]),e.withDirectives(e.createElementVNode("ul",ja,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.monthList,(a,l)=>(e.openBlock(),e.createElementBlock("li",{key:l,class:e.normalizeClass({active:a===t.selectDate.month,hover:t.isMonthHovered(l)}),onClick:u=>t.selectMonth(a),onMouseenter:u=>t.handleMonthMouseEnter(l),onMouseleave:n[11]||(n[11]=u=>t.handleMonthMouseLeave())},e.toDisplayString(t.getMonthName(a)),43,qa))),128))],512),[[e.vShow,t.showMonth]])],4),[[e.vShow,t.showCalendar]])]))])}const Bn=Ve(Va,[["render",Ja],["__scopeId","data-v-097ae780"]]),Ka=e.defineComponent({props:{direction:{type:String,default:"row"},min:{type:Number,required:!0},max:{type:Number,required:!0},paneLengthPercent:{type:Number,required:!0},triggerLength:{type:Number,required:!0}},emits:["update:paneLengthPercent"],setup(t,{emit:n}){let o=e.ref(null),r=e.ref(null),i=e.ref(0),s=e.ref("");const a=e.ref(Ie.getCurrentTheme()),l=e.computed(()=>t.direction==="row"?"width":"height"),u=e.computed(()=>{var j;const V=a.value,k=t.direction==="row",J={metro:{default:k?"-webkit-gradient(linear,left top,right top,from(#ffffff), to(#d0d0d0))":"-webkit-gradient(linear, 0 0, 0 bottom, from(#ffffff), to(#d0d0d0))",move:k?"-webkit-gradient(linear,left top,right top,from(#1084d8), to(#0078d4))":"-webkit-gradient(linear, 0 0, 0 bottom, from(#1084d8), to(#0078d4))"},dark:{default:k?"-webkit-gradient(linear,left top,right top,from(#3a3a3a), to(#1f1f1f))":"-webkit-gradient(linear, 0 0, 0 bottom, from(#3a3a3a), to(#1f1f1f))",move:k?"-webkit-gradient(linear,left top,right top,from(#33ddff), to(#00d4ff))":"-webkit-gradient(linear, 0 0, 0 bottom, from(#33ddff), to(#00d4ff))"},modern:{default:k?"-webkit-gradient(linear,left top,right top,from(#f8fafc), to(#e2e8f0))":"-webkit-gradient(linear, 0 0, 0 bottom, from(#f8fafc), to(#e2e8f0))",move:k?"-webkit-gradient(linear,left top,right top,from(#818cf8), to(#6366f1))":"-webkit-gradient(linear, 0 0, 0 bottom, from(#818cf8), to(#6366f1))"},classic:{default:k?"-webkit-gradient(linear,left top,right top,from(#f0f4f8), to(#cbd5e1))":"-webkit-gradient(linear, 0 0, 0 bottom, from(#f0f4f8), to(#cbd5e1))",move:k?"-webkit-gradient(linear,left top,right top,from(#3b82f6), to(#2563eb))":"-webkit-gradient(linear, 0 0, 0 bottom, from(#3b82f6), to(#2563eb))"},colorful:{default:k?"-webkit-gradient(linear,left top,right top,from(#fef3c7), to(#fbbf24))":"-webkit-gradient(linear, 0 0, 0 bottom, from(#fef3c7), to(#fbbf24))",move:k?"-webkit-gradient(linear,left top,right top,from(#f59e0b), to(#d97706))":"-webkit-gradient(linear, 0 0, 0 bottom, from(#f59e0b), to(#d97706))"},apple:{default:k?"-webkit-gradient(linear,left top,right top,from(rgba(255,255,255,0.95)), to(rgba(242,242,247,0.95)))":"-webkit-gradient(linear, 0 0, 0 bottom, from(rgba(255,255,255,0.95)), to(rgba(242,242,247,0.95)))",move:k?"-webkit-gradient(linear,left top,right top,from(#4da6ff), to(#007aff))":"-webkit-gradient(linear, 0 0, 0 bottom, from(#4da6ff), to(#007aff))"},liquidGlass:{default:k?"-webkit-gradient(linear,left top,right top,from(rgba(255,255,255,0.6)), to(rgba(215,215,217,0.4)))":"-webkit-gradient(linear, 0 0, 0 bottom, from(rgba(255,255,255,0.6)), to(rgba(215,215,217,0.4)))",move:k?"-webkit-gradient(linear,left top,right top,from(rgba(166,212,225,0.8)), to(rgba(37,145,200,0.6)))":"-webkit-gradient(linear, 0 0, 0 bottom, from(rgba(166,212,225,0.8)), to(rgba(37,145,200,0.6)))"}};return((j=J[V])==null?void 0:j.default)||J.metro.default}),d=e.computed(()=>{var j;const V=a.value,k=t.direction==="row",J={metro:{default:k?"-webkit-gradient(linear,left top,right top,from(#ffffff), to(#d0d0d0))":"-webkit-gradient(linear, 0 0, 0 bottom, from(#ffffff), to(#d0d0d0))",move:k?"-webkit-gradient(linear,left top,right top,from(#1084d8), to(#0078d4))":"-webkit-gradient(linear, 0 0, 0 bottom, from(#1084d8), to(#0078d4))"},dark:{default:k?"-webkit-gradient(linear,left top,right top,from(#3a3a3a), to(#1f1f1f))":"-webkit-gradient(linear, 0 0, 0 bottom, from(#3a3a3a), to(#1f1f1f))",move:k?"-webkit-gradient(linear,left top,right top,from(#33ddff), to(#00d4ff))":"-webkit-gradient(linear, 0 0, 0 bottom, from(#33ddff), to(#00d4ff))"},modern:{default:k?"-webkit-gradient(linear,left top,right top,from(#f8fafc), to(#e2e8f0))":"-webkit-gradient(linear, 0 0, 0 bottom, from(#f8fafc), to(#e2e8f0))",move:k?"-webkit-gradient(linear,left top,right top,from(#818cf8), to(#6366f1))":"-webkit-gradient(linear, 0 0, 0 bottom, from(#818cf8), to(#6366f1))"},classic:{default:k?"-webkit-gradient(linear,left top,right top,from(#f0f4f8), to(#cbd5e1))":"-webkit-gradient(linear, 0 0, 0 bottom, from(#f0f4f8), to(#cbd5e1))",move:k?"-webkit-gradient(linear,left top,right top,from(#3b82f6), to(#2563eb))":"-webkit-gradient(linear, 0 0, 0 bottom, from(#3b82f6), to(#2563eb))"},colorful:{default:k?"-webkit-gradient(linear,left top,right top,from(#fef3c7), to(#fbbf24))":"-webkit-gradient(linear, 0 0, 0 bottom, from(#fef3c7), to(#fbbf24))",move:k?"-webkit-gradient(linear,left top,right top,from(#f59e0b), to(#d97706))":"-webkit-gradient(linear, 0 0, 0 bottom, from(#f59e0b), to(#d97706))"},apple:{default:k?"-webkit-gradient(linear,left top,right top,from(rgba(255,255,255,0.95)), to(rgba(242,242,247,0.95)))":"-webkit-gradient(linear, 0 0, 0 bottom, from(rgba(255,255,255,0.95)), to(rgba(242,242,247,0.95)))",move:k?"-webkit-gradient(linear,left top,right top,from(#4da6ff), to(#007aff))":"-webkit-gradient(linear, 0 0, 0 bottom, from(#4da6ff), to(#007aff))"},liquidGlass:{default:k?"-webkit-gradient(linear,left top,right top,from(rgba(255,255,255,0.6)), to(rgba(215,215,217,0.4)))":"-webkit-gradient(linear, 0 0, 0 bottom, from(rgba(255,255,255,0.6)), to(rgba(215,215,217,0.4)))",move:k?"-webkit-gradient(linear,left top,right top,from(rgba(166,212,225,0.8)), to(rgba(37,145,200,0.6)))":"-webkit-gradient(linear, 0 0, 0 bottom, from(rgba(166,212,225,0.8)), to(rgba(37,145,200,0.6)))"}};return((j=J[V])==null?void 0:j.move)||J.metro.move}),p=e.computed(()=>`calc(${t.paneLengthPercent}% - ${t.triggerLength/2}px)`),g=e.computed(()=>`${t.triggerLength}px`),C=e.computed(()=>{const V=a.value,k={metro:"brightness(0.4) opacity(0.5)",dark:"brightness(0) invert(1) opacity(0.9)",modern:"grayscale(0.3) brightness(0.6) opacity(0.4)",classic:"contrast(1.2) brightness(0.5) opacity(0.5)",colorful:"hue-rotate(-30deg) saturate(1.5) brightness(0.7) opacity(0.6)",apple:"brightness(0.5) contrast(1.1) opacity(0.45)",liquidGlass:"opacity(0.6)"};return k[V]||k.metro}),G=e.computed(()=>{const V=a.value,k={metro:"brightness(0.3) opacity(0.8)",dark:"brightness(0) invert(1) opacity(1) drop-shadow(0 0 3px cyan)",modern:"grayscale(0) brightness(0.5) hue-rotate(240deg) opacity(0.8)",classic:"contrast(1.5) brightness(0.4) saturate(1.5) opacity(0.9)",colorful:"hue-rotate(-20deg) saturate(2) brightness(0.6) contrast(1.2) opacity(0.95)",apple:"brightness(0.35) contrast(1.3) saturate(1.2) opacity(0.85)",liquidGlass:"opacity(0.9)"};return k[V]||k.metro});e.onMounted(async()=>{await e.nextTick(),s.value=`background: ${u.value}`});const E=async()=>{await e.nextTick(),s.value=`background: ${u.value}`},F=async()=>{await e.nextTick(),s.value=`background: ${d.value}`},m=V=>{document.addEventListener("mousemove",R),document.addEventListener("mouseup",b),t.direction==="row"?i.value=V.pageX-V.target.getBoundingClientRect().left:i.value=V.pageY-V.target.getBoundingClientRect().top},R=async V=>{if(await e.nextTick(),s.value=`background: ${d.value}`,o.value){const k=o.value.getBoundingClientRect();let J=0;t.direction==="row"?J=(V.pageX-k.left-i.value+t.triggerLength/2)/k.width*100:J=(V.pageY-k.top-i.value+t.triggerLength/2)/k.height*100,J<t.min&&(J=t.min),J>t.max&&(J=t.max),n("update:paneLengthPercent",J)}},b=async()=>{await e.nextTick(),s.value=`background: ${u.value}`,document.removeEventListener("mousemove",R)},v=setInterval(()=>{const V=Ie.getCurrentTheme();V!==a.value&&(a.value=V,s.value=`background: ${u.value}`)},100);return e.onUnmounted(()=>{clearInterval(v)}),{splitPane:o,trigger:r,lengthType:l,triggerDefaultColor:u,triggerMoveColor:d,paneLengthValue:p,triggerLengthValue:g,triggerBackGroud:s,iconStyle:C,iconHoverStyle:G,handleMouseLeave:E,handleMouseOver:F,handleMouseDown:m,handleMouseUp:b}}});function Qa(t,n,o,r,i,s){return e.openBlock(),e.createElementBlock("div",{ref:"splitPane",class:e.normalizeClass(["split-pane",t.direction]),style:e.normalizeStyle({flexDirection:t.direction})},[e.createElementVNode("div",{class:"pane pane-one",style:e.normalizeStyle(`${t.lengthType}: ${t.paneLengthValue}`)},[e.renderSlot(t.$slots,"one",{},void 0,!0)],4),t.triggerDefaultColor&&t.triggerMoveColor?(e.openBlock(),e.createElementBlock("div",{key:0,ref:"trigger",class:"pane-trigger",style:e.normalizeStyle(`${t.lengthType}: ${t.triggerLengthValue}; ${t.triggerBackGroud}`)},[e.createElementVNode("div",{onClick:n[0]||(n[0]=(...a)=>t.handleMouseOver&&t.handleMouseOver(...a)),onMouseover:n[1]||(n[1]=(...a)=>t.handleMouseOver&&t.handleMouseOver(...a)),onMouseleave:n[2]||(n[2]=(...a)=>t.handleMouseLeave&&t.handleMouseLeave(...a)),onMousedown:n[3]||(n[3]=(...a)=>t.handleMouseDown&&t.handleMouseDown(...a)),class:"icon",style:e.normalizeStyle(`${t.lengthType}: ${t.triggerLengthValue}; filter: ${t.iconStyle}`)},null,36)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"pane pane-two",style:e.normalizeStyle(`${t.lengthType}: calc(${100-t.paneLengthPercent}% - ${t.triggerLength/2}px)`)},[e.renderSlot(t.$slots,"two",{},void 0,!0)],4)],6)}const Xa=Ve(Ka,[["render",Qa],["__scopeId","data-v-374e7312"]]),eo=e.defineComponent({props:{headers:{type:Array,required:!0}},setup(t){const{t:n}=tt(),o=e.ref(!1),r=e.ref(-1),i=e.ref(0),s=e.ref(0),a=e.ref(null),l=C=>{const E={no:"task.serialNumber",task:"task.name",priority:"task.priority",startdate:"task.startDate",enddate:"task.endDate",takestime:"task.duration",progress:"task.progress",id:"ID",parentId:"Parent ID"}[C.property];return E?E.includes(".")?n(E):E:C.title},u=(C,G)=>{C.preventDefault(),C.stopPropagation(),o.value=!0,r.value=G,i.value=C.clientX,s.value=t.headers[G].width;const E=C.target;a.value=E.closest(".headerCaption"),document.addEventListener("mousemove",p,{passive:!1}),document.addEventListener("mouseup",g),document.body.style.cursor="col-resize",document.body.style.userSelect="none"};let d=null;const p=C=>{!o.value||r.value<0||(C.preventDefault(),d!==null&&cancelAnimationFrame(d),d=requestAnimationFrame(()=>{const G=C.clientX-i.value,E=Math.max(50,s.value+G);a.value&&(a.value.style.width=`${E}px`),document.querySelectorAll(`.cellNo[columnindex="${r.value}"], .cell[columnindex="${r.value}"]`).forEach(m=>{m.style.minWidth=`${E}px`,m.style.maxWidth=`${E}px`}),d=null}))},g=()=>{if(o.value){if(d!==null&&(cancelAnimationFrame(d),d=null),a.value&&r.value>=0){const C=parseInt(a.value.style.width);t.headers[r.value].width=C}o.value=!1,r.value=-1,a.value=null,document.removeEventListener("mousemove",p),document.removeEventListener("mouseup",g),document.body.style.cursor="",document.body.style.userSelect=""}};return{getHeaderTitle:l,startResize:u}}}),to={class:"header"},no=["property","columnindex"],ao=["onMousedown"];function oo(t,n,o,r,i,s){return e.openBlock(),e.createElementBlock("div",to,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.headers,(a,l)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:l,property:a.property,columnindex:l,class:"headerCaption",style:e.normalizeStyle({width:`${a.width}px`})},[e.createElementVNode("span",null,e.toDisplayString(t.getHeaderTitle(a)),1),l<t.headers.length-1&&a.show?(e.openBlock(),e.createElementBlock("div",{key:0,class:"resize-handle",onMousedown:u=>t.startResize(u,l)},null,40,ao)):e.createCommentVNode("",!0)],12,no)),[[e.vShow,a.show]])),128))])}const ro=Ve(eo,[["render",oo],["__scopeId","data-v-bd5028b9"]]),io={monthHeaders:[],weekHeaders:[],dayHeaders:[],hourHeaders:[],tasks:[],taskHeaders:[],mapFields:{},scale:90,timelineCellCount:0,startGanttDate:null,endGanttDate:null,scrollFlag:!0,mode:null,expandRow:{pid:0,expand:!0},collapsedTasks:new Set,rootTask:{},subTask:{},editTask:{},removeTask:{},allowChangeTaskDate:{},barDate:{id:"",startDate:"",endDate:""}};let T=e.reactive(io),ce={setMonthHeaders(t){T.monthHeaders=t},setDayHeaders(t){T.dayHeaders=t},setTasks(t){T.tasks=t},setTaskHeaders(t){T.taskHeaders=t},setWeekHeaders(t){T.weekHeaders=t},setHourHeaders(t){T.hourHeaders=t},setScale(t){T.scale=t},setMapFields(t){T.mapFields=t},setTimelineCellCount(t){T.timelineCellCount=t},setStartGanttDate(t){T.startGanttDate=t},setEndGanttDate(t){T.endGanttDate=t},setScrollFlag(t){T.scrollFlag=t},setMode(t){T.mode=t},setExpandRow(t){T.expandRow=t},toggleTaskCollapse(t){T.collapsedTasks.has(t)?T.collapsedTasks.delete(t):T.collapsedTasks.add(t),T.collapsedTasks=new Set(T.collapsedTasks)},setRootTask(t){T.rootTask=t},setSubTask(t){T.subTask=t},setEditTask(t){T.editTask=t},setRemoveTask(t){T.removeTask=t},setBarDate(t){T.barDate=t},setAllowChangeTaskDate(t){T.allowChangeTaskDate=t}};const Ye=e.reactive({shouldScrollToToday:!1,triggerScrollToToday(){this.shouldScrollToToday=!0},shouldScroll:!1,triggerScroll(){this.shouldScroll=!0},highlightedId:null,triggerHighlight(t){this.highlightedId=t}}),Fn=e.ref(0),Hn=e.ref(!1),so=t=>{Fn.value=t},lo=t=>{Hn.value=t},In=()=>({scrollTop:Fn,scrollFlag:Hn,setScrollTop:so,setScrollFlag:lo}),co=e.defineComponent({props:{headers:{type:Array,default:()=>[]},rowHeight:{type:Number,default:0},row:{type:Object,default:()=>({})}},setup(t){const n=e.ref(!0),o=e.ref(!1),r="添加子任务",i="删除当前任务",s=e.computed(()=>T.mapFields),a=e.computed(()=>T.subTask),l=e.computed(()=>T.collapsedTasks);e.inject("barHover");const u=e.inject("addRootTask"),d=e.computed(()=>{const k=t.row[s.value.id];return T.tasks.some(J=>J[s.value.parentId]===k)}),p=e.computed(()=>{const k=t.row[s.value.id];return l.value.has(k)}),g=e.computed(()=>{const k=t.row[s.value.parentId];if(!k||k==="0")return!1;const J=T.tasks.filter(Q=>Q[s.value.parentId]===k);if(J.length===0)return!1;const j=t.row[s.value.id];return J[J.length-1][s.value.id]===j}),C=e.computed(()=>{const k=[],J=t.row.treeLevel||0;if(J<=1)return k;const j=J-1,U=[];let Q=t.row;for(;Q;){U.unshift(Q);const A=Q[s.value.parentId];if(!A||A==="0")break;const Y=T.tasks.find(H=>H[s.value.id]===A);if(!Y)break;Q=Y}for(let A=U.length-2;A>=0;A--){const Y=U[A],H=Y[s.value.id],X=Y[s.value.parentId],Te=T.tasks.filter(h=>h[s.value.parentId]===X);if(Te.length>0){if(Te[Te.length-1][s.value.id]===H)break;{const y=Y.treeLevel;y&&y>=1&&y!==j&&k.push(y)}}}return k}),G=()=>{const k=t.row[s.value.id];ce.toggleTaskCollapse(k)};e.onMounted(()=>{});const E=ce.setSubTask,F=ce.setEditTask,m=ce.setRemoveTask,R=(k,J)=>s.value[J]?k[s.value[J]]:k[J]?k[J]:null;return e.watch(()=>Ye.highlightedId,k=>{t.row[s.value.id]===k?o.value=!0:o.value=!1}),{showRow:n,hover:o,addTips:r,removeTips:i,mapFields:s,subTask:a,hasChildren:d,isCollapsed:p,isLastChild:g,getAncestorLines:C,toggleCollapse:G,setSubTask:E,setEditTask:F,setRemoveTask:m,checkField:R,hoverActive:()=>{Ye.triggerHighlight(t.row[s.value.id])},hoverInactive:()=>{Ye.triggerHighlight(null)},addRootTask:()=>{u&&u(t.row)}}}}),uo=["columnindex"],fo={class:"no-cell-content"},mo={class:"tree-lines"},ho=["title"],po={key:1,class:"collapse-placeholder"},go={class:"no-text"},yo={class:"action-buttons"},ko=["columnindex"];function bo(t,n,o,r,i,s){return t.showRow?(e.openBlock(),e.createElementBlock("div",{key:0,onMouseover:n[4]||(n[4]=a=>t.hoverActive()),onMouseleave:n[5]||(n[5]=a=>t.hoverInactive()),class:e.normalizeClass({active:t.hover})},[e.createElementVNode("div",{class:"row",onDblclick:n[3]||(n[3]=a=>t.setEditTask(t.row)),style:e.normalizeStyle({height:t.rowHeight+"px"})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.headers,(a,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[a.property==="no"?(e.openBlock(),e.createElementBlock("div",{class:"cellNo",key:l,columnindex:l,style:e.normalizeStyle({minWidth:a.width+"px",maxWidth:a.width+"px",height:t.rowHeight+"px"})},[e.createElementVNode("div",fo,[e.createElementVNode("div",mo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.getAncestorLines,u=>(e.openBlock(),e.createElementBlock("div",{key:"ancestor-"+u,class:"tree-line-vertical ancestor",style:e.normalizeStyle({left:u*16+8+"px"})},null,4))),128)),t.row.treeLevel===1&&t.hasChildren&&!t.isCollapsed?(e.openBlock(),e.createElementBlock("div",{key:0,class:"tree-line-vertical parent-to-child",style:e.normalizeStyle({left:t.row.treeLevel*16+8+"px"})},null,4)):e.createCommentVNode("",!0),t.row.treeLevel&&t.row.treeLevel>1?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",{class:e.normalizeClass(["tree-line-vertical current",{"is-last-child":t.isLastChild}]),style:e.normalizeStyle({left:(t.row.treeLevel-1)*16+8+"px"})},null,6),e.createElementVNode("div",{class:"tree-line-horizontal",style:e.normalizeStyle({left:(t.row.treeLevel-1)*16+8+"px",width:"32px"})},null,4),t.hasChildren&&!t.isCollapsed?(e.openBlock(),e.createElementBlock("div",{key:0,class:"tree-line-vertical parent-to-child",style:e.normalizeStyle({left:t.row.treeLevel*16+8+"px"})},null,4)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"no-left-section",style:e.normalizeStyle({paddingLeft:(t.row.treeLevel||0)*16+"px"})},[t.hasChildren?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:n[0]||(n[0]=e.withModifiers((...u)=>t.toggleCollapse&&t.toggleCollapse(...u),["stop"])),class:e.normalizeClass(["collapse-btn",{collapsed:t.isCollapsed}]),title:t.isCollapsed?"展开":"折叠"},n[6]||(n[6]=[e.createElementVNode("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none"},[e.createElementVNode("path",{class:"arrow",d:"M5 4 L14 9 L5 14 Z",fill:"currentColor"})],-1)]),10,ho)):(e.openBlock(),e.createElementBlock("span",po)),e.createElementVNode("span",go,e.toDisplayString(t.row.no),1)],4),e.createElementVNode("div",yo,[e.createElementVNode("button",{onClick:n[1]||(n[1]=e.withModifiers(u=>t.setSubTask(t.row),["stop"])),class:"action-btn add-btn",title:"添加子任务"},n[7]||(n[7]=[e.createElementVNode("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"currentColor"},[e.createElementVNode("path",{d:"M8 2a.5.5 0 01.5.5v5h5a.5.5 0 010 1h-5v5a.5.5 0 01-1 0v-5h-5a.5.5 0 010-1h5v-5A.5.5 0 018 2z"})],-1)])),e.createElementVNode("button",{onClick:n[2]||(n[2]=e.withModifiers(u=>t.setRemoveTask(t.row),["stop"])),class:"action-btn delete-btn",title:"删除任务"},n[8]||(n[8]=[e.createElementVNode("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"currentColor"},[e.createElementVNode("path",{d:"M5.5 5.5A.5.5 0 016 6v6a.5.5 0 01-1 0V6a.5.5 0 01.5-.5zm2.5 0a.5.5 0 01.5.5v6a.5.5 0 01-1 0V6a.5.5 0 01.5-.5zm3 .5a.5.5 0 00-1 0v6a.5.5 0 001 0V6z"}),e.createElementVNode("path",{"fill-rule":"evenodd",d:"M14.5 3a1 1 0 01-1 1H13v9a2 2 0 01-2 2H5a2 2 0 01-2-2V4h-.5a1 1 0 01-1-1V2a1 1 0 011-1H6a1 1 0 011-1h2a1 1 0 011 1h3.5a1 1 0 011 1v1zM4.118 4L4 4.059V13a1 1 0 001 1h6a1 1 0 001-1V4.059L11.882 4H4.118zM2.5 3V2h11v1h-11z"})],-1)]))])])],12,uo)):e.withDirectives((e.openBlock(),e.createElementBlock("div",{class:"cell",key:l+"-header",columnindex:l,style:e.normalizeStyle({minWidth:a.width+"px",maxWidth:a.width+"px",height:t.rowHeight+"px"})},e.toDisplayString(t.checkField(t.row,a.property)),13,ko)),[[e.vShow,a.show]])],64))),256))],36)],34)):e.createCommentVNode("",!0)}const wo=Ve(co,[["render",bo],["__scopeId","data-v-4f2728a4"]]),Co=e.defineComponent({props:{headers:Array,rowHeight:Number,tasks:Array},components:{TaskRow:wo},setup(t){const n=e.ref([]),o=e.computed(()=>T.mapFields),r=e.computed(()=>T.collapsedTasks),i=d=>{const p=new Set,g=t.tasks||T.tasks,C=G=>{g.filter(F=>F[o.value.parentId]===G).forEach(F=>{const m=F[o.value.id];p.add(m),C(m)})};return C(d),p},s=e.computed(()=>new Set(n.value.map(d=>d[o.value.id]))),a=e.computed(()=>{const d=s.value,p=T.tasks.filter(C=>!d.has(C[o.value.id])),g=new Set;return r.value.forEach(C=>{i(C).forEach(E=>g.add(E))}),p.filter(C=>!g.has(C[o.value.id]))}),l=e.computed({get:()=>T.expandRow,set:d=>{ce.setExpandRow(d)}});e.watch(l,d=>{n.value=[],u(d.pid)});const u=d=>{let p=t.tasks?t.tasks.filter(g=>g[o.value.parentId]===d):[];if(p&&p.length>0)for(let g=0;g<p.length;g++)l.value.expand===!1&&n.value.push(p[g]),u(p[g][o.value.id])};return{filterTask:a,expandRow:l,recursionRow:u,mapFields:o}}});function To(t,n,o,r,i,s){const a=e.resolveComponent("TaskRow");return e.openBlock(),e.createElementBlock("div",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.filterTask,l=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:l.id+"_taskrow"},[t.headers?(e.openBlock(),e.createBlock(a,{key:0,headers:t.headers,rowHeight:t.rowHeight,row:l},null,8,["headers","rowHeight","row"])):e.createCommentVNode("",!0)],64))),128))])}const So=Ve(Co,[["render",To]]),vo=e.defineComponent({props:{headers:{type:Array,default:()=>[]},rowHeight:{type:Number,default:0}},components:{TaskRecursionRow:So},setup(t){const n=e.computed(()=>T.tasks),{scrollTop:o,scrollFlag:r,setScrollTop:i,setScrollFlag:s}=In(),a=e.ref(null),l=e.computed(()=>T.mapFields),u=e.computed(()=>n.value.length*t.rowHeight),d=()=>n.value.filter(F=>F[l.value.parentId]==="0");e.watch(o,F=>{!r.value&&a.value&&(a.value.scrollTop=F)});let p=null;const g=()=>{p&&cancelAnimationFrame(p),p=requestAnimationFrame(()=>{a.value&&(s(!0),i(a.value.scrollTop)),p=null})},C=()=>{},G=()=>{if(a.value){const F=document.querySelector(".table .content");F&&(F.scrollWidth>F.clientWidth?a.value.style.paddingBottom="20px":a.value.style.paddingBottom="0px")}};e.watch(n,()=>{setTimeout(G,50)});const E=()=>{setTimeout(G,50)};return e.onMounted(()=>{a.value&&(a.value.scrollTop=o.value,setTimeout(G,100),window.addEventListener("resize",E))}),e.onUnmounted(()=>{window.removeEventListener("resize",E)}),{tasks:n,taskContent:a,scrollFlag:r,mapFields:l,setScrollFlag:s,getRootNode:d,scroll:g,mouseover:C,contentHeight:u}}});function Do(t,n,o,r,i,s){const a=e.resolveComponent("TaskRecursionRow");return e.openBlock(),e.createElementBlock("div",{ref:"taskContent",class:"content",onScroll:n[0]||(n[0]=l=>t.scroll()),onMouseover:n[1]||(n[1]=l=>t.mouseover())},[e.createElementVNode("div",{class:"content-inner",style:e.normalizeStyle({minHeight:t.contentHeight+"px"})},[e.createVNode(a,{headers:t.headers,rowHeight:t.rowHeight,tasks:t.tasks},null,8,["headers","rowHeight","tasks"])],4)],544)}const Eo=Ve(vo,[["render",Do],["__scopeId","data-v-f24b681d"]]);var Xt={exports:{}},Mo=Xt.exports,Rn;function $o(){return Rn||(Rn=1,function(t,n){(function(o,r){t.exports=r()})(Mo,function(){return function(o,r,i){r.prototype.isBetween=function(s,a,l,u){var d=i(s),p=i(a),g=(u=u||"()")[0]==="(",C=u[1]===")";return(g?this.isAfter(d,l):!this.isBefore(d,l))&&(C?this.isBefore(p,l):!this.isAfter(p,l))||(g?this.isBefore(d,l):!this.isAfter(d,l))&&(C?this.isAfter(p,l):!this.isBefore(p,l))}}})}(Xt)),Xt.exports}var No=$o();const Vo=fn(No);w.extend(Vo);const _o=e.defineComponent({props:{headersHeight:{type:Number,default:50},rowHeight:{type:Number,default:0}},components:{TaskHeader:ro,TaskContent:Eo},setup(){const t=e.computed(()=>T.tasks),n=e.computed(()=>T.taskHeaders),o=e.computed({get:()=>T.rootTask,set:l=>{ce.setRootTask(l)}}),r=e.computed(()=>T.startGanttDate),i=e.computed(()=>T.endGanttDate),s=ce.setRootTask;return{tasks:t,taskHeaders:n,rootTask:o,startGanttDate:r,endGanttDate:i,setRootTask:s,scrollToToday:()=>{w().isBetween(r.value,i.value)&&Ye.triggerScrollToToday()}}}}),Ao={class:"table"};function Lo(t,n,o,r,i,s){const a=e.resolveComponent("TaskHeader"),l=e.resolveComponent("TaskContent");return e.openBlock(),e.createElementBlock("div",Ao,[e.createElementVNode("div",{class:"header",style:e.normalizeStyle({height:`${t.headersHeight}px`})},[(e.openBlock(),e.createElementBlock("svg",{ref:"addTaskSvg",t:"1647915776075",onClick:n[0]||(n[0]=u=>t.setRootTask({})),class:"addRootTask",viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg","p-id":"3147",width:"28",height:"28"},n[2]||(n[2]=[e.createElementVNode("path",{d:"M864 0H160C70.4 0 0 70.4 0 160v704c0 89.6 70.4 160 160 160h704c89.6 0 160-70.4 160-160V160c0-89.6-70.4-160-160-160z m96 864c0 54.4-41.6 96-96 96H160c-54.4 0-96-41.6-96-96V160c0-54.4 41.6-96 96-96h704c54.4 0 96 41.6 96 96v704z",fill:"currentColor","p-id":"3148"},null,-1),e.createElementVNode("path",{d:"M768 480h-224V256c0-19.2-12.8-32-32-32s-32 12.8-32 32v224H256c-19.2 0-32 12.8-32 32s12.8 32 32 32h224v224c0 19.2 12.8 32 32 32s32-12.8 32-32v-224h224c19.2 0 32-12.8 32-32s-12.8-32-32-32z","p-id":"3149",fill:"currentColor"},null,-1)]),512)),(e.openBlock(),e.createElementBlock("svg",{ref:"jumpTodaySvg",onClick:n[1]||(n[1]=u=>t.scrollToToday()),class:"jumpToToday",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28"},n[3]||(n[3]=[e.createElementVNode("path",{d:"M19 4h-1V2h-2v2H8V2H6v2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zm0-12H5V6h14v2z",fill:"currentColor"},null,-1),e.createElementVNode("circle",{cx:"12",cy:"15",r:"2",fill:"currentColor"},null,-1),e.createElementVNode("path",{d:"M16.5 11.5l2 2-2 2",stroke:"currentColor","stroke-width":"1.5",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},null,-1),e.createElementVNode("path",{d:"M18.5 13.5h-4",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round"},null,-1)]),512)),e.createVNode(a,{headers:t.taskHeaders},null,8,["headers"])],4),e.createElementVNode("div",{style:e.normalizeStyle({height:`calc(100% - ${t.headersHeight}px)`})},[Array.isArray(t.tasks)&&t.tasks.length>0?(e.openBlock(),e.createBlock(l,{key:0,headers:t.taskHeaders,rowHeight:t.rowHeight},null,8,["headers","rowHeight"])):e.createCommentVNode("",!0)],4)])}const Bo=Ve(_o,[["render",Lo],["__scopeId","data-v-7efd20f0"]]),Fo=e.defineComponent({props:{weekHeaders:{type:Array,default:()=>[]},dayHeaders:{type:Array,default:()=>[]},monthHeaders:{type:Array,default:()=>[]},hourHeaders:{type:Array,default:()=>[]}},setup(t){const{weekHeaders:n,dayHeaders:o,monthHeaders:r,hourHeaders:i}=e.toRefs(t),{locale:s}=tt();return{weekHeaders:n,dayHeaders:o,monthHeaders:r,hourHeaders:i,isToday:l=>{const d={"zh-CN":"zh-cn","en-US":"en","ja-JP":"ja","ko-KR":"ko","fr-FR":"fr","de-DE":"de","es-ES":"es","ru-RU":"ru"}[s.value]||"en";return l===w().locale(d).format("YYYY-MM-DD")}}}}),Ho={class:"headerContainer"},Io={key:0,class:"header"},Ro={key:1,class:"header"},Yo={key:2,class:"header"},zo={key:0,class:"today",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20"},Oo={key:3,class:"header"};function xo(t,n,o,r,i,s){return e.openBlock(),e.createElementBlock("div",Ho,[t.monthHeaders&&t.monthHeaders.length>0?(e.openBlock(),e.createElementBlock("div",Io,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.monthHeaders,a=>(e.openBlock(),e.createElementBlock("div",{key:a.title,class:"headerCaption",style:e.normalizeStyle([{"border-bottom":"0px"},{width:a.width+"px"}])},[e.createElementVNode("span",{style:e.normalizeStyle({width:a.width+"px"})},e.toDisplayString(a.title),5)],4))),128))])):e.createCommentVNode("",!0),t.weekHeaders&&t.weekHeaders.length>0?(e.openBlock(),e.createElementBlock("div",Ro,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.weekHeaders,a=>(e.openBlock(),e.createElementBlock("div",{key:a.title,class:"headerCaption",style:e.normalizeStyle([{"border-top":"1px"},{width:a.width+"px"}])},[e.createElementVNode("span",{style:e.normalizeStyle({width:a.width+"px"})},e.toDisplayString(a.title),5)],4))),128))])):e.createCommentVNode("",!0),t.dayHeaders&&t.dayHeaders.length>0?(e.openBlock(),e.createElementBlock("div",Yo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.dayHeaders,a=>(e.openBlock(),e.createElementBlock("div",{key:a.title,class:"headerCaption",style:e.normalizeStyle({width:a.width+"px"})},[e.createElementVNode("span",{style:e.normalizeStyle({width:a.width+"px"})},e.toDisplayString(a.title),5),t.isToday(a.fulldate)?(e.openBlock(),e.createElementBlock("svg",zo,n[0]||(n[0]=[e.createElementVNode("path",{d:"M19 4h-1V2h-2v2H8V2H6v2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zm0-12H5V6h14v2z",fill:"currentColor"},null,-1),e.createElementVNode("circle",{cx:"12",cy:"15",r:"2",fill:"currentColor"},null,-1),e.createElementVNode("path",{d:"M8 11l4 4 4-4",stroke:"currentColor","stroke-width":"1.5",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]))):e.createCommentVNode("",!0)],4))),128))])):e.createCommentVNode("",!0),t.hourHeaders&&t.hourHeaders.length>0?(e.openBlock(),e.createElementBlock("div",Oo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.hourHeaders,a=>(e.openBlock(),e.createElementBlock("div",{key:a.title,class:"headerCaption",style:e.normalizeStyle({width:a.width+"px",marginTop:"-2px"})},[e.createElementVNode("span",{style:e.normalizeStyle({width:a.width+"px"})},e.toDisplayString(a.title),5)],4))),128))])):e.createCommentVNode("",!0)])}const Po=Ve(Fo,[["render",xo],["__scopeId","data-v-da19c883"]]);var en={exports:{}},Zo=en.exports,Yn;function Go(){return Yn||(Yn=1,function(t,n){(function(o,r){t.exports=r()})(Zo,function(){var o="day";return function(r,i,s){var a=function(d){return d.add(4-d.isoWeekday(),o)},l=i.prototype;l.isoWeekYear=function(){return a(this).year()},l.isoWeek=function(d){if(!this.$utils().u(d))return this.add(7*(d-this.isoWeek()),o);var p,g,C,G,E=a(this),F=(p=this.isoWeekYear(),g=this.$u,C=(g?s.utc:s)().year(p).startOf("year"),G=4-C.isoWeekday(),C.isoWeekday()>4&&(G+=7),C.add(G,o));return E.diff(F,"week")+1},l.isoWeekday=function(d){return this.$utils().u(d)?this.day()||7:this.day(this.day()%7?d:d-7)};var u=l.startOf;l.startOf=function(d,p){var g=this.$utils(),C=!!g.u(p)||p;return g.p(d)==="isoweek"?C?this.date(this.date()-(this.isoWeekday()-1)).startOf("day"):this.date(this.date()-1-(this.isoWeekday()-1)+7).endOf("day"):u.bind(this)(d,p)}}})}(en)),en.exports}var Wo=Go();const zn=fn(Wo);w.extend(zn);const Uo=e.defineComponent({name:"Bar",emits:["progress-update"],props:{rowHeight:{type:Number,default:0},row:{type:Object,default:()=>({})},startGanttDate:{type:String},endGanttDate:{type:String}},setup(t,{emit:n}){const o=e.ref(null),r=e.ref(t.rowHeight*.7),i=e.ref(null),s=e.ref(0),a=e.ref(0),l=e.ref(!0),u=e.ref(!1),d=e.ref(""),p=e.ref(!1),g=e.ref(0),C=e.ref(!1),G=e.computed(()=>T.timelineCellCount),E=e.computed(()=>T.scale),F=e.computed(()=>T.mode),m=e.computed(()=>T.mapFields),R=e.computed(()=>{const A=Number(t.row[m.value.progress]);return isNaN(A)?"0.00%":(A*100).toFixed(2)+"%"}),b=e.inject(mt.SetBarColorSymbol),v=A=>{const Y={taskId:t.row[m.value.id],oldProgress:Number(t.row[m.value.progress])||0,newProgress:A,task:t.row};n("progress-update",Y),window.dispatchEvent(new CustomEvent("taskProgressUpdate",{detail:Y})),console.log("Task progress updated:",Y)};e.watch(()=>Ye.highlightedId,A=>{u.value=t.row[m.value.id]===A});const V=()=>Ye.triggerHighlight(t.row[m.value.id]),k=()=>Ye.triggerHighlight(null),J=A=>{g.value;let Y="#ffffff",H="#f8f8f8";if(o.value){let X=o.value.parentElement;for(;X;){if(X.hasAttribute("data-gantt-theme")){Y=getComputedStyle(X).getPropertyValue("--bg-content").trim()||"#ffffff",H=getComputedStyle(X).getPropertyValue("--bg-secondary").trim()||"#f8f8f8";break}X=X.parentElement}}switch(F.value){case"月":case"日":{let X=w(t.startGanttDate).add(A,"days");return X.isoWeekday()===7||X.isoWeekday()===1?H:Y}case"周":case"时":return Y}},j=ce.setBarDate,U=ce.setAllowChangeTaskDate,Q=A=>{let Y=0;switch(F.value){case"月":case"日":{let $=w(t.row[m.value.startdate]).diff(w(t.startGanttDate),"days");Y=E.value*$;let _=w(t.row[m.value.enddate]).diff(w(t.row[m.value.startdate]),"days")+1;a.value=_*E.value,t.row[m.value.takestime]=_+"天";break}case"周":{const $=w(t.startGanttDate).startOf("isoWeek"),_=w(t.row[m.value.startdate]).startOf("isoWeek");let oe=_.diff($,"week");Y=E.value*oe;let ne=w(t.row[m.value.enddate]).startOf("isoWeek").diff(_,"week")+1;a.value=ne*E.value,t.row[m.value.takestime]=ne+"周";break}case"时":{let $=w(t.row[m.value.startdate]).diff(w(t.startGanttDate),"hours");Y=E.value*$;let _=w(t.row[m.value.enddate]).diff(w(t.row[m.value.startdate]),"hours")+1;a.value=_*E.value,t.row[m.value.takestime]=_+"小时";break}}s.value=Y;let H=un(A);const X=getComputedStyle(A).getPropertyValue("--border")||"#cecece";A.setAttribute("data-x",Y.toString()),A.setAttribute("width",a.value.toString()),A.setAttribute("stroke",X),A.setAttribute("stroke-width","1px"),A.style.transform=`translate(${Y}px, 0px)`;let Te=H.select("pattern").first(),h=H.children().filter($=>$.type==="g")[0]||H.group(),c=H.select(".innerRect").first(),y=H.select("rect:not(.innerRect):not(.progressHandle)").first(),f=H.select("text").first(),D=H.select(".progressHandle").first();Te||(Te=H.pattern(10,10,$=>{$.path("M10 -5 -10,15M15,0,0,15M0 -5 -20,15").fill("none").stroke({color:"gray",opacity:.4,width:5})})),h||(h=H.group());let L=t.row[m.value.progress]?Number(a.value)*Number(t.row[m.value.progress]):Number(a.value);c?(c.fill({color:d.value,opacity:.4}),c.width(L)):(c=H.rect(L,r.value).radius(10),c.addClass("innerRect"),h.add(c)),y?y.width(a.value):(y=H.rect(a.value,r.value).radius(10).fill(Te).stroke({color:X,width:1}),y.on("mouseover",()=>y.animate(200).attr({stroke:"#000",strokeWidth:2,opacity:1})),y.on("mouseleave",()=>y.animate(200).attr({stroke:"#0066ff",strokeWidth:10,opacity:.4}))),f?f.text(R.value):f=H.text(R.value).stroke("#faf7ec");const M=f.bbox();f.font({size:15,anchor:"middle",leading:"1em"}).fill("#000").attr("opacity",1).attr("dominant-baseline","middle").center(c.width()/2+M.width/2,c.height()/2);const B=12,x=8,P=L-B/2,W=r.value-x/2,te=L,le=()=>{let $="#f59e0b",_="#d97706",oe="#fbbf24",q=A.parentElement;for(;q;){if(q.hasAttribute("data-gantt-theme")){$=getComputedStyle(q).getPropertyValue("--primary").trim()||$,_=getComputedStyle(q).getPropertyValue("--primary-dark").trim()||_,oe=getComputedStyle(q).getPropertyValue("--primary-light").trim()||oe;break}q=q.parentElement}return{primary:$,primaryDark:_,primaryLight:oe}};let re=A.querySelector(".progressGuideLine");const De=le();if(!re){const $=document.createElementNS("http://www.w3.org/2000/svg","line");$.setAttribute("class","progressGuideLine"),$.setAttribute("x1",String(te)),$.setAttribute("y1","0"),$.setAttribute("x2",String(te)),$.setAttribute("y2",String(W)),$.setAttribute("stroke",De.primaryDark),$.setAttribute("stroke-width","2"),$.setAttribute("stroke-dasharray","4,3"),$.setAttribute("opacity","0.8"),A.appendChild($),re=$}if(re.setAttribute("x1",String(te)),re.setAttribute("x2",String(te)),re.setAttribute("y2",String(W)),re.setAttribute("stroke",De.primaryDark),re.setAttribute("opacity","0.8"),D){D.move(P,W);const $=D.node;$.setAttribute("fill",De.primary),$.setAttribute("stroke",De.primaryDark)}else{const $=`${B/2},0 0,${x} ${B},${x}`;D=H.polygon($).fill(De.primary).stroke({color:De.primaryDark,width:1}).addClass("progressHandle");const _=D.node;_.style.cursor="ew-resize",_.style.pointerEvents="auto",D.move(P,W);let oe=P;_.addEventListener("mouseenter",()=>{if(!C.value){const q=le();_.setAttribute("fill",q.primaryLight),_.setAttribute("stroke",q.primary),_.setAttribute("stroke-width","2"),re.setAttribute("stroke",q.primaryLight),re.setAttribute("stroke-width","2"),re.setAttribute("opacity","1")}}),_.addEventListener("mouseleave",()=>{if(!C.value){const q=le();_.setAttribute("fill",q.primary),_.setAttribute("stroke",q.primaryDark),_.setAttribute("stroke-width","1"),re.setAttribute("stroke",q.primaryDark),re.setAttribute("stroke-width","2"),re.setAttribute("opacity","0.8")}}),ze(_).draggable({inertia:!1,listeners:{start:()=>{C.value=!0;const q=le();_.setAttribute("fill",q.primaryDark),_.setAttribute("stroke",q.primaryDark),_.setAttribute("stroke-width","2"),re.setAttribute("stroke",q.primaryDark),re.setAttribute("stroke-width","2"),re.setAttribute("opacity","1")},move:q=>{oe+=q.dx,oe=Math.max(-12/2,Math.min(oe,a.value-B/2)),D.move(oe,W);const ne=oe+B/2;re.setAttribute("x1",String(ne)),re.setAttribute("x2",String(ne));const ge=Math.min(1,Math.max(0,(oe+B/2)/a.value));c.width(ge*a.value),f.text((ge*100).toFixed(2)+"%"),f.center(c.width()/2+M.width/2,c.height()/2)},end:()=>{C.value=!1;const q=le();_.setAttribute("fill",q.primary),_.setAttribute("stroke",q.primaryDark),_.setAttribute("stroke-width","1"),re.setAttribute("stroke",q.primaryDark),re.setAttribute("stroke-width","2"),re.setAttribute("opacity","0.8");const ne=Math.min(1,Math.max(0,(oe+B/2)/a.value));t.row[m.value.progress]=ne,v(ne)}}})}j({id:t.row[m.value.id],startDate:t.row[m.value.startdate],endDate:t.row[m.value.enddate]}),ze(A).draggable({inertia:!1,modifiers:[ze.modifiers.restrictRect({restriction:"parent",endOnly:!0})],autoScroll:!0,listeners:{start:$=>{C.value||(s.value=Number($.target.getAttribute("data-x")),a.value=$.target.width.baseVal.value)},move:$=>{if(C.value)return;let _=((parseFloat($.target.getAttribute("data-x")||"0")||0)+$.dx).toString();Object.assign($.target.style,{width:`${$.rect.width}px`,height:`${$.rect.height}px`,transform:`translate(${_}px, 0px)`}),$.target.setAttribute("data-x",_),$.target.setAttribute("data-y","0")},end:$=>{if(C.value)return;let _=$.target,oe=parseFloat(_.getAttribute("data-x")||"0")||0,ne=Math.round(oe/E.value)*E.value;ne<0&&(ne=0),ne>G.value*E.value&&(ne=G.value*E.value);const ge=m.value.parentId||"pid",Me=t.row[ge];if(Me&&Me!=="0"){const ae=T.tasks.find(be=>String(be[m.value.id])===String(Me));if(ae){let be=0;if(F.value==="月"||F.value==="日")be=w(ae[m.value.startdate]).diff(w(t.startGanttDate),"days")*E.value;else if(F.value==="周"){const he=w(t.startGanttDate).startOf("isoWeek");be=w(ae[m.value.startdate]).startOf("isoWeek").diff(he,"week")*E.value}else F.value==="时"&&(be=w(ae[m.value.startdate]).diff(w(t.startGanttDate),"hours")*E.value);ne<be&&(ne=be)}}_.style.transform=`translate(${ne}px, 0px)`,_.setAttribute("data-x",ne.toString());const Se=Math.round((ne-s.value)/E.value);let S=0,ee=0;if(F.value==="月"||F.value==="日"?S=Se:F.value==="周"?S=Se*7:F.value==="时"&&(ee=Se),F.value==="时")t.row[m.value.startdate]=w(t.row[m.value.startdate]).add(ee,"hours").format("YYYY-MM-DD HH:mm:ss"),t.row[m.value.enddate]=w(t.row[m.value.enddate]).add(ee,"hours").format("YYYY-MM-DD HH:mm:ss"),t.row[m.value.takestime]=w(t.row[m.value.enddate]).diff(w(t.row[m.value.startdate]),"hours")+1+"小时";else if(t.row[m.value.startdate]=w(t.row[m.value.startdate]).add(S,"days").format("YYYY-MM-DD HH:mm:ss"),t.row[m.value.enddate]=w(t.row[m.value.enddate]).add(S,"days").format("YYYY-MM-DD HH:mm:ss"),F.value==="月"||F.value==="日")t.row[m.value.takestime]=w(t.row[m.value.enddate]).diff(w(t.row[m.value.startdate]),"days")+1+"天";else if(F.value==="周"){const ae=w(t.row[m.value.startdate]).startOf("isoWeek"),be=w(t.row[m.value.enddate]).startOf("isoWeek");t.row[m.value.takestime]=be.diff(ae,"week")+1+"周"}const fe=w(t.row[m.value.startdate]),ve=t.row[m.value.id],Z=(ae,be)=>{const he=[];for(const Ce of be)String(Ce[ge])===String(ae)&&(he.push(Ce),he.push(...Z(Ce[m.value.id],be)));return he},we=Z(ve,T.tasks);if((F.value==="时"?ee:S)>0)for(const ae of we)w(ae[m.value.startdate]).isBefore(fe)&&(F.value==="时"?(ae[m.value.startdate]=w(ae[m.value.startdate]).add(ee,"hours").format("YYYY-MM-DD HH:mm:ss"),ae[m.value.enddate]=w(ae[m.value.enddate]).add(ee,"hours").format("YYYY-MM-DD HH:mm:ss")):(ae[m.value.startdate]=w(ae[m.value.startdate]).add(S,"days").format("YYYY-MM-DD HH:mm:ss"),ae[m.value.enddate]=w(ae[m.value.enddate]).add(S,"days").format("YYYY-MM-DD HH:mm:ss")),j({id:ae[m.value.id],startDate:ae[m.value.startdate],endDate:ae[m.value.enddate]}));j({id:t.row[m.value.id],startDate:t.row[m.value.startdate],endDate:t.row[m.value.enddate]})}}}),ze(A).resizable({edges:{left:!0,right:!0,bottom:!1,top:!1},listeners:{start:$=>{s.value=Number($.target.getAttribute("data-x")),a.value=Number($.target.getAttribute("width"))},end:$=>{U(t.row);let _=$.target,oe=$.rect.width,q=Math.round(oe/E.value);q<1&&(q=1),oe=q*E.value;let ne=s.value;if($.edges&&$.edges.left){ne=s.value+(a.value-oe),ne=Math.round(ne/E.value)*E.value,ne<0&&(ne=0);const Z=m.value.parentId||"pid",we=t.row[Z];if(we&&we!=="0"){const Ee=T.tasks.find(ae=>String(ae[m.value.id])===String(we));if(Ee){let ae=0;if(F.value==="月"||F.value==="日")ae=w(Ee[m.value.startdate]).diff(w(t.startGanttDate),"days")*E.value;else if(F.value==="周"){const be=w(t.startGanttDate).startOf("isoWeek");ae=w(Ee[m.value.startdate]).startOf("isoWeek").diff(be,"week")*E.value}else F.value==="时"&&(ae=w(Ee[m.value.startdate]).diff(w(t.startGanttDate),"hours")*E.value);ne<ae&&(ne=ae,oe=s.value+a.value-ne,q=Math.round(oe/E.value),q<1&&(q=1),oe=q*E.value)}}}_.setAttribute("width",oe.toString()),_.style.width=oe+"px",_.style.transform=`translate(${ne}px, 0px)`,_.setAttribute("data-x",ne.toString());const ge=Math.round(ne/E.value),Me=ge+q-1;let Se,S;if(F.value==="月"||F.value==="日")Se=w(t.startGanttDate).add(ge,"days").format("YYYY-MM-DD HH:mm:ss"),S=w(t.startGanttDate).add(Me,"days").format("YYYY-MM-DD HH:mm:ss"),t.row[m.value.takestime]=q+"天";else if(F.value==="周"){const Z=w(t.startGanttDate).startOf("isoWeek");Se=Z.add(ge,"weeks").format("YYYY-MM-DD HH:mm:ss"),S=Z.add(Me,"weeks").endOf("isoWeek").format("YYYY-MM-DD HH:mm:ss"),t.row[m.value.takestime]=q+"周"}else Se=w(t.startGanttDate).add(ge,"hours").format("YYYY-MM-DD HH:mm:ss"),S=w(t.startGanttDate).add(Me,"hours").format("YYYY-MM-DD HH:mm:ss"),t.row[m.value.takestime]=q+"小时";t.row[m.value.startdate]=Se,t.row[m.value.enddate]=S;let ee=un(A),fe=ee.select(".innerRect").first(),ve=ee.select("rect:not(.innerRect):not(.progressHandle)").first();if(fe){let Z=t.row[m.value.progress]?oe*Number(t.row[m.value.progress]):oe;fe.width(Z)}if(ve&&ve.width(oe),$.edges&&$.edges.left){const Z=w(Se),we=t.row[m.value.id],Ee=m.value.parentId||"pid",ae=(he,Ce)=>{const Ze=[];for(const Xe of Ce)String(Xe[Ee])===String(he)&&(Ze.push(Xe),Ze.push(...ae(Xe[m.value.id],Ce)));return Ze},be=ae(we,T.tasks);for(const he of be)if(w(he[m.value.startdate]).isBefore(Z)){const Ce=Z.diff(w(he[m.value.startdate]),F.value==="时"?"hours":"days");F.value==="时"?(he[m.value.startdate]=w(he[m.value.startdate]).add(Ce,"hours").format("YYYY-MM-DD HH:mm:ss"),he[m.value.enddate]=w(he[m.value.enddate]).add(Ce,"hours").format("YYYY-MM-DD HH:mm:ss")):(he[m.value.startdate]=w(he[m.value.startdate]).add(Ce,"days").format("YYYY-MM-DD HH:mm:ss"),he[m.value.enddate]=w(he[m.value.enddate]).add(Ce,"days").format("YYYY-MM-DD HH:mm:ss")),j({id:he[m.value.id],startDate:he[m.value.startdate],endDate:he[m.value.enddate]})}}j({id:t.row[m.value.id],startDate:Se,endDate:S})}},modifiers:[ze.modifiers.restrictEdges({outer:"parent"}),ze.modifiers.restrictSize({min:{width:E.value,height:r.value}})],inertia:!1,hold:1})};return e.watch(()=>[t.row[m.value.startdate],t.row[m.value.enddate]],()=>{o.value&&p.value&&Q(o.value)},{deep:!1}),e.onMounted(()=>{if(o.value&&!p.value&&(Q(o.value),p.value=!0),b&&(d.value=b(t.row),o.value&&Q(o.value)),o.value){let A=o.value.parentElement;for(;A&&!A.hasAttribute("data-gantt-theme");)A=A.parentElement;if(A){const Y=new MutationObserver(()=>{g.value++});Y.observe(A,{attributes:!0,attributeFilter:["data-gantt-theme","style"]}),e.onBeforeUnmount(()=>Y.disconnect())}}}),e.onDeactivated(()=>{if(o.value)try{ze(o.value).unset()}catch{}l.value=!1}),e.onBeforeUnmount(()=>{if(o.value)try{ze(o.value).unset()}catch{}l.value=!1}),{bar:o,barHeight:r,direction:i,oldBarDataX:s,oldBarWidth:a,showRow:l,hover:u,barColor:d,timelineCellCount:G,scale:E,mode:F,mapFields:m,hoverActive:V,hoverInactive:k,WeekEndColor:J}}}),jo=["data-task-id"],qo=["height"];function Jo(t,n,o,r,i,s){return t.showRow?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["barRow",{active:t.hover}]),style:e.normalizeStyle({height:t.rowHeight+"px"}),onMouseover:n[0]||(n[0]=a=>t.hoverActive()),onMouseleave:n[1]||(n[1]=a=>t.hoverInactive()),"data-task-id":t.row[t.mapFields.id]},[t.showRow?(e.openBlock(),e.createElementBlock("svg",{key:"row.no",ref:"bar",class:e.normalizeClass(["bar",{active:t.hover}]),height:t.barHeight+"px",style:{overflow:"visible"}},null,10,qo)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.timelineCellCount,a=>(e.openBlock(),e.createElementBlock("div",{key:a+t.row.id+t.timelineCellCount+t.showRow+"_template",class:"cell",style:e.normalizeStyle({width:t.scale+"px",minWidth:t.scale+"px",maxWidth:t.scale+"px",height:t.rowHeight+"px",background:t.WeekEndColor(a)})},null,4))),128))],46,jo)):e.createCommentVNode("",!0)}const Ko=Ve(Uo,[["render",Jo],["__scopeId","data-v-fe950226"]]);w.extend(zn);const Qo=e.defineComponent({name:"Milestone",props:{rowHeight:{type:Number,default:0},row:{type:Object,default:()=>({})},startGanttDate:{type:String},endGanttDate:{type:String}},setup(t){const n=e.ref(null),o=e.ref(t.rowHeight*.6),r=e.ref(!0),i=e.ref(!1),s=e.ref(""),a=e.ref(0),l=e.ref(0),u=e.computed(()=>T.timelineCellCount),d=e.computed(()=>T.scale),p=e.computed(()=>T.mode),g=e.computed(()=>T.mapFields),C=e.inject(mt.SetBarColorSymbol);e.watch(()=>Ye.highlightedId,b=>{i.value=t.row[g.value.id]===b});const G=()=>Ye.triggerHighlight(t.row[g.value.id]),E=()=>Ye.triggerHighlight(null),F=b=>{a.value;let v="#ffffff",V="#f8f8f8";if(n.value){let k=n.value.parentElement;for(;k;){if(k.hasAttribute("data-gantt-theme")){v=getComputedStyle(k).getPropertyValue("--bg-content").trim()||"#ffffff",V=getComputedStyle(k).getPropertyValue("--bg-secondary").trim()||"#f8f8f8";break}k=k.parentElement}}switch(p.value){case"月":case"日":{let k=w(t.startGanttDate).add(b,"days");return k.isoWeekday()===7||k.isoWeekday()===1?V:v}case"周":case"时":return v}},m=ce.setBarDate,R=b=>{let v=0;switch(p.value){case"月":case"日":{let te=w(t.row[g.value.startdate]).diff(w(t.startGanttDate),"days");v=d.value*te+d.value/2,t.row[g.value.takestime]="0天",t.row[g.value.enddate]=t.row[g.value.startdate];break}case"周":{const te=w(t.startGanttDate).startOf("isoWeek");let re=w(t.row[g.value.startdate]).startOf("isoWeek").diff(te,"week");v=d.value*re+d.value/2,t.row[g.value.takestime]="0周",t.row[g.value.enddate]=t.row[g.value.startdate];break}case"时":{let te=w(t.row[g.value.startdate]).diff(w(t.startGanttDate),"hours");v=d.value*te+d.value/2,t.row[g.value.takestime]="0小时",t.row[g.value.enddate]=t.row[g.value.startdate];break}}l.value=v;let V=un(b);const k=getComputedStyle(b).getPropertyValue("--border")||"#cecece";b.setAttribute("data-x",v.toString()),b.setAttribute("stroke",k),b.setAttribute("stroke-width","2px"),b.style.transform=`translate(${v}px, 0px)`;let J="#f59e0b",j="#333333",U="#ffffff",Q=b.parentElement;for(;Q;){if(Q.hasAttribute("data-gantt-theme")){const te=getComputedStyle(Q);J=te.getPropertyValue("--primary").trim()||J,j=te.getPropertyValue("--text-primary").trim()||j,U=te.getPropertyValue("--bg-content").trim()||U;break}Q=Q.parentElement}(U.includes("#1")||U.includes("#2")||U.toLowerCase().includes("dark"))&&j==="#333333"&&(j="#ffffff"),V.clear();const A=o.value,Y=A/2,H=t.rowHeight/2,X=Y,Te=X,h=H-Y,c=X+Y,y=H,f=X,D=H+Y,L=X-Y,B=`M ${Te},${h} L ${c},${y} L ${f},${D} L ${L},${H} Z`,x=V.path(B).fill(s.value||J).stroke({color:k,width:2}).attr("opacity",.9);x.on("mouseover",()=>{x.animate(200).attr({opacity:1,strokeWidth:3})}),x.on("mouseleave",()=>{x.animate(200).attr({opacity:.9,strokeWidth:2})});const P=V.text(t.row[g.value.task]||"Milestone").move(A+5,H-7).fill(j).attr({"font-size":"14px","font-family":"'Segoe UI', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Arial, sans-serif","font-weight":"400","text-anchor":"start","dominant-baseline":"auto"});U.includes("#1")||U.includes("#2")||U.toLowerCase().includes("dark")?P.attr({stroke:"#000000","stroke-width":"0.5px","paint-order":"stroke fill"}):P.attr({stroke:"#ffffff","stroke-width":"0.5px","paint-order":"stroke fill"}),m({id:t.row[g.value.id],startDate:t.row[g.value.startdate],endDate:t.row[g.value.startdate]}),ze(b).draggable({inertia:!1,modifiers:[ze.modifiers.restrictRect({restriction:"parent",endOnly:!0})],autoScroll:!0,listeners:{start:te=>{l.value=Number(te.target.getAttribute("data-x"))},move:te=>{let le=((parseFloat(te.target.getAttribute("data-x")||"0")||0)+te.dx).toString();te.target.style.transform=`translate(${le}px, 0px)`,te.target.setAttribute("data-x",le)},end:te=>{let le=te.target,re=parseFloat(le.getAttribute("data-x")||"0")||0,$=Math.round((re-d.value/2)/d.value)*d.value+d.value/2;$<d.value/2&&($=d.value/2),$>u.value*d.value&&($=u.value*d.value-d.value/2);const _=g.value.parentId||"pid",oe=t.row[_];if(oe&&oe!=="0"){const Me=T.tasks.find(Se=>String(Se[g.value.id])===String(oe));if(Me){let Se=0;if(p.value==="月"||p.value==="日")Se=w(Me[g.value.startdate]).diff(w(t.startGanttDate),"days")*d.value+d.value/2;else if(p.value==="周"){const S=w(t.startGanttDate).startOf("isoWeek");Se=w(Me[g.value.startdate]).startOf("isoWeek").diff(S,"week")*d.value+d.value/2}else p.value==="时"&&(Se=w(Me[g.value.startdate]).diff(w(t.startGanttDate),"hours")*d.value+d.value/2);$<Se&&($=Se)}}le.style.transform=`translate(${$}px, 0px)`,le.setAttribute("data-x",$.toString());const q=Math.round(($-l.value)/d.value);let ne=0,ge=0;p.value==="月"||p.value==="日"?ne=q:p.value==="周"?ne=q*7:p.value==="时"&&(ge=q),p.value==="时"?(t.row[g.value.startdate]=w(t.row[g.value.startdate]).add(ge,"hours").format("YYYY-MM-DD HH:mm:ss"),t.row[g.value.enddate]=t.row[g.value.startdate]):(t.row[g.value.startdate]=w(t.row[g.value.startdate]).add(ne,"days").format("YYYY-MM-DD HH:mm:ss"),t.row[g.value.enddate]=t.row[g.value.startdate]),m({id:t.row[g.value.id],startDate:t.row[g.value.startdate],endDate:t.row[g.value.startdate]})}}})};return e.watch(()=>[t.row[g.value.startdate]],()=>{n.value&&R(n.value)},{deep:!1}),e.onMounted(()=>{if(n.value&&R(n.value),C&&(s.value=C(t.row),n.value&&R(n.value)),n.value){let b=n.value.parentElement;for(;b&&!b.hasAttribute("data-gantt-theme");)b=b.parentElement;if(b){const v=new MutationObserver(()=>{a.value++});v.observe(b,{attributes:!0,attributeFilter:["data-gantt-theme","style"]}),e.onBeforeUnmount(()=>v.disconnect())}}}),e.onBeforeUnmount(()=>{if(n.value)try{ze(n.value).unset()}catch{}r.value=!1}),{milestone:n,showRow:r,hover:i,milestoneColor:s,timelineCellCount:u,scale:d,mode:p,mapFields:g,hoverActive:G,hoverInactive:E,WeekEndColor:F}}}),Xo=["data-task-id"],er=["height","width"];function tr(t,n,o,r,i,s){return t.showRow?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["milestoneRow",{active:t.hover}]),style:e.normalizeStyle({height:t.rowHeight+"px"}),onMouseover:n[0]||(n[0]=a=>t.hoverActive()),onMouseleave:n[1]||(n[1]=a=>t.hoverInactive()),"data-task-id":t.row[t.mapFields.id]},[t.showRow?(e.openBlock(),e.createElementBlock("svg",{key:"milestone",ref:"milestone",class:e.normalizeClass(["milestone",{active:t.hover}]),height:t.rowHeight+"px",width:t.rowHeight*.6+200+"px",style:{overflow:"visible"}},null,10,er)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.timelineCellCount,a=>(e.openBlock(),e.createElementBlock("div",{key:a+t.row.id+"_milestone_template",class:"cell",style:e.normalizeStyle({width:t.scale+"px",minWidth:t.scale+"px",maxWidth:t.scale+"px",height:t.rowHeight+"px",background:t.WeekEndColor(a)})},null,4))),128))],46,Xo)):e.createCommentVNode("",!0)}const nr=Ve(Qo,[["render",tr],["__scopeId","data-v-627a46c0"]]),ar=e.defineComponent({name:"BarRecursionRow",props:{rowHeight:{type:Number,default:0}},setup(){const t=e.ref([]),n=e.ref(0),o=e.inject(mt.SetTaskTypeSymbol),r=e.computed(()=>T.tasks),i=e.computed(()=>T.timelineCellCount),s=e.computed(()=>T.scale),a=e.computed(()=>T.mode),l=e.computed(()=>T.startGanttDate?T.startGanttDate.toISOString():void 0),u=e.computed(()=>T.endGanttDate?T.endGanttDate.toISOString():void 0),d=e.computed(()=>T.mapFields),p=e.computed(()=>T.collapsedTasks),g=b=>{if(o)return o(b);if(b.type)return b.type;const v=b[d.value.startdate],V=b[d.value.enddate];return v&&V&&v===V?wt.MILESTONE:wt.TASK},C=b=>{const v=new Set,V=k=>{r.value.filter(j=>j[d.value.parentId]===k).forEach(j=>{const U=j[d.value.id];v.add(U),V(U)})};return V(b),v},G=e.computed(()=>new Set(t.value.map(b=>b[d.value.id]))),E=e.computed(()=>{const b=G.value,v=T.tasks.filter(k=>!b.has(k[d.value.id])),V=new Set;return p.value.forEach(k=>{C(k).forEach(j=>V.add(j))}),v.filter(k=>!V.has(k[d.value.id]))}),F=e.computed({get:()=>T.expandRow,set:b=>{ce.setExpandRow(b)}});e.watch(F,b=>{t.value=[],m(b.pid)});const m=b=>{let v=r.value.filter(V=>V[d.value.parentId]===b);if(v&&v.length>0)for(let V=0;V<v.length;V++)F.value.expand===!1&&t.value.push(v[V]),m(v[V][d.value.id])},R=ce.setExpandRow;return{hiddenTask:t,componentKey:n,allTask:r,timelineCellCount:i,scale:s,mode:a,startGanttDate:l,endGanttDate:u,mapFields:d,filterTask:E,expandRow:F,setExpandRow:R,recursionRow:m,getTaskType:g,TaskType:wt}},components:{Bar:Ko,Milestone:nr},mounted(){this.$nextTick(()=>{})},activated(){this.componentKey++}});function or(t,n,o,r,i,s){const a=e.resolveComponent("Milestone"),l=e.resolveComponent("Bar");return e.openBlock(),e.createElementBlock("div",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.filterTask,u=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u.id},[t.getTaskType(u)===t.TaskType.MILESTONE?(e.openBlock(),e.createBlock(a,{key:0,startGanttDate:t.startGanttDate,endGanttDate:t.endGanttDate,row:u,rowHeight:t.rowHeight},null,8,["startGanttDate","endGanttDate","row","rowHeight"])):(e.openBlock(),e.createBlock(l,{key:1,startGanttDate:t.startGanttDate,endGanttDate:t.endGanttDate,row:u,rowHeight:t.rowHeight},null,8,["startGanttDate","endGanttDate","row","rowHeight"]))],64))),128))])}const rr=Ve(ar,[["render",or]]),ir=e.defineComponent({name:"TaskLinks",props:{containerWidth:{type:Number,required:!0},containerHeight:{type:Number,required:!0},linkConfig:{type:Object,default:()=>({color:"#3498db",width:2,dashArray:void 0,showArrow:!0,arrowColor:void 0,arrowSize:8,showLabels:!1,labelColor:"#666",labelFontSize:12,cornerRadius:5,pathType:Ne.BEZIER,bezierCurvature:.4,rightAngleOffset:30,smoothCorners:!0,enableDashAnimation:!0,dashAnimationSpeed:.8,parentChildStyle:{color:"#95a5a6",width:1,dashArray:"3,3"}})}},setup(t){const n=e.ref([]),o=h=>{if(!T.tasks.find(te=>te[T.mapFields.id]===h))return null;const y=document.querySelector(`[data-task-id="${h}"]`);if(!y)return null;let f=y.querySelector(".bar"),D=!1;if(f||(f=y.querySelector(".milestone"),D=!0),!f)return null;const L=y.closest(".table .content");if(!L)return null;const M=parseFloat(f.getAttribute("data-x")||"0");let B;D?B=y.getBoundingClientRect().height*.6:B=f.width.baseVal.value;const x=y.getBoundingClientRect(),P=L.getBoundingClientRect(),W=x.top-P.top;if(D){const te=B/2;return{x:M,y:W,width:B,height:x.height,centerX:M+te,centerY:W+x.height/2,rightX:M+B,leftX:M,topY:W,bottomY:W+x.height}}else return{x:M,y:W,width:B,height:x.height,centerX:M+B/2,centerY:W+x.height/2,rightX:M+B,leftX:M,topY:W,bottomY:W+x.height}},r=(h,c)=>T.tasks.filter(f=>f[T.mapFields.parentId]===h&&f[T.mapFields.parentId]!=="0").findIndex(f=>f[T.mapFields.id]===c),i=()=>{const h=document.querySelector(".barRow");return h?h.offsetHeight:50},s=h=>{const c=i();return Math.floor(h/c)*c+c/2},a=(h,c)=>{const y=i();return(Math.floor(h/y)+1+c)*y+y/2},l=(h,c,y)=>{const f=i(),L=Math.floor(h/f)*f+f+y;return c>L+f?s(L+f/2):s(L)},u=h=>{const c=t.linkConfig.linkTypeColors;if(!c)return{[de.FINISH_TO_START]:"#3498db",[de.START_TO_START]:"#2ecc71",[de.FINISH_TO_FINISH]:"#e74c3c",[de.START_TO_FINISH]:"#f39c12",[de.PARENT_CHILD]:"#95a5a6"}[h]||t.linkConfig.color;switch(h){case de.FINISH_TO_START:return c.finishToStart||"#3498db";case de.START_TO_START:return c.startToStart||"#2ecc71";case de.FINISH_TO_FINISH:return c.finishToFinish||"#e74c3c";case de.START_TO_FINISH:return c.startToFinish||"#f39c12";default:return t.linkConfig.color}},d=h=>h===de.PARENT_CHILD?{color:t.linkConfig.parentChildStyle.color||"#95a5a6",width:t.linkConfig.parentChildStyle.width,dashArray:t.linkConfig.parentChildStyle.dashArray}:{color:u(h),width:t.linkConfig.width,dashArray:t.linkConfig.dashArray},p=(h,c,y,f="")=>{if(!h||!c)return"";const{pathType:D}=t.linkConfig;switch(y){case de.PARENT_CHILD:return g(h,c,D);case de.FINISH_TO_START:return F(h,c,D);case de.START_TO_START:return m(h,c,D);case de.FINISH_TO_FINISH:return R(h,c,D);case de.START_TO_FINISH:return b(h,c,D);default:return F(h,c,D)}},g=(h,c,y,f)=>{const D=h.id||h.taskId,L=c.id||c.taskId,M=r(D,L),B=h.leftX,x=h.centerY,P=t.linkConfig.arrowSize||8,W=c.leftX-P,te=c.centerY;return C(B,x,W,te,M,y)},C=(h,c,y,f,D,L)=>{const M=y-h,B=f-c;if(Math.abs(M)<30&&Math.abs(B)<15)return`M ${h} ${c} L ${y} ${f}`;switch(L){case Ne.STRAIGHT:return`M ${h} ${c} L ${y} ${f}`;case Ne.BEZIER:return G(h,c,y,f);case Ne.RIGHT_ANGLE:default:return E(h,c,y,f,D)}},G=(h,c,y,f,D)=>{const L=y-h,{bezierCurvature:M}=t.linkConfig;if(L>0){const B=Math.min(Math.abs(L)*M,60),x=h+B,P=y-B;return`M ${h} ${c} C ${x} ${c} ${P} ${f} ${y} ${f}`}else{const B=t.linkConfig.rightAngleOffset,x=l(c,f,B),P=B*M;return`M ${h} ${c}
2
+ C ${h+P} ${c} ${h+P} ${x} ${h+B/2} ${x}
3
+ C ${y-P} ${x} ${y-P} ${f} ${y} ${f}`}},E=(h,c,y,f,D)=>{const L=y-h,{rightAngleOffset:M,smoothCorners:B,cornerRadius:x}=t.linkConfig;if(a(c,D),L>0){const P=h+M;if(B&&x>0){const W=Math.min(x,Math.abs(f-c)/2,Math.abs(y-P)/2);return`M ${h} ${c}
4
+ L ${P-W} ${c}
5
+ Q ${P} ${c} ${P} ${c+(f>c?W:-W)}
6
+ L ${P} ${f-(f>c?W:-W)}
7
+ Q ${P} ${f} ${P+W} ${f}
8
+ L ${y} ${f}`}else return`M ${h} ${c}
9
+ L ${P} ${c}
10
+ L ${P} ${f}
11
+ L ${y} ${f}`}else{const P=M,W=l(c,f,P),te=h+P/2,le=y-P/2;if(B&&x>0){const re=Math.min(x,P/4);return`M ${h} ${c}
12
+ L ${te-re} ${c}
13
+ Q ${te} ${c} ${te} ${c+re}
14
+ L ${te} ${W-re}
15
+ Q ${te} ${W} ${te+re} ${W}
16
+ L ${le-re} ${W}
17
+ Q ${le} ${W} ${le} ${W+re}
18
+ L ${le} ${f-re}
19
+ Q ${le} ${f} ${le+re} ${f}
20
+ L ${y} ${f}`}else return`M ${h} ${c}
21
+ L ${te} ${c}
22
+ L ${te} ${W}
23
+ L ${le} ${W}
24
+ L ${le} ${f}
25
+ L ${y} ${f}`}},F=(h,c,y)=>{const f=t.linkConfig.arrowSize||8,D=h.rightX,L=h.centerY,M=c.leftX-f,B=c.centerY;return v(D,L,M,B,y,"horizontal")},m=(h,c,y)=>{const f=t.linkConfig.arrowSize||8,D=h.leftX,L=h.centerY,M=c.leftX-f,B=c.centerY;return v(D,L,M,B,y,"left-u")},R=(h,c,y)=>{const f=t.linkConfig.arrowSize||8,D=h.rightX,L=h.centerY,M=c.rightX+f,B=c.centerY;return v(D,L,M,B,y,"right-u")},b=(h,c,y)=>{const f=t.linkConfig.arrowSize||8,D=h.leftX,L=h.centerY,M=c.rightX+f,B=c.centerY;return v(D,L,M,B,y,"cross")},v=(h,c,y,f,D,L)=>{const{bezierCurvature:M,rightAngleOffset:B,smoothCorners:x,cornerRadius:P}=t.linkConfig;switch(D){case Ne.STRAIGHT:return`M ${h} ${c} L ${y} ${f}`;case Ne.BEZIER:return V(h,c,y,f,L,M);case Ne.RIGHT_ANGLE:default:return k(h,c,y,f,L,B,x,P)}},V=(h,c,y,f,D,L)=>{const M=y-h,B=f-c;switch(D){case"horizontal":if(M>20&&Math.abs(B)<10)return`M ${h} ${c} L ${y} ${f}`;if(M<20){const Me=l(c,f,30),Se=30*L;return`M ${h} ${c}
26
+ C ${h+Se} ${c} ${h+Se} ${Me} ${h+30/2} ${Me}
27
+ C ${y-Se} ${Me} ${y-Se} ${f} ${y} ${f}`}const x=Math.min(Math.abs(M)*L,60),P=h+x,W=y-x;return`M ${h} ${c} C ${P} ${c} ${W} ${f} ${y} ${f}`;case"left-u":const te=25,le=Math.min(h,y)-te,re=te*L;if(Math.abs(B)>i()){const ge=s((c+f)/2);return`M ${h} ${c}
28
+ C ${h-re} ${c} ${le} ${c+re} ${le} ${ge}
29
+ C ${le} ${f-re} ${y-re} ${f} ${y} ${f}`}return`M ${h} ${c} C ${le} ${c} ${le} ${f} ${y} ${f}`;case"right-u":const De=25,$=Math.max(h,y)+De,_=De*L;if(Math.abs(B)>i()){const ge=s((c+f)/2);return`M ${h} ${c}
30
+ C ${h+_} ${c} ${$} ${c+_} ${$} ${ge}
31
+ C ${$} ${f-_} ${y+_} ${f} ${y} ${f}`}return`M ${h} ${c} C ${$} ${c} ${$} ${f} ${y} ${f}`;case"cross":if(M>20&&Math.abs(B)<10)return`M ${h} ${c} L ${y} ${f}`;const oe=Math.min(Math.abs(M)*L,60),q=h-oe,ne=y+oe;return`M ${h} ${c} C ${q} ${c} ${ne} ${f} ${y} ${f}`;default:return`M ${h} ${c} L ${y} ${f}`}},k=(h,c,y,f,D,L,M,B)=>{const x=y-h,P=f-c;switch(D){case"horizontal":if(x>20&&Math.abs(P)<10)return`M ${h} ${c} L ${y} ${f}`;if(x<20){const _=L,oe=l(c,f,_),q=h+_/2,ne=y-_/2;if(M&&B>0){const ge=Math.min(B,_/4);return`M ${h} ${c}
32
+ L ${q-ge} ${c}
33
+ Q ${q} ${c} ${q} ${c+ge}
34
+ L ${q} ${oe-ge}
35
+ Q ${q} ${oe} ${q+ge} ${oe}
36
+ L ${ne-ge} ${oe}
37
+ Q ${ne} ${oe} ${ne} ${oe+ge}
38
+ L ${ne} ${f-ge}
39
+ Q ${ne} ${f} ${ne+ge} ${f}
40
+ L ${y} ${f}`}return`M ${h} ${c}
41
+ L ${q} ${c}
42
+ L ${q} ${oe}
43
+ L ${ne} ${oe}
44
+ L ${ne} ${f}
45
+ L ${y} ${f}`}const W=h+Math.abs(x)/2;if(M&&B>0){const _=Math.min(B,Math.abs(x)/4,Math.abs(P)/2);return P>0?`M ${h} ${c}
46
+ L ${W-_} ${c}
47
+ Q ${W} ${c} ${W} ${c+_}
48
+ L ${W} ${f-_}
49
+ Q ${W} ${f} ${W+_} ${f}
50
+ L ${y} ${f}`:`M ${h} ${c}
51
+ L ${W-_} ${c}
52
+ Q ${W} ${c} ${W} ${c-_}
53
+ L ${W} ${f+_}
54
+ Q ${W} ${f} ${W+_} ${f}
55
+ L ${y} ${f}`}return`M ${h} ${c} L ${W} ${c} L ${W} ${f} L ${y} ${f}`;case"left-u":const te=L,le=Math.min(h,y)-te;if(M&&B>0){const _=Math.min(B,te/2,Math.abs(P)/4);return`M ${h} ${c}
56
+ L ${le+_} ${c}
57
+ Q ${le} ${c} ${le} ${c+(P>0?_:-_)}
58
+ L ${le} ${f-(P>0?_:-_)}
59
+ Q ${le} ${f} ${le+_} ${f}
60
+ L ${y} ${f}`}return`M ${h} ${c} L ${le} ${c} L ${le} ${f} L ${y} ${f}`;case"right-u":const re=L,De=Math.max(h,y)+re;if(M&&B>0){const _=Math.min(B,re/2,Math.abs(P)/4);return`M ${h} ${c}
61
+ L ${De-_} ${c}
62
+ Q ${De} ${c} ${De} ${c+(P>0?_:-_)}
63
+ L ${De} ${f-(P>0?_:-_)}
64
+ Q ${De} ${f} ${De-_} ${f}
65
+ L ${y} ${f}`}return`M ${h} ${c} L ${De} ${c} L ${De} ${f} L ${y} ${f}`;case"cross":if(x>20&&Math.abs(P)<10)return`M ${h} ${c} L ${y} ${f}`;const $=h+x/2;if(M&&B>0){const _=Math.min(B,Math.abs(x)/4,Math.abs(P)/2);return P>0?`M ${h} ${c}
66
+ L ${$-_} ${c}
67
+ Q ${$} ${c} ${$} ${c+_}
68
+ L ${$} ${f-_}
69
+ Q ${$} ${f} ${$+_} ${f}
70
+ L ${y} ${f}`:`M ${h} ${c}
71
+ L ${$-_} ${c}
72
+ Q ${$} ${c} ${$} ${c-_}
73
+ L ${$} ${f+_}
74
+ Q ${$} ${f} ${$+_} ${f}
75
+ L ${y} ${f}`}return`M ${h} ${c} L ${$} ${c} L ${$} ${f} L ${y} ${f}`;default:return`M ${h} ${c} L ${y} ${f}`}},J=(h,c,y=de.FINISH_TO_START)=>{if(!h)return console.warn("子任务位置无效"),"";try{const f=h.leftX,D=h.centerY,L=f-c,M=D-c/2,B=D+c/2;return`${f},${D} ${L},${M} ${L},${B}`}catch(f){return console.error("箭头生成失败:",f),""}},j=(h,c,y,f)=>{if(!h||!c)return"";try{let D,L,M="right";switch(y){case de.FINISH_TO_START:D=c.leftX,L=c.centerY,M="right";break;case de.START_TO_START:D=c.leftX,L=c.centerY,M="right";break;case de.FINISH_TO_FINISH:D=c.rightX,L=c.centerY,M="left";break;case de.START_TO_FINISH:D=c.rightX,L=c.centerY,M="left";break;default:D=c.leftX,L=c.centerY,M="right"}let B,x,P,W;return M==="right"?(B=D-f,x=L-f/2,P=D-f,W=L+f/2):(B=D+f,x=L-f/2,P=D+f,W=L+f/2),`${D},${L} ${B},${x} ${P},${W}`}catch(D){return console.error("依赖箭头生成失败:",D),""}},U=h=>{const c=new Set,y=f=>{T.tasks.filter(L=>L[T.mapFields.parentId]===f).forEach(L=>{const M=L[T.mapFields.id];c.add(M),y(M)})};return y(h),c},Q=h=>{for(const c of T.collapsedTasks)if(U(c).has(h))return!0;return!1},A=()=>{const h=[],c=t.linkConfig.linkTypeVisibility||{finishToStart:!0,startToStart:!0,finishToFinish:!0,startToFinish:!0,parentChild:!0};c.parentChild&&T.tasks.forEach(D=>{const L=D[T.mapFields.parentId],M=D[T.mapFields.id];if(L&&L!=="0"){if(Q(M))return;const B=o(L),x=o(M);if(B&&x){const P=`parent-child-${L}-${M}`,W={...B,id:L,taskId:L},te={...x,id:M,taskId:M},le=p(W,te,de.PARENT_CHILD,P),re=t.linkConfig.showArrow?J(x,t.linkConfig.arrowSize,de.PARENT_CHILD):"";h.push({id:P,sourceId:L,targetId:M,type:de.PARENT_CHILD,path:le,arrowPoints:re,labelX:x.centerX,labelY:x.centerY-10})}}});const y=Qt.getDependencies(),f=D=>{switch(D){case de.FINISH_TO_START:return c.finishToStart;case de.START_TO_START:return c.startToStart;case de.FINISH_TO_FINISH:return c.finishToFinish;case de.START_TO_FINISH:return c.startToFinish;case de.PARENT_CHILD:return c.parentChild;default:return!0}};y.forEach(D=>{if(!f(D.type))return;const L=o(D.sourceTaskId),M=o(D.targetTaskId);if(L&&M){const B=`dependency-${D.id}`,x={...L,id:D.sourceTaskId,taskId:D.sourceTaskId},P={...M,id:D.targetTaskId,taskId:D.targetTaskId},W=p(x,P,D.type,B),te=t.linkConfig.showArrow?j(x,P,D.type,t.linkConfig.arrowSize):"",le={[de.FINISH_TO_START]:"FS",[de.START_TO_START]:"SS",[de.FINISH_TO_FINISH]:"FF",[de.START_TO_FINISH]:"SF",[de.PARENT_CHILD]:""};h.push({id:B,sourceId:D.sourceTaskId,targetId:D.targetTaskId,type:D.type,path:W,arrowPoints:te,label:le[D.type]||"",labelX:(L.centerX+M.centerX)/2,labelY:(L.centerY+M.centerY)/2-10})}}),n.value=h};e.watch(()=>T.tasks,()=>{setTimeout(A,50)},{deep:!0}),e.watch(()=>T.scale,()=>{setTimeout(A,50)}),e.watch(()=>T.mode,()=>{setTimeout(A,200)}),e.watch(()=>T.timelineCellCount,()=>{setTimeout(A,100)}),e.watch(()=>[T.startGanttDate,T.endGanttDate],()=>{setTimeout(A,100)}),e.watch(()=>T.barDate,()=>{requestAnimationFrame(A)},{deep:!0}),e.watch(()=>t.linkConfig.linkTypeVisibility,()=>{setTimeout(A,50)},{deep:!0}),e.watch(()=>T.collapsedTasks,()=>{setTimeout(A,50)},{deep:!0});let Y=null,H=null;e.onMounted(()=>{setTimeout(A,100);const h=document.querySelector(".gantt");h&&(Y=new ResizeObserver(A),Y.observe(h),H=new MutationObserver(c=>{let y=!1;c.forEach(f=>{var L,M;const D=f.target;if(f.type==="attributes"){const B=f.attributeName;(B==="data-x"||B==="width"||B==="style"||B==="transform")&&((L=D.classList)!=null&&L.contains("bar")||(M=D.classList)!=null&&M.contains("barRow")||D.tagName==="svg")&&(y=!0)}}),y&&requestAnimationFrame(A)}),H.observe(h,{attributes:!0,subtree:!0,attributeFilter:["style","data-x","transform","width"]}))}),e.onUnmounted(()=>{Y&&Y.disconnect(),H&&H.disconnect()});const X=h=>{const c=d(h);return!!(c.dashArray&&c.dashArray.length>0)};return{links:n,updateLinks:A,getLinkStyle:d,isDashedLine:X,getDashAnimationStyle:h=>{if(!X(h.type)||!t.linkConfig.enableDashAnimation)return{};const c=d(h.type),y=t.linkConfig.dashAnimationSpeed||.8,f=h.type===de.PARENT_CHILD?y*.6:y,M=(c.dashArray||"5,5").split(",").map(Number).reduce((B,x)=>B+x,0);return{"--animation-duration":`${f}s`,"--dash-length":`${M}px`}}}}}),sr=["width","height"],lr=["d","stroke","stroke-width","stroke-dasharray"],dr=["points","fill","stroke"],cr=["x","y","fill","font-size"];function ur(t,n,o,r,i,s){return e.openBlock(),e.createElementBlock("svg",{class:"task-links-layer",width:t.containerWidth,height:t.containerHeight,style:{position:"absolute",top:"0px",left:"0px",pointerEvents:"none",zIndex:50,overflow:"visible"}},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.links,a=>(e.openBlock(),e.createElementBlock("g",{key:a.id},[e.createElementVNode("path",{d:a.path,stroke:t.getLinkStyle(a.type).color,"stroke-width":t.getLinkStyle(a.type).width,"stroke-dasharray":t.getLinkStyle(a.type).dashArray,fill:"none",class:e.normalizeClass(["task-link",a.type,{"dash-animated":t.isDashedLine(a.type)&&t.linkConfig.enableDashAnimation}]),style:e.normalizeStyle(t.getDashAnimationStyle(a))},null,14,lr),t.linkConfig.showArrow&&a.arrowPoints&&a.arrowPoints.length>0?(e.openBlock(),e.createElementBlock("polygon",{key:0,points:a.arrowPoints,fill:t.getLinkStyle(a.type).color,stroke:t.getLinkStyle(a.type).color,"stroke-width":.5,class:"task-link-arrow"},null,8,dr)):e.createCommentVNode("",!0),a.label&&t.linkConfig.showLabels?(e.openBlock(),e.createElementBlock("text",{key:1,x:a.labelX,y:a.labelY,fill:t.linkConfig.labelColor,"font-size":t.linkConfig.labelFontSize,"text-anchor":"middle",class:"task-link-label"},e.toDisplayString(a.label),9,cr)):e.createCommentVNode("",!0)]))),128))],8,sr)}const fr=Ve(ir,[["render",ur],["__scopeId","data-v-479c409d"]]),mr=e.defineComponent({props:{rowHeight:{type:Number,required:!0},headers:{type:Array,default:()=>[]}},components:{BarRecursionRow:rr,TaskLinks:fr},setup(t){const n=e.ref(null),{scrollTop:o,scrollFlag:r,setScrollTop:i,setScrollFlag:s}=In(),{config:a}=Tt(),l=e.computed(()=>T.tasks),u=e.computed(()=>T.timelineCellCount),d=e.computed(()=>T.scale),p=e.computed(()=>T.mode),g=e.computed(()=>T.startGanttDate),C=e.computed(()=>T.endGanttDate),G=e.computed(()=>T.mapFields),E=e.computed(()=>u.value*d.value),F=e.computed(()=>l.value.length*t.rowHeight);e.watch(o,U=>{r.value&&n.value&&(n.value.scrollTop=U)}),e.onMounted(()=>{n.value&&(n.value.scrollTop=o.value)});const m=()=>l.value.filter(U=>U[G.value.parentId]==="0");let R=null;const b=()=>{R&&cancelAnimationFrame(R),R=requestAnimationFrame(()=>{n.value&&(s(!1),i(n.value.scrollTop)),R=null})},v=()=>{},V=e.ref(!1),k=e.ref(0);return{barContent:n,scrollFlag:r,tasks:l,timelineCellCount:u,scale:d,mode:p,startGanttDate:g,endGanttDate:C,mapFields:G,getRootNode:m,scroll:b,mouseover:v,setScrollFlag:s,containerWidth:E,containerHeight:F,linkConfig:a,showGuideLine:V,guideLineX:k,handleMouseMove:U=>{if(!n.value)return;const Q=n.value.getBoundingClientRect(),A=U.clientX-Q.left+n.value.scrollLeft,Y=d.value,X=Math.floor(A/Y)*Y+Y/2;k.value=X,V.value=!0},handleMouseLeave:()=>{V.value=!1}}}});function hr(t,n,o,r,i,s){const a=e.resolveComponent("BarRecursionRow"),l=e.resolveComponent("TaskLinks");return t.tasks?(e.openBlock(),e.createElementBlock("div",{key:0,ref:"barContent",onScroll:n[0]||(n[0]=u=>t.scroll()),onMousemove:n[1]||(n[1]=(...u)=>t.handleMouseMove&&t.handleMouseMove(...u)),onMouseleave:n[2]||(n[2]=(...u)=>t.handleMouseLeave&&t.handleMouseLeave(...u)),class:"content"},[e.createElementVNode("div",{class:"content-inner",style:e.normalizeStyle({minHeight:t.containerHeight+"px",position:"relative"})},[t.showGuideLine?(e.openBlock(),e.createElementBlock("div",{key:0,class:"column-guide-line",style:e.normalizeStyle({left:t.guideLineX+"px",height:t.containerHeight+"px"})},null,4)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(a,{key:`${t.mode}-${t.scale}-${t.timelineCellCount}`,rowHeight:t.rowHeight,tasks:t.tasks},null,8,["rowHeight","tasks"])),e.createVNode(l,{containerWidth:t.containerWidth,containerHeight:t.containerHeight,linkConfig:t.linkConfig},null,8,["containerWidth","containerHeight","linkConfig"])],4)],544)):e.createCommentVNode("",!0)}const pr=Ve(mr,[["render",hr],["__scopeId","data-v-bdd53971"]]),gr=e.defineComponent({props:{headersHeight:{type:Number,default:50},rowHeight:{type:Number,default:50}},components:{TimelineHeader:Po,TableContent:pr},setup(t){const n=e.ref(null),o=e.computed(()=>T.dayHeaders),r=e.computed(()=>T.weekHeaders),i=e.computed(()=>T.monthHeaders),s=e.computed(()=>T.hourHeaders),a=e.computed(()=>T.startGanttDate),l=e.computed(()=>T.mode),u=e.computed(()=>T.scale);T.timelineCellCount*u.value+100,T.tasks.length*t.rowHeight+100;const d=()=>{if(n.value)switch(l.value){case"月":case"日":n.value.scrollLeft=Number(w().diff(w(a.value),"day"))*Number(u.value);break;case"周":const p=w().startOf("isoWeek"),g=w(a.value).startOf("isoWeek");n.value.scrollLeft=Number(p.diff(g,"week"))*Number(u.value);break;case"时":n.value.scrollLeft=Number(w().diff(w(a.value),"hour"))*Number(u.value);break}};return e.watch(()=>Ye.shouldScrollToToday,p=>{p&&(d(),Ye.shouldScrollToToday=!1)}),e.onMounted(()=>{}),{tableBar:n,dayHeaders:o,weekHeaders:r,monthHeaders:i,hourHeaders:s,startGanttDate:a,mode:l,scale:u,scrollToToday:d}}}),yr={ref:"tableBar",class:"table"};function kr(t,n,o,r,i,s){const a=e.resolveComponent("TimelineHeader"),l=e.resolveComponent("TableContent");return e.openBlock(),e.createElementBlock("div",yr,[e.createElementVNode("div",{class:"header",style:e.normalizeStyle({height:`${t.headersHeight}px`,width:"fit-content"})},[e.createVNode(a,{weekHeaders:t.weekHeaders,hourHeaders:t.hourHeaders,dayHeaders:t.dayHeaders,monthHeaders:t.monthHeaders},null,8,["weekHeaders","hourHeaders","dayHeaders","monthHeaders"])],4),e.createElementVNode("div",{class:"content",style:e.normalizeStyle({height:`calc(100% - ${t.headersHeight}px)`,width:"fit-content",position:"relative"})},[e.createVNode(l,{rowHeight:t.rowHeight},null,8,["rowHeight"])],4)],512)}const br=Ve(gr,[["render",kr],["__scopeId","data-v-3dce5fd1"]]),wr=e.defineComponent({name:"GanttConfigPanel",setup(){var J,j,U,Q,A,Y,H,X,Te,h,c,y;const{t,locale:n,setLocale:o,getLocales:r}=tt(),i=e.ref(!1),s=e.ref(He),a=e.ref("metro"),l=e.ref(null),u=e.computed(()=>n.value),d=e.computed(()=>r()),p=f=>{o(f)},g=e.inject("ganttContainer"),{config:C,updateConfig:G}=Tt(),E=e.ref({pathType:C.pathType||Ne.BEZIER,color:C.color||"#3498db",width:C.width||2,dashArray:C.dashArray,bezierCurvature:C.bezierCurvature||.5,rightAngleOffset:C.rightAngleOffset||40,smoothCorners:C.smoothCorners||!1,cornerRadius:C.cornerRadius||5,showArrow:C.showArrow!==void 0?C.showArrow:!0,arrowSize:C.arrowSize||8,arrowColor:C.arrowColor||"#3498db",enableDashAnimation:C.enableDashAnimation||!1,dashAnimationSpeed:C.dashAnimationSpeed||1,showLabels:C.showLabels||!1,labelColor:C.labelColor||"#333333",labelFontSize:C.labelFontSize||12,parentChildStyle:{color:((J=C.parentChildStyle)==null?void 0:J.color)||"#999999",width:((j=C.parentChildStyle)==null?void 0:j.width)||1.5,dashArray:((U=C.parentChildStyle)==null?void 0:U.dashArray)||"3,3"},linkTypeColors:{finishToStart:((Q=C.linkTypeColors)==null?void 0:Q.finishToStart)||"#3498db",startToStart:((A=C.linkTypeColors)==null?void 0:A.startToStart)||"#2ecc71",finishToFinish:((Y=C.linkTypeColors)==null?void 0:Y.finishToFinish)||"#e74c3c",startToFinish:((H=C.linkTypeColors)==null?void 0:H.startToFinish)||"#f39c12"},linkTypeVisibility:{finishToStart:((X=C.linkTypeVisibility)==null?void 0:X.finishToStart)??!0,startToStart:((Te=C.linkTypeVisibility)==null?void 0:Te.startToStart)??!0,finishToFinish:((h=C.linkTypeVisibility)==null?void 0:h.finishToFinish)??!0,startToFinish:((c=C.linkTypeVisibility)==null?void 0:c.startToFinish)??!0,parentChild:((y=C.linkTypeVisibility)==null?void 0:y.parentChild)??!0}}),F=e.computed(()=>[{value:Ne.STRAIGHT,name:t("configPanel.linkConfig.straight"),preview:"M 10 20 L 50 20"},{value:Ne.BEZIER,name:t("configPanel.linkConfig.bezier"),preview:"M 10 25 Q 30 5 50 25"},{value:Ne.RIGHT_ANGLE,name:t("configPanel.linkConfig.rightAngle"),preview:"M 10 15 L 25 15 L 25 25 L 50 25"}]),m=()=>{i.value=!i.value,i.value&&setTimeout(()=>{b(a.value)},0)},R=()=>{i.value=!1},b=f=>{if(!l.value)return;const D=Ie.getThemeInfo(f);D&&(l.value.setAttribute("data-gantt-theme",f),Object.entries(D.cssVariables).forEach(([L,M])=>{l.value.style.setProperty(L,M)}))},v=f=>{a.value=f,Ie.setTheme(f),b(f)},V=f=>{E.value.pathType=f,k()},k=()=>{G(E.value)};return e.onMounted(()=>{g!=null&&g.value?Ie.setGanttContainer(g.value):console.warn("GanttConfigPanel: ganttContainer not available"),a.value=Ie.getCurrentTheme()}),e.watch(E,f=>{G(f)},{deep:!0}),{t,isOpen:i,themes:s,currentTheme:a,linkConfig:E,pathTypes:F,currentLocale:u,locales:d,togglePanel:m,closePanel:R,selectTheme:v,selectPathType:V,selectLocale:p,updateLinkConfig:k,configPanelRef:l}}}),Cr={class:"config-panel-wrapper"},Tr=["title"],Sr={class:"btn-content"},vr={class:"btn-text"},Dr=["data-gantt-theme"],Er={class:"panel-header"},Mr=["title"],$r={class:"panel-content"},Nr={class:"config-section"},Vr={class:"section-title"},_r={class:"language-selector-inline"},Ar=["onClick"],Lr={class:"lang-label"},Br={key:0,class:"lang-check"},Fr={class:"config-section"},Hr={class:"section-title"},Ir={class:"theme-grid"},Rr=["onClick"],Yr={class:"theme-info"},zr={class:"theme-name"},Or={class:"theme-desc"},xr={key:0,class:"theme-check"},Pr={class:"config-section"},Zr={class:"section-title"},Gr={class:"link-config-content"},Wr={class:"config-info-box"},Ur={width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",style:{"flex-shrink":"0"}},jr={class:"config-group"},qr={class:"config-label"},Jr={class:"path-type-grid"},Kr=["onClick"],Qr={width:"60",height:"35",viewBox:"0 0 60 40"},Xr={key:0,cx:"10",cy:"20",r:"2.5",fill:"currentColor"},ei={key:1,cx:"10",cy:"25",r:"2.5",fill:"currentColor"},ti={key:2,cx:"10",cy:"15",r:"2.5",fill:"currentColor"},ni=["d"],ai={key:3,d:"M 50 20 L 46 17 M 50 20 L 46 23",stroke:"currentColor","stroke-width":"2.5",fill:"none","stroke-linecap":"round"},oi={key:4,d:"M 50 25 L 46 22 M 50 25 L 46 28",stroke:"currentColor","stroke-width":"2.5",fill:"none","stroke-linecap":"round"},ri={key:5,d:"M 50 25 L 46 22 M 50 25 L 46 28",stroke:"currentColor","stroke-width":"2.5",fill:"none","stroke-linecap":"round"},ii={class:"path-name"},si={class:"config-group"},li={class:"config-label"},di={class:"config-group"},ci={class:"config-label"},ui={class:"config-group"},fi={class:"config-label"},mi={value:void 0},hi={value:"3,3"},pi={value:"5,5"},gi={value:"8,4"},yi={value:"2,2,8,2"},ki={key:0,class:"config-group"},bi={class:"config-label"},wi={class:"config-group"},Ci={class:"config-label"},Ti={class:"config-group"},Si={class:"config-label"},vi={key:0,class:"config-group"},Di={class:"config-label"},Ei={class:"config-group"},Mi={class:"config-label"},$i={class:"config-group"},Ni={class:"config-label"},Vi={class:"config-group"},_i={class:"config-label"},Ai={class:"color-group"},Li=["title"],Bi={class:"config-group"},Fi={class:"config-label"},Hi={key:3,class:"config-group"},Ii={class:"config-label"},Ri={class:"config-group"},Yi={class:"config-label"},zi={class:"config-group"},Oi={class:"config-label"},xi={class:"config-group"},Pi={class:"config-label"},Zi={class:"config-subsection"},Gi={class:"subsection-title"},Wi={width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",style:{"margin-right":"4px"}},Ui={class:"link-type-colors"},ji={class:"color-item"},qi={class:"color-preview"},Ji={width:"20",height:"10",viewBox:"0 0 20 10"},Ki=["stroke"],Qi=["fill"],Xi={class:"color-label"},es={class:"color-desc"},ts={class:"color-item"},ns={class:"color-preview"},as={width:"20",height:"10",viewBox:"0 0 20 10"},os=["stroke"],rs=["fill"],is={class:"color-label"},ss={class:"color-desc"},ls={class:"color-item"},ds={class:"color-preview"},cs={width:"20",height:"10",viewBox:"0 0 20 10"},us=["stroke"],fs=["fill"],ms={class:"color-label"},hs={class:"color-desc"},ps={class:"color-item"},gs={class:"color-preview"},ys={width:"20",height:"10",viewBox:"0 0 20 10"},ks=["stroke"],bs=["fill"],ws={class:"color-label"},Cs={class:"color-desc"},Ts={class:"config-subsection"},Ss={class:"subsection-title"},vs={width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",style:{"margin-right":"4px"}},Ds={class:"config-info-box",style:{"margin-bottom":"12px"}},Es={style:{"font-size":"11px"}},Ms={class:"config-group"},$s={class:"config-label"},Ns={class:"config-group"},Vs={class:"config-label"},_s={class:"config-group"},As={class:"config-label"},Ls={value:void 0},Bs={value:"3,3"},Fs={value:"5,5"},Hs={value:"8,4"},Is=["data-gantt-theme"];function Rs(t,n,o,r,i,s){return e.openBlock(),e.createElementBlock("div",Cr,[e.createElementVNode("button",{class:e.normalizeClass(["config-btn",{active:t.isOpen}]),onClick:n[0]||(n[0]=(...a)=>t.togglePanel&&t.togglePanel(...a)),title:t.t("configPanel.title")},[e.createElementVNode("div",Sr,[n[49]||(n[49]=e.createElementVNode("div",{class:"btn-icon"},[e.createElementVNode("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z"})])],-1)),e.createElementVNode("span",vr,e.toDisplayString(t.t("common.config")),1)])],10,Tr),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"panel-fade"},{default:e.withCtx(()=>[t.isOpen?(e.openBlock(),e.createElementBlock("div",{key:0,class:"config-panel",onClick:n[47]||(n[47]=e.withModifiers(()=>{},["stop"])),ref:"configPanelRef","data-gantt-theme":t.currentTheme},[e.createElementVNode("div",Er,[e.createElementVNode("h3",null,e.toDisplayString(t.t("configPanel.title")),1),e.createElementVNode("button",{class:"close-btn",onClick:n[1]||(n[1]=(...a)=>t.closePanel&&t.closePanel(...a)),title:t.t("common.close")},n[50]||(n[50]=[e.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})],-1)]),8,Mr)]),e.createElementVNode("div",$r,[e.createElementVNode("div",Nr,[e.createElementVNode("h4",Vr,[n[51]||(n[51]=e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})],-1)),e.createTextVNode(" "+e.toDisplayString(t.t("configPanel.languageSettings")),1)]),e.createElementVNode("div",_r,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.locales,a=>(e.openBlock(),e.createElementBlock("div",{key:a.value,class:e.normalizeClass(["language-option",{active:t.currentLocale===a.value}]),onClick:l=>t.selectLocale(a.value)},[e.createElementVNode("span",Lr,e.toDisplayString(a.label),1),t.currentLocale===a.value?(e.openBlock(),e.createElementBlock("div",Br,n[52]||(n[52]=[e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"})],-1)]))):e.createCommentVNode("",!0)],10,Ar))),128))])]),e.createElementVNode("div",Fr,[e.createElementVNode("h4",Hr,[n[53]||(n[53]=e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9c.83 0 1.5-.67 1.5-1.5 0-.39-.15-.74-.39-1.01-.23-.26-.38-.61-.38-.99 0-.83.67-1.5 1.5-1.5H16c2.76 0 5-2.24 5-5 0-4.42-4.03-8-9-8zm-5.5 9c-.83 0-1.5-.67-1.5-1.5S5.67 9 6.5 9 8 9.67 8 10.5 7.33 12 6.5 12zm3-4C8.67 8 8 7.33 8 6.5S8.67 5 9.5 5s1.5.67 1.5 1.5S10.33 8 9.5 8zm5 0c-.83 0-1.5-.67-1.5-1.5S13.67 5 14.5 5s1.5.67 1.5 1.5S15.33 8 14.5 8zm3 4c-.83 0-1.5-.67-1.5-1.5S16.67 9 17.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"})],-1)),e.createTextVNode(" "+e.toDisplayString(t.t("configPanel.themeSettings")),1)]),e.createElementVNode("div",Ir,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.themes,a=>(e.openBlock(),e.createElementBlock("div",{key:a.id,class:e.normalizeClass(["theme-card",{active:t.currentTheme===a.id}]),onClick:l=>t.selectTheme(a.id)},[e.createElementVNode("div",{class:"theme-preview",style:e.normalizeStyle({background:a.preview})},null,4),e.createElementVNode("div",Yr,[e.createElementVNode("div",zr,e.toDisplayString(t.t(a.nameKey)),1),e.createElementVNode("div",Or,e.toDisplayString(t.t(a.descKey)),1)]),t.currentTheme===a.id?(e.openBlock(),e.createElementBlock("div",xr,n[54]||(n[54]=[e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"})],-1)]))):e.createCommentVNode("",!0)],10,Rr))),128))])]),e.createElementVNode("div",Pr,[e.createElementVNode("h4",Zr,[n[55]||(n[55]=e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M6 9l6 6 6-6"}),e.createElementVNode("circle",{cx:"4",cy:"9",r:"2"}),e.createElementVNode("circle",{cx:"20",cy:"9",r:"2"}),e.createElementVNode("path",{d:"M10 9h4"})],-1)),e.createTextVNode(" "+e.toDisplayString(t.t("configPanel.linkSettings")),1)]),e.createElementVNode("div",Gr,[e.createElementVNode("div",Wr,[(e.openBlock(),e.createElementBlock("svg",Ur,n[56]||(n[56]=[e.createElementVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"},null,-1)]))),e.createElementVNode("span",null,e.toDisplayString(t.t("configPanel.linkConfig.info")),1)]),e.createElementVNode("div",jr,[e.createElementVNode("label",qr,e.toDisplayString(t.t("configPanel.linkConfig.pathType")),1),e.createElementVNode("div",Jr,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.pathTypes,a=>(e.openBlock(),e.createElementBlock("div",{key:a.value,class:e.normalizeClass(["path-type-card",{active:t.linkConfig.pathType===a.value}]),onClick:l=>t.selectPathType(a.value)},[(e.openBlock(),e.createElementBlock("svg",Qr,[a.value==="straight"?(e.openBlock(),e.createElementBlock("circle",Xr)):e.createCommentVNode("",!0),a.value==="bezier"?(e.openBlock(),e.createElementBlock("circle",ei)):e.createCommentVNode("",!0),a.value==="right-angle"?(e.openBlock(),e.createElementBlock("circle",ti)):e.createCommentVNode("",!0),e.createElementVNode("path",{d:a.preview,stroke:"currentColor","stroke-width":"2.5",fill:"none","stroke-linecap":"round"},null,8,ni),a.value==="straight"?(e.openBlock(),e.createElementBlock("path",ai)):e.createCommentVNode("",!0),a.value==="bezier"?(e.openBlock(),e.createElementBlock("path",oi)):e.createCommentVNode("",!0),a.value==="right-angle"?(e.openBlock(),e.createElementBlock("path",ri)):e.createCommentVNode("",!0)])),e.createElementVNode("span",ii,e.toDisplayString(a.name),1)],10,Kr))),128))])]),e.createElementVNode("div",si,[e.createElementVNode("label",li,e.toDisplayString(t.t("configPanel.linkConfig.color")),1),e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":n[2]||(n[2]=a=>t.linkConfig.color=a),onChange:n[3]||(n[3]=(...a)=>t.updateLinkConfig&&t.updateLinkConfig(...a)),class:"color-input"},null,544),[[e.vModelText,t.linkConfig.color]])]),e.createElementVNode("div",di,[e.createElementVNode("label",ci,e.toDisplayString(t.t("configPanel.linkConfig.width"))+": "+e.toDisplayString(t.linkConfig.width)+"px",1),e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":n[4]||(n[4]=a=>t.linkConfig.width=a),onInput:n[5]||(n[5]=(...a)=>t.updateLinkConfig&&t.updateLinkConfig(...a)),min:"1",max:"5",step:"0.5",class:"range-input"},null,544),[[e.vModelText,t.linkConfig.width,void 0,{number:!0}]])]),e.createElementVNode("div",ui,[e.createElementVNode("label",fi,e.toDisplayString(t.t("configPanel.linkConfig.dashStyle")),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":n[6]||(n[6]=a=>t.linkConfig.dashArray=a),onChange:n[7]||(n[7]=(...a)=>t.updateLinkConfig&&t.updateLinkConfig(...a)),class:"select-input"},[e.createElementVNode("option",mi,e.toDisplayString(t.t("configPanel.linkConfig.solid")),1),e.createElementVNode("option",hi,e.toDisplayString(t.t("configPanel.linkConfig.shortDash")),1),e.createElementVNode("option",pi,e.toDisplayString(t.t("configPanel.linkConfig.mediumDash")),1),e.createElementVNode("option",gi,e.toDisplayString(t.t("configPanel.linkConfig.longDash")),1),e.createElementVNode("option",yi,e.toDisplayString(t.t("configPanel.linkConfig.dotDash")),1)],544),[[e.vModelSelect,t.linkConfig.dashArray]])]),t.linkConfig.pathType==="bezier"?(e.openBlock(),e.createElementBlock("div",ki,[e.createElementVNode("label",bi,e.toDisplayString(t.t("configPanel.linkConfig.curvature"))+": "+e.toDisplayString(t.linkConfig.bezierCurvature),1),e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":n[8]||(n[8]=a=>t.linkConfig.bezierCurvature=a),onInput:n[9]||(n[9]=(...a)=>t.updateLinkConfig&&t.updateLinkConfig(...a)),min:"0.1",max:"1",step:"0.1",class:"range-input"},null,544),[[e.vModelText,t.linkConfig.bezierCurvature,void 0,{number:!0}]])])):e.createCommentVNode("",!0),t.linkConfig.pathType==="right-angle"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("div",wi,[e.createElementVNode("label",Ci,e.toDisplayString(t.t("configPanel.linkConfig.offset"))+": "+e.toDisplayString(t.linkConfig.rightAngleOffset)+"px",1),e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":n[10]||(n[10]=a=>t.linkConfig.rightAngleOffset=a),onInput:n[11]||(n[11]=(...a)=>t.updateLinkConfig&&t.updateLinkConfig(...a)),min:"10",max:"80",step:"5",class:"range-input"},null,544),[[e.vModelText,t.linkConfig.rightAngleOffset,void 0,{number:!0}]])]),e.createElementVNode("div",Ti,[e.createElementVNode("label",Si,[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":n[12]||(n[12]=a=>t.linkConfig.smoothCorners=a),onChange:n[13]||(n[13]=(...a)=>t.updateLinkConfig&&t.updateLinkConfig(...a))},null,544),[[e.vModelCheckbox,t.linkConfig.smoothCorners]]),e.createTextVNode(" "+e.toDisplayString(t.t("configPanel.linkConfig.smoothCorners")),1)])]),t.linkConfig.smoothCorners?(e.openBlock(),e.createElementBlock("div",vi,[e.createElementVNode("label",Di,e.toDisplayString(t.t("configPanel.linkConfig.cornerRadius"))+": "+e.toDisplayString(t.linkConfig.cornerRadius)+"px",1),e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":n[14]||(n[14]=a=>t.linkConfig.cornerRadius=a),onInput:n[15]||(n[15]=(...a)=>t.updateLinkConfig&&t.updateLinkConfig(...a)),min:"0",max:"15",step:"1",class:"range-input"},null,544),[[e.vModelText,t.linkConfig.cornerRadius,void 0,{number:!0}]])])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),e.createElementVNode("div",Ei,[e.createElementVNode("label",Mi,[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":n[16]||(n[16]=a=>t.linkConfig.showArrow=a),onChange:n[17]||(n[17]=(...a)=>t.updateLinkConfig&&t.updateLinkConfig(...a))},null,544),[[e.vModelCheckbox,t.linkConfig.showArrow]]),e.createTextVNode(" "+e.toDisplayString(t.t("configPanel.linkConfig.showArrow")),1)])]),t.linkConfig.showArrow?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("div",$i,[e.createElementVNode("label",Ni,e.toDisplayString(t.t("configPanel.linkConfig.arrowSize"))+": "+e.toDisplayString(t.linkConfig.arrowSize)+"px",1),e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":n[18]||(n[18]=a=>t.linkConfig.arrowSize=a),onInput:n[19]||(n[19]=(...a)=>t.updateLinkConfig&&t.updateLinkConfig(...a)),min:"4",max:"16",step:"1",class:"range-input"},null,544),[[e.vModelText,t.linkConfig.arrowSize,void 0,{number:!0}]])]),e.createElementVNode("div",Vi,[e.createElementVNode("label",_i,e.toDisplayString(t.t("configPanel.linkConfig.arrowColor")),1),e.createElementVNode("div",Ai,[e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":n[20]||(n[20]=a=>t.linkConfig.arrowColor=a),onChange:n[21]||(n[21]=(...a)=>t.updateLinkConfig&&t.updateLinkConfig(...a)),class:"color-input"},null,544),[[e.vModelText,t.linkConfig.arrowColor]]),e.createElementVNode("button",{onClick:n[22]||(n[22]=a=>{t.linkConfig.arrowColor=t.linkConfig.color,t.updateLinkConfig()}),class:"sync-btn",title:t.t("tooltip.syncArrowColor")},e.toDisplayString(t.t("configPanel.linkConfig.syncColor")),9,Li)])])],64)):e.createCommentVNode("",!0),e.createElementVNode("div",Bi,[e.createElementVNode("label",Fi,[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":n[23]||(n[23]=a=>t.linkConfig.enableDashAnimation=a),onChange:n[24]||(n[24]=(...a)=>t.updateLinkConfig&&t.updateLinkConfig(...a))},null,544),[[e.vModelCheckbox,t.linkConfig.enableDashAnimation]]),e.createTextVNode(" "+e.toDisplayString(t.t("configPanel.linkConfig.dashAnimation")),1)])]),t.linkConfig.enableDashAnimation?(e.openBlock(),e.createElementBlock("div",Hi,[e.createElementVNode("label",Ii,e.toDisplayString(t.t("configPanel.linkConfig.animationSpeed"))+": "+e.toDisplayString(t.linkConfig.dashAnimationSpeed)+"s",1),e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":n[25]||(n[25]=a=>t.linkConfig.dashAnimationSpeed=a),onInput:n[26]||(n[26]=(...a)=>t.updateLinkConfig&&t.updateLinkConfig(...a)),min:"0.2",max:"3",step:"0.2",class:"range-input"},null,544),[[e.vModelText,t.linkConfig.dashAnimationSpeed,void 0,{number:!0}]])])):e.createCommentVNode("",!0),e.createElementVNode("div",Ri,[e.createElementVNode("label",Yi,[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":n[27]||(n[27]=a=>t.linkConfig.showLabels=a),onChange:n[28]||(n[28]=(...a)=>t.updateLinkConfig&&t.updateLinkConfig(...a))},null,544),[[e.vModelCheckbox,t.linkConfig.showLabels]]),e.createTextVNode(" "+e.toDisplayString(t.t("configPanel.linkConfig.showLabels")),1)])]),t.linkConfig.showLabels?(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[e.createElementVNode("div",zi,[e.createElementVNode("label",Oi,e.toDisplayString(t.t("configPanel.linkConfig.labelColor")),1),e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":n[29]||(n[29]=a=>t.linkConfig.labelColor=a),onChange:n[30]||(n[30]=(...a)=>t.updateLinkConfig&&t.updateLinkConfig(...a)),class:"color-input"},null,544),[[e.vModelText,t.linkConfig.labelColor]])]),e.createElementVNode("div",xi,[e.createElementVNode("label",Pi,e.toDisplayString(t.t("configPanel.linkConfig.fontSize"))+": "+e.toDisplayString(t.linkConfig.labelFontSize)+"px",1),e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":n[31]||(n[31]=a=>t.linkConfig.labelFontSize=a),onInput:n[32]||(n[32]=(...a)=>t.updateLinkConfig&&t.updateLinkConfig(...a)),min:"8",max:"16",step:"1",class:"range-input"},null,544),[[e.vModelText,t.linkConfig.labelFontSize,void 0,{number:!0}]])])],64)):e.createCommentVNode("",!0),e.createElementVNode("div",Zi,[e.createElementVNode("h5",Gi,[(e.openBlock(),e.createElementBlock("svg",Wi,n[57]||(n[57]=[e.createElementVNode("path",{d:"M19 15l-6 6-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.58L13 9l6 6z"},null,-1)]))),e.createTextVNode(" "+e.toDisplayString(t.t("configPanel.linkConfig.typeColors")),1)]),e.createElementVNode("div",Ui,[e.createElementVNode("div",ji,[e.createElementVNode("div",qi,[(e.openBlock(),e.createElementBlock("svg",Ji,[e.createElementVNode("line",{x1:"0",y1:"5",x2:"14",y2:"5",stroke:t.linkConfig.linkTypeColors.finishToStart,"stroke-width":"2"},null,8,Ki),e.createElementVNode("polygon",{points:"20,5 14,2 14,8",fill:t.linkConfig.linkTypeColors.finishToStart},null,8,Qi)]))]),e.createElementVNode("span",Xi,e.toDisplayString(t.t("link.fs")),1),e.createElementVNode("span",es,e.toDisplayString(t.t("link.finishToStart")),1),e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":n[33]||(n[33]=a=>t.linkConfig.linkTypeColors.finishToStart=a),onChange:n[34]||(n[34]=(...a)=>t.updateLinkConfig&&t.updateLinkConfig(...a)),class:"color-input-small"},null,544),[[e.vModelText,t.linkConfig.linkTypeColors.finishToStart]])]),e.createElementVNode("div",ts,[e.createElementVNode("div",ns,[(e.openBlock(),e.createElementBlock("svg",as,[e.createElementVNode("line",{x1:"0",y1:"5",x2:"14",y2:"5",stroke:t.linkConfig.linkTypeColors.startToStart,"stroke-width":"2"},null,8,os),e.createElementVNode("polygon",{points:"20,5 14,2 14,8",fill:t.linkConfig.linkTypeColors.startToStart},null,8,rs)]))]),e.createElementVNode("span",is,e.toDisplayString(t.t("link.ss")),1),e.createElementVNode("span",ss,e.toDisplayString(t.t("link.startToStart")),1),e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":n[35]||(n[35]=a=>t.linkConfig.linkTypeColors.startToStart=a),onChange:n[36]||(n[36]=(...a)=>t.updateLinkConfig&&t.updateLinkConfig(...a)),class:"color-input-small"},null,544),[[e.vModelText,t.linkConfig.linkTypeColors.startToStart]])]),e.createElementVNode("div",ls,[e.createElementVNode("div",ds,[(e.openBlock(),e.createElementBlock("svg",cs,[e.createElementVNode("line",{x1:"0",y1:"5",x2:"14",y2:"5",stroke:t.linkConfig.linkTypeColors.finishToFinish,"stroke-width":"2"},null,8,us),e.createElementVNode("polygon",{points:"20,5 14,2 14,8",fill:t.linkConfig.linkTypeColors.finishToFinish},null,8,fs)]))]),e.createElementVNode("span",ms,e.toDisplayString(t.t("link.ff")),1),e.createElementVNode("span",hs,e.toDisplayString(t.t("link.finishToFinish")),1),e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":n[37]||(n[37]=a=>t.linkConfig.linkTypeColors.finishToFinish=a),onChange:n[38]||(n[38]=(...a)=>t.updateLinkConfig&&t.updateLinkConfig(...a)),class:"color-input-small"},null,544),[[e.vModelText,t.linkConfig.linkTypeColors.finishToFinish]])]),e.createElementVNode("div",ps,[e.createElementVNode("div",gs,[(e.openBlock(),e.createElementBlock("svg",ys,[e.createElementVNode("line",{x1:"0",y1:"5",x2:"14",y2:"5",stroke:t.linkConfig.linkTypeColors.startToFinish,"stroke-width":"2"},null,8,ks),e.createElementVNode("polygon",{points:"20,5 14,2 14,8",fill:t.linkConfig.linkTypeColors.startToFinish},null,8,bs)]))]),e.createElementVNode("span",ws,e.toDisplayString(t.t("link.sf")),1),e.createElementVNode("span",Cs,e.toDisplayString(t.t("link.startToFinish")),1),e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":n[39]||(n[39]=a=>t.linkConfig.linkTypeColors.startToFinish=a),onChange:n[40]||(n[40]=(...a)=>t.updateLinkConfig&&t.updateLinkConfig(...a)),class:"color-input-small"},null,544),[[e.vModelText,t.linkConfig.linkTypeColors.startToFinish]])])])]),e.createElementVNode("div",Ts,[e.createElementVNode("h5",Ss,[(e.openBlock(),e.createElementBlock("svg",vs,n[58]||(n[58]=[e.createElementVNode("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"},null,-1)]))),e.createTextVNode(" "+e.toDisplayString(t.t("configPanel.linkConfig.parentChildStyle")),1)]),e.createElementVNode("div",Ds,[e.createElementVNode("span",Es,e.toDisplayString(t.t("configPanel.linkConfig.parentChildInfo")),1)]),e.createElementVNode("div",Ms,[e.createElementVNode("label",$s,e.toDisplayString(t.t("configPanel.linkConfig.color")),1),e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":n[41]||(n[41]=a=>t.linkConfig.parentChildStyle.color=a),onChange:n[42]||(n[42]=(...a)=>t.updateLinkConfig&&t.updateLinkConfig(...a)),class:"color-input"},null,544),[[e.vModelText,t.linkConfig.parentChildStyle.color]])]),e.createElementVNode("div",Ns,[e.createElementVNode("label",Vs,e.toDisplayString(t.t("configPanel.linkConfig.width"))+": "+e.toDisplayString(t.linkConfig.parentChildStyle.width)+"px",1),e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":n[43]||(n[43]=a=>t.linkConfig.parentChildStyle.width=a),onInput:n[44]||(n[44]=(...a)=>t.updateLinkConfig&&t.updateLinkConfig(...a)),min:"1",max:"3",step:"0.5",class:"range-input"},null,544),[[e.vModelText,t.linkConfig.parentChildStyle.width,void 0,{number:!0}]])]),e.createElementVNode("div",_s,[e.createElementVNode("label",As,e.toDisplayString(t.t("configPanel.linkConfig.dashStyle")),1),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":n[45]||(n[45]=a=>t.linkConfig.parentChildStyle.dashArray=a),onChange:n[46]||(n[46]=(...a)=>t.updateLinkConfig&&t.updateLinkConfig(...a)),class:"select-input"},[e.createElementVNode("option",Ls,e.toDisplayString(t.t("configPanel.linkConfig.solid")),1),e.createElementVNode("option",Bs,e.toDisplayString(t.t("configPanel.linkConfig.shortDash")),1),e.createElementVNode("option",Fs,e.toDisplayString(t.t("configPanel.linkConfig.mediumDash")),1),e.createElementVNode("option",Hs,e.toDisplayString(t.t("configPanel.linkConfig.longDash")),1)],544),[[e.vModelSelect,t.linkConfig.parentChildStyle.dashArray]])])])])])])],8,Dr)):e.createCommentVNode("",!0)]),_:1}),t.isOpen?(e.openBlock(),e.createElementBlock("div",{key:0,class:"panel-overlay",onClick:n[48]||(n[48]=(...a)=>t.closePanel&&t.closePanel(...a)),"data-gantt-theme":t.currentTheme},null,8,Is)):e.createCommentVNode("",!0)]))])}const On=Ve(wr,[["render",Rs],["__scopeId","data-v-38c7d8c5"]]);var ke;(function(t){t.assertEqual=i=>i;function n(i){}t.assertIs=n;function o(i){throw new Error}t.assertNever=o,t.arrayToEnum=i=>{const s={};for(const a of i)s[a]=a;return s},t.getValidEnumValues=i=>{const s=t.objectKeys(i).filter(l=>typeof i[i[l]]!="number"),a={};for(const l of s)a[l]=i[l];return t.objectValues(a)},t.objectValues=i=>t.objectKeys(i).map(function(s){return i[s]}),t.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{const s=[];for(const a in i)Object.prototype.hasOwnProperty.call(i,a)&&s.push(a);return s},t.find=(i,s)=>{for(const a of i)if(s(a))return a},t.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&isFinite(i)&&Math.floor(i)===i;function r(i,s=" | "){return i.map(a=>typeof a=="string"?`'${a}'`:a).join(s)}t.joinValues=r,t.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(ke||(ke={}));var gn;(function(t){t.mergeShapes=(n,o)=>({...n,...o})})(gn||(gn={}));const O=ke.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Je=t=>{switch(typeof t){case"undefined":return O.undefined;case"string":return O.string;case"number":return isNaN(t)?O.nan:O.number;case"boolean":return O.boolean;case"function":return O.function;case"bigint":return O.bigint;case"symbol":return O.symbol;case"object":return Array.isArray(t)?O.array:t===null?O.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?O.promise:typeof Map<"u"&&t instanceof Map?O.map:typeof Set<"u"&&t instanceof Set?O.set:typeof Date<"u"&&t instanceof Date?O.date:O.object;default:return O.unknown}},N=ke.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),Ys=t=>JSON.stringify(t,null,2).replace(/"([^"]+)":/g,"$1:");class Re extends Error{get errors(){return this.issues}constructor(n){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};const o=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,o):this.__proto__=o,this.name="ZodError",this.issues=n}format(n){const o=n||function(s){return s.message},r={_errors:[]},i=s=>{for(const a of s.issues)if(a.code==="invalid_union")a.unionErrors.map(i);else if(a.code==="invalid_return_type")i(a.returnTypeError);else if(a.code==="invalid_arguments")i(a.argumentsError);else if(a.path.length===0)r._errors.push(o(a));else{let l=r,u=0;for(;u<a.path.length;){const d=a.path[u];u===a.path.length-1?(l[d]=l[d]||{_errors:[]},l[d]._errors.push(o(a))):l[d]=l[d]||{_errors:[]},l=l[d],u++}}};return i(this),r}static assert(n){if(!(n instanceof Re))throw new Error(`Not a ZodError: ${n}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,ke.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(n=o=>o.message){const o={},r=[];for(const i of this.issues)i.path.length>0?(o[i.path[0]]=o[i.path[0]]||[],o[i.path[0]].push(n(i))):r.push(n(i));return{formErrors:r,fieldErrors:o}}get formErrors(){return this.flatten()}}Re.create=t=>new Re(t);const ht=(t,n)=>{let o;switch(t.code){case N.invalid_type:t.received===O.undefined?o="Required":o=`Expected ${t.expected}, received ${t.received}`;break;case N.invalid_literal:o=`Invalid literal value, expected ${JSON.stringify(t.expected,ke.jsonStringifyReplacer)}`;break;case N.unrecognized_keys:o=`Unrecognized key(s) in object: ${ke.joinValues(t.keys,", ")}`;break;case N.invalid_union:o="Invalid input";break;case N.invalid_union_discriminator:o=`Invalid discriminator value. Expected ${ke.joinValues(t.options)}`;break;case N.invalid_enum_value:o=`Invalid enum value. Expected ${ke.joinValues(t.options)}, received '${t.received}'`;break;case N.invalid_arguments:o="Invalid function arguments";break;case N.invalid_return_type:o="Invalid function return type";break;case N.invalid_date:o="Invalid date";break;case N.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(o=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(o=`${o} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?o=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?o=`Invalid input: must end with "${t.validation.endsWith}"`:ke.assertNever(t.validation):t.validation!=="regex"?o=`Invalid ${t.validation}`:o="Invalid";break;case N.too_small:t.type==="array"?o=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?o=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?o=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?o=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:o="Invalid input";break;case N.too_big:t.type==="array"?o=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?o=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?o=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?o=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?o=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:o="Invalid input";break;case N.custom:o="Invalid input";break;case N.invalid_intersection_types:o="Intersection results could not be merged";break;case N.not_multiple_of:o=`Number must be a multiple of ${t.multipleOf}`;break;case N.not_finite:o="Number must be finite";break;default:o=n.defaultError,ke.assertNever(t)}return{message:o}};let xn=ht;function zs(t){xn=t}function tn(){return xn}const nn=t=>{const{data:n,path:o,errorMaps:r,issueData:i}=t,s=[...o,...i.path||[]],a={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let l="";const u=r.filter(d=>!!d).slice().reverse();for(const d of u)l=d(a,{data:n,defaultError:l}).message;return{...i,path:s,message:l}},Os=[];function I(t,n){const o=tn(),r=nn({issueData:n,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,o,o===ht?void 0:ht].filter(i=>!!i)});t.common.issues.push(r)}class Ae{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(n,o){const r=[];for(const i of o){if(i.status==="aborted")return se;i.status==="dirty"&&n.dirty(),r.push(i.value)}return{status:n.value,value:r}}static async mergeObjectAsync(n,o){const r=[];for(const i of o){const s=await i.key,a=await i.value;r.push({key:s,value:a})}return Ae.mergeObjectSync(n,r)}static mergeObjectSync(n,o){const r={};for(const i of o){const{key:s,value:a}=i;if(s.status==="aborted"||a.status==="aborted")return se;s.status==="dirty"&&n.dirty(),a.status==="dirty"&&n.dirty(),s.value!=="__proto__"&&(typeof a.value<"u"||i.alwaysSet)&&(r[s.value]=a.value)}return{status:n.value,value:r}}}const se=Object.freeze({status:"aborted"}),pt=t=>({status:"dirty",value:t}),Be=t=>({status:"valid",value:t}),yn=t=>t.status==="aborted",kn=t=>t.status==="dirty",lt=t=>t.status==="valid",vt=t=>typeof Promise<"u"&&t instanceof Promise;function an(t,n,o,r){if(typeof n=="function"?t!==n||!0:!n.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n.get(t)}function Pn(t,n,o,r,i){if(typeof n=="function"?t!==n||!0:!n.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n.set(t,o),o}typeof SuppressedError=="function"&&SuppressedError;var K;(function(t){t.errToObj=n=>typeof n=="string"?{message:n}:n||{},t.toString=n=>typeof n=="string"?n:n==null?void 0:n.message})(K||(K={}));var Dt,Et;class Ge{constructor(n,o,r,i){this._cachedPath=[],this.parent=n,this.data=o,this._path=r,this._key=i}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const Zn=(t,n)=>{if(lt(n))return{success:!0,data:n.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const o=new Re(t.common.issues);return this._error=o,this._error}}};function ue(t){if(!t)return{};const{errorMap:n,invalid_type_error:o,required_error:r,description:i}=t;if(n&&(o||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return n?{errorMap:n,description:i}:{errorMap:(a,l)=>{var u,d;const{message:p}=t;return a.code==="invalid_enum_value"?{message:p??l.defaultError}:typeof l.data>"u"?{message:(u=p??r)!==null&&u!==void 0?u:l.defaultError}:a.code!=="invalid_type"?{message:l.defaultError}:{message:(d=p??o)!==null&&d!==void 0?d:l.defaultError}},description:i}}class me{get description(){return this._def.description}_getType(n){return Je(n.data)}_getOrReturnCtx(n,o){return o||{common:n.parent.common,data:n.data,parsedType:Je(n.data),schemaErrorMap:this._def.errorMap,path:n.path,parent:n.parent}}_processInputParams(n){return{status:new Ae,ctx:{common:n.parent.common,data:n.data,parsedType:Je(n.data),schemaErrorMap:this._def.errorMap,path:n.path,parent:n.parent}}}_parseSync(n){const o=this._parse(n);if(vt(o))throw new Error("Synchronous parse encountered promise.");return o}_parseAsync(n){const o=this._parse(n);return Promise.resolve(o)}parse(n,o){const r=this.safeParse(n,o);if(r.success)return r.data;throw r.error}safeParse(n,o){var r;const i={common:{issues:[],async:(r=o==null?void 0:o.async)!==null&&r!==void 0?r:!1,contextualErrorMap:o==null?void 0:o.errorMap},path:(o==null?void 0:o.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:n,parsedType:Je(n)},s=this._parseSync({data:n,path:i.path,parent:i});return Zn(i,s)}"~validate"(n){var o,r;const i={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:n,parsedType:Je(n)};if(!this["~standard"].async)try{const s=this._parseSync({data:n,path:[],parent:i});return lt(s)?{value:s.value}:{issues:i.common.issues}}catch(s){!((r=(o=s==null?void 0:s.message)===null||o===void 0?void 0:o.toLowerCase())===null||r===void 0)&&r.includes("encountered")&&(this["~standard"].async=!0),i.common={issues:[],async:!0}}return this._parseAsync({data:n,path:[],parent:i}).then(s=>lt(s)?{value:s.value}:{issues:i.common.issues})}async parseAsync(n,o){const r=await this.safeParseAsync(n,o);if(r.success)return r.data;throw r.error}async safeParseAsync(n,o){const r={common:{issues:[],contextualErrorMap:o==null?void 0:o.errorMap,async:!0},path:(o==null?void 0:o.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:n,parsedType:Je(n)},i=this._parse({data:n,path:r.path,parent:r}),s=await(vt(i)?i:Promise.resolve(i));return Zn(r,s)}refine(n,o){const r=i=>typeof o=="string"||typeof o>"u"?{message:o}:typeof o=="function"?o(i):o;return this._refinement((i,s)=>{const a=n(i),l=()=>s.addIssue({code:N.custom,...r(i)});return typeof Promise<"u"&&a instanceof Promise?a.then(u=>u?!0:(l(),!1)):a?!0:(l(),!1)})}refinement(n,o){return this._refinement((r,i)=>n(r)?!0:(i.addIssue(typeof o=="function"?o(r,i):o),!1))}_refinement(n){return new Pe({schema:this,typeName:ie.ZodEffects,effect:{type:"refinement",refinement:n}})}superRefine(n){return this._refinement(n)}constructor(n){this.spa=this.safeParseAsync,this._def=n,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:o=>this["~validate"](o)}}optional(){return Ue.create(this,this._def)}nullable(){return rt.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return xe.create(this)}promise(){return bt.create(this,this._def)}or(n){return Vt.create([this,n],this._def)}and(n){return _t.create(this,n,this._def)}transform(n){return new Pe({...ue(this._def),schema:this,typeName:ie.ZodEffects,effect:{type:"transform",transform:n}})}default(n){const o=typeof n=="function"?n:()=>n;return new Ht({...ue(this._def),innerType:this,defaultValue:o,typeName:ie.ZodDefault})}brand(){return new Cn({typeName:ie.ZodBranded,type:this,...ue(this._def)})}catch(n){const o=typeof n=="function"?n:()=>n;return new It({...ue(this._def),innerType:this,catchValue:o,typeName:ie.ZodCatch})}describe(n){const o=this.constructor;return new o({...this._def,description:n})}pipe(n){return Rt.create(this,n)}readonly(){return Yt.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const xs=/^c[^\s-]{8,}$/i,Ps=/^[0-9a-z]+$/,Zs=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Gs=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Ws=/^[a-z0-9_-]{21}$/i,Us=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,js=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,qs=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Js="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let bn;const Ks=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Qs=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Xs=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,el=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,tl=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,nl=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Gn="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",al=new RegExp(`^${Gn}$`);function Wn(t){let n="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return t.precision?n=`${n}\\.\\d{${t.precision}}`:t.precision==null&&(n=`${n}(\\.\\d+)?`),n}function ol(t){return new RegExp(`^${Wn(t)}$`)}function Un(t){let n=`${Gn}T${Wn(t)}`;const o=[];return o.push(t.local?"Z?":"Z"),t.offset&&o.push("([+-]\\d{2}:?\\d{2})"),n=`${n}(${o.join("|")})`,new RegExp(`^${n}$`)}function rl(t,n){return!!((n==="v4"||!n)&&Ks.test(t)||(n==="v6"||!n)&&Xs.test(t))}function il(t,n){if(!Us.test(t))return!1;try{const[o]=t.split("."),r=o.replace(/-/g,"+").replace(/_/g,"/").padEnd(o.length+(4-o.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||!i.typ||!i.alg||n&&i.alg!==n)}catch{return!1}}function sl(t,n){return!!((n==="v4"||!n)&&Qs.test(t)||(n==="v6"||!n)&&el.test(t))}class Oe extends me{_parse(n){if(this._def.coerce&&(n.data=String(n.data)),this._getType(n)!==O.string){const s=this._getOrReturnCtx(n);return I(s,{code:N.invalid_type,expected:O.string,received:s.parsedType}),se}const r=new Ae;let i;for(const s of this._def.checks)if(s.kind==="min")n.data.length<s.value&&(i=this._getOrReturnCtx(n,i),I(i,{code:N.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="max")n.data.length>s.value&&(i=this._getOrReturnCtx(n,i),I(i,{code:N.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){const a=n.data.length>s.value,l=n.data.length<s.value;(a||l)&&(i=this._getOrReturnCtx(n,i),a?I(i,{code:N.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):l&&I(i,{code:N.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),r.dirty())}else if(s.kind==="email")qs.test(n.data)||(i=this._getOrReturnCtx(n,i),I(i,{validation:"email",code:N.invalid_string,message:s.message}),r.dirty());else if(s.kind==="emoji")bn||(bn=new RegExp(Js,"u")),bn.test(n.data)||(i=this._getOrReturnCtx(n,i),I(i,{validation:"emoji",code:N.invalid_string,message:s.message}),r.dirty());else if(s.kind==="uuid")Gs.test(n.data)||(i=this._getOrReturnCtx(n,i),I(i,{validation:"uuid",code:N.invalid_string,message:s.message}),r.dirty());else if(s.kind==="nanoid")Ws.test(n.data)||(i=this._getOrReturnCtx(n,i),I(i,{validation:"nanoid",code:N.invalid_string,message:s.message}),r.dirty());else if(s.kind==="cuid")xs.test(n.data)||(i=this._getOrReturnCtx(n,i),I(i,{validation:"cuid",code:N.invalid_string,message:s.message}),r.dirty());else if(s.kind==="cuid2")Ps.test(n.data)||(i=this._getOrReturnCtx(n,i),I(i,{validation:"cuid2",code:N.invalid_string,message:s.message}),r.dirty());else if(s.kind==="ulid")Zs.test(n.data)||(i=this._getOrReturnCtx(n,i),I(i,{validation:"ulid",code:N.invalid_string,message:s.message}),r.dirty());else if(s.kind==="url")try{new URL(n.data)}catch{i=this._getOrReturnCtx(n,i),I(i,{validation:"url",code:N.invalid_string,message:s.message}),r.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(n.data)||(i=this._getOrReturnCtx(n,i),I(i,{validation:"regex",code:N.invalid_string,message:s.message}),r.dirty())):s.kind==="trim"?n.data=n.data.trim():s.kind==="includes"?n.data.includes(s.value,s.position)||(i=this._getOrReturnCtx(n,i),I(i,{code:N.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),r.dirty()):s.kind==="toLowerCase"?n.data=n.data.toLowerCase():s.kind==="toUpperCase"?n.data=n.data.toUpperCase():s.kind==="startsWith"?n.data.startsWith(s.value)||(i=this._getOrReturnCtx(n,i),I(i,{code:N.invalid_string,validation:{startsWith:s.value},message:s.message}),r.dirty()):s.kind==="endsWith"?n.data.endsWith(s.value)||(i=this._getOrReturnCtx(n,i),I(i,{code:N.invalid_string,validation:{endsWith:s.value},message:s.message}),r.dirty()):s.kind==="datetime"?Un(s).test(n.data)||(i=this._getOrReturnCtx(n,i),I(i,{code:N.invalid_string,validation:"datetime",message:s.message}),r.dirty()):s.kind==="date"?al.test(n.data)||(i=this._getOrReturnCtx(n,i),I(i,{code:N.invalid_string,validation:"date",message:s.message}),r.dirty()):s.kind==="time"?ol(s).test(n.data)||(i=this._getOrReturnCtx(n,i),I(i,{code:N.invalid_string,validation:"time",message:s.message}),r.dirty()):s.kind==="duration"?js.test(n.data)||(i=this._getOrReturnCtx(n,i),I(i,{validation:"duration",code:N.invalid_string,message:s.message}),r.dirty()):s.kind==="ip"?rl(n.data,s.version)||(i=this._getOrReturnCtx(n,i),I(i,{validation:"ip",code:N.invalid_string,message:s.message}),r.dirty()):s.kind==="jwt"?il(n.data,s.alg)||(i=this._getOrReturnCtx(n,i),I(i,{validation:"jwt",code:N.invalid_string,message:s.message}),r.dirty()):s.kind==="cidr"?sl(n.data,s.version)||(i=this._getOrReturnCtx(n,i),I(i,{validation:"cidr",code:N.invalid_string,message:s.message}),r.dirty()):s.kind==="base64"?tl.test(n.data)||(i=this._getOrReturnCtx(n,i),I(i,{validation:"base64",code:N.invalid_string,message:s.message}),r.dirty()):s.kind==="base64url"?nl.test(n.data)||(i=this._getOrReturnCtx(n,i),I(i,{validation:"base64url",code:N.invalid_string,message:s.message}),r.dirty()):ke.assertNever(s);return{status:r.value,value:n.data}}_regex(n,o,r){return this.refinement(i=>n.test(i),{validation:o,code:N.invalid_string,...K.errToObj(r)})}_addCheck(n){return new Oe({...this._def,checks:[...this._def.checks,n]})}email(n){return this._addCheck({kind:"email",...K.errToObj(n)})}url(n){return this._addCheck({kind:"url",...K.errToObj(n)})}emoji(n){return this._addCheck({kind:"emoji",...K.errToObj(n)})}uuid(n){return this._addCheck({kind:"uuid",...K.errToObj(n)})}nanoid(n){return this._addCheck({kind:"nanoid",...K.errToObj(n)})}cuid(n){return this._addCheck({kind:"cuid",...K.errToObj(n)})}cuid2(n){return this._addCheck({kind:"cuid2",...K.errToObj(n)})}ulid(n){return this._addCheck({kind:"ulid",...K.errToObj(n)})}base64(n){return this._addCheck({kind:"base64",...K.errToObj(n)})}base64url(n){return this._addCheck({kind:"base64url",...K.errToObj(n)})}jwt(n){return this._addCheck({kind:"jwt",...K.errToObj(n)})}ip(n){return this._addCheck({kind:"ip",...K.errToObj(n)})}cidr(n){return this._addCheck({kind:"cidr",...K.errToObj(n)})}datetime(n){var o,r;return typeof n=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:n}):this._addCheck({kind:"datetime",precision:typeof(n==null?void 0:n.precision)>"u"?null:n==null?void 0:n.precision,offset:(o=n==null?void 0:n.offset)!==null&&o!==void 0?o:!1,local:(r=n==null?void 0:n.local)!==null&&r!==void 0?r:!1,...K.errToObj(n==null?void 0:n.message)})}date(n){return this._addCheck({kind:"date",message:n})}time(n){return typeof n=="string"?this._addCheck({kind:"time",precision:null,message:n}):this._addCheck({kind:"time",precision:typeof(n==null?void 0:n.precision)>"u"?null:n==null?void 0:n.precision,...K.errToObj(n==null?void 0:n.message)})}duration(n){return this._addCheck({kind:"duration",...K.errToObj(n)})}regex(n,o){return this._addCheck({kind:"regex",regex:n,...K.errToObj(o)})}includes(n,o){return this._addCheck({kind:"includes",value:n,position:o==null?void 0:o.position,...K.errToObj(o==null?void 0:o.message)})}startsWith(n,o){return this._addCheck({kind:"startsWith",value:n,...K.errToObj(o)})}endsWith(n,o){return this._addCheck({kind:"endsWith",value:n,...K.errToObj(o)})}min(n,o){return this._addCheck({kind:"min",value:n,...K.errToObj(o)})}max(n,o){return this._addCheck({kind:"max",value:n,...K.errToObj(o)})}length(n,o){return this._addCheck({kind:"length",value:n,...K.errToObj(o)})}nonempty(n){return this.min(1,K.errToObj(n))}trim(){return new Oe({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Oe({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Oe({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(n=>n.kind==="datetime")}get isDate(){return!!this._def.checks.find(n=>n.kind==="date")}get isTime(){return!!this._def.checks.find(n=>n.kind==="time")}get isDuration(){return!!this._def.checks.find(n=>n.kind==="duration")}get isEmail(){return!!this._def.checks.find(n=>n.kind==="email")}get isURL(){return!!this._def.checks.find(n=>n.kind==="url")}get isEmoji(){return!!this._def.checks.find(n=>n.kind==="emoji")}get isUUID(){return!!this._def.checks.find(n=>n.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(n=>n.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(n=>n.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(n=>n.kind==="cuid2")}get isULID(){return!!this._def.checks.find(n=>n.kind==="ulid")}get isIP(){return!!this._def.checks.find(n=>n.kind==="ip")}get isCIDR(){return!!this._def.checks.find(n=>n.kind==="cidr")}get isBase64(){return!!this._def.checks.find(n=>n.kind==="base64")}get isBase64url(){return!!this._def.checks.find(n=>n.kind==="base64url")}get minLength(){let n=null;for(const o of this._def.checks)o.kind==="min"&&(n===null||o.value>n)&&(n=o.value);return n}get maxLength(){let n=null;for(const o of this._def.checks)o.kind==="max"&&(n===null||o.value<n)&&(n=o.value);return n}}Oe.create=t=>{var n;return new Oe({checks:[],typeName:ie.ZodString,coerce:(n=t==null?void 0:t.coerce)!==null&&n!==void 0?n:!1,...ue(t)})};function ll(t,n){const o=(t.toString().split(".")[1]||"").length,r=(n.toString().split(".")[1]||"").length,i=o>r?o:r,s=parseInt(t.toFixed(i).replace(".","")),a=parseInt(n.toFixed(i).replace(".",""));return s%a/Math.pow(10,i)}class nt extends me{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(n){if(this._def.coerce&&(n.data=Number(n.data)),this._getType(n)!==O.number){const s=this._getOrReturnCtx(n);return I(s,{code:N.invalid_type,expected:O.number,received:s.parsedType}),se}let r;const i=new Ae;for(const s of this._def.checks)s.kind==="int"?ke.isInteger(n.data)||(r=this._getOrReturnCtx(n,r),I(r,{code:N.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?n.data<s.value:n.data<=s.value)&&(r=this._getOrReturnCtx(n,r),I(r,{code:N.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?n.data>s.value:n.data>=s.value)&&(r=this._getOrReturnCtx(n,r),I(r,{code:N.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?ll(n.data,s.value)!==0&&(r=this._getOrReturnCtx(n,r),I(r,{code:N.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(n.data)||(r=this._getOrReturnCtx(n,r),I(r,{code:N.not_finite,message:s.message}),i.dirty()):ke.assertNever(s);return{status:i.value,value:n.data}}gte(n,o){return this.setLimit("min",n,!0,K.toString(o))}gt(n,o){return this.setLimit("min",n,!1,K.toString(o))}lte(n,o){return this.setLimit("max",n,!0,K.toString(o))}lt(n,o){return this.setLimit("max",n,!1,K.toString(o))}setLimit(n,o,r,i){return new nt({...this._def,checks:[...this._def.checks,{kind:n,value:o,inclusive:r,message:K.toString(i)}]})}_addCheck(n){return new nt({...this._def,checks:[...this._def.checks,n]})}int(n){return this._addCheck({kind:"int",message:K.toString(n)})}positive(n){return this._addCheck({kind:"min",value:0,inclusive:!1,message:K.toString(n)})}negative(n){return this._addCheck({kind:"max",value:0,inclusive:!1,message:K.toString(n)})}nonpositive(n){return this._addCheck({kind:"max",value:0,inclusive:!0,message:K.toString(n)})}nonnegative(n){return this._addCheck({kind:"min",value:0,inclusive:!0,message:K.toString(n)})}multipleOf(n,o){return this._addCheck({kind:"multipleOf",value:n,message:K.toString(o)})}finite(n){return this._addCheck({kind:"finite",message:K.toString(n)})}safe(n){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:K.toString(n)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:K.toString(n)})}get minValue(){let n=null;for(const o of this._def.checks)o.kind==="min"&&(n===null||o.value>n)&&(n=o.value);return n}get maxValue(){let n=null;for(const o of this._def.checks)o.kind==="max"&&(n===null||o.value<n)&&(n=o.value);return n}get isInt(){return!!this._def.checks.find(n=>n.kind==="int"||n.kind==="multipleOf"&&ke.isInteger(n.value))}get isFinite(){let n=null,o=null;for(const r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(o===null||r.value>o)&&(o=r.value):r.kind==="max"&&(n===null||r.value<n)&&(n=r.value)}return Number.isFinite(o)&&Number.isFinite(n)}}nt.create=t=>new nt({checks:[],typeName:ie.ZodNumber,coerce:(t==null?void 0:t.coerce)||!1,...ue(t)});class at extends me{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(n){if(this._def.coerce)try{n.data=BigInt(n.data)}catch{return this._getInvalidInput(n)}if(this._getType(n)!==O.bigint)return this._getInvalidInput(n);let r;const i=new Ae;for(const s of this._def.checks)s.kind==="min"?(s.inclusive?n.data<s.value:n.data<=s.value)&&(r=this._getOrReturnCtx(n,r),I(r,{code:N.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?n.data>s.value:n.data>=s.value)&&(r=this._getOrReturnCtx(n,r),I(r,{code:N.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?n.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(n,r),I(r,{code:N.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):ke.assertNever(s);return{status:i.value,value:n.data}}_getInvalidInput(n){const o=this._getOrReturnCtx(n);return I(o,{code:N.invalid_type,expected:O.bigint,received:o.parsedType}),se}gte(n,o){return this.setLimit("min",n,!0,K.toString(o))}gt(n,o){return this.setLimit("min",n,!1,K.toString(o))}lte(n,o){return this.setLimit("max",n,!0,K.toString(o))}lt(n,o){return this.setLimit("max",n,!1,K.toString(o))}setLimit(n,o,r,i){return new at({...this._def,checks:[...this._def.checks,{kind:n,value:o,inclusive:r,message:K.toString(i)}]})}_addCheck(n){return new at({...this._def,checks:[...this._def.checks,n]})}positive(n){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:K.toString(n)})}negative(n){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:K.toString(n)})}nonpositive(n){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:K.toString(n)})}nonnegative(n){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:K.toString(n)})}multipleOf(n,o){return this._addCheck({kind:"multipleOf",value:n,message:K.toString(o)})}get minValue(){let n=null;for(const o of this._def.checks)o.kind==="min"&&(n===null||o.value>n)&&(n=o.value);return n}get maxValue(){let n=null;for(const o of this._def.checks)o.kind==="max"&&(n===null||o.value<n)&&(n=o.value);return n}}at.create=t=>{var n;return new at({checks:[],typeName:ie.ZodBigInt,coerce:(n=t==null?void 0:t.coerce)!==null&&n!==void 0?n:!1,...ue(t)})};class Mt extends me{_parse(n){if(this._def.coerce&&(n.data=!!n.data),this._getType(n)!==O.boolean){const r=this._getOrReturnCtx(n);return I(r,{code:N.invalid_type,expected:O.boolean,received:r.parsedType}),se}return Be(n.data)}}Mt.create=t=>new Mt({typeName:ie.ZodBoolean,coerce:(t==null?void 0:t.coerce)||!1,...ue(t)});class dt extends me{_parse(n){if(this._def.coerce&&(n.data=new Date(n.data)),this._getType(n)!==O.date){const s=this._getOrReturnCtx(n);return I(s,{code:N.invalid_type,expected:O.date,received:s.parsedType}),se}if(isNaN(n.data.getTime())){const s=this._getOrReturnCtx(n);return I(s,{code:N.invalid_date}),se}const r=new Ae;let i;for(const s of this._def.checks)s.kind==="min"?n.data.getTime()<s.value&&(i=this._getOrReturnCtx(n,i),I(i,{code:N.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),r.dirty()):s.kind==="max"?n.data.getTime()>s.value&&(i=this._getOrReturnCtx(n,i),I(i,{code:N.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):ke.assertNever(s);return{status:r.value,value:new Date(n.data.getTime())}}_addCheck(n){return new dt({...this._def,checks:[...this._def.checks,n]})}min(n,o){return this._addCheck({kind:"min",value:n.getTime(),message:K.toString(o)})}max(n,o){return this._addCheck({kind:"max",value:n.getTime(),message:K.toString(o)})}get minDate(){let n=null;for(const o of this._def.checks)o.kind==="min"&&(n===null||o.value>n)&&(n=o.value);return n!=null?new Date(n):null}get maxDate(){let n=null;for(const o of this._def.checks)o.kind==="max"&&(n===null||o.value<n)&&(n=o.value);return n!=null?new Date(n):null}}dt.create=t=>new dt({checks:[],coerce:(t==null?void 0:t.coerce)||!1,typeName:ie.ZodDate,...ue(t)});class on extends me{_parse(n){if(this._getType(n)!==O.symbol){const r=this._getOrReturnCtx(n);return I(r,{code:N.invalid_type,expected:O.symbol,received:r.parsedType}),se}return Be(n.data)}}on.create=t=>new on({typeName:ie.ZodSymbol,...ue(t)});class $t extends me{_parse(n){if(this._getType(n)!==O.undefined){const r=this._getOrReturnCtx(n);return I(r,{code:N.invalid_type,expected:O.undefined,received:r.parsedType}),se}return Be(n.data)}}$t.create=t=>new $t({typeName:ie.ZodUndefined,...ue(t)});class Nt extends me{_parse(n){if(this._getType(n)!==O.null){const r=this._getOrReturnCtx(n);return I(r,{code:N.invalid_type,expected:O.null,received:r.parsedType}),se}return Be(n.data)}}Nt.create=t=>new Nt({typeName:ie.ZodNull,...ue(t)});class gt extends me{constructor(){super(...arguments),this._any=!0}_parse(n){return Be(n.data)}}gt.create=t=>new gt({typeName:ie.ZodAny,...ue(t)});class ct extends me{constructor(){super(...arguments),this._unknown=!0}_parse(n){return Be(n.data)}}ct.create=t=>new ct({typeName:ie.ZodUnknown,...ue(t)});class Ke extends me{_parse(n){const o=this._getOrReturnCtx(n);return I(o,{code:N.invalid_type,expected:O.never,received:o.parsedType}),se}}Ke.create=t=>new Ke({typeName:ie.ZodNever,...ue(t)});class rn extends me{_parse(n){if(this._getType(n)!==O.undefined){const r=this._getOrReturnCtx(n);return I(r,{code:N.invalid_type,expected:O.void,received:r.parsedType}),se}return Be(n.data)}}rn.create=t=>new rn({typeName:ie.ZodVoid,...ue(t)});class xe extends me{_parse(n){const{ctx:o,status:r}=this._processInputParams(n),i=this._def;if(o.parsedType!==O.array)return I(o,{code:N.invalid_type,expected:O.array,received:o.parsedType}),se;if(i.exactLength!==null){const a=o.data.length>i.exactLength.value,l=o.data.length<i.exactLength.value;(a||l)&&(I(o,{code:a?N.too_big:N.too_small,minimum:l?i.exactLength.value:void 0,maximum:a?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),r.dirty())}if(i.minLength!==null&&o.data.length<i.minLength.value&&(I(o,{code:N.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),r.dirty()),i.maxLength!==null&&o.data.length>i.maxLength.value&&(I(o,{code:N.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),o.common.async)return Promise.all([...o.data].map((a,l)=>i.type._parseAsync(new Ge(o,a,o.path,l)))).then(a=>Ae.mergeArray(r,a));const s=[...o.data].map((a,l)=>i.type._parseSync(new Ge(o,a,o.path,l)));return Ae.mergeArray(r,s)}get element(){return this._def.type}min(n,o){return new xe({...this._def,minLength:{value:n,message:K.toString(o)}})}max(n,o){return new xe({...this._def,maxLength:{value:n,message:K.toString(o)}})}length(n,o){return new xe({...this._def,exactLength:{value:n,message:K.toString(o)}})}nonempty(n){return this.min(1,n)}}xe.create=(t,n)=>new xe({type:t,minLength:null,maxLength:null,exactLength:null,typeName:ie.ZodArray,...ue(n)});function yt(t){if(t instanceof $e){const n={};for(const o in t.shape){const r=t.shape[o];n[o]=Ue.create(yt(r))}return new $e({...t._def,shape:()=>n})}else return t instanceof xe?new xe({...t._def,type:yt(t.element)}):t instanceof Ue?Ue.create(yt(t.unwrap())):t instanceof rt?rt.create(yt(t.unwrap())):t instanceof We?We.create(t.items.map(n=>yt(n))):t}class $e extends me{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const n=this._def.shape(),o=ke.objectKeys(n);return this._cached={shape:n,keys:o}}_parse(n){if(this._getType(n)!==O.object){const d=this._getOrReturnCtx(n);return I(d,{code:N.invalid_type,expected:O.object,received:d.parsedType}),se}const{status:r,ctx:i}=this._processInputParams(n),{shape:s,keys:a}=this._getCached(),l=[];if(!(this._def.catchall instanceof Ke&&this._def.unknownKeys==="strip"))for(const d in i.data)a.includes(d)||l.push(d);const u=[];for(const d of a){const p=s[d],g=i.data[d];u.push({key:{status:"valid",value:d},value:p._parse(new Ge(i,g,i.path,d)),alwaysSet:d in i.data})}if(this._def.catchall instanceof Ke){const d=this._def.unknownKeys;if(d==="passthrough")for(const p of l)u.push({key:{status:"valid",value:p},value:{status:"valid",value:i.data[p]}});else if(d==="strict")l.length>0&&(I(i,{code:N.unrecognized_keys,keys:l}),r.dirty());else if(d!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const d=this._def.catchall;for(const p of l){const g=i.data[p];u.push({key:{status:"valid",value:p},value:d._parse(new Ge(i,g,i.path,p)),alwaysSet:p in i.data})}}return i.common.async?Promise.resolve().then(async()=>{const d=[];for(const p of u){const g=await p.key,C=await p.value;d.push({key:g,value:C,alwaysSet:p.alwaysSet})}return d}).then(d=>Ae.mergeObjectSync(r,d)):Ae.mergeObjectSync(r,u)}get shape(){return this._def.shape()}strict(n){return K.errToObj,new $e({...this._def,unknownKeys:"strict",...n!==void 0?{errorMap:(o,r)=>{var i,s,a,l;const u=(a=(s=(i=this._def).errorMap)===null||s===void 0?void 0:s.call(i,o,r).message)!==null&&a!==void 0?a:r.defaultError;return o.code==="unrecognized_keys"?{message:(l=K.errToObj(n).message)!==null&&l!==void 0?l:u}:{message:u}}}:{}})}strip(){return new $e({...this._def,unknownKeys:"strip"})}passthrough(){return new $e({...this._def,unknownKeys:"passthrough"})}extend(n){return new $e({...this._def,shape:()=>({...this._def.shape(),...n})})}merge(n){return new $e({unknownKeys:n._def.unknownKeys,catchall:n._def.catchall,shape:()=>({...this._def.shape(),...n._def.shape()}),typeName:ie.ZodObject})}setKey(n,o){return this.augment({[n]:o})}catchall(n){return new $e({...this._def,catchall:n})}pick(n){const o={};return ke.objectKeys(n).forEach(r=>{n[r]&&this.shape[r]&&(o[r]=this.shape[r])}),new $e({...this._def,shape:()=>o})}omit(n){const o={};return ke.objectKeys(this.shape).forEach(r=>{n[r]||(o[r]=this.shape[r])}),new $e({...this._def,shape:()=>o})}deepPartial(){return yt(this)}partial(n){const o={};return ke.objectKeys(this.shape).forEach(r=>{const i=this.shape[r];n&&!n[r]?o[r]=i:o[r]=i.optional()}),new $e({...this._def,shape:()=>o})}required(n){const o={};return ke.objectKeys(this.shape).forEach(r=>{if(n&&!n[r])o[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof Ue;)s=s._def.innerType;o[r]=s}}),new $e({...this._def,shape:()=>o})}keyof(){return jn(ke.objectKeys(this.shape))}}$e.create=(t,n)=>new $e({shape:()=>t,unknownKeys:"strip",catchall:Ke.create(),typeName:ie.ZodObject,...ue(n)}),$e.strictCreate=(t,n)=>new $e({shape:()=>t,unknownKeys:"strict",catchall:Ke.create(),typeName:ie.ZodObject,...ue(n)}),$e.lazycreate=(t,n)=>new $e({shape:t,unknownKeys:"strip",catchall:Ke.create(),typeName:ie.ZodObject,...ue(n)});class Vt extends me{_parse(n){const{ctx:o}=this._processInputParams(n),r=this._def.options;function i(s){for(const l of s)if(l.result.status==="valid")return l.result;for(const l of s)if(l.result.status==="dirty")return o.common.issues.push(...l.ctx.common.issues),l.result;const a=s.map(l=>new Re(l.ctx.common.issues));return I(o,{code:N.invalid_union,unionErrors:a}),se}if(o.common.async)return Promise.all(r.map(async s=>{const a={...o,common:{...o.common,issues:[]},parent:null};return{result:await s._parseAsync({data:o.data,path:o.path,parent:a}),ctx:a}})).then(i);{let s;const a=[];for(const u of r){const d={...o,common:{...o.common,issues:[]},parent:null},p=u._parseSync({data:o.data,path:o.path,parent:d});if(p.status==="valid")return p;p.status==="dirty"&&!s&&(s={result:p,ctx:d}),d.common.issues.length&&a.push(d.common.issues)}if(s)return o.common.issues.push(...s.ctx.common.issues),s.result;const l=a.map(u=>new Re(u));return I(o,{code:N.invalid_union,unionErrors:l}),se}}get options(){return this._def.options}}Vt.create=(t,n)=>new Vt({options:t,typeName:ie.ZodUnion,...ue(n)});const Qe=t=>t instanceof Lt?Qe(t.schema):t instanceof Pe?Qe(t.innerType()):t instanceof Bt?[t.value]:t instanceof ot?t.options:t instanceof Ft?ke.objectValues(t.enum):t instanceof Ht?Qe(t._def.innerType):t instanceof $t?[void 0]:t instanceof Nt?[null]:t instanceof Ue?[void 0,...Qe(t.unwrap())]:t instanceof rt?[null,...Qe(t.unwrap())]:t instanceof Cn||t instanceof Yt?Qe(t.unwrap()):t instanceof It?Qe(t._def.innerType):[];class sn extends me{_parse(n){const{ctx:o}=this._processInputParams(n);if(o.parsedType!==O.object)return I(o,{code:N.invalid_type,expected:O.object,received:o.parsedType}),se;const r=this.discriminator,i=o.data[r],s=this.optionsMap.get(i);return s?o.common.async?s._parseAsync({data:o.data,path:o.path,parent:o}):s._parseSync({data:o.data,path:o.path,parent:o}):(I(o,{code:N.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),se)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(n,o,r){const i=new Map;for(const s of o){const a=Qe(s.shape[n]);if(!a.length)throw new Error(`A discriminator value for key \`${n}\` could not be extracted from all schema options`);for(const l of a){if(i.has(l))throw new Error(`Discriminator property ${String(n)} has duplicate value ${String(l)}`);i.set(l,s)}}return new sn({typeName:ie.ZodDiscriminatedUnion,discriminator:n,options:o,optionsMap:i,...ue(r)})}}function wn(t,n){const o=Je(t),r=Je(n);if(t===n)return{valid:!0,data:t};if(o===O.object&&r===O.object){const i=ke.objectKeys(n),s=ke.objectKeys(t).filter(l=>i.indexOf(l)!==-1),a={...t,...n};for(const l of s){const u=wn(t[l],n[l]);if(!u.valid)return{valid:!1};a[l]=u.data}return{valid:!0,data:a}}else if(o===O.array&&r===O.array){if(t.length!==n.length)return{valid:!1};const i=[];for(let s=0;s<t.length;s++){const a=t[s],l=n[s],u=wn(a,l);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return o===O.date&&r===O.date&&+t==+n?{valid:!0,data:t}:{valid:!1}}class _t extends me{_parse(n){const{status:o,ctx:r}=this._processInputParams(n),i=(s,a)=>{if(yn(s)||yn(a))return se;const l=wn(s.value,a.value);return l.valid?((kn(s)||kn(a))&&o.dirty(),{status:o.value,value:l.data}):(I(r,{code:N.invalid_intersection_types}),se)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,a])=>i(s,a)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}}_t.create=(t,n,o)=>new _t({left:t,right:n,typeName:ie.ZodIntersection,...ue(o)});class We extends me{_parse(n){const{status:o,ctx:r}=this._processInputParams(n);if(r.parsedType!==O.array)return I(r,{code:N.invalid_type,expected:O.array,received:r.parsedType}),se;if(r.data.length<this._def.items.length)return I(r,{code:N.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),se;!this._def.rest&&r.data.length>this._def.items.length&&(I(r,{code:N.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),o.dirty());const s=[...r.data].map((a,l)=>{const u=this._def.items[l]||this._def.rest;return u?u._parse(new Ge(r,a,r.path,l)):null}).filter(a=>!!a);return r.common.async?Promise.all(s).then(a=>Ae.mergeArray(o,a)):Ae.mergeArray(o,s)}get items(){return this._def.items}rest(n){return new We({...this._def,rest:n})}}We.create=(t,n)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new We({items:t,typeName:ie.ZodTuple,rest:null,...ue(n)})};class At extends me{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(n){const{status:o,ctx:r}=this._processInputParams(n);if(r.parsedType!==O.object)return I(r,{code:N.invalid_type,expected:O.object,received:r.parsedType}),se;const i=[],s=this._def.keyType,a=this._def.valueType;for(const l in r.data)i.push({key:s._parse(new Ge(r,l,r.path,l)),value:a._parse(new Ge(r,r.data[l],r.path,l)),alwaysSet:l in r.data});return r.common.async?Ae.mergeObjectAsync(o,i):Ae.mergeObjectSync(o,i)}get element(){return this._def.valueType}static create(n,o,r){return o instanceof me?new At({keyType:n,valueType:o,typeName:ie.ZodRecord,...ue(r)}):new At({keyType:Oe.create(),valueType:n,typeName:ie.ZodRecord,...ue(o)})}}class ln extends me{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(n){const{status:o,ctx:r}=this._processInputParams(n);if(r.parsedType!==O.map)return I(r,{code:N.invalid_type,expected:O.map,received:r.parsedType}),se;const i=this._def.keyType,s=this._def.valueType,a=[...r.data.entries()].map(([l,u],d)=>({key:i._parse(new Ge(r,l,r.path,[d,"key"])),value:s._parse(new Ge(r,u,r.path,[d,"value"]))}));if(r.common.async){const l=new Map;return Promise.resolve().then(async()=>{for(const u of a){const d=await u.key,p=await u.value;if(d.status==="aborted"||p.status==="aborted")return se;(d.status==="dirty"||p.status==="dirty")&&o.dirty(),l.set(d.value,p.value)}return{status:o.value,value:l}})}else{const l=new Map;for(const u of a){const d=u.key,p=u.value;if(d.status==="aborted"||p.status==="aborted")return se;(d.status==="dirty"||p.status==="dirty")&&o.dirty(),l.set(d.value,p.value)}return{status:o.value,value:l}}}}ln.create=(t,n,o)=>new ln({valueType:n,keyType:t,typeName:ie.ZodMap,...ue(o)});class ut extends me{_parse(n){const{status:o,ctx:r}=this._processInputParams(n);if(r.parsedType!==O.set)return I(r,{code:N.invalid_type,expected:O.set,received:r.parsedType}),se;const i=this._def;i.minSize!==null&&r.data.size<i.minSize.value&&(I(r,{code:N.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),o.dirty()),i.maxSize!==null&&r.data.size>i.maxSize.value&&(I(r,{code:N.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),o.dirty());const s=this._def.valueType;function a(u){const d=new Set;for(const p of u){if(p.status==="aborted")return se;p.status==="dirty"&&o.dirty(),d.add(p.value)}return{status:o.value,value:d}}const l=[...r.data.values()].map((u,d)=>s._parse(new Ge(r,u,r.path,d)));return r.common.async?Promise.all(l).then(u=>a(u)):a(l)}min(n,o){return new ut({...this._def,minSize:{value:n,message:K.toString(o)}})}max(n,o){return new ut({...this._def,maxSize:{value:n,message:K.toString(o)}})}size(n,o){return this.min(n,o).max(n,o)}nonempty(n){return this.min(1,n)}}ut.create=(t,n)=>new ut({valueType:t,minSize:null,maxSize:null,typeName:ie.ZodSet,...ue(n)});class kt extends me{constructor(){super(...arguments),this.validate=this.implement}_parse(n){const{ctx:o}=this._processInputParams(n);if(o.parsedType!==O.function)return I(o,{code:N.invalid_type,expected:O.function,received:o.parsedType}),se;function r(l,u){return nn({data:l,path:o.path,errorMaps:[o.common.contextualErrorMap,o.schemaErrorMap,tn(),ht].filter(d=>!!d),issueData:{code:N.invalid_arguments,argumentsError:u}})}function i(l,u){return nn({data:l,path:o.path,errorMaps:[o.common.contextualErrorMap,o.schemaErrorMap,tn(),ht].filter(d=>!!d),issueData:{code:N.invalid_return_type,returnTypeError:u}})}const s={errorMap:o.common.contextualErrorMap},a=o.data;if(this._def.returns instanceof bt){const l=this;return Be(async function(...u){const d=new Re([]),p=await l._def.args.parseAsync(u,s).catch(G=>{throw d.addIssue(r(u,G)),d}),g=await Reflect.apply(a,this,p);return await l._def.returns._def.type.parseAsync(g,s).catch(G=>{throw d.addIssue(i(g,G)),d})})}else{const l=this;return Be(function(...u){const d=l._def.args.safeParse(u,s);if(!d.success)throw new Re([r(u,d.error)]);const p=Reflect.apply(a,this,d.data),g=l._def.returns.safeParse(p,s);if(!g.success)throw new Re([i(p,g.error)]);return g.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...n){return new kt({...this._def,args:We.create(n).rest(ct.create())})}returns(n){return new kt({...this._def,returns:n})}implement(n){return this.parse(n)}strictImplement(n){return this.parse(n)}static create(n,o,r){return new kt({args:n||We.create([]).rest(ct.create()),returns:o||ct.create(),typeName:ie.ZodFunction,...ue(r)})}}class Lt extends me{get schema(){return this._def.getter()}_parse(n){const{ctx:o}=this._processInputParams(n);return this._def.getter()._parse({data:o.data,path:o.path,parent:o})}}Lt.create=(t,n)=>new Lt({getter:t,typeName:ie.ZodLazy,...ue(n)});class Bt extends me{_parse(n){if(n.data!==this._def.value){const o=this._getOrReturnCtx(n);return I(o,{received:o.data,code:N.invalid_literal,expected:this._def.value}),se}return{status:"valid",value:n.data}}get value(){return this._def.value}}Bt.create=(t,n)=>new Bt({value:t,typeName:ie.ZodLiteral,...ue(n)});function jn(t,n){return new ot({values:t,typeName:ie.ZodEnum,...ue(n)})}class ot extends me{constructor(){super(...arguments),Dt.set(this,void 0)}_parse(n){if(typeof n.data!="string"){const o=this._getOrReturnCtx(n),r=this._def.values;return I(o,{expected:ke.joinValues(r),received:o.parsedType,code:N.invalid_type}),se}if(an(this,Dt)||Pn(this,Dt,new Set(this._def.values)),!an(this,Dt).has(n.data)){const o=this._getOrReturnCtx(n),r=this._def.values;return I(o,{received:o.data,code:N.invalid_enum_value,options:r}),se}return Be(n.data)}get options(){return this._def.values}get enum(){const n={};for(const o of this._def.values)n[o]=o;return n}get Values(){const n={};for(const o of this._def.values)n[o]=o;return n}get Enum(){const n={};for(const o of this._def.values)n[o]=o;return n}extract(n,o=this._def){return ot.create(n,{...this._def,...o})}exclude(n,o=this._def){return ot.create(this.options.filter(r=>!n.includes(r)),{...this._def,...o})}}Dt=new WeakMap,ot.create=jn;class Ft extends me{constructor(){super(...arguments),Et.set(this,void 0)}_parse(n){const o=ke.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(n);if(r.parsedType!==O.string&&r.parsedType!==O.number){const i=ke.objectValues(o);return I(r,{expected:ke.joinValues(i),received:r.parsedType,code:N.invalid_type}),se}if(an(this,Et)||Pn(this,Et,new Set(ke.getValidEnumValues(this._def.values))),!an(this,Et).has(n.data)){const i=ke.objectValues(o);return I(r,{received:r.data,code:N.invalid_enum_value,options:i}),se}return Be(n.data)}get enum(){return this._def.values}}Et=new WeakMap,Ft.create=(t,n)=>new Ft({values:t,typeName:ie.ZodNativeEnum,...ue(n)});class bt extends me{unwrap(){return this._def.type}_parse(n){const{ctx:o}=this._processInputParams(n);if(o.parsedType!==O.promise&&o.common.async===!1)return I(o,{code:N.invalid_type,expected:O.promise,received:o.parsedType}),se;const r=o.parsedType===O.promise?o.data:Promise.resolve(o.data);return Be(r.then(i=>this._def.type.parseAsync(i,{path:o.path,errorMap:o.common.contextualErrorMap})))}}bt.create=(t,n)=>new bt({type:t,typeName:ie.ZodPromise,...ue(n)});class Pe extends me{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===ie.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(n){const{status:o,ctx:r}=this._processInputParams(n),i=this._def.effect||null,s={addIssue:a=>{I(r,a),a.fatal?o.abort():o.dirty()},get path(){return r.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){const a=i.transform(r.data,s);if(r.common.async)return Promise.resolve(a).then(async l=>{if(o.value==="aborted")return se;const u=await this._def.schema._parseAsync({data:l,path:r.path,parent:r});return u.status==="aborted"?se:u.status==="dirty"||o.value==="dirty"?pt(u.value):u});{if(o.value==="aborted")return se;const l=this._def.schema._parseSync({data:a,path:r.path,parent:r});return l.status==="aborted"?se:l.status==="dirty"||o.value==="dirty"?pt(l.value):l}}if(i.type==="refinement"){const a=l=>{const u=i.refinement(l,s);if(r.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return l};if(r.common.async===!1){const l=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return l.status==="aborted"?se:(l.status==="dirty"&&o.dirty(),a(l.value),{status:o.value,value:l.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(l=>l.status==="aborted"?se:(l.status==="dirty"&&o.dirty(),a(l.value).then(()=>({status:o.value,value:l.value}))))}if(i.type==="transform")if(r.common.async===!1){const a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!lt(a))return a;const l=i.transform(a.value,s);if(l instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:o.value,value:l}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>lt(a)?Promise.resolve(i.transform(a.value,s)).then(l=>({status:o.value,value:l})):a);ke.assertNever(i)}}Pe.create=(t,n,o)=>new Pe({schema:t,typeName:ie.ZodEffects,effect:n,...ue(o)}),Pe.createWithPreprocess=(t,n,o)=>new Pe({schema:n,effect:{type:"preprocess",transform:t},typeName:ie.ZodEffects,...ue(o)});class Ue extends me{_parse(n){return this._getType(n)===O.undefined?Be(void 0):this._def.innerType._parse(n)}unwrap(){return this._def.innerType}}Ue.create=(t,n)=>new Ue({innerType:t,typeName:ie.ZodOptional,...ue(n)});class rt extends me{_parse(n){return this._getType(n)===O.null?Be(null):this._def.innerType._parse(n)}unwrap(){return this._def.innerType}}rt.create=(t,n)=>new rt({innerType:t,typeName:ie.ZodNullable,...ue(n)});class Ht extends me{_parse(n){const{ctx:o}=this._processInputParams(n);let r=o.data;return o.parsedType===O.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:o.path,parent:o})}removeDefault(){return this._def.innerType}}Ht.create=(t,n)=>new Ht({innerType:t,typeName:ie.ZodDefault,defaultValue:typeof n.default=="function"?n.default:()=>n.default,...ue(n)});class It extends me{_parse(n){const{ctx:o}=this._processInputParams(n),r={...o,common:{...o.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return vt(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Re(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Re(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}}It.create=(t,n)=>new It({innerType:t,typeName:ie.ZodCatch,catchValue:typeof n.catch=="function"?n.catch:()=>n.catch,...ue(n)});class dn extends me{_parse(n){if(this._getType(n)!==O.nan){const r=this._getOrReturnCtx(n);return I(r,{code:N.invalid_type,expected:O.nan,received:r.parsedType}),se}return{status:"valid",value:n.data}}}dn.create=t=>new dn({typeName:ie.ZodNaN,...ue(t)});const dl=Symbol("zod_brand");class Cn extends me{_parse(n){const{ctx:o}=this._processInputParams(n),r=o.data;return this._def.type._parse({data:r,path:o.path,parent:o})}unwrap(){return this._def.type}}class Rt extends me{_parse(n){const{status:o,ctx:r}=this._processInputParams(n);if(r.common.async)return(async()=>{const s=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?se:s.status==="dirty"?(o.dirty(),pt(s.value)):this._def.out._parseAsync({data:s.value,path:r.path,parent:r})})();{const i=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?se:i.status==="dirty"?(o.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:r.path,parent:r})}}static create(n,o){return new Rt({in:n,out:o,typeName:ie.ZodPipeline})}}class Yt extends me{_parse(n){const o=this._def.innerType._parse(n),r=i=>(lt(i)&&(i.value=Object.freeze(i.value)),i);return vt(o)?o.then(i=>r(i)):r(o)}unwrap(){return this._def.innerType}}Yt.create=(t,n)=>new Yt({innerType:t,typeName:ie.ZodReadonly,...ue(n)});function qn(t,n){const o=typeof t=="function"?t(n):typeof t=="string"?{message:t}:t;return typeof o=="string"?{message:o}:o}function Jn(t,n={},o){return t?gt.create().superRefine((r,i)=>{var s,a;const l=t(r);if(l instanceof Promise)return l.then(u=>{var d,p;if(!u){const g=qn(n,r),C=(p=(d=g.fatal)!==null&&d!==void 0?d:o)!==null&&p!==void 0?p:!0;i.addIssue({code:"custom",...g,fatal:C})}});if(!l){const u=qn(n,r),d=(a=(s=u.fatal)!==null&&s!==void 0?s:o)!==null&&a!==void 0?a:!0;i.addIssue({code:"custom",...u,fatal:d})}}):gt.create()}const cl={object:$e.lazycreate};var ie;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(ie||(ie={}));const ul=(t,n={message:`Input not instance of ${t.name}`})=>Jn(o=>o instanceof t,n),Kn=Oe.create,Qn=nt.create,fl=dn.create,ml=at.create,Xn=Mt.create,hl=dt.create,pl=on.create,gl=$t.create,yl=Nt.create,kl=gt.create,bl=ct.create,wl=Ke.create,Cl=rn.create,Tl=xe.create,Sl=$e.create,vl=$e.strictCreate,Dl=Vt.create,El=sn.create,Ml=_t.create,$l=We.create,Nl=At.create,Vl=ln.create,_l=ut.create,Al=kt.create,Ll=Lt.create,Bl=Bt.create,Fl=ot.create,Hl=Ft.create,Il=bt.create,ea=Pe.create,Rl=Ue.create,Yl=rt.create,zl=Pe.createWithPreprocess,Ol=Rt.create;var it=Object.freeze({__proto__:null,defaultErrorMap:ht,setErrorMap:zs,getErrorMap:tn,makeIssue:nn,EMPTY_PATH:Os,addIssueToContext:I,ParseStatus:Ae,INVALID:se,DIRTY:pt,OK:Be,isAborted:yn,isDirty:kn,isValid:lt,isAsync:vt,get util(){return ke},get objectUtil(){return gn},ZodParsedType:O,getParsedType:Je,ZodType:me,datetimeRegex:Un,ZodString:Oe,ZodNumber:nt,ZodBigInt:at,ZodBoolean:Mt,ZodDate:dt,ZodSymbol:on,ZodUndefined:$t,ZodNull:Nt,ZodAny:gt,ZodUnknown:ct,ZodNever:Ke,ZodVoid:rn,ZodArray:xe,ZodObject:$e,ZodUnion:Vt,ZodDiscriminatedUnion:sn,ZodIntersection:_t,ZodTuple:We,ZodRecord:At,ZodMap:ln,ZodSet:ut,ZodFunction:kt,ZodLazy:Lt,ZodLiteral:Bt,ZodEnum:ot,ZodNativeEnum:Ft,ZodPromise:bt,ZodEffects:Pe,ZodTransformer:Pe,ZodOptional:Ue,ZodNullable:rt,ZodDefault:Ht,ZodCatch:It,ZodNaN:dn,BRAND:dl,ZodBranded:Cn,ZodPipeline:Rt,ZodReadonly:Yt,custom:Jn,Schema:me,ZodSchema:me,late:cl,get ZodFirstPartyTypeKind(){return ie},coerce:{string:t=>Oe.create({...t,coerce:!0}),number:t=>nt.create({...t,coerce:!0}),boolean:t=>Mt.create({...t,coerce:!0}),bigint:t=>at.create({...t,coerce:!0}),date:t=>dt.create({...t,coerce:!0})},any:kl,array:Tl,bigint:ml,boolean:Xn,date:hl,discriminatedUnion:El,effect:ea,enum:Fl,function:Al,instanceof:ul,intersection:Ml,lazy:Ll,literal:Bl,map:Vl,nan:fl,nativeEnum:Hl,never:wl,null:yl,nullable:Yl,number:Qn,object:Sl,oboolean:()=>Xn().optional(),onumber:()=>Qn().optional(),optional:Rl,ostring:()=>Kn().optional(),pipeline:Ol,preprocess:zl,promise:Il,record:Nl,set:_l,strictObject:vl,string:Kn,symbol:pl,transformer:ea,tuple:$l,undefined:gl,union:Dl,unknown:bl,void:Cl,NEVER:se,ZodIssueCode:N,quotelessJson:Ys,ZodError:Re});it.object({date:it.string().regex(/^\d{4}-\d{2}-\d{2}$/),year:it.number().int(),month:it.number().int().min(1).max(12),week:it.number().int().min(1).max(7),monthStr:it.string(),weekStr:it.string(),day:it.number().int().min(1).max(31)}),w.extend(ra);const xl=e.defineComponent({name:"Gantt",props:{styleConfig:{type:Object,required:!0,default:()=>({headersHeight:100,rowHeight:60}),validator:t=>t.headersHeight>0&&t.rowHeight>0},dataConfig:{type:Object,required:!0,default:()=>({dataSource:[],taskHeaders:[],mapFields:{}}),validator:t=>Array.isArray(t.dataSource)&&Array.isArray(t.taskHeaders)&&typeof t.mapFields=="object"&&t.mapFields!==null},eventConfig:{type:Object,required:!0}},components:{DatePicker:Bn,SplitPane:Xa,TaskTable:Bo,RightTable:br,GanttConfigPanel:On},setup(t){var q,ne,ge,Me,Se;const{t:n,locale:o}=tt(),r=()=>({"zh-CN":"zh-cn","en-US":"en","ja-JP":"ja","ko-KR":"ko","fr-FR":"fr","de-DE":"de","es-ES":"es","ru-RU":"ru"})[o.value]||"en",i=e.computed(()=>t.dataConfig.mapFields),s=e.computed(()=>t.dataConfig.dataSource),{config:a,updateConfig:l}=Tt(),u=e.ref({finishToStart:((q=a.linkTypeVisibility)==null?void 0:q.finishToStart)??!0,startToStart:((ne=a.linkTypeVisibility)==null?void 0:ne.startToStart)??!0,finishToFinish:((ge=a.linkTypeVisibility)==null?void 0:ge.finishToFinish)??!0,startToFinish:((Me=a.linkTypeVisibility)==null?void 0:Me.startToFinish)??!0,parentChild:((Se=a.linkTypeVisibility)==null?void 0:Se.parentChild)??!0}),d=()=>{l({linkTypeVisibility:{...u.value}})},p=e.ref([]),g=e.ref(35),C=e.ref(["button is-active","button","button","button"]),G=e.ref("月"),E=e.ref(t.dataConfig.queryStartDate||w().locale(r()).startOf("month").format("YYYY-MM-DD")),F=e.ref(w().locale(r()).add(-5,"y").format("YYYY-MM-DD")),m=e.ref(w().locale(r()).add(5,"y").format("YYYY-MM-DD")),R=e.ref(!1),b=e.ref(E.value),v=e.ref(t.dataConfig.queryEndDate||w().locale(r()).endOf("month").format("YYYY-MM-DD")),V=e.ref(w().locale(r()).add(-5,"y").format("YYYY-MM-DD")),k=e.ref(w(E.value).locale(r()).add(5,"y").format("YYYY-MM-DD")),J=e.ref(!1),j=e.ref(v.value),U=e.ref([]),Q=e.ref([]),A=e.ref([]),Y=e.ref([]),H=e.ref(0),X=e.ref(0),Te=e.ref(E.value+" 00:00:00"),h=e.ref(v.value+" 23:59:59"),c=e.ref(""),y=e.ref(),f=e.computed(()=>T.subTask),D=e.computed(()=>T.editTask),L=e.computed(()=>T.removeTask),M=e.computed(()=>T.rootTask),B=e.computed(()=>T.allowChangeTaskDate),x=S=>{const ee=w(b.value),fe=w(j.value);if(!(!ee.isValid()||!fe.isValid()||fe.diff(ee,"day")<0)){switch(Te.value=b.value+" 00:00:00",h.value=j.value+" 23:59:59",A.value=[],Q.value=[],U.value=[],Y.value=[],S){case"月":{H.value=80;const Z=[];let we=ee.startOf("month");for(;we.isBefore(fe)||we.isSame(fe,"month");)Z.push(we.format("YYYY-MM-DD")),we=we.add(1,"month");if(Z.some(ae=>w(ae).format("YYYY-MM")===fe.format("YYYY-MM"))||Z.push(fe.format("YYYY-MM-DD")),Z.length===1){const ae=fe.diff(ee,"day")+1;U.value.push({title:ee.locale(r()).format("MMMM"),width:ae*H.value})}else Z.forEach((ae,be)=>{if(be===0){const he=ee.endOf("month").format("YYYY-MM-DD"),Ce=w(he).diff(ee,"day")+1;U.value.push({title:w(ae).locale(r()).format("MMMM"),width:Ce*H.value})}else if(be===Z.length-1){const he=fe.startOf("month").format("YYYY-MM-DD"),Ce=fe.diff(w(he),"day")+1;U.value.push({title:w(ae).locale(r()).format("MMMM"),width:Ce*H.value})}else{const he=w(ae,"YYYY-MM").daysInMonth();U.value.push({title:w(ae).locale(r()).format("MMMM"),width:he*H.value})}});let Ee=ee;for(;Ee.isBefore(fe)||Ee.isSame(fe,"day");){const be=["zh-CN","ja-JP","ko-KR"].includes(o.value)?Ee.format("DD")+"日":Ee.format("DD"),he=Ee.format("YYYY-MM-DD"),Ce=Ee.locale(r()).format("dddd");A.value.push({title:Ce,width:H.value,fulldate:he}),Q.value.push({title:be,width:H.value,fulldate:he}),Ee=Ee.add(1,"day")}X.value=Q.value.length;break}case"周":{H.value=120;let Z=ee.startOf("isoWeek");const we=fe.endOf("isoWeek"),Ee=[];let ae=Z.startOf("month");for(;ae.isBefore(we)||ae.isSame(we,"month");)Ee.push(ae.format("YYYY-MM-DD")),ae=ae.add(1,"month");for(Ee.forEach((be,he)=>{const Ce=w(be),Ze=Ce.endOf("month");let Xe=0,st=Z.clone();for(;st.isBefore(we)||st.isSame(we,"week");){const zt=st.startOf("isoWeek"),z=st.endOf("isoWeek");(zt.isSame(Ce,"month")||z.isSame(Ce,"month")||zt.isBefore(Ze)&&z.isAfter(Ce))&&Xe++,st=st.add(1,"week")}if(Xe>0){const z=["zh-CN","ja-JP","ko-KR"].includes(o.value)?Ce.format("YYYY年MM月"):Ce.locale(r()).format("MMMM YYYY");U.value.push({title:z,width:Xe*H.value})}});Z.isBefore(we)||Z.isSame(we,"week");){const be=Z.startOf("isoWeek"),he=Z.endOf("isoWeek"),Ze=["zh-CN","ja-JP","ko-KR"].includes(o.value)?`第${Z.isoWeek()}周 (${be.format("MM/DD")}-${he.format("MM/DD")})`:`Week ${Z.isoWeek()} (${be.format("MM/DD")}-${he.format("MM/DD")})`;A.value.push({title:Ze,width:H.value,fulldate:be.format("YYYY-MM-DD")}),Z=Z.add(1,"week")}X.value=A.value.length;break}case"日":{H.value=80;let Z=ee;for(;Z.isBefore(fe)||Z.isSame(fe,"day");){const Ee=["zh-CN","ja-JP","ko-KR"].includes(o.value)?Z.locale(r()).format("MMMM DD")+"日":Z.locale(r()).format("MMMM DD"),ae=Z.format("YYYY-MM-DD"),be=Z.locale(r()).format("dddd");A.value.push({title:be,width:H.value,fulldate:ae}),Q.value.push({title:Ee,width:H.value,fulldate:ae}),Z=Z.add(1,"day")}X.value=Q.value.length;break}case"时":{H.value=30;let Z=ee;const we=fe.endOf("day");for(;Z.isBefore(we);){const ae=["zh-CN","ja-JP","ko-KR"].includes(o.value)?Z.locale(r()).format("MMMM DD")+"日":Z.locale(r()).format("MMMM DD"),be=Z.format("YYYY-MM-DD"),he=Z.locale(r()).format("dddd");A.value.push({title:he,width:24*H.value,fulldate:be}),Q.value.push({title:ae,width:24*H.value,fulldate:be});for(let Ce=0;Ce<=23;Ce++){const Ze=["zh-CN","ja-JP","ko-KR"].includes(o.value);Y.value.push({title:Ze?Ce+"点":`${Ce}:00`,width:H.value})}Z=Z.add(1,"day")}X.value=Y.value.length;break}}t.eventConfig.queryTask(b.value,j.value,G.value)}},P=(S,ee)=>{let fe=S.filter(ve=>ve[i.value.id]===ee);fe&&fe.length>0&&(c.value=fe[0].index+"."+c.value,P(S,fe[0][i.value.parentId]))},W=(S,ee,fe)=>{let ve=ee.filter(Z=>Z[i.value.parentId]===S);if(ve&&ve.length>0){fe++;for(let Z=0;Z<ve.length;Z++){ve[Z].treeLevel=fe,ve[Z].index=Z+1;let we=p.value.filter(Ee=>Ee[i.value.id]===ve[Z][i.value.parentId]);c.value="",we&&we.length>0?(c.value=we[0].index+"."+ve[Z].index,P(p.value,we[0][i.value.parentId]),ve[Z].no=c.value):ve[Z].no=Z+1+"",p.value.push(ve[Z]),W(ve[Z][i.value.id],ee,fe)}}},te=S=>{for(let ee=0;ee<C.value.length;ee++)C.value[ee]="button";switch(S){case"月":{C.value[0]="button is-active";break}case"周":{C.value[1]="button is-active";break}case"日":{C.value[2]="button is-active";break}case"时":{C.value[3]="button is-active";break}}G.value=S,e.nextTick(()=>{const ee=document.querySelector(".table .content");ee&&(ee.scrollLeft=0)})},le=S=>{w(v.value).diff(w(S.date),"days")<0&&(j.value=S.date,v.value=S.date,ce.setEndGanttDate(w(S.date).toDate())),R.value=!1,b.value=S.date,E.value=S.date,ce.setStartGanttDate(w(S.date).toDate()),V.value=S.date},re=S=>{w(S.date).diff(w(E.value),"days")<0&&(b.value=w(S.date).format("YYYY-MM-DD"),E.value=w(S.date).format("YYYY-MM-DD"),ce.setStartGanttDate(w(S.date).toDate())),J.value=!1,j.value=S.date,v.value=S.date,ce.setEndGanttDate(w(S.date).toDate())};e.watch([G,b,j],([S,ee,fe],[ve,Z,we])=>{(S!==ve||ee!==Z||fe!==we)&&x(S)}),e.watch(o,()=>{x(G.value)}),e.watch(M,S=>{t.eventConfig.addRootTask(S)}),e.watch(f,S=>{t.eventConfig.addSubTask(S)}),e.watch(L,S=>{t.eventConfig.removeTask(S)}),e.watch(D,S=>{t.eventConfig.editTask(S)}),e.watch(B,S=>{t.eventConfig.allowChangeTaskDate(S)}),e.watch(()=>T.barDate,S=>{if(S){const{id:ee,startDate:fe,endDate:ve}=S;ee&&fe&&ve&&t.eventConfig.barDate(ee,fe,ve)}}),e.watch(H,S=>{ce.setScale(S)}),e.watch(()=>t.dataConfig.taskHeaders,S=>{ce.setTaskHeaders(S)}),e.watch([U,Q,A,Y],([S,ee,fe,ve])=>{ce.setMonthHeaders(S),ce.setDayHeaders(ee),ce.setWeekHeaders(fe),ce.setHourHeaders(ve)}),e.watch(G,S=>{ce.setMode(S)}),e.watch(i,S=>{S&&ce.setMapFields(S)}),e.watch(()=>t.dataConfig.queryStartDate,S=>{S&&(ce.setStartGanttDate(w(S).toDate()),Te.value=S,b.value=S,E.value=S)}),e.watch(()=>t.dataConfig.queryEndDate,S=>{S&&(ce.setEndGanttDate(w(S).toDate()),h.value=S,j.value=S,v.value=S)}),e.watch(X,S=>{S&&ce.setTimelineCellCount(S)}),e.onBeforeMount(()=>{ce.setStartGanttDate(w(E.value).toDate()),ce.setEndGanttDate(w(v.value).toDate()),ce.setMonthHeaders(U.value),ce.setWeekHeaders(A.value),ce.setDayHeaders(Q.value),ce.setHourHeaders(Y.value),ce.setTaskHeaders(t.dataConfig.taskHeaders),ce.setMapFields(i.value),ce.setTimelineCellCount(X.value),s.value&&s.value.length>0&&ce.setTasks(s.value)});const De=S=>{const ee=S;t.eventConfig.updateProgress&&t.eventConfig.updateProgress(ee.detail)};e.onMounted(()=>{U.value=[],A.value=[],Q.value=[],Y.value=[],W("0",s.value,0),ce.setTasks(p.value),e.nextTick(()=>{G.value="月",ce.setMode(G.value),x(G.value)}),window.addEventListener("taskProgressUpdate",De)});let $=null;e.watch(s,S=>{S&&S.length>0?($&&clearTimeout($),$=setTimeout(()=>{p.value=[],W("0",S,0),ce.setTasks(p.value),$=null},100)):S&&S.length===0&&ce.setTasks([])},{immediate:!1}),e.onBeforeUnmount(()=>{window.removeEventListener("taskProgressUpdate",De)}),e.provide(mt.AddRootTaskSymbol,S=>t.eventConfig.addRootTask(S)),e.provide(mt.SetBarColorSymbol,S=>t.styleConfig.setBarColor(S)),t.styleConfig.setTaskType&&e.provide(mt.SetTaskTypeSymbol,t.styleConfig.setTaskType),e.provide("ganttContainer",y),e.watch(()=>t.dataConfig.dependencies,S=>{S&&S.length>0&&(Qt.clear(),S.forEach(ee=>{Qt.addDependency(ee)}))},{immediate:!0});const _=S=>{},oe=e.computed(()=>{var S,ee,fe,ve;return{finishToStart:((S=a.linkTypeColors)==null?void 0:S.finishToStart)||"#3498db",startToStart:((ee=a.linkTypeColors)==null?void 0:ee.startToStart)||"#2ecc71",finishToFinish:((fe=a.linkTypeColors)==null?void 0:fe.finishToFinish)||"#e74c3c",startToFinish:((ve=a.linkTypeColors)==null?void 0:ve.startToFinish)||"#f39c12"}});return{t:n,subTask:f,editTask:D,removeTask:L,rootTask:M,allowChangeTaskDate:B,paneLengthPercent:g,startDate:E,endDate:v,minStartDate:F,maxStartDate:m,confirmStart:le,minEndDate:V,maxEndDate:k,confirmEnd:re,buttonClass:C,timeMode:te,onLinkConfigChange:_,ganttContainer:y,linkTypeColors:oe,linkTypeVisibility:u,updateLinkVisibility:d}}}),Pl={class:"page gantt-container",ref:"ganttContainer"},Zl={class:"toolbar"},Gl={class:"dateInput"},Wl={style:{"margin-right":"20px","margin-left":"20px",color:"#606266"}},Ul={class:"buttonGroup"},jl={class:"metro-content"},ql={class:"metro-text"},Jl={class:"metro-content"},Kl={class:"metro-text"},Ql={class:"metro-content"},Xl={class:"metro-text"},ed={class:"metro-content"},td={class:"metro-text"},nd={class:"link-legend"},ad={class:"legend-title"},od={class:"legend-items"},rd={class:"legend-label"},id={class:"legend-desc"},sd={width:"24",height:"12",viewBox:"0 0 24 12"},ld=["stroke"],dd=["fill"],cd={class:"legend-label"},ud={class:"legend-desc"},fd={width:"24",height:"12",viewBox:"0 0 24 12"},md=["stroke"],hd=["fill"],pd={class:"legend-label"},gd={class:"legend-desc"},yd={width:"24",height:"12",viewBox:"0 0 24 12"},kd=["stroke"],bd=["fill"],wd={class:"legend-label"},Cd={class:"legend-desc"},Td={width:"24",height:"12",viewBox:"0 0 24 12"},Sd=["stroke"],vd=["fill"],Dd={class:"legend-label"},Ed={class:"legend-desc"},Md={class:"config-buttons"},$d={class:"gantt"};function Nd(t,n,o,r,i,s){const a=e.resolveComponent("DatePicker"),l=e.resolveComponent("GanttConfigPanel"),u=e.resolveComponent("TaskTable"),d=e.resolveComponent("RightTable"),p=e.resolveComponent("SplitPane");return e.openBlock(),e.createElementBlock("div",Pl,[e.createElementVNode("div",Zl,[e.createElementVNode("div",Gl,[e.createVNode(a,{date:t.startDate,"min-date":t.minStartDate,"max-date":t.maxStartDate,onConfirm:t.confirmStart},null,8,["date","min-date","max-date","onConfirm"]),e.createElementVNode("span",Wl,e.toDisplayString(t.t("common.to")),1),e.createVNode(a,{date:t.endDate,"min-date":t.minEndDate,"max-date":t.maxEndDate,onConfirm:t.confirmEnd},null,8,["date","min-date","max-date","onConfirm"])]),e.createElementVNode("div",Ul,[e.createElementVNode("div",{class:e.normalizeClass([t.buttonClass[0],"metro-btn"]),onClick:n[0]||(n[0]=g=>t.timeMode("月"))},[e.createElementVNode("div",jl,[n[15]||(n[15]=e.createElementVNode("div",{class:"metro-icon"},[e.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z"})])],-1)),e.createElementVNode("div",ql,e.toDisplayString(t.t("viewMode.month")),1)])],2),e.createElementVNode("div",{class:e.normalizeClass([t.buttonClass[1],"metro-btn"]),onClick:n[1]||(n[1]=g=>t.timeMode("周"))},[e.createElementVNode("div",Jl,[n[16]||(n[16]=e.createElementVNode("div",{class:"metro-icon"},[e.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z"})])],-1)),e.createElementVNode("div",Kl,e.toDisplayString(t.t("viewMode.week")),1)])],2),e.createElementVNode("div",{class:e.normalizeClass([t.buttonClass[2],"metro-btn"]),onClick:n[2]||(n[2]=g=>t.timeMode("日"))},[e.createElementVNode("div",Ql,[n[17]||(n[17]=e.createElementVNode("div",{class:"metro-icon"},[e.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 2 2h8c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 18H6V4h8v16z"})])],-1)),e.createElementVNode("div",Xl,e.toDisplayString(t.t("viewMode.day")),1)])],2),e.createElementVNode("div",{class:e.normalizeClass([t.buttonClass[3],"metro-btn"]),onClick:n[3]||(n[3]=g=>t.timeMode("时"))},[e.createElementVNode("div",ed,[n[18]||(n[18]=e.createElementVNode("div",{class:"metro-icon"},[e.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z"})])],-1)),e.createElementVNode("div",td,e.toDisplayString(t.t("viewMode.hour")),1)])],2)]),e.createElementVNode("div",nd,[e.createElementVNode("div",ad,[n[19]||(n[19]=e.createElementVNode("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M19 15l-6 6-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.58L13 9l6 6z"})],-1)),e.createTextVNode(" "+e.toDisplayString(t.t("link.legend")),1)]),e.createElementVNode("div",od,[e.createElementVNode("label",{class:e.normalizeClass(["legend-item",{disabled:!t.linkTypeVisibility.parentChild}]),title:"父子关系:显示任务的层级结构"},[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":n[4]||(n[4]=g=>t.linkTypeVisibility.parentChild=g),onChange:n[5]||(n[5]=(...g)=>t.updateLinkVisibility&&t.updateLinkVisibility(...g))},null,544),[[e.vModelCheckbox,t.linkTypeVisibility.parentChild]]),n[20]||(n[20]=e.createElementVNode("svg",{width:"24",height:"12",viewBox:"0 0 24 12"},[e.createElementVNode("line",{x1:"0",y1:"6",x2:"18",y2:"6",stroke:"#95a5a6","stroke-width":"1.5","stroke-dasharray":"3,3"}),e.createElementVNode("polygon",{points:"24,6 18,3 18,9",fill:"#95a5a6"})],-1)),e.createElementVNode("span",rd,e.toDisplayString(t.t("link.pc")),1),e.createElementVNode("span",id,e.toDisplayString(t.t("link.parentChild")),1)],2),e.createElementVNode("label",{class:e.normalizeClass(["legend-item",{disabled:!t.linkTypeVisibility.finishToStart}]),title:"完成-开始:前置任务完成后,后续任务才能开始"},[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":n[6]||(n[6]=g=>t.linkTypeVisibility.finishToStart=g),onChange:n[7]||(n[7]=(...g)=>t.updateLinkVisibility&&t.updateLinkVisibility(...g))},null,544),[[e.vModelCheckbox,t.linkTypeVisibility.finishToStart]]),(e.openBlock(),e.createElementBlock("svg",sd,[e.createElementVNode("line",{x1:"0",y1:"6",x2:"18",y2:"6",stroke:t.linkTypeColors.finishToStart,"stroke-width":"2"},null,8,ld),e.createElementVNode("polygon",{points:"24,6 18,3 18,9",fill:t.linkTypeColors.finishToStart},null,8,dd)])),e.createElementVNode("span",cd,e.toDisplayString(t.t("link.fs")),1),e.createElementVNode("span",ud,e.toDisplayString(t.t("link.finishToStart")),1)],2),e.createElementVNode("label",{class:e.normalizeClass(["legend-item",{disabled:!t.linkTypeVisibility.startToStart}]),title:"开始-开始:两个任务同时开始"},[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":n[8]||(n[8]=g=>t.linkTypeVisibility.startToStart=g),onChange:n[9]||(n[9]=(...g)=>t.updateLinkVisibility&&t.updateLinkVisibility(...g))},null,544),[[e.vModelCheckbox,t.linkTypeVisibility.startToStart]]),(e.openBlock(),e.createElementBlock("svg",fd,[e.createElementVNode("line",{x1:"0",y1:"6",x2:"18",y2:"6",stroke:t.linkTypeColors.startToStart,"stroke-width":"2"},null,8,md),e.createElementVNode("polygon",{points:"24,6 18,3 18,9",fill:t.linkTypeColors.startToStart},null,8,hd)])),e.createElementVNode("span",pd,e.toDisplayString(t.t("link.ss")),1),e.createElementVNode("span",gd,e.toDisplayString(t.t("link.startToStart")),1)],2),e.createElementVNode("label",{class:e.normalizeClass(["legend-item",{disabled:!t.linkTypeVisibility.finishToFinish}]),title:"完成-完成:两个任务同时完成"},[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":n[10]||(n[10]=g=>t.linkTypeVisibility.finishToFinish=g),onChange:n[11]||(n[11]=(...g)=>t.updateLinkVisibility&&t.updateLinkVisibility(...g))},null,544),[[e.vModelCheckbox,t.linkTypeVisibility.finishToFinish]]),(e.openBlock(),e.createElementBlock("svg",yd,[e.createElementVNode("line",{x1:"0",y1:"6",x2:"18",y2:"6",stroke:t.linkTypeColors.finishToFinish,"stroke-width":"2"},null,8,kd),e.createElementVNode("polygon",{points:"24,6 18,3 18,9",fill:t.linkTypeColors.finishToFinish},null,8,bd)])),e.createElementVNode("span",wd,e.toDisplayString(t.t("link.ff")),1),e.createElementVNode("span",Cd,e.toDisplayString(t.t("link.finishToFinish")),1)],2),e.createElementVNode("label",{class:e.normalizeClass(["legend-item",{disabled:!t.linkTypeVisibility.startToFinish}]),title:"开始-完成:前置任务开始后,后续任务才能完成"},[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":n[12]||(n[12]=g=>t.linkTypeVisibility.startToFinish=g),onChange:n[13]||(n[13]=(...g)=>t.updateLinkVisibility&&t.updateLinkVisibility(...g))},null,544),[[e.vModelCheckbox,t.linkTypeVisibility.startToFinish]]),(e.openBlock(),e.createElementBlock("svg",Td,[e.createElementVNode("line",{x1:"0",y1:"6",x2:"18",y2:"6",stroke:t.linkTypeColors.startToFinish,"stroke-width":"2"},null,8,Sd),e.createElementVNode("polygon",{points:"24,6 18,3 18,9",fill:t.linkTypeColors.startToFinish},null,8,vd)])),e.createElementVNode("span",Dd,e.toDisplayString(t.t("link.sf")),1),e.createElementVNode("span",Ed,e.toDisplayString(t.t("link.startToFinish")),1)],2)])]),e.createElementVNode("div",Md,[e.createVNode(l)])]),e.createElementVNode("div",$d,[e.createVNode(p,{direction:"row",min:0,max:100,triggerLength:10,paneLengthPercent:t.paneLengthPercent,"onUpdate:paneLengthPercent":n[14]||(n[14]=g=>t.paneLengthPercent=g)},{one:e.withCtx(()=>[e.createVNode(u,{headersHeight:t.styleConfig.headersHeight,rowHeight:t.styleConfig.rowHeight},null,8,["headersHeight","rowHeight"])]),two:e.withCtx(()=>[e.createVNode(d,{ref:"barContent",headersHeight:t.styleConfig.headersHeight,rowHeight:t.styleConfig.rowHeight},null,8,["headersHeight","rowHeight"])]),_:1},8,["paneLengthPercent"])])],512)}const cn=Ve(xl,[["render",Nd],["__scopeId","data-v-b001c5e0"]]),Vd=e.defineComponent({name:"GanttThemeSelector",setup(){const{t}=tt(),n=e.ref(!1),o=e.ref("metro"),r=e.ref(""),i=e.ref(),s=e.ref(He),a=e.inject("ganttContainer"),l=()=>{n.value=!n.value},u=()=>{n.value=!1,g()},d=b=>{o.value=b,r.value="",m(b);let v=null;if(a&&a.value?v=a.value:v=document.querySelector(".gantt-container")||document.querySelector(".page")||document.querySelector('[class*="gantt"]'),v){v.setAttribute("data-gantt-theme",b);const V=document.querySelector(".page");V&&V.setAttribute("data-gantt-theme",b);try{localStorage.setItem("gantt-theme",b)}catch(k){console.warn("Failed to save theme:",k)}setTimeout(()=>{v&&(v.style.display="none",v.offsetHeight,v.style.display="")},50)}u()},p=b=>{b!==o.value&&a&&a.value&&(r.value=b,m(b))},g=()=>{r.value&&a&&a.value&&(r.value="",m(o.value))},C=()=>{const b=Ie.exportThemeConfig(),v=new Blob([b],{type:"application/json"}),V=URL.createObjectURL(v),k=document.createElement("a");k.href=V,k.download=`gantt-theme-config-${new Date().toISOString().split("T")[0]}.json`,document.body.appendChild(k),k.click(),document.body.removeChild(k),URL.revokeObjectURL(V)},G=()=>{var b;(b=i.value)==null||b.click()},E=b=>{var V;const v=(V=b.target.files)==null?void 0:V[0];if(v){const k=new FileReader;k.onload=J=>{var j;try{const U=(j=J.target)==null?void 0:j.result;Ie.importThemeConfig(U)?(o.value=Ie.getCurrentTheme(),alert("主题配置导入成功!")):alert("主题配置文件格式错误!")}catch{alert("主题配置文件格式错误!")}},k.readAsText(v)}},F=b=>{b.target.closest(".gantt-theme-selector")||u()},m=b=>{const v=document.getElementById("gantt-theme-styles");v&&v.remove();const V=He.find(U=>U.id===b);if(!V)return;const k=document.createElement("style");k.id="gantt-theme-styles";const J=Object.entries(V.cssVariables).map(([U,Q])=>`${U}: ${Q};`).join(`
76
+ `);k.textContent=`
77
+ /* 甘特图主题样式 - ${b} */
78
78
  .page.gantt-container,
79
79
  .page.gantt-container *,
80
80
  .gantt-container,
81
81
  .gantt-container *,
82
- [data-gantt-theme="${y}"],
83
- [data-gantt-theme="${y}"] *,
82
+ [data-gantt-theme="${b}"],
83
+ [data-gantt-theme="${b}"] *,
84
84
  .toolbar,
85
85
  .toolbar *,
86
86
  .buttonGroup,
@@ -89,35 +89,35 @@
89
89
  .metro-btn *,
90
90
  .gantt,
91
91
  .gantt * {
92
- ${ee}
92
+ ${J}
93
93
  }
94
94
 
95
95
  /* 根级别变量 */
96
96
  :root {
97
- ${ee}
97
+ ${J}
98
98
  }
99
99
 
100
100
  /* 强制应用到特定元素 */
101
- .page[data-gantt-theme="${y}"] .toolbar {
101
+ .page[data-gantt-theme="${b}"] .toolbar {
102
102
  background: var(--bg-metal-normal) !important;
103
103
  border-bottom: 1px solid var(--border) !important;
104
104
  }
105
105
 
106
- .page[data-gantt-theme="${y}"] .buttonGroup {
106
+ .page[data-gantt-theme="${b}"] .buttonGroup {
107
107
  background: var(--bg-metal-normal) !important;
108
108
  border: 1px solid var(--border) !important;
109
109
  }
110
110
 
111
- .page[data-gantt-theme="${y}"] .metro-btn {
111
+ .page[data-gantt-theme="${b}"] .metro-btn {
112
112
  background: var(--bg-metal-normal) !important;
113
113
  color: var(--text-secondary) !important;
114
114
  border-right: 1px solid var(--border) !important;
115
115
  }
116
116
 
117
- .page[data-gantt-theme="${y}"] .metro-btn.is-active,
118
- .page[data-gantt-theme="${y}"] .metro-btn.button.is-active {
117
+ .page[data-gantt-theme="${b}"] .metro-btn.is-active,
118
+ .page[data-gantt-theme="${b}"] .metro-btn.button.is-active {
119
119
  background: var(--bg-active) !important;
120
120
  color: var(--text-white) !important;
121
121
  }
122
- `,document.head.appendChild(z),console.log("✅ Theme styles injected successfully"),console.log("📊 Injected CSS length:",z.textContent.length,"characters"),document.getElementById("gantt-theme-styles")?console.log("✅ Style element found in DOM"):console.error("❌ Style element not found in DOM")},H=()=>{console.log("🚀 initTheme called"),console.log("📦 ganttContainer:",n),console.log("📦 ganttContainer.value:",n==null?void 0:n.value);try{const L=localStorage.getItem("gantt-theme");L&&we.find(W=>W.id===L)&&(r.value=L,console.log("💾 Loaded theme from localStorage:",L))}catch(L){console.warn("Failed to load theme from localStorage:",L)}console.log("🎨 Current theme:",r.value),i(r.value);let y=null;if(n&&n.value?(y=n.value,console.log("✅ Using injected container reference")):(y=document.querySelector(".gantt-container")||document.querySelector(".page")||document.querySelector('[class*="gantt"]'),console.log("🔍 Using DOM query fallback, found:",y)),y){y.setAttribute("data-gantt-theme",r.value),console.log("✅ Container attribute set to:",r.value);const L=document.querySelector(".page");L&&(L.setAttribute("data-gantt-theme",r.value),console.log("✅ Page element attribute set"))}else console.warn("⚠️ No container found during initialization"),setTimeout(()=>{console.log("🔄 Retrying theme initialization..."),H()},500);console.log("✅ Theme initialization completed")};return e.watchEffect(()=>{n&&n.value&&e.nextTick(()=>{H()})}),e.onMounted(()=>{document.addEventListener("click",v),(!n||!n.value)&&setTimeout(()=>{H()},200)}),e.onUnmounted(()=>{document.removeEventListener("click",v),u()}),{t,availableThemes:h,isOpen:o,currentTheme:r,previewTheme:m,fileInput:p,toggleSelector:s,closeSelector:c,selectTheme:D,onPreviewTheme:k,onCancelPreview:u,exportConfig:N,importConfig:_,handleFileImport:S}}}),vi={class:"gantt-theme-selector"},Hi={class:"theme-dropdown-header"},Yi={class:"theme-grid"},zi=["onClick","onMouseenter"],Ii={class:"theme-preview-content"},Ri={class:"theme-info"},Pi={class:"theme-name"},Oi={class:"theme-description"},_i={class:"theme-status"},Gi={key:0,class:"status-badge current"},Wi={key:1,class:"status-badge preview"},Ui={class:"theme-actions"};function qi(t,o,r,m,p,h){return e.openBlock(),e.createElementBlock("div",vi,[e.createElementVNode("div",{class:e.normalizeClass(["theme-selector-trigger",{active:t.isOpen}]),onClick:o[0]||(o[0]=(...n)=>t.toggleSelector&&t.toggleSelector(...n))},[o[8]||(o[8]=e.createElementVNode("div",{class:"theme-icon"},[e.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9c.83 0 1.5-.67 1.5-1.5 0-.39-.15-.74-.39-1.01-.23-.26-.38-.61-.38-.99 0-.83.67-1.5 1.5-1.5H16c2.76 0 5-2.24 5-5 0-4.42-4.03-8-9-8zm-5.5 9c-.83 0-1.5-.67-1.5-1.5S5.67 9 6.5 9 8 9.67 8 10.5 7.33 12 6.5 12zm3-4C8.67 8 8 7.33 8 6.5S8.67 5 9.5 5s1.5.67 1.5 1.5S10.33 8 9.5 8zm5 0c-.83 0-1.5-.67-1.5-1.5S13.67 5 14.5 5s1.5.67 1.5 1.5S15.33 8 14.5 8zm3 4c-.83 0-1.5-.67-1.5-1.5S16.67 9 17.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"})])],-1)),o[9]||(o[9]=e.createElementVNode("span",{class:"theme-text"},"主题",-1)),e.createElementVNode("div",{class:e.normalizeClass(["theme-arrow",{rotated:t.isOpen}])},o[7]||(o[7]=[e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M7 10l5 5 5-5z"})],-1)]),2)],2),e.withDirectives(e.createElementVNode("div",{class:"theme-dropdown",onClick:o[5]||(o[5]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",Hi,[o[11]||(o[11]=e.createElementVNode("h3",null,"选择主题",-1)),e.createElementVNode("button",{class:"close-btn",onClick:o[1]||(o[1]=(...n)=>t.closeSelector&&t.closeSelector(...n))},o[10]||(o[10]=[e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})],-1)]))]),e.createElementVNode("div",Yi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.availableThemes,n=>(e.openBlock(),e.createElementBlock("div",{key:n.id,class:e.normalizeClass(["theme-card",{active:t.currentTheme===n.id,preview:t.previewTheme===n.id}]),onClick:s=>t.selectTheme(n.id),onMouseenter:s=>t.onPreviewTheme(n.id),onMouseleave:o[2]||(o[2]=(...s)=>t.onCancelPreview&&t.onCancelPreview(...s))},[e.createElementVNode("div",{class:"theme-preview",style:e.normalizeStyle({backgroundColor:n.preview})},[e.createElementVNode("div",Ii,[e.createElementVNode("div",{class:"preview-header",style:e.normalizeStyle({backgroundColor:n.preview})},null,4),o[12]||(o[12]=e.createElementVNode("div",{class:"preview-body"},[e.createElementVNode("div",{class:"preview-bar"}),e.createElementVNode("div",{class:"preview-bar short"}),e.createElementVNode("div",{class:"preview-bar medium"})],-1))])],4),e.createElementVNode("div",Ri,[e.createElementVNode("h4",Pi,e.toDisplayString(t.t(n.nameKey)),1),e.createElementVNode("p",Oi,e.toDisplayString(t.t(n.descKey)),1)]),e.createElementVNode("div",_i,[t.currentTheme===n.id?(e.openBlock(),e.createElementBlock("div",Gi,"当前")):t.previewTheme===n.id?(e.openBlock(),e.createElementBlock("div",Wi,"预览")):e.createCommentVNode("",!0)])],42,zi))),128))]),e.createElementVNode("div",Ui,[e.createElementVNode("button",{class:"action-btn",onClick:o[3]||(o[3]=(...n)=>t.exportConfig&&t.exportConfig(...n))},o[13]||(o[13]=[e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M18,20H6V4H13V9H18V20Z"})],-1),e.createTextVNode(" 导出配置 ")])),e.createElementVNode("button",{class:"action-btn",onClick:o[4]||(o[4]=(...n)=>t.importConfig&&t.importConfig(...n))},o[14]||(o[14]=[e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M18,20H6V4H13V9H18V20Z"})],-1),e.createTextVNode(" 导入配置 ")]))])],512),[[e.vShow,t.isOpen]]),e.createElementVNode("input",{ref:"fileInput",type:"file",accept:".json",style:{display:"none"},onChange:o[6]||(o[6]=(...n)=>t.handleFileImport&&t.handleFileImport(...n))},null,544)])}const Ji=ye(Fi,[["render",qi],["__scopeId","data-v-1ae8199c"]]),Ki=e.defineComponent({name:"LanguageSelector",setup(){const{locale:t,t:o,setLocale:r,getLocales:m}=Me(),p=e.ref(!1),h=e.computed(()=>t.value),n=e.computed(()=>m()),s=e.computed(()=>{const N=n.value.find(_=>_.value===h.value);return(N==null?void 0:N.label)||"Language"}),c=()=>{p.value=!p.value},D=()=>{p.value=!1},k=N=>{r(N),D()},u=N=>{N.target.closest(".language-selector")||D()};return e.onMounted(()=>{document.addEventListener("click",u)}),e.onUnmounted(()=>{document.removeEventListener("click",u)}),{isOpen:p,currentLocale:h,currentLocaleLabel:s,locales:n,t:o,toggleDropdown:c,closeDropdown:D,selectLocale:k}}}),ji={class:"language-selector"},Qi=["title"],Zi={class:"btn-content"},xi={class:"btn-text"},Xi={key:0,class:"lang-dropdown"},el=["onClick"],tl={class:"lang-label"},ol={key:0,class:"lang-check"};function nl(t,o,r,m,p,h){return e.openBlock(),e.createElementBlock("div",ji,[e.createElementVNode("button",{class:e.normalizeClass(["lang-btn",{active:t.isOpen}]),onClick:o[0]||(o[0]=(...n)=>t.toggleDropdown&&t.toggleDropdown(...n)),title:t.t("configPanel.languageSettings")},[e.createElementVNode("div",Zi,[o[3]||(o[3]=e.createElementVNode("div",{class:"btn-icon"},[e.createElementVNode("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})])],-1)),e.createElementVNode("span",xi,e.toDisplayString(t.currentLocaleLabel),1),e.createElementVNode("div",{class:e.normalizeClass(["btn-arrow",{rotated:t.isOpen}])},o[2]||(o[2]=[e.createElementVNode("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M7 10l5 5 5-5z"})],-1)]),2)])],10,Qi),e.createVNode(e.Transition,{name:"dropdown-fade"},{default:e.withCtx(()=>[t.isOpen?(e.openBlock(),e.createElementBlock("div",Xi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.locales,n=>(e.openBlock(),e.createElementBlock("div",{key:n.value,class:e.normalizeClass(["lang-option",{active:t.currentLocale===n.value}]),onClick:s=>t.selectLocale(n.value)},[e.createElementVNode("span",tl,e.toDisplayString(n.label),1),t.currentLocale===n.value?(e.openBlock(),e.createElementBlock("div",ol,o[4]||(o[4]=[e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"})],-1)]))):e.createCommentVNode("",!0)],10,el))),128))])):e.createCommentVNode("",!0)]),_:1}),t.isOpen?(e.openBlock(),e.createElementBlock("div",{key:0,class:"dropdown-overlay",onClick:o[1]||(o[1]=(...n)=>t.closeDropdown&&t.closeDropdown(...n))})):e.createCommentVNode("",!0)])}const al=ye(Ki,[["render",nl],["__scopeId","data-v-244711d6"]]),rl=e.defineComponent({name:"LinkConfigPanel",emits:["close","configChange"],setup(t,{emit:o}){const{config:r,setTheme:m,updateConfig:p,reset:h,exportConfig:n,importConfig:s,themes:c}=Be(),D=e.ref(!1),k=e.ref(""),u=[{value:pe.STRAIGHT,name:"直线",preview:"M 10 20 L 50 20"},{value:pe.BEZIER,name:"贝塞尔曲线",preview:"M 10 20 C 25 20 35 20 50 20"},{value:pe.RIGHT_ANGLE,name:"直角连线",preview:"M 10 20 L 30 20 L 30 30 L 50 30"}],N={default:"默认",business:"商务",modern:"现代",minimal:"简约",colorful:"彩色"};return{config:r,pathTypes:u,themes:c,showImportDialog:D,importText:k,getThemeName:W=>N[W]||W,isCurrentTheme:W=>{const z=c[W];return z?Object.keys(z).every(ee=>{const oe=z[ee],j=r[ee];return typeof oe=="object"&&typeof j=="object"?JSON.stringify(oe)===JSON.stringify(j):oe===j}):!1},updateConfig:()=>{p(r),o("configChange",r)},applyTheme:W=>{m(W),o("configChange",r)},resetConfig:()=>{h(),o("configChange",r)},exportConfig:()=>{const W=n();navigator.clipboard.writeText(W).then(()=>{alert("配置已复制到剪贴板")}).catch(()=>{const z=document.createElement("textarea");z.value=W,document.body.appendChild(z),z.select(),document.execCommand("copy"),document.body.removeChild(z),alert("配置已复制到剪贴板")})},importConfig:()=>{try{s(k.value)?(D.value=!1,k.value="",o("configChange",r),alert("配置导入成功")):alert("配置格式错误,请检查JSON格式")}catch(W){alert("配置导入失败:"+W)}}}}}),il={class:"link-config-panel"},ll={class:"panel-header"},sl={class:"panel-content"},dl={class:"config-section"},cl={class:"path-type-selector"},ml=["value","onUpdate:modelValue"],hl={class:"path-preview"},fl={width:"60",height:"40",viewBox:"0 0 60 40"},ul=["d"],gl={class:"config-section"},pl={class:"config-row"},kl={class:"config-row"},yl={class:"value"},Cl={class:"config-row"},wl={key:0,class:"config-section"},bl={class:"config-row"},Sl={class:"value"},Dl={key:1,class:"config-section"},Tl={class:"config-row"},El={class:"value"},Ml={class:"config-row"},$l={key:0,class:"config-row"},Vl={class:"value"},Nl={class:"config-section"},Ll={class:"config-row"},Al={key:0},Bl={class:"config-row"},Fl={class:"value"},vl={class:"config-row"},Hl=["placeholder"],Yl={class:"config-section"},zl={class:"config-row"},Il={key:0},Rl={class:"config-row"},Pl={class:"value"},Ol={class:"config-section"},_l={class:"config-row"},Gl={key:0},Wl={class:"config-row"},Ul={class:"config-row"},ql={class:"value"},Jl={class:"config-section"},Kl={class:"config-row"},jl={class:"config-row"},Ql={class:"value"},Zl={class:"config-row"},xl={class:"config-section"},Xl={class:"theme-selector"},es=["onClick"],ts={class:"config-section"},os={class:"action-buttons"},ns={class:"import-actions"};function as(t,o,r,m,p,h){return e.openBlock(),e.createElementBlock("div",il,[e.createElementVNode("div",ll,[o[47]||(o[47]=e.createElementVNode("h3",null,"连线配置",-1)),e.createElementVNode("button",{class:"close-btn",onClick:o[0]||(o[0]=n=>t.$emit("close")),title:"关闭"},"×")]),e.createElementVNode("div",sl,[e.createElementVNode("div",dl,[o[48]||(o[48]=e.createElementVNode("h4",null,"路径类型",-1)),e.createElementVNode("div",cl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.pathTypes,n=>(e.openBlock(),e.createElementBlock("label",{key:n.value,class:e.normalizeClass(["path-type-option",{active:t.config.pathType===n.value}])},[e.withDirectives(e.createElementVNode("input",{type:"radio",value:n.value,"onUpdate:modelValue":s=>t.config.pathType=s,onChange:o[1]||(o[1]=(...s)=>t.updateConfig&&t.updateConfig(...s))},null,40,ml),[[e.vModelRadio,t.config.pathType]]),e.createElementVNode("div",hl,[(e.openBlock(),e.createElementBlock("svg",fl,[e.createElementVNode("path",{d:n.preview,stroke:"#3498db","stroke-width":"2",fill:"none"},null,8,ul)]))]),e.createElementVNode("span",null,e.toDisplayString(n.name),1)],2))),128))])]),e.createElementVNode("div",gl,[o[53]||(o[53]=e.createElementVNode("h4",null,"基础样式",-1)),e.createElementVNode("div",pl,[o[49]||(o[49]=e.createElementVNode("label",null,"颜色:",-1)),e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":o[2]||(o[2]=n=>t.config.color=n),onChange:o[3]||(o[3]=(...n)=>t.updateConfig&&t.updateConfig(...n)),class:"color-input"},null,544),[[e.vModelText,t.config.color]])]),e.createElementVNode("div",kl,[o[50]||(o[50]=e.createElementVNode("label",null,"线宽:",-1)),e.withDirectives(e.createElementVNode("input",{type:"range",min:"1",max:"5",step:"0.5","onUpdate:modelValue":o[4]||(o[4]=n=>t.config.width=n),onInput:o[5]||(o[5]=(...n)=>t.updateConfig&&t.updateConfig(...n)),class:"range-input"},null,544),[[e.vModelText,t.config.width,void 0,{number:!0}]]),e.createElementVNode("span",yl,e.toDisplayString(t.config.width)+"px",1)]),e.createElementVNode("div",Cl,[o[52]||(o[52]=e.createElementVNode("label",null,"虚线样式:",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":o[6]||(o[6]=n=>t.config.dashArray=n),onChange:o[7]||(o[7]=(...n)=>t.updateConfig&&t.updateConfig(...n)),class:"select-input"},o[51]||(o[51]=[e.createElementVNode("option",{value:void 0},"实线",-1),e.createElementVNode("option",{value:"3,3"},"短虚线",-1),e.createElementVNode("option",{value:"5,5"},"中虚线",-1),e.createElementVNode("option",{value:"8,4"},"长虚线",-1),e.createElementVNode("option",{value:"2,2,8,2"},"点划线",-1)]),544),[[e.vModelSelect,t.config.dashArray]])])]),t.config.pathType==="bezier"?(e.openBlock(),e.createElementBlock("div",wl,[o[55]||(o[55]=e.createElementVNode("h4",null,"贝塞尔曲线配置",-1)),e.createElementVNode("div",bl,[o[54]||(o[54]=e.createElementVNode("label",null,"弯曲度:",-1)),e.withDirectives(e.createElementVNode("input",{type:"range",min:"0.1",max:"1",step:"0.1","onUpdate:modelValue":o[8]||(o[8]=n=>t.config.bezierCurvature=n),onInput:o[9]||(o[9]=(...n)=>t.updateConfig&&t.updateConfig(...n)),class:"range-input"},null,544),[[e.vModelText,t.config.bezierCurvature,void 0,{number:!0}]]),e.createElementVNode("span",Sl,e.toDisplayString(t.config.bezierCurvature),1)])])):e.createCommentVNode("",!0),t.config.pathType==="right-angle"?(e.openBlock(),e.createElementBlock("div",Dl,[o[59]||(o[59]=e.createElementVNode("h4",null,"直角连线配置",-1)),e.createElementVNode("div",Tl,[o[56]||(o[56]=e.createElementVNode("label",null,"偏移距离:",-1)),e.withDirectives(e.createElementVNode("input",{type:"range",min:"10",max:"80",step:"5","onUpdate:modelValue":o[10]||(o[10]=n=>t.config.rightAngleOffset=n),onInput:o[11]||(o[11]=(...n)=>t.updateConfig&&t.updateConfig(...n)),class:"range-input"},null,544),[[e.vModelText,t.config.rightAngleOffset,void 0,{number:!0}]]),e.createElementVNode("span",El,e.toDisplayString(t.config.rightAngleOffset)+"px",1)]),e.createElementVNode("div",Ml,[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":o[12]||(o[12]=n=>t.config.smoothCorners=n),onChange:o[13]||(o[13]=(...n)=>t.updateConfig&&t.updateConfig(...n))},null,544),[[e.vModelCheckbox,t.config.smoothCorners]]),o[57]||(o[57]=e.createTextVNode(" 平滑转角 "))])]),t.config.smoothCorners?(e.openBlock(),e.createElementBlock("div",$l,[o[58]||(o[58]=e.createElementVNode("label",null,"转角半径:",-1)),e.withDirectives(e.createElementVNode("input",{type:"range",min:"0",max:"15",step:"1","onUpdate:modelValue":o[14]||(o[14]=n=>t.config.cornerRadius=n),onInput:o[15]||(o[15]=(...n)=>t.updateConfig&&t.updateConfig(...n)),class:"range-input"},null,544),[[e.vModelText,t.config.cornerRadius,void 0,{number:!0}]]),e.createElementVNode("span",Vl,e.toDisplayString(t.config.cornerRadius)+"px",1)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",Nl,[o[63]||(o[63]=e.createElementVNode("h4",null,"箭头配置",-1)),e.createElementVNode("div",Ll,[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":o[16]||(o[16]=n=>t.config.showArrow=n),onChange:o[17]||(o[17]=(...n)=>t.updateConfig&&t.updateConfig(...n))},null,544),[[e.vModelCheckbox,t.config.showArrow]]),o[60]||(o[60]=e.createTextVNode(" 显示箭头 "))])]),t.config.showArrow?(e.openBlock(),e.createElementBlock("div",Al,[e.createElementVNode("div",Bl,[o[61]||(o[61]=e.createElementVNode("label",null,"箭头大小:",-1)),e.withDirectives(e.createElementVNode("input",{type:"range",min:"4",max:"16",step:"1","onUpdate:modelValue":o[18]||(o[18]=n=>t.config.arrowSize=n),onInput:o[19]||(o[19]=(...n)=>t.updateConfig&&t.updateConfig(...n)),class:"range-input"},null,544),[[e.vModelText,t.config.arrowSize,void 0,{number:!0}]]),e.createElementVNode("span",Fl,e.toDisplayString(t.config.arrowSize)+"px",1)]),e.createElementVNode("div",vl,[o[62]||(o[62]=e.createElementVNode("label",null,"箭头颜色:",-1)),e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":o[20]||(o[20]=n=>t.config.arrowColor=n),onChange:o[21]||(o[21]=(...n)=>t.updateConfig&&t.updateConfig(...n)),class:"color-input",placeholder:t.config.color},null,40,Hl),[[e.vModelText,t.config.arrowColor]]),e.createElementVNode("button",{onClick:o[22]||(o[22]=n=>{t.config.arrowColor=t.config.color,t.updateConfig()}),class:"sync-btn",title:"与线条颜色同步"}," 同步 ")])])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Yl,[o[67]||(o[67]=e.createElementVNode("h4",null,"虚线动画",-1)),e.createElementVNode("div",zl,[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":o[23]||(o[23]=n=>t.config.enableDashAnimation=n),onChange:o[24]||(o[24]=(...n)=>t.updateConfig&&t.updateConfig(...n))},null,544),[[e.vModelCheckbox,t.config.enableDashAnimation]]),o[64]||(o[64]=e.createTextVNode(" 启用虚线流动动画 "))])]),t.config.enableDashAnimation?(e.openBlock(),e.createElementBlock("div",Il,[e.createElementVNode("div",Rl,[o[65]||(o[65]=e.createElementVNode("label",null,"动画速度:",-1)),e.withDirectives(e.createElementVNode("input",{type:"range",min:"0.2",max:"3",step:"0.2","onUpdate:modelValue":o[25]||(o[25]=n=>t.config.dashAnimationSpeed=n),onInput:o[26]||(o[26]=(...n)=>t.updateConfig&&t.updateConfig(...n)),class:"range-input"},null,544),[[e.vModelText,t.config.dashAnimationSpeed,void 0,{number:!0}]]),e.createElementVNode("span",Pl,e.toDisplayString(t.config.dashAnimationSpeed)+"s",1)]),o[66]||(o[66]=e.createElementVNode("div",{class:"config-info"},[e.createElementVNode("small",null,"💡 虚线动画只在连线设置为虚线样式时显示")],-1))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Ol,[o[71]||(o[71]=e.createElementVNode("h4",null,"标签配置",-1)),e.createElementVNode("div",_l,[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":o[27]||(o[27]=n=>t.config.showLabels=n),onChange:o[28]||(o[28]=(...n)=>t.updateConfig&&t.updateConfig(...n))},null,544),[[e.vModelCheckbox,t.config.showLabels]]),o[68]||(o[68]=e.createTextVNode(" 显示标签 "))])]),t.config.showLabels?(e.openBlock(),e.createElementBlock("div",Gl,[e.createElementVNode("div",Wl,[o[69]||(o[69]=e.createElementVNode("label",null,"标签颜色:",-1)),e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":o[29]||(o[29]=n=>t.config.labelColor=n),onChange:o[30]||(o[30]=(...n)=>t.updateConfig&&t.updateConfig(...n)),class:"color-input"},null,544),[[e.vModelText,t.config.labelColor]])]),e.createElementVNode("div",Ul,[o[70]||(o[70]=e.createElementVNode("label",null,"字体大小:",-1)),e.withDirectives(e.createElementVNode("input",{type:"range",min:"8",max:"16",step:"1","onUpdate:modelValue":o[31]||(o[31]=n=>t.config.labelFontSize=n),onInput:o[32]||(o[32]=(...n)=>t.updateConfig&&t.updateConfig(...n)),class:"range-input"},null,544),[[e.vModelText,t.config.labelFontSize,void 0,{number:!0}]]),e.createElementVNode("span",ql,e.toDisplayString(t.config.labelFontSize)+"px",1)])])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Jl,[o[76]||(o[76]=e.createElementVNode("h4",null,"父子关系样式",-1)),e.createElementVNode("div",Kl,[o[72]||(o[72]=e.createElementVNode("label",null,"颜色:",-1)),e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":o[33]||(o[33]=n=>t.config.parentChildStyle.color=n),onChange:o[34]||(o[34]=(...n)=>t.updateConfig&&t.updateConfig(...n)),class:"color-input"},null,544),[[e.vModelText,t.config.parentChildStyle.color]])]),e.createElementVNode("div",jl,[o[73]||(o[73]=e.createElementVNode("label",null,"线宽:",-1)),e.withDirectives(e.createElementVNode("input",{type:"range",min:"1",max:"3",step:"0.5","onUpdate:modelValue":o[35]||(o[35]=n=>t.config.parentChildStyle.width=n),onInput:o[36]||(o[36]=(...n)=>t.updateConfig&&t.updateConfig(...n)),class:"range-input"},null,544),[[e.vModelText,t.config.parentChildStyle.width,void 0,{number:!0}]]),e.createElementVNode("span",Ql,e.toDisplayString(t.config.parentChildStyle.width)+"px",1)]),e.createElementVNode("div",Zl,[o[75]||(o[75]=e.createElementVNode("label",null,"虚线样式:",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":o[37]||(o[37]=n=>t.config.parentChildStyle.dashArray=n),onChange:o[38]||(o[38]=(...n)=>t.updateConfig&&t.updateConfig(...n)),class:"select-input"},o[74]||(o[74]=[e.createElementVNode("option",{value:void 0},"实线",-1),e.createElementVNode("option",{value:"3,3"},"短虚线",-1),e.createElementVNode("option",{value:"5,5"},"中虚线",-1),e.createElementVNode("option",{value:"8,4"},"长虚线",-1)]),544),[[e.vModelSelect,t.config.parentChildStyle.dashArray]])])]),e.createElementVNode("div",xl,[o[77]||(o[77]=e.createElementVNode("h4",null,"预设主题",-1)),e.createElementVNode("div",Xl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.themes,(n,s)=>(e.openBlock(),e.createElementBlock("button",{key:s,onClick:c=>t.applyTheme(s),class:e.normalizeClass(["theme-btn",{active:t.isCurrentTheme(s)}])},e.toDisplayString(t.getThemeName(s)),11,es))),128))])]),e.createElementVNode("div",ts,[e.createElementVNode("div",os,[e.createElementVNode("button",{onClick:o[39]||(o[39]=(...n)=>t.resetConfig&&t.resetConfig(...n)),class:"reset-btn"},"重置为默认"),e.createElementVNode("button",{onClick:o[40]||(o[40]=(...n)=>t.exportConfig&&t.exportConfig(...n)),class:"export-btn"},"导出配置"),e.createElementVNode("button",{onClick:o[41]||(o[41]=n=>t.showImportDialog=!0),class:"import-btn"},"导入配置")])])]),t.showImportDialog?(e.openBlock(),e.createElementBlock("div",{key:0,class:"import-dialog-overlay",onClick:o[46]||(o[46]=n=>t.showImportDialog=!1)},[e.createElementVNode("div",{class:"import-dialog",onClick:o[45]||(o[45]=e.withModifiers(()=>{},["stop"]))},[o[78]||(o[78]=e.createElementVNode("h4",null,"导入配置",-1)),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":o[42]||(o[42]=n=>t.importText=n),placeholder:"粘贴配置JSON...",class:"import-textarea"},null,512),[[e.vModelText,t.importText]]),e.createElementVNode("div",ns,[e.createElementVNode("button",{onClick:o[43]||(o[43]=(...n)=>t.importConfig&&t.importConfig(...n)),class:"confirm-btn"},"导入"),e.createElementVNode("button",{onClick:o[44]||(o[44]=n=>t.showImportDialog=!1),class:"cancel-btn"},"取消")])])])):e.createCommentVNode("",!0)])}const rs=ye(rl,[["render",as],["__scopeId","data-v-a16e7fd4"]]),is=t=>{t.component("Gantt",qe),t.component("Vue3Gantt",qe)},ls="1.0.0";le.DatePicker=ht,le.Gantt=qe,le.GanttConfigPanel=yt,le.GanttThemeSelector=Ji,le.LanguageSelector=al,le.LinkConfigPanel=rs,le.LinkPathType=pe,le.LinkThemes=Ae,le.LinkType=X,le.default=qe,le.ganttThemes=we,le.install=is,le.linkDataManager=Ge,le.mutations=se,le.setLocale=mt,le.store=w,le.useI18n=Me,le.useLinkConfig=Be,le.version=ls,Object.defineProperties(le,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
122
+ `,document.head.appendChild(k),console.log("✅ Theme styles injected successfully"),console.log("📊 Injected CSS length:",k.textContent.length,"characters"),document.getElementById("gantt-theme-styles")?console.log("✅ Style element found in DOM"):console.error("❌ Style element not found in DOM")},R=()=>{console.log("🚀 initTheme called"),console.log("📦 ganttContainer:",a),console.log("📦 ganttContainer.value:",a==null?void 0:a.value);try{const v=localStorage.getItem("gantt-theme");v&&He.find(V=>V.id===v)&&(o.value=v,console.log("💾 Loaded theme from localStorage:",v))}catch(v){console.warn("Failed to load theme from localStorage:",v)}console.log("🎨 Current theme:",o.value),m(o.value);let b=null;if(a&&a.value?(b=a.value,console.log("✅ Using injected container reference")):(b=document.querySelector(".gantt-container")||document.querySelector(".page")||document.querySelector('[class*="gantt"]'),console.log("🔍 Using DOM query fallback, found:",b)),b){b.setAttribute("data-gantt-theme",o.value),console.log("✅ Container attribute set to:",o.value);const v=document.querySelector(".page");v&&(v.setAttribute("data-gantt-theme",o.value),console.log("✅ Page element attribute set"))}else console.warn("⚠️ No container found during initialization"),setTimeout(()=>{console.log("🔄 Retrying theme initialization..."),R()},500);console.log("✅ Theme initialization completed")};return e.watchEffect(()=>{a&&a.value&&e.nextTick(()=>{R()})}),e.onMounted(()=>{document.addEventListener("click",F),(!a||!a.value)&&setTimeout(()=>{R()},200)}),e.onUnmounted(()=>{document.removeEventListener("click",F),g()}),{t,availableThemes:s,isOpen:n,currentTheme:o,previewTheme:r,fileInput:i,toggleSelector:l,closeSelector:u,selectTheme:d,onPreviewTheme:p,onCancelPreview:g,exportConfig:C,importConfig:G,handleFileImport:E}}}),_d={class:"gantt-theme-selector"},Ad={class:"theme-dropdown-header"},Ld={class:"theme-grid"},Bd=["onClick","onMouseenter"],Fd={class:"theme-preview-content"},Hd={class:"theme-info"},Id={class:"theme-name"},Rd={class:"theme-description"},Yd={class:"theme-status"},zd={key:0,class:"status-badge current"},Od={key:1,class:"status-badge preview"},xd={class:"theme-actions"};function Pd(t,n,o,r,i,s){return e.openBlock(),e.createElementBlock("div",_d,[e.createElementVNode("div",{class:e.normalizeClass(["theme-selector-trigger",{active:t.isOpen}]),onClick:n[0]||(n[0]=(...a)=>t.toggleSelector&&t.toggleSelector(...a))},[n[8]||(n[8]=e.createElementVNode("div",{class:"theme-icon"},[e.createElementVNode("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M12 3c-4.97 0-9 4.03-9 9s4.03 9 9 9c.83 0 1.5-.67 1.5-1.5 0-.39-.15-.74-.39-1.01-.23-.26-.38-.61-.38-.99 0-.83.67-1.5 1.5-1.5H16c2.76 0 5-2.24 5-5 0-4.42-4.03-8-9-8zm-5.5 9c-.83 0-1.5-.67-1.5-1.5S5.67 9 6.5 9 8 9.67 8 10.5 7.33 12 6.5 12zm3-4C8.67 8 8 7.33 8 6.5S8.67 5 9.5 5s1.5.67 1.5 1.5S10.33 8 9.5 8zm5 0c-.83 0-1.5-.67-1.5-1.5S13.67 5 14.5 5s1.5.67 1.5 1.5S15.33 8 14.5 8zm3 4c-.83 0-1.5-.67-1.5-1.5S16.67 9 17.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"})])],-1)),n[9]||(n[9]=e.createElementVNode("span",{class:"theme-text"},"主题",-1)),e.createElementVNode("div",{class:e.normalizeClass(["theme-arrow",{rotated:t.isOpen}])},n[7]||(n[7]=[e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M7 10l5 5 5-5z"})],-1)]),2)],2),e.withDirectives(e.createElementVNode("div",{class:"theme-dropdown",onClick:n[5]||(n[5]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",Ad,[n[11]||(n[11]=e.createElementVNode("h3",null,"选择主题",-1)),e.createElementVNode("button",{class:"close-btn",onClick:n[1]||(n[1]=(...a)=>t.closeSelector&&t.closeSelector(...a))},n[10]||(n[10]=[e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"})],-1)]))]),e.createElementVNode("div",Ld,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.availableThemes,a=>(e.openBlock(),e.createElementBlock("div",{key:a.id,class:e.normalizeClass(["theme-card",{active:t.currentTheme===a.id,preview:t.previewTheme===a.id}]),onClick:l=>t.selectTheme(a.id),onMouseenter:l=>t.onPreviewTheme(a.id),onMouseleave:n[2]||(n[2]=(...l)=>t.onCancelPreview&&t.onCancelPreview(...l))},[e.createElementVNode("div",{class:"theme-preview",style:e.normalizeStyle({backgroundColor:a.preview})},[e.createElementVNode("div",Fd,[e.createElementVNode("div",{class:"preview-header",style:e.normalizeStyle({backgroundColor:a.preview})},null,4),n[12]||(n[12]=e.createElementVNode("div",{class:"preview-body"},[e.createElementVNode("div",{class:"preview-bar"}),e.createElementVNode("div",{class:"preview-bar short"}),e.createElementVNode("div",{class:"preview-bar medium"})],-1))])],4),e.createElementVNode("div",Hd,[e.createElementVNode("h4",Id,e.toDisplayString(t.t(a.nameKey)),1),e.createElementVNode("p",Rd,e.toDisplayString(t.t(a.descKey)),1)]),e.createElementVNode("div",Yd,[t.currentTheme===a.id?(e.openBlock(),e.createElementBlock("div",zd,"当前")):t.previewTheme===a.id?(e.openBlock(),e.createElementBlock("div",Od,"预览")):e.createCommentVNode("",!0)])],42,Bd))),128))]),e.createElementVNode("div",xd,[e.createElementVNode("button",{class:"action-btn",onClick:n[3]||(n[3]=(...a)=>t.exportConfig&&t.exportConfig(...a))},n[13]||(n[13]=[e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M18,20H6V4H13V9H18V20Z"})],-1),e.createTextVNode(" 导出配置 ")])),e.createElementVNode("button",{class:"action-btn",onClick:n[4]||(n[4]=(...a)=>t.importConfig&&t.importConfig(...a))},n[14]||(n[14]=[e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M18,20H6V4H13V9H18V20Z"})],-1),e.createTextVNode(" 导入配置 ")]))])],512),[[e.vShow,t.isOpen]]),e.createElementVNode("input",{ref:"fileInput",type:"file",accept:".json",style:{display:"none"},onChange:n[6]||(n[6]=(...a)=>t.handleFileImport&&t.handleFileImport(...a))},null,544)])}const Zd=Ve(Vd,[["render",Pd],["__scopeId","data-v-47ec3216"]]),Gd=e.defineComponent({name:"LanguageSelector",setup(){const{locale:t,t:n,setLocale:o,getLocales:r}=tt(),i=e.ref(!1),s=e.computed(()=>t.value),a=e.computed(()=>r()),l=e.computed(()=>{const C=a.value.find(G=>G.value===s.value);return(C==null?void 0:C.label)||"Language"}),u=()=>{i.value=!i.value},d=()=>{i.value=!1},p=C=>{o(C),d()},g=C=>{C.target.closest(".language-selector")||d()};return e.onMounted(()=>{document.addEventListener("click",g)}),e.onUnmounted(()=>{document.removeEventListener("click",g)}),{isOpen:i,currentLocale:s,currentLocaleLabel:l,locales:a,t:n,toggleDropdown:u,closeDropdown:d,selectLocale:p}}}),Wd={class:"language-selector"},Ud=["title"],jd={class:"btn-content"},qd={class:"btn-text"},Jd={key:0,class:"lang-dropdown"},Kd=["onClick"],Qd={class:"lang-label"},Xd={key:0,class:"lang-check"};function ec(t,n,o,r,i,s){return e.openBlock(),e.createElementBlock("div",Wd,[e.createElementVNode("button",{class:e.normalizeClass(["lang-btn",{active:t.isOpen}]),onClick:n[0]||(n[0]=(...a)=>t.toggleDropdown&&t.toggleDropdown(...a)),title:t.t("configPanel.languageSettings")},[e.createElementVNode("div",jd,[n[3]||(n[3]=e.createElementVNode("div",{class:"btn-icon"},[e.createElementVNode("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})])],-1)),e.createElementVNode("span",qd,e.toDisplayString(t.currentLocaleLabel),1),e.createElementVNode("div",{class:e.normalizeClass(["btn-arrow",{rotated:t.isOpen}])},n[2]||(n[2]=[e.createElementVNode("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M7 10l5 5 5-5z"})],-1)]),2)])],10,Ud),e.createVNode(e.Transition,{name:"dropdown-fade"},{default:e.withCtx(()=>[t.isOpen?(e.openBlock(),e.createElementBlock("div",Jd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.locales,a=>(e.openBlock(),e.createElementBlock("div",{key:a.value,class:e.normalizeClass(["lang-option",{active:t.currentLocale===a.value}]),onClick:l=>t.selectLocale(a.value)},[e.createElementVNode("span",Qd,e.toDisplayString(a.label),1),t.currentLocale===a.value?(e.openBlock(),e.createElementBlock("div",Xd,n[4]||(n[4]=[e.createElementVNode("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"})],-1)]))):e.createCommentVNode("",!0)],10,Kd))),128))])):e.createCommentVNode("",!0)]),_:1}),t.isOpen?(e.openBlock(),e.createElementBlock("div",{key:0,class:"dropdown-overlay",onClick:n[1]||(n[1]=(...a)=>t.closeDropdown&&t.closeDropdown(...a))})):e.createCommentVNode("",!0)])}const tc=Ve(Gd,[["render",ec],["__scopeId","data-v-244711d6"]]),nc=e.defineComponent({name:"LinkConfigPanel",emits:["close","configChange"],setup(t,{emit:n}){const{config:o,setTheme:r,updateConfig:i,reset:s,exportConfig:a,importConfig:l,themes:u}=Tt(),d=e.ref(!1),p=e.ref(""),g=[{value:Ne.STRAIGHT,name:"直线",preview:"M 10 20 L 50 20"},{value:Ne.BEZIER,name:"贝塞尔曲线",preview:"M 10 20 C 25 20 35 20 50 20"},{value:Ne.RIGHT_ANGLE,name:"直角连线",preview:"M 10 20 L 30 20 L 30 30 L 50 30"}],C={default:"默认",business:"商务",modern:"现代",minimal:"简约",colorful:"彩色"};return{config:o,pathTypes:g,themes:u,showImportDialog:d,importText:p,getThemeName:V=>C[V]||V,isCurrentTheme:V=>{const k=u[V];return k?Object.keys(k).every(J=>{const j=k[J],U=o[J];return typeof j=="object"&&typeof U=="object"?JSON.stringify(j)===JSON.stringify(U):j===U}):!1},updateConfig:()=>{i(o),n("configChange",o)},applyTheme:V=>{r(V),n("configChange",o)},resetConfig:()=>{s(),n("configChange",o)},exportConfig:()=>{const V=a();navigator.clipboard.writeText(V).then(()=>{alert("配置已复制到剪贴板")}).catch(()=>{const k=document.createElement("textarea");k.value=V,document.body.appendChild(k),k.select(),document.execCommand("copy"),document.body.removeChild(k),alert("配置已复制到剪贴板")})},importConfig:()=>{try{l(p.value)?(d.value=!1,p.value="",n("configChange",o),alert("配置导入成功")):alert("配置格式错误,请检查JSON格式")}catch(V){alert("配置导入失败:"+V)}}}}}),ac={class:"link-config-panel"},oc={class:"panel-header"},rc={class:"panel-content"},ic={class:"config-section"},sc={class:"path-type-selector"},lc=["value","onUpdate:modelValue"],dc={class:"path-preview"},cc={width:"60",height:"40",viewBox:"0 0 60 40"},uc=["d"],fc={class:"config-section"},mc={class:"config-row"},hc={class:"config-row"},pc={class:"value"},gc={class:"config-row"},yc={key:0,class:"config-section"},kc={class:"config-row"},bc={class:"value"},wc={key:1,class:"config-section"},Cc={class:"config-row"},Tc={class:"value"},Sc={class:"config-row"},vc={key:0,class:"config-row"},Dc={class:"value"},Ec={class:"config-section"},Mc={class:"config-row"},$c={key:0},Nc={class:"config-row"},Vc={class:"value"},_c={class:"config-row"},Ac=["placeholder"],Lc={class:"config-section"},Bc={class:"config-row"},Fc={key:0},Hc={class:"config-row"},Ic={class:"value"},Rc={class:"config-section"},Yc={class:"config-row"},zc={key:0},Oc={class:"config-row"},xc={class:"config-row"},Pc={class:"value"},Zc={class:"config-section"},Gc={class:"config-row"},Wc={class:"config-row"},Uc={class:"value"},jc={class:"config-row"},qc={class:"config-section"},Jc={class:"theme-selector"},Kc=["onClick"],Qc={class:"config-section"},Xc={class:"action-buttons"},eu={class:"import-actions"};function tu(t,n,o,r,i,s){return e.openBlock(),e.createElementBlock("div",ac,[e.createElementVNode("div",oc,[n[47]||(n[47]=e.createElementVNode("h3",null,"连线配置",-1)),e.createElementVNode("button",{class:"close-btn",onClick:n[0]||(n[0]=a=>t.$emit("close")),title:"关闭"},"×")]),e.createElementVNode("div",rc,[e.createElementVNode("div",ic,[n[48]||(n[48]=e.createElementVNode("h4",null,"路径类型",-1)),e.createElementVNode("div",sc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.pathTypes,a=>(e.openBlock(),e.createElementBlock("label",{key:a.value,class:e.normalizeClass(["path-type-option",{active:t.config.pathType===a.value}])},[e.withDirectives(e.createElementVNode("input",{type:"radio",value:a.value,"onUpdate:modelValue":l=>t.config.pathType=l,onChange:n[1]||(n[1]=(...l)=>t.updateConfig&&t.updateConfig(...l))},null,40,lc),[[e.vModelRadio,t.config.pathType]]),e.createElementVNode("div",dc,[(e.openBlock(),e.createElementBlock("svg",cc,[e.createElementVNode("path",{d:a.preview,stroke:"#3498db","stroke-width":"2",fill:"none"},null,8,uc)]))]),e.createElementVNode("span",null,e.toDisplayString(a.name),1)],2))),128))])]),e.createElementVNode("div",fc,[n[53]||(n[53]=e.createElementVNode("h4",null,"基础样式",-1)),e.createElementVNode("div",mc,[n[49]||(n[49]=e.createElementVNode("label",null,"颜色:",-1)),e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":n[2]||(n[2]=a=>t.config.color=a),onChange:n[3]||(n[3]=(...a)=>t.updateConfig&&t.updateConfig(...a)),class:"color-input"},null,544),[[e.vModelText,t.config.color]])]),e.createElementVNode("div",hc,[n[50]||(n[50]=e.createElementVNode("label",null,"线宽:",-1)),e.withDirectives(e.createElementVNode("input",{type:"range",min:"1",max:"5",step:"0.5","onUpdate:modelValue":n[4]||(n[4]=a=>t.config.width=a),onInput:n[5]||(n[5]=(...a)=>t.updateConfig&&t.updateConfig(...a)),class:"range-input"},null,544),[[e.vModelText,t.config.width,void 0,{number:!0}]]),e.createElementVNode("span",pc,e.toDisplayString(t.config.width)+"px",1)]),e.createElementVNode("div",gc,[n[52]||(n[52]=e.createElementVNode("label",null,"虚线样式:",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":n[6]||(n[6]=a=>t.config.dashArray=a),onChange:n[7]||(n[7]=(...a)=>t.updateConfig&&t.updateConfig(...a)),class:"select-input"},n[51]||(n[51]=[e.createElementVNode("option",{value:void 0},"实线",-1),e.createElementVNode("option",{value:"3,3"},"短虚线",-1),e.createElementVNode("option",{value:"5,5"},"中虚线",-1),e.createElementVNode("option",{value:"8,4"},"长虚线",-1),e.createElementVNode("option",{value:"2,2,8,2"},"点划线",-1)]),544),[[e.vModelSelect,t.config.dashArray]])])]),t.config.pathType==="bezier"?(e.openBlock(),e.createElementBlock("div",yc,[n[55]||(n[55]=e.createElementVNode("h4",null,"贝塞尔曲线配置",-1)),e.createElementVNode("div",kc,[n[54]||(n[54]=e.createElementVNode("label",null,"弯曲度:",-1)),e.withDirectives(e.createElementVNode("input",{type:"range",min:"0.1",max:"1",step:"0.1","onUpdate:modelValue":n[8]||(n[8]=a=>t.config.bezierCurvature=a),onInput:n[9]||(n[9]=(...a)=>t.updateConfig&&t.updateConfig(...a)),class:"range-input"},null,544),[[e.vModelText,t.config.bezierCurvature,void 0,{number:!0}]]),e.createElementVNode("span",bc,e.toDisplayString(t.config.bezierCurvature),1)])])):e.createCommentVNode("",!0),t.config.pathType==="right-angle"?(e.openBlock(),e.createElementBlock("div",wc,[n[59]||(n[59]=e.createElementVNode("h4",null,"直角连线配置",-1)),e.createElementVNode("div",Cc,[n[56]||(n[56]=e.createElementVNode("label",null,"偏移距离:",-1)),e.withDirectives(e.createElementVNode("input",{type:"range",min:"10",max:"80",step:"5","onUpdate:modelValue":n[10]||(n[10]=a=>t.config.rightAngleOffset=a),onInput:n[11]||(n[11]=(...a)=>t.updateConfig&&t.updateConfig(...a)),class:"range-input"},null,544),[[e.vModelText,t.config.rightAngleOffset,void 0,{number:!0}]]),e.createElementVNode("span",Tc,e.toDisplayString(t.config.rightAngleOffset)+"px",1)]),e.createElementVNode("div",Sc,[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":n[12]||(n[12]=a=>t.config.smoothCorners=a),onChange:n[13]||(n[13]=(...a)=>t.updateConfig&&t.updateConfig(...a))},null,544),[[e.vModelCheckbox,t.config.smoothCorners]]),n[57]||(n[57]=e.createTextVNode(" 平滑转角 "))])]),t.config.smoothCorners?(e.openBlock(),e.createElementBlock("div",vc,[n[58]||(n[58]=e.createElementVNode("label",null,"转角半径:",-1)),e.withDirectives(e.createElementVNode("input",{type:"range",min:"0",max:"15",step:"1","onUpdate:modelValue":n[14]||(n[14]=a=>t.config.cornerRadius=a),onInput:n[15]||(n[15]=(...a)=>t.updateConfig&&t.updateConfig(...a)),class:"range-input"},null,544),[[e.vModelText,t.config.cornerRadius,void 0,{number:!0}]]),e.createElementVNode("span",Dc,e.toDisplayString(t.config.cornerRadius)+"px",1)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",Ec,[n[63]||(n[63]=e.createElementVNode("h4",null,"箭头配置",-1)),e.createElementVNode("div",Mc,[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":n[16]||(n[16]=a=>t.config.showArrow=a),onChange:n[17]||(n[17]=(...a)=>t.updateConfig&&t.updateConfig(...a))},null,544),[[e.vModelCheckbox,t.config.showArrow]]),n[60]||(n[60]=e.createTextVNode(" 显示箭头 "))])]),t.config.showArrow?(e.openBlock(),e.createElementBlock("div",$c,[e.createElementVNode("div",Nc,[n[61]||(n[61]=e.createElementVNode("label",null,"箭头大小:",-1)),e.withDirectives(e.createElementVNode("input",{type:"range",min:"4",max:"16",step:"1","onUpdate:modelValue":n[18]||(n[18]=a=>t.config.arrowSize=a),onInput:n[19]||(n[19]=(...a)=>t.updateConfig&&t.updateConfig(...a)),class:"range-input"},null,544),[[e.vModelText,t.config.arrowSize,void 0,{number:!0}]]),e.createElementVNode("span",Vc,e.toDisplayString(t.config.arrowSize)+"px",1)]),e.createElementVNode("div",_c,[n[62]||(n[62]=e.createElementVNode("label",null,"箭头颜色:",-1)),e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":n[20]||(n[20]=a=>t.config.arrowColor=a),onChange:n[21]||(n[21]=(...a)=>t.updateConfig&&t.updateConfig(...a)),class:"color-input",placeholder:t.config.color},null,40,Ac),[[e.vModelText,t.config.arrowColor]]),e.createElementVNode("button",{onClick:n[22]||(n[22]=a=>{t.config.arrowColor=t.config.color,t.updateConfig()}),class:"sync-btn",title:"与线条颜色同步"}," 同步 ")])])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Lc,[n[67]||(n[67]=e.createElementVNode("h4",null,"虚线动画",-1)),e.createElementVNode("div",Bc,[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":n[23]||(n[23]=a=>t.config.enableDashAnimation=a),onChange:n[24]||(n[24]=(...a)=>t.updateConfig&&t.updateConfig(...a))},null,544),[[e.vModelCheckbox,t.config.enableDashAnimation]]),n[64]||(n[64]=e.createTextVNode(" 启用虚线流动动画 "))])]),t.config.enableDashAnimation?(e.openBlock(),e.createElementBlock("div",Fc,[e.createElementVNode("div",Hc,[n[65]||(n[65]=e.createElementVNode("label",null,"动画速度:",-1)),e.withDirectives(e.createElementVNode("input",{type:"range",min:"0.2",max:"3",step:"0.2","onUpdate:modelValue":n[25]||(n[25]=a=>t.config.dashAnimationSpeed=a),onInput:n[26]||(n[26]=(...a)=>t.updateConfig&&t.updateConfig(...a)),class:"range-input"},null,544),[[e.vModelText,t.config.dashAnimationSpeed,void 0,{number:!0}]]),e.createElementVNode("span",Ic,e.toDisplayString(t.config.dashAnimationSpeed)+"s",1)]),n[66]||(n[66]=e.createElementVNode("div",{class:"config-info"},[e.createElementVNode("small",null,"💡 虚线动画只在连线设置为虚线样式时显示")],-1))])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Rc,[n[71]||(n[71]=e.createElementVNode("h4",null,"标签配置",-1)),e.createElementVNode("div",Yc,[e.createElementVNode("label",null,[e.withDirectives(e.createElementVNode("input",{type:"checkbox","onUpdate:modelValue":n[27]||(n[27]=a=>t.config.showLabels=a),onChange:n[28]||(n[28]=(...a)=>t.updateConfig&&t.updateConfig(...a))},null,544),[[e.vModelCheckbox,t.config.showLabels]]),n[68]||(n[68]=e.createTextVNode(" 显示标签 "))])]),t.config.showLabels?(e.openBlock(),e.createElementBlock("div",zc,[e.createElementVNode("div",Oc,[n[69]||(n[69]=e.createElementVNode("label",null,"标签颜色:",-1)),e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":n[29]||(n[29]=a=>t.config.labelColor=a),onChange:n[30]||(n[30]=(...a)=>t.updateConfig&&t.updateConfig(...a)),class:"color-input"},null,544),[[e.vModelText,t.config.labelColor]])]),e.createElementVNode("div",xc,[n[70]||(n[70]=e.createElementVNode("label",null,"字体大小:",-1)),e.withDirectives(e.createElementVNode("input",{type:"range",min:"8",max:"16",step:"1","onUpdate:modelValue":n[31]||(n[31]=a=>t.config.labelFontSize=a),onInput:n[32]||(n[32]=(...a)=>t.updateConfig&&t.updateConfig(...a)),class:"range-input"},null,544),[[e.vModelText,t.config.labelFontSize,void 0,{number:!0}]]),e.createElementVNode("span",Pc,e.toDisplayString(t.config.labelFontSize)+"px",1)])])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Zc,[n[76]||(n[76]=e.createElementVNode("h4",null,"父子关系样式",-1)),e.createElementVNode("div",Gc,[n[72]||(n[72]=e.createElementVNode("label",null,"颜色:",-1)),e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":n[33]||(n[33]=a=>t.config.parentChildStyle.color=a),onChange:n[34]||(n[34]=(...a)=>t.updateConfig&&t.updateConfig(...a)),class:"color-input"},null,544),[[e.vModelText,t.config.parentChildStyle.color]])]),e.createElementVNode("div",Wc,[n[73]||(n[73]=e.createElementVNode("label",null,"线宽:",-1)),e.withDirectives(e.createElementVNode("input",{type:"range",min:"1",max:"3",step:"0.5","onUpdate:modelValue":n[35]||(n[35]=a=>t.config.parentChildStyle.width=a),onInput:n[36]||(n[36]=(...a)=>t.updateConfig&&t.updateConfig(...a)),class:"range-input"},null,544),[[e.vModelText,t.config.parentChildStyle.width,void 0,{number:!0}]]),e.createElementVNode("span",Uc,e.toDisplayString(t.config.parentChildStyle.width)+"px",1)]),e.createElementVNode("div",jc,[n[75]||(n[75]=e.createElementVNode("label",null,"虚线样式:",-1)),e.withDirectives(e.createElementVNode("select",{"onUpdate:modelValue":n[37]||(n[37]=a=>t.config.parentChildStyle.dashArray=a),onChange:n[38]||(n[38]=(...a)=>t.updateConfig&&t.updateConfig(...a)),class:"select-input"},n[74]||(n[74]=[e.createElementVNode("option",{value:void 0},"实线",-1),e.createElementVNode("option",{value:"3,3"},"短虚线",-1),e.createElementVNode("option",{value:"5,5"},"中虚线",-1),e.createElementVNode("option",{value:"8,4"},"长虚线",-1)]),544),[[e.vModelSelect,t.config.parentChildStyle.dashArray]])])]),e.createElementVNode("div",qc,[n[77]||(n[77]=e.createElementVNode("h4",null,"预设主题",-1)),e.createElementVNode("div",Jc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.themes,(a,l)=>(e.openBlock(),e.createElementBlock("button",{key:l,onClick:u=>t.applyTheme(l),class:e.normalizeClass(["theme-btn",{active:t.isCurrentTheme(l)}])},e.toDisplayString(t.getThemeName(l)),11,Kc))),128))])]),e.createElementVNode("div",Qc,[e.createElementVNode("div",Xc,[e.createElementVNode("button",{onClick:n[39]||(n[39]=(...a)=>t.resetConfig&&t.resetConfig(...a)),class:"reset-btn"},"重置为默认"),e.createElementVNode("button",{onClick:n[40]||(n[40]=(...a)=>t.exportConfig&&t.exportConfig(...a)),class:"export-btn"},"导出配置"),e.createElementVNode("button",{onClick:n[41]||(n[41]=a=>t.showImportDialog=!0),class:"import-btn"},"导入配置")])])]),t.showImportDialog?(e.openBlock(),e.createElementBlock("div",{key:0,class:"import-dialog-overlay",onClick:n[46]||(n[46]=a=>t.showImportDialog=!1)},[e.createElementVNode("div",{class:"import-dialog",onClick:n[45]||(n[45]=e.withModifiers(()=>{},["stop"]))},[n[78]||(n[78]=e.createElementVNode("h4",null,"导入配置",-1)),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":n[42]||(n[42]=a=>t.importText=a),placeholder:"粘贴配置JSON...",class:"import-textarea"},null,512),[[e.vModelText,t.importText]]),e.createElementVNode("div",eu,[e.createElementVNode("button",{onClick:n[43]||(n[43]=(...a)=>t.importConfig&&t.importConfig(...a)),class:"confirm-btn"},"导入"),e.createElementVNode("button",{onClick:n[44]||(n[44]=a=>t.showImportDialog=!1),class:"cancel-btn"},"取消")])])])):e.createCommentVNode("",!0)])}const nu=Ve(nc,[["render",tu],["__scopeId","data-v-4beccbb2"]]),au=t=>{t.component("Gantt",cn),t.component("Vue3Gantt",cn)},ou="1.0.0";ye.DatePicker=Bn,ye.Gantt=cn,ye.GanttConfigPanel=On,ye.GanttThemeSelector=Zd,ye.LanguageSelector=tc,ye.LinkConfigPanel=nu,ye.LinkPathType=Ne,ye.LinkThemes=Ct,ye.LinkType=de,ye.TaskType=wt,ye.default=cn,ye.ganttThemes=He,ye.install=au,ye.linkDataManager=Qt,ye.mutations=ce,ye.setLocale=Ln,ye.store=T,ye.useI18n=tt,ye.useLinkConfig=Tt,ye.version=ou,Object.defineProperties(ye,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
123
123
  //# sourceMappingURL=vue3-gantt.umd.js.map