/* @license dhtmlxGantt v.6.3.5 Standard This version of dhtmlxGantt is distributed under GPL 2.0 license and can be legally used in GPL projects. To use dhtmlxGantt in non-GPL projects (and get Pro version of the product), please obtain Commercial/Enterprise or Ultimate license on our site https://dhtmlx.com/docs/products/dhtmlxGantt/#licensing or contact us at sales@dhtmlx.com (c) XB Software Ltd. */ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("ext/dhtmlxgantt_smart_rendering",[],e):"object"==typeof exports?exports["ext/dhtmlxgantt_smart_rendering"]=e():t["ext/dhtmlxgantt_smart_rendering"]=e()}(window,function(){return function(t){var e={};function n(a){if(e[a])return e[a].exports;var i=e[a]={i:a,l:!1,exports:{}};return t[a].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,a){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:a})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(a,i,function(e){return t[e]}.bind(null,i));return a},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/codebase/",n(n.s=224)}({224:function(t,e){gantt.config.smart_rendering=!0,gantt._smart_render={getViewPort:function(){var t=gantt.$ui.getView("timeline"),e=gantt.$ui.getView("grid"),n=gantt.$layout;t&&t.isVisible()?n=t:e&&e.isVisible()&&(n=e);var a=n.getSize(),i=gantt.getScrollState();return{y:i.y,y_end:i.y+a.y,x:i.x,x_end:i.x+a.x}},getScrollSizes:function(){var t=gantt.getScrollState();return t.x=t.x||0,t.y=t.y||gantt.getVisibleTaskCount()*gantt.config.row_height,t},isInViewPort:function(t,e){return!!(t.ye.y)},isTaskDisplayed:function(t,e){return!(!gantt.$keyboardNavigation||!gantt.$keyboardNavigation.dispatcher.isTaskFocused(t))||this.isInViewPort(this.getTaskPosition(t),this.getViewPort())},isLinkDisplayed:function(t,e){return this.isInViewPort(this.getLinkPosition(t,e),this.getViewPort())},getTaskPosition:function(t){var e=gantt.getTaskTop(t);return{y:e,y_end:e+gantt.config.row_height}},getLinkPosition:function(t,e){var n=gantt.getTaskTop(e.source),a=gantt.getTaskTop(e.target);return{y:Math.min(n,a),y_end:Math.max(n,a)+gantt.config.row_height}},getRange:function(t){t=t||0;for(var e=this.getViewPort(),n=Math.floor(Math.max(0,e.y)/gantt.config.row_height)-t,a=Math.ceil(Math.max(0,e.y_end)/gantt.config.row_height)+t,i=gantt.$data.tasksStore.getIndexRange(n,a),r=[],o=0;o