apexgantt 3.4.0 → 3.4.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.
- package/apexgantt.es.min.js +1 -0
- package/apexgantt.min.js +1 -1
- package/index.d.ts +1 -0
- package/package.json +1 -1
package/apexgantt.es.min.js
CHANGED
|
@@ -18106,6 +18106,7 @@ if (typeof window !== "undefined") {
|
|
|
18106
18106
|
}
|
|
18107
18107
|
export {
|
|
18108
18108
|
ApexGantt,
|
|
18109
|
+
ColumnKey,
|
|
18109
18110
|
DarkTheme,
|
|
18110
18111
|
DataParser,
|
|
18111
18112
|
GanttEvents,
|
package/apexgantt.min.js
CHANGED
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
* Released under MIT license <https://lodash.com/license>
|
|
7
7
|
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
|
|
8
8
|
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
|
9
|
-
*/!function(t,e){(function(){var n,r="Expected a function",i="__lodash_hash_undefined__",o="__lodash_placeholder__",s=16,a=32,l=64,u=128,c=256,h=1/0,d=9007199254740991,f=NaN,p=4294967295,m=[["ary",u],["bind",1],["bindKey",2],["curry",8],["curryRight",s],["flip",512],["partial",a],["partialRight",l],["rearg",c]],g="[object Arguments]",y="[object Array]",v="[object Boolean]",b="[object Date]",w="[object Error]",x="[object Function]",_="[object GeneratorFunction]",k="[object Map]",C="[object Number]",S="[object Object]",E="[object Promise]",T="[object RegExp]",M="[object Set]",A="[object String]",D="[object Symbol]",$="[object WeakMap]",z="[object ArrayBuffer]",O="[object DataView]",I="[object Float32Array]",F="[object Float64Array]",L="[object Int8Array]",B="[object Int16Array]",j="[object Int32Array]",R="[object Uint8Array]",N="[object Uint8ClampedArray]",H="[object Uint16Array]",q="[object Uint32Array]",P=/\b__p \+= '';/g,W=/\b(__p \+=) '' \+/g,Y=/(__e\(.*?\)|\b__t\)) \+\n'';/g,U=/&(?:amp|lt|gt|quot|#39);/g,X=/[&<>"']/g,V=RegExp(U.source),G=RegExp(X.source),K=/<%-([\s\S]+?)%>/g,Z=/<%([\s\S]+?)%>/g,J=/<%=([\s\S]+?)%>/g,Q=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,tt=/^\w*$/,et=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,nt=/[\\^$.*+?()[\]{}|]/g,rt=RegExp(nt.source),it=/^\s+/,ot=/\s/,st=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,at=/\{\n\/\* \[wrapped with (.+)\] \*/,lt=/,? & /,ut=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ct=/[()=,{}\[\]\/\s]/,ht=/\\(\\)?/g,dt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ft=/\w*$/,pt=/^[-+]0x[0-9a-f]+$/i,mt=/^0b[01]+$/i,gt=/^\[object .+?Constructor\]$/,yt=/^0o[0-7]+$/i,vt=/^(?:0|[1-9]\d*)$/,bt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,wt=/($^)/,xt=/['\n\r\u2028\u2029\\]/g,_t="\\ud800-\\udfff",kt="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Ct="\\u2700-\\u27bf",St="a-z\\xdf-\\xf6\\xf8-\\xff",Et="A-Z\\xc0-\\xd6\\xd8-\\xde",Tt="\\ufe0e\\ufe0f",Mt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",At="['’]",Dt="["+_t+"]",$t="["+Mt+"]",zt="["+kt+"]",Ot="\\d+",It="["+Ct+"]",Ft="["+St+"]",Lt="[^"+_t+Mt+Ot+Ct+St+Et+"]",Bt="\\ud83c[\\udffb-\\udfff]",jt="[^"+_t+"]",Rt="(?:\\ud83c[\\udde6-\\uddff]){2}",Nt="[\\ud800-\\udbff][\\udc00-\\udfff]",Ht="["+Et+"]",qt="\\u200d",Pt="(?:"+Ft+"|"+Lt+")",Wt="(?:"+Ht+"|"+Lt+")",Yt="(?:['’](?:d|ll|m|re|s|t|ve))?",Ut="(?:['’](?:D|LL|M|RE|S|T|VE))?",Xt="(?:"+zt+"|"+Bt+")"+"?",Vt="["+Tt+"]?",Gt=Vt+Xt+("(?:"+qt+"(?:"+[jt,Rt,Nt].join("|")+")"+Vt+Xt+")*"),Kt="(?:"+[It,Rt,Nt].join("|")+")"+Gt,Zt="(?:"+[jt+zt+"?",zt,Rt,Nt,Dt].join("|")+")",Jt=RegExp(At,"g"),Qt=RegExp(zt,"g"),te=RegExp(Bt+"(?="+Bt+")|"+Zt+Gt,"g"),ee=RegExp([Ht+"?"+Ft+"+"+Yt+"(?="+[$t,Ht,"$"].join("|")+")",Wt+"+"+Ut+"(?="+[$t,Ht+Pt,"$"].join("|")+")",Ht+"?"+Pt+"+"+Yt,Ht+"+"+Ut,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Ot,Kt].join("|"),"g"),ne=RegExp("["+qt+_t+kt+Tt+"]"),re=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,ie=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],oe=-1,se={};se[I]=se[F]=se[L]=se[B]=se[j]=se[R]=se[N]=se[H]=se[q]=!0,se[g]=se[y]=se[z]=se[v]=se[O]=se[b]=se[w]=se[x]=se[k]=se[C]=se[S]=se[T]=se[M]=se[A]=se[$]=!1;var ae={};ae[g]=ae[y]=ae[z]=ae[O]=ae[v]=ae[b]=ae[I]=ae[F]=ae[L]=ae[B]=ae[j]=ae[k]=ae[C]=ae[S]=ae[T]=ae[M]=ae[A]=ae[D]=ae[R]=ae[N]=ae[H]=ae[q]=!0,ae[w]=ae[x]=ae[$]=!1;var le={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ue=parseFloat,ce=parseInt,he="object"==typeof dr&&dr&&dr.Object===Object&&dr,de="object"==typeof self&&self&&self.Object===Object&&self,fe=he||de||Function("return this")(),pe=e&&!e.nodeType&&e,me=pe&&t&&!t.nodeType&&t,ge=me&&me.exports===pe,ye=ge&&he.process,ve=function(){try{var t=me&&me.require&&me.require("util").types;return t||ye&&ye.binding&&ye.binding("util")}catch(e){}}(),be=ve&&ve.isArrayBuffer,we=ve&&ve.isDate,xe=ve&&ve.isMap,_e=ve&&ve.isRegExp,ke=ve&&ve.isSet,Ce=ve&&ve.isTypedArray;function Se(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function Ee(t,e,n,r){for(var i=-1,o=null==t?0:t.length;++i<o;){var s=t[i];e(r,s,n(s),t)}return r}function Te(t,e){for(var n=-1,r=null==t?0:t.length;++n<r&&!1!==e(t[n],n,t););return t}function Me(t,e){for(var n=null==t?0:t.length;n--&&!1!==e(t[n],n,t););return t}function Ae(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(!e(t[n],n,t))return!1;return!0}function De(t,e){for(var n=-1,r=null==t?0:t.length,i=0,o=[];++n<r;){var s=t[n];e(s,n,t)&&(o[i++]=s)}return o}function $e(t,e){return!!(null==t?0:t.length)&&He(t,e,0)>-1}function ze(t,e,n){for(var r=-1,i=null==t?0:t.length;++r<i;)if(n(e,t[r]))return!0;return!1}function Oe(t,e){for(var n=-1,r=null==t?0:t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i}function Ie(t,e){for(var n=-1,r=e.length,i=t.length;++n<r;)t[i+n]=e[n];return t}function Fe(t,e,n,r){var i=-1,o=null==t?0:t.length;for(r&&o&&(n=t[++i]);++i<o;)n=e(n,t[i],i,t);return n}function Le(t,e,n,r){var i=null==t?0:t.length;for(r&&i&&(n=t[--i]);i--;)n=e(n,t[i],i,t);return n}function Be(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(e(t[n],n,t))return!0;return!1}var je=Ye("length");function Re(t,e,n){var r;return n(t,(function(t,n,i){if(e(t,n,i))return r=n,!1})),r}function Ne(t,e,n,r){for(var i=t.length,o=n+(r?1:-1);r?o--:++o<i;)if(e(t[o],o,t))return o;return-1}function He(t,e,n){return e==e?function(t,e,n){var r=n-1,i=t.length;for(;++r<i;)if(t[r]===e)return r;return-1}(t,e,n):Ne(t,Pe,n)}function qe(t,e,n,r){for(var i=n-1,o=t.length;++i<o;)if(r(t[i],e))return i;return-1}function Pe(t){return t!=t}function We(t,e){var n=null==t?0:t.length;return n?Ve(t,e)/n:f}function Ye(t){return function(e){return null==e?n:e[t]}}function Ue(t){return function(e){return null==t?n:t[e]}}function Xe(t,e,n,r,i){return i(t,(function(t,i,o){n=r?(r=!1,t):e(n,t,i,o)})),n}function Ve(t,e){for(var r,i=-1,o=t.length;++i<o;){var s=e(t[i]);s!==n&&(r=r===n?s:r+s)}return r}function Ge(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}function Ke(t){return t?t.slice(0,fn(t)+1).replace(it,""):t}function Ze(t){return function(e){return t(e)}}function Je(t,e){return Oe(e,(function(e){return t[e]}))}function Qe(t,e){return t.has(e)}function tn(t,e){for(var n=-1,r=t.length;++n<r&&He(e,t[n],0)>-1;);return n}function en(t,e){for(var n=t.length;n--&&He(e,t[n],0)>-1;);return n}var nn=Ue({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),rn=Ue({"&":"&","<":"<",">":">",'"':""","'":"'"});function on(t){return"\\"+le[t]}function sn(t){return ne.test(t)}function an(t){var e=-1,n=Array(t.size);return t.forEach((function(t,r){n[++e]=[r,t]})),n}function ln(t,e){return function(n){return t(e(n))}}function un(t,e){for(var n=-1,r=t.length,i=0,s=[];++n<r;){var a=t[n];a!==e&&a!==o||(t[n]=o,s[i++]=n)}return s}function cn(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=t})),n}function hn(t){return sn(t)?function(t){var e=te.lastIndex=0;for(;te.test(t);)++e;return e}(t):je(t)}function dn(t){return sn(t)?function(t){return t.match(te)||[]}(t):function(t){return t.split("")}(t)}function fn(t){for(var e=t.length;e--&&ot.test(t.charAt(e)););return e}var pn=Ue({"&":"&","<":"<",">":">",""":'"',"'":"'"});var mn=function t(e){var ot,_t=(e=null==e?fe:mn.defaults(fe.Object(),e,mn.pick(fe,ie))).Array,kt=e.Date,Ct=e.Error,St=e.Function,Et=e.Math,Tt=e.Object,Mt=e.RegExp,At=e.String,Dt=e.TypeError,$t=_t.prototype,zt=St.prototype,Ot=Tt.prototype,It=e["__core-js_shared__"],Ft=zt.toString,Lt=Ot.hasOwnProperty,Bt=0,jt=(ot=/[^.]+$/.exec(It&&It.keys&&It.keys.IE_PROTO||""))?"Symbol(src)_1."+ot:"",Rt=Ot.toString,Nt=Ft.call(Tt),Ht=fe._,qt=Mt("^"+Ft.call(Lt).replace(nt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Pt=ge?e.Buffer:n,Wt=e.Symbol,Yt=e.Uint8Array,Ut=Pt?Pt.allocUnsafe:n,Xt=ln(Tt.getPrototypeOf,Tt),Vt=Tt.create,Gt=Ot.propertyIsEnumerable,Kt=$t.splice,Zt=Wt?Wt.isConcatSpreadable:n,te=Wt?Wt.iterator:n,ne=Wt?Wt.toStringTag:n,le=function(){try{var t=ho(Tt,"defineProperty");return t({},"",{}),t}catch(e){}}(),he=e.clearTimeout!==fe.clearTimeout&&e.clearTimeout,de=kt&&kt.now!==fe.Date.now&&kt.now,pe=e.setTimeout!==fe.setTimeout&&e.setTimeout,me=Et.ceil,ye=Et.floor,ve=Tt.getOwnPropertySymbols,je=Pt?Pt.isBuffer:n,Ue=e.isFinite,gn=$t.join,yn=ln(Tt.keys,Tt),vn=Et.max,bn=Et.min,wn=kt.now,xn=e.parseInt,_n=Et.random,kn=$t.reverse,Cn=ho(e,"DataView"),Sn=ho(e,"Map"),En=ho(e,"Promise"),Tn=ho(e,"Set"),Mn=ho(e,"WeakMap"),An=ho(Tt,"create"),Dn=Mn&&new Mn,$n={},zn=jo(Cn),On=jo(Sn),In=jo(En),Fn=jo(Tn),Ln=jo(Mn),Bn=Wt?Wt.prototype:n,jn=Bn?Bn.valueOf:n,Rn=Bn?Bn.toString:n;function Nn(t){if(ea(t)&&!Ws(t)&&!(t instanceof Wn)){if(t instanceof Pn)return t;if(Lt.call(t,"__wrapped__"))return Ro(t)}return new Pn(t)}var Hn=function(){function t(){}return function(e){if(!ta(e))return{};if(Vt)return Vt(e);t.prototype=e;var r=new t;return t.prototype=n,r}}();function qn(){}function Pn(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=n}function Wn(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=p,this.__views__=[]}function Yn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function Un(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function Xn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function Vn(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new Xn;++e<n;)this.add(t[e])}function Gn(t){var e=this.__data__=new Un(t);this.size=e.size}function Kn(t,e){var n=Ws(t),r=!n&&Ps(t),i=!n&&!r&&Vs(t),o=!n&&!r&&!i&&ua(t),s=n||r||i||o,a=s?Ge(t.length,At):[],l=a.length;for(var u in t)!e&&!Lt.call(t,u)||s&&("length"==u||i&&("offset"==u||"parent"==u)||o&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||bo(u,l))||a.push(u);return a}function Zn(t){var e=t.length;return e?t[Vr(0,e-1)]:n}function Jn(t,e){return Fo(Ai(t),ar(e,0,t.length))}function Qn(t){return Fo(Ai(t))}function tr(t,e,r){(r!==n&&!Ns(t[e],r)||r===n&&!(e in t))&&or(t,e,r)}function er(t,e,r){var i=t[e];Lt.call(t,e)&&Ns(i,r)&&(r!==n||e in t)||or(t,e,r)}function nr(t,e){for(var n=t.length;n--;)if(Ns(t[n][0],e))return n;return-1}function rr(t,e,n,r){return dr(t,(function(t,i,o){e(r,t,n(t),o)})),r}function ir(t,e){return t&&Di(e,$a(e),t)}function or(t,e,n){"__proto__"==e&&le?le(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}function sr(t,e){for(var r=-1,i=e.length,o=_t(i),s=null==t;++r<i;)o[r]=s?n:Ea(t,e[r]);return o}function ar(t,e,r){return t==t&&(r!==n&&(t=t<=r?t:r),e!==n&&(t=t>=e?t:e)),t}function lr(t,e,r,i,o,s){var a,l=1&e,u=2&e,c=4&e;if(r&&(a=o?r(t,i,o,s):r(t)),a!==n)return a;if(!ta(t))return t;var h=Ws(t);if(h){if(a=function(t){var e=t.length,n=new t.constructor(e);e&&"string"==typeof t[0]&&Lt.call(t,"index")&&(n.index=t.index,n.input=t.input);return n}(t),!l)return Ai(t,a)}else{var d=mo(t),f=d==x||d==_;if(Vs(t))return ki(t,l);if(d==S||d==g||f&&!o){if(a=u||f?{}:yo(t),!l)return u?function(t,e){return Di(t,po(t),e)}(t,function(t,e){return t&&Di(e,za(e),t)}(a,t)):function(t,e){return Di(t,fo(t),e)}(t,ir(a,t))}else{if(!ae[d])return o?t:{};a=function(t,e,n){var r=t.constructor;switch(e){case z:return Ci(t);case v:case b:return new r(+t);case O:return function(t,e){var n=e?Ci(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}(t,n);case I:case F:case L:case B:case j:case R:case N:case H:case q:return Si(t,n);case k:return new r;case C:case A:return new r(t);case T:return function(t){var e=new t.constructor(t.source,ft.exec(t));return e.lastIndex=t.lastIndex,e}(t);case M:return new r;case D:return i=t,jn?Tt(jn.call(i)):{}}var i}(t,d,l)}}s||(s=new Gn);var p=s.get(t);if(p)return p;s.set(t,a),sa(t)?t.forEach((function(n){a.add(lr(n,e,r,n,t,s))})):na(t)&&t.forEach((function(n,i){a.set(i,lr(n,e,r,i,t,s))}));var m=h?n:(c?u?io:ro:u?za:$a)(t);return Te(m||t,(function(n,i){m&&(n=t[i=n]),er(a,i,lr(n,e,r,i,t,s))})),a}function ur(t,e,r){var i=r.length;if(null==t)return!i;for(t=Tt(t);i--;){var o=r[i],s=e[o],a=t[o];if(a===n&&!(o in t)||!s(a))return!1}return!0}function cr(t,e,i){if("function"!=typeof t)throw new Dt(r);return $o((function(){t.apply(n,i)}),e)}function hr(t,e,n,r){var i=-1,o=$e,s=!0,a=t.length,l=[],u=e.length;if(!a)return l;n&&(e=Oe(e,Ze(n))),r?(o=ze,s=!1):e.length>=200&&(o=Qe,s=!1,e=new Vn(e));t:for(;++i<a;){var c=t[i],h=null==n?c:n(c);if(c=r||0!==c?c:0,s&&h==h){for(var d=u;d--;)if(e[d]===h)continue t;l.push(c)}else o(e,h,r)||l.push(c)}return l}Nn.templateSettings={escape:K,evaluate:Z,interpolate:J,variable:"",imports:{_:Nn}},Nn.prototype=qn.prototype,Nn.prototype.constructor=Nn,Pn.prototype=Hn(qn.prototype),Pn.prototype.constructor=Pn,Wn.prototype=Hn(qn.prototype),Wn.prototype.constructor=Wn,Yn.prototype.clear=function(){this.__data__=An?An(null):{},this.size=0},Yn.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},Yn.prototype.get=function(t){var e=this.__data__;if(An){var r=e[t];return r===i?n:r}return Lt.call(e,t)?e[t]:n},Yn.prototype.has=function(t){var e=this.__data__;return An?e[t]!==n:Lt.call(e,t)},Yn.prototype.set=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=An&&e===n?i:e,this},Un.prototype.clear=function(){this.__data__=[],this.size=0},Un.prototype.delete=function(t){var e=this.__data__,n=nr(e,t);return!(n<0)&&(n==e.length-1?e.pop():Kt.call(e,n,1),--this.size,!0)},Un.prototype.get=function(t){var e=this.__data__,r=nr(e,t);return r<0?n:e[r][1]},Un.prototype.has=function(t){return nr(this.__data__,t)>-1},Un.prototype.set=function(t,e){var n=this.__data__,r=nr(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this},Xn.prototype.clear=function(){this.size=0,this.__data__={hash:new Yn,map:new(Sn||Un),string:new Yn}},Xn.prototype.delete=function(t){var e=uo(this,t).delete(t);return this.size-=e?1:0,e},Xn.prototype.get=function(t){return uo(this,t).get(t)},Xn.prototype.has=function(t){return uo(this,t).has(t)},Xn.prototype.set=function(t,e){var n=uo(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this},Vn.prototype.add=Vn.prototype.push=function(t){return this.__data__.set(t,i),this},Vn.prototype.has=function(t){return this.__data__.has(t)},Gn.prototype.clear=function(){this.__data__=new Un,this.size=0},Gn.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},Gn.prototype.get=function(t){return this.__data__.get(t)},Gn.prototype.has=function(t){return this.__data__.has(t)},Gn.prototype.set=function(t,e){var n=this.__data__;if(n instanceof Un){var r=n.__data__;if(!Sn||r.length<199)return r.push([t,e]),this.size=++n.size,this;n=this.__data__=new Xn(r)}return n.set(t,e),this.size=n.size,this};var dr=Oi(wr),fr=Oi(xr,!0);function pr(t,e){var n=!0;return dr(t,(function(t,r,i){return n=!!e(t,r,i)})),n}function mr(t,e,r){for(var i=-1,o=t.length;++i<o;){var s=t[i],a=e(s);if(null!=a&&(l===n?a==a&&!la(a):r(a,l)))var l=a,u=s}return u}function gr(t,e){var n=[];return dr(t,(function(t,r,i){e(t,r,i)&&n.push(t)})),n}function yr(t,e,n,r,i){var o=-1,s=t.length;for(n||(n=vo),i||(i=[]);++o<s;){var a=t[o];e>0&&n(a)?e>1?yr(a,e-1,n,r,i):Ie(i,a):r||(i[i.length]=a)}return i}var vr=Ii(),br=Ii(!0);function wr(t,e){return t&&vr(t,e,$a)}function xr(t,e){return t&&br(t,e,$a)}function _r(t,e){return De(e,(function(e){return Zs(t[e])}))}function kr(t,e){for(var r=0,i=(e=bi(e,t)).length;null!=t&&r<i;)t=t[Bo(e[r++])];return r&&r==i?t:n}function Cr(t,e,n){var r=e(t);return Ws(t)?r:Ie(r,n(t))}function Sr(t){return null==t?t===n?"[object Undefined]":"[object Null]":ne&&ne in Tt(t)?function(t){var e=Lt.call(t,ne),r=t[ne];try{t[ne]=n;var i=!0}catch(s){}var o=Rt.call(t);i&&(e?t[ne]=r:delete t[ne]);return o}(t):function(t){return Rt.call(t)}(t)}function Er(t,e){return t>e}function Tr(t,e){return null!=t&&Lt.call(t,e)}function Mr(t,e){return null!=t&&e in Tt(t)}function Ar(t,e,r){for(var i=r?ze:$e,o=t[0].length,s=t.length,a=s,l=_t(s),u=1/0,c=[];a--;){var h=t[a];a&&e&&(h=Oe(h,Ze(e))),u=bn(h.length,u),l[a]=!r&&(e||o>=120&&h.length>=120)?new Vn(a&&h):n}h=t[0];var d=-1,f=l[0];t:for(;++d<o&&c.length<u;){var p=h[d],m=e?e(p):p;if(p=r||0!==p?p:0,!(f?Qe(f,m):i(c,m,r))){for(a=s;--a;){var g=l[a];if(!(g?Qe(g,m):i(t[a],m,r)))continue t}f&&f.push(m),c.push(p)}}return c}function Dr(t,e,r){var i=null==(t=Mo(t,e=bi(e,t)))?t:t[Bo(Ko(e))];return null==i?n:Se(i,t,r)}function $r(t){return ea(t)&&Sr(t)==g}function zr(t,e,r,i,o){return t===e||(null==t||null==e||!ea(t)&&!ea(e)?t!=t&&e!=e:function(t,e,r,i,o,s){var a=Ws(t),l=Ws(e),u=a?y:mo(t),c=l?y:mo(e),h=(u=u==g?S:u)==S,d=(c=c==g?S:c)==S,f=u==c;if(f&&Vs(t)){if(!Vs(e))return!1;a=!0,h=!1}if(f&&!h)return s||(s=new Gn),a||ua(t)?eo(t,e,r,i,o,s):function(t,e,n,r,i,o,s){switch(n){case O:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case z:return!(t.byteLength!=e.byteLength||!o(new Yt(t),new Yt(e)));case v:case b:case C:return Ns(+t,+e);case w:return t.name==e.name&&t.message==e.message;case T:case A:return t==e+"";case k:var a=an;case M:var l=1&r;if(a||(a=cn),t.size!=e.size&&!l)return!1;var u=s.get(t);if(u)return u==e;r|=2,s.set(t,e);var c=eo(a(t),a(e),r,i,o,s);return s.delete(t),c;case D:if(jn)return jn.call(t)==jn.call(e)}return!1}(t,e,u,r,i,o,s);if(!(1&r)){var p=h&&Lt.call(t,"__wrapped__"),m=d&&Lt.call(e,"__wrapped__");if(p||m){var x=p?t.value():t,_=m?e.value():e;return s||(s=new Gn),o(x,_,r,i,s)}}if(!f)return!1;return s||(s=new Gn),function(t,e,r,i,o,s){var a=1&r,l=ro(t),u=l.length,c=ro(e),h=c.length;if(u!=h&&!a)return!1;var d=u;for(;d--;){var f=l[d];if(!(a?f in e:Lt.call(e,f)))return!1}var p=s.get(t),m=s.get(e);if(p&&m)return p==e&&m==t;var g=!0;s.set(t,e),s.set(e,t);var y=a;for(;++d<u;){var v=t[f=l[d]],b=e[f];if(i)var w=a?i(b,v,f,e,t,s):i(v,b,f,t,e,s);if(!(w===n?v===b||o(v,b,r,i,s):w)){g=!1;break}y||(y="constructor"==f)}if(g&&!y){var x=t.constructor,_=e.constructor;x==_||!("constructor"in t)||!("constructor"in e)||"function"==typeof x&&x instanceof x&&"function"==typeof _&&_ instanceof _||(g=!1)}return s.delete(t),s.delete(e),g}(t,e,r,i,o,s)}(t,e,r,i,zr,o))}function Or(t,e,r,i){var o=r.length,s=o,a=!i;if(null==t)return!s;for(t=Tt(t);o--;){var l=r[o];if(a&&l[2]?l[1]!==t[l[0]]:!(l[0]in t))return!1}for(;++o<s;){var u=(l=r[o])[0],c=t[u],h=l[1];if(a&&l[2]){if(c===n&&!(u in t))return!1}else{var d=new Gn;if(i)var f=i(c,h,u,t,e,d);if(!(f===n?zr(h,c,3,i,d):f))return!1}}return!0}function Ir(t){return!(!ta(t)||function(t){return!!jt&&jt in t}(t))&&(Zs(t)?qt:gt).test(jo(t))}function Fr(t){return"function"==typeof t?t:null==t?rl:"object"==typeof t?Ws(t)?Hr(t[0],t[1]):Nr(t):dl(t)}function Lr(t){if(!Co(t))return yn(t);var e=[];for(var n in Tt(t))Lt.call(t,n)&&"constructor"!=n&&e.push(n);return e}function Br(t){if(!ta(t))return function(t){var e=[];if(null!=t)for(var n in Tt(t))e.push(n);return e}(t);var e=Co(t),n=[];for(var r in t)("constructor"!=r||!e&&Lt.call(t,r))&&n.push(r);return n}function jr(t,e){return t<e}function Rr(t,e){var n=-1,r=Us(t)?_t(t.length):[];return dr(t,(function(t,i,o){r[++n]=e(t,i,o)})),r}function Nr(t){var e=co(t);return 1==e.length&&e[0][2]?Eo(e[0][0],e[0][1]):function(n){return n===t||Or(n,t,e)}}function Hr(t,e){return xo(t)&&So(e)?Eo(Bo(t),e):function(r){var i=Ea(r,t);return i===n&&i===e?Ta(r,t):zr(e,i,3)}}function qr(t,e,r,i,o){t!==e&&vr(e,(function(s,a){if(o||(o=new Gn),ta(s))!function(t,e,r,i,o,s,a){var l=Ao(t,r),u=Ao(e,r),c=a.get(u);if(c)return void tr(t,r,c);var h=s?s(l,u,r+"",t,e,a):n,d=h===n;if(d){var f=Ws(u),p=!f&&Vs(u),m=!f&&!p&&ua(u);h=u,f||p||m?Ws(l)?h=l:Xs(l)?h=Ai(l):p?(d=!1,h=ki(u,!0)):m?(d=!1,h=Si(u,!0)):h=[]:ia(u)||Ps(u)?(h=l,Ps(l)?h=ya(l):ta(l)&&!Zs(l)||(h=yo(u))):d=!1}d&&(a.set(u,h),o(h,u,i,s,a),a.delete(u));tr(t,r,h)}(t,e,a,r,qr,i,o);else{var l=i?i(Ao(t,a),s,a+"",t,e,o):n;l===n&&(l=s),tr(t,a,l)}}),za)}function Pr(t,e){var r=t.length;if(r)return bo(e+=e<0?r:0,r)?t[e]:n}function Wr(t,e,n){e=e.length?Oe(e,(function(t){return Ws(t)?function(e){return kr(e,1===t.length?t[0]:t)}:t})):[rl];var r=-1;return e=Oe(e,Ze(lo())),function(t,e){var n=t.length;for(t.sort(e);n--;)t[n]=t[n].value;return t}(Rr(t,(function(t,n,i){return{criteria:Oe(e,(function(e){return e(t)})),index:++r,value:t}})),(function(t,e){return function(t,e,n){var r=-1,i=t.criteria,o=e.criteria,s=i.length,a=n.length;for(;++r<s;){var l=Ei(i[r],o[r]);if(l)return r>=a?l:l*("desc"==n[r]?-1:1)}return t.index-e.index}(t,e,n)}))}function Yr(t,e,n){for(var r=-1,i=e.length,o={};++r<i;){var s=e[r],a=kr(t,s);n(a,s)&&Qr(o,bi(s,t),a)}return o}function Ur(t,e,n,r){var i=r?qe:He,o=-1,s=e.length,a=t;for(t===e&&(e=Ai(e)),n&&(a=Oe(t,Ze(n)));++o<s;)for(var l=0,u=e[o],c=n?n(u):u;(l=i(a,c,l,r))>-1;)a!==t&&Kt.call(a,l,1),Kt.call(t,l,1);return t}function Xr(t,e){for(var n=t?e.length:0,r=n-1;n--;){var i=e[n];if(n==r||i!==o){var o=i;bo(i)?Kt.call(t,i,1):hi(t,i)}}return t}function Vr(t,e){return t+ye(_n()*(e-t+1))}function Gr(t,e){var n="";if(!t||e<1||e>d)return n;do{e%2&&(n+=t),(e=ye(e/2))&&(t+=t)}while(e);return n}function Kr(t,e){return zo(To(t,e,rl),t+"")}function Zr(t){return Zn(Na(t))}function Jr(t,e){var n=Na(t);return Fo(n,ar(e,0,n.length))}function Qr(t,e,r,i){if(!ta(t))return t;for(var o=-1,s=(e=bi(e,t)).length,a=s-1,l=t;null!=l&&++o<s;){var u=Bo(e[o]),c=r;if("__proto__"===u||"constructor"===u||"prototype"===u)return t;if(o!=a){var h=l[u];(c=i?i(h,u,l):n)===n&&(c=ta(h)?h:bo(e[o+1])?[]:{})}er(l,u,c),l=l[u]}return t}var ti=Dn?function(t,e){return Dn.set(t,e),t}:rl,ei=le?function(t,e){return le(t,"toString",{configurable:!0,enumerable:!1,value:tl(e),writable:!0})}:rl;function ni(t){return Fo(Na(t))}function ri(t,e,n){var r=-1,i=t.length;e<0&&(e=-e>i?0:i+e),(n=n>i?i:n)<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var o=_t(i);++r<i;)o[r]=t[r+e];return o}function ii(t,e){var n;return dr(t,(function(t,r,i){return!(n=e(t,r,i))})),!!n}function oi(t,e,n){var r=0,i=null==t?r:t.length;if("number"==typeof e&&e==e&&i<=2147483647){for(;r<i;){var o=r+i>>>1,s=t[o];null!==s&&!la(s)&&(n?s<=e:s<e)?r=o+1:i=o}return i}return si(t,e,rl,n)}function si(t,e,r,i){var o=0,s=null==t?0:t.length;if(0===s)return 0;for(var a=(e=r(e))!=e,l=null===e,u=la(e),c=e===n;o<s;){var h=ye((o+s)/2),d=r(t[h]),f=d!==n,p=null===d,m=d==d,g=la(d);if(a)var y=i||m;else y=c?m&&(i||f):l?m&&f&&(i||!p):u?m&&f&&!p&&(i||!g):!p&&!g&&(i?d<=e:d<e);y?o=h+1:s=h}return bn(s,4294967294)}function ai(t,e){for(var n=-1,r=t.length,i=0,o=[];++n<r;){var s=t[n],a=e?e(s):s;if(!n||!Ns(a,l)){var l=a;o[i++]=0===s?0:s}}return o}function li(t){return"number"==typeof t?t:la(t)?f:+t}function ui(t){if("string"==typeof t)return t;if(Ws(t))return Oe(t,ui)+"";if(la(t))return Rn?Rn.call(t):"";var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function ci(t,e,n){var r=-1,i=$e,o=t.length,s=!0,a=[],l=a;if(n)s=!1,i=ze;else if(o>=200){var u=e?null:Gi(t);if(u)return cn(u);s=!1,i=Qe,l=new Vn}else l=e?[]:a;t:for(;++r<o;){var c=t[r],h=e?e(c):c;if(c=n||0!==c?c:0,s&&h==h){for(var d=l.length;d--;)if(l[d]===h)continue t;e&&l.push(h),a.push(c)}else i(l,h,n)||(l!==a&&l.push(h),a.push(c))}return a}function hi(t,e){return null==(t=Mo(t,e=bi(e,t)))||delete t[Bo(Ko(e))]}function di(t,e,n,r){return Qr(t,e,n(kr(t,e)),r)}function fi(t,e,n,r){for(var i=t.length,o=r?i:-1;(r?o--:++o<i)&&e(t[o],o,t););return n?ri(t,r?0:o,r?o+1:i):ri(t,r?o+1:0,r?i:o)}function pi(t,e){var n=t;return n instanceof Wn&&(n=n.value()),Fe(e,(function(t,e){return e.func.apply(e.thisArg,Ie([t],e.args))}),n)}function mi(t,e,n){var r=t.length;if(r<2)return r?ci(t[0]):[];for(var i=-1,o=_t(r);++i<r;)for(var s=t[i],a=-1;++a<r;)a!=i&&(o[i]=hr(o[i]||s,t[a],e,n));return ci(yr(o,1),e,n)}function gi(t,e,r){for(var i=-1,o=t.length,s=e.length,a={};++i<o;){var l=i<s?e[i]:n;r(a,t[i],l)}return a}function yi(t){return Xs(t)?t:[]}function vi(t){return"function"==typeof t?t:rl}function bi(t,e){return Ws(t)?t:xo(t,e)?[t]:Lo(va(t))}var wi=Kr;function xi(t,e,r){var i=t.length;return r=r===n?i:r,!e&&r>=i?t:ri(t,e,r)}var _i=he||function(t){return fe.clearTimeout(t)};function ki(t,e){if(e)return t.slice();var n=t.length,r=Ut?Ut(n):new t.constructor(n);return t.copy(r),r}function Ci(t){var e=new t.constructor(t.byteLength);return new Yt(e).set(new Yt(t)),e}function Si(t,e){var n=e?Ci(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function Ei(t,e){if(t!==e){var r=t!==n,i=null===t,o=t==t,s=la(t),a=e!==n,l=null===e,u=e==e,c=la(e);if(!l&&!c&&!s&&t>e||s&&a&&u&&!l&&!c||i&&a&&u||!r&&u||!o)return 1;if(!i&&!s&&!c&&t<e||c&&r&&o&&!i&&!s||l&&r&&o||!a&&o||!u)return-1}return 0}function Ti(t,e,n,r){for(var i=-1,o=t.length,s=n.length,a=-1,l=e.length,u=vn(o-s,0),c=_t(l+u),h=!r;++a<l;)c[a]=e[a];for(;++i<s;)(h||i<o)&&(c[n[i]]=t[i]);for(;u--;)c[a++]=t[i++];return c}function Mi(t,e,n,r){for(var i=-1,o=t.length,s=-1,a=n.length,l=-1,u=e.length,c=vn(o-a,0),h=_t(c+u),d=!r;++i<c;)h[i]=t[i];for(var f=i;++l<u;)h[f+l]=e[l];for(;++s<a;)(d||i<o)&&(h[f+n[s]]=t[i++]);return h}function Ai(t,e){var n=-1,r=t.length;for(e||(e=_t(r));++n<r;)e[n]=t[n];return e}function Di(t,e,r,i){var o=!r;r||(r={});for(var s=-1,a=e.length;++s<a;){var l=e[s],u=i?i(r[l],t[l],l,r,t):n;u===n&&(u=t[l]),o?or(r,l,u):er(r,l,u)}return r}function $i(t,e){return function(n,r){var i=Ws(n)?Ee:rr,o=e?e():{};return i(n,t,lo(r,2),o)}}function zi(t){return Kr((function(e,r){var i=-1,o=r.length,s=o>1?r[o-1]:n,a=o>2?r[2]:n;for(s=t.length>3&&"function"==typeof s?(o--,s):n,a&&wo(r[0],r[1],a)&&(s=o<3?n:s,o=1),e=Tt(e);++i<o;){var l=r[i];l&&t(e,l,i,s)}return e}))}function Oi(t,e){return function(n,r){if(null==n)return n;if(!Us(n))return t(n,r);for(var i=n.length,o=e?i:-1,s=Tt(n);(e?o--:++o<i)&&!1!==r(s[o],o,s););return n}}function Ii(t){return function(e,n,r){for(var i=-1,o=Tt(e),s=r(e),a=s.length;a--;){var l=s[t?a:++i];if(!1===n(o[l],l,o))break}return e}}function Fi(t){return function(e){var r=sn(e=va(e))?dn(e):n,i=r?r[0]:e.charAt(0),o=r?xi(r,1).join(""):e.slice(1);return i[t]()+o}}function Li(t){return function(e){return Fe(Za(Pa(e).replace(Jt,"")),t,"")}}function Bi(t){return function(){var e=arguments;switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3]);case 5:return new t(e[0],e[1],e[2],e[3],e[4]);case 6:return new t(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new t(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var n=Hn(t.prototype),r=t.apply(n,e);return ta(r)?r:n}}function ji(t){return function(e,r,i){var o=Tt(e);if(!Us(e)){var s=lo(r,3);e=$a(e),r=function(t){return s(o[t],t,o)}}var a=t(e,r,i);return a>-1?o[s?e[a]:a]:n}}function Ri(t){return no((function(e){var i=e.length,o=i,s=Pn.prototype.thru;for(t&&e.reverse();o--;){var a=e[o];if("function"!=typeof a)throw new Dt(r);if(s&&!l&&"wrapper"==so(a))var l=new Pn([],!0)}for(o=l?o:i;++o<i;){var u=so(a=e[o]),c="wrapper"==u?oo(a):n;l=c&&_o(c[0])&&424==c[1]&&!c[4].length&&1==c[9]?l[so(c[0])].apply(l,c[3]):1==a.length&&_o(a)?l[u]():l.thru(a)}return function(){var t=arguments,n=t[0];if(l&&1==t.length&&Ws(n))return l.plant(n).value();for(var r=0,o=i?e[r].apply(this,t):n;++r<i;)o=e[r].call(this,o);return o}}))}function Ni(t,e,r,i,o,s,a,l,c,h){var d=e&u,f=1&e,p=2&e,m=24&e,g=512&e,y=p?n:Bi(t);return function u(){for(var v=arguments.length,b=_t(v),w=v;w--;)b[w]=arguments[w];if(m)var x=ao(u),_=function(t,e){for(var n=t.length,r=0;n--;)t[n]===e&&++r;return r}(b,x);if(i&&(b=Ti(b,i,o,m)),s&&(b=Mi(b,s,a,m)),v-=_,m&&v<h){var k=un(b,x);return Xi(t,e,Ni,u.placeholder,r,b,k,l,c,h-v)}var C=f?r:this,S=p?C[t]:t;return v=b.length,l?b=function(t,e){var r=t.length,i=bn(e.length,r),o=Ai(t);for(;i--;){var s=e[i];t[i]=bo(s,r)?o[s]:n}return t}(b,l):g&&v>1&&b.reverse(),d&&c<v&&(b.length=c),this&&this!==fe&&this instanceof u&&(S=y||Bi(S)),S.apply(C,b)}}function Hi(t,e){return function(n,r){return function(t,e,n,r){return wr(t,(function(t,i,o){e(r,n(t),i,o)})),r}(n,t,e(r),{})}}function qi(t,e){return function(r,i){var o;if(r===n&&i===n)return e;if(r!==n&&(o=r),i!==n){if(o===n)return i;"string"==typeof r||"string"==typeof i?(r=ui(r),i=ui(i)):(r=li(r),i=li(i)),o=t(r,i)}return o}}function Pi(t){return no((function(e){return e=Oe(e,Ze(lo())),Kr((function(n){var r=this;return t(e,(function(t){return Se(t,r,n)}))}))}))}function Wi(t,e){var r=(e=e===n?" ":ui(e)).length;if(r<2)return r?Gr(e,t):e;var i=Gr(e,me(t/hn(e)));return sn(e)?xi(dn(i),0,t).join(""):i.slice(0,t)}function Yi(t){return function(e,r,i){return i&&"number"!=typeof i&&wo(e,r,i)&&(r=i=n),e=fa(e),r===n?(r=e,e=0):r=fa(r),function(t,e,n,r){for(var i=-1,o=vn(me((e-t)/(n||1)),0),s=_t(o);o--;)s[r?o:++i]=t,t+=n;return s}(e,r,i=i===n?e<r?1:-1:fa(i),t)}}function Ui(t){return function(e,n){return"string"==typeof e&&"string"==typeof n||(e=ga(e),n=ga(n)),t(e,n)}}function Xi(t,e,r,i,o,s,u,c,h,d){var f=8&e;e|=f?a:l,4&(e&=~(f?l:a))||(e&=-4);var p=[t,e,o,f?s:n,f?u:n,f?n:s,f?n:u,c,h,d],m=r.apply(n,p);return _o(t)&&Do(m,p),m.placeholder=i,Oo(m,t,e)}function Vi(t){var e=Et[t];return function(t,n){if(t=ga(t),(n=null==n?0:bn(pa(n),292))&&Ue(t)){var r=(va(t)+"e").split("e");return+((r=(va(e(r[0]+"e"+(+r[1]+n)))+"e").split("e"))[0]+"e"+(+r[1]-n))}return e(t)}}var Gi=Tn&&1/cn(new Tn([,-0]))[1]==h?function(t){return new Tn(t)}:ll;function Ki(t){return function(e){var n=mo(e);return n==k?an(e):n==M?function(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=[t,t]})),n}(e):function(t,e){return Oe(e,(function(e){return[e,t[e]]}))}(e,t(e))}}function Zi(t,e,i,h,d,f,p,m){var g=2&e;if(!g&&"function"!=typeof t)throw new Dt(r);var y=h?h.length:0;if(y||(e&=-97,h=d=n),p=p===n?p:vn(pa(p),0),m=m===n?m:pa(m),y-=d?d.length:0,e&l){var v=h,b=d;h=d=n}var w=g?n:oo(t),x=[t,e,i,h,d,v,b,f,p,m];if(w&&function(t,e){var n=t[1],r=e[1],i=n|r,s=i<131,a=r==u&&8==n||r==u&&n==c&&t[7].length<=e[8]||384==r&&e[7].length<=e[8]&&8==n;if(!s&&!a)return t;1&r&&(t[2]=e[2],i|=1&n?0:4);var l=e[3];if(l){var h=t[3];t[3]=h?Ti(h,l,e[4]):l,t[4]=h?un(t[3],o):e[4]}(l=e[5])&&(h=t[5],t[5]=h?Mi(h,l,e[6]):l,t[6]=h?un(t[5],o):e[6]);(l=e[7])&&(t[7]=l);r&u&&(t[8]=null==t[8]?e[8]:bn(t[8],e[8]));null==t[9]&&(t[9]=e[9]);t[0]=e[0],t[1]=i}(x,w),t=x[0],e=x[1],i=x[2],h=x[3],d=x[4],!(m=x[9]=x[9]===n?g?0:t.length:vn(x[9]-y,0))&&24&e&&(e&=-25),e&&1!=e)_=8==e||e==s?function(t,e,r){var i=Bi(t);return function o(){for(var s=arguments.length,a=_t(s),l=s,u=ao(o);l--;)a[l]=arguments[l];var c=s<3&&a[0]!==u&&a[s-1]!==u?[]:un(a,u);return(s-=c.length)<r?Xi(t,e,Ni,o.placeholder,n,a,c,n,n,r-s):Se(this&&this!==fe&&this instanceof o?i:t,this,a)}}(t,e,m):e!=a&&33!=e||d.length?Ni.apply(n,x):function(t,e,n,r){var i=1&e,o=Bi(t);return function e(){for(var s=-1,a=arguments.length,l=-1,u=r.length,c=_t(u+a),h=this&&this!==fe&&this instanceof e?o:t;++l<u;)c[l]=r[l];for(;a--;)c[l++]=arguments[++s];return Se(h,i?n:this,c)}}(t,e,i,h);else var _=function(t,e,n){var r=1&e,i=Bi(t);return function e(){return(this&&this!==fe&&this instanceof e?i:t).apply(r?n:this,arguments)}}(t,e,i);return Oo((w?ti:Do)(_,x),t,e)}function Ji(t,e,r,i){return t===n||Ns(t,Ot[r])&&!Lt.call(i,r)?e:t}function Qi(t,e,r,i,o,s){return ta(t)&&ta(e)&&(s.set(e,t),qr(t,e,n,Qi,s),s.delete(e)),t}function to(t){return ia(t)?n:t}function eo(t,e,r,i,o,s){var a=1&r,l=t.length,u=e.length;if(l!=u&&!(a&&u>l))return!1;var c=s.get(t),h=s.get(e);if(c&&h)return c==e&&h==t;var d=-1,f=!0,p=2&r?new Vn:n;for(s.set(t,e),s.set(e,t);++d<l;){var m=t[d],g=e[d];if(i)var y=a?i(g,m,d,e,t,s):i(m,g,d,t,e,s);if(y!==n){if(y)continue;f=!1;break}if(p){if(!Be(e,(function(t,e){if(!Qe(p,e)&&(m===t||o(m,t,r,i,s)))return p.push(e)}))){f=!1;break}}else if(m!==g&&!o(m,g,r,i,s)){f=!1;break}}return s.delete(t),s.delete(e),f}function no(t){return zo(To(t,n,Yo),t+"")}function ro(t){return Cr(t,$a,fo)}function io(t){return Cr(t,za,po)}var oo=Dn?function(t){return Dn.get(t)}:ll;function so(t){for(var e=t.name+"",n=$n[e],r=Lt.call($n,e)?n.length:0;r--;){var i=n[r],o=i.func;if(null==o||o==t)return i.name}return e}function ao(t){return(Lt.call(Nn,"placeholder")?Nn:t).placeholder}function lo(){var t=Nn.iteratee||il;return t=t===il?Fr:t,arguments.length?t(arguments[0],arguments[1]):t}function uo(t,e){var n,r,i=t.__data__;return("string"==(r=typeof(n=e))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?i["string"==typeof e?"string":"hash"]:i.map}function co(t){for(var e=$a(t),n=e.length;n--;){var r=e[n],i=t[r];e[n]=[r,i,So(i)]}return e}function ho(t,e){var r=function(t,e){return null==t?n:t[e]}(t,e);return Ir(r)?r:n}var fo=ve?function(t){return null==t?[]:(t=Tt(t),De(ve(t),(function(e){return Gt.call(t,e)})))}:ml,po=ve?function(t){for(var e=[];t;)Ie(e,fo(t)),t=Xt(t);return e}:ml,mo=Sr;function go(t,e,n){for(var r=-1,i=(e=bi(e,t)).length,o=!1;++r<i;){var s=Bo(e[r]);if(!(o=null!=t&&n(t,s)))break;t=t[s]}return o||++r!=i?o:!!(i=null==t?0:t.length)&&Qs(i)&&bo(s,i)&&(Ws(t)||Ps(t))}function yo(t){return"function"!=typeof t.constructor||Co(t)?{}:Hn(Xt(t))}function vo(t){return Ws(t)||Ps(t)||!!(Zt&&t&&t[Zt])}function bo(t,e){var n=typeof t;return!!(e=null==e?d:e)&&("number"==n||"symbol"!=n&&vt.test(t))&&t>-1&&t%1==0&&t<e}function wo(t,e,n){if(!ta(n))return!1;var r=typeof e;return!!("number"==r?Us(n)&&bo(e,n.length):"string"==r&&e in n)&&Ns(n[e],t)}function xo(t,e){if(Ws(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!la(t))||(tt.test(t)||!Q.test(t)||null!=e&&t in Tt(e))}function _o(t){var e=so(t),n=Nn[e];if("function"!=typeof n||!(e in Wn.prototype))return!1;if(t===n)return!0;var r=oo(n);return!!r&&t===r[0]}(Cn&&mo(new Cn(new ArrayBuffer(1)))!=O||Sn&&mo(new Sn)!=k||En&&mo(En.resolve())!=E||Tn&&mo(new Tn)!=M||Mn&&mo(new Mn)!=$)&&(mo=function(t){var e=Sr(t),r=e==S?t.constructor:n,i=r?jo(r):"";if(i)switch(i){case zn:return O;case On:return k;case In:return E;case Fn:return M;case Ln:return $}return e});var ko=It?Zs:gl;function Co(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||Ot)}function So(t){return t==t&&!ta(t)}function Eo(t,e){return function(r){return null!=r&&(r[t]===e&&(e!==n||t in Tt(r)))}}function To(t,e,r){return e=vn(e===n?t.length-1:e,0),function(){for(var n=arguments,i=-1,o=vn(n.length-e,0),s=_t(o);++i<o;)s[i]=n[e+i];i=-1;for(var a=_t(e+1);++i<e;)a[i]=n[i];return a[e]=r(s),Se(t,this,a)}}function Mo(t,e){return e.length<2?t:kr(t,ri(e,0,-1))}function Ao(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}var Do=Io(ti),$o=pe||function(t,e){return fe.setTimeout(t,e)},zo=Io(ei);function Oo(t,e,n){var r=e+"";return zo(t,function(t,e){var n=e.length;if(!n)return t;var r=n-1;return e[r]=(n>1?"& ":"")+e[r],e=e.join(n>2?", ":" "),t.replace(st,"{\n/* [wrapped with "+e+"] */\n")}(r,function(t,e){return Te(m,(function(n){var r="_."+n[0];e&n[1]&&!$e(t,r)&&t.push(r)})),t.sort()}(function(t){var e=t.match(at);return e?e[1].split(lt):[]}(r),n)))}function Io(t){var e=0,r=0;return function(){var i=wn(),o=16-(i-r);if(r=i,o>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(n,arguments)}}function Fo(t,e){var r=-1,i=t.length,o=i-1;for(e=e===n?i:e;++r<e;){var s=Vr(r,o),a=t[s];t[s]=t[r],t[r]=a}return t.length=e,t}var Lo=function(t){var e=Is(t,(function(t){return 500===n.size&&n.clear(),t})),n=e.cache;return e}((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(et,(function(t,n,r,i){e.push(r?i.replace(ht,"$1"):n||t)})),e}));function Bo(t){if("string"==typeof t||la(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function jo(t){if(null!=t){try{return Ft.call(t)}catch(e){}try{return t+""}catch(e){}}return""}function Ro(t){if(t instanceof Wn)return t.clone();var e=new Pn(t.__wrapped__,t.__chain__);return e.__actions__=Ai(t.__actions__),e.__index__=t.__index__,e.__values__=t.__values__,e}var No=Kr((function(t,e){return Xs(t)?hr(t,yr(e,1,Xs,!0)):[]})),Ho=Kr((function(t,e){var r=Ko(e);return Xs(r)&&(r=n),Xs(t)?hr(t,yr(e,1,Xs,!0),lo(r,2)):[]})),qo=Kr((function(t,e){var r=Ko(e);return Xs(r)&&(r=n),Xs(t)?hr(t,yr(e,1,Xs,!0),n,r):[]}));function Po(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:pa(n);return i<0&&(i=vn(r+i,0)),Ne(t,lo(e,3),i)}function Wo(t,e,r){var i=null==t?0:t.length;if(!i)return-1;var o=i-1;return r!==n&&(o=pa(r),o=r<0?vn(i+o,0):bn(o,i-1)),Ne(t,lo(e,3),o,!0)}function Yo(t){return(null==t?0:t.length)?yr(t,1):[]}function Uo(t){return t&&t.length?t[0]:n}var Xo=Kr((function(t){var e=Oe(t,yi);return e.length&&e[0]===t[0]?Ar(e):[]})),Vo=Kr((function(t){var e=Ko(t),r=Oe(t,yi);return e===Ko(r)?e=n:r.pop(),r.length&&r[0]===t[0]?Ar(r,lo(e,2)):[]})),Go=Kr((function(t){var e=Ko(t),r=Oe(t,yi);return(e="function"==typeof e?e:n)&&r.pop(),r.length&&r[0]===t[0]?Ar(r,n,e):[]}));function Ko(t){var e=null==t?0:t.length;return e?t[e-1]:n}var Zo=Kr(Jo);function Jo(t,e){return t&&t.length&&e&&e.length?Ur(t,e):t}var Qo=no((function(t,e){var n=null==t?0:t.length,r=sr(t,e);return Xr(t,Oe(e,(function(t){return bo(t,n)?+t:t})).sort(Ei)),r}));function ts(t){return null==t?t:kn.call(t)}var es=Kr((function(t){return ci(yr(t,1,Xs,!0))})),ns=Kr((function(t){var e=Ko(t);return Xs(e)&&(e=n),ci(yr(t,1,Xs,!0),lo(e,2))})),rs=Kr((function(t){var e=Ko(t);return e="function"==typeof e?e:n,ci(yr(t,1,Xs,!0),n,e)}));function is(t){if(!t||!t.length)return[];var e=0;return t=De(t,(function(t){if(Xs(t))return e=vn(t.length,e),!0})),Ge(e,(function(e){return Oe(t,Ye(e))}))}function os(t,e){if(!t||!t.length)return[];var r=is(t);return null==e?r:Oe(r,(function(t){return Se(e,n,t)}))}var ss=Kr((function(t,e){return Xs(t)?hr(t,e):[]})),as=Kr((function(t){return mi(De(t,Xs))})),ls=Kr((function(t){var e=Ko(t);return Xs(e)&&(e=n),mi(De(t,Xs),lo(e,2))})),us=Kr((function(t){var e=Ko(t);return e="function"==typeof e?e:n,mi(De(t,Xs),n,e)})),cs=Kr(is);var hs=Kr((function(t){var e=t.length,r=e>1?t[e-1]:n;return r="function"==typeof r?(t.pop(),r):n,os(t,r)}));function ds(t){var e=Nn(t);return e.__chain__=!0,e}function fs(t,e){return e(t)}var ps=no((function(t){var e=t.length,r=e?t[0]:0,i=this.__wrapped__,o=function(e){return sr(e,t)};return!(e>1||this.__actions__.length)&&i instanceof Wn&&bo(r)?((i=i.slice(r,+r+(e?1:0))).__actions__.push({func:fs,args:[o],thisArg:n}),new Pn(i,this.__chain__).thru((function(t){return e&&!t.length&&t.push(n),t}))):this.thru(o)}));var ms=$i((function(t,e,n){Lt.call(t,n)?++t[n]:or(t,n,1)}));var gs=ji(Po),ys=ji(Wo);function vs(t,e){return(Ws(t)?Te:dr)(t,lo(e,3))}function bs(t,e){return(Ws(t)?Me:fr)(t,lo(e,3))}var ws=$i((function(t,e,n){Lt.call(t,n)?t[n].push(e):or(t,n,[e])}));var xs=Kr((function(t,e,n){var r=-1,i="function"==typeof e,o=Us(t)?_t(t.length):[];return dr(t,(function(t){o[++r]=i?Se(e,t,n):Dr(t,e,n)})),o})),_s=$i((function(t,e,n){or(t,n,e)}));function ks(t,e){return(Ws(t)?Oe:Rr)(t,lo(e,3))}var Cs=$i((function(t,e,n){t[n?0:1].push(e)}),(function(){return[[],[]]}));var Ss=Kr((function(t,e){if(null==t)return[];var n=e.length;return n>1&&wo(t,e[0],e[1])?e=[]:n>2&&wo(e[0],e[1],e[2])&&(e=[e[0]]),Wr(t,yr(e,1),[])})),Es=de||function(){return fe.Date.now()};function Ts(t,e,r){return e=r?n:e,e=t&&null==e?t.length:e,Zi(t,u,n,n,n,n,e)}function Ms(t,e){var i;if("function"!=typeof e)throw new Dt(r);return t=pa(t),function(){return--t>0&&(i=e.apply(this,arguments)),t<=1&&(e=n),i}}var As=Kr((function(t,e,n){var r=1;if(n.length){var i=un(n,ao(As));r|=a}return Zi(t,r,e,n,i)})),Ds=Kr((function(t,e,n){var r=3;if(n.length){var i=un(n,ao(Ds));r|=a}return Zi(e,r,t,n,i)}));function $s(t,e,i){var o,s,a,l,u,c,h=0,d=!1,f=!1,p=!0;if("function"!=typeof t)throw new Dt(r);function m(e){var r=o,i=s;return o=s=n,h=e,l=t.apply(i,r)}function g(t){var r=t-c;return c===n||r>=e||r<0||f&&t-h>=a}function y(){var t=Es();if(g(t))return v(t);u=$o(y,function(t){var n=e-(t-c);return f?bn(n,a-(t-h)):n}(t))}function v(t){return u=n,p&&o?m(t):(o=s=n,l)}function b(){var t=Es(),r=g(t);if(o=arguments,s=this,c=t,r){if(u===n)return function(t){return h=t,u=$o(y,e),d?m(t):l}(c);if(f)return _i(u),u=$o(y,e),m(c)}return u===n&&(u=$o(y,e)),l}return e=ga(e)||0,ta(i)&&(d=!!i.leading,a=(f="maxWait"in i)?vn(ga(i.maxWait)||0,e):a,p="trailing"in i?!!i.trailing:p),b.cancel=function(){u!==n&&_i(u),h=0,o=c=s=u=n},b.flush=function(){return u===n?l:v(Es())},b}var zs=Kr((function(t,e){return cr(t,1,e)})),Os=Kr((function(t,e,n){return cr(t,ga(e)||0,n)}));function Is(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new Dt(r);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var s=t.apply(this,r);return n.cache=o.set(i,s)||o,s};return n.cache=new(Is.Cache||Xn),n}function Fs(t){if("function"!=typeof t)throw new Dt(r);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}Is.Cache=Xn;var Ls=wi((function(t,e){var n=(e=1==e.length&&Ws(e[0])?Oe(e[0],Ze(lo())):Oe(yr(e,1),Ze(lo()))).length;return Kr((function(r){for(var i=-1,o=bn(r.length,n);++i<o;)r[i]=e[i].call(this,r[i]);return Se(t,this,r)}))})),Bs=Kr((function(t,e){var r=un(e,ao(Bs));return Zi(t,a,n,e,r)})),js=Kr((function(t,e){var r=un(e,ao(js));return Zi(t,l,n,e,r)})),Rs=no((function(t,e){return Zi(t,c,n,n,n,e)}));function Ns(t,e){return t===e||t!=t&&e!=e}var Hs=Ui(Er),qs=Ui((function(t,e){return t>=e})),Ps=$r(function(){return arguments}())?$r:function(t){return ea(t)&&Lt.call(t,"callee")&&!Gt.call(t,"callee")},Ws=_t.isArray,Ys=be?Ze(be):function(t){return ea(t)&&Sr(t)==z};function Us(t){return null!=t&&Qs(t.length)&&!Zs(t)}function Xs(t){return ea(t)&&Us(t)}var Vs=je||gl,Gs=we?Ze(we):function(t){return ea(t)&&Sr(t)==b};function Ks(t){if(!ea(t))return!1;var e=Sr(t);return e==w||"[object DOMException]"==e||"string"==typeof t.message&&"string"==typeof t.name&&!ia(t)}function Zs(t){if(!ta(t))return!1;var e=Sr(t);return e==x||e==_||"[object AsyncFunction]"==e||"[object Proxy]"==e}function Js(t){return"number"==typeof t&&t==pa(t)}function Qs(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=d}function ta(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function ea(t){return null!=t&&"object"==typeof t}var na=xe?Ze(xe):function(t){return ea(t)&&mo(t)==k};function ra(t){return"number"==typeof t||ea(t)&&Sr(t)==C}function ia(t){if(!ea(t)||Sr(t)!=S)return!1;var e=Xt(t);if(null===e)return!0;var n=Lt.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&Ft.call(n)==Nt}var oa=_e?Ze(_e):function(t){return ea(t)&&Sr(t)==T};var sa=ke?Ze(ke):function(t){return ea(t)&&mo(t)==M};function aa(t){return"string"==typeof t||!Ws(t)&&ea(t)&&Sr(t)==A}function la(t){return"symbol"==typeof t||ea(t)&&Sr(t)==D}var ua=Ce?Ze(Ce):function(t){return ea(t)&&Qs(t.length)&&!!se[Sr(t)]};var ca=Ui(jr),ha=Ui((function(t,e){return t<=e}));function da(t){if(!t)return[];if(Us(t))return aa(t)?dn(t):Ai(t);if(te&&t[te])return function(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}(t[te]());var e=mo(t);return(e==k?an:e==M?cn:Na)(t)}function fa(t){return t?(t=ga(t))===h||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}function pa(t){var e=fa(t),n=e%1;return e==e?n?e-n:e:0}function ma(t){return t?ar(pa(t),0,p):0}function ga(t){if("number"==typeof t)return t;if(la(t))return f;if(ta(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=ta(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=Ke(t);var n=mt.test(t);return n||yt.test(t)?ce(t.slice(2),n?2:8):pt.test(t)?f:+t}function ya(t){return Di(t,za(t))}function va(t){return null==t?"":ui(t)}var ba=zi((function(t,e){if(Co(e)||Us(e))Di(e,$a(e),t);else for(var n in e)Lt.call(e,n)&&er(t,n,e[n])})),wa=zi((function(t,e){Di(e,za(e),t)})),xa=zi((function(t,e,n,r){Di(e,za(e),t,r)})),_a=zi((function(t,e,n,r){Di(e,$a(e),t,r)})),ka=no(sr);var Ca=Kr((function(t,e){t=Tt(t);var r=-1,i=e.length,o=i>2?e[2]:n;for(o&&wo(e[0],e[1],o)&&(i=1);++r<i;)for(var s=e[r],a=za(s),l=-1,u=a.length;++l<u;){var c=a[l],h=t[c];(h===n||Ns(h,Ot[c])&&!Lt.call(t,c))&&(t[c]=s[c])}return t})),Sa=Kr((function(t){return t.push(n,Qi),Se(Ia,n,t)}));function Ea(t,e,r){var i=null==t?n:kr(t,e);return i===n?r:i}function Ta(t,e){return null!=t&&go(t,e,Mr)}var Ma=Hi((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=Rt.call(e)),t[e]=n}),tl(rl)),Aa=Hi((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=Rt.call(e)),Lt.call(t,e)?t[e].push(n):t[e]=[n]}),lo),Da=Kr(Dr);function $a(t){return Us(t)?Kn(t):Lr(t)}function za(t){return Us(t)?Kn(t,!0):Br(t)}var Oa=zi((function(t,e,n){qr(t,e,n)})),Ia=zi((function(t,e,n,r){qr(t,e,n,r)})),Fa=no((function(t,e){var n={};if(null==t)return n;var r=!1;e=Oe(e,(function(e){return e=bi(e,t),r||(r=e.length>1),e})),Di(t,io(t),n),r&&(n=lr(n,7,to));for(var i=e.length;i--;)hi(n,e[i]);return n}));var La=no((function(t,e){return null==t?{}:function(t,e){return Yr(t,e,(function(e,n){return Ta(t,n)}))}(t,e)}));function Ba(t,e){if(null==t)return{};var n=Oe(io(t),(function(t){return[t]}));return e=lo(e),Yr(t,n,(function(t,n){return e(t,n[0])}))}var ja=Ki($a),Ra=Ki(za);function Na(t){return null==t?[]:Je(t,$a(t))}var Ha=Li((function(t,e,n){return e=e.toLowerCase(),t+(n?qa(e):e)}));function qa(t){return Ka(va(t).toLowerCase())}function Pa(t){return(t=va(t))&&t.replace(bt,nn).replace(Qt,"")}var Wa=Li((function(t,e,n){return t+(n?"-":"")+e.toLowerCase()})),Ya=Li((function(t,e,n){return t+(n?" ":"")+e.toLowerCase()})),Ua=Fi("toLowerCase");var Xa=Li((function(t,e,n){return t+(n?"_":"")+e.toLowerCase()}));var Va=Li((function(t,e,n){return t+(n?" ":"")+Ka(e)}));var Ga=Li((function(t,e,n){return t+(n?" ":"")+e.toUpperCase()})),Ka=Fi("toUpperCase");function Za(t,e,r){return t=va(t),(e=r?n:e)===n?function(t){return re.test(t)}(t)?function(t){return t.match(ee)||[]}(t):function(t){return t.match(ut)||[]}(t):t.match(e)||[]}var Ja=Kr((function(t,e){try{return Se(t,n,e)}catch(r){return Ks(r)?r:new Ct(r)}})),Qa=no((function(t,e){return Te(e,(function(e){e=Bo(e),or(t,e,As(t[e],t))})),t}));function tl(t){return function(){return t}}var el=Ri(),nl=Ri(!0);function rl(t){return t}function il(t){return Fr("function"==typeof t?t:lr(t,1))}var ol=Kr((function(t,e){return function(n){return Dr(n,t,e)}})),sl=Kr((function(t,e){return function(n){return Dr(t,n,e)}}));function al(t,e,n){var r=$a(e),i=_r(e,r);null!=n||ta(e)&&(i.length||!r.length)||(n=e,e=t,t=this,i=_r(e,$a(e)));var o=!(ta(n)&&"chain"in n&&!n.chain),s=Zs(t);return Te(i,(function(n){var r=e[n];t[n]=r,s&&(t.prototype[n]=function(){var e=this.__chain__;if(o||e){var n=t(this.__wrapped__);return(n.__actions__=Ai(this.__actions__)).push({func:r,args:arguments,thisArg:t}),n.__chain__=e,n}return r.apply(t,Ie([this.value()],arguments))})})),t}function ll(){}var ul=Pi(Oe),cl=Pi(Ae),hl=Pi(Be);function dl(t){return xo(t)?Ye(Bo(t)):function(t){return function(e){return kr(e,t)}}(t)}var fl=Yi(),pl=Yi(!0);function ml(){return[]}function gl(){return!1}var yl=qi((function(t,e){return t+e}),0),vl=Vi("ceil"),bl=qi((function(t,e){return t/e}),1),wl=Vi("floor");var xl,_l=qi((function(t,e){return t*e}),1),kl=Vi("round"),Cl=qi((function(t,e){return t-e}),0);return Nn.after=function(t,e){if("function"!=typeof e)throw new Dt(r);return t=pa(t),function(){if(--t<1)return e.apply(this,arguments)}},Nn.ary=Ts,Nn.assign=ba,Nn.assignIn=wa,Nn.assignInWith=xa,Nn.assignWith=_a,Nn.at=ka,Nn.before=Ms,Nn.bind=As,Nn.bindAll=Qa,Nn.bindKey=Ds,Nn.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return Ws(t)?t:[t]},Nn.chain=ds,Nn.chunk=function(t,e,r){e=(r?wo(t,e,r):e===n)?1:vn(pa(e),0);var i=null==t?0:t.length;if(!i||e<1)return[];for(var o=0,s=0,a=_t(me(i/e));o<i;)a[s++]=ri(t,o,o+=e);return a},Nn.compact=function(t){for(var e=-1,n=null==t?0:t.length,r=0,i=[];++e<n;){var o=t[e];o&&(i[r++]=o)}return i},Nn.concat=function(){var t=arguments.length;if(!t)return[];for(var e=_t(t-1),n=arguments[0],r=t;r--;)e[r-1]=arguments[r];return Ie(Ws(n)?Ai(n):[n],yr(e,1))},Nn.cond=function(t){var e=null==t?0:t.length,n=lo();return t=e?Oe(t,(function(t){if("function"!=typeof t[1])throw new Dt(r);return[n(t[0]),t[1]]})):[],Kr((function(n){for(var r=-1;++r<e;){var i=t[r];if(Se(i[0],this,n))return Se(i[1],this,n)}}))},Nn.conforms=function(t){return function(t){var e=$a(t);return function(n){return ur(n,t,e)}}(lr(t,1))},Nn.constant=tl,Nn.countBy=ms,Nn.create=function(t,e){var n=Hn(t);return null==e?n:ir(n,e)},Nn.curry=function t(e,r,i){var o=Zi(e,8,n,n,n,n,n,r=i?n:r);return o.placeholder=t.placeholder,o},Nn.curryRight=function t(e,r,i){var o=Zi(e,s,n,n,n,n,n,r=i?n:r);return o.placeholder=t.placeholder,o},Nn.debounce=$s,Nn.defaults=Ca,Nn.defaultsDeep=Sa,Nn.defer=zs,Nn.delay=Os,Nn.difference=No,Nn.differenceBy=Ho,Nn.differenceWith=qo,Nn.drop=function(t,e,r){var i=null==t?0:t.length;return i?ri(t,(e=r||e===n?1:pa(e))<0?0:e,i):[]},Nn.dropRight=function(t,e,r){var i=null==t?0:t.length;return i?ri(t,0,(e=i-(e=r||e===n?1:pa(e)))<0?0:e):[]},Nn.dropRightWhile=function(t,e){return t&&t.length?fi(t,lo(e,3),!0,!0):[]},Nn.dropWhile=function(t,e){return t&&t.length?fi(t,lo(e,3),!0):[]},Nn.fill=function(t,e,r,i){var o=null==t?0:t.length;return o?(r&&"number"!=typeof r&&wo(t,e,r)&&(r=0,i=o),function(t,e,r,i){var o=t.length;for((r=pa(r))<0&&(r=-r>o?0:o+r),(i=i===n||i>o?o:pa(i))<0&&(i+=o),i=r>i?0:ma(i);r<i;)t[r++]=e;return t}(t,e,r,i)):[]},Nn.filter=function(t,e){return(Ws(t)?De:gr)(t,lo(e,3))},Nn.flatMap=function(t,e){return yr(ks(t,e),1)},Nn.flatMapDeep=function(t,e){return yr(ks(t,e),h)},Nn.flatMapDepth=function(t,e,r){return r=r===n?1:pa(r),yr(ks(t,e),r)},Nn.flatten=Yo,Nn.flattenDeep=function(t){return(null==t?0:t.length)?yr(t,h):[]},Nn.flattenDepth=function(t,e){return(null==t?0:t.length)?yr(t,e=e===n?1:pa(e)):[]},Nn.flip=function(t){return Zi(t,512)},Nn.flow=el,Nn.flowRight=nl,Nn.fromPairs=function(t){for(var e=-1,n=null==t?0:t.length,r={};++e<n;){var i=t[e];r[i[0]]=i[1]}return r},Nn.functions=function(t){return null==t?[]:_r(t,$a(t))},Nn.functionsIn=function(t){return null==t?[]:_r(t,za(t))},Nn.groupBy=ws,Nn.initial=function(t){return(null==t?0:t.length)?ri(t,0,-1):[]},Nn.intersection=Xo,Nn.intersectionBy=Vo,Nn.intersectionWith=Go,Nn.invert=Ma,Nn.invertBy=Aa,Nn.invokeMap=xs,Nn.iteratee=il,Nn.keyBy=_s,Nn.keys=$a,Nn.keysIn=za,Nn.map=ks,Nn.mapKeys=function(t,e){var n={};return e=lo(e,3),wr(t,(function(t,r,i){or(n,e(t,r,i),t)})),n},Nn.mapValues=function(t,e){var n={};return e=lo(e,3),wr(t,(function(t,r,i){or(n,r,e(t,r,i))})),n},Nn.matches=function(t){return Nr(lr(t,1))},Nn.matchesProperty=function(t,e){return Hr(t,lr(e,1))},Nn.memoize=Is,Nn.merge=Oa,Nn.mergeWith=Ia,Nn.method=ol,Nn.methodOf=sl,Nn.mixin=al,Nn.negate=Fs,Nn.nthArg=function(t){return t=pa(t),Kr((function(e){return Pr(e,t)}))},Nn.omit=Fa,Nn.omitBy=function(t,e){return Ba(t,Fs(lo(e)))},Nn.once=function(t){return Ms(2,t)},Nn.orderBy=function(t,e,r,i){return null==t?[]:(Ws(e)||(e=null==e?[]:[e]),Ws(r=i?n:r)||(r=null==r?[]:[r]),Wr(t,e,r))},Nn.over=ul,Nn.overArgs=Ls,Nn.overEvery=cl,Nn.overSome=hl,Nn.partial=Bs,Nn.partialRight=js,Nn.partition=Cs,Nn.pick=La,Nn.pickBy=Ba,Nn.property=dl,Nn.propertyOf=function(t){return function(e){return null==t?n:kr(t,e)}},Nn.pull=Zo,Nn.pullAll=Jo,Nn.pullAllBy=function(t,e,n){return t&&t.length&&e&&e.length?Ur(t,e,lo(n,2)):t},Nn.pullAllWith=function(t,e,r){return t&&t.length&&e&&e.length?Ur(t,e,n,r):t},Nn.pullAt=Qo,Nn.range=fl,Nn.rangeRight=pl,Nn.rearg=Rs,Nn.reject=function(t,e){return(Ws(t)?De:gr)(t,Fs(lo(e,3)))},Nn.remove=function(t,e){var n=[];if(!t||!t.length)return n;var r=-1,i=[],o=t.length;for(e=lo(e,3);++r<o;){var s=t[r];e(s,r,t)&&(n.push(s),i.push(r))}return Xr(t,i),n},Nn.rest=function(t,e){if("function"!=typeof t)throw new Dt(r);return Kr(t,e=e===n?e:pa(e))},Nn.reverse=ts,Nn.sampleSize=function(t,e,r){return e=(r?wo(t,e,r):e===n)?1:pa(e),(Ws(t)?Jn:Jr)(t,e)},Nn.set=function(t,e,n){return null==t?t:Qr(t,e,n)},Nn.setWith=function(t,e,r,i){return i="function"==typeof i?i:n,null==t?t:Qr(t,e,r,i)},Nn.shuffle=function(t){return(Ws(t)?Qn:ni)(t)},Nn.slice=function(t,e,r){var i=null==t?0:t.length;return i?(r&&"number"!=typeof r&&wo(t,e,r)?(e=0,r=i):(e=null==e?0:pa(e),r=r===n?i:pa(r)),ri(t,e,r)):[]},Nn.sortBy=Ss,Nn.sortedUniq=function(t){return t&&t.length?ai(t):[]},Nn.sortedUniqBy=function(t,e){return t&&t.length?ai(t,lo(e,2)):[]},Nn.split=function(t,e,r){return r&&"number"!=typeof r&&wo(t,e,r)&&(e=r=n),(r=r===n?p:r>>>0)?(t=va(t))&&("string"==typeof e||null!=e&&!oa(e))&&!(e=ui(e))&&sn(t)?xi(dn(t),0,r):t.split(e,r):[]},Nn.spread=function(t,e){if("function"!=typeof t)throw new Dt(r);return e=null==e?0:vn(pa(e),0),Kr((function(n){var r=n[e],i=xi(n,0,e);return r&&Ie(i,r),Se(t,this,i)}))},Nn.tail=function(t){var e=null==t?0:t.length;return e?ri(t,1,e):[]},Nn.take=function(t,e,r){return t&&t.length?ri(t,0,(e=r||e===n?1:pa(e))<0?0:e):[]},Nn.takeRight=function(t,e,r){var i=null==t?0:t.length;return i?ri(t,(e=i-(e=r||e===n?1:pa(e)))<0?0:e,i):[]},Nn.takeRightWhile=function(t,e){return t&&t.length?fi(t,lo(e,3),!1,!0):[]},Nn.takeWhile=function(t,e){return t&&t.length?fi(t,lo(e,3)):[]},Nn.tap=function(t,e){return e(t),t},Nn.throttle=function(t,e,n){var i=!0,o=!0;if("function"!=typeof t)throw new Dt(r);return ta(n)&&(i="leading"in n?!!n.leading:i,o="trailing"in n?!!n.trailing:o),$s(t,e,{leading:i,maxWait:e,trailing:o})},Nn.thru=fs,Nn.toArray=da,Nn.toPairs=ja,Nn.toPairsIn=Ra,Nn.toPath=function(t){return Ws(t)?Oe(t,Bo):la(t)?[t]:Ai(Lo(va(t)))},Nn.toPlainObject=ya,Nn.transform=function(t,e,n){var r=Ws(t),i=r||Vs(t)||ua(t);if(e=lo(e,4),null==n){var o=t&&t.constructor;n=i?r?new o:[]:ta(t)&&Zs(o)?Hn(Xt(t)):{}}return(i?Te:wr)(t,(function(t,r,i){return e(n,t,r,i)})),n},Nn.unary=function(t){return Ts(t,1)},Nn.union=es,Nn.unionBy=ns,Nn.unionWith=rs,Nn.uniq=function(t){return t&&t.length?ci(t):[]},Nn.uniqBy=function(t,e){return t&&t.length?ci(t,lo(e,2)):[]},Nn.uniqWith=function(t,e){return e="function"==typeof e?e:n,t&&t.length?ci(t,n,e):[]},Nn.unset=function(t,e){return null==t||hi(t,e)},Nn.unzip=is,Nn.unzipWith=os,Nn.update=function(t,e,n){return null==t?t:di(t,e,vi(n))},Nn.updateWith=function(t,e,r,i){return i="function"==typeof i?i:n,null==t?t:di(t,e,vi(r),i)},Nn.values=Na,Nn.valuesIn=function(t){return null==t?[]:Je(t,za(t))},Nn.without=ss,Nn.words=Za,Nn.wrap=function(t,e){return Bs(vi(e),t)},Nn.xor=as,Nn.xorBy=ls,Nn.xorWith=us,Nn.zip=cs,Nn.zipObject=function(t,e){return gi(t||[],e||[],er)},Nn.zipObjectDeep=function(t,e){return gi(t||[],e||[],Qr)},Nn.zipWith=hs,Nn.entries=ja,Nn.entriesIn=Ra,Nn.extend=wa,Nn.extendWith=xa,al(Nn,Nn),Nn.add=yl,Nn.attempt=Ja,Nn.camelCase=Ha,Nn.capitalize=qa,Nn.ceil=vl,Nn.clamp=function(t,e,r){return r===n&&(r=e,e=n),r!==n&&(r=(r=ga(r))==r?r:0),e!==n&&(e=(e=ga(e))==e?e:0),ar(ga(t),e,r)},Nn.clone=function(t){return lr(t,4)},Nn.cloneDeep=function(t){return lr(t,5)},Nn.cloneDeepWith=function(t,e){return lr(t,5,e="function"==typeof e?e:n)},Nn.cloneWith=function(t,e){return lr(t,4,e="function"==typeof e?e:n)},Nn.conformsTo=function(t,e){return null==e||ur(t,e,$a(e))},Nn.deburr=Pa,Nn.defaultTo=function(t,e){return null==t||t!=t?e:t},Nn.divide=bl,Nn.endsWith=function(t,e,r){t=va(t),e=ui(e);var i=t.length,o=r=r===n?i:ar(pa(r),0,i);return(r-=e.length)>=0&&t.slice(r,o)==e},Nn.eq=Ns,Nn.escape=function(t){return(t=va(t))&&G.test(t)?t.replace(X,rn):t},Nn.escapeRegExp=function(t){return(t=va(t))&&rt.test(t)?t.replace(nt,"\\$&"):t},Nn.every=function(t,e,r){var i=Ws(t)?Ae:pr;return r&&wo(t,e,r)&&(e=n),i(t,lo(e,3))},Nn.find=gs,Nn.findIndex=Po,Nn.findKey=function(t,e){return Re(t,lo(e,3),wr)},Nn.findLast=ys,Nn.findLastIndex=Wo,Nn.findLastKey=function(t,e){return Re(t,lo(e,3),xr)},Nn.floor=wl,Nn.forEach=vs,Nn.forEachRight=bs,Nn.forIn=function(t,e){return null==t?t:vr(t,lo(e,3),za)},Nn.forInRight=function(t,e){return null==t?t:br(t,lo(e,3),za)},Nn.forOwn=function(t,e){return t&&wr(t,lo(e,3))},Nn.forOwnRight=function(t,e){return t&&xr(t,lo(e,3))},Nn.get=Ea,Nn.gt=Hs,Nn.gte=qs,Nn.has=function(t,e){return null!=t&&go(t,e,Tr)},Nn.hasIn=Ta,Nn.head=Uo,Nn.identity=rl,Nn.includes=function(t,e,n,r){t=Us(t)?t:Na(t),n=n&&!r?pa(n):0;var i=t.length;return n<0&&(n=vn(i+n,0)),aa(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&He(t,e,n)>-1},Nn.indexOf=function(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:pa(n);return i<0&&(i=vn(r+i,0)),He(t,e,i)},Nn.inRange=function(t,e,r){return e=fa(e),r===n?(r=e,e=0):r=fa(r),function(t,e,n){return t>=bn(e,n)&&t<vn(e,n)}(t=ga(t),e,r)},Nn.invoke=Da,Nn.isArguments=Ps,Nn.isArray=Ws,Nn.isArrayBuffer=Ys,Nn.isArrayLike=Us,Nn.isArrayLikeObject=Xs,Nn.isBoolean=function(t){return!0===t||!1===t||ea(t)&&Sr(t)==v},Nn.isBuffer=Vs,Nn.isDate=Gs,Nn.isElement=function(t){return ea(t)&&1===t.nodeType&&!ia(t)},Nn.isEmpty=function(t){if(null==t)return!0;if(Us(t)&&(Ws(t)||"string"==typeof t||"function"==typeof t.splice||Vs(t)||ua(t)||Ps(t)))return!t.length;var e=mo(t);if(e==k||e==M)return!t.size;if(Co(t))return!Lr(t).length;for(var n in t)if(Lt.call(t,n))return!1;return!0},Nn.isEqual=function(t,e){return zr(t,e)},Nn.isEqualWith=function(t,e,r){var i=(r="function"==typeof r?r:n)?r(t,e):n;return i===n?zr(t,e,n,r):!!i},Nn.isError=Ks,Nn.isFinite=function(t){return"number"==typeof t&&Ue(t)},Nn.isFunction=Zs,Nn.isInteger=Js,Nn.isLength=Qs,Nn.isMap=na,Nn.isMatch=function(t,e){return t===e||Or(t,e,co(e))},Nn.isMatchWith=function(t,e,r){return r="function"==typeof r?r:n,Or(t,e,co(e),r)},Nn.isNaN=function(t){return ra(t)&&t!=+t},Nn.isNative=function(t){if(ko(t))throw new Ct("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return Ir(t)},Nn.isNil=function(t){return null==t},Nn.isNull=function(t){return null===t},Nn.isNumber=ra,Nn.isObject=ta,Nn.isObjectLike=ea,Nn.isPlainObject=ia,Nn.isRegExp=oa,Nn.isSafeInteger=function(t){return Js(t)&&t>=-9007199254740991&&t<=d},Nn.isSet=sa,Nn.isString=aa,Nn.isSymbol=la,Nn.isTypedArray=ua,Nn.isUndefined=function(t){return t===n},Nn.isWeakMap=function(t){return ea(t)&&mo(t)==$},Nn.isWeakSet=function(t){return ea(t)&&"[object WeakSet]"==Sr(t)},Nn.join=function(t,e){return null==t?"":gn.call(t,e)},Nn.kebabCase=Wa,Nn.last=Ko,Nn.lastIndexOf=function(t,e,r){var i=null==t?0:t.length;if(!i)return-1;var o=i;return r!==n&&(o=(o=pa(r))<0?vn(i+o,0):bn(o,i-1)),e==e?function(t,e,n){for(var r=n+1;r--;)if(t[r]===e)return r;return r}(t,e,o):Ne(t,Pe,o,!0)},Nn.lowerCase=Ya,Nn.lowerFirst=Ua,Nn.lt=ca,Nn.lte=ha,Nn.max=function(t){return t&&t.length?mr(t,rl,Er):n},Nn.maxBy=function(t,e){return t&&t.length?mr(t,lo(e,2),Er):n},Nn.mean=function(t){return We(t,rl)},Nn.meanBy=function(t,e){return We(t,lo(e,2))},Nn.min=function(t){return t&&t.length?mr(t,rl,jr):n},Nn.minBy=function(t,e){return t&&t.length?mr(t,lo(e,2),jr):n},Nn.stubArray=ml,Nn.stubFalse=gl,Nn.stubObject=function(){return{}},Nn.stubString=function(){return""},Nn.stubTrue=function(){return!0},Nn.multiply=_l,Nn.nth=function(t,e){return t&&t.length?Pr(t,pa(e)):n},Nn.noConflict=function(){return fe._===this&&(fe._=Ht),this},Nn.noop=ll,Nn.now=Es,Nn.pad=function(t,e,n){t=va(t);var r=(e=pa(e))?hn(t):0;if(!e||r>=e)return t;var i=(e-r)/2;return Wi(ye(i),n)+t+Wi(me(i),n)},Nn.padEnd=function(t,e,n){t=va(t);var r=(e=pa(e))?hn(t):0;return e&&r<e?t+Wi(e-r,n):t},Nn.padStart=function(t,e,n){t=va(t);var r=(e=pa(e))?hn(t):0;return e&&r<e?Wi(e-r,n)+t:t},Nn.parseInt=function(t,e,n){return n||null==e?e=0:e&&(e=+e),xn(va(t).replace(it,""),e||0)},Nn.random=function(t,e,r){if(r&&"boolean"!=typeof r&&wo(t,e,r)&&(e=r=n),r===n&&("boolean"==typeof e?(r=e,e=n):"boolean"==typeof t&&(r=t,t=n)),t===n&&e===n?(t=0,e=1):(t=fa(t),e===n?(e=t,t=0):e=fa(e)),t>e){var i=t;t=e,e=i}if(r||t%1||e%1){var o=_n();return bn(t+o*(e-t+ue("1e-"+((o+"").length-1))),e)}return Vr(t,e)},Nn.reduce=function(t,e,n){var r=Ws(t)?Fe:Xe,i=arguments.length<3;return r(t,lo(e,4),n,i,dr)},Nn.reduceRight=function(t,e,n){var r=Ws(t)?Le:Xe,i=arguments.length<3;return r(t,lo(e,4),n,i,fr)},Nn.repeat=function(t,e,r){return e=(r?wo(t,e,r):e===n)?1:pa(e),Gr(va(t),e)},Nn.replace=function(){var t=arguments,e=va(t[0]);return t.length<3?e:e.replace(t[1],t[2])},Nn.result=function(t,e,r){var i=-1,o=(e=bi(e,t)).length;for(o||(o=1,t=n);++i<o;){var s=null==t?n:t[Bo(e[i])];s===n&&(i=o,s=r),t=Zs(s)?s.call(t):s}return t},Nn.round=kl,Nn.runInContext=t,Nn.sample=function(t){return(Ws(t)?Zn:Zr)(t)},Nn.size=function(t){if(null==t)return 0;if(Us(t))return aa(t)?hn(t):t.length;var e=mo(t);return e==k||e==M?t.size:Lr(t).length},Nn.snakeCase=Xa,Nn.some=function(t,e,r){var i=Ws(t)?Be:ii;return r&&wo(t,e,r)&&(e=n),i(t,lo(e,3))},Nn.sortedIndex=function(t,e){return oi(t,e)},Nn.sortedIndexBy=function(t,e,n){return si(t,e,lo(n,2))},Nn.sortedIndexOf=function(t,e){var n=null==t?0:t.length;if(n){var r=oi(t,e);if(r<n&&Ns(t[r],e))return r}return-1},Nn.sortedLastIndex=function(t,e){return oi(t,e,!0)},Nn.sortedLastIndexBy=function(t,e,n){return si(t,e,lo(n,2),!0)},Nn.sortedLastIndexOf=function(t,e){if(null==t?0:t.length){var n=oi(t,e,!0)-1;if(Ns(t[n],e))return n}return-1},Nn.startCase=Va,Nn.startsWith=function(t,e,n){return t=va(t),n=null==n?0:ar(pa(n),0,t.length),e=ui(e),t.slice(n,n+e.length)==e},Nn.subtract=Cl,Nn.sum=function(t){return t&&t.length?Ve(t,rl):0},Nn.sumBy=function(t,e){return t&&t.length?Ve(t,lo(e,2)):0},Nn.template=function(t,e,r){var i=Nn.templateSettings;r&&wo(t,e,r)&&(e=n),t=va(t),e=xa({},e,i,Ji);var o,s,a=xa({},e.imports,i.imports,Ji),l=$a(a),u=Je(a,l),c=0,h=e.interpolate||wt,d="__p += '",f=Mt((e.escape||wt).source+"|"+h.source+"|"+(h===J?dt:wt).source+"|"+(e.evaluate||wt).source+"|$","g"),p="//# sourceURL="+(Lt.call(e,"sourceURL")?(e.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++oe+"]")+"\n";t.replace(f,(function(e,n,r,i,a,l){return r||(r=i),d+=t.slice(c,l).replace(xt,on),n&&(o=!0,d+="' +\n__e("+n+") +\n'"),a&&(s=!0,d+="';\n"+a+";\n__p += '"),r&&(d+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),c=l+e.length,e})),d+="';\n";var m=Lt.call(e,"variable")&&e.variable;if(m){if(ct.test(m))throw new Ct("Invalid `variable` option passed into `_.template`")}else d="with (obj) {\n"+d+"\n}\n";d=(s?d.replace(P,""):d).replace(W,"$1").replace(Y,"$1;"),d="function("+(m||"obj")+") {\n"+(m?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(o?", __e = _.escape":"")+(s?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+d+"return __p\n}";var g=Ja((function(){return St(l,p+"return "+d).apply(n,u)}));if(g.source=d,Ks(g))throw g;return g},Nn.times=function(t,e){if((t=pa(t))<1||t>d)return[];var n=p,r=bn(t,p);e=lo(e),t-=p;for(var i=Ge(r,e);++n<t;)e(n);return i},Nn.toFinite=fa,Nn.toInteger=pa,Nn.toLength=ma,Nn.toLower=function(t){return va(t).toLowerCase()},Nn.toNumber=ga,Nn.toSafeInteger=function(t){return t?ar(pa(t),-9007199254740991,d):0===t?t:0},Nn.toString=va,Nn.toUpper=function(t){return va(t).toUpperCase()},Nn.trim=function(t,e,r){if((t=va(t))&&(r||e===n))return Ke(t);if(!t||!(e=ui(e)))return t;var i=dn(t),o=dn(e);return xi(i,tn(i,o),en(i,o)+1).join("")},Nn.trimEnd=function(t,e,r){if((t=va(t))&&(r||e===n))return t.slice(0,fn(t)+1);if(!t||!(e=ui(e)))return t;var i=dn(t);return xi(i,0,en(i,dn(e))+1).join("")},Nn.trimStart=function(t,e,r){if((t=va(t))&&(r||e===n))return t.replace(it,"");if(!t||!(e=ui(e)))return t;var i=dn(t);return xi(i,tn(i,dn(e))).join("")},Nn.truncate=function(t,e){var r=30,i="...";if(ta(e)){var o="separator"in e?e.separator:o;r="length"in e?pa(e.length):r,i="omission"in e?ui(e.omission):i}var s=(t=va(t)).length;if(sn(t)){var a=dn(t);s=a.length}if(r>=s)return t;var l=r-hn(i);if(l<1)return i;var u=a?xi(a,0,l).join(""):t.slice(0,l);if(o===n)return u+i;if(a&&(l+=u.length-l),oa(o)){if(t.slice(l).search(o)){var c,h=u;for(o.global||(o=Mt(o.source,va(ft.exec(o))+"g")),o.lastIndex=0;c=o.exec(h);)var d=c.index;u=u.slice(0,d===n?l:d)}}else if(t.indexOf(ui(o),l)!=l){var f=u.lastIndexOf(o);f>-1&&(u=u.slice(0,f))}return u+i},Nn.unescape=function(t){return(t=va(t))&&V.test(t)?t.replace(U,pn):t},Nn.uniqueId=function(t){var e=++Bt;return va(t)+e},Nn.upperCase=Ga,Nn.upperFirst=Ka,Nn.each=vs,Nn.eachRight=bs,Nn.first=Uo,al(Nn,(xl={},wr(Nn,(function(t,e){Lt.call(Nn.prototype,e)||(xl[e]=t)})),xl),{chain:!1}),Nn.VERSION="4.17.21",Te(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(t){Nn[t].placeholder=Nn})),Te(["drop","take"],(function(t,e){Wn.prototype[t]=function(r){r=r===n?1:vn(pa(r),0);var i=this.__filtered__&&!e?new Wn(this):this.clone();return i.__filtered__?i.__takeCount__=bn(r,i.__takeCount__):i.__views__.push({size:bn(r,p),type:t+(i.__dir__<0?"Right":"")}),i},Wn.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}})),Te(["filter","map","takeWhile"],(function(t,e){var n=e+1,r=1==n||3==n;Wn.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:lo(t,3),type:n}),e.__filtered__=e.__filtered__||r,e}})),Te(["head","last"],(function(t,e){var n="take"+(e?"Right":"");Wn.prototype[t]=function(){return this[n](1).value()[0]}})),Te(["initial","tail"],(function(t,e){var n="drop"+(e?"":"Right");Wn.prototype[t]=function(){return this.__filtered__?new Wn(this):this[n](1)}})),Wn.prototype.compact=function(){return this.filter(rl)},Wn.prototype.find=function(t){return this.filter(t).head()},Wn.prototype.findLast=function(t){return this.reverse().find(t)},Wn.prototype.invokeMap=Kr((function(t,e){return"function"==typeof t?new Wn(this):this.map((function(n){return Dr(n,t,e)}))})),Wn.prototype.reject=function(t){return this.filter(Fs(lo(t)))},Wn.prototype.slice=function(t,e){t=pa(t);var r=this;return r.__filtered__&&(t>0||e<0)?new Wn(r):(t<0?r=r.takeRight(-t):t&&(r=r.drop(t)),e!==n&&(r=(e=pa(e))<0?r.dropRight(-e):r.take(e-t)),r)},Wn.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},Wn.prototype.toArray=function(){return this.take(p)},wr(Wn.prototype,(function(t,e){var r=/^(?:filter|find|map|reject)|While$/.test(e),i=/^(?:head|last)$/.test(e),o=Nn[i?"take"+("last"==e?"Right":""):e],s=i||/^find/.test(e);o&&(Nn.prototype[e]=function(){var e=this.__wrapped__,a=i?[1]:arguments,l=e instanceof Wn,u=a[0],c=l||Ws(e),h=function(t){var e=o.apply(Nn,Ie([t],a));return i&&d?e[0]:e};c&&r&&"function"==typeof u&&1!=u.length&&(l=c=!1);var d=this.__chain__,f=!!this.__actions__.length,p=s&&!d,m=l&&!f;if(!s&&c){e=m?e:new Wn(this);var g=t.apply(e,a);return g.__actions__.push({func:fs,args:[h],thisArg:n}),new Pn(g,d)}return p&&m?t.apply(this,a):(g=this.thru(h),p?i?g.value()[0]:g.value():g)})})),Te(["pop","push","shift","sort","splice","unshift"],(function(t){var e=$t[t],n=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",r=/^(?:pop|shift)$/.test(t);Nn.prototype[t]=function(){var t=arguments;if(r&&!this.__chain__){var i=this.value();return e.apply(Ws(i)?i:[],t)}return this[n]((function(n){return e.apply(Ws(n)?n:[],t)}))}})),wr(Wn.prototype,(function(t,e){var n=Nn[e];if(n){var r=n.name+"";Lt.call($n,r)||($n[r]=[]),$n[r].push({name:e,func:n})}})),$n[Ni(n,2).name]=[{name:"wrapper",func:n}],Wn.prototype.clone=function(){var t=new Wn(this.__wrapped__);return t.__actions__=Ai(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=Ai(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=Ai(this.__views__),t},Wn.prototype.reverse=function(){if(this.__filtered__){var t=new Wn(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},Wn.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,n=Ws(t),r=e<0,i=n?t.length:0,o=function(t,e,n){var r=-1,i=n.length;for(;++r<i;){var o=n[r],s=o.size;switch(o.type){case"drop":t+=s;break;case"dropRight":e-=s;break;case"take":e=bn(e,t+s);break;case"takeRight":t=vn(t,e-s)}}return{start:t,end:e}}(0,i,this.__views__),s=o.start,a=o.end,l=a-s,u=r?a:s-1,c=this.__iteratees__,h=c.length,d=0,f=bn(l,this.__takeCount__);if(!n||!r&&i==l&&f==l)return pi(t,this.__actions__);var p=[];t:for(;l--&&d<f;){for(var m=-1,g=t[u+=e];++m<h;){var y=c[m],v=y.iteratee,b=y.type,w=v(g);if(2==b)g=w;else if(!w){if(1==b)continue t;break t}}p[d++]=g}return p},Nn.prototype.at=ps,Nn.prototype.chain=function(){return ds(this)},Nn.prototype.commit=function(){return new Pn(this.value(),this.__chain__)},Nn.prototype.next=function(){this.__values__===n&&(this.__values__=da(this.value()));var t=this.__index__>=this.__values__.length;return{done:t,value:t?n:this.__values__[this.__index__++]}},Nn.prototype.plant=function(t){for(var e,r=this;r instanceof qn;){var i=Ro(r);i.__index__=0,i.__values__=n,e?o.__wrapped__=i:e=i;var o=i;r=r.__wrapped__}return o.__wrapped__=t,e},Nn.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof Wn){var e=t;return this.__actions__.length&&(e=new Wn(this)),(e=e.reverse()).__actions__.push({func:fs,args:[ts],thisArg:n}),new Pn(e,this.__chain__)}return this.thru(ts)},Nn.prototype.toJSON=Nn.prototype.valueOf=Nn.prototype.value=function(){return pi(this.__wrapped__,this.__actions__)},Nn.prototype.first=Nn.prototype.head,te&&(Nn.prototype[te]=function(){return this}),Nn}();me?((me.exports=mn)._=mn,pe._=mn):fe._=mn}).call(dr)}($i,$i.exports);var zi=$i.exports;function Oi(t,e){const n=t.getInstanceId(),r=`.bar-container .bar-timeline[data-taskid="${e}"][data-chart-instance="${n}"]`,i=t.querySelector(r);return i||console.warn(`[${n}] Bar element not found for task: ${e}`),i}function Ii(t,e){const n=t.getInstanceId(),r=`.timeline-body .timeline-data-row[data-taskid="${e}"][data-chart-instance="${n}"]`,i=t.querySelector(r);return i||console.warn(`[${n}] Bar row element not found for task: ${e}`),i}const Fi=["day","week","month","quarter","year"];var Li=(t=>(t.Day="day",t.Month="month",t.Quarter="quarter",t.Week="week",t.Year="year",t))(Li||{}),Bi=(t=>(t.Horizontal="horizontal",t.Vertical="vertical",t))(Bi||{});class ji{constructor(t,e,n,r,i){this.options=t,this.ganttStartDate=e,this.viewMode=n,this.chartContext=r,this.totalHeight=i}calculateWidth(t){return mr(t.x2).add(1,"day").diff(mr(t.x1),`${this.viewMode}s`,!0)*Ri[this.viewMode]}calculateX(t){return mr(t.x1).diff(this.ganttStartDate.startOf(this.viewMode),`${this.viewMode}s`,!0)*Ri[this.viewMode]}drawAnnotation(t){const e=ur(this.chartContext,{className:"annotation"}),n=this.calculateX(t),r=lr(this.getAnnotationStyles(t,n));if(e.setAttribute("style",r),t.label){const n=this.renderLabel(t);e.append(n)}return e}getAnnotationStyles(t,e){const{annotationBgColor:n,annotationBorderColor:r,annotationBorderWidth:i}=this.options,{bgColor:o,borderColor:s,borderWidth:a}=t;let l=0;const u=t.x2?a||i:(a||i)/2;return t.x2&&(l=this.calculateWidth(t)),{backgroundColor:o||n,borderColor:`${s||r}`,borderStyle:"solid",borderWidth:`${u}px`,height:`${this.totalHeight}px`,left:`${e}px`,position:"absolute",top:"0px",width:l?`${l}px`:"unset",zIndex:"10"}}renderLabel(t){const e=ur(this.chartContext,{className:"annotation-label"}),{annotationBorderColor:n,fontColor:r,fontFamily:i,fontSize:o,fontWeight:s}=this.options,{borderColor:a}=t,{label:l}=t,u=l.fontColor||r,c=l.fontFamily||i,h=l.fontSize||o,d=l.fontWeight||s,f=lr({background:"white",borderColor:`${a||n}`,borderStyle:"solid",borderWidth:"1px",color:u,fontFamily:c,fontSize:h,fontWeight:d,left:"0px",padding:"2px 5px",position:"absolute",top:"-1px",width:"max-content",zIndex:"1"});return e.setAttribute("style",f),e.innerText=t.label.text,e}render(){const t=[];return this.options.annotations.forEach((e=>{t.push(this.drawAnnotation(e))})),t}}const Ri={[Li.Day]:80,[Li.Month]:150,[Li.Quarter]:150,[Li.Week]:180,[Li.Year]:180};const Ni=(t,e)=>{const n=function(t,e){const n=mr(t);switch(e){case Li.Month:return n.daysInMonth();case Li.Quarter:{const t=n.startOf("quarter");return n.endOf("quarter").diff(t,"day")+1}case Li.Week:return 7;case Li.Year:{const t=n.startOf("year");return n.endOf("year").diff(t,"day")+1}default:return 1}}(t,e);return Ri[e]/n},Hi={annotationBorderDashArray:[],annotationBorderWidth:2,annotationOrientation:Bi.Horizontal,annotations:[],barBorderRadius:"5px",barMargin:3,canvasStyle:"border: 1px solid #CACED0; box-sizing: border-box",cellBorderWidth:"1px",enableExport:!0,enableResize:!0,enableTaskDrag:!0,enableTaskEdit:!1,enableTaskResize:!0,enableTooltip:!0,fontFamily:"sans-serif",fontSize:"14px",fontWeight:"400",height:"500px",inputDateFormat:"MM-DD-YYYY",rowHeight:28,series:[],tasksContainerWidth:425,tooltipId:"apexgantt-tooltip-container",tooltipTemplate(t,e){const n=[`<div>\n <strong>Task:</strong>\n <span>${t.name}</span>\n </div>\n `];return t.type===so.Task?n.push(`\n <div>\n <strong>Start:</strong>\n <span>${eo(t,Ji.StartTime,e)}</span>\n </div>\n <div>\n <strong>End:</strong>\n <span>${eo(t,Ji.EndTime,e)}</span>\n </div>\n <div>\n <strong>Duration:</strong>\n <span>${eo(t,Ji.Duration,e)}</span>\n </div>\n <div>\n <strong>Progress:</strong>\n <span>${t.progress}%</span>\n </div>\n `):t.type===so.Milestone&&n.push(`\n <div>\n <strong>Date:</strong>\n <span>${eo(t,Ji.StartTime,e)}</span>\n </div>\n `),t.dependency&&n.push(`\n <div>\n <strong>Depends on:</strong>\n <span>${t.dependency}</span>\n </div>\n `),`\n <div>\n ${n.join("")}\n </div>\n `},viewMode:Li.Week,width:"100%"},qi={annotationBgColor:"#F9D1FC",annotationBorderColor:"#E273EA",arrowColor:"#0D6EFD",backgroundColor:"#FFFFFF",barBackgroundColor:"#87B7FE",barTextColor:"#FFFFFF",borderColor:"#DFE0E1",cellBorderColor:"#eff0f0",fontColor:"#000000",headerBackground:"#F3F3F3",rowBackgroundColors:["#FFFFFF"],tooltipBGColor:"#FFFFFF",tooltipBorderColor:"#BCBCBC"},Pi={annotationBgColor:"#4A2D4D",annotationBorderColor:"#8B4D8F",arrowColor:"#4A9EFF",backgroundColor:"#1E1E1E",barBackgroundColor:"#5B8DEE",barTextColor:"#FFFFFF",borderColor:"#3A3A3A",cellBorderColor:"#3A3A3A",fontColor:"#E0E0E0",headerBackground:"#2A2A2A",rowBackgroundColors:["#1E1E1E","#252525"],tooltipBGColor:"#2D2D2D",tooltipBorderColor:"#444444"};function Wi(t){return{...Hi,..."dark"===t?Pi:qi}}const Yi=Wi("light"),Ui={TASK_UPDATE:"taskUpdate",TASK_VALIDATION_ERROR:"taskValidationError",TASK_UPDATE_SUCCESS:"taskUpdateSuccess",TASK_UPDATE_ERROR:"taskUpdateError",TASK_DRAGGED:"taskDragged",TASK_RESIZED:"taskResized"};class Xi{constructor(t,e,n,r,i){this.taskId=t,this.options=e,this.chartContext=r,this.dataManager=i,this.dragState={childTasks:[],daysPerPixel:0,initialLeft:0,initialPosition:0,initialStartTime:"",initialEndTime:"",isDragging:!1,parentWidth:0,parentX1:0,parentX2:0,startX:0},this.dragState.daysPerPixel=Ni(this.dataManager.getTaskById(t).startTime,n)}calculateFinalPosition(t,e){const{daysPerPixel:n,initialLeft:r,initialPosition:i,parentX1:o,parentX2:s}=this.dragState,a=t.clientX-i;let l=Math.round(a/n),u=r+l*n;return a<0&&u<=o?(u=o,l=Math.round((o-r)/n)):a>0&&u+e>=s&&(u=s-e,l=Math.round((s-e-r)/n)),{calculatedLeft:u,daysMoved:l}}createMouseDownHandler(t){return e=>{var n;this.task=this.dataManager.getTaskById(this.taskId),this.dragState={...this.dragState,initialLeft:parseInt(t.style.left)||0,initialPosition:e.clientX,initialStartTime:this.task.startTime,initialEndTime:this.task.endTime,isDragging:!0,startX:e.clientX},t.classList.add("dragging");const r=Oi(this.chartContext,this.task.parentId);this.dragState.parentX2=(null==(n=this.chartContext.querySelector(".timeline-body"))?void 0:n.clientWidth)||0,this.dragState.childTasks=this.dataManager.getNestedChildTasks(this.task.id).map((t=>{const e=Oi(this.chartContext,t.id);return e?{...t,element:e,left:parseInt(e.style.left)||0,width:parseInt(e.style.width)||0}:t})),r&&(this.dragState.parentX1=parseInt(r.style.left)||0,this.dragState.parentX2=this.dragState.parentX1+parseInt(r.style.width)||0)}}createMouseMoveHandler(t){return e=>{this.dragState.isDragging&&requestAnimationFrame((()=>{const n=e.clientX-this.dragState.startX,r=parseInt(t.style.left)||0,i=parseInt(t.style.width)||0;this.isOutOfBounds(r,i,n)||(this.moveBar(t,r,n),this.dataManager.updateDependencyArrows(this.task.id,this.chartContext),this.moveChildBars(n),this.dragState.startX=e.clientX)}))}}createMouseUpHandler(t,e){return n=>{if(!this.dragState.isDragging)return;this.dragState.isDragging=!1,t.classList.remove("dragging");const r=parseInt(t.style.width)||0,{calculatedLeft:i,daysMoved:o}=this.calculateFinalPosition(n,r);if(0===o)return void(this.dragState={...this.dragState,isDragging:!1});const s=mr(this.task.startTime).add(o,"day").format(this.options.inputDateFormat),a=mr(this.task.endTime).add(o,"day").format(this.options.inputDateFormat),l=this.dragState.childTasks.map((t=>({taskId:t.id,newStartTime:mr(t.startTime).add(o,"day").format(this.options.inputDateFormat),newEndTime:t.endTime?mr(t.endTime).add(o,"day").format(this.options.inputDateFormat):null}))).filter((t=>null!==t.newEndTime));this.emitTaskDraggedEvent(o,s,a,l),this.updateTaskPosition(t,i,o,e),this.updateChildrenPositions(i,o,e)}}emitTaskDraggedEvent(t,e,n,r){const i={taskId:this.task.id,oldStartTime:this.dragState.initialStartTime,oldEndTime:this.dragState.initialEndTime,newStartTime:e,newEndTime:n,daysMoved:t,affectedChildTasks:r,timestamp:Date.now()},o=new CustomEvent(Ui.TASK_DRAGGED,{detail:i,bubbles:!0,composed:!0,cancelable:!1}),s=this.chartContext.getChartContainer();s&&s.dispatchEvent(o)}isOutOfBounds(t,e,n){const{parentX1:r,parentX2:i}=this.dragState;return n<0&&t<=r||n>0&&t+e>=i}moveBar(t,e,n){t.style.left=`${e+n}px`}moveChildBars(t){this.dragState.childTasks.forEach((e=>{if(e.element){const n=parseInt(e.element.style.left)||0;e.element.style.left=`${n+t}px`,this.dataManager.updateDependencyArrows(e.id,this.chartContext)}}))}updateChildrenPositions(t,e,n){this.dragState.childTasks.forEach((r=>{const i=Oi(this.chartContext,r.id);if(i){const o=t-this.dragState.initialLeft;i.style.left=`${r.left+o}px`;const s=mr(r.startTime).add(e,"day").format(this.options.inputDateFormat),a=r.endTime?mr(r.endTime).add(e,"day").format(this.options.inputDateFormat):null;this.dataManager.updateDependencyArrows(r.id,this.chartContext),null==n||n(r.id,{endTime:a,startTime:s})}}))}updateTaskPosition(t,e,n,r){t.style.left=`${e}px`;const i=mr(this.task.startTime).add(n,"day").format(this.options.inputDateFormat),o=mr(this.task.endTime).add(n,"day").format(this.options.inputDateFormat);this.dataManager.updateDependencyArrows(this.task.id,this.chartContext),null==r||r(this.task.id,{endTime:o,startTime:i})}makeDraggable(t,e){const n=this.createMouseDownHandler(t),r=this.createMouseMoveHandler(t),i=this.createMouseUpHandler(t,e);return t.addEventListener("mousedown",n),this.chartContext.addEventListener("mousemove",r),this.chartContext.addEventListener("mouseup",i),()=>{t.removeEventListener("mousedown",n),this.chartContext.removeEventListener("mousemove",r),this.chartContext.removeEventListener("mouseup",i)}}}class Vi{constructor(t,e,n,r,i){this.taskId=t,this.options=e,this.chartContext=r,this.dataManager=i,this.interactionState={daysPerPixel:0,initialLeft:0,initialPosition:0,initialWidth:0,initialStartTime:"",initialEndTime:"",isResizing:!1,parentWidth:0,parentX1:0,parentX2:0,resizeHandle:null,startX:0},this.interactionState.daysPerPixel=Ni(this.dataManager.getTaskById(t).startTime,n)}createMouseMoveHandler(t){return e=>{this.interactionState.isResizing&&requestAnimationFrame((()=>{const n=e.clientX-this.interactionState.startX,{daysPerPixel:r,parentX1:i,parentX2:o,resizeHandle:s}=this.interactionState,a=parseInt(t.style.left)||0,l=parseInt(t.style.width)||0;if("left"===s){const e=Math.max(i,Math.min(o-r,a+n)),s=l-(e-a);s>=r&&(t.style.left=`${e}px`,t.style.width=`${s}px`)}else{const e=r,i=o-a,s=Math.max(e,Math.min(i,l+n));t.style.width=`${s}px`}this.dataManager.updateDependencyArrows(this.task.id,this.chartContext),this.interactionState.startX=e.clientX}))}}createMouseUpHandler(t,e){return n=>{if(!this.interactionState.isResizing)return;t.classList.remove("resizing");const{daysPerPixel:r,initialLeft:i,initialPosition:o,initialWidth:s,parentX1:a,parentX2:l,resizeHandle:u}=this.interactionState,c=n.clientX-o,h=this.interactionState.initialStartTime,d=this.interactionState.initialEndTime;let f=h,p=d,m=0;if("left"===u){let n=Math.round(c/r),o=i+n*r;c<0&&o<=a&&(n=Math.round((a-i)/r),o=a);let l=s-n*r;if(l<r&&(l=r,o=i+s-r,n=Math.round((o-i)/r)),0===n)return void(this.interactionState={...this.interactionState,isResizing:!1,resizeHandle:null});t.style.left=`${o}px`,t.style.width=`${l}px`,f=mr(this.task.startTime).add(n,"day").format(this.options.inputDateFormat),m=-n,null==e||e(this.task.id,{startTime:f})}else{let n=Math.round(c/r),o=s+n*r;if(o<r?(o=r,n=Math.round((o-s)/r)):i+o>l&&(o=l-i,n=Math.round((o-s)/r)),0===n)return void(this.interactionState={...this.interactionState,isResizing:!1,resizeHandle:null});t.style.width=`${o}px`,p=mr(this.task.endTime).add(n,"day").format(this.options.inputDateFormat),m=n,null==e||e(this.task.id,{endTime:p})}this.emitTaskResizedEvent(u,h,d,f,p,m),this.dataManager.updateDependencyArrows(this.task.id,this.chartContext),this.interactionState={...this.interactionState,isResizing:!1,resizeHandle:null}}}emitTaskResizedEvent(t,e,n,r,i,o){const s={taskId:this.task.id,resizeHandle:t,oldStartTime:e,oldEndTime:n,newStartTime:r,newEndTime:i,durationChange:o,timestamp:Date.now()},a=new CustomEvent(Ui.TASK_RESIZED,{detail:s,bubbles:!0,composed:!0,cancelable:!1}),l=this.chartContext.getChartContainer();l&&l.dispatchEvent(a)}createResizeMouseDownHandler(t){return(e,n)=>{var r;e.stopPropagation(),this.task=this.dataManager.getTaskById(this.taskId),this.interactionState={...this.interactionState,initialLeft:parseInt(t.style.left)||0,initialPosition:e.clientX,initialWidth:parseInt(t.style.width)||0,initialStartTime:this.task.startTime,initialEndTime:this.task.endTime,isResizing:!0,resizeHandle:n,startX:e.clientX},t.classList.add("resizing");const i=Oi(this.chartContext,this.task.parentId);this.interactionState.parentX2=(null==(r=this.chartContext.querySelector(".timeline-body"))?void 0:r.clientWidth)||0,i&&(this.interactionState.parentX1=parseInt(i.style.left)||0,this.interactionState.parentX2=this.interactionState.parentX1+parseInt(i.style.width)||0)}}makeResizable(t,e){const n=t.querySelector(".handle-left"),r=t.querySelector(".handle-right"),i=this.createResizeMouseDownHandler(t),o=this.createMouseMoveHandler(t),s=this.createMouseUpHandler(t,e);return null==n||n.addEventListener("mousedown",(t=>i(t,"left"))),null==r||r.addEventListener("mousedown",(t=>i(t,"right"))),this.chartContext.addEventListener("mousemove",o),this.chartContext.addEventListener("mouseup",s),()=>{null==n||n.removeEventListener("mousedown",(t=>i(t,"left"))),null==r||r.removeEventListener("mousedown",(t=>i(t,"right"))),this.chartContext.removeEventListener("mousemove",o),this.chartContext.removeEventListener("mouseup",s)}}}class Gi{constructor(t,e){this.chartContext=t,this.options=e,this.overlay=null,this.keydownHandler=null,this.clickOutsideHandler=null,this.createDialog(),this.setupEventListeners()}createDialog(){const t=this.chartContext.getInstanceId(),e=this.chartContext.getElementById(`${this.options.id}-container`);if(e){this.container=e;const t=this.container.querySelector(".gantt-dialog");return void this.updateDialogContent(t)}this.container=this.chartContext.createElement("div"),this.container.id=`${this.options.id}-container`,this.container.className="gantt-dialog-container",this.container.setAttribute("role","dialog"),this.container.setAttribute("aria-modal","true"),this.container.setAttribute("aria-labelledby",`${this.options.id}-title`),this.container.setAttribute("data-chart-instance",t),this.options.modal&&(this.overlay=this.chartContext.createElement("div"),this.overlay.className="dialog-overlay",this.container.appendChild(this.overlay));const n=this.chartContext.createElement("div");n.id=this.options.id,n.className="gantt-dialog",this.createDialogStructure(n),this.options.width&&(n.style.width=this.options.width),this.options.height&&(n.style.height=this.options.height),this.container.appendChild(n),!1!==this.options.positionRelativeToChart&&this.positionRelativeToChart();(!1!==this.options.positionRelativeToChart?this.chartContext.getChartContainer():this.chartContext.getAppendContainer()).appendChild(this.container)}createDialogStructure(t){t.innerHTML=`\n <div class="dialog-header">\n <h2 id="${this.options.id}-title-${this.chartContext.getInstanceId()}" class="dialog-title">${this.options.title||""}</h2>\n <button class="dialog-close" aria-label="Close dialog" type="button">×</button>\n </div>\n <div class="dialog-content"></div>\n `,this.updateDialogContent(t)}positionRelativeToChart(){const t=this.chartContext.getChartContainer();if(t){"static"===window.getComputedStyle(t).position&&(t.style.position="relative")}this.container.style.position="absolute",this.container.style.top="0",this.container.style.left="0",this.container.style.width="100%",this.container.style.height="100%",this.container.style.zIndex="999"}setupEventListeners(){const t=this.container.querySelector(".dialog-close");null==t||t.addEventListener("click",(()=>this.hide())),this.options.closeOnEscape&&(this.keydownHandler=t=>{"Escape"===t.key&&this.isVisible()&&(t.preventDefault(),this.hide())},this.chartContext.addEventListener("keydown",this.keydownHandler)),this.options.closeOnClickOutside&&this.overlay&&(this.clickOutsideHandler=t=>{t.target===this.overlay&&this.hide()},this.overlay.addEventListener("click",this.clickOutsideHandler)),this.container.addEventListener("keydown",(t=>{"Tab"===t.key&&this.isVisible()&&this.trapFocus(t)}))}trapFocus(t){const e=this.container.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'),n=e[0],r=e[e.length-1],i=this.chartContext.getActiveElement();t.shiftKey?i===n&&(t.preventDefault(),null==r||r.focus()):i===r&&(t.preventDefault(),null==n||n.focus())}updateDialogContent(t){const e=t.querySelector(".dialog-content"),n=t.querySelector(".dialog-title");n&&(n.textContent=this.options.title||""),e&&(e.innerHTML="","string"==typeof this.options.content?e.innerHTML=this.options.content:this.options.content instanceof HTMLElement&&e.appendChild(this.options.content))}cleanupEventListeners(){this.keydownHandler&&(this.chartContext.removeEventListener("keydown",this.keydownHandler),this.keydownHandler=null),this.clickOutsideHandler&&this.overlay&&(this.overlay.removeEventListener("click",this.clickOutsideHandler),this.clickOutsideHandler=null)}destroy(){this.cleanupEventListeners(),this.container.remove()}hide(){this.container.classList.remove("show","animate");const t=this.chartContext.querySelector("[data-dialog-trigger]");null==t||t.focus()}isVisible(){return this.container.classList.contains("show")}setContent(t){const e=this.container.querySelector(".dialog-content");e&&(e.innerHTML="","string"==typeof t?e.innerHTML=t:e.appendChild(t))}show(){const t=this.chartContext.getActiveElement();null==t||t.setAttribute("data-dialog-trigger","true"),this.container.classList.add("show","animate");const e=this.container.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');null==e||e.focus()}}class Ki{constructor(t,e,n,r,i,o="MM-DD-YYYY"){this.chartContext=t,this.dataManager=e,this.task=n,this.containerElement=r,this.onSubmit=i,this.dateFormat=o,this.errors=[],this.submitButton=null,this.form=this.createForm()}emitEvent(t,e){const n=new CustomEvent(t,{detail:e,bubbles:!0,composed:!0,cancelable:!1});this.containerElement.dispatchEvent(n)}clearError(t){var e;const n=this.form.querySelector(`[name="${t}"]`),r=null==(e=n.parentElement)?void 0:e.querySelector(".form-error");null==r||r.remove(),n.classList.remove("invalid"),this.errors=this.errors.filter((e=>e.field!==t)),this.updateSubmitButton()}createForm(){const t=this.chartContext.createElement("form");t.className="task-form";const e=this.task.barBackgroundColor||"#87B7FE",n=this.task.rowBackgroundColor||"#FFFFFF";return t.innerHTML=`\n <div class="form-group">\n <label for="name">Task Name</label>\n <input type="text" id="name" name="name" value="${this.task.name}">\n </div>\n \n <div class="form-group">\n <label for="startTime">Start Date</label>\n <input type="date" id="startTime" name="startTime" value="${this.formatDate(this.task.startTime)}">\n </div>\n \n <div class="form-group">\n <label for="endTime">End Date</label>\n <input type="date" id="endTime" name="endTime" value="${this.formatDate(this.task.endTime)}">\n </div>\n \n <div class="form-group">\n <label for="progress">Progress (%)</label>\n <input type="number" id="progress" name="progress" min="0" max="100" value="${this.task.progress}">\n </div>\n\n <div class="grid">\n <div class="form-group">\n <label for="barColor">Bar Color</label>\n <div class="color-picker-wrapper">\n <input type="color" id="barColor" name="barBackgroundColor" \n value="${e}"\n title="Choose bar color">\n <span class="color-preview"></span>\n </div>\n </div>\n \n <div class="form-group">\n <label for="rowColor">Row Background Color</label>\n <div class="color-picker-wrapper">\n <input type="color" id="rowColor" name="rowBackgroundColor" \n value="${n}"\n title="Choose row color">\n <span class="color-preview"></span>\n </div>\n </div>\n </div>\n \n <div class="form-actions">\n <button type="submit" class="btn-primary">Update</button>\n </div>\n `,t.addEventListener("submit",this.handleSubmit.bind(this)),this.setupFieldValidation(t),t}formatDate(t){return mr(t,this.dateFormat).format("YYYY-MM-DD")}handleSubmit(t){if(t.preventDefault(),this.errors.length>0)this.emitEvent(Ui.TASK_VALIDATION_ERROR,{taskId:this.task.id,errors:this.errors,timestamp:Date.now()});else try{const t=new FormData(this.form),e={...this.task,barBackgroundColor:t.get("barBackgroundColor"),endTime:mr(t.get("endTime")).format(this.dateFormat),name:t.get("name"),progress:Number(t.get("progress")),rowBackgroundColor:t.get("rowBackgroundColor"),startTime:mr(t.get("startTime")).format(this.dateFormat)},n=this.dataManager.getTaskById(this.task.id);this.emitEvent(Ui.TASK_UPDATE,{taskId:this.task.id,updates:e,updatedTask:{...n,...e},timestamp:Date.now()}),this.onSubmit(e),this.emitEvent(Ui.TASK_UPDATE_SUCCESS,{taskId:this.task.id,updatedTask:{...n,...e},timestamp:Date.now()})}catch(e){console.warn(`[TaskForm] Error updating task ${this.task.id}:`,e),this.emitEvent(Ui.TASK_UPDATE_ERROR,{taskId:this.task.id,error:e instanceof Error?e:new Error(String(e)),timestamp:Date.now()})}}setupFieldValidation(t){const e=t.querySelector('[name="name"]'),n=t.querySelector('[name="startTime"]'),r=t.querySelector('[name="endTime"]'),i=t.querySelector('[name="progress"]');null==e||e.addEventListener("change",(()=>{const t=this.validateName(e.value);t?this.showError("name",t):this.clearError("name")}));const o=()=>{const{endError:t,startError:e}=this.validateDates(n.value,r.value);e?this.showError("startTime",e):this.clearError("startTime"),t?this.showError("endTime",t):this.clearError("endTime")};null==n||n.addEventListener("change",o),null==r||r.addEventListener("change",o),null==i||i.addEventListener("change",(()=>{const t=this.validateProgress(Number(i.value));t?this.showError("progress",t):this.clearError("progress")}))}showError(t,e){var n,r;const i=this.form.querySelector(`[name="${t}"]`),o=this.chartContext.createElement("div");o.className="form-error",o.textContent=e;const s=null==(n=i.parentElement)?void 0:n.querySelector(".form-error");null==s||s.remove(),null==(r=i.parentElement)||r.appendChild(o),i.classList.add("invalid"),this.errors.push({field:t,message:e}),this.updateSubmitButton()}updateSubmitButton(){if(this.submitButton||(this.submitButton=this.form.querySelector(".btn-primary")),this.submitButton){const t=this.errors.length>0;this.submitButton.disabled=t,this.submitButton.classList.toggle("btn-disabled",t)}}validateDates(t,e){const n={endError:null,startError:null},r=mr(t),i=mr(e);return t||(n.startError="Start date is required"),e||(n.endError="End date is required"),r.isValid()&&i.isValid()&&i.isBefore(r)&&(n.endError="End date must be after start date"),n}validateName(t){return t.trim()?null:"Task name is required"}validateProgress(t){return t||0===t?isNaN(t)||t<0||t>100?"Progress must be between 0 and 100":null:"Progress is required"}getElement(){return this.form}}class Zi{constructor(t,e,n,r,i,o,s){this.task=t,this.ganttStartDate=e,this.options=n,this.viewMode=r,this.index=i,this.chartContext=o,this.dataManager=s,this.tooltipHandler=null}static calculateWidth(t,e,n){const{barMargin:r,rowHeight:i}=n;if(t.type===so.Milestone)return(i-r)/2;const o=mr(t.startTime);return mr(t.endTime).add(1,"days").diff(o,`${e}s`,!0)*Ri[e]}static calculateX(t,e,n,r){const i=mr(t.startTime).diff(e.startOf(n),`${n}s`,!0)*Ri[n];let o=0;if(t.type===so.Milestone){const{barMargin:t,rowHeight:e}=r;o=(e-t)/4*-1}return i+o}calculateHeight(){const{barMargin:t,rowHeight:e}=this.options;return this.task.type===so.Milestone?(e-t)/2:e-2*t}setupTooltip(t){if(!this.options.enableTooltip)return;const{tooltipBGColor:e,tooltipBorderColor:n,fontColor:r,fontFamily:i,fontSize:o,fontWeight:s,tooltipId:a,tooltipTemplate:l,inputDateFormat:u}=this.options;let c=!1,h=null;const d=t=>{c=!0,h&&(clearTimeout(h),h=null);const{x:d,y:f}=((t,e,n=300,r=120,i=20,o=20)=>{const s=window.innerWidth,a=window.innerHeight,l=window.scrollX||document.documentElement.scrollLeft,u=window.scrollY||document.documentElement.scrollTop;let c=t+i+l,h=e+o+u;return t+i+n>s&&(c=t-n-i+l),e+o+r>a&&(h=e-r-o+u),c=Math.max(l+5,c),h=Math.max(u+5,h),{x:c,y:h}})(t.clientX,t.clientY,300,120,5,10),p=l(this.dataManager.getTaskById(this.task.id),u),m=(({bgColor:t,borderColor:e,fontColor:n,fontFamily:r,fontSize:i,fontWeight:o,maxWidth:s=300,padding:a,x:l,y:u})=>{const c=["position: absolute;","z-index: 1000;","pointer-events: none;"];return c.push(`width: ${s}px;`),c.push(`max-width: ${s}px;`),c.push("box-sizing: border-box;"),c.push("word-wrap: break-word;"),c.push("overflow-wrap: break-word;"),c.push(`left: ${l}px;`),c.push(`top: ${u}px;`),e&&c.push(`border: 1px solid ${e};`),c.push("border-radius: 6px;"),c.push("box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);"),c.push("transition: opacity 0.2s ease;"),c.push(`color: ${n||"#000000"};`),c.push(`font-family: ${r||"sans-serif"};`),c.push(`font-weight: ${o||"400"};`),c.push(`font-size: ${i||"14px"};`),c.push(`background-color: ${t||"#FFFFFF"};`),void 0!==a&&c.push(`padding: ${a}px;`),c.join(" ")})({bgColor:e,borderColor:n,fontColor:r,fontFamily:i,fontSize:o,fontWeight:s,maxWidth:300,padding:0,x:d,y:f});ar(this.chartContext,a,m,p)};t.addEventListener("mouseenter",d),t.addEventListener("mousemove",d),t.addEventListener("mouseleave",(()=>{c=!1,h=window.setTimeout((()=>{c||ar(this.chartContext,a)}),100)}))}setupTaskEdit(t,e){if(!this.options.enableTaskEdit)return;const n=this.chartContext.getInstanceId();t.addEventListener("dblclick",(t=>{t.stopPropagation(),t.preventDefault();const r=this.dataManager.getTaskById(this.task.id);if(!r)return void console.error(`[${n}] Task not found in dataManager: ${this.task.id}`);const i=this.chartContext.getChartContainer(),o=new Ki(this.chartContext,this.dataManager,r,i,(t=>{null==e||e(r.id,t),a.hide()}),this.options.inputDateFormat),s=`taskDialog-${n}-${this.task.id}`,a=new Gi(this.chartContext,{closeOnClickOutside:!1,closeOnEscape:!0,content:o.getElement(),id:s,modal:!0,title:`Edit Task: ${this.task.name}`,width:"400px",positionRelativeToChart:!0});a.show()}))}setupInteractions(t,e){const{enableTaskDrag:n,enableTaskResize:r}=this.options;if(n&&this.makeDraggable(t,e),r&&this.task.type===so.Task){const n=ur(this.chartContext,{className:"bar-handle handle-left"}),r=ur(this.chartContext,{className:"bar-handle handle-right"});t.append(n,r),this.makeResizable(t,e)}}drawBar(t=zi.noop){const{barBackgroundColor:e,barBorderRadius:n}=this.options,r=ur(this.chartContext,{className:"bar-timeline"}),i=ur(this.chartContext,{className:"bar-label",content:this.task.name}),o=ur(this.chartContext,{className:"bar-timeline-progress"}),s=this.task.barBackgroundColor||e,a=lr(this.getBarStyles(s)),l=lr({backgroundColor:hr(s,-80),borderRadius:n,width:`${this.task.progress}%`}),u=this.chartContext.getInstanceId();return r.setAttribute("data-taskid",this.task.id),r.setAttribute("data-chart-instance",u),o.setAttribute("style",l),r.setAttribute("style",a),r.setAttribute("role","progressbar"),r.setAttribute("aria-label",`${this.task.name}: ${this.task.progress}% complete`),r.setAttribute("aria-valuenow",this.task.progress.toString()),r.setAttribute("aria-valuemin","0"),r.setAttribute("aria-valuemax","100"),r.setAttribute("tabindex","0"),this.task.type!==so.Milestone&&r.append(i),r.append(o),this.setupTaskEdit(r,t),this.setupTooltip(r),this.setupInteractions(r,t),r.addEventListener("keydown",(t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),r.dispatchEvent(new MouseEvent("dblclick",{bubbles:!0})))})),r}getBarStyles(t){const{barBackgroundColor:e,barBorderRadius:n,barMargin:r,barTextColor:i,rowHeight:o}=this.options,s=Zi.calculateX(this.task,this.ganttStartDate,this.viewMode,this.options),a=Zi.calculateWidth(this.task,this.viewMode,this.options),l=this.calculateHeight(),u=t||e;return this.task.type===so.Milestone?{backgroundColor:hr(u,-80),borderRadius:"2px",color:i,height:`${l}px`,left:`${s}px`,top:o/3-r/2+this.index*o+"px",transform:"rotate(45deg)",width:`${a}px`}:{backgroundColor:u,borderRadius:n,color:i,height:`${l}px`,left:`${s}px`,top:`${r+this.index*o}px`,width:`${a}px`}}makeDraggable(t,e){new Xi(this.task.id,this.options,this.viewMode,this.chartContext,this.dataManager).makeDraggable(t,e)}makeResizable(t,e){new Vi(this.task.id,this.options,this.viewMode,this.chartContext,this.dataManager).makeResizable(t,e)}cleanup(){this.tooltipHandler&&(this.tooltipHandler.cleanup(),this.tooltipHandler=null)}}var Ji=(t=>(t.Duration="duration",t.EndTime="endTime",t.Name="name",t.Progress="progress",t.StartTime="startTime",t))(Ji||{});const Qi={duration:"Duration",name:"Task Name",progress:"Progress",startTime:"Start"},to=[{key:"name",title:Qi.name,minWidth:"120px",flexGrow:3},{key:"startTime",title:Qi.startTime,minWidth:"70px",flexGrow:1.5},{key:"duration",title:Qi.duration,minWidth:"50px",flexGrow:1},{key:"progress",title:Qi.progress,minWidth:"50px",flexGrow:1}];function eo(t,e,n){const r=t[e];if("startTime"===e)return mr(r,n).format(n);if("endTime"===e)return mr(r,n).format(n);if("duration"===e){const e=mr(t.startTime,n),r=mr(t.endTime,n);return t.endTime?`${r.diff(e,"d")+1} d`:"0 d"}if("progress"===e){return`${t.progress??0}%`}return r}function no(t,e){return t.querySelector(`.tasks-container .tasks-data-row[data-taskid="${e}"]`)}function ro(t,e){return(null==e?void 0:e.length)?e[t%e.length]:"transparent"}function io(t,e,n){const r=no(t,e),i=Ii(t,e);r&&(r.style.backgroundColor=n),i&&(i.style.backgroundColor=n)}const oo=(t,e,n,r,i,o,s)=>{const{taskBar:a,taskBarRow:l,taskRow:u}=((t,e)=>{const n=no(t,e);return{taskBar:Oi(t,e),taskBarRow:Ii(t,e),taskRow:n}})(t,n);if(!u||!a)return;const c=e.updateTask(n,r);if(!c)return;if(u.querySelectorAll("td").forEach((r=>{const o=r.getAttribute("data-columnid");if(o&&(r.innerHTML=eo(c,o,i.inputDateFormat),"name"===o))if(e.hasChildren(n)){const i=t.createElement("span");i.className="task-toggle-icon "+(c.collapsed?"collapsed":"expanded"),i.addEventListener("click",(()=>{e.toggleTask(n)})),r.prepend(i)}else{const e=t.createElement("span");e.className="task-toggle-icon-blank",r.prepend(e)}})),r.rowBackgroundColor&&l&&(u.style.backgroundColor=r.rowBackgroundColor,l.style.backgroundColor=r.rowBackgroundColor),r.barBackgroundColor&&(a.style.backgroundColor=r.barBackgroundColor),r.startTime||r.endTime){const t=Zi.calculateX(c,s,o,i),e=Zi.calculateWidth(c,o,i);a.style.left=`${t}px`,a.style.width=`${e}px`}if(void 0!==r.progress){const t=a.querySelector(".bar-timeline-progress");t&&(t.style.width=`${r.progress}%`),r.barBackgroundColor&&(t.style.backgroundColor=hr(r.barBackgroundColor,-80))}if(r.name){const t=a.querySelector(".bar-label");t&&(t.textContent=r.name)}e.updateDependencyArrows(n,t)};var so=(t=>(t.Milestone="milestone",t.Task="task",t))(so||{});class ao{constructor(t,e,n){this.options=t,this.chartContext=e,this.dataManager=n,this.effectiveColumnList=this.mergeColumnConfig(),this.injectDynamicColumnStyles()}mergeColumnConfig(){return this.options.columnConfig&&0!==this.options.columnConfig.length?to.map((t=>{var e;const n=null==(e=this.options.columnConfig)?void 0:e.find((e=>e.key===t.key));return n?{...t,...n}:t})):to}injectDynamicColumnStyles(){const t=this.effectiveColumnList.map((t=>`minmax(${t.minWidth||"30px"}, ${t.flexGrow||1}fr)`)).join(" ");const e=this.chartContext.getInstanceId(),n=`\n .tasks-container .tasks-header[data-chart-instance="${e}"] .tasks-header-row {\n grid-template-columns: ${t};\n }\n\n .tasks-container .tasks-data-row[data-chart-instance="${e}"] {\n grid-template-columns: ${t};\n }\n `;this.chartContext.injectStyles(n,`tasks-dynamic-columns-${e}`,{priority:"high"})}generateBody(t,e){const n=ur(this.chartContext,{className:"tasks-data-container"});return this.generateRows(t,n,e),n}generateHeader(t){const e=ur(this.chartContext,{className:"tasks-header"}),n=ur(this.chartContext,{className:"tasks-header-row"}),{headerBackground:r,rowHeight:i,fontColor:o}=this.options,s=this.chartContext.getInstanceId();return e.setAttribute("data-chart-instance",s),Di(t,(t=>{const e=ur(this.chartContext,{className:"tasks-header-cell",content:t});e.style.height=2*i+"px",e.style.color=o,n.append(e)})),e.append(n),e.style.background=r,e}generateRow(t,e){const n=ur(this.chartContext,{className:"tasks-data-row"}),{rowHeight:r,fontColor:i}=this.options,o=this.chartContext.getInstanceId();return n.setAttribute("data-taskid",t.id),n.setAttribute("data-chart-instance",o),n.style.height=`${r}px`,Di(this.effectiveColumnList,(({key:s})=>{const a=ur(this.chartContext,{className:"tasks-data-cell",content:eo(t,s,this.options.inputDateFormat)});if(a.setAttribute("data-columnid",s),a.setAttribute("data-chart-instance",o),a.style.height=`${r}px`,a.style.color=i,s===Ji.Name){if(a.style.paddingLeft=15*t.level+"px",a.style.textAlign="left",a.innerHTML="",this.dataManager.hasChildren(t.id)){const n=cr(this.chartContext,"span",{className:"task-toggle-icon "+(t.collapsed?"collapsed":"expanded")});n.addEventListener("click",(()=>{this.dataManager.toggleTask(t.id),e()})),a.append(n)}else{const t=cr(this.chartContext,"span",{className:"task-toggle-icon-blank"});a.append(t)}const n=cr(this.chartContext,"span",{textContent:t.name});a.append(n)}n.append(a)})),n}generateRows(t,e,n){return Di(t,(t=>{const r=this.generateRow(t,n);e.appendChild(r)})),this.fillEmptyRows(e,t.length,n),e}fillEmptyRows(t,e,n){const r=this.chartContext.querySelector(".gantt-container");if(!r)return;const i=r.clientHeight,o=this.options.rowHeight,s=i-2*o,a=Math.floor(s/o),l=Math.max(0,a-e);for(let u=0;u<l;u++){const e=this.generateEmptyRow(u);t.appendChild(e)}}generateEmptyRow(t){const e=ur(this.chartContext,{className:"tasks-data-row tasks-empty-row"}),{rowHeight:n,fontColor:r}=this.options,i=this.chartContext.getInstanceId();return e.setAttribute("data-taskid",`empty-${t}`),e.setAttribute("data-chart-instance",i),e.style.height=`${n}px`,Di(this.effectiveColumnList,(({key:t})=>{const o=ur(this.chartContext,{className:"tasks-data-cell",content:""});o.setAttribute("data-columnid",t),o.setAttribute("data-chart-instance",i),o.style.height=`${n}px`,o.style.color=r,e.append(o)})),e}render(t){return[this.generateHeader(this.effectiveColumnList.map((t=>t.title))),this.generateBody(this.dataManager.getFlatVisibleTasks(),t)]}}const lo="root";class uo{constructor(t=[]){this.dependencies=[],this.taskMap={},this.taskTree={},this.arrowLinkInstanceId=null,this.setTasks(t)}buildTaskTree(t){const e={[lo]:[]};t.forEach((t=>{var n;this.taskMap[t.id]=t,e[t.id]||(e[t.id]=[]),e[t.parentId]||(e[t.parentId]=[]),t.dependency&&this.addDependency(t.dependency,t.id),t.parentId?null==(n=e[t.parentId])||n.push(t.id):e[lo].push(t.id)})),this.taskTree=e}processLevel(){const t=(e,n)=>{e.forEach((e=>{this.taskMap[e.id]={...e,level:n};const r=this.taskTree[e.id].map((t=>this.taskMap[t]));Array.isArray(r)&&t(r,n+1)}))};t(this.getTasks().filter((t=>!t.parentId)),1)}sortTasksByDate(t){const e=(e,n)=>new Date(e[t]).getTime()-new Date(n[t]).getTime(),n=(t,r)=>{t.sort(e),r&&(this.taskTree[r]=t.map((t=>t.id))),t.forEach((t=>{const e=this.taskTree[t.id].map((t=>this.getTaskById(t)));e&&e.length>0&&n(e,t.id)}))},r=this.taskTree[lo].map((t=>this.getTaskById(t)));n(r,lo)}validateTask(t){if("milestone"===t.type){if(!t.id||!t.startTime)throw new Error("Milestone must have an id and start date")}else if(!t.id||!t.startTime||!t.endTime)throw new Error("Task must have an id, start, and end date");return{...t,endTime:t.endTime||t.startTime,progress:t.progress??0,type:t.type??so.Task,level:1}}addDependency(t,e,n="FS"){this.dependencies.push({fromId:t,toId:e,type:n})}addTask(t){const e=this.validateTask(t);this.taskMap[e.id]=e,this.buildTaskTree(this.getTasks())}calculateProgress(){const t=this.getTasks(),e=t.reduce(((t,e)=>t+mr(e.endTime).diff(mr(e.startTime),"day")),0),n=t.reduce(((t,e)=>t+e.progress/100*mr(e.endTime).diff(mr(e.startTime),"day")),0);return e?n/e*100:0}getDateRange(t=0,e){const n=this.getTasks();if(0===n.length){const n=mr().startOf(e);let r=1;switch(e){case"day":r=30;break;case"week":case"month":default:r=12;break;case"quarter":r=4;break;case"year":r=5}const i=n.add(r+t,e);return[n,i]}const r=n.map((t=>mr(t.startTime))),i=n.filter((t=>!!t.endTime)).map((t=>mr(t.endTime)));return[mr.min(r),mr.max(i).add(t,e)]}getFlatSortedTasks(t,e=!1){let n=[];return t.forEach((t=>{n.push(t);const r=this.taskTree[t.id].map((t=>this.taskMap[t]));!e&&t.collapsed||!Array.isArray(r)||(n=n.concat(this.getFlatSortedTasks(r,e)))})),n}getFlatTasks(){return this.getFlatSortedTasks(this.taskTree[lo].map((t=>this.getTaskById(t))),!0)}getFlatVisibleTasks(){return this.getFlatSortedTasks(this.taskTree[lo].map((t=>this.getTaskById(t))))}getNestedChildTasks(t,e=!1){const n=[],r=t=>{var i;if(e&&(null==(i=this.taskMap[t])?void 0:i.collapsed))return;(this.taskTree[t]||[]).forEach((t=>{const e=this.taskMap[t];e&&(n.push(e),r(t))}))};return r(t),n}getTaskById(t){return this.taskMap[t]}getTaskDependencies(t){return{incoming:this.dependencies.filter((e=>e.toId===t)),outgoing:this.dependencies.filter((e=>e.fromId===t))}}getTasks(){return Object.values(this.taskMap)}getTopParentTasks(){return Object.values(this.taskMap).filter((t=>void 0===t.parentId&&t.type===so.Task))}hasChildren(t){return this.taskTree[t].length>0}removeDependency(t,e){this.dependencies=this.dependencies.filter((n=>!(n.fromId===t&&n.toId===e)))}removeTask(t){this.taskMap[t]=void 0,this.buildTaskTree(Object.values(this.taskMap))}setTasks(t){if(!Array.isArray(t))throw new Error("Tasks must be an array");const e=t.map((t=>this.validateTask(t)));this.taskMap={},this.dependencies=[],this.buildTaskTree(e),this.sortTasksByDate("startTime"),this.processLevel()}toggleTask(t){const e=this.getTaskById(t);this.taskMap[t]={...e,collapsed:!e.collapsed}}setArrowLinkInstanceId(t){this.arrowLinkInstanceId=t}updateDependencyArrows(t,e){const n=this.getTaskDependencies(t);[...n.incoming,...n.outgoing].forEach((t=>{const n=this.getTaskById(t.fromId),r=this.getTaskById(t.toId);if(n&&r){const n=(null==e?void 0:e.getInstanceId())||"unknown",r={fromId:t.fromId,toId:t.toId,type:t.type,chartInstanceId:n,arrowLinkInstanceId:this.arrowLinkInstanceId},i=new CustomEvent("dependency-arrow-update",{detail:r,bubbles:!1,cancelable:!1});e?e.dispatchEvent(i):(console.warn(`[${n}] No chartContext provided for dependency arrow update`),document.dispatchEvent(i))}}))}updateTask(t,e){const n=this.taskMap[t];if(!n)throw new Error(`Task with id "${t}" not found`);const r=this.validateTask({...n,...e});return this.taskMap[t]=r,this.buildTaskTree(this.getTasks()),r}}const co={1:["Jan","Feb","Mar"],2:["Apr","May","Jun"],3:["Jul","Aug","Sep"],4:["Oct","Nov","Dec"]};function ho(t,e,n){const r=[];let i=t.startOf(n);const o=e.startOf(n);for(;i.isSameOrBefore(o);)r.push(i),i=i.add(1,`${n}s`);return r}function fo(t,e){return ho(t,e,Li.Month)}function po(t,e){return ho(t,e,Li.Year)}function mo(t,e,n){const r=function(t,e){return ho(t,e,Li.Day)}(t,e),i=fo(t,e),o=r.map((t=>t.format("DD MMM")));return[i.map(((r,o)=>0===o?{data:r.format("MMM YYYY"),width:(r.daysInMonth()-t.date()+1)*n}:o===i.length-1?{data:r.format("MMM YYYY"),width:(r.daysInMonth()-(r.daysInMonth()-e.date()))*n}:{data:r.format("MMM YYYY"),width:r.daysInMonth()*n})),o]}function go(t,e,n){const r=function(t,e){return ho(t,e,Li.Week)}(t,e),i=fo(t,e),o=r.map((t=>`#${t.week()}, ${t.day(0).format("DD MMM")} - ${t.day(6).format("DD MMM")}`));return[i.map(((r,o)=>{if(0===o){const e=r.endOf("month").date()-t.date()+1;return{data:r.format("MMMM, YYYY"),width:(e<7?7:e)/7*n}}if(o===i.length-1){const t=e.date()-r.startOf("month").date()+1;return{data:r.format("MMMM, YYYY"),width:(t<7?7:t)/7*n}}const s=r.endOf("month").date()-r.startOf("month").date()+1;return{data:r.format("MMMM, YYYY"),width:(s<7?7:s)/7*n}})),o]}function yo(t,e,n){const r=function(t,e){const n=[];let r=t.startOf(Li.Quarter);const i=e.startOf(Li.Quarter);for(;r.isSameOrBefore(i);)n.push(r),r=r.add(1,`${Li.Quarter}s`);return n}(t,e),i=po(t,e),o=r.map((t=>{const e=co[t.quarter()];return`#${t.quarter()} ${e[0]}-${e[2]}`}));return[i.map(((r,o)=>0===o?{data:r.format("YYYY"),width:(5-t.quarter())*n}:o===i.length-1?{data:r.format("YYYY"),width:e.quarter()*n}:{data:r.format("YYYY"),width:4*n})),o]}class vo{constructor(t,e,n,r){this.viewMode=t,this.options=e,this.chartContext=n,this.dataManager=r}generateHeader(t,e){const n=ur(this.chartContext,{className:"timeline-header"}),r=ur(this.chartContext,{className:"timeline-header-row"}),{headerBackground:i,rowHeight:o,fontColor:s}=this.options,a=this.chartContext.getInstanceId();if(n.setAttribute("data-chart-instance",a),Di(t,(t=>{const n=ur(this.chartContext,{className:"timeline-header-cell",content:t.data,style:{height:e?`${o}px`:2*o+"px",minWidth:`${t.width}px`||"100%",color:s}});r.append(n)})),n.append(r),!e)return n.style.background=i,n;const l=ur(this.chartContext,{className:"timeline-header-row"});return Di(e,(t=>{const e=ur(this.chartContext,{className:"timeline-header-cell",content:t,style:{height:`${o}px`,maxWidth:`${Ri[this.viewMode]}px`,minWidth:`${Ri[this.viewMode]}px`,color:s}});l.append(e)})),n.append(l),n.style.background=i,n}generateRow(t,e){const n=ur(this.chartContext,{className:"timeline-data-row"}),{rowHeight:r}=this.options,i=this.chartContext.getInstanceId();n.setAttribute("data-taskid",t),n.setAttribute("data-chart-instance",i);for(let o=0;o<e;o++){const t=ur(this.chartContext,{className:"timeline-data-cell",style:{height:`${r}px`,minWidth:`${Ri[this.viewMode]}px`}});t.setAttribute("data-chart-instance",i),n.append(t)}return n}generateRows(t,e){const n=ur(this.chartContext,{className:"timeline-body"}),r=this.chartContext.getInstanceId();return n.setAttribute("data-chart-instance",r),t.forEach((t=>{const r=this.generateRow(t.id,e);n.append(r)})),this.fillEmptyRows(n,t.length,e),n}fillEmptyRows(t,e,n){const r=this.chartContext.querySelector(".gantt-container");if(!r)return;const i=r.clientHeight,o=this.options.rowHeight,s=i-2*o,a=Math.floor(s/o),l=Math.max(0,a-e);for(let u=0;u<l;u++){const e=this.generateRow(`empty-${u}`,n);e.classList.add("timeline-empty-row"),t.append(e)}}getHeaderData(t,e,n){return n===Li.Day?mo(t,e,Ri[this.viewMode]):n===Li.Week?go(t,e,Ri[this.viewMode]):n===Li.Month?function(t,e,n){const r=fo(t,e),i=po(t,e),o=r.map((t=>t.format("MMMM")));return[i.map(((r,o)=>0===o?{data:r.format("YYYY"),width:(12-t.month())*n}:o===i.length-1?{data:r.format("YYYY"),width:(e.month()+1)*n}:{data:r.format("YYYY"),width:12*n})),o]}(t,e,Ri[this.viewMode]):n===Li.Quarter?yo(t,e,Ri[this.viewMode]):n===Li.Year?function(t,e,n){return[po(t,e).map((t=>({data:t.format("YYYY"),width:n}))),null]}(t,e,Ri[this.viewMode]):null}render(){const t=this.dataManager.getFlatVisibleTasks(),e=this.dataManager.getDateRange(8,this.viewMode),n=this.getHeaderData(e[0],e[1],this.viewMode);if(!n)return null;const[r,i]=n,o=this.generateHeader(r,i),s=this.generateRows(t,(i||r).length),a=ur(this.chartContext,{className:"bar-container"}),l=ur(this.chartContext,{className:"annotation-container"});Di(t,((t,n)=>{const r=new Zi(t,e[0],this.options,this.viewMode,n,this.chartContext,this.dataManager).drawBar(((t,n)=>{oo(this.chartContext,this.dataManager,t,n,this.options,this.viewMode,e[0])}));a.append(r)}));const u=t.length*this.options.rowHeight,c=new ji(this.options,e[0],this.viewMode,this.chartContext,u).render();l.append(...c);const h=ur(this.chartContext,{className:"timeline-horizontal-scroll"}),d=ur(this.chartContext,{className:"timeline-horizontal-scroll-content"}),f=this.chartContext.getInstanceId();h.id=`timeline-horizontal-scroll-${f}`;const p=(i||r).length*Ri[this.viewMode];return d.style.width=`${p}px`,d.style.height="1px",h.appendChild(d),[o,l,s,a,h]}}const bo="\n .gantt-dialog-container {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: none;\n z-index: 999;\n overflow: hidden;\n }\n\n .gantt-dialog-container .dialog-overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n }\n\n .gantt-dialog-container .gantt-dialog {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background: var(--dialog-bg-color, white);\n border-radius: 4px;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n border: 1px solid var(--dialog-border-color, #eee);\n z-index: 1000;\n min-width: 300px;\n max-width: 90%;\n max-height: 90%;\n display: flex;\n flex-direction: column;\n }\n\n .gantt-dialog .dialog-header {\n padding: 12px 16px;\n border-bottom: 1px solid var(--dialog-border-color, #eee);\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: var(--header-bg-color, #f3f3f3);\n flex-shrink: 0;\n }\n\n .gantt-dialog .dialog-title {\n font-weight: 600;\n font-size: 16px;\n color: var(--header-text-color, #333);\n margin: 0;\n }\n\n .gantt-dialog .dialog-close {\n background: none;\n border: none;\n font-size: 20px;\n cursor: pointer;\n padding: 0;\n color: var(--text-color, #666);\n transition: color 0.2s;\n line-height: 1;\n }\n\n .gantt-dialog .dialog-close:hover {\n color: var(--text-color, #333);\n }\n\n .gantt-dialog .dialog-content {\n padding: 16px;\n overflow-y: auto;\n overflow-x: hidden;\n flex: 1;\n background: var(--dialog-bg-color, white);\n color: var(--text-color, #333);\n }\n\n .gantt-dialog .dialog-content::-webkit-scrollbar {\n width: 8px;\n }\n\n .gantt-dialog .dialog-content::-webkit-scrollbar-track {\n background: var(--dialog-bg-color, #f1f1f1);\n }\n\n .gantt-dialog .dialog-content::-webkit-scrollbar-thumb {\n background: var(--border-color, #888);\n border-radius: 4px;\n }\n\n .gantt-dialog .dialog-content::-webkit-scrollbar-thumb:hover {\n background: var(--text-color, #555);\n }\n\n .gantt-dialog-container.show {\n display: block;\n }\n\n .gantt-dialog-container.animate .dialog-overlay {\n animation: fadeIn 0.2s ease-out;\n }\n\n .gantt-dialog-container.animate .gantt-dialog {\n animation: slideIn 0.3s ease-out;\n }\n\n @keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n\n @keyframes slideIn {\n from {\n opacity: 0;\n transform: translate(-50%, -48%);\n }\n to {\n opacity: 1;\n transform: translate(-50%, -50%);\n }\n }\n\n .gantt-container {\n position: relative;\n }\n",wo="\n .dropdown {\n position: relative;\n display: inline-block;\n }\n\n .dropdown .gantt-action-button {\n border-radius: 4px;\n }\n\n .dropdown.show .gantt-action-button {\n background: var(--toolbar-hover-bg-color, #f8f9fa);\n border-color: var(--button-bg-color, #0066cc);\n }\n \n .dropdown-btn {\n padding: 8px 16px;\n background-color: var(--toolbar-bg-color, #fff);\n color: var(--text-color, rgba(0, 0, 0, 0.7));\n border: 1px solid var(--toolbar-border-color, #ddd);\n cursor: pointer;\n font-weight: bold;\n border-radius: 2px;\n font-family: inherit;\n font-size: inherit;\n line-height: 1.5;\n transition: background-color 0.2s ease, border-color 0.2s ease;\n }\n \n .dropdown-btn:hover {\n background-color: var(--toolbar-hover-bg-color, #f8f9fa);\n border-color: var(--toolbar-border-color, #bbb);\n }\n \n .dropdown-btn:focus {\n outline: none;\n border-color: var(--button-bg-color, #0066cc);\n box-shadow: 0 0 0 2px rgba(0, 102, 204, 0.2);\n }\n \n .dropdown-content {\n display: none;\n position: absolute;\n background-color: var(--dialog-bg-color, #fff);\n min-width: 160px;\n box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n border-radius: 4px;\n right: 0;\n top: calc(100% + 4px);\n border: 1px solid var(--dialog-border-color, #D9D9D9);\n overflow: hidden;\n }\n \n .dropdown-content a {\n color: var(--text-color, #333);\n padding: 10px 14px;\n text-decoration: none;\n display: block;\n font-family: inherit;\n font-size: 13px;\n line-height: 1.4;\n transition: background-color 0.2s ease;\n cursor: pointer;\n }\n \n .dropdown-content a:hover {\n background-color: var(--toolbar-hover-bg-color, #f1f1f1);\n }\n \n .dropdown-content a:focus {\n background-color: var(--button-hover-bg-color, #e6f3ff);\n outline: none;\n }\n \n .dropdown.show .dropdown-content {\n display: block;\n animation: dropdownSlideDown 0.2s ease-out;\n }\n \n @keyframes dropdownSlideDown {\n from {\n opacity: 0;\n transform: translateY(-5px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n \n /* Shadow DOM specific adjustments */\n :host .dropdown {\n position: relative;\n display: inline-block;\n }\n",xo="\n * {\n box-sizing: border-box;\n }\n\n .gantt-container * {\n user-select: none;\n }\n\n .gantt-actions-container {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 6px 10px;\n flex: 0 0 36px;\n min-height: 36px;\n max-height: 36px;\n background-color: var(--background-color, #FFFFFF);\n border-bottom: 1px solid var(--border-color, #DFE0E1);\n }\n\n .gantt-actions-spacer {\n flex: 1;\n min-width: 8px;\n }\n\n .gantt-action-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 0;\n border: 0;\n border-radius: 4px;\n background: var(--toolbar-bg-color, #fff);\n color: var(--text-color, #333);\n cursor: pointer;\n transition: all 0.15s ease;\n flex-shrink: 0;\n }\n\n .gantt-action-button:hover:not(:disabled) {\n background: var(--toolbar-hover-bg-color, #f8f9fa);\n border-color: var(--toolbar-border-color, #999);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);\n }\n\n .gantt-action-button:active:not(:disabled) {\n transform: translateY(0);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n }\n\n .gantt-action-button:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n background: var(--toolbar-bg-color, #fafafa);\n }\n\n .gantt-action-button svg {\n width: 16px;\n height: 16px;\n stroke: currentColor;\n flex-shrink: 0;\n }\n\n .gantt-action-separator {\n width: 1px;\n height: 20px;\n background-color: var(--border-color, #DFE0E1);\n margin: 0 4px;\n flex-shrink: 0;\n }\n\n .gantt-view-mode-display {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n height: 28px;\n font-size: 13px;\n color: var(--text-color, #666);\n background: var(--toolbar-bg-color, #f8f9fa);\n border-radius: 4px;\n margin-left: 4px;\n font-weight: 500;\n white-space: nowrap;\n flex-shrink: 0;\n }\n\n .gantt-view-mode-display svg {\n width: 14px;\n height: 14px;\n flex-shrink: 0;\n }\n \n .gantt-container {\n display: flex;\n flex: 1 1 auto;\n min-height: 0;\n min-width: 0;\n border: 1px solid var(--border-color, #DFE0E1);\n border-top: none;\n position: relative;\n background-color: var(--background-color, #FFFFFF);\n overflow: hidden;\n height: 100%;\n box-sizing: border-box;\n }\n \n .gantt-button {\n border: 1px solid var(--toolbar-border-color, #D9D9D9);\n border-radius: 2px;\n background: var(--toolbar-bg-color, #fff);\n padding: 4px 12px;\n color: var(--text-color, rgba(0, 0, 0, 0.7));\n line-height: 20px;\n font-weight: bold;\n cursor: pointer;\n transition: background-color 0.2s ease;\n }\n\n .gantt-button:hover {\n background: var(--toolbar-hover-bg-color, #f8f9fa);\n }\n \n .gantt-button:disabled {\n color: rgba(128, 128, 128, 0.5);\n opacity: 0.6;\n }\n",_o="\n .gantt-container ::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n }\n\n .gantt-container ::-webkit-scrollbar-track {\n background: var(--scrollbar-track-color, #F5F5F5);\n border-radius: 4px;\n }\n\n .gantt-container ::-webkit-scrollbar-thumb {\n background: var(--scrollbar-thumb-color, #C1C1C1);\n border-radius: 4px;\n border: 2px solid var(--scrollbar-track-color, #F5F5F5);\n }\n\n .gantt-container ::-webkit-scrollbar-thumb:hover {\n background: var(--scrollbar-thumb-hover-color, #A8A8A8);\n }\n\n .gantt-container * {\n scrollbar-width: thin;\n scrollbar-color: var(--scrollbar-thumb-color, #C1C1C1) var(--scrollbar-track-color, #F5F5F5);\n }\n\n /* Shadow DOM support */\n :host .gantt-container ::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n }\n\n :host .gantt-container ::-webkit-scrollbar-track {\n background: var(--scrollbar-track-color, #F5F5F5);\n border-radius: 4px;\n }\n\n :host .gantt-container ::-webkit-scrollbar-thumb {\n background: var(--scrollbar-thumb-color, #C1C1C1);\n border-radius: 4px;\n border: 2px solid var(--scrollbar-track-color, #F5F5F5);\n }\n\n :host .gantt-container ::-webkit-scrollbar-thumb:hover {\n background: var(--scrollbar-thumb-hover-color, #A8A8A8);\n }\n\n :host .gantt-container * {\n scrollbar-width: thin;\n scrollbar-color: var(--scrollbar-thumb-color, #C1C1C1) var(--scrollbar-track-color, #F5F5F5);\n }\n",ko='\n\n .task-form {\n overflow: visible;\n }\n\n .task-form .form-group {\n margin-bottom: 18px;\n position: relative;\n }\n\n /* extra padding to last form group for breathing room */\n .task-form .form-group:last-of-type {\n margin-bottom: 24px;\n }\n\n .task-form label {\n display: block;\n margin-bottom: 5px;\n font-weight: 500;\n color: var(--text-color, #333);\n }\n\n .task-form input {\n width: 100%;\n padding: 8px;\n border: 1px solid var(--dialog-border-color, #ddd);\n border-radius: 4px;\n font-size: 14px;\n background-color: var(--dialog-bg-color, #fff);\n color: var(--text-color, #333);\n }\n\n .task-form input:focus {\n outline: none;\n border-color: var(--button-bg-color, #0066cc);\n }\n\n .task-form .grid {\n display: flex;\n justify-content: space-between;\n gap: 12px;\n }\n\n .task-form .grid .form-group {\n flex: 1;\n }\n\n .task-form .form-actions {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-top: 24px;\n padding-top: 16px;\n border-top: 1px solid var(--dialog-border-color, #eee);\n position: sticky;\n bottom: -16px;\n background: var(--dialog-bg-color, white);\n margin-left: -16px;\n margin-right: -16px;\n margin-bottom: -16px;\n padding-left: 16px;\n padding-right: 16px;\n padding-bottom: 16px;\n }\n\n .task-form .btn-primary {\n background: var(--button-bg-color, #0066cc);\n color: var(--button-text-color, white);\n border: none;\n padding: 8px 16px;\n border-radius: 4px;\n cursor: pointer;\n font-weight: 500;\n }\n\n .task-form .btn-primary:hover {\n background: var(--button-hover-bg-color, #0052a3);\n }\n\n .task-form .btn-disabled,\n .task-form .btn-disabled:hover {\n background: #99c2ff;\n cursor: not-allowed;\n opacity: 0.7;\n }\n\n .task-form .form-error {\n position: absolute;\n bottom: -15px;\n left: 0;\n color: #dc3545;\n font-size: 12px;\n margin-top: 4px;\n line-height: 1.2;\n transition: opacity 0.2s ease;\n }\n\n .task-form .invalid {\n border-color: #dc3545;\n }\n\n .task-form .invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n }\n\n .color-picker-wrapper {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .color-picker-wrapper input[type="color"] {\n -webkit-appearance: none;\n width: 32px;\n height: 32px;\n padding: 0;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n }\n\n .color-picker-wrapper input[type="color"]::-webkit-color-swatch-wrapper {\n padding: 0;\n }\n\n .color-picker-wrapper input[type="color"]::-webkit-color-swatch {\n border: 1px solid var(--dialog-border-color, #ddd);\n border-radius: 4px;\n }\n\n .color-picker-wrapper .color-preview {\n font-size: 12px;\n color: var(--text-color, #666);\n }\n',Co="\n .tasks-container {\n height: 100%;\n position: relative;\n display: flex;\n flex-direction: column;\n overflow-x: visible;\n overflow-y: visible;\n }\n\n .tasks-header {\n flex-shrink: 0;\n position: sticky;\n top: 0;\n z-index: 10;\n background-color: var(--header-bg-color, #F3F3F3);\n overflow: hidden;\n }\n\n .tasks-header-row {\n display: grid;\n width: 100%;\n }\n\n .tasks-header-cell {\n padding: 0 10px;\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: flex;\n align-items: center;\n border: var(--cell-border-width, 1px) solid var(--cell-border-color, #eff0f0);\n color: var(--text-color, #000);\n box-sizing: border-box;\n font-weight: 600;\n }\n\n .tasks-body-wrapper {\n flex: 1;\n overflow: visible;\n position: relative;\n }\n\n .tasks-data-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .tasks-data-row {\n display: grid;\n width: 100%;\n border-bottom: var(--cell-border-width, 1px) solid var(--cell-border-color, #eff0f0);\n box-sizing: border-box;\n }\n\n .tasks-data-cell {\n padding: 0 10px;\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: flex;\n align-items: center;\n border-left: var(--cell-border-width, 1px) solid var(--cell-border-color, #eff0f0);\n border-right: var(--cell-border-width, 1px) solid var(--cell-border-color, #eff0f0);\n color: var(--text-color, #000);\n box-sizing: border-box;\n }\n\n .tasks-data-row .tasks-data-cell:first-child {\n border-left: none;\n }\n\n .tasks-data-row .tasks-data-cell:last-child {\n border-right: none;\n }\n\n .tasks-data-row .task-toggle-icon,\n .tasks-data-row .task-toggle-icon-blank {\n display: inline-block;\n margin-right: 5px;\n width: 10px;\n height: 10px;\n vertical-align: middle;\n flex-shrink: 0;\n }\n\n .tasks-data-row .task-toggle-icon {\n cursor: pointer;\n position: relative;\n }\n\n /* Chevron (expanded) - pointing down */\n .tasks-data-row .task-toggle-icon.expanded::before {\n content: '';\n position: absolute;\n width: 6px;\n height: 6px;\n border-right: 2px solid var(--text-color, #000000);\n border-bottom: 2px solid var(--text-color, #000000);\n transform: rotate(45deg);\n top: 0;\n left: 2px;\n }\n\n /* Chevron - pointing right (collapsed) */\n .tasks-data-row .task-toggle-icon.collapsed::before {\n content: '';\n position: absolute;\n width: 6px;\n height: 6px;\n border-right: 2px solid var(--text-color, #000000);\n border-bottom: 2px solid var(--text-color, #000000);\n transform: rotate(-45deg);\n top: 2px;\n left: 0;\n }\n\n .tasks-data-row .task-toggle-icon:hover::before {\n opacity: 0.7;\n }\n\n /* Shadow DOM specific */\n :host .tasks-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n :host .tasks-header {\n position: sticky;\n top: 0;\n z-index: 10;\n }\n",So="\n .gantt-container .timeline-container {\n width: 100%;\n height: 100%;\n position: relative;\n background-color: var(--background-color, #FFFFFF);\n display: flex;\n flex-direction: column;\n overflow: visible;\n padding-bottom: 0;\n box-sizing: border-box;\n }\n\n .timeline-container .timeline-header {\n position: sticky;\n top: 0;\n z-index: 100;\n background-color: var(--header-bg-color, #F3F3F3);\n flex-shrink: 0;\n overflow-x: auto;\n overflow-y: hidden;\n width: 100%;\n scrollbar-width: none; \n -ms-overflow-style: none; \n }\n\n .timeline-container .timeline-header::-webkit-scrollbar {\n display: none;\n height: 0;\n width: 0;\n }\n\n /* Shadow DOM specific */\n :host .timeline-container .timeline-header {\n scrollbar-width: none !important;\n -ms-overflow-style: none !important;\n }\n\n :host .timeline-container .timeline-header::-webkit-scrollbar {\n display: none !important;\n height: 0 !important;\n width: 0 !important;\n }\n\n .timeline-container .timeline-header > .timeline-header-row {\n width: max-content;\n position: relative;\n }\n\n .timeline-container .timeline-body-wrapper {\n flex: 1;\n overflow-x: auto;\n overflow-y: hidden;\n position: relative;\n width: 100%;\n min-height: 0;\n scrollbar-width: none;\n -ms-overflow-style: none;\n padding-bottom: 0; \n margin-bottom: 0;\n }\n\n .timeline-body-wrapper .timeline-horizontal-scroll, .timeline-container .timeline-body-wrapper::-webkit-scrollbar {\n display: none;\n height: 0;\n width: 0;\n }\n\n /* shadow DOM specific */\n :host .timeline-container .timeline-body-wrapper {\n scrollbar-width: none !important;\n -ms-overflow-style: none !important;\n }\n\n :host .timeline-container .timeline-body-wrapper::-webkit-scrollbar {\n display: none !important;\n height: 0 !important;\n width: 0 !important;\n }\n\n\n .timeline-horizontal-scroll {\n position: absolute;\n bottom: 0;\n height: 17px;\n overflow-x: auto;\n overflow-y: hidden;\n z-index: 300;\n background-color: var(--split-bar-color, var(--background-color, #FFFFFF));\n border-top: 1px solid var(--border-color, #DFE0E1);\n box-sizing: border-box;\n display: block;\n visibility: visible;\n opacity: 1;\n pointer-events: auto;\n }\n\n .timeline-horizontal-scroll-content {\n height: 1px;\n width: max-content;\n }\n\n .timeline-container .annotation,\n .timeline-container .annotation-container {\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n }\n\n .timeline-container .annotation-container > * {\n pointer-events: auto;\n }\n\n .timeline-container .bar-container {\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n }\n\n .timeline-container .bar-container > * {\n pointer-events: auto;\n }\n\n .timeline-container .bar-timeline {\n position: absolute;\n cursor: move;\n cursor: grab;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .timeline-container .bar-timeline .bar-handle {\n height: 100%;\n width: 5px;\n position: absolute;\n z-index: 1000;\n background: transparent;\n }\n\n .timeline-container .bar-timeline .bar-handle:hover {\n cursor: col-resize;\n }\n\n .resizing {\n pointer-events: none;\n opacity: 0.8;\n }\n\n .timeline-container .bar-timeline .bar-handle.handle-left {\n left: -5px;\n }\n\n .timeline-container .bar-timeline .bar-handle.handle-right {\n right: -5px;\n }\n\n .timeline-container .bar-timeline.dragging {\n cursor: grabbing;\n }\n\n .bar-timeline .bar-timeline-progress {\n position: absolute;\n pointer-events: none;\n height: 100%;\n left: 0;\n }\n\n .bar-timeline .bar-label {\n white-space: nowrap;\n pointer-events: none;\n overflow: hidden;\n z-index: 1;\n }\n\n .timeline-container .timeline-body {\n width: max-content;\n position: relative;\n padding-bottom: 17px;\n }\n \n .timeline-container .timeline-header-row,\n .timeline-container .timeline-data-row {\n display: flex;\n }\n\n .timeline-container .timeline-header-cell,\n .timeline-container .timeline-data-cell {\n padding: 0 10px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: flex;\n align-items: center;\n justify-content: center;\n border: var(--cell-border-width, 1px) solid var(--cell-border-color, #eff0f0);\n color: var(--text-color, #000);\n }\n\n .timeline-container .timeline-header-cell {\n background-color: var(--header-bg-color, #F3F3F3);\n color: var(--header-text-color, #333);\n }\n",Eo='\n #apexgantt-tooltip-container,\n [role="tooltip"] {\n position: absolute;\n z-index: 1000;\n pointer-events: none;\n opacity: 0;\n visibility: hidden;\n transition: opacity 0.2s ease;\n font-family: inherit;\n font-size: 13px;\n line-height: 1.4;\n display: none;\n width: 300px !important;\n max-width: 300px !important;\n box-sizing: border-box;\n }\n \n #apexgantt-tooltip-container.visible,\n [role="tooltip"].visible {\n display: block;\n opacity: 1;\n visibility: visible;\n }\n \n #apexgantt-tooltip-container .tooltip-content,\n [role="tooltip"] .tooltip-content {\n padding: 12px 16px;\n border-radius: 6px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);\n width: 100%;\n word-wrap: break-word;\n overflow-wrap: break-word;\n box-sizing: border-box;\n display: block;\n border: 1px solid rgba(255, 255, 255, 0.1);\n }\n \n /* Shadow DOM specific adjustments */\n :host #apexgantt-tooltip-container,\n :host [role="tooltip"] {\n position: absolute;\n z-index: 1000;\n pointer-events: none;\n opacity: 0;\n visibility: hidden;\n transition: opacity 0.2s ease;\n font-family: inherit;\n font-size: 13px;\n line-height: 1.4;\n display: none;\n width: 300px !important;\n max-width: 300px !important;\n box-sizing: border-box;\n }\n \n :host #apexgantt-tooltip-container.visible,\n :host [role="tooltip"].visible {\n display: block;\n opacity: 1;\n visibility: visible;\n }\n\n #apexgantt-tooltip-container .tooltip-content div,\n [role="tooltip"] .tooltip-content div {\n margin: 6px 0;\n word-break: break-word;\n line-height: 1.4;\n }\n \n #apexgantt-tooltip-container .tooltip-content strong,\n [role="tooltip"] .tooltip-content strong {\n font-weight: 600;\n display: inline;\n margin-right: 8px;\n }\n \n #apexgantt-tooltip-container .tooltip-content span,\n [role="tooltip"] .tooltip-content span {\n display: inline;\n }\n \n /* First item (Name) styling */\n #apexgantt-tooltip-container .tooltip-content div:first-child,\n [role="tooltip"] .tooltip-content div:first-child {\n margin-bottom: 10px;\n padding-bottom: 8px;\n border-bottom: 1px solid rgba(255, 255, 255, 0.2);\n }\n \n #apexgantt-tooltip-container .tooltip-content div:first-child strong,\n [role="tooltip"] .tooltip-content div:first-child strong {\n font-weight: 700;\n }\n \n #apexgantt-tooltip-container .tooltip-content div:last-child,\n [role="tooltip"] .tooltip-content div:last-child {\n margin-bottom: 0;\n }\n',To="\n #toolbar {\n display: flex;\n gap: 5px;\n position: absolute;\n right: 10px;\n top: 10px;\n z-index: 100;\n }\n \n .toolbar-item {\n align-items: center;\n background-color: var(--toolbar-bg-color, #FFFFFF);\n border: 1px solid var(--toolbar-border-color, #BCBCBC);\n cursor: pointer;\n display: flex;\n height: 30px;\n justify-content: center;\n width: 30px;\n border-radius: 3px;\n transition: all 0.2s ease;\n position: relative;\n }\n \n .toolbar-item:hover {\n background-color: var(--toolbar-hover-bg-color, #f8f9fa);\n border-color: var(--toolbar-border-color, #999);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n }\n \n .toolbar-item:active {\n transform: translateY(0);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n }\n \n .toolbar-item:focus {\n outline: none;\n border-color: var(--button-bg-color, #0066cc);\n box-shadow: 0 0 0 2px rgba(0, 102, 204, 0.2);\n }\n \n .toolbar-item img {\n width: 16px;\n height: 16px;\n pointer-events: none;\n filter: var(--toolbar-icon-filter, none);\n }\n \n .toolbar-item[disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n }\n \n /* Tooltip styles */\n .toolbar-item::after {\n content: attr(data-tooltip);\n position: absolute;\n bottom: -35px;\n left: 50%;\n transform: translateX(-50%);\n background: var(--tooltip-bg-color, #333);\n color: var(--tooltip-text-color, white);\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 12px;\n white-space: nowrap;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s ease;\n z-index: 1000;\n }\n \n .toolbar-item::before {\n content: '';\n position: absolute;\n bottom: -25px;\n left: 50%;\n transform: translateX(-50%);\n border: 5px solid transparent;\n border-bottom-color: var(--tooltip-bg-color, #333);\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s ease;\n z-index: 1000;\n }\n \n .toolbar-item:hover::after,\n .toolbar-item:hover::before {\n opacity: 1;\n }\n \n /* Shadow DOM specific adjustments */\n :host #toolbar {\n display: flex;\n gap: 5px;\n position: absolute;\n right: 10px;\n top: 10px;\n z-index: 100;\n }\n",Mo={paddingX:20,paddingY:15};class Ao{constructor(t){this.elements=[],this.chartContext=null,this.instanceId=t||Math.random().toString(36).substr(2,9)}getInstanceId(){return this.instanceId}static calculateArrowPath(t,e,n,r){const i=sn(t,n),o=sn(e,n),s=i.right,a=i.top+i.height/2,l=o.left-2,u=o.top+o.height/2,{paddingX:c,paddingY:h}=r,d=[`M ${s},${a}`];if(l>s){if(u<a){const t=s+c,e=a-h,n=l-c,r=u+h;d.push(`L ${t},${a}`),d.push(`L ${t},${e}`),d.push(`L ${n},${e}`),d.push(`L ${n},${r}`),d.push(`L ${n},${u}`)}else if(u>a){const t=(s+l)/2;if(l-s<20){const t=s+c,e=a+h,n=l-c,r=u-h;d.push(`L ${t},${a}`),d.push(`L ${t},${e}`),d.push(`L ${n},${e}`),d.push(`L ${n},${r}`),d.push(`L ${n},${u}`)}else d.push(`L ${t},${a}`);d.push(`L ${t},${u}`)}}else if(l<s)if(u!==a){const t=s+c,e=a+h*(u<a?-1:1),n=l-c,r=u+h*(u<a?1:-1);d.push(`L ${t},${a}`),d.push(`L ${t},${e}`),d.push(`L ${n},${e}`),d.push(`L ${n},${r}`),d.push(`L ${n},${u}`)}else{const t=s+c,e=a+h,n=l-c,r=u;d.push(`L ${t},${a}`),d.push(`L ${t},${e}`),d.push(`L ${n},${e}`),d.push(`L ${n},${r}`)}return d.push(`L ${l},${u}`),d.join(" ")}static drawArrow(t,e,n,r,i,o,s){const a=s?s.createElementNS("http://www.w3.org/2000/svg","path"):document.createElementNS("http://www.w3.org/2000/svg","path"),l=Ao.calculateArrowPath(t,e,n,r);a.setAttribute("d",l);const u=r.arrowColor||"#0D6EFD";a.setAttribute("stroke",u),a.setAttribute("stroke-width","2"),a.setAttribute("fill","transparent");const c=o?`arrowhead-${o}`:"arrowhead";return a.setAttribute("marker-end",`url(#${c})`),a.setAttribute("data-edgeid",i),a.addEventListener("mouseout",(function(){a.setAttribute("stroke",u)})),a}static updateArrow(t,e,n,r,i){const o=n.querySelector(`[data-edgeid="${i}"]`),s=Ao.calculateArrowPath(t,e,n,r);o&&o.setAttribute("d",s)}createMarker(t){const e=t?t.createElementNS("http://www.w3.org/2000/svg","marker"):document.createElementNS("http://www.w3.org/2000/svg","marker"),n=`arrowhead-${this.instanceId}`;e.setAttribute("id",n),e.setAttribute("markerWidth","5"),e.setAttribute("markerHeight","5"),e.setAttribute("refX","4"),e.setAttribute("refY","2.5"),e.setAttribute("orient","auto"),e.setAttribute("fill","context-stroke");const r=t?t.createElementNS("http://www.w3.org/2000/svg","polygon"):document.createElementNS("http://www.w3.org/2000/svg","polygon");return r.setAttribute("points","0,0 5,2.5 0,5 1, 2.5"),e.appendChild(r),e}render(t,e,n,r){this.chartContext=r||null;const i=`timeline-arrows-${this.instanceId}`;let o=t.querySelector(`#${i}`);o||(o=r?r.createElementNS("http://www.w3.org/2000/svg","svg"):document.createElementNS("http://www.w3.org/2000/svg","svg"),o.setAttribute("id",i),t.appendChild(o)),this.svg=o,this.options={...Mo,...n},this.elements=e,this.svg.setAttribute("style",lr({left:"0",position:"absolute",top:"0"})),this.svg.innerHTML="";const s=r?r.createElementNS("http://www.w3.org/2000/svg","defs"):document.createElementNS("http://www.w3.org/2000/svg","defs"),a=this.createMarker(r);return s.appendChild(a),this.svg.appendChild(s),this.svg.setAttribute("width",`${this.options.width}`),this.svg.setAttribute("height",`${this.options.height}`),this.elements.forEach((({id:t,source:e,target:n})=>{this.svg.appendChild(Ao.drawArrow(e,n,this.svg,this.options,t,this.instanceId,r))})),this.svg}}function Do(t,e){t&&Object.assign(t.style,e)}function $o(t){const e=[];for(let i=0;i<document.styleSheets.length;i++)try{const t=document.styleSheets[i];if(t.href&&!t.href.startsWith(window.location.origin))continue;if(t.cssRules)for(let n=0;n<t.cssRules.length;n++)e.push(t.cssRules[n].cssText)}catch(r){continue}document.querySelectorAll("style").forEach((t=>{t.textContent&&e.push(t.textContent)}));const n=function(t){const e=window.getComputedStyle(t),n=[];for(let r=0;r<t.style.length;r++){const e=t.style[r];if(e.startsWith("--")){const r=t.style.getPropertyValue(e);n.push(`${e}: ${r};`)}}return Array.from(e).forEach((t=>{if(t.startsWith("--")){const r=`${t}: ${e.getPropertyValue(t)};`;n.includes(r)||n.push(r)}})),0===n.length?"":`:root {\n ${n.join("\n ")}\n}`}(t);return n&&e.unshift(n),e.join("\n")}function zo(t,e){const{contentWidth:n}=e,r=t.querySelector(".timeline-horizontal-scroll");null==r||r.remove();const i=t.querySelector(".timeline-container"),o=t.querySelector(".tasks-container"),s=t.querySelector(".timeline-body-wrapper"),a=t.querySelector(".timeline-header"),l=t.querySelector(".timeline-body"),u=t.querySelector(".bar-container"),c=t.querySelector(".annotation-container");var h;Do(i,{overflow:"visible",maxWidth:"none",width:"auto",position:"relative"}),Do(o,{overflow:"visible",height:"auto",maxHeight:"none"}),Do(s,{overflow:"visible",maxWidth:"none",width:`${n}px`}),s&&(s.scrollLeft=0),Do(a,{overflow:"visible",maxWidth:"none",width:`${n}px`}),a&&(a.scrollLeft=0),h={width:`${n}px`,minWidth:`${n}px`,maxWidth:"none"},[l,u,c].forEach((t=>Do(t,h)))}const Oo=async t=>{try{const e=function(t){const e=t.querySelector(".gantt-container");if(!e)throw new Error("Gantt container not found");const n=e.querySelector(".timeline-container"),r=e.querySelector(".tasks-container");if(!n||!r)throw new Error("Timeline or tasks container not found");return{ganttContainer:e,timelineContainer:n,tasksContainer:r,horizontalScroll:e.querySelector(".timeline-horizontal-scroll"),timelineBodyWrapper:n.querySelector(".timeline-body-wrapper"),timelineHeader:n.querySelector(".timeline-header"),timelineBody:n.querySelector(".timeline-body"),barContainer:n.querySelector(".bar-container"),annotationContainer:n.querySelector(".annotation-container")}}(t),n=function(t){var e,n,r,i;const o=Math.max((null==(e=t.timelineBody)?void 0:e.scrollWidth)||0,(null==(n=t.barContainer)?void 0:n.scrollWidth)||0,(null==(r=t.annotationContainer)?void 0:r.scrollWidth)||0,(null==(i=t.timelineHeader)?void 0:i.scrollWidth)||0),s=t.tasksContainer.scrollWidth;return{contentWidth:o,tasksWidth:s,totalWidth:s+o,totalHeight:Math.max(t.timelineContainer.scrollHeight,t.tasksContainer.scrollHeight)}}(e),r=e.ganttContainer.cloneNode(!0);zo(r,n),Do(r,{display:"flex",overflow:"visible",width:"fit-content",height:"auto"});const i=$o(t),o=document.createElement("style");o.textContent=i,r.insertBefore(o,r.firstChild);const s=document.createElementNS("http://www.w3.org/2000/svg","svg");s.setAttribute("width",n.totalWidth.toString()),s.setAttribute("height",n.totalHeight.toString()),s.setAttribute("xmlns","http://www.w3.org/2000/svg"),s.setAttribute("viewBox",`0 0 ${n.totalWidth} ${n.totalHeight}`);const a=document.createElementNS("http://www.w3.org/2000/svg","foreignObject");a.setAttribute("width",n.totalWidth.toString()),a.setAttribute("height",n.totalHeight.toString()),a.setAttribute("x","0"),a.setAttribute("y","0"),a.appendChild(r),s.appendChild(a);const l='<?xml version="1.0" encoding="UTF-8"?>\n'+(new XMLSerializer).serializeToString(s),u=new Blob([l],{type:"image/svg+xml;charset=utf-8"}),c=URL.createObjectURL(u),h=document.createElement("a");h.href=c,h.download=`gantt-chart-${Date.now()}.svg`,document.body.appendChild(h),h.click(),document.body.removeChild(h),setTimeout((()=>URL.revokeObjectURL(c)),100)}catch(e){throw console.error("Error exporting gantt chart:",e),e}},Io={zoomIn:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <circle cx="11" cy="11" r="8"/>\n <path d="m21 21-4.35-4.35"/>\n <line x1="11" y1="8" x2="11" y2="14"/>\n <line x1="8" y1="11" x2="14" y2="11"/>\n </svg>',zoomOut:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <circle cx="11" cy="11" r="8"/>\n <path d="m21 21-4.35-4.35"/>\n <line x1="8" y1="11" x2="14" y2="11"/>\n </svg>',calendar:'<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <rect x="3" y="4" width="18" height="18" rx="2" ry="2"/>\n <line x1="16" y1="2" x2="16" y2="6"/>\n <line x1="8" y1="2" x2="8" y2="6"/>\n <line x1="3" y1="10" x2="21" y2="10"/>\n </svg>',chevronDown:'<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <polyline points="6 9 12 15 18 9"/>\n </svg>',download:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/>\n <polyline points="7 10 12 15 17 10"/>\n <line x1="12" y1="15" x2="12" y2="3"/>\n </svg>'};class Fo{constructor(t,e,n,r={}){this.chartContext=t,this.leftContent=e,this.rightContent=n,this.options=r,this.isDragging=!1,this.mouseMoveHandler=null,this.mouseUpHandler=null}getSplitViewStyles(){return"\n .split-view-container {\n display: flex !important;\n height: 100%;\n width: 100%;\n position: relative;\n box-sizing: border-box;\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n .split-view-container .split-left-container {\n flex-grow: 0 !important;\n flex-shrink: 1 !important;\n overflow: visible;\n display: flex !important;\n flex-direction: column;\n position: relative;\n box-sizing: border-box;\n height: fit-content;\n min-height: 100%;\n }\n\n .split-view-container .split-right-container {\n overflow: visible;\n position: relative;\n flex: 1 !important;\n display: flex !important;\n flex-direction: column;\n min-width: 0;\n box-sizing: border-box;\n height: fit-content;\n min-height: 100%;\n }\n \n .split-view-container .split-bar-container {\n cursor: col-resize !important;\n user-select: none !important;\n height: 100%;\n align-items: center;\n background: var(--split-bar-color, #DEE2E6);\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n min-width: 8px;\n width: 8px;\n z-index: 15;\n position: sticky;\n top: 0;\n box-sizing: border-box;\n border-left: 1px solid var(--split-bar-border-color, #BBBBBB);\n border-right: 1px solid var(--split-bar-border-color, #BBBBBB);\n opacity: 1;\n visibility: visible;\n box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);\n transition: background-color 0.2s ease, border-color 0.2s ease;\n }\n\n .split-view-container .split-bar-container:hover {\n background: var(--split-bar-hover-color, #007BFF);\n border-color: var(--split-bar-hover-border-color, #0056B3);\n }\n\n .split-view-container .split-bar-container .resize-handler {\n border-left: 1.5px solid var(--split-bar-handle-color, #666666);\n border-right: 1.5px solid var(--split-bar-handle-color, #666666);\n height: 20px;\n width: 4px;\n position: relative;\n pointer-events: none;\n box-sizing: border-box;\n background: rgba(102, 102, 102, 0.3);\n display: block;\n border-radius: 1px;\n margin: 0;\n padding: 0;\n opacity: 1;\n visibility: visible;\n transition: background-color 0.2s ease, border-color 0.2s ease;\n }\n\n .split-view-container .split-bar-container:hover .resize-handler {\n background: rgba(255, 255, 255, 0.9);\n border-color: #FFFFFF;\n }\n\n .split-view-container.dragging {\n user-select: none;\n cursor: col-resize;\n }\n\n .split-view-container.dragging * {\n pointer-events: none;\n }\n\n .split-view-container.dragging .split-bar-container {\n pointer-events: all;\n }\n\n :host .split-view-container {\n display: flex !important;\n height: auto;\n width: 100%;\n position: relative;\n box-sizing: border-box;\n overflow-y: auto; /* shadow DOM */\n }\n "}injectStyles(){this.chartContext.injectStyles(this.getSplitViewStyles(),"split-view-styles",{priority:"normal"})}buildElements(){const{leftContainerClass:t="",leftContainerWidth:e=425,rightContainerClass:n=""}=this.options;this.leftContainer=ur(this.chartContext,{className:"split-left-container"+(t?" "+t:""),style:{flexBasis:`${e}px`}}),this.rightContainer=ur(this.chartContext,{className:"split-right-container"+(n?" "+n:"")});const r=ur(this.chartContext,{className:"resize-handler"}),i=ur(this.chartContext,{className:"split-bar-click-area"});i.style.cssText="\n position: absolute;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n width: 20px;\n height: 100%;\n cursor: col-resize;\n z-index: 10;\n background: transparent;\n display: block;\n box-sizing: border-box;\n ",this.splitBarContainer=ur(this.chartContext,{className:"split-bar-container"}),this.splitBarContainer.setAttribute("role","separator"),this.splitBarContainer.setAttribute("aria-orientation","vertical"),this.splitBarContainer.setAttribute("aria-label","Resize panels"),this.splitBarContainer.setAttribute("tabindex","0"),this.splitBarContainer.append(r,i),zi.isArray(this.leftContent)?this.leftContainer.append(...this.leftContent):this.leftContainer.append(this.leftContent),zi.isArray(this.rightContent)?this.rightContainer.append(...this.rightContent):this.rightContainer.append(this.rightContent)}attachEventListeners(){this.splitBarContainer.addEventListener("mousedown",(t=>{t.preventDefault(),this.isDragging=!0;const e=this.splitBarContainer.closest(".split-view-container");null==e||e.classList.add("dragging"),this.mouseMoveHandler=t=>{var e;if(!this.isDragging)return;const n=null==(e=this.leftContainer.parentElement)?void 0:e.getBoundingClientRect();if(!n)return;const r=t.clientX-n.left,i=n.width-50,o=Math.max(0,Math.min(i,r));this.leftContainer.style.flexBasis=`${o}px`,this.dispatchResizeEvent()},this.mouseUpHandler=()=>{this.isDragging=!1;const t=this.splitBarContainer.closest(".split-view-container");null==t||t.classList.remove("dragging"),this.dispatchResizeEvent(),this.mouseMoveHandler&&(this.chartContext.removeEventListener("mousemove",this.mouseMoveHandler),this.mouseMoveHandler=null),this.mouseUpHandler&&(this.chartContext.removeEventListener("mouseup",this.mouseUpHandler),this.mouseUpHandler=null)},this.chartContext.addEventListener("mousemove",this.mouseMoveHandler),this.chartContext.addEventListener("mouseup",this.mouseUpHandler)})),this.splitBarContainer.addEventListener("keydown",(t=>{let e;const n=parseInt(this.leftContainer.style.flexBasis)||this.options.leftContainerWidth||400;switch(t.key){case"ArrowLeft":t.preventDefault(),e=Math.max(0,n-10),this.leftContainer.style.flexBasis=`${e}px`,this.dispatchResizeEvent();break;case"ArrowRight":t.preventDefault(),e=n+10,this.leftContainer.style.flexBasis=`${e}px`,this.dispatchResizeEvent();break;case"Home":t.preventDefault(),this.leftContainer.style.flexBasis="0px",this.dispatchResizeEvent();break;case"End":{t.preventDefault();const e=this.splitBarContainer.parentElement;if(e){const t=e.clientWidth-50;this.leftContainer.style.flexBasis=`${t}px`}this.dispatchResizeEvent();break}}}))}dispatchResizeEvent(){const t=new CustomEvent("splitview-resize",{bubbles:!0,detail:{leftWidth:parseInt(this.leftContainer.style.flexBasis)||0}});this.chartContext.dispatchEvent(t)}cleanupEventListeners(){this.mouseMoveHandler&&(this.chartContext.removeEventListener("mousemove",this.mouseMoveHandler),this.mouseMoveHandler=null),this.mouseUpHandler&&(this.chartContext.removeEventListener("mouseup",this.mouseUpHandler),this.mouseUpHandler=null)}render(){this.injectStyles(),this.buildElements(),this.attachEventListeners();const t=ur(this.chartContext,{className:"split-view-container"});return t.append(this.leftContainer,this.splitBarContainer,this.rightContainer),[t]}destroy(){this.cleanupEventListeners()}}class Lo{constructor(){this.state={scrollPosition:{horizontal:0,tasksVertical:0,timelineVertical:0},viewMode:Li.Week,collapsedTasks:new Set}}captureState(t,e,n){const r=t.querySelector(".timeline-horizontal-scroll"),i=t.querySelector(".split-view-container");this.state.scrollPosition={horizontal:(null==r?void 0:r.scrollLeft)||0,tasksVertical:(null==i?void 0:i.scrollTop)||0,timelineVertical:(null==i?void 0:i.scrollTop)||0},this.state.viewMode=n,this.state.collapsedTasks=new Set(e.getFlatTasks().filter((t=>t.collapsed)).map((t=>t.id)))}restoreState(t,e=!1){e||requestAnimationFrame((()=>{const e=t.querySelector(".timeline-horizontal-scroll"),n=t.querySelector(".split-view-container");e&&(e.scrollLeft=this.state.scrollPosition.horizontal),n&&(n.scrollTop=this.state.scrollPosition.tasksVertical);const r=t.querySelector(".timeline-header");r&&(r.scrollLeft=this.state.scrollPosition.horizontal)}))}getViewMode(){return this.state.viewMode}hasState(){return void 0!==this.state.viewMode}clearState(){this.state={scrollPosition:{horizontal:0,tasksVertical:0,timelineVertical:0},viewMode:Li.Week,collapsedTasks:new Set}}}class Bo{static getNestedValue(t,e){if(!t||!e)return;const n=e.split(".");let r=t;for(const i of n){if(null==r)return;r=r[i]}return r}static processParsingValue(t,e){if("string"==typeof e)return this.getNestedValue(t,e);const{key:n,transform:r}=e,i=this.getNestedValue(t,n);if(r&&"function"==typeof r)try{return r(i)}catch(o){return console.warn(`DataParser: Transform function failed for key "${n}":`,o),i}return i}static parse(t,e){return Array.isArray(t)?e?t.map(((t,n)=>{try{const r=this.processParsingValue(t,e.id),i=this.processParsingValue(t,e.name),o=this.processParsingValue(t,e.startTime);if(!r||!i||!o)return console.warn(`DataParser: Skipping item at index ${n} - missing required fields`,{id:r,name:i,startTime:o,rawItem:t}),null;const s={id:r,name:i,startTime:o};if(void 0!==e.endTime){const n=this.processParsingValue(t,e.endTime);void 0!==n&&(s.endTime=n)}if(void 0!==e.progress){const n=this.processParsingValue(t,e.progress);void 0!==n&&(s.progress=n)}if(void 0!==e.type){const n=this.processParsingValue(t,e.type);void 0!==n&&(s.type=n)}if(void 0!==e.parentId){const n=this.processParsingValue(t,e.parentId);void 0!==n&&(s.parentId=n)}if(void 0!==e.dependency){const n=this.processParsingValue(t,e.dependency);void 0!==n&&(s.dependency=n)}if(void 0!==e.barBackgroundColor){const n=this.processParsingValue(t,e.barBackgroundColor);void 0!==n&&(s.barBackgroundColor=n)}if(void 0!==e.rowBackgroundColor){const n=this.processParsingValue(t,e.rowBackgroundColor);void 0!==n&&(s.rowBackgroundColor=n)}if(void 0!==e.collapsed){const n=this.processParsingValue(t,e.collapsed);void 0!==n&&(s.collapsed=n)}return s}catch(r){return console.warn(`DataParser: Error parsing item at index ${n}:`,r,t),null}})).filter((t=>null!==t)):(console.warn("DataParser: Parsing config is required"),[]):(console.warn("DataParser: Data must be an array"),[])}static validateConfig(t){return!!t&&(!!(t.id&&t.name&&t.startTime)||(console.warn("DataParser: Parsing config must include id, name, and startTime"),!1))}}mr.extend(br),mr.extend(yr),mr.extend(Sr),mr.extend(xr),mr.extend(kr);class jo extends n{constructor(t,e){super(t,"gantt_"+Math.random().toString(36).substr(2,9)),this.options=Yi,this.stylesInjected=!1,this.zoomHandler=null,this.timelineScrollHandlers={},this.isSyncingScroll=!1,this.scrollbarResizeObserver=null,this.splitBarResizeHandler=null,this.containerResizeObserver=null,this.lastKnownWidth=0,this.lastKnownHeight=0,this.resizeDebounceTimer=null;const n=Wi(null==e?void 0:e.theme);let r;(null==e?void 0:e.parsing)?Bo.validateConfig(e.parsing)?r=Bo.parse(e.series,e.parsing):(console.error("ApexGantt: Invalid parsing configuration provided"),r=[]):r=(null==e?void 0:e.series)||[],this.options={...n,...e,series:r},this.viewMode=this.options.viewMode;const i="arrows_"+Math.random().toString(36).substr(2,9);this.arrowLink=new Ao(i),this.setupShadowDOMEnvironment(),this.dataManager=new uo,this.dataManager.setTasks(this.options.series),this.dataManager.setArrowLinkInstanceId(i),this.stateManager=new Lo}static setLicense(t){i.setLicense(t)}setupShadowDOMEnvironment(){if(!this.isShadowDOM())return;const t=this.chartContext.getContext().host;t&&(t.style.display="block",t.style.boxSizing="border-box",t.style.contain="layout style"),this.element&&(this.element.style.display="block",this.element.style.boxSizing="border-box")}injectGanttStyles(){if(!this.stylesInjected)if(this.isShadowDOM())this.injectStylesDirectly();else try{const t=[{content:xo,id:"gantt-core-styles",options:{priority:"high"}},{content:So,id:"gantt-timeline-styles"},{content:Co,id:"gantt-table-styles"},{content:bo,id:"gantt-dialog-styles"},{content:ko,id:"gantt-taskform-styles"},{content:Eo,id:"gantt-tooltip-styles"},{content:To,id:"gantt-toolbar-styles"},{content:wo,id:"gantt-dropdown-styles"},{content:_o,id:"gantt-scrollbar-styles"}];this.chartContext.injectStylesheets(t),this.stylesInjected=!0}catch(t){console.error("injectGanttStyles: ChartContext injection failed",t)}}injectStylesDirectly(){const t=this.chartContext.getContext();if(t.querySelector("#gantt-all-styles"))return void(this.stylesInjected=!0);const e=document.createElement("style");e.id="gantt-all-styles",e.textContent=`\n /* Shadow DOM CSS Reset - Critical for proper layout */\n :host {\n all: initial;\n display: block;\n contain: layout style;\n }\n \n *, *::before, *::after {\n box-sizing: border-box;\n }\n \n div, table, thead, tbody, tr, td, th {\n display: revert;\n margin: 0;\n padding: 0;\n border: 0;\n }\n \n .split-view-container,\n .gantt-container {\n display: flex !important;\n width: 100% !important;\n height: 100% !important;\n }\n \n .split-left-container,\n .split-right-container {\n display: block !important;\n }\n \n .timeline-container {\n flex: 1 !important;\n overflow: auto !important;\n position: relative !important;\n }\n \n .tasks-container {\n flex-shrink: 0 !important;\n overflow: auto !important;\n }\n\n ${xo}\n ${So}\n ${Co}\n ${bo}\n ${ko}\n ${Eo}\n ${To}\n ${wo}\n ${_o}\n `,t.insertBefore(e,t.firstChild),this.stylesInjected=!0}handleWatermark(){const t=this.element.querySelector(".gantt-container").parentNode;t&&(i.isLicenseValid()?rn.remove(t):rn.add(t))}setCSSVariables(){const{cellBorderColor:t,cellBorderWidth:e,fontColor:n,headerBackground:r,tooltipBGColor:i,tooltipBorderColor:o,barBackgroundColor:s,backgroundColor:a,borderColor:l,barTextColor:u,arrowColor:c}=this.options;this.element.style.setProperty("--cell-border-color",t),this.element.style.setProperty("--cell-border-width",e),this.element.style.setProperty("--gantt-font-color",n),this.element.style.setProperty("--text-color",n),this.element.style.setProperty("--header-bg-color",r),this.element.style.setProperty("--header-text-color",n),this.element.style.setProperty("--tooltip-bg-color",i),this.element.style.setProperty("--tooltip-border-color",o),this.element.style.setProperty("--tooltip-text-color",n),this.element.style.setProperty("--background-color",a),this.element.style.setProperty("--border-color",l),this.element.style.setProperty("--dialog-bg-color",a),this.element.style.setProperty("--dialog-border-color",l),this.element.style.setProperty("--button-bg-color",s),this.element.style.setProperty("--button-text-color",u),this.element.style.setProperty("--button-hover-bg-color",c),this.element.style.setProperty("--toolbar-bg-color",a),this.element.style.setProperty("--toolbar-border-color",l),this.element.style.setProperty("--toolbar-hover-bg-color",t),this.element.style.setProperty("--scrollbar-track-color",a),this.element.style.setProperty("--scrollbar-thumb-color",l),this.element.style.setProperty("--scrollbar-thumb-hover-color",t),this.element.style.setProperty("--split-bar-color",t),this.element.style.setProperty("--split-bar-hover-color",c),this.element.style.setProperty("--split-bar-border-color",l),this.element.style.setProperty("--split-bar-handle-color",n),this.element.style.setProperty("--split-bar-hover-border-color",c);this.isColorDark(a)?this.element.style.setProperty("--toolbar-icon-filter","invert(1) brightness(2)"):this.element.style.setProperty("--toolbar-icon-filter","none")}isColorDark(t){const e=t.replace("#","");return(.299*parseInt(e.substr(0,2),16)+.587*parseInt(e.substr(2,2),16)+.114*parseInt(e.substr(4,2),16))/255<.5}initializeTooltip(){const{enableTooltip:t,tooltipId:e}=this.options;if(t){const t=sr(this.chartContext,e);if(!this.chartContext.getElementById(e)){console.warn("Tooltip init: Tooltip not found after creation, appending manually");this.chartContext.getAppendContainer().appendChild(t)}}}render(t){if(!this.element)throw new Error("Element not found");const e=this.element&&this.element.children.length>0;e&&this.stateManager.captureState(this.element,this.dataManager,this.viewMode);const{enableResize:n,fontColor:r,fontFamily:i,fontSize:o,fontWeight:s,tasksContainerWidth:a,height:l,width:u}=this.options;this.setupChartContainerPositioning(),this.injectGanttStyles(),this.setCSSVariables(),this.initializeTooltip(),this.element.innerHTML="",this.hasExplicitDimensions();const c=this.normalizeDimension(l),h=this.normalizeDimension(u);this.element.style.width=h,this.element.style.height=c,this.element.style.display="flex",this.element.style.flexDirection="column",this.element.style.boxSizing="border-box",this.element.style.overflow="hidden";const d=lr({color:r,fontFamily:i,fontSize:o,fontWeight:s}),f=this.element.getAttribute("style")||"";this.element.setAttribute("style",f+";"+d);const p=ur(this.chartContext,{className:"gantt-actions-container"});this.renderToolbar(p);const m=ur(this.chartContext,{className:"gantt-container"}),g=new vo(this.viewMode,this.options,this.chartContext,this.dataManager).render(),y=new ao(this.options,this.chartContext,this.dataManager).render(this.render.bind(this));g&&this.createLayout(m,y,g,n,a),this.element.appendChild(p),this.element.appendChild(m);const v=m.querySelector(".timeline-horizontal-scroll");return v&&(v.remove(),this.element.appendChild(v)),this.handleWatermark(),this.setupRowBackgroundColors(),this.setupZoomEventListener(),this.setupDependencyArrowEvents(),this.renderDependencyArrows(),requestAnimationFrame((()=>{this.performAfterActions()})),e&&requestAnimationFrame((()=>{this.stateManager.restoreState(this.element)})),this.element}performAfterActions(){this.syncTasksColumnWidths(),this.compensateForScrollbar(),this.updateHorizontalScrollbarContent(),this.setupTimelineHorizontalScroll(),this.positionHorizontalScrollbar(),this.setupContainerResizeObserver(),this.setupScrollbarResizeObserver(),this.setupRowBackgroundColors(),this.disableHeaderMousewheelScroll(),this.fillEmptyRowsAfterRender()}setupChartContainerPositioning(){if(this.element){"static"===window.getComputedStyle(this.element).position&&(this.element.style.position="relative"),this.element.style.isolation="isolate"}}disableHeaderMousewheelScroll(){const t=this.element.querySelector(".timeline-header");if(!t)return;t.addEventListener("wheel",(t=>{t.preventDefault()}),{passive:!1})}createLayout(t,e,n,r,i){t.style.position="relative",t.style.isolation="isolate";const o=this.getInstanceId(),s=ur(this.chartContext,{className:"tasks-container"});let a,l;if(!Array.isArray(e))return void console.error("Tasks table should be an array of [header, body]");a=e[0],l=e[1];const u=ur(this.chartContext,{className:"tasks-body-wrapper"});u.appendChild(l),s.appendChild(a),s.appendChild(u);const c=ur(this.chartContext,{className:"timeline-container"});c.setAttribute("data-chart-instance",o);const h=n[0];c.appendChild(h);const d=ur(this.chartContext,{className:"timeline-body-wrapper"});for(let p=1;p<n.length-1;p++)d.appendChild(n[p]);c.appendChild(d);const f=n[n.length-1];if(r){const e=new Fo(this.chartContext,s,c,{leftContainerClass:"",leftContainerWidth:i,rightContainerClass:""}).render();t.append(...e)}else s.style.flex=`0 0 ${i}px`,t.append(s,c);t.appendChild(f)}syncTasksColumnWidths(){this.element.querySelector(".tasks-container")}setupScrollbarResizeObserver(){if(!this.element)return;this.scrollbarResizeObserver&&this.scrollbarResizeObserver.disconnect(),this.scrollbarResizeObserver=new ResizeObserver((()=>{this.positionHorizontalScrollbar()})),this.scrollbarResizeObserver.observe(this.element);const t=this.element.querySelector(".gantt-container");t&&this.scrollbarResizeObserver.observe(t),this.setupSplitBarResizeListener()}setupSplitBarResizeListener(){this.splitBarResizeHandler&&this.chartContext.removeEventListener("splitview-resize",this.splitBarResizeHandler),this.splitBarResizeHandler=()=>{requestAnimationFrame((()=>{this.positionHorizontalScrollbar()}))},this.chartContext.addEventListener("splitview-resize",this.splitBarResizeHandler)}positionHorizontalScrollbar(){const t=this.element.querySelector(".timeline-horizontal-scroll"),e=this.element.querySelector(".gantt-container"),n=this.element.querySelector(".tasks-container");if(!t||!e)return void console.warn("Missing elements for scrollbar positioning");e.offsetHeight;const r=n?n.offsetWidth:0,i=this.element.querySelector(".split-bar-container"),o=r+(i?i.offsetWidth:0)+2,s=window.getComputedStyle(this.element),a=parseFloat(s.paddingLeft)||0,l=parseFloat(s.paddingBottom)||0;t.style.left=`${o+a}px`,t.style.bottom=`${l}px`;const u=e.clientWidth-o;t.style.width=`${Math.max(0,u)}px`}compensateForScrollbar(){const t=this.element.querySelector(".tasks-body-wrapper"),e=this.element.querySelector(".tasks-header");if(!t||!e)return;const n=t.offsetWidth-t.clientWidth;e.style.paddingRight="",e.style.boxSizing="",n>0&&(e.style.paddingRight=`${n}px`,e.style.boxSizing="border-box")}setupTimelineHorizontalScroll(){const t=this.element.querySelector(".timeline-horizontal-scroll"),e=this.element.querySelector(".timeline-header"),n=this.element.querySelector(".timeline-body-wrapper");if(!t||!e||!n)return;this.updateHorizontalScrollbarContent(),this.applyScrollbarStylesToElement(t),this.timelineScrollHandlers.bodyScroll&&n.removeEventListener("scroll",this.timelineScrollHandlers.bodyScroll),this.timelineScrollHandlers.horizontalScroll&&t.removeEventListener("scroll",this.timelineScrollHandlers.horizontalScroll);const r=r=>{if(this.isSyncingScroll)return;this.isSyncingScroll=!0;const i=t.scrollLeft;e.scrollLeft=i,n.scrollLeft=i,requestAnimationFrame((()=>{this.isSyncingScroll=!1}))},i=r=>{if(this.isSyncingScroll)return;this.isSyncingScroll=!0;const i=n.scrollLeft;t.scrollLeft=i,e.scrollLeft=i,requestAnimationFrame((()=>{this.isSyncingScroll=!1}))};t.addEventListener("scroll",r,{passive:!0}),n.addEventListener("scroll",i,{passive:!0}),this.timelineScrollHandlers={horizontalScroll:r,bodyScroll:i}}applyScrollbarStylesToElement(t){const{backgroundColor:e}=this.options;if(!this.isColorDark(e))return;const{borderColor:n,cellBorderColor:r}=this.options,i=`scrollbar-${this.getInstanceId()}-${Date.now()}`,o=`\n #${t.id||"timeline-horizontal-scroll"} {\n scrollbar-width: thin;\n scrollbar-color: ${n} ${e};\n }\n \n #${t.id||"timeline-horizontal-scroll"}::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n }\n \n #${t.id||"timeline-horizontal-scroll"}::-webkit-scrollbar-track {\n background: ${e};\n border-radius: 4px;\n }\n \n #${t.id||"timeline-horizontal-scroll"}::-webkit-scrollbar-thumb {\n background: ${n};\n border-radius: 4px;\n border: 2px solid ${e};\n }\n \n #${t.id||"timeline-horizontal-scroll"}::-webkit-scrollbar-thumb:hover {\n background: ${r};\n }\n `;t.id||(t.id=`timeline-horizontal-scroll-${this.getInstanceId()}`),this.chartContext.injectStyles(o,i)}setupZoomEventListener(){const t=this.getInstanceId(),e=this.chartContext.querySelector(`.timeline-container[data-chart-instance="${t}"]`);e?(this.zoomHandler&&e.removeEventListener("wheel",this.zoomHandler),this.zoomHandler=t=>{if(!t.ctrlKey)return;t.preventDefault();const e=Math.sign(t.deltaY);e<0?this.zoomIn():e>0&&this.zoomOut()},e.addEventListener("wheel",this.zoomHandler)):console.warn(`[${t}] Timeline element not found for zoom listener`)}setupRowBackgroundColors(){this.dataManager.getTopParentTasks().forEach(((t,e)=>{const n=ro(e,this.options.rowBackgroundColors);io(this.chartContext,t.id,t.rowBackgroundColor||n),this.dataManager.getNestedChildTasks(t.id,!0).forEach((t=>{io(this.chartContext,t.id,t.rowBackgroundColor||n)}))})),this.dataManager.getFlatTasks().forEach(((t,e)=>{if(!t.parentId&&t.type===so.Milestone){const n=ro(e,this.options.rowBackgroundColors);io(this.chartContext,t.id,t.rowBackgroundColor||n)}}))}renderDependencyArrows(){const{rowHeight:t}=this.options,e=this.getInstanceId(),n=this.arrowLink.getInstanceId(),r=this.dataManager.getFlatVisibleTasks().filter((t=>!!t.dependency)).map((t=>{const n=`.bar-container [data-taskid="${t.dependency}"][data-chart-instance="${e}"]`,r=`.bar-container [data-taskid="${t.id}"][data-chart-instance="${e}"]`,i=this.element.querySelector(n),o=this.element.querySelector(r);return{id:`${t.dependency}-${t.id}`,source:i,target:o}})).filter((t=>t.source&&t.target)),i=this.element.querySelector(".timeline-body");if(!i)return void console.warn(`[${e}] Timeline body not found for arrows`);const o=`timeline-arrows-${n}`,s=i.querySelector(`#${o}`);s&&s.remove(),0!==r.length&&this.arrowLink.render(i,r,{arrowColor:this.options.arrowColor,height:i.clientHeight,paddingY:t/2,width:i.clientWidth},this.chartContext)}setupDependencyArrowEvents(){const t=this.getInstanceId(),e=this.arrowLink.getInstanceId();this.chartContext.addEventListener("dependency-arrow-update",(n=>{const r=n;if(r.detail.chartInstanceId!==t)return;const i=r.detail.arrowLinkInstanceId||e;!function(t,e,n,r){const i=t.getInstanceId(),o=Oi(t,e),s=Oi(t,n);if(!o||!s)return void console.warn(`[${i}] Arrow source or target not found: ${e} -> ${n}`);const a=t.querySelector(".timeline-body"),l=`timeline-arrows-${r}`,u=null==a?void 0:a.querySelector(`#${l}`);u?Ao.updateArrow(o,s,u,{paddingX:20,paddingY:15},`${e}-${n}`):console.warn(`[${i}] Arrow SVG not found: ${l}`)}(this.chartContext,r.detail.fromId,r.detail.toId,i)}))}rerenderTimeline(){const t=this.element.querySelector(".timeline-container");if(!t)return;const e=t.querySelector(".timeline-header"),n=t.querySelector(".timeline-body-wrapper");if(e&&n){e.innerHTML="",n.innerHTML="";const t=new vo(this.viewMode,this.options,this.chartContext,this.dataManager).render();if(t){const r=t[0];e.innerHTML=r.innerHTML;for(let e=1;e<t.length-1;e++)n.appendChild(t[e])}}else{t.innerHTML="";const e=new vo(this.viewMode,this.options,this.chartContext,this.dataManager).render();if(e){const n=e[0];t.appendChild(n);const r=ur(this.chartContext,{className:"timeline-body-wrapper"});for(let t=1;t<e.length-1;t++)r.appendChild(e[t]);t.appendChild(r)}}requestAnimationFrame((()=>{this.performAfterActions()}))}updateToolbarAfterZoom(){const t=this.element.querySelector(".gantt-actions-container");t&&this.renderToolbar(t)}cleanupEventListeners(){try{if(this.timelineScrollHandlers.bodyScroll||this.timelineScrollHandlers.horizontalScroll){const t=this.element.querySelector(".timeline-horizontal-scroll"),e=this.element.querySelector(".timeline-body-wrapper");t&&this.timelineScrollHandlers.horizontalScroll&&t.removeEventListener("scroll",this.timelineScrollHandlers.horizontalScroll),e&&this.timelineScrollHandlers.bodyScroll&&e.removeEventListener("scroll",this.timelineScrollHandlers.bodyScroll),this.timelineScrollHandlers={}}const t=this.chartContext.querySelector(".timeline-container");if(null==t?void 0:t.parentNode){const e=t.cloneNode(!0);t.parentNode.replaceChild(e,t)}}catch(t){console.warn("Error cleaning up event listeners:",t)}}cleanupTooltips(){try{const{enableTooltip:t,tooltipId:e}=this.options;if(t){const t=this.chartContext.getElementById(e);t&&(t.style.display="none",t.innerHTML="",t.removeAttribute("style"),t.classList.remove("visible"),t.setAttribute("aria-hidden","true"),this.isShadowDOM()&&t.remove())}}catch(t){console.warn("Error cleaning up tooltips:",t)}}cleanupDependencyArrows(){try{const t=this.element.querySelector(".timeline-body");if(t&&this.arrowLink){const e=this.arrowLink.getInstanceId(),n=`timeline-arrows-${e}`,r=t.querySelector(`#${n}`);r&&r.remove();t.querySelectorAll("[data-edgeid]").forEach((t=>{const n=t.getAttribute("marker-end");(null==n?void 0:n.includes(`arrowhead-${e}`))&&t.remove()}))}}catch(t){console.warn("Error cleaning up dependency arrows:",t)}}createActionButton(t,e,n=!1){const r=this.chartContext.createElement("button");return r.className="gantt-action-button",r.innerHTML=t,r.title=e,r.disabled=n,r.setAttribute("aria-label",e),r}createSeparator(){const t=this.chartContext.createElement("div");return t.className="gantt-action-separator",t}createViewModeDisplay(){const t=this.chartContext.createElement("div");return t.className="gantt-view-mode-display",t.innerHTML=`${Io.calendar} <span>${Wr(this.viewMode)}</span>`,t.title=`Current view: ${Wr(this.viewMode)}`,t}renderToolbar(t){t.innerHTML="";const e=this.createActionButton(Io.zoomIn,"Zoom In",this.viewMode===Fi[0]);e.addEventListener("click",(()=>this.zoomIn()));const n=this.createActionButton(Io.zoomOut,"Zoom Out",this.viewMode===Fi[Fi.length-1]);n.addEventListener("click",(()=>this.zoomOut()));const r=this.createViewModeDisplay(),i=this.chartContext.createElement("div");if(i.className="gantt-actions-spacer",t.append(e,n,this.createSeparator(),r),this.options.enableExport){t.append(i);const e=this.createActionButton(Io.download,"Export as SVG"),n=()=>this.element;e.addEventListener("click",(()=>{const t=n();if(!t)return console.error("Export failed: Chart element not found"),void alert("Export failed: Chart not found. Please refresh and try again.");if(t.querySelector(".gantt-container"))try{Oo(t)}catch(e){console.error("Export error:",e),alert("Export failed. Please check the console for details.")}else console.error("Export failed: Gantt container not found in chart")})),t.append(e)}}update(t){this.element&&!this.isDestroyed()&&this.stateManager.captureState(this.element,this.dataManager,this.viewMode);const e=this.detectCurrentTheme(),n=t.theme,r=n&&n!==e,i=this.stateManager.hasState()?this.stateManager.getViewMode():this.viewMode,o=Object.entries(t).filter((([t,e])=>void 0===e)).map((([t])=>t)),s=Object.entries(t).reduce(((t,[e,n])=>(void 0!==n&&(t[e]=n),t)),{}),a=Wi(n||e);let l,u;if(r){this.cleanupScrollbarStyles();const t=["series","parsing","width","height","viewMode","rowHeight","tasksContainerWidth","inputDateFormat","annotations","enableExport","enableResize","enableTaskDrag","enableTaskEdit","enableTaskResize","enableTooltip","tooltipTemplate","canvasStyle"];l={...a},t.forEach((t=>{void 0!==this.options[t]&&(l[t]=this.options[t])})),l={...l,...s}}else l={...a},Object.entries(this.options).forEach((([t,e])=>{o.includes(t)||(l[t]=e)})),l={...l,...s};t.viewMode||(l.viewMode=i),l.parsing?Bo.validateConfig(l.parsing)?u=Bo.parse(l.series,l.parsing):(console.error("ApexGantt: Invalid parsing configuration provided in update()"),u=this.options.series):u=l.series?l.series:this.options.series,this.options={...l,series:u},this.viewMode=this.options.viewMode,this.dataManager.setTasks(this.options.series),this.render(),this.element&&!this.isDestroyed()&&this.stateManager.restoreState(this.element)}detectCurrentTheme(){const t=this.options.backgroundColor;return this.isColorDark(t)?"dark":"light"}fillEmptyRowsAfterRender(){const t=this.element.querySelector(".gantt-container"),e=null==t?void 0:t.querySelector(".timeline-body"),n=null==t?void 0:t.querySelector(".tasks-data-container");if(!t||!e||!n)return;e.querySelectorAll(".timeline-empty-row").forEach((t=>t.remove()));n.querySelectorAll(".tasks-empty-row").forEach((t=>t.remove()));const r=t.clientHeight,i=e.querySelectorAll(".timeline-data-row:not(.timeline-empty-row)").length,o=this.options.rowHeight,s=Math.floor(r/o),a=Math.max(0,s-i);if(0===a)return;let l=0;const u=e.querySelector(".timeline-data-row");if(u)l=u.querySelectorAll(".timeline-data-cell").length;else{const e=t.querySelector(".timeline-header");if(e){l=e.querySelectorAll(".timeline-header-cell").length}}if(0!==l){for(let t=0;t<a;t++){const n=this.createEmptyTimelineRow(t,l);e.appendChild(n)}for(let t=0;t<a;t++){const e=this.createEmptyTaskRow(t);n.appendChild(e)}}}createEmptyTimelineRow(t,e){const n=ur(this.chartContext,{className:"timeline-data-row timeline-empty-row"}),{rowHeight:r}=this.options,i=this.getInstanceId();n.setAttribute("data-taskid",`empty-${t}`),n.setAttribute("data-chart-instance",i),n.style.height=`${r}px`;for(let o=0;o<e;o++){const t=ur(this.chartContext,{className:"timeline-data-cell",style:{height:`${r}px`,minWidth:`${Ri[this.viewMode]}px`}});t.setAttribute("data-chart-instance",i),n.appendChild(t)}return n}createEmptyTaskRow(t){const e=ur(this.chartContext,{className:"tasks-data-row tasks-empty-row"}),{rowHeight:n,fontColor:r}=this.options,i=this.getInstanceId();return e.setAttribute("data-taskid",`empty-${t}`),e.setAttribute("data-chart-instance",i),e.style.height=`${n}px`,to.forEach((({key:t})=>{const o=ur(this.chartContext,{className:"tasks-data-cell",content:""});o.setAttribute("data-columnid",t),o.setAttribute("data-chart-instance",i),o.style.height=`${n}px`,o.style.color=r,e.appendChild(o)})),e}cleanupScrollbarStyles(){try{this.chartContext.getInjectedStyleIds().filter((t=>t.startsWith(`scrollbar-${this.getInstanceId()}`))).forEach((t=>this.chartContext.removeStyles(t)));const t=this.element.querySelector(".timeline-horizontal-scroll");if(t){const e=t.style.width,n=t.style.left,r=t.style.bottom;t.removeAttribute("style"),e&&(t.style.width=e),n&&(t.style.left=n),r&&(t.style.bottom=r)}}catch(t){console.warn("Error cleaning up scrollbar styles:",t)}}updateTask(t,e){if(!this.dataManager.getTaskById(t))throw new Error(`Task with ID ${t} not found`);const[n]=this.dataManager.getDateRange(0,this.viewMode);oo(this.chartContext,this.dataManager,t,e,this.options,this.viewMode,n)}zoomIn(){if(this.viewMode===Fi[0])return;const t=Fi.findIndex((t=>t===this.viewMode));this.viewMode=Fi[t-1],this.updateToolbarAfterZoom(),this.rerenderTimeline(),this.renderDependencyArrows(),requestAnimationFrame((()=>{this.updateHorizontalScrollbarContent(),this.positionHorizontalScrollbar()}))}zoomOut(){if(this.viewMode===Fi[Fi.length-1])return;const t=Fi.findIndex((t=>t===this.viewMode));this.viewMode=Fi[t+1],this.updateToolbarAfterZoom(),this.rerenderTimeline(),this.renderDependencyArrows(),requestAnimationFrame((()=>{this.updateHorizontalScrollbarContent(),this.positionHorizontalScrollbar()}))}updateHorizontalScrollbarContent(){const t=this.element.querySelector(".timeline-horizontal-scroll"),e=null==t?void 0:t.querySelector(".timeline-horizontal-scroll-content"),n=this.element.querySelector(".timeline-body");if(!t||!e||!n)return void console.warn("Scrollbar update: Missing elements",{horizontalScroll:!!t,scrollContent:!!e,timelineBody:!!n});const r=n.scrollWidth;e.style.width=`${r}px`}hasExplicitDimensions(){const t=window.getComputedStyle(this.element),e=t.height,n=t.width;return{height:"auto"!==e&&"0px"!==e,width:"auto"!==n&&"0px"!==n}}normalizeDimension(t){return"number"==typeof t?`${t}px`:t}setupContainerResizeObserver(){if(!this.element)return;this.containerResizeObserver&&this.containerResizeObserver.disconnect();const t=this.normalizeDimension(this.options.width),e=this.normalizeDimension(this.options.height),n="string"==typeof t&&t.includes("%"),r="string"==typeof e&&e.includes("%");(n||r)&&(this.lastKnownWidth=this.element.offsetWidth,this.lastKnownHeight=this.element.offsetHeight,this.containerResizeObserver=new ResizeObserver((t=>{for(const e of t){const t=e.contentRect.width,n=e.contentRect.height,r=Math.abs(t-this.lastKnownWidth)>1,i=Math.abs(n-this.lastKnownHeight)>1;(r||i)&&(this.lastKnownWidth=t,this.lastKnownHeight=n,this.handleContainerResize())}})),this.containerResizeObserver.observe(this.element))}handleContainerResize(){null!==this.resizeDebounceTimer&&window.clearTimeout(this.resizeDebounceTimer),this.resizeDebounceTimer=window.setTimeout((()=>{this.performResize(),this.resizeDebounceTimer=null}),150)}performResize(){if(!this.element||this.isDestroyed())return;const t=this.normalizeDimension(this.options.width),e=this.normalizeDimension(this.options.height),n="string"==typeof t&&t.includes("%"),r="string"==typeof e&&e.includes("%");if(n){window.getComputedStyle(this.element.parentElement||this.element).width!==window.getComputedStyle(this.element).width&&requestAnimationFrame((()=>{this.positionHorizontalScrollbar(),this.updateHorizontalScrollbarContent(),this.syncTasksColumnWidths()}))}r&&requestAnimationFrame((()=>{this.fillEmptyRowsAfterRender()}))}destroy(){try{if(this.containerResizeObserver&&(this.containerResizeObserver.disconnect(),this.containerResizeObserver=null),null!==this.resizeDebounceTimer&&(window.clearTimeout(this.resizeDebounceTimer),this.resizeDebounceTimer=null),this.zoomHandler){const t=this.getInstanceId(),e=this.chartContext.querySelector(`.timeline-container[data-chart-instance="${t}"]`);e&&e.removeEventListener("wheel",this.zoomHandler),this.zoomHandler=null}if(this.timelineScrollHandlers.bodyScroll){const t=this.element.querySelector(".timeline-horizontal-scroll");t&&this.timelineScrollHandlers.bodyScroll&&t.removeEventListener("scroll",this.timelineScrollHandlers.bodyScroll),this.timelineScrollHandlers={}}this.scrollbarResizeObserver&&(this.scrollbarResizeObserver.disconnect(),this.scrollbarResizeObserver=null),this.cleanupEventListeners(),this.cleanupTooltips(),this.cleanupDependencyArrows(),this.splitBarResizeHandler&&(this.chartContext.removeEventListener("splitview-resize",this.splitBarResizeHandler),this.splitBarResizeHandler=null);const t=this.element.querySelector(".timeline-horizontal-scroll");(null==t?void 0:t.id)&&this.chartContext.getInjectedStyleIds().filter((t=>t.startsWith(`scrollbar-${this.getInstanceId()}`))).forEach((t=>this.chartContext.removeStyles(t))),this.element.innerHTML="",super.destroy(),this.stylesInjected=!1}catch(t){console.error("Error during ApexGantt destruction:",t)}}isDestroyed(){return!this.element||""===this.element.innerHTML}}const Ro={tooltipBGColor:"#FFFFFF",tooltipBorderColor:"#CCCCCC",tooltipTextColor:"#333333",cellBorderColor:"#EFF0F0",rowBackgroundColors:["#FFFFFF","#F9F9F9"],headerBackground:"#F3F3F3",headerTextColor:"#333333",barBackgroundColor:"#87B7FE",barTextColor:"#FFFFFF",arrowColor:"#0D6EFD",backgroundColor:"#FFFFFF",textColor:"#000000",borderColor:"#DFE0E1",annotationBgColor:"#F9D1FC",annotationBorderColor:"#E273EA",dialogBgColor:"#FFFFFF",dialogBorderColor:"#EEEEEE",buttonBgColor:"#0066CC",buttonTextColor:"#FFFFFF",buttonHoverBgColor:"#0052A3",toolbarBgColor:"#FFFFFF",toolbarBorderColor:"#BCBCBC",toolbarHoverBgColor:"#F8F9FA",scrollbarTrackColor:"#F5F5F5",scrollbarThumbColor:"#C1C1C1",scrollbarThumbHoverColor:"#A8A8A8",splitBarColor:"#DEE2E6",splitBarHoverColor:"#007BFF",splitBarBorderColor:"#BBBBBB",splitBarHandleColor:"#666666"},No={tooltipBGColor:"#2D2D2D",tooltipBorderColor:"#444444",tooltipTextColor:"#E0E0E0",cellBorderColor:"#3A3A3A",rowBackgroundColors:["#1E1E1E","#252525"],headerBackground:"#2A2A2A",headerTextColor:"#E0E0E0",barBackgroundColor:"#5B8DEE",barTextColor:"#FFFFFF",arrowColor:"#4A9EFF",backgroundColor:"#1E1E1E",textColor:"#E0E0E0",borderColor:"#3A3A3A",annotationBgColor:"#4A2D4D",annotationBorderColor:"#8B4D8F",dialogBgColor:"#2D2D2D",dialogBorderColor:"#444444",buttonBgColor:"#0D6EFD",buttonTextColor:"#FFFFFF",buttonHoverBgColor:"#0B5ED7",toolbarBgColor:"#2D2D2D",toolbarBorderColor:"#444444",toolbarHoverBgColor:"#3A3A3A",scrollbarTrackColor:"#000",scrollbarThumbColor:"#4A4A4A",scrollbarThumbHoverColor:"#5A5A5A",splitBarColor:"#3A3A3A",splitBarHoverColor:"#4A9EFF",splitBarBorderColor:"#4A4A4A",splitBarHandleColor:"#666666"};"undefined"!=typeof window&&(window.ApexGantt=jo),t.ApexGantt=jo,t.DarkTheme=No,t.DataParser=Bo,t.GanttEvents=Ui,t.LightTheme=Ro,t.ViewMode=Li,t.default=jo,t.getTheme=function(t){return"dark"===t?No:Ro},Object.defineProperties(t,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|
|
9
|
+
*/!function(t,e){(function(){var n,r="Expected a function",i="__lodash_hash_undefined__",o="__lodash_placeholder__",s=16,a=32,l=64,u=128,c=256,h=1/0,d=9007199254740991,f=NaN,p=4294967295,m=[["ary",u],["bind",1],["bindKey",2],["curry",8],["curryRight",s],["flip",512],["partial",a],["partialRight",l],["rearg",c]],g="[object Arguments]",y="[object Array]",v="[object Boolean]",b="[object Date]",w="[object Error]",x="[object Function]",_="[object GeneratorFunction]",k="[object Map]",C="[object Number]",S="[object Object]",E="[object Promise]",T="[object RegExp]",M="[object Set]",A="[object String]",D="[object Symbol]",$="[object WeakMap]",z="[object ArrayBuffer]",O="[object DataView]",I="[object Float32Array]",F="[object Float64Array]",L="[object Int8Array]",B="[object Int16Array]",j="[object Int32Array]",R="[object Uint8Array]",N="[object Uint8ClampedArray]",H="[object Uint16Array]",q="[object Uint32Array]",P=/\b__p \+= '';/g,W=/\b(__p \+=) '' \+/g,Y=/(__e\(.*?\)|\b__t\)) \+\n'';/g,U=/&(?:amp|lt|gt|quot|#39);/g,X=/[&<>"']/g,V=RegExp(U.source),G=RegExp(X.source),K=/<%-([\s\S]+?)%>/g,Z=/<%([\s\S]+?)%>/g,J=/<%=([\s\S]+?)%>/g,Q=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,tt=/^\w*$/,et=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,nt=/[\\^$.*+?()[\]{}|]/g,rt=RegExp(nt.source),it=/^\s+/,ot=/\s/,st=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,at=/\{\n\/\* \[wrapped with (.+)\] \*/,lt=/,? & /,ut=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ct=/[()=,{}\[\]\/\s]/,ht=/\\(\\)?/g,dt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ft=/\w*$/,pt=/^[-+]0x[0-9a-f]+$/i,mt=/^0b[01]+$/i,gt=/^\[object .+?Constructor\]$/,yt=/^0o[0-7]+$/i,vt=/^(?:0|[1-9]\d*)$/,bt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,wt=/($^)/,xt=/['\n\r\u2028\u2029\\]/g,_t="\\ud800-\\udfff",kt="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Ct="\\u2700-\\u27bf",St="a-z\\xdf-\\xf6\\xf8-\\xff",Et="A-Z\\xc0-\\xd6\\xd8-\\xde",Tt="\\ufe0e\\ufe0f",Mt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",At="['’]",Dt="["+_t+"]",$t="["+Mt+"]",zt="["+kt+"]",Ot="\\d+",It="["+Ct+"]",Ft="["+St+"]",Lt="[^"+_t+Mt+Ot+Ct+St+Et+"]",Bt="\\ud83c[\\udffb-\\udfff]",jt="[^"+_t+"]",Rt="(?:\\ud83c[\\udde6-\\uddff]){2}",Nt="[\\ud800-\\udbff][\\udc00-\\udfff]",Ht="["+Et+"]",qt="\\u200d",Pt="(?:"+Ft+"|"+Lt+")",Wt="(?:"+Ht+"|"+Lt+")",Yt="(?:['’](?:d|ll|m|re|s|t|ve))?",Ut="(?:['’](?:D|LL|M|RE|S|T|VE))?",Xt="(?:"+zt+"|"+Bt+")"+"?",Vt="["+Tt+"]?",Gt=Vt+Xt+("(?:"+qt+"(?:"+[jt,Rt,Nt].join("|")+")"+Vt+Xt+")*"),Kt="(?:"+[It,Rt,Nt].join("|")+")"+Gt,Zt="(?:"+[jt+zt+"?",zt,Rt,Nt,Dt].join("|")+")",Jt=RegExp(At,"g"),Qt=RegExp(zt,"g"),te=RegExp(Bt+"(?="+Bt+")|"+Zt+Gt,"g"),ee=RegExp([Ht+"?"+Ft+"+"+Yt+"(?="+[$t,Ht,"$"].join("|")+")",Wt+"+"+Ut+"(?="+[$t,Ht+Pt,"$"].join("|")+")",Ht+"?"+Pt+"+"+Yt,Ht+"+"+Ut,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Ot,Kt].join("|"),"g"),ne=RegExp("["+qt+_t+kt+Tt+"]"),re=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,ie=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],oe=-1,se={};se[I]=se[F]=se[L]=se[B]=se[j]=se[R]=se[N]=se[H]=se[q]=!0,se[g]=se[y]=se[z]=se[v]=se[O]=se[b]=se[w]=se[x]=se[k]=se[C]=se[S]=se[T]=se[M]=se[A]=se[$]=!1;var ae={};ae[g]=ae[y]=ae[z]=ae[O]=ae[v]=ae[b]=ae[I]=ae[F]=ae[L]=ae[B]=ae[j]=ae[k]=ae[C]=ae[S]=ae[T]=ae[M]=ae[A]=ae[D]=ae[R]=ae[N]=ae[H]=ae[q]=!0,ae[w]=ae[x]=ae[$]=!1;var le={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ue=parseFloat,ce=parseInt,he="object"==typeof dr&&dr&&dr.Object===Object&&dr,de="object"==typeof self&&self&&self.Object===Object&&self,fe=he||de||Function("return this")(),pe=e&&!e.nodeType&&e,me=pe&&t&&!t.nodeType&&t,ge=me&&me.exports===pe,ye=ge&&he.process,ve=function(){try{var t=me&&me.require&&me.require("util").types;return t||ye&&ye.binding&&ye.binding("util")}catch(e){}}(),be=ve&&ve.isArrayBuffer,we=ve&&ve.isDate,xe=ve&&ve.isMap,_e=ve&&ve.isRegExp,ke=ve&&ve.isSet,Ce=ve&&ve.isTypedArray;function Se(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function Ee(t,e,n,r){for(var i=-1,o=null==t?0:t.length;++i<o;){var s=t[i];e(r,s,n(s),t)}return r}function Te(t,e){for(var n=-1,r=null==t?0:t.length;++n<r&&!1!==e(t[n],n,t););return t}function Me(t,e){for(var n=null==t?0:t.length;n--&&!1!==e(t[n],n,t););return t}function Ae(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(!e(t[n],n,t))return!1;return!0}function De(t,e){for(var n=-1,r=null==t?0:t.length,i=0,o=[];++n<r;){var s=t[n];e(s,n,t)&&(o[i++]=s)}return o}function $e(t,e){return!!(null==t?0:t.length)&&He(t,e,0)>-1}function ze(t,e,n){for(var r=-1,i=null==t?0:t.length;++r<i;)if(n(e,t[r]))return!0;return!1}function Oe(t,e){for(var n=-1,r=null==t?0:t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i}function Ie(t,e){for(var n=-1,r=e.length,i=t.length;++n<r;)t[i+n]=e[n];return t}function Fe(t,e,n,r){var i=-1,o=null==t?0:t.length;for(r&&o&&(n=t[++i]);++i<o;)n=e(n,t[i],i,t);return n}function Le(t,e,n,r){var i=null==t?0:t.length;for(r&&i&&(n=t[--i]);i--;)n=e(n,t[i],i,t);return n}function Be(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(e(t[n],n,t))return!0;return!1}var je=Ye("length");function Re(t,e,n){var r;return n(t,(function(t,n,i){if(e(t,n,i))return r=n,!1})),r}function Ne(t,e,n,r){for(var i=t.length,o=n+(r?1:-1);r?o--:++o<i;)if(e(t[o],o,t))return o;return-1}function He(t,e,n){return e==e?function(t,e,n){var r=n-1,i=t.length;for(;++r<i;)if(t[r]===e)return r;return-1}(t,e,n):Ne(t,Pe,n)}function qe(t,e,n,r){for(var i=n-1,o=t.length;++i<o;)if(r(t[i],e))return i;return-1}function Pe(t){return t!=t}function We(t,e){var n=null==t?0:t.length;return n?Ve(t,e)/n:f}function Ye(t){return function(e){return null==e?n:e[t]}}function Ue(t){return function(e){return null==t?n:t[e]}}function Xe(t,e,n,r,i){return i(t,(function(t,i,o){n=r?(r=!1,t):e(n,t,i,o)})),n}function Ve(t,e){for(var r,i=-1,o=t.length;++i<o;){var s=e(t[i]);s!==n&&(r=r===n?s:r+s)}return r}function Ge(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}function Ke(t){return t?t.slice(0,fn(t)+1).replace(it,""):t}function Ze(t){return function(e){return t(e)}}function Je(t,e){return Oe(e,(function(e){return t[e]}))}function Qe(t,e){return t.has(e)}function tn(t,e){for(var n=-1,r=t.length;++n<r&&He(e,t[n],0)>-1;);return n}function en(t,e){for(var n=t.length;n--&&He(e,t[n],0)>-1;);return n}var nn=Ue({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),rn=Ue({"&":"&","<":"<",">":">",'"':""","'":"'"});function on(t){return"\\"+le[t]}function sn(t){return ne.test(t)}function an(t){var e=-1,n=Array(t.size);return t.forEach((function(t,r){n[++e]=[r,t]})),n}function ln(t,e){return function(n){return t(e(n))}}function un(t,e){for(var n=-1,r=t.length,i=0,s=[];++n<r;){var a=t[n];a!==e&&a!==o||(t[n]=o,s[i++]=n)}return s}function cn(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=t})),n}function hn(t){return sn(t)?function(t){var e=te.lastIndex=0;for(;te.test(t);)++e;return e}(t):je(t)}function dn(t){return sn(t)?function(t){return t.match(te)||[]}(t):function(t){return t.split("")}(t)}function fn(t){for(var e=t.length;e--&&ot.test(t.charAt(e)););return e}var pn=Ue({"&":"&","<":"<",">":">",""":'"',"'":"'"});var mn=function t(e){var ot,_t=(e=null==e?fe:mn.defaults(fe.Object(),e,mn.pick(fe,ie))).Array,kt=e.Date,Ct=e.Error,St=e.Function,Et=e.Math,Tt=e.Object,Mt=e.RegExp,At=e.String,Dt=e.TypeError,$t=_t.prototype,zt=St.prototype,Ot=Tt.prototype,It=e["__core-js_shared__"],Ft=zt.toString,Lt=Ot.hasOwnProperty,Bt=0,jt=(ot=/[^.]+$/.exec(It&&It.keys&&It.keys.IE_PROTO||""))?"Symbol(src)_1."+ot:"",Rt=Ot.toString,Nt=Ft.call(Tt),Ht=fe._,qt=Mt("^"+Ft.call(Lt).replace(nt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Pt=ge?e.Buffer:n,Wt=e.Symbol,Yt=e.Uint8Array,Ut=Pt?Pt.allocUnsafe:n,Xt=ln(Tt.getPrototypeOf,Tt),Vt=Tt.create,Gt=Ot.propertyIsEnumerable,Kt=$t.splice,Zt=Wt?Wt.isConcatSpreadable:n,te=Wt?Wt.iterator:n,ne=Wt?Wt.toStringTag:n,le=function(){try{var t=ho(Tt,"defineProperty");return t({},"",{}),t}catch(e){}}(),he=e.clearTimeout!==fe.clearTimeout&&e.clearTimeout,de=kt&&kt.now!==fe.Date.now&&kt.now,pe=e.setTimeout!==fe.setTimeout&&e.setTimeout,me=Et.ceil,ye=Et.floor,ve=Tt.getOwnPropertySymbols,je=Pt?Pt.isBuffer:n,Ue=e.isFinite,gn=$t.join,yn=ln(Tt.keys,Tt),vn=Et.max,bn=Et.min,wn=kt.now,xn=e.parseInt,_n=Et.random,kn=$t.reverse,Cn=ho(e,"DataView"),Sn=ho(e,"Map"),En=ho(e,"Promise"),Tn=ho(e,"Set"),Mn=ho(e,"WeakMap"),An=ho(Tt,"create"),Dn=Mn&&new Mn,$n={},zn=jo(Cn),On=jo(Sn),In=jo(En),Fn=jo(Tn),Ln=jo(Mn),Bn=Wt?Wt.prototype:n,jn=Bn?Bn.valueOf:n,Rn=Bn?Bn.toString:n;function Nn(t){if(ea(t)&&!Ws(t)&&!(t instanceof Wn)){if(t instanceof Pn)return t;if(Lt.call(t,"__wrapped__"))return Ro(t)}return new Pn(t)}var Hn=function(){function t(){}return function(e){if(!ta(e))return{};if(Vt)return Vt(e);t.prototype=e;var r=new t;return t.prototype=n,r}}();function qn(){}function Pn(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=n}function Wn(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=p,this.__views__=[]}function Yn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function Un(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function Xn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function Vn(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new Xn;++e<n;)this.add(t[e])}function Gn(t){var e=this.__data__=new Un(t);this.size=e.size}function Kn(t,e){var n=Ws(t),r=!n&&Ps(t),i=!n&&!r&&Vs(t),o=!n&&!r&&!i&&ua(t),s=n||r||i||o,a=s?Ge(t.length,At):[],l=a.length;for(var u in t)!e&&!Lt.call(t,u)||s&&("length"==u||i&&("offset"==u||"parent"==u)||o&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||bo(u,l))||a.push(u);return a}function Zn(t){var e=t.length;return e?t[Vr(0,e-1)]:n}function Jn(t,e){return Fo(Ai(t),ar(e,0,t.length))}function Qn(t){return Fo(Ai(t))}function tr(t,e,r){(r!==n&&!Ns(t[e],r)||r===n&&!(e in t))&&or(t,e,r)}function er(t,e,r){var i=t[e];Lt.call(t,e)&&Ns(i,r)&&(r!==n||e in t)||or(t,e,r)}function nr(t,e){for(var n=t.length;n--;)if(Ns(t[n][0],e))return n;return-1}function rr(t,e,n,r){return dr(t,(function(t,i,o){e(r,t,n(t),o)})),r}function ir(t,e){return t&&Di(e,$a(e),t)}function or(t,e,n){"__proto__"==e&&le?le(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}function sr(t,e){for(var r=-1,i=e.length,o=_t(i),s=null==t;++r<i;)o[r]=s?n:Ea(t,e[r]);return o}function ar(t,e,r){return t==t&&(r!==n&&(t=t<=r?t:r),e!==n&&(t=t>=e?t:e)),t}function lr(t,e,r,i,o,s){var a,l=1&e,u=2&e,c=4&e;if(r&&(a=o?r(t,i,o,s):r(t)),a!==n)return a;if(!ta(t))return t;var h=Ws(t);if(h){if(a=function(t){var e=t.length,n=new t.constructor(e);e&&"string"==typeof t[0]&&Lt.call(t,"index")&&(n.index=t.index,n.input=t.input);return n}(t),!l)return Ai(t,a)}else{var d=mo(t),f=d==x||d==_;if(Vs(t))return ki(t,l);if(d==S||d==g||f&&!o){if(a=u||f?{}:yo(t),!l)return u?function(t,e){return Di(t,po(t),e)}(t,function(t,e){return t&&Di(e,za(e),t)}(a,t)):function(t,e){return Di(t,fo(t),e)}(t,ir(a,t))}else{if(!ae[d])return o?t:{};a=function(t,e,n){var r=t.constructor;switch(e){case z:return Ci(t);case v:case b:return new r(+t);case O:return function(t,e){var n=e?Ci(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}(t,n);case I:case F:case L:case B:case j:case R:case N:case H:case q:return Si(t,n);case k:return new r;case C:case A:return new r(t);case T:return function(t){var e=new t.constructor(t.source,ft.exec(t));return e.lastIndex=t.lastIndex,e}(t);case M:return new r;case D:return i=t,jn?Tt(jn.call(i)):{}}var i}(t,d,l)}}s||(s=new Gn);var p=s.get(t);if(p)return p;s.set(t,a),sa(t)?t.forEach((function(n){a.add(lr(n,e,r,n,t,s))})):na(t)&&t.forEach((function(n,i){a.set(i,lr(n,e,r,i,t,s))}));var m=h?n:(c?u?io:ro:u?za:$a)(t);return Te(m||t,(function(n,i){m&&(n=t[i=n]),er(a,i,lr(n,e,r,i,t,s))})),a}function ur(t,e,r){var i=r.length;if(null==t)return!i;for(t=Tt(t);i--;){var o=r[i],s=e[o],a=t[o];if(a===n&&!(o in t)||!s(a))return!1}return!0}function cr(t,e,i){if("function"!=typeof t)throw new Dt(r);return $o((function(){t.apply(n,i)}),e)}function hr(t,e,n,r){var i=-1,o=$e,s=!0,a=t.length,l=[],u=e.length;if(!a)return l;n&&(e=Oe(e,Ze(n))),r?(o=ze,s=!1):e.length>=200&&(o=Qe,s=!1,e=new Vn(e));t:for(;++i<a;){var c=t[i],h=null==n?c:n(c);if(c=r||0!==c?c:0,s&&h==h){for(var d=u;d--;)if(e[d]===h)continue t;l.push(c)}else o(e,h,r)||l.push(c)}return l}Nn.templateSettings={escape:K,evaluate:Z,interpolate:J,variable:"",imports:{_:Nn}},Nn.prototype=qn.prototype,Nn.prototype.constructor=Nn,Pn.prototype=Hn(qn.prototype),Pn.prototype.constructor=Pn,Wn.prototype=Hn(qn.prototype),Wn.prototype.constructor=Wn,Yn.prototype.clear=function(){this.__data__=An?An(null):{},this.size=0},Yn.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},Yn.prototype.get=function(t){var e=this.__data__;if(An){var r=e[t];return r===i?n:r}return Lt.call(e,t)?e[t]:n},Yn.prototype.has=function(t){var e=this.__data__;return An?e[t]!==n:Lt.call(e,t)},Yn.prototype.set=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=An&&e===n?i:e,this},Un.prototype.clear=function(){this.__data__=[],this.size=0},Un.prototype.delete=function(t){var e=this.__data__,n=nr(e,t);return!(n<0)&&(n==e.length-1?e.pop():Kt.call(e,n,1),--this.size,!0)},Un.prototype.get=function(t){var e=this.__data__,r=nr(e,t);return r<0?n:e[r][1]},Un.prototype.has=function(t){return nr(this.__data__,t)>-1},Un.prototype.set=function(t,e){var n=this.__data__,r=nr(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this},Xn.prototype.clear=function(){this.size=0,this.__data__={hash:new Yn,map:new(Sn||Un),string:new Yn}},Xn.prototype.delete=function(t){var e=uo(this,t).delete(t);return this.size-=e?1:0,e},Xn.prototype.get=function(t){return uo(this,t).get(t)},Xn.prototype.has=function(t){return uo(this,t).has(t)},Xn.prototype.set=function(t,e){var n=uo(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this},Vn.prototype.add=Vn.prototype.push=function(t){return this.__data__.set(t,i),this},Vn.prototype.has=function(t){return this.__data__.has(t)},Gn.prototype.clear=function(){this.__data__=new Un,this.size=0},Gn.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},Gn.prototype.get=function(t){return this.__data__.get(t)},Gn.prototype.has=function(t){return this.__data__.has(t)},Gn.prototype.set=function(t,e){var n=this.__data__;if(n instanceof Un){var r=n.__data__;if(!Sn||r.length<199)return r.push([t,e]),this.size=++n.size,this;n=this.__data__=new Xn(r)}return n.set(t,e),this.size=n.size,this};var dr=Oi(wr),fr=Oi(xr,!0);function pr(t,e){var n=!0;return dr(t,(function(t,r,i){return n=!!e(t,r,i)})),n}function mr(t,e,r){for(var i=-1,o=t.length;++i<o;){var s=t[i],a=e(s);if(null!=a&&(l===n?a==a&&!la(a):r(a,l)))var l=a,u=s}return u}function gr(t,e){var n=[];return dr(t,(function(t,r,i){e(t,r,i)&&n.push(t)})),n}function yr(t,e,n,r,i){var o=-1,s=t.length;for(n||(n=vo),i||(i=[]);++o<s;){var a=t[o];e>0&&n(a)?e>1?yr(a,e-1,n,r,i):Ie(i,a):r||(i[i.length]=a)}return i}var vr=Ii(),br=Ii(!0);function wr(t,e){return t&&vr(t,e,$a)}function xr(t,e){return t&&br(t,e,$a)}function _r(t,e){return De(e,(function(e){return Zs(t[e])}))}function kr(t,e){for(var r=0,i=(e=bi(e,t)).length;null!=t&&r<i;)t=t[Bo(e[r++])];return r&&r==i?t:n}function Cr(t,e,n){var r=e(t);return Ws(t)?r:Ie(r,n(t))}function Sr(t){return null==t?t===n?"[object Undefined]":"[object Null]":ne&&ne in Tt(t)?function(t){var e=Lt.call(t,ne),r=t[ne];try{t[ne]=n;var i=!0}catch(s){}var o=Rt.call(t);i&&(e?t[ne]=r:delete t[ne]);return o}(t):function(t){return Rt.call(t)}(t)}function Er(t,e){return t>e}function Tr(t,e){return null!=t&&Lt.call(t,e)}function Mr(t,e){return null!=t&&e in Tt(t)}function Ar(t,e,r){for(var i=r?ze:$e,o=t[0].length,s=t.length,a=s,l=_t(s),u=1/0,c=[];a--;){var h=t[a];a&&e&&(h=Oe(h,Ze(e))),u=bn(h.length,u),l[a]=!r&&(e||o>=120&&h.length>=120)?new Vn(a&&h):n}h=t[0];var d=-1,f=l[0];t:for(;++d<o&&c.length<u;){var p=h[d],m=e?e(p):p;if(p=r||0!==p?p:0,!(f?Qe(f,m):i(c,m,r))){for(a=s;--a;){var g=l[a];if(!(g?Qe(g,m):i(t[a],m,r)))continue t}f&&f.push(m),c.push(p)}}return c}function Dr(t,e,r){var i=null==(t=Mo(t,e=bi(e,t)))?t:t[Bo(Ko(e))];return null==i?n:Se(i,t,r)}function $r(t){return ea(t)&&Sr(t)==g}function zr(t,e,r,i,o){return t===e||(null==t||null==e||!ea(t)&&!ea(e)?t!=t&&e!=e:function(t,e,r,i,o,s){var a=Ws(t),l=Ws(e),u=a?y:mo(t),c=l?y:mo(e),h=(u=u==g?S:u)==S,d=(c=c==g?S:c)==S,f=u==c;if(f&&Vs(t)){if(!Vs(e))return!1;a=!0,h=!1}if(f&&!h)return s||(s=new Gn),a||ua(t)?eo(t,e,r,i,o,s):function(t,e,n,r,i,o,s){switch(n){case O:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case z:return!(t.byteLength!=e.byteLength||!o(new Yt(t),new Yt(e)));case v:case b:case C:return Ns(+t,+e);case w:return t.name==e.name&&t.message==e.message;case T:case A:return t==e+"";case k:var a=an;case M:var l=1&r;if(a||(a=cn),t.size!=e.size&&!l)return!1;var u=s.get(t);if(u)return u==e;r|=2,s.set(t,e);var c=eo(a(t),a(e),r,i,o,s);return s.delete(t),c;case D:if(jn)return jn.call(t)==jn.call(e)}return!1}(t,e,u,r,i,o,s);if(!(1&r)){var p=h&&Lt.call(t,"__wrapped__"),m=d&&Lt.call(e,"__wrapped__");if(p||m){var x=p?t.value():t,_=m?e.value():e;return s||(s=new Gn),o(x,_,r,i,s)}}if(!f)return!1;return s||(s=new Gn),function(t,e,r,i,o,s){var a=1&r,l=ro(t),u=l.length,c=ro(e),h=c.length;if(u!=h&&!a)return!1;var d=u;for(;d--;){var f=l[d];if(!(a?f in e:Lt.call(e,f)))return!1}var p=s.get(t),m=s.get(e);if(p&&m)return p==e&&m==t;var g=!0;s.set(t,e),s.set(e,t);var y=a;for(;++d<u;){var v=t[f=l[d]],b=e[f];if(i)var w=a?i(b,v,f,e,t,s):i(v,b,f,t,e,s);if(!(w===n?v===b||o(v,b,r,i,s):w)){g=!1;break}y||(y="constructor"==f)}if(g&&!y){var x=t.constructor,_=e.constructor;x==_||!("constructor"in t)||!("constructor"in e)||"function"==typeof x&&x instanceof x&&"function"==typeof _&&_ instanceof _||(g=!1)}return s.delete(t),s.delete(e),g}(t,e,r,i,o,s)}(t,e,r,i,zr,o))}function Or(t,e,r,i){var o=r.length,s=o,a=!i;if(null==t)return!s;for(t=Tt(t);o--;){var l=r[o];if(a&&l[2]?l[1]!==t[l[0]]:!(l[0]in t))return!1}for(;++o<s;){var u=(l=r[o])[0],c=t[u],h=l[1];if(a&&l[2]){if(c===n&&!(u in t))return!1}else{var d=new Gn;if(i)var f=i(c,h,u,t,e,d);if(!(f===n?zr(h,c,3,i,d):f))return!1}}return!0}function Ir(t){return!(!ta(t)||function(t){return!!jt&&jt in t}(t))&&(Zs(t)?qt:gt).test(jo(t))}function Fr(t){return"function"==typeof t?t:null==t?rl:"object"==typeof t?Ws(t)?Hr(t[0],t[1]):Nr(t):dl(t)}function Lr(t){if(!Co(t))return yn(t);var e=[];for(var n in Tt(t))Lt.call(t,n)&&"constructor"!=n&&e.push(n);return e}function Br(t){if(!ta(t))return function(t){var e=[];if(null!=t)for(var n in Tt(t))e.push(n);return e}(t);var e=Co(t),n=[];for(var r in t)("constructor"!=r||!e&&Lt.call(t,r))&&n.push(r);return n}function jr(t,e){return t<e}function Rr(t,e){var n=-1,r=Us(t)?_t(t.length):[];return dr(t,(function(t,i,o){r[++n]=e(t,i,o)})),r}function Nr(t){var e=co(t);return 1==e.length&&e[0][2]?Eo(e[0][0],e[0][1]):function(n){return n===t||Or(n,t,e)}}function Hr(t,e){return xo(t)&&So(e)?Eo(Bo(t),e):function(r){var i=Ea(r,t);return i===n&&i===e?Ta(r,t):zr(e,i,3)}}function qr(t,e,r,i,o){t!==e&&vr(e,(function(s,a){if(o||(o=new Gn),ta(s))!function(t,e,r,i,o,s,a){var l=Ao(t,r),u=Ao(e,r),c=a.get(u);if(c)return void tr(t,r,c);var h=s?s(l,u,r+"",t,e,a):n,d=h===n;if(d){var f=Ws(u),p=!f&&Vs(u),m=!f&&!p&&ua(u);h=u,f||p||m?Ws(l)?h=l:Xs(l)?h=Ai(l):p?(d=!1,h=ki(u,!0)):m?(d=!1,h=Si(u,!0)):h=[]:ia(u)||Ps(u)?(h=l,Ps(l)?h=ya(l):ta(l)&&!Zs(l)||(h=yo(u))):d=!1}d&&(a.set(u,h),o(h,u,i,s,a),a.delete(u));tr(t,r,h)}(t,e,a,r,qr,i,o);else{var l=i?i(Ao(t,a),s,a+"",t,e,o):n;l===n&&(l=s),tr(t,a,l)}}),za)}function Pr(t,e){var r=t.length;if(r)return bo(e+=e<0?r:0,r)?t[e]:n}function Wr(t,e,n){e=e.length?Oe(e,(function(t){return Ws(t)?function(e){return kr(e,1===t.length?t[0]:t)}:t})):[rl];var r=-1;return e=Oe(e,Ze(lo())),function(t,e){var n=t.length;for(t.sort(e);n--;)t[n]=t[n].value;return t}(Rr(t,(function(t,n,i){return{criteria:Oe(e,(function(e){return e(t)})),index:++r,value:t}})),(function(t,e){return function(t,e,n){var r=-1,i=t.criteria,o=e.criteria,s=i.length,a=n.length;for(;++r<s;){var l=Ei(i[r],o[r]);if(l)return r>=a?l:l*("desc"==n[r]?-1:1)}return t.index-e.index}(t,e,n)}))}function Yr(t,e,n){for(var r=-1,i=e.length,o={};++r<i;){var s=e[r],a=kr(t,s);n(a,s)&&Qr(o,bi(s,t),a)}return o}function Ur(t,e,n,r){var i=r?qe:He,o=-1,s=e.length,a=t;for(t===e&&(e=Ai(e)),n&&(a=Oe(t,Ze(n)));++o<s;)for(var l=0,u=e[o],c=n?n(u):u;(l=i(a,c,l,r))>-1;)a!==t&&Kt.call(a,l,1),Kt.call(t,l,1);return t}function Xr(t,e){for(var n=t?e.length:0,r=n-1;n--;){var i=e[n];if(n==r||i!==o){var o=i;bo(i)?Kt.call(t,i,1):hi(t,i)}}return t}function Vr(t,e){return t+ye(_n()*(e-t+1))}function Gr(t,e){var n="";if(!t||e<1||e>d)return n;do{e%2&&(n+=t),(e=ye(e/2))&&(t+=t)}while(e);return n}function Kr(t,e){return zo(To(t,e,rl),t+"")}function Zr(t){return Zn(Na(t))}function Jr(t,e){var n=Na(t);return Fo(n,ar(e,0,n.length))}function Qr(t,e,r,i){if(!ta(t))return t;for(var o=-1,s=(e=bi(e,t)).length,a=s-1,l=t;null!=l&&++o<s;){var u=Bo(e[o]),c=r;if("__proto__"===u||"constructor"===u||"prototype"===u)return t;if(o!=a){var h=l[u];(c=i?i(h,u,l):n)===n&&(c=ta(h)?h:bo(e[o+1])?[]:{})}er(l,u,c),l=l[u]}return t}var ti=Dn?function(t,e){return Dn.set(t,e),t}:rl,ei=le?function(t,e){return le(t,"toString",{configurable:!0,enumerable:!1,value:tl(e),writable:!0})}:rl;function ni(t){return Fo(Na(t))}function ri(t,e,n){var r=-1,i=t.length;e<0&&(e=-e>i?0:i+e),(n=n>i?i:n)<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var o=_t(i);++r<i;)o[r]=t[r+e];return o}function ii(t,e){var n;return dr(t,(function(t,r,i){return!(n=e(t,r,i))})),!!n}function oi(t,e,n){var r=0,i=null==t?r:t.length;if("number"==typeof e&&e==e&&i<=2147483647){for(;r<i;){var o=r+i>>>1,s=t[o];null!==s&&!la(s)&&(n?s<=e:s<e)?r=o+1:i=o}return i}return si(t,e,rl,n)}function si(t,e,r,i){var o=0,s=null==t?0:t.length;if(0===s)return 0;for(var a=(e=r(e))!=e,l=null===e,u=la(e),c=e===n;o<s;){var h=ye((o+s)/2),d=r(t[h]),f=d!==n,p=null===d,m=d==d,g=la(d);if(a)var y=i||m;else y=c?m&&(i||f):l?m&&f&&(i||!p):u?m&&f&&!p&&(i||!g):!p&&!g&&(i?d<=e:d<e);y?o=h+1:s=h}return bn(s,4294967294)}function ai(t,e){for(var n=-1,r=t.length,i=0,o=[];++n<r;){var s=t[n],a=e?e(s):s;if(!n||!Ns(a,l)){var l=a;o[i++]=0===s?0:s}}return o}function li(t){return"number"==typeof t?t:la(t)?f:+t}function ui(t){if("string"==typeof t)return t;if(Ws(t))return Oe(t,ui)+"";if(la(t))return Rn?Rn.call(t):"";var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function ci(t,e,n){var r=-1,i=$e,o=t.length,s=!0,a=[],l=a;if(n)s=!1,i=ze;else if(o>=200){var u=e?null:Gi(t);if(u)return cn(u);s=!1,i=Qe,l=new Vn}else l=e?[]:a;t:for(;++r<o;){var c=t[r],h=e?e(c):c;if(c=n||0!==c?c:0,s&&h==h){for(var d=l.length;d--;)if(l[d]===h)continue t;e&&l.push(h),a.push(c)}else i(l,h,n)||(l!==a&&l.push(h),a.push(c))}return a}function hi(t,e){return null==(t=Mo(t,e=bi(e,t)))||delete t[Bo(Ko(e))]}function di(t,e,n,r){return Qr(t,e,n(kr(t,e)),r)}function fi(t,e,n,r){for(var i=t.length,o=r?i:-1;(r?o--:++o<i)&&e(t[o],o,t););return n?ri(t,r?0:o,r?o+1:i):ri(t,r?o+1:0,r?i:o)}function pi(t,e){var n=t;return n instanceof Wn&&(n=n.value()),Fe(e,(function(t,e){return e.func.apply(e.thisArg,Ie([t],e.args))}),n)}function mi(t,e,n){var r=t.length;if(r<2)return r?ci(t[0]):[];for(var i=-1,o=_t(r);++i<r;)for(var s=t[i],a=-1;++a<r;)a!=i&&(o[i]=hr(o[i]||s,t[a],e,n));return ci(yr(o,1),e,n)}function gi(t,e,r){for(var i=-1,o=t.length,s=e.length,a={};++i<o;){var l=i<s?e[i]:n;r(a,t[i],l)}return a}function yi(t){return Xs(t)?t:[]}function vi(t){return"function"==typeof t?t:rl}function bi(t,e){return Ws(t)?t:xo(t,e)?[t]:Lo(va(t))}var wi=Kr;function xi(t,e,r){var i=t.length;return r=r===n?i:r,!e&&r>=i?t:ri(t,e,r)}var _i=he||function(t){return fe.clearTimeout(t)};function ki(t,e){if(e)return t.slice();var n=t.length,r=Ut?Ut(n):new t.constructor(n);return t.copy(r),r}function Ci(t){var e=new t.constructor(t.byteLength);return new Yt(e).set(new Yt(t)),e}function Si(t,e){var n=e?Ci(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function Ei(t,e){if(t!==e){var r=t!==n,i=null===t,o=t==t,s=la(t),a=e!==n,l=null===e,u=e==e,c=la(e);if(!l&&!c&&!s&&t>e||s&&a&&u&&!l&&!c||i&&a&&u||!r&&u||!o)return 1;if(!i&&!s&&!c&&t<e||c&&r&&o&&!i&&!s||l&&r&&o||!a&&o||!u)return-1}return 0}function Ti(t,e,n,r){for(var i=-1,o=t.length,s=n.length,a=-1,l=e.length,u=vn(o-s,0),c=_t(l+u),h=!r;++a<l;)c[a]=e[a];for(;++i<s;)(h||i<o)&&(c[n[i]]=t[i]);for(;u--;)c[a++]=t[i++];return c}function Mi(t,e,n,r){for(var i=-1,o=t.length,s=-1,a=n.length,l=-1,u=e.length,c=vn(o-a,0),h=_t(c+u),d=!r;++i<c;)h[i]=t[i];for(var f=i;++l<u;)h[f+l]=e[l];for(;++s<a;)(d||i<o)&&(h[f+n[s]]=t[i++]);return h}function Ai(t,e){var n=-1,r=t.length;for(e||(e=_t(r));++n<r;)e[n]=t[n];return e}function Di(t,e,r,i){var o=!r;r||(r={});for(var s=-1,a=e.length;++s<a;){var l=e[s],u=i?i(r[l],t[l],l,r,t):n;u===n&&(u=t[l]),o?or(r,l,u):er(r,l,u)}return r}function $i(t,e){return function(n,r){var i=Ws(n)?Ee:rr,o=e?e():{};return i(n,t,lo(r,2),o)}}function zi(t){return Kr((function(e,r){var i=-1,o=r.length,s=o>1?r[o-1]:n,a=o>2?r[2]:n;for(s=t.length>3&&"function"==typeof s?(o--,s):n,a&&wo(r[0],r[1],a)&&(s=o<3?n:s,o=1),e=Tt(e);++i<o;){var l=r[i];l&&t(e,l,i,s)}return e}))}function Oi(t,e){return function(n,r){if(null==n)return n;if(!Us(n))return t(n,r);for(var i=n.length,o=e?i:-1,s=Tt(n);(e?o--:++o<i)&&!1!==r(s[o],o,s););return n}}function Ii(t){return function(e,n,r){for(var i=-1,o=Tt(e),s=r(e),a=s.length;a--;){var l=s[t?a:++i];if(!1===n(o[l],l,o))break}return e}}function Fi(t){return function(e){var r=sn(e=va(e))?dn(e):n,i=r?r[0]:e.charAt(0),o=r?xi(r,1).join(""):e.slice(1);return i[t]()+o}}function Li(t){return function(e){return Fe(Za(Pa(e).replace(Jt,"")),t,"")}}function Bi(t){return function(){var e=arguments;switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3]);case 5:return new t(e[0],e[1],e[2],e[3],e[4]);case 6:return new t(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new t(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var n=Hn(t.prototype),r=t.apply(n,e);return ta(r)?r:n}}function ji(t){return function(e,r,i){var o=Tt(e);if(!Us(e)){var s=lo(r,3);e=$a(e),r=function(t){return s(o[t],t,o)}}var a=t(e,r,i);return a>-1?o[s?e[a]:a]:n}}function Ri(t){return no((function(e){var i=e.length,o=i,s=Pn.prototype.thru;for(t&&e.reverse();o--;){var a=e[o];if("function"!=typeof a)throw new Dt(r);if(s&&!l&&"wrapper"==so(a))var l=new Pn([],!0)}for(o=l?o:i;++o<i;){var u=so(a=e[o]),c="wrapper"==u?oo(a):n;l=c&&_o(c[0])&&424==c[1]&&!c[4].length&&1==c[9]?l[so(c[0])].apply(l,c[3]):1==a.length&&_o(a)?l[u]():l.thru(a)}return function(){var t=arguments,n=t[0];if(l&&1==t.length&&Ws(n))return l.plant(n).value();for(var r=0,o=i?e[r].apply(this,t):n;++r<i;)o=e[r].call(this,o);return o}}))}function Ni(t,e,r,i,o,s,a,l,c,h){var d=e&u,f=1&e,p=2&e,m=24&e,g=512&e,y=p?n:Bi(t);return function u(){for(var v=arguments.length,b=_t(v),w=v;w--;)b[w]=arguments[w];if(m)var x=ao(u),_=function(t,e){for(var n=t.length,r=0;n--;)t[n]===e&&++r;return r}(b,x);if(i&&(b=Ti(b,i,o,m)),s&&(b=Mi(b,s,a,m)),v-=_,m&&v<h){var k=un(b,x);return Xi(t,e,Ni,u.placeholder,r,b,k,l,c,h-v)}var C=f?r:this,S=p?C[t]:t;return v=b.length,l?b=function(t,e){var r=t.length,i=bn(e.length,r),o=Ai(t);for(;i--;){var s=e[i];t[i]=bo(s,r)?o[s]:n}return t}(b,l):g&&v>1&&b.reverse(),d&&c<v&&(b.length=c),this&&this!==fe&&this instanceof u&&(S=y||Bi(S)),S.apply(C,b)}}function Hi(t,e){return function(n,r){return function(t,e,n,r){return wr(t,(function(t,i,o){e(r,n(t),i,o)})),r}(n,t,e(r),{})}}function qi(t,e){return function(r,i){var o;if(r===n&&i===n)return e;if(r!==n&&(o=r),i!==n){if(o===n)return i;"string"==typeof r||"string"==typeof i?(r=ui(r),i=ui(i)):(r=li(r),i=li(i)),o=t(r,i)}return o}}function Pi(t){return no((function(e){return e=Oe(e,Ze(lo())),Kr((function(n){var r=this;return t(e,(function(t){return Se(t,r,n)}))}))}))}function Wi(t,e){var r=(e=e===n?" ":ui(e)).length;if(r<2)return r?Gr(e,t):e;var i=Gr(e,me(t/hn(e)));return sn(e)?xi(dn(i),0,t).join(""):i.slice(0,t)}function Yi(t){return function(e,r,i){return i&&"number"!=typeof i&&wo(e,r,i)&&(r=i=n),e=fa(e),r===n?(r=e,e=0):r=fa(r),function(t,e,n,r){for(var i=-1,o=vn(me((e-t)/(n||1)),0),s=_t(o);o--;)s[r?o:++i]=t,t+=n;return s}(e,r,i=i===n?e<r?1:-1:fa(i),t)}}function Ui(t){return function(e,n){return"string"==typeof e&&"string"==typeof n||(e=ga(e),n=ga(n)),t(e,n)}}function Xi(t,e,r,i,o,s,u,c,h,d){var f=8&e;e|=f?a:l,4&(e&=~(f?l:a))||(e&=-4);var p=[t,e,o,f?s:n,f?u:n,f?n:s,f?n:u,c,h,d],m=r.apply(n,p);return _o(t)&&Do(m,p),m.placeholder=i,Oo(m,t,e)}function Vi(t){var e=Et[t];return function(t,n){if(t=ga(t),(n=null==n?0:bn(pa(n),292))&&Ue(t)){var r=(va(t)+"e").split("e");return+((r=(va(e(r[0]+"e"+(+r[1]+n)))+"e").split("e"))[0]+"e"+(+r[1]-n))}return e(t)}}var Gi=Tn&&1/cn(new Tn([,-0]))[1]==h?function(t){return new Tn(t)}:ll;function Ki(t){return function(e){var n=mo(e);return n==k?an(e):n==M?function(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=[t,t]})),n}(e):function(t,e){return Oe(e,(function(e){return[e,t[e]]}))}(e,t(e))}}function Zi(t,e,i,h,d,f,p,m){var g=2&e;if(!g&&"function"!=typeof t)throw new Dt(r);var y=h?h.length:0;if(y||(e&=-97,h=d=n),p=p===n?p:vn(pa(p),0),m=m===n?m:pa(m),y-=d?d.length:0,e&l){var v=h,b=d;h=d=n}var w=g?n:oo(t),x=[t,e,i,h,d,v,b,f,p,m];if(w&&function(t,e){var n=t[1],r=e[1],i=n|r,s=i<131,a=r==u&&8==n||r==u&&n==c&&t[7].length<=e[8]||384==r&&e[7].length<=e[8]&&8==n;if(!s&&!a)return t;1&r&&(t[2]=e[2],i|=1&n?0:4);var l=e[3];if(l){var h=t[3];t[3]=h?Ti(h,l,e[4]):l,t[4]=h?un(t[3],o):e[4]}(l=e[5])&&(h=t[5],t[5]=h?Mi(h,l,e[6]):l,t[6]=h?un(t[5],o):e[6]);(l=e[7])&&(t[7]=l);r&u&&(t[8]=null==t[8]?e[8]:bn(t[8],e[8]));null==t[9]&&(t[9]=e[9]);t[0]=e[0],t[1]=i}(x,w),t=x[0],e=x[1],i=x[2],h=x[3],d=x[4],!(m=x[9]=x[9]===n?g?0:t.length:vn(x[9]-y,0))&&24&e&&(e&=-25),e&&1!=e)_=8==e||e==s?function(t,e,r){var i=Bi(t);return function o(){for(var s=arguments.length,a=_t(s),l=s,u=ao(o);l--;)a[l]=arguments[l];var c=s<3&&a[0]!==u&&a[s-1]!==u?[]:un(a,u);return(s-=c.length)<r?Xi(t,e,Ni,o.placeholder,n,a,c,n,n,r-s):Se(this&&this!==fe&&this instanceof o?i:t,this,a)}}(t,e,m):e!=a&&33!=e||d.length?Ni.apply(n,x):function(t,e,n,r){var i=1&e,o=Bi(t);return function e(){for(var s=-1,a=arguments.length,l=-1,u=r.length,c=_t(u+a),h=this&&this!==fe&&this instanceof e?o:t;++l<u;)c[l]=r[l];for(;a--;)c[l++]=arguments[++s];return Se(h,i?n:this,c)}}(t,e,i,h);else var _=function(t,e,n){var r=1&e,i=Bi(t);return function e(){return(this&&this!==fe&&this instanceof e?i:t).apply(r?n:this,arguments)}}(t,e,i);return Oo((w?ti:Do)(_,x),t,e)}function Ji(t,e,r,i){return t===n||Ns(t,Ot[r])&&!Lt.call(i,r)?e:t}function Qi(t,e,r,i,o,s){return ta(t)&&ta(e)&&(s.set(e,t),qr(t,e,n,Qi,s),s.delete(e)),t}function to(t){return ia(t)?n:t}function eo(t,e,r,i,o,s){var a=1&r,l=t.length,u=e.length;if(l!=u&&!(a&&u>l))return!1;var c=s.get(t),h=s.get(e);if(c&&h)return c==e&&h==t;var d=-1,f=!0,p=2&r?new Vn:n;for(s.set(t,e),s.set(e,t);++d<l;){var m=t[d],g=e[d];if(i)var y=a?i(g,m,d,e,t,s):i(m,g,d,t,e,s);if(y!==n){if(y)continue;f=!1;break}if(p){if(!Be(e,(function(t,e){if(!Qe(p,e)&&(m===t||o(m,t,r,i,s)))return p.push(e)}))){f=!1;break}}else if(m!==g&&!o(m,g,r,i,s)){f=!1;break}}return s.delete(t),s.delete(e),f}function no(t){return zo(To(t,n,Yo),t+"")}function ro(t){return Cr(t,$a,fo)}function io(t){return Cr(t,za,po)}var oo=Dn?function(t){return Dn.get(t)}:ll;function so(t){for(var e=t.name+"",n=$n[e],r=Lt.call($n,e)?n.length:0;r--;){var i=n[r],o=i.func;if(null==o||o==t)return i.name}return e}function ao(t){return(Lt.call(Nn,"placeholder")?Nn:t).placeholder}function lo(){var t=Nn.iteratee||il;return t=t===il?Fr:t,arguments.length?t(arguments[0],arguments[1]):t}function uo(t,e){var n,r,i=t.__data__;return("string"==(r=typeof(n=e))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?i["string"==typeof e?"string":"hash"]:i.map}function co(t){for(var e=$a(t),n=e.length;n--;){var r=e[n],i=t[r];e[n]=[r,i,So(i)]}return e}function ho(t,e){var r=function(t,e){return null==t?n:t[e]}(t,e);return Ir(r)?r:n}var fo=ve?function(t){return null==t?[]:(t=Tt(t),De(ve(t),(function(e){return Gt.call(t,e)})))}:ml,po=ve?function(t){for(var e=[];t;)Ie(e,fo(t)),t=Xt(t);return e}:ml,mo=Sr;function go(t,e,n){for(var r=-1,i=(e=bi(e,t)).length,o=!1;++r<i;){var s=Bo(e[r]);if(!(o=null!=t&&n(t,s)))break;t=t[s]}return o||++r!=i?o:!!(i=null==t?0:t.length)&&Qs(i)&&bo(s,i)&&(Ws(t)||Ps(t))}function yo(t){return"function"!=typeof t.constructor||Co(t)?{}:Hn(Xt(t))}function vo(t){return Ws(t)||Ps(t)||!!(Zt&&t&&t[Zt])}function bo(t,e){var n=typeof t;return!!(e=null==e?d:e)&&("number"==n||"symbol"!=n&&vt.test(t))&&t>-1&&t%1==0&&t<e}function wo(t,e,n){if(!ta(n))return!1;var r=typeof e;return!!("number"==r?Us(n)&&bo(e,n.length):"string"==r&&e in n)&&Ns(n[e],t)}function xo(t,e){if(Ws(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!la(t))||(tt.test(t)||!Q.test(t)||null!=e&&t in Tt(e))}function _o(t){var e=so(t),n=Nn[e];if("function"!=typeof n||!(e in Wn.prototype))return!1;if(t===n)return!0;var r=oo(n);return!!r&&t===r[0]}(Cn&&mo(new Cn(new ArrayBuffer(1)))!=O||Sn&&mo(new Sn)!=k||En&&mo(En.resolve())!=E||Tn&&mo(new Tn)!=M||Mn&&mo(new Mn)!=$)&&(mo=function(t){var e=Sr(t),r=e==S?t.constructor:n,i=r?jo(r):"";if(i)switch(i){case zn:return O;case On:return k;case In:return E;case Fn:return M;case Ln:return $}return e});var ko=It?Zs:gl;function Co(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||Ot)}function So(t){return t==t&&!ta(t)}function Eo(t,e){return function(r){return null!=r&&(r[t]===e&&(e!==n||t in Tt(r)))}}function To(t,e,r){return e=vn(e===n?t.length-1:e,0),function(){for(var n=arguments,i=-1,o=vn(n.length-e,0),s=_t(o);++i<o;)s[i]=n[e+i];i=-1;for(var a=_t(e+1);++i<e;)a[i]=n[i];return a[e]=r(s),Se(t,this,a)}}function Mo(t,e){return e.length<2?t:kr(t,ri(e,0,-1))}function Ao(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}var Do=Io(ti),$o=pe||function(t,e){return fe.setTimeout(t,e)},zo=Io(ei);function Oo(t,e,n){var r=e+"";return zo(t,function(t,e){var n=e.length;if(!n)return t;var r=n-1;return e[r]=(n>1?"& ":"")+e[r],e=e.join(n>2?", ":" "),t.replace(st,"{\n/* [wrapped with "+e+"] */\n")}(r,function(t,e){return Te(m,(function(n){var r="_."+n[0];e&n[1]&&!$e(t,r)&&t.push(r)})),t.sort()}(function(t){var e=t.match(at);return e?e[1].split(lt):[]}(r),n)))}function Io(t){var e=0,r=0;return function(){var i=wn(),o=16-(i-r);if(r=i,o>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(n,arguments)}}function Fo(t,e){var r=-1,i=t.length,o=i-1;for(e=e===n?i:e;++r<e;){var s=Vr(r,o),a=t[s];t[s]=t[r],t[r]=a}return t.length=e,t}var Lo=function(t){var e=Is(t,(function(t){return 500===n.size&&n.clear(),t})),n=e.cache;return e}((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(et,(function(t,n,r,i){e.push(r?i.replace(ht,"$1"):n||t)})),e}));function Bo(t){if("string"==typeof t||la(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function jo(t){if(null!=t){try{return Ft.call(t)}catch(e){}try{return t+""}catch(e){}}return""}function Ro(t){if(t instanceof Wn)return t.clone();var e=new Pn(t.__wrapped__,t.__chain__);return e.__actions__=Ai(t.__actions__),e.__index__=t.__index__,e.__values__=t.__values__,e}var No=Kr((function(t,e){return Xs(t)?hr(t,yr(e,1,Xs,!0)):[]})),Ho=Kr((function(t,e){var r=Ko(e);return Xs(r)&&(r=n),Xs(t)?hr(t,yr(e,1,Xs,!0),lo(r,2)):[]})),qo=Kr((function(t,e){var r=Ko(e);return Xs(r)&&(r=n),Xs(t)?hr(t,yr(e,1,Xs,!0),n,r):[]}));function Po(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:pa(n);return i<0&&(i=vn(r+i,0)),Ne(t,lo(e,3),i)}function Wo(t,e,r){var i=null==t?0:t.length;if(!i)return-1;var o=i-1;return r!==n&&(o=pa(r),o=r<0?vn(i+o,0):bn(o,i-1)),Ne(t,lo(e,3),o,!0)}function Yo(t){return(null==t?0:t.length)?yr(t,1):[]}function Uo(t){return t&&t.length?t[0]:n}var Xo=Kr((function(t){var e=Oe(t,yi);return e.length&&e[0]===t[0]?Ar(e):[]})),Vo=Kr((function(t){var e=Ko(t),r=Oe(t,yi);return e===Ko(r)?e=n:r.pop(),r.length&&r[0]===t[0]?Ar(r,lo(e,2)):[]})),Go=Kr((function(t){var e=Ko(t),r=Oe(t,yi);return(e="function"==typeof e?e:n)&&r.pop(),r.length&&r[0]===t[0]?Ar(r,n,e):[]}));function Ko(t){var e=null==t?0:t.length;return e?t[e-1]:n}var Zo=Kr(Jo);function Jo(t,e){return t&&t.length&&e&&e.length?Ur(t,e):t}var Qo=no((function(t,e){var n=null==t?0:t.length,r=sr(t,e);return Xr(t,Oe(e,(function(t){return bo(t,n)?+t:t})).sort(Ei)),r}));function ts(t){return null==t?t:kn.call(t)}var es=Kr((function(t){return ci(yr(t,1,Xs,!0))})),ns=Kr((function(t){var e=Ko(t);return Xs(e)&&(e=n),ci(yr(t,1,Xs,!0),lo(e,2))})),rs=Kr((function(t){var e=Ko(t);return e="function"==typeof e?e:n,ci(yr(t,1,Xs,!0),n,e)}));function is(t){if(!t||!t.length)return[];var e=0;return t=De(t,(function(t){if(Xs(t))return e=vn(t.length,e),!0})),Ge(e,(function(e){return Oe(t,Ye(e))}))}function os(t,e){if(!t||!t.length)return[];var r=is(t);return null==e?r:Oe(r,(function(t){return Se(e,n,t)}))}var ss=Kr((function(t,e){return Xs(t)?hr(t,e):[]})),as=Kr((function(t){return mi(De(t,Xs))})),ls=Kr((function(t){var e=Ko(t);return Xs(e)&&(e=n),mi(De(t,Xs),lo(e,2))})),us=Kr((function(t){var e=Ko(t);return e="function"==typeof e?e:n,mi(De(t,Xs),n,e)})),cs=Kr(is);var hs=Kr((function(t){var e=t.length,r=e>1?t[e-1]:n;return r="function"==typeof r?(t.pop(),r):n,os(t,r)}));function ds(t){var e=Nn(t);return e.__chain__=!0,e}function fs(t,e){return e(t)}var ps=no((function(t){var e=t.length,r=e?t[0]:0,i=this.__wrapped__,o=function(e){return sr(e,t)};return!(e>1||this.__actions__.length)&&i instanceof Wn&&bo(r)?((i=i.slice(r,+r+(e?1:0))).__actions__.push({func:fs,args:[o],thisArg:n}),new Pn(i,this.__chain__).thru((function(t){return e&&!t.length&&t.push(n),t}))):this.thru(o)}));var ms=$i((function(t,e,n){Lt.call(t,n)?++t[n]:or(t,n,1)}));var gs=ji(Po),ys=ji(Wo);function vs(t,e){return(Ws(t)?Te:dr)(t,lo(e,3))}function bs(t,e){return(Ws(t)?Me:fr)(t,lo(e,3))}var ws=$i((function(t,e,n){Lt.call(t,n)?t[n].push(e):or(t,n,[e])}));var xs=Kr((function(t,e,n){var r=-1,i="function"==typeof e,o=Us(t)?_t(t.length):[];return dr(t,(function(t){o[++r]=i?Se(e,t,n):Dr(t,e,n)})),o})),_s=$i((function(t,e,n){or(t,n,e)}));function ks(t,e){return(Ws(t)?Oe:Rr)(t,lo(e,3))}var Cs=$i((function(t,e,n){t[n?0:1].push(e)}),(function(){return[[],[]]}));var Ss=Kr((function(t,e){if(null==t)return[];var n=e.length;return n>1&&wo(t,e[0],e[1])?e=[]:n>2&&wo(e[0],e[1],e[2])&&(e=[e[0]]),Wr(t,yr(e,1),[])})),Es=de||function(){return fe.Date.now()};function Ts(t,e,r){return e=r?n:e,e=t&&null==e?t.length:e,Zi(t,u,n,n,n,n,e)}function Ms(t,e){var i;if("function"!=typeof e)throw new Dt(r);return t=pa(t),function(){return--t>0&&(i=e.apply(this,arguments)),t<=1&&(e=n),i}}var As=Kr((function(t,e,n){var r=1;if(n.length){var i=un(n,ao(As));r|=a}return Zi(t,r,e,n,i)})),Ds=Kr((function(t,e,n){var r=3;if(n.length){var i=un(n,ao(Ds));r|=a}return Zi(e,r,t,n,i)}));function $s(t,e,i){var o,s,a,l,u,c,h=0,d=!1,f=!1,p=!0;if("function"!=typeof t)throw new Dt(r);function m(e){var r=o,i=s;return o=s=n,h=e,l=t.apply(i,r)}function g(t){var r=t-c;return c===n||r>=e||r<0||f&&t-h>=a}function y(){var t=Es();if(g(t))return v(t);u=$o(y,function(t){var n=e-(t-c);return f?bn(n,a-(t-h)):n}(t))}function v(t){return u=n,p&&o?m(t):(o=s=n,l)}function b(){var t=Es(),r=g(t);if(o=arguments,s=this,c=t,r){if(u===n)return function(t){return h=t,u=$o(y,e),d?m(t):l}(c);if(f)return _i(u),u=$o(y,e),m(c)}return u===n&&(u=$o(y,e)),l}return e=ga(e)||0,ta(i)&&(d=!!i.leading,a=(f="maxWait"in i)?vn(ga(i.maxWait)||0,e):a,p="trailing"in i?!!i.trailing:p),b.cancel=function(){u!==n&&_i(u),h=0,o=c=s=u=n},b.flush=function(){return u===n?l:v(Es())},b}var zs=Kr((function(t,e){return cr(t,1,e)})),Os=Kr((function(t,e,n){return cr(t,ga(e)||0,n)}));function Is(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new Dt(r);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var s=t.apply(this,r);return n.cache=o.set(i,s)||o,s};return n.cache=new(Is.Cache||Xn),n}function Fs(t){if("function"!=typeof t)throw new Dt(r);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}Is.Cache=Xn;var Ls=wi((function(t,e){var n=(e=1==e.length&&Ws(e[0])?Oe(e[0],Ze(lo())):Oe(yr(e,1),Ze(lo()))).length;return Kr((function(r){for(var i=-1,o=bn(r.length,n);++i<o;)r[i]=e[i].call(this,r[i]);return Se(t,this,r)}))})),Bs=Kr((function(t,e){var r=un(e,ao(Bs));return Zi(t,a,n,e,r)})),js=Kr((function(t,e){var r=un(e,ao(js));return Zi(t,l,n,e,r)})),Rs=no((function(t,e){return Zi(t,c,n,n,n,e)}));function Ns(t,e){return t===e||t!=t&&e!=e}var Hs=Ui(Er),qs=Ui((function(t,e){return t>=e})),Ps=$r(function(){return arguments}())?$r:function(t){return ea(t)&&Lt.call(t,"callee")&&!Gt.call(t,"callee")},Ws=_t.isArray,Ys=be?Ze(be):function(t){return ea(t)&&Sr(t)==z};function Us(t){return null!=t&&Qs(t.length)&&!Zs(t)}function Xs(t){return ea(t)&&Us(t)}var Vs=je||gl,Gs=we?Ze(we):function(t){return ea(t)&&Sr(t)==b};function Ks(t){if(!ea(t))return!1;var e=Sr(t);return e==w||"[object DOMException]"==e||"string"==typeof t.message&&"string"==typeof t.name&&!ia(t)}function Zs(t){if(!ta(t))return!1;var e=Sr(t);return e==x||e==_||"[object AsyncFunction]"==e||"[object Proxy]"==e}function Js(t){return"number"==typeof t&&t==pa(t)}function Qs(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=d}function ta(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function ea(t){return null!=t&&"object"==typeof t}var na=xe?Ze(xe):function(t){return ea(t)&&mo(t)==k};function ra(t){return"number"==typeof t||ea(t)&&Sr(t)==C}function ia(t){if(!ea(t)||Sr(t)!=S)return!1;var e=Xt(t);if(null===e)return!0;var n=Lt.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&Ft.call(n)==Nt}var oa=_e?Ze(_e):function(t){return ea(t)&&Sr(t)==T};var sa=ke?Ze(ke):function(t){return ea(t)&&mo(t)==M};function aa(t){return"string"==typeof t||!Ws(t)&&ea(t)&&Sr(t)==A}function la(t){return"symbol"==typeof t||ea(t)&&Sr(t)==D}var ua=Ce?Ze(Ce):function(t){return ea(t)&&Qs(t.length)&&!!se[Sr(t)]};var ca=Ui(jr),ha=Ui((function(t,e){return t<=e}));function da(t){if(!t)return[];if(Us(t))return aa(t)?dn(t):Ai(t);if(te&&t[te])return function(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}(t[te]());var e=mo(t);return(e==k?an:e==M?cn:Na)(t)}function fa(t){return t?(t=ga(t))===h||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}function pa(t){var e=fa(t),n=e%1;return e==e?n?e-n:e:0}function ma(t){return t?ar(pa(t),0,p):0}function ga(t){if("number"==typeof t)return t;if(la(t))return f;if(ta(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=ta(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=Ke(t);var n=mt.test(t);return n||yt.test(t)?ce(t.slice(2),n?2:8):pt.test(t)?f:+t}function ya(t){return Di(t,za(t))}function va(t){return null==t?"":ui(t)}var ba=zi((function(t,e){if(Co(e)||Us(e))Di(e,$a(e),t);else for(var n in e)Lt.call(e,n)&&er(t,n,e[n])})),wa=zi((function(t,e){Di(e,za(e),t)})),xa=zi((function(t,e,n,r){Di(e,za(e),t,r)})),_a=zi((function(t,e,n,r){Di(e,$a(e),t,r)})),ka=no(sr);var Ca=Kr((function(t,e){t=Tt(t);var r=-1,i=e.length,o=i>2?e[2]:n;for(o&&wo(e[0],e[1],o)&&(i=1);++r<i;)for(var s=e[r],a=za(s),l=-1,u=a.length;++l<u;){var c=a[l],h=t[c];(h===n||Ns(h,Ot[c])&&!Lt.call(t,c))&&(t[c]=s[c])}return t})),Sa=Kr((function(t){return t.push(n,Qi),Se(Ia,n,t)}));function Ea(t,e,r){var i=null==t?n:kr(t,e);return i===n?r:i}function Ta(t,e){return null!=t&&go(t,e,Mr)}var Ma=Hi((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=Rt.call(e)),t[e]=n}),tl(rl)),Aa=Hi((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=Rt.call(e)),Lt.call(t,e)?t[e].push(n):t[e]=[n]}),lo),Da=Kr(Dr);function $a(t){return Us(t)?Kn(t):Lr(t)}function za(t){return Us(t)?Kn(t,!0):Br(t)}var Oa=zi((function(t,e,n){qr(t,e,n)})),Ia=zi((function(t,e,n,r){qr(t,e,n,r)})),Fa=no((function(t,e){var n={};if(null==t)return n;var r=!1;e=Oe(e,(function(e){return e=bi(e,t),r||(r=e.length>1),e})),Di(t,io(t),n),r&&(n=lr(n,7,to));for(var i=e.length;i--;)hi(n,e[i]);return n}));var La=no((function(t,e){return null==t?{}:function(t,e){return Yr(t,e,(function(e,n){return Ta(t,n)}))}(t,e)}));function Ba(t,e){if(null==t)return{};var n=Oe(io(t),(function(t){return[t]}));return e=lo(e),Yr(t,n,(function(t,n){return e(t,n[0])}))}var ja=Ki($a),Ra=Ki(za);function Na(t){return null==t?[]:Je(t,$a(t))}var Ha=Li((function(t,e,n){return e=e.toLowerCase(),t+(n?qa(e):e)}));function qa(t){return Ka(va(t).toLowerCase())}function Pa(t){return(t=va(t))&&t.replace(bt,nn).replace(Qt,"")}var Wa=Li((function(t,e,n){return t+(n?"-":"")+e.toLowerCase()})),Ya=Li((function(t,e,n){return t+(n?" ":"")+e.toLowerCase()})),Ua=Fi("toLowerCase");var Xa=Li((function(t,e,n){return t+(n?"_":"")+e.toLowerCase()}));var Va=Li((function(t,e,n){return t+(n?" ":"")+Ka(e)}));var Ga=Li((function(t,e,n){return t+(n?" ":"")+e.toUpperCase()})),Ka=Fi("toUpperCase");function Za(t,e,r){return t=va(t),(e=r?n:e)===n?function(t){return re.test(t)}(t)?function(t){return t.match(ee)||[]}(t):function(t){return t.match(ut)||[]}(t):t.match(e)||[]}var Ja=Kr((function(t,e){try{return Se(t,n,e)}catch(r){return Ks(r)?r:new Ct(r)}})),Qa=no((function(t,e){return Te(e,(function(e){e=Bo(e),or(t,e,As(t[e],t))})),t}));function tl(t){return function(){return t}}var el=Ri(),nl=Ri(!0);function rl(t){return t}function il(t){return Fr("function"==typeof t?t:lr(t,1))}var ol=Kr((function(t,e){return function(n){return Dr(n,t,e)}})),sl=Kr((function(t,e){return function(n){return Dr(t,n,e)}}));function al(t,e,n){var r=$a(e),i=_r(e,r);null!=n||ta(e)&&(i.length||!r.length)||(n=e,e=t,t=this,i=_r(e,$a(e)));var o=!(ta(n)&&"chain"in n&&!n.chain),s=Zs(t);return Te(i,(function(n){var r=e[n];t[n]=r,s&&(t.prototype[n]=function(){var e=this.__chain__;if(o||e){var n=t(this.__wrapped__);return(n.__actions__=Ai(this.__actions__)).push({func:r,args:arguments,thisArg:t}),n.__chain__=e,n}return r.apply(t,Ie([this.value()],arguments))})})),t}function ll(){}var ul=Pi(Oe),cl=Pi(Ae),hl=Pi(Be);function dl(t){return xo(t)?Ye(Bo(t)):function(t){return function(e){return kr(e,t)}}(t)}var fl=Yi(),pl=Yi(!0);function ml(){return[]}function gl(){return!1}var yl=qi((function(t,e){return t+e}),0),vl=Vi("ceil"),bl=qi((function(t,e){return t/e}),1),wl=Vi("floor");var xl,_l=qi((function(t,e){return t*e}),1),kl=Vi("round"),Cl=qi((function(t,e){return t-e}),0);return Nn.after=function(t,e){if("function"!=typeof e)throw new Dt(r);return t=pa(t),function(){if(--t<1)return e.apply(this,arguments)}},Nn.ary=Ts,Nn.assign=ba,Nn.assignIn=wa,Nn.assignInWith=xa,Nn.assignWith=_a,Nn.at=ka,Nn.before=Ms,Nn.bind=As,Nn.bindAll=Qa,Nn.bindKey=Ds,Nn.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return Ws(t)?t:[t]},Nn.chain=ds,Nn.chunk=function(t,e,r){e=(r?wo(t,e,r):e===n)?1:vn(pa(e),0);var i=null==t?0:t.length;if(!i||e<1)return[];for(var o=0,s=0,a=_t(me(i/e));o<i;)a[s++]=ri(t,o,o+=e);return a},Nn.compact=function(t){for(var e=-1,n=null==t?0:t.length,r=0,i=[];++e<n;){var o=t[e];o&&(i[r++]=o)}return i},Nn.concat=function(){var t=arguments.length;if(!t)return[];for(var e=_t(t-1),n=arguments[0],r=t;r--;)e[r-1]=arguments[r];return Ie(Ws(n)?Ai(n):[n],yr(e,1))},Nn.cond=function(t){var e=null==t?0:t.length,n=lo();return t=e?Oe(t,(function(t){if("function"!=typeof t[1])throw new Dt(r);return[n(t[0]),t[1]]})):[],Kr((function(n){for(var r=-1;++r<e;){var i=t[r];if(Se(i[0],this,n))return Se(i[1],this,n)}}))},Nn.conforms=function(t){return function(t){var e=$a(t);return function(n){return ur(n,t,e)}}(lr(t,1))},Nn.constant=tl,Nn.countBy=ms,Nn.create=function(t,e){var n=Hn(t);return null==e?n:ir(n,e)},Nn.curry=function t(e,r,i){var o=Zi(e,8,n,n,n,n,n,r=i?n:r);return o.placeholder=t.placeholder,o},Nn.curryRight=function t(e,r,i){var o=Zi(e,s,n,n,n,n,n,r=i?n:r);return o.placeholder=t.placeholder,o},Nn.debounce=$s,Nn.defaults=Ca,Nn.defaultsDeep=Sa,Nn.defer=zs,Nn.delay=Os,Nn.difference=No,Nn.differenceBy=Ho,Nn.differenceWith=qo,Nn.drop=function(t,e,r){var i=null==t?0:t.length;return i?ri(t,(e=r||e===n?1:pa(e))<0?0:e,i):[]},Nn.dropRight=function(t,e,r){var i=null==t?0:t.length;return i?ri(t,0,(e=i-(e=r||e===n?1:pa(e)))<0?0:e):[]},Nn.dropRightWhile=function(t,e){return t&&t.length?fi(t,lo(e,3),!0,!0):[]},Nn.dropWhile=function(t,e){return t&&t.length?fi(t,lo(e,3),!0):[]},Nn.fill=function(t,e,r,i){var o=null==t?0:t.length;return o?(r&&"number"!=typeof r&&wo(t,e,r)&&(r=0,i=o),function(t,e,r,i){var o=t.length;for((r=pa(r))<0&&(r=-r>o?0:o+r),(i=i===n||i>o?o:pa(i))<0&&(i+=o),i=r>i?0:ma(i);r<i;)t[r++]=e;return t}(t,e,r,i)):[]},Nn.filter=function(t,e){return(Ws(t)?De:gr)(t,lo(e,3))},Nn.flatMap=function(t,e){return yr(ks(t,e),1)},Nn.flatMapDeep=function(t,e){return yr(ks(t,e),h)},Nn.flatMapDepth=function(t,e,r){return r=r===n?1:pa(r),yr(ks(t,e),r)},Nn.flatten=Yo,Nn.flattenDeep=function(t){return(null==t?0:t.length)?yr(t,h):[]},Nn.flattenDepth=function(t,e){return(null==t?0:t.length)?yr(t,e=e===n?1:pa(e)):[]},Nn.flip=function(t){return Zi(t,512)},Nn.flow=el,Nn.flowRight=nl,Nn.fromPairs=function(t){for(var e=-1,n=null==t?0:t.length,r={};++e<n;){var i=t[e];r[i[0]]=i[1]}return r},Nn.functions=function(t){return null==t?[]:_r(t,$a(t))},Nn.functionsIn=function(t){return null==t?[]:_r(t,za(t))},Nn.groupBy=ws,Nn.initial=function(t){return(null==t?0:t.length)?ri(t,0,-1):[]},Nn.intersection=Xo,Nn.intersectionBy=Vo,Nn.intersectionWith=Go,Nn.invert=Ma,Nn.invertBy=Aa,Nn.invokeMap=xs,Nn.iteratee=il,Nn.keyBy=_s,Nn.keys=$a,Nn.keysIn=za,Nn.map=ks,Nn.mapKeys=function(t,e){var n={};return e=lo(e,3),wr(t,(function(t,r,i){or(n,e(t,r,i),t)})),n},Nn.mapValues=function(t,e){var n={};return e=lo(e,3),wr(t,(function(t,r,i){or(n,r,e(t,r,i))})),n},Nn.matches=function(t){return Nr(lr(t,1))},Nn.matchesProperty=function(t,e){return Hr(t,lr(e,1))},Nn.memoize=Is,Nn.merge=Oa,Nn.mergeWith=Ia,Nn.method=ol,Nn.methodOf=sl,Nn.mixin=al,Nn.negate=Fs,Nn.nthArg=function(t){return t=pa(t),Kr((function(e){return Pr(e,t)}))},Nn.omit=Fa,Nn.omitBy=function(t,e){return Ba(t,Fs(lo(e)))},Nn.once=function(t){return Ms(2,t)},Nn.orderBy=function(t,e,r,i){return null==t?[]:(Ws(e)||(e=null==e?[]:[e]),Ws(r=i?n:r)||(r=null==r?[]:[r]),Wr(t,e,r))},Nn.over=ul,Nn.overArgs=Ls,Nn.overEvery=cl,Nn.overSome=hl,Nn.partial=Bs,Nn.partialRight=js,Nn.partition=Cs,Nn.pick=La,Nn.pickBy=Ba,Nn.property=dl,Nn.propertyOf=function(t){return function(e){return null==t?n:kr(t,e)}},Nn.pull=Zo,Nn.pullAll=Jo,Nn.pullAllBy=function(t,e,n){return t&&t.length&&e&&e.length?Ur(t,e,lo(n,2)):t},Nn.pullAllWith=function(t,e,r){return t&&t.length&&e&&e.length?Ur(t,e,n,r):t},Nn.pullAt=Qo,Nn.range=fl,Nn.rangeRight=pl,Nn.rearg=Rs,Nn.reject=function(t,e){return(Ws(t)?De:gr)(t,Fs(lo(e,3)))},Nn.remove=function(t,e){var n=[];if(!t||!t.length)return n;var r=-1,i=[],o=t.length;for(e=lo(e,3);++r<o;){var s=t[r];e(s,r,t)&&(n.push(s),i.push(r))}return Xr(t,i),n},Nn.rest=function(t,e){if("function"!=typeof t)throw new Dt(r);return Kr(t,e=e===n?e:pa(e))},Nn.reverse=ts,Nn.sampleSize=function(t,e,r){return e=(r?wo(t,e,r):e===n)?1:pa(e),(Ws(t)?Jn:Jr)(t,e)},Nn.set=function(t,e,n){return null==t?t:Qr(t,e,n)},Nn.setWith=function(t,e,r,i){return i="function"==typeof i?i:n,null==t?t:Qr(t,e,r,i)},Nn.shuffle=function(t){return(Ws(t)?Qn:ni)(t)},Nn.slice=function(t,e,r){var i=null==t?0:t.length;return i?(r&&"number"!=typeof r&&wo(t,e,r)?(e=0,r=i):(e=null==e?0:pa(e),r=r===n?i:pa(r)),ri(t,e,r)):[]},Nn.sortBy=Ss,Nn.sortedUniq=function(t){return t&&t.length?ai(t):[]},Nn.sortedUniqBy=function(t,e){return t&&t.length?ai(t,lo(e,2)):[]},Nn.split=function(t,e,r){return r&&"number"!=typeof r&&wo(t,e,r)&&(e=r=n),(r=r===n?p:r>>>0)?(t=va(t))&&("string"==typeof e||null!=e&&!oa(e))&&!(e=ui(e))&&sn(t)?xi(dn(t),0,r):t.split(e,r):[]},Nn.spread=function(t,e){if("function"!=typeof t)throw new Dt(r);return e=null==e?0:vn(pa(e),0),Kr((function(n){var r=n[e],i=xi(n,0,e);return r&&Ie(i,r),Se(t,this,i)}))},Nn.tail=function(t){var e=null==t?0:t.length;return e?ri(t,1,e):[]},Nn.take=function(t,e,r){return t&&t.length?ri(t,0,(e=r||e===n?1:pa(e))<0?0:e):[]},Nn.takeRight=function(t,e,r){var i=null==t?0:t.length;return i?ri(t,(e=i-(e=r||e===n?1:pa(e)))<0?0:e,i):[]},Nn.takeRightWhile=function(t,e){return t&&t.length?fi(t,lo(e,3),!1,!0):[]},Nn.takeWhile=function(t,e){return t&&t.length?fi(t,lo(e,3)):[]},Nn.tap=function(t,e){return e(t),t},Nn.throttle=function(t,e,n){var i=!0,o=!0;if("function"!=typeof t)throw new Dt(r);return ta(n)&&(i="leading"in n?!!n.leading:i,o="trailing"in n?!!n.trailing:o),$s(t,e,{leading:i,maxWait:e,trailing:o})},Nn.thru=fs,Nn.toArray=da,Nn.toPairs=ja,Nn.toPairsIn=Ra,Nn.toPath=function(t){return Ws(t)?Oe(t,Bo):la(t)?[t]:Ai(Lo(va(t)))},Nn.toPlainObject=ya,Nn.transform=function(t,e,n){var r=Ws(t),i=r||Vs(t)||ua(t);if(e=lo(e,4),null==n){var o=t&&t.constructor;n=i?r?new o:[]:ta(t)&&Zs(o)?Hn(Xt(t)):{}}return(i?Te:wr)(t,(function(t,r,i){return e(n,t,r,i)})),n},Nn.unary=function(t){return Ts(t,1)},Nn.union=es,Nn.unionBy=ns,Nn.unionWith=rs,Nn.uniq=function(t){return t&&t.length?ci(t):[]},Nn.uniqBy=function(t,e){return t&&t.length?ci(t,lo(e,2)):[]},Nn.uniqWith=function(t,e){return e="function"==typeof e?e:n,t&&t.length?ci(t,n,e):[]},Nn.unset=function(t,e){return null==t||hi(t,e)},Nn.unzip=is,Nn.unzipWith=os,Nn.update=function(t,e,n){return null==t?t:di(t,e,vi(n))},Nn.updateWith=function(t,e,r,i){return i="function"==typeof i?i:n,null==t?t:di(t,e,vi(r),i)},Nn.values=Na,Nn.valuesIn=function(t){return null==t?[]:Je(t,za(t))},Nn.without=ss,Nn.words=Za,Nn.wrap=function(t,e){return Bs(vi(e),t)},Nn.xor=as,Nn.xorBy=ls,Nn.xorWith=us,Nn.zip=cs,Nn.zipObject=function(t,e){return gi(t||[],e||[],er)},Nn.zipObjectDeep=function(t,e){return gi(t||[],e||[],Qr)},Nn.zipWith=hs,Nn.entries=ja,Nn.entriesIn=Ra,Nn.extend=wa,Nn.extendWith=xa,al(Nn,Nn),Nn.add=yl,Nn.attempt=Ja,Nn.camelCase=Ha,Nn.capitalize=qa,Nn.ceil=vl,Nn.clamp=function(t,e,r){return r===n&&(r=e,e=n),r!==n&&(r=(r=ga(r))==r?r:0),e!==n&&(e=(e=ga(e))==e?e:0),ar(ga(t),e,r)},Nn.clone=function(t){return lr(t,4)},Nn.cloneDeep=function(t){return lr(t,5)},Nn.cloneDeepWith=function(t,e){return lr(t,5,e="function"==typeof e?e:n)},Nn.cloneWith=function(t,e){return lr(t,4,e="function"==typeof e?e:n)},Nn.conformsTo=function(t,e){return null==e||ur(t,e,$a(e))},Nn.deburr=Pa,Nn.defaultTo=function(t,e){return null==t||t!=t?e:t},Nn.divide=bl,Nn.endsWith=function(t,e,r){t=va(t),e=ui(e);var i=t.length,o=r=r===n?i:ar(pa(r),0,i);return(r-=e.length)>=0&&t.slice(r,o)==e},Nn.eq=Ns,Nn.escape=function(t){return(t=va(t))&&G.test(t)?t.replace(X,rn):t},Nn.escapeRegExp=function(t){return(t=va(t))&&rt.test(t)?t.replace(nt,"\\$&"):t},Nn.every=function(t,e,r){var i=Ws(t)?Ae:pr;return r&&wo(t,e,r)&&(e=n),i(t,lo(e,3))},Nn.find=gs,Nn.findIndex=Po,Nn.findKey=function(t,e){return Re(t,lo(e,3),wr)},Nn.findLast=ys,Nn.findLastIndex=Wo,Nn.findLastKey=function(t,e){return Re(t,lo(e,3),xr)},Nn.floor=wl,Nn.forEach=vs,Nn.forEachRight=bs,Nn.forIn=function(t,e){return null==t?t:vr(t,lo(e,3),za)},Nn.forInRight=function(t,e){return null==t?t:br(t,lo(e,3),za)},Nn.forOwn=function(t,e){return t&&wr(t,lo(e,3))},Nn.forOwnRight=function(t,e){return t&&xr(t,lo(e,3))},Nn.get=Ea,Nn.gt=Hs,Nn.gte=qs,Nn.has=function(t,e){return null!=t&&go(t,e,Tr)},Nn.hasIn=Ta,Nn.head=Uo,Nn.identity=rl,Nn.includes=function(t,e,n,r){t=Us(t)?t:Na(t),n=n&&!r?pa(n):0;var i=t.length;return n<0&&(n=vn(i+n,0)),aa(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&He(t,e,n)>-1},Nn.indexOf=function(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:pa(n);return i<0&&(i=vn(r+i,0)),He(t,e,i)},Nn.inRange=function(t,e,r){return e=fa(e),r===n?(r=e,e=0):r=fa(r),function(t,e,n){return t>=bn(e,n)&&t<vn(e,n)}(t=ga(t),e,r)},Nn.invoke=Da,Nn.isArguments=Ps,Nn.isArray=Ws,Nn.isArrayBuffer=Ys,Nn.isArrayLike=Us,Nn.isArrayLikeObject=Xs,Nn.isBoolean=function(t){return!0===t||!1===t||ea(t)&&Sr(t)==v},Nn.isBuffer=Vs,Nn.isDate=Gs,Nn.isElement=function(t){return ea(t)&&1===t.nodeType&&!ia(t)},Nn.isEmpty=function(t){if(null==t)return!0;if(Us(t)&&(Ws(t)||"string"==typeof t||"function"==typeof t.splice||Vs(t)||ua(t)||Ps(t)))return!t.length;var e=mo(t);if(e==k||e==M)return!t.size;if(Co(t))return!Lr(t).length;for(var n in t)if(Lt.call(t,n))return!1;return!0},Nn.isEqual=function(t,e){return zr(t,e)},Nn.isEqualWith=function(t,e,r){var i=(r="function"==typeof r?r:n)?r(t,e):n;return i===n?zr(t,e,n,r):!!i},Nn.isError=Ks,Nn.isFinite=function(t){return"number"==typeof t&&Ue(t)},Nn.isFunction=Zs,Nn.isInteger=Js,Nn.isLength=Qs,Nn.isMap=na,Nn.isMatch=function(t,e){return t===e||Or(t,e,co(e))},Nn.isMatchWith=function(t,e,r){return r="function"==typeof r?r:n,Or(t,e,co(e),r)},Nn.isNaN=function(t){return ra(t)&&t!=+t},Nn.isNative=function(t){if(ko(t))throw new Ct("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return Ir(t)},Nn.isNil=function(t){return null==t},Nn.isNull=function(t){return null===t},Nn.isNumber=ra,Nn.isObject=ta,Nn.isObjectLike=ea,Nn.isPlainObject=ia,Nn.isRegExp=oa,Nn.isSafeInteger=function(t){return Js(t)&&t>=-9007199254740991&&t<=d},Nn.isSet=sa,Nn.isString=aa,Nn.isSymbol=la,Nn.isTypedArray=ua,Nn.isUndefined=function(t){return t===n},Nn.isWeakMap=function(t){return ea(t)&&mo(t)==$},Nn.isWeakSet=function(t){return ea(t)&&"[object WeakSet]"==Sr(t)},Nn.join=function(t,e){return null==t?"":gn.call(t,e)},Nn.kebabCase=Wa,Nn.last=Ko,Nn.lastIndexOf=function(t,e,r){var i=null==t?0:t.length;if(!i)return-1;var o=i;return r!==n&&(o=(o=pa(r))<0?vn(i+o,0):bn(o,i-1)),e==e?function(t,e,n){for(var r=n+1;r--;)if(t[r]===e)return r;return r}(t,e,o):Ne(t,Pe,o,!0)},Nn.lowerCase=Ya,Nn.lowerFirst=Ua,Nn.lt=ca,Nn.lte=ha,Nn.max=function(t){return t&&t.length?mr(t,rl,Er):n},Nn.maxBy=function(t,e){return t&&t.length?mr(t,lo(e,2),Er):n},Nn.mean=function(t){return We(t,rl)},Nn.meanBy=function(t,e){return We(t,lo(e,2))},Nn.min=function(t){return t&&t.length?mr(t,rl,jr):n},Nn.minBy=function(t,e){return t&&t.length?mr(t,lo(e,2),jr):n},Nn.stubArray=ml,Nn.stubFalse=gl,Nn.stubObject=function(){return{}},Nn.stubString=function(){return""},Nn.stubTrue=function(){return!0},Nn.multiply=_l,Nn.nth=function(t,e){return t&&t.length?Pr(t,pa(e)):n},Nn.noConflict=function(){return fe._===this&&(fe._=Ht),this},Nn.noop=ll,Nn.now=Es,Nn.pad=function(t,e,n){t=va(t);var r=(e=pa(e))?hn(t):0;if(!e||r>=e)return t;var i=(e-r)/2;return Wi(ye(i),n)+t+Wi(me(i),n)},Nn.padEnd=function(t,e,n){t=va(t);var r=(e=pa(e))?hn(t):0;return e&&r<e?t+Wi(e-r,n):t},Nn.padStart=function(t,e,n){t=va(t);var r=(e=pa(e))?hn(t):0;return e&&r<e?Wi(e-r,n)+t:t},Nn.parseInt=function(t,e,n){return n||null==e?e=0:e&&(e=+e),xn(va(t).replace(it,""),e||0)},Nn.random=function(t,e,r){if(r&&"boolean"!=typeof r&&wo(t,e,r)&&(e=r=n),r===n&&("boolean"==typeof e?(r=e,e=n):"boolean"==typeof t&&(r=t,t=n)),t===n&&e===n?(t=0,e=1):(t=fa(t),e===n?(e=t,t=0):e=fa(e)),t>e){var i=t;t=e,e=i}if(r||t%1||e%1){var o=_n();return bn(t+o*(e-t+ue("1e-"+((o+"").length-1))),e)}return Vr(t,e)},Nn.reduce=function(t,e,n){var r=Ws(t)?Fe:Xe,i=arguments.length<3;return r(t,lo(e,4),n,i,dr)},Nn.reduceRight=function(t,e,n){var r=Ws(t)?Le:Xe,i=arguments.length<3;return r(t,lo(e,4),n,i,fr)},Nn.repeat=function(t,e,r){return e=(r?wo(t,e,r):e===n)?1:pa(e),Gr(va(t),e)},Nn.replace=function(){var t=arguments,e=va(t[0]);return t.length<3?e:e.replace(t[1],t[2])},Nn.result=function(t,e,r){var i=-1,o=(e=bi(e,t)).length;for(o||(o=1,t=n);++i<o;){var s=null==t?n:t[Bo(e[i])];s===n&&(i=o,s=r),t=Zs(s)?s.call(t):s}return t},Nn.round=kl,Nn.runInContext=t,Nn.sample=function(t){return(Ws(t)?Zn:Zr)(t)},Nn.size=function(t){if(null==t)return 0;if(Us(t))return aa(t)?hn(t):t.length;var e=mo(t);return e==k||e==M?t.size:Lr(t).length},Nn.snakeCase=Xa,Nn.some=function(t,e,r){var i=Ws(t)?Be:ii;return r&&wo(t,e,r)&&(e=n),i(t,lo(e,3))},Nn.sortedIndex=function(t,e){return oi(t,e)},Nn.sortedIndexBy=function(t,e,n){return si(t,e,lo(n,2))},Nn.sortedIndexOf=function(t,e){var n=null==t?0:t.length;if(n){var r=oi(t,e);if(r<n&&Ns(t[r],e))return r}return-1},Nn.sortedLastIndex=function(t,e){return oi(t,e,!0)},Nn.sortedLastIndexBy=function(t,e,n){return si(t,e,lo(n,2),!0)},Nn.sortedLastIndexOf=function(t,e){if(null==t?0:t.length){var n=oi(t,e,!0)-1;if(Ns(t[n],e))return n}return-1},Nn.startCase=Va,Nn.startsWith=function(t,e,n){return t=va(t),n=null==n?0:ar(pa(n),0,t.length),e=ui(e),t.slice(n,n+e.length)==e},Nn.subtract=Cl,Nn.sum=function(t){return t&&t.length?Ve(t,rl):0},Nn.sumBy=function(t,e){return t&&t.length?Ve(t,lo(e,2)):0},Nn.template=function(t,e,r){var i=Nn.templateSettings;r&&wo(t,e,r)&&(e=n),t=va(t),e=xa({},e,i,Ji);var o,s,a=xa({},e.imports,i.imports,Ji),l=$a(a),u=Je(a,l),c=0,h=e.interpolate||wt,d="__p += '",f=Mt((e.escape||wt).source+"|"+h.source+"|"+(h===J?dt:wt).source+"|"+(e.evaluate||wt).source+"|$","g"),p="//# sourceURL="+(Lt.call(e,"sourceURL")?(e.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++oe+"]")+"\n";t.replace(f,(function(e,n,r,i,a,l){return r||(r=i),d+=t.slice(c,l).replace(xt,on),n&&(o=!0,d+="' +\n__e("+n+") +\n'"),a&&(s=!0,d+="';\n"+a+";\n__p += '"),r&&(d+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),c=l+e.length,e})),d+="';\n";var m=Lt.call(e,"variable")&&e.variable;if(m){if(ct.test(m))throw new Ct("Invalid `variable` option passed into `_.template`")}else d="with (obj) {\n"+d+"\n}\n";d=(s?d.replace(P,""):d).replace(W,"$1").replace(Y,"$1;"),d="function("+(m||"obj")+") {\n"+(m?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(o?", __e = _.escape":"")+(s?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+d+"return __p\n}";var g=Ja((function(){return St(l,p+"return "+d).apply(n,u)}));if(g.source=d,Ks(g))throw g;return g},Nn.times=function(t,e){if((t=pa(t))<1||t>d)return[];var n=p,r=bn(t,p);e=lo(e),t-=p;for(var i=Ge(r,e);++n<t;)e(n);return i},Nn.toFinite=fa,Nn.toInteger=pa,Nn.toLength=ma,Nn.toLower=function(t){return va(t).toLowerCase()},Nn.toNumber=ga,Nn.toSafeInteger=function(t){return t?ar(pa(t),-9007199254740991,d):0===t?t:0},Nn.toString=va,Nn.toUpper=function(t){return va(t).toUpperCase()},Nn.trim=function(t,e,r){if((t=va(t))&&(r||e===n))return Ke(t);if(!t||!(e=ui(e)))return t;var i=dn(t),o=dn(e);return xi(i,tn(i,o),en(i,o)+1).join("")},Nn.trimEnd=function(t,e,r){if((t=va(t))&&(r||e===n))return t.slice(0,fn(t)+1);if(!t||!(e=ui(e)))return t;var i=dn(t);return xi(i,0,en(i,dn(e))+1).join("")},Nn.trimStart=function(t,e,r){if((t=va(t))&&(r||e===n))return t.replace(it,"");if(!t||!(e=ui(e)))return t;var i=dn(t);return xi(i,tn(i,dn(e))).join("")},Nn.truncate=function(t,e){var r=30,i="...";if(ta(e)){var o="separator"in e?e.separator:o;r="length"in e?pa(e.length):r,i="omission"in e?ui(e.omission):i}var s=(t=va(t)).length;if(sn(t)){var a=dn(t);s=a.length}if(r>=s)return t;var l=r-hn(i);if(l<1)return i;var u=a?xi(a,0,l).join(""):t.slice(0,l);if(o===n)return u+i;if(a&&(l+=u.length-l),oa(o)){if(t.slice(l).search(o)){var c,h=u;for(o.global||(o=Mt(o.source,va(ft.exec(o))+"g")),o.lastIndex=0;c=o.exec(h);)var d=c.index;u=u.slice(0,d===n?l:d)}}else if(t.indexOf(ui(o),l)!=l){var f=u.lastIndexOf(o);f>-1&&(u=u.slice(0,f))}return u+i},Nn.unescape=function(t){return(t=va(t))&&V.test(t)?t.replace(U,pn):t},Nn.uniqueId=function(t){var e=++Bt;return va(t)+e},Nn.upperCase=Ga,Nn.upperFirst=Ka,Nn.each=vs,Nn.eachRight=bs,Nn.first=Uo,al(Nn,(xl={},wr(Nn,(function(t,e){Lt.call(Nn.prototype,e)||(xl[e]=t)})),xl),{chain:!1}),Nn.VERSION="4.17.21",Te(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(t){Nn[t].placeholder=Nn})),Te(["drop","take"],(function(t,e){Wn.prototype[t]=function(r){r=r===n?1:vn(pa(r),0);var i=this.__filtered__&&!e?new Wn(this):this.clone();return i.__filtered__?i.__takeCount__=bn(r,i.__takeCount__):i.__views__.push({size:bn(r,p),type:t+(i.__dir__<0?"Right":"")}),i},Wn.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}})),Te(["filter","map","takeWhile"],(function(t,e){var n=e+1,r=1==n||3==n;Wn.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:lo(t,3),type:n}),e.__filtered__=e.__filtered__||r,e}})),Te(["head","last"],(function(t,e){var n="take"+(e?"Right":"");Wn.prototype[t]=function(){return this[n](1).value()[0]}})),Te(["initial","tail"],(function(t,e){var n="drop"+(e?"":"Right");Wn.prototype[t]=function(){return this.__filtered__?new Wn(this):this[n](1)}})),Wn.prototype.compact=function(){return this.filter(rl)},Wn.prototype.find=function(t){return this.filter(t).head()},Wn.prototype.findLast=function(t){return this.reverse().find(t)},Wn.prototype.invokeMap=Kr((function(t,e){return"function"==typeof t?new Wn(this):this.map((function(n){return Dr(n,t,e)}))})),Wn.prototype.reject=function(t){return this.filter(Fs(lo(t)))},Wn.prototype.slice=function(t,e){t=pa(t);var r=this;return r.__filtered__&&(t>0||e<0)?new Wn(r):(t<0?r=r.takeRight(-t):t&&(r=r.drop(t)),e!==n&&(r=(e=pa(e))<0?r.dropRight(-e):r.take(e-t)),r)},Wn.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},Wn.prototype.toArray=function(){return this.take(p)},wr(Wn.prototype,(function(t,e){var r=/^(?:filter|find|map|reject)|While$/.test(e),i=/^(?:head|last)$/.test(e),o=Nn[i?"take"+("last"==e?"Right":""):e],s=i||/^find/.test(e);o&&(Nn.prototype[e]=function(){var e=this.__wrapped__,a=i?[1]:arguments,l=e instanceof Wn,u=a[0],c=l||Ws(e),h=function(t){var e=o.apply(Nn,Ie([t],a));return i&&d?e[0]:e};c&&r&&"function"==typeof u&&1!=u.length&&(l=c=!1);var d=this.__chain__,f=!!this.__actions__.length,p=s&&!d,m=l&&!f;if(!s&&c){e=m?e:new Wn(this);var g=t.apply(e,a);return g.__actions__.push({func:fs,args:[h],thisArg:n}),new Pn(g,d)}return p&&m?t.apply(this,a):(g=this.thru(h),p?i?g.value()[0]:g.value():g)})})),Te(["pop","push","shift","sort","splice","unshift"],(function(t){var e=$t[t],n=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",r=/^(?:pop|shift)$/.test(t);Nn.prototype[t]=function(){var t=arguments;if(r&&!this.__chain__){var i=this.value();return e.apply(Ws(i)?i:[],t)}return this[n]((function(n){return e.apply(Ws(n)?n:[],t)}))}})),wr(Wn.prototype,(function(t,e){var n=Nn[e];if(n){var r=n.name+"";Lt.call($n,r)||($n[r]=[]),$n[r].push({name:e,func:n})}})),$n[Ni(n,2).name]=[{name:"wrapper",func:n}],Wn.prototype.clone=function(){var t=new Wn(this.__wrapped__);return t.__actions__=Ai(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=Ai(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=Ai(this.__views__),t},Wn.prototype.reverse=function(){if(this.__filtered__){var t=new Wn(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},Wn.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,n=Ws(t),r=e<0,i=n?t.length:0,o=function(t,e,n){var r=-1,i=n.length;for(;++r<i;){var o=n[r],s=o.size;switch(o.type){case"drop":t+=s;break;case"dropRight":e-=s;break;case"take":e=bn(e,t+s);break;case"takeRight":t=vn(t,e-s)}}return{start:t,end:e}}(0,i,this.__views__),s=o.start,a=o.end,l=a-s,u=r?a:s-1,c=this.__iteratees__,h=c.length,d=0,f=bn(l,this.__takeCount__);if(!n||!r&&i==l&&f==l)return pi(t,this.__actions__);var p=[];t:for(;l--&&d<f;){for(var m=-1,g=t[u+=e];++m<h;){var y=c[m],v=y.iteratee,b=y.type,w=v(g);if(2==b)g=w;else if(!w){if(1==b)continue t;break t}}p[d++]=g}return p},Nn.prototype.at=ps,Nn.prototype.chain=function(){return ds(this)},Nn.prototype.commit=function(){return new Pn(this.value(),this.__chain__)},Nn.prototype.next=function(){this.__values__===n&&(this.__values__=da(this.value()));var t=this.__index__>=this.__values__.length;return{done:t,value:t?n:this.__values__[this.__index__++]}},Nn.prototype.plant=function(t){for(var e,r=this;r instanceof qn;){var i=Ro(r);i.__index__=0,i.__values__=n,e?o.__wrapped__=i:e=i;var o=i;r=r.__wrapped__}return o.__wrapped__=t,e},Nn.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof Wn){var e=t;return this.__actions__.length&&(e=new Wn(this)),(e=e.reverse()).__actions__.push({func:fs,args:[ts],thisArg:n}),new Pn(e,this.__chain__)}return this.thru(ts)},Nn.prototype.toJSON=Nn.prototype.valueOf=Nn.prototype.value=function(){return pi(this.__wrapped__,this.__actions__)},Nn.prototype.first=Nn.prototype.head,te&&(Nn.prototype[te]=function(){return this}),Nn}();me?((me.exports=mn)._=mn,pe._=mn):fe._=mn}).call(dr)}($i,$i.exports);var zi=$i.exports;function Oi(t,e){const n=t.getInstanceId(),r=`.bar-container .bar-timeline[data-taskid="${e}"][data-chart-instance="${n}"]`,i=t.querySelector(r);return i||console.warn(`[${n}] Bar element not found for task: ${e}`),i}function Ii(t,e){const n=t.getInstanceId(),r=`.timeline-body .timeline-data-row[data-taskid="${e}"][data-chart-instance="${n}"]`,i=t.querySelector(r);return i||console.warn(`[${n}] Bar row element not found for task: ${e}`),i}const Fi=["day","week","month","quarter","year"];var Li=(t=>(t.Day="day",t.Month="month",t.Quarter="quarter",t.Week="week",t.Year="year",t))(Li||{}),Bi=(t=>(t.Horizontal="horizontal",t.Vertical="vertical",t))(Bi||{});class ji{constructor(t,e,n,r,i){this.options=t,this.ganttStartDate=e,this.viewMode=n,this.chartContext=r,this.totalHeight=i}calculateWidth(t){return mr(t.x2).add(1,"day").diff(mr(t.x1),`${this.viewMode}s`,!0)*Ri[this.viewMode]}calculateX(t){return mr(t.x1).diff(this.ganttStartDate.startOf(this.viewMode),`${this.viewMode}s`,!0)*Ri[this.viewMode]}drawAnnotation(t){const e=ur(this.chartContext,{className:"annotation"}),n=this.calculateX(t),r=lr(this.getAnnotationStyles(t,n));if(e.setAttribute("style",r),t.label){const n=this.renderLabel(t);e.append(n)}return e}getAnnotationStyles(t,e){const{annotationBgColor:n,annotationBorderColor:r,annotationBorderWidth:i}=this.options,{bgColor:o,borderColor:s,borderWidth:a}=t;let l=0;const u=t.x2?a||i:(a||i)/2;return t.x2&&(l=this.calculateWidth(t)),{backgroundColor:o||n,borderColor:`${s||r}`,borderStyle:"solid",borderWidth:`${u}px`,height:`${this.totalHeight}px`,left:`${e}px`,position:"absolute",top:"0px",width:l?`${l}px`:"unset",zIndex:"10"}}renderLabel(t){const e=ur(this.chartContext,{className:"annotation-label"}),{annotationBorderColor:n,fontColor:r,fontFamily:i,fontSize:o,fontWeight:s}=this.options,{borderColor:a}=t,{label:l}=t,u=l.fontColor||r,c=l.fontFamily||i,h=l.fontSize||o,d=l.fontWeight||s,f=lr({background:"white",borderColor:`${a||n}`,borderStyle:"solid",borderWidth:"1px",color:u,fontFamily:c,fontSize:h,fontWeight:d,left:"0px",padding:"2px 5px",position:"absolute",top:"-1px",width:"max-content",zIndex:"1"});return e.setAttribute("style",f),e.innerText=t.label.text,e}render(){const t=[];return this.options.annotations.forEach((e=>{t.push(this.drawAnnotation(e))})),t}}const Ri={[Li.Day]:80,[Li.Month]:150,[Li.Quarter]:150,[Li.Week]:180,[Li.Year]:180};const Ni=(t,e)=>{const n=function(t,e){const n=mr(t);switch(e){case Li.Month:return n.daysInMonth();case Li.Quarter:{const t=n.startOf("quarter");return n.endOf("quarter").diff(t,"day")+1}case Li.Week:return 7;case Li.Year:{const t=n.startOf("year");return n.endOf("year").diff(t,"day")+1}default:return 1}}(t,e);return Ri[e]/n},Hi={annotationBorderDashArray:[],annotationBorderWidth:2,annotationOrientation:Bi.Horizontal,annotations:[],barBorderRadius:"5px",barMargin:3,canvasStyle:"border: 1px solid #CACED0; box-sizing: border-box",cellBorderWidth:"1px",enableExport:!0,enableResize:!0,enableTaskDrag:!0,enableTaskEdit:!1,enableTaskResize:!0,enableTooltip:!0,fontFamily:"sans-serif",fontSize:"14px",fontWeight:"400",height:"500px",inputDateFormat:"MM-DD-YYYY",rowHeight:28,series:[],tasksContainerWidth:425,tooltipId:"apexgantt-tooltip-container",tooltipTemplate(t,e){const n=[`<div>\n <strong>Task:</strong>\n <span>${t.name}</span>\n </div>\n `];return t.type===so.Task?n.push(`\n <div>\n <strong>Start:</strong>\n <span>${eo(t,Ji.StartTime,e)}</span>\n </div>\n <div>\n <strong>End:</strong>\n <span>${eo(t,Ji.EndTime,e)}</span>\n </div>\n <div>\n <strong>Duration:</strong>\n <span>${eo(t,Ji.Duration,e)}</span>\n </div>\n <div>\n <strong>Progress:</strong>\n <span>${t.progress}%</span>\n </div>\n `):t.type===so.Milestone&&n.push(`\n <div>\n <strong>Date:</strong>\n <span>${eo(t,Ji.StartTime,e)}</span>\n </div>\n `),t.dependency&&n.push(`\n <div>\n <strong>Depends on:</strong>\n <span>${t.dependency}</span>\n </div>\n `),`\n <div>\n ${n.join("")}\n </div>\n `},viewMode:Li.Week,width:"100%"},qi={annotationBgColor:"#F9D1FC",annotationBorderColor:"#E273EA",arrowColor:"#0D6EFD",backgroundColor:"#FFFFFF",barBackgroundColor:"#87B7FE",barTextColor:"#FFFFFF",borderColor:"#DFE0E1",cellBorderColor:"#eff0f0",fontColor:"#000000",headerBackground:"#F3F3F3",rowBackgroundColors:["#FFFFFF"],tooltipBGColor:"#FFFFFF",tooltipBorderColor:"#BCBCBC"},Pi={annotationBgColor:"#4A2D4D",annotationBorderColor:"#8B4D8F",arrowColor:"#4A9EFF",backgroundColor:"#1E1E1E",barBackgroundColor:"#5B8DEE",barTextColor:"#FFFFFF",borderColor:"#3A3A3A",cellBorderColor:"#3A3A3A",fontColor:"#E0E0E0",headerBackground:"#2A2A2A",rowBackgroundColors:["#1E1E1E","#252525"],tooltipBGColor:"#2D2D2D",tooltipBorderColor:"#444444"};function Wi(t){return{...Hi,..."dark"===t?Pi:qi}}const Yi=Wi("light"),Ui={TASK_UPDATE:"taskUpdate",TASK_VALIDATION_ERROR:"taskValidationError",TASK_UPDATE_SUCCESS:"taskUpdateSuccess",TASK_UPDATE_ERROR:"taskUpdateError",TASK_DRAGGED:"taskDragged",TASK_RESIZED:"taskResized"};class Xi{constructor(t,e,n,r,i){this.taskId=t,this.options=e,this.chartContext=r,this.dataManager=i,this.dragState={childTasks:[],daysPerPixel:0,initialLeft:0,initialPosition:0,initialStartTime:"",initialEndTime:"",isDragging:!1,parentWidth:0,parentX1:0,parentX2:0,startX:0},this.dragState.daysPerPixel=Ni(this.dataManager.getTaskById(t).startTime,n)}calculateFinalPosition(t,e){const{daysPerPixel:n,initialLeft:r,initialPosition:i,parentX1:o,parentX2:s}=this.dragState,a=t.clientX-i;let l=Math.round(a/n),u=r+l*n;return a<0&&u<=o?(u=o,l=Math.round((o-r)/n)):a>0&&u+e>=s&&(u=s-e,l=Math.round((s-e-r)/n)),{calculatedLeft:u,daysMoved:l}}createMouseDownHandler(t){return e=>{var n;this.task=this.dataManager.getTaskById(this.taskId),this.dragState={...this.dragState,initialLeft:parseInt(t.style.left)||0,initialPosition:e.clientX,initialStartTime:this.task.startTime,initialEndTime:this.task.endTime,isDragging:!0,startX:e.clientX},t.classList.add("dragging");const r=Oi(this.chartContext,this.task.parentId);this.dragState.parentX2=(null==(n=this.chartContext.querySelector(".timeline-body"))?void 0:n.clientWidth)||0,this.dragState.childTasks=this.dataManager.getNestedChildTasks(this.task.id).map((t=>{const e=Oi(this.chartContext,t.id);return e?{...t,element:e,left:parseInt(e.style.left)||0,width:parseInt(e.style.width)||0}:t})),r&&(this.dragState.parentX1=parseInt(r.style.left)||0,this.dragState.parentX2=this.dragState.parentX1+parseInt(r.style.width)||0)}}createMouseMoveHandler(t){return e=>{this.dragState.isDragging&&requestAnimationFrame((()=>{const n=e.clientX-this.dragState.startX,r=parseInt(t.style.left)||0,i=parseInt(t.style.width)||0;this.isOutOfBounds(r,i,n)||(this.moveBar(t,r,n),this.dataManager.updateDependencyArrows(this.task.id,this.chartContext),this.moveChildBars(n),this.dragState.startX=e.clientX)}))}}createMouseUpHandler(t,e){return n=>{if(!this.dragState.isDragging)return;this.dragState.isDragging=!1,t.classList.remove("dragging");const r=parseInt(t.style.width)||0,{calculatedLeft:i,daysMoved:o}=this.calculateFinalPosition(n,r);if(0===o)return void(this.dragState={...this.dragState,isDragging:!1});const s=mr(this.task.startTime).add(o,"day").format(this.options.inputDateFormat),a=mr(this.task.endTime).add(o,"day").format(this.options.inputDateFormat),l=this.dragState.childTasks.map((t=>({taskId:t.id,newStartTime:mr(t.startTime).add(o,"day").format(this.options.inputDateFormat),newEndTime:t.endTime?mr(t.endTime).add(o,"day").format(this.options.inputDateFormat):null}))).filter((t=>null!==t.newEndTime));this.emitTaskDraggedEvent(o,s,a,l),this.updateTaskPosition(t,i,o,e),this.updateChildrenPositions(i,o,e)}}emitTaskDraggedEvent(t,e,n,r){const i={taskId:this.task.id,oldStartTime:this.dragState.initialStartTime,oldEndTime:this.dragState.initialEndTime,newStartTime:e,newEndTime:n,daysMoved:t,affectedChildTasks:r,timestamp:Date.now()},o=new CustomEvent(Ui.TASK_DRAGGED,{detail:i,bubbles:!0,composed:!0,cancelable:!1}),s=this.chartContext.getChartContainer();s&&s.dispatchEvent(o)}isOutOfBounds(t,e,n){const{parentX1:r,parentX2:i}=this.dragState;return n<0&&t<=r||n>0&&t+e>=i}moveBar(t,e,n){t.style.left=`${e+n}px`}moveChildBars(t){this.dragState.childTasks.forEach((e=>{if(e.element){const n=parseInt(e.element.style.left)||0;e.element.style.left=`${n+t}px`,this.dataManager.updateDependencyArrows(e.id,this.chartContext)}}))}updateChildrenPositions(t,e,n){this.dragState.childTasks.forEach((r=>{const i=Oi(this.chartContext,r.id);if(i){const o=t-this.dragState.initialLeft;i.style.left=`${r.left+o}px`;const s=mr(r.startTime).add(e,"day").format(this.options.inputDateFormat),a=r.endTime?mr(r.endTime).add(e,"day").format(this.options.inputDateFormat):null;this.dataManager.updateDependencyArrows(r.id,this.chartContext),null==n||n(r.id,{endTime:a,startTime:s})}}))}updateTaskPosition(t,e,n,r){t.style.left=`${e}px`;const i=mr(this.task.startTime).add(n,"day").format(this.options.inputDateFormat),o=mr(this.task.endTime).add(n,"day").format(this.options.inputDateFormat);this.dataManager.updateDependencyArrows(this.task.id,this.chartContext),null==r||r(this.task.id,{endTime:o,startTime:i})}makeDraggable(t,e){const n=this.createMouseDownHandler(t),r=this.createMouseMoveHandler(t),i=this.createMouseUpHandler(t,e);return t.addEventListener("mousedown",n),this.chartContext.addEventListener("mousemove",r),this.chartContext.addEventListener("mouseup",i),()=>{t.removeEventListener("mousedown",n),this.chartContext.removeEventListener("mousemove",r),this.chartContext.removeEventListener("mouseup",i)}}}class Vi{constructor(t,e,n,r,i){this.taskId=t,this.options=e,this.chartContext=r,this.dataManager=i,this.interactionState={daysPerPixel:0,initialLeft:0,initialPosition:0,initialWidth:0,initialStartTime:"",initialEndTime:"",isResizing:!1,parentWidth:0,parentX1:0,parentX2:0,resizeHandle:null,startX:0},this.interactionState.daysPerPixel=Ni(this.dataManager.getTaskById(t).startTime,n)}createMouseMoveHandler(t){return e=>{this.interactionState.isResizing&&requestAnimationFrame((()=>{const n=e.clientX-this.interactionState.startX,{daysPerPixel:r,parentX1:i,parentX2:o,resizeHandle:s}=this.interactionState,a=parseInt(t.style.left)||0,l=parseInt(t.style.width)||0;if("left"===s){const e=Math.max(i,Math.min(o-r,a+n)),s=l-(e-a);s>=r&&(t.style.left=`${e}px`,t.style.width=`${s}px`)}else{const e=r,i=o-a,s=Math.max(e,Math.min(i,l+n));t.style.width=`${s}px`}this.dataManager.updateDependencyArrows(this.task.id,this.chartContext),this.interactionState.startX=e.clientX}))}}createMouseUpHandler(t,e){return n=>{if(!this.interactionState.isResizing)return;t.classList.remove("resizing");const{daysPerPixel:r,initialLeft:i,initialPosition:o,initialWidth:s,parentX1:a,parentX2:l,resizeHandle:u}=this.interactionState,c=n.clientX-o,h=this.interactionState.initialStartTime,d=this.interactionState.initialEndTime;let f=h,p=d,m=0;if("left"===u){let n=Math.round(c/r),o=i+n*r;c<0&&o<=a&&(n=Math.round((a-i)/r),o=a);let l=s-n*r;if(l<r&&(l=r,o=i+s-r,n=Math.round((o-i)/r)),0===n)return void(this.interactionState={...this.interactionState,isResizing:!1,resizeHandle:null});t.style.left=`${o}px`,t.style.width=`${l}px`,f=mr(this.task.startTime).add(n,"day").format(this.options.inputDateFormat),m=-n,null==e||e(this.task.id,{startTime:f})}else{let n=Math.round(c/r),o=s+n*r;if(o<r?(o=r,n=Math.round((o-s)/r)):i+o>l&&(o=l-i,n=Math.round((o-s)/r)),0===n)return void(this.interactionState={...this.interactionState,isResizing:!1,resizeHandle:null});t.style.width=`${o}px`,p=mr(this.task.endTime).add(n,"day").format(this.options.inputDateFormat),m=n,null==e||e(this.task.id,{endTime:p})}this.emitTaskResizedEvent(u,h,d,f,p,m),this.dataManager.updateDependencyArrows(this.task.id,this.chartContext),this.interactionState={...this.interactionState,isResizing:!1,resizeHandle:null}}}emitTaskResizedEvent(t,e,n,r,i,o){const s={taskId:this.task.id,resizeHandle:t,oldStartTime:e,oldEndTime:n,newStartTime:r,newEndTime:i,durationChange:o,timestamp:Date.now()},a=new CustomEvent(Ui.TASK_RESIZED,{detail:s,bubbles:!0,composed:!0,cancelable:!1}),l=this.chartContext.getChartContainer();l&&l.dispatchEvent(a)}createResizeMouseDownHandler(t){return(e,n)=>{var r;e.stopPropagation(),this.task=this.dataManager.getTaskById(this.taskId),this.interactionState={...this.interactionState,initialLeft:parseInt(t.style.left)||0,initialPosition:e.clientX,initialWidth:parseInt(t.style.width)||0,initialStartTime:this.task.startTime,initialEndTime:this.task.endTime,isResizing:!0,resizeHandle:n,startX:e.clientX},t.classList.add("resizing");const i=Oi(this.chartContext,this.task.parentId);this.interactionState.parentX2=(null==(r=this.chartContext.querySelector(".timeline-body"))?void 0:r.clientWidth)||0,i&&(this.interactionState.parentX1=parseInt(i.style.left)||0,this.interactionState.parentX2=this.interactionState.parentX1+parseInt(i.style.width)||0)}}makeResizable(t,e){const n=t.querySelector(".handle-left"),r=t.querySelector(".handle-right"),i=this.createResizeMouseDownHandler(t),o=this.createMouseMoveHandler(t),s=this.createMouseUpHandler(t,e);return null==n||n.addEventListener("mousedown",(t=>i(t,"left"))),null==r||r.addEventListener("mousedown",(t=>i(t,"right"))),this.chartContext.addEventListener("mousemove",o),this.chartContext.addEventListener("mouseup",s),()=>{null==n||n.removeEventListener("mousedown",(t=>i(t,"left"))),null==r||r.removeEventListener("mousedown",(t=>i(t,"right"))),this.chartContext.removeEventListener("mousemove",o),this.chartContext.removeEventListener("mouseup",s)}}}class Gi{constructor(t,e){this.chartContext=t,this.options=e,this.overlay=null,this.keydownHandler=null,this.clickOutsideHandler=null,this.createDialog(),this.setupEventListeners()}createDialog(){const t=this.chartContext.getInstanceId(),e=this.chartContext.getElementById(`${this.options.id}-container`);if(e){this.container=e;const t=this.container.querySelector(".gantt-dialog");return void this.updateDialogContent(t)}this.container=this.chartContext.createElement("div"),this.container.id=`${this.options.id}-container`,this.container.className="gantt-dialog-container",this.container.setAttribute("role","dialog"),this.container.setAttribute("aria-modal","true"),this.container.setAttribute("aria-labelledby",`${this.options.id}-title`),this.container.setAttribute("data-chart-instance",t),this.options.modal&&(this.overlay=this.chartContext.createElement("div"),this.overlay.className="dialog-overlay",this.container.appendChild(this.overlay));const n=this.chartContext.createElement("div");n.id=this.options.id,n.className="gantt-dialog",this.createDialogStructure(n),this.options.width&&(n.style.width=this.options.width),this.options.height&&(n.style.height=this.options.height),this.container.appendChild(n),!1!==this.options.positionRelativeToChart&&this.positionRelativeToChart();(!1!==this.options.positionRelativeToChart?this.chartContext.getChartContainer():this.chartContext.getAppendContainer()).appendChild(this.container)}createDialogStructure(t){t.innerHTML=`\n <div class="dialog-header">\n <h2 id="${this.options.id}-title-${this.chartContext.getInstanceId()}" class="dialog-title">${this.options.title||""}</h2>\n <button class="dialog-close" aria-label="Close dialog" type="button">×</button>\n </div>\n <div class="dialog-content"></div>\n `,this.updateDialogContent(t)}positionRelativeToChart(){const t=this.chartContext.getChartContainer();if(t){"static"===window.getComputedStyle(t).position&&(t.style.position="relative")}this.container.style.position="absolute",this.container.style.top="0",this.container.style.left="0",this.container.style.width="100%",this.container.style.height="100%",this.container.style.zIndex="999"}setupEventListeners(){const t=this.container.querySelector(".dialog-close");null==t||t.addEventListener("click",(()=>this.hide())),this.options.closeOnEscape&&(this.keydownHandler=t=>{"Escape"===t.key&&this.isVisible()&&(t.preventDefault(),this.hide())},this.chartContext.addEventListener("keydown",this.keydownHandler)),this.options.closeOnClickOutside&&this.overlay&&(this.clickOutsideHandler=t=>{t.target===this.overlay&&this.hide()},this.overlay.addEventListener("click",this.clickOutsideHandler)),this.container.addEventListener("keydown",(t=>{"Tab"===t.key&&this.isVisible()&&this.trapFocus(t)}))}trapFocus(t){const e=this.container.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'),n=e[0],r=e[e.length-1],i=this.chartContext.getActiveElement();t.shiftKey?i===n&&(t.preventDefault(),null==r||r.focus()):i===r&&(t.preventDefault(),null==n||n.focus())}updateDialogContent(t){const e=t.querySelector(".dialog-content"),n=t.querySelector(".dialog-title");n&&(n.textContent=this.options.title||""),e&&(e.innerHTML="","string"==typeof this.options.content?e.innerHTML=this.options.content:this.options.content instanceof HTMLElement&&e.appendChild(this.options.content))}cleanupEventListeners(){this.keydownHandler&&(this.chartContext.removeEventListener("keydown",this.keydownHandler),this.keydownHandler=null),this.clickOutsideHandler&&this.overlay&&(this.overlay.removeEventListener("click",this.clickOutsideHandler),this.clickOutsideHandler=null)}destroy(){this.cleanupEventListeners(),this.container.remove()}hide(){this.container.classList.remove("show","animate");const t=this.chartContext.querySelector("[data-dialog-trigger]");null==t||t.focus()}isVisible(){return this.container.classList.contains("show")}setContent(t){const e=this.container.querySelector(".dialog-content");e&&(e.innerHTML="","string"==typeof t?e.innerHTML=t:e.appendChild(t))}show(){const t=this.chartContext.getActiveElement();null==t||t.setAttribute("data-dialog-trigger","true"),this.container.classList.add("show","animate");const e=this.container.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');null==e||e.focus()}}class Ki{constructor(t,e,n,r,i,o="MM-DD-YYYY"){this.chartContext=t,this.dataManager=e,this.task=n,this.containerElement=r,this.onSubmit=i,this.dateFormat=o,this.errors=[],this.submitButton=null,this.form=this.createForm()}emitEvent(t,e){const n=new CustomEvent(t,{detail:e,bubbles:!0,composed:!0,cancelable:!1});this.containerElement.dispatchEvent(n)}clearError(t){var e;const n=this.form.querySelector(`[name="${t}"]`),r=null==(e=n.parentElement)?void 0:e.querySelector(".form-error");null==r||r.remove(),n.classList.remove("invalid"),this.errors=this.errors.filter((e=>e.field!==t)),this.updateSubmitButton()}createForm(){const t=this.chartContext.createElement("form");t.className="task-form";const e=this.task.barBackgroundColor||"#87B7FE",n=this.task.rowBackgroundColor||"#FFFFFF";return t.innerHTML=`\n <div class="form-group">\n <label for="name">Task Name</label>\n <input type="text" id="name" name="name" value="${this.task.name}">\n </div>\n \n <div class="form-group">\n <label for="startTime">Start Date</label>\n <input type="date" id="startTime" name="startTime" value="${this.formatDate(this.task.startTime)}">\n </div>\n \n <div class="form-group">\n <label for="endTime">End Date</label>\n <input type="date" id="endTime" name="endTime" value="${this.formatDate(this.task.endTime)}">\n </div>\n \n <div class="form-group">\n <label for="progress">Progress (%)</label>\n <input type="number" id="progress" name="progress" min="0" max="100" value="${this.task.progress}">\n </div>\n\n <div class="grid">\n <div class="form-group">\n <label for="barColor">Bar Color</label>\n <div class="color-picker-wrapper">\n <input type="color" id="barColor" name="barBackgroundColor" \n value="${e}"\n title="Choose bar color">\n <span class="color-preview"></span>\n </div>\n </div>\n \n <div class="form-group">\n <label for="rowColor">Row Background Color</label>\n <div class="color-picker-wrapper">\n <input type="color" id="rowColor" name="rowBackgroundColor" \n value="${n}"\n title="Choose row color">\n <span class="color-preview"></span>\n </div>\n </div>\n </div>\n \n <div class="form-actions">\n <button type="submit" class="btn-primary">Update</button>\n </div>\n `,t.addEventListener("submit",this.handleSubmit.bind(this)),this.setupFieldValidation(t),t}formatDate(t){return mr(t,this.dateFormat).format("YYYY-MM-DD")}handleSubmit(t){if(t.preventDefault(),this.errors.length>0)this.emitEvent(Ui.TASK_VALIDATION_ERROR,{taskId:this.task.id,errors:this.errors,timestamp:Date.now()});else try{const t=new FormData(this.form),e={...this.task,barBackgroundColor:t.get("barBackgroundColor"),endTime:mr(t.get("endTime")).format(this.dateFormat),name:t.get("name"),progress:Number(t.get("progress")),rowBackgroundColor:t.get("rowBackgroundColor"),startTime:mr(t.get("startTime")).format(this.dateFormat)},n=this.dataManager.getTaskById(this.task.id);this.emitEvent(Ui.TASK_UPDATE,{taskId:this.task.id,updates:e,updatedTask:{...n,...e},timestamp:Date.now()}),this.onSubmit(e),this.emitEvent(Ui.TASK_UPDATE_SUCCESS,{taskId:this.task.id,updatedTask:{...n,...e},timestamp:Date.now()})}catch(e){console.warn(`[TaskForm] Error updating task ${this.task.id}:`,e),this.emitEvent(Ui.TASK_UPDATE_ERROR,{taskId:this.task.id,error:e instanceof Error?e:new Error(String(e)),timestamp:Date.now()})}}setupFieldValidation(t){const e=t.querySelector('[name="name"]'),n=t.querySelector('[name="startTime"]'),r=t.querySelector('[name="endTime"]'),i=t.querySelector('[name="progress"]');null==e||e.addEventListener("change",(()=>{const t=this.validateName(e.value);t?this.showError("name",t):this.clearError("name")}));const o=()=>{const{endError:t,startError:e}=this.validateDates(n.value,r.value);e?this.showError("startTime",e):this.clearError("startTime"),t?this.showError("endTime",t):this.clearError("endTime")};null==n||n.addEventListener("change",o),null==r||r.addEventListener("change",o),null==i||i.addEventListener("change",(()=>{const t=this.validateProgress(Number(i.value));t?this.showError("progress",t):this.clearError("progress")}))}showError(t,e){var n,r;const i=this.form.querySelector(`[name="${t}"]`),o=this.chartContext.createElement("div");o.className="form-error",o.textContent=e;const s=null==(n=i.parentElement)?void 0:n.querySelector(".form-error");null==s||s.remove(),null==(r=i.parentElement)||r.appendChild(o),i.classList.add("invalid"),this.errors.push({field:t,message:e}),this.updateSubmitButton()}updateSubmitButton(){if(this.submitButton||(this.submitButton=this.form.querySelector(".btn-primary")),this.submitButton){const t=this.errors.length>0;this.submitButton.disabled=t,this.submitButton.classList.toggle("btn-disabled",t)}}validateDates(t,e){const n={endError:null,startError:null},r=mr(t),i=mr(e);return t||(n.startError="Start date is required"),e||(n.endError="End date is required"),r.isValid()&&i.isValid()&&i.isBefore(r)&&(n.endError="End date must be after start date"),n}validateName(t){return t.trim()?null:"Task name is required"}validateProgress(t){return t||0===t?isNaN(t)||t<0||t>100?"Progress must be between 0 and 100":null:"Progress is required"}getElement(){return this.form}}class Zi{constructor(t,e,n,r,i,o,s){this.task=t,this.ganttStartDate=e,this.options=n,this.viewMode=r,this.index=i,this.chartContext=o,this.dataManager=s,this.tooltipHandler=null}static calculateWidth(t,e,n){const{barMargin:r,rowHeight:i}=n;if(t.type===so.Milestone)return(i-r)/2;const o=mr(t.startTime);return mr(t.endTime).add(1,"days").diff(o,`${e}s`,!0)*Ri[e]}static calculateX(t,e,n,r){const i=mr(t.startTime).diff(e.startOf(n),`${n}s`,!0)*Ri[n];let o=0;if(t.type===so.Milestone){const{barMargin:t,rowHeight:e}=r;o=(e-t)/4*-1}return i+o}calculateHeight(){const{barMargin:t,rowHeight:e}=this.options;return this.task.type===so.Milestone?(e-t)/2:e-2*t}setupTooltip(t){if(!this.options.enableTooltip)return;const{tooltipBGColor:e,tooltipBorderColor:n,fontColor:r,fontFamily:i,fontSize:o,fontWeight:s,tooltipId:a,tooltipTemplate:l,inputDateFormat:u}=this.options;let c=!1,h=null;const d=t=>{c=!0,h&&(clearTimeout(h),h=null);const{x:d,y:f}=((t,e,n=300,r=120,i=20,o=20)=>{const s=window.innerWidth,a=window.innerHeight,l=window.scrollX||document.documentElement.scrollLeft,u=window.scrollY||document.documentElement.scrollTop;let c=t+i+l,h=e+o+u;return t+i+n>s&&(c=t-n-i+l),e+o+r>a&&(h=e-r-o+u),c=Math.max(l+5,c),h=Math.max(u+5,h),{x:c,y:h}})(t.clientX,t.clientY,300,120,5,10),p=l(this.dataManager.getTaskById(this.task.id),u),m=(({bgColor:t,borderColor:e,fontColor:n,fontFamily:r,fontSize:i,fontWeight:o,maxWidth:s=300,padding:a,x:l,y:u})=>{const c=["position: absolute;","z-index: 1000;","pointer-events: none;"];return c.push(`width: ${s}px;`),c.push(`max-width: ${s}px;`),c.push("box-sizing: border-box;"),c.push("word-wrap: break-word;"),c.push("overflow-wrap: break-word;"),c.push(`left: ${l}px;`),c.push(`top: ${u}px;`),e&&c.push(`border: 1px solid ${e};`),c.push("border-radius: 6px;"),c.push("box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);"),c.push("transition: opacity 0.2s ease;"),c.push(`color: ${n||"#000000"};`),c.push(`font-family: ${r||"sans-serif"};`),c.push(`font-weight: ${o||"400"};`),c.push(`font-size: ${i||"14px"};`),c.push(`background-color: ${t||"#FFFFFF"};`),void 0!==a&&c.push(`padding: ${a}px;`),c.join(" ")})({bgColor:e,borderColor:n,fontColor:r,fontFamily:i,fontSize:o,fontWeight:s,maxWidth:300,padding:0,x:d,y:f});ar(this.chartContext,a,m,p)};t.addEventListener("mouseenter",d),t.addEventListener("mousemove",d),t.addEventListener("mouseleave",(()=>{c=!1,h=window.setTimeout((()=>{c||ar(this.chartContext,a)}),100)}))}setupTaskEdit(t,e){if(!this.options.enableTaskEdit)return;const n=this.chartContext.getInstanceId();t.addEventListener("dblclick",(t=>{t.stopPropagation(),t.preventDefault();const r=this.dataManager.getTaskById(this.task.id);if(!r)return void console.error(`[${n}] Task not found in dataManager: ${this.task.id}`);const i=this.chartContext.getChartContainer(),o=new Ki(this.chartContext,this.dataManager,r,i,(t=>{null==e||e(r.id,t),a.hide()}),this.options.inputDateFormat),s=`taskDialog-${n}-${this.task.id}`,a=new Gi(this.chartContext,{closeOnClickOutside:!1,closeOnEscape:!0,content:o.getElement(),id:s,modal:!0,title:`Edit Task: ${this.task.name}`,width:"400px",positionRelativeToChart:!0});a.show()}))}setupInteractions(t,e){const{enableTaskDrag:n,enableTaskResize:r}=this.options;if(n&&this.makeDraggable(t,e),r&&this.task.type===so.Task){const n=ur(this.chartContext,{className:"bar-handle handle-left"}),r=ur(this.chartContext,{className:"bar-handle handle-right"});t.append(n,r),this.makeResizable(t,e)}}drawBar(t=zi.noop){const{barBackgroundColor:e,barBorderRadius:n}=this.options,r=ur(this.chartContext,{className:"bar-timeline"}),i=ur(this.chartContext,{className:"bar-label",content:this.task.name}),o=ur(this.chartContext,{className:"bar-timeline-progress"}),s=this.task.barBackgroundColor||e,a=lr(this.getBarStyles(s)),l=lr({backgroundColor:hr(s,-80),borderRadius:n,width:`${this.task.progress}%`}),u=this.chartContext.getInstanceId();return r.setAttribute("data-taskid",this.task.id),r.setAttribute("data-chart-instance",u),o.setAttribute("style",l),r.setAttribute("style",a),r.setAttribute("role","progressbar"),r.setAttribute("aria-label",`${this.task.name}: ${this.task.progress}% complete`),r.setAttribute("aria-valuenow",this.task.progress.toString()),r.setAttribute("aria-valuemin","0"),r.setAttribute("aria-valuemax","100"),r.setAttribute("tabindex","0"),this.task.type!==so.Milestone&&r.append(i),r.append(o),this.setupTaskEdit(r,t),this.setupTooltip(r),this.setupInteractions(r,t),r.addEventListener("keydown",(t=>{"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),r.dispatchEvent(new MouseEvent("dblclick",{bubbles:!0})))})),r}getBarStyles(t){const{barBackgroundColor:e,barBorderRadius:n,barMargin:r,barTextColor:i,rowHeight:o}=this.options,s=Zi.calculateX(this.task,this.ganttStartDate,this.viewMode,this.options),a=Zi.calculateWidth(this.task,this.viewMode,this.options),l=this.calculateHeight(),u=t||e;return this.task.type===so.Milestone?{backgroundColor:hr(u,-80),borderRadius:"2px",color:i,height:`${l}px`,left:`${s}px`,top:o/3-r/2+this.index*o+"px",transform:"rotate(45deg)",width:`${a}px`}:{backgroundColor:u,borderRadius:n,color:i,height:`${l}px`,left:`${s}px`,top:`${r+this.index*o}px`,width:`${a}px`}}makeDraggable(t,e){new Xi(this.task.id,this.options,this.viewMode,this.chartContext,this.dataManager).makeDraggable(t,e)}makeResizable(t,e){new Vi(this.task.id,this.options,this.viewMode,this.chartContext,this.dataManager).makeResizable(t,e)}cleanup(){this.tooltipHandler&&(this.tooltipHandler.cleanup(),this.tooltipHandler=null)}}var Ji=(t=>(t.Duration="duration",t.EndTime="endTime",t.Name="name",t.Progress="progress",t.StartTime="startTime",t))(Ji||{});const Qi={duration:"Duration",name:"Task Name",progress:"Progress",startTime:"Start"},to=[{key:"name",title:Qi.name,minWidth:"120px",flexGrow:3},{key:"startTime",title:Qi.startTime,minWidth:"70px",flexGrow:1.5},{key:"duration",title:Qi.duration,minWidth:"50px",flexGrow:1},{key:"progress",title:Qi.progress,minWidth:"50px",flexGrow:1}];function eo(t,e,n){const r=t[e];if("startTime"===e)return mr(r,n).format(n);if("endTime"===e)return mr(r,n).format(n);if("duration"===e){const e=mr(t.startTime,n),r=mr(t.endTime,n);return t.endTime?`${r.diff(e,"d")+1} d`:"0 d"}if("progress"===e){return`${t.progress??0}%`}return r}function no(t,e){return t.querySelector(`.tasks-container .tasks-data-row[data-taskid="${e}"]`)}function ro(t,e){return(null==e?void 0:e.length)?e[t%e.length]:"transparent"}function io(t,e,n){const r=no(t,e),i=Ii(t,e);r&&(r.style.backgroundColor=n),i&&(i.style.backgroundColor=n)}const oo=(t,e,n,r,i,o,s)=>{const{taskBar:a,taskBarRow:l,taskRow:u}=((t,e)=>{const n=no(t,e);return{taskBar:Oi(t,e),taskBarRow:Ii(t,e),taskRow:n}})(t,n);if(!u||!a)return;const c=e.updateTask(n,r);if(!c)return;if(u.querySelectorAll("td").forEach((r=>{const o=r.getAttribute("data-columnid");if(o&&(r.innerHTML=eo(c,o,i.inputDateFormat),"name"===o))if(e.hasChildren(n)){const i=t.createElement("span");i.className="task-toggle-icon "+(c.collapsed?"collapsed":"expanded"),i.addEventListener("click",(()=>{e.toggleTask(n)})),r.prepend(i)}else{const e=t.createElement("span");e.className="task-toggle-icon-blank",r.prepend(e)}})),r.rowBackgroundColor&&l&&(u.style.backgroundColor=r.rowBackgroundColor,l.style.backgroundColor=r.rowBackgroundColor),r.barBackgroundColor&&(a.style.backgroundColor=r.barBackgroundColor),r.startTime||r.endTime){const t=Zi.calculateX(c,s,o,i),e=Zi.calculateWidth(c,o,i);a.style.left=`${t}px`,a.style.width=`${e}px`}if(void 0!==r.progress){const t=a.querySelector(".bar-timeline-progress");t&&(t.style.width=`${r.progress}%`),r.barBackgroundColor&&(t.style.backgroundColor=hr(r.barBackgroundColor,-80))}if(r.name){const t=a.querySelector(".bar-label");t&&(t.textContent=r.name)}e.updateDependencyArrows(n,t)};var so=(t=>(t.Milestone="milestone",t.Task="task",t))(so||{});class ao{constructor(t,e,n){this.options=t,this.chartContext=e,this.dataManager=n,this.effectiveColumnList=this.mergeColumnConfig(),this.injectDynamicColumnStyles()}mergeColumnConfig(){return this.options.columnConfig&&0!==this.options.columnConfig.length?to.map((t=>{var e;const n=null==(e=this.options.columnConfig)?void 0:e.find((e=>e.key===t.key));return n?{...t,...n}:t})):to}injectDynamicColumnStyles(){const t=this.effectiveColumnList.map((t=>`minmax(${t.minWidth||"30px"}, ${t.flexGrow||1}fr)`)).join(" ");const e=this.chartContext.getInstanceId(),n=`\n .tasks-container .tasks-header[data-chart-instance="${e}"] .tasks-header-row {\n grid-template-columns: ${t};\n }\n\n .tasks-container .tasks-data-row[data-chart-instance="${e}"] {\n grid-template-columns: ${t};\n }\n `;this.chartContext.injectStyles(n,`tasks-dynamic-columns-${e}`,{priority:"high"})}generateBody(t,e){const n=ur(this.chartContext,{className:"tasks-data-container"});return this.generateRows(t,n,e),n}generateHeader(t){const e=ur(this.chartContext,{className:"tasks-header"}),n=ur(this.chartContext,{className:"tasks-header-row"}),{headerBackground:r,rowHeight:i,fontColor:o}=this.options,s=this.chartContext.getInstanceId();return e.setAttribute("data-chart-instance",s),Di(t,(t=>{const e=ur(this.chartContext,{className:"tasks-header-cell",content:t});e.style.height=2*i+"px",e.style.color=o,n.append(e)})),e.append(n),e.style.background=r,e}generateRow(t,e){const n=ur(this.chartContext,{className:"tasks-data-row"}),{rowHeight:r,fontColor:i}=this.options,o=this.chartContext.getInstanceId();return n.setAttribute("data-taskid",t.id),n.setAttribute("data-chart-instance",o),n.style.height=`${r}px`,Di(this.effectiveColumnList,(({key:s})=>{const a=ur(this.chartContext,{className:"tasks-data-cell",content:eo(t,s,this.options.inputDateFormat)});if(a.setAttribute("data-columnid",s),a.setAttribute("data-chart-instance",o),a.style.height=`${r}px`,a.style.color=i,s===Ji.Name){if(a.style.paddingLeft=15*t.level+"px",a.style.textAlign="left",a.innerHTML="",this.dataManager.hasChildren(t.id)){const n=cr(this.chartContext,"span",{className:"task-toggle-icon "+(t.collapsed?"collapsed":"expanded")});n.addEventListener("click",(()=>{this.dataManager.toggleTask(t.id),e()})),a.append(n)}else{const t=cr(this.chartContext,"span",{className:"task-toggle-icon-blank"});a.append(t)}const n=cr(this.chartContext,"span",{textContent:t.name});a.append(n)}n.append(a)})),n}generateRows(t,e,n){return Di(t,(t=>{const r=this.generateRow(t,n);e.appendChild(r)})),this.fillEmptyRows(e,t.length,n),e}fillEmptyRows(t,e,n){const r=this.chartContext.querySelector(".gantt-container");if(!r)return;const i=r.clientHeight,o=this.options.rowHeight,s=i-2*o,a=Math.floor(s/o),l=Math.max(0,a-e);for(let u=0;u<l;u++){const e=this.generateEmptyRow(u);t.appendChild(e)}}generateEmptyRow(t){const e=ur(this.chartContext,{className:"tasks-data-row tasks-empty-row"}),{rowHeight:n,fontColor:r}=this.options,i=this.chartContext.getInstanceId();return e.setAttribute("data-taskid",`empty-${t}`),e.setAttribute("data-chart-instance",i),e.style.height=`${n}px`,Di(this.effectiveColumnList,(({key:t})=>{const o=ur(this.chartContext,{className:"tasks-data-cell",content:""});o.setAttribute("data-columnid",t),o.setAttribute("data-chart-instance",i),o.style.height=`${n}px`,o.style.color=r,e.append(o)})),e}render(t){return[this.generateHeader(this.effectiveColumnList.map((t=>t.title))),this.generateBody(this.dataManager.getFlatVisibleTasks(),t)]}}const lo="root";class uo{constructor(t=[]){this.dependencies=[],this.taskMap={},this.taskTree={},this.arrowLinkInstanceId=null,this.setTasks(t)}buildTaskTree(t){const e={[lo]:[]};t.forEach((t=>{var n;this.taskMap[t.id]=t,e[t.id]||(e[t.id]=[]),e[t.parentId]||(e[t.parentId]=[]),t.dependency&&this.addDependency(t.dependency,t.id),t.parentId?null==(n=e[t.parentId])||n.push(t.id):e[lo].push(t.id)})),this.taskTree=e}processLevel(){const t=(e,n)=>{e.forEach((e=>{this.taskMap[e.id]={...e,level:n};const r=this.taskTree[e.id].map((t=>this.taskMap[t]));Array.isArray(r)&&t(r,n+1)}))};t(this.getTasks().filter((t=>!t.parentId)),1)}sortTasksByDate(t){const e=(e,n)=>new Date(e[t]).getTime()-new Date(n[t]).getTime(),n=(t,r)=>{t.sort(e),r&&(this.taskTree[r]=t.map((t=>t.id))),t.forEach((t=>{const e=this.taskTree[t.id].map((t=>this.getTaskById(t)));e&&e.length>0&&n(e,t.id)}))},r=this.taskTree[lo].map((t=>this.getTaskById(t)));n(r,lo)}validateTask(t){if("milestone"===t.type){if(!t.id||!t.startTime)throw new Error("Milestone must have an id and start date")}else if(!t.id||!t.startTime||!t.endTime)throw new Error("Task must have an id, start, and end date");return{...t,endTime:t.endTime||t.startTime,progress:t.progress??0,type:t.type??so.Task,level:1}}addDependency(t,e,n="FS"){this.dependencies.push({fromId:t,toId:e,type:n})}addTask(t){const e=this.validateTask(t);this.taskMap[e.id]=e,this.buildTaskTree(this.getTasks())}calculateProgress(){const t=this.getTasks(),e=t.reduce(((t,e)=>t+mr(e.endTime).diff(mr(e.startTime),"day")),0),n=t.reduce(((t,e)=>t+e.progress/100*mr(e.endTime).diff(mr(e.startTime),"day")),0);return e?n/e*100:0}getDateRange(t=0,e){const n=this.getTasks();if(0===n.length){const n=mr().startOf(e);let r=1;switch(e){case"day":r=30;break;case"week":case"month":default:r=12;break;case"quarter":r=4;break;case"year":r=5}const i=n.add(r+t,e);return[n,i]}const r=n.map((t=>mr(t.startTime))),i=n.filter((t=>!!t.endTime)).map((t=>mr(t.endTime)));return[mr.min(r),mr.max(i).add(t,e)]}getFlatSortedTasks(t,e=!1){let n=[];return t.forEach((t=>{n.push(t);const r=this.taskTree[t.id].map((t=>this.taskMap[t]));!e&&t.collapsed||!Array.isArray(r)||(n=n.concat(this.getFlatSortedTasks(r,e)))})),n}getFlatTasks(){return this.getFlatSortedTasks(this.taskTree[lo].map((t=>this.getTaskById(t))),!0)}getFlatVisibleTasks(){return this.getFlatSortedTasks(this.taskTree[lo].map((t=>this.getTaskById(t))))}getNestedChildTasks(t,e=!1){const n=[],r=t=>{var i;if(e&&(null==(i=this.taskMap[t])?void 0:i.collapsed))return;(this.taskTree[t]||[]).forEach((t=>{const e=this.taskMap[t];e&&(n.push(e),r(t))}))};return r(t),n}getTaskById(t){return this.taskMap[t]}getTaskDependencies(t){return{incoming:this.dependencies.filter((e=>e.toId===t)),outgoing:this.dependencies.filter((e=>e.fromId===t))}}getTasks(){return Object.values(this.taskMap)}getTopParentTasks(){return Object.values(this.taskMap).filter((t=>void 0===t.parentId&&t.type===so.Task))}hasChildren(t){return this.taskTree[t].length>0}removeDependency(t,e){this.dependencies=this.dependencies.filter((n=>!(n.fromId===t&&n.toId===e)))}removeTask(t){this.taskMap[t]=void 0,this.buildTaskTree(Object.values(this.taskMap))}setTasks(t){if(!Array.isArray(t))throw new Error("Tasks must be an array");const e=t.map((t=>this.validateTask(t)));this.taskMap={},this.dependencies=[],this.buildTaskTree(e),this.sortTasksByDate("startTime"),this.processLevel()}toggleTask(t){const e=this.getTaskById(t);this.taskMap[t]={...e,collapsed:!e.collapsed}}setArrowLinkInstanceId(t){this.arrowLinkInstanceId=t}updateDependencyArrows(t,e){const n=this.getTaskDependencies(t);[...n.incoming,...n.outgoing].forEach((t=>{const n=this.getTaskById(t.fromId),r=this.getTaskById(t.toId);if(n&&r){const n=(null==e?void 0:e.getInstanceId())||"unknown",r={fromId:t.fromId,toId:t.toId,type:t.type,chartInstanceId:n,arrowLinkInstanceId:this.arrowLinkInstanceId},i=new CustomEvent("dependency-arrow-update",{detail:r,bubbles:!1,cancelable:!1});e?e.dispatchEvent(i):(console.warn(`[${n}] No chartContext provided for dependency arrow update`),document.dispatchEvent(i))}}))}updateTask(t,e){const n=this.taskMap[t];if(!n)throw new Error(`Task with id "${t}" not found`);const r=this.validateTask({...n,...e});return this.taskMap[t]=r,this.buildTaskTree(this.getTasks()),r}}const co={1:["Jan","Feb","Mar"],2:["Apr","May","Jun"],3:["Jul","Aug","Sep"],4:["Oct","Nov","Dec"]};function ho(t,e,n){const r=[];let i=t.startOf(n);const o=e.startOf(n);for(;i.isSameOrBefore(o);)r.push(i),i=i.add(1,`${n}s`);return r}function fo(t,e){return ho(t,e,Li.Month)}function po(t,e){return ho(t,e,Li.Year)}function mo(t,e,n){const r=function(t,e){return ho(t,e,Li.Day)}(t,e),i=fo(t,e),o=r.map((t=>t.format("DD MMM")));return[i.map(((r,o)=>0===o?{data:r.format("MMM YYYY"),width:(r.daysInMonth()-t.date()+1)*n}:o===i.length-1?{data:r.format("MMM YYYY"),width:(r.daysInMonth()-(r.daysInMonth()-e.date()))*n}:{data:r.format("MMM YYYY"),width:r.daysInMonth()*n})),o]}function go(t,e,n){const r=function(t,e){return ho(t,e,Li.Week)}(t,e),i=fo(t,e),o=r.map((t=>`#${t.week()}, ${t.day(0).format("DD MMM")} - ${t.day(6).format("DD MMM")}`));return[i.map(((r,o)=>{if(0===o){const e=r.endOf("month").date()-t.date()+1;return{data:r.format("MMMM, YYYY"),width:(e<7?7:e)/7*n}}if(o===i.length-1){const t=e.date()-r.startOf("month").date()+1;return{data:r.format("MMMM, YYYY"),width:(t<7?7:t)/7*n}}const s=r.endOf("month").date()-r.startOf("month").date()+1;return{data:r.format("MMMM, YYYY"),width:(s<7?7:s)/7*n}})),o]}function yo(t,e,n){const r=function(t,e){const n=[];let r=t.startOf(Li.Quarter);const i=e.startOf(Li.Quarter);for(;r.isSameOrBefore(i);)n.push(r),r=r.add(1,`${Li.Quarter}s`);return n}(t,e),i=po(t,e),o=r.map((t=>{const e=co[t.quarter()];return`#${t.quarter()} ${e[0]}-${e[2]}`}));return[i.map(((r,o)=>0===o?{data:r.format("YYYY"),width:(5-t.quarter())*n}:o===i.length-1?{data:r.format("YYYY"),width:e.quarter()*n}:{data:r.format("YYYY"),width:4*n})),o]}class vo{constructor(t,e,n,r){this.viewMode=t,this.options=e,this.chartContext=n,this.dataManager=r}generateHeader(t,e){const n=ur(this.chartContext,{className:"timeline-header"}),r=ur(this.chartContext,{className:"timeline-header-row"}),{headerBackground:i,rowHeight:o,fontColor:s}=this.options,a=this.chartContext.getInstanceId();if(n.setAttribute("data-chart-instance",a),Di(t,(t=>{const n=ur(this.chartContext,{className:"timeline-header-cell",content:t.data,style:{height:e?`${o}px`:2*o+"px",minWidth:`${t.width}px`||"100%",color:s}});r.append(n)})),n.append(r),!e)return n.style.background=i,n;const l=ur(this.chartContext,{className:"timeline-header-row"});return Di(e,(t=>{const e=ur(this.chartContext,{className:"timeline-header-cell",content:t,style:{height:`${o}px`,maxWidth:`${Ri[this.viewMode]}px`,minWidth:`${Ri[this.viewMode]}px`,color:s}});l.append(e)})),n.append(l),n.style.background=i,n}generateRow(t,e){const n=ur(this.chartContext,{className:"timeline-data-row"}),{rowHeight:r}=this.options,i=this.chartContext.getInstanceId();n.setAttribute("data-taskid",t),n.setAttribute("data-chart-instance",i);for(let o=0;o<e;o++){const t=ur(this.chartContext,{className:"timeline-data-cell",style:{height:`${r}px`,minWidth:`${Ri[this.viewMode]}px`}});t.setAttribute("data-chart-instance",i),n.append(t)}return n}generateRows(t,e){const n=ur(this.chartContext,{className:"timeline-body"}),r=this.chartContext.getInstanceId();return n.setAttribute("data-chart-instance",r),t.forEach((t=>{const r=this.generateRow(t.id,e);n.append(r)})),this.fillEmptyRows(n,t.length,e),n}fillEmptyRows(t,e,n){const r=this.chartContext.querySelector(".gantt-container");if(!r)return;const i=r.clientHeight,o=this.options.rowHeight,s=i-2*o,a=Math.floor(s/o),l=Math.max(0,a-e);for(let u=0;u<l;u++){const e=this.generateRow(`empty-${u}`,n);e.classList.add("timeline-empty-row"),t.append(e)}}getHeaderData(t,e,n){return n===Li.Day?mo(t,e,Ri[this.viewMode]):n===Li.Week?go(t,e,Ri[this.viewMode]):n===Li.Month?function(t,e,n){const r=fo(t,e),i=po(t,e),o=r.map((t=>t.format("MMMM")));return[i.map(((r,o)=>0===o?{data:r.format("YYYY"),width:(12-t.month())*n}:o===i.length-1?{data:r.format("YYYY"),width:(e.month()+1)*n}:{data:r.format("YYYY"),width:12*n})),o]}(t,e,Ri[this.viewMode]):n===Li.Quarter?yo(t,e,Ri[this.viewMode]):n===Li.Year?function(t,e,n){return[po(t,e).map((t=>({data:t.format("YYYY"),width:n}))),null]}(t,e,Ri[this.viewMode]):null}render(){const t=this.dataManager.getFlatVisibleTasks(),e=this.dataManager.getDateRange(8,this.viewMode),n=this.getHeaderData(e[0],e[1],this.viewMode);if(!n)return null;const[r,i]=n,o=this.generateHeader(r,i),s=this.generateRows(t,(i||r).length),a=ur(this.chartContext,{className:"bar-container"}),l=ur(this.chartContext,{className:"annotation-container"});Di(t,((t,n)=>{const r=new Zi(t,e[0],this.options,this.viewMode,n,this.chartContext,this.dataManager).drawBar(((t,n)=>{oo(this.chartContext,this.dataManager,t,n,this.options,this.viewMode,e[0])}));a.append(r)}));const u=t.length*this.options.rowHeight,c=new ji(this.options,e[0],this.viewMode,this.chartContext,u).render();l.append(...c);const h=ur(this.chartContext,{className:"timeline-horizontal-scroll"}),d=ur(this.chartContext,{className:"timeline-horizontal-scroll-content"}),f=this.chartContext.getInstanceId();h.id=`timeline-horizontal-scroll-${f}`;const p=(i||r).length*Ri[this.viewMode];return d.style.width=`${p}px`,d.style.height="1px",h.appendChild(d),[o,l,s,a,h]}}const bo="\n .gantt-dialog-container {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: none;\n z-index: 999;\n overflow: hidden;\n }\n\n .gantt-dialog-container .dialog-overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.5);\n }\n\n .gantt-dialog-container .gantt-dialog {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background: var(--dialog-bg-color, white);\n border-radius: 4px;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n border: 1px solid var(--dialog-border-color, #eee);\n z-index: 1000;\n min-width: 300px;\n max-width: 90%;\n max-height: 90%;\n display: flex;\n flex-direction: column;\n }\n\n .gantt-dialog .dialog-header {\n padding: 12px 16px;\n border-bottom: 1px solid var(--dialog-border-color, #eee);\n display: flex;\n justify-content: space-between;\n align-items: center;\n background: var(--header-bg-color, #f3f3f3);\n flex-shrink: 0;\n }\n\n .gantt-dialog .dialog-title {\n font-weight: 600;\n font-size: 16px;\n color: var(--header-text-color, #333);\n margin: 0;\n }\n\n .gantt-dialog .dialog-close {\n background: none;\n border: none;\n font-size: 20px;\n cursor: pointer;\n padding: 0;\n color: var(--text-color, #666);\n transition: color 0.2s;\n line-height: 1;\n }\n\n .gantt-dialog .dialog-close:hover {\n color: var(--text-color, #333);\n }\n\n .gantt-dialog .dialog-content {\n padding: 16px;\n overflow-y: auto;\n overflow-x: hidden;\n flex: 1;\n background: var(--dialog-bg-color, white);\n color: var(--text-color, #333);\n }\n\n .gantt-dialog .dialog-content::-webkit-scrollbar {\n width: 8px;\n }\n\n .gantt-dialog .dialog-content::-webkit-scrollbar-track {\n background: var(--dialog-bg-color, #f1f1f1);\n }\n\n .gantt-dialog .dialog-content::-webkit-scrollbar-thumb {\n background: var(--border-color, #888);\n border-radius: 4px;\n }\n\n .gantt-dialog .dialog-content::-webkit-scrollbar-thumb:hover {\n background: var(--text-color, #555);\n }\n\n .gantt-dialog-container.show {\n display: block;\n }\n\n .gantt-dialog-container.animate .dialog-overlay {\n animation: fadeIn 0.2s ease-out;\n }\n\n .gantt-dialog-container.animate .gantt-dialog {\n animation: slideIn 0.3s ease-out;\n }\n\n @keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n\n @keyframes slideIn {\n from {\n opacity: 0;\n transform: translate(-50%, -48%);\n }\n to {\n opacity: 1;\n transform: translate(-50%, -50%);\n }\n }\n\n .gantt-container {\n position: relative;\n }\n",wo="\n .dropdown {\n position: relative;\n display: inline-block;\n }\n\n .dropdown .gantt-action-button {\n border-radius: 4px;\n }\n\n .dropdown.show .gantt-action-button {\n background: var(--toolbar-hover-bg-color, #f8f9fa);\n border-color: var(--button-bg-color, #0066cc);\n }\n \n .dropdown-btn {\n padding: 8px 16px;\n background-color: var(--toolbar-bg-color, #fff);\n color: var(--text-color, rgba(0, 0, 0, 0.7));\n border: 1px solid var(--toolbar-border-color, #ddd);\n cursor: pointer;\n font-weight: bold;\n border-radius: 2px;\n font-family: inherit;\n font-size: inherit;\n line-height: 1.5;\n transition: background-color 0.2s ease, border-color 0.2s ease;\n }\n \n .dropdown-btn:hover {\n background-color: var(--toolbar-hover-bg-color, #f8f9fa);\n border-color: var(--toolbar-border-color, #bbb);\n }\n \n .dropdown-btn:focus {\n outline: none;\n border-color: var(--button-bg-color, #0066cc);\n box-shadow: 0 0 0 2px rgba(0, 102, 204, 0.2);\n }\n \n .dropdown-content {\n display: none;\n position: absolute;\n background-color: var(--dialog-bg-color, #fff);\n min-width: 160px;\n box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n border-radius: 4px;\n right: 0;\n top: calc(100% + 4px);\n border: 1px solid var(--dialog-border-color, #D9D9D9);\n overflow: hidden;\n }\n \n .dropdown-content a {\n color: var(--text-color, #333);\n padding: 10px 14px;\n text-decoration: none;\n display: block;\n font-family: inherit;\n font-size: 13px;\n line-height: 1.4;\n transition: background-color 0.2s ease;\n cursor: pointer;\n }\n \n .dropdown-content a:hover {\n background-color: var(--toolbar-hover-bg-color, #f1f1f1);\n }\n \n .dropdown-content a:focus {\n background-color: var(--button-hover-bg-color, #e6f3ff);\n outline: none;\n }\n \n .dropdown.show .dropdown-content {\n display: block;\n animation: dropdownSlideDown 0.2s ease-out;\n }\n \n @keyframes dropdownSlideDown {\n from {\n opacity: 0;\n transform: translateY(-5px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n \n /* Shadow DOM specific adjustments */\n :host .dropdown {\n position: relative;\n display: inline-block;\n }\n",xo="\n * {\n box-sizing: border-box;\n }\n\n .gantt-container * {\n user-select: none;\n }\n\n .gantt-actions-container {\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 6px 10px;\n flex: 0 0 36px;\n min-height: 36px;\n max-height: 36px;\n background-color: var(--background-color, #FFFFFF);\n border-bottom: 1px solid var(--border-color, #DFE0E1);\n }\n\n .gantt-actions-spacer {\n flex: 1;\n min-width: 8px;\n }\n\n .gantt-action-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 0;\n border: 0;\n border-radius: 4px;\n background: var(--toolbar-bg-color, #fff);\n color: var(--text-color, #333);\n cursor: pointer;\n transition: all 0.15s ease;\n flex-shrink: 0;\n }\n\n .gantt-action-button:hover:not(:disabled) {\n background: var(--toolbar-hover-bg-color, #f8f9fa);\n border-color: var(--toolbar-border-color, #999);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);\n }\n\n .gantt-action-button:active:not(:disabled) {\n transform: translateY(0);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n }\n\n .gantt-action-button:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n background: var(--toolbar-bg-color, #fafafa);\n }\n\n .gantt-action-button svg {\n width: 16px;\n height: 16px;\n stroke: currentColor;\n flex-shrink: 0;\n }\n\n .gantt-action-separator {\n width: 1px;\n height: 20px;\n background-color: var(--border-color, #DFE0E1);\n margin: 0 4px;\n flex-shrink: 0;\n }\n\n .gantt-view-mode-display {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 4px 10px;\n height: 28px;\n font-size: 13px;\n color: var(--text-color, #666);\n background: var(--toolbar-bg-color, #f8f9fa);\n border-radius: 4px;\n margin-left: 4px;\n font-weight: 500;\n white-space: nowrap;\n flex-shrink: 0;\n }\n\n .gantt-view-mode-display svg {\n width: 14px;\n height: 14px;\n flex-shrink: 0;\n }\n \n .gantt-container {\n display: flex;\n flex: 1 1 auto;\n min-height: 0;\n min-width: 0;\n border: 1px solid var(--border-color, #DFE0E1);\n border-top: none;\n position: relative;\n background-color: var(--background-color, #FFFFFF);\n overflow: hidden;\n height: 100%;\n box-sizing: border-box;\n }\n \n .gantt-button {\n border: 1px solid var(--toolbar-border-color, #D9D9D9);\n border-radius: 2px;\n background: var(--toolbar-bg-color, #fff);\n padding: 4px 12px;\n color: var(--text-color, rgba(0, 0, 0, 0.7));\n line-height: 20px;\n font-weight: bold;\n cursor: pointer;\n transition: background-color 0.2s ease;\n }\n\n .gantt-button:hover {\n background: var(--toolbar-hover-bg-color, #f8f9fa);\n }\n \n .gantt-button:disabled {\n color: rgba(128, 128, 128, 0.5);\n opacity: 0.6;\n }\n",_o="\n .gantt-container ::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n }\n\n .gantt-container ::-webkit-scrollbar-track {\n background: var(--scrollbar-track-color, #F5F5F5);\n border-radius: 4px;\n }\n\n .gantt-container ::-webkit-scrollbar-thumb {\n background: var(--scrollbar-thumb-color, #C1C1C1);\n border-radius: 4px;\n border: 2px solid var(--scrollbar-track-color, #F5F5F5);\n }\n\n .gantt-container ::-webkit-scrollbar-thumb:hover {\n background: var(--scrollbar-thumb-hover-color, #A8A8A8);\n }\n\n .gantt-container * {\n scrollbar-width: thin;\n scrollbar-color: var(--scrollbar-thumb-color, #C1C1C1) var(--scrollbar-track-color, #F5F5F5);\n }\n\n /* Shadow DOM support */\n :host .gantt-container ::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n }\n\n :host .gantt-container ::-webkit-scrollbar-track {\n background: var(--scrollbar-track-color, #F5F5F5);\n border-radius: 4px;\n }\n\n :host .gantt-container ::-webkit-scrollbar-thumb {\n background: var(--scrollbar-thumb-color, #C1C1C1);\n border-radius: 4px;\n border: 2px solid var(--scrollbar-track-color, #F5F5F5);\n }\n\n :host .gantt-container ::-webkit-scrollbar-thumb:hover {\n background: var(--scrollbar-thumb-hover-color, #A8A8A8);\n }\n\n :host .gantt-container * {\n scrollbar-width: thin;\n scrollbar-color: var(--scrollbar-thumb-color, #C1C1C1) var(--scrollbar-track-color, #F5F5F5);\n }\n",ko='\n\n .task-form {\n overflow: visible;\n }\n\n .task-form .form-group {\n margin-bottom: 18px;\n position: relative;\n }\n\n /* extra padding to last form group for breathing room */\n .task-form .form-group:last-of-type {\n margin-bottom: 24px;\n }\n\n .task-form label {\n display: block;\n margin-bottom: 5px;\n font-weight: 500;\n color: var(--text-color, #333);\n }\n\n .task-form input {\n width: 100%;\n padding: 8px;\n border: 1px solid var(--dialog-border-color, #ddd);\n border-radius: 4px;\n font-size: 14px;\n background-color: var(--dialog-bg-color, #fff);\n color: var(--text-color, #333);\n }\n\n .task-form input:focus {\n outline: none;\n border-color: var(--button-bg-color, #0066cc);\n }\n\n .task-form .grid {\n display: flex;\n justify-content: space-between;\n gap: 12px;\n }\n\n .task-form .grid .form-group {\n flex: 1;\n }\n\n .task-form .form-actions {\n display: flex;\n justify-content: flex-end;\n gap: 8px;\n margin-top: 24px;\n padding-top: 16px;\n border-top: 1px solid var(--dialog-border-color, #eee);\n position: sticky;\n bottom: -16px;\n background: var(--dialog-bg-color, white);\n margin-left: -16px;\n margin-right: -16px;\n margin-bottom: -16px;\n padding-left: 16px;\n padding-right: 16px;\n padding-bottom: 16px;\n }\n\n .task-form .btn-primary {\n background: var(--button-bg-color, #0066cc);\n color: var(--button-text-color, white);\n border: none;\n padding: 8px 16px;\n border-radius: 4px;\n cursor: pointer;\n font-weight: 500;\n }\n\n .task-form .btn-primary:hover {\n background: var(--button-hover-bg-color, #0052a3);\n }\n\n .task-form .btn-disabled,\n .task-form .btn-disabled:hover {\n background: #99c2ff;\n cursor: not-allowed;\n opacity: 0.7;\n }\n\n .task-form .form-error {\n position: absolute;\n bottom: -15px;\n left: 0;\n color: #dc3545;\n font-size: 12px;\n margin-top: 4px;\n line-height: 1.2;\n transition: opacity 0.2s ease;\n }\n\n .task-form .invalid {\n border-color: #dc3545;\n }\n\n .task-form .invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n }\n\n .color-picker-wrapper {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .color-picker-wrapper input[type="color"] {\n -webkit-appearance: none;\n width: 32px;\n height: 32px;\n padding: 0;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n }\n\n .color-picker-wrapper input[type="color"]::-webkit-color-swatch-wrapper {\n padding: 0;\n }\n\n .color-picker-wrapper input[type="color"]::-webkit-color-swatch {\n border: 1px solid var(--dialog-border-color, #ddd);\n border-radius: 4px;\n }\n\n .color-picker-wrapper .color-preview {\n font-size: 12px;\n color: var(--text-color, #666);\n }\n',Co="\n .tasks-container {\n height: 100%;\n position: relative;\n display: flex;\n flex-direction: column;\n overflow-x: visible;\n overflow-y: visible;\n }\n\n .tasks-header {\n flex-shrink: 0;\n position: sticky;\n top: 0;\n z-index: 10;\n background-color: var(--header-bg-color, #F3F3F3);\n overflow: hidden;\n }\n\n .tasks-header-row {\n display: grid;\n width: 100%;\n }\n\n .tasks-header-cell {\n padding: 0 10px;\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: flex;\n align-items: center;\n border: var(--cell-border-width, 1px) solid var(--cell-border-color, #eff0f0);\n color: var(--text-color, #000);\n box-sizing: border-box;\n font-weight: 600;\n }\n\n .tasks-body-wrapper {\n flex: 1;\n overflow: visible;\n position: relative;\n }\n\n .tasks-data-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n }\n\n .tasks-data-row {\n display: grid;\n width: 100%;\n border-bottom: var(--cell-border-width, 1px) solid var(--cell-border-color, #eff0f0);\n box-sizing: border-box;\n }\n\n .tasks-data-cell {\n padding: 0 10px;\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: flex;\n align-items: center;\n border-left: var(--cell-border-width, 1px) solid var(--cell-border-color, #eff0f0);\n border-right: var(--cell-border-width, 1px) solid var(--cell-border-color, #eff0f0);\n color: var(--text-color, #000);\n box-sizing: border-box;\n }\n\n .tasks-data-row .tasks-data-cell:first-child {\n border-left: none;\n }\n\n .tasks-data-row .tasks-data-cell:last-child {\n border-right: none;\n }\n\n .tasks-data-row .task-toggle-icon,\n .tasks-data-row .task-toggle-icon-blank {\n display: inline-block;\n margin-right: 5px;\n width: 10px;\n height: 10px;\n vertical-align: middle;\n flex-shrink: 0;\n }\n\n .tasks-data-row .task-toggle-icon {\n cursor: pointer;\n position: relative;\n }\n\n /* Chevron (expanded) - pointing down */\n .tasks-data-row .task-toggle-icon.expanded::before {\n content: '';\n position: absolute;\n width: 6px;\n height: 6px;\n border-right: 2px solid var(--text-color, #000000);\n border-bottom: 2px solid var(--text-color, #000000);\n transform: rotate(45deg);\n top: 0;\n left: 2px;\n }\n\n /* Chevron - pointing right (collapsed) */\n .tasks-data-row .task-toggle-icon.collapsed::before {\n content: '';\n position: absolute;\n width: 6px;\n height: 6px;\n border-right: 2px solid var(--text-color, #000000);\n border-bottom: 2px solid var(--text-color, #000000);\n transform: rotate(-45deg);\n top: 2px;\n left: 0;\n }\n\n .tasks-data-row .task-toggle-icon:hover::before {\n opacity: 0.7;\n }\n\n /* Shadow DOM specific */\n :host .tasks-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n :host .tasks-header {\n position: sticky;\n top: 0;\n z-index: 10;\n }\n",So="\n .gantt-container .timeline-container {\n width: 100%;\n height: 100%;\n position: relative;\n background-color: var(--background-color, #FFFFFF);\n display: flex;\n flex-direction: column;\n overflow: visible;\n padding-bottom: 0;\n box-sizing: border-box;\n }\n\n .timeline-container .timeline-header {\n position: sticky;\n top: 0;\n z-index: 100;\n background-color: var(--header-bg-color, #F3F3F3);\n flex-shrink: 0;\n overflow-x: auto;\n overflow-y: hidden;\n width: 100%;\n scrollbar-width: none; \n -ms-overflow-style: none; \n }\n\n .timeline-container .timeline-header::-webkit-scrollbar {\n display: none;\n height: 0;\n width: 0;\n }\n\n /* Shadow DOM specific */\n :host .timeline-container .timeline-header {\n scrollbar-width: none !important;\n -ms-overflow-style: none !important;\n }\n\n :host .timeline-container .timeline-header::-webkit-scrollbar {\n display: none !important;\n height: 0 !important;\n width: 0 !important;\n }\n\n .timeline-container .timeline-header > .timeline-header-row {\n width: max-content;\n position: relative;\n }\n\n .timeline-container .timeline-body-wrapper {\n flex: 1;\n overflow-x: auto;\n overflow-y: hidden;\n position: relative;\n width: 100%;\n min-height: 0;\n scrollbar-width: none;\n -ms-overflow-style: none;\n padding-bottom: 0; \n margin-bottom: 0;\n }\n\n .timeline-body-wrapper .timeline-horizontal-scroll, .timeline-container .timeline-body-wrapper::-webkit-scrollbar {\n display: none;\n height: 0;\n width: 0;\n }\n\n /* shadow DOM specific */\n :host .timeline-container .timeline-body-wrapper {\n scrollbar-width: none !important;\n -ms-overflow-style: none !important;\n }\n\n :host .timeline-container .timeline-body-wrapper::-webkit-scrollbar {\n display: none !important;\n height: 0 !important;\n width: 0 !important;\n }\n\n\n .timeline-horizontal-scroll {\n position: absolute;\n bottom: 0;\n height: 17px;\n overflow-x: auto;\n overflow-y: hidden;\n z-index: 300;\n background-color: var(--split-bar-color, var(--background-color, #FFFFFF));\n border-top: 1px solid var(--border-color, #DFE0E1);\n box-sizing: border-box;\n display: block;\n visibility: visible;\n opacity: 1;\n pointer-events: auto;\n }\n\n .timeline-horizontal-scroll-content {\n height: 1px;\n width: max-content;\n }\n\n .timeline-container .annotation,\n .timeline-container .annotation-container {\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n }\n\n .timeline-container .annotation-container > * {\n pointer-events: auto;\n }\n\n .timeline-container .bar-container {\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n }\n\n .timeline-container .bar-container > * {\n pointer-events: auto;\n }\n\n .timeline-container .bar-timeline {\n position: absolute;\n cursor: move;\n cursor: grab;\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .timeline-container .bar-timeline .bar-handle {\n height: 100%;\n width: 5px;\n position: absolute;\n z-index: 1000;\n background: transparent;\n }\n\n .timeline-container .bar-timeline .bar-handle:hover {\n cursor: col-resize;\n }\n\n .resizing {\n pointer-events: none;\n opacity: 0.8;\n }\n\n .timeline-container .bar-timeline .bar-handle.handle-left {\n left: -5px;\n }\n\n .timeline-container .bar-timeline .bar-handle.handle-right {\n right: -5px;\n }\n\n .timeline-container .bar-timeline.dragging {\n cursor: grabbing;\n }\n\n .bar-timeline .bar-timeline-progress {\n position: absolute;\n pointer-events: none;\n height: 100%;\n left: 0;\n }\n\n .bar-timeline .bar-label {\n white-space: nowrap;\n pointer-events: none;\n overflow: hidden;\n z-index: 1;\n }\n\n .timeline-container .timeline-body {\n width: max-content;\n position: relative;\n padding-bottom: 17px;\n }\n \n .timeline-container .timeline-header-row,\n .timeline-container .timeline-data-row {\n display: flex;\n }\n\n .timeline-container .timeline-header-cell,\n .timeline-container .timeline-data-cell {\n padding: 0 10px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: flex;\n align-items: center;\n justify-content: center;\n border: var(--cell-border-width, 1px) solid var(--cell-border-color, #eff0f0);\n color: var(--text-color, #000);\n }\n\n .timeline-container .timeline-header-cell {\n background-color: var(--header-bg-color, #F3F3F3);\n color: var(--header-text-color, #333);\n }\n",Eo='\n #apexgantt-tooltip-container,\n [role="tooltip"] {\n position: absolute;\n z-index: 1000;\n pointer-events: none;\n opacity: 0;\n visibility: hidden;\n transition: opacity 0.2s ease;\n font-family: inherit;\n font-size: 13px;\n line-height: 1.4;\n display: none;\n width: 300px !important;\n max-width: 300px !important;\n box-sizing: border-box;\n }\n \n #apexgantt-tooltip-container.visible,\n [role="tooltip"].visible {\n display: block;\n opacity: 1;\n visibility: visible;\n }\n \n #apexgantt-tooltip-container .tooltip-content,\n [role="tooltip"] .tooltip-content {\n padding: 12px 16px;\n border-radius: 6px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);\n width: 100%;\n word-wrap: break-word;\n overflow-wrap: break-word;\n box-sizing: border-box;\n display: block;\n border: 1px solid rgba(255, 255, 255, 0.1);\n }\n \n /* Shadow DOM specific adjustments */\n :host #apexgantt-tooltip-container,\n :host [role="tooltip"] {\n position: absolute;\n z-index: 1000;\n pointer-events: none;\n opacity: 0;\n visibility: hidden;\n transition: opacity 0.2s ease;\n font-family: inherit;\n font-size: 13px;\n line-height: 1.4;\n display: none;\n width: 300px !important;\n max-width: 300px !important;\n box-sizing: border-box;\n }\n \n :host #apexgantt-tooltip-container.visible,\n :host [role="tooltip"].visible {\n display: block;\n opacity: 1;\n visibility: visible;\n }\n\n #apexgantt-tooltip-container .tooltip-content div,\n [role="tooltip"] .tooltip-content div {\n margin: 6px 0;\n word-break: break-word;\n line-height: 1.4;\n }\n \n #apexgantt-tooltip-container .tooltip-content strong,\n [role="tooltip"] .tooltip-content strong {\n font-weight: 600;\n display: inline;\n margin-right: 8px;\n }\n \n #apexgantt-tooltip-container .tooltip-content span,\n [role="tooltip"] .tooltip-content span {\n display: inline;\n }\n \n /* First item (Name) styling */\n #apexgantt-tooltip-container .tooltip-content div:first-child,\n [role="tooltip"] .tooltip-content div:first-child {\n margin-bottom: 10px;\n padding-bottom: 8px;\n border-bottom: 1px solid rgba(255, 255, 255, 0.2);\n }\n \n #apexgantt-tooltip-container .tooltip-content div:first-child strong,\n [role="tooltip"] .tooltip-content div:first-child strong {\n font-weight: 700;\n }\n \n #apexgantt-tooltip-container .tooltip-content div:last-child,\n [role="tooltip"] .tooltip-content div:last-child {\n margin-bottom: 0;\n }\n',To="\n #toolbar {\n display: flex;\n gap: 5px;\n position: absolute;\n right: 10px;\n top: 10px;\n z-index: 100;\n }\n \n .toolbar-item {\n align-items: center;\n background-color: var(--toolbar-bg-color, #FFFFFF);\n border: 1px solid var(--toolbar-border-color, #BCBCBC);\n cursor: pointer;\n display: flex;\n height: 30px;\n justify-content: center;\n width: 30px;\n border-radius: 3px;\n transition: all 0.2s ease;\n position: relative;\n }\n \n .toolbar-item:hover {\n background-color: var(--toolbar-hover-bg-color, #f8f9fa);\n border-color: var(--toolbar-border-color, #999);\n transform: translateY(-1px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n }\n \n .toolbar-item:active {\n transform: translateY(0);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n }\n \n .toolbar-item:focus {\n outline: none;\n border-color: var(--button-bg-color, #0066cc);\n box-shadow: 0 0 0 2px rgba(0, 102, 204, 0.2);\n }\n \n .toolbar-item img {\n width: 16px;\n height: 16px;\n pointer-events: none;\n filter: var(--toolbar-icon-filter, none);\n }\n \n .toolbar-item[disabled] {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n }\n \n /* Tooltip styles */\n .toolbar-item::after {\n content: attr(data-tooltip);\n position: absolute;\n bottom: -35px;\n left: 50%;\n transform: translateX(-50%);\n background: var(--tooltip-bg-color, #333);\n color: var(--tooltip-text-color, white);\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 12px;\n white-space: nowrap;\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s ease;\n z-index: 1000;\n }\n \n .toolbar-item::before {\n content: '';\n position: absolute;\n bottom: -25px;\n left: 50%;\n transform: translateX(-50%);\n border: 5px solid transparent;\n border-bottom-color: var(--tooltip-bg-color, #333);\n opacity: 0;\n pointer-events: none;\n transition: opacity 0.2s ease;\n z-index: 1000;\n }\n \n .toolbar-item:hover::after,\n .toolbar-item:hover::before {\n opacity: 1;\n }\n \n /* Shadow DOM specific adjustments */\n :host #toolbar {\n display: flex;\n gap: 5px;\n position: absolute;\n right: 10px;\n top: 10px;\n z-index: 100;\n }\n",Mo={paddingX:20,paddingY:15};class Ao{constructor(t){this.elements=[],this.chartContext=null,this.instanceId=t||Math.random().toString(36).substr(2,9)}getInstanceId(){return this.instanceId}static calculateArrowPath(t,e,n,r){const i=sn(t,n),o=sn(e,n),s=i.right,a=i.top+i.height/2,l=o.left-2,u=o.top+o.height/2,{paddingX:c,paddingY:h}=r,d=[`M ${s},${a}`];if(l>s){if(u<a){const t=s+c,e=a-h,n=l-c,r=u+h;d.push(`L ${t},${a}`),d.push(`L ${t},${e}`),d.push(`L ${n},${e}`),d.push(`L ${n},${r}`),d.push(`L ${n},${u}`)}else if(u>a){const t=(s+l)/2;if(l-s<20){const t=s+c,e=a+h,n=l-c,r=u-h;d.push(`L ${t},${a}`),d.push(`L ${t},${e}`),d.push(`L ${n},${e}`),d.push(`L ${n},${r}`),d.push(`L ${n},${u}`)}else d.push(`L ${t},${a}`);d.push(`L ${t},${u}`)}}else if(l<s)if(u!==a){const t=s+c,e=a+h*(u<a?-1:1),n=l-c,r=u+h*(u<a?1:-1);d.push(`L ${t},${a}`),d.push(`L ${t},${e}`),d.push(`L ${n},${e}`),d.push(`L ${n},${r}`),d.push(`L ${n},${u}`)}else{const t=s+c,e=a+h,n=l-c,r=u;d.push(`L ${t},${a}`),d.push(`L ${t},${e}`),d.push(`L ${n},${e}`),d.push(`L ${n},${r}`)}return d.push(`L ${l},${u}`),d.join(" ")}static drawArrow(t,e,n,r,i,o,s){const a=s?s.createElementNS("http://www.w3.org/2000/svg","path"):document.createElementNS("http://www.w3.org/2000/svg","path"),l=Ao.calculateArrowPath(t,e,n,r);a.setAttribute("d",l);const u=r.arrowColor||"#0D6EFD";a.setAttribute("stroke",u),a.setAttribute("stroke-width","2"),a.setAttribute("fill","transparent");const c=o?`arrowhead-${o}`:"arrowhead";return a.setAttribute("marker-end",`url(#${c})`),a.setAttribute("data-edgeid",i),a.addEventListener("mouseout",(function(){a.setAttribute("stroke",u)})),a}static updateArrow(t,e,n,r,i){const o=n.querySelector(`[data-edgeid="${i}"]`),s=Ao.calculateArrowPath(t,e,n,r);o&&o.setAttribute("d",s)}createMarker(t){const e=t?t.createElementNS("http://www.w3.org/2000/svg","marker"):document.createElementNS("http://www.w3.org/2000/svg","marker"),n=`arrowhead-${this.instanceId}`;e.setAttribute("id",n),e.setAttribute("markerWidth","5"),e.setAttribute("markerHeight","5"),e.setAttribute("refX","4"),e.setAttribute("refY","2.5"),e.setAttribute("orient","auto"),e.setAttribute("fill","context-stroke");const r=t?t.createElementNS("http://www.w3.org/2000/svg","polygon"):document.createElementNS("http://www.w3.org/2000/svg","polygon");return r.setAttribute("points","0,0 5,2.5 0,5 1, 2.5"),e.appendChild(r),e}render(t,e,n,r){this.chartContext=r||null;const i=`timeline-arrows-${this.instanceId}`;let o=t.querySelector(`#${i}`);o||(o=r?r.createElementNS("http://www.w3.org/2000/svg","svg"):document.createElementNS("http://www.w3.org/2000/svg","svg"),o.setAttribute("id",i),t.appendChild(o)),this.svg=o,this.options={...Mo,...n},this.elements=e,this.svg.setAttribute("style",lr({left:"0",position:"absolute",top:"0"})),this.svg.innerHTML="";const s=r?r.createElementNS("http://www.w3.org/2000/svg","defs"):document.createElementNS("http://www.w3.org/2000/svg","defs"),a=this.createMarker(r);return s.appendChild(a),this.svg.appendChild(s),this.svg.setAttribute("width",`${this.options.width}`),this.svg.setAttribute("height",`${this.options.height}`),this.elements.forEach((({id:t,source:e,target:n})=>{this.svg.appendChild(Ao.drawArrow(e,n,this.svg,this.options,t,this.instanceId,r))})),this.svg}}function Do(t,e){t&&Object.assign(t.style,e)}function $o(t){const e=[];for(let i=0;i<document.styleSheets.length;i++)try{const t=document.styleSheets[i];if(t.href&&!t.href.startsWith(window.location.origin))continue;if(t.cssRules)for(let n=0;n<t.cssRules.length;n++)e.push(t.cssRules[n].cssText)}catch(r){continue}document.querySelectorAll("style").forEach((t=>{t.textContent&&e.push(t.textContent)}));const n=function(t){const e=window.getComputedStyle(t),n=[];for(let r=0;r<t.style.length;r++){const e=t.style[r];if(e.startsWith("--")){const r=t.style.getPropertyValue(e);n.push(`${e}: ${r};`)}}return Array.from(e).forEach((t=>{if(t.startsWith("--")){const r=`${t}: ${e.getPropertyValue(t)};`;n.includes(r)||n.push(r)}})),0===n.length?"":`:root {\n ${n.join("\n ")}\n}`}(t);return n&&e.unshift(n),e.join("\n")}function zo(t,e){const{contentWidth:n}=e,r=t.querySelector(".timeline-horizontal-scroll");null==r||r.remove();const i=t.querySelector(".timeline-container"),o=t.querySelector(".tasks-container"),s=t.querySelector(".timeline-body-wrapper"),a=t.querySelector(".timeline-header"),l=t.querySelector(".timeline-body"),u=t.querySelector(".bar-container"),c=t.querySelector(".annotation-container");var h;Do(i,{overflow:"visible",maxWidth:"none",width:"auto",position:"relative"}),Do(o,{overflow:"visible",height:"auto",maxHeight:"none"}),Do(s,{overflow:"visible",maxWidth:"none",width:`${n}px`}),s&&(s.scrollLeft=0),Do(a,{overflow:"visible",maxWidth:"none",width:`${n}px`}),a&&(a.scrollLeft=0),h={width:`${n}px`,minWidth:`${n}px`,maxWidth:"none"},[l,u,c].forEach((t=>Do(t,h)))}const Oo=async t=>{try{const e=function(t){const e=t.querySelector(".gantt-container");if(!e)throw new Error("Gantt container not found");const n=e.querySelector(".timeline-container"),r=e.querySelector(".tasks-container");if(!n||!r)throw new Error("Timeline or tasks container not found");return{ganttContainer:e,timelineContainer:n,tasksContainer:r,horizontalScroll:e.querySelector(".timeline-horizontal-scroll"),timelineBodyWrapper:n.querySelector(".timeline-body-wrapper"),timelineHeader:n.querySelector(".timeline-header"),timelineBody:n.querySelector(".timeline-body"),barContainer:n.querySelector(".bar-container"),annotationContainer:n.querySelector(".annotation-container")}}(t),n=function(t){var e,n,r,i;const o=Math.max((null==(e=t.timelineBody)?void 0:e.scrollWidth)||0,(null==(n=t.barContainer)?void 0:n.scrollWidth)||0,(null==(r=t.annotationContainer)?void 0:r.scrollWidth)||0,(null==(i=t.timelineHeader)?void 0:i.scrollWidth)||0),s=t.tasksContainer.scrollWidth;return{contentWidth:o,tasksWidth:s,totalWidth:s+o,totalHeight:Math.max(t.timelineContainer.scrollHeight,t.tasksContainer.scrollHeight)}}(e),r=e.ganttContainer.cloneNode(!0);zo(r,n),Do(r,{display:"flex",overflow:"visible",width:"fit-content",height:"auto"});const i=$o(t),o=document.createElement("style");o.textContent=i,r.insertBefore(o,r.firstChild);const s=document.createElementNS("http://www.w3.org/2000/svg","svg");s.setAttribute("width",n.totalWidth.toString()),s.setAttribute("height",n.totalHeight.toString()),s.setAttribute("xmlns","http://www.w3.org/2000/svg"),s.setAttribute("viewBox",`0 0 ${n.totalWidth} ${n.totalHeight}`);const a=document.createElementNS("http://www.w3.org/2000/svg","foreignObject");a.setAttribute("width",n.totalWidth.toString()),a.setAttribute("height",n.totalHeight.toString()),a.setAttribute("x","0"),a.setAttribute("y","0"),a.appendChild(r),s.appendChild(a);const l='<?xml version="1.0" encoding="UTF-8"?>\n'+(new XMLSerializer).serializeToString(s),u=new Blob([l],{type:"image/svg+xml;charset=utf-8"}),c=URL.createObjectURL(u),h=document.createElement("a");h.href=c,h.download=`gantt-chart-${Date.now()}.svg`,document.body.appendChild(h),h.click(),document.body.removeChild(h),setTimeout((()=>URL.revokeObjectURL(c)),100)}catch(e){throw console.error("Error exporting gantt chart:",e),e}},Io={zoomIn:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <circle cx="11" cy="11" r="8"/>\n <path d="m21 21-4.35-4.35"/>\n <line x1="11" y1="8" x2="11" y2="14"/>\n <line x1="8" y1="11" x2="14" y2="11"/>\n </svg>',zoomOut:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <circle cx="11" cy="11" r="8"/>\n <path d="m21 21-4.35-4.35"/>\n <line x1="8" y1="11" x2="14" y2="11"/>\n </svg>',calendar:'<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <rect x="3" y="4" width="18" height="18" rx="2" ry="2"/>\n <line x1="16" y1="2" x2="16" y2="6"/>\n <line x1="8" y1="2" x2="8" y2="6"/>\n <line x1="3" y1="10" x2="21" y2="10"/>\n </svg>',chevronDown:'<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <polyline points="6 9 12 15 18 9"/>\n </svg>',download:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/>\n <polyline points="7 10 12 15 17 10"/>\n <line x1="12" y1="15" x2="12" y2="3"/>\n </svg>'};class Fo{constructor(t,e,n,r={}){this.chartContext=t,this.leftContent=e,this.rightContent=n,this.options=r,this.isDragging=!1,this.mouseMoveHandler=null,this.mouseUpHandler=null}getSplitViewStyles(){return"\n .split-view-container {\n display: flex !important;\n height: 100%;\n width: 100%;\n position: relative;\n box-sizing: border-box;\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n .split-view-container .split-left-container {\n flex-grow: 0 !important;\n flex-shrink: 1 !important;\n overflow: visible;\n display: flex !important;\n flex-direction: column;\n position: relative;\n box-sizing: border-box;\n height: fit-content;\n min-height: 100%;\n }\n\n .split-view-container .split-right-container {\n overflow: visible;\n position: relative;\n flex: 1 !important;\n display: flex !important;\n flex-direction: column;\n min-width: 0;\n box-sizing: border-box;\n height: fit-content;\n min-height: 100%;\n }\n \n .split-view-container .split-bar-container {\n cursor: col-resize !important;\n user-select: none !important;\n height: 100%;\n align-items: center;\n background: var(--split-bar-color, #DEE2E6);\n display: flex;\n flex: 0 0 auto;\n justify-content: center;\n min-width: 8px;\n width: 8px;\n z-index: 15;\n position: sticky;\n top: 0;\n box-sizing: border-box;\n border-left: 1px solid var(--split-bar-border-color, #BBBBBB);\n border-right: 1px solid var(--split-bar-border-color, #BBBBBB);\n opacity: 1;\n visibility: visible;\n box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);\n transition: background-color 0.2s ease, border-color 0.2s ease;\n }\n\n .split-view-container .split-bar-container:hover {\n background: var(--split-bar-hover-color, #007BFF);\n border-color: var(--split-bar-hover-border-color, #0056B3);\n }\n\n .split-view-container .split-bar-container .resize-handler {\n border-left: 1.5px solid var(--split-bar-handle-color, #666666);\n border-right: 1.5px solid var(--split-bar-handle-color, #666666);\n height: 20px;\n width: 4px;\n position: relative;\n pointer-events: none;\n box-sizing: border-box;\n background: rgba(102, 102, 102, 0.3);\n display: block;\n border-radius: 1px;\n margin: 0;\n padding: 0;\n opacity: 1;\n visibility: visible;\n transition: background-color 0.2s ease, border-color 0.2s ease;\n }\n\n .split-view-container .split-bar-container:hover .resize-handler {\n background: rgba(255, 255, 255, 0.9);\n border-color: #FFFFFF;\n }\n\n .split-view-container.dragging {\n user-select: none;\n cursor: col-resize;\n }\n\n .split-view-container.dragging * {\n pointer-events: none;\n }\n\n .split-view-container.dragging .split-bar-container {\n pointer-events: all;\n }\n\n :host .split-view-container {\n display: flex !important;\n height: auto;\n width: 100%;\n position: relative;\n box-sizing: border-box;\n overflow-y: auto; /* shadow DOM */\n }\n "}injectStyles(){this.chartContext.injectStyles(this.getSplitViewStyles(),"split-view-styles",{priority:"normal"})}buildElements(){const{leftContainerClass:t="",leftContainerWidth:e=425,rightContainerClass:n=""}=this.options;this.leftContainer=ur(this.chartContext,{className:"split-left-container"+(t?" "+t:""),style:{flexBasis:`${e}px`}}),this.rightContainer=ur(this.chartContext,{className:"split-right-container"+(n?" "+n:"")});const r=ur(this.chartContext,{className:"resize-handler"}),i=ur(this.chartContext,{className:"split-bar-click-area"});i.style.cssText="\n position: absolute;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n width: 20px;\n height: 100%;\n cursor: col-resize;\n z-index: 10;\n background: transparent;\n display: block;\n box-sizing: border-box;\n ",this.splitBarContainer=ur(this.chartContext,{className:"split-bar-container"}),this.splitBarContainer.setAttribute("role","separator"),this.splitBarContainer.setAttribute("aria-orientation","vertical"),this.splitBarContainer.setAttribute("aria-label","Resize panels"),this.splitBarContainer.setAttribute("tabindex","0"),this.splitBarContainer.append(r,i),zi.isArray(this.leftContent)?this.leftContainer.append(...this.leftContent):this.leftContainer.append(this.leftContent),zi.isArray(this.rightContent)?this.rightContainer.append(...this.rightContent):this.rightContainer.append(this.rightContent)}attachEventListeners(){this.splitBarContainer.addEventListener("mousedown",(t=>{t.preventDefault(),this.isDragging=!0;const e=this.splitBarContainer.closest(".split-view-container");null==e||e.classList.add("dragging"),this.mouseMoveHandler=t=>{var e;if(!this.isDragging)return;const n=null==(e=this.leftContainer.parentElement)?void 0:e.getBoundingClientRect();if(!n)return;const r=t.clientX-n.left,i=n.width-50,o=Math.max(0,Math.min(i,r));this.leftContainer.style.flexBasis=`${o}px`,this.dispatchResizeEvent()},this.mouseUpHandler=()=>{this.isDragging=!1;const t=this.splitBarContainer.closest(".split-view-container");null==t||t.classList.remove("dragging"),this.dispatchResizeEvent(),this.mouseMoveHandler&&(this.chartContext.removeEventListener("mousemove",this.mouseMoveHandler),this.mouseMoveHandler=null),this.mouseUpHandler&&(this.chartContext.removeEventListener("mouseup",this.mouseUpHandler),this.mouseUpHandler=null)},this.chartContext.addEventListener("mousemove",this.mouseMoveHandler),this.chartContext.addEventListener("mouseup",this.mouseUpHandler)})),this.splitBarContainer.addEventListener("keydown",(t=>{let e;const n=parseInt(this.leftContainer.style.flexBasis)||this.options.leftContainerWidth||400;switch(t.key){case"ArrowLeft":t.preventDefault(),e=Math.max(0,n-10),this.leftContainer.style.flexBasis=`${e}px`,this.dispatchResizeEvent();break;case"ArrowRight":t.preventDefault(),e=n+10,this.leftContainer.style.flexBasis=`${e}px`,this.dispatchResizeEvent();break;case"Home":t.preventDefault(),this.leftContainer.style.flexBasis="0px",this.dispatchResizeEvent();break;case"End":{t.preventDefault();const e=this.splitBarContainer.parentElement;if(e){const t=e.clientWidth-50;this.leftContainer.style.flexBasis=`${t}px`}this.dispatchResizeEvent();break}}}))}dispatchResizeEvent(){const t=new CustomEvent("splitview-resize",{bubbles:!0,detail:{leftWidth:parseInt(this.leftContainer.style.flexBasis)||0}});this.chartContext.dispatchEvent(t)}cleanupEventListeners(){this.mouseMoveHandler&&(this.chartContext.removeEventListener("mousemove",this.mouseMoveHandler),this.mouseMoveHandler=null),this.mouseUpHandler&&(this.chartContext.removeEventListener("mouseup",this.mouseUpHandler),this.mouseUpHandler=null)}render(){this.injectStyles(),this.buildElements(),this.attachEventListeners();const t=ur(this.chartContext,{className:"split-view-container"});return t.append(this.leftContainer,this.splitBarContainer,this.rightContainer),[t]}destroy(){this.cleanupEventListeners()}}class Lo{constructor(){this.state={scrollPosition:{horizontal:0,tasksVertical:0,timelineVertical:0},viewMode:Li.Week,collapsedTasks:new Set}}captureState(t,e,n){const r=t.querySelector(".timeline-horizontal-scroll"),i=t.querySelector(".split-view-container");this.state.scrollPosition={horizontal:(null==r?void 0:r.scrollLeft)||0,tasksVertical:(null==i?void 0:i.scrollTop)||0,timelineVertical:(null==i?void 0:i.scrollTop)||0},this.state.viewMode=n,this.state.collapsedTasks=new Set(e.getFlatTasks().filter((t=>t.collapsed)).map((t=>t.id)))}restoreState(t,e=!1){e||requestAnimationFrame((()=>{const e=t.querySelector(".timeline-horizontal-scroll"),n=t.querySelector(".split-view-container");e&&(e.scrollLeft=this.state.scrollPosition.horizontal),n&&(n.scrollTop=this.state.scrollPosition.tasksVertical);const r=t.querySelector(".timeline-header");r&&(r.scrollLeft=this.state.scrollPosition.horizontal)}))}getViewMode(){return this.state.viewMode}hasState(){return void 0!==this.state.viewMode}clearState(){this.state={scrollPosition:{horizontal:0,tasksVertical:0,timelineVertical:0},viewMode:Li.Week,collapsedTasks:new Set}}}class Bo{static getNestedValue(t,e){if(!t||!e)return;const n=e.split(".");let r=t;for(const i of n){if(null==r)return;r=r[i]}return r}static processParsingValue(t,e){if("string"==typeof e)return this.getNestedValue(t,e);const{key:n,transform:r}=e,i=this.getNestedValue(t,n);if(r&&"function"==typeof r)try{return r(i)}catch(o){return console.warn(`DataParser: Transform function failed for key "${n}":`,o),i}return i}static parse(t,e){return Array.isArray(t)?e?t.map(((t,n)=>{try{const r=this.processParsingValue(t,e.id),i=this.processParsingValue(t,e.name),o=this.processParsingValue(t,e.startTime);if(!r||!i||!o)return console.warn(`DataParser: Skipping item at index ${n} - missing required fields`,{id:r,name:i,startTime:o,rawItem:t}),null;const s={id:r,name:i,startTime:o};if(void 0!==e.endTime){const n=this.processParsingValue(t,e.endTime);void 0!==n&&(s.endTime=n)}if(void 0!==e.progress){const n=this.processParsingValue(t,e.progress);void 0!==n&&(s.progress=n)}if(void 0!==e.type){const n=this.processParsingValue(t,e.type);void 0!==n&&(s.type=n)}if(void 0!==e.parentId){const n=this.processParsingValue(t,e.parentId);void 0!==n&&(s.parentId=n)}if(void 0!==e.dependency){const n=this.processParsingValue(t,e.dependency);void 0!==n&&(s.dependency=n)}if(void 0!==e.barBackgroundColor){const n=this.processParsingValue(t,e.barBackgroundColor);void 0!==n&&(s.barBackgroundColor=n)}if(void 0!==e.rowBackgroundColor){const n=this.processParsingValue(t,e.rowBackgroundColor);void 0!==n&&(s.rowBackgroundColor=n)}if(void 0!==e.collapsed){const n=this.processParsingValue(t,e.collapsed);void 0!==n&&(s.collapsed=n)}return s}catch(r){return console.warn(`DataParser: Error parsing item at index ${n}:`,r,t),null}})).filter((t=>null!==t)):(console.warn("DataParser: Parsing config is required"),[]):(console.warn("DataParser: Data must be an array"),[])}static validateConfig(t){return!!t&&(!!(t.id&&t.name&&t.startTime)||(console.warn("DataParser: Parsing config must include id, name, and startTime"),!1))}}mr.extend(br),mr.extend(yr),mr.extend(Sr),mr.extend(xr),mr.extend(kr);class jo extends n{constructor(t,e){super(t,"gantt_"+Math.random().toString(36).substr(2,9)),this.options=Yi,this.stylesInjected=!1,this.zoomHandler=null,this.timelineScrollHandlers={},this.isSyncingScroll=!1,this.scrollbarResizeObserver=null,this.splitBarResizeHandler=null,this.containerResizeObserver=null,this.lastKnownWidth=0,this.lastKnownHeight=0,this.resizeDebounceTimer=null;const n=Wi(null==e?void 0:e.theme);let r;(null==e?void 0:e.parsing)?Bo.validateConfig(e.parsing)?r=Bo.parse(e.series,e.parsing):(console.error("ApexGantt: Invalid parsing configuration provided"),r=[]):r=(null==e?void 0:e.series)||[],this.options={...n,...e,series:r},this.viewMode=this.options.viewMode;const i="arrows_"+Math.random().toString(36).substr(2,9);this.arrowLink=new Ao(i),this.setupShadowDOMEnvironment(),this.dataManager=new uo,this.dataManager.setTasks(this.options.series),this.dataManager.setArrowLinkInstanceId(i),this.stateManager=new Lo}static setLicense(t){i.setLicense(t)}setupShadowDOMEnvironment(){if(!this.isShadowDOM())return;const t=this.chartContext.getContext().host;t&&(t.style.display="block",t.style.boxSizing="border-box",t.style.contain="layout style"),this.element&&(this.element.style.display="block",this.element.style.boxSizing="border-box")}injectGanttStyles(){if(!this.stylesInjected)if(this.isShadowDOM())this.injectStylesDirectly();else try{const t=[{content:xo,id:"gantt-core-styles",options:{priority:"high"}},{content:So,id:"gantt-timeline-styles"},{content:Co,id:"gantt-table-styles"},{content:bo,id:"gantt-dialog-styles"},{content:ko,id:"gantt-taskform-styles"},{content:Eo,id:"gantt-tooltip-styles"},{content:To,id:"gantt-toolbar-styles"},{content:wo,id:"gantt-dropdown-styles"},{content:_o,id:"gantt-scrollbar-styles"}];this.chartContext.injectStylesheets(t),this.stylesInjected=!0}catch(t){console.error("injectGanttStyles: ChartContext injection failed",t)}}injectStylesDirectly(){const t=this.chartContext.getContext();if(t.querySelector("#gantt-all-styles"))return void(this.stylesInjected=!0);const e=document.createElement("style");e.id="gantt-all-styles",e.textContent=`\n /* Shadow DOM CSS Reset - Critical for proper layout */\n :host {\n all: initial;\n display: block;\n contain: layout style;\n }\n \n *, *::before, *::after {\n box-sizing: border-box;\n }\n \n div, table, thead, tbody, tr, td, th {\n display: revert;\n margin: 0;\n padding: 0;\n border: 0;\n }\n \n .split-view-container,\n .gantt-container {\n display: flex !important;\n width: 100% !important;\n height: 100% !important;\n }\n \n .split-left-container,\n .split-right-container {\n display: block !important;\n }\n \n .timeline-container {\n flex: 1 !important;\n overflow: auto !important;\n position: relative !important;\n }\n \n .tasks-container {\n flex-shrink: 0 !important;\n overflow: auto !important;\n }\n\n ${xo}\n ${So}\n ${Co}\n ${bo}\n ${ko}\n ${Eo}\n ${To}\n ${wo}\n ${_o}\n `,t.insertBefore(e,t.firstChild),this.stylesInjected=!0}handleWatermark(){const t=this.element.querySelector(".gantt-container").parentNode;t&&(i.isLicenseValid()?rn.remove(t):rn.add(t))}setCSSVariables(){const{cellBorderColor:t,cellBorderWidth:e,fontColor:n,headerBackground:r,tooltipBGColor:i,tooltipBorderColor:o,barBackgroundColor:s,backgroundColor:a,borderColor:l,barTextColor:u,arrowColor:c}=this.options;this.element.style.setProperty("--cell-border-color",t),this.element.style.setProperty("--cell-border-width",e),this.element.style.setProperty("--gantt-font-color",n),this.element.style.setProperty("--text-color",n),this.element.style.setProperty("--header-bg-color",r),this.element.style.setProperty("--header-text-color",n),this.element.style.setProperty("--tooltip-bg-color",i),this.element.style.setProperty("--tooltip-border-color",o),this.element.style.setProperty("--tooltip-text-color",n),this.element.style.setProperty("--background-color",a),this.element.style.setProperty("--border-color",l),this.element.style.setProperty("--dialog-bg-color",a),this.element.style.setProperty("--dialog-border-color",l),this.element.style.setProperty("--button-bg-color",s),this.element.style.setProperty("--button-text-color",u),this.element.style.setProperty("--button-hover-bg-color",c),this.element.style.setProperty("--toolbar-bg-color",a),this.element.style.setProperty("--toolbar-border-color",l),this.element.style.setProperty("--toolbar-hover-bg-color",t),this.element.style.setProperty("--scrollbar-track-color",a),this.element.style.setProperty("--scrollbar-thumb-color",l),this.element.style.setProperty("--scrollbar-thumb-hover-color",t),this.element.style.setProperty("--split-bar-color",t),this.element.style.setProperty("--split-bar-hover-color",c),this.element.style.setProperty("--split-bar-border-color",l),this.element.style.setProperty("--split-bar-handle-color",n),this.element.style.setProperty("--split-bar-hover-border-color",c);this.isColorDark(a)?this.element.style.setProperty("--toolbar-icon-filter","invert(1) brightness(2)"):this.element.style.setProperty("--toolbar-icon-filter","none")}isColorDark(t){const e=t.replace("#","");return(.299*parseInt(e.substr(0,2),16)+.587*parseInt(e.substr(2,2),16)+.114*parseInt(e.substr(4,2),16))/255<.5}initializeTooltip(){const{enableTooltip:t,tooltipId:e}=this.options;if(t){const t=sr(this.chartContext,e);if(!this.chartContext.getElementById(e)){console.warn("Tooltip init: Tooltip not found after creation, appending manually");this.chartContext.getAppendContainer().appendChild(t)}}}render(t){if(!this.element)throw new Error("Element not found");const e=this.element&&this.element.children.length>0;e&&this.stateManager.captureState(this.element,this.dataManager,this.viewMode);const{enableResize:n,fontColor:r,fontFamily:i,fontSize:o,fontWeight:s,tasksContainerWidth:a,height:l,width:u}=this.options;this.setupChartContainerPositioning(),this.injectGanttStyles(),this.setCSSVariables(),this.initializeTooltip(),this.element.innerHTML="",this.hasExplicitDimensions();const c=this.normalizeDimension(l),h=this.normalizeDimension(u);this.element.style.width=h,this.element.style.height=c,this.element.style.display="flex",this.element.style.flexDirection="column",this.element.style.boxSizing="border-box",this.element.style.overflow="hidden";const d=lr({color:r,fontFamily:i,fontSize:o,fontWeight:s}),f=this.element.getAttribute("style")||"";this.element.setAttribute("style",f+";"+d);const p=ur(this.chartContext,{className:"gantt-actions-container"});this.renderToolbar(p);const m=ur(this.chartContext,{className:"gantt-container"}),g=new vo(this.viewMode,this.options,this.chartContext,this.dataManager).render(),y=new ao(this.options,this.chartContext,this.dataManager).render(this.render.bind(this));g&&this.createLayout(m,y,g,n,a),this.element.appendChild(p),this.element.appendChild(m);const v=m.querySelector(".timeline-horizontal-scroll");return v&&(v.remove(),this.element.appendChild(v)),this.handleWatermark(),this.setupRowBackgroundColors(),this.setupZoomEventListener(),this.setupDependencyArrowEvents(),this.renderDependencyArrows(),requestAnimationFrame((()=>{this.performAfterActions()})),e&&requestAnimationFrame((()=>{this.stateManager.restoreState(this.element)})),this.element}performAfterActions(){this.syncTasksColumnWidths(),this.compensateForScrollbar(),this.updateHorizontalScrollbarContent(),this.setupTimelineHorizontalScroll(),this.positionHorizontalScrollbar(),this.setupContainerResizeObserver(),this.setupScrollbarResizeObserver(),this.setupRowBackgroundColors(),this.disableHeaderMousewheelScroll(),this.fillEmptyRowsAfterRender()}setupChartContainerPositioning(){if(this.element){"static"===window.getComputedStyle(this.element).position&&(this.element.style.position="relative"),this.element.style.isolation="isolate"}}disableHeaderMousewheelScroll(){const t=this.element.querySelector(".timeline-header");if(!t)return;t.addEventListener("wheel",(t=>{t.preventDefault()}),{passive:!1})}createLayout(t,e,n,r,i){t.style.position="relative",t.style.isolation="isolate";const o=this.getInstanceId(),s=ur(this.chartContext,{className:"tasks-container"});let a,l;if(!Array.isArray(e))return void console.error("Tasks table should be an array of [header, body]");a=e[0],l=e[1];const u=ur(this.chartContext,{className:"tasks-body-wrapper"});u.appendChild(l),s.appendChild(a),s.appendChild(u);const c=ur(this.chartContext,{className:"timeline-container"});c.setAttribute("data-chart-instance",o);const h=n[0];c.appendChild(h);const d=ur(this.chartContext,{className:"timeline-body-wrapper"});for(let p=1;p<n.length-1;p++)d.appendChild(n[p]);c.appendChild(d);const f=n[n.length-1];if(r){const e=new Fo(this.chartContext,s,c,{leftContainerClass:"",leftContainerWidth:i,rightContainerClass:""}).render();t.append(...e)}else s.style.flex=`0 0 ${i}px`,t.append(s,c);t.appendChild(f)}syncTasksColumnWidths(){this.element.querySelector(".tasks-container")}setupScrollbarResizeObserver(){if(!this.element)return;this.scrollbarResizeObserver&&this.scrollbarResizeObserver.disconnect(),this.scrollbarResizeObserver=new ResizeObserver((()=>{this.positionHorizontalScrollbar()})),this.scrollbarResizeObserver.observe(this.element);const t=this.element.querySelector(".gantt-container");t&&this.scrollbarResizeObserver.observe(t),this.setupSplitBarResizeListener()}setupSplitBarResizeListener(){this.splitBarResizeHandler&&this.chartContext.removeEventListener("splitview-resize",this.splitBarResizeHandler),this.splitBarResizeHandler=()=>{requestAnimationFrame((()=>{this.positionHorizontalScrollbar()}))},this.chartContext.addEventListener("splitview-resize",this.splitBarResizeHandler)}positionHorizontalScrollbar(){const t=this.element.querySelector(".timeline-horizontal-scroll"),e=this.element.querySelector(".gantt-container"),n=this.element.querySelector(".tasks-container");if(!t||!e)return void console.warn("Missing elements for scrollbar positioning");e.offsetHeight;const r=n?n.offsetWidth:0,i=this.element.querySelector(".split-bar-container"),o=r+(i?i.offsetWidth:0)+2,s=window.getComputedStyle(this.element),a=parseFloat(s.paddingLeft)||0,l=parseFloat(s.paddingBottom)||0;t.style.left=`${o+a}px`,t.style.bottom=`${l}px`;const u=e.clientWidth-o;t.style.width=`${Math.max(0,u)}px`}compensateForScrollbar(){const t=this.element.querySelector(".tasks-body-wrapper"),e=this.element.querySelector(".tasks-header");if(!t||!e)return;const n=t.offsetWidth-t.clientWidth;e.style.paddingRight="",e.style.boxSizing="",n>0&&(e.style.paddingRight=`${n}px`,e.style.boxSizing="border-box")}setupTimelineHorizontalScroll(){const t=this.element.querySelector(".timeline-horizontal-scroll"),e=this.element.querySelector(".timeline-header"),n=this.element.querySelector(".timeline-body-wrapper");if(!t||!e||!n)return;this.updateHorizontalScrollbarContent(),this.applyScrollbarStylesToElement(t),this.timelineScrollHandlers.bodyScroll&&n.removeEventListener("scroll",this.timelineScrollHandlers.bodyScroll),this.timelineScrollHandlers.horizontalScroll&&t.removeEventListener("scroll",this.timelineScrollHandlers.horizontalScroll);const r=r=>{if(this.isSyncingScroll)return;this.isSyncingScroll=!0;const i=t.scrollLeft;e.scrollLeft=i,n.scrollLeft=i,requestAnimationFrame((()=>{this.isSyncingScroll=!1}))},i=r=>{if(this.isSyncingScroll)return;this.isSyncingScroll=!0;const i=n.scrollLeft;t.scrollLeft=i,e.scrollLeft=i,requestAnimationFrame((()=>{this.isSyncingScroll=!1}))};t.addEventListener("scroll",r,{passive:!0}),n.addEventListener("scroll",i,{passive:!0}),this.timelineScrollHandlers={horizontalScroll:r,bodyScroll:i}}applyScrollbarStylesToElement(t){const{backgroundColor:e}=this.options;if(!this.isColorDark(e))return;const{borderColor:n,cellBorderColor:r}=this.options,i=`scrollbar-${this.getInstanceId()}-${Date.now()}`,o=`\n #${t.id||"timeline-horizontal-scroll"} {\n scrollbar-width: thin;\n scrollbar-color: ${n} ${e};\n }\n \n #${t.id||"timeline-horizontal-scroll"}::-webkit-scrollbar {\n width: 12px;\n height: 12px;\n }\n \n #${t.id||"timeline-horizontal-scroll"}::-webkit-scrollbar-track {\n background: ${e};\n border-radius: 4px;\n }\n \n #${t.id||"timeline-horizontal-scroll"}::-webkit-scrollbar-thumb {\n background: ${n};\n border-radius: 4px;\n border: 2px solid ${e};\n }\n \n #${t.id||"timeline-horizontal-scroll"}::-webkit-scrollbar-thumb:hover {\n background: ${r};\n }\n `;t.id||(t.id=`timeline-horizontal-scroll-${this.getInstanceId()}`),this.chartContext.injectStyles(o,i)}setupZoomEventListener(){const t=this.getInstanceId(),e=this.chartContext.querySelector(`.timeline-container[data-chart-instance="${t}"]`);e?(this.zoomHandler&&e.removeEventListener("wheel",this.zoomHandler),this.zoomHandler=t=>{if(!t.ctrlKey)return;t.preventDefault();const e=Math.sign(t.deltaY);e<0?this.zoomIn():e>0&&this.zoomOut()},e.addEventListener("wheel",this.zoomHandler)):console.warn(`[${t}] Timeline element not found for zoom listener`)}setupRowBackgroundColors(){this.dataManager.getTopParentTasks().forEach(((t,e)=>{const n=ro(e,this.options.rowBackgroundColors);io(this.chartContext,t.id,t.rowBackgroundColor||n),this.dataManager.getNestedChildTasks(t.id,!0).forEach((t=>{io(this.chartContext,t.id,t.rowBackgroundColor||n)}))})),this.dataManager.getFlatTasks().forEach(((t,e)=>{if(!t.parentId&&t.type===so.Milestone){const n=ro(e,this.options.rowBackgroundColors);io(this.chartContext,t.id,t.rowBackgroundColor||n)}}))}renderDependencyArrows(){const{rowHeight:t}=this.options,e=this.getInstanceId(),n=this.arrowLink.getInstanceId(),r=this.dataManager.getFlatVisibleTasks().filter((t=>!!t.dependency)).map((t=>{const n=`.bar-container [data-taskid="${t.dependency}"][data-chart-instance="${e}"]`,r=`.bar-container [data-taskid="${t.id}"][data-chart-instance="${e}"]`,i=this.element.querySelector(n),o=this.element.querySelector(r);return{id:`${t.dependency}-${t.id}`,source:i,target:o}})).filter((t=>t.source&&t.target)),i=this.element.querySelector(".timeline-body");if(!i)return void console.warn(`[${e}] Timeline body not found for arrows`);const o=`timeline-arrows-${n}`,s=i.querySelector(`#${o}`);s&&s.remove(),0!==r.length&&this.arrowLink.render(i,r,{arrowColor:this.options.arrowColor,height:i.clientHeight,paddingY:t/2,width:i.clientWidth},this.chartContext)}setupDependencyArrowEvents(){const t=this.getInstanceId(),e=this.arrowLink.getInstanceId();this.chartContext.addEventListener("dependency-arrow-update",(n=>{const r=n;if(r.detail.chartInstanceId!==t)return;const i=r.detail.arrowLinkInstanceId||e;!function(t,e,n,r){const i=t.getInstanceId(),o=Oi(t,e),s=Oi(t,n);if(!o||!s)return void console.warn(`[${i}] Arrow source or target not found: ${e} -> ${n}`);const a=t.querySelector(".timeline-body"),l=`timeline-arrows-${r}`,u=null==a?void 0:a.querySelector(`#${l}`);u?Ao.updateArrow(o,s,u,{paddingX:20,paddingY:15},`${e}-${n}`):console.warn(`[${i}] Arrow SVG not found: ${l}`)}(this.chartContext,r.detail.fromId,r.detail.toId,i)}))}rerenderTimeline(){const t=this.element.querySelector(".timeline-container");if(!t)return;const e=t.querySelector(".timeline-header"),n=t.querySelector(".timeline-body-wrapper");if(e&&n){e.innerHTML="",n.innerHTML="";const t=new vo(this.viewMode,this.options,this.chartContext,this.dataManager).render();if(t){const r=t[0];e.innerHTML=r.innerHTML;for(let e=1;e<t.length-1;e++)n.appendChild(t[e])}}else{t.innerHTML="";const e=new vo(this.viewMode,this.options,this.chartContext,this.dataManager).render();if(e){const n=e[0];t.appendChild(n);const r=ur(this.chartContext,{className:"timeline-body-wrapper"});for(let t=1;t<e.length-1;t++)r.appendChild(e[t]);t.appendChild(r)}}requestAnimationFrame((()=>{this.performAfterActions()}))}updateToolbarAfterZoom(){const t=this.element.querySelector(".gantt-actions-container");t&&this.renderToolbar(t)}cleanupEventListeners(){try{if(this.timelineScrollHandlers.bodyScroll||this.timelineScrollHandlers.horizontalScroll){const t=this.element.querySelector(".timeline-horizontal-scroll"),e=this.element.querySelector(".timeline-body-wrapper");t&&this.timelineScrollHandlers.horizontalScroll&&t.removeEventListener("scroll",this.timelineScrollHandlers.horizontalScroll),e&&this.timelineScrollHandlers.bodyScroll&&e.removeEventListener("scroll",this.timelineScrollHandlers.bodyScroll),this.timelineScrollHandlers={}}const t=this.chartContext.querySelector(".timeline-container");if(null==t?void 0:t.parentNode){const e=t.cloneNode(!0);t.parentNode.replaceChild(e,t)}}catch(t){console.warn("Error cleaning up event listeners:",t)}}cleanupTooltips(){try{const{enableTooltip:t,tooltipId:e}=this.options;if(t){const t=this.chartContext.getElementById(e);t&&(t.style.display="none",t.innerHTML="",t.removeAttribute("style"),t.classList.remove("visible"),t.setAttribute("aria-hidden","true"),this.isShadowDOM()&&t.remove())}}catch(t){console.warn("Error cleaning up tooltips:",t)}}cleanupDependencyArrows(){try{const t=this.element.querySelector(".timeline-body");if(t&&this.arrowLink){const e=this.arrowLink.getInstanceId(),n=`timeline-arrows-${e}`,r=t.querySelector(`#${n}`);r&&r.remove();t.querySelectorAll("[data-edgeid]").forEach((t=>{const n=t.getAttribute("marker-end");(null==n?void 0:n.includes(`arrowhead-${e}`))&&t.remove()}))}}catch(t){console.warn("Error cleaning up dependency arrows:",t)}}createActionButton(t,e,n=!1){const r=this.chartContext.createElement("button");return r.className="gantt-action-button",r.innerHTML=t,r.title=e,r.disabled=n,r.setAttribute("aria-label",e),r}createSeparator(){const t=this.chartContext.createElement("div");return t.className="gantt-action-separator",t}createViewModeDisplay(){const t=this.chartContext.createElement("div");return t.className="gantt-view-mode-display",t.innerHTML=`${Io.calendar} <span>${Wr(this.viewMode)}</span>`,t.title=`Current view: ${Wr(this.viewMode)}`,t}renderToolbar(t){t.innerHTML="";const e=this.createActionButton(Io.zoomIn,"Zoom In",this.viewMode===Fi[0]);e.addEventListener("click",(()=>this.zoomIn()));const n=this.createActionButton(Io.zoomOut,"Zoom Out",this.viewMode===Fi[Fi.length-1]);n.addEventListener("click",(()=>this.zoomOut()));const r=this.createViewModeDisplay(),i=this.chartContext.createElement("div");if(i.className="gantt-actions-spacer",t.append(e,n,this.createSeparator(),r),this.options.enableExport){t.append(i);const e=this.createActionButton(Io.download,"Export as SVG"),n=()=>this.element;e.addEventListener("click",(()=>{const t=n();if(!t)return console.error("Export failed: Chart element not found"),void alert("Export failed: Chart not found. Please refresh and try again.");if(t.querySelector(".gantt-container"))try{Oo(t)}catch(e){console.error("Export error:",e),alert("Export failed. Please check the console for details.")}else console.error("Export failed: Gantt container not found in chart")})),t.append(e)}}update(t){this.element&&!this.isDestroyed()&&this.stateManager.captureState(this.element,this.dataManager,this.viewMode);const e=this.detectCurrentTheme(),n=t.theme,r=n&&n!==e,i=this.stateManager.hasState()?this.stateManager.getViewMode():this.viewMode,o=Object.entries(t).filter((([t,e])=>void 0===e)).map((([t])=>t)),s=Object.entries(t).reduce(((t,[e,n])=>(void 0!==n&&(t[e]=n),t)),{}),a=Wi(n||e);let l,u;if(r){this.cleanupScrollbarStyles();const t=["series","parsing","width","height","viewMode","rowHeight","tasksContainerWidth","inputDateFormat","annotations","enableExport","enableResize","enableTaskDrag","enableTaskEdit","enableTaskResize","enableTooltip","tooltipTemplate","canvasStyle"];l={...a},t.forEach((t=>{void 0!==this.options[t]&&(l[t]=this.options[t])})),l={...l,...s}}else l={...a},Object.entries(this.options).forEach((([t,e])=>{o.includes(t)||(l[t]=e)})),l={...l,...s};t.viewMode||(l.viewMode=i),l.parsing?Bo.validateConfig(l.parsing)?u=Bo.parse(l.series,l.parsing):(console.error("ApexGantt: Invalid parsing configuration provided in update()"),u=this.options.series):u=l.series?l.series:this.options.series,this.options={...l,series:u},this.viewMode=this.options.viewMode,this.dataManager.setTasks(this.options.series),this.render(),this.element&&!this.isDestroyed()&&this.stateManager.restoreState(this.element)}detectCurrentTheme(){const t=this.options.backgroundColor;return this.isColorDark(t)?"dark":"light"}fillEmptyRowsAfterRender(){const t=this.element.querySelector(".gantt-container"),e=null==t?void 0:t.querySelector(".timeline-body"),n=null==t?void 0:t.querySelector(".tasks-data-container");if(!t||!e||!n)return;e.querySelectorAll(".timeline-empty-row").forEach((t=>t.remove()));n.querySelectorAll(".tasks-empty-row").forEach((t=>t.remove()));const r=t.clientHeight,i=e.querySelectorAll(".timeline-data-row:not(.timeline-empty-row)").length,o=this.options.rowHeight,s=Math.floor(r/o),a=Math.max(0,s-i);if(0===a)return;let l=0;const u=e.querySelector(".timeline-data-row");if(u)l=u.querySelectorAll(".timeline-data-cell").length;else{const e=t.querySelector(".timeline-header");if(e){l=e.querySelectorAll(".timeline-header-cell").length}}if(0!==l){for(let t=0;t<a;t++){const n=this.createEmptyTimelineRow(t,l);e.appendChild(n)}for(let t=0;t<a;t++){const e=this.createEmptyTaskRow(t);n.appendChild(e)}}}createEmptyTimelineRow(t,e){const n=ur(this.chartContext,{className:"timeline-data-row timeline-empty-row"}),{rowHeight:r}=this.options,i=this.getInstanceId();n.setAttribute("data-taskid",`empty-${t}`),n.setAttribute("data-chart-instance",i),n.style.height=`${r}px`;for(let o=0;o<e;o++){const t=ur(this.chartContext,{className:"timeline-data-cell",style:{height:`${r}px`,minWidth:`${Ri[this.viewMode]}px`}});t.setAttribute("data-chart-instance",i),n.appendChild(t)}return n}createEmptyTaskRow(t){const e=ur(this.chartContext,{className:"tasks-data-row tasks-empty-row"}),{rowHeight:n,fontColor:r}=this.options,i=this.getInstanceId();return e.setAttribute("data-taskid",`empty-${t}`),e.setAttribute("data-chart-instance",i),e.style.height=`${n}px`,to.forEach((({key:t})=>{const o=ur(this.chartContext,{className:"tasks-data-cell",content:""});o.setAttribute("data-columnid",t),o.setAttribute("data-chart-instance",i),o.style.height=`${n}px`,o.style.color=r,e.appendChild(o)})),e}cleanupScrollbarStyles(){try{this.chartContext.getInjectedStyleIds().filter((t=>t.startsWith(`scrollbar-${this.getInstanceId()}`))).forEach((t=>this.chartContext.removeStyles(t)));const t=this.element.querySelector(".timeline-horizontal-scroll");if(t){const e=t.style.width,n=t.style.left,r=t.style.bottom;t.removeAttribute("style"),e&&(t.style.width=e),n&&(t.style.left=n),r&&(t.style.bottom=r)}}catch(t){console.warn("Error cleaning up scrollbar styles:",t)}}updateTask(t,e){if(!this.dataManager.getTaskById(t))throw new Error(`Task with ID ${t} not found`);const[n]=this.dataManager.getDateRange(0,this.viewMode);oo(this.chartContext,this.dataManager,t,e,this.options,this.viewMode,n)}zoomIn(){if(this.viewMode===Fi[0])return;const t=Fi.findIndex((t=>t===this.viewMode));this.viewMode=Fi[t-1],this.updateToolbarAfterZoom(),this.rerenderTimeline(),this.renderDependencyArrows(),requestAnimationFrame((()=>{this.updateHorizontalScrollbarContent(),this.positionHorizontalScrollbar()}))}zoomOut(){if(this.viewMode===Fi[Fi.length-1])return;const t=Fi.findIndex((t=>t===this.viewMode));this.viewMode=Fi[t+1],this.updateToolbarAfterZoom(),this.rerenderTimeline(),this.renderDependencyArrows(),requestAnimationFrame((()=>{this.updateHorizontalScrollbarContent(),this.positionHorizontalScrollbar()}))}updateHorizontalScrollbarContent(){const t=this.element.querySelector(".timeline-horizontal-scroll"),e=null==t?void 0:t.querySelector(".timeline-horizontal-scroll-content"),n=this.element.querySelector(".timeline-body");if(!t||!e||!n)return void console.warn("Scrollbar update: Missing elements",{horizontalScroll:!!t,scrollContent:!!e,timelineBody:!!n});const r=n.scrollWidth;e.style.width=`${r}px`}hasExplicitDimensions(){const t=window.getComputedStyle(this.element),e=t.height,n=t.width;return{height:"auto"!==e&&"0px"!==e,width:"auto"!==n&&"0px"!==n}}normalizeDimension(t){return"number"==typeof t?`${t}px`:t}setupContainerResizeObserver(){if(!this.element)return;this.containerResizeObserver&&this.containerResizeObserver.disconnect();const t=this.normalizeDimension(this.options.width),e=this.normalizeDimension(this.options.height),n="string"==typeof t&&t.includes("%"),r="string"==typeof e&&e.includes("%");(n||r)&&(this.lastKnownWidth=this.element.offsetWidth,this.lastKnownHeight=this.element.offsetHeight,this.containerResizeObserver=new ResizeObserver((t=>{for(const e of t){const t=e.contentRect.width,n=e.contentRect.height,r=Math.abs(t-this.lastKnownWidth)>1,i=Math.abs(n-this.lastKnownHeight)>1;(r||i)&&(this.lastKnownWidth=t,this.lastKnownHeight=n,this.handleContainerResize())}})),this.containerResizeObserver.observe(this.element))}handleContainerResize(){null!==this.resizeDebounceTimer&&window.clearTimeout(this.resizeDebounceTimer),this.resizeDebounceTimer=window.setTimeout((()=>{this.performResize(),this.resizeDebounceTimer=null}),150)}performResize(){if(!this.element||this.isDestroyed())return;const t=this.normalizeDimension(this.options.width),e=this.normalizeDimension(this.options.height),n="string"==typeof t&&t.includes("%"),r="string"==typeof e&&e.includes("%");if(n){window.getComputedStyle(this.element.parentElement||this.element).width!==window.getComputedStyle(this.element).width&&requestAnimationFrame((()=>{this.positionHorizontalScrollbar(),this.updateHorizontalScrollbarContent(),this.syncTasksColumnWidths()}))}r&&requestAnimationFrame((()=>{this.fillEmptyRowsAfterRender()}))}destroy(){try{if(this.containerResizeObserver&&(this.containerResizeObserver.disconnect(),this.containerResizeObserver=null),null!==this.resizeDebounceTimer&&(window.clearTimeout(this.resizeDebounceTimer),this.resizeDebounceTimer=null),this.zoomHandler){const t=this.getInstanceId(),e=this.chartContext.querySelector(`.timeline-container[data-chart-instance="${t}"]`);e&&e.removeEventListener("wheel",this.zoomHandler),this.zoomHandler=null}if(this.timelineScrollHandlers.bodyScroll){const t=this.element.querySelector(".timeline-horizontal-scroll");t&&this.timelineScrollHandlers.bodyScroll&&t.removeEventListener("scroll",this.timelineScrollHandlers.bodyScroll),this.timelineScrollHandlers={}}this.scrollbarResizeObserver&&(this.scrollbarResizeObserver.disconnect(),this.scrollbarResizeObserver=null),this.cleanupEventListeners(),this.cleanupTooltips(),this.cleanupDependencyArrows(),this.splitBarResizeHandler&&(this.chartContext.removeEventListener("splitview-resize",this.splitBarResizeHandler),this.splitBarResizeHandler=null);const t=this.element.querySelector(".timeline-horizontal-scroll");(null==t?void 0:t.id)&&this.chartContext.getInjectedStyleIds().filter((t=>t.startsWith(`scrollbar-${this.getInstanceId()}`))).forEach((t=>this.chartContext.removeStyles(t))),this.element.innerHTML="",super.destroy(),this.stylesInjected=!1}catch(t){console.error("Error during ApexGantt destruction:",t)}}isDestroyed(){return!this.element||""===this.element.innerHTML}}const Ro={tooltipBGColor:"#FFFFFF",tooltipBorderColor:"#CCCCCC",tooltipTextColor:"#333333",cellBorderColor:"#EFF0F0",rowBackgroundColors:["#FFFFFF","#F9F9F9"],headerBackground:"#F3F3F3",headerTextColor:"#333333",barBackgroundColor:"#87B7FE",barTextColor:"#FFFFFF",arrowColor:"#0D6EFD",backgroundColor:"#FFFFFF",textColor:"#000000",borderColor:"#DFE0E1",annotationBgColor:"#F9D1FC",annotationBorderColor:"#E273EA",dialogBgColor:"#FFFFFF",dialogBorderColor:"#EEEEEE",buttonBgColor:"#0066CC",buttonTextColor:"#FFFFFF",buttonHoverBgColor:"#0052A3",toolbarBgColor:"#FFFFFF",toolbarBorderColor:"#BCBCBC",toolbarHoverBgColor:"#F8F9FA",scrollbarTrackColor:"#F5F5F5",scrollbarThumbColor:"#C1C1C1",scrollbarThumbHoverColor:"#A8A8A8",splitBarColor:"#DEE2E6",splitBarHoverColor:"#007BFF",splitBarBorderColor:"#BBBBBB",splitBarHandleColor:"#666666"},No={tooltipBGColor:"#2D2D2D",tooltipBorderColor:"#444444",tooltipTextColor:"#E0E0E0",cellBorderColor:"#3A3A3A",rowBackgroundColors:["#1E1E1E","#252525"],headerBackground:"#2A2A2A",headerTextColor:"#E0E0E0",barBackgroundColor:"#5B8DEE",barTextColor:"#FFFFFF",arrowColor:"#4A9EFF",backgroundColor:"#1E1E1E",textColor:"#E0E0E0",borderColor:"#3A3A3A",annotationBgColor:"#4A2D4D",annotationBorderColor:"#8B4D8F",dialogBgColor:"#2D2D2D",dialogBorderColor:"#444444",buttonBgColor:"#0D6EFD",buttonTextColor:"#FFFFFF",buttonHoverBgColor:"#0B5ED7",toolbarBgColor:"#2D2D2D",toolbarBorderColor:"#444444",toolbarHoverBgColor:"#3A3A3A",scrollbarTrackColor:"#000",scrollbarThumbColor:"#4A4A4A",scrollbarThumbHoverColor:"#5A5A5A",splitBarColor:"#3A3A3A",splitBarHoverColor:"#4A9EFF",splitBarBorderColor:"#4A4A4A",splitBarHandleColor:"#666666"};"undefined"!=typeof window&&(window.ApexGantt=jo),t.ApexGantt=jo,t.ColumnKey=Ji,t.DarkTheme=No,t.DataParser=Bo,t.GanttEvents=Ui,t.LightTheme=Ro,t.ViewMode=Li,t.default=jo,t.getTheme=function(t){return"dark"===t?No:Ro},Object.defineProperties(t,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|
package/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export type { Annotation } from './lib/models/Annotation';
|
|
|
6
6
|
export type { GanttUserOptions } from './lib/models/Options';
|
|
7
7
|
export type { TaskInput, TaskType } from './lib/models/Tasks';
|
|
8
8
|
export { ViewMode } from './lib/util/gantt.util';
|
|
9
|
+
export { ColumnKey } from './lib/util/task.util';
|
|
9
10
|
export type { ThemeMode, GanttTheme } from './lib/models/Theme';
|
|
10
11
|
export { LightTheme, DarkTheme, getTheme } from './lib/models/Theme';
|
|
11
12
|
export { GanttEvents } from './lib/types/events';
|