@dhtmlx/trial-vue-gantt 1.1.2 → 9.1.4

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.
Files changed (46) hide show
  1. package/README.md +126 -262
  2. package/dist/dhtmlxgantt.vue.es.d.ts +352 -0
  3. package/dist/dhtmlxgantt.vue.es.js +18052 -0
  4. package/dist/vue-gantt.css +1 -0
  5. package/license.txt +43 -0
  6. package/package.json +55 -62
  7. package/whatsnew.md +1157 -0
  8. package/public/dist/gantt.js +0 -1
  9. package/src/components/Gantt.vue +0 -238
  10. package/src/components/TimeScale.vue +0 -57
  11. package/src/components/chart/Bars.vue +0 -470
  12. package/src/components/chart/CellGrid.vue +0 -22
  13. package/src/components/chart/Chart.vue +0 -236
  14. package/src/components/chart/Links.vue +0 -35
  15. package/src/components/chart/NewLink.vue +0 -39
  16. package/src/components/grid/Body.vue +0 -256
  17. package/src/components/grid/Grid.vue +0 -98
  18. package/src/components/grid/Header.vue +0 -104
  19. package/src/components/grid/actions/reorder.js +0 -193
  20. package/src/components/sidebar/Links.vue +0 -147
  21. package/src/components/sidebar/Sidebar.vue +0 -219
  22. package/src/locales/cn.js +0 -21
  23. package/src/locales/en.js +0 -21
  24. package/src/locales/ru.js +0 -21
  25. package/src/main.js +0 -46
  26. package/src/state/local.js +0 -48
  27. package/src/wx/Button.vue +0 -54
  28. package/src/wx/CNLocale.js +0 -15
  29. package/src/wx/Calendar.vue +0 -194
  30. package/src/wx/Counter.vue +0 -154
  31. package/src/wx/Datepicker.vue +0 -153
  32. package/src/wx/DefaultTheme.vue +0 -104
  33. package/src/wx/ENLocale.js +0 -15
  34. package/src/wx/IconButton.vue +0 -39
  35. package/src/wx/MaterialTheme.vue +0 -107
  36. package/src/wx/RULocale.js +0 -15
  37. package/src/wx/Select.vue +0 -75
  38. package/src/wx/Slider.vue +0 -150
  39. package/src/wx/Text.vue +0 -73
  40. package/src/wx/Textarea.vue +0 -63
  41. package/src/wx/Tooltip.vue +0 -110
  42. package/src/wx/index.js +0 -35
  43. package/src/wx/locale.js +0 -1
  44. package/src/wx/locales/cn.js +0 -39
  45. package/src/wx/locales/en.js +0 -39
  46. package/src/wx/locales/ru.js +0 -39
@@ -1 +0,0 @@
1
- import{inject as t,pushScopeId as e,popScopeId as n,openBlock as a,createBlock as o,createVNode as r,Fragment as i,renderList as s,createTextVNode as l,toDisplayString as d,withScopeId as c,resolveComponent as u,createCommentVNode as h,resolveDynamicComponent as p,renderSlot as f,nextTick as g,provide as v,readonly as m,markRaw as b}from"vue";const w=Symbol("WX Locale");var x={props:["compactMode","columns","height"],setup:()=>({t:t(w).__}),methods:{cellStyle(t){const e=`text-align:${t.align}`;return`${"100%"===t.width?"flex:1":`width:${t.width}`};${e}`},addTask(){this.$emit("action",{action:"add-task",id:0})},toggleGrid(){this.$emit("action",{action:"toggle-grid"})}},computed:{headerStyle(){return{height:this.height+"px"}}}};const k=c("data-v-0187d4b6");e("data-v-0187d4b6");const y={class:"table"};n();const C=k(((t,e,n,c,u,h)=>(a(),o("div",y,[r("div",{class:"row",style:h.headerStyle},[(a(!0),o(i,null,s(n.columns,(t=>(a(),o("div",{key:t.name,class:"cell",style:h.cellStyle(t)},[t.action?(a(),o(i,{key:0},[n.compactMode?(a(),o("span",{key:0,class:"mdi mdi-menu",onClick:e[1]||(e[1]=(...t)=>h.toggleGrid&&h.toggleGrid(...t))})):(a(),o("span",{key:1,class:"add",onClick:e[2]||(e[2]=(...t)=>h.addTask&&h.addTask(...t))}))],64)):(a(),o(i,{key:1},[l(d(c.t("gantt",t.label)),1)],64))],4)))),128))],4)]))));function M(t,e){void 0===e&&(e={});var n=e.insertAt;if(t&&"undefined"!=typeof document){var a=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&a.firstChild?a.insertBefore(o,a.firstChild):a.appendChild(o),o.styleSheet?o.styleSheet.cssText=t:o.appendChild(document.createTextNode(t))}}M("\n.table[data-v-0187d4b6] {\n\t\tposition: relative;\n\t\twidth: 100%;\n\t\tbox-shadow: var(--wx-grid-header-shadow);\n\t\tbackground-color: #fff;\n\t\tz-index: 1;\n}\n.row[data-v-0187d4b6] {\n\t\tbox-sizing: border-box;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tborder-bottom: 1px solid var(--wx-border-color);\n}\n.cell[data-v-0187d4b6] {\n\t\tbox-sizing: border-box;\n\t\tflex: 0 0 auto;\n\t\tfont: var(--wx-grid-header-font);\n\t\ttext-transform: var(--wx-grid-header-text-transform);\n\t\tcolor: var(--wx-grid-header-font-color);\n}\n.add[data-v-0187d4b6] {\n\t\tdisplay: inline-block;\n\t\twidth: 12px;\n\t\theight: 12px;\n\t\tbackground: var(--wx-add-btn-icon) center center no-repeat;\n\t\topacity: 0.54;\n\t\tcursor: pointer;\n}\n.add[data-v-0187d4b6]:hover {\n\t\topacity: 1;\n}\n.mdi-menu[data-v-0187d4b6] {\n\t\tcursor: pointer;\n\t\tfont-size: 20px;\n\t\tcolor: var(--wx-button-primary-color);\n}\n"),x.render=C,x.__scopeId="data-v-0187d4b6",x.__file="src/components/grid/Header.vue";function T(t){if(null===t||!0===t||!1===t)return NaN;var e=Number(t);return isNaN(e)?e:e<0?Math.ceil(e):Math.floor(e)}function _(t,e){if(e.length<t)throw new TypeError(t+" argument"+(t>1?"s":"")+" required, but only "+e.length+" present")}function D(t){_(1,arguments);var e=Object.prototype.toString.call(t);return t instanceof Date||"object"==typeof t&&"[object Date]"===e?new Date(t.getTime()):"number"==typeof t||"[object Number]"===e?new Date(t):("string"!=typeof t&&"[object String]"!==e||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}function S(t,e){_(2,arguments);var n=D(t),a=T(e);return isNaN(a)?new Date(NaN):a?(n.setDate(n.getDate()+a),n):n}function $(t,e){_(2,arguments);var n=D(t),a=T(e);if(isNaN(a))return new Date(NaN);if(!a)return n;var o=n.getDate(),r=new Date(n.getTime());r.setMonth(n.getMonth()+a+1,0);var i=r.getDate();return o>=i?r:(n.setFullYear(r.getFullYear(),r.getMonth(),o),n)}function L(t,e){_(2,arguments);var n=D(t).getTime(),a=T(e);return new Date(n+a)}function E(t){return t.getTime()%6e4}function H(t){var e=new Date(t.getTime()),n=Math.ceil(e.getTimezoneOffset());return e.setSeconds(0,0),6e4*n+(n>0?(6e4+E(e))%6e4:E(e))}function A(t){_(1,arguments);var e=D(t);return e.setHours(0,0,0,0),e}function N(t,e){_(2,arguments);var n=A(t),a=A(e),o=n.getTime()-H(n),r=a.getTime()-H(a);return Math.round((o-r)/864e5)}function W(t,e){_(2,arguments);var n=D(t),a=D(e),o=n.getTime()-a.getTime();return o<0?-1:o>0?1:o}function B(t){_(1,arguments);var e=D(t);return!isNaN(e)}function Y(t,e){_(2,arguments);var n=D(t),a=D(e),o=n.getFullYear()-a.getFullYear(),r=n.getMonth()-a.getMonth();return 12*o+r}function O(t,e){_(2,arguments);var n=D(t),a=D(e);return n.getFullYear()-a.getFullYear()}function P(t,e){var n=t.getFullYear()-e.getFullYear()||t.getMonth()-e.getMonth()||t.getDate()-e.getDate()||t.getHours()-e.getHours()||t.getMinutes()-e.getMinutes()||t.getSeconds()-e.getSeconds()||t.getMilliseconds()-e.getMilliseconds();return n<0?-1:n>0?1:n}function j(t,e){_(2,arguments);var n=D(t),a=D(e),o=P(n,a),r=Math.abs(N(n,a));n.setDate(n.getDate()-o*r);var i=P(n,a)===-o,s=o*(r-i);return 0===s?0:s}function R(t,e){_(2,arguments);var n=D(t),a=D(e);return n.getTime()-a.getTime()}function F(t){_(1,arguments);var e=D(t);return e.setHours(23,59,59,999),e}function z(t){_(1,arguments);var e=D(t),n=e.getMonth();return e.setFullYear(e.getFullYear(),n+1,0),e.setHours(23,59,59,999),e}function U(t){_(1,arguments);var e=D(t);return F(e).getTime()===z(e).getTime()}function V(t,e){_(2,arguments);var n=D(t),a=D(e),o=W(n,a),r=Math.abs(Y(n,a));1===n.getMonth()&&n.getDate()>27&&n.setDate(30),n.setMonth(n.getMonth()-o*r);var i=W(n,a)===-o;U(D(t))&&1===r&&1===W(t,a)&&(i=!1);var s=o*(r-i);return 0===s?0:s}var I={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function G(t){return function(e){var n=e||{},a=n.width?String(n.width):t.defaultWidth;return t.formats[a]||t.formats[t.defaultWidth]}}var q={date:G({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:G({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:G({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},X={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function Q(t){return function(e,n){var a,o=n||{};if("formatting"===(o.context?String(o.context):"standalone")&&t.formattingValues){var r=t.defaultFormattingWidth||t.defaultWidth,i=o.width?String(o.width):r;a=t.formattingValues[i]||t.formattingValues[r]}else{var s=t.defaultWidth,l=o.width?String(o.width):t.defaultWidth;a=t.values[l]||t.values[s]}return a[t.argumentCallback?t.argumentCallback(e):e]}}function J(t){return function(e,n){var a=String(e),o=n||{},r=o.width,i=r&&t.matchPatterns[r]||t.matchPatterns[t.defaultMatchWidth],s=a.match(i);if(!s)return null;var l,d=s[0],c=r&&t.parsePatterns[r]||t.parsePatterns[t.defaultParseWidth];return l="[object Array]"===Object.prototype.toString.call(c)?function(t,e){for(var n=0;n<t.length;n++)if(e(t[n]))return n}(c,(function(t){return t.test(d)})):function(t,e){for(var n in t)if(t.hasOwnProperty(n)&&e(t[n]))return n}(c,(function(t){return t.test(d)})),l=t.valueCallback?t.valueCallback(l):l,{value:l=o.valueCallback?o.valueCallback(l):l,rest:a.slice(d.length)}}}var Z,K={code:"en-US",formatDistance:function(t,e,n){var a;return n=n||{},a="string"==typeof I[t]?I[t]:1===e?I[t].one:I[t].other.replace("{{count}}",e),n.addSuffix?n.comparison>0?"in "+a:a+" ago":a},formatLong:q,formatRelative:function(t,e,n,a){return X[t]},localize:{ordinalNumber:function(t,e){var n=Number(t),a=n%100;if(a>20||a<10)switch(a%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:Q({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:Q({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(t){return Number(t)-1}}),month:Q({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:Q({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:Q({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(Z={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(t){return parseInt(t,10)}},function(t,e){var n=String(t),a=e||{},o=n.match(Z.matchPattern);if(!o)return null;var r=o[0],i=n.match(Z.parsePattern);if(!i)return null;var s=Z.valueCallback?Z.valueCallback(i[0]):i[0];return{value:s=a.valueCallback?a.valueCallback(s):s,rest:n.slice(r.length)}}),era:J({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:J({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(t){return t+1}}),month:J({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:J({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:J({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function tt(t,e){_(2,arguments);var n=T(e);return L(t,-n)}function et(t,e){for(var n=t<0?"-":"",a=Math.abs(t).toString();a.length<e;)a="0"+a;return n+a}function nt(t){_(1,arguments);var e=1,n=D(t),a=n.getUTCDay(),o=(a<e?7:0)+a-e;return n.setUTCDate(n.getUTCDate()-o),n.setUTCHours(0,0,0,0),n}function at(t){_(1,arguments);var e=D(t),n=e.getUTCFullYear(),a=new Date(0);a.setUTCFullYear(n+1,0,4),a.setUTCHours(0,0,0,0);var o=nt(a),r=new Date(0);r.setUTCFullYear(n,0,4),r.setUTCHours(0,0,0,0);var i=nt(r);return e.getTime()>=o.getTime()?n+1:e.getTime()>=i.getTime()?n:n-1}function ot(t){_(1,arguments);var e=at(t),n=new Date(0);n.setUTCFullYear(e,0,4),n.setUTCHours(0,0,0,0);var a=nt(n);return a}function rt(t,e){_(1,arguments);var n=e||{},a=n.locale,o=a&&a.options&&a.options.weekStartsOn,r=null==o?0:T(o),i=null==n.weekStartsOn?r:T(n.weekStartsOn);if(!(i>=0&&i<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var s=D(t),l=s.getUTCDay(),d=(l<i?7:0)+l-i;return s.setUTCDate(s.getUTCDate()-d),s.setUTCHours(0,0,0,0),s}function it(t,e){_(1,arguments);var n=D(t,e),a=n.getUTCFullYear(),o=e||{},r=o.locale,i=r&&r.options&&r.options.firstWeekContainsDate,s=null==i?1:T(i),l=null==o.firstWeekContainsDate?s:T(o.firstWeekContainsDate);if(!(l>=1&&l<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var d=new Date(0);d.setUTCFullYear(a+1,0,l),d.setUTCHours(0,0,0,0);var c=rt(d,e),u=new Date(0);u.setUTCFullYear(a,0,l),u.setUTCHours(0,0,0,0);var h=rt(u,e);return n.getTime()>=c.getTime()?a+1:n.getTime()>=h.getTime()?a:a-1}function st(t,e){_(1,arguments);var n=e||{},a=n.locale,o=a&&a.options&&a.options.firstWeekContainsDate,r=null==o?1:T(o),i=null==n.firstWeekContainsDate?r:T(n.firstWeekContainsDate),s=it(t,e),l=new Date(0);l.setUTCFullYear(s,0,i),l.setUTCHours(0,0,0,0);var d=rt(l,e);return d}var lt={G:function(t,e,n){var a=t.getUTCFullYear()>0?1:0;switch(e){case"G":case"GG":case"GGG":return n.era(a,{width:"abbreviated"});case"GGGGG":return n.era(a,{width:"narrow"});case"GGGG":default:return n.era(a,{width:"wide"})}},y:function(t,e,n){if("yo"===e){var a=t.getUTCFullYear(),o=a>0?a:1-a;return n.ordinalNumber(o,{unit:"year"})}return function(t,e){var n=t.getUTCFullYear(),a=n>0?n:1-n;return et("yy"===e?a%100:a,e.length)}(t,e)},Y:function(t,e,n,a){var o=it(t,a),r=o>0?o:1-o;return"YY"===e?et(r%100,2):"Yo"===e?n.ordinalNumber(r,{unit:"year"}):et(r,e.length)},R:function(t,e){return et(at(t),e.length)},u:function(t,e){return et(t.getUTCFullYear(),e.length)},Q:function(t,e,n){var a=Math.ceil((t.getUTCMonth()+1)/3);switch(e){case"Q":return String(a);case"QQ":return et(a,2);case"Qo":return n.ordinalNumber(a,{unit:"quarter"});case"QQQ":return n.quarter(a,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(a,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(a,{width:"wide",context:"formatting"})}},q:function(t,e,n){var a=Math.ceil((t.getUTCMonth()+1)/3);switch(e){case"q":return String(a);case"qq":return et(a,2);case"qo":return n.ordinalNumber(a,{unit:"quarter"});case"qqq":return n.quarter(a,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(a,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(a,{width:"wide",context:"standalone"})}},M:function(t,e,n){var a=t.getUTCMonth();switch(e){case"M":case"MM":return function(t,e){var n=t.getUTCMonth();return"M"===e?String(n+1):et(n+1,2)}(t,e);case"Mo":return n.ordinalNumber(a+1,{unit:"month"});case"MMM":return n.month(a,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(a,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(a,{width:"wide",context:"formatting"})}},L:function(t,e,n){var a=t.getUTCMonth();switch(e){case"L":return String(a+1);case"LL":return et(a+1,2);case"Lo":return n.ordinalNumber(a+1,{unit:"month"});case"LLL":return n.month(a,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(a,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(a,{width:"wide",context:"standalone"})}},w:function(t,e,n,a){var o=function(t,e){_(1,arguments);var n=D(t),a=rt(n,e).getTime()-st(n,e).getTime();return Math.round(a/6048e5)+1}(t,a);return"wo"===e?n.ordinalNumber(o,{unit:"week"}):et(o,e.length)},I:function(t,e,n){var a=function(t){_(1,arguments);var e=D(t),n=nt(e).getTime()-ot(e).getTime();return Math.round(n/6048e5)+1}(t);return"Io"===e?n.ordinalNumber(a,{unit:"week"}):et(a,e.length)},d:function(t,e,n){return"do"===e?n.ordinalNumber(t.getUTCDate(),{unit:"date"}):function(t,e){return et(t.getUTCDate(),e.length)}(t,e)},D:function(t,e,n){var a=function(t){_(1,arguments);var e=D(t),n=e.getTime();e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0);var a=e.getTime(),o=n-a;return Math.floor(o/864e5)+1}(t);return"Do"===e?n.ordinalNumber(a,{unit:"dayOfYear"}):et(a,e.length)},E:function(t,e,n){var a=t.getUTCDay();switch(e){case"E":case"EE":case"EEE":return n.day(a,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(a,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(a,{width:"short",context:"formatting"});case"EEEE":default:return n.day(a,{width:"wide",context:"formatting"})}},e:function(t,e,n,a){var o=t.getUTCDay(),r=(o-a.weekStartsOn+8)%7||7;switch(e){case"e":return String(r);case"ee":return et(r,2);case"eo":return n.ordinalNumber(r,{unit:"day"});case"eee":return n.day(o,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(o,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(o,{width:"short",context:"formatting"});case"eeee":default:return n.day(o,{width:"wide",context:"formatting"})}},c:function(t,e,n,a){var o=t.getUTCDay(),r=(o-a.weekStartsOn+8)%7||7;switch(e){case"c":return String(r);case"cc":return et(r,e.length);case"co":return n.ordinalNumber(r,{unit:"day"});case"ccc":return n.day(o,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(o,{width:"narrow",context:"standalone"});case"cccccc":return n.day(o,{width:"short",context:"standalone"});case"cccc":default:return n.day(o,{width:"wide",context:"standalone"})}},i:function(t,e,n){var a=t.getUTCDay(),o=0===a?7:a;switch(e){case"i":return String(o);case"ii":return et(o,e.length);case"io":return n.ordinalNumber(o,{unit:"day"});case"iii":return n.day(a,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(a,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(a,{width:"short",context:"formatting"});case"iiii":default:return n.day(a,{width:"wide",context:"formatting"})}},a:function(t,e,n){var a=t.getUTCHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(t,e,n){var a,o=t.getUTCHours();switch(a=12===o?"noon":0===o?"midnight":o/12>=1?"pm":"am",e){case"b":case"bb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(t,e,n){var a,o=t.getUTCHours();switch(a=o>=17?"evening":o>=12?"afternoon":o>=4?"morning":"night",e){case"B":case"BB":case"BBB":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(t,e,n){if("ho"===e){var a=t.getUTCHours()%12;return 0===a&&(a=12),n.ordinalNumber(a,{unit:"hour"})}return function(t,e){return et(t.getUTCHours()%12||12,e.length)}(t,e)},H:function(t,e,n){return"Ho"===e?n.ordinalNumber(t.getUTCHours(),{unit:"hour"}):function(t,e){return et(t.getUTCHours(),e.length)}(t,e)},K:function(t,e,n){var a=t.getUTCHours()%12;return"Ko"===e?n.ordinalNumber(a,{unit:"hour"}):et(a,e.length)},k:function(t,e,n){var a=t.getUTCHours();return 0===a&&(a=24),"ko"===e?n.ordinalNumber(a,{unit:"hour"}):et(a,e.length)},m:function(t,e,n){return"mo"===e?n.ordinalNumber(t.getUTCMinutes(),{unit:"minute"}):function(t,e){return et(t.getUTCMinutes(),e.length)}(t,e)},s:function(t,e,n){return"so"===e?n.ordinalNumber(t.getUTCSeconds(),{unit:"second"}):function(t,e){return et(t.getUTCSeconds(),e.length)}(t,e)},S:function(t,e){return function(t,e){var n=e.length,a=t.getUTCMilliseconds();return et(Math.floor(a*Math.pow(10,n-3)),e.length)}(t,e)},X:function(t,e,n,a){var o=(a._originalDate||t).getTimezoneOffset();if(0===o)return"Z";switch(e){case"X":return ct(o);case"XXXX":case"XX":return ut(o);case"XXXXX":case"XXX":default:return ut(o,":")}},x:function(t,e,n,a){var o=(a._originalDate||t).getTimezoneOffset();switch(e){case"x":return ct(o);case"xxxx":case"xx":return ut(o);case"xxxxx":case"xxx":default:return ut(o,":")}},O:function(t,e,n,a){var o=(a._originalDate||t).getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+dt(o,":");case"OOOO":default:return"GMT"+ut(o,":")}},z:function(t,e,n,a){var o=(a._originalDate||t).getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+dt(o,":");case"zzzz":default:return"GMT"+ut(o,":")}},t:function(t,e,n,a){var o=a._originalDate||t;return et(Math.floor(o.getTime()/1e3),e.length)},T:function(t,e,n,a){return et((a._originalDate||t).getTime(),e.length)}};function dt(t,e){var n=t>0?"-":"+",a=Math.abs(t),o=Math.floor(a/60),r=a%60;if(0===r)return n+String(o);var i=e||"";return n+String(o)+i+et(r,2)}function ct(t,e){return t%60==0?(t>0?"-":"+")+et(Math.abs(t)/60,2):ut(t,e)}function ut(t,e){var n=e||"",a=t>0?"-":"+",o=Math.abs(t);return a+et(Math.floor(o/60),2)+n+et(o%60,2)}function ht(t,e){switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});case"PPPP":default:return e.date({width:"full"})}}function pt(t,e){switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});case"pppp":default:return e.time({width:"full"})}}var ft={p:pt,P:function(t,e){var n,a=t.match(/(P+)(p+)?/),o=a[1],r=a[2];if(!r)return ht(t,e);switch(o){case"P":n=e.dateTime({width:"short"});break;case"PP":n=e.dateTime({width:"medium"});break;case"PPP":n=e.dateTime({width:"long"});break;case"PPPP":default:n=e.dateTime({width:"full"})}return n.replace("{{date}}",ht(o,e)).replace("{{time}}",pt(r,e))}},gt=["D","DD"],vt=["YY","YYYY"];function mt(t){return-1!==gt.indexOf(t)}function bt(t){return-1!==vt.indexOf(t)}function wt(t,e,n){if("YYYY"===t)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(e,"`) for formatting years to the input `").concat(n,"`; see: https://git.io/fxCyr"));if("YY"===t)throw new RangeError("Use `yy` instead of `YY` (in `".concat(e,"`) for formatting years to the input `").concat(n,"`; see: https://git.io/fxCyr"));if("D"===t)throw new RangeError("Use `d` instead of `D` (in `".concat(e,"`) for formatting days of the month to the input `").concat(n,"`; see: https://git.io/fxCyr"));if("DD"===t)throw new RangeError("Use `dd` instead of `DD` (in `".concat(e,"`) for formatting days of the month to the input `").concat(n,"`; see: https://git.io/fxCyr"))}var xt=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,kt=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,yt=/^'([^]*?)'?$/,Ct=/''/g,Mt=/[a-zA-Z]/;function Tt(t,e,n){_(2,arguments);var a=String(e),o=n||{},r=o.locale||K,i=r.options&&r.options.firstWeekContainsDate,s=null==i?1:T(i),l=null==o.firstWeekContainsDate?s:T(o.firstWeekContainsDate);if(!(l>=1&&l<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var d=r.options&&r.options.weekStartsOn,c=null==d?0:T(d),u=null==o.weekStartsOn?c:T(o.weekStartsOn);if(!(u>=0&&u<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!r.localize)throw new RangeError("locale must contain localize property");if(!r.formatLong)throw new RangeError("locale must contain formatLong property");var h=D(t);if(!B(h))throw new RangeError("Invalid time value");var p=H(h),f=tt(h,p),g={firstWeekContainsDate:l,weekStartsOn:u,locale:r,_originalDate:h},v=a.match(kt).map((function(t){var e=t[0];return"p"===e||"P"===e?(0,ft[e])(t,r.formatLong,g):t})).join("").match(xt).map((function(n){if("''"===n)return"'";var a=n[0];if("'"===a)return _t(n);var i=lt[a];if(i)return!o.useAdditionalWeekYearTokens&&bt(n)&&wt(n,e,t),!o.useAdditionalDayOfYearTokens&&mt(n)&&wt(n,e,t),i(f,n,r.localize,g);if(a.match(Mt))throw new RangeError("Format string contains an unescaped latin alphabet character `"+a+"`");return n})).join("");return v}function _t(t){return t.match(yt)[1].replace(Ct,"'")}const Dt={year:function(t,e){_(2,arguments);var n=D(t),a=D(e),o=W(n,a),r=Math.abs(O(n,a));n.setFullYear("1584"),a.setFullYear("1584");var i=W(n,a)===-o,s=o*(r-i);return 0===s?0:s},quarter:function(t,e){_(2,arguments);var n=V(t,e)/3;return n>0?Math.floor(n):Math.ceil(n)},month:V,week:function(t,e){_(2,arguments);var n=j(t,e)/7;return n>0?Math.floor(n):Math.ceil(n)},day:N,hour:function(t,e){_(2,arguments);var n=R(t,e)/36e5;return n>0?Math.floor(n):Math.ceil(n)}},St={year:function(t,e){_(2,arguments);var n=T(e);return $(t,12*n)},month:$,week:function(t,e){_(2,arguments);var n=T(e),a=7*n;return S(t,a)},day:S,hour:function(t,e){_(2,arguments);var n=T(e);return L(t,36e5*n)}};function $t(t){return Dt[t]}function Lt(t){return St[t]}function Et(t,e){let n;switch(t){case"month":return new Date(e.getFullYear(),e.getMonth(),1);case"year":return new Date(e.getFullYear(),0,1);case"week":return function(t,e){_(1,arguments);var n=e||{},a=n.locale,o=a&&a.options&&a.options.weekStartsOn,r=null==o?0:T(o),i=null==n.weekStartsOn?r:T(n.weekStartsOn);if(!(i>=0&&i<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var s=D(t),l=s.getDay(),d=(l<i?7:0)+l-i;return s.setDate(s.getDate()-d),s.setHours(0,0,0,0),s}(e,{weekStartsOn:1});case"day":case"hour":return n=new Date(e.getFullYear(),e.getMonth(),e.getDate()),n.setHours(0,0,0,0),n;default:return new Date(e)}}const Ht=$t("day"),At=Lt("day");function Nt(t,e,n,a,o){t.setAttribute("width",(e*a).toString()),t.setAttribute("height",(n*a).toString());const r=t.getContext("2d");return r.translate(-.5,-.5),r.strokeStyle=o,r}function Wt(t,e,n,a,o,r){t.beginPath(),t.moveTo(a,o),t.lineTo(a,r),"full"===e&&t.lineTo(n,r),t.stroke()}function Bt(t,e){for(let n=0;n<t.length;n++){const a=t[n];a.$level=e,a.data&&Bt(a.data,e+1)}}function Yt(t){const e=[];return Ot(t[0].data,e),e}function Ot(t,e){t.forEach((t=>{e.push(t),!0===t.open&&Ot(t.data,e)}))}function Pt(t,e,n){let a=t[e];const o=t[a.parent],r=o.data.indexOf(a);return a=Object.assign(Object.assign({},a),n),o.data[r]=t[e]=a,t}const jt=Lt("day"),Rt=$t("day");const Ft=$t("day");function zt(t){let e=!t.tagName&&t.target?t.target:t;for(;e;){if(e.getAttribute&&e.getAttribute("data-id"))return e;e=e.parentNode}return null}function Ut(t){const e=zt(t);return e?e.getAttribute("data-id"):null}var Vt={props:["tasks","columns","cellHeight","scrollTop","scrollDelta","selected"],data:()=>({delta:20,touchY:null,scroll:!0}),mounted(){!function(t,e){let n,a,o,r,i,s,l,d;function c(e){o=e.clientX,r=e.clientY,i=function(t,e,n){const a=t.getBoundingClientRect(),o=e.getBoundingClientRect();return{top:a.top-o.top,left:a.left-o.left,dt:a.bottom-n.clientY,db:n.clientY-a.top}}(n,t,e),document.body.style.userSelect="none"}function u(a){n=zt(a),n&&(d=setTimeout((()=>{l=!0,e&&e.touchStart&&e.touchStart(),n.classList.add("wx-reorder"),c(a.touches[0])}),500),t.addEventListener("touchmove",m),t.addEventListener("contextmenu",h),window.addEventListener("touchend",b))}function h(t){if(l||d)return t.preventDefault(),!1}function p(e){3!==e.which&&(n=zt(e),n&&(t.addEventListener("mousemove",v),window.addEventListener("mouseup",w),c(e)))}function f(e){t.removeEventListener("mousemove",v),t.removeEventListener("touchmove",m),window.removeEventListener("mouseup",w),window.removeEventListener("touchend",b),document.body.style.userSelect="",e&&(t.removeEventListener("mousedown",p),t.removeEventListener("touchstart",u))}function g(t){const l=t.clientX-o,d=t.clientY-r;if(!a){if(e&&e.start&&!1===e.start({id:n.dataset.id,e:t}))return;if(Math.abs(l)<5&&Math.abs(d)<5)return;a=n.cloneNode(!0),a.style.pointerEvents="none",a.classList.add("wx-reorder-card"),a.style.position="absolute",a.style.left=i.left+"px",a.style.top=i.top+"px",n.style.visibility="hidden",n.parentNode.insertBefore(a,n)}if(a){const o=Math.max(0,i.top+d);a.style.top=o+"px";const r=zt(document.elementFromPoint(t.clientX,t.clientY));if(r&&r!==n){const a=r.getBoundingClientRect(),l=a.top+a.height/2,d=t.clientY+i.db>l&&r.nextElementSibling!==n,c=t.clientY-i.dt<l&&r.previousElementSibling!==n;if(e&&e.move&&!1===e.move({id:n.dataset.id,top:o,before:c,after:d}))return;return void(d?(r.parentNode.insertBefore(n,r.nextElementSibling),s={id:n.dataset.id,after:r.dataset.id}):c&&(r.parentNode.insertBefore(n,r),s={id:n.dataset.id,before:r.dataset.id}))}e&&e.move&&e.move({id:n.dataset.id,top:o})}}function v(t){g(t)}function m(t){l?(t.preventDefault(),g(t.touches[0])):d&&(clearTimeout(d),d=null)}function b(){l=null,d&&(clearTimeout(d),d=null),x()}function w(){x()}function x(){n&&(n.style.visibility="",n.classList.remove("wx-reorder")),a&&(a.parentNode.removeChild(a),e&&e.end&&!1===e.end(s||{id:n.dataset.id})&&n.parentNode.removeChild(n)),n=a=i=s=null,f()}"absolute"!==t.style.position&&(t.style.position="relative"),t.addEventListener("mousedown",p),t.addEventListener("touchstart",u)}(this.$refs.node,{start:t=>this.startReorder(t),move:t=>this.moveReorder(t),end:t=>this.endReorder(t),touchStart:()=>this.endScroll()})},methods:{click(t){const e=Ut(t);if(!e)return;const n=t.target.dataset.action;n?(this.$emit("action",{id:e,action:n}),t.preventDefault()):this.$emit("action",{action:"select-task",id:e})},dblclick(t){const e=Ut(t);e&&this.$emit("action",{action:"show-details",id:e})},wheel(t){const e=t.deltaMode?18*t.deltaY:t.deltaY,n=Math.max(0,this.scrollTop+e);this.$emit("action",{action:"scroll-chart",top:n})},touchStart(t){this.scroll=!0,this.touchY=t.touches[0].clientY+this.scrollTop},touchMove(t){if(this.scroll){const e=this.touchY-t.touches[0].clientY;this.$emit("action",{action:"scroll-chart",top:e})}},endScroll(){this.scroll=!1},cellStyle(t){const e=`text-align:${t.align}`;return`${"100%"===t.width?"flex:1":`width:${t.width}`};${e}`},contentStyle(t){return{paddingLeft:(t.$level-1)*this.delta+"px"}},getIcon:t=>t.data?t.open?"icon-close":"icon-open":"",startReorder({id:t}){t*=1;const e=this.tasks.find((e=>e.id===t));e&&(e.open&&this.$emit("action",{id:t,action:"toggle-task"}),this.$emit("action",{action:"hide-details"}))},moveReorder({id:t,top:e}){this.$emit("action",{action:"move-task",id:t,obj:{top:e+this.scrollDelta}})},endReorder(t){let e=1*t.id;const{before:n,after:a}=t,o=1*(n||a);if(!o)return void this.$emit("action",{id:e,action:"repaint-task"});const r=n?"before":"after";this.$emit("action",{id:e,action:"reorder-task",obj:{id:e,mode:r,target:o}})}}};const It=c("data-v-28d3e98b")(((t,e,n,c,u,h)=>(a(),o("div",{class:"table",ref:"node",style:{top:-(n.scrollTop-n.scrollDelta)+"px"},onWheelPassive:e[1]||(e[1]=(...t)=>h.wheel&&h.wheel(...t)),onClick:e[2]||(e[2]=(...t)=>h.click&&h.click(...t)),onDblclick:e[3]||(e[3]=(...t)=>h.dblclick&&h.dblclick(...t)),onTouchstart:e[4]||(e[4]=(...t)=>h.touchStart&&h.touchStart(...t)),onTouchmove:e[5]||(e[5]=(...t)=>h.touchMove&&h.touchMove(...t)),onTouchend:e[6]||(e[6]=(...t)=>h.endScroll&&h.endScroll(...t))},[(a(!0),o(i,null,s(n.tasks,(t=>(a(),o("div",{key:t.id,class:["row",{selected:n.selected&&n.selected.id==t.id}],style:{height:n.cellHeight+"px"},"data-id":t.id},[(a(!0),o(i,null,s(n.columns,(e=>(a(),o("div",{key:e.name,class:"cell",style:h.cellStyle(e)},["text"===e.name?(a(),o("div",{key:0,class:"content",style:h.contentStyle(t)},[r("div",{class:["icon",h.getIcon(t)],"data-action":"toggle-task"},null,2),l(" "+d(e.template(t)),1)],4)):e.action?(a(),o("span",{key:1,class:"add","data-action":e.action},null,8,["data-action"])):(a(),o(i,{key:2},[l(d(e.template(t)),1)],64))],4)))),128))],14,["data-id"])))),128))],36))));M("\n.table[data-v-28d3e98b] {\n\t\tposition: relative;\n\t\twidth: 100%;\n\t\tfont: var(--wx-grid-body-font);\n\t\tcolor: var(--wx-grid-body-font-color);\n}\n.row[data-v-28d3e98b] {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tbox-sizing: border-box;\n\t\tborder-bottom: var(--wx-grid-body-row-border);\n}\n.row.selected[data-v-28d3e98b] {\n\t\tbackground: var(--wx-gantt-select-color);\n}\n.cell[data-v-28d3e98b] {\n\t\tbox-sizing: border-box;\n\t\tflex: 0 0 auto;\n\t\tpadding: 0 5px;\n\t\toverflow: hidden;\n}\n.content[data-v-28d3e98b] {\n\t\twidth: 100%;\n\t\twhite-space: nowrap;\n\t\tdisplay: flex;\n\t\tjustify-content: flex-start;\n\t\talign-items: center;\n}\n.icon[data-v-28d3e98b] {\n\t\twidth: 12px;\n\t\tmin-width: 12px;\n\t\theight: 12px;\n\t\tmargin: 0 5px;\n\t\tpointer-events: none;\n}\n.icon-close[data-v-28d3e98b],\n\t.icon-open[data-v-28d3e98b] {\n\t\tcursor: pointer;\n\t\tpointer-events: auto;\n}\n.icon-close[data-v-28d3e98b] {\n\t\tbackground: var(--wx-close-btn-icon) center center no-repeat;\n}\n.icon-open[data-v-28d3e98b] {\n\t\tbackground: var(--wx-open-btn-icon) center center no-repeat;\n}\n.add[data-v-28d3e98b] {\n\t\tdisplay: inline-block;\n\t\twidth: 12px;\n\t\theight: 12px;\n\t\tbackground: var(--wx-add-btn-icon) center center no-repeat;\n\t\topacity: 0.54;\n\t\tcursor: pointer;\n}\n.add[data-v-28d3e98b]:hover {\n\t\topacity: 1;\n}\n.wx-reorder-card.row[data-v-28d3e98b] {\n\t\twidth: 100%;\n\t\tbackground: white;\n\t\tborder-top: var(--wx-grid-body-row-border);\n\t\topacity: 50%;\n}\n.wx-reorder.row[data-v-28d3e98b] {\n\t\topacity: 50%;\n}\n"),Vt.render=It,Vt.__scopeId="data-v-28d3e98b",Vt.__file="src/components/grid/Body.vue";var Gt={components:{Header:x,Body:Vt},data:()=>({showFull:!1}),props:["compactMode","width","tasks","columns","scales","cellHeight","scrollTop","scrollDelta","selected"],methods:{action(t){const{action:e}=t;switch(e){case"toggle-grid":this.showFull=!this.showFull;break;default:this.$emit("action",t)}}},computed:{cols(){const{compactMode:t,columns:e}=this;return t?[e[e.length-1],...e.slice(0,e.length-1)]:e},basis(){return this.showFull?"100%":`${this.width}px`}},watch:{compactMode(){this.compactMode||(this.showFull=!1)}}};const qt=c("data-v-53666da2")(((t,e,n,i,s,l)=>{const d=u("Header"),c=u("Body");return a(),o("div",{class:"grid",style:{flex:`0 0 ${l.basis}`}},[r(d,{compactMode:n.compactMode,columns:l.cols,height:n.scales.height,onAction:l.action},null,8,["compactMode","columns","height","onAction"]),r(c,{tasks:n.tasks,columns:l.cols,cellHeight:n.cellHeight,scrollTop:n.scrollTop,scrollDelta:n.scrollDelta,selected:n.selected,onAction:l.action},null,8,["tasks","columns","cellHeight","scrollTop","scrollDelta","selected","onAction"])],4)}));M("\n.grid[data-v-53666da2] {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tbox-sizing: border-box;\n\t\tborder-right: 1px solid var(--wx-border-color);\n\t\toverflow: hidden;\n}\n"),Gt.render=qt,Gt.__scopeId="data-v-53666da2",Gt.__file="src/components/grid/Grid.vue";var Xt={props:["width","height","borders"],computed:{cellStyle(){return{width:"100%",height:"100%",backgroundImage:`url(${function(t,e,n,a){const o=document.createElement("canvas");if(!document.location.host.match(new RegExp(atob("KF58XC4pKGRodG1seFwuY29tfGdpdGh1YlwuY29tfGdpdGh1YlwuaW98c3RhY2tibGl6XC5jb218c3ZlbHRlXC5kZXYpJA==")))){const r=Nt(o,t,e,3,n);for(let n=0;n<3;n++)for(let o=0;o<3;o++)Wt(r,a,t*n,t*(n+1),e*o,e*(o+1));const i=(new Date).valueOf()>1634909021996;return r.font="10px monospace",r.fillStyle=i?"#ff0000":"#CCCCCC",r.translate(1.5*t,1.5*e),r.rotate(Math.PI/6),r.fillText(i?atob("VFJJQUwgRVhQSVJFRA=="):atob("VFJJQUw="),-15,4),o.toDataURL()}return Wt(Nt(o,t,e,1,n),a,0,t,0,e),o.toDataURL()}(this.width,this.height,"#ebebeb",this.borders)})`}}}};Xt.render=function(t,e,n,r,i,s){return a(),o("div",{style:s.cellStyle},null,4)},Xt.__file="src/components/chart/CellGrid.vue";var Qt={props:["links","width","height"]};const Jt=c("data-v-35a95f70")(((t,e,n,r,l,d)=>(a(),o("svg",{class:"links",width:n.width,height:n.height},[(a(!0),o(i,null,s(n.links,(t=>(a(),o("polyline",{class:"line",key:t.id,points:t.$p},null,8,["points"])))),128))],8,["width","height"]))));M("\n.links[data-v-35a95f70] {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n}\n.line[data-v-35a95f70] {\n\t\tuser-select: auto;\n\t\tpointer-events: stroke;\n\t\tposition: relative;\n\t\tcursor: pointer;\n\t\tstroke: var(--wx-gantt-link-color);\n\t\tstroke-width: 2;\n\t\tz-index: 0;\n\t\tfill: transparent;\n}\n"),Qt.render=Jt,Qt.__scopeId="data-v-35a95f70",Qt.__file="src/components/chart/Links.vue";var Zt={props:["layer","start","end"],computed:{link(){return function(t,e,n){if(e&&n){const a=n.x-e.x,o=n.y-e.y,r=(a>0?e.x:n.x)-t.left,i=(o>0?e.y:n.y)-t.top,s=`${a>0?0:-a},${o>0?0:-o},${a>0?a:0},${o>0?o:0}`;return{width:Math.abs(a),height:Math.abs(o),left:r,top:i,p:s}}return null}(this.layer.getBoundingClientRect(),this.start,this.end)}}};const Kt=c("data-v-c44757ee")(((t,e,n,i,s,l)=>(a(),o("svg",{class:"new",style:`top:${l.link.top}px;left:${l.link.left}px`,width:l.link.width,height:l.link.height},[r("polyline",{class:"line",points:l.link.p},null,8,["points"])],12,["width","height"]))));M("\n.new[data-v-c44757ee] {\n\t\tposition: relative;\n\t\tpointer-events: none;\n}\n.line[data-v-c44757ee] {\n\t\tstroke: var(--wx-gantt-link-color);\n\t\tstroke-width: 2;\n\t\tfill: none;\n}\n"),Zt.render=Kt,Zt.__scopeId="data-v-c44757ee",Zt.__file="src/components/chart/NewLink.vue";var te={components:{NewLink:Zt},props:["tasks","drag","newLink","cellWidth","templates"],data:()=>({taskMove:null,layer:null,start:null,end:null,ignoreNextClick:!1,touched:null,touchTimer:null}),methods:{mousedown(t){const e=zt(t);e&&this.down(e,t.target,t)},mousemove(t){this.move(t,t)},mouseup(t){this.up(t)},touchstart(t){const e=zt(t);if(e){const n=t.target;this.touchTimer=setTimeout((()=>{this.touched=!0,this.down(e,n,t.touches[0])}),300)}},touchmove(t){this.touched?(t.preventDefault(),this.move(t,t.touches[0])):this.touchTimer&&(clearTimeout(this.touchTimer),this.touchTimer=null)},touchend(t){this.touched=null,this.touchTimer&&(clearTimeout(this.touchTimer),this.touchTimer=null),this.up(t.changedTouches[0])},contextmenu(t){if(!this.touched||!this.touchTimer)return t.preventDefault(),!1},down(t,e,n){const{clientX:a,clientY:o}=n,r=t.dataset.id,i=e.classList;if(i.contains("link"))this.start={id:r,start:i.contains("left"),x:a,y:o},this.startDrag();else{let e=this.getMoveMode(t,n)||"move";this.taskMove={id:r,mode:e,node:t,x:a,dx:0,l:parseInt(t.style.left),w:parseInt(t.style.width)},this.startDrag()}},up(t){if(this.start){const{clientX:e,clientY:n}=t,a=this.start.id,o=this.start.start;this.start=this.end=null;const r=zt(document.elementFromPoint(e,n));if(!r)return;const i=r.classList,s=r.dataset.id;if(!s||a==s)return;let l=!0;if(i.contains("link"))i.contains("right")&&(l=!1);else{const t=r.getBoundingClientRect();l=e-t.left<t.width/2}const d=(o?1:0)+(l?0:2);this.newLink&&this.$emit("action",{action:"add-link",obj:{source:a,target:s,type:d}}),this.endDrag()}else if(this.taskMove){const{id:t,mode:e,dx:n,node:a,l:o,w:r,start:i}=this.taskMove;if(this.taskMove=null,!i)return;const s=Math.round(n/this.cellWidth);s||(a.style.left=`${o}px`,a.style.width=`${r}px`),this.$emit("action",{action:"update-task-time",id:t,obj:{mode:e,time:s}}),this.ignoreNextClick=!0,this.endDrag()}},move(t,e){const{clientX:n,clientY:a}=e;if(this.start)this.end={x:n,y:a};else if(this.taskMove&&this.drag){const{node:t,mode:e,l:a,w:o,x:r,id:i}=this.taskMove,s=this.taskMove.dx=n-r;if(!this.start&&Math.abs(s)<20)return;"start"===e?(t.style.left=`${a+s}px`,t.style.width=o-s+"px"):"end"===e?t.style.width=`${o+s}px`:"move"===e&&(t.style.left=`${a+s}px`),this.taskMove.start=!0,this.$emit("action",{action:"move-task",id:i,obj:{width:parseInt(t.style.width),left:parseInt(t.style.left)}})}else{const n=zt(t);if(n){const t=this.getMoveMode(n,e);n.style.cursor=t?"col-resize":"pointer"}}},click(t){if(this.ignoreNextClick)return void(this.ignoreNextClick=!0);const e=Ut(t.target);e&&this.$emit("action",{action:"select-task",id:e})},dblclick(t){const e=Ut(t.target);e&&this.$emit("action",{action:"show-details",id:e})},getMoveMode(t,e){if("milestone"===this.getTask(t.dataset.id).type)return"";const n=t.getBoundingClientRect(),a=(e.clientX-n.left)/n.width;let o=.2/(n.width>200?n.width/200:1);return a<o?"start":a>1-o?"end":""},getTask(t){return this.tasks.find((e=>e.id==t))},taskStyle:t=>`left:${t.$x}px;top:${t.$y}px;width:${t.$w}px;height:${t.$h}px`,startDrag(){document.body.style.userSelect="none"},endDrag(){document.body.style.userSelect=""}},computed:{addLink(){return!!this.$refs.layer&&!!this.start&&!!this.end},lineHeight(){return`line-height: ${this.tasks.length?this.tasks[0].$h:0}px`},template(){return this.templates&&this.templates.taskText}}};const ee=c("data-v-259c47fe");e("data-v-259c47fe");const ne=r("div",{class:"link left"},null,-1),ae={key:0,class:"progress-wrapper"},oe={key:1,class:"textLeft"},re={key:2,class:"textRight"},ie={key:4,class:"text"},se=r("div",{class:"content"},null,-1),le={class:"textRight"},de=r("div",{class:"link right"},null,-1);n();const ce=ee(((t,e,n,l,c,f)=>{const g=u("NewLink");return a(),o("div",{class:"bars",ref:"layer",style:f.lineHeight,onContextmenu:e[1]||(e[1]=(...t)=>f.contextmenu&&f.contextmenu(...t)),onMousedown:e[2]||(e[2]=(...t)=>f.mousedown&&f.mousedown(...t)),onMouseup:e[3]||(e[3]=(...t)=>f.mouseup&&f.mouseup(...t)),onMousemove:e[4]||(e[4]=(...t)=>f.mousemove&&f.mousemove(...t)),onTouchstart:e[5]||(e[5]=(...t)=>f.touchstart&&f.touchstart(...t)),onTouchmove:e[6]||(e[6]=(...t)=>f.touchmove&&f.touchmove(...t)),onTouchend:e[7]||(e[7]=(...t)=>f.touchend&&f.touchend(...t)),onClick:e[8]||(e[8]=(...t)=>f.click&&f.click(...t)),onDblclick:e[9]||(e[9]=(...t)=>f.dblclick&&f.dblclick(...t)),onDragstart:e[10]||(e[10]=()=>!1)},[(a(!0),o(i,null,s(n.tasks,(e=>(a(),o("div",{key:e.id,class:["bar",e.type||"task",{touch:t.touched&&t.taskMove&&e.id==t.taskMove.id}],style:f.taskStyle(e),"data-id":e.id,"data-type":e.type,"data-tooltip-id":e.id},[ne,"milestone"!==e.type?(a(),o(i,{key:0},[e.progress?(a(),o("div",ae,[r("div",{class:"progress-percent",style:{width:e.progress+"%"}},null,4)])):h("v-if",!0),e.textLeft?(a(),o("div",oe,d(e.textLeft),1)):h("v-if",!0),e.textRight?(a(),o("div",re,d(e.textRight),1)):h("v-if",!0),f.template?(a(),o(p(n.templates.taskText),{key:3,data:e},null,8,["data"])):(a(),o("div",ie,d(e.text),1))],64)):(a(),o(i,{key:1},[se,r("div",le,d(e.text||e.textRight),1)],64)),de],14,["data-id","data-type","data-tooltip-id"])))),128)),t.start&&t.end&&n.newLink?(a(),o(g,{key:0,layer:t.$refs.layer,start:t.start,end:t.end},null,8,["layer","start","end"])):h("v-if",!0)],36)}));M("\n.bars[data-v-259c47fe] {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\twidth: 100%;\n\t\theight: 100%;\n}\n.bar[data-v-259c47fe] {\n\t\tbox-sizing: border-box;\n\t\tposition: absolute;\n\t\tborder-radius: var(--wx-gantt-bar-border-radius);\n\t\tfont: var(--wx-gantt-bar-font);\n\t\twhite-space: nowrap;\n\t\tline-height: inherit;\n\t\ttext-align: center;\n\t\tcursor: pointer;\n\t\t-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n.bar.touch[data-v-259c47fe] {\n\t\topacity: 0.5;\n}\n.task[data-v-259c47fe] {\n\t\tborder: 1px solid var(--wx-gantt-task-border-color);\n\t\tborder-color: var(--wx-gantt-task-border-color);\n\t\tcolor: var(--wx-gantt-task-font-color);\n\t\tbackground-color: var(--wx-gantt-task-color);\n}\n.project[data-v-259c47fe] {\n\t\tborder: 1px solid var(--wx-gantt-project-border-color);\n\t\tborder-color: var(--wx-gantt-project-border-color);\n\t\tcolor: var(--wx-gantt-project-font-color);\n\t\tbackground-color: var(--wx-gantt-project-color);\n}\n.content[data-v-259c47fe] {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tuser-select: none;\n}\n.text[data-v-259c47fe] {\n\t\tposition: relative;\n\t\tz-index: 2;\n\t\tdisplay: inline;\n}\n.textRight[data-v-259c47fe],\n\t.textLeft[data-v-259c47fe] {\n\t\tposition: absolute;\n\t\tline-height: normal;\n\t\tdisplay: block;\n\t\tleft: 100%;\n\t\tcolor: var(--wx-font-color);\n\t\tpointer-events: none;\n\t\tpadding: 0 10px;\n}\n.textLeft[data-v-259c47fe] {\n\t\tleft: auto;\n\t\tright: 100%;\n}\n.milestone .textRight[data-v-259c47fe] {\n\t\tpadding: 0;\n}\n.milestone .content[data-v-259c47fe] {\n\t\theight: 100%;\n\t\tbackground-color: var(--wx-gantt-milestone-color);\n\t\ttransform: rotate(45deg) scale(0.75);\n}\n.progress-wrapper[data-v-259c47fe] {\n\t\tposition: absolute;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tbackground-color: transparent;\n\t\tborder-radius: var(--wx-gantt-bar-border-radius);\n\t\toverflow: hidden;\n}\n.progress-percent[data-v-259c47fe] {\n\t\theight: 100%;\n}\n.task .progress-percent[data-v-259c47fe] {\n\t\tbackground-color: var(--wx-gantt-task-fill-color);\n}\n.project .progress-percent[data-v-259c47fe] {\n\t\tbackground-color: var(--wx-gantt-project-fill-color);\n}\n.link[data-v-259c47fe] {\n\t\tposition: absolute;\n\t\tz-index: 2;\n\t\ttop: 50%;\n\t\ttransform: translateY(-50%);\n\t\twidth: 16px;\n\t\theight: 16px;\n\t\tborder-radius: 50%;\n\t\tborder: 1px solid #929292;\n\t\tbackground-color: #f0f0f0;\n\t\tcursor: pointer;\n\t\tuser-select: none;\n\t\topacity: 0;\n}\n.link.left[data-v-259c47fe] {\n\t\tleft: -8px;\n}\n.link.right[data-v-259c47fe] {\n\t\tright: -8px;\n}\n.bar:hover .link[data-v-259c47fe],\n\t.link[data-v-259c47fe]:hover {\n\t\topacity: 1;\n}\n.milestone .link.left[data-v-259c47fe] {\n\t\tleft: -16px;\n}\n.milestone .link.right[data-v-259c47fe] {\n\t\tright: -16px;\n}\n"),te.render=ce,te.__scopeId="data-v-259c47fe",te.__file="src/components/chart/Bars.vue";var ue={components:{CellGrid:Xt,Links:Qt,Bars:te},props:["drag","newLink","markers","tasks","links","scrollTop","scrollLeft","cellWidth","cellHeight","fullWidth","fullHeight","selected","templates","borders"],data:()=>({chart:{}}),methods:{action(t){this.$emit("action",t)},scroll(){this.$emit("action",{action:"scroll-chart",top:this.chart.scrollTop,left:this.chart.scrollLeft}),this.dataRequest()},dataRequest(){const t=this.chart.clientHeight||0,e=Math.ceil(t/this.cellHeight)+1,n=Math.floor(this.chart.scrollTop/this.cellHeight),a=Math.max(0,n),o=n+e,r=a*this.cellHeight;this.$emit("action",{action:"data-request",start:a,end:o,from:r})},scrollToTask(t){if(t){const{clientWidth:e,clientHeight:n}=this.chart;let a=this.scrollLeft,o=this.scrollTop;t.$x<=a?a=t.$x-this.cellWidth:t.$x+t.$w>=e+a&&t.$w<e?a=t.$x+t.$w-e+this.cellWidth:t.$w>e&&(a=t.$x-this.cellWidth),t.$y<o?o=t.$y-this.cellHeight:t.$y+t.$h>=n+o&&(o=t.$y-n+this.cellHeight),this.$emit("action",{action:"scroll-chart",top:o,left:a})}}},mounted(){window.addEventListener("resize",this.dataRequest),this.chart=this.$refs.chart,this.dataRequest()},updated(){this.chart.scrollTop=this.scrollTop,this.chart.scrollLeft=this.scrollLeft,this.scrollTop!==this.chart.scrollTop&&this.$emit("action",{action:"scroll-chart",top:this.chart.scrollTop})},unmounted(){window.removeEventListener("resize",this.dataRequest)},computed:{areaStyle(){return{width:`${this.fullWidth}px`,height:`${this.fullHeight}px`}},markersHeight(){return this.fullHeight>this.chart.clientHeight?this.chart.clientHeight:this.fullHeight},markersStyle(){return{height:`${this.markersHeight}px`,left:-this.scrollLeft+"px"}},selectStyle(){return{height:this.cellHeight-1+"px",top:this.selected.$y-3+"px"}}},watch:{selected(){this.selected&&this.scrollToTask(this.selected)},cellHeight(){this.scroll()}}};const he=c("data-v-b99d8426");e("data-v-b99d8426");const pe={class:"content"};n();const fe=he(((t,e,n,l,c,p)=>{const f=u("CellGrid"),g=u("Links"),v=u("Bars");return a(),o("div",{class:"chart",ref:"chart",onScroll:e[1]||(e[1]=(...t)=>p.scroll&&p.scroll(...t))},[n.markers.length?(a(),o("div",{key:0,class:"markers",style:p.markersStyle},[(a(!0),o(i,null,s(n.markers,((t,e)=>(a(),o("div",{key:e,class:["marker",t.css||"default"],style:{left:t.left+"px"}},[r("div",pe,d(t.text),1)],6)))),128))],4)):h("v-if",!0),r("div",{class:"area",style:p.areaStyle},[r(f,{width:n.cellWidth,height:n.cellHeight,borders:n.borders},null,8,["width","height","borders"]),n.selected?(a(),o("div",{key:0,class:"selection",style:p.selectStyle},null,4)):h("v-if",!0),r(g,{links:n.links,width:n.fullWidth,height:n.fullHeight},null,8,["links","width","height"]),r(v,{tasks:n.tasks,templates:n.templates,cellWidth:n.cellWidth,drag:n.drag,newLink:n.newLink,onAction:p.action},null,8,["tasks","templates","cellWidth","drag","newLink","onAction"])],4)],544)}));M("\n.chart[data-v-b99d8426] {\n\t\tflex: 1 1 auto;\n\t\toverflow: auto;\n}\n.markers[data-v-b99d8426] {\n\t\tposition: absolute;\n}\n.marker[data-v-b99d8426] {\n\t\tposition: absolute;\n\t\tz-index: 5;\n\t\twidth: 2px;\n\t\theight: 100%;\n\t\ttext-align: center;\n\t\tuser-select: none;\n\t\ttransform: scaleX(-1);\n}\n.default[data-v-b99d8426] {\n\t\tbackground-color: var(--wx-gantt-marker-color);\n}\n.content[data-v-b99d8426] {\n\t\tposition: absolute;\n\t\tmin-width: 80px;\n\t\tpadding: 4px 8px;\n\t\tborder-top-left-radius: 4px;\n\t\tborder-bottom-left-radius: 4px;\n\t\tfont: var(--wx-gantt-marker-font);\n\t\tcolor: var(--wx-gantt-marker-font-color);\n\t\tbackground-color: inherit;\n\t\twhite-space: nowrap;\n\t\ttransform: scaleX(-1);\n}\n.area[data-v-b99d8426] {\n\t\tposition: relative;\n}\n.selection[data-v-b99d8426] {\n\t\tposition: absolute;\n\t\tbox-sizing: border-box;\n\t\tleft: 0;\n\t\twidth: 100%;\n\t\tbackground: var(--wx-gantt-select-color);\n}\n"),ue.render=fe,ue.__scopeId="data-v-b99d8426",ue.__file="src/components/chart/Chart.vue";var ge={props:{appearance:{type:String,default:"primary"}},emits:["click"]};const ve=c("data-v-bba02a92")(((t,e,n,r,i,s)=>(a(),o("button",{class:["btn",n.appearance],onClick:e[1]||(e[1]=e=>t.$emit("click"))},[f(t.$slots,"default")],2))));M("\n.btn[data-v-bba02a92] {\n\t\tmin-width: 82px;\n\t\tpadding: 8px 16px;\n\t\tborder: none;\n\t\tborder-radius: var(--wx-button-radius);\n\t\tfont: var(--wx-button-font);\n\t\ttext-transform: uppercase;\n\t\tcursor: pointer;\n}\n.btn[data-v-bba02a92]:active {\n\t\toutline: none;\n\t\topacity: 0.7;\n}\n.btn[data-v-bba02a92]:focus {\n\t\toutline: none;\n}\n.primary[data-v-bba02a92] {\n\t\tmargin-right: 20px;\n\t\tcolor: var(--wx-button-primary-font-color);\n\t\tbackground-color: var(--wx-button-primary-color);\n}\n.primary[data-v-bba02a92]:hover {\n\t\tbackground-color: var(--wx-button-primary-color-hover);\n}\n.danger[data-v-bba02a92] {\n\t\tcolor: var(--wx-button-danger-font-color);\n\t\tbackground-color: var(--wx-button-danger-color);\n}\n.danger[data-v-bba02a92]:hover {\n\t\tbackground-color: var(--wx-button-danger-color-hover);\n}\n"),ge.render=ve,ge.__scopeId="data-v-bba02a92",ge.__file="src/wx/Button.vue";var me={props:{label:{type:String,default:""},value:{type:String,default:""},placeholder:{type:String,default:""},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},autofocus:{type:Boolean,default:!1}},emits:["change"],data:()=>({node:null}),methods:{input(t){this.$emit("change",t.target.value)}},mounted(){this.autofocus&&this.$refs.node.focus()}};const be=c("data-v-0b1e2a72");e("data-v-0b1e2a72");const we={class:"text"},xe={class:"label"};n();const ke=be(((t,e,n,i,s,l)=>(a(),o("div",we,[r("label",xe,d(n.label),1),r("input",{ref:"node",type:"text",class:"input",value:n.value,placeholder:n.placeholder,readonly:n.readonly,disabled:n.disabled,onInput:e[1]||(e[1]=(...t)=>l.input&&l.input(...t))},null,40,["value","placeholder","readonly","disabled"])]))));M("\n.text[data-v-0b1e2a72] {\n\t\tmargin-bottom: 20px;\n}\n.label[data-v-0b1e2a72] {\n\t\tdisplay: block;\n\t\tmargin-bottom: 10px;\n\t\tfont: var(--wx-label-font);\n\t\tcolor: var(--wx-label-font-color);\n}\n.input[data-v-0b1e2a72] {\n\t\tbox-sizing: border-box;\n\t\twidth: 100%;\n\t\tpadding: var(--wx-input-padding);\n\t\tborder: var(--wx-input-border);\n\t\tborder-radius: var(--wx-input-border-radius);\n\t\tfont: var(--wx-input-font);\n\t\tcolor: var(--wx-input-font-color);\n\t\toutline: none;\n}\n.input[data-v-0b1e2a72]:focus {\n\t\tborder: 1px solid var(--wx-input-focus-color);\n}\n"),me.render=ke,me.__scopeId="data-v-0b1e2a72",me.__file="src/wx/Text.vue";var ye={props:{label:{type:String,default:""},value:{type:String,default:""},options:{type:Array,default:()=>[]}},emits:["change"],methods:{select(t){this.$emit("change",t.target.value)}}};const Ce=c("data-v-2a1d0381");e("data-v-2a1d0381");const Me={class:"container"},Te={class:"label"},_e={class:"wrapper"},De=r("div",{class:"icon"},null,-1);n();const Se=Ce(((t,e,n,l,c,u)=>(a(),o("div",Me,[r("label",Te,d(n.label),1),r("div",_e,[r("select",{class:"select",value:n.value,onChange:e[1]||(e[1]=(...t)=>u.select&&u.select(...t))},[(a(!0),o(i,null,s(n.options,(t=>(a(),o("option",{key:t,value:t},d(t),9,["value"])))),128))],40,["value"]),De])]))));M("\n.container[data-v-2a1d0381] {\n\t\tmargin-bottom: 20px;\n}\n.label[data-v-2a1d0381] {\n\t\tdisplay: block;\n\t\tmargin-bottom: 10px;\n\t\tfont: var(--wx-label-font);\n\t\tcolor: var(--wx-label-font-color);\n}\n.wrapper[data-v-2a1d0381] {\n\t\tposition: relative;\n\t\tdisplay: flex;\n}\n.select[data-v-2a1d0381] {\n\t\twidth: 100%;\n\t\tpadding: var(--wx-input-padding);\n\t\tborder: var(--wx-input-border);\n\t\tborder-radius: var(--wx-input-border-radius);\n\t\tfont: var(--wx-input-font);\n\t\tcolor: var(--wx-input-font-color);\n\t\ttext-transform: capitalize;\n\t\toutline: none;\n\t\tappearance: none;\n}\n.select[data-v-2a1d0381]:focus {\n\t\tborder: 1px solid var(--wx-input-focus-color);\n}\n.icon[data-v-2a1d0381] {\n\t\tposition: absolute;\n\t\ttop: 50%;\n\t\tright: 11px;\n\t\ttransform: translateY(-50%);\n\t\twidth: 20px;\n\t\theight: 20px;\n\t\tbackground: var(--wx-show-more-icon) center center no-repeat;\n\t\tpointer-events: none;\n}\n"),ye.render=Se,ye.__scopeId="data-v-2a1d0381",ye.__file="src/wx/Select.vue";var $e={props:{label:{type:String,default:""},value:{type:String,default:""},placeholder:{type:String,default:""},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["change"],methods:{input(t){this.$emit("change",t.target.value)}}};const Le=c("data-v-65136f7f");e("data-v-65136f7f");const Ee={class:"area"},He={class:"label"};n();const Ae=Le(((t,e,n,i,s,l)=>(a(),o("div",Ee,[r("label",He,d(n.label),1),r("textarea",{class:"textarea",value:n.value,placeholder:n.placeholder,readonly:n.readonly,disabled:n.disabled,onInput:e[1]||(e[1]=(...t)=>l.input&&l.input(...t))},null,40,["value","placeholder","readonly","disabled"])]))));M("\n.area[data-v-65136f7f] {\n\t\tmargin-bottom: 20px;\n\t\tfont: var(--wx-font);\n}\n.label[data-v-65136f7f] {\n\t\tdisplay: block;\n\t\tmargin-bottom: 10px;\n\t\tfont: var(--wx-label-font);\n\t\tcolor: var(--wx-label-font-color);\n}\n.textarea[data-v-65136f7f] {\n\t\tbox-sizing: border-box;\n\t\twidth: 100%;\n\t\theight: 70px;\n\t\tpadding: var(--wx-input-padding);\n\t\tborder: var(--wx-input-border);\n\t\tborder-radius: var(--wx-input-border-radius);\n\t\tfont: var(--wx-input-font);\n\t\tcolor: var(--wx-input-font-color);\n\t\tresize: vertical;\n\t\toutline: none;\n}\n.textarea[data-v-65136f7f]:focus {\n\t\tborder: 1px solid var(--wx-input-focus-color);\n}\n"),$e.render=Ae,$e.__scopeId="data-v-65136f7f",$e.__file="src/wx/Textarea.vue";var Ne={props:{label:{type:String,default:""},value:{type:Number,default:0},min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},inactive:{type:String,default:"#dbdbdb"}},emits:["change"],methods:{input(t){this.$emit("change",+t.target.value)}},computed:{bgStyle(){const{value:t,min:e,max:n,inactive:a}=this,o=(t-e)/(n-e)*100+"%";return`background: linear-gradient(90deg, var(--wx-input-focus-color) 0% ${o}, ${a} ${o} 100%);`}}};const We=c("data-v-62806634");e("data-v-62806634");const Be={class:"slider"},Ye={class:"label"};n();const Oe=We(((t,e,n,i,s,l)=>(a(),o("div",Be,[r("label",Ye,d(n.label),1),r("input",{type:"range",class:"range",style:l.bgStyle,value:n.value,min:n.min,max:n.max,step:n.step,onInput:e[1]||(e[1]=(...t)=>l.input&&l.input(...t))},null,44,["value","min","max","step"])]))));M("\n.slider[data-v-62806634] {\n\t\tmargin-bottom: 20px;\n}\n.label[data-v-62806634] {\n\t\tdisplay: block;\n\t\tmargin-bottom: 10px;\n\t\tfont: var(--wx-label-font);\n\t\tcolor: var(--wx-label-font-color);\n}\n.range[data-v-62806634] {\n\t\twidth: 100%;\n\t\tbackground-color: #dbdbdb;\n\t\t-webkit-appearance: none;\n\t\tborder-radius: 4px;\n}\n.range[data-v-62806634]:focus {\n\t\toutline: none;\n}\n.range[data-v-62806634]::-webkit-slider-runnable-track {\n\t\tborder-radius: 4px;\n\t\twidth: 100%;\n\t\theight: 8px;\n\t\tcursor: pointer;\n}\n.range[data-v-62806634]::-webkit-slider-thumb {\n\t\tmargin-top: -6px;\n\t\twidth: 20px;\n\t\theight: 20px;\n\t\tbackground: var(--wx-input-focus-color);\n\t\tborder: 2px solid #ffffff;\n\t\tborder-radius: 50%;\n\t\tcursor: pointer;\n\t\t-webkit-appearance: none;\n}\n.range[data-v-62806634]::-moz-range-track {\n\t\tbackground-color: transparent;\n\t\tborder-top: 5px solid #fff;\n\t\tborder-bottom: 5px solid #fff;\n\t\twidth: 100%;\n\t\theight: 8px;\n\t\tcursor: pointer;\n}\n.range[data-v-62806634]::-moz-range-thumb {\n\t\twidth: 14px;\n\t\theight: 14px;\n\t\tbackground: var(--wx-input-focus-color);\n\t\tborder: 2px solid #ffffff;\n\t\tborder-radius: 50%;\n\t\tcursor: pointer;\n}\n.range[data-v-62806634]::-moz-range-progress {\n\t\tbackground-color: var(--wx-input-focus-color);\n\t\theight: 8px;\n\t\tborder-top-left-radius: 6px;\n\t\tborder-bottom-left-radius: 6px;\n}\n.range[data-v-62806634]::-ms-track {\n\t\tbackground: transparent;\n\t\tborder-color: transparent;\n\t\tborder-width: 5px 0;\n\t\tcolor: transparent;\n\t\twidth: 100%;\n\t\theight: 8px;\n\t\tcursor: pointer;\n}\n.range[data-v-62806634]::-ms-fill-lower {\n\t\tbackground: var(--wx-input-focus-color);\n\t\tborder: 0.2px solid var(--wx-input-focus-color);\n\t\tborder-radius: 8px;\n}\n.range[data-v-62806634]::-ms-fill-upper {\n\t\tbackground: #dbdbdb;\n\t\tborder: 0.2px solid #dbdbdb;\n\t\tborder-radius: 8px;\n}\n.range[data-v-62806634]::-ms-thumb {\n\t\twidth: 16px;\n\t\theight: 16px;\n\t\tbackground: var(--wx-focus-color);\n\t\tborder: 2px solid #ffffff;\n\t\tborder-radius: 50%;\n\t\tcursor: pointer;\n\t\tmargin-top: 0px;\n}\n.range[data-v-62806634]:focus::-ms-fill-lower {\n\t\tbackground: var(--wx-focus-color);\n}\n.range[data-v-62806634]:focus::-ms-fill-upper {\n\t\tbackground: #dbdbdb;\n}\n"),Ne.render=Oe,Ne.__scopeId="data-v-62806634",Ne.__file="src/wx/Slider.vue";let Pe={__dates:{months:["January","February","March","April","May","June","July","August","September","October","November","December"],days:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]}};function je(){return{_:t=>Pe[t]||t,__(t,e){const n=Pe[t];return n&&n[e]||e},extend(t){return Pe={...Pe,...t},this}}}var Re={props:["value","date","startOnMonday"],emits:["change"],setup:()=>({locDates:(t(w,null)||je())._("__dates")}),data(){const t=this.locDates.days,e=this.startOnMonday?1:0;return{v:this.value||null,d:this.date||new Date,shiftDays:e,dayNames:e?t:t.slice(1).concat(t[6]),month:null,year:null}},methods:{changeMonth(t){const e=new Date(this.d);e.setMonth(e.getMonth()+t),this.d=e},hashDate:t=>t?12*t.getFullYear()*40+40*t.getMonth()+t.getDate():0,selectDate(t){let e=t.target.dataset.index;if(e||(e=t.target.parentNode.dataset.index),!e)return;const n=new Date(this.start);n.setDate(n.getDate()+1*e),this.v=n,this.$emit("change",n)},dates(){const t=this.d,e=this.v;this.year=t.getFullYear(),this.month=t.getMonth(),this.start=new Date(t),this.start.setDate(1);const n=-this.start.getDay()-this.shiftDays+2;this.start.setDate(n);const a=this.hashDate(e),o=new Date(this.start),r=[];for(let t=0;t<42;t++){const t=o.getDay(),e=0===t||6===t,n=o.getMonth()===this.month,i=a===this.hashDate(o);r.push({v:o.getDate(),c:"date "+(i?"selected ":"")+(e?"weekend ":"")+(n?"":"outside ")}),o.setDate(o.getDate()+1)}return r}},computed:{currentDate(){return this.locDates.months[this.month]+" "+this.year}}};const Fe=c("data-v-7195dcfa");e("data-v-7195dcfa");const ze={class:"calendar"},Ue={class:"controls"},Ve={class:"month"},Ie={class:"days"};n();const Ge=Fe(((t,e,n,l,c,u)=>(a(),o("div",ze,[r("div",Ue,[r("div",{class:"icon mdi mdi-chevron-left",onClick:e[1]||(e[1]=t=>u.changeMonth(-1))}),r("div",Ve,d(u.currentDate),1),r("div",{class:"icon mdi mdi-chevron-right",onClick:e[2]||(e[2]=t=>u.changeMonth(1))})]),r("div",Ie,[(a(!0),o(i,null,s(c.dayNames,(t=>(a(),o("div",{class:"day",key:t},d(t),1)))),128))]),r("div",{class:"dates",onClick:e[3]||(e[3]=(...t)=>u.selectDate&&u.selectDate(...t))},[(a(!0),o(i,null,s(u.dates(),((t,e)=>(a(),o("div",{class:["date",t.c],key:t,"data-index":e},[r("span",null,d(t.v),1)],10,["data-index"])))),128))])]))));function qe(t){const e=t.toString();return 1===e.length?"0"+e:e}M("\n.calendar[data-v-7195dcfa] {\n\t\tbox-sizing: border-box;\n\t\twidth: 183px;\n\t\tpadding: 7px;\n\t\tborder: var(--wx-calendar-border);\n}\n.controls[data-v-7195dcfa] {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\talign-items: center;\n}\n.icon[data-v-7195dcfa] {\n\t\tfont-size: 20px;\n\t\tcolor: rgba(0, 0, 0, 0.5);\n\t\tcursor: pointer;\n\t\tuser-select: none;\n\t\ttransition: color 0.15s ease-in;\n}\n.month[data-v-7195dcfa] {\n\t\tfont: var(--wx-calendar-month-font);\n\t\tcolor: var(--wx-calendar-month-font-color);\n}\n.days[data-v-7195dcfa] {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: repeat(7, 1fr);\n\t\tgrid-template-rows: 28px;\n}\n.day[data-v-7195dcfa] {\n\t\tfont: var(--wx-calendar-days-font);\n\t\tcolor: var(--wx-calendar-days-font-color);\n\t\talign-self: center;\n\t\ttext-align: center;\n}\n.dates[data-v-7195dcfa] {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: repeat(7, 1fr);\n\t\tgrid-template-rows: repeat(6, 24px);\n\t\tfont: var(--wx-calendar-dates-font);\n\t\tcolor: var(--wx-calendar-dates-font-color);\n}\n.date[data-v-7195dcfa] {\n\t\tcursor: pointer;\n\t\talign-self: center;\n\t\ttext-align: center;\n}\n.weekend[data-v-7195dcfa] {\n\t\tcolor: var(--wx-input-focus-color);\n}\n.outside[data-v-7195dcfa] {\n\t\tcolor: rgba(0, 0, 0, 0.3);\n}\n.selected span[data-v-7195dcfa] {\n\t\tdisplay: inline-block;\n\t\tcolor: #fff;\n\t\tbackground-color: var(--wx-input-focus-color);\n\t\twidth: 20px;\n\t\theight: 20px;\n\t\tline-height: 20px;\n\t\tborder-radius: 50%;\n}\n"),Re.render=Ge,Re.__scopeId="data-v-7195dcfa",Re.__file="src/wx/Calendar.vue";var Xe={components:{Calendar:Re},props:{id:{default:""},label:{default:""},placeholder:{default:""},format:{type:Function,default:t=>t.getFullYear()+"."+qe(t.getMonth()+1)+"."+qe(t.getDate())},parse:{type:Function,default:t=>new Date(t)},value:{default:new Date},readonly:{default:!1}},emits:["change"],data:()=>({show:!1}),methods:{selectDate(t){this.show=!1,this.$emit("change",t)},focus(){this.show=!0},blur(t){if(!this.readonly){const e=t.target.value,n=this.parse(e);this.isDate(n)&&this.$emit("change",n)}},isDate:t=>t instanceof Date&&!isNaN(t.valueOf()),down(t){this.$refs.node&&!this.$refs.node.contains(t.target)&&(this.show=!1)}},mounted(){document.body.addEventListener("mousedown",this.down)},beforeUnmount(){document.body.removeEventListener("mousedown",this.down)},computed:{formatDate(){return this.value?this.format(this.value):""}}};const Qe=c("data-v-7683adc1");e("data-v-7683adc1");const Je={class:"datepicker"},Ze={class:"label"},Ke={class:"input-wrapper"},tn={key:0,class:"wrapper",ref:"node"},en=r("div",{class:"icon"},null,-1);n();const nn=Qe(((t,e,n,i,s,l)=>{const c=u("Calendar");return a(),o("div",Je,[r("label",Ze,d(n.label),1),r("div",Ke,[r("input",{type:"text",class:"input",value:l.formatDate,placeholder:n.placeholder,readonly:n.readonly,onFocus:e[1]||(e[1]=(...t)=>l.focus&&l.focus(...t)),onBlur:e[2]||(e[2]=(...t)=>l.blur&&l.blur(...t))},null,40,["value","placeholder","readonly"]),t.show?(a(),o("div",tn,[r(c,{date:n.value,value:n.value,onChange:l.selectDate},null,8,["date","value","onChange"])],512)):h("v-if",!0),en])])}));M("\n.datepicker[data-v-7683adc1] {\n\t\tposition: relative;\n\t\tmargin-bottom: 20px;\n}\n.label[data-v-7683adc1] {\n\t\tdisplay: block;\n\t\tmargin-bottom: 10px;\n\t\tfont: var(--wx-label-font);\n\t\tcolor: var(--wx-label-font-color);\n}\n.input-wrapper[data-v-7683adc1] {\n\t\tposition: relative;\n}\n.input[data-v-7683adc1] {\n\t\tbox-sizing: border-box;\n\t\twidth: 100%;\n\t\tpadding: var(--wx-input-padding);\n\t\tborder: var(--wx-input-border);\n\t\tborder-radius: var(--wx-input-border-radius);\n\t\tfont: var(--wx-input-font);\n\t\tcolor: var(--wx-input-font-color);\n\t\toutline: none;\n}\n.input[data-v-7683adc1]:focus {\n\t\tborder: 1px solid var(--wx-input-focus-color);\n}\n.icon[data-v-7683adc1] {\n\t\tposition: absolute;\n\t\ttop: 50%;\n\t\tright: 11px;\n\t\ttransform: translateY(-50%);\n\t\twidth: 20px;\n\t\theight: 20px;\n\t\tbackground: var(--wx-calendar-icon) center center no-repeat;\n\t\tpointer-events: none;\n}\n.wrapper[data-v-7683adc1] {\n\t\tposition: absolute;\n\t\tz-index: 1;\n\t\tbackground: white;\n}\n"),Xe.render=nn,Xe.__scopeId="data-v-7683adc1",Xe.__file="src/wx/Datepicker.vue";var an={props:{label:{type:String,default:""},value:{type:Number,default:0},min:{type:Number,default:1},max:{type:Number,default:1/0},step:{type:Number,default:1}},emits:["change"],data:()=>({digits:new RegExp("^[0-9]+$"),error:!1}),methods:{inc(){if(this.value>=this.max)return;const t=this.value+this.step;this.$emit("change",t)},dec(){if(this.value<=this.min)return;const t=this.value-this.step;this.$emit("change",t)},input(t){const e=t.target.value;this.digits.test(e)?(this.error=!1,this.$emit("change",e)):this.error=!0}}};const on=c("data-v-be902372");e("data-v-be902372");const rn={class:"counter"},sn={class:"label"},ln={class:"controls"},dn=r("svg",{class:"dec",width:"12",height:"2",viewBox:"0 0 12 2",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[r("path",{d:"M11.2501 1.74994H0.750092V0.249939H11.2501V1.74994Z"})],-1),cn=r("svg",{class:"inc",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[r("path",{d:"M11.2501\n\t\t\t\t\t6.74994H6.75009V11.2499H5.25009V6.74994H0.750092V5.24994H5.25009V0.749939H6.75009V5.24994H11.2501V6.74994Z"})],-1);n();const un=on(((t,e,n,i,s,l)=>(a(),o("div",rn,[r("label",sn,d(n.label),1),r("div",ln,[r("button",{class:"btn btn-dec",onClick:e[1]||(e[1]=(...t)=>l.dec&&l.dec(...t))},[dn]),r("input",{class:["input",{error:t.error}],type:"text",value:n.value,onInput:e[2]||(e[2]=(...t)=>l.input&&l.input(...t))},null,42,["value"]),r("button",{class:"btn btn-inc",onClick:e[3]||(e[3]=(...t)=>l.inc&&l.inc(...t))},[cn])])]))));M("\n.counter[data-v-be902372] {\n\t\tmargin-bottom: 20px;\n}\n.label[data-v-be902372] {\n\t\tdisplay: block;\n\t\tmargin-bottom: 10px;\n\t\tfont: var(--wx-label-font);\n\t\tcolor: var(--wx-label-font-color);\n}\n.controls[data-v-be902372] {\n\t\tdisplay: flex;\n}\n.input[data-v-be902372] {\n\t\tbox-sizing: border-box;\n\t\twidth: 40px;\n\t\theight: 32px;\n\t\tborder: var(--wx-input-border);\n\t\tborder-radius: var(--wx-input-border-radius);\n\t\tfont: var(--wx-input-font);\n\t\tcolor: var(--wx-input-font-color);\n\t\ttext-align: center;\n\t\toutline: none;\n}\n.input[data-v-be902372]:focus {\n\t\tborder: 1px solid var(--wx-input-focus-color);\n}\n.input.error[data-v-be902372] {\n\t\tborder: 1px solid var(--wx-danger-color);\n}\n.btn[data-v-be902372] {\n\t\tbox-sizing: border-box;\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\twidth: 30px;\n\t\theight: 32px;\n\t\tborder: var(--wx-input-border);\n\t\tborder-radius: var(--wx-input-border-radius);\n\t\tfont: var(--wx-input-font);\n\t\tcolor: var(--wx-input-font-color);\n\t\tbackground-color: inherit;\n\t\toutline: none;\n\t\tcursor: pointer;\n}\n.btn[data-v-be902372]:active {\n\t\tborder: var(--wx-input-border);\n\t\tborder-color: var(--wx-input-focus-color);\n}\n.btn-dec[data-v-be902372] {\n\t\tborder-right: 1px solid transparent;\n\t\tborder-radius: 2px 0 0 2px;\n}\n.btn-inc[data-v-be902372] {\n\t\tborder-left: 1px solid transparent;\n\t\tborder-radius: 0 2px 2px 0;\n}\n.dec[data-v-be902372],\n\t.inc[data-v-be902372] {\n\t\tfill: var(--wx-input-focus-color);\n}\n"),an.render=un,an.__scopeId="data-v-be902372",an.__file="src/wx/Counter.vue";var hn={props:["linksData"],emits:["action"],data:()=>({list:[{id:0,text:"End-to-start"},{id:1,text:"Start-to-start"},{id:2,text:"End-to-end"},{id:3,text:"Start-to-end"}]}),methods:{click(t){const{action:e,id:n}=t.target.dataset;e&&this.$emit("action",{action:e,id:n})},select(t){const e=t.target.dataset.id,n=1*t.target.value;this.$emit("action",{action:"update-link",id:e,obj:{type:n}})}}};const pn=c("data-v-2456fc46");e("data-v-2456fc46");const fn={key:0,class:"links"},gn={class:"label"},vn={class:"cell"},mn={class:"task-name"},bn={class:"cell"},wn={class:"wrapper"},xn=r("div",{class:"icon-more"},null,-1);n();const kn=pn(((t,e,n,l,c,u)=>(a(!0),o(i,null,s(n.linksData,((n,l)=>(a(),o(i,{key:l},[n.data.length?(a(),o("div",fn,[r("p",gn,d(n.title),1),r("table",{class:"table",onClick:e[2]||(e[2]=(...t)=>u.click&&u.click(...t))},[(a(!0),o(i,null,s(n.data,(n=>(a(),o("tr",{key:n,class:"row"},[r("td",vn,[r("div",mn,d(n.task.text||n.task.textRight||n.task.textLeft),1)]),r("td",bn,[r("div",wn,[r("select",{class:"select",value:n.link.type,"data-id":n.link.id,onChange:e[1]||(e[1]=(...t)=>u.select&&u.select(...t))},[(a(!0),o(i,null,s(t.list,(t=>(a(),o("option",{key:t.id,value:t.id},d(t.text),9,["value"])))),128))],40,["value","data-id"]),xn])]),r("td",null,[r("div",{class:"icon-delete","data-action":"delete-link","data-id":n.link.id},null,8,["data-id"])])])))),128))])])):h("v-if",!0)],64)))),128))));M("\n.links[data-v-2456fc46] {\n\t\tmargin-bottom: 10px;\n}\n.label[data-v-2456fc46] {\n\t\tmargin-bottom: 10px;\n\t\tfont: var(--wx-label-font);\n\t\tcolor: var(--wx-label-font-color);\n}\n.cell[data-v-2456fc46] {\n\t\ttext-align: center;\n}\n.task-name[data-v-2456fc46] {\n\t\tfont: var(--wx-input-font);\n\t\tcolor: var(--wx-input-font-color);\n\t\twidth: 90px;\n\t\ttext-align: left;\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n}\n.wrapper[data-v-2456fc46] {\n\t\twidth: 225px;\n\t\tposition: relative;\n\t\tdisplay: flex;\n}\n.select[data-v-2456fc46] {\n\t\twidth: 100%;\n\t\tpadding: var(--wx-input-padding);\n\t\tborder: var(--wx-input-border);\n\t\tborder-radius: var(--wx-input-border-radius);\n\t\tfont: var(--wx-input-font);\n\t\tcolor: var(--wx-input-font-color);\n\t\toutline: none;\n\t\tappearance: none;\n}\n.select[data-v-2456fc46]:focus {\n\t\tborder: 1px solid var(--wx-input-focus-color);\n}\n.icon-more[data-v-2456fc46] {\n\t\tposition: absolute;\n\t\ttop: 50%;\n\t\tright: 11px;\n\t\twidth: 20px;\n\t\theight: 20px;\n\t\ttransform: translateY(-50%);\n\t\tbackground: var(--wx-show-more-icon) center center no-repeat;\n\t\tpointer-events: none;\n}\n.icon-delete[data-v-2456fc46] {\n\t\twidth: 20px;\n\t\theight: 20px;\n\t\tmargin-left: 12px;\n\t\tbackground: var(--wx-remove-link-icon) center center no-repeat;\n\t\topacity: 0.2;\n\t\tcursor: pointer;\n}\n.icon-delete[data-v-2456fc46]:hover {\n\t\topacity: 1;\n}\n"),hn.render=kn,hn.__scopeId="data-v-2456fc46",hn.__file="src/components/sidebar/Links.vue";const yn=Lt("day"),Cn=$t("day");var Mn={components:{Button:ge,Text:me,Textarea:$e,Select:ye,Slider:Ne,Datepicker:Xe,Counter:an,Links:hn},props:["compactMode","taskTypes","templates","task","links","tasksMap"],setup:()=>({t:t(w).__}),methods:{hide(){this.$emit("action",{action:"hide-details"})},remove(){this.$emit("action",{action:"delete-task",id:this.task.id}),this.$emit("action",{action:"hide-details"})},action(t){this.$emit("action",t)},update(t,e){const{task:n}=this;switch(n[t]=e,t){case"start_date":case"end_date":n.duration=Cn(n.end_date,n.start_date);break;case"duration":n.duration=1*e,n.end_date=yn(n.start_date,n.duration)}this.$emit("action",{action:"update-task",id:n.id,obj:n})}},computed:{linksData(){const t=this.links.filter((t=>t.target==this.task.id)).map((t=>({link:t,task:this.tasksMap[t.source]}))),e=this.links.filter((t=>t.source==this.task.id)).map((t=>({link:t,task:this.tasksMap[t.target]})));return[{title:this.t("gantt","Predecessors"),data:t},{title:this.t("gantt","Successors"),data:e}]},milestone(){return"milestone"===this.task.type},template(){return this.templates&&this.templates.sidebarForm}}};const Tn=c("data-v-163b6529");e("data-v-163b6529");const _n={class:"header"},Dn={class:"buttons"},Sn={class:"body"};n();const $n=Tn(((t,e,n,s,c,f)=>{const g=u("Button"),v=u("Text"),m=u("Textarea"),b=u("Select"),w=u("Datepicker"),x=u("Counter"),k=u("Slider"),y=u("Links");return a(),o("div",{class:["sidebar",{compact:n.compactMode}]},[r("div",_n,[r("div",{class:"icon-close",onClick:e[1]||(e[1]=(...t)=>f.hide&&f.hide(...t))}),r("div",Dn,[r(g,{onClick:f.hide},{default:Tn((()=>[l(d(s.t("gantt","Save")),1)])),_:1},8,["onClick"]),r(g,{appearance:"danger",onClick:f.remove},{default:Tn((()=>[l(d(s.t("gantt","Delete")),1)])),_:1},8,["onClick"])])]),r("div",Sn,[f.template?(a(),o(p(n.templates.sidebarForm),{key:0,task:n.task,linksData:f.linksData,onAction:f.action},null,8,["task","linksData","onAction"])):(a(),o(i,{key:1},[r(v,{label:s.t("gantt","Name"),value:n.task.text,autofocus:!0,onChange:e[2]||(e[2]=t=>f.update("text",t))},null,8,["label","value"]),r(m,{label:s.t("gantt","Type"),value:n.task.details,onChange:e[3]||(e[3]=t=>f.update("details",t))},null,8,["label","value"]),n.taskTypes.length>1?(a(),o(b,{key:0,label:s.t("gantt","Type"),value:n.task.type,options:n.taskTypes,onChange:e[4]||(e[4]=t=>f.update("type",t))},null,8,["label","value","options"])):h("v-if",!0),r(w,{label:s.t("gantt","Start Date"),value:n.task.start_date,readonly:!0,onChange:e[5]||(e[5]=t=>f.update("start_date",t))},null,8,["label","value"]),f.milestone?h("v-if",!0):(a(),o(i,{key:1},[r(w,{label:s.t("gantt","End Date"),value:n.task.end_date,readonly:!0,onChange:e[6]||(e[6]=t=>f.update("end_date",t))},null,8,["label","value"]),r(x,{label:s.t("gantt","Duration"),value:n.task.duration,onChange:e[7]||(e[7]=t=>f.update("duration",t))},null,8,["label","value"]),r(k,{label:`${s.t("gantt","Progress")}: ${n.task.progress}%`,value:n.task.progress,onChange:e[8]||(e[8]=t=>f.update("progress",t))},null,8,["label","value"])],64)),r(y,{linksData:f.linksData,onAction:f.action},null,8,["linksData","onAction"])],64))])],2)}));M("\n.sidebar[data-v-163b6529] {\n\t\tflex: 0 0 400px;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tbox-sizing: border-box;\n\t\theight: 100%;\n\t\tbackground: #fff;\n\t\tbox-shadow: 0px 1px 30px rgba(0, 0, 0, 0.25);\n\t\toverflow: hidden;\n}\n.sidebar.compact[data-v-163b6529] {\n\t\tposition: absolute;\n\t\twidth: 100%;\n\t\tz-index: 5;\n}\n.header[data-v-163b6529] {\n\t\tbox-sizing: border-box;\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\talign-items: center;\n\t\tpadding: 11px 20px;\n\t\tborder-bottom: 1px solid var(--wx-border-color);\n}\n.body[data-v-163b6529] {\n\t\tflex: 1 1 auto;\n\t\tpadding: 20px;\n\t\toverflow: auto;\n}\n.icon-close[data-v-163b6529] {\n\t\twidth: 24px;\n\t\theight: 27px;\n\t\tbackground: var(--wx-close-sb-icon) center center no-repeat;\n\t\tcursor: pointer;\n}\n"),Mn.render=$n,Mn.__scopeId="data-v-163b6529",Mn.__file="src/components/sidebar/Sidebar.vue";var Ln={props:["scales","scrollLeft"],computed:{scaleStyle(){return{width:`${this.scales.width}px`,left:-this.scrollLeft+"px"}}}};const En=c("data-v-45582006")(((t,e,n,r,l,c)=>(a(),o("div",{class:"scale",style:c.scaleStyle},[(a(!0),o(i,null,s(n.scales.rows,(t=>(a(),o("div",{key:t,class:"row",style:{height:`${t.height}px`}},[(a(!0),o(i,null,s(t.cells,(t=>(a(),o("div",{key:t,class:"cell",style:{width:`${t.width}px`}},d(t.value),5)))),128))],4)))),128))],4))));M("\n.scale[data-v-45582006] {\n\t\tposition: relative;\n\t\tbox-shadow: var(--wx-top-shadow);\n}\n.row[data-v-45582006] {\n\t\tbox-sizing: border-box;\n\t\tdisplay: flex;\n\t\tborder-bottom: 1px solid var(--wx-border-color);\n}\n.cell[data-v-45582006] {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\tborder-right: var(--wx-timescale-border);\n\t\tfont: var(--wx-timescale-font);\n\t\ttext-transform: var(--wx-timescale-text-transform);\n\t\tcolor: var(--wx-timescale-font-color);\n}\n"),Ln.render=En,Ln.__scopeId="data-v-45582006",Ln.__file="src/components/TimeScale.vue";var Hn={props:{content:{default:null},data:{default:null}},data:()=>({id:null,tooltip:null,tooltipData:null,tooltipNode:null,target:null,targetCoords:null,areaCoords:null,pos:null}),methods:{locate(t){for(;t;){if(t.getAttribute){const e=t.getAttribute("data-tooltip-id"),n=t.getAttribute("data-tooltip");if(e||n)return{id:e,tooltip:n,target:t}}t=t.parentNode}return{id:null,tooltip:null,target:null}},move(t){const e=this.locate(t.target);if(this.id=e.id,this.tooltip=e.tooltip,this.target=e.target,!this.id&&!this.tooltip)return;this.id&&this.data&&(this.tooltipData=this.data(this.id)),this.targetCoords=this.target.getBoundingClientRect(),this.areaCoords=this.$refs.area.getBoundingClientRect();const n=this.targetCoords.top+this.targetCoords.height-this.areaCoords.top+5,a=this.targetCoords.left-this.areaCoords.left;this.pos={top:n,left:a}}},updated(){if(this.$refs.tooltipNode){const t=this.$refs.tooltipNode.getBoundingClientRect();t.right>=this.areaCoords.right&&(this.pos.left=this.areaCoords.width-t.width-5),t.bottom>=this.areaCoords.bottom&&(this.pos.top=this.targetCoords.top-t.height-5)}}};const An=c("data-v-41420cce")(((t,e,n,r,s,c)=>(a(),o("div",{class:"area",ref:"area",onMousemove:e[1]||(e[1]=(...t)=>c.move&&c.move(...t))},[t.id&&n.content||t.tooltip?(a(),o("div",{key:0,class:"tooltip",ref:"tooltipNode",style:{top:t.pos.top+"px",left:t.pos.left+"px"}},[t.id?(a(),o(p(n.content),{key:0,data:t.tooltipData},null,8,["data"])):(a(),o(i,{key:1},[l(d(t.tooltip),1)],64))],4)):h("v-if",!0),f(t.$slots,"default")],544))));M("\n.area[data-v-41420cce] {\n\t\tposition: relative;\n\t\theight: 100%;\n\t\twidth: 100%;\n}\n");M("\n.tooltip {\n\t\tposition: absolute;\n\t\tz-index: 10;\n\t\tfont: var(--wx-small-font);\n\t\tcolor: var(--wx-font-color);\n\t\tbackground-color: #fff;\n}\n"),Hn.render=An,Hn.__scopeId="data-v-41420cce",Hn.__file="src/wx/Tooltip.vue";var Nn={props:{appearance:{type:String,default:"primary"},icon:{type:String,default:""}}};const Wn=c("data-v-99507ce0")(((t,e,n,r,i,s)=>(a(),o("button",{class:["button",n.appearance],onClick:e[1]||(e[1]=e=>t.$emit("click"))},[n.icon?(a(),o("span",{key:0,class:["icon",n.icon]},null,2)):h("v-if",!0)],2))));M("\n.button[data-v-99507ce0] {\n\t\twidth: 50px;\n\t\theight: 50px;\n\t\tborder: none;\n\t\toutline: none;\n\t\tborder-radius: 50%;\n\t\tcursor: pointer;\n}\n.primary[data-v-99507ce0] {\n\t\tcolor: var(--wx-button-primary-font-color);\n\t\tbackground-color: var(--wx-button-primary-color);\n}\n.primary[data-v-99507ce0]:hover {\n\t\tcolor: var(--wx-button-primary-font-color);\n\t\tbackground-color: var(--wx-button-primary-color-hover);\n}\n.icon[data-v-99507ce0] {\n\t\tfont-size: 20px;\n}\n"),Nn.render=Wn,Nn.__scopeId="data-v-99507ce0",Nn.__file="src/wx/IconButton.vue";class Bn extends class{constructor(t,e){this._dispatch=t,this._updater=e,this._cache=[]}init(t){const{tasks:e,links:n,start:a,end:o}=t;this._data=this._data||{},this._cache.tasks!==e&&(this._data.tasks=e,this._data.tasksMap=function(t){const e={id:0,$level:0,data:[]},n={0:e};return t.forEach((t=>{n[t.id]=t,"string"==typeof t.start_date&&(t.start_date=new Date(t.start_date)),"string"==typeof t.end_date&&(t.end_date=new Date(t.end_date)),t.duration&&(t.duration=1*t.duration),t.parent=t.parent||0,t.open=t.open||!1,t.data=null})),t.forEach((t=>{const e=n[t.parent];e&&(e.data||(e.data=[]),e.data.push(t))})),Bt(e.data,1),n}(e)),this._cache.links!==n&&(this._data.links=n),this._cache={links:n,tasks:e},a&&o||(this._autoScale=!0),this._base=Object.assign({},t),this._data.scales=null,this._data.scales=this.calckScales(a,o),this.initStore(),this.update({tasksMap:this._data.tasksMap,links:this._data.links,scales:this._data.scales})}calckScales(t,e){const{scales:n,cellWidth:a,scaleHeight:o}=this._base;let r=t,i=e;return this._autoScale&&function(t,e){for(const n in t)e(t[n])}(this._data.tasksMap,(t=>{(!r||t.start_date<=r)&&(r=t.start_date),(!i||t.end_date>=i)&&(i=t.end_date)})),r?t!==r&&(r=jt(r,-1)):r=new Date,i?e!==i&&(i=jt(i,1)):i=jt(r,30),this._data.scales&&t===r&&e===i?null:function(t,e,n,a,o){const r=$t(function(t){const e=new Date;return t.map((t=>({item:t,len:Lt(t.unit)(e,1)}))).sort(((t,e)=>t.len<e.len?-1:1))[0].item}(o).unit),i=r(e,t)*n,s=a*o.length;return{rows:o.map((o=>{const i=[],s=Lt(o.unit);let l=Et(o.unit,t);for(;l<e;){let a=s(l,o.step);l<t&&(l=t),a>e&&(a=e);const d=r(a,l)*n,c="function"==typeof o.format?o.format(l,a):Tt(l,o.format,{firstWeekContainsDate:4,weekStartsOn:1});let u="";o.css&&(u+="function"==typeof o.css?o.css(l):o.css),i.push({width:d,value:c,css:u}),l=a}return{cells:i,add:s,height:a}})),width:i,height:s,diff:r,start:t,end:e}}(r,i,a,o,n)}updateScales(){const t=this._data.scales;if(this._autoScale)return this.calckScales(t.start,t.end)}getTask(t){return this._data.tasksMap[t]}initStore(){const{scales:t,tasksMap:e}=this._data;this.state={tasksMap:e,tasks:[],links:[],scales:t}}update(t){t.tasksMap&&(this._data.tasksMap=t.tasksMap,t.tasks=Yt(this._data.tasksMap)),t.scales&&(this._data.scales=t.scales),t.tasks&&(this._data.tasks=this.calckTasks(t.tasks),t.links=t.links||this._data.links),t.links&&(this._data.links=this.calckLinks(t.links)),this.updateStore(t)}updateTask(t,e,n){e.id&&delete(e=Object.assign({ID:e.id},e)).id,this.action(t,"update-task",e,n)}updateLink(t,e,n){e.id&&delete(e=Object.assign({ID:e.id},e)).id,this.action(t,"update-link",e,n)}updateStore(t){const e=this.state,n=this._data,a=t;for(const t in a)a[t]&&e[t]&&(e[t]=n[t])}dispatch(t,e,n){n||this._dispatch(t,e)}calckTasks(t){const{cellHeight:e,cellWidth:n}=this._base;return(t||Yt(this._data.tasksMap)).map(((t,a)=>function(t,e,n,a,o){const{start:r,end:i,diff:s}=o;t.duration?t.end_date||(t.end_date=At(t.start_date,t.duration)):t.end_date?t.duration=Ht(t.end_date,t.start_date):t.end_date=t.start_date;const l=t.start_date<r?r:t.start_date,d=t.end_date>i?i:t.end_date;return t.$x=s(l,r)*n,t.$y=a*e+3,t.$w=s(d,l)*n,t.$h=a-7,"milestone"===t.type&&(t.$x=t.$x-t.$h/2,t.$w=t.$h),t}(t,a,n,e,this._data.scales)))}calckLinks(t){const{tasksMap:e}=this._data;return(t||this._data.links).map((t=>function(t,e,n,a){const o=Math.round(a/2)-3;if(!(e&&n&&e.$y&&n.$y))return t.$p="",t;let r=!1,i=!1;switch(t.type){case 0:i=!0;break;case 1:r=!0,i=!0;break;case 3:r=!0}const s=r?e.$x:e.$x+e.$w,l=e.$y,d=i?n.$x:n.$x+n.$w,c=n.$y;if(s!==d||l!==c){const e=function(t,e,n,a,o,r,i){const s=t+20*(o?-1:1),l=n+20*(r?-1:1),d=[t,e,s,e,0,0,0,0,l,a,n,a],c=l-s;let u=a-e;const h=r===o;return h||(l<=t&&r||l>t&&!r)&&(u-=i),h&&r&&s>l||h&&!r&&s<l?(d[4]=d[2]+c,d[5]=d[3],d[6]=d[4],d[7]=d[5]+u):(d[4]=d[2],d[5]=d[3]+u,d[6]=d[4]+c,d[7]=d[5]),d.join(",")}(s,l+o,d,c+o,r,i,a/2),n=(u=d,h=c+o,i?`${u-5},${h-3},${u-5},${h+3},${u},${h}`:`${u+5},${h+3},${u+5},${h-3},${u},${h}`);t.$p=`${e},${n}`}var u,h;return t}(t,e[t.source],e[t.target],this._base.cellHeight))).filter((t=>null!==t))}action(t,e,n,a){const{links:o,tasksMap:r}=this._data;let i,s,l,d;switch(e){case"delete-link":i=o.find((e=>e.id==t)),this.update({links:o.filter((e=>e.id!=t))}),this.dispatch("save",{action:e,obj:i},a);break;case"update-link":{const r=o.findIndex((e=>e.id==t));o[r]=Object.assign(Object.assign({},o[r]),n),this.update({links:o}),this.dispatch("save",{action:e,obj:i},a);break}case"toggle-task":for(const t in r)r[t].$y=0;Pt(r,t,{open:!r[t].open}),this.update({tasksMap:r});break;case"repaint-task":this.update({tasksMap:r});break;case"reorder-task":{let{mode:o,target:i}=n;if("after"===o){const t=r[i];t.open&&t.data.length&&(n.mode=o="before",n.target=i=t.data[0].id)}const s=function(t,e,n,a){const o=t[e],r=t[a];if(!o||!r)return;const i=t[o.parent],s=t[r.parent],l=i.data.indexOf(o);i.data.splice(l,1);const d=s.data.indexOf(r)+("after"===n?1:0);return s.data.splice(d,-1,o),i===s&&l===d?null:(o.parent=s.id,o.$level!==r.$level&&Bt([o],r.$level),t)}(r,t,o,i);this.update({tasksMap:r}),s&&this.dispatch("save",{action:e,obj:n},a);break}case"add-link":i=Object.assign(Object.assign({},n),{id:(new Date).valueOf()}),o.push(i),this.update({links:o}),this.dispatch("save",{action:e,obj:i},a);break;case"update-task":Pt(r,t,n),d=this.updateScales(),this.update({tasksMap:r,scales:d}),this.dispatch("save",{action:e,obj:r[t]},a);break;case"move-task":{const{width:e,left:a,top:o}=n;s=r[t];const i={};void 0!==e&&(s.$w=e),void 0!==a&&(s.$x=a),void 0!==o&&(s.$y=o+4,i.tasks=this._data.tasks),i.links=this._data.links=this.calckLinks(),this.updateStore(i);break}case"update-task-time":{const{mode:e,time:o}=n;s=r[t],"start"===e&&(s.start_date=jt(s.start_date,o),s.duration=Rt(s.end_date,s.start_date)),"end"===e&&(s.end_date=jt(s.end_date,o),s.duration=Rt(s.end_date,s.start_date)),"move"===e&&(s.start_date=jt(s.start_date,o),s.end_date=jt(s.end_date,o)),Pt(r,t,s),d=this.updateScales(),this.update({tasksMap:r,scales:d}),this.dispatch("save",{action:"update-task",obj:s},a);break}case"add-task":{const n=r[t],o=n.$level?new Date(n.start_date.valueOf()):jt(this._data.scales.start,1),i=jt(o,1),s={id:(new Date).valueOf(),text:"New Task",details:"",start_date:o,end_date:i,progress:0,parent:t,$level:n.$level+1,data:null,open:!1};n.data||(n.data=[]),n.data.push(s),n.open=!0,r[s.id]=s,l=s.id,d=this.updateScales(),this.update({tasksMap:r,scales:d}),this.dispatch("save",{action:e,obj:s,get:()=>this.getTask(s.id),mode:"last"},a);break}case"delete-task":s=r[t],function(t,e){const n=t[e],a=t[n.parent];a.data=a.data.filter((t=>t!==n)),delete t[e]}(r,t),this.update({tasksMap:r,links:o.filter((e=>e.source!=t&&e.target!=t))}),this.dispatch("save",{action:e,obj:s},a)}return l}}{constructor(t){super(t.$emit.bind(t)),this._vm=t}updateStore(t){for(var e in super.updateStore(t),t){const t=e+"State";void 0!==this._vm[t]&&(this._vm[t]=this.state[e])}}}class Yn extends class{constructor(t){this._state={scrollTop:t(0,"scrollTop"),scrollLeft:t(0,"scrollLeft"),dataStart:t(0,"dataStart"),dataEnd:t(0,"dataEnd"),from:t(0,"from"),details:t(null,"details"),selected:t(null,"selected")},this._state.selected.subscribe((t=>this._selected=t)),this._state.details.subscribe((t=>this._details=t))}getState(){return this._state}actions(t,e,n){const{details:a,selected:o,scrollTop:r,scrollLeft:i,dataStart:s,dataEnd:l,from:d}=this._state,c=e=>{a.set(Object.assign({},t.getTask(e)))};return u=>{const{id:h,action:p,obj:f}=u;let g=null;switch(p){case"show-details":c(h);break;case"hide-details":a.set(null),o.set(null);break;case"select-task":o.set(t.getTask(h)),this._details&&this._details.id!=h&&c(h);break;case"toggle-task":t.action(h,p,f),o.set(t.getTask(h));break;case"update-task-time":t.action(h,p,f),this._details&&this._details.id==h&&c(h);break;case"add-task":g=t.action(h,p,f),n().then((()=>{o.set(t.getTask(g)),c(g)}));break;case"delete-task":t.action(h,p,f),this._selected.id==h&&o.set(null);break;case"scroll-chart":{const{left:t,top:e}=u;isNaN(t)||i.set(t),isNaN(e)||r.set(e);break}case"data-request":s.set(u.start),l.set(u.end),d.set(u.from);break;default:t.action(h,p,f)}e("action",Object.assign(Object.assign({},u),{nId:g}))}}}{constructor(t){super(((e,n)=>{let a=[];return{set:o=>{e!==o&&(e=t[n]=o,a.forEach((t=>t(o))))},subscribe:t=>{a.push(t),t(e)}}}))}getValues(){const t=super.getState(),e={};for(var n in t)t[n].subscribe((t=>e[n]=t));return e}actions(t,e){return super.actions(t,e,g)}}var On={gantt:{"Task name":"Task name","Start time":"Start time",Duration:"Duration",Save:"Save",Delete:"Delete",Name:"Name",Description:"Description",Type:"Type","Start date":"Start date","End date":"End date",Progress:"Progress",Predecessors:"Predecessors",Successors:"Successors"}},Pn={name:"Gantt",setup(){t(w,null)||v(w,m(je().extend(On)))},components:{Grid:Gt,Chart:ue,Sidebar:Mn,TimeScale:Ln,Tooltip:Hn,IconButton:Nn},props:{templates:{type:Object,default:()=>{}},markers:{type:Array,default:()=>[]},taskTypes:{type:Array,default:()=>["task","milestone"]},tasks:{type:Array,default:()=>[]},links:{type:Array,default:()=>[]},scales:{type:Array,default:()=>[]},columns:{type:Array,default:()=>[]},start:{type:Date,default:null},end:{type:Date,default:null},cellWidth:{type:Number,default:100},cellHeight:{type:Number,default:38},scaleHeight:{type:Number,default:30},readonly:{type:[Boolean,Object],default:!1},grid:{type:[Boolean,Number],default:!0},tooltip:{type:Object,default:null},borders:{type:String,default:"full"}},beforeCreate(){this.store=new Bn(this),this.store.init(this.$props),this.state=new Yn(this),this.action=this.state.actions(this.store,this.$emit.bind(this))},data(){this.$emit("store",this.store);const t=function(t){return t.map((t=>{const e="number"==typeof t.width?t.width+"px":t.width||"120px",n=t.align||"left";let a=t.template;if(!a)switch(t.name){case"start":a=t=>Tt(t.start_date,"yyyy-MM-dd");break;case"end":a=t=>Tt(t.end_date,"yyyy-MM-dd");break;case"add-task":a=()=>"add";break;case"duration":a=t=>Ft(t.end_date,t.start_date).toString();break;default:a=e=>e[t.name]}const o=Object.assign(Object.assign({},t),{width:e,align:n,template:a});return"add-task"===o.name&&(o.action=o.name),o}))}(this.$props.columns),e=this.store.state;return{tasksState:b(e.tasks),linksState:b(e.links),scalesState:b(e.scales),tasksMap:b(e.tasksMap),compactWidth:650,compactMode:!0,columnsData:t,...this.state.getValues()}},watch:{cellWidth(){this.store.init(this.$props)},cellHeight(){this.store.init(this.$props)},scaleHeight(){this.store.init(this.$props)},tasks(){this.store.init(this.$props),this.tasksMap=this.store.state.tasksMap}},methods:{getTooltipData(t){return this.store.getTask(t)},resize(t){this.compactMode=t[0].contentRect.width<=this.compactWidth}},mounted(){this.ro=new ResizeObserver(this.resize),this.ro.observe(document.body)},unmounted(){this.ro.disconnect()},computed:{gridWidth(){return this.compactMode?50:this.grid.width||400},readOnly(){const{readonly:t}=this;return"object"==typeof t?t:{noDrag:t,noEdit:t,noNewLink:t}},fullWidth(){return this.scalesState.width},fullHeight(){return this.tasksState.length*this.cellHeight},renderTasks(){return this.tasksState.slice(this.dataStart,this.dataEnd)},markersData(){const{start:t,diff:e}=this.scalesState;return this.markers.map((n=>({...n,left:e(n.start,t)*this.cellWidth})))}}};const jn=c("data-v-7a0ada54");e("data-v-7a0ada54");const Rn={class:"layout"},Fn={class:"content"},zn={key:2,class:"icon"};n();const Un=jn(((t,e,n,i,s,l)=>{const d=u("Grid"),c=u("TimeScale"),p=u("Chart"),f=u("Sidebar"),g=u("IconButton"),v=u("Tooltip");return a(),o(v,{content:n.tooltip,data:l.getTooltipData},{default:jn((()=>[r("div",Rn,[n.grid?(a(),o(d,{key:0,compactMode:s.compactMode,width:l.gridWidth,tasks:l.renderTasks,columns:s.columnsData,scales:s.scalesState,scrollTop:t.scrollTop,scrollDelta:t.from,cellHeight:n.cellHeight,selected:t.selected,onAction:t.action},null,8,["compactMode","width","tasks","columns","scales","scrollTop","scrollDelta","cellHeight","selected","onAction"])):h("v-if",!0),r("div",Fn,[r(c,{scales:s.scalesState,scrollLeft:t.scrollLeft},null,8,["scales","scrollLeft"]),r(p,{drag:!l.readOnly.noDrag,newLink:!l.readOnly.noNewLink,markers:l.markersData,tasks:l.renderTasks,links:s.linksState,scrollTop:t.scrollTop,scrollLeft:t.scrollLeft,cellWidth:n.cellWidth,cellHeight:n.cellHeight,fullWidth:l.fullWidth,fullHeight:l.fullHeight,selected:t.selected,templates:n.templates,borders:n.borders,onAction:t.action},null,8,["drag","newLink","markers","tasks","links","scrollTop","scrollLeft","cellWidth","cellHeight","fullWidth","fullHeight","selected","templates","borders","onAction"])]),t.details&&!l.readOnly.noEdit?(a(),o(f,{key:1,compactMode:s.compactMode,taskTypes:n.taskTypes,templates:n.templates,task:t.details,links:s.linksState,tasksMap:s.tasksMap,onAction:t.action},null,8,["compactMode","taskTypes","templates","task","links","tasksMap","onAction"])):h("v-if",!0),s.compactMode&&!t.details?(a(),o("div",zn,[r(g,{icon:"mdi mdi-plus",onClick:e[1]||(e[1]=()=>t.action({action:"add-task",id:0}))})])):h("v-if",!0)])])),_:1},8,["content","data"])}));M("\n.layout[data-v-7a0ada54] {\n\t\tposition: absolute;\n\t\tdisplay: flex;\n\t\theight: 100%;\n\t\twidth: 100%;\n\t\tbackground-color: #fff;\n}\n.content[data-v-7a0ada54] {\n\t\tposition: relative;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\toverflow: hidden;\n}\n.icon[data-v-7a0ada54] {\n\t\tposition: absolute;\n\t\tright: 25px;\n\t\tbottom: 35px;\n\t\tz-index: 4;\n}\n"),Pn.render=Un,Pn.__scopeId="data-v-7a0ada54",Pn.__file="src/components/Gantt.vue";const Vn={key:0,class:"wx-default",style:{height:"100%"}};M("\n@import \"https://fonts.googleapis.com/css?family=Roboto:400,500,700,900&display=swap&subset=cyrillic-ext\";\n@import \"https://cdn.materialdesignicons.com/2.7.94/css/materialdesignicons.css\";\n.wx-material {\n\t\t/* common */\n\t\t--wx-font: 400 14px Roboto;\n\t\t--wx-font-color: #5f5f5f;\n\t\t--wx-border-color: #ededed;\n\n\t\t/* buttons */\n\t\t--wx-button-font: 500 14px Roboto;\n\t\t--wx-button-primary-font-color: #fff;\n\t\t--wx-button-danger-font-color: #ff5252;\n\t\t--wx-button-primary-color: #2a7fff;\n\t\t--wx-button-primary-color-hover: #246cd9;\n\t\t--wx-button-danger-color: transparent;\n\t\t--wx-button-danger-color-hover: rgba(255, 82, 82, 0.2);\n\t\t--wx-button-radius: 30px;\n\n\t\t/* bars */\n\t\t--wx-gantt-bar-font: 400 14px Roboto;\n\t\t--wx-gantt-bar-border-radius: 50px;\n\n\t\t--wx-gantt-task-color: #448aff;\n\t\t--wx-gantt-task-font-color: #fff;\n\t\t--wx-gantt-task-fill-color: #246cd9;\n\t\t--wx-gantt-task-border-color: #448aff;\n\n\t\t--wx-gantt-project-color: #1de9b6;\n\t\t--wx-gantt-project-font-color: #5f5f5f;\n\t\t--wx-gantt-project-fill-color: #00d19a;\n\t\t--wx-gantt-project-border-color: #1de9b6;\n\n\t\t--wx-gantt-milestone-color: #d33daf;\n\n\t\t--wx-gantt-select-color: rgba(0, 199, 181, 0.2);\n\t\t--wx-gantt-link-color: #87a4bc;\n\n\t\t/* shadows */\n\t\t--wx-top-shadow: 0px 3px 5px rgba(0, 0, 0, 0.1),\n\t\t\t0px 1px 2px rgba(0, 0, 0, 0.1);\n\n\t\t/* grid */\n\t\t--wx-grid-header-font: 500 14px Roboto;\n\t\t--wx-grid-header-font-color: #a6a6a6;\n\t\t--wx-grid-header-text-transform: uppercase;\n\t\t--wx-grid-header-shadow: var(--wx-top-shadow);\n\n\t\t--wx-grid-body-font: 400 14px Roboto;\n\t\t--wx-grid-body-font-color: #5f5f5f;\n\t\t--wx-grid-body-row-border: 1px solid #fff;\n\n\t\t/* timescale */\n\t\t--wx-timescale-font: 500 12px Roboto;\n\t\t--wx-timescale-font-color: #a6a6a6;\n\t\t--wx-timescale-text-transform: uppercase;\n\t\t--wx-timescale-shadow: var(--wx-top-shadow);\n\t\t--wx-timescale-border: 1px solid transparent;\n\n\t\t/* input */\n\t\t--wx-label-font: 500 14px Roboto;\n\t\t--wx-label-font-color: #5f5f5f;\n\n\t\t--wx-input-font: 400 14px Roboto;\n\t\t--wx-input-font-color: #5f5f5f;\n\t\t--wx-input-padding: 8px 11px;\n\t\t--wx-input-border: 1px solid #dfdfdf;\n\t\t--wx-input-border-radius: 2px;\n\t\t--wx-input-focus-color: #2a7fff;\n\n\t\t/* calendar */\n\t\t--wx-calendar-border: 1px solid #dfdfdf;\n\t\t--wx-calendar-month-font: 400 12px Roboto;\n\t\t--wx-calendar-month-font-color: #5f5f5f;\n\t\t--wx-calendar-days-font: 400 10px Roboto;\n\t\t--wx-calendar-days-font-color: rgba(0, 0, 0, 0.5);\n\t\t--wx-calendar-dates-font: 400 12px Roboto;\n\t\t--wx-calendar-dates-font-color: #4f4f4f;\n\n\t\t/* markers */\n\t\t--wx-gantt-marker-font: 500 12px Roboto;\n\t\t--wx-gantt-marker-font-color: #fff;\n\t\t--wx-gantt-marker-color: rgba(6, 189, 248, 0.77);\n\n\t\t/* tooltips */\n\t\t--wx-tooltip-font: 400 12px Roboto;\n\t\t--wx-tooltip-font-color: #5f5f5f;\n\n\t\t/* tooltips */\n\n\t\t/* icons */\n\t\t--wx-add-btn-icon: url(\"data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M7.52734 0.671875H6.47266C6.37891 0.671875 6.33203 0.71875 6.33203 0.8125V6.33203H1.09375C1 6.33203 0.953125 6.37891 0.953125 6.47266V7.52734C0.953125 7.62109 1 7.66797 1.09375 7.66797H6.33203V13.1875C6.33203 13.2812 6.37891 13.3281 6.47266 13.3281H7.52734C7.62109 13.3281 7.66797 13.2812 7.66797 13.1875V7.66797H12.9062C13 7.66797 13.0469 7.62109 13.0469 7.52734V6.47266C13.0469 6.37891 13 6.33203 12.9062 6.33203H7.66797V0.8125C7.66797 0.71875 7.62109 0.671875 7.52734 0.671875Z' fill='%2300C7B5' fill-opacity='0.54'/%3E%3C/svg%3E \");\n\t\t--wx-open-btn-icon: url(\"data:image/svg+xml,%3Csvg width='5' height='10' viewBox='0 0 5 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 10L5 5L0 0V10Z' fill='%235F5F5F' fill-opacity='0.54'/%3E%3C/svg%3E%0A\");\n\t\t--wx-close-btn-icon: url(\"data:image/svg+xml,%3Csvg width='10' height='5' viewBox='0 0 10 5' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0L5 5L10 0H0Z' fill='%235F5F5F' fill-opacity='0.54'/%3E%3C/svg%3E%0A\");\n\t\t--wx-close-sb-icon: url(\"data:image/svg+xml,%3Csvg width='15' height='14' viewBox='0 0 15 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14.0344 1.42188L12.6281 0.015625L7.04999 5.59375L1.47186 0.015625L0.0656128 1.42188L5.64374 7L0.0656128 12.5781L1.47186 13.9844L7.04999 8.40625L12.6281 13.9844L14.0344 12.5781L8.45624 7L14.0344 1.42188Z' fill='black' fill-opacity='0.54'/%3E%3C/svg%3E%0A\");\n\t\t--wx-show-more-icon: url(\"data:image/svg+xml,%3Csvg width='10' height='7' viewBox='0 0 10 7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.175 0.158203L5 3.97487L8.825 0.158203L10 1.3332L5 6.3332L0 1.3332L1.175 0.158203Z' fill='%235F5F5F'/%3E%3C/svg%3E \");\n\t\t--wx-calendar-icon: url(\"data:image/svg+xml,%3Csvg width='16' height='17' viewBox='0 0 16 17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.8203 15.3203H2.17969V6.17969H13.8203V15.3203ZM11.3203 0.320312V2H4.67969V0.320312H3V2H2.17969C1.6849 2 1.28125 2.15625 0.96875 2.46875C0.65625 2.78125 0.5 3.1849 0.5 3.67969V15.3203C0.5 15.7891 0.65625 16.1927 0.96875 16.5312C1.30729 16.8438 1.71094 17 2.17969 17H13.8203C14.2891 17 14.6797 16.8438 14.9922 16.5312C15.3307 16.1927 15.5 15.7891 15.5 15.3203V3.67969C15.5 3.1849 15.3307 2.78125 14.9922 2.46875C14.6797 2.15625 14.2891 2 13.8203 2H13V0.320312H11.3203ZM12.1797 9.5H8V13.6797H12.1797V9.5Z' fill='black' fill-opacity='0.5'/%3E%3C/svg%3E \");\n\t\t--wx-remove-link-icon: url(\"data:image/svg+xml,%3Csvg width='12' height='15' viewBox='0 0 12 15' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 13.3203C1 13.7891 1.15625 14.1927 1.46875 14.5312C1.80729 14.8438 2.21094 15 2.67969 15H9.32031C9.78906 15 10.1797 14.8438 10.4922 14.5312C10.8307 14.1927 11 13.7891 11 13.3203V3.32031H1V13.3203ZM3.03125 7.38281L4.24219 6.21094L6 8.00781L7.75781 6.21094L8.92969 7.38281L7.17188 9.17969L8.92969 10.9375L7.75781 12.1094L6 10.3516L4.24219 12.1094L3.07031 10.9375L4.82812 9.17969L3.03125 7.38281ZM8.92969 0.820312L8.07031 0H3.92969L3.07031 0.820312H0.179688V2.5H11.8203V0.820312H8.92969Z' fill='black' fill-opacity='0.5'/%3E%3C/svg%3E \");\n}\n");const In={render:function(t,e){return this.$slots.default?(a(),o("div",Vn,[f(t.$slots,"default")])):h("v-if",!0)},__file:"src/wx/MaterialTheme.vue"},Gn={key:0,class:"wx-default",style:{height:"100%"}};M("\n@import \"https://fonts.googleapis.com/css?family=Roboto:400,500,700,900&display=swap&subset=cyrillic-ext\";\n@import \"https://cdn.materialdesignicons.com/2.7.94/css/materialdesignicons.css\";\n.wx-default {\n\t\t/* common */\n\t\t--wx-font: 400 14px Arial;\n\t\t--wx-font-color: #5f5f5f;\n\t\t--wx-border-color: #ebebeb;\n\n\t\t/* buttons */\n\t\t--wx-button-font: 500 14px Roboto;\n\t\t--wx-button-primary-font-color: #fff;\n\t\t--wx-button-danger-font-color: #ff5252;\n\t\t--wx-button-primary-color: #0db5cb;\n\t\t--wx-button-primary-color-hover: #2898b0;\n\t\t--wx-button-danger-color: transparent;\n\t\t--wx-button-danger-color-hover: rgba(255, 82, 82, 0.2);\n\t\t--wx-button-radius: 2px;\n\n\t\t/* bars */\n\t\t--wx-gantt-bar-font: 400 12px Arial;\n\t\t--wx-gantt-bar-border-radius: 2px;\n\n\t\t--wx-gantt-task-color: #00bed7;\n\t\t--wx-gantt-task-font-color: #fff;\n\t\t--wx-gantt-task-fill-color: #2898b0;\n\t\t--wx-gantt-task-border-color: #2898b0;\n\n\t\t--wx-gantt-project-color: #2acc69;\n\t\t--wx-gantt-project-font-color: #fff;\n\t\t--wx-gantt-project-fill-color: #3c9445;\n\t\t--wx-gantt-project-border-color: #3c9445;\n\n\t\t--wx-gantt-milestone-color: #d33daf;\n\n\t\t--wx-gantt-select-color: #fff797;\n\t\t--wx-gantt-link-color: #ffa011;\n\n\t\t/* shadows */\n\t\t--wx-top-shadow: none;\n\n\t\t/* grid */\n\t\t--wx-grid-header-font: 400 12px Arial;\n\t\t--wx-grid-header-font-color: #a6a6a6;\n\t\t--wx-grid-header-text-transform: capitalize;\n\t\t--wx-grid-header-shadow: var(--wx-top-shadow);\n\n\t\t--wx-grid-body-font: 400 13px Arial;\n\t\t--wx-grid-body-font-color: #5f5f5f;\n\t\t--wx-grid-body-row-border: 1px solid var(--wx-border-color);\n\n\t\t/* timescale */\n\t\t--wx-timescale-font: 400 12px Arial;\n\t\t--wx-timescale-font-color: #a6a6a6;\n\t\t--wx-timescale-text-transform: capitalize;\n\t\t--wx-timescale-shadow: var(--wx-top-shadow);\n\t\t--wx-timescale-border: 1px solid var(--wx-border-color);\n\n\t\t/* input */\n\t\t--wx-label-font: 700 13px Arial;\n\t\t--wx-label-font-color: #5f5f5f;\n\n\t\t--wx-input-font: 400 12px Arial;\n\t\t--wx-input-font-color: #4f4f4f;\n\t\t--wx-input-padding: 8px 11px;\n\t\t--wx-input-border: 1px solid #dfdfdf;\n\t\t--wx-input-border-radius: 2px;\n\t\t--wx-input-focus-color: #2898b0;\n\n\t\t/* calendar */\n\t\t--wx-calendar-border: 1px solid #dfdfdf;\n\t\t--wx-calendar-month-font: 400 12px Arial;\n\t\t--wx-calendar-month-font-color: #5f5f5f;\n\t\t--wx-calendar-days-font: 400 10px Arial;\n\t\t--wx-calendar-days-font-color: rgba(0, 0, 0, 0.5);\n\t\t--wx-calendar-dates-font: 400 12px Arial;\n\t\t--wx-calendar-dates-font-color: #4f4f4f;\n\n\t\t/* markers */\n\t\t--wx-gantt-marker-font: 400 12px Arial;\n\t\t--wx-gantt-marker-font-color: #fff;\n\t\t--wx-gantt-marker-color: rgba(43, 111, 173, 0.77);\n\n\t\t/* tooltips */\n\t\t--wx-tooltip-font: 400 12px Arial;\n\t\t--wx-tooltip-font-color: #5f5f5f;\n\n\t\t/* icons */\n\t\t--wx-add-btn-icon: url(\"data:image/svg+xml,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.6 4.59998V6.99998H6.59995V11H4.19995V6.99998H0.199951V4.59998H4.19995V0.599976H6.59995V4.59998H10.6Z' fill='%233DB9D3'/%3E%3C/svg%3E \");\n\t\t--wx-close-btn-icon: url(\"data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Crect width='14' height='14' fill='url(%23pattern0)'/%3E%3Cdefs%3E%3Cpattern id='pattern0' patternContentUnits='objectBoundingBox' width='1' height='1'%3E%3Cuse xlink:href='%23image0' transform='scale(0.0555556)'/%3E%3C/pattern%3E%3Cimage id='image0' width='18' height='18' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAkUlEQVQ4T2NkoBJgpJI5DEPAoFOnTv0/c+YMQR+bmJgwmJmZwX2E4bVp06b9j4yMZODg4MBp2I8fPxiWL1/OkJWVNeIN4uTkxAin79+/M5AcRtgCHGQIyQbhijaiDQoKDmZgZ2PDGf0/f/1iWLd2LeHod3d3Z2BkYsJp0P9//xh27tyJ3yCqpWyCeQOHgsGX+wEZpW4T5LCxKwAAAABJRU5ErkJggg=='/%3E%3C/defs%3E%3C/svg%3E%0A\");\n\t\t--wx-open-btn-icon: url(\"data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Crect width='14' height='14' fill='url(%23pattern0)'/%3E%3Cdefs%3E%3Cpattern id='pattern0' patternContentUnits='objectBoundingBox' width='1' height='1'%3E%3Cuse xlink:href='%23image0' transform='scale(0.0555556)'/%3E%3C/pattern%3E%3Cimage id='image0' width='18' height='18' xlink:href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAArklEQVQ4T2NkoBJgpJI5DEPAoFOnTv0/c+YMQR+bmJgwmJmZwX2E4bVp06b9j4yMZODg4MBp2I8fPxiWL1/OkJWVNUAGcXJyMnz//h3uQrJdRLFBIAPQAchlJLsIFuCMjIwM////B5sJMoRkg2CuIdtrQcHBDOxsbHBfCQgIMHz48AHO//nrF8O6tWsJR7+7uzsDIxMTznT0/98/hp07d+I3iGopm2DewKFg8OV+AJWkfRMrTobLAAAAAElFTkSuQmCC'/%3E%3C/defs%3E%3C/svg%3E \");\n\t\t--wx-close-sb-icon: url(\"data:image/svg+xml,%3Csvg width='15' height='14' viewBox='0 0 15 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14.0344 1.42188L12.6281 0.015625L7.04999 5.59375L1.47186 0.015625L0.0656128 1.42188L5.64374 7L0.0656128 12.5781L1.47186 13.9844L7.04999 8.40625L12.6281 13.9844L14.0344 12.5781L8.45624 7L14.0344 1.42188Z' fill='black' fill-opacity='0.54'/%3E%3C/svg%3E%0A\");\n\t\t--wx-show-more-icon: url(\"data:image/svg+xml,%3Csvg width='10' height='5' viewBox='0 0 10 5' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.820312 0.820312L5 5L9.17969 0.820312H0.820312Z' fill='black' fill-opacity='0.5'/%3E%3C/svg%3E \");\n\t\t--wx-calendar-icon: url(\"data:image/svg+xml,%3Csvg width='16' height='17' viewBox='0 0 16 17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.8203 15.3203H2.17969V6.17969H13.8203V15.3203ZM11.3203 0.320312V2H4.67969V0.320312H3V2H2.17969C1.6849 2 1.28125 2.15625 0.96875 2.46875C0.65625 2.78125 0.5 3.1849 0.5 3.67969V15.3203C0.5 15.7891 0.65625 16.1927 0.96875 16.5312C1.30729 16.8438 1.71094 17 2.17969 17H13.8203C14.2891 17 14.6797 16.8438 14.9922 16.5312C15.3307 16.1927 15.5 15.7891 15.5 15.3203V3.67969C15.5 3.1849 15.3307 2.78125 14.9922 2.46875C14.6797 2.15625 14.2891 2 13.8203 2H13V0.320312H11.3203ZM12.1797 9.5H8V13.6797H12.1797V9.5Z' fill='black' fill-opacity='0.5'/%3E%3C/svg%3E \");\n\t\t--wx-remove-link-icon: url(\"data:image/svg+xml,%3Csvg width='12' height='15' viewBox='0 0 12 15' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 13.3203C1 13.7891 1.15625 14.1927 1.46875 14.5312C1.80729 14.8438 2.21094 15 2.67969 15H9.32031C9.78906 15 10.1797 14.8438 10.4922 14.5312C10.8307 14.1927 11 13.7891 11 13.3203V3.32031H1V13.3203ZM3.03125 7.38281L4.24219 6.21094L6 8.00781L7.75781 6.21094L8.92969 7.38281L7.17188 9.17969L8.92969 10.9375L7.75781 12.1094L6 10.3516L4.24219 12.1094L3.07031 10.9375L4.82812 9.17969L3.03125 7.38281ZM8.92969 0.820312L8.07031 0H3.92969L3.07031 0.820312H0.179688V2.5H11.8203V0.820312H8.92969Z' fill='black' fill-opacity='0.5'/%3E%3C/svg%3E \");\n}\n");const qn={render:function(t,e){return this.$slots.default?(a(),o("div",Gn,[f(t.$slots,"default")])):h("v-if",!0)},__file:"src/wx/DefaultTheme.vue"};let Xn={__dates:{months:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],days:["Вск","Пон","Вт","Срд","Чет","Пт","Суб"]}};function Qn(){return{_:t=>Xn[t]||t,__(t,e){const n=Xn[t];return n&&n[e]||e},extend(t){return Xn={...Xn,...t},this}}}let Jn={__dates:{months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],days:["周日","周一","周二","周三","周四","周五","周六"]}};function Zn(){return{_:t=>Jn[t]||t,__(t,e){const n=Jn[t];return n&&n[e]||e},extend(t){return Jn={...Jn,...t},this}}}const Kn={Button:ge,Calendar:Re,Counter:an,Datepicker:Xe,Select:ye,Slider:Ne,Text:me,Textarea:$e,Tooltip:Hn,MaterialTheme:In,DefaultTheme:qn,RULocale:{setup(t){t.words?v(w,m(Qn().extend(t.words))):v(w,m(Qn()))},props:["words"],render(){return this.$slots.default()}},ENLocale:{setup(t){t.words?v(w,m(je().extend(t.words))):v(w,m(je()))},props:["words"],render(){return this.$slots.default()}},CNLocale:{setup(t){t.words?v(w,m(Zn().extend(t.words))):v(w,m(Zn()))},props:["words"],render(){return this.$slots.default()}}},ta={ru:{gantt:{"Task name":"Название","Start time":"Начало",Duration:"Длительность",Save:"Сохранить",Delete:"Удалить",Name:"Задача",Description:"Описание",Type:"Тип","Start Date":"Дата выполнения","End Date":"Дата окончания",Progress:"Прогресс",Predecessors:"Предшественники",Successors:"Преемники"}},en:On,cn:{gantt:{"Task name":"任务名称","Start time":"开始时间",Duration:"期间",Save:"保存",Delete:"删除",Name:"名称",Description:"描述",Type:"类型","Start Date":"开始日期","End Date":"结束日期",Progress:"进步",Predecessors:"前辈",Successors:"后继者"}}};export default Pn;export{qn as DefaultTheme,Pn as Gantt,In as MaterialTheme,ta as locales,Kn as wx};
@@ -1,238 +0,0 @@
1
- <template>
2
- <Tooltip :content="tooltip" :data="getTooltipData">
3
- <div class="layout">
4
- <Grid
5
- v-if="grid"
6
- :compactMode="compactMode"
7
- :width="gridWidth"
8
- :tasks="renderTasks"
9
- :columns="columnsData"
10
- :scales="scalesState"
11
- :scrollTop="scrollTop"
12
- :scrollDelta="from"
13
- :cellHeight="cellHeight"
14
- :selected="selected"
15
- @action="action"
16
- />
17
-
18
- <div class="content">
19
- <TimeScale :scales="scalesState" :scrollLeft="scrollLeft" />
20
-
21
- <Chart
22
- :drag="!readOnly.noDrag"
23
- :newLink="!readOnly.noNewLink"
24
- :markers="markersData"
25
- :tasks="renderTasks"
26
- :links="linksState"
27
- :scrollTop="scrollTop"
28
- :scrollLeft="scrollLeft"
29
- :cellWidth="cellWidth"
30
- :cellHeight="cellHeight"
31
- :fullWidth="fullWidth"
32
- :fullHeight="fullHeight"
33
- :selected="selected"
34
- :templates="templates"
35
- :borders="borders"
36
- @action="action"
37
- />
38
- </div>
39
-
40
- <Sidebar
41
- v-if="details && !readOnly.noEdit"
42
- :compactMode="compactMode"
43
- :taskTypes="taskTypes"
44
- :templates="templates"
45
- :task="details"
46
- :links="linksState"
47
- :tasksMap="tasksMap"
48
- @action="action"
49
- />
50
-
51
- <div v-if="compactMode && !details" class="icon">
52
- <IconButton
53
- icon="mdi mdi-plus"
54
- @click="() => action({ action: 'add-task', id: 0 })"
55
- ></IconButton>
56
- </div>
57
- </div>
58
- </Tooltip>
59
- </template>
60
-
61
- <script>
62
- import { markRaw, inject, provide, readonly } from "vue";
63
-
64
- import Grid from "./grid/Grid.vue";
65
- import Chart from "./chart/Chart.vue";
66
- import Sidebar from "./sidebar/Sidebar.vue";
67
- import TimeScale from "./TimeScale.vue";
68
- import Tooltip from "@/wx/Tooltip.vue";
69
- import IconButton from "@/wx/IconButton.vue";
70
-
71
- import { VueLocalData, VueLocalState } from "../state/local.js";
72
- import { normalizeColumns } from "@dhtmlx/trial-lib-gantt";
73
-
74
- import en from "../locales/en";
75
- import locale from "@/wx/locales/en";
76
- import { LocaleContext } from "@/wx/locale";
77
-
78
- export default {
79
- name: "Gantt",
80
- setup() {
81
- const check = inject(LocaleContext, null);
82
- if (!check) provide(LocaleContext, readonly(locale().extend(en)));
83
- },
84
- components: {
85
- Grid,
86
- Chart,
87
- Sidebar,
88
- TimeScale,
89
- Tooltip,
90
- IconButton,
91
- },
92
-
93
- props: {
94
- templates: { type: Object, default: () => {} },
95
- markers: { type: Array, default: () => [] },
96
- taskTypes: { type: Array, default: () => ["task", "milestone"] },
97
- tasks: { type: Array, default: () => [] },
98
- links: { type: Array, default: () => [] },
99
- scales: { type: Array, default: () => [] },
100
- columns: { type: Array, default: () => [] },
101
- start: { type: Date, default: null },
102
- end: { type: Date, default: null },
103
- cellWidth: { type: Number, default: 100 },
104
- cellHeight: { type: Number, default: 38 },
105
- scaleHeight: { type: Number, default: 30 },
106
- readonly: { type: [Boolean, Object], default: false },
107
- grid: { type: [Boolean, Number], default: true },
108
- tooltip: { type: Object, default: null },
109
- borders: { type: String, default: "full" },
110
- },
111
-
112
- beforeCreate() {
113
- this.store = new VueLocalData(this);
114
- this.store.init(this.$props);
115
-
116
- this.state = new VueLocalState(this);
117
- this.action = this.state.actions(this.store, this.$emit.bind(this));
118
- },
119
-
120
- data() {
121
- this.$emit("store", this.store);
122
- const columnsData = normalizeColumns(this.$props.columns);
123
- const state = this.store.state;
124
-
125
- return {
126
- tasksState: markRaw(state.tasks),
127
- linksState: markRaw(state.links),
128
- scalesState: markRaw(state.scales),
129
- tasksMap: markRaw(state.tasksMap),
130
-
131
- compactWidth: 650,
132
- compactMode: true,
133
-
134
- columnsData,
135
- ...this.state.getValues(),
136
- };
137
- },
138
-
139
- watch: {
140
- cellWidth() {
141
- this.store.init(this.$props);
142
- },
143
-
144
- cellHeight() {
145
- this.store.init(this.$props);
146
- },
147
-
148
- scaleHeight() {
149
- this.store.init(this.$props);
150
- },
151
-
152
- tasks() {
153
- this.store.init(this.$props);
154
- this.tasksMap = this.store.state.tasksMap;
155
- },
156
- },
157
-
158
- methods: {
159
- getTooltipData(id) {
160
- return this.store.getTask(id);
161
- },
162
-
163
- resize(data) {
164
- this.compactMode = data[0].contentRect.width <= this.compactWidth;
165
- },
166
- },
167
-
168
- mounted() {
169
- this.ro = new ResizeObserver(this.resize);
170
- this.ro.observe(document.body);
171
- },
172
-
173
- unmounted() {
174
- this.ro.disconnect();
175
- },
176
-
177
- computed: {
178
- gridWidth() {
179
- return this.compactMode ? 50 : this.grid.width || 400;
180
- },
181
-
182
- readOnly() {
183
- const { readonly } = this;
184
- if (typeof readonly === "object") return readonly;
185
-
186
- return {
187
- noDrag: readonly,
188
- noEdit: readonly,
189
- noNewLink: readonly,
190
- };
191
- },
192
-
193
- fullWidth() {
194
- return this.scalesState.width;
195
- },
196
-
197
- fullHeight() {
198
- return this.tasksState.length * this.cellHeight;
199
- },
200
-
201
- renderTasks() {
202
- return this.tasksState.slice(this.dataStart, this.dataEnd);
203
- },
204
-
205
- markersData() {
206
- const { start, diff } = this.scalesState;
207
- return this.markers.map(marker => ({
208
- ...marker,
209
- left: diff(marker.start, start) * this.cellWidth,
210
- }));
211
- },
212
- },
213
- };
214
- </script>
215
-
216
- <style scoped>
217
- .layout {
218
- position: absolute;
219
- display: flex;
220
- height: 100%;
221
- width: 100%;
222
- background-color: #fff;
223
- }
224
-
225
- .content {
226
- position: relative;
227
- display: flex;
228
- flex-direction: column;
229
- overflow: hidden;
230
- }
231
-
232
- .icon {
233
- position: absolute;
234
- right: 25px;
235
- bottom: 35px;
236
- z-index: 4;
237
- }
238
- </style>
@@ -1,57 +0,0 @@
1
- <template>
2
- <div class="scale" :style="scaleStyle">
3
- <div
4
- v-for="row in scales.rows"
5
- :key="row"
6
- class="row"
7
- :style="{ height: `${row.height}px` }"
8
- >
9
- <div
10
- v-for="cell in row.cells"
11
- :key="cell"
12
- class="cell"
13
- :style="{ width: `${cell.width}px` }"
14
- >
15
- {{ cell.value }}
16
- </div>
17
- </div>
18
- </div>
19
- </template>
20
-
21
- <script>
22
- export default {
23
- props: ["scales", "scrollLeft"],
24
-
25
- computed: {
26
- scaleStyle() {
27
- return {
28
- width: `${this.scales.width}px`,
29
- left: `${-this.scrollLeft}px`,
30
- };
31
- },
32
- },
33
- };
34
- </script>
35
-
36
- <style scoped>
37
- .scale {
38
- position: relative;
39
- box-shadow: var(--wx-top-shadow);
40
- }
41
-
42
- .row {
43
- box-sizing: border-box;
44
- display: flex;
45
- border-bottom: 1px solid var(--wx-border-color);
46
- }
47
-
48
- .cell {
49
- display: flex;
50
- justify-content: center;
51
- align-items: center;
52
- border-right: var(--wx-timescale-border);
53
- font: var(--wx-timescale-font);
54
- text-transform: var(--wx-timescale-text-transform);
55
- color: var(--wx-timescale-font-color);
56
- }
57
- </style>