diff --git a/codebase/fonts/roboto-bold-webfont.woff b/codebase/fonts/roboto-bold-webfont.woff
index d93baf5..3375aee 100644
Binary files a/codebase/fonts/roboto-bold-webfont.woff and b/codebase/fonts/roboto-bold-webfont.woff differ
diff --git a/codebase/fonts/roboto-bold-webfont.woff2 b/codebase/fonts/roboto-bold-webfont.woff2
index fb82968..9883bd6 100644
Binary files a/codebase/fonts/roboto-bold-webfont.woff2 and b/codebase/fonts/roboto-bold-webfont.woff2 differ
diff --git a/codebase/fonts/roboto-medium-webfont.woff b/codebase/fonts/roboto-medium-webfont.woff
index b8e0c77..e06e451 100644
Binary files a/codebase/fonts/roboto-medium-webfont.woff and b/codebase/fonts/roboto-medium-webfont.woff differ
diff --git a/codebase/fonts/roboto-medium-webfont.woff2 b/codebase/fonts/roboto-medium-webfont.woff2
index fd70780..2a73933 100644
Binary files a/codebase/fonts/roboto-medium-webfont.woff2 and b/codebase/fonts/roboto-medium-webfont.woff2 differ
diff --git a/codebase/fonts/roboto-regular-webfont.woff b/codebase/fonts/roboto-regular-webfont.woff
index d43765c..b5510ae 100644
Binary files a/codebase/fonts/roboto-regular-webfont.woff and b/codebase/fonts/roboto-regular-webfont.woff differ
diff --git a/codebase/fonts/roboto-regular-webfont.woff2 b/codebase/fonts/roboto-regular-webfont.woff2
index 6b85564..1ee21e8 100644
Binary files a/codebase/fonts/roboto-regular-webfont.woff2 and b/codebase/fonts/roboto-regular-webfont.woff2 differ
diff --git a/codebase/suite.css b/codebase/suite.css
index 9567a6d..484e18f 100644
--- a/codebase/suite.css
+++ b/codebase/suite.css
@@ -1,12 +1,12 @@
/*
@license
-dhtmlxSuite v.6.1.4 GPL
+dhtmlxSuite v.6.4.2 GPL
This software is covered by GPL license.
To use it in non-GPL project, you need obtain Commercial or Enterprise license
Please contact sales@dhtmlx.com. Usage without proper license is prohibited.
-(c) Dinamenta, UAB.
+(c) XB Software.
*/
-.dhx_checkbox__input,.dhx_radiobutton__input,.dhx_simplevault__input,.dhx_visually-hidden{position:absolute;overflow:hidden;clip:rect(0 0 0 0);height:1px;width:1px;margin:-1px;padding:0;border:0}.dhx_no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:-webkit-grab;cursor:grab}.dhx_no-select:not(.dhx_no-select--resize):not(.dhx_no-select--pointer) *{cursor:-webkit-grab!important;cursor:grab!important}.dhx_no-select--pointer{cursor:pointer}.dhx_no-select--pointer,.dhx_no-select--resize{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx-resize-observer{position:absolute;left:0;top:-100%;width:100%;height:100%;margin:1px 0 0;border:none;opacity:0;visibility:hidden;pointer-events:none}.dhx_widget,.dhx_widget *{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;-webkit-font-feature-settings:"liga";font-feature-settings:"liga"}.dhx_widget,.dhx_widget *,.dhx_widget:after,.dhx_widget :after,.dhx_widget:before,.dhx_widget :before{-webkit-box-sizing:border-box;box-sizing:border-box}body{margin:0}.dhx_widget{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:400;font-size:14px;line-height:20px;color:rgba(0,0,0,.7)}.dhx_widget--bordered{border:1px solid #e4e4e4}.dhx_widget--border_top{border-top:1px solid #e4e4e4}.dhx_widget--border_bottom{border-bottom:1px solid #e4e4e4}.dhx_widget--border_left{border-left:1px solid #e4e4e4}.dhx_widget--border_right{border-right:1px solid #e4e4e4}.dhx_widget--border-shadow{border:0;-webkit-box-shadow:0 2px 4px rgba(0,0,0,.15);box-shadow:0 2px 4px rgba(0,0,0,.15)}.dhx_widget--no-border{border:0}.dhx_widget--no-border_top{border-top:0}.dhx_widget--no-border_bottom{border-bottom:0}.dhx_widget--no-border_left{border-left:0}.dhx_widget--no-border_right{border-right:0}.dhx_widget--bg_white{background-color:#fff}.dhx_widget--bg_gray{background-color:#f7f7f7}.dhx_drag-ghost *{-webkit-box-sizing:border-box;box-sizing:border-box}@font-face{font-family:Roboto;src:url(./fonts/roboto-regular-webfont.woff2) format("woff2"),url(./fonts/roboto-regular-webfont.woff) format("woff");font-weight:400;font-style:normal;font-display:fallback}@font-face{font-family:Roboto;src:url(./fonts/roboto-medium-webfont.woff2) format("woff2"),url(./fonts/roboto-medium-webfont.woff) format("woff");font-weight:500;font-style:normal;font-display:fallback}@font-face{font-family:Roboto;src:url(./fonts/roboto-bold-webfont.woff2) format("woff2"),url(./fonts/roboto-bold-webfont.woff) format("woff");font-weight:700;font-style:normal;font-display:fallback}@font-face{font-family:dhxicons;src:url(data:font/woff2;base64,d09GMgABAAAAAA+EAAsAAAAAKxwAAA80AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGVgCLJgq1OKpEATYCJAOCPAuBIAAEIAWEFgeJZBtDJGXGHGwcGLxxQxNRuWnK/v86eWPSoR+yYESCi2GuRUj6Wy5PzTuXOX/E6qyOXTX3wo0nvqLuRlTQvNA38ZPMjX+oI32bzXWQZCIU7iFSCmCJK1zBilzUmW/x79RGZK0lxXpynNRhBQrsWAGXnVoOoV8BScdujpJDSA+wcO4Rku/4i8kD7NZ0kpb6ANhUNdspTfbXpmGhU8bcnuzfdogEJcYgwAdBxf4IUFUVjOktZc+r39WlOTKxiaVHKDzggDrmc7a1PUsDC0RB3Pvy/mKHAYPSGgbft3TCmMbqeDMLKeb/ljmbzUuWWmVdmnE4NEKhEepmdm4vfyYze7OpV1Mpm9A2RyuX0G6H3l1RrSiWUquqwsMpkDgkD2XRlmNs/fcGtwIWETYRERsV+0fd/cYAe5G6f3/oTCHwgD3bUDyEnw943h+PtH4laHtNJgPa8yk+Wz7OV8BFApz4n9+GwsCCMvG7L2/JNYhXhxVgy5bzu8JmNsHVnpPxr7z6m/fhOqCdhqWHYddLAtTlcvXYkrVfg0EkkSl8VMRPozPkCWxfY7v9AYRg5Ovf8TCcICmaYTleECVZUTXdMC3bcT0/CKM4SbO8KKu6aTWZK8GV1KxFqzbtOnTq0g1jje8egfkJsyeoR6k+NaCG1IgaUxNqSs2oObWgltSKWlMbakvtqD11oEAKomAKoVAKo3CKoEiKomiKoViKo3hKoERKomRKoVRKo3TKoEzKomzKoVzKo3wqoEIqomIqoVIqo3KqoEqqomqqoVrqSJ2oM3WhrtSNulMP6rmJb79gE2y/YRNsf2ATbH9hE2x3MHLFM3v6Ad+2r3D0hecW74uLSSQ3g+iA8JyHqbCsXuY70ttUXqSDQMBnybIGpsUqW8soE5SVa26RMyNlJg9OZlqxD6kRi1tskkSYg5xdTac+OIipOjKzSJIQUmTM1151zjpqZlcaXzp6Yxhbzh1CmU1lgoBMHqIMUNIxJELE8wlVZxrI2F6dbHsao8HAQgOXIVlRYWRZFU6btIhWSu3TUZhr7CG996d/EBMywN1szT++jF9/xt/fp2+/QoME/BXUfwRutAfGqy/UFHQ4Ah3zvD6nMcc6FRXqI0l/pF8kj5S2KURF2Sjtnz/Fots+PqtV6J1+qd/QmcN6KsCYl0PEh4yFeHqjr+mruqn39ZGk6oWY+hWxVKBwEamX6EA9gL6rfp79KnqBFz5noEtCRkICSmrtMDv07KYSbnW+OATF9wgQ3uxce+0GALmoMOZc522vTfeiGwnXbG/2nbfNcd9611yNdVNQ0PrX5BAPfh2//Jh/fZu+/16EXdnDkO0RN/eQYddgUismSgp8LvNgTSftoEOZir5YSYtqpEUmIbjIsZEQMAYS9luDPL+ZLot5THPZg9KbwY6nugxyn1OZrfXCbWjzKLfSbFYmH2q8qzm6dw8Up0I72g6gCQLL1KkmyX85+liNXcZ89Wr18o9mnvOgh1A8p9YoN6Wt+Y+xjP8NanvrlcbLLLWuvwU8rLerU2hr5IB6EobGttFhQSuEDHzMSEsIbnGkG1AQp5pX5ZiBYJlXUupmL1FgIKW54mFZBQiDtpu74+FvE9hZbI01E+3Wmh+ZX40hhaS50h732vPdEW3SqG2O3tdpWF5cO2Fn5bMAvLB1aZlxCPADkCeErUJNTi/Yw0ovAhoOSXQGup6oOzDEGO+u6T51Yu12Cv1o8vKcjxm6A4x9zHVsXSo6hz2G2xpn+nsWUqJSzHOu1ZcJ2WvlmFVKuW3D8qCbjLQ9ihUfezaRgEdaXCQ9ytydc9ADRtqM5fucHDY0yeO5jFCxP32SsXoN3eCfpMuqpODm6j6qe6/ibinNVgr2tWaoTyLTyDGH0vm1Rs1ZbLIyDYMbcWSFWaWIQTyNvsZW0jlKpExpTSIDWoebcfMa4iUZRlFupUNLVIfIoo6WAhYWAbQ7ZCDk5W82WAb0HXgyWjj2Mx5DEkBCQWIHaMxmKzIIQh20iSH15abMwlJ2ZGRk4KMfUtmh6FnJi61oL1SEnNDpg5RLaf4hWmtUYQxandIOVLfUF5OsSx0ktzuKNXQcxhngBj5uInPSgwtA2FLtGJXAaK6gix0sJ7MQFkOgodrROq0tXEttIkKYmZtFcdmwCxmXSLDDs9Oscc6wGK5jLzKjnLlljumqBvW9fpgvFgO2Gn+ql183Tdre1vSbuaO9G6XXPdW92XW4v6EI/J3JEVo1MwNTFVHUnCZ801lTmMYRns/Ri68rvK64kAWja8AKUGkpBaxEpU/5WyWOv4v3IirxwK9/DbeIlkxEVlK/FK5fIF6B5P/fC+criUJGrJYdOSpmYJbv3Xh8XJO5/rW6Qqg/LVc/KixwbUF0ZDJVFMSqStNynBgSQqJCCEstrJX4NLnIA3GVtIpP2KOuyEMUIFGGNoyEm9SHC4o0RxwE8Qas4nUlVuO+EB4+l5qxkExg07FkyZViecFAIsf5jwc6BmLK6NgYOiOOd/gnn/D7xgORVaG450M2GOSeh2xlZVBUVvpGyHw5//vntOe8H2TrUUtWZ3qqoLimM4yp89E4LegM+wqKJ5ySzfLbPuhIcuzBbsmVbOqJRC5KDnmlmd5FG52QE6AYoaMn8LAdkyhywHxEvUtkqdVjYQ7MiVFsNwvja7CHEO9zLNVy3Tw3y+8pY6lvZINqMFuFb14WlHVKkEvsXiXe5L+4zT992Lqso3OH6T/5Zbe5earyWScevWz6an7aNWTjH2WdRqBH2aC1Xayxlk3mjs7OHeX+s+IuL+etGYGEl9fzlJOf7yT5vpchYdR8yZXitDDyM149L/y3tNR7MHMUjfPt8EdNR+KloRCOj1DkLmqlxxgxdJgzo2Jhr5Rdyh13njsoRjG2J6zCSbVx32xDH2il1j/G0bg/OFFIipBsRJDm5XrQhL6AEZgCzi8Gu2/RSFXWS+qwWhQr9Q3rzeioBerzFRdfqz5TVbXaSQ7XMcXilkyDFSy/fPip+f4ZRR3++bZlGP5PdcP2zPqA7WnjWvyhZbPaOL8OxxvpPgoBCVyMTaQNUZ6eBBL3VcdNGyGDUc8MZjDM6Nbg+9SDi1Rbs32e4fm4R110EP8YNQ00cn9QnPCLwYg9wwH5NKMKc89c2y4nJF0nQ/Jdpkb687k40FQtSAbl6b7LfPLq09RoLc9kbtW4j7CvcYSvp7XMExhqG0rjLlARolV1CkmWU1XjLomH0qyiM6Nm+YbChPsG7FXmjLnfPLgosOigef8Yi+F7JQa13Z071626ybnwQm/8eIcrMpyhl09nhMOSUDVWnq7s/3Lyd/yhzoTQOqWKScgIUqUEzvjHSStjpZJKvlXtX+ePvhLVPmar0bjcPirEpvZQJe9VJ/8572P0gHrvZlWbB8nhjoS12uu9BDbfu169ycyYB8wR3Oc4aEz4cDzV7pKJiW5Wppcd2TGx1+bCPzYRG/eHHGVEMEYcvdX5REe8xX87D4OlYHS6NvoTkDACCfu+/9w0H/o+d+ya8K2N74RTOyaGwwSzomUgwiLOIuv5yA7Z98Wmem2YsQgqCd8/PtrqU29TYPnMC8f/UziUralBojI5j0ieQvvX8sQmmpeskS+xjB3Pb2Vbn99BgzcHbx5keChCkRC1UsvUEirhTGxvTW+albL7qPbYhH8Mg27jYc4vjRHmuVONJlwzwke8KlQsBsJGMZv9QbVcGvMbs2DkujAaqaWEGez40G0bYw6Vug0Wj2TM96bjBq9s0VMgSGH+2DDBoqImwzxNA2DS06lsTXV26GfVC508czl+fzlpWcmn2duEp12Vn9k/5rngN0XqAaN1rxIgQ1mr1fWLskAPmocLRJ+Xt0HVSPW6k58gNA/H60jnoPP/gAVkIACkWnGYB60gxbFEx9tBxdOS916tmN1rNlp5HEHrvZWphYoXQichMGqqVx+mwbR7KxVfUBZf+s6X/HuOc4/35pnqxULbeKspyWPnC9DbZIvzVhOe+n8au11F0qQWoN8Wv8t5SmfZaPci/5J3ewG04YodLUGbywnwWh3vR71cxHisTD6TWyqrL3p1oo4v1Kl4n1kuz7LF79pquSwEfKFthNttfcdTUNzrb8qDJ3SppeD/f3YxPDR0z03LzZm/ke7W/T7oXrCJV2Dp/5C1E4n7+QqN9X9mFrZ70D83ZYLzMt9HGADcDRqZAOSAUwzPIlv439GZAREq6AnSnZugycWjDAU6KgwfCBMMDRMRvbWOfCyFBEH2QwDDji9DRAD7DQkM52py8dWGgkLcavjA8LShYR7efiwdY4QJqsK0T164/sSxEeje4gP+otY0ob/d3nx+jUdkVDAM/XDo6zzemcU+quT+QdiQSPqi8oTetpNZub++jqq/8NZLXoRpn7xw/YljI1BNm+/uX1TEEhx9f7u9MdAeGRuNCIYhNhxYcJ3HO7PoXSiq5P4h3dyGRHJmRX2hJ/S2nVK45f6aqKIp25bM87xcSu/G6f8CBoSFg0dA/JfG/1KgKFGhRoMW3UkgBCMohhMkRTMsxwuiJCuqphumZTuu5wdhFCdplhdlVTft8XS+XG/3x/P1/ny739+OiyMQqjmf1BNuQFWenRciKBW71+vivgCH84GaOonxWMiNT3NjDqDOJMDhxE/od+/Zjw2ydwMB75w0o8QYNlMG3WEoSPUCoHtffFZhF+SZd0MJo61n0TROdrmevZW1J/FlsBOAjlVUzJ+dvNx0E5DQ0EVRnFFPtzd+EcSqm0TTf2EDWq+RroUlD3RuwfVIIJyiQkU9wwM2HI44vKb3FVRKQXUzaAK2q5gIndQgat0zXCHYHH1mEhMK58lSkE93134TRTOYA0ojO48c1/9Kxs33vz6ZrcCvjjBkYcX2eCFRV56CJMNwb2uZLAPhi8QVXMTVAj7xWEDGvyaGzm3+V5+4yvzt4RbVNO3QJpU2Ti/3TY0Danb864flynClj8sgZpIjSLNX4RNc1qS8jI29JWFHTnkzIZVutlo7+SZxYmwSlt2jHR5eCrFLhHvR133Qs26+YeLxLMPIKR4uMnIbheSOL+wSzAs7O164lYucuFU3yP4E3cMZt4ya/GlB9omuCmmIbfT4WX9WNDXvoseKQToVA8PcpnZV1Cxp8dFgIOy2hpbZZSAHvK6Pb0KPpJhlxk4uffuCp6yZ5DAQDfVlCIlvX3zMc9w4yPvGw/BAl0VxMsxzMkMjWwAA) format("woff2"),url(data:font/woff;base64,d09GRgABAAAAABQQAAsAAAAAKxwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADsAAABUIIslek9TLzIAAAFEAAAAPQAAAFY7OUfdY21hcAAAAYQAAAGLAAAFpvsm/mxnbHlmAAADEAAADCkAABq4n2FV0mhlYWQAAA88AAAALAAAADYSF+6RaGhlYQAAD2gAAAAYAAAAJAC+ALBobXR4AAAPgAAAABAAAAE8HUAAAGxvY2EAAA+QAAAAoAAAAKAaAyDabWF4cAAAEDAAAAAfAAAAIAFxAORuYW1lAAAQUAAAASoAAAIWkIbJG3Bvc3QAABF8AAACkwAABOR3AB9JeJxjYGRgYOBiMGCwY2BycfMJYeDLSSzJY5BiYGGAAJA8MpsxJzM9kYEDxgPKsYBpDiBmg4gCACY7BUgAeJxjYGSIZ5zAwMrAwMDP4AwkeaG0HgMLgwQDAxMDKzMDVhCQ5prC4PCR8aMfQwKQywEmGRgYQQQA9HcGlQAAAHic7dRVrtxAAAXRmsw8ZmZmZmbmWW8+sqB8RfIKXlxzs4xYOl1yyyR1y0ATUC1tlmpQ+UMFj9/lbKUxX6W9MV/jV+OamvNF/fu7HCuO5XmtMf4or62VT2ymhVbayvs66KSLbnropY9+BhhkiGFGGGWMcSaYZIppZphljnkWWGSJZVZYZY11Nsr3b7HNDrvssc8BhxxxzAmnnHHOBZdccc0Nt9xxzwOPPPHMC6+88c4Hn3xRLz+umf9Hp0P157+zuusXjRX9EdhquDOKWrjGRVO4a4rmwLYEtjWwbYFtD3dT0RHYzvDriq7Adge2J7C9ge0LbH9gBwI7GNihwA4HdiSwo4EdC+x4YCcCOxnYqcBOB3YmsLOBnQvsfGAXArsY2KXALgd2JbCrgV0L7HpgNwK7Gf4Biq3Abgd2J7C7gd0L7H5gDwJ7GNijwB4H9iSwp4E9C+x5YC8CexnYq8BeB/YmsLeBvQvsfWAfAvsY2KfAPgf2JbCvgX0L7HtgPwL7GdivwNaD+l827M5UAHicjVm9cyRHFe+env6Yzx2tZnbmfGvdsitrF0vWrbWf5g6djFVYtlUu2cjUqepMUSQEJAQkBCQEJAQkBCQEJASEEEJKSsq/w+91z+zOnnRXzE5/d79+/fr1772eZYLR8xI/wTTLGVuNFrMCYTxMeX7Az875/JTPDR4/6kZRt0fRSTUx8zqPCBQ8S+cWP8P2QEUvRsVsMVrpYqbLFbJfdk0/7V6mXdU1t920b7pDg3zavz8Ww8Y0/gUnEiAwsaNOLYXYjZpYEox17dgf40dj32EjdsIW7Jz9hP2c/ZL9mv2W/Z79kf2Z/ZX9nf0TtIcq750t50flvcz4zU1606ccuez3ed24aNWsxpsRK4qoUN7LjN9cM2syRZ17l+e9DamYc+5xHnme53te6krv7lR+z5U+cKVBh9tM5Anf9yNX6MiPv+t6dVwvbyc5cMmp63Lskj2XcA9kfCFcl/epyuMp5X2wY0snO5XeTulpx87DIyICpmwB7PzA9Vq6XtlOMtih3neJewfEDGYQXdeHseoNuvApu2F37GfsF+xX7Dfsd+wP7E/sL+xv7B/sX+zf7D/svy290Pf3/M2asrpX85bh20yzoVsluU/5Lfpzb4r7zG/6rO2WkXzo6TZbbUtps6u28h1XSh5SijoZNsRcZT18Rw+Pd2geuNKzHY2NHiJ9bin7mV/zaXd06ErThxRt+JCa1CXHpt/bGXC5o0KTh2jWA7qu5D1Emjm8/Ia9snj5BJoDtCyBl4sRoMoGd2yfccKE+VE/z6frtW8GxhdSijWidZ6d5ISorkgR4zUGfs4koed4Va5upz2VvX+JeO94g5HfsA7bJ5TenUVj6uuGGKLbLWmzXm/wmXBeEmauaIJyB+MnuUoPVH8L8v1cdZ6oagfmW3xIVjR0Fq9x40ht2HGE8tZqWb3eK5xOWi9o6PFBt6uq6nx/H3Hdfo4e0s4y1qVrcb3q9gvX/oKDDT28336FHrYd2Kxdi+vFtnYvZo/sPjopOImszg54nvIhLN85Lwswt5gGaRCkXYqCrYySriiyuhrR1VZYeRHJpGrJPbZyb0u8HMPUltMtNVWo7sstiY+Sqtja1jtLoyJO28xpSAYWFgtctSg9SlPVvC2Keau62YNr/CKS8ZbSter1mveHrTx6i3rMLQuw/+9iXLPto9JuIzE0xoaMNDkAlRQDIaehDIwy7s393E/XOanCNG8q8U5835h6rURfW19g5AjpzSzXqR0/d4RvMGhuSW14+4p9VOM/W82XZ71cDY/G9zIXUkm81U4yFRRLsZM0dD8C5YauozFf3s88SGLw0GSstVbBQkISOD4WQcp8vV5nVdbPzGFV9bfn7qU9/z06Mb28w9XwKT+av+DLM132ziD0j3PPe08mMvW8Y0+fpp720v2vcyTvSUmlY+8sFSLdZ76l9y3mJjx4wp4SzcX8aKTLgmRdKtKv8ROu9AGfnZFWlKR3ulyuTvloiPRpomVXaSmUDEKZB14oZdUJgkR+OpKh5FHoo2xMIJ4nXGqhhNTKk2HwOPBMnOwJdMxQFLGJUDJWHZ2sX7EvIeuCDXYss1V4p/wwcODrjHiZSq1DrSWmlGFIkexU4OSAoufUFOpB3YLobC9J9ig0Mv0GP2FlSlg2Php2OB2EYmbP1HLeB3SXIRc80Uod7h9KZRKeo7IIYS6NkqhTSidcbPm/wU4lLGOl5X8LjSA80rMCJ2RVWa0VsvJ7vaxv4ih6KcWFraxUL+mbKIo3+07+S3If9zX56rP1oCZlpv18Q2R6kW/5uQUSkr2KnJaNcTI10mo6ja9OsuzEwBxNDdvg8rfQ9cLOdgQ8X0IdZme9YlSsZjrl189pgsr0hbwMLgPuZ252KSaDoRANjZfgeu++pTrmE7t0y+Xgxg7FSDIKcnMPcLw6S0f2FUG30vjqKptMsia+Nc3zFhrFawE0plMX/q/xD/AA8VVN3KYhatvzFSh0LEZinwggxjY+5uU5X5AknJu/TOGG+FmMyIt7wg/0o74K5DCGD3OIID0ldLAOIt3az58CMRIGaFgp4IA9IU85aSxUV+VPOMHBcn7Nue8Ba/xn+/v6UAaAB3Jyet4Z58qXgCEV7e/7hyoouEQ13g0ufY5ZPMIlWM+xnq1m5Wx8FAZJL/AfyaA3ffTocB3H65Ytv7H6BbB2V7/ZYhKk0QDhJh7EeKmXX+vG17V8C6eRNIB8KD0bWyGvRpOpfbIwTUMKJzhxE2PSdEKma4Odl0xBDqCxsjdFl6xjU8UTivpZVWUI9/rTLAuos00mJq7MCUWXdf+sfXZukCNNcAgN5Zkt3PmBDpg8yw+zbGKwwjh+HjO2i+u9ehQsPoxXQUbCpkCx9bqvIxWa2IQqimECIz0YkCkcDFDfOvu34Dm0WkS2Aci0uIhNnA0uTqD+VuO2uPPKrm/P6izYHLcGDWhQ5kbmGXhGsKNfn8eOfMqbIYOLOebJ3DyNHbplQ3Zq0a0gGQIWRqfwwg74OX/BsZWrc1iNXqnJy9k6Fmc+zALusaH2lae4koLzOEFZ+RplKGIUNe8XPgxDrg0XvhI+tDY3sTY+CmLY6tbSKfqGkeG8LWqZt32t161HMbOeQIenWCdMqD2RJzsfOaKWx6cDg2PEfeEbDzfgoDLrrVd1tXUA14EGnEmPDL9AT4mTe4+/7zj+yl2W2syilXh50OWERX1u5g/6nM8bPX/FPoP9JE+FfBICnVXj2sJmOgXuO98kF3EnAgx0YrGXmYnzTTIdqCiNVKChI7Vu0b36gH3Ivm8RAXua8lNv+YLnBDjW+4BPOj7lC2z9gQdUmpP1tOa0XJ6VB1yP5+OjuZGfyP3ID0MjsLHAJx36ocI1nguR71YnMoPZ9YWnhfcFDQshehOGPnjkPnSIxnFh/Mev1SdKg0Ik4ZuQVW7s/C0ksoRMyFUbO7+JNGDDp8pXYNQ5VtSsmpUtifFjMMiVSuVepKTnYWP9xE+9TR14qSt9fuwJj6tMJSraI/j1AOoiFSFU/YFa4YkaQz+EjgT0BWxo1fKck0tvgvTGOHVs1vI1VlNgN+xdoIBTNqMryliN6ktB4zMd6VgrLnKVc3hBsaY3ijpheItcqDkawL+OU5yssEMtWx/gkq1pNhxbXGHXed7Ur9FC9bpE5eW2/rmrhx5M8ry/ra/pQGdQeUj12zukcD4N4OI1L+FyMjGb+yOg/4G74zWbk2bS6Ov1+mRjd+8wo4RsZvZLIhykFZncRW1gyBBjIjWCP0OXZnJutrUwyZnJLqQguMsyIenSP8AlxhaQ9MkIwddxt3dFJluZjCrQiKTlUwYMdmpFZpl0yzqU4x8B6qDSpvOic9K5RA4upO4MUWhj60tYG7rn2e8JYBrndQceLsEj3rz1PZbK2WHrqr57t2tRuq5MhfeEomqLnWSrYqDTge09Kxvc0JvNcagxP4LL5NcfdAaDeC11Ns30bZa7DyT9vNKSTKjUGz/w0kqCbg0Kt3h+VgLfPlepSXt+KLJekB4upcwSEcYmPdzgOdkyCe73YGmghcvVSOliuRqr1dFY90rYp9SDSMoFVH65Ki6l4obvB1rJ0hqWsGsSrRMTRFGAiQPZMTiq/mPqIXvdmAdplgbceEk38Xbs/Y6vvKh95Zg8xapqXGVZr+0O+0z2trCo3ijxglSrJNcCQVsT7NwGe1c9NH16yBTjdR77zQAyyyDKrE+V1o+QNZbfWS+0ZI/ZmHhqVNX55iXxh0A+fTneXsEzwnfhInreCVXYvM0lAdFm2kGrfbMHn2GFzdxvnXlg7yAuouehGer13EHCBXtk7eAH9P2gJmjl0wSSeEkBooN/QT671WBH12T2d2UpT7LcyjG2CNF3Tng/to8T8VaWd9ZHfYz77sjKciMt3PS2CwMIARwaDhCOwq1w1tuVufnxnrTae9QY28g+G1nesY9bsnzLbC8fmGFCFRaCMvu8drag39iFMU5siXP2oUlUOkqDYk8Efu8CN//D1MShSLIGYz6x93731adcPbWfx8ppIrtdmdi4TFS3q96zcT3mW2DaxPpW9oMHznGvBEKknMAVxuaUMvSJWtt/RJ7BgI3sXtKfSXpWhWEUiKTb8XSIu2IaS/IBfTgfHiDUXuHhZJGHGlXpfsQ1OI7iQBkV4jCbyODajXb423RW/wcRdhWoAAAAeJxjYGRgYADi0+1bV8bz23xl4GZIAIow3PSLyEKmGWLB4hwMTCAOAC+9CVZ4nGNgZGBgSGBggJOxDIwMqMAfAByOAW94nGNgAIKEUUwOBgDyex1BAAAAAAAkAEIAYAFmApgCxALUAvQDGAM8A0wDXANsA3wDsAPSA/4EGARIBGYEkgS+BNQE/AVIBX4FqAXQBfAGCAYqBkYGaAaIBqoG2AcKByIHOAdcB3QHjgeqB84H5AgCCBgIYgiyCOgJEglyCcQJ2AoKChYKIgouCjoKWgpmCqgKxgrsCwALLgtKC4YLnAvODAwMNgx0DLIM3Az4DRINXHicY2BkYGDwZ7jBIMEAAkxAzAWEDAz/wXwGACffAlYAeJxljUtuwjAURW/4tQWpRarUDutRB1QKnyELgDkDZh2ExIGgJI4cg2DWFXQJXUJXUXUFXRA36WMCtuR33vG1H4A+fuGhWh5u67NaDdyw++cm6UG4RX4WbqOHF+EO/UC4izdMhHt4xDt/8Fp3NH0Uwg3c40O4Sf8p3CJ/CbfxhG/hDv2PcBdL/An38OoNos0hCU1eLvR6lwb23J7rUtsyMbka+6Ozmutc28DpSK2OqtyvJ87FKrYmUzOTO52mRhXWbHXo/I1zxXQ4jMX7ockQYYMDEoQwyFFiAY01dkgRwF7dXvZLpi1rUvcKY/gYXaXmTOV1MoBjjZhc4cizxJ7TJrQOMfuYGYOMNKvfVumU29AU9d2WJqT3OaN6VWCKIXd8kffr6dkJPZVeqAAAeJx9U4d22jAU5SaMEAwhIU2T7r3VvffebfoLwn6ADrLkCpmQfn0ljyT0tOUc7Hfv01v3yZWFyv9/21jAIqqooY4GltDEMloI0EYHK+hiFWvoYR2HsIHD2MQWjuAojuE4TuAkTuE0zuAszuE8LuAiLuEyruAqroHhOm7gJm7hNu7gLu7hPh7gIR7hMZ7gKZ7hOV7gJV7hNd7gLd7hPT7gIz7hM77gK77hO7bxoxJwScayUJhQUocbo3dYqKXkyYSCHNIs4Spa6svUMD0YVL3RCV2cirhhVkd8txaOKBxvZM++nrG+5GrMdGqlULRPx9yMKSqKrfxBBw5PjVYs0jtqD0ga2HYJjBiO7HKJ0qQdSh3u1allKHDPCRU1ahnoRCTJEhtoQ1My9RyuRNpO2Egb8Usry2U7w85vhRtuyXchNY/qZPiETIN2yU+/6N5r7h8ZnSRk2JQbwZVtDYQkr5Q2NsjsoqmOA/bgOS0jB3VCqp7bPddWzC3jUgwVC0m546tznNdgbY7JhGgVVN+lKQPc6rRhrqacZyzNbLtghBtWhGVZ3ySbJDwUalgW+ZlqJ1em3eoc5dteL5iJNWJMdmR0Ohx1CzJVbiKf8lhBlHoWjfe1tTr+hzOffevvTquT7iBVoRVu9YWavRHJpFh1KXhPqDyBP1dwi2Pa7TpjXAb6TQYHiYZftVOgEfOhEoPdZkwqzW5ibvkVLGdWJn0jM9OkGQuVTtxUs1pmNVQakxFh3ekUCtlKpPPm/VW93UiM8DNWDUU6MNpyJ2qWMZi4m1N2s2l5303kVpfGimVJ+uRvb2/OYSjWUwoOcus58J9tFsYHrlp3n8xDmntE1S1Mb6TKX0UWuwoHPojalKfSViq/AaHImLcA) format("woff")}.dxi:before{font-family:dhxicons!important;font-style:normal;font-weight:400!important;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dxi.dxi-alert-circle:before{content:"\F101"}.dxi.dxi-arrow-collapse:before{content:"\F102"}.dxi.dxi-arrow-expand:before{content:"\F103"}.dxi.dxi-blur-off:before{content:"\F104"}.dxi.dxi-blur:before{content:"\F105"}.dxi.dxi-calendar-today:before{content:"\F106"}.dxi.dxi-check:before{content:"\F107"}.dxi.dxi-checkbox-blank-outline:before{content:"\F108"}.dxi.dxi-checkbox-marked-circle:before{content:"\F109"}.dxi.dxi-checkbox-marked:before{content:"\F10A"}.dxi.dxi-chevron-down:before{content:"\F10B"}.dxi.dxi-chevron-left:before{content:"\F10C"}.dxi.dxi-chevron-right:before{content:"\F10D"}.dxi.dxi-chevron-up:before{content:"\F10E"}.dxi.dxi-clock-outline:before{content:"\F10F"}.dxi.dxi-clock:before{content:"\F110"}.dxi.dxi-close-circle:before{content:"\F111"}.dxi.dxi-close:before{content:"\F112"}.dxi.dxi-delete-forever:before{content:"\F113"}.dxi.dxi-delete:before{content:"\F114"}.dxi.dxi-dots-horizontal:before{content:"\F115"}.dxi.dxi-dots-vertical:before{content:"\F116"}.dxi.dxi-download:before{content:"\F117"}.dxi.dxi-eraser:before{content:"\F118"}.dxi.dxi-eye-off:before{content:"\F119"}.dxi.dxi-eye:before{content:"\F11A"}.dxi.dxi-eyedropper-variant:before{content:"\F11B"}.dxi.dxi-file-export:before{content:"\F11C"}.dxi.dxi-file-outline:before{content:"\F11D"}.dxi.dxi-filter-variant:before{content:"\F11E"}.dxi.dxi-folder-open:before{content:"\F11F"}.dxi.dxi-folder:before{content:"\F120"}.dxi.dxi-format-align-center:before{content:"\F121"}.dxi.dxi-format-align-left:before{content:"\F122"}.dxi.dxi-format-align-right:before{content:"\F123"}.dxi.dxi-format-bold:before{content:"\F124"}.dxi.dxi-format-color-fill:before{content:"\F125"}.dxi.dxi-format-color-text:before{content:"\F126"}.dxi.dxi-format-italic:before{content:"\F127"}.dxi.dxi-format-line-spacing:before{content:"\F128"}.dxi.dxi-format-quote-close:before{content:"\F129"}.dxi.dxi-format-quote-open:before{content:"\F12A"}.dxi.dxi-format-strikethrough:before{content:"\F12B"}.dxi.dxi-format-underline:before{content:"\F12C"}.dxi.dxi-format-vertical-align-bottom:before{content:"\F12D"}.dxi.dxi-format-vertical-align-center:before{content:"\F12E"}.dxi.dxi-format-vertical-align-top:before{content:"\F12F"}.dxi.dxi-function-variant:before{content:"\F130"}.dxi.dxi-help-circle-outline:before{content:"\F131"}.dxi.dxi-information-outline:before{content:"\F132"}.dxi.dxi-key:before{content:"\F133"}.dxi.dxi-link-variant-off:before{content:"\F134"}.dxi.dxi-link-variant:before{content:"\F135"}.dxi.dxi-loading:before{content:"\F136"}.dxi.dxi-magnify:before{content:"\F137"}.dxi.dxi-menu-down:before{content:"\F138"}.dxi.dxi-menu-left:before{content:"\F139"}.dxi.dxi-menu-right:before{content:"\F13A"}.dxi.dxi-menu-up:before{content:"\F13B"}.dxi.dxi-minus-box:before{content:"\F13C"}.dxi.dxi-minus:before{content:"\F13D"}.dxi.dxi-numeric:before{content:"\F13E"}.dxi.dxi-pencil:before{content:"\F13F"}.dxi.dxi-plus-circle:before{content:"\F140"}.dxi.dxi-plus:before{content:"\F141"}.dxi.dxi-printer:before{content:"\F142"}.dxi.dxi-redo:before{content:"\F143"}.dxi.dxi-rotate-right:before{content:"\F144"}.dxi.dxi-sort-variant:before{content:"\F145"}.dxi.dxi-table-column-plus-before:before{content:"\F146"}.dxi.dxi-table-column-remove:before{content:"\F147"}.dxi.dxi-table-column:before{content:"\F148"}.dxi.dxi-table-row-plus-after:before{content:"\F149"}.dxi.dxi-table-row-remove:before{content:"\F14A"}.dxi.dxi-table-row:before{content:"\F14B"}.dxi.dxi-undo:before{content:"\F14C"}.dxi.dxi-unfold-more-horizontal:before{content:"\F14D"}.dxi.dxi-vault:before{content:"\F14E"}.dxi{display:inline-block;text-rendering:auto;line-height:0;font-size:0}.dxi:before{font-size:20px}.dxi--small:before{font-size:16px}.dxi--medium:before{font-size:20px}.dxi--large:before{font-size:24px}@-webkit-keyframes button-loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg);-webkit-transform-origin:center center;transform-origin:center center}to{-webkit-transform:rotate(1439deg);transform:rotate(1439deg);-webkit-transform-origin:center center;transform-origin:center center}}@keyframes button-loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg);-webkit-transform-origin:center center;transform-origin:center center}to{-webkit-transform:rotate(1439deg);transform:rotate(1439deg);-webkit-transform-origin:center center;transform-origin:center center}}.dhx_button{overflow:visible;position:relative;text-decoration:none;background-image:none;border:0;-ms-touch-action:manipulation;touch-action:manipulation;-webkit-appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;cursor:pointer}.dhx_button:active,.dhx_button:focus{outline:none}.dhx_button__icon,.dhx_button__text{pointer-events:none}.dhx_button__icon{line-height:0}.dhx_button__icon:before{display:inline-block}.dhx_button__icon+.dhx_button__text{margin-left:4px}.dhx_button__loading{position:absolute;left:0;top:0;right:0;bottom:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.dhx_button__loading-icon{-webkit-animation:button-loading .9s linear infinite;animation:button-loading .9s linear infinite}.dhx_button--width_full{width:100%}.dhx_button--justify_between{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.dhx_button--circle.dhx_button--size_small{border-radius:28px}.dhx_button--circle.dhx_button--size_medium{border-radius:32px}.dhx_button--disabled,.dhx_button:disabled{pointer-events:none}.dhx_button--icon.dhx_button--circle:not(.dhx_button--width_full){border-radius:50%}.dhx_button--icon.dhx_button--circle:not(.dhx_button--width_full).dhx_button--size_medium{padding-left:6px;padding-right:6px}.dhx_button--icon.dhx_button--circle:not(.dhx_button--width_full).dhx_button--size_small{padding-left:4px;padding-right:4px}.dhx_button--loading{position:relative}.dhx_button--loading .dhx_button__icon,.dhx_button--loading .dhx_button__text{visibility:hidden}.dhx_button--size_small{padding:4px 12px;font-size:14px;line-height:20px}.dhx_button--size_small .dhx_button__icon:before{font-size:16px;line-height:16px}.dhx_button--size_small.dhx_button--loading-icon:before{font-size:16px;margin-top:-8px;margin-left:-8px}.dhx_button--size_medium{padding:6px 16px;text-transform:uppercase;line-height:20px}.dhx_button--size_medium .dhx_button__icon:before{font-size:20px;line-height:20px}.dhx_button--size_medium.dhx_button--loading-icon:before{font-size:20px;margin-top:-10px;margin-left:-10px}.dhx_button--view_flat{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:500;line-height:20px;text-align:center;color:#fff;-webkit-transition:background-color .2s ease-in,color .2s ease-in,-webkit-box-shadow .2s ease-in;transition:background-color .2s ease-in,color .2s ease-in,-webkit-box-shadow .2s ease-in;transition:background-color .2s ease-in,color .2s ease-in,box-shadow .2s ease-in;transition:background-color .2s ease-in,color .2s ease-in,box-shadow .2s ease-in,-webkit-box-shadow .2s ease-in}.dhx_button--view_flat:focus,.dhx_button--view_flat:hover{-webkit-transition:background-color .2s ease-out,color .2s ease-out,-webkit-box-shadow .2s ease-out;transition:background-color .2s ease-out,color .2s ease-out,-webkit-box-shadow .2s ease-out;transition:background-color .2s ease-out,color .2s ease-out,box-shadow .2s ease-out;transition:background-color .2s ease-out,color .2s ease-out,box-shadow .2s ease-out,-webkit-box-shadow .2s ease-out}.dhx_button--view_flat.dhx_button--color_primary{background-color:#0288d1;outline-width:0}.dhx_button--view_flat.dhx_button--color_primary.dhx_button--active,.dhx_button--view_flat.dhx_button--color_primary:focus,.dhx_button--view_flat.dhx_button--color_primary:hover{background-color:#35a0da}.dhx_button--view_flat.dhx_button--color_primary:active{background-color:#0288d1;-webkit-box-shadow:none;box-shadow:none}.dhx_button--view_flat.dhx_button--color_primary:disabled{background-color:#81c4e8}.dhx_button--view_flat.dhx_button--color_secondary{background-color:#4d4d4d;outline-width:0}.dhx_button--view_flat.dhx_button--color_secondary.dhx_button--active,.dhx_button--view_flat.dhx_button--color_secondary:focus,.dhx_button--view_flat.dhx_button--color_secondary:hover{background-color:#717171}.dhx_button--view_flat.dhx_button--color_secondary:active{background-color:#4d4d4d;-webkit-box-shadow:none;box-shadow:none}.dhx_button--view_flat.dhx_button--color_secondary:disabled{background-color:#a6a6a6}.dhx_button--view_flat.dhx_button--color_danger{background-color:#ff5252;outline-width:0}.dhx_button--view_flat.dhx_button--color_danger.dhx_button--active,.dhx_button--view_flat.dhx_button--color_danger:focus,.dhx_button--view_flat.dhx_button--color_danger:hover{background-color:#ff7575}.dhx_button--view_flat.dhx_button--color_danger:active{background-color:#ff5252;-webkit-box-shadow:none;box-shadow:none}.dhx_button--view_flat.dhx_button--color_danger:disabled{background-color:#ffa9a9}.dhx_button--view_flat.dhx_button--color_success{background-color:#0ab169;outline-width:0}.dhx_button--view_flat.dhx_button--color_success.dhx_button--active,.dhx_button--view_flat.dhx_button--color_success:focus,.dhx_button--view_flat.dhx_button--color_success:hover{background-color:#3bc187}.dhx_button--view_flat.dhx_button--color_success:active{background-color:#0ab169;-webkit-box-shadow:none;box-shadow:none}.dhx_button--view_flat.dhx_button--color_success:disabled{background-color:#85d8b4}.dhx_button--view_link{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:500;line-height:20px;text-align:center;border-radius:2px;background:transparent;-webkit-transition:background-color .2s ease-in,-webkit-box-shadow .2s ease-in;transition:background-color .2s ease-in,-webkit-box-shadow .2s ease-in;transition:background-color .2s ease-in,box-shadow .2s ease-in;transition:background-color .2s ease-in,box-shadow .2s ease-in,-webkit-box-shadow .2s ease-in}.dhx_button--view_link:focus,.dhx_button--view_link:hover{-webkit-transition:background-color .2s ease-out,-webkit-box-shadow .2s ease-out;transition:background-color .2s ease-out,-webkit-box-shadow .2s ease-out;transition:background-color .2s ease-out,box-shadow .2s ease-out;transition:background-color .2s ease-out,box-shadow .2s ease-out,-webkit-box-shadow .2s ease-out}.dhx_button--view_link.dhx_button--color_primary{color:#0288d1;outline-width:0}.dhx_button--view_link.dhx_button--color_primary:focus,.dhx_button--view_link.dhx_button--color_primary:hover{background-color:#d9edf8}.dhx_button--view_link.dhx_button--color_primary.dhx_button--active,.dhx_button--view_link.dhx_button--color_primary:active{background-color:#b8def2}.dhx_button--view_link.dhx_button--color_primary:disabled{color:#81c4e8}.dhx_button--view_link.dhx_button--color_secondary{color:#4d4d4d;outline-width:0}.dhx_button--view_link.dhx_button--color_secondary:focus,.dhx_button--view_link.dhx_button--color_secondary:hover{background-color:#e4e4e4}.dhx_button--view_link.dhx_button--color_secondary.dhx_button--active,.dhx_button--view_link.dhx_button--color_secondary:active{background-color:#cdcdcd}.dhx_button--view_link.dhx_button--color_secondary:disabled{color:#a6a6a6}.dhx_button--view_link.dhx_button--color_danger{color:#ff5252;outline-width:0}.dhx_button--view_link.dhx_button--color_danger:focus,.dhx_button--view_link.dhx_button--color_danger:hover{background-color:#ffe5e5}.dhx_button--view_link.dhx_button--color_danger.dhx_button--active,.dhx_button--view_link.dhx_button--color_danger:active{background-color:#ffcfcf}.dhx_button--view_link.dhx_button--color_danger:disabled{color:#ffa9a9}.dhx_button--view_link.dhx_button--color_success{color:#0ab169;outline-width:0}.dhx_button--view_link.dhx_button--color_success:focus,.dhx_button--view_link.dhx_button--color_success:hover{background-color:#daf3e9}.dhx_button--view_link.dhx_button--color_success.dhx_button--active,.dhx_button--view_link.dhx_button--color_success:active{background-color:#bae9d5}.dhx_button--view_link.dhx_button--color_success:disabled{color:#85d8b4}.dhx_button--sidebar .dhx_button__icon+.dhx_button__text{margin-left:8px;margin-right:auto}.dhx_widget .dhx_button__icon{line-height:0}.dhx_widget .dhx_button__icon:before{font-size:20px;line-height:20px}.dhx_widget .dhx_button--size_small .dhx_button__icon:before{font-size:16px;line-height:16px}.dhx_form-group{position:relative;display:block;text-align:left;padding-bottom:16px}.dhx_form-group--simplevault{line-height:0}.dhx_form-group--simplevault .dhx_label{margin-bottom:4px}.dhx_form-group--textarea{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:100%}.dhx_form-group--textarea .dhx_input--textarea,.dhx_form-group--textarea .dhx_input-wrapper{height:100%}.dhx_form-group--textarea .dhx_label{min-height:20px;line-height:20px;margin-bottom:4px}.dhx_form-group--inline{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;width:100%;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;position:relative}.dhx_form-group--inline .dhx_label{position:relative;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;max-height:40px;margin-right:16px;margin-bottom:0;text-align:right;width:100%;margin-top:6px;-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.dhx_form-group--inline .dhx_input-wrapper{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;width:300%;height:100%}.dhx_form-group--inline .dhx_label--with-help{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.dhx_form-group--required:not(.dhx_form-group--label_sr) .dhx_label:not(.dhx_label--with-help){position:relative;margin-bottom:0}.dhx_form-group--required:not(.dhx_form-group--label_sr) .dhx_label:not(.dhx_label--with-help):after{content:"*";display:inline-block;padding-left:4px;color:rgba(0,0,0,.3)}.dhx_form-group--required:not(.dhx_form-group--label_sr) .dhx_label__holder{position:relative;max-width:100%;overflow:hidden;text-overflow:ellipsis}.dhx_form-group--required:not(.dhx_form-group--label_sr) .dhx_label__holder:after{content:"*";display:inline-block;padding-left:4px;color:rgba(0,0,0,.3)}.dhx_form-group--no-message-holder{padding-bottom:0}.dhx_form-group--disabled{opacity:.6;pointer-events:none;cursor:default}.dhx_form-group--hidden{display:none}.dhx_form-group--state_error .dhx_input-caption,.dhx_form-group--state_error .dhx_label{color:#ff5252}.dhx_form-group--state_error .dhx_combobox-input-box,.dhx_form-group--state_error .dhx_combobox-input-box:focus,.dhx_form-group--state_error .dhx_input,.dhx_form-group--state_error .dhx_input:focus{-webkit-box-shadow:inset 0 0 0 1px #ffbaba;box-shadow:inset 0 0 0 1px #ffbaba}.dhx_form-group--state_error .dhx_simplevault,.dhx_form-group--state_error .dhx_simplevault:focus{border-color:#ffbaba}.dhx_form-group--state_success .dhx_input-caption,.dhx_form-group--state_success .dhx_label{color:#0ab169}.dhx_form-group--state_success .dhx_combobox-input-box,.dhx_form-group--state_success .dhx_combobox-input-box:focus,.dhx_form-group--state_success .dhx_input,.dhx_form-group--state_success .dhx_input:focus{-webkit-box-shadow:inset 0 0 0 1px #9de0c3;box-shadow:inset 0 0 0 1px #9de0c3}.dhx_form-group--state_success .dhx_simplevault,.dhx_form-group--state_success .dhx_simplevault:focus{border-color:#9de0c3}.dhx_form-group--label_sr .dhx_label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dhx_form-group .dhx_combobox{margin:0}.dhx_input-wrapper{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:relative}.dhx_input-wrapper:before{color:rgba(0,0,0,.5);pointer-events:none;position:absolute;right:4px;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.dhx_input-container{width:100%;display:inline-block;position:relative}.dhx_input{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;height:auto;padding:6px 8px;margin:0;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);background-color:#f6f6f6;background-clip:padding-box;-webkit-box-shadow:inset 0 0 0 1px #dfdfdf;box-shadow:inset 0 0 0 1px #dfdfdf;border:0;border-radius:2px;outline:0;-webkit-transition:border-color .2s ease-in,-webkit-box-shadow .2s ease-in;transition:border-color .2s ease-in,-webkit-box-shadow .2s ease-in;transition:border-color .2s ease-in,box-shadow .2s ease-in;transition:border-color .2s ease-in,box-shadow .2s ease-in,-webkit-box-shadow .2s ease-in}.dhx_input::-webkit-input-placeholder{color:rgba(0,0,0,.5)}.dhx_input:-ms-input-placeholder{color:rgba(0,0,0,.5)}.dhx_input::-ms-input-placeholder{color:rgba(0,0,0,.5)}.dhx_input::placeholder{color:rgba(0,0,0,.5)}.dhx_input:focus{-webkit-box-shadow:inset 0 0 0 1px #67b8e3;box-shadow:inset 0 0 0 1px #67b8e3}.dhx_input--icon-padding{padding-right:24px}.dhx_input--textarea{max-width:100%}.dhx_input--textinput{background:none;padding-left:0}.dhx_input--textinput,.dhx_input--textinput:focus{-webkit-box-shadow:none;box-shadow:none}.dhx_input__icon{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);right:4px;z-index:1;color:rgba(0,0,0,.5);pointer-events:none}.dhx_input__icon--color-selected{border-radius:2px}.dhx_input__icon--color-selected:after,.dhx_input__icon--color-selected:before{opacity:0}.dhx_widget .dhx_input__icon{line-height:0}.dhx_widget .dhx_input__icon:before{font-size:20px;line-height:20px}.dhx_input-caption{left:0;bottom:0;max-width:100%;font-size:12px;font-weight:400;line-height:16px;color:rgba(0,0,0,.5);white-space:wrap;cursor:default}.dhx_input-caption,.dhx_label{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;overflow-x:hidden;text-overflow:ellipsis}.dhx_label{display:inline-block;width:auto;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;font-weight:500;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);white-space:nowrap;cursor:pointer;-webkit-transition:color .2s ease-in,opacity .2s ease-in;transition:color .2s ease-in,opacity .2s ease-in}.dhx_label:hover{opacity:.8;-webkit-transition:color .2s ease-out,opacity .2s ease-out;transition:color .2s ease-out,opacity .2s ease-out}.dhx_label__holder{max-width:100%;overflow:hidden;text-overflow:ellipsis}.dhx_label--with-help{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.dhx_label-help{margin-left:4px;color:#0288d1;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.dhx_label-help:focus{outline:none}.dhx_checkbox{position:relative;display:inline-block;width:auto;padding-top:0;cursor:pointer}.dhx_checkbox__visual-input{display:block;border:2px solid rgba(0,0,0,.5);width:20px;height:20px;background-color:#fff;border-radius:2px;cursor:pointer}.dhx_checkbox .dhx_label{margin-top:4px;margin-bottom:0;width:auto}.dhx_checkbox .dhx_label:after{display:none}.dhx_checkbox .dhx_input-caption{position:static;display:block;-webkit-transform:none;-ms-transform:none;transform:none}.dhx_checkbox.dhx_form-group--inline{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;white-space:nowrap}.dhx_checkbox.dhx_form-group--inline .dhx_label{padding-left:6px;margin-top:0}.dhx_checkbox__input:disabled+*+.dhx_label,.dhx_checkbox__input:disabled+.dhx_checkbox__visual-input{opacity:.6}.dhx_checkbox__input:focus+.dhx_checkbox__visual-input{border-color:#0288d1}.dhx_checkbox__input:checked+.dhx_checkbox__visual-input{background-color:#0288d1;background-position:50%;background-size:cover;border-color:#0288d1;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTIxIDdMOSAxOWwtNS41LTUuNSAxLjQxLTEuNDFMOSAxNi4xNyAxOS41OSA1LjU5IDIxIDd6Ii8+PC9zdmc+);-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.dhx_radiobutton{position:relative;display:inline-block;width:auto;padding-top:0;cursor:pointer}.dhx_radiobutton__visual-input{display:block;border:2px solid rgba(0,0,0,.5);bottom:4px;left:0;width:20px;height:20px;background-color:#fff;border-radius:50%}.dhx_radiobutton .dhx_label{margin-top:4px;margin-bottom:0;width:auto;cursor:pointer}.dhx_radiobutton .dhx_input-caption{position:static;display:block}.dhx_radiobutton.dhx_form-group--inline{white-space:nowrap;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.dhx_radiobutton.dhx_form-group--inline .dhx_label{padding-left:6px;margin-top:0}.dhx_radiobutton__input:disabled+*+.dhx_label,.dhx_radiobutton__input:disabled+.dhx_radiobutton__visual-input{opacity:.6}.dhx_radiobutton__input:focus+.dhx_radiobutton__visual-input{border-color:#0288d1}.dhx_radiobutton__input:checked+.dhx_radiobutton__visual-input{background-color:#0288d1;border-color:#0288d1;-webkit-box-shadow:inset 0 0 0 4px #fff;box-shadow:inset 0 0 0 4px #fff;-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.dhx_select{-webkit-appearance:none;-moz-appearance:none;appearance:none}.dhx_select::-ms-expand{display:none}.dhx_select__placeholder{position:absolute;left:8px;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);pointer-events:none;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7)}.dhx_select:focus+.dhx_select__placeholder{opacity:0}.dhx_simplevault{background-color:#f6f6f6;border:1px solid #dfdfdf;border-radius:2px;-webkit-transition:all .2s ease-in;transition:all .2s ease-in;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;line-height:20px;font-size:14px;font-weight:400;text-align:center;color:rgba(0,0,0,.7);overflow:hidden;position:relative}.dhx_simplevault__drop-area{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:20px}.dhx_simplevault__icon:before{font-size:40px;color:rgba(0,0,0,.3);-webkit-transition:color .2s ease-in;transition:color .2s ease-in}.dhx_simplevault__title{max-width:100%}.dhx_simplevault__label{color:#0288d1;cursor:pointer}.dhx_simplevault--on-drag{border-style:dashed;-webkit-transition:border .2s ease-out;transition:border .2s ease-out}.dhx_simplevault--on-drag .dhx_simplevault-loader{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-webkit-transition:opacity .2s ease-in,-webkit-transform .2s ease-in;transition:opacity .2s ease-in,-webkit-transform .2s ease-in;transition:opacity .2s ease-in,transform .2s ease-in;transition:opacity .2s ease-in,transform .2s ease-in,-webkit-transform .2s ease-in}.dhx_simplevault-files{width:100%;margin:0;padding:0;list-style:none;border-top:1px solid #e4e4e4;max-height:276px;overflow-y:auto}.dhx_simplevault-files__item{position:relative;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;line-height:20px;font-size:14px;text-align:left;color:rgba(0,0,0,.7);max-width:100%;overflow:hidden;text-overflow:ellipsis;padding:8px 40px 8px 8px}.dhx_simplevault-files__item:not(:last-child){border-bottom:1px solid #e4e4e4}.dhx_simplevault-files__item-name{word-break:break-word}.dhx_simplevault-files__delete{position:absolute;right:4px;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.dhx_simplevault-loader{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;position:absolute;left:1px;right:1px;top:1px;bottom:1px;background-color:#ededed;-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%);opacity:0;will-change:transform;-webkit-transition:0ms;transition:0ms;z-index:1}.dhx_simplevault-loader .dhx_simplevault__icon:before{color:#0288d1}.dhx_slider{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding-bottom:16px}.dhx_slider--label-inline{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.dhx_slider--label-inline .dhx_slider__label{text-align:right;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;margin-right:16px;margin-bottom:0;width:100%}.dhx_slider--label-inline .dhx_label--with-help{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.dhx_slider--label-inline .dhx_slider__track-holder{width:300%;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.dhx_slider--label_sr .dhx_label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dhx_slider--mode_vertical{height:100%;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex}.dhx_slider--mode_vertical .dhx_slider__label{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.dhx_slider--mode_vertical .dhx_slider__track-holder{height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:8px 0}.dhx_slider--mode_vertical .dhx_slider__track{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding:0 8px}.dhx_slider--mode_vertical .dhx_slider__track:before{width:2px;height:100%}.dhx_slider--mode_vertical .dhx_slider__range{width:2px;left:50%;-webkit-transform:translate(-50%);-ms-transform:translate(-50%);transform:translate(-50%)}.dhx_slider--mode_vertical .dhx_slider__thumb{left:50%}.dhx_slider--mode_vertical .dhx_slider__tick{height:1px;width:4px}.dhx_slider--mode_vertical .dhx_slider__tick:not(:first-child){-webkit-transform:translateY(-.5px);-ms-transform:translateY(-.5px);transform:translateY(-.5px)}.dhx_slider--mode_vertical .dhx_slider__tick--major{width:8px}.dhx_slider--mode_vertical .dhx_slider__tick-label{top:50%;left:100%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);padding-left:2px}.dhx_slider--ticks .dhx_slider__ticks-holder{height:4px}.dhx_slider--ticks.dhx_slider--mode_vertical .dhx_slider__ticks-holder{height:100%;width:4px}.dhx_slider__track-holder{position:relative;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.dhx_slider__track{position:relative;padding-top:8px;padding-bottom:8px;cursor:pointer;z-index:1}.dhx_slider__track:before{content:"";display:block;height:2px;background-color:#b3b3b3}.dhx_slider__thumb{position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:12px;height:12px;border-radius:50%;background-color:#0288d1;-webkit-transition:border-color .2s ease-out,background-color .2s ease-out,-webkit-transform .1s ease-out;transition:border-color .2s ease-out,background-color .2s ease-out,-webkit-transform .1s ease-out;transition:transform .1s ease-out,border-color .2s ease-out,background-color .2s ease-out;transition:transform .1s ease-out,border-color .2s ease-out,background-color .2s ease-out,-webkit-transform .1s ease-out;will-change:transform;cursor:pointer}.dhx_slider__thumb:after,.dhx_slider__thumb:before{content:"";display:block;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%) scale(0);-ms-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0);border-radius:50%;will-change:transform}.dhx_slider__thumb:before{width:28px;height:28px;background-color:rgba(2,136,209,.15)}.dhx_slider__thumb:after,.dhx_slider__thumb:before{-webkit-transition:background-color .2s ease-out,-webkit-transform .2s ease-out;transition:background-color .2s ease-out,-webkit-transform .2s ease-out;transition:transform .2s ease-out,background-color .2s ease-out;transition:transform .2s ease-out,background-color .2s ease-out,-webkit-transform .2s ease-out}.dhx_slider__thumb:after{width:16px;height:16px;background-color:#0288d1}.dhx_slider__thumb:focus,.dhx_slider__thumb:hover{outline:none}.dhx_slider__thumb:focus:before,.dhx_slider__thumb:hover:before{-webkit-transform:translate(-50%,-50%) scale(1);-ms-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1);-webkit-transition:background-color .2s ease-in,-webkit-transform .2s ease-in;transition:background-color .2s ease-in,-webkit-transform .2s ease-in;transition:transform .2s ease-in,background-color .2s ease-in;transition:transform .2s ease-in,background-color .2s ease-in,-webkit-transform .2s ease-in}.dhx_slider__thumb--active,.dhx_slider__thumb:active{z-index:1}.dhx_slider__thumb--active:after,.dhx_slider__thumb:active:after{-webkit-transform:translate(-50%,-50%) scale(1);-ms-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1);-webkit-transition:background-color .2s ease-in,-webkit-transform .2s ease-in;transition:background-color .2s ease-in,-webkit-transform .2s ease-in;transition:transform .2s ease-in,background-color .2s ease-in;transition:transform .2s ease-in,background-color .2s ease-in,-webkit-transform .2s ease-in}.dhx_slider__thumb--nullable{background-color:#b3b3b3}.dhx_slider__thumb--nullable:after{width:8px;height:8px;-webkit-transform:translate(-50%,-50%) scale(1);-ms-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1);background:#fff}.dhx_slider__thumb--nullable:before{background-color:rgba(77,77,77,.15)}.dhx_slider__thumb--disabled{background-color:#b3b3b3;border:2px solid #fff}.dhx_slider__thumb--disabled:after,.dhx_slider__thumb--disabled:before{display:none}.dhx_slider__thumb-label{position:absolute;padding:6px 12px;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);border-radius:2px;background-color:#333;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.3);box-shadow:0 2px 5px rgba(0,0,0,.3);font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:400;line-height:20px;color:#fff;-webkit-transition:opacity transform .01s ease-in;transition:opacity transform .01s ease-in;pointer-events:none;z-index:1}.dhx_slider__thumb-label--vertical{left:50px}.dhx_slider__thumb-label--horizontal{top:-30px}.dhx_slider__thumb-label--active{z-index:10}.dhx_slider__range{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);height:2px;background-color:#0288d1;pointer-events:none}.dhx_slider__ticks-holder{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_slider__tick{position:absolute;top:0;width:1px;height:4px;background-color:#b3b3b3}.dhx_slider__tick:not(:first-child){-webkit-transform:translateX(-.5px);-ms-transform:translateX(-.5px);transform:translateX(-.5px)}.dhx_slider__tick--major{height:8px}.dhx_slider__tick-label{position:absolute;top:10px;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:10px;color:rgba(0,0,0,.7);line-height:1}.dhx_message-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end;position:absolute;padding:20px;max-height:100%;-ms-scroll-chaining:none;overscroll-behavior:contain;width:240px;overflow:hidden;border:2px solid transparent;z-index:2147483647}.dhx_message-container *{-webkit-box-sizing:border-box;box-sizing:border-box}.dhx_message-container--top-left{top:0;left:0}.dhx_message-container--top-right{top:0;right:0}.dhx_message-container--bottom-left{left:0}.dhx_message-container--bottom-left,.dhx_message-container--bottom-right{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;bottom:0}.dhx_message-container--bottom-right{right:0}.dhx_message-container--in-body{position:fixed}.dhx_message{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;width:100%;padding:12px;margin-bottom:4px;margin-top:4px;border-radius:2px;-webkit-box-shadow:0 1px 6px rgba(0,0,0,.1),0 10px 20px rgba(0,0,0,.1);box-shadow:0 1px 6px rgba(0,0,0,.1),0 10px 20px rgba(0,0,0,.1);background-color:#fff;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_message,.dhx_message__text{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:500;line-height:20px;font-size:14px;color:rgba(0,0,0,.7)}.dhx_message__text{overflow-wrap:break-word;word-wrap:break-word;word-break:break-all}.dhx_message__icon{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;padding-left:8px;color:rgba(0,0,0,.5)}.dhx_message--error .dhx_message__icon,.dhx_message--error .dhx_message__text,.dhx_message--success .dhx_message__icon,.dhx_message--success .dhx_message__text{color:#fff}.dhx_message--error{background-color:#ff5252}.dhx_message--success{background-color:#0ab169}.dhx_alert{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:fixed;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:600px;padding:24px;background:#fff;border-radius:2px;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.3);box-shadow:0 2px 5px rgba(0,0,0,.3);will-change:transform;z-index:2147483647}.dhx_alert__overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:2147483646}.dhx_alert__header{position:relative;margin-bottom:20px;font-weight:500;line-height:20px;text-transform:uppercase;color:rgba(0,0,0,.7)}.dhx_alert__content,.dhx_alert__header{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px}.dhx_alert__content{height:100%;font-weight:400;color:rgba(0,0,0,.5);line-height:1.3;overflow-y:auto;overflow-wrap:break-word;word-wrap:break-word}.dhx_alert__footer{margin-top:20px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.dhx_alert__footer--center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.dhx_alert__footer--right{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.dhx_alert__footer .dhx_button:not(:last-child){margin-right:16px}.dhx_tooltip{pointer-events:none;border-radius:2px;background-color:#333;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.3);box-shadow:0 2px 5px rgba(0,0,0,.3);padding:6px 12px;-webkit-transition:opacity .01s ease,-webkit-transform .01s ease;transition:opacity .01s ease,-webkit-transform .01s ease;transition:opacity .01s ease,transform .01s ease;transition:opacity .01s ease,transform .01s ease,-webkit-transform .01s ease;opacity:0;z-index:999;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif}.dhx_tooltip--animate{opacity:1;-webkit-transition:opacity .15s ease-out;transition:opacity .15s ease-out}.dhx_tooltip--forced{opacity:1}.dhx_tooltip--bottom{margin:8px 0 0}.dhx_tooltip--top{margin:-8px 0 0}.dhx_tooltip--left{margin:0 0 -8px}.dhx_tooltip--right{margin:0 0 0 8px}.dhx_tooltip--light{background-color:#fff}.dhx_tooltip--light .dhx_tooltip__text{color:rgba(0,0,0,.7)}.dhx_widget--fullscreen .dhx_tooltip{z-index:2147483647}.dhx_tooltip__text{color:#fff;font-size:14px;font-weight:500;line-height:20px}.dhx_layout{max-width:100%;max-height:100%;width:100%;height:100%}.dhx_layout-columns{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;overflow:hidden}.dhx_layout-columns>.dhx_layout-cell:not(.dhx_layout-rows):not(.dhx_layout-columns):not(.dhx_layout-cell--gravity){-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.dhx_layout-columns>.dhx_layout-cell--resizeble{overflow-x:hidden}.dhx_layout-rows{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden}.dhx_layout-rows>.dhx_layout-cell:not(.dhx_layout-rows):not(.dhx_layout-columns):not(.dhx_layout-cell--gravity){-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.dhx_layout-rows>.dhx_layout-cell--resizeble{overflow-y:hidden}.dhx_layout-cell--start,.dhx_layout-columns--start,.dhx_layout-rows--start{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.dhx_layout-cell--center,.dhx_layout-columns--center,.dhx_layout-rows--center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.dhx_layout-cell--end,.dhx_layout-columns--end,.dhx_layout-rows--end{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.dhx_layout-cell--between,.dhx_layout-columns--between,.dhx_layout-rows--between{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.dhx_layout-cell--around,.dhx_layout-columns--around,.dhx_layout-rows--around{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.dhx_layout-cell--evenly,.dhx_layout-columns--evenly,.dhx_layout-rows--evenly{-webkit-box-pack:space-evenly;-webkit-justify-content:space-evenly;-ms-flex-pack:space-evenly;justify-content:space-evenly}.dhx_layout-cell{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.dhx_layout-cell--bordered{border:1px solid #e4e4e4}.dhx_layout-cell--border_top{border-top:1px solid #e4e4e4}.dhx_layout-cell--border_bottom{border-bottom:1px solid #e4e4e4}.dhx_layout-cell--border_left{border-left:1px solid #e4e4e4}.dhx_layout-cell--border_right{border-right:1px solid #e4e4e4}.dhx_layout-cell--border-shadow{border:0;-webkit-box-shadow:0 2px 4px rgba(0,0,0,.15);box-shadow:0 2px 4px rgba(0,0,0,.15)}.dhx_layout-cell--no-border{border:0}.dhx_layout-cell--no-border_top{border-top:0}.dhx_layout-cell--no-border_bottom{border-bottom:0}.dhx_layout-cell--no-border_left{border-left:0}.dhx_layout-cell--no-border_right{border-right:0}.dhx_layout-cell--gravity{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.dhx_layout-cell--flex{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.dhx_layout-cell--accordion>.dhx_layout-cell--collapsed{border-bottom:0}.dhx_layout-cell--collapsed{overflow:hidden;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.dhx_layout-cell-content{padding:12px}.dhx_layout-cell-header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #e4e4e4;padding:8px 12px}.dhx_layout-cell-header__title{margin:0;font-size:14px;line-height:20px;font-weight:500;color:rgba(0,0,0,.7);white-space:nowrap;overflow:hidden;text-overflow:clip;-webkit-transition:color .2s ease-in;transition:color .2s ease-in}.dhx_layout-cell-header__icon{margin-right:16px}.dhx_layout-cell-header__image-wrapper{position:relative;width:20px;height:20px;margin-right:8px}.dhx_layout-cell-header__image{position:absolute;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center center;object-position:center center;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);border-radius:50%}.dhx_layout-cell-header__collapse-icon{margin-left:auto;color:#4d4d4d;-webkit-transition:color .2s ease-in,-webkit-transform .2s ease-in;transition:color .2s ease-in,-webkit-transform .2s ease-in;transition:transform .2s ease-in,color .2s ease-in;transition:transform .2s ease-in,color .2s ease-in,-webkit-transform .2s ease-in}.dhx_layout-cell-header--collapseble{cursor:pointer}.dhx_layout-cell-header--collapseble:focus .dhx_layout-cell-header__collapse-icon,.dhx_layout-cell-header--collapseble:focus .dhx_layout-cell-header__title,.dhx_layout-cell-header--collapseble:hover .dhx_layout-cell-header__collapse-icon,.dhx_layout-cell-header--collapseble:hover .dhx_layout-cell-header__title{color:#0288d1;-webkit-transition:color .2s ease-out;transition:color .2s ease-out}.dhx_layout-cell-header--collapseble:focus,.dhx_layout-cell-header:focus{outline-width:0}.dhx_layout-cell-header--collapsed.dhx_layout-cell-header--col{border-bottom:0;position:relative}.dhx_layout-cell-header--collapsed.dhx_layout-cell-header--col .dhx_layout-cell-header__title{position:absolute;-webkit-transform-origin:left;-ms-transform-origin:left;transform-origin:left;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);bottom:-12px;left:50%}.dhx_layout-cell-header+.dhx_layout-cell-content{overflow:auto;max-height:calc(100% - 37px)}.dhx_layout-resizer{position:relative;overflow:visible;text-align:center}.dhx_layout-resizer .dhx_layout-resizer__icon{position:relative;z-index:1}.dhx_layout-resizer--x{width:0;height:100%;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.dhx_layout-resizer--x .dhx_layout-resizer__icon{color:rgba(0,0,0,.5);top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);cursor:ew-resize}.dhx_layout-resizer--x .dhx_layout-resizer__icon:before{font-size:16px}.dhx_layout-resizer--y{height:0;width:100%}.dhx_layout-resizer--y .dhx_layout-resizer__icon{color:rgba(0,0,0,.5);-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);cursor:ns-resize}.dhx_layout-resizer--y .dhx_layout-resizer__icon:before{font-size:16px}.dhx_navbar-count{width:24px;height:24px;border-radius:50%;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:12px;line-height:24px;color:#fff;text-align:center;z-index:1}.dhx_navbar-count--absolute{margin-left:0;position:absolute;top:-4px;top:-10px;right:-10px}.dhx_navbar-count--button-inline{margin-top:-4px;margin-bottom:-4px;margin-left:12px}.dhx_navbar-count--overlimit{width:auto;border-radius:22px;padding:0 8px}.dhx_navbar-count--color_success{background-color:#0ab169}.dhx_navbar-count--color_danger{background-color:#ff5252}.dhx_navbar-count--color_primary{background-color:#0288d1}.dhx_navbar-count--color_secondary{background-color:#4d4d4d}.dhx_navbar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;margin:0;padding:0;width:100%;list-style:none}.dhx_navbar:focus{outline:none}.dhx_navbar--horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.dhx_navbar--vertical{height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:auto}.dhx_navbar .dhx_button--color_secondary.dhx_button--view_link .dhx_button__icon{color:rgba(0,0,0,.5)}.dhx_navbar-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);font-weight:500}.dhx_navbar-title--sidebar{display:block;padding:12px}.dhx_timepicker{width:100%;padding:50px 20px;min-width:248px;background-color:#fff}.dhx_timepicker--with-actions{padding:4px 20px 0}.dhx_timepicker__inputs{text-align:center;margin-bottom:28px;margin-top:16px}.dhx_timepicker__close{min-height:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;margin-bottom:6px}.dhx_timepicker__button-close{text-transform:uppercase;-webkit-transform:translateX(16px);-ms-transform:translateX(16px);transform:translateX(16px)}.dhx_timepicker__save{padding-top:12px;min-height:76px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.dhx_timepicker-inputs{position:relative;display:inline-block}.dhx_timepicker-input{width:48px;height:38px;font-size:30px;padding-bottom:4px;color:rgba(0,0,0,.7);line-height:30px;text-align:center;outline:none;border:none;border-bottom:1px solid #ededed;-webkit-transition:border-color .2s ease-in;transition:border-color .2s ease-in;background-color:transparent}.dhx_timepicker-input:focus{border-bottom:1px solid #81c4e8;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.dhx_timepicker-ampm{position:absolute;right:-32px;bottom:4px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;color:rgba(0,0,0,.3);font-size:16px;line-height:16px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_timepicker-delimer{position:relative;top:-2px;height:30px;width:8px;color:rgba(0,0,0,.7);line-height:30px;font-size:30px}.dhx_calendar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;min-height:258px;padding:12px;background-color:#fff}.dhx_calendar--with_timepicker{min-height:310px}.dhx_calendar__wrapper{position:relative;z-index:1;width:100%;min-height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.dhx_calendar__dates-wrapper{position:relative;padding-left:40px}.dhx_calendar__navigation{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;text-align:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin:-4px 2px 4px}.dhx_calendar__navigation .dhx_button--color_secondary:focus,.dhx_calendar__navigation .dhx_button--view_link:focus{background:inherit}.dhx_calendar__navigation .dhx_button--color_secondary:hover,.dhx_calendar__navigation .dhx_button--view_link:hover{background:#e4e4e4}.dhx_calendar__timepicker-button{margin-top:8px}.dhx_calendar__actions{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.dhx_calendar__week-numbers{position:absolute;left:0;top:-4px;width:32px;padding:4px 0;background-color:#f7f7f7}.dhx_calendar__week-numbers:before{content:"#";display:block;margin-bottom:8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:12px;line-height:16px;color:rgba(0,0,0,.5);text-align:center}.dhx_calendar__weekdays{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin:0 0 8px}.dhx_calendar__days,.dhx_calendar__months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.dhx_calendar__months,.dhx_calendar__years{margin-top:auto;margin-bottom:auto}.dhx_calendar__years{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.dhx_calendar-weekday{-webkit-box-flex:1;-webkit-flex:1 0 14%;-ms-flex:1 0 14%;flex:1 0 14%;font-size:12px;line-height:16px}.dhx_calendar-week-number,.dhx_calendar-weekday{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;color:rgba(0,0,0,.5);text-align:center}.dhx_calendar-week-number{margin-bottom:12px;font-size:14px;line-height:20px}.dhx_calendar-week-number:last-child{margin-bottom:0}.dhx_calendar-week-number--hidden{opacity:0;pointer-events:none}.dhx_calendar-day{position:relative;-webkit-box-flex:1;-webkit-flex:1 0 14%;-ms-flex:1 0 14%;flex:1 0 14%;margin-bottom:12px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.5);text-align:center;cursor:pointer}.dhx_calendar-day:nth-last-child(-n+7){margin-bottom:0}.dhx_calendar-day:after,.dhx_calendar-day:before{content:"";position:absolute;top:50%;left:50%;display:block;width:28px;height:28px;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background-color:rgba(0,0,0,.07);border-radius:50%;opacity:0;z-index:-1}.dhx_calendar-day:active,.dhx_calendar-day:focus{outline:none}.dhx_calendar-day:active:before,.dhx_calendar-day:focus:before,.dhx_calendar-day:hover:before{opacity:1;-webkit-transition:opacity .2s ease-out;transition:opacity .2s ease-out}.dhx_calendar-day--weekend{color:#0288d1}.dhx_calendar-day--hidden{opacity:0;pointer-events:none}.dhx_calendar-day--muffled{opacity:.6}.dhx_calendar-day--selected{color:#fff;position:relative;z-index:1}.dhx_calendar-day--selected:before{opacity:1;background-color:#0288d1}.dhx_calendar-day--disabled{color:rgba(0,0,0,.3);pointer-events:none}.dhx_calendar-day--weekend-disabled{pointer-events:none;color:#6ecbfe}.dhx_calendar-day--in-range:after{opacity:1;background-color:#d3efff;border-radius:0;width:100%;z-index:-3}.dhx_calendar-day--first-date:after{width:100%;background-color:#d3efff;opacity:1;right:calc(-50% - 2px);left:auto;border-radius:0;border-top-left-radius:32px;border-bottom-left-radius:32px}.dhx_calendar-day--last-date:after{width:100%;background-color:#d3efff;opacity:1;right:calc(-50% + 2px);left:auto;border-radius:0;border-top-right-radius:32px;border-bottom-right-radius:32px}.dhx_calendar-day:nth-child(7n).dhx_calendar-day--first-date:after{width:30px;right:calc(-50% + 1px)}.dhx_calendar-day:nth-child(7n+1).dhx_calendar-day--last-date:after{width:30px;right:calc(-50% + 3px)}.dhx_calendar-month,.dhx_calendar-year{position:relative;-webkit-box-flex:1;-webkit-flex:1 0 25%;-ms-flex:1 0 25%;flex:1 0 25%;margin-bottom:8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:50px;color:rgba(0,0,0,.7);text-align:center;cursor:pointer}.dhx_calendar-month:nth-last-child(-n+4),.dhx_calendar-year:nth-last-child(-n+4){margin-bottom:0}.dhx_calendar-month:before,.dhx_calendar-year:before{content:"";position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);display:block;width:50px;height:50px;background-color:rgba(0,0,0,.07);border-radius:50%;opacity:0;-webkit-transition:opacity .2s ease-in,background-color .2s ease-in;transition:opacity .2s ease-in,background-color .2s ease-in;z-index:-1}.dhx_calendar-month:active,.dhx_calendar-month:focus,.dhx_calendar-year:active,.dhx_calendar-year:focus{outline:none}.dhx_calendar-month:active:before,.dhx_calendar-month:focus:before,.dhx_calendar-month:hover:before,.dhx_calendar-year:active:before,.dhx_calendar-year:focus:before,.dhx_calendar-year:hover:before{opacity:1;-webkit-transition:opacity .2s ease-out;transition:opacity .2s ease-out}.dhx_calendar-month:hover:before,.dhx_calendar-year:hover:before{z-index:-2}.dhx_calendar-month--selected,.dhx_calendar-year--selected{color:#fff}.dhx_calendar-month--selected:before,.dhx_calendar-year--selected:before{opacity:1;-webkit-transition:opacity .2s ease-in,background-color .2s ease-in;transition:opacity .2s ease-in,background-color .2s ease-in;background-color:#0288d1}.dhx_chart{stroke-linecap:square;position:relative;height:100%}.dhx_chart svg{vertical-align:top;overflow:visible}.dhx_chart .chart{-webkit-transition:all .5s ease;transition:all .5s ease}.dhx_chart.not-animate .chart,.dhx_chart.not-animate .tooltip-form,.dhx_chart.not-animate .tooltip-text{-webkit-transition:none;transition:none}.dhx_chart .figure{-webkit-transition:fill,stroke .3s ease;transition:fill,stroke .3s ease}.dhx_chart .active-figure{visibility:visible;-webkit-transition:all .2s ease;transition:all .2s ease}.dhx_chart .active-figure.point-circle,.dhx_chart .active-figure.point-rect,.dhx_chart .active-figure.point-rhombus,.dhx_chart .active-figure.point-triangle{-webkit-filter:url(#dropshadow);filter:url(#dropshadow);-webkit-transition:all .3s ease;transition:all .3s ease}.dhx_chart .area{stroke-linecap:round}.dhx_chart .dash-line{stroke-dasharray:4,6;stroke-linecap:round}.dhx_chart .legend-text,.dhx_chart .scale-text,.dhx_chart .scale-title{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:400;font-size:14px;fill:#898f97}.dhx_chart text{text-anchor:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.dhx_chart .start-text{text-anchor:start}.dhx_chart .end-text{text-anchor:end}.dhx_chart .legend-text{line-height:18px}.dhx_chart .scale-title{fill:#aeb7c2;line-height:16px}.dhx_chart .grid-line{stroke:#e3e9f1}.dhx_chart .main-scale{stroke:#c8d4e4;stroke-width:2px}.dhx_chart .radar-grid{stroke-dasharray:4,6;stroke:#d8e1ec;stroke-linecap:round}.dhx_chart .zebra{fill-rule:evenodd;fill:#f3f6fa}.dhx_chart .radar-scale{stroke:#c4d5e6}.dhx_chart .spec-grid-line{stroke:#898f97;stroke-linecap:round;stroke-dasharray:4,6}.dhx_chart .bar-text{fill:#fff;line-height:14px;font-weight:500;font-size:12px}.dhx_chart .bar-text,.dhx_chart .radar-axis-text{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif}.dhx_chart .radar-axis-text{font-size:14px;fill:#666}.dhx_chart .legend-item{cursor:pointer}.dhx_chart .legend-item.not-active .figure{fill:#c8d4e4;fill-opacity:1;stroke:#c8d4e4}.dhx_chart .legend-item.not-active .figure.legend-circle,.dhx_chart .legend-item.not-active .figure.legend-rect{stroke:none}.dhx_chart .legend-item.not-active .figure.legend-circle.with-stroke,.dhx_chart .legend-item.not-active .figure.legend-rect.with-stroke{stroke:#c8d4e4}.dhx_chart .legend-item.not-active .legend-text{fill:#c8d4e4}.dhx_chart.tooltip-container{z-index:2147483647}.dhx_chart.tooltip-container svg{width:4px;height:4px}.dhx_chart .tooltip-form{fill:#555;fill-opacity:.9}.dhx_chart .tooltip-text{font-size:12px;line-height:12px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;fill:#fff;font-weight:500}.dhx_chart .active-tooltip{visibility:visible}.dhx_chart .pie-value{font-weight:400;font-size:14px;fill:#898f97}.dhx_chart .pie-inner-value,.dhx_chart .pie-value{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif}.dhx_chart .pie-inner-value{fill:#fff;pointer-events:none;font-weight:500;line-height:14px;font-size:12px}.dhx_chart .pie-value-connector{stroke:#c6c6c6;fill:none}.dhx_chart .donut-value-title{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;fill:#898f97;font-size:14px;line-height:18px}.dhx_chart .donut-value{fill:#555;font-size:12px;line-height:14px}.dhx_chart .donut-value,.dhx_popup{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif}.dhx_popup{position:fixed;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-animation:appear .2s ease-in-out forwards;animation:appear .2s ease-in-out forwards;background:#fff;will-change:transform;font-weight:500;font-size:14px;line-height:20px;color:rgba(0,0,0,.7)}.dhx_popup,.dhx_popup--window,.dhx_popup--window_modal{z-index:2147483645}.dhx_popup--window_active{z-index:2147483646}.dhx_popup.hide{-webkit-animation:disappear .2s ease-in-out forwards;animation:disappear .2s ease-in-out forwards}.dhx_popup:focus{outline:none}.dhx_widget--fullscreen .dhx_popup{z-index:2147483647}@-webkit-keyframes appear{0%{-webkit-transform:translateY(20px);transform:translateY(20px);opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes appear{0%{-webkit-transform:translateY(20px);transform:translateY(20px);opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@-webkit-keyframes disappear{0%{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}to{-webkit-transform:translateY(20px);transform:translateY(20px);opacity:0}}@keyframes disappear{0%{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}to{-webkit-transform:translateY(20px);transform:translateY(20px);opacity:0}}.dhx_colorpicker{font-family:Roboto,sans-serif;font-weight:500;overflow:hidden;padding:8px;border:1px solid #e4e4e4;background-color:#fff;border-radius:2px}.dhx_colorpicker,.dhx_colorpicker *{-webkit-box-sizing:border-box;box-sizing:border-box}.dhx_popup .dhx_colorpicker{-webkit-box-shadow:0 2px 5px rgba(0,0,0,.3);box-shadow:0 2px 5px rgba(0,0,0,.3);border:none}.dhx_palette{overflow:hidden;width:100%;height:100%;margin:0;white-space:nowrap}.dhx_palette--custom{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;max-width:236px}.dhx_palette--custom .dhx_custom-color__cell{margin-bottom:2px}.dhx_palette__col{display:inline-block}.dhx_palette__col:last-child .dhx_palette_cell{margin-right:0}.dhx_palette__row .dhx_palette__cell{display:inline-block;margin-bottom:6px}.dhx_palette__row .dhx_palette__cell:last-child{margin-right:0}.dhx_palette__row--last{margin-bottom:0}.dhx_palette__cell{position:relative;width:20px;height:20px;margin:0 2px 2px 0;vertical-align:top;border:2px solid transparent}.dhx_palette__cell,.dhx_palette__cell:after{-webkit-transition:border .2s ease-in;transition:border .2s ease-in}.dhx_palette__cell:after{content:"";display:block;position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border:1px solid transparent}.dhx_palette__cell:last-child{margin-bottom:0}.dhx_palette__cell--selected,.dhx_palette__cell:hover{border:2px solid hsla(0,0%,100%,.6);-webkit-transition:border .2s ease-out;transition:border .2s ease-out}.dhx_palette__cell--selected:after,.dhx_palette__cell:hover:after{border:1px solid rgba(0,0,0,.6);-webkit-transition:border .2s ease-out;transition:border .2s ease-out}.dhx_colorpicker-custom-colors{font-size:14px;color:#909cad}.dhx_colorpicker-custom-colors__header{font-size:14px;padding:12px 0 4px;letter-spacing:-.2px;position:relative}.dhx_colorpicker-custom-colors__picker{display:inline-block;width:20px;height:20px;cursor:pointer;color:#909cad;-webkit-box-shadow:inset 0 0 0 1px #909cad;box-shadow:inset 0 0 0 1px #909cad}.dhx_colorpicker-picker__palette{position:relative;width:100%;border-radius:2px;overflow:hidden}.dhx_colorpicker-picker__palette:before{content:"";height:100%;width:100%;position:absolute;top:0;left:0;background-image:-webkit-gradient(linear,left bottom,left top,from(#000),to(hsla(0,0%,100%,0)));background-image:-webkit-linear-gradient(bottom,#000,hsla(0,0%,100%,0));background-image:linear-gradient(0deg,#000,hsla(0,0%,100%,0));z-index:2}.dhx_colorpicker-picker__palette:after{content:"";width:100%;height:100%;position:absolute;top:0;left:0;background-image:-webkit-gradient(linear,left top,right top,from(#fff),to(rgba(204,154,129,0)));background-image:-webkit-linear-gradient(left,#fff,rgba(204,154,129,0));background-image:linear-gradient(90deg,#fff,rgba(204,154,129,0));z-index:1}.dhx_colorpicker-picker__buttons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:12px 0 0;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.dhx_colorpicker-picker__buttons .dhx_button:first-child{margin-right:4px}.dhx_colorpicker-hue-range{position:relative;width:100%;margin:4px 0 8px;border-radius:2px;background-image:-webkit-gradient(linear,left top,right top,from(red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background-image:-webkit-linear-gradient(left,red,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);background-image:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.dhx_colorpicker-hue-range__grip{width:6px;height:100%}.dhx_colorpicker-hue-range__grip,.dhx_palette_grip{position:absolute;top:0;left:0;border:1px solid #fff;background:transparent;-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,.3);box-shadow:0 2px 5px 0 rgba(0,0,0,.3)}.dhx_palette_grip{width:10px;height:10px;border-radius:50%;z-index:10}.dhx_colorpicker-value{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;height:32px;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.dhx_colorpicker-value__color{width:100px;border:1px solid transparent;border-radius:2px;margin-right:8px}.dhx_colorpicker-value__input-wrapper{position:relative;border:1px solid #d4dde7}.dhx_colorpicker-value__input-wrapper:before{content:"#";position:absolute;height:100%;line-height:30px;left:8px;color:#909cad;font-size:15px}.dhx_colorpicker-value__input{width:100px;height:100%;padding:0 0 0 24px;line-height:20px;font-size:14px;color:rgba(0,0,0,.7);border:none;border-radius:2px;outline:none}.dhx_list{margin:0;padding:0;height:100%;list-style:none;overflow:auto;max-height:100%}.dhx_list--virtual{overflow:visible;max-height:unset;border:none}.dhx_list-item{overflow:hidden;position:relative;padding:8px 12px;border-bottom:1px solid #e4e4e4}.dhx_list-item,.dhx_list-item--text{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif}.dhx_list-item--text{font-size:14px;font-weight:400;line-height:20px;-webkit-transition:background-color .2s ease-in,-webkit-box-shadow .2s ease-in;transition:background-color .2s ease-in,-webkit-box-shadow .2s ease-in;transition:background-color .2s ease-in,box-shadow .2s ease-in;transition:background-color .2s ease-in,box-shadow .2s ease-in,-webkit-box-shadow .2s ease-in}.dhx_list-item--selected{background-color:#f7f7f7;-webkit-box-shadow:inset 2px 0 0 0 #0288d1;box-shadow:inset 2px 0 0 0 #0288d1}.dhx_list-item--focus,.dhx_list-item--selected:hover,.dhx_list-item:hover{background-color:#ededed;-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.dhx_list-item--drophere:after{content:"";position:absolute;left:0;right:0;bottom:0;top:0;background-color:#f7f7f7}.dhx_list-item--dragtarget{opacity:.6}.dhx_list-item--drag{cursor:-webkit-grab;cursor:grab}.dhx_list-input{width:100%;padding-left:5px}.dhx_virtual-list-wrapper{overflow:auto;max-height:100%;border:1px solid #e4e4e4}.dhx_drag-ghost .dhx_list-item{border:1px solid #e4e4e4!important;background-color:#fff;list-style-type:none}.dhx_drag-ghost .dhx_list-item--selected{background-color:#fff;-webkit-box-shadow:inset 0 0 0 0 #0288d1;box-shadow:inset 0 0 0 0 #0288d1}.dhx_drag-ghost .dhx_list-item--focus,.dhx_drag-ghost .dhx_list-item--selected:hover,.dhx_drag-ghost .dhx_list-item:hover{background-color:#fff;-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.dhx_combobox{margin-bottom:16px}.dhx_combobox__options{margin-top:2px;width:100%}.dhx_combobox--required:not(.dhx_combobox--label_sr) .dhx_label:not(.dhx_label--with-help){position:relative}.dhx_combobox--required:not(.dhx_combobox--label_sr) .dhx_label:not(.dhx_label--with-help):after{content:"*";display:inline-block;padding-left:4px;color:rgba(0,0,0,.3)}.dhx_combobox--required:not(.dhx_combobox--label_sr) .dhx_label__holder{position:relative;max-width:100%;overflow:hidden;text-overflow:ellipsis}.dhx_combobox--required:not(.dhx_combobox--label_sr) .dhx_label__holder:after{content:"*";display:inline-block;padding-left:4px;color:rgba(0,0,0,.3)}.dhx_combobox--label_sr .dhx_label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dhx_combobox--label-inline{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:100%;position:relative}.dhx_combobox--label-inline .dhx_combobox__label{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;text-align:right;margin-right:16px;width:100%}.dhx_combobox--label-inline .dhx_combobox-input-box{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;width:300%}.dhx_combobox-input-box{position:relative;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;background-color:#f7f7f7;background-clip:padding-box;border-radius:2px;-webkit-box-shadow:inset 0 0 0 1px #dfdfdf;box-shadow:inset 0 0 0 1px #dfdfdf;-webkit-transition:border-color .2s ease-out,-webkit-box-shadow .2s ease-out;transition:border-color .2s ease-out,-webkit-box-shadow .2s ease-out;transition:border-color .2s ease-out,box-shadow .2s ease-out;transition:border-color .2s ease-out,box-shadow .2s ease-out,-webkit-box-shadow .2s ease-out}.dhx_combobox-input-box--readonly,.dhx_combobox-input-box--readonly *{cursor:pointer}.dhx_combobox-input-box--disabled{cursor:not-allowed;opacity:.8}.dhx_combobox-input-box--disabled *{cursor:not-allowed;pointer-events:none}.dhx_combobox-input-box--active,.dhx_combobox-input-box:focus-within{-webkit-box-shadow:inset 0 0 0 1px #67b8e3;box-shadow:inset 0 0 0 1px #67b8e3}.dhx_combobox-input-box--state_success{-webkit-box-shadow:inset 0 0 0 1px #6cd0a5;box-shadow:inset 0 0 0 1px #6cd0a5}.dhx_combobox-input-box--state_error{-webkit-box-shadow:inset 0 0 0 1px #ff9797;box-shadow:inset 0 0 0 1px #ff9797}.dhx_combobox-input{min-height:30px;display:block;width:100%;margin:0;padding:0;position:absolute;top:0;right:0;bottom:0;left:0;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.dhx_combobox-input:active,.dhx_combobox-input:focus{outline:none}.dhx_combobox-input__wrapper{position:static;padding-bottom:0}.dhx_combobox-input__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;cursor:pointer;-webkit-box-flex:0;-webkit-flex:0;-ms-flex:0;flex:0;position:absolute;top:50%;right:4px;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:16px;z-index:1;color:rgba(0,0,0,.5)}.dhx_combobox-input-list-wrapper{height:100%;width:100%;overflow:hidden}.dhx_combobox-input-list{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;list-style:none;margin:0;border-top:1px solid transparent;border-bottom:1px solid transparent;min-height:30px;max-height:96px;width:calc(100% - 32px);overflow-y:scroll;padding:0 41px 0 8px;-webkit-box-sizing:content-box!important;box-sizing:content-box!important}.dhx_combobox-input-list__item{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.dhx_combobox-input-list__item--input{position:relative;-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.dhx_combobox-tag{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:0 8px;margin-top:2px;margin-bottom:2px;border:1px solid #e4e4e4;border-radius:16px;background-color:#fff;margin-right:8px}.dhx_combobox-tag__value{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);white-space:nowrap}.dhx_combobox-tag__icon,.dhx_combobox-tag__image{margin-right:4px}.dhx_combobox-tag__image{width:16px;height:auto;-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center}.dhx_combobox-tag__action{height:20px;margin-left:4px;margin-right:-6px;color:rgba(0,0,0,.5);padding:0;background-color:transparent;-webkit-transition:color .2s ease-in;transition:color .2s ease-in}.dhx_combobox-tag__action:hover{color:rgba(0,0,0,.7);-webkit-transition:color .2s ease-out;transition:color .2s ease-out}.dhx_combobox-options{background-color:#fff;border-radius:2px;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.3);box-shadow:0 2px 5px rgba(0,0,0,.3)}.dhx_combobox-options__icon{padding-right:4px}.dhx_combobox-options__image{padding-right:4px;width:16px;height:auto;-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center}.dhx_combobox-options__item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;padding:6px 8px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.dhx_combobox-options__item--select-all{color:#0288d1;line-height:20px;border-bottom:1px solid #e4e4e4}.dhx_dataview{position:relative;overflow-y:auto;height:100%;max-height:100%}.dhx_dataview--has-scroll .dhx_dataview-row:last-child .dhx_dataview-item:not(.dhx_dataview-item--with-gap){border-bottom:0}.dhx_dataview-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.dhx_dataview-row .dhx_dataview-item:not(.dhx_dataview-item--with-gap){border-top:0}.dhx_dataview-item{position:relative;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;border:1px solid #e4e4e4;padding:8px;-webkit-transition:-webkit-box-shadow .2s ease-in;transition:-webkit-box-shadow .2s ease-in;transition:box-shadow .2s ease-in;transition:box-shadow .2s ease-in,-webkit-box-shadow .2s ease-in}.dhx_dataview-item:not(.dhx_dataview-item--with-gap){border-left:0}.dhx_dataview-item--last-item-in-row:not(.dhx_dataview-item--with-gap){border-right:0}.dhx_dataview-item:focus{outline:none}.dhx_dataview-item:after{content:"";display:block;position:absolute;left:0;right:0;bottom:0;top:0;z-index:1;border:1px solid transparent;-webkit-transition:opacity .2s ease-in-out,background-color .2s ease-in-out;transition:opacity .2s ease-in-out,background-color .2s ease-in-out;pointer-events:none}.dhx_dataview-item--focus{-webkit-box-shadow:inset 0 0 0 1px #a6a6a6;box-shadow:inset 0 0 0 1px #a6a6a6}.dhx_dataview-item--focus,.dhx_dataview-item--selected{-webkit-transition:-webkit-box-shadow .2s ease-out;transition:-webkit-box-shadow .2s ease-out;transition:box-shadow .2s ease-out;transition:box-shadow .2s ease-out,-webkit-box-shadow .2s ease-out}.dhx_dataview-item--selected{-webkit-box-shadow:inset 0 0 0 1px #0288d1;box-shadow:inset 0 0 0 1px #0288d1}.dhx_dataview-item--drophere:after{background-color:#f7f7f7}.dhx_dataview-item--dragtarget{opacity:.6}.dhx_dataview-item--drag{cursor:-webkit-grab;cursor:grab}.dhx_dataview-input{padding-left:5px}.dhx_drag-ghost{z-index:999;opacity:.6}.dhx_drag-ghost .dhx_dataview-item{border:1px solid #e4e4e4!important;background-color:#fff}.dhx_footer-wrapper,.dhx_header-wrapper{position:relative;font-size:14px;font-weight:500;color:rgba(0,0,0,.7);z-index:10;overflow:hidden}.dhx_footer-wrapper.dhx_compatible-header,.dhx_header-wrapper.dhx_compatible-header{border-right:none}.dhx_footer-wrapper:last-child,.dhx_header-wrapper:last-child{border-bottom:none}.dhx_grid-header{position:relative;height:100%;white-space:nowrap;z-index:10}.dhx_grid-footer-cell,.dhx_grid-header-cell{display:inline-block;height:100%;padding:0 8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:400;vertical-align:top;white-space:nowrap;overflow:hidden;position:relative;font-weight:500;background-color:#f7f7f7;border-top:1px solid #e4e4e4;border-bottom:1px solid #e4e4e4;border-left:none;text-overflow:ellipsis;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_grid-footer-cell:not(.dhx_cell_first),.dhx_grid-header-cell:not(.dhx_cell_first){border-left:1px solid #e4e4e4}.dhx_grid-footer-cell:first-child,.dhx_grid-header-cell:first-child{border-left:none}.dhx_grid-header-cell--sortable:hover .dhx_grid-sort-icon{opacity:1}.dhx_grid-header-cell--sortable:hover:after,.dhx_grid-header-cell--sorted:after{content:"";display:block;width:24px;position:absolute;top:0;bottom:0;background-color:#f7f7f7;opacity:.8}.dhx_grid-header-cell--align_right{text-align:right;padding-left:24px}.dhx_grid-header-cell--align_right .dhx_grid-sort-icon{left:4px}.dhx_grid-header-cell--align_right:after{left:0}.dhx_grid-header-cell--align_left{text-align:left}.dhx_grid-header-cell--align_left .dhx_grid-sort-icon{right:4px}.dhx_grid-header-cell--align_left:after{right:0}.dhx_grid-sort-icon{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);opacity:0;color:rgba(0,0,0,.5);z-index:1;-webkit-transition:all .2s ease-in;transition:all .2s ease-in;cursor:pointer}.dhx_grid-sort-icon:before{font-size:16px;display:inline-block;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.dhx_grid-sort-icon--asc,.dhx_grid-sort-icon--desc{opacity:1;color:#0288d1;-webkit-transition:color .2s ease-out;transition:color .2s ease-out}.dhx_grid-sort-icon--asc:before{-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}.dhx_cell_empty{border-top:none}.dhx_header-row{white-space:nowrap;background:#f7f7f7}.dhx_header-row:last-child .dhx_cell-first{border-bottom:1px solid #f7f7f7}.dhx_header-row:first-child .dhx_grid-footer-cell,.dhx_header-row:first-child .dhx_grid-header-cell{border-top:none}.dhx_header-row:not(:last-child) .dhx_grid-footer-cell,.dhx_header-row:not(:last-child) .dhx_grid-header-cell{border-bottom:none}.dhx_header-row .dhx_grid-custom-content-cell{padding:5px}.dhx_header-spans{position:absolute;top:0}.dhx_header-spans .dhx_span-cell{background:#f7f7f7;font-weight:500}.dhx_grid-filter__label{display:block;width:100%;height:100%;position:relative}.dhx_grid-filter__label:before{color:rgba(0,0,0,.5);pointer-events:none;position:absolute;right:4px;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:10}.dhx_grid-filter{height:100%;padding:0 25px 0 4px;color:rgba(0,0,0,.7);background:#fff;border-radius:2px;outline:none;position:relative}.dhx_grid-filter::-ms-expand{display:none}.dhx_header-fixed-cols{background:#f7f7f7;z-index:999}.dhx_header-fixed-cols .dhx_last-column-cell{border-right:1px solid #e4e4e4}.dhx_footer-wrapper{-webkit-box-shadow:0 1px 0 0 #f7f7f7;box-shadow:0 1px 0 0 #f7f7f7}.dhx_grid-footer{position:relative;background-color:#f7f7f7}.dhx_grid-footer-cell{border-top:1px solid #e4e4e4}.dhx_grid-footer-cell:after{display:none}.dhx_grid-footer-cell.dhx_number-cell{text-align:right}.dhx_grid-footer-cell.dhx_string-cell{text-align:left}.dhx_footer-row{white-space:nowrap;background:#f7f7f7}.dhx_footer-row:last-child .dhx_cell-first{border-bottom:1px solid #f7f7f7}.dhx_footer-row .dhx_grid-footer-cell{border-bottom:none}.dhx_footer-spans .dhx_span-cell{background-color:#f7f7f7}.dhx_footer-spans .dhx_span-row .dhx_span-cell{border-top:1px solid #e4e4e4}.dhx_footer-fixed-cols{background:#f7f7f7;z-index:999}.dhx_footer-fixed-cols .dhx_last-column-cell{border-right:1px solid #e4e4e4}.dhx_grid-row{width:100%;white-space:nowrap;overflow:hidden}.dhx_grid-row:first-child .dhx_grid-cell{border-top:none}.dhx_grid-cell{font-size:14px;color:rgba(0,0,0,.7);text-align:right;position:relative;display:inline-block;height:100%;padding:0 8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:400;vertical-align:top;white-space:nowrap;border-top:1px solid #e4e4e4;border-left:1px solid #e4e4e4;overflow:hidden}.dhx_grid-cell .dhx_cell-content{width:100%;height:100%;overflow:hidden}.dhx_grid-cell:first-child{border-left:none}.dhx_grid-cell--first{border-top:none}.dhx_grid-cell--title{font-size:14px;font-weight:400;color:rgba(0,0,0,.7);text-align:left;border-bottom:none}.dhx_grid-cell--after-title,.dhx_grid-cell--title{border-top:1px solid #e4e4e4}.dhx_grid-cell__editable{padding-right:0;padding-left:0}.dhx_number-cell{text-align:right}.dhx_string-cell,.dhx_tree-cell{text-align:left}.dhx_tree-cell{font-weight:14px;color:rgba(0,0,0,.5)}.dhx_tree-cell .dhx_grid-expand-cell-icon{position:absolute;top:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:20px;height:100%;padding:0 0 0 4px;font-size:14px;cursor:pointer}.dhx_tree-cell .dhx_tree-cell{display:inline-block;padding:0 8px}.dhx_grid-expand-cell{cursor:pointer}.dhx_grid-expand-cell .dhx_tree-cell{padding:0 10px 0 30px}.dhx_grid-fixed-cols-wrap{position:absolute;top:0;left:0;background:#fff;overflow:hidden}.dhx_frozen-cols-border{width:1px;position:absolute;right:0;top:0;height:100%;background:#e4e4e4;z-index:999999}.dhx_grid-fixed-cols,.dhx_grid-selection{position:absolute;top:0}.dhx_grid-selection{left:0}.dhx_grid-selected-row{border-left:2px solid #0288d1;background:rgba(77,77,77,.08);pointer-events:none}.dhx_grid-selected-cell{border:2px solid #0288d1;background-color:transparent;pointer-events:none}.dhx_cell-editor{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:400;width:100%;height:100%;text-align:inherit;color:rgba(0,0,0,.7);border:none;background:transparent;-webkit-box-shadow:inset 0 0 0 1px #0288d1;box-shadow:inset 0 0 0 1px #0288d1;outline:none}.dhx_cell-editor__input{padding:0 8px;border-radius:0}.dhx_span-cell{position:relative;display:inline-block;height:100%;padding:0 8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:400;vertical-align:top;white-space:nowrap;border-left:1px solid #e4e4e4;overflow:hidden;position:absolute;display:block;height:auto;font-weight:500;border-top:1px solid #e4e4e4;border-bottom:none;z-index:10}.dhx_span-cell--title{color:rgba(0,0,0,.5)}.dhx_span-row .dhx_first-column-cell{border-left:none}.dhx_span-row .dhx_last-column-cell{border-right:1px solid #e4e4e4}.dhx_span-row:first-child .dhx_span-cell{border-top:none}.dhx_span-spans{position:absolute;top:0;left:0}.dhx_span-spans .dhx_span-cell{font-weight:400;color:rgba(0,0,0,.7);line-height:normal;text-align:left;white-space:normal;border-right:none;background:#fff}.dhx_span-spans .dhx_span-cell.dhx_span-first-row{border-top:none}.dhx_span-spans .dhx_span-cell.dhx_span-first-col{border-left:none}.dhx_span-spans .dhx_span-string-cell{text-align:left}.dhx_span-spans .dhx_span-number-cell{text-align:right}.dhx_grid{width:100%;height:100%;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:400;line-height:20px;overflow:hidden}.dhx_grid,.dhx_grid-content{position:relative;background:#fff}.dhx_grid-content{border:1px solid #dfdfdf}.dhx_grid-less-width .dhx_grid-cell:last-child,.dhx_grid-less-width .dhx_grid-footer-cell:last-child,.dhx_grid-less-width .dhx_grid-header-cell:last-child,.dhx_grid-less-width .dhx_grid_footer_cell:last-child,.dhx_grid-less-width .dhx_last-column-cell,.dhx_grid-less-width .dhx_span-last-col{border-right:1px solid #e4e4e4}.dhx_grid-less-height .dhx_footer-row:last-child .dhx_grid-footer-cell,.dhx_grid-less-height .dhx_grid-row:last-child{border-bottom:1px solid #e4e4e4}.dhx_grid-less-height .dhx_footer-row:first-child .dhx_grid-footer-cell{border-top:none}.dhx_grid-less-height .dhx_span-row:last-child .dhx_span-cell{border-bottom:1px solid #e4e4e4}.dhx_grid-less-height .dhx_span-row:first-child .dhx_span-cell{border-top:none}.dhx_grid-body{overflow:auto}.dhx_data-wrap,.dhx_grid-body{position:relative;width:100%;height:100%}.dhx_data-wrap{overflow:hidden}.dhx_menu-nav{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;margin:0;padding:0;width:100%;list-style:none;overflow-x:auto;background-color:#ededed}.dhx_menu-nav__item--separator{pointer-events:none;width:1px;background-color:#dfdfdf;margin-top:8px;margin-bottom:8px}.dhx_menu-nav__item--spacer{pointer-events:none;-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.dhx_nav-menu-button{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:8px 12px;font-weight:500;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);background-color:transparent;-webkit-transition:background-color .2s ease-in;transition:background-color .2s ease-in}.dhx_nav-menu-button--active:not(:disabled),.dhx_nav-menu-button:active:not(:disabled),.dhx_nav-menu-button:hover:not(:disabled){background-color:rgba(0,0,0,.07);-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.dhx_nav-menu-button--disabled,.dhx_nav-menu-button:disabled{opacity:.8;pointer-events:auto;cursor:default}.dhx_nav-menu-button--disabled *,.dhx_nav-menu-button:disabled *{color:rgba(0,0,0,.3)}.dhx_menu{padding:0;margin:0;background:#fff;list-style:none;border-radius:2px;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.3);box-shadow:0 2px 5px rgba(0,0,0,.3);overflow:hidden;z-index:999}.dhx_menu-item{min-width:180px}.dhx_menu-item--separator{pointer-events:none;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;height:1px;margin:2px 8px;background-color:#e4e4e4}.dhx_menu-item--spacer{pointer-events:none;height:16px}.dhx_menu-item--left-gap .dhx_menu-button{padding-left:38px}.dhx_menu-button{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:8px;text-align:left;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:400;line-height:20px;color:rgba(0,0,0,.7);background-color:transparent;-webkit-transition:background-color .2s ease-in;transition:background-color .2s ease-in}.dhx_menu-button--active:not(:disabled),.dhx_menu-button:active:not(:disabled),.dhx_menu-button:focus:not(:disabled),.dhx_menu-button:hover:not(:disabled){background-color:#ededed;-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.dhx_menu-button--disabled,.dhx_menu-button:disabled{opacity:.8;pointer-events:auto;cursor:default}.dhx_menu-button--disabled *,.dhx_menu-button:disabled *{color:rgba(0,0,0,.3)}.dhx_menu-button__icon{color:rgba(0,0,0,.5)}.dhx_widget .dhx_menu-button__icon{line-height:0}.dhx_widget .dhx_menu-button__icon:before{font-size:20px;line-height:20px}.dhx_menu-button__icon+.dhx_menu-button__text{margin-left:8px}.dhx_menu-button__block{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.dhx_menu-button__block--left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.dhx_menu-button__block--right{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.dhx_menu-button__count{margin-left:8px;margin-top:-2px;margin-bottom:-2px}.dhx_menu-button__hotkey{margin-left:8px;color:rgba(0,0,0,.3)}.dhx_menu-button__caret{margin-left:8px;color:rgba(0,0,0,.5)}.dhx_widget--fullscreen .dhx_menu{z-index:2147483647}.dhx_ribbon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:10px;list-style:none}.dhx_ribbon:focus{outline:none}.dhx_ribbon__item{margin:2px}.dhx_ribbon__item--auto,.dhx_ribbon__item--medium{min-width:68px;min-height:68px}.dhx_ribbon__item--auto,.dhx_ribbon__item--icon,.dhx_ribbon__item--medium,.dhx_ribbon__item--spacer{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.dhx_ribbon__item--separator{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;width:1px;margin:8px 4px;background-color:#dfdfdf}.dhx_ribbon-button__icon+.dhx_ribbon-button__text{margin-left:4px}.dhx_widget .dhx_ribbon-button__icon{line-height:0}.dhx_widget .dhx_ribbon-button__icon:before{font-size:20px;line-height:20px}.dhx_ribbon-button,.dhx_ribbon-button-image{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;width:100%;padding:6px 12px;-webkit-box-shadow:inset 0 0 0 1px #dfdfdf;box-shadow:inset 0 0 0 1px #dfdfdf;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;font-weight:400;color:rgba(0,0,0,.7);background-color:transparent;border-radius:2px;-webkit-transition:background-color .2s ease-in,-webkit-box-shadow .2s ease-in;transition:background-color .2s ease-in,-webkit-box-shadow .2s ease-in;transition:background-color .2s ease-in,box-shadow .2s ease-in;transition:background-color .2s ease-in,box-shadow .2s ease-in,-webkit-box-shadow .2s ease-in}.dhx_ribbon-button-image__icon,.dhx_ribbon-button__icon{color:rgba(0,0,0,.5);line-height:0}.dhx_ribbon-button-image__count,.dhx_ribbon-button__count{margin-left:8px;margin-top:-10px;margin-bottom:-10px}.dhx_ribbon-button--auto,.dhx_ribbon-button--medium,.dhx_ribbon-button-image--auto,.dhx_ribbon-button-image--medium{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;min-width:68px;min-height:68px;height:100%}.dhx_ribbon-button--auto .dhx_ribbon-button-image__count,.dhx_ribbon-button--auto .dhx_ribbon-button__count,.dhx_ribbon-button--medium .dhx_ribbon-button-image__count,.dhx_ribbon-button--medium .dhx_ribbon-button__count,.dhx_ribbon-button-image--auto .dhx_ribbon-button-image__count,.dhx_ribbon-button-image--auto .dhx_ribbon-button__count,.dhx_ribbon-button-image--medium .dhx_ribbon-button-image__count,.dhx_ribbon-button-image--medium .dhx_ribbon-button__count{margin-left:0;position:absolute;top:4px;right:4px}.dhx_ribbon-button--auto .dhx_ribbon-button__icon+.dhx_ribbon-button__text,.dhx_ribbon-button--medium .dhx_ribbon-button__icon+.dhx_ribbon-button__text,.dhx_ribbon-button-image--auto .dhx_ribbon-button__icon+.dhx_ribbon-button__text,.dhx_ribbon-button-image--medium .dhx_ribbon-button__icon+.dhx_ribbon-button__text{margin-left:0;margin-top:2px}.dhx_ribbon-button--icon,.dhx_ribbon-button-image--icon{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.dhx_ribbon-button--select,.dhx_ribbon-button-image--select{padding-right:8px}.dhx_ribbon-button--select .dhx_ribbon-button__text,.dhx_ribbon-button-image--select .dhx_ribbon-button__text{margin-right:8px}.dhx_ribbon-button-image:hover,.dhx_ribbon-button:hover{background-color:rgba(0,0,0,.07);-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.dhx_ribbon-button--active,.dhx_ribbon-button-image--active,.dhx_ribbon-button-image:active,.dhx_ribbon-button:active{background-color:#f2f9fd;-webkit-transition:background-color .2s ease-out,-webkit-box-shadow .2s ease-out;transition:background-color .2s ease-out,-webkit-box-shadow .2s ease-out;transition:background-color .2s ease-out,box-shadow .2s ease-out;transition:background-color .2s ease-out,box-shadow .2s ease-out,-webkit-box-shadow .2s ease-out;-webkit-box-shadow:inset 0 0 0 1px #b3dbf1;box-shadow:inset 0 0 0 1px #b3dbf1}.dhx_ribbon-button--disabled,.dhx_ribbon-button-image--disabled,.dhx_ribbon-button-image:disabled,.dhx_ribbon-button:disabled{opacity:.8;pointer-events:auto;cursor:default}.dhx_ribbon-button--disabled:hover,.dhx_ribbon-button-image--disabled:hover,.dhx_ribbon-button-image:disabled:hover,.dhx_ribbon-button:disabled:hover{background-color:transparent}.dhx_ribbon-button--disabled *,.dhx_ribbon-button-image--disabled *,.dhx_ribbon-button-image:disabled *,.dhx_ribbon-button:disabled *{color:rgba(0,0,0,.3)}.dhx_ribbon-button-image__text+.dhx_ribbon-button-image__image{margin-right:4px}.dhx_ribbon-button-image{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-flow:row-reverse;-ms-flex-flow:row-reverse;flex-flow:row-reverse;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.dhx_ribbon-button-image__count{-webkit-box-ordinal-group:0;-webkit-order:-1;-ms-flex-order:-1;order:-1}.dhx_ribbon-button-image__image{width:20px;height:20px;background-size:cover;background-position:50%;background-repeat:no-repeat}.dhx_ribbon-button-image--icon{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.dhx_ribbon-button-image__count{margin-left:8px}.dhx_ribbon-button-image--auto .dhx_ribbon-button__count,.dhx_ribbon-button-image--medium .dhx_ribbon-button__count{margin-left:0;position:absolute;top:4px;right:4px}.dhx_ribbon-button-image--auto,.dhx_ribbon-button-image--medium{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-flow:column-reverse;-ms-flex-flow:column-reverse;flex-flow:column-reverse;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;min-width:68px;min-height:68px;height:100%}.dhx_ribbon-button-image--auto .dhx_ribbon-button-image__image,.dhx_ribbon-button-image--medium .dhx_ribbon-button-image__image{margin-right:0;width:32px;height:32px}.dhx_ribbon-button-image__caret,.dhx_ribbon-button__caret{margin-left:auto;color:rgba(0,0,0,.5);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.dhx_ribbon-block{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;text-align:center}.dhx_ribbon-block--root{width:100%}.dhx_ribbon-block--title{position:relative;padding-bottom:20px}.dhx_ribbon-block--indented{margin-right:4px;margin-left:4px}.dhx_ribbon-block--indented:first-child{margin-left:0}.dhx_ribbon-block--indented:last-child{margin-right:0}.dhx_ribbon-block--col>.dhx_ribbon-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.dhx_ribbon-block--row>.dhx_ribbon-content{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.dhx_ribbon-block--row .dhx_ribbon-button--auto,.dhx_ribbon-block--row .dhx_ribbon-button-image--auto{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.dhx_ribbon-content{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;margin:0;padding:0;list-style:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.dhx_ribbon-content-label-wrapper{display:block;position:absolute;bottom:-6px;left:0;right:0;overflow:hidden}.dhx_ribbon-content-label{position:relative;display:inline;font-family:Roboto;font-style:normal;font-weight:400;font-size:14px;line-height:16px;text-align:center;color:rgba(0,0,0,.38)}.dhx_ribbon-content-label:after,.dhx_ribbon-content-label:before{content:"";position:absolute;top:50%;display:block;height:1px;background:rgba(0,0,0,.07);width:1000%}.dhx_ribbon-content-label:before{left:calc(100% + 4px)}.dhx_ribbon-content-label:after{right:calc(100% + 4px)}.dhx_sidebar{height:100%;position:relative;background-color:#fff;z-index:1}.dhx_sidebar:focus{outline:none}.dhx_sidebar__item--spacer{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.dhx_sidebar__item--separator{height:1px;width:100%;background-color:#dfdfdf;margin:2px 0}.dhx_sidebar--minimized .dhx_navbar-title{opacity:0;pointer-events:none}.dhx_sidebar--minimized .dhx_sidebar-button__icon{margin-left:auto;margin-right:auto}.dhx_sidebar--minimized .dhx_sidebar-button--select{padding-right:12px}.dhx_sidebar--minimized .dhx_sidebar-button__count{position:absolute;max-width:24px;overflow:hidden;top:-4px;right:4px}.dhx_sidebar--minimized .dhx_sidebar-button--select .dhx_sidebar-button__count{margin-right:0}.dhx_sidebar--minimized .dhx_sidebar-button__caret,.dhx_sidebar--minimized .dhx_sidebar-button__text{display:none}.dhx_sidebar-button__icon+.dhx_sidebar-button__text{margin-left:12px}.dhx_sidebar-button{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:12px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;font-weight:400;color:rgba(0,0,0,.7);background-color:transparent;-webkit-transition:background-color .2s ease-in;transition:background-color .2s ease-in}.dhx_sidebar-button--select{padding-right:8px}.dhx_sidebar-button--select .dhx_sidebar-button__count{margin-right:8px}.dhx_sidebar-button--icon{padding-right:12px}.dhx_sidebar-button:hover{background-color:rgba(0,0,0,.07)}.dhx_sidebar-button--active,.dhx_sidebar-button:active,.dhx_sidebar-button:hover{-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.dhx_sidebar-button--active,.dhx_sidebar-button:active{background-color:rgba(0,0,0,.15)}.dhx_sidebar-button--active{-webkit-box-shadow:inset 2px 0 0 0 #0288d1;box-shadow:inset 2px 0 0 0 #0288d1}.dhx_sidebar-button--disabled,.dhx_sidebar-button:disabled{opacity:.8;pointer-events:auto;cursor:default}.dhx_sidebar-button--disabled:hover,.dhx_sidebar-button:disabled:hover{background-color:transparent}.dhx_sidebar-button--disabled *,.dhx_sidebar-button:disabled *{color:rgba(0,0,0,.3)}.dhx_sidebar-button__icon{color:rgba(0,0,0,.5)}.dhx_widget .dhx_sidebar-button__icon{line-height:0}.dhx_widget .dhx_sidebar-button__icon:before{font-size:20px;line-height:20px}.dhx_sidebar-button__text{width:100%;text-align:left}.dhx_sidebar-button__count+.dhx_sidebar-button__caret{margin-left:0}.dhx_sidebar-button__count{min-width:24px;-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;width:auto;margin:-4px 0 -4px auto}.dhx_sidebar-button__caret{margin-right:0;margin-left:auto}.dhx_toolbar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:12px 0}.dhx_toolbar__item--spacer{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.dhx_toolbar__item--separator{width:1px;height:100%;background-color:#dfdfdf;margin:0 2px;height:28px}.dhx_toolbar__item:first-child .dhx_form-group,.dhx_toolbar__item:first-child .dhx_navbar-title,.dhx_toolbar__item:first-child button:not(.dhx_toolbar-button){margin-left:12px}.dhx_toolbar__item:first-child button.dhx_button--view_link,.dhx_toolbar__item:not(:first-child) .dhx_form-group,.dhx_toolbar__item:not(:first-child) .dhx_navbar-title,.dhx_toolbar__item:not(:first-child) button:not(.dhx_toolbar-button){margin-left:4px}.dhx_toolbar__item:last-child .dhx_form-group,.dhx_toolbar__item:last-child .dhx_navbar-title,.dhx_toolbar__item:last-child button:not(.dhx_toolbar-button){margin-right:12px}.dhx_toolbar__item:last-child button.dhx_button--view_link,.dhx_toolbar__item:not(:last-child) .dhx_form-group,.dhx_toolbar__item:not(:last-child) .dhx_navbar-title,.dhx_toolbar__item:not(:last-child) button:not(.dhx_toolbar-button){margin-right:4px}.dhx_toolbar .dhx_button__icon--menu{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.dhx_toolbar__input{height:32px}@supports (display:block){.dhx_toolbar__input{height:unset}}.dhx_toolbar__input .dhx_input{height:32px}@supports (display:block){.dhx_toolbar__input .dhx_input{height:unset}}.dhx_toolbar-button{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:6px 12px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;font-weight:500;color:rgba(0,0,0,.7);background-color:transparent;border-radius:2px;-webkit-transition:background-color .2s ease-in;transition:background-color .2s ease-in}.dhx_toolbar-button--select{padding-right:8px}.dhx_toolbar-button--icon{padding-right:12px}.dhx_toolbar-button--circle{border-radius:32px}.dhx_toolbar-button--circle.dhx_toolbar-button--icon{padding-left:6px;padding-right:6px}.dhx_toolbar-button:hover{background-color:rgba(0,0,0,.07)}.dhx_toolbar-button--active,.dhx_toolbar-button:active,.dhx_toolbar-button:hover{-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.dhx_toolbar-button--active,.dhx_toolbar-button:active{background-color:rgba(0,0,0,.15)}.dhx_toolbar-button--disabled,.dhx_toolbar-button:disabled{opacity:.8;pointer-events:auto;cursor:default}.dhx_toolbar-button--disabled:hover,.dhx_toolbar-button:disabled:hover{background-color:transparent}.dhx_toolbar-button--disabled *,.dhx_toolbar-button:disabled *{color:rgba(0,0,0,.3)}.dhx_toolbar-button__icon{color:rgba(0,0,0,.5)}.dhx_widget .dhx_toolbar-button__icon{line-height:0}.dhx_widget .dhx_toolbar-button__icon:before{font-size:20px;line-height:20px}.dhx_toolbar-button__icon+.dhx_toolbar-button__text{margin-left:8px}.dhx_toolbar-button__count{position:absolute;top:-10px;right:-10px}.dhx_toolbar-button__caret{margin-left:8px;color:rgba(0,0,0,.5);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.dhx_toolbar-button-image{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;position:relative;width:44px;height:44px;padding:0;margin-top:-8px;margin-bottom:-8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);border-radius:50%;-webkit-transition:opacity .2s ease-in;transition:opacity .2s ease-in}.dhx_toolbar-button-image:hover{opacity:.8;-webkit-transition:opacity .2s ease-out;transition:opacity .2s ease-out}.dhx_toolbar-button-image__image{position:absolute;border-radius:50%;top:0;left:0;right:0;bottom:0;background-size:cover;background-position:50%;background-repeat:no-repeat;z-index:1}.dhx_toolbar-button-image__text{text-align:center;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dhx_toolbar-button-image__count{position:absolute;top:-4px;right:-4px}.dhx_tabbar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;max-height:100%;height:100%;max-width:100%}.dhx_tabbar--top{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.dhx_tabbar--top .dhx_tabbar-header__wrapper:after{left:0;height:1px;width:100%;bottom:0}.dhx_tabbar--top .dhx_layout-cell{height:100%;overflow:auto;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.dhx_tabbar--top .dhx_tabbar-header{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.dhx_tabbar--top .dhx_tabbar-header-active{bottom:0}.dhx_tabbar--top .dhx_tabbar-tab{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.dhx_tabbar--top .dhx_tabbar-tab-button{text-align:center}.dhx_tabbar--bottom{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.dhx_tabbar--bottom .dhx_tabbar-header__wrapper:after{left:0;height:1px;width:100%;top:0}.dhx_tabbar--bottom .dhx_layout-cell{height:100%;overflow:auto;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.dhx_tabbar--bottom .dhx_tabbar-header{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.dhx_tabbar--bottom .dhx_tabbar-header-active{top:0}.dhx_tabbar--bottom .dhx_tabbar-tab{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.dhx_tabbar--bottom .dhx_tabbar-tab-button{text-align:center}.dhx_tabbar--left{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.dhx_tabbar--left .dhx_tabbar-header__wrapper:after{right:0;height:100%;width:1px;bottom:0}.dhx_tabbar--left .dhx_layout-cell{height:100%;overflow:auto;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.dhx_tabbar--left .dhx_tabbar-header{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.dhx_tabbar--left .dhx_tabbar-header-active{right:0}.dhx_tabbar--left .dhx_tabbar-tab{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.dhx_tabbar--left .dhx_tabbar-tab-button{text-align:right}.dhx_tabbar--right{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.dhx_tabbar--right .dhx_tabbar-header__wrapper:after{left:0;height:100%;width:1px;bottom:0}.dhx_tabbar--right .dhx_layout-cell{height:100%;overflow:auto;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.dhx_tabbar--right .dhx_tabbar-header{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.dhx_tabbar--right .dhx_tabbar-header-active{left:0}.dhx_tabbar--right .dhx_tabbar-tab{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.dhx_tabbar--right .dhx_tabbar-tab-button{text-align:left}.dhx_tabbar .dhx_layout-cell--content{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;overflow:auto}.dhx_tabbar-header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:0;padding:0;list-style:none}.dhx_tabbar-header__wrapper{position:relative;overflow:auto;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.dhx_tabbar-header__wrapper:after{content:"";display:block;position:absolute;background:#e4e4e4}.dhx_tabbar-header-active{position:absolute;-webkit-transition:-webkit-transform .1s ease-in-out;transition:-webkit-transform .1s ease-in-out;transition:transform .1s ease-in-out;transition:transform .1s ease-in-out,-webkit-transform .1s ease-in-out;background-color:#0288d1;z-index:1}.dhx_tabbar-tab{position:relative}.dhx_tabbar-tab__close{position:absolute;top:50%;right:8px;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:1;opacity:.7;color:#0288d1;cursor:pointer}.dhx_tabbar-tab__close:hover{opacity:1}.dhx_tabbar-tab__close:focus{outline:none}.dhx_tabbar-tab-button{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:500;line-height:20px;position:relative;padding:12px 24px;border-radius:0;color:#0288d1;text-transform:uppercase;background-color:transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-transition:background-color .2s ease-in;transition:background-color .2s ease-in}.dhx_tabbar-tab-button .dhx_button__text{opacity:.7}.dhx_tabbar-tab-button:active,.dhx_tabbar-tab-button:hover,.dhx_tabbar-tab-button:hover:active{background-color:#ededed;-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.dhx_tabbar-tab-button--active .dhx_button__text{opacity:1}.dhx_drag-ghost{position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_tree{list-style:none;margin:0;padding:0;position:relative;z-index:1}.dhx_tree--no-selection{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_tree--no-selection .dhx_tree-folder:hover:before,.dhx_tree--no-selection .dhx_tree-list-item:hover:before{-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out;background-color:transparent}.dhx_tree-list{list-style:none;margin:0;padding:0 0 0 20px}.dhx_tree-folder{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding-top:2px;padding-bottom:2px}.dhx_tree-folder .dhx_tree-list-item__content{padding-left:20px}.dhx_tree-folder .dhx_tree-toggle-button+.dhx_tree-list-item__content{padding-left:0}.dhx_tree-list-item{cursor:pointer;padding-top:2px;padding-bottom:2px;-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.dhx_tree-list-item,.dhx_tree-list-item__content{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.dhx_tree-list-item__content{padding-left:20px;position:relative}.dhx_tree-list-item__content:before{content:"";display:block;position:absolute;top:-1.5px;bottom:-1.5px;right:inherit;left:inherit;-webkit-transition:background-color .2s ease-in;transition:background-color .2s ease-in;z-index:-1}.dhx_tree-list-item__text{padding-left:4px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:normal;color:rgba(0,0,0,.7)}.dhx_tree-list-item__icon{color:rgba(0,0,0,.3);line-height:1;font-size:0}.dhx_tree-list-item__icon:before{font-size:20px;line-height:1}.dhx_tree-list-item--parent{display:block;padding-top:0;padding-bottom:0}.dhx_tree-list-item .dhx_widget .dhx_tree-list-item__icon{line-height:0}.dhx_tree-list-item .dhx_widget .dhx_tree-list-item__icon:before{font-size:20px;line-height:20px}.dhx_tree-folder,.dhx_tree-list-item{position:relative}.dhx_tree-folder:before,.dhx_tree-list-item:before{content:"";display:block;position:absolute;top:0;bottom:0;right:inherit;left:inherit;-webkit-transition:background-color .2s ease-in;transition:background-color .2s ease-in;z-index:-1}.dhx_tree-folder--focused:before,.dhx_tree-folder:hover:before,.dhx_tree-list-item--focused:before,.dhx_tree-list-item:hover:before{-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out;background-color:#ededed}.dhx_tree-folder--selected:before,.dhx_tree-list-item--selected:before{-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out;-webkit-box-shadow:inset 2px 0 0 0 #0288d1;box-shadow:inset 2px 0 0 0 #0288d1;background-color:#f7f7f7}.dhx_tree-toggle-button{cursor:pointer;color:rgba(0,0,0,.5)}.dhx_tree-toggle-button+.dhx_tree-list-item__content{margin-left:0}.dhx_tree-checkbox{padding-right:4px;color:#0288d1}.dhx_tree-checkbox.dxi-checkbox-blank-outline{color:rgba(0,0,0,.5)}.dhx_tree-input{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);padding-left:4px;padding-top:0;padding-bottom:0;margin:0;background-color:#f7f7f7;border:none}.dhx_tree-input:focus{outline:none}.dhx_tree-folder.dhx_tree-drop--top .dhx_tree-list-item__content:before{left:-20px;right:0;-webkit-box-shadow:0 -1px 0 0 #81c4e8;box-shadow:0 -1px 0 0 #81c4e8}.dhx_tree-folder.dhx_tree-drop--top:hover:before{background-color:transparent}.dhx_tree-folder.dhx_tree-drop--bottom .dhx_tree-list-item__content:before{left:-20px;right:0;-webkit-box-shadow:0 1px 0 0 #81c4e8;box-shadow:0 1px 0 0 #81c4e8}.dhx_tree-folder.dhx_tree-drop--bottom:hover:before{background-color:transparent}.dhx_tree-folder.dhx_tree-drop--in-folder .dhx_tree-list-item__content:before{left:-20px;right:0;-webkit-box-shadow:0 1px 0 0 #81c4e8,0 -1px 0 0 #81c4e8;box-shadow:0 1px 0 0 #81c4e8,0 -1px 0 0 #81c4e8}.dhx_tree-folder.dhx_tree-drop--in-folder:hover:before{background-color:transparent}.dhx_tree-list-item.dhx_tree-drop--top .dhx_tree-list-item__content:before{left:20px;right:0;-webkit-box-shadow:0 -1px 0 0 #81c4e8;box-shadow:0 -1px 0 0 #81c4e8}.dhx_tree-list-item.dhx_tree-drop--top:hover:before{background-color:transparent}.dhx_tree-list-item.dhx_tree-drop--bottom .dhx_tree-list-item__content:before{left:20px;right:0;-webkit-box-shadow:0 1px 0 0 #81c4e8;box-shadow:0 1px 0 0 #81c4e8}.dhx_tree-list-item.dhx_tree-drop--bottom:hover:before{background-color:transparent}.dhx_tree-list-item.dhx_tree-drop--in-folder .dhx_tree-list-item__content:before{left:20px;right:0;-webkit-box-shadow:0 1px 0 0 #81c4e8,0 -1px 0 0 #81c4e8;box-shadow:0 1px 0 0 #81c4e8,0 -1px 0 0 #81c4e8}.dhx_tree-list-item.dhx_tree-drop--in-folder:hover:before{background-color:transparent}.dhx_drag-ghost .dhx_tree-list-item__icon{position:relative;display:inline;vertical-align:middle;color:rgba(0,0,0,.3);font-size:20px;top:2px}.dhx_drag-ghost .dhx_tree-list-item__text{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;vertical-align:middle;line-height:20px;color:rgba(0,0,0,.7)}.dhx_window{border-radius:2px;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.3);box-shadow:0 2px 5px rgba(0,0,0,.3);will-change:transform;overflow:visible}.dhx_window--stop_selection{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_window__overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:2147483645}.dhx_window-header{margin-bottom:20px}.dhx_window-header--movable{cursor:all-scroll}.dhx_window-header:before{content:"";display:block;position:absolute;top:0;left:0;right:0;width:100%;height:16px;-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.dhx_window-header .dhx_navbar-title{margin-left:0!important;font-size:18px}.dhx_window-content{padding-left:28px;padding-right:28px;padding-bottom:28px}.dhx_window-content,.dhx_window-content-without-header{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:400;color:rgba(0,0,0,.5);line-height:1.3;overflow-y:auto;overflow-wrap:break-word;word-wrap:break-word}.dhx_window-content-without-header{padding:28px}.dhx_window-footer{margin-top:20px}.dhx_window__inner-html-content :first-child{margin-top:0}.dhx_window--no-scroll{width:100vw;height:100vh;overflow:hidden}.dhx_window .dhx_cell_content,.dhx_window .dhx_toolbar{width:100%}.dhx_window .dhx_toolbar__list{min-height:auto}.dhx_window .dhx_window-header .dhx_toolbar{padding:28px 28px 0}.dhx_window .dhx_window-footer .dhx_toolbar{padding:0 28px 28px}.dhx_window .dhx_cell_content{height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.dhx_window-resizer{position:absolute;background:transparent}.dhx_window-resizer--left{left:-6px;top:0;height:100%;width:12px}.dhx_window-resizer--left:hover{cursor:ew-resize}.dhx_window-resizer--right{right:-6px;top:0;height:100%;width:12px}.dhx_window-resizer--right:hover{cursor:ew-resize}.dhx_window-resizer--top{left:0;top:-6px;height:12px;width:100%}.dhx_window-resizer--top:hover{cursor:ns-resize}.dhx_window-resizer--bottom{left:0;bottom:-6px;height:12px;width:100%}.dhx_window-resizer--bottom:hover{cursor:ns-resize}.dhx_window-resizer--top_right{right:-6px;top:-6px;width:12px;height:12px}.dhx_window-resizer--top_right:hover{cursor:nesw-resize}.dhx_window-resizer--top_left{left:-6px;top:-6px;width:12px;height:12px}.dhx_window-resizer--top_left:hover{cursor:nwse-resize}.dhx_window-resizer--bottom_right{right:-6px;bottom:-6px;width:12px;height:12px}.dhx_window-resizer--bottom_right:hover{cursor:nwse-resize}.dhx_window-resizer--bottom_left{left:-6px;bottom:-6px;width:12px;height:12px}.dhx_window-resizer--bottom_left:hover{cursor:nesw-resize}.dhx_window-body-pointer--left,.dhx_window-body-pointer--right{cursor:ew-resize}.dhx_window-body-pointer--bottom,.dhx_window-body-pointer--top{cursor:ns-resize}.dhx_window-body-pointer--top_right{cursor:nesw-resize}.dhx_window-body-pointer--bottom_right,.dhx_window-body-pointer--top_left{cursor:nwse-resize}.dhx_window-body-pointer--bottom_left{cursor:nesw-resize}
+.dhx_checkbox__input,.dhx_radiobutton__input,.dhx_simplevault__input,.dhx_visually-hidden{position:absolute;overflow:hidden;clip:rect(0 0 0 0);height:1px;width:1px;margin:-1px;padding:0;border:0}.dhx_no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:-webkit-grab;cursor:grab}.dhx_no-select:not(.dhx_no-select--resize):not(.dhx_no-select--pointer) *{cursor:-webkit-grab!important;cursor:grab!important}.dhx_no-select--pointer{cursor:pointer}.dhx_no-select--pointer,.dhx_no-select--resize{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx-resize-observer{position:absolute;left:0;top:-100%;width:100%;height:100%;margin:1px 0 0;border:none;opacity:0;visibility:hidden;pointer-events:none}.dhx_widget,.dhx_widget *{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}.dhx_widget,.dhx_widget *,.dhx_widget:after,.dhx_widget :after,.dhx_widget:before,.dhx_widget :before{box-sizing:border-box}.dhx_widget * :not(output):-moz-ui-invalid,.dhx_widget :not(output):-moz-ui-invalid{box-shadow:none}body{margin:0}.dhx_widget{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:400;font-size:14px;line-height:20px;color:rgba(0,0,0,.7)}.dhx_widget--bordered{border:1px solid #e4e4e4}.dhx_widget--border_top{border-top:1px solid #e4e4e4}.dhx_widget--border_bottom{border-bottom:1px solid #e4e4e4}.dhx_widget--border_left{border-left:1px solid #e4e4e4}.dhx_widget--border_right{border-right:1px solid #e4e4e4}.dhx_widget--border-shadow{border:0;box-shadow:0 2px 4px rgba(0,0,0,.15)}.dhx_widget--no-border{border:0}.dhx_widget--no-border_top{border-top:0}.dhx_widget--no-border_bottom{border-bottom:0}.dhx_widget--no-border_left{border-left:0}.dhx_widget--no-border_right{border-right:0}.dhx_widget.dhx_widget--bg_white{background-color:#fff}.dhx_widget.dhx_widget--bg_gray{background-color:#f7f7f7}.dhx_drag-ghost{position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;z-index:999;opacity:.6}.dhx_drag-ghost *{box-sizing:border-box}.dhx_drag-ghost .dhx_list-item{list-style-type:none}.dhx_drag-ghost .dhx_list-item--selected{background-color:#fff;box-shadow:inset 0 0 0 0 #0288d1}.dhx_drag-ghost .dhx_list-item--focus,.dhx_drag-ghost .dhx_list-item--selected:hover,.dhx_drag-ghost .dhx_list-item:hover{background-color:#fff;transition:background-color .2s ease-out}.dhx_drag-ghost .dhx_tree-list-item__icon{position:relative;display:inline;vertical-align:middle;color:rgba(0,0,0,.3);font-size:20px;top:2px}.dhx_drag-ghost .dhx_tree-list-item__text{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;vertical-align:middle;line-height:20px;color:rgba(0,0,0,.7)}.dhx_drag-ghost .dhx_dataview-item,.dhx_drag-ghost .dhx_grid-cell,.dhx_drag-ghost .dhx_list-item{background-color:#fff;border:1px solid #e4e4e4!important}@font-face{font-family:Roboto;src:url(./fonts/roboto-regular-webfont.woff2) format("woff2"),url(./fonts/roboto-regular-webfont.woff) format("woff");font-weight:400;font-style:normal;font-display:fallback}@font-face{font-family:Roboto;src:url(./fonts/roboto-medium-webfont.woff2) format("woff2"),url(./fonts/roboto-medium-webfont.woff) format("woff");font-weight:500;font-style:normal;font-display:fallback}@font-face{font-family:Roboto;src:url(./fonts/roboto-bold-webfont.woff2) format("woff2"),url(./fonts/roboto-bold-webfont.woff) format("woff");font-weight:700;font-style:normal;font-display:fallback}@font-face{font-family:dhxicons;src:url(data:font/woff2;base64,d09GMgABAAAAABBwAAsAAAAALcwAABAhAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGVgCLegq5IK1aATYCJAOCVAuBLAAEIAWEFgeKMxuUJmUEbBwA8vj+FVG56cn+/zqBG0OkO7QugmZZNCWKp8TkfMv1U0e3/ftuaIO5BQMH4AbHKm7E4CDY/3SxiC452LWvY8z2HUpJwRjqZW1lQowK0UkHfi1dqarqReGhqgb/bdqssY9lA28JSYkTqThhK9RJWTxxXqxisuekIpKeOTlxeuLCnX+Z1Y8BdjoqQQPYHwA2ZvqEA9uhpvYp25QI2G/uK3H7EksflqCwh/iPeZxtbcfSgSIwU81CTCoaOpWe3u4/9RS5kugDARoC5bvnH557lW/4EYbitjybfiyY4GpL1CLO48uspNj/Wyuz24EOosRO2Ii46AgVHaGmqmt69lfNr56aZezdUM+EoHdD3RU+BJecA3aL0DkkhcID2nMn753Sp+WBjo2dUAZq8BhbdQNbpYiwqYhRKGjf9f9vDMCSd1k7nuqTsH/erV+J4obLywHcbwefb4vmgKyPRCIgS4vgs1mDgxLYCYIN+/NDg7syJI0u756fQ/MRqBKzwZwushuwOo/AXp394F84/FX0etrXKYdJeM2Y+KQyl6tK58p+DQZ4ApHEQkZYKWxUeezr1ygAQjCCYm//mkeQFM2wHC+Ikqyomm6Ylu24nh+EUZykWV5MZ/PFcrVWZ6ogQ0hYRFRMXEK9Bo2aNGvRqk0SBtPLszV0wAs3UJVQNapONcaMoSbVotpUh+pSPapPDaghNaLG1IQCKJCCKHi6P1RCgEIpjMIpgiIpiqIphmIpjuIpgRIpiZIphVIpjdIpgzIpi7Iph3Ipj/KpgAqpiIqphEqpjMqpgppSM2pOLagltaLW1IbaUjtqTx2oI3WiztSFulI36k49qCf1ot7Uh/pSP6ocGbil7/xgMMb8d/Hlsht+s/YNRnirwolfBbeu4XEIhSNlQgDAeo7IUCeHI1nMU8XBkSSsVMDLJIGsw6vsBQhsjjQTBEVJeJcCUS7yxR8SC5wEnHzC44JDRYRbx5KVOdfAijSTqNdZomHbqV2TnXG4l8MGp+bcmw7NRKomyCBTuH2EJ8b3JSJOpEeUzXPL660eil4Aefd43ldjEAV9lCG9TkuYI+0GlZdyIn4Ae0kJSbDwFz785UDIANPZnX58HD79jL+/jJ9/hQYJuHrq3wE32gPjpQduAr7aA+1/5q0pDTnWsSjXn/SY983z1SeV1jWIioKo1j+8D8X3HHrUKzc784J51WSE5SGAIS995NuUpWCzMTfNDdP0R/JUXP0spHlRLnKUzlPVkh3oV2Ae6J+kf52eY9/nGOgCISMhAWGVzjIb9K2NJVzvfL4Kgp8iQHitc+216wDspMOQp5xre226p11PGLG91nfeNqf61rvmUqyrgkKWf00O8een4eOP6dfn8cvvORzIIYZ0X3TnEBkOIrS3YqJT4KeYB2s6aTsdSVX2+Sqai4mUREnQzykjIWAMxN1XEX7ml2ONeUhTOYT0NfeJx7oEdcSJbG197Da0eZDraTIro69qvKU5und3FcdC+6oH0Bg9lrFTTZL/cvS+WnEh5rNfq5d/NLHQ3RYi4bK1Bnkp7U5/Iqv4P0J9b72eyjJJpRuvA6+WD1DHhjnpmExouWBehGeIbRAT/TSSMOjiIqKXoA7kltJI64QMfIqRFsB4nRHZuoI41p9VOWYgWPJ6Sn3DTxQYSElYMPXqAFEwDsL7mE4uVMdik3YSHdSaHRuUzSGJaEnZg6b+aDdFmzRom6P3dVwt55un2Vn5bACerT1aMq5cegNkVcJWog6np+x+6fMuD7tqdAa+FWspMFQw3lryI5Iba0UkaHybFee8z9N9YOxD3mZbnlnn4JBSXdNU/55ZSlSKec61+pKQvVaOWaWUG9aX77nGSHtdX/OuO1Ql4O5ZKZJuRe7GuecuI+2EinyID9uS6lNT6dbyaMxVx+oV9IK/ly6twmJndR/UvMO4W0qTlYJ9rZnGJDJ2N7v/9a41as5io5VxNSIII0rYZUpFqEyDL6mSfAqSKVVe46iAytF6jF9DzBkGUW6lQ0tUhdQHAZk/RJg5yOYFAyEvpyjqBXQOwMOeRHOZTVTMB5XIrdoH6rNBQR5BODHaaFL6bFVkYf57cWRk4JPvbUFfci/luRbdWUnYgRy+llJo+iFaa1RhDFqd0j5Ut9QXk6yLDpLZs4oVrHK4OzZY/0pQg+SKV0OsHI5J4y4Bs7PmSEMOwIOBn29ugtOL8JVT2uINwPgOUuPbhzMgbIlxSsw6JytrYCQzY3gLJOiJcSLdzZnc5k83GItF9ebA2BDjJA9K2JW/DRkVfCB1SXDcJSA85I+WOuC32T1G9FGudqpUq3hIQiEnW07rggc47tspiQFbjT/Vy69rJm1vm/p+ktW+TZTXLdet3Q1o34HC6QdjVmjRyQxMpSRBLSa8p3W8orkuk9QR19Zma82aZ5zjxVf7ujDaM/i8oU2zk9JSYteClQ5nT6W48io/DSjF419jm+7lNdGSWY/+TX/zkHwbqv//rXociufSfLWoiz4+Dcf9ZgQCg+qimz/pK7j+m2LNPqmB5+F4XbQO8RxfVRm1GFf7JCIruNTEUlvIb+LLPJDXe67zeXX0FVnIAiTL0AMjaCb9nTml6iNvB/k+XOfNBZYj43LrXG77XSIBD9lHFAzB/7OgLZhj7I9TiTa/MDPQnzfFlTr7+muW6Q/Mq3OF7Q1Zp5OZJrKVle6ssvT7Pmfkymf7Nvs+c9I7yCmtN3uxoLim3o2RHWi/OuvdloLi1i3ZLLOfg1uIXXxYJxiCh/i83iOhHWZhNu53rO7S7cRPkGiy31w9SgY5hMXSr+UBsX4gnIQpfuJfR92OQJ9EoEXXZM0w8owsi5XW5PezTtmZrcLPb3HNhZKTCTSuwOqsR2PW8Tu1E4n61Q7r5reMcHik9NrA950YvziTrN3hwQVpoWJBk7BJiR1VaG6dY3V9/epy56PgYTNnzu+FgLcWsaSen6+H2Ma3UMfYjtpAgMzw5jvkq6+Wb74Zv0hxIUO/DskvZY5mhRdLS80n0n3CitNPmGttX3rvNuUNlLpcuNJLvA+TKHmWEoqEY+Kywm2W0oGMQQeMTbwPA5vcBxrXGPSjPbC1RUn0zCAy6AxjAkW8VhAxZJhhEzrQYlftYyf7t0rvm1eTlaMFeadc5C+17LSFkagFRudLjTPS6HRV1Tw9tHMUlTSmiaRnCbNO7nyxwzqhKGHtUC1PtX5jG3iwXR3wYGNQzhklm1V0p6FypZpq3ATM9TAwmFJ5cWoYKGTK46VUl0pJzAlUpZjgJ/6MfHu37FE8FlM1Lcwnd9+OC2pFe1RzZ0iA4G+VEnpPuuzVDpqR+9C1cTEo2GxEFSwnZG9rPuPb6qo5QSV5NssJizjvcMhXy9JpuxwZYmTs0LhDiQww2KEbTjpsjxLnqxolEUHTq2rMVY4nidepD8XjfiY4QaanDzNlwGnH7d327tsdpwdoNHEJhRw3pk41qu7WDx82Bw/WmSRC77M/p97LoAmoGiiOF659K/Qf/qH6ENdCqYoKSHNCpQBG2VchLa0lQ1K+Vm1daPW97VO+oos9mDjXx1WMbCKljGsj1n2fQWmTH1smK+0QdKYLWKA8xrEve2yRfLcj7Tjl6EVG1zE26MCVxHhYBYeaWZuar1RiaKudggseQuigM95GSii5EEaeGiy8ztuV/2Y3OAJBDiOjNQgBvRCw8bfvHOMnf8ucmiZpd/MBeigx1O0mcDwibV7q1Wdn35celyfjnyPq3ZR6U+j+3xhio5MfkdGsiYcHXyjcka2pQbAy1E6IOIL0LGDBpaQ9VCMe09TVr62gK15bTTbd47xnE8WEfpkxBzn3DIEoocxw03ranL5gihSYjYIxPkKx5DV0JvopgoEnvcTrykJFRqpbCn2a8Nc0p2gpzRDj2dYLqkrsFrTJpSGSLDwyUuuNvawXl6FiapEeVOGhZ4iRq0XHwDQEaYkk2i5SQlV6ZWIfo04hhT4GR3pTxg3JUGWlEVsCAoF0JQ3KOKiYIj3AQV5KZmuqszu+mPe1eeIs/PfWQdNCL9EvEqZyfX66Z8Crzp+L5FNqdINkJ6q0QBnVyoscecJxZwFvMfMWywqReymxEnCN6nobHvYAUWKkjEG7wtYUpVHSgFQuZ1O04Cyg0zoIAMk/Ex0G7agL1DBMl2EcdCwpe14RxeQVkxHFAILotUtUB83ugnqLwe7JFS0YB+OuXUTYWRTOeK6ZjkYVGcbmLC/CsEtVjCZl+Mk70WwCh2E0Cvv/Wx0QF7EkNZ1oVS1qMEzKHJXdZhSd/ux2QjemeaLpiLUBA6yVYStaYcCP/iJxInNETtusqMco7JLpWBs6bRBQJWqo6kR1TIedpsTpWB9rWwaP70JdVhhE7gxwk6ZK/v+qnxmT7/5n1pj4L7GZ+3lfXHN8GyvB7P+FzuFxtohR57+jDrhM8p8BOZMDwPAZcOzxABSrDshBDcUr7eBy/x8/FuAhg9wtAQQOQ5zdz5JgQ4VlAcEQS8FQ+Ca2IR8zIIATreBAsfrN4mFHjyWAYn+CGoobwJJQiPssCyheshS046P3ZMMAbkhbHOYpCI+/0FfyunXYun/QMbU2r08vrz/EJxjqDbFpF8049W9mXdOp5OZD2EAkTVH5QrCnway8Pz93on/hpyB5KQ7zFITHX+greZV0++z9gyKR4KU3r08vEYxPwZG29YYYp10049S/mXWor04lNx/JTjUQyVEUcV9fCPY0JPDK+7Ol66KKp4Ixj9dLxGNnspqoQExckmQpf8FMlxLSZcgEQAhGUKz+xwiSohmW4wVRkhVV0w3Tsh3X84MwipM0y4vpbL5Yrtab7W5/OJ7Ol+vt/ni+3p/vr/z733uJnqDmQtJAOPCq8uOCEPkyYu9xVMyL57jVUlUnXbfG1UFIMjZHr84k+sV6GBBmF/TPtTJ3LXmeOalGieF3TPY6Q8xJdwiw93zhpMIuyg9vNhM62z9OUz/YzvLEWvYDSShCrAPs0ZIR2Yv1h3EPIggG14ligm6sxz6MYqMbRNN/YfO0vySyHEvB05YC90fi4zpyscUG1I/QTSxQf1hlcEI+TVQpBeomr8mz7XSJ4DAPoN1bcxG15fyUZ+4llYWDfcjierudUDwekALe2Ix82olmb85T6tkFcNjosZdqJ3pysA2Eu3to03BC+4KQqCtOQx7LMLd9lSwFGfKkJTzPjcWHxH0Oed9VDE6r0eNXWmY8200wmqYZbFCp/XC07agcoenh3Yuj6WSpX5FWzCQHsHpfxzUMalKOusrBkrAhD54OoNIHHG1XnyaOTaMkvd7qDIsjLmexaONG9l74Zh8YM3G/mX3PqVtsZ3DtouxKT2IH7JPY3Pddy3ZOXEfXynwdxdjkmqEpbBRwSLRbSMJU42v3xs2iqX4Drimi7KmYN3T3jhGE0LbH0d4oaqXKuTLfElqwqWZ2WakW5ztx6vtiiiwT9rzp8wc6tINxQkcCdnK3X05bqxzlonKXvNtlUYyasdcnX8m2p4Qf12uKh9deR3xXsCVPSws=) format("woff2"),url(data:font/woff;base64,d09GRgABAAAAABVQAAsAAAAALcwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADsAAABUIIslek9TLzIAAAFEAAAAPQAAAFY7OUfjY21hcAAAAYQAAAGmAAAF+k4i/5hnbHlmAAADLAAADQwAABygNR+hemhlYWQAABA4AAAALAAAADYUe2rHaGhlYQAAEGQAAAAWAAAAJADBALZobXR4AAAQfAAAABAAAAFUH4AAAGxvY2EAABCMAAAArAAAAKxBXUhUbWF4cAAAETgAAAAfAAAAIAF3AORuYW1lAAARWAAAASoAAAIWkIbJG3Bvc3QAABKEAAACywAABTORY6r+eJxjYGRgYOBiMGCwY2BycfMJYeDLSSzJY5BiYGGAAJA8MpsxJzM9kYEDxgPKsYBpDiBmg4gCACY7BUgAeJxjYGSIZ5zAwMrAwMDP4AwkeaG0HgMLgwQDAxMDKzMDVhCQ5prC4PCR8WMIQwKQywEmGRgYQQQA9OkGmwAAAHic7dTVbtxAAEbhk2TDTE0aZmZmpobT7EP3dVbqVW9Sn/3Vt6ilb4488tiWPDJQD9QVVgolqPlDDR6/i9ma6nwdLdX5Er+q15Scr5S/voqxxrE4L1XH2uLaUnHHBhpporlY10ob7XTQSRfd9NBLH/18Y4BBvjPEMCOMMsY4E0wyxTQzzDLHPAssssRy8fxV1lhng0222GaHXfbY54BDjjjmhFPOOOeCS6645oZb7rjngR888sQzL7zyxjsf/OSTcvGiDfw/2hxK/87Kfsuoft3awNaFu6RSChdW6sMdVGkIbGNgmwLbHNiWcGdVWgPbFr5dpT2wHYHtDGxXYLsD2xPY3sD2BbY/sN8COxDYwcB+D+xQYIcDOxLY0cCOBXY8sBOBnQzsVGCnAzsT2NnAzgV2PrALgV0M7FJglwO7Ev4NKquBXQvsemA3ArsZ2K3Abgd2J7C7gd0L7H5gDwJ7GNijwB4H9iSwp4E9C+x5YC8CexnYq8BeB/YmsLeBvQvsfWAfAvsjsI+BfQrsc2BfAvsa2LfAvgf2I7A/A/sZ2HJQ/gvgceDJAAB4nI1ZO3PsyHXuRqMfeA44BAa4e2d5RzNcYixSvLOc5+694uVKLInaZamoNdfFW7XrUilRoMSBEwVKHDhx4MSBEwVKHDiUQilVqtR/x9/pBmYwJHdLGKCBfp0+ffo8vu5hgtH1gJ9gmuWMrSfLeYGnHqc8P+IXl3xxzhcGlx/1o6g/oOSsmppF840EFDxL5x4/ww5ARS8nxXw5Wetirss1Pn/eN8O0f532Vd/c99Oh6Y8NvtPh077oVlP/d5xIgMDU9jq3FGLXa2pJMNa3ff8JP+r7AZuwM7Zkl+yf2a/Zv7Dfsn9j/8H+i/2e/Q/7I/szaI9VPrhYLU7KJx/1t1fpbZty4j5/yJvKZadkXW97rCmhTPnko/72knn7UTRfH/J8sCUVc849ziPP83zPS13uw73CT13uBy436nH7EXnC9/3IZXrys39wrXqulbf3OnKvc9fk1L0O3It7IOML4Zp8n4o8ntK3D3Zs7myv0NvLve7ZcXhERMCUzYCdH7lWK9cq23uN9qgP3cvdI2IGI4i+a8NY9S268FN2x96zX7HfsH9lv2P/zv6T/Tf7A/tf9if2F/ZX9jf2fx290E/X/Ns1Zf2k5Du67z7aBd0pyVPK36E/T4Z4yvy2zcYuGcmHrn671DaXtqtqCz9wueQ5pWhe45aYK2y67+nh6R7NI5d7s6ex0XOkLy1lP/MbPu2Kjl1u9pyijZ9Tkybn2PQHex2u91Ro+hzNpkPf5bznSDPnL79iX1t/+QqaA29Zwl8uJ3BV9nFm+4aTT1icDPN8ttn4ZmR8IaXYINnk2VlOHtVlKWG88YGfM0nes16X6/vZQGXfv0Z6cLr1kV+xHjskL70/isbQty0xJPc70maz2fpn8vOSfOaaBij3fPw0V+mRGu6c/DBXvVeq2nPzHT4kK1o6y0fcOFJbdhyhvDNb1sz3BtZJ8wUNXR/1+6qqLg8PkTb1l2gh7Si1Ll2Na9XUX7n6dxxs6PHT+hu0sPXwzdrVuFZsF/di9sKuo5OCk8j64ojnKR8j8l3ysgBzy1mQBkHapyTYySjpiyJripHc7ISVF5FMqo7cYyv3rsTLGqG2nO2oqUL1H3YkPkmqYhdb31saFXHaZU5DMoiwmOC6Q+lFmqr27lDMO8XtGtziF5GMd5Ru1WDQ3j/pfKO1aPrcswDr/yH6tcs+Ke0yEkM1FmSiCQBUUoyEnIUyMMq4O/dzP93kpAqzvC3EPfV9Y5q5En1tscDEEdLbUW5T23/hCN+h08KS2vL2C/ZJ4//ZerG6GORqfFI/+biSSuKu9l4zQakUe6+W7ieg3NJ1NBarpx/Pkhg9NxjrzFWwkDwJgI/1IGW+2WyyKhtm5riqhju7e7D2PyCLGeQ9rsav+cniHV9d6HJwAaF/lnveRzKRqeedevo89bSXHn6Z4/WRlJQ79S5SIdJD5lt632Bs8gev2GuiuVycTHRZkKxLRfpVv+JKH/H5BWlFSXqny9X6nE/GeL9OtOwrLYWSQSjzwAulrHpBkMifTmQoeRT6yBsTiLcJl1ooIbXyZBi8DDwTJwcCDTNkRWwi5IxVRyfrr9nPIeuCjfYis1V4p/wIcODrgniZSa1DrSWGlGFIiexV4OSIkrdUFepRU4Pk4iBJDuhpZfoVfsLKlHxZfTLucTKEYm5tarUYwnWXIRc80UodHx5LZRKeo7AIES6NkihTSidc7Pi/w0ol8CvDx55aT2oNdDsv13MNxLgZWd0V8kAbo6PIpoMHKa5s+SxN+308HwwGj2lnrLSy2ZEG0xM9L2B966qhWvmDQTY0cRRtSVZqkAxNFMV/Hz1Ad7DbpRfHBv279IIIJfFWRwlrJU9jlKZ9xXw7YTMb5rt5XuW7+d3Da1NsjZxF1PAiGu9qNotvzrLszCB0zgzbxpBvYJeFHe0EsWcF1Z1fDIpJAQmn/PYtDVCZoZDXwXXA/cyNLsV0NBaipfEArg+eRtVTPrVTt1yO7mxX9KQAJrd7Fseri8qEBfDozju+ucmm06xN7017fQeN4tEDGrOZe/6u/s/wAPFVbdqlIZo4+QtQ6Fl/jnUiZ1bb9JSXl3xJknBbklUKyORnMRIvHgg/0C+GKpDjGHjrGI/0lNDBJoh0Zz1/Ce+WWFtQ8FnWml9zsi6YmcpfcXJdq8Ut574Hv+i/OTzUxzKAKyNANvAuOFe+hMtU0eGhf6yCgksU49760M8xikc+FJG+1vP1vJzXJ2GQDAL/hQwGsxcvjjdxvOngjjurXwgsbps6X06DNBrhuYtHMW5q5Te68WUj38JpJHUgvKfntRXyejKd2SsL0zSk5wzeYWpMmk4pzG79/DVTkANorO2u1r02saniKSXDrKoyPE/a0yhLqLN9TU1cmTNKrpv2Wdd27vBFmuCiCZRnvnT2Ax0weZYfZ9nUYIZx/DZmbD8GDZpeQCcItAUFNPuGx91shjpSoYlNqKIY4TrSoxGF7dEI5R3bvwfPodUiimPwosur2MTZ6OoM6m81bud3vrbzO7A6CzbrTqcRdcpczzwDz3hs78fj2J6vedtldLXAOJkbp42Z92zMzq13K0iGcAuTcyDGI37J33Es5foSEW5QakJkOxB04SOEYc8dal95iispOI8T5JWvkYciRlF7f+EjiOXacOEr4UNrcxNr4yMjxp1mHZ2i85YM9rZsZN7FhY8jXTG3qKXHU8wT4d5a5NnegUzUQac6MDAj7gvfeNitB5XZ7BDgzQ6sbgINdyY9AikCLSUs9wl/33P8lfssdZlFLfHyLDxG9H9rFs/i47etnn/NfoZYT6iK8BM5nXULwxHfnQIPHY7KRdyL4AZ6sTjIzNThqEwHKkojFWjoSKNbdAZwxD5mP7QeAWua8nNv9Y7n5HAsUgJ+rs/5Ekt/5MErLSjS29Bfri7KI67rRX2yMPLH8jDyw9AILCz8kw79UHFPcCHy/eJEZoAIvvC08L6gbiFEb8LQB4/chw5RPy6M//JReaI0KEQSOIoQRItJ7iGRFWRCsLJ2GI80YMunytdg1IFAqlbtzFbE+CkY5Eql8iBS0vOwsH7ip962DLw0hT4/9YTHVaYSFR2Q+/Xg1EUqQqj6M6XCE40P/Rg6EtBp3diq5SWn7YcJ0jvj1LGdy5eYTYHVsPuWAgByTtupWk2aDUyL7050rBUXuco5EFus6Y6iXhje4yvUHBXgX8cpLCvsUc0OA1yzDY0Gs8V2e5PnbfkGNVSuSxRe78rfunLowTTPh7vyhg50BoXHVL7b7wqHaeAuHqGE6+nUbPe6cP3P7HNv2YI0k3rfbjZn27j7HiNKyGZuTz0BkNYUcpdNgKFAjIHUBHiGNvgEbnalCMmZya6kIHeXZULSAcUIGy6bwWtIQQhYx500KArZymRUgEq8Ovg3YIhTawrLpFsW/Nb/CFcHlTa9d72z3jW+AHd1b4xM17c+INrQntSefYBp2Ouee7gGj7jzztkx5bPjzrHC/j60Q+m2MhXuM0qqne+kWBXDOx3Z1vOy9Rt6uzjOayxOAJn85vBpNIo3UmezTN9nuTvMGeaVlhRCpd7iwGsrCdrhKA3oc1HCv32uUpMO/FBkgyA9XkmZJSKMTXq89ecUyyS4P0CkgRau1hOli9W6VuuTWg9KxKfUg0jKJVR+tS6upeKGHwZaydIGlrBvEq0TE0RRgIED2TMwVf8ltZCDfsyDNEsDbrykn3g23ve3a7fDfiUw1ogdsyk7g3Wu2Kfskv2I/YR94VChdkCnBTxWxYqLVQtmALUtKoGzX07yAbCDg322hGpdl7HCltRMpyNSK4rJTsVs1lRW194Y+dIQAMpcCyHfVpS9sS02hMen5gogvkLVDfXPzAaZysjn9wDLZg8QEwKuqnYLIJs1ew/9JRxR2GjVGueSTKYkyIRHW2jh4JA9Lzg2Q7oIYuB2O5G7EXQhg4pkQyq0+Eg2MeqhkfBLVnf3Gs4UaxAnMAfBFbU9AHHnYvcUt4RL6PogVGF7m2ZbgWQ77KhTv9Wtn3XGhjRa43cclCQZPLRLGtm9lUvoenhmhK3MHiCtFza+/4DOSbDS1m6WVkLuqaEzpDckv3rennAWc0cXa0a/G0t5muVWjvHUztVtLoaxvZyId7J8j9WNMJdXbGJluZUWgNdOpDTBJVl33TyfhjvhbHYzc+PjXnTqB1QZ28ReW1m+Z591ZLkTI41atIpOz8MzI9i5Wdea2euRz4DdYhVqeKIS/uNjk6h0kgbFgQj8wZWU6XFq4lAkWes7f2zPXtzJW7l+bY8oy1ki+32Z2LRMVL+vPrJp0+cb2PvUYkZ76AT/NCjh+VJOQQNB9Jw+6G8Cbf+VegPzndjVpD/09LwKwygQSb/n6RB74DSWhG19gCoPocEeowA8EvKOqvQw4hocR3GgjArhpExklElQj32E9UF+Y6u7/ed2f1Q2VhuTIk7xLEY37ovt71UaG9/b69J1Z9WL/T+inkPLeJxjYGRgYADiXLuVX+L5bb4ycDMkAEUYbtVNa0WmgaIgcQ4GJhAHADbCCgV4nGNgZGBgSGBgQCIZGVBBKAAczQF4AAB4nGNgAIKEUUxNDADOAB+BAAAAAAAkAEIAYAFmApgCxALUAvQDGAM8A0wDXANsA3wDsAPSA/4EGARIBGYEkgS+BNQE1AT8BUgFfgWoBdYF/gYmBkYGXgaABpwGvgbeBwAHLgdgB3gHjgeyB8oH5AgACCQIOghYCG4IuAkICT4JaAnIChoKLgpgCmwKeAqECpAKsAq8Cv4LHAtCC1YLhAugC9wMSAxeDJAMzgz4DTYNdA2eDboN1A4eDjoOUHicY2BkYGAIZbjBIMEAAkxAzAWEDAz/wXwGACiBAlwAeJxljUtuwjAURW/4tQWpRarUDutRB1QKnyELgDkDZh2ExIGgJI4cg2DWFXQJXUJXUXUFXRA36WMCtuR33vG1H4A+fuGhWh5u67NaDdyw++cm6UG4RX4WbqOHF+EO/UC4izdMhHt4xDt/8Fp3NH0Uwg3c40O4Sf8p3CJ/CbfxhG/hDv2PcBdL/An38OoNos0hCU1eLvR6lwb23J7rUtsyMbka+6Ozmutc28DpSK2OqtyvJ87FKrYmUzOTO52mRhXWbHXo/I1zxXQ4jMX7ockQYYMDEoQwyFFiAY01dkgRwF7dXvZLpi1rUvcKY/gYXaXmTOV1MoBjjZhc4cizxJ7TJrQOMfuYGYOMNKvfVumU29AU9d2WJqT3OaN6VWCKIXd8kffr6dkJPZVeqAAAeJx9U2l32zYQ1MQ6LIuSZct27jRn06ZFrjb31dxpczQ9nO8QuZLwBAIMCMpWfn0AHraVl0TviZwZYLGL2WXtUO37v20cwhLqaKCJFpbRxgo6CNBFD6voYw3rGGADm9jCYRzBURzDcZzASZzCDziNMziLcziPC/gRF/ETfsYl/IJfwXAZV3AV13Adv+F33MBN3MJt3MFd3MN9PMBDPMIfeIwneIpneI4XeIlX+BN/4TXe4C3e4W+8xz/4F//hf2zjQy3gkoxloTChpB43Ru+wUEvJk5SCgtJuwlW0PJSZYXo0qnvQC12cirhhVkd83ggnFE638udQ77Kh5GrKdGalULQvx9xMKSqTrX4hB47PjFYs0jtqj0ga2W5FjBhP7ErFsqQbSh3u5WnkLHDPlMocjZz0IpJkiY20oRmZZkFXI21TNtFGfNLKctnNuVu3wl1u2VchNY8aFCd23iTDUzItmpP3YMm9190/MjpJyLAZN4IruzISkpxfIclOCRNtbIFF7HGQ47LiniN2P7wz0jJyVCekmgUeuJpjbhmXYqxYSMptX1vQvEHrC0ruUqeUhu6YKsD1VRvmcspFxdKu7ZaKcE6IsErri2RpwkOhxlWSj5l2XubGri1IvuyNUkmtEVOyE6Oz8aRfiplyN/JHniiFyuyy8KG2VsffWCzufvTri1Yn/VGmQivcXJRuDiYkk3IOKsMHQhUH+H2ltjSled+BaRXoGxwcFFp+DpwDrZiPlRjN2zGpLB/TAvkWrOQot76Vwyxpx0JlqbvVbiNHLZXFZETYdD6FQnYS6VaL+uoetxIj/B3rhiIdGG25M7UY+dRNbOj7K4PUDVFV2BHLh+5yrotZrFh+3pD8lA8WFgzFekbBQW2zIP7zPhDW31eLmPaeUHfN01uZ8mPJYrf3wJfTmPFM2vZM0A4bGxGt5iilj5nrmeCyVvsMegyzYgA=) format("woff")}.dxi:before{font-family:dhxicons!important;font-style:normal;font-weight:400!important;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dxi.dxi-alert-circle:before{content:"\F101"}.dxi.dxi-arrow-collapse:before{content:"\F102"}.dxi.dxi-arrow-expand:before{content:"\F103"}.dxi.dxi-blur-off:before{content:"\F104"}.dxi.dxi-blur:before{content:"\F105"}.dxi.dxi-calendar-today:before{content:"\F106"}.dxi.dxi-check:before{content:"\F107"}.dxi.dxi-checkbox-blank-outline:before{content:"\F108"}.dxi.dxi-checkbox-marked-circle:before{content:"\F109"}.dxi.dxi-checkbox-marked:before{content:"\F10A"}.dxi.dxi-chevron-down:before{content:"\F10B"}.dxi.dxi-chevron-left:before{content:"\F10C"}.dxi.dxi-chevron-right:before{content:"\F10D"}.dxi.dxi-chevron-up:before{content:"\F10E"}.dxi.dxi-clock-outline:before{content:"\F10F"}.dxi.dxi-clock:before{content:"\F110"}.dxi.dxi-close-circle:before{content:"\F111"}.dxi.dxi-close:before{content:"\F112"}.dxi.dxi-delete-forever:before{content:"\F113"}.dxi.dxi-delete:before{content:"\F114"}.dxi.dxi-dots-horizontal:before{content:"\F115"}.dxi.dxi-dots-vertical:before{content:"\F116"}.dxi.dxi-download:before{content:"\F117"}.dxi.dxi-empty:before{content:"\F118"}.dxi.dxi-eraser:before{content:"\F119"}.dxi.dxi-eye-off:before{content:"\F11A"}.dxi.dxi-eye:before{content:"\F11B"}.dxi.dxi-eyedropper-variant:before{content:"\F11C"}.dxi.dxi-file-excel:before{content:"\F11D"}.dxi.dxi-file-export:before{content:"\F11E"}.dxi.dxi-file-import:before{content:"\F11F"}.dxi.dxi-file-outline:before{content:"\F120"}.dxi.dxi-filter-variant:before{content:"\F121"}.dxi.dxi-folder-open:before{content:"\F122"}.dxi.dxi-folder:before{content:"\F123"}.dxi.dxi-format-align-center:before{content:"\F124"}.dxi.dxi-format-align-left:before{content:"\F125"}.dxi.dxi-format-align-right:before{content:"\F126"}.dxi.dxi-format-bold:before{content:"\F127"}.dxi.dxi-format-color-fill:before{content:"\F128"}.dxi.dxi-format-color-text:before{content:"\F129"}.dxi.dxi-format-italic:before{content:"\F12A"}.dxi.dxi-format-line-spacing:before{content:"\F12B"}.dxi.dxi-format-quote-close:before{content:"\F12C"}.dxi.dxi-format-quote-open:before{content:"\F12D"}.dxi.dxi-format-strikethrough:before{content:"\F12E"}.dxi.dxi-format-underline:before{content:"\F12F"}.dxi.dxi-format-vertical-align-bottom:before{content:"\F130"}.dxi.dxi-format-vertical-align-center:before{content:"\F131"}.dxi.dxi-format-vertical-align-top:before{content:"\F132"}.dxi.dxi-function-variant:before{content:"\F133"}.dxi.dxi-help-circle-outline:before{content:"\F134"}.dxi.dxi-information-outline:before{content:"\F135"}.dxi.dxi-key:before{content:"\F136"}.dxi.dxi-link-variant-off:before{content:"\F137"}.dxi.dxi-link-variant:before{content:"\F138"}.dxi.dxi-loading:before{content:"\F139"}.dxi.dxi-magnify:before{content:"\F13A"}.dxi.dxi-menu-down:before{content:"\F13B"}.dxi.dxi-menu-left:before{content:"\F13C"}.dxi.dxi-menu-right:before{content:"\F13D"}.dxi.dxi-menu-up:before{content:"\F13E"}.dxi.dxi-minus-box:before{content:"\F13F"}.dxi.dxi-minus:before{content:"\F140"}.dxi.dxi-numeric:before{content:"\F141"}.dxi.dxi-pencil:before{content:"\F142"}.dxi.dxi-plus-circle:before{content:"\F143"}.dxi.dxi-plus:before{content:"\F144"}.dxi.dxi-printer:before{content:"\F145"}.dxi.dxi-redo:before{content:"\F146"}.dxi.dxi-rotate-right:before{content:"\F147"}.dxi.dxi-select-all:before{content:"\F148"}.dxi.dxi-sort-variant:before{content:"\F149"}.dxi.dxi-table-column-plus-before:before{content:"\F14A"}.dxi.dxi-table-column-remove:before{content:"\F14B"}.dxi.dxi-table-column:before{content:"\F14C"}.dxi.dxi-table-row-plus-before:before{content:"\F14D"}.dxi.dxi-table-row-remove:before{content:"\F14E"}.dxi.dxi-table-row:before{content:"\F14F"}.dxi.dxi-undo:before{content:"\F150"}.dxi.dxi-unfold-more-horizontal:before{content:"\F151"}.dxi.dxi-vault:before{content:"\F152"}.dxi.dxi-view-grid:before{content:"\F153"}.dxi.dxi-view-sequential:before{content:"\F154"}.dxi{display:inline-block;text-rendering:auto;line-height:0;font-size:0}.dxi:before{font-size:20px}.dxi--small:before{font-size:16px}.dxi--medium:before{font-size:20px}.dxi--large:before{font-size:24px}@-webkit-keyframes button-loading{0%{transform:rotate(0deg);transform-origin:center center}to{transform:rotate(1439deg);transform-origin:center center}}@keyframes button-loading{0%{transform:rotate(0deg);transform-origin:center center}to{transform:rotate(1439deg);transform-origin:center center}}.dhx_button{overflow:visible;position:relative;text-decoration:none;background-image:none;border:0;touch-action:manipulation;-webkit-appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;cursor:pointer}.dhx_button:active,.dhx_button:focus{outline:none}.dhx_button__icon,.dhx_button__text{pointer-events:none}.dhx_button__icon{line-height:0}.dhx_button__icon:before{display:inline-block}.dhx_button__icon+.dhx_button__text{margin-left:4px}.dhx_button__loading{display:none;position:absolute;left:0;top:0;right:0;bottom:0;justify-content:center;align-items:center}.dhx_button__loading-icon{-webkit-animation:button-loading .9s linear infinite;animation:button-loading .9s linear infinite}.dhx_button--width_full{width:100%}.dhx_button--justify_between{justify-content:space-between}.dhx_button--circle.dhx_button--size_small{border-radius:28px}.dhx_button--circle.dhx_button--size_medium{border-radius:32px}.dhx_button--disabled,.dhx_button:disabled{pointer-events:none}.dhx_button--icon.dhx_button--circle:not(.dhx_button--width_full){border-radius:50%}.dhx_button--icon.dhx_button--circle:not(.dhx_button--width_full).dhx_button--size_medium{padding-left:6px;padding-right:6px}.dhx_button--icon.dhx_button--circle:not(.dhx_button--width_full).dhx_button--size_small{padding-left:4px;padding-right:4px}.dhx_button--loading{position:relative}.dhx_button--loading .dhx_button__loading{display:flex}.dhx_button--loading .dhx_button__icon,.dhx_button--loading .dhx_button__text{visibility:hidden}.dhx_button--size_small{padding:4px 12px;font-size:14px;line-height:20px}.dhx_button--size_small .dhx_button__icon:before{font-size:16px;line-height:16px}.dhx_button--size_small.dhx_button--loading-icon:before{font-size:16px;margin-top:-8px;margin-left:-8px}.dhx_button--size_medium{padding:6px 16px;text-transform:uppercase;line-height:20px}.dhx_button--size_medium .dhx_button__icon:before{font-size:20px;line-height:20px}.dhx_button--size_medium.dhx_button--loading-icon:before{font-size:20px;margin-top:-10px;margin-left:-10px}.dhx_button--view_flat{display:flex;justify-content:center;align-items:center;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:500;line-height:20px;text-align:center;color:#fff;transition:background-color .2s ease-in,color .2s ease-in,box-shadow .2s ease-in}.dhx_button--view_flat:focus,.dhx_button--view_flat:hover{transition:background-color .2s ease-out,color .2s ease-out,box-shadow .2s ease-out}.dhx_button--view_flat.dhx_button--color_primary{background-color:#0288d1;outline-width:0}.dhx_button--view_flat.dhx_button--color_primary.dhx_button--active,.dhx_button--view_flat.dhx_button--color_primary:focus,.dhx_button--view_flat.dhx_button--color_primary:hover{background-color:#35a0da}.dhx_button--view_flat.dhx_button--color_primary:active{background-color:#0288d1;box-shadow:none}.dhx_button--view_flat.dhx_button--color_primary.dhx_button--disabled,.dhx_button--view_flat.dhx_button--color_primary:disabled{background-color:#81c4e8}.dhx_button--view_flat.dhx_button--color_secondary{background-color:#4d4d4d;outline-width:0}.dhx_button--view_flat.dhx_button--color_secondary.dhx_button--active,.dhx_button--view_flat.dhx_button--color_secondary:focus,.dhx_button--view_flat.dhx_button--color_secondary:hover{background-color:#717171}.dhx_button--view_flat.dhx_button--color_secondary:active{background-color:#4d4d4d;box-shadow:none}.dhx_button--view_flat.dhx_button--color_secondary.dhx_button--disabled,.dhx_button--view_flat.dhx_button--color_secondary:disabled{background-color:#a6a6a6}.dhx_button--view_flat.dhx_button--color_danger{background-color:#ff5252;outline-width:0}.dhx_button--view_flat.dhx_button--color_danger.dhx_button--active,.dhx_button--view_flat.dhx_button--color_danger:focus,.dhx_button--view_flat.dhx_button--color_danger:hover{background-color:#ff7575}.dhx_button--view_flat.dhx_button--color_danger:active{background-color:#ff5252;box-shadow:none}.dhx_button--view_flat.dhx_button--color_danger.dhx_button--disabled,.dhx_button--view_flat.dhx_button--color_danger:disabled{background-color:#ffa9a9}.dhx_button--view_flat.dhx_button--color_success{background-color:#0ab169;outline-width:0}.dhx_button--view_flat.dhx_button--color_success.dhx_button--active,.dhx_button--view_flat.dhx_button--color_success:focus,.dhx_button--view_flat.dhx_button--color_success:hover{background-color:#3bc187}.dhx_button--view_flat.dhx_button--color_success:active{background-color:#0ab169;box-shadow:none}.dhx_button--view_flat.dhx_button--color_success.dhx_button--disabled,.dhx_button--view_flat.dhx_button--color_success:disabled{background-color:#85d8b4}.dhx_button--view_link{display:flex;justify-content:center;align-items:center;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:500;line-height:20px;text-align:center;border-radius:2px;background:transparent;transition:background-color .2s ease-in,box-shadow .2s ease-in}.dhx_button--view_link:focus,.dhx_button--view_link:hover{transition:background-color .2s ease-out,box-shadow .2s ease-out}.dhx_button--view_link.dhx_button--color_primary{color:#0288d1;outline-width:0}.dhx_button--view_link.dhx_button--color_primary:focus,.dhx_button--view_link.dhx_button--color_primary:hover{background-color:#d9edf8}.dhx_button--view_link.dhx_button--color_primary.dhx_button--active,.dhx_button--view_link.dhx_button--color_primary:active{background-color:#b8def2}.dhx_button--view_link.dhx_button--color_primary.dhx_button--disabled,.dhx_button--view_link.dhx_button--color_primary:disabled{color:#81c4e8}.dhx_button--view_link.dhx_button--color_secondary{color:#4d4d4d;outline-width:0}.dhx_button--view_link.dhx_button--color_secondary:focus,.dhx_button--view_link.dhx_button--color_secondary:hover{background-color:#e4e4e4}.dhx_button--view_link.dhx_button--color_secondary.dhx_button--active,.dhx_button--view_link.dhx_button--color_secondary:active{background-color:#cdcdcd}.dhx_button--view_link.dhx_button--color_secondary.dhx_button--disabled,.dhx_button--view_link.dhx_button--color_secondary:disabled{color:#a6a6a6}.dhx_button--view_link.dhx_button--color_danger{color:#ff5252;outline-width:0}.dhx_button--view_link.dhx_button--color_danger:focus,.dhx_button--view_link.dhx_button--color_danger:hover{background-color:#ffe5e5}.dhx_button--view_link.dhx_button--color_danger.dhx_button--active,.dhx_button--view_link.dhx_button--color_danger:active{background-color:#ffcfcf}.dhx_button--view_link.dhx_button--color_danger.dhx_button--disabled,.dhx_button--view_link.dhx_button--color_danger:disabled{color:#ffa9a9}.dhx_button--view_link.dhx_button--color_success{color:#0ab169;outline-width:0}.dhx_button--view_link.dhx_button--color_success:focus,.dhx_button--view_link.dhx_button--color_success:hover{background-color:#daf3e9}.dhx_button--view_link.dhx_button--color_success.dhx_button--active,.dhx_button--view_link.dhx_button--color_success:active{background-color:#bae9d5}.dhx_button--view_link.dhx_button--color_success.dhx_button--disabled,.dhx_button--view_link.dhx_button--color_success:disabled{color:#85d8b4}.dhx_button--sidebar .dhx_button__icon+.dhx_button__text{margin-left:8px;margin-right:auto}.dhx_widget .dhx_button__icon{line-height:0}.dhx_widget .dhx_button__icon:before{font-size:20px;line-height:20px}.dhx_widget .dhx_button--size_small .dhx_button__icon:before{font-size:16px;line-height:16px}.dhx_form-group{position:relative;display:block;text-align:left;padding-bottom:16px}.dhx_form-group--simplevault{line-height:0;height:100%}.dhx_form-group--simplevault .dhx_label{margin-bottom:4px}.dhx_form-group--textarea{display:flex;flex-direction:column;height:100%}.dhx_form-group--textarea .dhx_input--textarea,.dhx_form-group--textarea .dhx_input__wrapper{height:100%}.dhx_form-group--textarea .dhx_label{min-height:20px;line-height:20px;margin-bottom:4px}.dhx_form-group--inline{display:flex;flex-direction:row;width:100%;align-items:center;position:relative}.dhx_form-group--inline .dhx_label{position:relative;flex:0 1 auto;max-height:40px;margin-right:16px;margin-bottom:0;text-align:right;width:100%;margin-top:6px;align-self:flex-start}.dhx_form-group--inline .dhx_input__wrapper{flex:0 1 auto;width:300%;height:100%}.dhx_form-group--inline .dhx_label--with-help{justify-content:flex-end}.dhx_form-group--required:not(.dhx_form-group--label_sr) .dhx_label:not(.dhx_label--with-help){position:relative;margin-bottom:0}.dhx_form-group--required:not(.dhx_form-group--label_sr) .dhx_label:not(.dhx_label--with-help):after{content:"*";display:inline-block;padding-left:4px;color:rgba(0,0,0,.3)}.dhx_form-group--required:not(.dhx_form-group--label_sr) .dhx_label__holder{position:relative;max-width:100%;overflow:hidden;text-overflow:ellipsis}.dhx_form-group--required:not(.dhx_form-group--label_sr) .dhx_label__holder:after{content:"*";display:inline-block;padding-left:4px;color:rgba(0,0,0,.3)}.dhx_form-group--no-message-holder{padding-bottom:0}.dhx_form-group--disabled{opacity:.6;pointer-events:none;cursor:default}.dhx_form-group--hidden{display:none}.dhx_form-group--state_error .dhx_input__caption,.dhx_form-group--state_error .dhx_label{color:#ff5252}.dhx_form-group--state_error .dhx_combobox-input-box,.dhx_form-group--state_error .dhx_combobox-input-box:focus,.dhx_form-group--state_error .dhx_input,.dhx_form-group--state_error .dhx_input:focus{box-shadow:inset 0 0 0 1px #ffbaba}.dhx_form-group--state_error .dhx_simplevault-files,.dhx_form-group--state_error .dhx_simplevault-files:focus,.dhx_form-group--state_error .dhx_simplevault__drop-area,.dhx_form-group--state_error .dhx_simplevault__drop-area:focus{border-color:#ffbaba}.dhx_form-group--state_success .dhx_input__caption,.dhx_form-group--state_success .dhx_label{color:#0ab169}.dhx_form-group--state_success .dhx_combobox-input-box,.dhx_form-group--state_success .dhx_combobox-input-box:focus,.dhx_form-group--state_success .dhx_input,.dhx_form-group--state_success .dhx_input:focus{box-shadow:inset 0 0 0 1px #9de0c3}.dhx_form-group--state_success .dhx_simplevault__drop-area,.dhx_form-group--state_success .dhx_simplevault__drop-area:focus{border-top-color:#9de0c3;border-left-color:#9de0c3;border-right-color:#9de0c3}.dhx_form-group--state_success .dhx_simplevault-files,.dhx_form-group--state_success .dhx_simplevault-files:focus{border-right-color:#9de0c3;border-left-color:#9de0c3;border-bottom-color:#9de0c3}.dhx_form-group--label_sr .dhx_label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dhx_form-group .dhx_combobox{margin:0}.dhx_form-group .dhx_slider{padding-bottom:0}.dhx_input{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;height:auto;padding:6px 8px;margin:0;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);background-color:#f6f6f6;background-clip:padding-box;box-shadow:inset 0 0 0 1px #dfdfdf;border:0;border-radius:2px;outline:0;transition:border-color .2s ease-in,box-shadow .2s ease-in}.dhx_input::-webkit-input-placeholder{color:rgba(0,0,0,.5)}.dhx_input::-moz-placeholder{color:rgba(0,0,0,.5)}.dhx_input:-ms-input-placeholder{color:rgba(0,0,0,.5)}.dhx_input::-ms-input-placeholder{color:rgba(0,0,0,.5)}.dhx_input::placeholder{color:rgba(0,0,0,.5)}.dhx_input:focus{box-shadow:inset 0 0 0 1px #67b8e3}.dhx_input--icon-padding{padding-right:24px}.dhx_input--textarea{max-width:100%}.dhx_input--textinput{box-shadow:none;background:none;padding-left:0}.dhx_input--textinput:focus{box-shadow:none}.dhx_input__wrapper{width:100%;display:flex;flex-direction:column;position:relative}.dhx_input__wrapper:before{color:rgba(0,0,0,.5);pointer-events:none;position:absolute;right:4px;top:50%;transform:translateY(-50%)}.dhx_input__container{width:100%;display:inline-block;position:relative}.dhx_input__caption{left:0;bottom:0;max-width:100%;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:12px;font-weight:400;line-height:16px;color:rgba(0,0,0,.5);white-space:wrap;overflow-x:hidden;text-overflow:ellipsis;cursor:default}.dhx_input__icon{position:absolute;top:50%;transform:translateY(-50%);right:4px;z-index:1;color:rgba(0,0,0,.5);pointer-events:none}.dhx_input__icon--color-selected{border-radius:2px}.dhx_input__icon--color-selected:after,.dhx_input__icon--color-selected:before{opacity:0}.dhx_widget .dhx_input__icon{line-height:0}.dhx_widget .dhx_input__icon:before{font-size:20px;line-height:20px}.dhx_label{display:inline-block;width:auto;flex:0 1 auto;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:500;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis;cursor:pointer;transition:color .2s ease-in,opacity .2s ease-in}.dhx_label:hover{opacity:.8;transition:color .2s ease-out,opacity .2s ease-out}.dhx_label__holder{max-width:100%;overflow:hidden;text-overflow:ellipsis}.dhx_label--with-help{display:flex;align-items:center}.dhx_label-help{margin-left:4px;color:#0288d1;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.dhx_label-help:focus{outline:none}.dhx_checkbox{position:relative;display:inline-block;width:auto;padding-top:0;cursor:pointer}.dhx_checkbox__visual-input{display:block;border:2px solid rgba(0,0,0,.5);min-width:20px;min-height:20px;max-width:20px;max-height:20px;background-color:#fff;border-radius:2px;cursor:pointer}.dhx_checkbox .dhx_label{margin-top:4px;margin-bottom:0;width:auto}.dhx_checkbox .dhx_label:after{display:none}.dhx_checkbox .dhx_input__caption{position:static;display:block;transform:none}.dhx_checkbox.dhx_form-group--inline{display:flex;align-items:center;white-space:nowrap}.dhx_checkbox.dhx_form-group--inline .dhx_label{padding-left:6px;margin-top:0}.dhx_checkbox.dhx_form-group--hidden{display:none}.dhx_checkbox__input:disabled+*+.dhx_label,.dhx_checkbox__input:disabled+.dhx_checkbox__visual-input{opacity:.6}.dhx_checkbox__input:focus+.dhx_checkbox__visual-input{border-color:#0288d1}.dhx_checkbox__input:checked+.dhx_checkbox__visual-input{background-color:#0288d1;background-position:50%;background-size:cover;border-color:#0288d1;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTIxIDdMOSAxOWwtNS41LTUuNSAxLjQxLTEuNDFMOSAxNi4xNyAxOS41OSA1LjU5IDIxIDd6Ii8+PC9zdmc+);transition:background-color .2s ease-out}.dhx_radiobutton{position:relative;display:inline-block;width:auto;padding-top:0;cursor:pointer}.dhx_radiobutton__visual-input{display:block;border:2px solid rgba(0,0,0,.5);bottom:4px;left:0;min-width:20px;min-height:20px;max-width:20px;max-height:20px;background-color:#fff;border-radius:50%}.dhx_radiobutton .dhx_label{margin-top:4px;margin-bottom:0;width:auto;cursor:pointer}.dhx_radiobutton .dhx_input__caption{position:static;display:block}.dhx_radiobutton.dhx_form-group--inline{white-space:nowrap;display:flex;align-items:center}.dhx_radiobutton.dhx_form-group--inline .dhx_label{padding-left:6px;margin-top:0;padding-top:2px;padding-bottom:2px}.dhx_radiobutton__input:disabled+*+.dhx_label,.dhx_radiobutton__input:disabled+.dhx_radiobutton__visual-input{opacity:.6}.dhx_radiobutton__input:focus+.dhx_radiobutton__visual-input{border-color:#0288d1}.dhx_radiobutton__input:checked+.dhx_radiobutton__visual-input{background-color:#0288d1;border-color:#0288d1;box-shadow:inset 0 0 0 4px #fff;transition:background-color .2s ease-out}.dhx_select{-webkit-appearance:none;-moz-appearance:none;appearance:none}.dhx_select::-ms-expand{display:none}.dhx_select__placeholder{position:absolute;left:8px;top:50%;transform:translateY(-50%);pointer-events:none;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7)}.dhx_select:focus+.dhx_select__placeholder{opacity:0}.dhx_simplevault{border:none;border-radius:2px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;line-height:20px;font-size:14px;font-weight:400;text-align:center;overflow:hidden;position:relative}.dhx_simplevault__drop-area{background-color:#f6f6f6;border:1px solid #dfdfdf;transition:all .2s ease-in;display:flex;height:115px;width:100%;flex-direction:column;justify-content:center;align-items:center;padding:0 20px}.dhx_simplevault__drop-area--on-drag{border-style:dashed;transition:border .2s ease-out}.dhx_simplevault__icon:before{font-size:40px;color:rgba(0,0,0,.3);transition:color .2s ease-in}.dhx_simplevault__title{max-width:100%}.dhx_simplevault__label{color:#0288d1;cursor:pointer}.dhx_simplevault--on-drag .dhx_simplevault-loader{opacity:1;transform:translateY(0);transition:opacity .2s ease-in,transform .2s ease-in}.dhx_simplevault-files{background-color:#f6f6f6;border:1px solid #dfdfdf;border-top:none;transition:all .2s ease-in;width:100%;margin:0;padding:0;list-style:none;max-height:calc(100% - 115px);height:calc(100% - 115px);overflow-y:auto}.dhx_simplevault-files__fixed{max-height:276px}.dhx_simplevault-files__item{position:relative;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;line-height:20px;font-size:14px;text-align:left;color:rgba(0,0,0,.7);max-width:100%;overflow:hidden;text-overflow:ellipsis;padding:8px 40px 8px 8px}.dhx_simplevault-files__item:not(:last-child){border-bottom:1px solid #e4e4e4}.dhx_simplevault-files__item-name{word-break:break-word}.dhx_simplevault-files__delete{position:absolute;right:4px;top:50%;transform:translateY(-50%)}.dhx_simplevault-loader{display:flex;justify-content:center;align-items:center;position:absolute;left:1px;right:1px;top:1px;bottom:1px;background-color:#ededed;transform:translateY(100%);opacity:0;will-change:transform;transition:0ms;z-index:1}.dhx_simplevault-loader .dhx_simplevault__icon:before{color:#0288d1}.dhx_slider{position:relative;display:flex;flex-direction:column;padding-bottom:16px}.dhx_slider--label-inline{flex-direction:row;align-items:center}.dhx_slider--label-inline .dhx_slider__label{text-align:right;flex:0 1 auto;margin-right:16px;margin-bottom:0;width:100%}.dhx_slider--label-inline .dhx_label--with-help{justify-content:flex-end}.dhx_slider--label-inline .dhx_slider__track-holder{width:300%;flex:0 1 auto}.dhx_slider--label_sr .dhx_label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dhx_slider--mode_vertical{height:100%;display:inline-flex}.dhx_slider--mode_vertical .dhx_slider__label{align-self:flex-start}.dhx_slider--mode_vertical .dhx_slider__track-holder{height:100%;display:flex;padding:8px 0}.dhx_slider--mode_vertical .dhx_slider__track{align-self:stretch;padding:0 8px}.dhx_slider--mode_vertical .dhx_slider__track:before{width:2px;height:100%}.dhx_slider--mode_vertical .dhx_slider__range{width:2px;left:50%;transform:translate(-50%)}.dhx_slider--mode_vertical .dhx_slider__thumb{left:50%}.dhx_slider--mode_vertical .dhx_slider__tick{height:1px;width:4px}.dhx_slider--mode_vertical .dhx_slider__tick:not(:first-child){transform:translateY(-.5px)}.dhx_slider--mode_vertical .dhx_slider__tick--major{width:8px}.dhx_slider--mode_vertical .dhx_slider__tick-label{top:50%;left:100%;transform:translateY(-50%);padding-left:2px}.dhx_slider--disabled{opacity:.6;pointer-events:none;cursor:default}.dhx_slider--ticks .dhx_slider__ticks-holder{height:4px}.dhx_slider--ticks.dhx_slider--mode_vertical .dhx_slider__ticks-holder{height:100%;width:4px}.dhx_slider__track-holder{position:relative;flex:1}.dhx_slider__track{position:relative;padding-top:8px;padding-bottom:8px;cursor:pointer;z-index:1}.dhx_slider__track:before{content:"";display:block;height:2px;background-color:#b3b3b3}.dhx_slider__thumb{position:absolute;top:50%;transform:translate(-50%,-50%);width:12px;height:12px;border-radius:50%;background-color:#0288d1;transition:transform .1s ease-out,border-color .2s ease-out,background-color .2s ease-out;will-change:transform;cursor:pointer}.dhx_slider__thumb:after,.dhx_slider__thumb:before{content:"";display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);border-radius:50%;will-change:transform}.dhx_slider__thumb:before{width:28px;height:28px;background-color:rgba(2,136,209,.15)}.dhx_slider__thumb:after,.dhx_slider__thumb:before{transition:transform .2s ease-out,background-color .2s ease-out}.dhx_slider__thumb:after{width:16px;height:16px;background-color:#0288d1}.dhx_slider__thumb:focus,.dhx_slider__thumb:hover{outline:none}.dhx_slider__thumb:focus:before,.dhx_slider__thumb:hover:before{transform:translate(-50%,-50%) scale(1);transition:transform .2s ease-in,background-color .2s ease-in}.dhx_slider__thumb--active,.dhx_slider__thumb:active{z-index:1}.dhx_slider__thumb--active:after,.dhx_slider__thumb:active:after{transform:translate(-50%,-50%) scale(1);transition:transform .2s ease-in,background-color .2s ease-in}.dhx_slider__thumb--nullable{background-color:#b3b3b3}.dhx_slider__thumb--nullable:after{width:8px;height:8px;transform:translate(-50%,-50%) scale(1);background:#fff}.dhx_slider__thumb--nullable:before{background-color:rgba(77,77,77,.15)}.dhx_slider__thumb--disabled{background-color:#b3b3b3;border:2px solid #fff}.dhx_slider__thumb--disabled:after,.dhx_slider__thumb--disabled:before{display:none}.dhx_slider__thumb-label{position:absolute;padding:6px 12px;transform:translate(-50%,-50%);border-radius:2px;background-color:#333;box-shadow:0 2px 5px rgba(0,0,0,.3);font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:400;line-height:20px;color:#fff;transition:opacity transform .01s ease-in;pointer-events:none;z-index:1}.dhx_slider__thumb-label--vertical{left:50px}.dhx_slider__thumb-label--horizontal{top:-30px}.dhx_slider__thumb-label--active{z-index:10}.dhx_slider__range{position:absolute;top:50%;transform:translateY(-50%);height:2px;background-color:#0288d1;pointer-events:none}.dhx_slider__ticks-holder{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_slider__tick{position:absolute;top:0;width:1px;height:4px;background-color:#b3b3b3}.dhx_slider__tick:not(:first-child){transform:translateX(-.5px)}.dhx_slider__tick--major{height:8px}.dhx_slider__tick-label{position:absolute;top:10px;transform:translateX(-50%);font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:10px;color:rgba(0,0,0,.7);line-height:1}.dhx_message-container{display:flex;flex-direction:column;align-items:flex-end;position:absolute;padding:20px;max-height:100%;-ms-scroll-chaining:none;overscroll-behavior:contain;width:auto;overflow:hidden;border:2px solid transparent;z-index:2147483647}.dhx_message-container *{box-sizing:border-box}.dhx_message-container--top-left{top:0;left:0}.dhx_message-container--top-right{top:0;right:0}.dhx_message-container--bottom-left{align-items:flex-start;bottom:0;left:0}.dhx_message-container--bottom-right{align-items:flex-start;bottom:0;right:0}.dhx_message-container--in-body{position:fixed}.dhx_message{display:flex;justify-content:space-between;width:240px;flex-shrink:0;padding:12px;margin-bottom:4px;margin-top:4px;border-radius:2px;box-shadow:0 1px 6px rgba(0,0,0,.1),0 10px 20px rgba(0,0,0,.1);background-color:#fff;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_message,.dhx_message__text{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:500;line-height:20px;font-size:14px;color:rgba(0,0,0,.7)}.dhx_message__text{overflow-wrap:break-word;word-wrap:break-word;word-break:break-all}.dhx_message__icon{align-self:center;padding-left:8px;color:rgba(0,0,0,.5)}.dhx_message--error .dhx_message__icon,.dhx_message--error .dhx_message__text,.dhx_message--success .dhx_message__icon,.dhx_message--success .dhx_message__text{color:#fff}.dhx_message--error{background-color:#ff5252}.dhx_message--success{background-color:#0ab169}.dhx_alert{display:flex;flex-direction:column;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;padding:24px;background:#fff;border-radius:2px;box-shadow:0 2px 5px rgba(0,0,0,.3);will-change:transform;z-index:2147483647}.dhx_alert__overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:2147483646}.dhx_alert__header{position:relative;margin-bottom:20px;font-weight:500;line-height:20px;color:rgba(0,0,0,.7)}.dhx_alert__content,.dhx_alert__header{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px}.dhx_alert__content{height:100%;font-weight:400;color:rgba(0,0,0,.5);line-height:1.3;overflow-y:auto;overflow-wrap:break-word;word-wrap:break-word}.dhx_alert__footer{margin-top:20px;display:flex;justify-content:flex-start}.dhx_alert__footer--center{justify-content:center}.dhx_alert__footer--right{justify-content:flex-end}.dhx_alert__footer .dhx_button:not(:last-child){margin-right:16px}.dhx_tooltip{pointer-events:none;border-radius:2px;background-color:#333;box-shadow:0 2px 5px rgba(0,0,0,.3);padding:6px 12px;transition:opacity .01s ease,transform .01s ease;opacity:0;z-index:999;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif}.dhx_tooltip--animate{opacity:1;transition:opacity .15s ease-out}.dhx_tooltip--forced{opacity:1}.dhx_tooltip--bottom{margin:8px 0 0}.dhx_tooltip--top{margin:-8px 0 0}.dhx_tooltip--left{margin:0 0 -8px}.dhx_tooltip--right{margin:0 0 0 8px}.dhx_tooltip--light{background-color:#fff}.dhx_tooltip--light .dhx_tooltip__text{color:rgba(0,0,0,.7)}.dhx_widget--fullscreen .dhx_tooltip{z-index:2147483647}.dhx_tooltip__text{color:#fff;font-size:14px;font-weight:500;line-height:20px}.dhx_layout{max-width:100%;max-height:100%;width:100%;height:100%}.dhx_layout-columns{display:flex;flex-direction:row;overflow:hidden}.dhx_layout-columns>.dhx_layout-cell:not(.dhx_layout-rows):not(.dhx_layout-columns):not(.dhx_layout-cell--gravity){flex:0 1 auto}.dhx_layout-columns>.dhx_layout-cell--resizeble{overflow-x:hidden}.dhx_layout-rows{display:flex;flex-direction:column;overflow:hidden}.dhx_layout-rows>.dhx_layout-cell:not(.dhx_layout-rows):not(.dhx_layout-columns):not(.dhx_layout-cell--gravity){flex:0 1 auto}.dhx_layout-rows>.dhx_layout-cell--resizeble{overflow-y:hidden}.dhx_layout-cell--start,.dhx_layout-columns--start,.dhx_layout-rows--start{justify-content:flex-start}.dhx_layout-cell--center,.dhx_layout-columns--center,.dhx_layout-rows--center{justify-content:center}.dhx_layout-cell--end,.dhx_layout-columns--end,.dhx_layout-rows--end{justify-content:flex-end}.dhx_layout-cell--between,.dhx_layout-columns--between,.dhx_layout-rows--between{justify-content:space-between}.dhx_layout-cell--around,.dhx_layout-columns--around,.dhx_layout-rows--around{justify-content:space-around}.dhx_layout-cell--evenly,.dhx_layout-columns--evenly,.dhx_layout-rows--evenly{justify-content:space-evenly}.dhx_layout-cell{flex-basis:auto;flex-grow:0;flex-shrink:0}.dhx_layout-cell--bordered{border:1px solid #e4e4e4}.dhx_layout-cell--border_top{border-top:1px solid #e4e4e4}.dhx_layout-cell--border_bottom{border-bottom:1px solid #e4e4e4}.dhx_layout-cell--border_left{border-left:1px solid #e4e4e4}.dhx_layout-cell--border_right{border-right:1px solid #e4e4e4}.dhx_layout-cell--border-shadow{border:0;box-shadow:0 2px 4px rgba(0,0,0,.15)}.dhx_layout-cell--no-border{border:0}.dhx_layout-cell--no-border_top{border-top:0}.dhx_layout-cell--no-border_bottom{border-bottom:0}.dhx_layout-cell--no-border_left{border-left:0}.dhx_layout-cell--no-border_right{border-right:0}.dhx_layout-cell--gravity{flex:1 1 auto}.dhx_layout-cell--flex{display:flex}.dhx_layout-cell--accordion>.dhx_layout-cell--collapsed{border-bottom:0}.dhx_layout-cell--collapsed{overflow:hidden;flex:0 1 auto}.dhx_layout-cell-content{height:100%}.dhx_layout-cell-header{display:flex;justify-content:flex-start;align-items:center;border-bottom:1px solid #e4e4e4;padding:8px 12px}.dhx_layout-cell-header__title{margin:0;font-size:14px;line-height:20px;font-weight:500;color:rgba(0,0,0,.7);white-space:nowrap;overflow:hidden;text-overflow:clip;transition:color .2s ease-in}.dhx_layout-cell-header__icon{margin-right:16px}.dhx_layout-cell-header__image-wrapper{position:relative;width:20px;height:20px;margin-right:8px}.dhx_layout-cell-header__image{position:absolute;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center center;object-position:center center;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%}.dhx_layout-cell-header__collapse-icon{margin-left:auto;color:#4d4d4d;transition:transform .2s ease-in,color .2s ease-in}.dhx_layout-cell-header--collapseble{cursor:pointer}.dhx_layout-cell-header--collapseble:focus .dhx_layout-cell-header__collapse-icon,.dhx_layout-cell-header--collapseble:focus .dhx_layout-cell-header__title,.dhx_layout-cell-header--collapseble:hover .dhx_layout-cell-header__collapse-icon,.dhx_layout-cell-header--collapseble:hover .dhx_layout-cell-header__title{color:#0288d1;transition:color .2s ease-out}.dhx_layout-cell-header--collapseble:focus,.dhx_layout-cell-header:focus{outline-width:0}.dhx_layout-cell-header--collapsed.dhx_layout-cell-header--col{border-bottom:0;position:relative}.dhx_layout-cell-header--collapsed.dhx_layout-cell-header--col .dhx_layout-cell-header__title{position:absolute;transform-origin:left;transform:rotate(90deg);bottom:-12px;left:50%}.dhx_layout-cell-header+.dhx_layout-cell-content{overflow:auto;height:calc(100% - 37px)}.dhx_layout-resizer{position:relative;overflow:visible;text-align:center}.dhx_layout-resizer .dhx_layout-resizer__icon{position:relative;z-index:1}.dhx_layout-resizer--x{width:0}.dhx_layout-resizer--x .dhx_layout-resizer__icon{width:0;height:100%;display:flex;justify-content:center;flex-direction:column;align-items:center;color:rgba(0,0,0,.5);cursor:ew-resize}.dhx_layout-resizer--x .dhx_layout-resizer__icon:before{font-size:16px}.dhx_layout-resizer--y{height:0}.dhx_layout-resizer--y .dhx_layout-resizer__icon{width:100%;height:0;display:flex;justify-content:center;flex-direction:row;align-items:center;color:rgba(0,0,0,.5);cursor:ns-resize}.dhx_layout-resizer--y .dhx_layout-resizer__icon:before{font-size:16px}.dhx_navbar-count{width:24px;height:24px;border-radius:50%;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:12px;line-height:24px;color:#fff;text-align:center;z-index:1}.dhx_navbar-count--absolute{margin-left:0;position:absolute;top:-4px;top:-10px;right:-10px}.dhx_navbar-count--button-inline{margin-top:-4px;margin-bottom:-4px;margin-left:12px}.dhx_navbar-count--overlimit{width:auto;border-radius:22px;padding:0 8px}.dhx_navbar-count--color_success{background-color:#0ab169}.dhx_navbar-count--color_danger{background-color:#ff5252}.dhx_navbar-count--color_primary{background-color:#0288d1}.dhx_navbar-count--color_secondary{background-color:#4d4d4d}.dhx_navbar{display:flex;flex-wrap:nowrap;margin:0;padding:0;width:100%;list-style:none}.dhx_navbar:focus{outline:none}.dhx_navbar--horizontal{flex-direction:row;align-items:center}.dhx_navbar--vertical{height:100%;display:flex;flex-direction:column;overflow:auto}.dhx_navbar .dhx_button--color_secondary.dhx_button--view_link .dhx_button__icon{color:rgba(0,0,0,.5)}.dhx_navbar-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);font-weight:500}.dhx_navbar-title--sidebar{display:block;padding:12px}.dhx_timepicker{width:100%;padding:50px 20px;min-width:248px;background-color:#fff}.dhx_timepicker--with-controls{padding:4px 20px 0}.dhx_timepicker__inputs{text-align:center;margin-bottom:28px;margin-top:16px}.dhx_timepicker__close{min-height:32px;display:flex;justify-content:flex-end;margin-bottom:6px}.dhx_timepicker__button-close{text-transform:uppercase;transform:translateX(16px)}.dhx_timepicker__save{padding-top:12px;min-height:76px;display:flex;justify-content:center;align-items:center}.dhx_timepicker-inputs{position:relative;display:inline-block}.dhx_timepicker-input{width:48px;height:38px;font-size:30px;padding-bottom:4px;color:rgba(0,0,0,.7);line-height:30px;text-align:center;outline:none;border:none;border-bottom:1px solid #ededed;transition:border-color .2s ease-in;background-color:transparent}.dhx_timepicker-input:focus{border-bottom:1px solid #81c4e8;transition-timing-function:ease-out}.dhx_timepicker-ampm{position:absolute;right:-32px;bottom:4px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;color:rgba(0,0,0,.3);font-size:16px;line-height:16px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_timepicker-delimer{position:relative;top:-2px;height:30px;width:8px;color:rgba(0,0,0,.7);line-height:30px;font-size:30px}.dhx_calendar{display:flex;justify-content:flex-end;min-height:258px;padding:12px;background-color:#fff}.dhx_calendar--with_timepicker{min-height:310px}.dhx_calendar__wrapper{position:relative;z-index:1;width:100%;min-height:100%;display:flex;flex-direction:column;justify-content:space-between}.dhx_calendar__dates-wrapper{position:relative;padding-left:40px}.dhx_calendar__navigation{display:flex;align-self:stretch;justify-content:space-between;text-align:center;align-items:center;margin:-4px 2px 4px}.dhx_calendar__navigation .dhx_button--color_secondary:focus,.dhx_calendar__navigation .dhx_button--view_link:focus{background:inherit}.dhx_calendar__navigation .dhx_button--color_secondary:hover,.dhx_calendar__navigation .dhx_button--view_link:hover{background:#e4e4e4}.dhx_calendar__timepicker-button{margin-top:8px}.dhx_calendar__actions{display:flex;justify-content:center}.dhx_calendar__week-numbers{position:absolute;left:0;top:-4px;width:32px;padding:4px 0;background-color:#f7f7f7}.dhx_calendar__week-numbers:before{content:"#";display:block;margin-bottom:8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:12px;line-height:16px;color:rgba(0,0,0,.5);text-align:center}.dhx_calendar__weekdays{display:flex;flex-direction:row;justify-content:space-between;margin:0 0 8px}.dhx_calendar__days,.dhx_calendar__months{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.dhx_calendar__months,.dhx_calendar__years{margin-top:auto;margin-bottom:auto}.dhx_calendar__years{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.dhx_calendar-weekday{flex:1 0 14%;font-size:12px;line-height:16px}.dhx_calendar-week-number,.dhx_calendar-weekday{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;color:rgba(0,0,0,.5);text-align:center}.dhx_calendar-week-number{margin-bottom:12px;font-size:14px;line-height:20px}.dhx_calendar-week-number:last-child{margin-bottom:0}.dhx_calendar-week-number--hidden{opacity:0;pointer-events:none}.dhx_calendar-day{position:relative;flex:1 0 14%;margin-bottom:12px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.5);text-align:center;cursor:pointer}.dhx_calendar-day:nth-last-child(-n+7){margin-bottom:0}.dhx_calendar-day:after,.dhx_calendar-day:before{content:"";position:absolute;top:50%;left:50%;display:block;width:28px;height:28px;transform:translate(-50%,-50%);background-color:rgba(0,0,0,.07);border-radius:50%;opacity:0;z-index:-1}.dhx_calendar-day:active,.dhx_calendar-day:focus{outline:none}.dhx_calendar-day:active:before,.dhx_calendar-day:focus:before,.dhx_calendar-day:hover:before{opacity:1;transition:opacity .2s ease-out}.dhx_calendar-day--weekend{color:#0288d1}.dhx_calendar-day--hidden{opacity:0;pointer-events:none}.dhx_calendar-day--muffled{opacity:.6}.dhx_calendar-day--disabled{color:rgba(0,0,0,.3);pointer-events:none}.dhx_calendar-day--weekend-disabled{pointer-events:none;color:#6ecbfe}.dhx_calendar-day--in-range:after{opacity:1;background-color:#d3efff;border-radius:0;width:100%;z-index:-3}.dhx_calendar-day--selected{color:#fff;position:relative;z-index:1}.dhx_calendar-day--selected:before{opacity:1;background-color:#0288d1}.dhx_calendar-day--selected-first:after{border-radius:50% 0 0 50%}.dhx_calendar-day--selected-last:after{border-radius:0 50% 50% 0}.dhx_calendar-day--first-date:after{width:100%;background-color:#d3efff;opacity:1;right:calc(-50% - 2px);left:auto;border-radius:0;border-top-left-radius:32px;border-bottom-left-radius:32px}.dhx_calendar-day--last-date:after{width:100%;background-color:#d3efff;opacity:1;right:calc(-50% + 2px);left:auto;border-radius:0;border-top-right-radius:32px;border-bottom-right-radius:32px}.dhx_calendar-day:nth-child(7n).dhx_calendar-day--first-date:after{width:30px;right:calc(-50% + 1px)}.dhx_calendar-day:nth-child(7n+1).dhx_calendar-day--last-date:after{width:30px;right:calc(-50% + 3px)}.dhx_calendar-month,.dhx_calendar-year{position:relative;flex:1 0 25%;margin-bottom:8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:50px;color:rgba(0,0,0,.7);text-align:center;cursor:pointer}.dhx_calendar-month:nth-last-child(-n+4),.dhx_calendar-year:nth-last-child(-n+4){margin-bottom:0}.dhx_calendar-month:before,.dhx_calendar-year:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:block;width:50px;height:50px;background-color:rgba(0,0,0,.07);border-radius:50%;opacity:0;transition:opacity .2s ease-in,background-color .2s ease-in;z-index:-1}.dhx_calendar-month:active,.dhx_calendar-month:focus,.dhx_calendar-year:active,.dhx_calendar-year:focus{outline:none}.dhx_calendar-month:active:before,.dhx_calendar-month:focus:before,.dhx_calendar-year:active:before,.dhx_calendar-year:focus:before{opacity:1;transition:opacity .2s ease-out}.dhx_calendar-month:hover:before,.dhx_calendar-year:hover:before{opacity:1;transition:opacity .2s ease-out;z-index:-2}.dhx_calendar-month--selected,.dhx_calendar-year--selected{color:#fff}.dhx_calendar-month--selected:before,.dhx_calendar-year--selected:before{opacity:1;transition:opacity .2s ease-in,background-color .2s ease-in;background-color:#0288d1}.dhx_chart{stroke-linecap:square;position:relative;height:100%}.dhx_chart svg{vertical-align:top;overflow:visible}.dhx_chart .chart{transition:all .4s ease}.dhx_chart .chart.donut,.dhx_chart .chart.pie,.dhx_chart .chart.pie3d{transition-property:none}.dhx_chart .chart.dhx_pie-transform-delay{transition-property:all}.dhx_chart.not-animate .chart,.dhx_chart.not-animate .tooltip-form,.dhx_chart.not-animate .tooltip-text{transition:none}.dhx_chart .figure{transition:fill,stroke .3s ease}.dhx_chart .active-figure{visibility:visible;transition:all .2s ease}.dhx_chart .active-figure.point-circle,.dhx_chart .active-figure.point-rect,.dhx_chart .active-figure.point-rhombus,.dhx_chart .active-figure.point-triangle{-webkit-filter:url(#dropshadow);filter:url(#dropshadow);transition:all .3s ease}.dhx_chart .area{stroke-linecap:round}.dhx_chart .dash-line{stroke-dasharray:4,6;stroke-linecap:round}.dhx_chart .legend-text,.dhx_chart .scale-text,.dhx_chart .scale-title{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:400;font-size:14px;fill:#898f97}.dhx_chart text{text-anchor:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.dhx_chart .start-text{text-anchor:start}.dhx_chart .end-text{text-anchor:end}.dhx_chart .legend-text{line-height:18px}.dhx_chart .scale-title{fill:#aeb7c2;line-height:16px}.dhx_chart .grid-line{stroke:#e3e9f1}.dhx_chart .main-scale{stroke:#c8d4e4;stroke-width:2px}.dhx_chart .radar-grid{stroke-dasharray:4,6;stroke:#d8e1ec;stroke-linecap:round}.dhx_chart .zebra{fill-rule:evenodd;fill:#f3f6fa}.dhx_chart .radar-scale{stroke:#c4d5e6}.dhx_chart .spec-grid-line{stroke:#898f97;stroke-linecap:round;stroke-dasharray:4,6}.dhx_chart .bar-text{fill:#fff;line-height:14px;font-weight:500;font-size:12px}.dhx_chart .bar-text,.dhx_chart .radar-axis-text{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif}.dhx_chart .radar-axis-text{font-size:14px;fill:#666}.dhx_chart .legend-item{cursor:pointer}.dhx_chart .legend-item.not-active .figure{fill:#c8d4e4;fill-opacity:1;stroke:#c8d4e4}.dhx_chart .legend-item.not-active .figure.legend-circle,.dhx_chart .legend-item.not-active .figure.legend-rect{stroke:none}.dhx_chart .legend-item.not-active .figure.legend-circle.with-stroke,.dhx_chart .legend-item.not-active .figure.legend-rect.with-stroke{stroke:#c8d4e4}.dhx_chart .legend-item.not-active .legend-text{fill:#c8d4e4}.dhx_chart.tooltip-container{z-index:2147483647}.dhx_chart.tooltip-container svg{width:4px;height:4px}.dhx_chart .tooltip-form{fill:#555;fill-opacity:.9}.dhx_chart .tooltip-text{font-size:12px;line-height:12px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;fill:#fff;font-weight:500}.dhx_chart .active-tooltip{visibility:visible}.dhx_chart .pie-value{font-weight:400;font-size:14px;fill:#898f97}.dhx_chart .pie-inner-value,.dhx_chart .pie-value{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif}.dhx_chart .pie-inner-value{fill:#fff;pointer-events:none;font-weight:500;line-height:14px;font-size:12px}.dhx_chart .pie-value-connector{stroke:#c6c6c6;fill:none}.dhx_chart .donut-value-title{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;fill:#898f97;font-size:14px;line-height:18px}.dhx_chart .donut-value{fill:#555;font-size:12px;line-height:14px}.dhx_chart .donut-value,.dhx_popup{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif}.dhx_popup{position:fixed;box-sizing:border-box;-webkit-animation:appear .2s ease-in-out forwards;animation:appear .2s ease-in-out forwards;background:#fff;will-change:transform;font-weight:500;font-size:14px;line-height:20px;color:rgba(0,0,0,.7)}.dhx_popup,.dhx_popup--window,.dhx_popup--window_modal{z-index:2147483645}.dhx_popup--window_active{z-index:2147483646}.dhx_popup.hide{-webkit-animation:disappear .2s ease-in-out forwards;animation:disappear .2s ease-in-out forwards}.dhx_popup:focus{outline:none}.dhx_widget--fullscreen .dhx_popup{z-index:2147483647}@-webkit-keyframes appear{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes appear{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@-webkit-keyframes disappear{0%{transform:translateY(0);opacity:1}to{transform:translateY(20px);opacity:0}}@keyframes disappear{0%{transform:translateY(0);opacity:1}to{transform:translateY(20px);opacity:0}}.dhx_colorpicker{font-family:Roboto,sans-serif;font-weight:500;overflow:hidden;padding:8px;border:1px solid #e4e4e4;background-color:#fff;border-radius:2px}.dhx_colorpicker,.dhx_colorpicker *{box-sizing:border-box}.dhx_popup .dhx_colorpicker{box-shadow:0 2px 5px rgba(0,0,0,.3);border:none}.dhx_palette{overflow:hidden;width:100%;height:100%;margin:0;white-space:nowrap}.dhx_palette--custom{display:flex;flex-wrap:wrap;max-width:236px}.dhx_palette--custom.dhx_palette__row .dhx_palette__cell{margin-bottom:0}.dhx_palette__col{display:inline-block}.dhx_palette__col:last-child .dhx_palette_cell{margin-right:0}.dhx_palette__row .dhx_palette__cell{display:inline-block;margin-bottom:6px}.dhx_palette__row .dhx_palette__cell:last-child{margin-right:0}.dhx_palette__row--last{margin-bottom:0}.dhx_palette__cell{position:relative;width:20px;height:20px;margin:0 2px 2px 0;vertical-align:top;border:2px solid transparent;transition:border .2s ease-in}.dhx_palette__cell:after{content:"";display:block;position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border:1px solid transparent;transition:border .2s ease-in}.dhx_palette__cell:last-child{margin-bottom:0}.dhx_palette__cell--selected,.dhx_palette__cell:hover{border:2px solid hsla(0,0%,100%,.6);transition:border .2s ease-out}.dhx_palette__cell--selected:after,.dhx_palette__cell:hover:after{border:1px solid rgba(0,0,0,.6);transition:border .2s ease-out}.dhx_colorpicker-custom-colors{font-size:14px;color:#909cad}.dhx_colorpicker-custom-colors__header{font-size:14px;padding:9px 0 4px;letter-spacing:-.2px;position:relative}.dhx_colorpicker-custom-colors__picker{display:inline-block;width:20px;height:20px;cursor:pointer;color:#909cad;box-shadow:inset 0 0 0 1px #909cad}.dhx_colorpicker-picker__palette{position:relative;width:100%;border-radius:2px;overflow:hidden}.dhx_colorpicker-picker__palette:before{content:"";height:100%;width:100%;position:absolute;top:0;left:0;background-image:linear-gradient(0deg,#000,hsla(0,0%,100%,0));z-index:2}.dhx_colorpicker-picker__palette:after{content:"";width:100%;height:100%;position:absolute;top:0;left:0;background-image:linear-gradient(90deg,#fff,rgba(204,154,129,0));z-index:1}.dhx_colorpicker-picker__buttons{display:flex;padding:12px 0 0;justify-content:flex-end}.dhx_colorpicker-picker__buttons .dhx_button:first-child{margin-right:4px}.dhx_colorpicker-hue-range{position:relative;width:100%;margin:4px 0 8px;border-radius:2px;background-image:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.dhx_colorpicker-hue-range__grip{width:6px;height:100%}.dhx_colorpicker-hue-range__grip,.dhx_palette_grip{position:absolute;top:0;left:0;border:1px solid #fff;background:transparent;box-shadow:0 2px 5px 0 rgba(0,0,0,.3)}.dhx_palette_grip{width:10px;height:10px;border-radius:50%;z-index:10}.dhx_colorpicker-value{display:flex;flex-direction:row;height:32px;justify-content:space-between}.dhx_colorpicker-value__color{width:100px;border:1px solid transparent;border-radius:2px;margin-right:8px}.dhx_colorpicker-value__input__wrapper{position:relative;border:1px solid #d4dde7}.dhx_colorpicker-value__input__wrapper:before{content:"#";position:absolute;height:100%;line-height:30px;left:8px;color:#909cad;font-size:15px}.dhx_colorpicker-value__input{width:100px;height:100%;padding:0 0 0 24px;line-height:20px;font-size:14px;color:rgba(0,0,0,.7);border:none;border-radius:2px;outline:none}.dhx_list{margin:0;padding:0;height:100%;list-style:none;overflow:auto;max-height:100%;background-color:#fff}.dhx_list--virtual{overflow:visible;max-height:unset;border:none}.dhx_list-item{overflow:hidden;position:relative;padding:8px 12px;border-bottom:1px solid #e4e4e4}.dhx_list-item,.dhx_list-item--text{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif}.dhx_list-item--text{font-size:14px;font-weight:400;line-height:20px;transition:background-color .2s ease-in,box-shadow .2s ease-in}.dhx_list-item--selected{background-color:#f7f7f7;box-shadow:inset 2px 0 0 0 #0288d1}.dhx_list-item--focus,.dhx_list-item--selected:hover,.dhx_list-item:hover{background-color:#ededed;transition:background-color .2s ease-out}.dhx_list-item--drophere:after{content:"";position:absolute;left:0;right:0;bottom:0;top:0;background-color:#f7f7f7;opacity:.6}.dhx_list-item--dragtarget{opacity:.6}.dhx_list-item--drag{cursor:-webkit-grab;cursor:grab}.dhx_list-input{width:100%;padding-left:5px}.dhx_virtual-list-wrapper{overflow:auto;max-height:100%;border:1px solid #e4e4e4}.dhx_combobox{margin-bottom:16px}.dhx_combobox__options{margin-top:2px;width:100%}.dhx_combobox--required:not(.dhx_combobox--label_sr) .dhx_label:not(.dhx_label--with-help){position:relative}.dhx_combobox--required:not(.dhx_combobox--label_sr) .dhx_label:not(.dhx_label--with-help):after{content:"*";display:inline-block;padding-left:4px;color:rgba(0,0,0,.3)}.dhx_combobox--required:not(.dhx_combobox--label_sr) .dhx_label__holder{position:relative;max-width:100%;overflow:hidden;text-overflow:ellipsis}.dhx_combobox--required:not(.dhx_combobox--label_sr) .dhx_label__holder:after{content:"*";display:inline-block;padding-left:4px;color:rgba(0,0,0,.3)}.dhx_combobox--label_sr .dhx_label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dhx_combobox--label-inline{display:flex;align-items:center;width:100%;position:relative}.dhx_combobox--label-inline .dhx_combobox__label{flex:0 1 auto;justify-content:flex-end;text-align:right;margin-right:16px;width:100%}.dhx_combobox--label-inline .dhx_combobox-input-box{flex:0 1 auto;width:300%}.dhx_combobox--disabled{opacity:.6;pointer-events:none;cursor:default}.dhx_combobox-input-box{position:relative;flex:1;background-color:#f7f7f7;background-clip:padding-box;border-radius:2px;box-shadow:inset 0 0 0 1px #dfdfdf;transition:border-color .2s ease-out,box-shadow .2s ease-out}.dhx_combobox-input-box--readonly,.dhx_combobox-input-box--readonly *{cursor:pointer}.dhx_combobox-input-box--disabled{cursor:not-allowed}.dhx_combobox-input-box--disabled *{cursor:not-allowed;pointer-events:none}.dhx_combobox-input-box--active,.dhx_combobox-input-box:focus-within{box-shadow:inset 0 0 0 1px #67b8e3}.dhx_combobox-input-box--state_success{box-shadow:inset 0 0 0 1px #6cd0a5}.dhx_combobox-input-box--state_error{box-shadow:inset 0 0 0 1px #ff9797}.dhx_combobox-input{min-height:30px;display:block;width:100%;margin:0;padding:0;position:absolute;top:0;right:0;bottom:0;left:0;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.dhx_combobox-input:active,.dhx_combobox-input:focus{outline:none}.dhx_combobox-input__wrapper{position:static;padding-bottom:0}.dhx_combobox-input__icon{display:flex;align-items:center;cursor:pointer;flex:0;position:absolute;top:50%;right:4px;transform:translateY(-50%);font-size:16px;z-index:1;color:rgba(0,0,0,.5)}.dhx_combobox-input-list-wrapper{height:100%;width:100%;overflow:hidden}.dhx_combobox-input-list{display:flex;flex-wrap:wrap;flex-flow:row wrap;list-style:none;margin:0;border-top:1px solid transparent;border-bottom:1px solid transparent;min-height:30px;max-height:96px;width:calc(100% - 32px);overflow-y:scroll;padding:0 41px 0 8px;box-sizing:content-box!important}.dhx_combobox-input-list__item{flex:0 1 auto}.dhx_combobox-input-list__item--input{position:relative;flex:1 0 auto}.dhx_combobox-tag{display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;padding:0 8px;margin-top:2px;margin-bottom:2px;border:1px solid #e4e4e4;border-radius:16px;background-color:#fff;margin-right:8px}.dhx_combobox-tag__value{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);white-space:nowrap}.dhx_combobox-tag__icon,.dhx_combobox-tag__image{margin-right:4px}.dhx_combobox-tag__image{width:16px;height:auto;-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center}.dhx_combobox-tag__action{height:20px;margin-left:4px;margin-right:-6px;color:rgba(0,0,0,.5);padding:0;background-color:transparent;transition:color .2s ease-in}.dhx_combobox-tag__action:hover{color:rgba(0,0,0,.7);transition:color .2s ease-out}.dhx_combobox-options{background-color:#fff;border-radius:2px;box-shadow:0 2px 5px rgba(0,0,0,.3)}.dhx_combobox-options__icon{padding-right:4px}.dhx_combobox-options__image{padding-right:4px;width:16px;height:auto;-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center}.dhx_combobox-options__item{display:flex;align-items:center;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;padding:6px 8px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.dhx_combobox-options__item--select-all{color:#0288d1;line-height:20px;border-bottom:1px solid #e4e4e4}.dhx_dataview{position:relative;overflow-y:auto;height:100%;max-height:100%;background-color:#fff}.dhx_dataview--has-scroll .dhx_dataview-row:last-child .dhx_dataview-item:not(.dhx_dataview-item--with-gap){border-bottom:0}.dhx_dataview-row{display:flex;flex-wrap:nowrap;justify-content:flex-start}.dhx_dataview-row .dhx_dataview-item:not(.dhx_dataview-item--with-gap){border-top:0}.dhx_dataview-item{position:relative;flex:0 1 auto;border:1px solid #e4e4e4;padding:8px;transition:box-shadow .2s ease-in}.dhx_dataview-item:not(.dhx_dataview-item--with-gap){border-left:0}.dhx_dataview-item--last-item-in-row:not(.dhx_dataview-item--with-gap){border-right:0}.dhx_dataview-item:focus{outline:none}.dhx_dataview-item:after{content:"";display:block;position:absolute;left:0;right:0;bottom:0;top:0;z-index:1;border:1px solid transparent;transition:opacity .2s ease-in-out,background-color .2s ease-in-out;pointer-events:none}.dhx_dataview-item--focus{box-shadow:inset 0 0 0 1px #a6a6a6;transition:box-shadow .2s ease-out}.dhx_dataview-item--selected{box-shadow:inset 0 0 0 1px #0288d1;transition:box-shadow .2s ease-out}.dhx_dataview-item--drophere:after{background-color:#f7f7f7;opacity:.6}.dhx_dataview-item--dragtarget{opacity:.6}.dhx_dataview-item--drag{cursor:-webkit-grab;cursor:grab}.dhx_dataview-input{padding-left:5px}.dhx_footer-wrapper,.dhx_header-wrapper{position:relative;font-size:14px;font-weight:500;color:rgba(0,0,0,.7);z-index:11}.dhx_footer-wrapper.dhx_compatible-header,.dhx_header-wrapper.dhx_compatible-header{border-right:none}.dhx_footer-wrapper:last-child,.dhx_header-wrapper:last-child{border-bottom:none}.dhx_footer-wrapper{overflow:hidden}.dhx_grid-header{position:relative;height:100%;white-space:nowrap;z-index:10}.dhx_grid-footer-cell,.dhx_grid-header-cell{display:inline-block;height:100%;padding:0 8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:400;vertical-align:top;white-space:nowrap;position:relative;font-weight:500;background-color:#f7f7f7;border-top:1px solid #e4e4e4;border-bottom:1px solid #e4e4e4;border-left:none;text-overflow:ellipsis;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_grid-footer-cell:not(.dhx_cell_first),.dhx_grid-header-cell:not(.dhx_cell_first){border-left:1px solid #e4e4e4}.dhx_grid-footer-cell:first-child,.dhx_grid-header-cell:first-child{border-left:none}.dhx_grid-header-cell--sortable:hover .dhx_grid-sort-icon{opacity:1}.dhx_grid-header-cell--sortable:hover:after,.dhx_grid-header-cell--sorted:after{content:"";display:block;width:24px;position:absolute;top:0;bottom:0;background-color:#f7f7f7;opacity:.8}.dhx_grid-header-cell--align_right{text-align:right}.dhx_grid-header-cell--align_right .dhx_grid-header-cell-text{padding-left:24px}.dhx_grid-header-cell--align_right .dhx_grid-sort-icon{left:4px}.dhx_grid-header-cell--align_right:after{left:0}.dhx_grid-header-cell--align_left{text-align:left}.dhx_grid-header-cell--align_left .dhx_grid-sort-icon{right:4px}.dhx_grid-header-cell--align_left:after{right:0}.dhx_grid-footer-cell:last-child,.dhx_grid-header-cell:last-child{overflow:hidden}.dhx_grid-sort-icon{position:absolute;top:50%;transform:translateY(-50%);opacity:0;color:rgba(0,0,0,.5);z-index:1;transition:all .2s ease-in;cursor:pointer}.dhx_grid-sort-icon:before{font-size:16px;display:inline-block;transition:all .2s ease-out}.dhx_grid-sort-icon--asc,.dhx_grid-sort-icon--desc{opacity:1;color:#0288d1;transition:color .2s ease-out}.dhx_grid-sort-icon--asc:before{transform:scaleY(-1)}.dhx_cell_empty{border-top:none}.dhx_header-row{white-space:nowrap;background:#f7f7f7}.dhx_header-row:last-child .dhx_cell-first{border-bottom:1px solid #f7f7f7}.dhx_header-row:first-child .dhx_grid-footer-cell,.dhx_header-row:first-child .dhx_grid-header-cell{border-top:none}.dhx_header-row:not(:last-child) .dhx_grid-footer-cell,.dhx_header-row:not(:last-child) .dhx_grid-header-cell{border-bottom:none}.dhx_grid-custom-content-cell{padding:5px}.dhx_header-spans{position:absolute;top:0}.dhx_header-spans .dhx_span-cell{background:#f7f7f7;font-weight:500}.dhx_header-fixed-cols{background:#f7f7f7;z-index:999}.dhx_header-fixed-cols .dhx_last-column-cell{border-right:1px solid #e4e4e4}.dhx_resizer_grip{position:absolute;z-index:100;top:0;right:-5px;display:flex;width:9px;height:100%;cursor:col-resize;justify-content:center}.dhx_resizer_grip:hover .dhx_resizer_grip_line{opacity:1}.dhx_resizer_grip:active{right:-100.5px;width:200px}.dhx_resizer_grip .dhx_resizer_grip_line{z-index:100;background-color:#a6a6a6;width:1px;height:100%;transition:all .2s;pointer-events:none;opacity:0}.dhx_resizer_grip .dhx_header_fixed_cols .dhx_header_row{border:none}.dhx_footer-wrapper{box-shadow:0 1px 0 0 #f7f7f7}.dhx_grid-footer{position:relative;background-color:#f7f7f7}.dhx_grid-footer-cell{border-top:1px solid #e4e4e4;overflow:hidden}.dhx_grid-footer-cell:after{display:none}.dhx_grid-footer-cell.dhx_number-cell{text-align:right}.dhx_grid-footer-cell.dhx_string-cell{text-align:left}.dhx_footer-row{white-space:nowrap;background:#f7f7f7}.dhx_footer-row:last-child .dhx_cell-first{border-bottom:1px solid #f7f7f7}.dhx_footer-row .dhx_grid-footer-cell{border-bottom:none}.dhx_footer-spans .dhx_span-cell{background-color:#f7f7f7}.dhx_footer-spans .dhx_span-row .dhx_span-cell{border-top:1px solid #e4e4e4}.dhx_footer-fixed-cols{background:#f7f7f7;z-index:999}.dhx_footer-fixed-cols .dhx_last-column-cell{border-right:1px solid #e4e4e4}.dhx_grid_data{position:relative;top:-1px}.dhx_grid-row{width:100%}.dhx_grid-cell,.dhx_grid-row{white-space:nowrap;overflow:hidden}.dhx_grid-cell{font-size:14px;color:rgba(0,0,0,.7);text-align:right;position:relative;display:inline-block;height:100%;padding:0 8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:400;vertical-align:top;border-top:1px solid #e4e4e4;border-left:1px solid #e4e4e4}.dhx_grid-cell--drophere:after{content:"";position:absolute;left:0;right:0;bottom:0;top:0;background-color:#f7f7f7;opacity:.6}.dhx_grid-cell--dragtarget{opacity:.6}.dhx_grid-cell--drag{cursor:-webkit-grab;cursor:grab}.dhx_grid-cell .dhx_cell-content{width:100%;height:100%;overflow:hidden}.dhx_grid-cell:first-child{border-left:none}.dhx_grid-cell--first{border-top:none}.dhx_grid-cell--title{font-size:14px;font-weight:400;color:rgba(0,0,0,.7);text-align:left;border-bottom:none}.dhx_grid-cell--after-title,.dhx_grid-cell--title{border-top:1px solid #e4e4e4}.dhx_grid-cell__editable{padding-right:0;padding-left:0}.dhx_number-cell{text-align:right}.dhx_string-cell,.dhx_tree-cell{text-align:left}.dhx_tree-cell:not(.dhx_grid-expand-cell) .dhx_cell-editor{margin:0 -8px}.dhx_tree-cell.dhx_grid-expand-cell{display:inline-flex;padding-left:0}.dhx_tree-cell .dhx_grid-expand-cell-icon{display:inline-flex;width:auto;height:100%;font-size:14px;cursor:pointer}.dhx_tree-cell .dhx_grid-expand-cell-icon:before{display:flex;justify-content:center;flex-direction:column}.dhx_tree-cell .dhx_tree-cell{display:inline-block;padding:0 8px}.dhx_grid-fixed-cols-wrap{position:absolute;top:0;left:0;background:#fff;overflow:hidden}.dhx_frozen-cols-border{width:1px;position:absolute;right:0;top:0;height:100%;background:#e4e4e4;z-index:999999}.dhx_grid-fixed-cols{position:absolute;top:0}.dhx_grid-fixed-cols .dhx_grid-cell__editable:last-child{padding-right:1px}.dhx_grid-selection{position:absolute;top:0;left:0;z-index:10}.dhx_grid-selected-row{border-left:2px solid #0288d1;background:rgba(77,77,77,.08);pointer-events:none}.dhx_grid-selected-cell{border:2px solid #0288d1;background-color:transparent;pointer-events:none}.dhx_grid-resize-line{position:absolute;width:1px;background:#a6a6a6;z-index:10}.dhx_cell-editor{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:400;width:100%;height:100%;text-align:inherit;color:rgba(0,0,0,.7);border:none;border-radius:0;background:transparent;box-shadow:inset 0 0 0 1px #0288d1;outline:none}.dhx_cell-editor__combobox .dhx_combobox-input-box{padding:0 25px 0 8px;box-shadow:inset 0 0 0 1px #0288d1}.dhx_cell-editor__input{padding:0 8px}.dhx_cell-editor__select{padding:0 4px}.dhx_cell-editor__checkbox{position:relative;width:100%;height:100%;display:flex;justify-content:center;flex-direction:column;align-items:center;cursor:pointer}.dhx_span-cell{position:relative;display:inline-block;height:100%;padding:0 8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:400;vertical-align:top;white-space:nowrap;border-left:1px solid #e4e4e4;overflow:hidden;position:absolute;display:block;height:auto;font-weight:500;border-top:1px solid #e4e4e4;border-bottom:none;z-index:10}.dhx_span-cell--title{color:rgba(0,0,0,.5)}.dhx_span-row .dhx_first-column-cell{border-left:none}.dhx_span-row .dhx_last-column-cell{border-right:1px solid #e4e4e4}.dhx_span-row:first-child .dhx_span-cell{border-top:none}.dhx_span-spans{position:absolute;top:0;left:0}.dhx_span-spans .dhx_span-cell{font-weight:400;color:rgba(0,0,0,.7);line-height:normal;text-align:left;white-space:normal;border-right:none;background:#fff}.dhx_span-spans .dhx_span-cell.dhx_span-first-row{border-top:none}.dhx_span-spans .dhx_span-cell.dhx_span-first-col{border-left:none}.dhx_span-spans .dhx_span-string-cell{text-align:left}.dhx_span-spans .dhx_span-number-cell{text-align:right}.dhx_grid{position:relative;width:100%;height:100%;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:400;line-height:20px;background:#fff;overflow:hidden}.dhx_grid_border{border-bottom:1px solid #e4e4e4!important}.dhx_grid-content{position:relative;border:1px solid #dfdfdf;background:#fff}.dhx_grid-less-width .dhx_grid-cell:last-child,.dhx_grid-less-width .dhx_grid-footer-cell:last-child,.dhx_grid-less-width .dhx_grid-header-cell:last-child,.dhx_grid-less-width .dhx_grid_footer_cell:last-child,.dhx_grid-less-width .dhx_last-column-cell,.dhx_grid-less-width .dhx_span-last-col,.dhx_grid_border .dhx_grid-cell:last-child,.dhx_grid_border .dhx_grid-footer-cell:last-child,.dhx_grid_border .dhx_grid-header-cell:last-child,.dhx_grid_border .dhx_grid_footer_cell:last-child,.dhx_grid_border .dhx_last-column-cell,.dhx_grid_border .dhx_span-last-col{border-right:1px solid #e4e4e4}.dhx_grid-less-height .dhx_footer-row:last-child .dhx_grid-footer-cell,.dhx_grid-less-height .dhx_grid-row:last-child{border-bottom:1px solid #e4e4e4}.dhx_grid-less-height .dhx_footer-row:first-child .dhx_grid-footer-cell{border-top:none}.dhx_grid-less-height .dhx_span-row:last-child .dhx_span-cell{border-bottom:1px solid #e4e4e4}.dhx_grid-less-height .dhx_span-row:first-child .dhx_span-cell{border-top:none}.dhx_grid-body{overflow:auto}.dhx_data-wrap,.dhx_grid-body{position:relative;width:100%;height:100%}.dhx_data-wrap{overflow:hidden}.dhx_grid-filter__label{display:block;width:100%;height:100%;position:relative}.dhx_grid-filter__label:before{color:rgba(0,0,0,.5);pointer-events:none;position:absolute;right:4px;top:50%;transform:translateY(-50%);z-index:10}.dhx_grid-filter{height:100%;padding:0 25px 0 4px;color:rgba(0,0,0,.7);background:#fff;border-radius:2px;outline:none;position:relative}.dhx_grid-filter::-ms-expand{display:none}.dhx_grid-cell .dhx_combobox-input-box,.dhx_grid-footer-cell .dhx_combobox-input-box,.dhx_grid-header-cell .dhx_combobox-input-box{height:100%;padding:0 8px;color:rgba(0,0,0,.7);background:#fff;border-radius:2px;outline:none;position:relative}.dhx_grid-cell .dhx_combobox-input-box::-ms-expand,.dhx_grid-footer-cell .dhx_combobox-input-box::-ms-expand,.dhx_grid-header-cell .dhx_combobox-input-box::-ms-expand{display:none}.dhx_grid-cell .dhx_combobox,.dhx_grid-footer-cell .dhx_combobox,.dhx_grid-header-cell .dhx_combobox{margin:0;height:100%}.dhx_grid-cell .dhx_combobox .dhx_combobox-input-list,.dhx_grid-footer-cell .dhx_combobox .dhx_combobox-input-list,.dhx_grid-header-cell .dhx_combobox .dhx_combobox-input-list{height:100%;min-height:100%;max-height:100%;padding-left:0;padding-right:24px;border:none;width:100%}.dhx_grid-cell .dhx_combobox .dhx_combobox-input-list .dhx_combobox-input,.dhx_grid-footer-cell .dhx_combobox .dhx_combobox-input-list .dhx_combobox-input,.dhx_grid-header-cell .dhx_combobox .dhx_combobox-input-list .dhx_combobox-input{height:100%;min-height:100%}.dhx_grid-cell .dhx_list-item,.dhx_grid-footer-cell .dhx_list-item,.dhx_grid-header-cell .dhx_list-item{padding:7px 12px}.dhx_menu-nav{display:flex;flex-wrap:nowrap;margin:0;padding:0;width:100%;list-style:none;overflow-x:auto;background-color:#ededed}.dhx_menu-nav__item--separator{pointer-events:none;width:1px;min-width:1px;background-color:#dfdfdf;margin-top:8px;margin-bottom:8px}.dhx_menu-nav__item--spacer{pointer-events:none;flex:1 0 auto}.dhx_nav-menu-button{display:flex;justify-content:center;align-items:center;padding:8px 12px;font-weight:500;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);background-color:transparent;transition:background-color .2s ease-in}.dhx_nav-menu-button--active:not(:disabled),.dhx_nav-menu-button:active:not(:disabled),.dhx_nav-menu-button:hover:not(:disabled){background-color:rgba(0,0,0,.07);transition:background-color .2s ease-out}.dhx_nav-menu-button--disabled,.dhx_nav-menu-button:disabled{opacity:.8;pointer-events:auto;cursor:default}.dhx_nav-menu-button--disabled *,.dhx_nav-menu-button:disabled *{color:rgba(0,0,0,.3)}.dhx_menu{padding:0;margin:0;background:#fff;list-style:none;border-radius:2px;box-shadow:0 2px 5px rgba(0,0,0,.3);overflow:hidden;z-index:999}.dhx_menu-item{min-width:180px}.dhx_menu-item--separator{pointer-events:none;align-self:stretch;height:1px;min-height:1px;margin:2px 8px;background-color:#e4e4e4}.dhx_menu-item--spacer{pointer-events:none;height:16px}.dhx_menu-item--left-gap .dhx_menu-button{padding-left:38px}.dhx_menu-button{display:flex;width:100%;justify-content:space-between;padding:8px;text-align:left;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:400;line-height:20px;color:rgba(0,0,0,.7);background-color:transparent;transition:background-color .2s ease-in}.dhx_menu-button--active:not(:disabled),.dhx_menu-button:active:not(:disabled),.dhx_menu-button:focus:not(:disabled),.dhx_menu-button:hover:not(:disabled){background-color:#ededed;transition:background-color .2s ease-out}.dhx_menu-button--disabled,.dhx_menu-button:disabled{opacity:.8;pointer-events:auto;cursor:default}.dhx_menu-button--disabled *,.dhx_menu-button:disabled *{color:rgba(0,0,0,.3)}.dhx_menu-button__icon{color:rgba(0,0,0,.5)}.dhx_widget .dhx_menu-button__icon{line-height:0}.dhx_widget .dhx_menu-button__icon:before{font-size:20px;line-height:20px}.dhx_menu-button__icon+.dhx_menu-button__text{margin-left:8px}.dhx_menu-button__block{display:flex;align-items:center}.dhx_menu-button__block--left{justify-content:flex-start}.dhx_menu-button__block--right{justify-content:flex-end}.dhx_menu-button__count{margin-left:8px;margin-top:-2px;margin-bottom:-2px}.dhx_menu-button__hotkey{margin-left:8px;color:rgba(0,0,0,.3)}.dhx_menu-button__caret{margin-left:8px;color:rgba(0,0,0,.5)}.dhx_widget--fullscreen .dhx_menu{z-index:2147483647}.dhx_ribbon{display:flex;flex-direction:row;flex-wrap:wrap;margin:0;padding:10px;list-style:none}.dhx_ribbon:focus{outline:none}.dhx_ribbon__item{margin:2px}.dhx_ribbon__item--auto,.dhx_ribbon__item--medium{flex:1 0 auto;min-width:68px;min-height:68px}.dhx_ribbon__item--icon,.dhx_ribbon__item--spacer{flex:1 0 auto}.dhx_ribbon__item--separator{align-self:stretch;width:1px;min-width:1px;margin:8px 4px;background-color:#dfdfdf}.dhx_ribbon-button__icon+.dhx_ribbon-button__text{margin-left:4px}.dhx_widget .dhx_ribbon-button__icon{line-height:0}.dhx_widget .dhx_ribbon-button__icon:before{font-size:20px;line-height:20px}.dhx_ribbon-button,.dhx_ribbon-button-image{display:flex;align-items:center;justify-content:flex-start;width:100%;padding:6px 12px;box-shadow:inset 0 0 0 1px #dfdfdf;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;font-weight:400;color:rgba(0,0,0,.7);background-color:transparent;border-radius:2px;transition:background-color .2s ease-in,box-shadow .2s ease-in}.dhx_ribbon-button-image__icon,.dhx_ribbon-button__icon{color:rgba(0,0,0,.5);line-height:0}.dhx_ribbon-button-image__count,.dhx_ribbon-button__count{margin-left:8px;margin-top:-10px;margin-bottom:-10px}.dhx_ribbon-button--auto,.dhx_ribbon-button--medium,.dhx_ribbon-button-image--auto,.dhx_ribbon-button-image--medium{flex-direction:column;justify-content:center;align-items:center;min-width:68px;min-height:68px;height:100%}.dhx_ribbon-button--auto .dhx_ribbon-button-image__count,.dhx_ribbon-button--auto .dhx_ribbon-button__count,.dhx_ribbon-button--medium .dhx_ribbon-button-image__count,.dhx_ribbon-button--medium .dhx_ribbon-button__count,.dhx_ribbon-button-image--auto .dhx_ribbon-button-image__count,.dhx_ribbon-button-image--auto .dhx_ribbon-button__count,.dhx_ribbon-button-image--medium .dhx_ribbon-button-image__count,.dhx_ribbon-button-image--medium .dhx_ribbon-button__count{margin-left:0;position:absolute;top:4px;right:4px}.dhx_ribbon-button--auto .dhx_ribbon-button__icon+.dhx_ribbon-button__text,.dhx_ribbon-button--medium .dhx_ribbon-button__icon+.dhx_ribbon-button__text,.dhx_ribbon-button-image--auto .dhx_ribbon-button__icon+.dhx_ribbon-button__text,.dhx_ribbon-button-image--medium .dhx_ribbon-button__icon+.dhx_ribbon-button__text{margin-left:0;margin-top:2px}.dhx_ribbon-button--icon,.dhx_ribbon-button-image--icon{flex:1 0 auto;justify-content:center}.dhx_ribbon-button--select,.dhx_ribbon-button-image--select{padding-right:8px}.dhx_ribbon-button--select .dhx_ribbon-button__text,.dhx_ribbon-button-image--select .dhx_ribbon-button__text{margin-right:8px}.dhx_ribbon-button-image:hover,.dhx_ribbon-button:hover{background-color:rgba(0,0,0,.07);transition:background-color .2s ease-out}.dhx_ribbon-button--active,.dhx_ribbon-button-image--active,.dhx_ribbon-button-image:active,.dhx_ribbon-button:active{background-color:#f2f9fd;transition:background-color .2s ease-out,box-shadow .2s ease-out;box-shadow:inset 0 0 0 1px #b3dbf1}.dhx_ribbon-button--disabled,.dhx_ribbon-button-image--disabled,.dhx_ribbon-button-image:disabled,.dhx_ribbon-button:disabled{opacity:.8;pointer-events:auto;cursor:default}.dhx_ribbon-button--disabled:hover,.dhx_ribbon-button-image--disabled:hover,.dhx_ribbon-button-image:disabled:hover,.dhx_ribbon-button:disabled:hover{background-color:transparent}.dhx_ribbon-button--disabled *,.dhx_ribbon-button-image--disabled *,.dhx_ribbon-button-image:disabled *,.dhx_ribbon-button:disabled *{color:rgba(0,0,0,.3)}.dhx_ribbon-button-image__text+.dhx_ribbon-button-image__image{margin-right:4px}.dhx_ribbon-button-image{flex-flow:row-reverse;justify-content:flex-end}.dhx_ribbon-button-image__count{order:-1}.dhx_ribbon-button-image__image{width:20px;height:20px;background-size:cover;background-position:50%;background-repeat:no-repeat}.dhx_ribbon-button-image--icon{justify-content:center}.dhx_ribbon-button-image__count{margin-left:8px}.dhx_ribbon-button-image--auto .dhx_ribbon-button__count,.dhx_ribbon-button-image--medium .dhx_ribbon-button__count{margin-left:0;position:absolute;top:4px;right:4px}.dhx_ribbon-button-image--auto,.dhx_ribbon-button-image--medium{flex-flow:column-reverse;justify-content:center;min-width:68px;min-height:68px;height:100%}.dhx_ribbon-button-image--auto .dhx_ribbon-button-image__image,.dhx_ribbon-button-image--medium .dhx_ribbon-button-image__image{margin-right:0;width:32px;height:32px}.dhx_ribbon-button-image__caret,.dhx_ribbon-button__caret{margin-left:auto;color:rgba(0,0,0,.5);transform:rotate(90deg)}.dhx_ribbon-block{display:flex;text-align:center}.dhx_ribbon-block--root{width:100%}.dhx_ribbon-block--title{position:relative;padding-bottom:20px}.dhx_ribbon-block--indented{margin-right:4px;margin-left:4px}.dhx_ribbon-block--indented:first-child{margin-left:0}.dhx_ribbon-block--indented:last-child{margin-right:0}.dhx_ribbon-block--col>.dhx_ribbon-content{flex-direction:column}.dhx_ribbon-block--row>.dhx_ribbon-content{flex-direction:row}.dhx_ribbon-block--row .dhx_ribbon-button--auto,.dhx_ribbon-block--row .dhx_ribbon-button-image--auto{flex-direction:column;justify-content:center}.dhx_ribbon-content{flex:1 0 auto;margin:0;padding:0;list-style:none;display:flex}.dhx_ribbon-content-label-wrapper{display:block;position:absolute;bottom:-6px;left:0;right:0;overflow:hidden}.dhx_ribbon-content-label{position:relative;display:inline;font-family:Roboto;font-style:normal;font-weight:400;font-size:14px;line-height:16px;text-align:center;color:rgba(0,0,0,.38)}.dhx_ribbon-content-label:after,.dhx_ribbon-content-label:before{content:"";position:absolute;top:50%;display:block;height:1px;background:rgba(0,0,0,.07);width:1000%}.dhx_ribbon-content-label:before{left:calc(100% + 4px)}.dhx_ribbon-content-label:after{right:calc(100% + 4px)}.dhx_sidebar{height:100%;position:relative;background-color:#fff;z-index:1}.dhx_sidebar:focus{outline:none}.dhx_sidebar__item .dhx_custom-button{overflow:hidden}.dhx_sidebar__item--spacer{flex:1 0 auto}.dhx_sidebar__item--separator{height:1px;min-height:1px;width:100%;background-color:#dfdfdf;margin:2px 0}.dhx_sidebar--minimized .dhx_navbar-title{opacity:0;pointer-events:none}.dhx_sidebar--minimized .dhx_sidebar-button__icon{margin-left:auto;margin-right:auto}.dhx_sidebar--minimized .dhx_sidebar-button--select{padding-right:12px}.dhx_sidebar--minimized .dhx_sidebar-button__count{position:absolute;max-width:24px;overflow:hidden;top:-4px;right:4px}.dhx_sidebar--minimized .dhx_sidebar-button--select .dhx_sidebar-button__count{margin-right:0}.dhx_sidebar--minimized .dhx_sidebar-button__caret,.dhx_sidebar--minimized .dhx_sidebar-button__text{display:none}.dhx_sidebar-button__icon+.dhx_sidebar-button__text{margin-left:12px}.dhx_sidebar-button{position:relative;display:flex;width:100%;justify-content:flex-start;align-items:center;padding:12px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;font-weight:400;color:rgba(0,0,0,.7);background-color:transparent;transition:background-color .2s ease-in}.dhx_sidebar-button--select{padding-right:8px}.dhx_sidebar-button--select .dhx_sidebar-button__count{margin-right:8px}.dhx_sidebar-button--icon{padding-right:12px}.dhx_sidebar-button:hover{background-color:rgba(0,0,0,.07);transition:background-color .2s ease-out}.dhx_sidebar-button--active,.dhx_sidebar-button:active{background-color:rgba(0,0,0,.15);transition:background-color .2s ease-out}.dhx_sidebar-button--active{box-shadow:inset 2px 0 0 0 #0288d1}.dhx_sidebar-button--disabled,.dhx_sidebar-button:disabled{opacity:.8;pointer-events:auto;cursor:default}.dhx_sidebar-button--disabled:hover,.dhx_sidebar-button:disabled:hover{background-color:transparent}.dhx_sidebar-button--disabled *,.dhx_sidebar-button:disabled *{color:rgba(0,0,0,.3)}.dhx_sidebar-button__icon{color:rgba(0,0,0,.5)}.dhx_widget .dhx_sidebar-button__icon{line-height:0}.dhx_widget .dhx_sidebar-button__icon:before{font-size:20px;line-height:20px}.dhx_sidebar-button__html,.dhx_sidebar-button__text{width:100%;text-align:left}.dhx_sidebar-button__count+.dhx_sidebar-button__caret{margin-left:0}.dhx_sidebar-button__count{min-width:24px;flex:1 0 auto;width:auto;margin:-4px 0 -4px auto}.dhx_sidebar-button__caret{margin-right:0;margin-left:auto}.dhx_toolbar{display:flex;margin:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:12px 0;background-color:#fff}.dhx_toolbar__item--spacer{flex:1 0 auto}.dhx_toolbar__item--separator{width:1px;min-width:1px;height:100%;background-color:#dfdfdf;margin:0 2px;height:28px}.dhx_toolbar__item:first-child .dhx_form-group,.dhx_toolbar__item:first-child .dhx_navbar-title,.dhx_toolbar__item:first-child button:not(.dhx_toolbar-button){margin-left:12px}.dhx_toolbar__item:first-child button.dhx_button--view_link,.dhx_toolbar__item:not(:first-child) .dhx_form-group,.dhx_toolbar__item:not(:first-child) .dhx_navbar-title,.dhx_toolbar__item:not(:first-child) button:not(.dhx_toolbar-button){margin-left:4px}.dhx_toolbar__item:last-child .dhx_form-group,.dhx_toolbar__item:last-child .dhx_navbar-title,.dhx_toolbar__item:last-child button:not(.dhx_toolbar-button){margin-right:12px}.dhx_toolbar__item:last-child button.dhx_button--view_link,.dhx_toolbar__item:not(:last-child) .dhx_form-group,.dhx_toolbar__item:not(:last-child) .dhx_navbar-title,.dhx_toolbar__item:not(:last-child) button:not(.dhx_toolbar-button){margin-right:4px}.dhx_toolbar .dhx_button__icon--menu{transform:rotate(90deg)}.dhx_toolbar__input{height:32px}@supports (display:block){.dhx_toolbar__input{height:unset}}.dhx_toolbar__input .dhx_input{height:32px}@supports (display:block){.dhx_toolbar__input .dhx_input{height:unset}}.dhx_toolbar-button{position:relative;display:flex;justify-content:center;align-items:center;padding:6px 12px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;font-weight:500;color:rgba(0,0,0,.7);background-color:transparent;border-radius:2px;transition:background-color .2s ease-in}.dhx_toolbar-button--select{padding-right:8px}.dhx_toolbar-button--icon{padding-right:12px}.dhx_toolbar-button--circle{border-radius:32px}.dhx_toolbar-button--circle.dhx_toolbar-button--icon{padding-left:6px;padding-right:6px}.dhx_toolbar-button:hover{background-color:rgba(0,0,0,.07);transition:background-color .2s ease-out}.dhx_toolbar-button--active,.dhx_toolbar-button:active{background-color:rgba(0,0,0,.15);transition:background-color .2s ease-out}.dhx_toolbar-button--disabled,.dhx_toolbar-button:disabled{opacity:.8;pointer-events:auto;cursor:default}.dhx_toolbar-button--disabled:hover,.dhx_toolbar-button:disabled:hover{background-color:transparent}.dhx_toolbar-button--disabled *,.dhx_toolbar-button:disabled *{color:rgba(0,0,0,.3)}.dhx_toolbar-button__icon{color:rgba(0,0,0,.7)}.dhx_widget .dhx_toolbar-button__icon{line-height:0}.dhx_widget .dhx_toolbar-button__icon:before{font-size:20px;line-height:20px}.dhx_toolbar-button__icon+.dhx_toolbar-button__text{margin-left:8px}.dhx_toolbar-button__count{position:absolute;top:-10px;right:-10px}.dhx_toolbar-button__caret{margin-left:8px;color:rgba(0,0,0,.5);transform:rotate(90deg)}.dhx_toolbar-button-image{display:flex;justify-content:center;align-items:center;position:relative;width:44px;height:44px;padding:0;margin-top:-8px;margin-bottom:-8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);border-radius:50%;transition:opacity .2s ease-in}.dhx_toolbar-button-image:hover{opacity:.8;transition:opacity .2s ease-out}.dhx_toolbar-button-image__image{position:absolute;border-radius:50%;top:0;left:0;right:0;bottom:0;background-size:cover;background-position:50%;background-repeat:no-repeat;z-index:1}.dhx_toolbar-button-image__text{text-align:center;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dhx_toolbar-button-image__count{position:absolute;top:-4px;right:-4px}.dhx_tabbar{display:flex;max-height:100%;height:100%;max-width:100%;background-color:#fff}.dhx_tabbar--top{flex-direction:column}.dhx_tabbar--top .dhx_tabbar-header__wrapper:after{left:0;height:1px;width:100%;bottom:0}.dhx_tabbar--top .dhx_layout-cell{height:100%;overflow:auto;flex:1 1 auto}.dhx_tabbar--top .dhx_tabbar-header{flex-direction:row}.dhx_tabbar--top .dhx_tabbar-header-active{bottom:0}.dhx_tabbar--top .dhx_tabbar-tab{flex:0 0 auto}.dhx_tabbar--top .dhx_tabbar-tab-button{text-align:center}.dhx_tabbar--bottom{flex-direction:column-reverse}.dhx_tabbar--bottom .dhx_tabbar-header__wrapper:after{left:0;height:1px;width:100%;top:0}.dhx_tabbar--bottom .dhx_layout-cell{height:100%;overflow:auto;flex:1 1 auto}.dhx_tabbar--bottom .dhx_tabbar-header{flex-direction:row}.dhx_tabbar--bottom .dhx_tabbar-header-active{top:0}.dhx_tabbar--bottom .dhx_tabbar-tab{flex:0 0 auto}.dhx_tabbar--bottom .dhx_tabbar-tab-button{text-align:center}.dhx_tabbar--left{flex-direction:row}.dhx_tabbar--left .dhx_tabbar-header__wrapper:after{right:0;height:100%;width:1px;bottom:0}.dhx_tabbar--left .dhx_layout-cell{height:100%;overflow:auto;flex:1 1 auto}.dhx_tabbar--left .dhx_tabbar-header{flex-direction:column}.dhx_tabbar--left .dhx_tabbar-header-active{right:0}.dhx_tabbar--left .dhx_tabbar-tab{flex:1 1 auto}.dhx_tabbar--left .dhx_tabbar-tab-button{text-align:right}.dhx_tabbar--right{flex-direction:row-reverse}.dhx_tabbar--right .dhx_tabbar-header__wrapper:after{left:0;height:100%;width:1px;bottom:0}.dhx_tabbar--right .dhx_layout-cell{height:100%;overflow:auto;flex:1 1 auto}.dhx_tabbar--right .dhx_tabbar-header{flex-direction:column}.dhx_tabbar--right .dhx_tabbar-header-active{left:0}.dhx_tabbar--right .dhx_tabbar-tab{flex:1 1 auto}.dhx_tabbar--right .dhx_tabbar-tab-button{text-align:left}.dhx_tabbar .dhx_layout-cell--content{flex:1 0 auto;overflow:auto}.dhx_tabbar-content--disabled{cursor:not-allowed;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:.7}.dhx_tabbar-header{display:flex;margin:0;padding:0;list-style:none}.dhx_tabbar-header__wrapper{position:relative;overflow:auto;flex:0 0 auto}.dhx_tabbar-header__wrapper:after{content:"";display:block;position:absolute;background:#e4e4e4}.dhx_tabbar-header-active{position:absolute;transition:transform .1s ease-in-out;background-color:#0288d1;z-index:1}.dhx_tabbar-tab{position:relative}.dhx_tabbar-tab__close{position:absolute;top:50%;right:8px;transform:translateY(-50%);z-index:1;opacity:.7;color:#0288d1;cursor:pointer}.dhx_tabbar-tab__close:hover{opacity:1}.dhx_tabbar-tab__close:focus{outline:none}.dhx_tabbar-tab-button{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:500;line-height:20px;position:relative;padding:12px 24px;border-radius:0;color:#0288d1;text-transform:uppercase;background-color:transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background-color .2s ease-in}.dhx_tabbar-tab-button .dhx_button__text{opacity:.7}.dhx_tabbar-tab-button:active,.dhx_tabbar-tab-button:hover,.dhx_tabbar-tab-button:hover:active{background-color:#ededed;transition:background-color .2s ease-out}.dhx_tabbar-tab-button--active .dhx_button__text{opacity:1}.dhx_tabbar-tab-button--disabled{cursor:not-allowed}.dhx_tabbar-tab-button--disabled *{cursor:not-allowed;pointer-events:none}.dhx_tabbar-tab-button--disabled .dhx_button__text{color:rgba(0,0,0,.3)}.dhx_tree{list-style:none;margin:0;padding:0;position:relative;z-index:1}.dhx_tree--no-selection{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_tree--no-selection .dhx_tree-folder:hover:before,.dhx_tree--no-selection .dhx_tree-list-item:hover:before{transition:background-color .2s ease-out;background-color:transparent}.dhx_tree-list{list-style:none;margin:0;padding:0 0 0 20px}.dhx_tree-folder{display:flex;align-items:center;padding-top:2px;padding-bottom:2px}.dhx_tree-folder .dhx_tree-list-item__content{padding-left:20px}.dhx_tree-folder .dhx_tree-toggle-button+.dhx_tree-list-item__content{padding-left:0}.dhx_tree-list-item{display:flex;align-items:center;cursor:pointer;padding-top:2px;padding-bottom:2px;transition:background-color .2s ease-out}.dhx_tree-list-item__content{display:flex;align-items:center;padding-left:20px;position:relative}.dhx_tree-list-item__content:before{content:"";display:block;position:absolute;top:-1.5px;bottom:-1.5px;right:inherit;left:inherit;transition:background-color .2s ease-in;z-index:-1}.dhx_tree-list-item__text{padding-left:4px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:normal;color:rgba(0,0,0,.7)}.dhx_tree-list-item__icon{color:rgba(0,0,0,.3);line-height:1;font-size:0}.dhx_tree-list-item__icon:before{font-size:20px;line-height:1}.dhx_tree-list-item--parent{display:block;padding-top:0;padding-bottom:0}.dhx_tree-list-item .dhx_widget .dhx_tree-list-item__icon{line-height:0}.dhx_tree-list-item .dhx_widget .dhx_tree-list-item__icon:before{font-size:20px;line-height:20px}.dhx_tree-folder,.dhx_tree-list-item{position:relative}.dhx_tree-folder:before,.dhx_tree-list-item:before{content:"";display:block;position:absolute;top:0;bottom:0;right:inherit;left:inherit;transition:background-color .2s ease-in;z-index:-1}.dhx_tree-folder--focused:before,.dhx_tree-folder:hover:before,.dhx_tree-list-item--focused:before,.dhx_tree-list-item:hover:before{transition:background-color .2s ease-out;background-color:#ededed}.dhx_tree-folder--selected:before,.dhx_tree-list-item--selected:before{transition:background-color .2s ease-out;box-shadow:inset 2px 0 0 0 #0288d1;background-color:#f7f7f7}.dhx_tree-toggle-button{cursor:pointer;color:rgba(0,0,0,.5)}.dhx_tree-toggle-button+.dhx_tree-list-item__content{margin-left:0}.dhx_tree-checkbox{padding-right:4px;color:#0288d1}.dhx_tree-checkbox.dxi-checkbox-blank-outline{color:rgba(0,0,0,.5)}.dhx_tree-input{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);padding-left:4px;padding-top:0;padding-bottom:0;margin:0;background-color:#f7f7f7;border:none}.dhx_tree-input:focus{outline:none}.dhx_tree-folder.dhx_tree-drop--top .dhx_tree-list-item__content:before{left:-20px;right:0;box-shadow:0 -1px 0 0 #81c4e8}.dhx_tree-folder.dhx_tree-drop--top:hover:before{background-color:transparent}.dhx_tree-folder.dhx_tree-drop--bottom .dhx_tree-list-item__content:before{left:-20px;right:0;box-shadow:0 1px 0 0 #81c4e8}.dhx_tree-folder.dhx_tree-drop--bottom:hover:before{background-color:transparent}.dhx_tree-folder.dhx_tree-drop--in-folder .dhx_tree-list-item__content:before{left:-20px;right:0;box-shadow:0 1px 0 0 #81c4e8,0 -1px 0 0 #81c4e8}.dhx_tree-folder.dhx_tree-drop--in-folder:hover:before{background-color:transparent}.dhx_tree-list-item.dhx_tree-drop--top .dhx_tree-list-item__content:before{left:20px;right:0;box-shadow:0 -1px 0 0 #81c4e8}.dhx_tree-list-item.dhx_tree-drop--top:hover:before{background-color:transparent}.dhx_tree-list-item.dhx_tree-drop--bottom .dhx_tree-list-item__content:before{left:20px;right:0;box-shadow:0 1px 0 0 #81c4e8}.dhx_tree-list-item.dhx_tree-drop--bottom:hover:before{background-color:transparent}.dhx_tree-list-item.dhx_tree-drop--in-folder .dhx_tree-list-item__content:before{left:20px;right:0;box-shadow:0 1px 0 0 #81c4e8,0 -1px 0 0 #81c4e8}.dhx_tree-list-item.dhx_tree-drop--in-folder:hover:before{background-color:transparent}.dhx_window{border-radius:2px;box-shadow:0 2px 5px rgba(0,0,0,.3);will-change:transform;overflow:visible}.dhx_window--stop_selection{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_window__overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:2147483645}.dhx_window-header{margin-bottom:20px}.dhx_window-header--movable{cursor:all-scroll}.dhx_window-header:before{content:"";display:block;position:absolute;top:0;left:0;right:0;width:100%;height:16px;transform:translateY(-100%)}.dhx_window-header .dhx_navbar-title{margin-left:0!important;font-size:18px}.dhx_window-content{padding-left:28px;padding-right:28px;padding-bottom:28px}.dhx_window-content,.dhx_window-content-without-header{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:400;color:rgba(0,0,0,.5);line-height:1.3;overflow-y:auto;overflow-wrap:break-word;word-wrap:break-word}.dhx_window-content-without-header{padding:28px}.dhx_window-footer{margin-top:20px}.dhx_window__inner-html-content :first-child{margin-top:0}body.dhx_window--no-scroll{width:100vw;height:100vh}.dhx_window--no-scroll{overflow:hidden}.dhx_window .dhx_cell_content,.dhx_window .dhx_toolbar{width:100%}.dhx_window .dhx_toolbar__list{min-height:auto}.dhx_window .dhx_window-header .dhx_toolbar{padding:28px 28px 0}.dhx_window .dhx_window-footer .dhx_toolbar{padding:0 28px 28px}.dhx_window .dhx_cell_content{height:100%;display:flex;flex-direction:column}.dhx_window-resizer{position:absolute;background:transparent}.dhx_window-resizer--left{left:-6px;top:0;height:100%;width:12px}.dhx_window-resizer--left:hover{cursor:ew-resize}.dhx_window-resizer--right{right:-6px;top:0;height:100%;width:12px}.dhx_window-resizer--right:hover{cursor:ew-resize}.dhx_window-resizer--top{left:0;top:-6px;height:12px;width:100%}.dhx_window-resizer--top:hover{cursor:ns-resize}.dhx_window-resizer--bottom{left:0;bottom:-6px;height:12px;width:100%}.dhx_window-resizer--bottom:hover{cursor:ns-resize}.dhx_window-resizer--top_right{right:-6px;top:-6px;width:12px;height:12px}.dhx_window-resizer--top_right:hover{cursor:nesw-resize}.dhx_window-resizer--top_left{left:-6px;top:-6px;width:12px;height:12px}.dhx_window-resizer--top_left:hover{cursor:nwse-resize}.dhx_window-resizer--bottom_right{right:-6px;bottom:-6px;width:12px;height:12px}.dhx_window-resizer--bottom_right:hover{cursor:nwse-resize}.dhx_window-resizer--bottom_left{left:-6px;bottom:-6px;width:12px;height:12px}.dhx_window-resizer--bottom_left:hover{cursor:nesw-resize}.dhx_window-body-pointer--left,.dhx_window-body-pointer--right{cursor:ew-resize}.dhx_window-body-pointer--bottom,.dhx_window-body-pointer--top{cursor:ns-resize}.dhx_window-body-pointer--top_right{cursor:nesw-resize}.dhx_window-body-pointer--bottom_right,.dhx_window-body-pointer--top_left{cursor:nwse-resize}.dhx_window-body-pointer--bottom_left{cursor:nesw-resize}
diff --git a/codebase/suite.js b/codebase/suite.js
index 4691d04..fd86e10 100644
--- a/codebase/suite.js
+++ b/codebase/suite.js
@@ -1,12 +1,12 @@
/*
@license
-dhtmlxSuite v.6.1.4 GPL
+dhtmlxSuite v.6.4.2 GPL
This software is covered by GPL license.
To use it in non-GPL project, you need obtain Commercial or Enterprise license
Please contact sales@dhtmlx.com. Usage without proper license is prohibited.
-(c) Dinamenta, UAB.
+(c) XB Software.
*/
if (window.dhx){ window.dhx_legacy = dhx; delete window.dhx; }(function webpackUniversalModuleDefinition(root, factory) {
@@ -102,7 +102,7 @@ return /******/ (function(modules) { // webpackBootstrap
/******/
/******/
/******/ // Load entry module and return exports
-/******/ return __webpack_require__(__webpack_require__.s = 81);
+/******/ return __webpack_require__(__webpack_require__.s = 83);
/******/ })
/************************************************************************/
/******/ ([
@@ -110,14 +110,15 @@ return /******/ (function(modules) { // webpackBootstrap
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-
+/* WEBPACK VAR INJECTION */(function(Promise) {
Object.defineProperty(exports, "__esModule", { value: true });
-var dom = __webpack_require__(97);
+var dom = __webpack_require__(90);
exports.el = dom.defineElement;
exports.sv = dom.defineSvgElement;
exports.view = dom.defineView;
exports.create = dom.createView;
exports.inject = dom.injectView;
+exports.KEYED_LIST = dom.KEYED_LIST;
function disableHelp() {
dom.DEVMODE.mutations = false;
dom.DEVMODE.warnings = false;
@@ -151,7 +152,20 @@ function resizer(handler) {
});
}
exports.resizer = resizer;
+function resizeHandler(container, handler) {
+ return exports.create({ render: function () { return resizer(handler); } }).mount(container);
+}
+exports.resizeHandler = resizeHandler;
+function awaitRedraw() {
+ return new Promise(function (res) {
+ requestAnimationFrame(function () {
+ res();
+ });
+ });
+}
+exports.awaitRedraw = awaitRedraw;
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(12)))
/***/ }),
/* 1 */
@@ -160,7 +174,7 @@ exports.resizer = resizer;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var html_1 = __webpack_require__(3);
+var html_1 = __webpack_require__(2);
var counter = (new Date()).valueOf();
function uid() {
return "u" + (counter++);
@@ -172,7 +186,10 @@ function extend(target, source, deep) {
for (var key in source) {
var sobj = source[key];
var tobj = target[key];
- if (deep && typeof tobj === "object" && !(tobj instanceof Date) && !(tobj instanceof Array)) {
+ if (sobj === undefined) {
+ delete target[key];
+ }
+ else if (deep && typeof tobj === "object" && !(tobj instanceof Date) && !(tobj instanceof Array)) {
extend(tobj, sobj);
}
else {
@@ -270,68 +287,86 @@ function isNumeric(val) {
return !isNaN(val - parseFloat(val));
}
exports.isNumeric = isNumeric;
-
-
-/***/ }),
-/* 2 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var EventSystem = /** @class */ (function () {
- function EventSystem(context) {
- this.events = {};
- this.context = context || this;
+function downloadFile(data, filename, mimeType) {
+ if (mimeType === void 0) { mimeType = "text/plain"; }
+ var file = new Blob([data], { type: mimeType });
+ if (window.navigator.msSaveOrOpenBlob) {
+ // IE10+
+ window.navigator.msSaveOrOpenBlob(file, filename);
}
- EventSystem.prototype.on = function (name, callback, context) {
- var event = name.toLowerCase();
- this.events[event] = this.events[event] || [];
- this.events[event].push({ callback: callback, context: context || this.context });
- };
- EventSystem.prototype.detach = function (name, context) {
- var event = name.toLowerCase();
- var eStack = this.events[event];
- if (context && eStack && eStack.length) {
- for (var i = eStack.length - 1; i >= 0; i--) {
- if (eStack[i].context === context) {
- eStack.splice(i, 1);
- }
+ else {
+ var a_1 = document.createElement("a");
+ var url_1 = URL.createObjectURL(file);
+ a_1.href = url_1;
+ a_1.download = filename;
+ document.body.appendChild(a_1);
+ a_1.click();
+ setTimeout(function () {
+ document.body.removeChild(a_1);
+ window.URL.revokeObjectURL(url_1);
+ }, 0);
+ }
+}
+exports.downloadFile = downloadFile;
+function debounce(func, wait, immediate) {
+ var timeout;
+ return function executedFunction() {
+ var _this = this;
+ var args = arguments;
+ var later = function () {
+ timeout = null;
+ if (!immediate) {
+ func.apply(_this, args);
}
- }
- else {
- this.events[event] = [];
+ };
+ var callNow = immediate && !timeout;
+ clearTimeout(timeout);
+ timeout = setTimeout(later, wait);
+ if (callNow) {
+ func.apply(this, args);
}
};
- EventSystem.prototype.fire = function (name, args) {
- if (typeof args === "undefined") {
- args = [];
+}
+exports.debounce = debounce;
+function compare(obj1, obj2) {
+ for (var p in obj1) {
+ if (obj1.hasOwnProperty(p) !== obj2.hasOwnProperty(p)) {
+ return false;
}
- var event = name.toLowerCase();
- if (this.events[event]) {
- var res = this.events[event].map(function (e) { return e.callback.apply(e.context, args); });
- return res.indexOf(false) < 0;
+ switch (typeof (obj1[p])) {
+ case "object":
+ if (!compare(obj1[p], obj2[p])) {
+ return false;
+ }
+ break;
+ case "function":
+ if (typeof (obj2[p]) === "undefined" || (p !== "compare" && obj1[p].toString() !== obj2[p].toString())) {
+ return false;
+ }
+ break;
+ default:
+ if (obj1[p] !== obj2[p]) {
+ return false;
+ }
}
- return true;
- };
- EventSystem.prototype.clear = function () {
- this.events = {};
- };
- return EventSystem;
-}());
-exports.EventSystem = EventSystem;
-function EventsMixin(obj) {
- obj = obj || {};
- var eventSystem = new EventSystem(obj);
- obj.detachEvent = eventSystem.detach.bind(eventSystem);
- obj.attachEvent = eventSystem.on.bind(eventSystem);
- obj.callEvent = eventSystem.fire.bind(eventSystem);
+ }
+ for (var p in obj2) {
+ if (typeof (obj1[p]) === "undefined") {
+ return false;
+ }
+ }
+ return true;
}
-exports.EventsMixin = EventsMixin;
+exports.compare = compare;
+exports.isType = function (value) {
+ var regex = /^\[object (\S+?)\]$/;
+ var matches = Object.prototype.toString.call(value).match(regex) || [];
+ return (matches[1] || "undefined").toLowerCase();
+};
/***/ }),
-/* 3 */
+/* 2 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -348,7 +383,7 @@ var __assign = (this && this.__assign) || function () {
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
-__webpack_require__(84);
+__webpack_require__(86);
function toNode(node) {
if (typeof node === "string") {
node = (document.getElementById(node) || document.querySelector(node));
@@ -383,10 +418,11 @@ function locate(target, attr) {
return node ? node.getAttribute(attr) : "";
}
exports.locate = locate;
-function locateNode(target, attr) {
+function locateNode(target, attr, dir) {
if (attr === void 0) { attr = "dhx_id"; }
+ if (dir === void 0) { dir = "target"; }
if (target instanceof Event) {
- target = target.target;
+ target = target[dir];
}
while (target) {
if (target.getAttribute && target.getAttribute(attr)) {
@@ -396,6 +432,23 @@ function locateNode(target, attr) {
}
}
exports.locateNode = locateNode;
+function locateNodeByClassName(target, className) {
+ if (target instanceof Event) {
+ target = target.target;
+ }
+ while (target) {
+ if (className) {
+ if (target.classList && target.classList.contains(className)) {
+ return target;
+ }
+ }
+ else if (target.getAttribute && target.getAttribute("dhx_id")) {
+ return target;
+ }
+ target = target.parentNode;
+ }
+}
+exports.locateNodeByClassName = locateNodeByClassName;
function getBox(elem) {
var box = elem.getBoundingClientRect();
var body = document.body;
@@ -517,7 +570,7 @@ function placeBottomOrTop(pos, config) {
}
if (bottomDiff < 0 && topDiff < 0) {
if (config.auto) {
- return placeRightOrLeft(pos, __assign({}, config, { mode: Position.right, auto: false }));
+ return placeRightOrLeft(pos, __assign(__assign({}, config), { mode: Position.right, auto: false }));
}
top = bottomDiff > topDiff ? pos.bottom : topDiff;
}
@@ -563,7 +616,7 @@ function placeRightOrLeft(pos, config) {
}
if (leftDiff < 0 && rightDiff < 0) {
if (config.auto) {
- return placeBottomOrTop(pos, __assign({}, config, { mode: Position.bottom, auto: false }));
+ return placeBottomOrTop(pos, __assign(__assign({}, config), { mode: Position.bottom, auto: false }));
}
left = leftDiff > rightDiff ? leftDiff : pos.right;
}
@@ -587,6 +640,64 @@ function placeRightOrLeft(pos, config) {
}
+/***/ }),
+/* 3 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", { value: true });
+var EventSystem = /** @class */ (function () {
+ function EventSystem(context) {
+ this.events = {};
+ this.context = context || this;
+ }
+ EventSystem.prototype.on = function (name, callback, context) {
+ var event = name.toLowerCase();
+ this.events[event] = this.events[event] || [];
+ this.events[event].push({ callback: callback, context: context || this.context });
+ };
+ EventSystem.prototype.detach = function (name, context) {
+ var event = name.toLowerCase();
+ var eStack = this.events[event];
+ if (context && eStack && eStack.length) {
+ for (var i = eStack.length - 1; i >= 0; i--) {
+ if (eStack[i].context === context) {
+ eStack.splice(i, 1);
+ }
+ }
+ }
+ else {
+ this.events[event] = [];
+ }
+ };
+ EventSystem.prototype.fire = function (name, args) {
+ if (typeof args === "undefined") {
+ args = [];
+ }
+ var event = name.toLowerCase();
+ if (this.events[event]) {
+ var res = this.events[event].map(function (e) { return e.callback.apply(e.context, args); });
+ return res.indexOf(false) < 0;
+ }
+ return true;
+ };
+ EventSystem.prototype.clear = function () {
+ this.events = {};
+ };
+ return EventSystem;
+}());
+exports.EventSystem = EventSystem;
+function EventsMixin(obj) {
+ obj = obj || {};
+ var eventSystem = new EventSystem(obj);
+ obj.detachEvent = eventSystem.detach.bind(eventSystem);
+ obj.attachEvent = eventSystem.on.bind(eventSystem);
+ obj.callEvent = eventSystem.fire.bind(eventSystem);
+}
+exports.EventsMixin = EventsMixin;
+
+
/***/ }),
/* 4 */
/***/ (function(module, exports, __webpack_require__) {
@@ -595,7 +706,7 @@ function placeRightOrLeft(pos, config) {
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(1);
-var html_1 = __webpack_require__(3);
+var html_1 = __webpack_require__(2);
var View = /** @class */ (function () {
function View(_container, config) {
this._uid = core_1.uid();
@@ -669,6 +780,7 @@ var __assign = (this && this.__assign) || function () {
};
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
+var types_1 = __webpack_require__(6);
var defaultColors = [
"#394E79",
"#5E83BA",
@@ -768,7 +880,11 @@ exports.getFontStyle = memo(function (className) {
});
function linearGradient(grad, id) {
var stops = grad.stops;
- var colors = stops.map(function (item) { return dom_1.sv("stop", { "offset": item.offset * 100 + "%", "stop-color": item.color, "stop-opacity": item.opacity || 1 }); });
+ var colors = stops.map(function (item) { return dom_1.sv("stop", {
+ "offset": item.offset * 100 + "%",
+ "stop-color": item.color,
+ "stop-opacity": item.opacity || 1
+ }); });
var gradient = dom_1.sv("linearGradient", {
id: id,
gradientTransform: "rotate(90)"
@@ -777,7 +893,11 @@ function linearGradient(grad, id) {
}
exports.linearGradient = linearGradient;
function getRadialGradient(opts, stops, id) {
- var colors = stops.map(function (item) { return dom_1.sv("stop", { "offset": item.offset, "stop-color": item.color, "stop-opacity": item.opacity || 1 }); });
+ var colors = stops.map(function (item) { return dom_1.sv("stop", {
+ "offset": item.offset,
+ "stop-color": item.color,
+ "stop-opacity": item.opacity || 1
+ }); });
var gradient = dom_1.sv("radialGradient", __assign({ id: id, cx: 0, cy: 0, gradientUnits: "userSpaceOnUse" }, opts), colors);
return gradient;
}
@@ -808,6 +928,98 @@ function calcPointRef(pointId, serieId) {
return pointId + "_" + serieId;
}
exports.calcPointRef = calcPointRef;
+function getClassesForRotateScale(position, angle) {
+ var className = "";
+ var classList = [];
+ if (position === types_1.ScaleType.left || position === types_1.ScaleType.top) {
+ classList.push("start-text", "end-text");
+ }
+ else if (position === types_1.ScaleType.right || position === types_1.ScaleType.bottom) {
+ classList.push("end-text", "start-text");
+ }
+ switch (position) {
+ case types_1.ScaleType.left:
+ case types_1.ScaleType.right:
+ if (angle === 0) {
+ className = classList[1];
+ }
+ else if (angle > 0) {
+ if (angle === 180) {
+ className = classList[0];
+ }
+ else if (angle > 180) {
+ if (angle < 270) {
+ className = classList[0];
+ }
+ else if (angle > 270) {
+ className = classList[1];
+ }
+ }
+ else if (angle < 180) {
+ if (angle > 90) {
+ className = classList[0];
+ }
+ else if (angle < 90) {
+ className = classList[1];
+ }
+ }
+ }
+ else if (angle < 0) {
+ if (angle === -180) {
+ className = classList[0];
+ }
+ else if (angle < -180) {
+ if (angle > -270) {
+ className = classList[0];
+ }
+ else if (angle < -270) {
+ className = classList[1];
+ }
+ }
+ else if (angle > -180) {
+ if (angle < -90) {
+ className = classList[0];
+ }
+ else if (angle > -90) {
+ className = classList[1];
+ }
+ }
+ }
+ break;
+ case types_1.ScaleType.top:
+ case types_1.ScaleType.bottom:
+ if (angle > 0) {
+ if (angle > 180) {
+ className = classList[0];
+ }
+ else if (angle < 180) {
+ className = classList[1];
+ }
+ }
+ else if (angle < 0) {
+ if (angle > -180) {
+ className = classList[0];
+ }
+ else if (angle < -180) {
+ className = classList[1];
+ }
+ }
+ break;
+ }
+ return className;
+}
+exports.getClassesForRotateScale = getClassesForRotateScale;
+function getScales(config) {
+ var scales = [];
+ for (var scaleName in config) {
+ var scale = config[scaleName];
+ if (scale.min || scale.max || scale.maxTicks || scale.text || scale.value) {
+ scales.push(scaleName);
+ }
+ }
+ return scales;
+}
+exports.getScales = getScales;
/***/ }),
@@ -837,6 +1049,7 @@ var ChartEvents;
ChartEvents["chartMouseMove"] = "chartMouseMove";
ChartEvents["chartMouseLeave"] = "chartMouseLeave";
ChartEvents["resize"] = "resize";
+ ChartEvents["serieClick"] = "serieClick";
})(ChartEvents = exports.ChartEvents || (exports.ChartEvents = {}));
var ScaleType;
(function (ScaleType) {
@@ -899,16 +1112,18 @@ function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(17));
-__export(__webpack_require__(55));
-__export(__webpack_require__(92));
-__export(__webpack_require__(93));
-__export(__webpack_require__(25));
-__export(__webpack_require__(18));
-__export(__webpack_require__(58));
+__export(__webpack_require__(15));
__export(__webpack_require__(57));
__export(__webpack_require__(95));
-__export(__webpack_require__(56));
+__export(__webpack_require__(96));
+__export(__webpack_require__(21));
+__export(__webpack_require__(98));
+__export(__webpack_require__(16));
+__export(__webpack_require__(60));
+__export(__webpack_require__(59));
+__export(__webpack_require__(99));
+__export(__webpack_require__(58));
+__export(__webpack_require__(34));
/***/ }),
@@ -944,6 +1159,11 @@ var FormEvents;
FormEvents["beforeSend"] = "beforesend";
FormEvents["afterSend"] = "aftersend";
})(FormEvents = exports.FormEvents || (exports.FormEvents = {}));
+var BaseElementEvent;
+(function (BaseElementEvent) {
+ BaseElementEvent["change"] = "change";
+ BaseElementEvent["configUpdate"] = "configUpdate";
+})(BaseElementEvent = exports.BaseElementEvent || (exports.BaseElementEvent = {}));
var Validation;
(function (Validation) {
Validation["empty"] = "";
@@ -972,18 +1192,18 @@ var ClearMethod;
"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
var _a;
+Object.defineProperty(exports, "__esModule", { value: true });
var types_1 = __webpack_require__(8);
function getFormItemCss(item, validate) {
var _a;
- var labelInline = item.labelInline, required = item.required, disabled = item.disabled, hiddenLabel = item.hiddenLabel, css = item.css, $validationStatus = item.$validationStatus;
+ var labelPosition = item.labelPosition, required = item.required, disabled = item.disabled, hiddenLabel = item.hiddenLabel, css = item.css, $validationStatus = item.$validationStatus;
var cssStatus = (_a = {},
_a[types_1.ValidationStatus.pre] = "",
_a[types_1.ValidationStatus.error] = " dhx_form-group--state_error",
_a[types_1.ValidationStatus.success] = " dhx_form-group--state_success",
_a)[$validationStatus] || "";
- var labelPositionCss = labelInline ? " dhx_form-group--inline" : "";
+ var labelPositionCss = labelPosition === "right" || labelPosition === "left" ? " dhx_form-group--inline" : "";
var requiredCss = required ? " dhx_form-group--required" : "";
var disabledCss = disabled ? " dhx_form-group--disabled" : "";
var labelSrCss = hiddenLabel ? " dhx_form-group--label_sr" : "";
@@ -1049,6 +1269,12 @@ function isTimeFormat(value, timeFormat) {
return /(^(0[0-9]|1[0-9]|2[0-3]|[0-9]):[0-5][0-9]$)/i.test(value);
}
exports.isTimeFormat = isTimeFormat;
+exports.isEmptyObj = function (obj) {
+ for (var key in obj) {
+ return false;
+ }
+ return true;
+};
/***/ }),
@@ -1057,33 +1283,24 @@ exports.isTimeFormat = isTimeFormat;
"use strict";
-function __export(m) {
- for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(126));
-__export(__webpack_require__(62));
-
-
-/***/ }),
-/* 11 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
Object.defineProperty(exports, "__esModule", { value: true });
var EditorType;
(function (EditorType) {
EditorType["input"] = "input";
EditorType["select"] = "select";
EditorType["datepicker"] = "datePicker";
+ EditorType["checkbox"] = "checkbox";
+ EditorType["combobox"] = "combobox";
})(EditorType = exports.EditorType || (exports.EditorType = {}));
var GridEvents;
(function (GridEvents) {
GridEvents["scroll"] = "scroll";
GridEvents["sort"] = "sort";
GridEvents["expand"] = "expand";
- GridEvents["headerInput"] = "headerInput";
+ GridEvents["filterChange"] = "filterChange";
+ GridEvents["beforeResizeStart"] = "beforeResizeStart";
+ GridEvents["resize"] = "resize";
+ GridEvents["afterResizeEnd"] = "afterResizeEnd";
GridEvents["cellClick"] = "cellClick";
GridEvents["cellRightClick"] = "cellRightClick";
GridEvents["cellMouseOver"] = "cellMouseOver";
@@ -1103,11 +1320,15 @@ var GridEvents;
GridEvents["afterEditStart"] = "afterEditStart";
GridEvents["beforeEditEnd"] = "beforeEditEnd";
GridEvents["afterEditEnd"] = "afterEditEnd";
+ GridEvents["beforeKeyDown"] = "beforeKeyDown";
+ GridEvents["afterKeyDown"] = "afterKeyDown";
+ // TODO: remove suite_7.0
+ GridEvents["headerInput"] = "headerInput";
})(GridEvents = exports.GridEvents || (exports.GridEvents = {}));
/***/ }),
-/* 12 */
+/* 11 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -1116,133 +1337,26 @@ function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(99));
+__export(__webpack_require__(131));
+__export(__webpack_require__(64));
/***/ }),
-/* 13 */
+/* 12 */
/***/ (function(module, exports, __webpack_require__) {
-"use strict";
+/* WEBPACK VAR INJECTION */(function(global, setImmediate) {(function () {
+ global = this
-Object.defineProperty(exports, "__esModule", { value: true });
-function getHotKeyCode(code) {
- var matches = code.toLowerCase().match(/\w+/g);
- var comp = 0;
- var key = "";
- for (var i = 0; i < matches.length; i++) {
- var check = matches[i];
- if (check === "ctrl") {
- comp += 4;
- }
- else if (check === "shift") {
- comp += 2;
- }
- else if (check === "alt") {
- comp += 1;
- }
- else {
- key = check;
- }
- }
- return comp + key;
-}
-var KeyManager = /** @class */ (function () {
- function KeyManager() {
- var _this = this;
- this._keysStorage = {};
- document.addEventListener("keydown", function (e) {
- var comp = (e.ctrlKey || e.metaKey ? 4 : 0) + (e.shiftKey ? 2 : 0) + (e.altKey ? 1 : 0);
- var key;
- if ((e.which >= 48 && e.which <= 57) || (e.which >= 65 && e.which <= 90)) { // A-Z 0-9
- key = String.fromCharCode(e.which);
- }
- else {
- key = e.key;
- }
- var code = comp + (key && key.toLowerCase());
- var actions = _this._keysStorage[code];
- if (actions) {
- for (var i = 0; i < actions.length; i++) {
- actions[i].handler(e);
- }
- }
- });
- }
- KeyManager.prototype.addHotKey = function (key, handler, scope) {
- var code = getHotKeyCode(key);
- if (!this._keysStorage[code]) {
- this._keysStorage[code] = [];
- }
- this._keysStorage[code].push({
- handler: handler,
- scope: scope
- });
- };
- KeyManager.prototype.removeHotKey = function (key, scope) {
- var keyStorage = this._keysStorage;
- if (key) {
- var code = getHotKeyCode(key);
- delete keyStorage[code];
- }
- if (scope) {
- for (var code in keyStorage) {
- var toDelete = []; // items index to delete
- for (var i = 0; i < keyStorage[code].length; i++) {
- if (keyStorage[code][i].scope === scope) {
- toDelete.push(i);
- }
- }
- if (keyStorage[code].length === toDelete.length) {
- delete keyStorage[code];
- }
- else {
- for (var i = toDelete.length - 1; i >= 0; i--) { // begin from last coz splice change other index
- keyStorage[code].splice(toDelete[i], 1);
- }
- }
- }
- }
- };
- KeyManager.prototype.exist = function (key) {
- var code = getHotKeyCode(key);
- return !!this._keysStorage[code];
- };
- return KeyManager;
-}());
-exports.keyManager = new KeyManager();
-function addHotkeys(handlers, beforeCall) {
- var context = new Date();
- var wrapHandler = function (handler) { return function (e) {
- if (beforeCall && beforeCall() === false) {
- return;
- }
- handler(e);
- }; };
- for (var key in handlers) {
- exports.keyManager.addHotKey(key, wrapHandler(handlers[key]), context);
- }
- return function () { return exports.keyManager.removeHotKey(undefined, context); };
-}
-exports.addHotkeys = addHotkeys;
-
-
-/***/ }),
-/* 14 */
-/***/ (function(module, exports, __webpack_require__) {
-
-/* WEBPACK VAR INJECTION */(function(global, setImmediate) {(function () {
- global = this
-
- var queueId = 1
- var queue = {}
- var isRunningTask = false
-
- if (!global.setImmediate)
- global.addEventListener('message', function (e) {
- if (e.source == global){
- if (isRunningTask)
- nextTick(queue[e.data])
+ var queueId = 1
+ var queue = {}
+ var isRunningTask = false
+
+ if (!global.setImmediate)
+ global.addEventListener('message', function (e) {
+ if (e.source == global){
+ if (isRunningTask)
+ nextTick(queue[e.data])
else {
isRunningTask = true
try {
@@ -1548,10 +1662,125 @@ exports.addHotkeys = addHotkeys;
} else {}
})()
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(32), __webpack_require__(85).setImmediate))
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(33), __webpack_require__(87).setImmediate))
/***/ }),
-/* 15 */
+/* 13 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", { value: true });
+var html_1 = __webpack_require__(2);
+function getHotKeyCode(code) {
+ var matches = code.toLowerCase().match(/\w+/g);
+ var comp = 0;
+ var key = "";
+ for (var i = 0; i < matches.length; i++) {
+ var check = matches[i];
+ if (check === "ctrl") {
+ comp += 4;
+ }
+ else if (check === "shift") {
+ comp += 2;
+ }
+ else if (check === "alt") {
+ comp += 1;
+ }
+ else {
+ key = check;
+ }
+ }
+ return comp + key;
+}
+var KeyManager = /** @class */ (function () {
+ function KeyManager() {
+ var _this = this;
+ this._keysStorage = {};
+ document.addEventListener("keydown", function (e) {
+ var comp = (e.ctrlKey || e.metaKey ? 4 : 0) + (e.shiftKey ? 2 : 0) + (e.altKey ? 1 : 0);
+ var key;
+ if ((e.which >= 48 && e.which <= 57) || (e.which >= 65 && e.which <= 90)) { // A-Z 0-9
+ key = String.fromCharCode(e.which);
+ }
+ else {
+ // dirty: added space binding
+ if (e.which === 32 && !html_1.isIE()) {
+ key = e.code;
+ }
+ else {
+ key = e.key;
+ }
+ }
+ var code = comp + (key && key.toLowerCase());
+ var actions = _this._keysStorage[code];
+ if (actions) {
+ for (var i = 0; i < actions.length; i++) {
+ actions[i].handler(e);
+ }
+ }
+ });
+ }
+ KeyManager.prototype.addHotKey = function (key, handler, scope) {
+ var code = getHotKeyCode(key);
+ if (!this._keysStorage[code]) {
+ this._keysStorage[code] = [];
+ }
+ this._keysStorage[code].push({
+ handler: handler,
+ scope: scope
+ });
+ };
+ KeyManager.prototype.removeHotKey = function (key, scope) {
+ var keyStorage = this._keysStorage;
+ if (key) {
+ var code = getHotKeyCode(key);
+ delete keyStorage[code];
+ }
+ if (scope) {
+ for (var code in keyStorage) {
+ var toDelete = []; // items index to delete
+ for (var i = 0; i < keyStorage[code].length; i++) {
+ if (keyStorage[code][i].scope === scope) {
+ toDelete.push(i);
+ }
+ }
+ if (keyStorage[code].length === toDelete.length) {
+ delete keyStorage[code];
+ }
+ else {
+ for (var i = toDelete.length - 1; i >= 0; i--) { // begin from last coz splice change other index
+ keyStorage[code].splice(toDelete[i], 1);
+ }
+ }
+ }
+ }
+ };
+ KeyManager.prototype.exist = function (key) {
+ var code = getHotKeyCode(key);
+ return !!this._keysStorage[code];
+ };
+ return KeyManager;
+}());
+exports.keyManager = new KeyManager();
+function addHotkeys(handlers, beforeCall) {
+ var context = new Date();
+ var wrapHandler = function (handler) { return function (e) {
+ if (beforeCall && beforeCall() === false) {
+ return;
+ }
+ handler(e);
+ }; };
+ for (var key in handlers) {
+ exports.keyManager.addHotKey(key, wrapHandler(handlers[key]), context);
+ }
+ return function () { return exports.keyManager.removeHotKey(undefined, context); };
+}
+exports.addHotkeys = addHotkeys;
+
+
+/***/ }),
+/* 14 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -1560,96 +1789,12 @@ function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(105));
-__export(__webpack_require__(106));
-__export(__webpack_require__(22));
+__export(__webpack_require__(102));
+__export(__webpack_require__(28));
/***/ }),
-/* 16 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-var __assign = (this && this.__assign) || function () {
- __assign = Object.assign || function(t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
- t[p] = s[p];
- }
- return t;
- };
- return __assign.apply(this, arguments);
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var dom_1 = __webpack_require__(0);
-var view_1 = __webpack_require__(4);
-var ts_popup_1 = __webpack_require__(10);
-var html_1 = __webpack_require__(3);
-var Label = /** @class */ (function (_super) {
- __extends(Label, _super);
- function Label(container, config) {
- if (config === void 0) { config = {}; }
- var _this = _super.call(this, container, config) || this;
- if (_this.config.help) {
- _this._helper = new ts_popup_1.Popup({ css: "dhx_tooltip dhx_tooltip--forced dhx_tooltip--light" });
- _this._helper.attachHTML(_this.config.help);
- }
- _this._handlers = __assign({ showHelper: function (e) {
- e.preventDefault();
- e.stopPropagation();
- _this._helper.show(e.target, { mode: _this.config.labelInline ? html_1.Position.right : html_1.Position.bottom });
- } }, _this._getHandlers());
- var render = function () { return _this._draw(); };
- _this.mount(container, dom_1.create({ render: render }));
- return _this;
- }
- Label.prototype._getHandlers = function () {
- return {};
- };
- Label.prototype._init = function () {
- return;
- };
- Label.prototype._draw = function () {
- return this._drawLabel();
- };
- Label.prototype._drawLabel = function () {
- var _a = this.config, id = _a.id, labelInline = _a.labelInline, label = _a.label, labelWidth = _a.labelWidth, help = _a.help;
- var width = labelInline && labelWidth ? labelWidth : "";
- return dom_1.el("label.dhx_label", {
- for: id || this._uid,
- style: { minWidth: width, maxWidth: width },
- class: help ? "dhx_label--with-help" : ""
- }, help ? [
- dom_1.el("span.dhx_label__holder", label),
- dom_1.el("span.dhx_label-help.dxi.dxi-help-circle-outline", {
- tabindex: "0",
- role: "button",
- onclick: this._handlers.showHelper
- }),
- ] : label);
- };
- return Label;
-}(view_1.View));
-exports.Label = Label;
-
-
-/***/ }),
-/* 17 */
+/* 15 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -1677,6 +1822,8 @@ var DataEvents;
DataEvents["change"] = "change";
DataEvents["load"] = "load";
DataEvents["loadError"] = "loaderror";
+ DataEvents["beforeLazyLoad"] = "beforelazyload";
+ DataEvents["afterLazyLoad"] = "afterlazyload";
})(DataEvents = exports.DataEvents || (exports.DataEvents = {}));
var DragEvents;
(function (DragEvents) {
@@ -1711,14 +1858,14 @@ var DataDriver;
/***/ }),
-/* 18 */
+/* 16 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var dataproxy_1 = __webpack_require__(25);
-var drivers_1 = __webpack_require__(56);
+var dataproxy_1 = __webpack_require__(21);
+var drivers_1 = __webpack_require__(58);
function isEqualObj(a, b) {
for (var key in a) {
if (a[key] !== b[key]) {
@@ -1843,6 +1990,113 @@ function hasJsonOrArrayStructure(str) {
exports.hasJsonOrArrayStructure = hasJsonOrArrayStructure;
+/***/ }),
+/* 17 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+}
+Object.defineProperty(exports, "__esModule", { value: true });
+__export(__webpack_require__(109));
+__export(__webpack_require__(110));
+__export(__webpack_require__(23));
+
+
+/***/ }),
+/* 18 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __assign = (this && this.__assign) || function () {
+ __assign = Object.assign || function(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign.apply(this, arguments);
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var dom_1 = __webpack_require__(0);
+var view_1 = __webpack_require__(4);
+var ts_popup_1 = __webpack_require__(11);
+var html_1 = __webpack_require__(2);
+var Label = /** @class */ (function (_super) {
+ __extends(Label, _super);
+ function Label(container, config) {
+ if (config === void 0) { config = {}; }
+ var _this = _super.call(this, container, config) || this;
+ _this.config.helpMessage = _this.config.helpMessage || _this.config.help; // TODO: remove sute_7.0
+ if (_this.config.labelInline) {
+ _this.config.labelPosition = "left"; // TODO: remove sute_7.0
+ }
+ _this._handlers = __assign({ showHelper: function (e) {
+ e.preventDefault();
+ e.stopPropagation();
+ _this._helper.show(e.target, { mode: _this.config.labelPosition === "left" ? html_1.Position.right : html_1.Position.bottom });
+ } }, _this._getHandlers());
+ var render = function () { return _this._draw(); };
+ _this.mount(container, dom_1.create({ render: render }));
+ return _this;
+ }
+ Label.prototype._getHandlers = function () {
+ return {};
+ };
+ Label.prototype._init = function () {
+ return;
+ };
+ Label.prototype._draw = function () {
+ return this._drawLabel();
+ };
+ Label.prototype._drawLabel = function () {
+ if (this.config.helpMessage) {
+ if (this._helper) {
+ this._helper.attachHTML(this.config.helpMessage);
+ }
+ else {
+ this._helper = new ts_popup_1.Popup({ css: "dhx_tooltip dhx_tooltip--forced dhx_tooltip--light" });
+ this._helper.attachHTML(this.config.helpMessage);
+ }
+ }
+ var _a = this.config, id = _a.id, labelPosition = _a.labelPosition, label = _a.label, labelWidth = _a.labelWidth, helpMessage = _a.helpMessage;
+ var width = labelPosition === "left" && labelWidth ? labelWidth : "";
+ return dom_1.el("label.dhx_label", {
+ for: id || this._uid,
+ style: { minWidth: width, maxWidth: width },
+ class: helpMessage ? "dhx_label--with-help" : ""
+ }, helpMessage ? [
+ dom_1.el("span.dhx_label__holder", label),
+ dom_1.el("span.dhx_label-help.dxi.dxi-help-circle-outline", {
+ tabindex: "0",
+ role: "button",
+ onclick: this._handlers.showHelper
+ }),
+ ] : label);
+ };
+ return Label;
+}(view_1.View));
+exports.Label = Label;
+
+
/***/ }),
/* 19 */
/***/ (function(module, exports, __webpack_require__) {
@@ -1853,11 +2107,11 @@ function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(101));
-__export(__webpack_require__(102));
-__export(__webpack_require__(103));
-__export(__webpack_require__(60));
-__export(__webpack_require__(33));
+__export(__webpack_require__(105));
+__export(__webpack_require__(106));
+__export(__webpack_require__(107));
+__export(__webpack_require__(62));
+__export(__webpack_require__(35));
/***/ }),
@@ -1871,10 +2125,10 @@ function rgbToHex(color) {
if (color.substr(0, 1) === "#") {
return color;
}
- var digits = /(.*?)rgb[a]?\((\d+), *(\d+), *(\d+),* *([\d]*)\)/.exec(color);
- var red = parseInt(digits[2], 10).toString(16);
- var green = parseInt(digits[3], 10).toString(16);
- var blue = parseInt(digits[4], 10).toString(16);
+ var digits = /(.*?)rgb[a]?\((\d+), *(\d+), *(\d+),* *([\d+.]*)\)/.exec(color);
+ var red = parseInt(digits[2], 10).toString(16).padStart(2, "0");
+ var green = parseInt(digits[3], 10).toString(16).padStart(2, "0");
+ var blue = parseInt(digits[4], 10).toString(16).padStart(2, "0");
return "#" + red + green + blue;
}
exports.rgbToHex = rgbToHex;
@@ -1929,7 +2183,7 @@ function getStyleByClass(cssClass, container, targetClass, def) {
}
exports.getStyleByClass = getStyleByClass;
function removeHTMLTags(str) {
- if (typeof str !== "string" && typeof str !== "number") {
+ if (typeof str !== "string" && typeof str !== "number" && typeof str !== "boolean") {
return "";
}
return ("" + ((str === undefined || str === null) ? "" : str)).replace(/<[^>]*>/g, "").replace(/[\"]/g, """).trim();
@@ -1961,6 +2215,24 @@ function isRowEmpty(row) {
}, true);
}
exports.isRowEmpty = isRowEmpty;
+function isSortable(config, col) {
+ return col.sortable !== false && config.sortable || col.sortable;
+}
+exports.isSortable = isSortable;
+function isAutoWidth(config, col) {
+ if (!col) {
+ var check_1 = false;
+ config.columns.map(function (column) {
+ if (column.autoWidth !== false && config.autoWidth || column.autoWidth) {
+ check_1 = true;
+ return;
+ }
+ });
+ return check_1;
+ }
+ return col.autoWidth !== false && config.autoWidth || col.autoWidth;
+}
+exports.isAutoWidth = isAutoWidth;
/***/ }),
@@ -1969,6 +2241,47 @@ exports.isRowEmpty = isRowEmpty;
"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+var ajax_1 = __webpack_require__(34);
+var DataProxy = /** @class */ (function () {
+ function DataProxy(url, config) {
+ this.url = this._url = url;
+ this.config = config;
+ }
+ DataProxy.prototype.updateUrl = function (url, params) {
+ if (params === void 0) { params = {}; }
+ this._url = this.url = url || this._url;
+ this.url += "?";
+ for (var param in params) {
+ this.config[param] = params[param];
+ this.url += param + "=" + encodeURIComponent(params[param]) + "&";
+ }
+ this.url = this.url.slice(0, -1);
+ };
+ DataProxy.prototype.load = function () {
+ return ajax_1.ajax.get(this.url, null, { responseType: "text" });
+ };
+ DataProxy.prototype.save = function (data, mode) {
+ switch (mode) {
+ case "delete":
+ return ajax_1.ajax.delete(this.url, data);
+ case "update":
+ case "insert":
+ default:
+ return ajax_1.ajax.post(this.url, data);
+ }
+ };
+ return DataProxy;
+}());
+exports.DataProxy = DataProxy;
+
+
+/***/ }),
+/* 22 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
Object.defineProperty(exports, "__esModule", { value: true });
var SelectionEvents;
(function (SelectionEvents) {
@@ -1980,7 +2293,7 @@ var SelectionEvents;
/***/ }),
-/* 22 */
+/* 23 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2001,12 +2314,15 @@ var ItemType;
ItemType["menuItem"] = "menuItem";
ItemType["block"] = "block";
ItemType["navItem"] = "navItem";
+ ItemType["customHTML"] = "customHTML";
})(ItemType = exports.ItemType || (exports.ItemType = {}));
var NavigationBarEvents;
(function (NavigationBarEvents) {
- NavigationBarEvents["inputCreated"] = "inputcreated";
+ NavigationBarEvents["inputCreated"] = "inputCreated";
NavigationBarEvents["click"] = "click";
NavigationBarEvents["openMenu"] = "openmenu";
+ NavigationBarEvents["beforeHide"] = "beforeHide";
+ NavigationBarEvents["afterHide"] = "afterHide";
NavigationBarEvents["inputFocus"] = "inputfocus";
NavigationBarEvents["inputBlur"] = "inputblur";
})(NavigationBarEvents = exports.NavigationBarEvents || (exports.NavigationBarEvents = {}));
@@ -2018,14 +2334,14 @@ var NavigationType;
/***/ }),
-/* 23 */
+/* 24 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(22);
+var types_1 = __webpack_require__(23);
function getCount(item, widgetClass, isLimited) {
var countColor = {
danger: " dhx_navbar-count--color_danger",
@@ -2052,14 +2368,14 @@ function navbarComponentMixin(widgetName, item, asMenuItem, body) {
var itemClass = getNavbarItemClass(widgetName, item, asMenuItem);
var hasRibbonSize = widgetName === "ribbon" && (item.type === types_1.ItemType.navItem || item.type === types_1.ItemType.imageButton);
return dom_1.el("li", {
- _key: item.id,
- class: itemClass +
+ "_key": item.id,
+ "class": itemClass +
(item.icon && !item.value && hasRibbonSize ? " dhx_ribbon__item--icon" : "") +
(item.src && !item.value && hasRibbonSize ? " dhx_ribbon__item--icon" : "") +
(item.size && hasRibbonSize ? " dhx_ribbon__item--" + item.size : ""),
- }, [
- body
- ]);
+ ".innerHTML": item.type === types_1.ItemType.customHTML ? item.html : undefined,
+ "dhx_id": item.type === types_1.ItemType.customHTML ? item.id : undefined,
+ }, item.type !== types_1.ItemType.customHTML ? [body] : undefined);
}
exports.navbarComponentMixin = navbarComponentMixin;
function getNavbarButtonCSS(_a, widgetName) {
@@ -2107,7 +2423,22 @@ var getNavbarItemClass = function (widgetName, item, asMenuItem) {
/***/ }),
-/* 24 */
+/* 25 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+}
+Object.defineProperty(exports, "__esModule", { value: true });
+__export(__webpack_require__(128));
+__export(__webpack_require__(68));
+__export(__webpack_require__(41));
+
+
+/***/ }),
+/* 26 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2128,9 +2459,11 @@ exports.shiftCoordinates = shiftCoordinates;
exports.pieLikeHandlers = {
onmouseover: function (shiftX, shiftY, _, node) {
node.el.setAttribute("transform", "translate(" + shiftX + ", " + shiftY + ") scale(1.05)");
+ node.el.classList.add("dhx_pie-transform-delay");
},
onmouseout: function (_, node) {
node.el.setAttribute("transform", "translate(0, 0)");
+ node.el.classList.remove("dhx_pie-transform-delay");
}
};
function checkMiss(v, r) {
@@ -2203,73 +2536,7 @@ exports.radarScale = radarScale;
/***/ }),
-/* 25 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-/* WEBPACK VAR INJECTION */(function(Promise) {
-Object.defineProperty(exports, "__esModule", { value: true });
-var DataProxy = /** @class */ (function () {
- function DataProxy(url) {
- this.url = url;
- }
- DataProxy.prototype.load = function () {
- return this._ajax(this.url);
- };
- DataProxy.prototype.save = function (data, mode) {
- var modes = {
- insert: "POST",
- delete: "DELETE",
- update: "POST"
- };
- return this._ajax(this.url, data, modes[mode] || "POST");
- };
- DataProxy.prototype._ajax = function (url, data, method) {
- if (method === void 0) { method = "GET"; }
- return new Promise(function (resolve, reject) {
- var xhr = new XMLHttpRequest();
- xhr.onload = function () {
- if (xhr.status >= 200 && xhr.status < 300) {
- resolve(xhr.response || xhr.responseText);
- }
- else {
- reject({
- status: xhr.status,
- statusText: xhr.statusText
- });
- }
- };
- xhr.onerror = function () {
- reject({
- status: xhr.status,
- statusText: xhr.statusText
- });
- };
- xhr.open(method, url);
- xhr.setRequestHeader("Content-Type", "application/json");
- switch (method) {
- case "POST":
- case "DELETE":
- case "PUT":
- xhr.send(JSON.stringify(data));
- break;
- case "GET":
- xhr.send();
- break;
- default:
- xhr.send();
- break;
- }
- });
- };
- return DataProxy;
-}());
-exports.DataProxy = DataProxy;
-
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(14)))
-
-/***/ }),
-/* 26 */
+/* 27 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2304,23 +2571,44 @@ var VaultMode;
/***/ }),
-/* 27 */
+/* 28 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-function __export(m) {
- for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(104));
-var ts_navbar_1 = __webpack_require__(15);
-exports.ItemType = ts_navbar_1.ItemType;
-exports.NavigationBarEvents = ts_navbar_1.NavigationBarEvents;
+var LayoutEvents;
+(function (LayoutEvents) {
+ LayoutEvents["beforeShow"] = "beforeShow";
+ LayoutEvents["afterShow"] = "afterShow";
+ LayoutEvents["beforeHide"] = "beforeHide";
+ LayoutEvents["afterHide"] = "afterHide";
+ LayoutEvents["beforeResizeStart"] = "beforeResizeStart";
+ LayoutEvents["resize"] = "resize";
+ LayoutEvents["afterResizeEnd"] = "afterResizeEnd";
+ LayoutEvents["beforeAdd"] = "beforeAdd";
+ LayoutEvents["afterAdd"] = "afterAdd";
+ LayoutEvents["beforeRemove"] = "beforeRemove";
+ LayoutEvents["afterRemove"] = "afterRemove";
+ LayoutEvents["beforeCollapse"] = "beforeCollapse";
+ LayoutEvents["afterCollapse"] = "afterCollapse";
+ LayoutEvents["beforeExpand"] = "beforeExpand";
+ LayoutEvents["afterExpand"] = "afterExpand";
+})(LayoutEvents = exports.LayoutEvents || (exports.LayoutEvents = {}));
+var resizeMode;
+(function (resizeMode) {
+ resizeMode[resizeMode["unknown"] = 0] = "unknown";
+ resizeMode[resizeMode["percents"] = 1] = "percents";
+ resizeMode[resizeMode["pixels"] = 2] = "pixels";
+ resizeMode[resizeMode["mixedpx1"] = 3] = "mixedpx1";
+ resizeMode[resizeMode["mixedpx2"] = 4] = "mixedpx2";
+ resizeMode[resizeMode["mixedperc1"] = 5] = "mixedperc1";
+ resizeMode[resizeMode["mixedperc2"] = 6] = "mixedperc2";
+})(resizeMode = exports.resizeMode || (exports.resizeMode = {}));
/***/ }),
-/* 28 */
+/* 29 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2329,13 +2617,14 @@ function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(123));
-__export(__webpack_require__(66));
-__export(__webpack_require__(38));
+__export(__webpack_require__(108));
+var ts_navbar_1 = __webpack_require__(17);
+exports.ItemType = ts_navbar_1.ItemType;
+exports.NavigationBarEvents = ts_navbar_1.NavigationBarEvents;
/***/ }),
-/* 29 */
+/* 30 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2344,12 +2633,12 @@ function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(124));
-__export(__webpack_require__(65));
+__export(__webpack_require__(129));
+__export(__webpack_require__(67));
/***/ }),
-/* 30 */
+/* 31 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2358,12 +2647,15 @@ function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(125));
-__export(__webpack_require__(63));
+__export(__webpack_require__(135));
+__export(__webpack_require__(69));
+__export(__webpack_require__(43));
+var en_1 = __webpack_require__(44);
+exports.locale = en_1.default;
/***/ }),
-/* 31 */
+/* 32 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2372,15 +2664,12 @@ function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(130));
-__export(__webpack_require__(67));
-__export(__webpack_require__(40));
-var en_1 = __webpack_require__(41);
-exports.locale = en_1.default;
+__export(__webpack_require__(161));
+__export(__webpack_require__(74));
/***/ }),
-/* 32 */
+/* 33 */
/***/ (function(module, exports) {
var g;
@@ -2406,7 +2695,192 @@ module.exports = g;
/***/ }),
-/* 33 */
+/* 34 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(Promise) {
+Object.defineProperty(exports, "__esModule", { value: true });
+var types_1 = __webpack_require__(15);
+var helpers_1 = __webpack_require__(16);
+function toQueryString(data) {
+ return Object.keys(data).reduce(function (entries, key) {
+ var value = typeof data[key] === "object" ? JSON.stringify(data[key]) : data[key];
+ entries.push(key + "=" + encodeURIComponent(value));
+ return entries;
+ }, []).join("&");
+}
+function inferResponseType(contentType) {
+ if (!contentType) {
+ return "text";
+ }
+ if (contentType.indexOf("json") >= 0) {
+ return "json";
+ }
+ if (contentType.indexOf("xml") >= 0) {
+ return "xml";
+ }
+ return "text";
+}
+function send(url, data, method, headers, responseType) {
+ function parseResponse(responseText, genResponseType) {
+ switch (genResponseType) {
+ case "json": {
+ return JSON.parse(responseText);
+ }
+ case "text": {
+ return responseText;
+ }
+ case "xml": {
+ var driver = helpers_1.toDataDriver(types_1.DataDriver.xml);
+ if (driver) {
+ return driver.toJsonObject(responseText);
+ }
+ else {
+ return { parseError: "Incorrect data driver type: 'xml'" };
+ }
+ }
+ default: {
+ return responseText;
+ }
+ }
+ }
+ var allHeaders = headers || {};
+ if (responseType) {
+ allHeaders.Accept = "application/" + responseType;
+ }
+ if (method !== "GET") {
+ allHeaders["Content-Type"] = allHeaders["Content-Type"] || "application/json";
+ }
+ if (method === "GET") {
+ var urlData = data && typeof data === "object" ?
+ toQueryString(data) :
+ data && typeof data === "string" ?
+ data : "";
+ if (urlData) {
+ url += (url.indexOf("?") === -1) ? "?" : "&";
+ url += urlData;
+ }
+ data = null;
+ }
+ if (!window.fetch) {
+ return new Promise(function (resolve, reject) {
+ var xhr = new XMLHttpRequest();
+ xhr.onload = function () {
+ if (xhr.status >= 200 && xhr.status < 300) {
+ if (responseType === "raw") {
+ resolve({
+ url: xhr.responseURL,
+ headers: xhr.getAllResponseHeaders()
+ .trim()
+ .split(/[\r\n]+/)
+ .reduce(function (acc, cur) {
+ var kv = cur.split(": ");
+ acc[kv[0]] = kv[1];
+ return acc;
+ }, {}),
+ body: xhr.response
+ });
+ }
+ if (xhr.status === 204) {
+ resolve();
+ }
+ else {
+ resolve(parseResponse(xhr.responseText, responseType || inferResponseType(xhr.getResponseHeader("Content-Type"))));
+ }
+ }
+ else {
+ reject({
+ status: xhr.status,
+ statusText: xhr.statusText
+ });
+ }
+ };
+ xhr.onerror = function () {
+ reject({
+ status: xhr.status,
+ statusText: xhr.statusText,
+ message: xhr.responseText
+ });
+ };
+ xhr.open(method, url);
+ for (var headerKey in allHeaders) {
+ xhr.setRequestHeader(headerKey, allHeaders[headerKey]);
+ }
+ switch (method) {
+ case "POST":
+ case "DELETE":
+ case "PUT":
+ xhr.send(data !== undefined ? JSON.stringify(data) : "");
+ break;
+ case "GET":
+ xhr.send();
+ break;
+ default:
+ xhr.send();
+ break;
+ }
+ });
+ }
+ else {
+ return window.fetch(url, {
+ method: method,
+ body: data ? JSON.stringify(data) : null,
+ headers: allHeaders,
+ })
+ .then(function (response) {
+ if (response.ok) {
+ var genResponseType = responseType || inferResponseType(response.headers.get("Content-Type"));
+ if (genResponseType === "raw") {
+ return {
+ // @ts-ignore
+ headers: Object.fromEntries(response.headers.entries()),
+ url: response.url,
+ body: response.body
+ };
+ }
+ if (response.status !== 204) {
+ switch (genResponseType) {
+ case "json": {
+ return response.json();
+ }
+ case "xml": {
+ var driver_1 = helpers_1.toDataDriver(types_1.DataDriver.xml);
+ if (driver_1) {
+ return response.text()
+ .then(function (xmlData) { return driver_1.toJsonObject(xmlData); });
+ }
+ else {
+ return response.text();
+ }
+ }
+ default:
+ return response.text();
+ }
+ }
+ }
+ else {
+ return response.text()
+ .then(function (message) { return Promise.reject({
+ status: response.status,
+ statusText: response.statusText,
+ message: message
+ }); });
+ }
+ });
+ }
+}
+exports.ajax = {
+ get: function (url, data, config) { return send(url, data, "GET", config && config.headers, config !== undefined ? config.responseType : undefined); },
+ post: function (url, data, config) { return send(url, data, "POST", config && config.headers, config !== undefined ? config.responseType : undefined); },
+ put: function (url, data, config) { return send(url, data, "PUT", config && config.headers, config !== undefined ? config.responseType : undefined); },
+ delete: function (url, data, config) { return send(url, data, "DELETE", config && config.headers, config !== undefined ? config.responseType : undefined); }
+};
+
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(12)))
+
+/***/ }),
+/* 35 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2436,7 +2910,7 @@ var MessageContainerPosition;
/***/ }),
-/* 34 */
+/* 36 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2450,7 +2924,7 @@ exports.default = locale;
/***/ }),
-/* 35 */
+/* 37 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2477,7 +2951,7 @@ exports.default = locale;
/***/ }),
-/* 36 */
+/* 38 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2486,13 +2960,13 @@ function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(120));
-__export(__webpack_require__(61));
-__export(__webpack_require__(37));
+__export(__webpack_require__(124));
+__export(__webpack_require__(63));
+__export(__webpack_require__(39));
/***/ }),
-/* 37 */
+/* 39 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2502,23 +2976,40 @@ var ListEvents;
(function (ListEvents) {
ListEvents["click"] = "click";
ListEvents["doubleClick"] = "doubleclick";
- ListEvents["contextmenu"] = "contextmenu";
ListEvents["focusChange"] = "focuschange";
ListEvents["beforeEditStart"] = "beforeEditStart";
ListEvents["afterEditStart"] = "afterEditStart";
ListEvents["beforeEditEnd"] = "beforeEditEnd";
ListEvents["afterEditEnd"] = "afterEditEnd";
+ ListEvents["itemRightClick"] = "itemRightClick";
+ ListEvents["itemMouseOver"] = "itemMouseOver";
+ // TODO: remove sute_7.0
+ ListEvents["contextmenu"] = "contextmenu";
})(ListEvents = exports.ListEvents || (exports.ListEvents = {}));
/***/ }),
-/* 38 */
+/* 40 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+}
+Object.defineProperty(exports, "__esModule", { value: true });
+__export(__webpack_require__(130));
+__export(__webpack_require__(65));
+
+
+/***/ }),
+/* 41 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var en_1 = __webpack_require__(39);
+var en_1 = __webpack_require__(42);
var core_1 = __webpack_require__(1);
/*
%d day as a number with leading zero, 01..31
@@ -2565,9 +3056,18 @@ var formatters = {
"%Y": function (date) { return date.getFullYear(); },
"%h": function (date) {
var hours = date.getHours() % 12;
+ if (hours === 0) {
+ hours = 12;
+ }
return hours < 10 ? "0" + hours : hours;
},
- "%g": function (date) { return date.getHours() % 12; },
+ "%g": function (date) {
+ var hours = date.getHours() % 12;
+ if (hours === 0) {
+ hours = 12;
+ }
+ return hours;
+ },
"%H": function (date) {
var hours = date.getHours();
return hours < 10 ? "0" + hours : hours;
@@ -2581,8 +3081,12 @@ var formatters = {
var seconds = date.getSeconds();
return seconds < 10 ? "0" + seconds : seconds;
},
- "%a": function (date) { return date.getHours() > 12 ? "pm" : "am"; },
- "%A": function (date) { return date.getHours() > 12 ? "PM" : "AM"; },
+ "%a": function (date) {
+ return date.getHours() >= 12 ? "pm" : "am";
+ },
+ "%A": function (date) {
+ return date.getHours() >= 12 ? "PM" : "AM";
+ },
"%u": function (date) { return date.getMilliseconds(); }
};
var setFormatters = {
@@ -2634,15 +3138,15 @@ var setFormatters = {
? date.setFullYear(Number(value))
: date.setFullYear(Number("2000"));
},
- "%h": function (date, value) {
+ "%h": function (date, value, dateFormat) {
var check = /(^0[1-9]|1[0-2]$)/i.test(value);
- check
+ check && dateFormat === "pm" || dateFormat === "PM"
? date.setHours(Number(value))
: date.setHours(Number(0));
},
- "%g": function (date, value) {
+ "%g": function (date, value, dateFormat) {
var check = /(^[1-9]$)|(^0[1-9]|1[0-2]$)/i.test(value);
- check
+ check && dateFormat === "pm" || dateFormat === "PM"
? date.setHours(Number(value))
: date.setHours(Number(0));
},
@@ -2731,6 +3235,9 @@ function tokenizeFormat(format) {
return tokens;
}
function stringToDate(str, format, validate) {
+ if (typeof str !== "string") {
+ return;
+ }
var tokens = tokenizeFormat(format);
var dateParts = [];
var index = 0;
@@ -2764,12 +3271,19 @@ function stringToDate(str, format, validate) {
value: str.slice(index)
});
}
- var date = new Date();
dateParts.reverse();
+ var dateFormat;
for (var _a = 0, dateParts_1 = dateParts; _a < dateParts_1.length; _a++) {
var datePart = dateParts_1[_a];
+ if (datePart.formatter === "%A" || datePart.formatter === "%a") {
+ dateFormat = datePart.value;
+ }
+ }
+ var date = new Date();
+ for (var _b = 0, dateParts_2 = dateParts; _b < dateParts_2.length; _b++) {
+ var datePart = dateParts_2[_b];
if (setFormatters[datePart.formatter]) {
- setFormatters[datePart.formatter](date, datePart.value);
+ setFormatters[datePart.formatter](date, datePart.value, dateFormat);
}
}
return validate ? true : date;
@@ -2778,7 +3292,7 @@ exports.stringToDate = stringToDate;
/***/ }),
-/* 39 */
+/* 42 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2795,7 +3309,7 @@ exports.default = locale;
/***/ }),
-/* 40 */
+/* 43 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2924,7 +3438,7 @@ exports.isHex = isHex;
/***/ }),
-/* 41 */
+/* 44 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2941,7 +3455,7 @@ exports.default = en;
/***/ }),
-/* 42 */
+/* 45 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -2958,9 +3472,9 @@ var __assign = (this && this.__assign) || function () {
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
-var AxisCreator_1 = __webpack_require__(142);
+var AxisCreator_1 = __webpack_require__(148);
var types_1 = __webpack_require__(6);
-var SvgScales_1 = __webpack_require__(68);
+var SvgScales_1 = __webpack_require__(70);
var common_1 = __webpack_require__(5);
var renderScale = {
left: SvgScales_1.left,
@@ -3060,7 +3574,7 @@ var Scale = /** @class */ (function () {
if (config.locator) {
this.locator = common_1.locator(config.locator);
}
- this.config = __assign({}, defaults, config);
+ this.config = __assign(__assign({}, defaults), config);
};
Scale.prototype._logPoint = function (pos) {
var logPos;
@@ -3084,7 +3598,7 @@ exports.Scale = Scale;
/***/ }),
-/* 43 */
+/* 46 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -3105,7 +3619,7 @@ var __extends = (this && this.__extends) || (function () {
Object.defineProperty(exports, "__esModule", { value: true });
var common_1 = __webpack_require__(5);
var types_1 = __webpack_require__(6);
-var BaseSeria_1 = __webpack_require__(44);
+var BaseSeria_1 = __webpack_require__(47);
var ScaleSeria = /** @class */ (function (_super) {
__extends(ScaleSeria, _super);
function ScaleSeria() {
@@ -3158,7 +3672,7 @@ exports.default = ScaleSeria;
/***/ }),
-/* 44 */
+/* 47 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -3167,10 +3681,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(1);
var types_1 = __webpack_require__(6);
var common_1 = __webpack_require__(5);
-var line_1 = __webpack_require__(145);
+var line_1 = __webpack_require__(151);
var BaseSeria = /** @class */ (function () {
function BaseSeria(_data, config, other) {
+ var _this = this;
this._data = _data;
+ this._handlers = {
+ onclick: function (id, value) { return _this._events.fire(types_1.ChartEvents.serieClick, [id, value]); }
+ };
this.id = config.id = config.id || core_1.uid();
this._events = other;
this._points = [];
@@ -3226,7 +3744,9 @@ var BaseSeria = /** @class */ (function () {
BaseSeria.prototype._setDefaults = function (config) {
this.config = config;
};
- BaseSeria.prototype._defaultLocator = function (_) { return [null, null]; };
+ BaseSeria.prototype._defaultLocator = function (_) {
+ return [null, null];
+ };
BaseSeria.prototype._getPointType = function (form, color, showTooltip) {
if (showTooltip) {
return line_1.getShadeHelper(form, color, line_1.hoverMode);
@@ -3241,7 +3761,7 @@ exports.default = BaseSeria;
/***/ }),
-/* 45 */
+/* 48 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -3273,7 +3793,7 @@ var __assign = (this && this.__assign) || function () {
Object.defineProperty(exports, "__esModule", { value: true });
var common_1 = __webpack_require__(5);
var types_1 = __webpack_require__(6);
-var BaseSeria_1 = __webpack_require__(44);
+var BaseSeria_1 = __webpack_require__(47);
var NoScaleSeria = /** @class */ (function (_super) {
__extends(NoScaleSeria, _super);
function NoScaleSeria() {
@@ -3341,7 +3861,7 @@ var NoScaleSeria = /** @class */ (function (_super) {
subType: types_1.NoScaleSubType.basic,
paddings: 20
};
- this.config = __assign({}, defaults, config);
+ this.config = __assign(__assign({}, defaults), config);
this._drawPointType = this._getPointType(types_1.PointType.empty, "none", this.config.tooltip);
this._valueLocator = common_1.locator(config.value);
this._textLocator = common_1.locator(config.text);
@@ -3364,7 +3884,7 @@ exports.default = NoScaleSeria;
/***/ }),
-/* 46 */
+/* 49 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -3396,7 +3916,7 @@ var __assign = (this && this.__assign) || function () {
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
var common_1 = __webpack_require__(5);
-var ScaleSeria_1 = __webpack_require__(43);
+var ScaleSeria_1 = __webpack_require__(46);
var Line = /** @class */ (function (_super) {
__extends(Line, _super);
function Line() {
@@ -3436,7 +3956,7 @@ var Line = /** @class */ (function (_super) {
active: true,
tooltip: true
};
- this.config = __assign({}, defaults, config);
+ this.config = __assign(__assign({}, defaults), config);
};
return Line;
}(ScaleSeria_1.default));
@@ -3444,21 +3964,7 @@ exports.default = Line;
/***/ }),
-/* 47 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-function __export(m) {
- for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
-}
-Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(156));
-__export(__webpack_require__(72));
-
-
-/***/ }),
-/* 48 */
+/* 50 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -3473,7 +3979,7 @@ exports.default = {
/***/ }),
-/* 49 */
+/* 51 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -3483,17 +3989,20 @@ var DataViewEvents;
(function (DataViewEvents) {
DataViewEvents["click"] = "click";
DataViewEvents["doubleClick"] = "doubleclick";
- DataViewEvents["contextmenu"] = "contextmenu";
DataViewEvents["focusChange"] = "focuschange";
DataViewEvents["beforeEditStart"] = "beforeEditStart";
DataViewEvents["afterEditStart"] = "afterEditStart";
DataViewEvents["beforeEditEnd"] = "beforeEditEnd";
DataViewEvents["afterEditEnd"] = "afterEditEnd";
+ DataViewEvents["itemRightClick"] = "itemRightClick";
+ DataViewEvents["itemMouseOver"] = "itemMouseOver";
+ // TODO: remove sute_7.0
+ DataViewEvents["contextmenu"] = "contextmenu";
})(DataViewEvents = exports.DataViewEvents || (exports.DataViewEvents = {}));
/***/ }),
-/* 50 */
+/* 52 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -3515,16 +4024,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
var core_1 = __webpack_require__(1);
var helper_1 = __webpack_require__(9);
-var label_1 = __webpack_require__(16);
-var events_1 = __webpack_require__(2);
+var label_1 = __webpack_require__(18);
+var events_1 = __webpack_require__(3);
var types_1 = __webpack_require__(8);
var INIT_DEBOUNCE_TIME = 500;
-var InputEvents;
-(function (InputEvents) {
- InputEvents["change"] = "change";
- InputEvents["error"] = "error";
- InputEvents["success"] = "success";
-})(InputEvents = exports.InputEvents || (exports.InputEvents = {}));
var Input = /** @class */ (function (_super) {
__extends(Input, _super);
function Input(container, config) {
@@ -3532,11 +4035,20 @@ var Input = /** @class */ (function (_super) {
var _this = _super.call(this, null, config) || this;
_this.events = new events_1.EventSystem();
_this._debounceTime = INIT_DEBOUNCE_TIME;
- _this.events.on(InputEvents.change, function (value) {
- _this.config.value = value || "";
- });
+ _this._initView(config);
return _this;
}
+ Input.prototype.disable = function () {
+ this.config.disabled = true;
+ this.paint();
+ };
+ Input.prototype.enable = function () {
+ this.config.disabled = false;
+ this.paint();
+ };
+ Input.prototype.isDisabled = function () {
+ return this.config.disabled;
+ };
Input.prototype.validate = function () {
var requiredCondition = !this.config.required || this.config.value;
var isValid = !this.config.validation || helper_1.validateInput(this.config.value, this.config.validation);
@@ -3555,13 +4067,40 @@ var Input = /** @class */ (function (_super) {
this.paint();
};
Input.prototype.setValue = function (value) {
- this.events.fire(InputEvents.change, [value]);
+ this.events.fire(types_1.BaseElementEvent.change, [value]);
this.config.value = value;
this.paint();
};
Input.prototype.getValue = function () {
return this.config.value || "";
};
+ // TODO: remove sute_7.0
+ Input.prototype.setConfig = function (config) {
+ this._initView(config);
+ };
+ Input.prototype._initView = function (config) {
+ var _this = this;
+ if (helper_1.isEmptyObj(config)) {
+ return;
+ }
+ this.config = {
+ type: this.config.type,
+ id: this.config.id,
+ name: this.config.name,
+ disabled: false,
+ value: ""
+ };
+ for (var key in config) {
+ if (key !== "id" && key !== "type" && key !== "name") {
+ this.config[key] = config[key];
+ }
+ }
+ this.events.on(types_1.BaseElementEvent.change, function (value) {
+ _this.config.value = value || "";
+ });
+ this.events.fire(types_1.BaseElementEvent.configUpdate, [this.config]);
+ this.paint();
+ };
Input.prototype._init = function () {
var _a = this.config, validation = _a.validation, value = _a.value;
if (validation && value) {
@@ -3575,7 +4114,7 @@ var Input = /** @class */ (function (_super) {
var _this = this;
return {
oninput: function (e) {
- var value = e.target.value;
+ var value = e.target.value.trim();
_this.config.value = value;
if (_this._debounceTimer) {
clearTimeout(_this._debounceTimer);
@@ -3588,20 +4127,20 @@ var Input = /** @class */ (function (_super) {
_this._validate(value);
}, _this._debounceTime);
},
- onblur: function (e) {
- _this._validate(e.target.value, true);
+ onblur: function () {
+ _this._validate(_this.config.value, true);
}
};
};
Input.prototype._draw = function () {
- var _a = this.config, id = _a.id, value = _a.value, disabled = _a.disabled, name = _a.name, icon = _a.icon, placeholder = _a.placeholder, required = _a.required, inputType = _a.inputType, validation = _a.validation, hidden = _a.hidden, autocomplete = _a.autocomplete;
+ var _a = this.config, id = _a.id, value = _a.value, disabled = _a.disabled, name = _a.name, icon = _a.icon, placeholder = _a.placeholder, required = _a.required, inputType = _a.inputType, validation = _a.validation, hidden = _a.hidden, autocomplete = _a.autocomplete, readOnly = _a.readOnly, maxlength = _a.maxlength;
var visibility = hidden ? " dhx_form-group--hidden" : "";
return dom_1.el("div.dhx_form-group", {
class: helper_1.getFormItemCss(this.config, Boolean(required) || Boolean(validation)) + visibility
}, [
this._drawLabel(),
- dom_1.el(".dhx_input-wrapper", {}, [
- dom_1.el("div.dhx_input-container", {}, [
+ dom_1.el(".dhx_input__wrapper", {}, [
+ dom_1.el("div.dhx_input__container", {}, [
this.config.icon ? dom_1.el(".dhx_input__icon", {
class: this.config.icon
}) : null,
@@ -3613,13 +4152,15 @@ var Input = /** @class */ (function (_super) {
name: name || "",
disabled: disabled,
required: required,
+ readOnly: readOnly,
+ maxlength: maxlength,
onblur: this._handlers.onblur,
oninput: this._handlers.oninput,
class: icon ? "dhx_input--icon-padding" : "",
autocomplete: autocomplete ? "on" : "off"
}),
]),
- helper_1.getValidationMessage(this.config) && dom_1.el("span.dhx_input-caption", helper_1.getValidationMessage(this.config))
+ helper_1.getValidationMessage(this.config) && dom_1.el("span.dhx_input__caption", helper_1.getValidationMessage(this.config))
]),
]);
};
@@ -3632,30 +4173,26 @@ var Input = /** @class */ (function (_super) {
this._debounceTime = INIT_DEBOUNCE_TIME;
if (this.config.validation) {
if (!helper_1.validateInput(value, this.config.validation)) {
- this.events.fire(InputEvents.error, [value]);
this.config.$validationStatus = types_1.ValidationStatus.error;
this.paint();
return;
}
else {
- this.events.fire(InputEvents.success, [value]);
this.config.$validationStatus = types_1.ValidationStatus.success;
this.paint();
}
}
else if (this.config.required) {
if (value === "") {
- this.events.fire(InputEvents.error, [value]);
this.config.$validationStatus = types_1.ValidationStatus.error;
this.paint();
}
else {
- this.events.fire(InputEvents.success, [value]);
this.config.$validationStatus = types_1.ValidationStatus.success;
this.paint();
}
}
- this.events.fire(InputEvents.change, [value]);
+ this.events.fire(types_1.BaseElementEvent.change, [value]);
};
return Input;
}(label_1.Label));
@@ -3663,7 +4200,7 @@ exports.Input = Input;
/***/ }),
-/* 51 */
+/* 53 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -3698,6 +4235,12 @@ function normalizeColumns(columns) {
col.$uniqueData = [];
}
col.width = col.width || 100;
+ if (col.width < col.minWidth) {
+ col.width = col.minWidth;
+ }
+ if (col.width > col.maxWidth) {
+ col.width = col.maxWidth;
+ }
}
}
exports.normalizeColumns = normalizeColumns;
@@ -3710,7 +4253,7 @@ function countColumns(config, columns) {
var footer = false;
columns.map(function (col) {
headerRowsCount = Math.max(headerRowsCount, col.header.length);
- totalWidth += col.width;
+ totalWidth += col.hidden ? 0 : col.width;
if (col.footer) {
footerRowsCount = Math.max(footerRowsCount, col.footer.length);
if (!footer) {
@@ -3800,7 +4343,7 @@ exports.getUnique = getUnique;
/***/ }),
-/* 52 */
+/* 54 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -3820,7 +4363,7 @@ exports.getWidth = getWidth;
/***/ }),
-/* 53 */
+/* 55 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -3829,22 +4372,22 @@ function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(54));
-__export(__webpack_require__(96));
-__export(__webpack_require__(26));
+__export(__webpack_require__(56));
+__export(__webpack_require__(100));
+__export(__webpack_require__(27));
/***/ }),
-/* 54 */
+/* 56 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(Promise) {
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(1);
-var html_1 = __webpack_require__(3);
+var html_1 = __webpack_require__(2);
var ts_data_1 = __webpack_require__(7);
-var types_1 = __webpack_require__(26);
+var types_1 = __webpack_require__(27);
var Uploader = /** @class */ (function () {
function Uploader(config, data, events) {
if (config === void 0) { config = {}; }
@@ -4121,10 +4664,10 @@ var Uploader = /** @class */ (function () {
}());
exports.Uploader = Uploader;
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(14)))
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(12)))
/***/ }),
-/* 55 */
+/* 57 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -4141,12 +4684,12 @@ var __assign = (this && this.__assign) || function () {
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
-var events_1 = __webpack_require__(2);
-var loader_1 = __webpack_require__(88);
-var sort_1 = __webpack_require__(91);
-var dataproxy_1 = __webpack_require__(25);
-var helpers_1 = __webpack_require__(18);
-var types_1 = __webpack_require__(17);
+var events_1 = __webpack_require__(3);
+var loader_1 = __webpack_require__(91);
+var sort_1 = __webpack_require__(94);
+var dataproxy_1 = __webpack_require__(21);
+var helpers_1 = __webpack_require__(16);
+var types_1 = __webpack_require__(15);
var core_1 = __webpack_require__(1);
var DataCollection = /** @class */ (function () {
function DataCollection(config, events) {
@@ -4173,49 +4716,27 @@ var DataCollection = /** @class */ (function () {
return;
}
if (Array.isArray(obj)) {
- obj.map(function (element, key) {
+ return obj.map(function (element, key) {
if (key !== 0) {
index = index + 1;
}
- var id = _this._addCore(element, index);
- _this._onChange("add", element.id, element);
- _this.events.fire(types_1.DataEvents.afterAdd, [element]);
- return id;
+ return _this._add(element, index);
});
}
else {
- var id = this._addCore(obj, index);
- this._onChange("add", obj.id, obj);
- this.events.fire(types_1.DataEvents.afterAdd, [obj]);
- return id;
+ return this._add(obj, index);
}
};
DataCollection.prototype.remove = function (id) {
var _this = this;
if (id) {
if (id instanceof Array) {
- id.map(function (element) {
- var obj = _this._pull[element];
- if (obj) {
- if (!_this.events.fire(types_1.DataEvents.beforeRemove, [obj])) {
- return;
- }
- _this._removeCore(obj.id);
- _this._onChange("remove", element, obj);
- }
- _this.events.fire(types_1.DataEvents.afterRemove, [obj]);
+ id.map(function (elementId) {
+ _this._remove(elementId);
});
}
else {
- var obj = this._pull[id];
- if (obj) {
- if (!this.events.fire(types_1.DataEvents.beforeRemove, [obj])) {
- return;
- }
- this._removeCore(obj.id);
- this._onChange("remove", id, obj);
- }
- this.events.fire(types_1.DataEvents.afterRemove, [obj]);
+ this._remove(id);
}
}
};
@@ -4279,7 +4800,19 @@ var DataCollection = /** @class */ (function () {
DataCollection.prototype.getLength = function () {
return this._order.length;
};
+ DataCollection.prototype.isDataLoaded = function (from, to) {
+ if (from === void 0) { from = 0; }
+ if (to === void 0) { to = this._order.length; }
+ if (core_1.isNumeric(from) && core_1.isNumeric(to)) {
+ return this._order.slice(from, to).filter(function (item) { return item.$empty; }).length === 0;
+ }
+ return !this.find(function (item) { return item.$empty; });
+ };
DataCollection.prototype.filter = function (rule, config) {
+ if (!this.isDataLoaded()) {
+ helpers_1.dhxWarning("the method doesn't work with lazyLoad");
+ return;
+ }
config = core_1.extend({
add: false,
multiple: true
@@ -4333,6 +4866,10 @@ var DataCollection = /** @class */ (function () {
return res;
};
DataCollection.prototype.sort = function (by) {
+ if (!this.isDataLoaded()) {
+ helpers_1.dhxWarning("the method doesn't work with lazyLoad");
+ return;
+ }
if (!by) {
this._order = [];
for (var key in this._pull) {
@@ -4349,57 +4886,37 @@ var DataCollection = /** @class */ (function () {
this.events.fire(types_1.DataEvents.change);
};
DataCollection.prototype.copy = function (id, index, target, targetId) {
- if (!this.exists(id)) {
- return null;
+ var _this = this;
+ if (id instanceof Array) {
+ return id.map(function (elementId, key) {
+ return _this._copy(elementId, index, target, targetId, key);
+ });
}
- var newid = core_1.uid();
- if (target) {
- if (!(target instanceof DataCollection) && targetId) {
- target.add(helpers_1.copyWithoutInner(this.getItem(id)), index);
- return;
- }
- if (target.exists(id)) {
- target.add(__assign({}, helpers_1.copyWithoutInner(this.getItem(id)), { id: newid }), index);
- return newid;
- }
- else {
- target.add(helpers_1.copyWithoutInner(this.getItem(id)), index);
- return id;
- }
+ else {
+ return this._copy(id, index, target, targetId);
}
- this.add(__assign({}, helpers_1.copyWithoutInner(this.getItem(id)), { id: newid }), index);
- return newid;
};
DataCollection.prototype.move = function (id, index, target, targetId) {
- if (target && target !== this && this.exists(id)) {
- var item = core_1.copy(this.getItem(id), true);
- if (target.exists(id)) {
- item.id = core_1.uid();
- }
- if (targetId) {
- item.parent = targetId;
- }
- target.add(item, index);
- // remove data from original collection
- this.remove(id);
- return item.id;
+ var _this = this;
+ if (id instanceof Array) {
+ return id.map(function (elementId, key) {
+ return _this._move(elementId, index, target, targetId, key);
+ });
}
- if (this.getIndex(id) === index) {
- return null;
+ else {
+ return this._move(id, index, target, targetId);
}
- // move other elements
- var spliced = this._order.splice(this.getIndex(id), 1)[0];
- if (index === -1) {
- index = this._order.length;
+ };
+ DataCollection.prototype.forEach = function (cb) {
+ for (var i = 0; i < this._order.length; i++) {
+ cb.call(this, this._order[i], i, this._order);
}
- this._order.splice(index, 0, spliced);
- this.events.fire(types_1.DataEvents.change); // if target not this, it trigger add and remove
- return id;
};
DataCollection.prototype.load = function (url, driver) {
if (typeof url === "string") {
- url = new dataproxy_1.DataProxy(url);
+ this.dataProxy = url = new dataproxy_1.DataProxy(url);
}
+ this.dataProxy = url;
return this._loader.load(url, driver);
};
DataCollection.prototype.parse = function (data, driver) {
@@ -4418,6 +4935,26 @@ var DataCollection = /** @class */ (function () {
DataCollection.prototype.save = function (url) {
this._loader.save(url);
};
+ DataCollection.prototype.changeId = function (id, newId, silent) {
+ if (newId === void 0) { newId = core_1.uid(); }
+ if (!silent && !this.isDataLoaded()) {
+ helpers_1.dhxWarning("the method doesn't work with lazyLoad");
+ return;
+ }
+ var item = this.getItem(id);
+ if (!item) {
+ helpers_1.dhxWarning("item not found");
+ }
+ else {
+ item.id = newId;
+ core_1.extend(this._pull[id], item);
+ this._pull[newId] = this._pull[id];
+ if (!silent) {
+ this._onChange("update", newId, this._pull[newId]);
+ }
+ delete this._pull[id];
+ }
+ };
// todo: loop through the array and check saved statuses
DataCollection.prototype.isSaved = function () {
return !this._changes.order.length; // todo: bad solution, errors and holded elments are missed...
@@ -4425,7 +4962,7 @@ var DataCollection = /** @class */ (function () {
DataCollection.prototype.map = function (cb) {
var result = [];
for (var i = 0; i < this._order.length; i++) {
- result.push(cb.call(this, this._order[i], i));
+ result.push(cb.call(this, this._order[i], i, this._order));
}
return result;
};
@@ -4436,9 +4973,10 @@ var DataCollection = /** @class */ (function () {
if (to > this._order.length - 1) {
to = this._order.length - 1;
}
+ var arr = this._order.slice(from, to);
var result = [];
for (var i = from; i <= to; i++) {
- result.push(cb.call(this, this._order[i], i));
+ result.push(cb.call(this, this._order[i], i, arr));
}
return result;
};
@@ -4467,6 +5005,93 @@ var DataCollection = /** @class */ (function () {
DataCollection.prototype.getInitialData = function () {
return this._initOrder;
};
+ DataCollection.prototype._add = function (obj, index) {
+ if (!this.isDataLoaded()) {
+ helpers_1.dhxWarning("the method doesn't work with lazyLoad");
+ return;
+ }
+ var id = this._addCore(obj, index);
+ this._onChange("add", obj.id, obj);
+ this.events.fire(types_1.DataEvents.afterAdd, [obj]);
+ return id;
+ };
+ DataCollection.prototype._remove = function (id) {
+ if (!this.isDataLoaded()) {
+ helpers_1.dhxWarning("the method doesn't work with lazyLoad");
+ return;
+ }
+ var obj = this._pull[id];
+ if (obj) {
+ if (!this.events.fire(types_1.DataEvents.beforeRemove, [obj])) {
+ return;
+ }
+ this._removeCore(obj.id);
+ this._onChange("remove", id, obj);
+ }
+ this.events.fire(types_1.DataEvents.afterRemove, [obj]);
+ };
+ DataCollection.prototype._copy = function (id, index, target, targetId, key) {
+ if (!this.isDataLoaded()) {
+ helpers_1.dhxWarning("the method doesn't work with lazyLoad");
+ return;
+ }
+ if (!this.exists(id)) {
+ return null;
+ }
+ var newid = core_1.uid();
+ if (key) {
+ index = index === -1 ? -1 : index + key;
+ }
+ if (target) {
+ if (!(target instanceof DataCollection) && targetId) {
+ target.add(helpers_1.copyWithoutInner(this.getItem(id)), index);
+ return;
+ }
+ if (target.exists(id)) {
+ target.add(__assign(__assign({}, helpers_1.copyWithoutInner(this.getItem(id))), { id: newid }), index);
+ return newid;
+ }
+ else {
+ target.add(helpers_1.copyWithoutInner(this.getItem(id)), index);
+ return id;
+ }
+ }
+ this.add(__assign(__assign({}, helpers_1.copyWithoutInner(this.getItem(id))), { id: newid }), index);
+ return newid;
+ };
+ DataCollection.prototype._move = function (id, index, target, targetId, key) {
+ if (!this.isDataLoaded()) {
+ helpers_1.dhxWarning("the method doesn't work with lazyLoad");
+ return;
+ }
+ if (key) {
+ index = index === -1 ? -1 : index + key;
+ }
+ if (target && target !== this && this.exists(id)) {
+ var item = core_1.copy(this.getItem(id), true);
+ if (target.exists(id)) {
+ item.id = core_1.uid();
+ }
+ if (targetId) {
+ item.parent = targetId;
+ }
+ target.add(item, index);
+ // remove data from original collection
+ this.remove(id);
+ return item.id;
+ }
+ if (this.getIndex(id) === index) {
+ return null;
+ }
+ // move other elements
+ var spliced = this._order.splice(this.getIndex(id), 1)[0];
+ if (index === -1) {
+ index = this._order.length;
+ }
+ this._order.splice(index, 0, spliced);
+ this.events.fire(types_1.DataEvents.change);
+ return id;
+ };
DataCollection.prototype._removeAll = function () {
this._pull = {};
this._order = [];
@@ -4541,7 +5166,7 @@ var DataCollection = /** @class */ (function () {
if (item.error) {
item.error = false;
}
- item = __assign({}, item, { obj: obj, status: status });
+ item = __assign(__assign({}, item), { obj: obj, status: status });
this.events.fire(types_1.DataEvents.change, [id, status, obj]);
return;
}
@@ -4581,7 +5206,7 @@ exports.DataCollection = DataCollection;
/***/ }),
-/* 56 */
+/* 58 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -4598,18 +5223,18 @@ var __assign = (this && this.__assign) || function () {
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
-var JsonDriver_1 = __webpack_require__(57);
-var CsvDriver_1 = __webpack_require__(58);
-var XMLDriver_1 = __webpack_require__(89);
+var JsonDriver_1 = __webpack_require__(59);
+var CsvDriver_1 = __webpack_require__(60);
+var XMLDriver_1 = __webpack_require__(92);
exports.dataDrivers = {
json: JsonDriver_1.JsonDriver,
csv: CsvDriver_1.CsvDriver
};
-exports.dataDriversPro = __assign({}, exports.dataDrivers, { xml: XMLDriver_1.XMLDriver });
+exports.dataDriversPro = __assign(__assign({}, exports.dataDrivers), { xml: XMLDriver_1.XMLDriver });
/***/ }),
-/* 57 */
+/* 59 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -4636,7 +5261,7 @@ exports.JsonDriver = JsonDriver;
/***/ }),
-/* 58 */
+/* 60 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -4655,20 +5280,19 @@ var __assign = (this && this.__assign) || function () {
Object.defineProperty(exports, "__esModule", { value: true });
var CsvDriver = /** @class */ (function () {
function CsvDriver(config) {
- if (config === void 0) { config = {}; }
var initConfig = {
skipHeader: 0,
nameByHeader: false,
- row: "\n",
- column: ",",
+ rowDelimiter: "\n",
+ columnDelimiter: ",",
};
- this.config = __assign({}, initConfig, config);
+ this.config = __assign(__assign({}, initConfig), config);
if (this.config.nameByHeader) {
this.config.skipHeader = 1;
}
}
CsvDriver.prototype.getFields = function (row, headers) {
- var parts = row.trim().split(this.config.column);
+ var parts = row.trim().split(this.config.columnDelimiter);
var obj = {};
for (var i = 0; i < parts.length; i++) {
obj[headers ? headers[i] : i + 1] = parts[i];
@@ -4676,7 +5300,7 @@ var CsvDriver = /** @class */ (function () {
return obj;
};
CsvDriver.prototype.getRows = function (data) {
- return data.trim().split(this.config.row);
+ return data.trim().split(this.config.rowDelimiter);
};
CsvDriver.prototype.toJsonArray = function (data) {
var _this = this;
@@ -4685,14 +5309,20 @@ var CsvDriver = /** @class */ (function () {
if (this.config.skipHeader) {
var top_1 = rows.splice(0, this.config.skipHeader);
if (this.config.nameByHeader) {
- names = top_1[0].trim().split(this.config.column);
+ names = top_1[0].trim().split(this.config.columnDelimiter);
}
}
return rows.map(function (row) { return _this.getFields(row, names); });
};
- CsvDriver.prototype.serialize = function (data) {
- var header = data[0] ? Object.keys(data[0]).filter(function (key) { return key[0] !== "$"; }).join(",") : "";
- return header + this._serialize(data);
+ CsvDriver.prototype.serialize = function (data, withoutHeader) {
+ var header = data[0] ? Object.keys(data[0])
+ .filter(function (key) { return key[0] !== "$"; })
+ .join(this.config.columnDelimiter) : "";
+ var readyData = this._serialize(data);
+ if (withoutHeader) {
+ return readyData;
+ }
+ return header + readyData;
};
CsvDriver.prototype._serialize = function (data) {
var _this = this;
@@ -4701,12 +5331,12 @@ var CsvDriver = /** @class */ (function () {
if (key[0] === "$" || key === "items") {
return total;
}
- return "" + total + row[key] + (i === row.length - 1 ? "" : ",");
+ return "" + total + row[key] + (i === row.length - 1 ? "" : _this.config.columnDelimiter);
}, "");
if (row.items) {
return csv + "\n" + cells + _this._serialize(row.items);
}
- return csv + "\n" + cells;
+ return "" + csv + _this.config.rowDelimiter + cells;
}, "");
};
return CsvDriver;
@@ -4715,7 +5345,7 @@ exports.CsvDriver = CsvDriver;
/***/ }),
-/* 59 */
+/* 61 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -4741,7 +5371,7 @@ exports.blockScreen = blockScreen;
/***/ }),
-/* 60 */
+/* 62 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -4758,8 +5388,8 @@ var __assign = (this && this.__assign) || function () {
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
-var html_1 = __webpack_require__(3);
-var types_1 = __webpack_require__(33);
+var html_1 = __webpack_require__(2);
+var types_1 = __webpack_require__(35);
var DEFAULT_SHOW_DELAY = 750;
var DEFAULT_HIDE_DELAY = 200;
function findPosition(targetRect, position, width, height) {
@@ -4820,7 +5450,7 @@ function showTooltip(node, text, position, css, force) {
var rects = node.getBoundingClientRect();
tooltipText.textContent = text;
document.body.appendChild(tooltipBox);
- tooltipBox.className = "dhx_tooltip" + (force ? " dhx_tooltip--forced" : "");
+ tooltipBox.className = "dhx_widget dhx_tooltip" + (force ? " dhx_tooltip--forced" : "");
var _a = tooltipBox.getBoundingClientRect(), width = _a.width, height = _a.height;
var _b = findPosition(rects, position, width, height), left = _b.left, top = _b.top, pos = _b.pos;
switch (pos) {
@@ -4902,7 +5532,7 @@ function tooltip(text, config) {
if (hideTimeout) {
clearTimeout(hideTimeout);
hideTimeout = null;
- addListeners(node, text, __assign({}, config, { force: true }));
+ addListeners(node, text, __assign(__assign({}, config), { force: true }));
}
else {
addListeners(node, text, config);
@@ -4930,13 +5560,13 @@ function _mousemove(e) {
/***/ }),
-/* 61 */
+/* 63 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var types_1 = __webpack_require__(21);
+var types_1 = __webpack_require__(22);
var ts_data_1 = __webpack_require__(7);
var Selection = /** @class */ (function () {
function Selection(config, data) {
@@ -4949,6 +5579,12 @@ var Selection = /** @class */ (function () {
this._data.events.on(ts_data_1.DataEvents.removeAll, function () {
_this._selected = [];
});
+ if (typeof this.config.multiselection === "string") {
+ var types = ["click", "ctrlClick"];
+ if (types.indexOf(this.config.multiselection) === -1) {
+ this.config.multiselection = false;
+ }
+ }
this._data.events.on(ts_data_1.DataEvents.afterRemove, function (obj) {
_this._selected = _this._selected.filter(function (selectedId) { return selectedId !== obj.id; });
if (_this.config.multiselection && _this.getId().length !== 0) {
@@ -5027,7 +5663,7 @@ var Selection = /** @class */ (function () {
Selection.prototype._addMulti = function (id, isCtrl, isShift) {
var _this = this;
var currentSelectedItemIndex = this._data.getIndex(id);
- if (this.config.multiselectionMode === "click") {
+ if (this.config.multiselection === "click" || this.config.multiselection === true) {
if (isShift) {
this._addWithShift(currentSelectedItemIndex);
this.events.fire(types_1.SelectionEvents.afterSelect, [id]);
@@ -5038,7 +5674,7 @@ var Selection = /** @class */ (function () {
this._lastShiftSelectedIndexes = [];
}
}
- if (this.config.multiselectionMode === "ctrlClick") {
+ if (this.config.multiselection === "ctrlClick") {
if (!isShift && !isCtrl) {
this._data.map(function (item) {
item.$selected = false;
@@ -5118,7 +5754,7 @@ var Selection = /** @class */ (function () {
// clean selection
this.remove();
// select item
- if (this.config && this.config.multiselectionMode === "click") {
+ if (this.config && this.config.multiselection !== "ctrlClick") {
this._selectItem(id);
}
else {
@@ -5151,7 +5787,7 @@ exports.Selection = Selection;
/***/ }),
-/* 62 */
+/* 64 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -5159,16 +5795,16 @@ exports.Selection = Selection;
Object.defineProperty(exports, "__esModule", { value: true });
var PopupEvents;
(function (PopupEvents) {
- PopupEvents["beforeHide"] = "beforehide";
- PopupEvents["beforeShow"] = "beforeshow";
- PopupEvents["afterHide"] = "afterhide";
- PopupEvents["afterShow"] = "aftershow";
+ PopupEvents["beforeHide"] = "beforeHide";
+ PopupEvents["beforeShow"] = "beforeShow";
+ PopupEvents["afterHide"] = "afterHide";
+ PopupEvents["afterShow"] = "afterShow";
PopupEvents["click"] = "click";
})(PopupEvents = exports.PopupEvents || (exports.PopupEvents = {}));
/***/ }),
-/* 63 */
+/* 65 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -5188,7 +5824,7 @@ var SliderEvents;
/***/ }),
-/* 64 */
+/* 66 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -5203,7 +5839,7 @@ exports.default = locale;
/***/ }),
-/* 65 */
+/* 67 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -5212,13 +5848,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
var TimepickerEvents;
(function (TimepickerEvents) {
TimepickerEvents["change"] = "change";
- TimepickerEvents["save"] = "save";
+ TimepickerEvents["apply"] = "apply";
+ TimepickerEvents["beforeClose"] = "beforeClose";
+ TimepickerEvents["afterClose"] = "afterClose";
+ // TODO: remove sute_7.0
TimepickerEvents["close"] = "close";
+ TimepickerEvents["save"] = "save";
})(TimepickerEvents = exports.TimepickerEvents || (exports.TimepickerEvents = {}));
/***/ }),
-/* 66 */
+/* 68 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -5226,7 +5866,7 @@ var TimepickerEvents;
Object.defineProperty(exports, "__esModule", { value: true });
var ViewMode;
(function (ViewMode) {
- ViewMode["days"] = "calendar";
+ ViewMode["calendar"] = "calendar";
ViewMode["years"] = "year";
ViewMode["months"] = "month";
ViewMode["timepicker"] = "timepicker";
@@ -5235,12 +5875,18 @@ var CalendarEvents;
(function (CalendarEvents) {
CalendarEvents["change"] = "change";
CalendarEvents["beforeChange"] = "beforechange";
+ CalendarEvents["modeChange"] = "modeChange";
+ CalendarEvents["monthSelected"] = "monthSelected";
+ CalendarEvents["yearSelected"] = "yearSelected";
+ CalendarEvents["cancelClick"] = "cancelClick";
+ CalendarEvents["dateMouseOver"] = "dateMouseOver";
+ // TODO: remove sute_7.0
CalendarEvents["dateHover"] = "dateHover";
})(CalendarEvents = exports.CalendarEvents || (exports.CalendarEvents = {}));
/***/ }),
-/* 67 */
+/* 69 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -5248,20 +5894,24 @@ var CalendarEvents;
Object.defineProperty(exports, "__esModule", { value: true });
var ColorpickerEvents;
(function (ColorpickerEvents) {
- ColorpickerEvents["colorChange"] = "colorChange";
- ColorpickerEvents["selectClick"] = "selectClick";
+ ColorpickerEvents["change"] = "change";
+ ColorpickerEvents["apply"] = "apply";
ColorpickerEvents["cancelClick"] = "cancelClick";
+ ColorpickerEvents["modeChange"] = "modeChange";
+ // TODO: remove sute_7.0
+ ColorpickerEvents["selectClick"] = "selectClick";
+ ColorpickerEvents["colorChange"] = "colorChange";
ColorpickerEvents["viewChange"] = "viewChange";
})(ColorpickerEvents = exports.ColorpickerEvents || (exports.ColorpickerEvents = {}));
-var ViewsTypes;
-(function (ViewsTypes) {
- ViewsTypes["palette"] = "palette";
- ViewsTypes["picker"] = "picker";
-})(ViewsTypes = exports.ViewsTypes || (exports.ViewsTypes = {}));
+var ViewsMode;
+(function (ViewsMode) {
+ ViewsMode["palette"] = "palette";
+ ViewsMode["picker"] = "picker";
+})(ViewsMode = exports.ViewsMode || (exports.ViewsMode = {}));
/***/ }),
-/* 68 */
+/* 70 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -5270,23 +5920,34 @@ Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(1);
var dom_1 = __webpack_require__(0);
var common_1 = __webpack_require__(5);
+var html_1 = __webpack_require__(2);
var defaultTextTemplate = function (item) { return item.toString(); };
function bottom(points, config, width, height) {
- var title = config.title, textPadding = config.textPadding, scalePadding = config.scalePadding, textTemplate = config.textTemplate, showText = config.showText;
+ var title = config.title, textPadding = config.textPadding, scalePadding = config.scalePadding, textTemplate = config.textTemplate, showText = config.showText, scaleRotate = config.scaleRotate;
var template = textTemplate || defaultTextTemplate;
var text = [];
var extraTittlePadding = 0;
if (showText) {
extraTittlePadding = textPadding;
- text = points.map(function (p) { return p[0] !== 0 ? dom_1.sv("text", { class: "scale-text top-text", x: p[0], y: height + textPadding }, [common_1.verticalCenteredText(template(p[1]))])
- : dom_1.sv("text", { class: "scale-text start-text top-text", x: p[0], y: height + textPadding }, [common_1.verticalCenteredText(template(p[1]))]); });
+ var canRotate_1 = scaleRotate && !isNaN(scaleRotate);
+ var y_1 = height + textPadding;
+ text = points.map(function (p) {
+ var x = p[0];
+ var transform = canRotate_1 ? "rotate(" + scaleRotate + " " + x + " " + y_1 + ")" : "";
+ var classList = ["scale-text", "top-text"];
+ if (canRotate_1) {
+ var angle = scaleRotate % 360;
+ classList.push(common_1.getClassesForRotateScale(html_1.Position.bottom, angle));
+ }
+ return dom_1.sv("text", { x: x, y: y_1, class: classList.join(" "), transform: transform }, [common_1.verticalCenteredText(template(p[1]))]);
+ });
}
var id = core_1.uid();
var svTitle = null;
- var mainLine = dom_1.sv("path", { class: "main-scale", d: "M0 " + height + " H" + (width - 0.5), id: id }); // -0.5 instead of 0, coz stroke-linecap: square and dirrent stroke size
+ var mainLine = dom_1.sv("path", { class: "main-scale", d: "M0 " + height + " H" + (width - 0.5), id: id });
if (title) {
svTitle = dom_1.sv("text", { dx: width / 2, dy: scalePadding + extraTittlePadding }, [
- dom_1.sv("textPath", { href: "#" + id, class: "scale-title" }, title)
+ dom_1.sv("textPath", { href: "#" + id, class: "scale-title " }, title)
]);
}
return dom_1.sv("g", [
@@ -5330,14 +5991,24 @@ function bottomGrid(points, width, height, config) {
}
exports.bottomGrid = bottomGrid;
function top(points, config, width, _height) {
- var title = config.title, textPadding = config.textPadding, scalePadding = config.scalePadding, textTemplate = config.textTemplate, showText = config.showText;
+ var title = config.title, textPadding = config.textPadding, scalePadding = config.scalePadding, textTemplate = config.textTemplate, showText = config.showText, scaleRotate = config.scaleRotate;
var template = textTemplate || defaultTextTemplate;
var text = [];
var extraTittlePadding = 0;
if (showText) {
extraTittlePadding = textPadding;
- text = points.map(function (p) { return p[0] !== 0 ? dom_1.sv("text", { x: p[0], y: -textPadding, class: "scale-text" }, [common_1.verticalCenteredText(template(p[1]))])
- : dom_1.sv("text", { x: p[0], y: -textPadding, class: "scale-text start-text" }, [common_1.verticalCenteredText(template(p[1]))]); });
+ var canRotate_2 = scaleRotate && !isNaN(scaleRotate);
+ var y_2 = -textPadding;
+ text = points.map(function (p) {
+ var classList = ["scale-text"];
+ var x = p[0];
+ var transform = canRotate_2 ? "rotate(" + scaleRotate + " " + x + " " + y_2 + ")" : "";
+ if (canRotate_2) {
+ var angle = scaleRotate % 360;
+ classList.push(common_1.getClassesForRotateScale(html_1.Position.top, angle));
+ }
+ return dom_1.sv("text", { x: x, y: y_2, class: classList.join(" "), transform: transform }, [common_1.verticalCenteredText(template(p[1]))]);
+ });
}
var id = core_1.uid();
var mainLine = dom_1.sv("path", { d: "M0 0 H" + width, class: "main-scale", id: id });
@@ -5383,14 +6054,19 @@ function topGrid(points, _width, height, config) {
}
exports.topGrid = topGrid;
function left(points, config, _width, height) {
- var title = config.title, textPadding = config.textPadding, scalePadding = config.scalePadding, textTemplate = config.textTemplate, showText = config.showText;
+ var title = config.title, textPadding = config.textPadding, scalePadding = config.scalePadding, textTemplate = config.textTemplate, showText = config.showText, scaleRotate = config.scaleRotate;
var template = textTemplate || defaultTextTemplate;
var text = [];
var extraTittlePadding = 0;
if (showText) {
var style_1 = common_1.getFontStyle("scale-text");
var maxTextWidth_1 = 0;
+ var canRotate_3 = scaleRotate && !isNaN(scaleRotate);
text = points.map(function (p) {
+ var y = p[0];
+ var x = -textPadding;
+ var transform = canRotate_3 ? "rotate(" + scaleRotate + " " + x + " " + y + ")" : "";
+ var classList = ["scale-text"];
var scaleText = template(p[1]);
if (title) {
var textWidth = common_1.getTextWidth(scaleText, style_1);
@@ -5398,7 +6074,14 @@ function left(points, config, _width, height) {
maxTextWidth_1 = textWidth;
}
}
- return dom_1.sv("text", { class: "scale-text end-text", x: -textPadding, y: p[0] }, [common_1.verticalCenteredText(scaleText)]);
+ if (canRotate_3) {
+ var angle = scaleRotate % 360;
+ classList.push(common_1.getClassesForRotateScale(html_1.Position.left, angle));
+ }
+ else {
+ classList.push("end-text");
+ }
+ return dom_1.sv("text", { x: x, y: y, class: classList.join(" "), transform: transform }, [common_1.verticalCenteredText(scaleText)]);
});
extraTittlePadding = maxTextWidth_1 + textPadding;
}
@@ -5451,22 +6134,34 @@ function leftGrid(points, width, height, config) {
}
exports.leftGrid = leftGrid;
function right(points, config, width, height) {
- var title = config.title, textPadding = config.textPadding, scalePadding = config.scalePadding, textTemplate = config.textTemplate, showText = config.showText;
+ var title = config.title, textPadding = config.textPadding, scalePadding = config.scalePadding, textTemplate = config.textTemplate, showText = config.showText, scaleRotate = config.scaleRotate;
var template = textTemplate || defaultTextTemplate;
var text = [];
var extraTittlePadding = 0;
if (showText) {
var style_2 = common_1.getFontStyle("scale-text");
var maxTextWidth_2 = 0;
+ var canRotate_4 = scaleRotate && !isNaN(scaleRotate);
text = points.map(function (p) {
var scaleText = template(p[1]);
+ var y = p[0];
+ var x = width + textPadding;
+ var transform = canRotate_4 ? "rotate(" + scaleRotate + " " + x + " " + y + ")" : "";
+ var classList = ["scale-text"];
if (title) {
var textWidth = common_1.getTextWidth(scaleText, style_2);
if (maxTextWidth_2 < textWidth) {
maxTextWidth_2 = textWidth;
}
}
- return dom_1.sv("text", { x: width + textPadding, class: "scale-text start-text", y: p[0] }, [common_1.verticalCenteredText(scaleText)]);
+ if (canRotate_4) {
+ var angle = scaleRotate % 360;
+ classList.push(common_1.getClassesForRotateScale(html_1.Position.right, angle));
+ }
+ else {
+ classList.push("start-text");
+ }
+ return dom_1.sv("text", { x: x, y: y, class: classList.join(" "), transform: transform }, [common_1.verticalCenteredText(scaleText)]);
});
extraTittlePadding = textPadding + maxTextWidth_2;
}
@@ -5516,7 +6211,7 @@ exports.rightGrid = rightGrid;
/***/ }),
-/* 69 */
+/* 71 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -5549,7 +6244,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
var common_1 = __webpack_require__(5);
var types_1 = __webpack_require__(6);
-var ScaleSeria_1 = __webpack_require__(43);
+var ScaleSeria_1 = __webpack_require__(46);
var Area = /** @class */ (function (_super) {
__extends(Area, _super);
function Area() {
@@ -5633,7 +6328,7 @@ var Area = /** @class */ (function (_super) {
tooltip: true,
pointType: types_1.PointType.empty
};
- this.config = __assign({}, defaults, config);
+ this.config = __assign(__assign({}, defaults), config);
var showTooltip = this.config.tooltip;
var point = this.config.pointType;
var color = this.config.pointColor || this.config.color;
@@ -5647,7 +6342,7 @@ exports.default = Area;
/***/ }),
-/* 70 */
+/* 72 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -5681,7 +6376,7 @@ var core_1 = __webpack_require__(1);
var dom_1 = __webpack_require__(0);
var common_1 = __webpack_require__(5);
var types_1 = __webpack_require__(6);
-var ScaleSeria_1 = __webpack_require__(43);
+var ScaleSeria_1 = __webpack_require__(46);
var Bar = /** @class */ (function (_super) {
__extends(Bar, _super);
function Bar() {
@@ -5731,16 +6426,19 @@ var Bar = /** @class */ (function (_super) {
var baseLine = this.config.baseLine;
return this._baseLinePosition = baseLine !== undefined ? this.yScale.point(baseLine) * height : height - 1;
};
- Bar.prototype._text = function (item, prev) {
+ Bar.prototype._text = function (item, prev, rotate) {
+ var x = item[0];
+ var y = (prev + item[1]) / 2;
+ var canRotate = rotate && !isNaN(rotate);
return {
- x: item[0],
- y: (prev + item[1]) / 2,
- class: "bar-text"
+ x: x, y: y,
+ class: "bar-text",
+ transform: canRotate ? "rotate(" + rotate + " " + x + " " + y + ")" : ""
};
};
Bar.prototype._getForm = function (points, css, _width, height, prev) {
var _this = this;
- var _a = this.config, fill = _a.fill, alpha = _a.alpha, showText = _a.showText;
+ var _a = this.config, fill = _a.fill, alpha = _a.alpha, showText = _a.showText, showTextTemplate = _a.showTextTemplate, showTextRotate = _a.showTextRotate;
var svg = [];
var base = this._base(height);
var getPrev = function (index) { return !prev ? base : prev[index][1]; };
@@ -5749,22 +6447,24 @@ var Bar = /** @class */ (function (_super) {
"d": _this._path(item, getPrev(index)),
"class": css,
fill: fill,
+ "onclick": [_this._handlers.onclick, item[2], _this.config.value],
"fill-opacity": alpha
}); });
svg.push.apply(svg, series);
- if (showText) {
+ if (showText || showTextTemplate || showTextRotate) {
var isWrite_1 = function (item, index) { return Math.abs(getPrev(index) - item[1]) > 16 ? true : false; }; // hide text, where height < 16
var text = points.map(function (item, index) {
- return isWrite_1(item, index) ?
- dom_1.sv("text", _this._text(item, getPrev(index)), [common_1.verticalCenteredText(_this._getText(item))]) :
- null;
+ var value = _this._getText(item);
+ return isWrite_1(item, index)
+ ? dom_1.sv("text", _this._text(item, getPrev(index), showTextRotate), [showTextTemplate ? common_1.verticalCenteredText(showTextTemplate(value)) : common_1.verticalCenteredText(value)])
+ : null;
});
svg.push.apply(svg, text);
}
return svg;
};
Bar.prototype._getText = function (item) {
- return item[3].toString();
+ return item[4].toString();
};
Bar.prototype._setDefaults = function (config) {
var defaults = {
@@ -5774,7 +6474,7 @@ var Bar = /** @class */ (function (_super) {
tooltip: true,
pointType: types_1.PointType.empty
};
- this.config = __assign({}, defaults, config);
+ this.config = __assign(__assign({}, defaults), config);
var showTooltip = this.config.tooltip;
var point = this.config.pointType;
var color = this.config.pointColor || this.config.color;
@@ -5795,7 +6495,7 @@ exports.default = Bar;
/***/ }),
-/* 71 */
+/* 73 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -5848,7 +6548,7 @@ exports.default = spline;
/***/ }),
-/* 72 */
+/* 74 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -5858,6 +6558,10 @@ var ComboboxEvents;
(function (ComboboxEvents) {
ComboboxEvents["change"] = "change";
ComboboxEvents["open"] = "open";
+ ComboboxEvents["input"] = "input";
+ ComboboxEvents["beforeClose"] = "beforeClose";
+ ComboboxEvents["afterClose"] = "afterClose";
+ // TODO: remove sute_7.0
ComboboxEvents["close"] = "close";
})(ComboboxEvents = exports.ComboboxEvents || (exports.ComboboxEvents = {}));
var ComboState;
@@ -5869,7 +6573,7 @@ var ComboState;
/***/ }),
-/* 73 */
+/* 75 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -5882,30 +6586,31 @@ exports.default = {
/***/ }),
-/* 74 */
+/* 76 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-var __assign = (this && this.__assign) || function () {
- __assign = Object.assign || function(t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
- t[p] = s[p];
- }
- return t;
- };
- return __assign.apply(this, arguments);
-};
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(1);
var dom_1 = __webpack_require__(0);
-var cells_1 = __webpack_require__(52);
+var cells_1 = __webpack_require__(54);
var main_1 = __webpack_require__(20);
-var types_1 = __webpack_require__(11);
-var editors_1 = __webpack_require__(184);
-function handleMouse(row, col, conf, type, e) {
+var types_1 = __webpack_require__(10);
+var editors_1 = __webpack_require__(190);
+var html_1 = __webpack_require__(2);
+function handleMouse(rowStart, colStart, conf, type, e) {
+ colStart = html_1.locateNodeByClassName(e.target, "dhx_grid-fixed-cols-wrap") ? 0 : colStart;
+ var target = html_1.locateNodeByClassName(e.target, "dhx_grid-cell");
+ if (!target) {
+ return;
+ }
+ var rowNode = target.parentNode;
+ var bodyNode = rowNode.parentNode;
+ var colIndex = Array.prototype.indexOf.call(rowNode.childNodes, target);
+ var col = conf.columns[colStart + colIndex];
+ var rowIndex = Array.prototype.indexOf.call(bodyNode.childNodes, rowNode);
+ var row = conf.data[rowStart + rowIndex];
conf.events.fire(type, [row, col, e]);
}
function getHandlers(row, column, conf) {
@@ -5917,20 +6622,36 @@ function getHandlers(row, column, conf) {
oncontextmenu: [handleMouse, row, column, conf, types_1.GridEvents.cellRightClick]
};
}
+exports.getHandlers = getHandlers;
function getTreeCell(content, row, col, conf) {
- return dom_1.el(".dhx_grid-cell", __assign({ class: "dhx_tree-cell " + (col.$cellCss[row.id] || "") + " " + (row.$items ? "dhx_grid-expand-cell" : ""), style: {
+ var isEditable = conf.$editable && conf.$editable.row === row.id && conf.$editable.col === col.id;
+ var css = "";
+ if (conf.dragMode && conf.dragItem === "row") {
+ css += (row.$drophere && !isEditable ? " dhx_grid-cell--drophere" : "") +
+ (row.$dragtarget && !isEditable ? " dhx_grid-cell--dragtarget" : "") +
+ (!isEditable ? " dhx_grid-cell--drag" : "");
+ }
+ var parentPadding = 24 * row.$level;
+ return dom_1.el(".dhx_grid-cell", {
+ class: "dhx_tree-cell " + (col.$cellCss[row.id] || "") + " " + (row.$items ? "dhx_grid-expand-cell" : "") +
+ (" " + (isEditable ? "dhx_tree-editing-cell" : "") + " " + css),
+ style: {
width: col.width,
- lineHeight: conf.rowHeight + "px",
- paddingLeft: 24 * row.$level
- }, dhx_id: row.id }, getHandlers(row, col, conf)), [
+ lineHeight: conf.rowHeight - 1 + "px",
+ padding: !row.$items ? "0 0 0 " + parentPadding + "px" : 0
+ }
+ }, [
row.$items ? dom_1.el(".dhx_grid-expand-cell-icon", {
class: row.$opened ? "dxi dxi-chevron-up" : "dxi dxi-chevron-down",
dhx_id: row.id,
+ style: {
+ padding: row.$level ? "0 4px 0 " + parentPadding + "px" : "0 0 0 4px"
+ }
}) : null,
dom_1.el(".dhx_tree-cell", {
title: main_1.removeHTMLTags(row[col.id]),
style: {
- width: col.width - row.$level * 10,
+ width: "100%",
height: "100%",
textAlign: "left"
}
@@ -5938,7 +6659,7 @@ function getTreeCell(content, row, col, conf) {
]);
}
function getEditorCell(row, col, conf) {
- return editors_1.getEditor(row, col, conf).toHTML();
+ return editors_1.getEditor(row, col, conf);
}
function getCells(conf) {
if (!conf.data || !conf.columns) {
@@ -5947,7 +6668,8 @@ function getCells(conf) {
var pos = conf.$positions;
var data = conf.data ? conf.data.slice(pos.yStart, pos.yEnd) : [];
var columns = conf.columns.slice(pos.xStart, pos.xEnd);
- return data.map(function (row) {
+ return data.map(function (row, index) {
+ var isLastRow = data.length - 1 === index;
var rowCss = "";
if (conf.rowCss) {
rowCss = conf.rowCss(row);
@@ -5956,28 +6678,62 @@ function getCells(conf) {
rowCss += row.$css;
}
return dom_1.el(".dhx_grid-row", {
- "style": { height: conf.rowHeight },
- "dhx_grid-row": row.id,
- "class": rowCss
+ style: { height: isLastRow ? conf.rowHeight + 1 : conf.rowHeight },
+ dhx_id: row.id,
+ class: rowCss,
+ _key: row.id,
+ _flags: dom_1.KEYED_LIST
}, columns.map(function (col) {
- var t = function (text, _row, _col) { return (text || text === 0) ? text : ""; };
- var template = col.template || t;
- var content = template(row[col.id], row, col);
- // ability to use domvm node as template result
- content = typeof content === "string" ? dom_1.el("div.dhx_cell-content", { ".innerHTML": content }) : content;
- var css = ((col.$cellCss[row.id] || "") + " dhx_" + col.type + "-cell").replace(/\s+/g, " ");
- var isEditable = conf.$editable && conf.$editable.row === row.id && conf.$editable.col === col.id;
- if (isEditable) {
- content = getEditorCell(row, col, conf);
- css += " dhx_grid-cell__editable";
- }
- if (conf.type === "tree" && conf.firstColId === col.id) {
- return getTreeCell(content, row, col, conf);
- }
- return dom_1.el(".dhx_grid-cell", __assign({ class: css, style: {
- width: col.width,
- lineHeight: conf.rowHeight + "px"
- }, _key: row.id + col.id }, getHandlers(row, col, conf), { title: main_1.removeHTMLTags(row[col.id]) }), [content]);
+ if (!col.hidden) {
+ var defaultTemplate = function (text) {
+ if (typeof text === "boolean" || col.type === "boolean") {
+ if (typeof text !== "string") {
+ return "" + Boolean(text);
+ }
+ }
+ return (text || text === 0) ? text : "";
+ };
+ var content = col.template ?
+ col.template(row[col.id], row, col) :
+ defaultTemplate(row[col.id]);
+ // content can be a domvm node or a string
+ if (typeof content === "string") {
+ content = dom_1.el("div.dhx_cell-content", (conf.htmlEnable && col.htmlEnable !== false) || col.htmlEnable ? { ".innerHTML": content } : content);
+ }
+ var css = ((col.$cellCss[row.id] || "") + " dhx_" + col.type + "-cell").replace(/\s+/g, " ");
+ var colWidth = col.width;
+ var isEditable = conf.$editable && conf.$editable.row === row.id && conf.$editable.col === col.id;
+ if (isEditable || (col.type === "boolean" && (conf.editable || col.editable))) {
+ if (!(conf.splitAt && conf.columns.length !== conf.splitAt && conf.columns.indexOf(col) < conf.splitAt)) {
+ content = getEditorCell(row, col, conf).toHTML();
+ css += " dhx_grid-cell__editable";
+ if (conf.splitAt === conf.columns.indexOf(col) + 1) {
+ colWidth -= 1;
+ }
+ }
+ }
+ if (conf.type === "tree" && conf.firstColId === col.id) {
+ return getTreeCell(content, row, col, conf);
+ }
+ var colName = void 0;
+ if (col.type === "boolean") {
+ colName = core_1.findIndex(col.header, function (item) { return item.text !== undefined; });
+ }
+ if (conf.dragMode && conf.dragItem === "row") {
+ css += (row.$drophere && !isEditable ? " dhx_grid-cell--drophere" : "") +
+ (row.$dragtarget && !isEditable ? " dhx_grid-cell--dragtarget" : "") +
+ (!isEditable ? " dhx_grid-cell--drag" : "");
+ }
+ return dom_1.el(".dhx_grid-cell", {
+ class: css,
+ style: {
+ width: colWidth,
+ lineHeight: conf.rowHeight - 1 + "px"
+ },
+ _key: col.id,
+ title: col.type === "boolean" ? colName.text : main_1.removeHTMLTags(typeof content === "string" ? content : row[col.id])
+ }, [content]);
+ }
}));
});
}
@@ -6014,6 +6770,9 @@ function getSpans(conf) {
}
var currCol = columns[colIndex];
var currRow = conf.data[rowIndex];
+ if (currCol.hidden) {
+ return "continue";
+ }
var content = spans[i].text ?
spans[i].text
: currRow[col] === undefined ? "" : currRow[col];
@@ -6022,7 +6781,7 @@ function getSpans(conf) {
var template = currCol.template || t;
content = template(content, currRow, currCol);
content = typeof content === "string" ? dom_1.el("div.dhx_span-cell-content", { ".innerHTML": content }) : content;
- var top_1 = conf.rowHeight * rowIndex;
+ var top_1 = conf.rowHeight * rowIndex - 1;
var left = 0;
for (var s = colIndex - 1; s >= 0; s--) {
left += columns[s].width;
@@ -6079,7 +6838,7 @@ exports.getShifts = getShifts;
/***/ }),
-/* 75 */
+/* 77 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -6095,12 +6854,19 @@ var __assign = (this && this.__assign) || function () {
};
return __assign.apply(this, arguments);
};
+var __spreadArrays = (this && this.__spreadArrays) || function () {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+};
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var cells_1 = __webpack_require__(52);
+var cells_1 = __webpack_require__(54);
var main_1 = __webpack_require__(20);
-var types_1 = __webpack_require__(11);
-var content_1 = __webpack_require__(76);
+var types_1 = __webpack_require__(10);
+var content_1 = __webpack_require__(78);
function handleMouse(col, config, type, e) {
config.events.fire(type, [col, e]);
}
@@ -6119,11 +6885,12 @@ function buildRows(columns, name) {
}
function getCustomContentCell(cell, column, config, rowName, css) {
if (css === void 0) { css = ""; }
- var rowHeight = config[name + "RowHeight"] || 40;
+ var rowHeight = (config[rowName + "RowHeight"] - 10 + 1) || 31;
var type = column.type ? "dhx_" + column.type + "-cell" : "dhx_string_cell";
+ // TODO: over with index of filter inside of header or footer
return dom_1.el(".dhx_grid-" + rowName + "-cell.dhx_grid-custom-content-cell." + type, __assign({ class: css, style: {
width: column.width,
- lineHeight: rowHeight + 1 + "px"
+ lineHeight: rowHeight + "px"
} }, getHandlers(column, rowName, config)), [
content_1.content[cell.content] && content_1.content[cell.content].toHtml(column, config)
]);
@@ -6136,7 +6903,7 @@ function getRows(config, rowsConfig) {
var columns = config.currentColumns;
var rowHeight = config[rowName + "RowHeight"] || 40;
var rows = buildRows(columns, rowName);
- return rows.map(function (row) { return dom_1.el(".dhx_" + rowName + "-row", { style: { height: rowHeight } }, row.map(function (cell, i) {
+ return rows.map(function (row, j) { return dom_1.el(".dhx_" + rowName + "-row", { style: { height: rowHeight } }, row.map(function (cell, i) {
var css = cell.css || "";
var column = columns[i];
var sortIconCss = "dxi dxi-sort-variant dhx_grid-sort-icon";
@@ -6144,8 +6911,7 @@ function getRows(config, rowsConfig) {
sortIconCss += " dhx_grid-sort-icon--" + (config.sortDir || "asc");
css += " dhx_grid-" + rowName + "-cell--sorted ";
}
- var sortIconVisible = cell.text && config.headerSort && rowName !== "footer";
- // [todo]
+ var sortIconVisible = main_1.isSortable(config, column) && cell.text && rowName !== "footer";
if (sortIconVisible) {
css += " dhx_grid-header-cell--sortable";
}
@@ -6155,16 +6921,39 @@ function getRows(config, rowsConfig) {
css += " dhx_grid-header-cell--" + (column.type === "number" ? "align_right" : "align_left") + " ";
}
css += isFirstCol + " " + isLastCol;
+ var resizable = column.resizable !== undefined ? column.resizable : config.resizable;
+ if (resizable) {
+ resizable = dom_1.el("div", { class: "dhx_resizer_grip_wrap" }, [
+ dom_1.el("div", {
+ class: "dhx_resizer_grip",
+ dhx_resized: column.id,
+ style: {
+ height: rows.length * 100 + "%"
+ }
+ }, [
+ dom_1.el("div", { class: "dhx_resizer_grip_line" })
+ ])
+ ]);
+ if (rowName === "footer" || j > 0) {
+ resizable = null;
+ }
+ }
if (cell.content) {
return getCustomContentCell(cell, column, config, rowName, css);
}
- return dom_1.el(".dhx_grid-" + rowName + "-cell", __assign({ class: css.trim(), dhx_id: column.id, _key: i, style: {
+ return !column.hidden ? dom_1.el(".dhx_grid-" + rowName + "-cell", __assign(__assign({ class: css.trim(), dhx_id: column.id, _key: i, style: {
width: column.width,
lineHeight: rowHeight + 1 + "px"
- } }, getHandlers(column, rowName, config), { title: main_1.removeHTMLTags(cell.text) }), [
- dom_1.el("div", { ".innerHTML": cell.text }),
- sortIconVisible && dom_1.el("div", { class: sortIconCss }, cell.text)
- ]);
+ } }, getHandlers(column, rowName, config)), { title: main_1.removeHTMLTags(cell.text) }), [
+ dom_1.el("div", {
+ class: "dhx_grid-header-cell-text"
+ }, [
+ dom_1.el("div", {
+ ".innerHTML": cell.text
+ }), resizable || null
+ ]),
+ sortIconVisible && dom_1.el("div", { class: sortIconCss })
+ ]) : null;
})); });
}
exports.getRows = getRows;
@@ -6177,7 +6966,7 @@ function getSpans(config, rowsConfig) {
leftShift = 0;
return dom_1.el(".dhx_span-row", { style: { top: height * i + "px", height: height } }, row.map(function (cell, cellIdx) {
var col = cols[cellIdx];
- leftShift += col.width;
+ leftShift += col.hidden ? 0 : col.width;
var isFirstCol = cellIdx === 0 ? "dhx_first-column-cell" : "";
var isLastCol = (cellIdx === cols.length - 1)
|| ((cell.colspan || 0) + (cellIdx - 1) >= cols.length - 1) ? "dhx_last-column-cell" : "";
@@ -6185,10 +6974,7 @@ function getSpans(config, rowsConfig) {
if (cell.rowspan) {
spanHeight = spanHeight * cell.rowspan - 1;
}
- var sortIconVisible = cell.rowspan
- && cell.text
- && config.headerSort
- && rowsConfig.name !== "footer";
+ var sortIconVisible = main_1.isSortable(config, col) && cell.rowspan && cell.text && rowsConfig.name !== "footer";
var sortIconCss = "dxi dxi-sort-variant dhx_grid-sort-icon";
if (config.sortBy && "" + col.id === config.sortBy && !cell.content) {
sortIconCss += " dhx_grid-sort-icon--" + (config.sortDir || "asc");
@@ -6200,12 +6986,17 @@ function getSpans(config, rowsConfig) {
if (!cell.content) {
css += " dhx_grid-header-cell--" + (col.type === "number" ? "align_right" : "align_left") + " ";
}
- return (cell.colspan || cell.rowspan) ?
+ var borderLeft = "";
+ if (leftShift - col.width > 0) {
+ borderLeft = "1px solid #e4e4e4";
+ }
+ return (cell.colspan || cell.rowspan) && !col.hidden ?
dom_1.el(".dhx_span-cell", {
style: {
width: cells_1.getWidth(config.columns, cell.colspan, cellIdx),
height: spanHeight,
left: leftShift - col.width,
+ borderLeft: borderLeft,
top: height * i,
lineHeight: spanHeight + "px"
},
@@ -6214,7 +7005,7 @@ function getSpans(config, rowsConfig) {
dhx_id: col.id
}, [
dom_1.el("div", { ".innerHTML": cell.text }),
- sortIconVisible && dom_1.el("div", { class: sortIconCss }, cell.text)
+ sortIconVisible && dom_1.el("div", { class: sortIconCss })
])
: null;
}).filter(function (cell) { return cell; }));
@@ -6227,7 +7018,7 @@ function getFixedRows(config, rowsConfig) {
var spans = getSpans(config, rowsConfig);
var fixedCols = null;
if (rowsConfig.name === "footer" && !rowsConfig.sticky) {
- fixedCols = config.splitAt >= 0 && getRows(__assign({}, config, { currentColumns: config.columns.slice(0, config.splitAt), $positions: __assign({}, config.$positions, { xStart: 0, xEnd: config.splitAt }) }), rowsConfig);
+ fixedCols = config.splitAt >= 0 && getRows(__assign(__assign({}, config), { currentColumns: config.columns.slice(0, config.splitAt), $positions: __assign(__assign({}, config.$positions), { xStart: 0, xEnd: config.splitAt }) }), rowsConfig);
}
var styles = (_a = {
position: "sticky"
@@ -6243,7 +7034,7 @@ function getFixedRows(config, rowsConfig) {
var BORDERS = 2;
return dom_1.el(".dhx_" + rowsConfig.name + "-wrapper", {
class: rowsConfig.sticky ? "" : "dhx_compatible-" + rowsConfig.name,
- style: __assign({}, styles, { left: rowsConfig.sticky ? left : 0, height: config[rowsConfig.name + "Height"], width: rowsConfig.sticky ? config.$totalWidth : rowsConfig.wrapper.width - BORDERS })
+ style: __assign(__assign({}, styles), { left: rowsConfig.sticky ? left : 0, height: config[rowsConfig.name + "Height"], width: rowsConfig.sticky ? config.$totalWidth : rowsConfig.wrapper.width - BORDERS })
}, [
dom_1.el(".dhx_grid-" + rowsConfig.name, {
style: {
@@ -6253,7 +7044,7 @@ function getFixedRows(config, rowsConfig) {
width: config.$totalWidth,
}
}, [
- dom_1.el(".dhx_" + rowsConfig.name + "-rows", rows.slice()),
+ dom_1.el(".dhx_" + rowsConfig.name + "-rows", __spreadArrays(rows)),
dom_1.el(".dhx_" + rowsConfig.name + "-spans", {
style: {
marginLeft: -rowsConfig.shifts.x
@@ -6275,19 +7066,30 @@ exports.getFixedRows = getFixedRows;
/***/ }),
-/* 76 */
+/* 78 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
+var __spreadArrays = (this && this.__spreadArrays) || function () {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+};
+var _this = this;
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(11);
+var ts_combobox_1 = __webpack_require__(32);
+var ts_data_1 = __webpack_require__(7);
+var types_1 = __webpack_require__(10);
var inputDelay;
function onInput(eventSystem, colId, filter, filterObj, e) {
var inputHandler = function () {
filterObj.value[colId] = e.target.value;
- eventSystem.fire(types_1.GridEvents.headerInput, [e.target.value, colId, filter]);
+ eventSystem.fire(types_1.GridEvents.filterChange, [e.target.value, colId, filter]);
+ eventSystem.fire(types_1.GridEvents.headerInput, [e.target.value, colId, filter]); // TODO: remove sute_7.0
};
if (filter === "selectFilter") {
inputHandler();
@@ -6354,14 +7156,73 @@ exports.content = {
onchange: [onInput, config.events, column.id, "selectFilter", this],
_key: column.id,
value: this.value[column.id] || ""
- }, [
+ }, __spreadArrays([
dom_1.el("option", { value: "" }, "")
- ].concat(column.$uniqueData.map(function (val) { return val && dom_1.el("option", { value: val }, val); })))
+ ], column.$uniqueData.map(function (val) { return val && dom_1.el("option", { value: val }, val); })))
]);
},
match: function (value, match) { return value === match; },
value: {}
},
+ comboFilter: {
+ toHtml: function (column, config) {
+ var combo;
+ var colId = column.id.toString();
+ if (!this.combo[colId]) {
+ var conf = column.header.filter(function (item) { return item.filterConfig !== undefined; })[0];
+ if (conf && conf.filterConfig) {
+ combo = new ts_combobox_1.Combobox(null, JSON.parse(JSON.stringify(conf.filterConfig)));
+ }
+ else {
+ combo = new ts_combobox_1.Combobox(null, {});
+ }
+ combo.data.parse(column.$uniqueData.map(function (value) { return ({ value: value }); }));
+ config.events.on(ts_data_1.DataEvents.load, function () {
+ combo.data.parse(column.$uniqueData.map(function (value) { return ({ value: value }); }));
+ });
+ this.combo[colId] = combo;
+ combo.events.on("change", function (id) {
+ if (id) {
+ var item = void 0;
+ var value = void 0;
+ if (combo.data.getItem(id)) {
+ item = combo.list.selection.getItem();
+ value = item.value;
+ config.events.fire(types_1.GridEvents.filterChange, [value, colId, "comboFilter"]);
+ config.events.fire(types_1.GridEvents.headerInput, [value, colId, "comboFilter"]); // TODO: remove sute_7.0
+ }
+ else {
+ config.events.fire(types_1.GridEvents.filterChange, ["", colId, "comboFilter"]);
+ config.events.fire(types_1.GridEvents.headerInput, ["", colId, "comboFilter"]); // TODO: remove sute_7.0
+ }
+ }
+ });
+ combo.popup.events.on("afterHide", function () {
+ if (!combo.list.selection.getItem()) {
+ combo.clear();
+ config.events.fire(types_1.GridEvents.filterChange, ["", colId, "comboFilter"]);
+ config.events.fire(types_1.GridEvents.headerInput, ["", colId, "comboFilter"]); // TODO: remove sute_7.0
+ }
+ });
+ }
+ else {
+ combo = this.combo[column.id];
+ }
+ return dom_1.inject(combo.getRootView());
+ },
+ match: function (value, match) { return new RegExp("" + match, "i").test(value) && new RegExp("" + match, "i").exec(value).index === 0; },
+ destroy: function () {
+ var comboFilters = _this.content.comboFilter.combo;
+ if (comboFilters) {
+ for (var combo in comboFilters) {
+ comboFilters[combo].destructor();
+ delete comboFilters[combo];
+ }
+ }
+ },
+ value: {},
+ combo: {}
+ },
sum: {
calculate: function (_col, roots) { return roots.reduce(function (sum, c) { return sum += parseFloat(c) || 0; }, 0).toFixed(3); },
toHtml: function (column, config) { return applyMathMethod(column, config, this.calculate); }
@@ -6402,7 +7263,7 @@ exports.content = {
/***/ }),
-/* 77 */
+/* 79 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -6410,12 +7271,17 @@ exports.content = {
Object.defineProperty(exports, "__esModule", { value: true });
var SidebarEvents;
(function (SidebarEvents) {
+ SidebarEvents["beforeCollapse"] = "beforeCollapse";
+ SidebarEvents["afterCollapse"] = "afterCollapse";
+ SidebarEvents["beforeExpand"] = "beforeExpand";
+ SidebarEvents["afterExpand"] = "afterExpand";
+ // TODO: remove sute_7.0
SidebarEvents["toggle"] = "toggle";
})(SidebarEvents = exports.SidebarEvents || (exports.SidebarEvents = {}));
/***/ }),
-/* 78 */
+/* 80 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -6431,20 +7297,23 @@ var RenderMode;
var TabbarEvents;
(function (TabbarEvents) {
TabbarEvents["change"] = "change";
+ TabbarEvents["beforeClose"] = "beforeClose";
+ TabbarEvents["afterClose"] = "afterClose";
+ // TODO: remove sute_7.0
TabbarEvents["close"] = "close";
})(TabbarEvents = exports.TabbarEvents || (exports.TabbarEvents = {}));
/***/ }),
-/* 79 */
+/* 81 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var events_1 = __webpack_require__(2);
-var html_1 = __webpack_require__(3);
+var events_1 = __webpack_require__(3);
+var html_1 = __webpack_require__(2);
var Keymanager_1 = __webpack_require__(13);
var EditorMode;
(function (EditorMode) {
@@ -6554,7 +7423,7 @@ exports.default = new Editor();
/***/ }),
-/* 80 */
+/* 82 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -6576,47 +7445,59 @@ var TreeEvents;
(function (TreeEvents) {
TreeEvents["itemClick"] = "itemclick";
TreeEvents["itemDblClick"] = "itemdblclick";
+ TreeEvents["itemRightClick"] = "itemrightclick";
+ TreeEvents["beforeCollapse"] = "beforeCollapse";
+ TreeEvents["afterCollapse"] = "afterCollapse";
+ TreeEvents["beforeExpand"] = "beforeExpand";
+ TreeEvents["afterExpand"] = "afterExpand";
+ // TODO: remove sute_7.0
TreeEvents["itemContextMenu"] = "itemcontextmenu";
})(TreeEvents = exports.TreeEvents || (exports.TreeEvents = {}));
/***/ }),
-/* 81 */
+/* 83 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-__webpack_require__(82);
+__webpack_require__(84);
+// HELPERS
/* tslint:disable */
-var CssManager_1 = __webpack_require__(83);
+var CssManager_1 = __webpack_require__(85);
exports.cssManager = CssManager_1.cssManager;
-var events_1 = __webpack_require__(2);
+var events_1 = __webpack_require__(3);
exports.EventSystem = events_1.EventSystem;
-var ts_vault_1 = __webpack_require__(53);
+var dom_1 = __webpack_require__(0);
+exports.awaitRedraw = dom_1.awaitRedraw;
+exports.resizeHandler = dom_1.resizeHandler;
+var ts_vault_1 = __webpack_require__(55);
exports.Uploader = ts_vault_1.Uploader;
-var ts_layout_1 = __webpack_require__(12);
+var ts_data_1 = __webpack_require__(7);
+exports.DataCollection = ts_data_1.DataCollection;
+exports.TreeCollection = ts_data_1.TreeCollection;
+exports.DataProxy = ts_data_1.DataProxy;
+exports.dataDrivers = ts_data_1.dataDrivers;
+exports.ajax = ts_data_1.ajax;
+// WIDGETS
+var ts_layout_1 = __webpack_require__(14);
exports.Layout = ts_layout_1.Layout;
-var ts_list_1 = __webpack_require__(36);
+var ts_list_1 = __webpack_require__(38);
exports.List = ts_list_1.List;
-var ts_calendar_1 = __webpack_require__(28);
+var ts_calendar_1 = __webpack_require__(25);
exports.Calendar = ts_calendar_1.Calendar;
var ts_colorpicker_1 = __webpack_require__(31);
exports.Colorpicker = ts_colorpicker_1.Colorpicker;
-var ts_chart_1 = __webpack_require__(134);
+var ts_chart_1 = __webpack_require__(139);
exports.Chart = ts_chart_1.Chart;
-var ts_combobox_1 = __webpack_require__(47);
+var ts_combobox_1 = __webpack_require__(32);
exports.Combobox = ts_combobox_1.Combobox;
-var ts_data_1 = __webpack_require__(7);
-exports.DataCollection = ts_data_1.DataCollection;
-exports.TreeCollection = ts_data_1.TreeCollection;
-exports.DataProxy = ts_data_1.DataProxy;
-exports.dataDrivers = ts_data_1.dataDrivers;
-var ts_dataview_1 = __webpack_require__(160);
+var ts_dataview_1 = __webpack_require__(165);
exports.DataView = ts_dataview_1.DataView;
-var ts_form_1 = __webpack_require__(164);
+var ts_form_1 = __webpack_require__(169);
exports.Form = ts_form_1.Form;
-var ts_grid_1 = __webpack_require__(179);
+var ts_grid_1 = __webpack_require__(184);
exports.Grid = ts_grid_1.Grid;
var ts_message_1 = __webpack_require__(19);
exports.message = ts_message_1.message;
@@ -6625,33 +7506,34 @@ exports.confirm = ts_message_1.confirm;
exports.enableTooltip = ts_message_1.enableTooltip;
exports.disableTooltip = ts_message_1.disableTooltip;
exports.tooltip = ts_message_1.tooltip;
-var ts_menu_1 = __webpack_require__(189);
+var ts_menu_1 = __webpack_require__(198);
exports.Menu = ts_menu_1.Menu;
exports.ContextMenu = ts_menu_1.ContextMenu;
-var ts_popup_1 = __webpack_require__(10);
+var ts_popup_1 = __webpack_require__(11);
exports.Popup = ts_popup_1.Popup;
-var ts_ribbon_1 = __webpack_require__(192);
+var ts_ribbon_1 = __webpack_require__(201);
exports.Ribbon = ts_ribbon_1.Ribbon;
-var ts_sidebar_1 = __webpack_require__(194);
+var ts_sidebar_1 = __webpack_require__(203);
exports.Sidebar = ts_sidebar_1.Sidebar;
-var ts_slider_1 = __webpack_require__(30);
+var ts_slider_1 = __webpack_require__(40);
exports.Slider = ts_slider_1.Slider;
-var ts_tabbar_1 = __webpack_require__(196);
+var ts_tabbar_1 = __webpack_require__(205);
exports.Tabbar = ts_tabbar_1.Tabbar;
-var ts_timepicker_1 = __webpack_require__(29);
+var ts_timepicker_1 = __webpack_require__(30);
exports.Timepicker = ts_timepicker_1.Timepicker;
-var ts_toolbar_1 = __webpack_require__(27);
+var ts_toolbar_1 = __webpack_require__(29);
exports.Toolbar = ts_toolbar_1.Toolbar;
-var ts_tree_1 = __webpack_require__(198);
+var ts_tree_1 = __webpack_require__(207);
exports.Tree = ts_tree_1.Tree;
-var ts_window_1 = __webpack_require__(201);
+var ts_window_1 = __webpack_require__(210);
exports.Window = ts_window_1.Window;
+// TOOLS
var ts_colorpicker_2 = __webpack_require__(31);
-var en_1 = __webpack_require__(34);
-var en_2 = __webpack_require__(39);
-var en_3 = __webpack_require__(48);
-var en_4 = __webpack_require__(73);
-var en_5 = __webpack_require__(64);
+var en_1 = __webpack_require__(36);
+var en_2 = __webpack_require__(42);
+var en_3 = __webpack_require__(50);
+var en_4 = __webpack_require__(75);
+var en_5 = __webpack_require__(66);
var w = window;
exports.i18n = (w.dhx && w.dhx.i18n) ? w.dhx.i18 : {};
exports.i18n.setLocale = function (component, value) {
@@ -6669,13 +7551,13 @@ exports.i18n.timepicker = exports.i18n.timepicker || en_5.default;
/***/ }),
-/* 82 */
+/* 84 */
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
-/* 83 */
+/* 85 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -6766,7 +7648,7 @@ exports.cssManager = new CssManager();
/***/ }),
-/* 84 */
+/* 86 */
/***/ (function(module, exports) {
if (Element && !Element.prototype.matches) {
@@ -6778,7 +7660,7 @@ if (Element && !Element.prototype.matches) {
/***/ }),
-/* 85 */
+/* 87 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {var scope = (typeof global !== "undefined" && global) ||
@@ -6834,7 +7716,7 @@ exports._unrefActive = exports.active = function(item) {
};
// setimmediate attaches itself to the global object
-__webpack_require__(86);
+__webpack_require__(88);
// On some exotic environments, it's not clear which object `setimmediate` was
// able to install onto. Search each possibility in the same order as the
// `setimmediate` library.
@@ -6845,10 +7727,10 @@ exports.clearImmediate = (typeof self !== "undefined" && self.clearImmediate) ||
(typeof global !== "undefined" && global.clearImmediate) ||
(this && this.clearImmediate);
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(32)))
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(33)))
/***/ }),
-/* 86 */
+/* 88 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) {
@@ -7038,10 +7920,10 @@ exports.clearImmediate = (typeof self !== "undefined" && self.clearImmediate) ||
attachTo.clearImmediate = clearImmediate;
}(typeof self === "undefined" ? typeof global === "undefined" ? this : global : self));
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(32), __webpack_require__(87)))
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(33), __webpack_require__(89)))
/***/ }),
-/* 87 */
+/* 89 */
/***/ (function(module, exports) {
// shim for using process in browser
@@ -7231,1779 +8113,80 @@ process.umask = function() { return 0; };
/***/ }),
-/* 88 */
+/* 90 */
/***/ (function(module, exports, __webpack_require__) {
-"use strict";
-/* WEBPACK VAR INJECTION */(function(Promise) {
-Object.defineProperty(exports, "__esModule", { value: true });
-var helpers_1 = __webpack_require__(18);
-var types_1 = __webpack_require__(17);
-var Loader = /** @class */ (function () {
- function Loader(parent, changes) {
- this._parent = parent;
- this._changes = changes; // todo: [dirty] mutation
- }
- Loader.prototype.load = function (url, driver) {
- var _this = this;
- return this._parent.loadData = url.load().then(function (data) {
- _this._parent.removeAll();
- // const parcedData = this.parse(data, driver);
- return _this.parse(data, driver);
- }).catch(function (error) {
- _this._parent.events.fire(types_1.DataEvents.loadError, [error]);
- });
- };
- Loader.prototype.parse = function (data, driver) {
- if (driver === void 0) { driver = "json"; }
- if (driver === "json" && !helpers_1.hasJsonOrArrayStructure(data)) {
- this._parent.events.fire(types_1.DataEvents.loadError, ["Uncaught SyntaxError: Unexpected end of input"]);
- }
- driver = helpers_1.toDataDriver(driver);
- data = driver.toJsonArray(data);
- this._parent.$parse(data);
- return data;
- };
- Loader.prototype.save = function (url) {
- var _this = this;
- var _loop_1 = function (el) {
- if (el.saving || el.pending) {
- helpers_1.dhxWarning("item is saving");
- }
- else {
- var prevEl_1 = this_1._findPrevState(el.id);
- if (prevEl_1 && prevEl_1.saving) {
- var pending = new Promise(function (res, rej) {
- prevEl_1.promise.then(function () {
- el.pending = false;
- res(_this._setPromise(el, url));
- }).catch(function (err) {
- _this._removeFromOrder(prevEl_1);
- _this._setPromise(el, url);
- helpers_1.dhxWarning(err);
- rej(err);
- });
- });
- this_1._addToChain(pending);
- el.pending = true;
- }
- else {
- this_1._setPromise(el, url);
- }
- }
- };
- var this_1 = this;
- for (var _i = 0, _a = this._changes.order; _i < _a.length; _i++) {
- var el = _a[_i];
- _loop_1(el);
- }
- this._parent.saveData.then(function () {
- _this._saving = false;
- });
- };
- Loader.prototype._setPromise = function (el, url) {
- var _this = this;
- el.promise = url.save(el.obj, el.status);
- el.promise.then(function () {
- _this._removeFromOrder(el);
- }).catch(function (err) {
- el.saving = false;
- el.error = true;
- helpers_1.dhxError(err);
- });
- el.saving = true;
- this._saving = true;
- this._addToChain(el.promise);
- return el.promise;
- };
- Loader.prototype._addToChain = function (promise) {
- // tslint:disable-next-line:prefer-conditional-expression
- if (this._parent.saveData && this._saving) {
- this._parent.saveData = this._parent.saveData.then(function () { return promise; });
- }
- else {
- this._parent.saveData = promise;
- }
- };
- Loader.prototype._findPrevState = function (id) {
- for (var _i = 0, _a = this._changes.order; _i < _a.length; _i++) {
- var el = _a[_i];
- if (el.id === id) {
- return el;
- }
- }
- return null;
- };
- Loader.prototype._removeFromOrder = function (el) {
- this._changes.order = this._changes.order.filter(function (item) { return !helpers_1.isEqualObj(item, el); });
- };
- return Loader;
-}());
-exports.Loader = Loader;
+/**
+* Copyright (c) 2017, Leon Sorokin
+* All rights reserved. (MIT Licensed)
+*
+* domvm.js (DOM ViewModel)
+* A thin, fast, dependency-free vdom view layer
+* @preserve https://github.com/leeoniya/domvm (v3.2.6, micro build)
+*/
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(14)))
+(function (global, factory) {
+ true ? module.exports = factory() :
+ undefined;
+}(this, (function () { 'use strict';
-/***/ }),
-/* 89 */
-/***/ (function(module, exports, __webpack_require__) {
+// NOTE: if adding a new *VNode* type, make it < COMMENT and renumber rest.
+// There are some places that test <= COMMENT to assert if node is a VNode
-"use strict";
+// VNode types
+var ELEMENT = 1;
+var TEXT = 2;
+var COMMENT = 3;
-Object.defineProperty(exports, "__esModule", { value: true });
-var xml_1 = __webpack_require__(90);
-var ARRAY_NAME = "items";
-var ITEM_NAME = "item";
-var XMLDriver = /** @class */ (function () {
- function XMLDriver() {
- }
- XMLDriver.prototype.toJsonArray = function (data) {
- return this.getRows(data);
- };
- XMLDriver.prototype.serialize = function (data) {
- return xml_1.jsonToXML(data);
- };
- XMLDriver.prototype.getFields = function (row) {
- return row;
- };
- XMLDriver.prototype.getRows = function (data) {
- if (typeof data === "string") {
- data = this._fromString(data);
- }
- var childNodes = data.childNodes && data.childNodes[0] && data.childNodes[0].childNodes;
- if (!childNodes || !childNodes.length) {
- return null;
- }
- return this._getRows(childNodes);
- };
- XMLDriver.prototype._getRows = function (nodes) {
- var result = [];
- for (var i = 0; i < nodes.length; i++) {
- if (nodes[i].tagName === ITEM_NAME) {
- result.push(this._nodeToJS(nodes[i]));
- }
- }
- return result;
- };
- XMLDriver.prototype._fromString = function (data) {
- return (new DOMParser()).parseFromString(data, "text/xml");
- };
- XMLDriver.prototype._nodeToJS = function (node) {
- var result = {};
- if (this._haveAttrs(node)) {
- var attrs = node.attributes;
- for (var i = 0; i < attrs.length; i++) {
- var _a = attrs[i], name_1 = _a.name, value = _a.value;
- result[name_1] = this._toType(value);
- }
- }
- if (node.nodeType === 3) {
- result.value = result.value || this._toType(node.textContent);
- return result;
- }
- var childNodes = node.childNodes;
- if (childNodes) {
- for (var i = 0; i < childNodes.length; i++) {
- var subNode = childNodes[i];
- var tag = subNode.tagName;
- if (!tag) {
- continue;
- }
- if (tag === ARRAY_NAME && subNode.childNodes) {
- result[tag] = this._getRows(subNode.childNodes);
- }
- else {
- if (this._haveAttrs(subNode)) {
- result[tag] = this._nodeToJS(subNode);
- }
- else {
- result[tag] = this._toType(subNode.textContent);
- }
- }
- }
- }
- return result;
- };
- XMLDriver.prototype._toType = function (val) {
- if (val === "false" || val === "true") {
- return val === "true";
- }
- if (!isNaN(val)) {
- return Number(val);
- }
- return val;
- };
- XMLDriver.prototype._haveAttrs = function (node) {
- return node.attributes && node.attributes.length;
- };
- return XMLDriver;
-}());
-exports.XMLDriver = XMLDriver;
+// placeholder types
+var VVIEW = 4;
+var VMODEL = 5;
+var ENV_DOM = typeof window !== "undefined";
+var win = ENV_DOM ? window : {};
+var rAF = win.requestAnimationFrame;
-/***/ }),
-/* 90 */
-/***/ (function(module, exports, __webpack_require__) {
+var emptyObj = {};
-"use strict";
+function noop() {}
-Object.defineProperty(exports, "__esModule", { value: true });
-var INDENT_STEP = 4;
-function jsonToXML(data, root) {
- if (root === void 0) { root = "root"; }
- var result = "\n<" + root + ">";
- for (var i = 0; i < data.length; i++) {
- result += "\n" + itemToXML(data[i]);
- }
- return result + ("\n" + root + ">");
+var isArr = Array.isArray;
+
+function isSet(val) {
+ return val != null;
}
-exports.jsonToXML = jsonToXML;
-function ws(count) {
- return " ".repeat(count);
+
+function isPlainObj(val) {
+ return val != null && val.constructor === Object; // && typeof val === "object"
}
-function itemToXML(item, indent) {
- if (indent === void 0) { indent = INDENT_STEP; }
- var result = ws(indent) + "- \n";
- for (var key in item) {
- if (Array.isArray(item[key])) {
- result += ws(indent + INDENT_STEP) + ("<" + key + ">\n");
- result += item[key].map(function (subItem) { return itemToXML(subItem, indent + INDENT_STEP * 2); }).join("\n") + "\n";
- result += ws(indent + INDENT_STEP) + ("" + key + ">\n");
- }
- else {
- result += ws(indent + INDENT_STEP) + ("<" + key + ">" + item[key] + "" + key + ">\n");
- }
- }
- result += ws(indent) + "
";
- return result;
+
+function insertArr(targ, arr, pos, rem) {
+ targ.splice.apply(targ, [pos, rem].concat(arr));
}
+function isVal(val) {
+ var t = typeof val;
+ return t === "string" || t === "number";
+}
-/***/ }),
-/* 91 */
-/***/ (function(module, exports, __webpack_require__) {
+function isFunc(val) {
+ return typeof val === "function";
+}
-"use strict";
+function isProm(val) {
+ return typeof val === "object" && isFunc(val.then);
+}
-Object.defineProperty(exports, "__esModule", { value: true });
-var helpers_1 = __webpack_require__(18);
-var Sort = /** @class */ (function () {
- function Sort() {
- }
- Sort.prototype.sort = function (array, by) {
- var _this = this;
- if (by.rule && typeof by.rule === "function") {
- this._sort(array, by);
- }
- else if (by.by) {
- by.rule = function (a, b) {
- var aa = _this._checkVal(by.as, a[by.by]);
- var bb = _this._checkVal(by.as, b[by.by]);
- return helpers_1.naturalCompare(aa.toString(), bb.toString());
- };
- this._sort(array, by);
- }
- };
- Sort.prototype._checkVal = function (method, val) {
- return method ? method.call(this, val) : val;
- };
- Sort.prototype._sort = function (arr, conf) {
- var _this = this;
- var dir = {
- asc: 1,
- desc: -1
- };
- return arr.sort(function (a, b) {
- return conf.rule.call(_this, a, b) * (dir[conf.dir] || dir.asc);
- });
- };
- return Sort;
-}());
-exports.Sort = Sort;
-/***/ }),
-/* 92 */
-/***/ (function(module, exports, __webpack_require__) {
+function assignObj(targ) {
+ var args = arguments;
-"use strict";
+ for (var i = 1; i < args.length; i++)
+ { for (var k in args[i])
+ { targ[k] = args[i][k]; } }
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var core_1 = __webpack_require__(1);
-var datacollection_1 = __webpack_require__(55);
-var dataproxy_1 = __webpack_require__(25);
-var helpers_1 = __webpack_require__(18);
-var types_1 = __webpack_require__(17);
-function addToOrder(store, obj, parent, index) {
- if (index !== undefined && index !== -1 && store[parent] && store[parent][index]) {
- store[parent].splice(index, 0, obj);
- }
- else {
- if (!store[parent]) {
- store[parent] = [];
- }
- store[parent].push(obj);
- }
-}
-var TreeCollection = /** @class */ (function (_super) {
- __extends(TreeCollection, _super);
- function TreeCollection(config, events) {
- var _a;
- var _this = _super.call(this, config, events) || this;
- var root = _this._root = "_ROOT_" + core_1.uid();
- _this._childs = (_a = {}, _a[root] = [], _a);
- _this._initChilds = null;
- return _this;
- }
- TreeCollection.prototype.add = function (obj, index, parent) {
- var _this = this;
- if (index === void 0) { index = -1; }
- if (parent === void 0) { parent = this._root; }
- if (typeof obj !== "object") {
- obj = {
- value: obj
- };
- }
- if (Array.isArray(obj)) {
- obj.map(function (element, key) {
- if (key > 0 && index !== -1) {
- index = index + 1;
- }
- element.parent = element.parent ? element.parent.toString() : parent;
- var id = _super.prototype.add.call(_this, element, index);
- if (Array.isArray(element.items)) {
- for (var _i = 0, _a = element.items; _i < _a.length; _i++) {
- var item = _a[_i];
- _this.add(item, -1, element.id);
- }
- }
- return id;
- });
- }
- else {
- obj.parent = obj.parent ? obj.parent.toString() : parent;
- var id = _super.prototype.add.call(this, obj, index);
- if (Array.isArray(obj.items)) {
- for (var _i = 0, _a = obj.items; _i < _a.length; _i++) {
- var item = _a[_i];
- this.add(item, -1, obj.id);
- }
- }
- return id;
- }
- };
- TreeCollection.prototype.getRoot = function () {
- return this._root;
- };
- TreeCollection.prototype.getParent = function (id, asObj) {
- if (asObj === void 0) { asObj = false; }
- if (!this._pull[id]) {
- return null;
- }
- var parent = this._pull[id].parent;
- return asObj ? this._pull[parent] : parent;
- };
- TreeCollection.prototype.getItems = function (id) {
- if (this._childs && this._childs[id]) {
- return this._childs[id];
- }
- return [];
- };
- TreeCollection.prototype.getLength = function (id) {
- if (id === void 0) { id = this._root; }
- if (!this._childs[id]) {
- return null;
- }
- return this._childs[id].length;
- };
- TreeCollection.prototype.removeAll = function (id) {
- var _a;
- if (id) {
- var childs = this._childs[id].slice();
- for (var _i = 0, childs_1 = childs; _i < childs_1.length; _i++) {
- var child = childs_1[_i];
- this.remove(child.id);
- }
- }
- else {
- _super.prototype.removeAll.call(this);
- var root = this._root;
- this._initChilds = null;
- this._childs = (_a = {}, _a[root] = [], _a);
- }
- };
- TreeCollection.prototype.getIndex = function (id) {
- var parent = this.getParent(id);
- if (!parent || !this._childs[parent]) {
- return -1;
- }
- return core_1.findIndex(this._childs[parent], function (item) { return item.id === id; });
- };
- TreeCollection.prototype.sort = function (by) {
- var _this = this;
- if (!by) {
- this._childs = {};
- // [dirty]
- this._parse_data(Object.keys(this._pull).map(function (key) { return _this._pull[key]; }));
- if (this._filters) {
- for (var key in this._filters) {
- var filter = this._filters[key];
- this.filter(filter.rule, filter.config);
- }
- }
- }
- else {
- for (var key in this._childs) {
- this._sort.sort(this._childs[key], by);
- }
- if (this._initChilds && Object.keys(this._initChilds).length) {
- for (var key in this._initChilds) {
- this._sort.sort(this._initChilds[key], by);
- }
- }
- }
- this.events.fire(types_1.DataEvents.change);
- };
- TreeCollection.prototype.map = function (cb, parent, direct) {
- if (parent === void 0) { parent = this._root; }
- if (direct === void 0) { direct = true; }
- var result = [];
- if (!this.haveItems(parent)) {
- return result;
- }
- for (var i = 0; i < this._childs[parent].length; i++) {
- result.push(cb.call(this, this._childs[parent][i], i));
- if (direct) {
- var childResult = this.map(cb, this._childs[parent][i].id, direct);
- result = result.concat(childResult);
- }
- }
- return result;
- };
- TreeCollection.prototype.filter = function (rule, config) {
- if (config === void 0) { config = {}; }
- if (!rule) {
- this.restoreOrder();
- return;
- }
- if (!this._initChilds) {
- this._initChilds = this._childs;
- }
- config.type = config.type || types_1.TreeFilterType.leafs;
- // [todo] we can store multiple filter rules, like in datacollection
- this._filters = {};
- this._filters._ = {
- rule: rule,
- config: config
- };
- var newChilds = {};
- this._recursiveFilter(rule, config, this._root, 0, newChilds);
- var parents = [];
- var _loop_1 = function (i) {
- if (newChilds[i].length > 0 && newChilds[i] !== newChilds[this_1.getRoot()]) {
- var item = newChilds[this_1.getRoot()].find(function (element) {
- if (element.id === i) {
- return element;
- }
- });
- if (item) {
- parents.push(item);
- }
- }
- };
- var this_1 = this;
- for (var i in newChilds) {
- _loop_1(i);
- }
- newChilds[this.getRoot()] = parents;
- this._childs = newChilds;
- this.events.fire(types_1.DataEvents.change);
- };
- TreeCollection.prototype.restoreOrder = function () {
- if (this._initChilds) {
- this._childs = this._initChilds;
- this._initChilds = null;
- }
- this.events.fire(types_1.DataEvents.change);
- };
- TreeCollection.prototype.copy = function (id, index, target, targetId) {
- if (target === void 0) { target = this; }
- if (targetId === void 0) { targetId = this._root; }
- if (!this.exists(id)) {
- return null;
- }
- var currentChilds = this._childs[id];
- if (target === this && !this.canCopy(id, targetId)) {
- return null;
- }
- var itemCopy = helpers_1.copyWithoutInner(this.getItem(id), { items: true });
- if (target.exists(id)) {
- itemCopy.id = core_1.uid();
- }
- if (!helpers_1.isTreeCollection(target)) {
- target.add(itemCopy, index);
- return;
- }
- if (this.exists(id)) {
- itemCopy.parent = targetId;
- target.add(itemCopy, index);
- id = itemCopy.id;
- }
- if (currentChilds) {
- for (var _i = 0, currentChilds_1 = currentChilds; _i < currentChilds_1.length; _i++) {
- var child = currentChilds_1[_i];
- var childId = child.id;
- var childIndex = this.getIndex(childId);
- this.copy(childId, childIndex, target, id);
- }
- }
- return id;
- };
- TreeCollection.prototype.move = function (id, index, target, targetId) {
- if (target === void 0) { target = this; }
- if (targetId === void 0) { targetId = this._root; }
- if (!this.exists(id)) {
- return null;
- }
- if (target !== this) {
- if (!helpers_1.isTreeCollection(target)) { // move to datacollection
- target.add(helpers_1.copyWithoutInner(this.getItem(id)), index);
- this.remove(id);
- return;
- }
- var returnId = this.copy(id, index, target, targetId);
- this.remove(id);
- return returnId;
- }
- // move inside
- if (!this.canCopy(id, targetId)) {
- return null;
- }
- var parent = this.getParent(id);
- var parentIndex = this.getIndex(id);
- // get item from parent array and move to target array
- var spliced = this._childs[parent].splice(parentIndex, 1)[0];
- spliced.parent = targetId; // need for next moving, ... not best solution, may be full method for get item
- if (!this._childs[parent].length) {
- delete this._childs[parent];
- }
- if (!this.haveItems(targetId)) {
- this._childs[targetId] = [];
- }
- if (index === -1) {
- index = this._childs[targetId].push(spliced);
- }
- else {
- this._childs[targetId].splice(index, 0, spliced);
- }
- this.events.fire(types_1.DataEvents.change);
- return id;
- };
- TreeCollection.prototype.eachChild = function (id, cb, direct, checkItem) {
- if (direct === void 0) { direct = true; }
- if (checkItem === void 0) { checkItem = function () { return true; }; }
- if (!this.haveItems(id)) {
- return;
- }
- for (var i = 0; i < this._childs[id].length; i++) {
- cb.call(this, this._childs[id][i], i);
- if (direct && checkItem(this._childs[id][i])) {
- this.eachChild(this._childs[id][i].id, cb, direct, checkItem);
- }
- }
- };
- TreeCollection.prototype.getNearId = function (id) {
- return id; // for selection
- };
- TreeCollection.prototype.loadItems = function (id, driver) {
- var _this = this;
- if (driver === void 0) { driver = "json"; }
- var url = this.config.autoload + "?id=" + id;
- var proxy = new dataproxy_1.DataProxy(url);
- proxy.load().then(function (data) {
- driver = helpers_1.toDataDriver(driver);
- data = driver.toJsonArray(data);
- _this._parse_data(data, id);
- _this.events.fire(types_1.DataEvents.change);
- });
- };
- TreeCollection.prototype.refreshItems = function (id, driver) {
- if (driver === void 0) { driver = "json"; }
- this.removeAll(id);
- this.loadItems(id, driver);
- };
- TreeCollection.prototype.eachParent = function (id, cb, self) {
- if (self === void 0) { self = false; }
- var item = this.getItem(id);
- if (!item) {
- return;
- }
- if (self) {
- cb.call(this, item);
- }
- if (item.parent === this._root) {
- return;
- }
- var parent = this.getItem(item.parent);
- cb.call(this, parent);
- this.eachParent(item.parent, cb);
- };
- TreeCollection.prototype.haveItems = function (id) {
- return id in this._childs;
- };
- TreeCollection.prototype.canCopy = function (id, target) {
- if (id === target) {
- return false;
- }
- var canCopy = true;
- this.eachParent(target, function (item) { return item.id === id ? canCopy = false : null; }); // locate return string
- return canCopy;
- };
- TreeCollection.prototype.serialize = function (driver, checkItem) {
- if (driver === void 0) { driver = types_1.DataDriver.json; }
- var data = this._serialize(this._root, checkItem);
- var dataDriver = helpers_1.toDataDriver(driver);
- if (dataDriver) {
- return dataDriver.serialize(data);
- }
- };
- TreeCollection.prototype.getId = function (index, parent) {
- if (parent === void 0) { parent = this._root; }
- if (!this._childs[parent] || !this._childs[parent][index]) {
- return;
- }
- return this._childs[parent][index].id;
- };
- TreeCollection.prototype._removeAll = function (id) {
- var _a;
- if (id) {
- var childs = this._childs[id].slice();
- for (var _i = 0, childs_2 = childs; _i < childs_2.length; _i++) {
- var child = childs_2[_i];
- this.remove(child.id);
- }
- }
- else {
- _super.prototype._removeAll.call(this);
- var root = this._root;
- this._initChilds = null;
- this._childs = (_a = {}, _a[root] = [], _a);
- }
- };
- TreeCollection.prototype._removeCore = function (id) {
- if (this._pull[id]) {
- var parent_1 = this.getParent(id);
- this._childs[parent_1] = this._childs[parent_1].filter(function (item) { return item.id !== id; });
- if (parent_1 !== this._root && !this._childs[parent_1].length) {
- delete this._childs[parent_1];
- }
- if (this._initChilds && this._initChilds[parent_1]) {
- this._initChilds[parent_1] = this._initChilds[parent_1].filter(function (item) { return item.id !== id; });
- if (parent_1 !== this._root && !this._initChilds[parent_1].length) {
- delete this._initChilds[parent_1];
- }
- }
- this._fastDeleteChilds(this._childs, id);
- if (this._initChilds) {
- this._fastDeleteChilds(this._initChilds, id);
- }
- }
- };
- TreeCollection.prototype._addToOrder = function (_order, obj, index) {
- var childs = this._childs;
- var initChilds = this._initChilds;
- var parent = obj.parent;
- this._pull[obj.id] = obj;
- addToOrder(childs, obj, parent, index);
- if (initChilds) {
- addToOrder(initChilds, obj, parent, index);
- }
- };
- TreeCollection.prototype._parse_data = function (data, parent) {
- if (parent === void 0) { parent = this._root; }
- for (var _i = 0, data_1 = data; _i < data_1.length; _i++) {
- var obj = data_1[_i];
- if (this.config.init) {
- obj = this.config.init(obj);
- }
- if (typeof obj !== "object") {
- obj = {
- value: obj
- };
- }
- obj.id = obj.id ? obj.id.toString() : core_1.uid();
- obj.parent = obj.parent ? obj.parent.toString() : parent;
- this._pull[obj.id] = obj;
- if (!this._childs[obj.parent]) {
- this._childs[obj.parent] = [];
- }
- this._childs[obj.parent].push(obj);
- if (obj.items && obj.items instanceof Object) {
- this._parse_data(obj.items, obj.id);
- }
- }
- };
- TreeCollection.prototype._fastDeleteChilds = function (target, id) {
- if (this._pull[id]) {
- delete this._pull[id];
- }
- if (!target[id]) {
- return;
- }
- for (var i = 0; i < target[id].length; i++) {
- this._fastDeleteChilds(target, target[id][i].id);
- }
- delete target[id];
- };
- TreeCollection.prototype._recursiveFilter = function (rule, config, current, level, newChilds) {
- var _this = this;
- var childs = this._childs[current];
- if (!childs) {
- return;
- }
- var condition = function (item) {
- switch (config.type) {
- case types_1.TreeFilterType.all: {
- return true;
- }
- case types_1.TreeFilterType.level: {
- return level === config.level;
- }
- case types_1.TreeFilterType.leafs: {
- return !_this.haveItems(item.id);
- }
- }
- };
- if (typeof rule === "function") {
- var customRule = function (item) { return !condition(item) || rule(item); };
- var filtered = childs.filter(customRule);
- if (filtered.length) {
- newChilds[current] = filtered;
- }
- }
- else if (rule.by && rule.match) {
- var customRule = function (item) { return !condition(item) || item[rule.by].toString().toLowerCase().indexOf(rule.match.toString().toLowerCase()) !== -1; };
- newChilds[current] = childs.filter(customRule);
- }
- for (var _i = 0, childs_3 = childs; _i < childs_3.length; _i++) {
- var child = childs_3[_i];
- this._recursiveFilter(rule, config, child.id, level + 1, newChilds);
- }
- };
- TreeCollection.prototype._serialize = function (parent, fn) {
- var _this = this;
- if (parent === void 0) { parent = this._root; }
- return this.map(function (item) {
- var itemCopy = {};
- for (var key in item) {
- if (key === "parent" || key === "items") {
- continue;
- }
- itemCopy[key] = item[key];
- }
- if (fn) {
- itemCopy = fn(itemCopy);
- }
- if (_this.haveItems(item.id)) {
- itemCopy.items = _this._serialize(item.id, fn);
- }
- return itemCopy;
- }, parent, false);
- };
- return TreeCollection;
-}(datacollection_1.DataCollection));
-exports.TreeCollection = TreeCollection;
-
-
-/***/ }),
-/* 93 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var html_1 = __webpack_require__(3);
-var CollectionStore_1 = __webpack_require__(94);
-var types_1 = __webpack_require__(17);
-var helpers_1 = __webpack_require__(18);
-function getPosition(e) {
- var y = e.clientY;
- var element = html_1.locateNode(e);
- if (!element) {
- return null;
- }
- var treeLine = element.childNodes[0];
- var _a = treeLine.getBoundingClientRect(), top = _a.top, height = _a.height;
- return (y - top) / height;
-}
-function dragEventContent(element, elements) {
- var rect = element.getBoundingClientRect();
- var ghost = document.createElement("div");
- var clone = element.cloneNode(true);
- clone.style.width = rect.width + "px";
- clone.style.height = rect.height + "px";
- clone.style.maxHeight = rect.height + "px";
- clone.style.opacity = "0.6";
- ghost.appendChild(clone);
- if (elements && elements.length) {
- elements.forEach(function (node, key) {
- var nodeClone = node.cloneNode(true);
- nodeClone.style.width = rect.width + "px";
- nodeClone.style.height = rect.height + "px";
- nodeClone.style.maxHeight = rect.height + "px";
- nodeClone.style.top = ((key + 1) * 12 - rect.height) - (rect.height * key) + "px";
- nodeClone.style.left = (key + 1) * 12 + "px";
- nodeClone.style.opacity = "0.6";
- nodeClone.style.zIndex = "" + (-key - 1);
- ghost.appendChild(nodeClone);
- });
- }
- ghost.className = "dhx_drag-ghost";
- ghost.style.position = "absolute";
- ghost.style.pointerEvents = "none";
- return ghost;
-}
-var DragManager = /** @class */ (function () {
- function DragManager() {
- var _this = this;
- this._transferData = {};
- this._canMove = true;
- this._selectedIds = [];
- this._onMouseMove = function (e) {
- if (!_this._transferData.id) {
- return;
- }
- var pageX = e.pageX, pageY = e.pageY;
- if (!_this._transferData.ghost) {
- if (Math.abs(_this._transferData.x - pageX) < 3 && Math.abs(_this._transferData.y - pageY) < 3) {
- return;
- }
- else {
- var ghost = _this._onDragStart(_this._transferData.id, _this._transferData.targetId);
- if (!ghost) {
- _this._endDrop();
- return;
- }
- else {
- _this._transferData.ghost = ghost;
- document.body.appendChild(_this._transferData.ghost);
- }
- }
- }
- _this._moveGhost(pageX, pageY);
- _this._onDrag(e);
- };
- this._onMouseUp = function () {
- if (!_this._transferData.x) {
- return;
- }
- if (_this._transferData.ghost) {
- _this._removeGhost();
- _this._onDrop();
- }
- else {
- _this._endDrop();
- }
- document.removeEventListener("mousemove", _this._onMouseMove);
- document.removeEventListener("mouseup", _this._onMouseUp);
- };
- }
- DragManager.prototype.setItem = function (id, item) {
- CollectionStore_1.collectionStore.setItem(id, item);
- };
- DragManager.prototype.onMouseDown = function (e, selectedIds, itemsForGhost) {
- if (e.which !== 1) {
- return;
- }
- e.preventDefault();
- document.addEventListener("mousemove", this._onMouseMove);
- document.addEventListener("mouseup", this._onMouseUp);
- var item = html_1.locateNode(e, "dhx_id");
- var id = item && item.getAttribute("dhx_id");
- var targetId = html_1.locate(e, "dhx_widget_id");
- if (selectedIds && selectedIds.indexOf(id) !== -1 && selectedIds.length > 1) {
- this._selectedIds = selectedIds;
- this._itemsForGhost = itemsForGhost;
- }
- else {
- this._selectedIds = [];
- this._itemsForGhost = null;
- }
- if (id && targetId) {
- var _a = html_1.getBox(item), left = _a.left, top_1 = _a.top;
- this._transferData.initXOffset = e.pageX - left;
- this._transferData.initYOffset = e.pageY - top_1;
- this._transferData.x = e.pageX;
- this._transferData.y = e.pageY;
- this._transferData.targetId = targetId;
- this._transferData.id = id;
- this._transferData.item = item;
- }
- };
- DragManager.prototype._moveGhost = function (x, y) {
- if (this._transferData.ghost) {
- this._transferData.ghost.style.left = x - this._transferData.initXOffset + "px";
- this._transferData.ghost.style.top = y - this._transferData.initYOffset + "px";
- }
- };
- DragManager.prototype._removeGhost = function () {
- document.body.removeChild(this._transferData.ghost);
- };
- DragManager.prototype._onDrop = function () {
- if (!this._canMove) {
- this._endDrop();
- return;
- }
- var target = CollectionStore_1.collectionStore.getItem(this._lastCollectionId);
- var config = target && target.config;
- if (!target || config.dragMode === types_1.DragMode.source) {
- this._endDrop();
- return;
- }
- if (target.events.fire(types_1.DragEvents.beforeDrop, [this._lastId, this._transferData.target])) {
- var to = {
- id: this._lastId,
- target: target
- };
- var from = {
- id: this._transferData.id,
- target: this._transferData.target
- };
- this._move(from, to);
- to.target.events.fire(types_1.DragEvents.dropComplete, [to.id, this._transferData.dropPosition]);
- }
- this._endDrop();
- };
- DragManager.prototype._onDragStart = function (id, targetId) {
- var target = CollectionStore_1.collectionStore.getItem(targetId);
- var config = target.config;
- if (config.dragMode === types_1.DragMode.target) {
- return null;
- }
- var item = target.data.getItem(id);
- var ghost = dragEventContent(this._transferData.item, this._itemsForGhost);
- var ans = target.events.fire(types_1.DragEvents.beforeDrag, [item, ghost]);
- if (!ans || !id) {
- return null;
- }
- target.events.fire(types_1.DragEvents.dragStart, [id, this._selectedIds]);
- this._toggleTextSelection(true);
- this._transferData.target = target;
- this._transferData.dragConfig = config;
- return ghost;
- };
- DragManager.prototype._onDrag = function (e) {
- var clientX = e.clientX, clientY = e.clientY;
- var element = document.elementFromPoint(clientX, clientY);
- var collectionId = html_1.locate(element, "dhx_widget_id");
- if (!collectionId) {
- if (this._canMove) {
- this._cancelCanDrop();
- }
- return;
- }
- var target = CollectionStore_1.collectionStore.getItem(collectionId);
- var id = html_1.locate(element, "dhx_id");
- if (!id) {
- this._cancelCanDrop();
- this._lastCollectionId = collectionId;
- this._lastId = null;
- this._canDrop();
- return;
- }
- if (target.config.dropBehaviour === types_1.DropBehaviour.complex) {
- var pos = getPosition(e);
- if (pos <= 0.25) {
- this._transferData.dropPosition = types_1.DropPosition.top;
- }
- else if (pos >= 0.75) {
- this._transferData.dropPosition = types_1.DropPosition.bot;
- }
- else {
- this._transferData.dropPosition = types_1.DropPosition.in;
- }
- }
- else if (this._lastId === id && this._lastCollectionId === collectionId) {
- return;
- }
- var from = {
- id: this._transferData.id,
- target: this._transferData.target
- };
- if (target.config.dragMode === "source") {
- return;
- }
- from.target.events.fire(types_1.DragEvents.dragOut, [id, target]);
- if (collectionId !== this._transferData.targetId || !helpers_1.isTreeCollection(from.target.data) ||
- (helpers_1.isTreeCollection(from.target.data) && from.target.data.canCopy(from.id, id))) {
- this._cancelCanDrop(); // clear last
- this._lastId = id;
- this._lastCollectionId = collectionId;
- var canMove = from.target.events.fire(types_1.DragEvents.dragIn, [id, this._transferData.dropPosition, CollectionStore_1.collectionStore.getItem(collectionId)]);
- if (canMove) {
- this._canDrop();
- }
- }
- else {
- this._cancelCanDrop();
- }
- };
- DragManager.prototype._move = function (from, to) {
- var fromData = from.target.data;
- var toData = to.target.data;
- var index = 0;
- var targetId = to.id;
- var behaviour = helpers_1.isTreeCollection(toData) ? to.target.config.dropBehaviour : undefined;
- switch (behaviour) {
- case types_1.DropBehaviour.child:
- break;
- case types_1.DropBehaviour.sibling:
- targetId = toData.getParent(targetId);
- index = toData.getIndex(to.id) + 1;
- break;
- case types_1.DropBehaviour.complex:
- var dropPosition = this._transferData.dropPosition;
- if (dropPosition === types_1.DropPosition.top) {
- targetId = toData.getParent(targetId);
- index = toData.getIndex(to.id);
- }
- else if (dropPosition === types_1.DropPosition.bot) {
- targetId = toData.getParent(targetId);
- index = toData.getIndex(to.id) + 1;
- }
- break;
- default:
- // list move
- if (!to.id) {
- index = -1;
- }
- else if (from.target === to.target && toData.getIndex(from.id) < toData.getIndex(to.id)) {
- index = toData.getIndex(to.id) - 1;
- }
- else {
- index = toData.getIndex(to.id);
- }
- }
- if (this._transferData.dragConfig.dragCopy) {
- if (this._selectedIds instanceof Array && this._selectedIds.length > 1) {
- this._selectedIds.map(function (selctedId) {
- fromData.copy(selctedId, index, toData, targetId);
- if (index > -1) {
- index++;
- }
- });
- }
- else {
- fromData.copy(from.id, index, toData, targetId);
- }
- }
- else {
- if (this._selectedIds instanceof Array && this._selectedIds.length > 1) {
- this._selectedIds.map(function (selctedId) {
- fromData.move(selctedId, index, toData, targetId);
- if (index > -1) {
- index++;
- }
- });
- }
- else {
- fromData.move(from.id, index, toData, targetId); // typescript bug??
- }
- }
- };
- DragManager.prototype._endDrop = function () {
- this._toggleTextSelection(false);
- if (this._transferData.target) {
- this._transferData.target.events.fire(types_1.DragEvents.dragEnd, [this._transferData.id, this._selectedIds]);
- }
- this._cancelCanDrop();
- this._canMove = true;
- this._transferData = {};
- this._lastId = null;
- this._lastCollectionId = null;
- };
- DragManager.prototype._cancelCanDrop = function () {
- this._canMove = false;
- var collection = CollectionStore_1.collectionStore.getItem(this._lastCollectionId);
- if (collection && this._lastId) {
- collection.events.fire(types_1.DragEvents.cancelDrop, [this._lastId]);
- }
- this._lastCollectionId = null;
- this._lastId = null;
- };
- DragManager.prototype._canDrop = function () {
- this._canMove = true;
- var target = CollectionStore_1.collectionStore.getItem(this._lastCollectionId);
- if (target && this._lastId) {
- target.events.fire(types_1.DragEvents.canDrop, [this._lastId, this._transferData.dropPosition]);
- }
- };
- DragManager.prototype._toggleTextSelection = function (add) {
- if (add) {
- document.body.classList.add("dhx_no-select");
- }
- else {
- document.body.classList.remove("dhx_no-select");
- }
- };
- return DragManager;
-}());
-var dhx = window.dhxHelpers = window.dhxHelpers || {};
-dhx.dragManager = dhx.dragManager || new DragManager();
-exports.dragManager = dhx.dragManager;
-
-
-/***/ }),
-/* 94 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var CollectionStore = /** @class */ (function () {
- function CollectionStore() {
- this._store = {};
- }
- CollectionStore.prototype.setItem = function (id, target) {
- this._store[id] = target;
- };
- CollectionStore.prototype.getItem = function (id) {
- if (!this._store[id]) {
- return null;
- }
- return this._store[id];
- };
- return CollectionStore;
-}());
-var dhx = window.dhxHelpers = window.dhxHelpers || {};
-dhx.collectionStore = dhx.collectionStore || new CollectionStore();
-exports.collectionStore = dhx.collectionStore;
-
-
-/***/ }),
-/* 95 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", { value: true });
-var events_1 = __webpack_require__(2);
-var types_1 = __webpack_require__(21);
-var types_2 = __webpack_require__(17);
-var Selection = /** @class */ (function () {
- function Selection(_config, data, events) {
- var _this = this;
- this.events = events || (new events_1.EventSystem(this));
- this._data = data;
- this._data.events.on(types_2.DataEvents.removeAll, function () {
- _this._selected = null;
- });
- this._data.events.on(types_2.DataEvents.change, function () {
- if (_this._selected) {
- var near = _this._data.getNearId(_this._selected);
- if (near !== _this._selected) {
- _this._selected = null;
- if (near) {
- _this.add(near);
- }
- }
- }
- });
- }
- Selection.prototype.getId = function () {
- return this._selected;
- };
- Selection.prototype.getItem = function () {
- if (this._selected) {
- return this._data.getItem(this._selected);
- }
- return null;
- };
- Selection.prototype.remove = function (id) {
- id = id || this._selected;
- if (!id) {
- return true;
- }
- if (this.events.fire(types_1.SelectionEvents.beforeUnSelect, [id])) {
- this._data.update(id, { $selected: false });
- this._selected = null;
- this.events.fire(types_1.SelectionEvents.afterUnSelect, [id]);
- return true;
- }
- return false;
- };
- Selection.prototype.add = function (id) {
- if (this._selected === id) {
- return;
- }
- this.remove();
- if (this.events.fire(types_1.SelectionEvents.beforeSelect, [id])) {
- this._selected = id;
- this._data.update(id, { $selected: true });
- this.events.fire(types_1.SelectionEvents.afterSelect, [id]);
- }
- };
- return Selection;
-}());
-exports.Selection = Selection;
-
-
-/***/ }),
-/* 96 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-var __assign = (this && this.__assign) || function () {
- __assign = Object.assign || function(t) {
- for (var s, i = 1, n = arguments.length; i < n; i++) {
- s = arguments[i];
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
- t[p] = s[p];
- }
- return t;
- };
- return __assign.apply(this, arguments);
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-var core_1 = __webpack_require__(1);
-var dom_1 = __webpack_require__(0);
-var events_1 = __webpack_require__(2);
-var html_1 = __webpack_require__(3);
-var scrollView_1 = __webpack_require__(98);
-var view_1 = __webpack_require__(4);
-var ts_data_1 = __webpack_require__(7);
-var ts_layout_1 = __webpack_require__(12);
-var ts_message_1 = __webpack_require__(19);
-var ts_toolbar_1 = __webpack_require__(27);
-var en_1 = __webpack_require__(35);
-var types_1 = __webpack_require__(26);
-var Uploader_1 = __webpack_require__(54);
-var configs_1 = __webpack_require__(116);
-var helper_1 = __webpack_require__(117);
-var ProgressBar_1 = __webpack_require__(118);
-var ReadStackPreview_1 = __webpack_require__(119);
-var Vault = /** @class */ (function (_super) {
- __extends(Vault, _super);
- function Vault(container, config) {
- if (config === void 0) { config = {}; }
- var _this = _super.call(this, null, core_1.extend({
- mode: types_1.VaultMode.list,
- toolbar: true,
- updateFromResponse: true,
- scaleFactor: 4,
- customScroll: true,
- uploader: {},
- progressBar: {}
- }, config)) || this;
- if (!_this.config.toolbar) {
- _this.config.uploader.autosend = true;
- }
- if (config.data) {
- _this.data = config.data;
- _this.events = config.data.events;
- _this.events.context = _this;
- }
- else {
- _this.events = new events_1.EventSystem(_this);
- _this.data = new ts_data_1.DataCollection({}, _this.events);
- }
- _this.data.config.init = function (obj) {
- obj.status = obj.status || types_1.FileStatus.uploaded;
- if (obj.file) {
- obj.size = obj.file.size;
- obj.name = obj.file.name;
- }
- else {
- obj.size = obj.size || 0;
- obj.name = obj.name || "";
- }
- if (_this.config.mode === types_1.VaultMode.grid && obj.file && helper_1.isImage(obj)) {
- _this._readStack.add(obj, _this.uploader.config.autosend);
- }
- return obj;
- };
- _this._readStack = new ReadStackPreview_1.ReadStackPreview(_this.data);
- _this.uploader = new Uploader_1.Uploader(_this.config.uploader, _this.data, _this.events);
- _this._scrollView = new scrollView_1.ScrollView(function () { return _this._vaultView.getRootView(); });
- _this._progressBar = new ProgressBar_1.ProgressBar(_this.events, _this.config.progressBar);
- _this.events.on(types_1.UploaderEvents.uploadProgress, function (progress, current, total) { return _this._progressBar.setState(progress, { current: current, total: total }); });
- _this._initHandlers();
- _this._initUI(container);
- _this._initEvents();
- return _this;
- }
- Vault.prototype.destructor = function () {
- this.toolbar.destructor();
- this._readStack.stop();
- this.uploader.unlinkDropArea();
- this.uploader.abort();
- };
- Vault.prototype.getRootView = function () {
- return this._layout.getRootView();
- };
- Vault.prototype._initUI = function (container) {
- var _this = this;
- var cfg = this.config.toolbar ? configs_1.layoutConfig : configs_1.layoutConfigWithoutTopbar;
- cfg.on = this._getDragEvents();
- var layout = this._layout = new ts_layout_1.Layout(container, cfg);
- var toolbar = this.toolbar = new ts_toolbar_1.Toolbar(null, { css: "vault-toolbar" });
- this.toolbar.data.parse([
- {
- id: "add",
- tooltip: en_1.default.add,
- type: ts_toolbar_1.ItemType.button,
- icon: "dxi-plus"
- },
- {
- id: "upload",
- tooltip: en_1.default.upload,
- type: ts_toolbar_1.ItemType.button,
- icon: "dxi icon-upload" // Custom Web Font Icon
- },
- {
- id: "spacer",
- type: ts_toolbar_1.ItemType.spacer
- },
- {
- id: "remove-all",
- tooltip: en_1.default.clearAll,
- type: ts_toolbar_1.ItemType.button,
- icon: "dxi-delete-forever"
- }
- ]);
- this._hideUploadAndDeleteButtons();
- this._vaultView = view_1.toViewLike(dom_1.create({ render: function () { return _this._draw(); } }));
- if (this.config.toolbar) {
- layout.cell("topbar").attach(toolbar);
- }
- layout.cell("vault").attach(this._vaultView);
- };
- Vault.prototype._initHandlers = function () {
- var _this = this;
- this._handlers = {
- onclick: {
- ".action-add": function () { return _this.uploader.selectFile(); },
- ".action-remove-file": function (e) {
- var id = html_1.locate(e);
- if (!id) {
- return;
- }
- _this.data.update(id, { $toRemove: true });
- setTimeout(function () {
- _this.data.update(id, { $toRemove: false }, true);
- _this.data.remove(id);
- }, 200);
- }
- },
- onmouseover: {
- ".action-download": function (e) {
- ts_message_1.tooltip(en_1.default.download, {
- node: e.target,
- position: ts_message_1.Position.bottom
- });
- },
- ".action-remove-file": function (e) {
- ts_message_1.tooltip(en_1.default.clear, {
- node: e.target,
- position: ts_message_1.Position.bottom
- });
- },
- ".title-content, .dhx-file-name": function (e) {
- var id = html_1.locate(e);
- var item = _this.data.getItem(id);
- ts_message_1.tooltip(item.name, {
- node: e.target,
- position: ts_message_1.Position.bottom,
- css: "tooltip-light"
- });
- }
- }
- };
- };
- Vault.prototype._getDragEvents = function () {
- var _this = this;
- var rect = {
- left: null,
- top: null,
- width: null,
- height: null
- };
- return {
- dragleave: function (e) {
- if (!_this._canDrop) {
- return;
- }
- if (e.pageX > rect.left + rect.width - 1 || e.pageX < rect.left || e.pageY > rect.top + rect.height - 1 || e.pageY < rect.top) {
- _this._canDrop = false;
- if (_this.config.toolbar) {
- _this._layout.cell("topbar").show();
- }
- _this._layout.config.css = "vault-layout";
- _this._layout.paint();
- }
- },
- dragenter: function (e) {
- e.preventDefault();
- if (_this.uploader.isActive || _this._canDrop) {
- return;
- }
- var types = e.dataTransfer.types;
- for (var _i = 0, types_2 = types; _i < types_2.length; _i++) {
- var type = types_2[_i];
- if (type !== "Files" && type !== "application/x-moz-file") {
- _this._canDrop = false;
- return;
- }
- }
- _this._canDrop = true;
- var clientRect = _this.getRootView().node.el.getBoundingClientRect();
- rect.left = clientRect.left + window.pageXOffset;
- rect.top = clientRect.top + window.pageYOffset;
- rect.width = clientRect.width;
- rect.height = clientRect.height;
- _this._canDrop = true;
- if (_this.config.toolbar) {
- _this._layout.cell("topbar").hide();
- }
- _this._layout.config.css = "vault-layout dhx-dragin";
- _this._layout.paint();
- },
- dragover: function (e) {
- e.preventDefault();
- },
- drop: function (e) {
- e.preventDefault();
- if (!_this._canDrop) {
- return;
- }
- var dataTransfer = e.dataTransfer;
- _this.uploader.parseFiles(dataTransfer);
- _this._canDrop = false;
- if (_this.config.toolbar) {
- _this._layout.cell("topbar").show();
- }
- _this._layout.config.css = "vault-layout";
- _this._layout.paint();
- }
- };
- };
- Vault.prototype._hideUploadAndDeleteButtons = function () {
- this.toolbar.hide(["upload", "remove-all"]);
- };
- Vault.prototype._showUploadAndDeleteButtons = function () {
- if (this.uploader.config.autosend) {
- this.toolbar.show("remove-all");
- }
- else {
- this.toolbar.show(["upload", "remove-all"]);
- }
- };
- Vault.prototype._initEvents = function () {
- var _this = this;
- this.data.events.on(ts_data_1.DataEvents.change, function () {
- if (!_this.data.getLength()) {
- _this._hideUploadAndDeleteButtons();
- }
- else {
- _this._showUploadAndDeleteButtons();
- }
- _this._vaultView.paint();
- });
- this.events.on(types_1.UploaderEvents.uploadBegin, function () {
- if (_this.config.toolbar) {
- _this._layout.cell("topbar").attach(_this._progressBar);
- }
- });
- this.events.on(types_1.UploaderEvents.uploadComplete, function () {
- if (_this.config.mode === types_1.VaultMode.grid && _this.uploader.config.autosend) {
- _this._readStack.read();
- }
- if (_this.config.toolbar) {
- _this._layout.cell("topbar").attach(_this.toolbar);
- }
- });
- this.toolbar.events.on(ts_toolbar_1.NavigationBarEvents.click, function (id) {
- switch (id) {
- case "add":
- _this.uploader.selectFile();
- break;
- case "remove-all":
- _this.data.removeAll();
- break;
- case "upload":
- _this.uploader.send();
- break;
- }
- });
- this.events.on(types_1.ProgressBarEvents.cancel, function () {
- _this.uploader.abort();
- _this._vaultView.paint();
- });
- };
- Vault.prototype._draw = function () {
- var isEmpty = !this.data.getLength();
- var files = this.config.mode === types_1.VaultMode.grid ? this._drawGrid() : this._drawList();
- return dom_1.el("div", __assign({ class: "vault dhx_widget" + (this._canDrop ? " drop-here" : "") }, this._handlers, { dhx_widget_id: this._uid }), [
- this._canDrop || isEmpty ? this._drawDropableArea() :
- this.config.customScroll ? this._scrollView.render(files) : files
- ]);
- };
- Vault.prototype._getFileActions = function (file) {
- var defaultActions = [];
- var hoverActions = [];
- var actions = [
- dom_1.el(".dhx-default-actions", defaultActions),
- dom_1.el(".dhx-hover-actions", hoverActions)
- ];
- if (file.status === types_1.FileStatus.inprogress) {
- return actions;
- }
- if (file.status !== types_1.FileStatus.failed && file.link) {
- var link = (this.config.downloadURL || "") + file.link;
- var downloadName = link.split("/").pop().split("?")[0];
- var download = dom_1.el("a", {
- download: downloadName,
- class: "download-link",
- href: link
- }, [
- dom_1.el(".icon-btn.dxi.dxi-download.action-download")
- ]);
- hoverActions.push(download);
- }
- var remove = dom_1.el(".icon-btn.dxi.dxi-delete-forever.action-remove-file");
- hoverActions.push(remove);
- if (file.status === types_1.FileStatus.failed) {
- var warn = dom_1.el(".dxi.dxi-alert-circle.warning-status");
- defaultActions.push(warn);
- }
- if (file.status === types_1.FileStatus.uploaded) {
- var uploadComplete = dom_1.el(".dxi.dxi-checkbox-marked-circle.uploaded-status");
- defaultActions.push(uploadComplete);
- }
- return actions;
- };
- Vault.prototype._drawList = function () {
- var _this = this;
- return dom_1.el(".dhx-files-block.dhx-webkit-scroll", this.data.map(function (item) {
- var isError = item.status === types_1.FileStatus.failed && item.request;
- var inProgress = item.status === types_1.FileStatus.inprogress;
- var inQueue = item.status === types_1.FileStatus.queue;
- var notUploaded = item.status !== types_1.FileStatus.uploaded;
- return dom_1.el("div", {
- class: "dhx-file-item" + (item.$toRemove ? " to-remove" : "") + (inQueue ? " in-queue" : ""),
- dhx_id: item.id,
- _key: item.id
- }, [
- dom_1.el(".dhx-file-icon", [
- dom_1.el("div", {
- class: "dhx-file-type " + helper_1.getFileClassName(item) + (notUploaded ? " not-loaded" : "")
- })
- ]),
- dom_1.el(".dhx-file-title", [
- dom_1.el(".dhx-title-content", item.name),
- dom_1.el(".dhx-file-info", [
- isError && dom_1.el(".warn-message", item.request.statusText || en_1.default.error),
- inProgress ? dom_1.el(".progress-value", (item.progress * 100).toFixed(1) + "%")
- : dom_1.el(".dhx-size" + (isError && ".dhx-size-error" || ""), helper_1.getBasis(item.size))
- ])
- ]),
- inProgress && dom_1.el(".dhx-download-progress", {
- style: {
- width: (item.progress * 100).toFixed(1) + "%"
- }
- }),
- !inProgress && dom_1.el(".dhx-file-action", _this._getFileActions(item))
- ]);
- }));
- };
- Vault.prototype._drawDropableArea = function () {
- return dom_1.el(".dhx-dropable-area.drop-files-here", [
- dom_1.el(".dhx-big-icon-block", [
- dom_1.el(".dxi.icon-upload") // Custom Web Font Icon
- ]),
- !this._canDrop && dom_1.el(".drop-area-bold-text", en_1.default.dragAndDrop),
- !this._canDrop && dom_1.el(".drop-area-bold-text", en_1.default.filesOrFoldersHere),
- !this._canDrop && dom_1.el(".drop-area-light-text", en_1.default.or),
- !this._canDrop && dom_1.el("button.dhx_btn.dhx_btn--flat.dhx_btn--small.action-add", en_1.default.browse)
- ]);
- };
- Vault.prototype._drawGrid = function () {
- var _this = this;
- return dom_1.el("div", {
- class: "dhx-files-grid dhx-webkit-scroll"
- }, [
- dom_1.el(".dhx-grid-content", this.data.map(function (item) {
- var inProgress = item.status === types_1.FileStatus.inprogress;
- var inQueue = item.status === types_1.FileStatus.queue;
- var isError = item.status === types_1.FileStatus.failed;
- return dom_1.el("div", {
- class: "dhx-file-grid-item" + (inProgress ? " in-progress" : "")
- + (item.$toRemove ? " to-remove" : "") + (inQueue ? " in-queue" : "") + (isError ? " failed" : ""),
- dhx_id: item.id,
- _key: item.id
- }, [
- dom_1.el(".dhx-preview-wrapper", [
- item.preview ? dom_1.el(".dhx-server-file-preview", [
- dom_1.el("img", { src: item.preview })
- ]) :
- item.image ? dom_1.el("canvas", {
- width: 98 * _this.config.scaleFactor,
- height: 98 * _this.config.scaleFactor,
- _hooks: {
- didInsert: function (node) {
- var _a = helper_1.calculateCover(item.image), dx = _a.dx, dy = _a.dy, sx = _a.sx, sy = _a.sy, sHeight = _a.sHeight, sWidth = _a.sWidth;
- var ctx = node.el.getContext("2d");
- ctx.drawImage(item.image, sx, sy, sWidth, sHeight, dx, dy, 98 * _this.config.scaleFactor, 98 * _this.config.scaleFactor);
- }
- }
- }) : dom_1.el("div", {
- class: "dhx-file-preview dhx-file-type " + helper_1.getFileClassName(item)
- }),
- inProgress && _this._drawCircle(item.progress)
- ].concat(_this._getFileActions(item), [
- dom_1.el(".dhx-file-info", [
- isError && dom_1.el(".warn-message", item.request.statusText || en_1.default.error),
- !inProgress && dom_1.el(".dhx-size" + (isError && ".dhx-size-error" || ""), helper_1.getBasis(item.size))
- ])
- ])),
- dom_1.el(".dhx-file-name", helper_1.truncateWord(item.name))
- ]);
- }))
- ]);
- };
- Vault.prototype._drawCircle = function (progress) {
- return dom_1.el(".progress-layout", [
- dom_1.el(".progress-amount", (progress * 100).toFixed(1) + "%"),
- dom_1.sv("svg", {
- xmlns: "http://www.w3.org/2000/svg",
- class: "progress-circle",
- viewBox: "0 0 60 60",
- }, [
- dom_1.sv("circle", {
- "cx": 30,
- "cy": 30,
- "r": 28,
- "stroke-width": 4,
- "class": "progress-bar-background",
- }),
- dom_1.sv("circle.active-circle", {
- "cx": 30,
- "cy": 30,
- "r": 28,
- "stroke-width": 4,
- "stroke-dasharray": "175.9 175.9",
- "stroke-dashoffset": (1 - progress) * 175.9,
- "class": "progress-bar-active",
- }),
- ])
- ]);
- };
- return Vault;
-}(view_1.View));
-exports.Vault = Vault;
-
-
-/***/ }),
-/* 97 */
-/***/ (function(module, exports, __webpack_require__) {
-
-/**
-* Copyright (c) 2017, Leon Sorokin
-* All rights reserved. (MIT Licensed)
-*
-* domvm.js (DOM ViewModel)
-* A thin, fast, dependency-free vdom view layer
-* @preserve https://github.com/leeoniya/domvm (v3.2.6, micro build)
-*/
-
-(function (global, factory) {
- true ? module.exports = factory() :
- undefined;
-}(this, (function () { 'use strict';
-
-// NOTE: if adding a new *VNode* type, make it < COMMENT and renumber rest.
-// There are some places that test <= COMMENT to assert if node is a VNode
-
-// VNode types
-var ELEMENT = 1;
-var TEXT = 2;
-var COMMENT = 3;
-
-// placeholder types
-var VVIEW = 4;
-var VMODEL = 5;
-
-var ENV_DOM = typeof window !== "undefined";
-var win = ENV_DOM ? window : {};
-var rAF = win.requestAnimationFrame;
-
-var emptyObj = {};
-
-function noop() {}
-
-var isArr = Array.isArray;
-
-function isSet(val) {
- return val != null;
-}
-
-function isPlainObj(val) {
- return val != null && val.constructor === Object; // && typeof val === "object"
-}
-
-function insertArr(targ, arr, pos, rem) {
- targ.splice.apply(targ, [pos, rem].concat(arr));
-}
-
-function isVal(val) {
- var t = typeof val;
- return t === "string" || t === "number";
-}
-
-function isFunc(val) {
- return typeof val === "function";
-}
-
-function isProm(val) {
- return typeof val === "object" && isFunc(val.then);
-}
-
-
-
-function assignObj(targ) {
- var args = arguments;
-
- for (var i = 1; i < args.length; i++)
- { for (var k in args[i])
- { targ[k] = args[i][k]; } }
-
- return targ;
+ return targ;
}
// export const defProp = Object.defineProperty;
@@ -10664,214 +9847,2141 @@ function defineView(view, data, key, opts) {
return new VView(view, data, key, opts);
}
-// placeholder for injected ViewModels
-function VModel(vm) {
- this.vm = vm;
-}
+// placeholder for injected ViewModels
+function VModel(vm) {
+ this.vm = vm;
+}
+
+VModel.prototype = {
+ constructor: VModel,
+
+ type: VMODEL,
+ vm: null,
+};
+
+function injectView(vm) {
+// if (vm.node == null)
+// vm._redraw(null, null, false);
+
+// return vm.node;
+
+ return new VModel(vm);
+}
+
+function injectElement(el) {
+ var node = new VNode;
+ node.type = ELEMENT;
+ node.el = node.key = el;
+ return node;
+}
+
+function lazyList(items, cfg) {
+ var len = items.length;
+
+ var self = {
+ items: items,
+ length: len,
+ // defaults to returning item identity (or position?)
+ key: function(i) {
+ return cfg.key(items[i], i);
+ },
+ // default returns 0?
+ diff: function(i, donor) {
+ var newVals = cfg.diff(items[i], i);
+ if (donor == null)
+ { return newVals; }
+ var oldVals = donor._diff;
+ var same = newVals === oldVals || isArr(oldVals) ? cmpArr(newVals, oldVals) : cmpObj(newVals, oldVals);
+ return same || newVals;
+ },
+ tpl: function(i) {
+ return cfg.tpl(items[i], i);
+ },
+ map: function(tpl) {
+ cfg.tpl = tpl;
+ return self;
+ },
+ body: function(vnode) {
+ var nbody = Array(len);
+
+ for (var i = 0; i < len; i++) {
+ var vnode2 = self.tpl(i);
+
+ // if ((vnode.flags & KEYED_LIST) === KEYED_LIST && self. != null)
+ // vnode2.key = getKey(item);
+
+ vnode2._diff = self.diff(i); // holds oldVals for cmp
+
+ nbody[i] = vnode2;
+
+ // run preproc pass (should this be just preProc in above loop?) bench
+ preProc(vnode2, vnode, i);
+ }
+
+ // replace List with generated body
+ vnode.body = nbody;
+ }
+ };
+
+ return self;
+}
+
+var nano = {
+ config: config,
+
+ ViewModel: ViewModel,
+ VNode: VNode,
+
+ createView: createView,
+
+ defineElement: defineElement,
+ defineSvgElement: defineSvgElement,
+ defineText: defineText,
+ defineComment: defineComment,
+ defineView: defineView,
+
+ injectView: injectView,
+ injectElement: injectElement,
+
+ lazyList: lazyList,
+
+ FIXED_BODY: FIXED_BODY,
+ DEEP_REMOVE: DEEP_REMOVE,
+ KEYED_LIST: KEYED_LIST,
+ LAZY_LIST: LAZY_LIST,
+};
+
+function protoPatch(n, doRepaint) {
+ patch$1(this, n, doRepaint);
+}
+
+// newNode can be either {class: style: } or full new VNode
+// will/didPatch hooks?
+function patch$1(o, n, doRepaint) {
+ if (n.type != null) {
+ // no full patching of view roots, just use redraw!
+ if (o.vm != null)
+ { return; }
+
+ preProc(n, o.parent, o.idx, null);
+ o.parent.body[o.idx] = n;
+ patch(n, o);
+ doRepaint && repaint(n);
+ drainDidHooks(getVm(n));
+ }
+ else {
+ // TODO: re-establish refs
+
+ // shallow-clone target
+ var donor = Object.create(o);
+ // fixate orig attrs
+ donor.attrs = assignObj({}, o.attrs);
+ // assign new attrs into live targ node
+ var oattrs = assignObj(o.attrs, n);
+ // prepend any fixed shorthand class
+ if (o._class != null) {
+ var aclass = oattrs.class;
+ oattrs.class = aclass != null && aclass !== "" ? o._class + " " + aclass : o._class;
+ }
+
+ patchAttrs(o, donor);
+
+ doRepaint && repaint(o);
+ }
+}
+
+VNodeProto.patch = protoPatch;
+
+function nextSubVms(n, accum) {
+ var body = n.body;
+
+ if (isArr(body)) {
+ for (var i = 0; i < body.length; i++) {
+ var n2 = body[i];
+
+ if (n2.vm != null)
+ { accum.push(n2.vm); }
+ else
+ { nextSubVms(n2, accum); }
+ }
+ }
+
+ return accum;
+}
+
+function defineElementSpread(tag) {
+ var args = arguments;
+ var len = args.length;
+ var body, attrs;
+
+ if (len > 1) {
+ var bodyIdx = 1;
+
+ if (isPlainObj(args[1])) {
+ attrs = args[1];
+ bodyIdx = 2;
+ }
+
+ if (len === bodyIdx + 1 && (isVal(args[bodyIdx]) || isArr(args[bodyIdx]) || attrs && (attrs._flags & LAZY_LIST) === LAZY_LIST))
+ { body = args[bodyIdx]; }
+ else
+ { body = sliceArgs(args, bodyIdx); }
+ }
+
+ return initElementNode(tag, attrs, body);
+}
+
+function defineSvgElementSpread() {
+ var n = defineElementSpread.apply(null, arguments);
+ n.ns = SVG_NS;
+ return n;
+}
+
+ViewModelProto.emit = emit;
+ViewModelProto.onemit = null;
+
+ViewModelProto.body = function() {
+ return nextSubVms(this.node, []);
+};
+
+nano.defineElementSpread = defineElementSpread;
+nano.defineSvgElementSpread = defineSvgElementSpread;
+
+return nano;
+
+})));
+//# sourceMappingURL=domvm.micro.js.map
+
-VModel.prototype = {
- constructor: VModel,
+/***/ }),
+/* 91 */
+/***/ (function(module, exports, __webpack_require__) {
- type: VMODEL,
- vm: null,
+"use strict";
+/* WEBPACK VAR INJECTION */(function(Promise) {
+var __assign = (this && this.__assign) || function () {
+ __assign = Object.assign || function(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign.apply(this, arguments);
};
+Object.defineProperty(exports, "__esModule", { value: true });
+var helpers_1 = __webpack_require__(16);
+var types_1 = __webpack_require__(15);
+var Loader = /** @class */ (function () {
+ function Loader(parent, changes) {
+ this._parent = parent;
+ this._changes = changes; // todo: [dirty] mutation
+ }
+ Loader.prototype.load = function (url, driver) {
+ var _this = this;
+ // TODO: change way for checking lazyLoad
+ if (url.config && !this._parent.events.fire(types_1.DataEvents.beforeLazyLoad, [])) {
+ return;
+ }
+ return this._parent.loadData = url.load().then(function (data) {
+ if (data) {
+ return _this.parse(data, driver);
+ }
+ else {
+ return [];
+ }
+ }).catch(function (error) {
+ _this._parent.events.fire(types_1.DataEvents.loadError, [error]);
+ });
+ };
+ Loader.prototype.parse = function (data, driver) {
+ var _this = this;
+ if (driver === void 0) { driver = "json"; }
+ if (driver === "json" && !helpers_1.hasJsonOrArrayStructure(data)) {
+ this._parent.events.fire(types_1.DataEvents.loadError, ["Uncaught SyntaxError: Unexpected end of input"]);
+ }
+ driver = helpers_1.toDataDriver(driver);
+ data = driver.toJsonArray(data);
+ if (!(data instanceof Array)) {
+ var totalCount = data.total_count - 1;
+ var from_1 = data.from;
+ data = data.data;
+ if (this._parent.getLength() === 0) {
+ var newData = [];
+ for (var i = 0, j = 0; i <= totalCount; i++) {
+ if (i >= from_1 && i <= (from_1 + data.length - 1)) {
+ newData.push(data[j]);
+ j++;
+ }
+ else {
+ newData.push({ $empty: true });
+ }
+ }
+ data = newData;
+ }
+ else {
+ data.forEach(function (newItem, i) {
+ var index = from_1 + i;
+ var oldId = _this._parent.getId(index);
+ if (oldId) {
+ var emptyItem = _this._parent.getItem(oldId);
+ if (emptyItem && emptyItem.$empty) {
+ _this._parent.changeId(oldId, newItem.id, true);
+ _this._parent.update(newItem.id, __assign(__assign({}, newItem), { $empty: undefined }), true);
+ }
+ }
+ else {
+ helpers_1.dhxWarning("item not found");
+ }
+ });
+ this._parent.events.fire(types_1.DataEvents.afterLazyLoad, [from_1, data.length]);
+ this._parent.events.fire(types_1.DataEvents.change);
+ return data;
+ }
+ }
+ if (!!this._parent.getInitialData()) {
+ this._parent.removeAll();
+ }
+ this._parent.$parse(data);
+ return data;
+ };
+ Loader.prototype.save = function (url) {
+ var _this = this;
+ var _loop_1 = function (el) {
+ if (el.saving || el.pending) {
+ helpers_1.dhxWarning("item is saving");
+ }
+ else {
+ var prevEl_1 = this_1._findPrevState(el.id);
+ if (prevEl_1 && prevEl_1.saving) {
+ var pending = new Promise(function (res, rej) {
+ prevEl_1.promise.then(function () {
+ el.pending = false;
+ res(_this._setPromise(el, url));
+ }).catch(function (err) {
+ _this._removeFromOrder(prevEl_1);
+ _this._setPromise(el, url);
+ helpers_1.dhxWarning(err);
+ rej(err);
+ });
+ });
+ this_1._addToChain(pending);
+ el.pending = true;
+ }
+ else {
+ this_1._setPromise(el, url);
+ }
+ }
+ };
+ var this_1 = this;
+ for (var _i = 0, _a = this._changes.order; _i < _a.length; _i++) {
+ var el = _a[_i];
+ _loop_1(el);
+ }
+ this._parent.saveData.then(function () {
+ _this._saving = false;
+ });
+ };
+ Loader.prototype._setPromise = function (el, url) {
+ var _this = this;
+ el.promise = url.save(el.obj, el.status);
+ el.promise.then(function () {
+ _this._removeFromOrder(el);
+ }).catch(function (err) {
+ el.saving = false;
+ el.error = true;
+ helpers_1.dhxError(err);
+ });
+ el.saving = true;
+ this._saving = true;
+ this._addToChain(el.promise);
+ return el.promise;
+ };
+ Loader.prototype._addToChain = function (promise) {
+ // tslint:disable-next-line:prefer-conditional-expression
+ if (this._parent.saveData && this._saving) {
+ this._parent.saveData = this._parent.saveData.then(function () { return promise; });
+ }
+ else {
+ this._parent.saveData = promise;
+ }
+ };
+ Loader.prototype._findPrevState = function (id) {
+ for (var _i = 0, _a = this._changes.order; _i < _a.length; _i++) {
+ var el = _a[_i];
+ if (el.id === id) {
+ return el;
+ }
+ }
+ return null;
+ };
+ Loader.prototype._removeFromOrder = function (el) {
+ this._changes.order = this._changes.order.filter(function (item) { return !helpers_1.isEqualObj(item, el); });
+ };
+ return Loader;
+}());
+exports.Loader = Loader;
-function injectView(vm) {
-// if (vm.node == null)
-// vm._redraw(null, null, false);
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(12)))
-// return vm.node;
+/***/ }),
+/* 92 */
+/***/ (function(module, exports, __webpack_require__) {
- return new VModel(vm);
-}
+"use strict";
-function injectElement(el) {
- var node = new VNode;
- node.type = ELEMENT;
- node.el = node.key = el;
- return node;
+Object.defineProperty(exports, "__esModule", { value: true });
+var xml_1 = __webpack_require__(93);
+var ARRAY_NAME = "items";
+var ITEM_NAME = "item";
+// convert xml tag to js object, all subtags and attributes are mapped to the properties of result object
+function tagToObject(tag, initialObj) {
+ initialObj = initialObj || {};
+ // map attributes
+ var a = tag.attributes;
+ if (a && a.length) {
+ for (var i = 0; i < a.length; i++) {
+ initialObj[a[i].name] = a[i].value;
+ }
+ }
+ // map subtags
+ var b = tag.childNodes;
+ for (var i = 0; i < b.length; i++) {
+ if (b[i].nodeType === 1) {
+ var name_1 = b[i].tagName;
+ if (initialObj[name_1]) {
+ if (typeof initialObj[name_1].push !== "function") {
+ initialObj[name_1] = [initialObj[name_1]];
+ }
+ initialObj[name_1].push(tagToObject(b[i], {}));
+ }
+ else {
+ initialObj[name_1] = tagToObject(b[i], {}); // sub-object for complex subtags
+ }
+ }
+ }
+ return initialObj;
}
+var XMLDriver = /** @class */ (function () {
+ function XMLDriver() {
+ }
+ XMLDriver.prototype.toJsonArray = function (data) {
+ return this.getRows(data);
+ };
+ XMLDriver.prototype.toJsonObject = function (data) {
+ var doc;
+ if (typeof data === "string") {
+ doc = this._fromString(data);
+ }
+ return tagToObject(doc);
+ };
+ XMLDriver.prototype.serialize = function (data) {
+ return xml_1.jsonToXML(data);
+ };
+ XMLDriver.prototype.getFields = function (row) {
+ return row;
+ };
+ XMLDriver.prototype.getRows = function (data) {
+ if (typeof data === "string") {
+ data = this._fromString(data);
+ }
+ if (data) {
+ var childNodes = data.childNodes && data.childNodes[0] && data.childNodes[0].childNodes;
+ if (!childNodes || !childNodes.length) {
+ return null;
+ }
+ return this._getRows(childNodes);
+ }
+ return [];
+ };
+ XMLDriver.prototype._getRows = function (nodes) {
+ var result = [];
+ for (var i = 0; i < nodes.length; i++) {
+ if (nodes[i].tagName === ITEM_NAME) {
+ result.push(this._nodeToJS(nodes[i]));
+ }
+ }
+ return result;
+ };
+ XMLDriver.prototype._fromString = function (data) {
+ try {
+ return (new DOMParser()).parseFromString(data, "text/xml");
+ }
+ catch (_a) {
+ return null;
+ }
+ };
+ XMLDriver.prototype._nodeToJS = function (node) {
+ var result = {};
+ if (this._haveAttrs(node)) {
+ var attrs = node.attributes;
+ for (var i = 0; i < attrs.length; i++) {
+ var _a = attrs[i], name_2 = _a.name, value = _a.value;
+ result[name_2] = this._toType(value);
+ }
+ }
+ if (node.nodeType === 3) {
+ result.value = result.value || this._toType(node.textContent);
+ return result;
+ }
+ var childNodes = node.childNodes;
+ if (childNodes) {
+ for (var i = 0; i < childNodes.length; i++) {
+ var subNode = childNodes[i];
+ var tag = subNode.tagName;
+ if (!tag) {
+ continue;
+ }
+ if (tag === ARRAY_NAME && subNode.childNodes) {
+ result[tag] = this._getRows(subNode.childNodes);
+ }
+ else {
+ if (this._haveAttrs(subNode)) {
+ result[tag] = this._nodeToJS(subNode);
+ }
+ else {
+ result[tag] = this._toType(subNode.textContent);
+ }
+ }
+ }
+ }
+ return result;
+ };
+ XMLDriver.prototype._toType = function (val) {
+ if (val === "false" || val === "true") {
+ return val === "true";
+ }
+ if (!isNaN(val)) {
+ return Number(val);
+ }
+ return val;
+ };
+ XMLDriver.prototype._haveAttrs = function (node) {
+ return node.attributes && node.attributes.length;
+ };
+ return XMLDriver;
+}());
+exports.XMLDriver = XMLDriver;
-function lazyList(items, cfg) {
- var len = items.length;
-
- var self = {
- items: items,
- length: len,
- // defaults to returning item identity (or position?)
- key: function(i) {
- return cfg.key(items[i], i);
- },
- // default returns 0?
- diff: function(i, donor) {
- var newVals = cfg.diff(items[i], i);
- if (donor == null)
- { return newVals; }
- var oldVals = donor._diff;
- var same = newVals === oldVals || isArr(oldVals) ? cmpArr(newVals, oldVals) : cmpObj(newVals, oldVals);
- return same || newVals;
- },
- tpl: function(i) {
- return cfg.tpl(items[i], i);
- },
- map: function(tpl) {
- cfg.tpl = tpl;
- return self;
- },
- body: function(vnode) {
- var nbody = Array(len);
- for (var i = 0; i < len; i++) {
- var vnode2 = self.tpl(i);
+/***/ }),
+/* 93 */
+/***/ (function(module, exports, __webpack_require__) {
- // if ((vnode.flags & KEYED_LIST) === KEYED_LIST && self. != null)
- // vnode2.key = getKey(item);
+"use strict";
- vnode2._diff = self.diff(i); // holds oldVals for cmp
+Object.defineProperty(exports, "__esModule", { value: true });
+var INDENT_STEP = 4;
+function jsonToXML(data, root) {
+ if (root === void 0) { root = "root"; }
+ var result = "\n<" + root + ">";
+ for (var i = 0; i < data.length; i++) {
+ result += "\n" + itemToXML(data[i]);
+ }
+ return result + ("\n" + root + ">");
+}
+exports.jsonToXML = jsonToXML;
+function ws(count) {
+ return " ".repeat(count);
+}
+function itemToXML(item, indent) {
+ if (indent === void 0) { indent = INDENT_STEP; }
+ var result = ws(indent) + "- \n";
+ for (var key in item) {
+ if (Array.isArray(item[key])) {
+ result += ws(indent + INDENT_STEP) + ("<" + key + ">\n");
+ result += item[key].map(function (subItem) { return itemToXML(subItem, indent + INDENT_STEP * 2); }).join("\n") + "\n";
+ result += ws(indent + INDENT_STEP) + ("" + key + ">\n");
+ }
+ else {
+ result += ws(indent + INDENT_STEP) + ("<" + key + ">" + item[key] + "" + key + ">\n");
+ }
+ }
+ result += ws(indent) + "
";
+ return result;
+}
- nbody[i] = vnode2;
- // run preproc pass (should this be just preProc in above loop?) bench
- preProc(vnode2, vnode, i);
- }
+/***/ }),
+/* 94 */
+/***/ (function(module, exports, __webpack_require__) {
- // replace List with generated body
- vnode.body = nbody;
- }
- };
+"use strict";
- return self;
-}
+Object.defineProperty(exports, "__esModule", { value: true });
+var helpers_1 = __webpack_require__(16);
+var Sort = /** @class */ (function () {
+ function Sort() {
+ }
+ Sort.prototype.sort = function (array, by) {
+ var _this = this;
+ if (by.rule && typeof by.rule === "function") {
+ this._sort(array, by);
+ }
+ else if (by.by) {
+ by.rule = function (a, b) {
+ var aa = _this._checkVal(by.as, a[by.by]);
+ var bb = _this._checkVal(by.as, b[by.by]);
+ return helpers_1.naturalCompare(aa.toString(), bb.toString());
+ };
+ this._sort(array, by);
+ }
+ };
+ Sort.prototype._checkVal = function (method, val) {
+ return method ? method.call(this, val) : val;
+ };
+ Sort.prototype._sort = function (arr, conf) {
+ var _this = this;
+ var dir = {
+ asc: 1,
+ desc: -1
+ };
+ return arr.sort(function (a, b) {
+ return conf.rule.call(_this, a, b) * (dir[conf.dir] || dir.asc);
+ });
+ };
+ return Sort;
+}());
+exports.Sort = Sort;
-var nano = {
- config: config,
- ViewModel: ViewModel,
- VNode: VNode,
+/***/ }),
+/* 95 */
+/***/ (function(module, exports, __webpack_require__) {
- createView: createView,
+"use strict";
- defineElement: defineElement,
- defineSvgElement: defineSvgElement,
- defineText: defineText,
- defineComment: defineComment,
- defineView: defineView,
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __spreadArrays = (this && this.__spreadArrays) || function () {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var core_1 = __webpack_require__(1);
+var datacollection_1 = __webpack_require__(57);
+var dataproxy_1 = __webpack_require__(21);
+var helpers_1 = __webpack_require__(16);
+var types_1 = __webpack_require__(15);
+function addToOrder(store, obj, parent, index) {
+ if (index !== undefined && index !== -1 && store[parent] && store[parent][index]) {
+ store[parent].splice(index, 0, obj);
+ }
+ else {
+ if (!store[parent]) {
+ store[parent] = [];
+ }
+ store[parent].push(obj);
+ }
+}
+var TreeCollection = /** @class */ (function (_super) {
+ __extends(TreeCollection, _super);
+ function TreeCollection(config, events) {
+ var _a;
+ var _this = _super.call(this, config, events) || this;
+ var root = _this._root = "_ROOT_" + core_1.uid();
+ _this._childs = (_a = {}, _a[root] = [], _a);
+ _this._initChilds = null;
+ return _this;
+ }
+ TreeCollection.prototype.add = function (obj, index, parent) {
+ var _this = this;
+ if (index === void 0) { index = -1; }
+ if (parent === void 0) { parent = this._root; }
+ if (typeof obj !== "object") {
+ obj = {
+ value: obj
+ };
+ }
+ if (Array.isArray(obj)) {
+ return obj.map(function (element, key) {
+ return _this._add(element, index, parent, key);
+ });
+ }
+ else {
+ return this._add(obj, index, parent);
+ }
+ };
+ TreeCollection.prototype.getRoot = function () {
+ return this._root;
+ };
+ TreeCollection.prototype.getParent = function (id, asObj) {
+ if (asObj === void 0) { asObj = false; }
+ if (!this._pull[id]) {
+ return null;
+ }
+ var parent = this._pull[id].parent;
+ return asObj ? this._pull[parent] : parent;
+ };
+ TreeCollection.prototype.getItems = function (id) {
+ if (this._childs && this._childs[id]) {
+ return this._childs[id];
+ }
+ return [];
+ };
+ TreeCollection.prototype.getLength = function (id) {
+ if (id === void 0) { id = this._root; }
+ if (!this._childs[id]) {
+ return null;
+ }
+ return this._childs[id].length;
+ };
+ TreeCollection.prototype.removeAll = function (id) {
+ var _a;
+ if (id) {
+ var childs = __spreadArrays(this._childs[id]);
+ for (var _i = 0, childs_1 = childs; _i < childs_1.length; _i++) {
+ var child = childs_1[_i];
+ this.remove(child.id);
+ }
+ }
+ else {
+ _super.prototype.removeAll.call(this);
+ var root = this._root;
+ this._initChilds = null;
+ this._childs = (_a = {}, _a[root] = [], _a);
+ }
+ };
+ TreeCollection.prototype.getIndex = function (id) {
+ var parent = this.getParent(id);
+ if (!parent || !this._childs[parent]) {
+ return -1;
+ }
+ return core_1.findIndex(this._childs[parent], function (item) { return item.id === id; });
+ };
+ TreeCollection.prototype.sort = function (by) {
+ var _this = this;
+ if (!by) {
+ this._childs = {};
+ // [dirty]
+ this._parse_data(Object.keys(this._pull).map(function (key) { return _this._pull[key]; }));
+ if (this._filters) {
+ for (var key in this._filters) {
+ var filter = this._filters[key];
+ this.filter(filter.rule, filter.config);
+ }
+ }
+ }
+ else {
+ for (var key in this._childs) {
+ this._sort.sort(this._childs[key], by);
+ }
+ if (this._initChilds && Object.keys(this._initChilds).length) {
+ for (var key in this._initChilds) {
+ this._sort.sort(this._initChilds[key], by);
+ }
+ }
+ }
+ this.events.fire(types_1.DataEvents.change);
+ };
+ TreeCollection.prototype.filter = function (rule, config) {
+ var _this = this;
+ if (config === void 0) { config = {}; }
+ if (!rule) {
+ this.restoreOrder();
+ return;
+ }
+ if (!this._initChilds) {
+ this._initChilds = this._childs;
+ }
+ config.type = config.type || types_1.TreeFilterType.all;
+ // [todo] we can store multiple filter rules, like in datacollection
+ this._filters = {};
+ this._filters._ = {
+ rule: rule,
+ config: config
+ };
+ var newChilds = {};
+ this._recursiveFilter(rule, config, this._root, 0, newChilds);
+ Object.keys(newChilds).forEach(function (key) {
+ var parentId = _this.getParent(key);
+ var current = _this.getItem(key);
+ while (parentId) {
+ if (!newChilds[parentId]) {
+ newChilds[parentId] = [];
+ }
+ if (current && !newChilds[parentId].find(function (x) { return x.id === current.id; })) {
+ newChilds[parentId].push(current);
+ }
+ current = _this.getItem(parentId);
+ parentId = _this.getParent(parentId);
+ }
+ });
+ this._childs = newChilds;
+ this.events.fire(types_1.DataEvents.change);
+ };
+ TreeCollection.prototype.restoreOrder = function () {
+ if (this._initChilds) {
+ this._childs = this._initChilds;
+ this._initChilds = null;
+ }
+ this.events.fire(types_1.DataEvents.change);
+ };
+ TreeCollection.prototype.copy = function (id, index, target, targetId) {
+ var _this = this;
+ if (target === void 0) { target = this; }
+ if (targetId === void 0) { targetId = this._root; }
+ if (id instanceof Array) {
+ return id.map(function (elementId, key) {
+ return _this._copy(elementId, index, target, targetId, key);
+ });
+ }
+ else {
+ return this._copy(id, index, target, targetId);
+ }
+ };
+ TreeCollection.prototype.move = function (id, index, target, targetId) {
+ var _this = this;
+ if (target === void 0) { target = this; }
+ if (targetId === void 0) { targetId = this._root; }
+ if (id instanceof Array) {
+ return id.map(function (elementId, key) {
+ return _this._move(elementId, index, target, targetId, key);
+ });
+ }
+ else {
+ return this._move(id, index, target, targetId);
+ }
+ };
+ TreeCollection.prototype.forEach = function (cb, parent, level) {
+ if (parent === void 0) { parent = this._root; }
+ if (level === void 0) { level = Infinity; }
+ if (!this.haveItems(parent) || (level < 1)) {
+ return;
+ }
+ var array = this._childs[parent];
+ for (var i = 0; i < array.length; i++) {
+ cb.call(this, array[i], i, array);
+ if (this.haveItems(array[i].id)) {
+ this.forEach(cb, array[i].id, --level);
+ }
+ }
+ };
+ TreeCollection.prototype.eachChild = function (id, cb, direct, checkItem) {
+ if (direct === void 0) { direct = true; }
+ if (checkItem === void 0) { checkItem = function () { return true; }; }
+ if (!this.haveItems(id)) {
+ return;
+ }
+ for (var i = 0; i < this._childs[id].length; i++) {
+ cb.call(this, this._childs[id][i], i);
+ if (direct && checkItem(this._childs[id][i])) {
+ this.eachChild(this._childs[id][i].id, cb, direct, checkItem);
+ }
+ }
+ };
+ TreeCollection.prototype.getNearId = function (id) {
+ return id; // for selection
+ };
+ TreeCollection.prototype.loadItems = function (id, driver) {
+ var _this = this;
+ if (driver === void 0) { driver = "json"; }
+ var url = this.config.autoload + "?id=" + id;
+ var proxy = new dataproxy_1.DataProxy(url);
+ proxy.load().then(function (data) {
+ driver = helpers_1.toDataDriver(driver);
+ data = driver.toJsonArray(data);
+ _this._parse_data(data, id);
+ _this.events.fire(types_1.DataEvents.change);
+ });
+ };
+ TreeCollection.prototype.refreshItems = function (id, driver) {
+ if (driver === void 0) { driver = "json"; }
+ this.removeAll(id);
+ this.loadItems(id, driver);
+ };
+ TreeCollection.prototype.eachParent = function (id, cb, self) {
+ if (self === void 0) { self = false; }
+ var item = this.getItem(id);
+ if (!item) {
+ return;
+ }
+ if (self) {
+ cb.call(this, item);
+ }
+ if (item.parent === this._root) {
+ return;
+ }
+ var parent = this.getItem(item.parent);
+ cb.call(this, parent);
+ this.eachParent(item.parent, cb);
+ };
+ TreeCollection.prototype.haveItems = function (id) {
+ return id in this._childs;
+ };
+ TreeCollection.prototype.canCopy = function (id, target) {
+ if (id === target) {
+ return false;
+ }
+ var canCopy = true;
+ this.eachParent(target, function (item) { return item.id === id ? canCopy = false : null; }); // locate return string
+ return canCopy;
+ };
+ TreeCollection.prototype.serialize = function (driver, checkItem) {
+ if (driver === void 0) { driver = types_1.DataDriver.json; }
+ var data = this._serialize(this._root, checkItem);
+ var dataDriver = helpers_1.toDataDriver(driver);
+ if (dataDriver) {
+ return dataDriver.serialize(data);
+ }
+ };
+ TreeCollection.prototype.getId = function (index, parent) {
+ if (parent === void 0) { parent = this._root; }
+ if (!this._childs[parent] || !this._childs[parent][index]) {
+ return;
+ }
+ return this._childs[parent][index].id;
+ };
+ // Non public API from suite_6.4
+ TreeCollection.prototype.map = function (cb, parent, direct) {
+ if (parent === void 0) { parent = this._root; }
+ if (direct === void 0) { direct = true; }
+ var result = [];
+ if (!this.haveItems(parent)) {
+ return result;
+ }
+ for (var i = 0; i < this._childs[parent].length; i++) {
+ result.push(cb.call(this, this._childs[parent][i], i, this._childs));
+ if (direct) {
+ var childResult = this.map(cb, this._childs[parent][i].id, direct);
+ result = result.concat(childResult);
+ }
+ }
+ return result;
+ };
+ TreeCollection.prototype._add = function (obj, index, parent, key) {
+ if (index === void 0) { index = -1; }
+ if (parent === void 0) { parent = this._root; }
+ obj.parent = obj.parent ? obj.parent.toString() : parent;
+ if (key > 0 && index !== -1) {
+ index = index + 1;
+ }
+ var id = _super.prototype._add.call(this, obj, index);
+ if (Array.isArray(obj.items)) {
+ for (var _i = 0, _a = obj.items; _i < _a.length; _i++) {
+ var item = _a[_i];
+ this.add(item, -1, obj.id);
+ }
+ }
+ return id;
+ };
+ TreeCollection.prototype._copy = function (id, index, target, targetId, key) {
+ if (target === void 0) { target = this; }
+ if (targetId === void 0) { targetId = this._root; }
+ if (!this.exists(id)) {
+ return null;
+ }
+ var currentChilds = this._childs[id];
+ if (key) {
+ index = index === -1 ? -1 : index + key;
+ }
+ if (target === this && !this.canCopy(id, targetId)) {
+ return null;
+ }
+ var itemCopy = helpers_1.copyWithoutInner(this.getItem(id), { items: true });
+ if (target.exists(id)) {
+ itemCopy.id = core_1.uid();
+ }
+ if (!helpers_1.isTreeCollection(target)) {
+ target.add(itemCopy, index);
+ return;
+ }
+ if (this.exists(id)) {
+ itemCopy.parent = targetId;
+ if (target !== this && targetId === this._root) {
+ itemCopy.parent = target.getRoot();
+ }
+ target.add(itemCopy, index);
+ id = itemCopy.id;
+ }
+ if (currentChilds) {
+ for (var _i = 0, currentChilds_1 = currentChilds; _i < currentChilds_1.length; _i++) {
+ var child = currentChilds_1[_i];
+ var childId = child.id;
+ var childIndex = this.getIndex(childId);
+ if (typeof id === "string") {
+ this.copy(childId, childIndex, target, id);
+ }
+ }
+ }
+ return id;
+ };
+ TreeCollection.prototype._move = function (id, index, target, targetId, key) {
+ if (target === void 0) { target = this; }
+ if (targetId === void 0) { targetId = this._root; }
+ if (!this.exists(id)) {
+ return null;
+ }
+ if (key) {
+ index = index === -1 ? -1 : index + key;
+ }
+ if (target !== this) {
+ if (!helpers_1.isTreeCollection(target)) { // move to datacollection
+ target.add(helpers_1.copyWithoutInner(this.getItem(id)), index);
+ this.remove(id);
+ return;
+ }
+ var returnId = this.copy(id, index, target, targetId);
+ this.remove(id);
+ return returnId;
+ }
+ // move inside
+ if (!this.canCopy(id, targetId)) {
+ return null;
+ }
+ var parent = this.getParent(id);
+ var parentIndex = this.getIndex(id);
+ // get item from parent array and move to target array
+ var spliced = this._childs[parent].splice(parentIndex, 1)[0];
+ spliced.parent = targetId; // need for next moving, ... not best solution, may be full method for get item
+ if (!this._childs[parent].length) {
+ delete this._childs[parent];
+ }
+ if (!this.haveItems(targetId)) {
+ this._childs[targetId] = [];
+ }
+ if (index === -1) {
+ index = this._childs[targetId].push(spliced);
+ }
+ else {
+ this._childs[targetId].splice(index, 0, spliced);
+ }
+ this.events.fire(types_1.DataEvents.change);
+ return id;
+ };
+ TreeCollection.prototype._removeAll = function (id) {
+ var _a;
+ if (id) {
+ var childs = __spreadArrays(this._childs[id]);
+ for (var _i = 0, childs_2 = childs; _i < childs_2.length; _i++) {
+ var child = childs_2[_i];
+ this.remove(child.id);
+ }
+ }
+ else {
+ _super.prototype._removeAll.call(this);
+ var root = this._root;
+ this._initChilds = null;
+ this._childs = (_a = {}, _a[root] = [], _a);
+ }
+ };
+ TreeCollection.prototype._removeCore = function (id) {
+ if (this._pull[id]) {
+ var parent_1 = this.getParent(id);
+ this._childs[parent_1] = this._childs[parent_1].filter(function (item) { return item.id !== id; });
+ if (parent_1 !== this._root && !this._childs[parent_1].length) {
+ delete this._childs[parent_1];
+ }
+ if (this._initChilds && this._initChilds[parent_1]) {
+ this._initChilds[parent_1] = this._initChilds[parent_1].filter(function (item) { return item.id !== id; });
+ if (parent_1 !== this._root && !this._initChilds[parent_1].length) {
+ delete this._initChilds[parent_1];
+ }
+ }
+ this._fastDeleteChilds(this._childs, id);
+ if (this._initChilds) {
+ this._fastDeleteChilds(this._initChilds, id);
+ }
+ }
+ };
+ TreeCollection.prototype._addToOrder = function (_order, obj, index) {
+ var childs = this._childs;
+ var initChilds = this._initChilds;
+ var parent = obj.parent;
+ this._pull[obj.id] = obj;
+ addToOrder(childs, obj, parent, index);
+ if (initChilds) {
+ addToOrder(initChilds, obj, parent, index);
+ }
+ };
+ TreeCollection.prototype._parse_data = function (data, parent) {
+ if (parent === void 0) { parent = this._root; }
+ for (var _i = 0, data_1 = data; _i < data_1.length; _i++) {
+ var obj = data_1[_i];
+ if (this.config.init) {
+ obj = this.config.init(obj);
+ }
+ if (typeof obj !== "object") {
+ obj = {
+ value: obj
+ };
+ }
+ obj.id = obj.id ? obj.id.toString() : core_1.uid();
+ obj.parent = obj.parent ? obj.parent.toString() : parent;
+ this._pull[obj.id] = obj;
+ if (!this._childs[obj.parent]) {
+ this._childs[obj.parent] = [];
+ }
+ this._childs[obj.parent].push(obj);
+ if (obj.items && obj.items instanceof Object) {
+ this._parse_data(obj.items, obj.id);
+ }
+ }
+ };
+ TreeCollection.prototype._fastDeleteChilds = function (target, id) {
+ if (this._pull[id]) {
+ delete this._pull[id];
+ }
+ if (!target[id]) {
+ return;
+ }
+ for (var i = 0; i < target[id].length; i++) {
+ this._fastDeleteChilds(target, target[id][i].id);
+ }
+ delete target[id];
+ };
+ TreeCollection.prototype._recursiveFilter = function (rule, config, current, level, newChilds) {
+ var _this = this;
+ var childs = this._childs[current];
+ if (!childs) {
+ return;
+ }
+ var condition = function (item) {
+ switch (config.type) {
+ case types_1.TreeFilterType.all: {
+ return true;
+ }
+ case types_1.TreeFilterType.level: {
+ return level === config.level;
+ }
+ case types_1.TreeFilterType.leafs: {
+ return !_this.haveItems(item.id);
+ }
+ }
+ };
+ if (typeof rule === "function") {
+ var customRule = function (item) { return condition(item) && rule(item); };
+ var filtered = childs.filter(customRule);
+ if (filtered.length) {
+ newChilds[current] = filtered;
+ }
+ }
+ else if (rule.by && rule.match) {
+ var customRule = function (item) { return condition(item) && item[rule.by].toString().toLowerCase().indexOf(rule.match.toString().toLowerCase()) !== -1; };
+ var filtered = childs.filter(customRule);
+ if (filtered.length) {
+ newChilds[current] = filtered;
+ }
+ }
+ for (var _i = 0, childs_3 = childs; _i < childs_3.length; _i++) {
+ var child = childs_3[_i];
+ this._recursiveFilter(rule, config, child.id, level + 1, newChilds);
+ }
+ };
+ TreeCollection.prototype._serialize = function (parent, fn) {
+ var _this = this;
+ if (parent === void 0) { parent = this._root; }
+ return this.map(function (item) {
+ var itemCopy = {};
+ for (var key in item) {
+ if (key === "parent" || key === "items") {
+ continue;
+ }
+ itemCopy[key] = item[key];
+ }
+ if (fn) {
+ itemCopy = fn(itemCopy);
+ }
+ if (_this.haveItems(item.id)) {
+ itemCopy.items = _this._serialize(item.id, fn);
+ }
+ return itemCopy;
+ }, parent, false);
+ };
+ return TreeCollection;
+}(datacollection_1.DataCollection));
+exports.TreeCollection = TreeCollection;
- injectView: injectView,
- injectElement: injectElement,
- lazyList: lazyList,
+/***/ }),
+/* 96 */
+/***/ (function(module, exports, __webpack_require__) {
- FIXED_BODY: FIXED_BODY,
- DEEP_REMOVE: DEEP_REMOVE,
- KEYED_LIST: KEYED_LIST,
- LAZY_LIST: LAZY_LIST,
-};
+"use strict";
-function protoPatch(n, doRepaint) {
- patch$1(this, n, doRepaint);
+Object.defineProperty(exports, "__esModule", { value: true });
+var html_1 = __webpack_require__(2);
+var CollectionStore_1 = __webpack_require__(97);
+var types_1 = __webpack_require__(15);
+var helpers_1 = __webpack_require__(16);
+function getPosition(e) {
+ var y = e.clientY;
+ var element = html_1.locateNode(e);
+ if (!element) {
+ return null;
+ }
+ var treeLine = element.childNodes[0];
+ var _a = treeLine.getBoundingClientRect(), top = _a.top, height = _a.height;
+ return (y - top) / height;
}
-
-// newNode can be either {class: style: } or full new VNode
-// will/didPatch hooks?
-function patch$1(o, n, doRepaint) {
- if (n.type != null) {
- // no full patching of view roots, just use redraw!
- if (o.vm != null)
- { return; }
-
- preProc(n, o.parent, o.idx, null);
- o.parent.body[o.idx] = n;
- patch(n, o);
- doRepaint && repaint(n);
- drainDidHooks(getVm(n));
- }
- else {
- // TODO: re-establish refs
-
- // shallow-clone target
- var donor = Object.create(o);
- // fixate orig attrs
- donor.attrs = assignObj({}, o.attrs);
- // assign new attrs into live targ node
- var oattrs = assignObj(o.attrs, n);
- // prepend any fixed shorthand class
- if (o._class != null) {
- var aclass = oattrs.class;
- oattrs.class = aclass != null && aclass !== "" ? o._class + " " + aclass : o._class;
- }
-
- patchAttrs(o, donor);
-
- doRepaint && repaint(o);
- }
+function dragEventContent(element, elements) {
+ var rect = element.getBoundingClientRect();
+ var ghost = document.createElement("div");
+ var clone = element.cloneNode(true);
+ clone.style.width = rect.width + "px";
+ clone.style.height = rect.height + "px";
+ clone.style.maxHeight = rect.height + "px";
+ clone.style.fontSize = window.getComputedStyle(element.parentElement).fontSize;
+ clone.style.opacity = "0.8";
+ clone.style.fontSize = window.getComputedStyle(element.parentElement).fontSize;
+ ghost.appendChild(clone);
+ if (elements && elements.length) {
+ elements.forEach(function (node, key) {
+ var nodeClone = node.cloneNode(true);
+ nodeClone.style.width = rect.width + "px";
+ nodeClone.style.height = rect.height + "px";
+ nodeClone.style.maxHeight = rect.height + "px";
+ nodeClone.style.top = ((key + 1) * 12 - rect.height) - (rect.height * key) + "px";
+ nodeClone.style.left = (key + 1) * 12 + "px";
+ nodeClone.style.opacity = "0.6";
+ nodeClone.style.zIndex = "" + (-key - 1);
+ ghost.appendChild(nodeClone);
+ });
+ }
+ ghost.className = "dhx_drag-ghost";
+ return ghost;
}
+var DragManager = /** @class */ (function () {
+ function DragManager() {
+ var _this = this;
+ this._transferData = {};
+ this._canMove = true;
+ this._selectedIds = [];
+ this._onMouseMove = function (e) {
+ if (!_this._transferData.id) {
+ return;
+ }
+ var pageX = e.pageX, pageY = e.pageY;
+ if (!_this._transferData.ghost) {
+ if (Math.abs(_this._transferData.x - pageX) < 3 && Math.abs(_this._transferData.y - pageY) < 3) {
+ return;
+ }
+ else {
+ var ghost = _this._onDragStart(_this._transferData.id, _this._transferData.targetId);
+ if (!ghost) {
+ _this._endDrop();
+ return;
+ }
+ else {
+ _this._transferData.ghost = ghost;
+ document.body.appendChild(_this._transferData.ghost);
+ }
+ }
+ }
+ _this._moveGhost(pageX, pageY);
+ _this._onDrag(e);
+ };
+ this._onMouseUp = function () {
+ if (!_this._transferData.x) {
+ return;
+ }
+ if (_this._transferData.ghost) {
+ _this._removeGhost();
+ _this._onDrop();
+ }
+ else {
+ _this._endDrop();
+ }
+ document.removeEventListener("mousemove", _this._onMouseMove);
+ document.removeEventListener("mouseup", _this._onMouseUp);
+ };
+ }
+ DragManager.prototype.setItem = function (id, item) {
+ CollectionStore_1.collectionStore.setItem(id, item);
+ };
+ DragManager.prototype.onMouseDown = function (e, selectedIds, itemsForGhost) {
+ if (e.which !== 1) {
+ return;
+ }
+ e.preventDefault();
+ document.addEventListener("mousemove", this._onMouseMove);
+ document.addEventListener("mouseup", this._onMouseUp);
+ var item = html_1.locateNode(e, "dhx_id");
+ var id = item && item.getAttribute("dhx_id");
+ var targetId = html_1.locate(e, "dhx_widget_id");
+ if (selectedIds && selectedIds.indexOf(id) !== -1 && selectedIds.length > 1) {
+ this._selectedIds = selectedIds;
+ this._itemsForGhost = itemsForGhost;
+ }
+ else {
+ this._selectedIds = [];
+ this._itemsForGhost = null;
+ }
+ if (id && targetId) {
+ var _a = html_1.getBox(item), left = _a.left, top_1 = _a.top;
+ this._transferData.initXOffset = e.pageX - left;
+ this._transferData.initYOffset = e.pageY - top_1;
+ this._transferData.x = e.pageX;
+ this._transferData.y = e.pageY;
+ this._transferData.targetId = targetId;
+ this._transferData.id = id;
+ this._transferData.item = item;
+ }
+ };
+ DragManager.prototype._moveGhost = function (x, y) {
+ if (this._transferData.ghost) {
+ this._transferData.ghost.style.left = x - this._transferData.initXOffset + "px";
+ this._transferData.ghost.style.top = y - this._transferData.initYOffset + "px";
+ }
+ };
+ DragManager.prototype._removeGhost = function () {
+ document.body.removeChild(this._transferData.ghost);
+ };
+ DragManager.prototype._onDrop = function () {
+ if (!this._canMove) {
+ this._endDrop();
+ return;
+ }
+ var target = CollectionStore_1.collectionStore.getItem(this._lastCollectionId);
+ var config = target && target.config;
+ if (!target || config.dragMode === types_1.DragMode.source) {
+ this._endDrop();
+ return;
+ }
+ if (target.events.fire(types_1.DragEvents.beforeDrop, [this._lastId, this._transferData.target])) {
+ var to = {
+ id: this._lastId,
+ target: target
+ };
+ var from = {
+ id: this._transferData.id,
+ target: this._transferData.target
+ };
+ this._move(from, to);
+ to.target.events.fire(types_1.DragEvents.dropComplete, [to.id, this._transferData.dropPosition]);
+ }
+ this._endDrop();
+ };
+ DragManager.prototype._onDragStart = function (id, targetId) {
+ var target = CollectionStore_1.collectionStore.getItem(targetId);
+ var config = target.config;
+ if (config.dragMode === types_1.DragMode.target) {
+ return null;
+ }
+ var item = target.data.getItem(id);
+ var ghost = dragEventContent(this._transferData.item, this._itemsForGhost);
+ var ans = target.events.fire(types_1.DragEvents.beforeDrag, [item, ghost]);
+ if (!ans || !id) {
+ return null;
+ }
+ target.events.fire(types_1.DragEvents.dragStart, [id, this._selectedIds]);
+ this._toggleTextSelection(true);
+ this._transferData.target = target;
+ this._transferData.dragConfig = config;
+ return ghost;
+ };
+ DragManager.prototype._onDrag = function (e) {
+ var clientX = e.clientX, clientY = e.clientY;
+ var element = document.elementFromPoint(clientX, clientY);
+ var collectionId = html_1.locate(element, "dhx_widget_id");
+ if (!collectionId) {
+ if (this._canMove) {
+ this._cancelCanDrop();
+ }
+ return;
+ }
+ var target = CollectionStore_1.collectionStore.getItem(collectionId);
+ var id = html_1.locate(element, "dhx_id");
+ if (!id) {
+ this._cancelCanDrop();
+ this._lastCollectionId = collectionId;
+ this._lastId = null;
+ this._canDrop();
+ return;
+ }
+ if (target.config.dropBehaviour === types_1.DropBehaviour.complex) {
+ var pos = getPosition(e);
+ if (pos <= 0.25) {
+ this._transferData.dropPosition = types_1.DropPosition.top;
+ }
+ else if (pos >= 0.75) {
+ this._transferData.dropPosition = types_1.DropPosition.bot;
+ }
+ else {
+ this._transferData.dropPosition = types_1.DropPosition.in;
+ }
+ }
+ else if (this._lastId === id && this._lastCollectionId === collectionId) {
+ return;
+ }
+ var from = {
+ id: this._transferData.id,
+ target: this._transferData.target
+ };
+ if (target.config.dragMode === "source") {
+ return;
+ }
+ from.target.events.fire(types_1.DragEvents.dragOut, [id, target]);
+ if (collectionId !== this._transferData.targetId || !helpers_1.isTreeCollection(from.target.data) ||
+ (helpers_1.isTreeCollection(from.target.data) && from.target.data.canCopy(from.id, id))) {
+ this._cancelCanDrop(); // clear last
+ this._lastId = id;
+ this._lastCollectionId = collectionId;
+ var canMove = from.target.events.fire(types_1.DragEvents.dragIn, [id, this._transferData.dropPosition, CollectionStore_1.collectionStore.getItem(collectionId)]);
+ if (canMove) {
+ this._canDrop();
+ }
+ }
+ else {
+ this._cancelCanDrop();
+ }
+ };
+ DragManager.prototype._move = function (from, to) {
+ var fromData = from.target.data;
+ var toData = to.target.data;
+ var index = 0;
+ var targetId = to.id;
+ var behaviour = helpers_1.isTreeCollection(toData) ? to.target.config.dropBehaviour : undefined;
+ switch (behaviour) {
+ case types_1.DropBehaviour.child:
+ break;
+ case types_1.DropBehaviour.sibling:
+ targetId = toData.getParent(targetId);
+ index = toData.getIndex(to.id) + 1;
+ break;
+ case types_1.DropBehaviour.complex:
+ var dropPosition = this._transferData.dropPosition;
+ if (dropPosition === types_1.DropPosition.top) {
+ targetId = toData.getParent(targetId);
+ index = toData.getIndex(to.id);
+ }
+ else if (dropPosition === types_1.DropPosition.bot) {
+ targetId = toData.getParent(targetId);
+ index = toData.getIndex(to.id) + 1;
+ }
+ break;
+ default:
+ // list move
+ if (!to.id) {
+ index = -1;
+ }
+ else if (from.target === to.target && toData.getIndex(from.id) < toData.getIndex(to.id)) {
+ index = toData.getIndex(to.id) - 1;
+ }
+ else {
+ index = toData.getIndex(to.id);
+ }
+ }
+ if (this._transferData.dragConfig.dragCopy) {
+ if (this._selectedIds instanceof Array && this._selectedIds.length > 1) {
+ this._selectedIds.map(function (selctedId) {
+ fromData.copy(selctedId, index, toData, targetId);
+ if (index > -1) {
+ index++;
+ }
+ });
+ }
+ else {
+ fromData.copy(from.id, index, toData, targetId);
+ }
+ }
+ else {
+ if (this._selectedIds instanceof Array && this._selectedIds.length > 1) {
+ this._selectedIds.map(function (selctedId) {
+ fromData.move(selctedId, index, toData, targetId);
+ if (index > -1) {
+ index++;
+ }
+ });
+ }
+ else {
+ fromData.move(from.id, index, toData, targetId); // typescript bug??
+ }
+ }
+ };
+ DragManager.prototype._endDrop = function () {
+ this._toggleTextSelection(false);
+ if (this._transferData.target) {
+ this._transferData.target.events.fire(types_1.DragEvents.dragEnd, [this._transferData.id, this._selectedIds]);
+ }
+ this._cancelCanDrop();
+ this._canMove = true;
+ this._transferData = {};
+ this._lastId = null;
+ this._lastCollectionId = null;
+ };
+ DragManager.prototype._cancelCanDrop = function () {
+ this._canMove = false;
+ var collection = CollectionStore_1.collectionStore.getItem(this._lastCollectionId);
+ if (collection && this._lastId) {
+ collection.events.fire(types_1.DragEvents.cancelDrop, [this._lastId]);
+ }
+ this._lastCollectionId = null;
+ this._lastId = null;
+ };
+ DragManager.prototype._canDrop = function () {
+ this._canMove = true;
+ var target = CollectionStore_1.collectionStore.getItem(this._lastCollectionId);
+ if (target && this._lastId) {
+ target.events.fire(types_1.DragEvents.canDrop, [this._lastId, this._transferData.dropPosition]);
+ }
+ };
+ DragManager.prototype._toggleTextSelection = function (add) {
+ if (add) {
+ document.body.classList.add("dhx_no-select");
+ }
+ else {
+ document.body.classList.remove("dhx_no-select");
+ }
+ };
+ return DragManager;
+}());
+var dhx = window.dhxHelpers = window.dhxHelpers || {};
+dhx.dragManager = dhx.dragManager || new DragManager();
+exports.dragManager = dhx.dragManager;
-VNodeProto.patch = protoPatch;
-
-function nextSubVms(n, accum) {
- var body = n.body;
- if (isArr(body)) {
- for (var i = 0; i < body.length; i++) {
- var n2 = body[i];
+/***/ }),
+/* 97 */
+/***/ (function(module, exports, __webpack_require__) {
- if (n2.vm != null)
- { accum.push(n2.vm); }
- else
- { nextSubVms(n2, accum); }
- }
- }
+"use strict";
- return accum;
-}
+Object.defineProperty(exports, "__esModule", { value: true });
+var CollectionStore = /** @class */ (function () {
+ function CollectionStore() {
+ this._store = {};
+ }
+ CollectionStore.prototype.setItem = function (id, target) {
+ this._store[id] = target;
+ };
+ CollectionStore.prototype.getItem = function (id) {
+ if (!this._store[id]) {
+ return null;
+ }
+ return this._store[id];
+ };
+ return CollectionStore;
+}());
+var dhx = window.dhxHelpers = window.dhxHelpers || {};
+dhx.collectionStore = dhx.collectionStore || new CollectionStore();
+exports.collectionStore = dhx.collectionStore;
-function defineElementSpread(tag) {
- var args = arguments;
- var len = args.length;
- var body, attrs;
- if (len > 1) {
- var bodyIdx = 1;
+/***/ }),
+/* 98 */
+/***/ (function(module, exports, __webpack_require__) {
- if (isPlainObj(args[1])) {
- attrs = args[1];
- bodyIdx = 2;
- }
+"use strict";
+/* WEBPACK VAR INJECTION */(function(Promise) {
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var dataproxy_1 = __webpack_require__(21);
+var core_1 = __webpack_require__(1);
+var ajax_1 = __webpack_require__(34);
+var LazyDataProxy = /** @class */ (function (_super) {
+ __extends(LazyDataProxy, _super);
+ function LazyDataProxy(url, config) {
+ var _this = _super.call(this, url) || this;
+ _this.config = core_1.extend({
+ from: 0,
+ limit: 50,
+ delay: 50,
+ prepare: 0
+ }, config);
+ _this.updateUrl(url, { from: _this.config.from, limit: _this.config.limit });
+ return _this;
+ }
+ LazyDataProxy.prototype.load = function () {
+ var _this = this;
+ return new Promise(function (resolve) {
+ if (!_this._timeout) {
+ ajax_1.ajax.get(_this.url, { responseType: "text" }).then(resolve);
+ _this._cooling = true;
+ _this._timeout = setTimeout(function () { return; });
+ }
+ else {
+ clearTimeout(_this._timeout);
+ _this._timeout = setTimeout(function () {
+ ajax_1.ajax.get(_this.url, { responseType: "text" }).then(resolve);
+ _this._cooling = true;
+ }, _this.config.delay);
+ if (_this._cooling) {
+ resolve(null);
+ _this._cooling = false;
+ }
+ }
+ });
+ };
+ return LazyDataProxy;
+}(dataproxy_1.DataProxy));
+exports.LazyDataProxy = LazyDataProxy;
- if (len === bodyIdx + 1 && (isVal(args[bodyIdx]) || isArr(args[bodyIdx]) || attrs && (attrs._flags & LAZY_LIST) === LAZY_LIST))
- { body = args[bodyIdx]; }
- else
- { body = sliceArgs(args, bodyIdx); }
- }
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(12)))
- return initElementNode(tag, attrs, body);
-}
+/***/ }),
+/* 99 */
+/***/ (function(module, exports, __webpack_require__) {
-function defineSvgElementSpread() {
- var n = defineElementSpread.apply(null, arguments);
- n.ns = SVG_NS;
- return n;
-}
+"use strict";
-ViewModelProto.emit = emit;
-ViewModelProto.onemit = null;
+Object.defineProperty(exports, "__esModule", { value: true });
+var events_1 = __webpack_require__(3);
+var types_1 = __webpack_require__(22);
+var types_2 = __webpack_require__(15);
+var Selection = /** @class */ (function () {
+ function Selection(_config, data, events) {
+ var _this = this;
+ this.events = events || (new events_1.EventSystem(this));
+ this._data = data;
+ this._data.events.on(types_2.DataEvents.removeAll, function () {
+ _this._selected = null;
+ });
+ this._data.events.on(types_2.DataEvents.change, function () {
+ if (_this._selected) {
+ var near = _this._data.getNearId(_this._selected);
+ if (near !== _this._selected) {
+ _this._selected = null;
+ if (near) {
+ _this.add(near);
+ }
+ }
+ }
+ });
+ }
+ Selection.prototype.getId = function () {
+ return this._selected;
+ };
+ Selection.prototype.getItem = function () {
+ if (this._selected) {
+ return this._data.getItem(this._selected);
+ }
+ return null;
+ };
+ Selection.prototype.remove = function (id) {
+ id = id || this._selected;
+ if (!id) {
+ return true;
+ }
+ if (this.events.fire(types_1.SelectionEvents.beforeUnSelect, [id])) {
+ this._data.update(id, { $selected: false });
+ this._selected = null;
+ this.events.fire(types_1.SelectionEvents.afterUnSelect, [id]);
+ return true;
+ }
+ return false;
+ };
+ Selection.prototype.add = function (id) {
+ if (this._selected === id) {
+ return;
+ }
+ this.remove();
+ if (this.events.fire(types_1.SelectionEvents.beforeSelect, [id])) {
+ this._selected = id;
+ this._data.update(id, { $selected: true });
+ this.events.fire(types_1.SelectionEvents.afterSelect, [id]);
+ }
+ };
+ return Selection;
+}());
+exports.Selection = Selection;
-ViewModelProto.body = function() {
- return nextSubVms(this.node, []);
-};
-nano.defineElementSpread = defineElementSpread;
-nano.defineSvgElementSpread = defineSvgElementSpread;
+/***/ }),
+/* 100 */
+/***/ (function(module, exports, __webpack_require__) {
-return nano;
+"use strict";
-})));
-//# sourceMappingURL=domvm.micro.js.map
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __assign = (this && this.__assign) || function () {
+ __assign = Object.assign || function(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign.apply(this, arguments);
+};
+var __spreadArrays = (this && this.__spreadArrays) || function () {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var core_1 = __webpack_require__(1);
+var dom_1 = __webpack_require__(0);
+var events_1 = __webpack_require__(3);
+var html_1 = __webpack_require__(2);
+var scrollView_1 = __webpack_require__(101);
+var view_1 = __webpack_require__(4);
+var ts_data_1 = __webpack_require__(7);
+var ts_layout_1 = __webpack_require__(14);
+var ts_message_1 = __webpack_require__(19);
+var ts_toolbar_1 = __webpack_require__(29);
+var en_1 = __webpack_require__(37);
+var types_1 = __webpack_require__(27);
+var Uploader_1 = __webpack_require__(56);
+var configs_1 = __webpack_require__(120);
+var helper_1 = __webpack_require__(121);
+var ProgressBar_1 = __webpack_require__(122);
+var ReadStackPreview_1 = __webpack_require__(123);
+var Vault = /** @class */ (function (_super) {
+ __extends(Vault, _super);
+ function Vault(container, config) {
+ if (config === void 0) { config = {}; }
+ var _this = _super.call(this, null, core_1.extend({
+ mode: types_1.VaultMode.list,
+ toolbar: true,
+ updateFromResponse: true,
+ scaleFactor: 4,
+ customScroll: true,
+ uploader: {},
+ progressBar: {}
+ }, config)) || this;
+ if (!_this.config.toolbar) {
+ _this.config.uploader.autosend = true;
+ }
+ if (config.data) {
+ _this.data = config.data;
+ _this.events = config.data.events;
+ _this.events.context = _this;
+ }
+ else {
+ _this.events = new events_1.EventSystem(_this);
+ _this.data = new ts_data_1.DataCollection({}, _this.events);
+ }
+ _this.data.config.init = function (obj) {
+ obj.status = obj.status || types_1.FileStatus.uploaded;
+ if (obj.file) {
+ obj.size = obj.file.size;
+ obj.name = obj.file.name;
+ }
+ else {
+ obj.size = obj.size || 0;
+ obj.name = obj.name || "";
+ }
+ if (_this.config.mode === types_1.VaultMode.grid && obj.file && helper_1.isImage(obj)) {
+ _this._readStack.add(obj, _this.uploader.config.autosend);
+ }
+ return obj;
+ };
+ _this._readStack = new ReadStackPreview_1.ReadStackPreview(_this.data);
+ _this.uploader = new Uploader_1.Uploader(_this.config.uploader, _this.data, _this.events);
+ _this._scrollView = new scrollView_1.ScrollView(function () { return _this._vaultView.getRootView(); });
+ _this._progressBar = new ProgressBar_1.ProgressBar(_this.events, _this.config.progressBar);
+ _this.events.on(types_1.UploaderEvents.uploadProgress, function (progress, current, total) { return _this._progressBar.setState(progress, { current: current, total: total }); });
+ _this._initHandlers();
+ _this._initUI(container);
+ _this._initEvents();
+ return _this;
+ }
+ Vault.prototype.destructor = function () {
+ this.toolbar.destructor();
+ this._readStack.stop();
+ this.uploader.unlinkDropArea();
+ this.uploader.abort();
+ };
+ Vault.prototype.getRootView = function () {
+ return this._layout.getRootView();
+ };
+ Vault.prototype._initUI = function (container) {
+ var _this = this;
+ var cfg = this.config.toolbar ? configs_1.layoutConfig : configs_1.layoutConfigWithoutTopbar;
+ cfg.on = this._getDragEvents();
+ var layout = this._layout = new ts_layout_1.Layout(container, cfg);
+ var toolbar = this.toolbar = new ts_toolbar_1.Toolbar(null, { css: "vault-toolbar" });
+ this.toolbar.data.parse([
+ {
+ id: "add",
+ tooltip: en_1.default.add,
+ type: ts_toolbar_1.ItemType.button,
+ icon: "dxi-plus"
+ },
+ {
+ id: "upload",
+ tooltip: en_1.default.upload,
+ type: ts_toolbar_1.ItemType.button,
+ icon: "dxi icon-upload" // Custom Web Font Icon
+ },
+ {
+ id: "spacer",
+ type: ts_toolbar_1.ItemType.spacer
+ },
+ {
+ id: "remove-all",
+ tooltip: en_1.default.clearAll,
+ type: ts_toolbar_1.ItemType.button,
+ icon: "dxi-delete-forever"
+ }
+ ]);
+ this._hideUploadAndDeleteButtons();
+ this._vaultView = view_1.toViewLike(dom_1.create({ render: function () { return _this._draw(); } }));
+ if (this.config.toolbar) {
+ layout.getCell("topbar").attach(toolbar);
+ }
+ layout.getCell("vault").attach(this._vaultView);
+ };
+ Vault.prototype._initHandlers = function () {
+ var _this = this;
+ this._handlers = {
+ onclick: {
+ ".action-add": function () { return _this.uploader.selectFile(); },
+ ".action-remove-file": function (e) {
+ var id = html_1.locate(e);
+ if (!id) {
+ return;
+ }
+ _this.data.update(id, { $toRemove: true });
+ setTimeout(function () {
+ _this.data.update(id, { $toRemove: false }, true);
+ _this.data.remove(id);
+ }, 200);
+ }
+ },
+ onmouseover: {
+ ".action-download": function (e) {
+ ts_message_1.tooltip(en_1.default.download, {
+ node: e.target,
+ position: ts_message_1.Position.bottom
+ });
+ },
+ ".action-remove-file": function (e) {
+ ts_message_1.tooltip(en_1.default.clear, {
+ node: e.target,
+ position: ts_message_1.Position.bottom
+ });
+ },
+ ".title-content, .dhx-file-name": function (e) {
+ var id = html_1.locate(e);
+ var item = _this.data.getItem(id);
+ ts_message_1.tooltip(item.name, {
+ node: e.target,
+ position: ts_message_1.Position.bottom,
+ css: "tooltip-light"
+ });
+ }
+ }
+ };
+ };
+ Vault.prototype._getDragEvents = function () {
+ var _this = this;
+ var rect = {
+ left: null,
+ top: null,
+ width: null,
+ height: null
+ };
+ return {
+ dragleave: function (e) {
+ if (!_this._canDrop) {
+ return;
+ }
+ if (e.pageX > rect.left + rect.width - 1 || e.pageX < rect.left || e.pageY > rect.top + rect.height - 1 || e.pageY < rect.top) {
+ _this._canDrop = false;
+ if (_this.config.toolbar) {
+ _this._layout.getCell("topbar").show();
+ }
+ _this._layout.config.css = "vault-layout";
+ _this._layout.paint();
+ }
+ },
+ dragenter: function (e) {
+ e.preventDefault();
+ if (_this.uploader.isActive || _this._canDrop) {
+ return;
+ }
+ var types = e.dataTransfer.types;
+ for (var _i = 0, types_2 = types; _i < types_2.length; _i++) {
+ var type = types_2[_i];
+ if (type !== "Files" && type !== "application/x-moz-file") {
+ _this._canDrop = false;
+ return;
+ }
+ }
+ _this._canDrop = true;
+ var clientRect = _this.getRootView().node.el.getBoundingClientRect();
+ rect.left = clientRect.left + window.pageXOffset;
+ rect.top = clientRect.top + window.pageYOffset;
+ rect.width = clientRect.width;
+ rect.height = clientRect.height;
+ _this._canDrop = true;
+ if (_this.config.toolbar) {
+ _this._layout.getCell("topbar").hide();
+ }
+ _this._layout.config.css = "vault-layout dhx-dragin";
+ _this._layout.paint();
+ },
+ dragover: function (e) {
+ e.preventDefault();
+ },
+ drop: function (e) {
+ e.preventDefault();
+ if (!_this._canDrop) {
+ return;
+ }
+ var dataTransfer = e.dataTransfer;
+ _this.uploader.parseFiles(dataTransfer);
+ _this._canDrop = false;
+ if (_this.config.toolbar) {
+ _this._layout.getCell("topbar").show();
+ }
+ _this._layout.config.css = "vault-layout";
+ _this._layout.paint();
+ }
+ };
+ };
+ Vault.prototype._hideUploadAndDeleteButtons = function () {
+ this.toolbar.hide(["upload", "remove-all"]);
+ };
+ Vault.prototype._showUploadAndDeleteButtons = function () {
+ if (this.uploader.config.autosend) {
+ this.toolbar.show("remove-all");
+ }
+ else {
+ this.toolbar.show(["upload", "remove-all"]);
+ }
+ };
+ Vault.prototype._initEvents = function () {
+ var _this = this;
+ this.data.events.on(ts_data_1.DataEvents.change, function () {
+ if (!_this.data.getLength()) {
+ _this._hideUploadAndDeleteButtons();
+ }
+ else {
+ _this._showUploadAndDeleteButtons();
+ }
+ _this._vaultView.paint();
+ });
+ this.events.on(types_1.UploaderEvents.uploadBegin, function () {
+ if (_this.config.toolbar) {
+ _this._layout.getCell("topbar").attach(_this._progressBar);
+ }
+ });
+ this.events.on(types_1.UploaderEvents.uploadComplete, function () {
+ if (_this.config.mode === types_1.VaultMode.grid && _this.uploader.config.autosend) {
+ _this._readStack.read();
+ }
+ if (_this.config.toolbar) {
+ _this._layout.getCell("topbar").attach(_this.toolbar);
+ }
+ });
+ this.toolbar.events.on(ts_toolbar_1.NavigationBarEvents.click, function (id) {
+ switch (id) {
+ case "add":
+ _this.uploader.selectFile();
+ break;
+ case "remove-all":
+ _this.data.removeAll();
+ break;
+ case "upload":
+ _this.uploader.send();
+ break;
+ }
+ });
+ this.events.on(types_1.ProgressBarEvents.cancel, function () {
+ _this.uploader.abort();
+ _this._vaultView.paint();
+ });
+ };
+ Vault.prototype._draw = function () {
+ var isEmpty = !this.data.getLength();
+ var files = this.config.mode === types_1.VaultMode.grid ? this._drawGrid() : this._drawList();
+ return dom_1.el("div", __assign(__assign({ class: "vault dhx_widget" + (this._canDrop ? " drop-here" : "") }, this._handlers), { dhx_widget_id: this._uid }), [
+ this._canDrop || isEmpty ? this._drawDropableArea() :
+ this.config.customScroll ? this._scrollView.render(files) : files
+ ]);
+ };
+ Vault.prototype._getFileActions = function (file) {
+ var defaultActions = [];
+ var hoverActions = [];
+ var actions = [
+ dom_1.el(".dhx-default-actions", defaultActions),
+ dom_1.el(".dhx-hover-actions", hoverActions)
+ ];
+ if (file.status === types_1.FileStatus.inprogress) {
+ return actions;
+ }
+ if (file.status !== types_1.FileStatus.failed && file.link) {
+ var link = (this.config.downloadURL || "") + file.link;
+ var downloadName = link.split("/").pop().split("?")[0];
+ var download = dom_1.el("a", {
+ download: downloadName,
+ class: "download-link",
+ href: link
+ }, [
+ dom_1.el(".icon-btn.dxi.dxi-download.action-download")
+ ]);
+ hoverActions.push(download);
+ }
+ var remove = dom_1.el(".icon-btn.dxi.dxi-delete-forever.action-remove-file");
+ hoverActions.push(remove);
+ if (file.status === types_1.FileStatus.failed) {
+ var warn = dom_1.el(".dxi.dxi-alert-circle.warning-status");
+ defaultActions.push(warn);
+ }
+ if (file.status === types_1.FileStatus.uploaded) {
+ var uploadComplete = dom_1.el(".dxi.dxi-checkbox-marked-circle.uploaded-status");
+ defaultActions.push(uploadComplete);
+ }
+ return actions;
+ };
+ Vault.prototype._drawList = function () {
+ var _this = this;
+ return dom_1.el(".dhx-files-block.dhx-webkit-scroll", this.data.map(function (item) {
+ var isError = item.status === types_1.FileStatus.failed && item.request;
+ var inProgress = item.status === types_1.FileStatus.inprogress;
+ var inQueue = item.status === types_1.FileStatus.queue;
+ var notUploaded = item.status !== types_1.FileStatus.uploaded;
+ return dom_1.el("div", {
+ class: "dhx-file-item" + (item.$toRemove ? " to-remove" : "") + (inQueue ? " in-queue" : ""),
+ dhx_id: item.id,
+ _key: item.id
+ }, [
+ dom_1.el(".dhx-file-icon", [
+ dom_1.el("div", {
+ class: "dhx-file-type " + helper_1.getFileClassName(item) + (notUploaded ? " not-loaded" : "")
+ })
+ ]),
+ dom_1.el(".dhx-file-title", [
+ dom_1.el(".dhx-title-content", item.name),
+ dom_1.el(".dhx-file-info", [
+ isError && dom_1.el(".warn-message", item.request.statusText || en_1.default.error),
+ inProgress ? dom_1.el(".progress-value", (item.progress * 100).toFixed(1) + "%")
+ : dom_1.el(".dhx-size" + (isError && ".dhx-size-error" || ""), helper_1.getBasis(item.size))
+ ])
+ ]),
+ inProgress && dom_1.el(".dhx-download-progress", {
+ style: {
+ width: (item.progress * 100).toFixed(1) + "%"
+ }
+ }),
+ !inProgress && dom_1.el(".dhx-file-action", _this._getFileActions(item))
+ ]);
+ }));
+ };
+ Vault.prototype._drawDropableArea = function () {
+ return dom_1.el(".dhx-dropable-area.drop-files-here", [
+ dom_1.el(".dhx-big-icon-block", [
+ dom_1.el(".dxi.icon-upload") // Custom Web Font Icon
+ ]),
+ !this._canDrop && dom_1.el(".drop-area-bold-text", en_1.default.dragAndDrop),
+ !this._canDrop && dom_1.el(".drop-area-bold-text", en_1.default.filesOrFoldersHere),
+ !this._canDrop && dom_1.el(".drop-area-light-text", en_1.default.or),
+ !this._canDrop && dom_1.el("button.dhx_btn.dhx_btn--flat.dhx_btn--small.action-add", en_1.default.browse)
+ ]);
+ };
+ Vault.prototype._drawGrid = function () {
+ var _this = this;
+ return dom_1.el("div", {
+ class: "dhx-files-grid dhx-webkit-scroll"
+ }, [
+ dom_1.el(".dhx-grid-content", this.data.map(function (item) {
+ var inProgress = item.status === types_1.FileStatus.inprogress;
+ var inQueue = item.status === types_1.FileStatus.queue;
+ var isError = item.status === types_1.FileStatus.failed;
+ return dom_1.el("div", {
+ class: "dhx-file-grid-item" + (inProgress ? " in-progress" : "")
+ + (item.$toRemove ? " to-remove" : "") + (inQueue ? " in-queue" : "") + (isError ? " failed" : ""),
+ dhx_id: item.id,
+ _key: item.id
+ }, [
+ dom_1.el(".dhx-preview-wrapper", __spreadArrays([
+ item.preview ? dom_1.el(".dhx-server-file-preview", [
+ dom_1.el("img", { src: item.preview })
+ ]) :
+ item.image ? dom_1.el("canvas", {
+ width: 98 * _this.config.scaleFactor,
+ height: 98 * _this.config.scaleFactor,
+ _hooks: {
+ didInsert: function (node) {
+ var _a = helper_1.calculateCover(item.image), dx = _a.dx, dy = _a.dy, sx = _a.sx, sy = _a.sy, sHeight = _a.sHeight, sWidth = _a.sWidth;
+ var ctx = node.el.getContext("2d");
+ ctx.drawImage(item.image, sx, sy, sWidth, sHeight, dx, dy, 98 * _this.config.scaleFactor, 98 * _this.config.scaleFactor);
+ }
+ }
+ }) : dom_1.el("div", {
+ class: "dhx-file-preview dhx-file-type " + helper_1.getFileClassName(item)
+ }),
+ inProgress && _this._drawCircle(item.progress)
+ ], _this._getFileActions(item), [
+ dom_1.el(".dhx-file-info", [
+ isError && dom_1.el(".warn-message", item.request.statusText || en_1.default.error),
+ !inProgress && dom_1.el(".dhx-size" + (isError && ".dhx-size-error" || ""), helper_1.getBasis(item.size))
+ ])
+ ])),
+ dom_1.el(".dhx-file-name", helper_1.truncateWord(item.name))
+ ]);
+ }))
+ ]);
+ };
+ Vault.prototype._drawCircle = function (progress) {
+ return dom_1.el(".progress-layout", [
+ dom_1.el(".progress-amount", (progress * 100).toFixed(1) + "%"),
+ dom_1.sv("svg", {
+ xmlns: "http://www.w3.org/2000/svg",
+ class: "progress-circle",
+ viewBox: "0 0 60 60",
+ }, [
+ dom_1.sv("circle", {
+ "cx": 30,
+ "cy": 30,
+ "r": 28,
+ "stroke-width": 4,
+ "class": "progress-bar-background",
+ }),
+ dom_1.sv("circle.active-circle", {
+ "cx": 30,
+ "cy": 30,
+ "r": 28,
+ "stroke-width": 4,
+ "stroke-dasharray": "175.9 175.9",
+ "stroke-dashoffset": (1 - progress) * 175.9,
+ "class": "progress-bar-active",
+ }),
+ ])
+ ]);
+ };
+ return Vault;
+}(view_1.View));
+exports.Vault = Vault;
/***/ }),
-/* 98 */
+/* 101 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -10879,12 +11989,12 @@ return nano;
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(1);
var dom_1 = __webpack_require__(0);
-var html_1 = __webpack_require__(3);
+var html_1 = __webpack_require__(2);
var ScrollView = /** @class */ (function () {
function ScrollView(getRootView, config) {
var _a;
- if (config === void 0) { config = {}; }
var _this = this;
+ if (config === void 0) { config = {}; }
this.config = core_1.extend({
speed: 20
}, config);
@@ -10988,8 +12098,8 @@ var ScrollView = /** @class */ (function () {
_a);
}
ScrollView.prototype.render = function (element) {
- var _this = this;
var _a;
+ var _this = this;
if (this._scrollWidth === 0) {
return element;
}
@@ -11079,7 +12189,7 @@ exports.ScrollView = ScrollView;
/***/ }),
-/* 99 */
+/* 102 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -11098,7 +12208,8 @@ var __extends = (this && this.__extends) || (function () {
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
-var Cell_1 = __webpack_require__(100);
+var Cell_1 = __webpack_require__(103);
+var types_1 = __webpack_require__(28);
var dom_1 = __webpack_require__(0);
var Layout = /** @class */ (function (_super) {
__extends(Layout, _super);
@@ -11108,6 +12219,10 @@ var Layout = /** @class */ (function (_super) {
_this._root = _this.config.parent || _this;
_this._all = {};
_this._parseConfig();
+ if (_this.config.activeTab) {
+ _this.config.activeView = _this.config.activeTab;
+ }
+ // Need replace to tabbar
if (_this.config.views) {
_this.config.activeView = _this.config.activeView || _this._cells[0].id;
_this._isViewLayout = true;
@@ -11118,13 +12233,9 @@ var Layout = /** @class */ (function (_super) {
}
return _this;
}
- Layout.prototype.cell = function (id) {
- // FIXME
- return this._root._all[id];
- };
Layout.prototype.toVDOM = function () {
if (this._isViewLayout) {
- var roots = [this.cell(this.config.activeView).toVDOM()];
+ var roots = [this.getCell(this.config.activeView).toVDOM()];
return _super.prototype.toVDOM.call(this, roots);
}
var nodes = [];
@@ -11140,27 +12251,37 @@ var Layout = /** @class */ (function (_super) {
return _super.prototype.toVDOM.call(this, nodes);
};
Layout.prototype.removeCell = function (id) {
+ if (!this.events.fire(types_1.LayoutEvents.beforeRemove, [id])) {
+ return;
+ }
var root = (this.config.parent || this);
if (root !== this) {
return root.removeCell(id);
}
// this === root layout
- var view = this.cell(id);
+ var view = this.getCell(id);
if (view) {
var parent_1 = view.getParent();
delete this._all[id];
parent_1._cells = parent_1._cells.filter(function (cell) { return cell.id !== id; });
parent_1.paint();
}
+ this.events.fire(types_1.LayoutEvents.afterRemove, [id]);
};
Layout.prototype.addCell = function (config, index) {
if (index === void 0) { index = -1; }
+ if (!this.events.fire(types_1.LayoutEvents.beforeAdd, [config.id])) {
+ return;
+ }
var view = this._createCell(config);
if (index < 0) {
index = this._cells.length + index + 1;
}
this._cells.splice(index, 0, view);
this.paint();
+ if (!this.events.fire(types_1.LayoutEvents.afterAdd, [config.id])) {
+ return;
+ }
};
Layout.prototype.getId = function (index) {
if (index < 0) {
@@ -11171,6 +12292,33 @@ var Layout = /** @class */ (function (_super) {
Layout.prototype.getRefs = function (name) {
return this._root.getRootView().refs[name];
};
+ Layout.prototype.getCell = function (id) {
+ return this._root._all[id];
+ };
+ Layout.prototype.forEach = function (cb, parent, level) {
+ if (level === void 0) { level = Infinity; }
+ if (!this._haveCells(parent) || level < 1) {
+ return;
+ }
+ var array;
+ if (parent) {
+ array = this._root._all[parent]._cells;
+ }
+ else {
+ array = this._root._cells;
+ }
+ for (var index = 0; index < array.length; index++) {
+ var cell = array[index];
+ cb.call(this, cell, index, array);
+ if (this._haveCells(cell.id)) {
+ cell.forEach(cb, cell.id, --level);
+ }
+ }
+ };
+ // TODO: remove sute_7.0
+ Layout.prototype.cell = function (id) {
+ return this.getCell(id);
+ };
Layout.prototype._getCss = function (content) {
var layoutCss = this._xLayout ? "dhx_layout-columns" : "dhx_layout-rows";
var directionCss = this.config.align ? " " + layoutCss + "--" + this.config.align : "";
@@ -11203,13 +12351,20 @@ var Layout = /** @class */ (function (_super) {
this._root._all[view.id] = view;
return view;
};
+ Layout.prototype._haveCells = function (id) {
+ if (id) {
+ var array = this._root._all[id];
+ return array._cells && array._cells.length > 0;
+ }
+ return Object.keys(this._all).length > 0;
+ };
return Layout;
}(Cell_1.Cell));
exports.Layout = Layout;
/***/ }),
-/* 100 */
+/* 103 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -11242,64 +12397,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(1);
var dom_1 = __webpack_require__(0);
var view_1 = __webpack_require__(4);
-var resizeMode;
-(function (resizeMode) {
- resizeMode[resizeMode["unknown"] = 0] = "unknown";
- resizeMode[resizeMode["percents"] = 1] = "percents";
- resizeMode[resizeMode["pixels"] = 2] = "pixels";
- resizeMode[resizeMode["mixedpx1"] = 3] = "mixedpx1";
- resizeMode[resizeMode["mixedpx2"] = 4] = "mixedpx2";
- resizeMode[resizeMode["mixedperc1"] = 5] = "mixedperc1";
- resizeMode[resizeMode["mixedperc2"] = 6] = "mixedperc2";
-})(resizeMode || (resizeMode = {}));
-function getResizeMode(dir, conf1, conf2) {
- var field = dir ? "width" : "height";
- var is1perc = conf1[field] && conf1[field].indexOf("%") !== -1;
- var is2perc = conf2[field] && conf2[field].indexOf("%") !== -1;
- var is1px = conf1[field] && conf1[field].indexOf("px") !== -1;
- var is2px = conf2[field] && conf2[field].indexOf("px") !== -1;
- if (is1perc && is2perc) {
- return resizeMode.percents;
- }
- if (is1px && is2px) {
- return resizeMode.pixels;
- }
- if (is1px && !is2px) {
- return resizeMode.mixedpx1;
- }
- if (is2px && !is1px) {
- return resizeMode.mixedpx2;
- }
- if (is1perc) {
- return resizeMode.mixedperc1;
- }
- if (is2perc) {
- return resizeMode.mixedperc2;
- }
- return resizeMode.unknown;
-}
-function getBlockRange(block1, block2, isXLayout) {
- if (isXLayout === void 0) { isXLayout = true; }
- if (isXLayout) {
- return {
- min: block1.left + window.pageXOffset,
- max: block2.right + window.pageXOffset
- };
- }
- return {
- min: block1.top + window.pageYOffset,
- max: block2.bottom + window.pageYOffset
- };
-}
+var types_1 = __webpack_require__(28);
+var helpers_1 = __webpack_require__(104);
+var events_1 = __webpack_require__(3);
var Cell = /** @class */ (function (_super) {
__extends(Cell, _super);
function Cell(parent, config) {
- var _this = _super.call(this, parent, core_1.extend({ gravity: true }, config)) || this;
+ var _this = _super.call(this, parent, core_1.extend({ gravity: true, collapsed: false }, config)) || this;
+ _this._disabled = [];
var p = parent;
if (p && p.isVisible) {
_this._parent = p;
}
- _this.config.full = _this.config.full === undefined ? Boolean(_this.config.header || _this.config.collapsable) : _this.config.full;
+ if (_this._parent && _this._parent.events) {
+ _this.events = _this._parent.events;
+ }
+ else {
+ _this.events = new events_1.EventSystem(_this);
+ }
+ _this.config.full = _this.config.full === undefined ? Boolean(_this.config.header ||
+ _this.config.collapsable || _this.config.headerHeight || _this.config.headerIcon || _this.config.headerImage)
+ : _this.config.full;
_this._initHandlers();
_this.id = _this.config.id || core_1.uid();
return _this;
@@ -11332,12 +12450,19 @@ var Cell = /** @class */ (function (_super) {
return !this.config.hidden && (!this._parent || this._parent.isVisible());
};
Cell.prototype.hide = function () {
+ if (!this.events.fire(types_1.LayoutEvents.beforeHide, [this.id])) {
+ return;
+ }
this.config.hidden = true;
if (this._parent && this._parent.paint) {
this._parent.paint();
}
+ this.events.fire(types_1.LayoutEvents.afterHide, [this.id]);
};
Cell.prototype.show = function () {
+ if (!this.events.fire(types_1.LayoutEvents.beforeShow, [this.id])) {
+ return;
+ }
if (this._parent && this._parent.config.activeView) {
this._parent.config.activeView = this.id;
}
@@ -11348,6 +12473,31 @@ var Cell = /** @class */ (function (_super) {
this._parent.show();
}
this.paint();
+ this.events.fire(types_1.LayoutEvents.afterShow, [this.id]);
+ };
+ Cell.prototype.expand = function () {
+ if (!this.events.fire(types_1.LayoutEvents.beforeExpand, [this.id])) {
+ return;
+ }
+ this.config.collapsed = false;
+ this.events.fire(types_1.LayoutEvents.afterExpand, [this.id]);
+ this.paint();
+ };
+ Cell.prototype.collapse = function () {
+ if (!this.events.fire(types_1.LayoutEvents.beforeCollapse, [this.id])) {
+ return;
+ }
+ this.config.collapsed = true;
+ this.events.fire(types_1.LayoutEvents.afterCollapse, [this.id]);
+ this.paint();
+ };
+ Cell.prototype.toggle = function () {
+ if (this.config.collapsed) {
+ this.expand();
+ }
+ else {
+ this.collapse();
+ }
};
Cell.prototype.getParent = function () {
return this._parent;
@@ -11413,7 +12563,7 @@ var Cell = /** @class */ (function (_super) {
}
}
var resizer = this.config.resizable && !this._isLastCell() && !this.config.collapsed ?
- dom_1.el(".dhx_layout-resizer." + (this._isXDirection() ? "dhx_layout-resizer--x" : "dhx_layout-resizer--y"), __assign({}, this._resizerHandlers, { _ref: "resizer_" + this._uid }), [dom_1.el("span.dhx_layout-resizer__icon", {
+ dom_1.el(".dhx_layout-resizer." + (this._isXDirection() ? "dhx_layout-resizer--x" : "dhx_layout-resizer--y"), __assign(__assign({}, this._resizerHandlers), { _ref: "resizer_" + this._uid }), [dom_1.el("span.dhx_layout-resizer__icon", {
class: "dxi " + (this._isXDirection() ? "dxi-dots-vertical" : "dxi-dots-horizontal")
})]) : null;
var handlers = {};
@@ -11422,11 +12572,11 @@ var Cell = /** @class */ (function (_super) {
handlers["on" + key] = this.config.on[key];
}
}
- var cell = dom_1.el("div", __assign((_a = { _key: this._uid, style: this.config.full || this.config.html ? style : __assign({}, style, stylePadding), _ref: this._uid }, _a["aria-labelledby"] = this.config.id ? "tab-content-" + this.config.id : null, _a), handlers, { class: this._getCss(false) +
+ var cell = dom_1.el("div", __assign(__assign((_a = { _key: this._uid, style: this.config.full || this.config.html ? style : __assign(__assign({}, style), stylePadding), _ref: this._uid }, _a["aria-labelledby"] = this.config.id ? "tab-content-" + this.config.id : null, _a), handlers), { class: this._getCss(false) +
(this.config.css ? " " + this.config.css : "") +
(this.config.collapsed ? " dhx_layout-cell--collapsed" : "") +
(this.config.resizable ? " dhx_layout-cell--resizeble" : "") +
- // только для селов
+ // for cells only
(this.config.gravity ? " dhx_layout-cell--gravity" : "") }), this.config.full ? [
dom_1.el("div", {
tabindex: this.config.collapsable ? "0" : "-1",
@@ -11435,10 +12585,13 @@ var Cell = /** @class */ (function (_super) {
(this.config.collapsable ? " dhx_layout-cell-header--collapseble" : "") +
(this.config.collapsed ? " dhx_layout-cell-header--collapsed" : "") +
(((this.getParent() || {}).config || {}).isAccordion ? " dhx_layout-cell-header--accordion" : ""),
- onclick: this._handlers.collapse,
+ style: {
+ height: this.config.headerHeight
+ },
+ onclick: this._handlers.toggle,
onkeydown: this._handlers.enterCollapse
}, [
- this.config.headerIcon && dom_1.el("span.dhx_layout-cell-header__icon" + this.config.headerIcon),
+ this.config.headerIcon && dom_1.el("span.dhx_layout-cell-header__icon", { class: this.config.headerIcon }),
this.config.headerImage && dom_1.el(".dhx_layout-cell-header__image-wrapper", [
dom_1.el("img", {
src: this.config.headerImage,
@@ -11446,12 +12599,16 @@ var Cell = /** @class */ (function (_super) {
})
]),
this.config.header && dom_1.el("h3.dhx_layout-cell-header__title", this.config.header),
- this.config.collapsable && dom_1.el("div.dhx_layout-cell-header__collapse-icon", {
- class: this._getCollapseIcon()
- }),
+ this.config.collapsable
+ ? dom_1.el("div.dhx_layout-cell-header__collapse-icon", {
+ class: this._getCollapseIcon()
+ })
+ : dom_1.el("div.dhx_layout-cell-header__collapse-icon", {
+ class: "dxi dxi-empty"
+ })
]),
!this.config.collapsed ? dom_1.el("div", {
- "style": this.config.html || nodes ? stylePadding : null,
+ "style": __assign(__assign({}, stylePadding), { height: "calc(100% - " + (this.config.headerHeight || 37) + "px)" }),
".innerHTML": this.config.html,
"class": this._getCss(true) + " dhx_layout-cell-content",
}, kids) : null
@@ -11471,6 +12628,31 @@ var Cell = /** @class */ (function (_super) {
};
Cell.prototype._initHandlers = function () {
var _this = this;
+ this._handlers = {
+ enterCollapse: function (e) {
+ if (e.keyCode === 13) {
+ _this._handlers.toggle();
+ }
+ },
+ collapse: function () {
+ if (!_this.config.collapsable) {
+ return;
+ }
+ _this.collapse();
+ },
+ expand: function () {
+ if (!_this.config.collapsable) {
+ return;
+ }
+ _this.expand();
+ },
+ toggle: function () {
+ if (!_this.config.collapsable) {
+ return;
+ }
+ _this.toggle();
+ }
+ };
var blockOpts = {
left: null,
top: null,
@@ -11488,9 +12670,10 @@ var Cell = /** @class */ (function (_super) {
document.body.classList.remove("dhx_no-select--resize");
document.removeEventListener("mouseup", mouseUp);
document.removeEventListener("mousemove", mouseMove);
+ _this.events.fire(types_1.LayoutEvents.afterResizeEnd, [_this.id]);
};
var mouseMove = function (e) {
- if (!blockOpts.isActive || blockOpts.mode === resizeMode.unknown) {
+ if (!blockOpts.isActive || blockOpts.mode === types_1.resizeMode.unknown) {
return;
}
var newValue = blockOpts.xLayout
@@ -11504,42 +12687,29 @@ var Cell = /** @class */ (function (_super) {
newValue = blockOpts.size - blockOpts.resizerLength;
}
switch (blockOpts.mode) {
- case resizeMode.pixels:
+ case types_1.resizeMode.pixels:
_this.config[prop] = newValue - blockOpts.resizerLength / 2 + "px";
blockOpts.nextCell.config[prop] = blockOpts.size - newValue - blockOpts.resizerLength / 2 + "px";
break;
- case resizeMode.mixedpx1:
+ case types_1.resizeMode.mixedpx1:
_this.config[prop] = newValue - blockOpts.resizerLength / 2 + "px";
break;
- case resizeMode.mixedpx2:
+ case types_1.resizeMode.mixedpx2:
blockOpts.nextCell.config[prop] = blockOpts.size - newValue - blockOpts.resizerLength / 2 + "px";
break;
- case resizeMode.percents:
+ case types_1.resizeMode.percents:
_this.config[prop] = newValue / blockOpts.size * blockOpts.percentsum + "%";
blockOpts.nextCell.config[prop] = (blockOpts.size - newValue) / blockOpts.size * blockOpts.percentsum + "%";
break;
- case resizeMode.mixedperc1:
+ case types_1.resizeMode.mixedperc1:
_this.config[prop] = newValue / blockOpts.size * blockOpts.percentsum + "%";
break;
- case resizeMode.mixedperc2:
+ case types_1.resizeMode.mixedperc2:
blockOpts.nextCell.config[prop] = (blockOpts.size - newValue) / blockOpts.size * blockOpts.percentsum + "%";
break;
}
_this.paint();
- };
- this._handlers = {
- enterCollapse: function (e) {
- if (e.keyCode === 13) {
- _this._handlers.collapse();
- }
- },
- collapse: function () {
- if (!_this.config.collapsable) {
- return;
- }
- _this.config.collapsed = !_this.config.collapsed;
- _this.paint();
- }
+ _this.events.fire(types_1.LayoutEvents.resize, [_this.id]);
};
this._resizerHandlers = {
onmousedown: function (e) {
@@ -11549,6 +12719,9 @@ var Cell = /** @class */ (function (_super) {
if (blockOpts.isActive) {
mouseUp();
}
+ if (!_this.events.fire(types_1.LayoutEvents.beforeResizeStart, [_this.id])) {
+ return;
+ }
document.body.classList.add("dhx_no-select--resize");
var block = _this.getCellView();
var nextCell = _this._getNextCell();
@@ -11560,21 +12733,21 @@ var Cell = /** @class */ (function (_super) {
blockOpts.xLayout = _this._isXDirection();
blockOpts.left = blockOffsets.left + window.pageXOffset;
blockOpts.top = blockOffsets.top + window.pageYOffset;
- blockOpts.range = getBlockRange(blockOffsets, nextBlockOffsets, blockOpts.xLayout);
+ blockOpts.range = helpers_1.getBlockRange(blockOffsets, nextBlockOffsets, blockOpts.xLayout);
blockOpts.size = blockOpts.range.max - blockOpts.range.min;
blockOpts.isActive = true;
blockOpts.nextCell = nextCell;
blockOpts.resizerLength = blockOpts.xLayout ? resizerOffsets.width : resizerOffsets.height;
- blockOpts.mode = getResizeMode(blockOpts.xLayout, _this.config, nextCell.config);
- if (blockOpts.mode === resizeMode.percents) {
+ blockOpts.mode = helpers_1.getResizeMode(blockOpts.xLayout, _this.config, nextCell.config);
+ if (blockOpts.mode === types_1.resizeMode.percents) {
var field = blockOpts.xLayout ? "width" : "height";
blockOpts.percentsum = parseFloat(_this.config[field]) + parseFloat(nextCell.config[field]);
}
- if (blockOpts.mode === resizeMode.mixedperc1) {
+ if (blockOpts.mode === types_1.resizeMode.mixedperc1) {
var field = blockOpts.xLayout ? "width" : "height";
blockOpts.percentsum = 1 / (blockOffsets[field] / (blockOpts.size - blockOpts.resizerLength)) * parseFloat(_this.config[field]);
}
- if (blockOpts.mode === resizeMode.mixedperc2) {
+ if (blockOpts.mode === types_1.resizeMode.mixedperc2) {
var field = blockOpts.xLayout ? "width" : "height";
blockOpts.percentsum = 1 / (nextBlockOffsets[field] / (blockOpts.size - blockOpts.resizerLength)) * parseFloat(nextCell.config[field]);
}
@@ -11630,16 +12803,12 @@ var Cell = /** @class */ (function (_super) {
}
else {
if (config.height !== undefined && !config.collapsed) {
- style.flexBasis = config.height;
style.height = config.height;
}
if (config.width !== undefined) {
style.width = config.width;
}
}
- // if (config.padding) {
- // style.padding = config.padding;
- // }
return style;
};
return Cell;
@@ -11648,14 +12817,65 @@ exports.Cell = Cell;
/***/ }),
-/* 101 */
+/* 104 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var html_1 = __webpack_require__(3);
-var types_1 = __webpack_require__(33);
+var types_1 = __webpack_require__(28);
+function getResizeMode(isXLayout, conf1, conf2) {
+ var field = isXLayout ? "width" : "height";
+ var is1perc = conf1[field] && conf1[field].indexOf("%") !== -1;
+ var is2perc = conf2[field] && conf2[field].indexOf("%") !== -1;
+ var is1px = conf1[field] && conf1[field].indexOf("px") !== -1;
+ var is2px = conf2[field] && conf2[field].indexOf("px") !== -1;
+ if (is1perc && is2perc) {
+ return types_1.resizeMode.percents;
+ }
+ if (is1px && is2px) {
+ return types_1.resizeMode.pixels;
+ }
+ if (is1px && !is2px) {
+ return types_1.resizeMode.mixedpx1;
+ }
+ if (is2px && !is1px) {
+ return types_1.resizeMode.mixedpx2;
+ }
+ if (is1perc) {
+ return types_1.resizeMode.mixedperc1;
+ }
+ if (is2perc) {
+ return types_1.resizeMode.mixedperc2;
+ }
+ return types_1.resizeMode.unknown;
+}
+exports.getResizeMode = getResizeMode;
+function getBlockRange(block1, block2, isXLayout) {
+ if (isXLayout === void 0) { isXLayout = true; }
+ if (isXLayout) {
+ return {
+ min: block1.left + window.pageXOffset,
+ max: block2.right + window.pageXOffset
+ };
+ }
+ return {
+ min: block1.top + window.pageYOffset,
+ max: block2.bottom + window.pageYOffset
+ };
+}
+exports.getBlockRange = getBlockRange;
+
+
+/***/ }),
+/* 105 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", { value: true });
+var html_1 = __webpack_require__(2);
+var types_1 = __webpack_require__(35);
var nodeTimeout = new WeakMap();
var containers = new Map();
function onExpire(node, fromClick) {
@@ -11691,7 +12911,7 @@ function message(props) {
}
props.position = props.position || types_1.MessageContainerPosition.topRight;
var messageBox = document.createElement("div");
- messageBox.className = "dhx_message " + (props.css || "");
+ messageBox.className = "dhx_widget dhx_message " + (props.css || "");
if (props.html) {
messageBox.innerHTML = props.html;
}
@@ -11742,20 +12962,20 @@ function createMessageContainer(parent, position) {
/***/ }),
-/* 102 */
+/* 106 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(Promise) {
Object.defineProperty(exports, "__esModule", { value: true });
-var en_1 = __webpack_require__(34);
-var common_1 = __webpack_require__(59);
+var en_1 = __webpack_require__(36);
+var common_1 = __webpack_require__(61);
function alert(props) {
var apply = props.buttons && props.buttons[0] ? props.buttons[0] : en_1.default.apply;
var unblock = common_1.blockScreen(props.blockerCss);
return new Promise(function (res) {
var alertBox = document.createElement("div");
- alertBox.className = "dhx_alert " + (props.css || "");
+ alertBox.className = "dhx_widget dhx_alert " + (props.css || "");
alertBox.innerHTML = "\n\t\t\t" + (props.header ? "
" : "") + "\n\t\t\t" + (props.text ? "" + props.text + "
" : "") + "\n\t\t\t";
document.body.appendChild(alertBox);
alertBox.querySelector(".dhx_alert__apply-button").focus();
@@ -11768,17 +12988,17 @@ function alert(props) {
}
exports.alert = alert;
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(14)))
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(12)))
/***/ }),
-/* 103 */
+/* 107 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(Promise) {
Object.defineProperty(exports, "__esModule", { value: true });
-var en_1 = __webpack_require__(34);
-var common_1 = __webpack_require__(59);
+var en_1 = __webpack_require__(36);
+var common_1 = __webpack_require__(61);
function confirm(props) {
var apply = props.buttons && props.buttons[0] ? props.buttons[0] : en_1.default.apply;
var reject = props.buttons && props.buttons[1] ? props.buttons[1] : en_1.default.reject;
@@ -11791,7 +13011,7 @@ function confirm(props) {
res(val);
};
var confirmBox = document.createElement("div");
- confirmBox.className = "dhx_alert dhx_alert--confirm" + (props.css ? " " + props.css : "");
+ confirmBox.className = "dhx_widget dhx_alert dhx_alert--confirm" + (props.css ? " " + props.css : "");
confirmBox.innerHTML = "\n\t\t" + (props.header ? "" : "") + "\n\t\t" + (props.text ? "" + props.text + "
" : "") + "\n\t\t\t";
document.body.appendChild(confirmBox);
confirmBox.querySelector(".dhx_alert__confirm-reject").focus();
@@ -11805,10 +13025,10 @@ function confirm(props) {
}
exports.confirm = confirm;
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(14)))
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(12)))
/***/ }),
-/* 104 */
+/* 108 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -11829,8 +13049,8 @@ var __extends = (this && this.__extends) || (function () {
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(1);
var dom_1 = __webpack_require__(0);
-var html_1 = __webpack_require__(3);
-var ts_navbar_1 = __webpack_require__(15);
+var html_1 = __webpack_require__(2);
+var ts_navbar_1 = __webpack_require__(17);
var ts_message_1 = __webpack_require__(19);
var Toolbar = /** @class */ (function (_super) {
__extends(Toolbar, _super);
@@ -11918,6 +13138,7 @@ var Toolbar = /** @class */ (function (_super) {
ts_navbar_1.ItemType.title,
ts_navbar_1.ItemType.navItem,
ts_navbar_1.ItemType.menuItem,
+ ts_navbar_1.ItemType.customHTML,
],
widgetName: "toolbar"
});
@@ -11962,10 +13183,10 @@ var Toolbar = /** @class */ (function (_super) {
Toolbar.prototype._getMode = function (item, root) {
return item.id === root ? "bottom" : "right";
};
- Toolbar.prototype._close = function () {
+ Toolbar.prototype._close = function (e) {
this._activePosition = null;
this._currentRoot = null;
- _super.prototype._close.call(this);
+ _super.prototype._close.call(this, e);
};
Toolbar.prototype._setRoot = function (id) {
if (this.data.getParent(id) === this.data.getRoot()) {
@@ -11978,7 +13199,7 @@ exports.Toolbar = Toolbar;
/***/ }),
-/* 105 */
+/* 109 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -12010,12 +13231,12 @@ var __assign = (this && this.__assign) || function () {
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(1);
var dom_1 = __webpack_require__(0);
-var events_1 = __webpack_require__(2);
-var html_1 = __webpack_require__(3);
+var events_1 = __webpack_require__(3);
+var html_1 = __webpack_require__(2);
var Keymanager_1 = __webpack_require__(13);
var view_1 = __webpack_require__(4);
var ts_data_1 = __webpack_require__(7);
-var types_1 = __webpack_require__(22);
+var types_1 = __webpack_require__(23);
var Navbar = /** @class */ (function (_super) {
__extends(Navbar, _super);
function Navbar(element, config) {
@@ -12037,10 +13258,10 @@ var Navbar = /** @class */ (function (_super) {
_this.data = new ts_data_1.TreeCollection({}, _this.events);
}
_this._documentClick = function (e) {
- if (html_1.locate(e, "dhx_widget_id") !== _this._uid && _this._documentHaveListener) {
+ if (_this._documentHaveListener) {
document.removeEventListener("click", _this._documentClick);
_this._documentHaveListener = false;
- _this._close();
+ _this._close(e);
}
};
_this._currentRoot = _this.data.getRoot();
@@ -12063,6 +13284,12 @@ var Navbar = /** @class */ (function (_super) {
Navbar.prototype.enable = function (ids) {
this._setProp(ids, "disabled", false);
};
+ Navbar.prototype.isDisabled = function (id) {
+ var item = this.data.getItem(id);
+ if (item) {
+ return item.disabled || false;
+ }
+ };
Navbar.prototype.show = function (ids) {
this._setProp(ids, "hidden", false);
};
@@ -12077,8 +13304,11 @@ var Navbar = /** @class */ (function (_super) {
Navbar.prototype._customHandlers = function () {
return {};
};
- Navbar.prototype._close = function () {
+ Navbar.prototype._close = function (e) {
var _this = this;
+ if (!this._popupActive || !this.events.fire(types_1.NavigationBarEvents.beforeHide, [this._activeMenu, e])) {
+ return;
+ }
if (this._activeParents) {
this._activeParents.forEach(function (parentId) { return _this.data.exists(parentId) && _this.data.update(parentId, { $activeParent: false }); });
}
@@ -12086,14 +13316,16 @@ var Navbar = /** @class */ (function (_super) {
this._isActive = false;
}
clearTimeout(this._currentTimeout);
+ this._popupActive = false;
this._activeMenu = null;
+ this.events.fire(types_1.NavigationBarEvents.afterHide, [e]);
this.paint();
};
Navbar.prototype._init = function () {
var _this = this;
var render = function () { return dom_1.el("div", {
dhx_widget_id: _this._uid,
- class: "dhx_" + (_this._isContextMenu ? " dhx_context-menu" : ""),
+ class: (_this._isContextMenu ? " dhx_context-menu" : "") + " " + (_this.config.css ? _this.config.css.split(" ").map(function (i) { return i + "--context-menu"; }).join(" ") : ""),
onmousemove: _this._handlers.onmousemove,
onmouseleave: _this._handlers.onmouseleave,
onclick: _this._handlers.onclick,
@@ -12123,16 +13355,27 @@ var Navbar = /** @class */ (function (_super) {
}
var id = elem.getAttribute("dhx_id");
if (_this._activeMenu !== id) {
- _this._activeMenu = id;
if (_this.data.haveItems(id)) {
var position = html_1.getRealPosition(elem);
_this.data.update(id, { $position: position }, false);
}
- _this._activeItemChange(id);
+ _this._activeItemChange(id, e);
}
- }, onmouseleave: function () {
+ }, onmouseleave: function (e) {
if (_this.config.navigationType !== types_1.NavigationType.click) { // maybe all time when mouse leave close menu
- _this._activeItemChange(null);
+ if (_this._popupActive) {
+ var element = html_1.locateNode(e, "dhx_id", "relatedTarget");
+ if (element) {
+ var id = element.getAttribute("dhx_id");
+ if (!_this.data.getItem(id)) {
+ _this._close(e);
+ }
+ }
+ else {
+ _this._close(e);
+ }
+ }
+ _this._activeItemChange(null, e);
}
}, onclick: function (e) {
var element = html_1.locateNode(e);
@@ -12146,17 +13389,15 @@ var Navbar = /** @class */ (function (_super) {
}
if (_this.data.haveItems(id)) {
if (id === _this._currentRoot) {
- _this._close();
return;
}
if (!_this._isActive) {
_this._isActive = true;
}
_this._setRoot(id);
- _this._activeMenu = id;
var position = html_1.getRealPosition(element);
_this.data.update(id, { $position: position }, false);
- _this._activeItemChange(id);
+ _this._activeItemChange(id, e);
}
else {
switch (item.type) {
@@ -12177,7 +13418,7 @@ var Navbar = /** @class */ (function (_super) {
_this.events.fire(types_1.NavigationBarEvents.click, [id, e]);
// missed break for trigger close
default:
- _this._close();
+ _this._close(e);
}
}
}, onmousedown: function (e) {
@@ -12305,6 +13546,7 @@ var Navbar = /** @class */ (function (_super) {
return null;
}
var item = _this.data.getItem(itemId) || _this._rootItem; // for root item
+ _this._popupActive = true;
return dom_1.el("ul", {
class: "dhx_widget dhx_menu" + (_this.config.menuCss ? " " + _this.config.menuCss : ""),
_key: itemId,
@@ -12342,9 +13584,9 @@ var Navbar = /** @class */ (function (_super) {
this.data.update(item.id, { active: !item.active });
}
this.events.fire(types_1.NavigationBarEvents.click, [id, e]);
- this._close();
+ this._close(e);
};
- Navbar.prototype._activeItemChange = function (id) {
+ Navbar.prototype._activeItemChange = function (id, e) {
var _this = this;
if (this._activeParents) {
var parentIds_1 = this._getParents(id, this._currentRoot);
@@ -12358,13 +13600,14 @@ var Navbar = /** @class */ (function (_super) {
this._listenOuterClick();
}
if (id && this.data.haveItems(id)) {
- this.events.fire(types_1.NavigationBarEvents.openMenu, [id]);
+ if (this._activeMenu !== id || !this._popupActive) {
+ this.events.fire(types_1.NavigationBarEvents.openMenu, [id]);
+ }
this._activeMenu = id;
clearTimeout(this._currentTimeout);
this.paint();
}
else {
- this._activeMenu = id;
clearTimeout(this._currentTimeout);
this._currentTimeout = setTimeout(function () { return _this.paint(); }, 400);
}
@@ -12379,8 +13622,8 @@ var Navbar = /** @class */ (function (_super) {
});
};
Navbar.prototype._setProp = function (id, key, value) {
- var _this = this;
var _a;
+ var _this = this;
if (Array.isArray(id)) {
id.forEach(function (itemId) {
var _a;
@@ -12411,23 +13654,23 @@ function addInGroups(groups, item) {
/***/ }),
-/* 106 */
+/* 110 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var button_1 = __webpack_require__(107);
-var navItem_1 = __webpack_require__(108);
-var customHTMLButton_1 = __webpack_require__(109);
-var imageButton_1 = __webpack_require__(110);
-var input_1 = __webpack_require__(111);
-var menuItem_1 = __webpack_require__(112);
-var separator_1 = __webpack_require__(113);
-var spacer_1 = __webpack_require__(114);
-var title_1 = __webpack_require__(115);
-var types_1 = __webpack_require__(22);
-var helpers_1 = __webpack_require__(23);
+var button_1 = __webpack_require__(111);
+var navItem_1 = __webpack_require__(112);
+var customHTMLButton_1 = __webpack_require__(113);
+var imageButton_1 = __webpack_require__(114);
+var input_1 = __webpack_require__(115);
+var menuItem_1 = __webpack_require__(116);
+var separator_1 = __webpack_require__(117);
+var spacer_1 = __webpack_require__(118);
+var title_1 = __webpack_require__(119);
+var types_1 = __webpack_require__(23);
+var helpers_1 = __webpack_require__(24);
function itemfactory(item, events, widgetName, props) {
switch (item.type) {
case types_1.ItemType.navItem:
@@ -12448,7 +13691,7 @@ function itemfactory(item, events, widgetName, props) {
case types_1.ItemType.menuItem:
return menuItem_1.menuItem(item, widgetName, props.asMenuItem);
case types_1.ItemType.customHTMLButton:
- return customHTMLButton_1.customHTMLButton(item, widgetName);
+ return customHTMLButton_1.customHTMLButton(item, widgetName, props.asMenuItem);
case types_1.ItemType.block:
default:
throw new Error("unknown item type " + item.type);
@@ -12467,7 +13710,7 @@ function createFactory(_a) {
return null;
}
if (!item.type || item.type === "button" || item.type === "navItem" || item.type === "menuItem") {
- if (!item.value && !item.icon) {
+ if (!item.value && !item.icon && !item.html) {
return null;
}
}
@@ -12478,13 +13721,18 @@ function createFactory(_a) {
if (item.type === types_1.ItemType.imageButton && widgetName !== "ribbon") {
item.active = false;
}
- if (asMenuItem && item.type !== types_1.ItemType.spacer && item.type !== types_1.ItemType.separator) {
+ if (asMenuItem &&
+ item.type !== types_1.ItemType.spacer &&
+ item.type !== types_1.ItemType.separator &&
+ item.type !== types_1.ItemType.customHTML) {
item.type = types_1.ItemType.menuItem;
}
if (data.haveItems(item.id)) {
normalizeOpenIcon(widgetName, item, data);
}
- return helpers_1.navbarComponentMixin(widgetName, item, asMenuItem, itemfactory(item, events, widgetName, { asMenuItem: asMenuItem, collapsed: widgetName !== "sidebar" || config.collapsed }));
+ var itemVNode = item.type !== types_1.ItemType.customHTML &&
+ itemfactory(item, events, widgetName, { asMenuItem: asMenuItem, collapsed: widgetName !== "sidebar" || config.collapsed });
+ return helpers_1.navbarComponentMixin(widgetName, item, asMenuItem, itemVNode);
};
}
exports.createFactory = createFactory;
@@ -12523,24 +13771,27 @@ function normalizeOpenIcon(widgetName, item, data) {
/***/ }),
-/* 107 */
+/* 111 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var helpers_1 = __webpack_require__(23);
+var helpers_1 = __webpack_require__(24);
function button(item, widgetName) {
var isIconButton = item.icon && !item.value;
var counterClass = isIconButton ? " dhx_navbar-count--absolute" : " dhx_navbar-count--button-inline";
return dom_1.el("button.dhx_button", {
class: helpers_1.getNavbarButtonCSS(item, widgetName),
dhx_id: item.id,
- disabled: item.disabled
+ disabled: item.disabled,
+ type: "button"
}, [
item.icon ? helpers_1.getIcon(item.icon, "button") : null,
- item.value && dom_1.el("span.dhx_button__text", item.value),
+ item.html ?
+ dom_1.el("div.dhx_button__text", { ".innerHTML": item.html }) :
+ item.value && dom_1.el("span.dhx_button__text", item.value),
item.count > 0 && helpers_1.getCount(item, counterClass, isIconButton),
item.value && item.$openIcon ? dom_1.el("span.dhx_button__icon.dhx_button__icon--menu.dxi.dxi-menu-right") : null,
item.loading && dom_1.el("span.dhx_button__loading", [
@@ -12552,14 +13803,14 @@ exports.button = button;
/***/ }),
-/* 108 */
+/* 112 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var helpers_1 = __webpack_require__(23);
+var helpers_1 = __webpack_require__(24);
function navItem(item, widgetName, collapsed) {
var baseClass = " dhx_" + widgetName + "-button";
return dom_1.el("button", {
@@ -12572,16 +13823,21 @@ function navItem(item, widgetName, collapsed) {
(!item.value && item.icon ? baseClass + "--icon" : "") +
(item.css ? " " + item.css : ""),
dhx_id: item.id,
- disabled: item.disabled
+ disabled: item.disabled,
+ type: "button"
}, [
item.icon && dom_1.el("span", {
class: item.icon + baseClass + "__icon"
}),
- item.value && dom_1.el("span", {
+ item.html && dom_1.el("div", {
+ "class": baseClass.trim() + "__html",
+ ".innerHTML": item.html
+ }),
+ !item.html && item.value && dom_1.el("span", {
class: baseClass.trim() + "__text"
}, item.value),
item.count > 0 && helpers_1.getCount(item, baseClass + "__count", collapsed),
- item.value && item.$openIcon && dom_1.el("span.dxi.dxi-menu-right", {
+ item.$openIcon && dom_1.el("span.dxi.dxi-menu-right", {
class: baseClass + "__caret"
})
]);
@@ -12590,16 +13846,19 @@ exports.navItem = navItem;
/***/ }),
-/* 109 */
+/* 113 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-function customHTMLButton(item, widgetName) {
+function customHTMLButton(item, widgetName, asMenuItem) {
+ var baseClass = asMenuItem ? " dhx_button dhx_menu-button" : " dhx_button dhx_nav-menu-button";
return dom_1.el("button", {
+ "class": "dhx_custom-button" + baseClass + (item.$activeParent ? baseClass + "--active" : ""),
"dhx_id": item.id,
+ "type": "button",
".innerHTML": item.html
}, item.html ? "" : item.value);
}
@@ -12607,14 +13866,14 @@ exports.customHTMLButton = customHTMLButton;
/***/ }),
-/* 110 */
+/* 114 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var helpers_1 = __webpack_require__(23);
+var helpers_1 = __webpack_require__(24);
function imageButton(item, widgetName) {
var baseClass = "dhx_" + widgetName + "-button-image";
var isRibbon = widgetName === "ribbon";
@@ -12624,13 +13883,19 @@ function imageButton(item, widgetName) {
(isRibbon && item.$openIcon ? " " + baseClass + "--select" : "") +
(item.active ? " " + baseClass + "--active" : ""),
dhx_id: item.id,
+ type: "button"
}, [
isRibbon && item.value && item.$openIcon && dom_1.el("span.dxi.dxi-menu-right", {
class: baseClass + "__caret"
}),
- item.value && dom_1.el("span", {
- class: baseClass + "__text",
- }, item.value),
+ item.html ?
+ dom_1.el("div", {
+ "class": baseClass + "__text",
+ ".innerHTML": item.html
+ }) :
+ item.value && dom_1.el("span", {
+ class: baseClass + "__text",
+ }, item.value),
item.src && dom_1.el("span", {
class: baseClass + "__image",
style: { backgroundImage: "url(" + item.src + ")" }
@@ -12642,14 +13907,14 @@ exports.imageButton = imageButton;
/***/ }),
-/* 111 */
+/* 115 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(22);
+var types_1 = __webpack_require__(23);
function onBlur(events, id) {
events.fire(types_1.NavigationBarEvents.inputBlur, [id]);
}
@@ -12663,7 +13928,7 @@ function input(item, events, widgetName) {
},
}, [
dom_1.el("label.dhx_label", { for: item.id }, item.label),
- dom_1.el(".dhx_input-wrapper", [
+ dom_1.el(".dhx_input__wrapper", [
dom_1.el("input.dhx_input", {
placeholder: item.placeholder,
class: item.icon ? "dhx_input--icon-padding" : "",
@@ -12690,43 +13955,50 @@ exports.input = input;
/***/ }),
-/* 112 */
+/* 116 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var helpers_1 = __webpack_require__(23);
+var helpers_1 = __webpack_require__(24);
function menuItem(item, widgetName, asMenuItem) {
var baseClass = asMenuItem ? " dhx_menu-button" : " dhx_nav-menu-button";
return dom_1.el("button", {
class: "dhx_button" + baseClass +
(item.disabled ? baseClass + "--disabled" : "") +
- (item.$activeParent ? baseClass + "--active" : ""),
+ (item.active || item.$activeParent ? baseClass + "--active" : ""),
disabled: item.disabled,
dhx_id: item.id,
+ type: "button"
}, asMenuItem ? [
- item.icon || item.value ? dom_1.el("span.dhx_menu-button__block.dhx_menu-button__block--left", [
+ item.icon || item.value || item.html ? dom_1.el("span.dhx_menu-button__block.dhx_menu-button__block--left", [
item.icon && dom_1.el("span.dhx_menu-button__icon", {
class: item.icon
}),
- item.value && dom_1.el("span.dhx_menu-button__text", item.value),
+ item.html ?
+ dom_1.el("div.dhx_menu-button__text", { ".innerHTML": item.html }) :
+ item.value && dom_1.el("span.dhx_menu-button__text", item.value),
]) : null,
(item.count > 0 || item.hotkey || item.items) ? dom_1.el("span.dhx_menu-button__block.dhx_menu-button__block--right", [
item.count > 0 && helpers_1.getCount(item, " dhx_menu-button__count", false),
item.hotkey && dom_1.el("span.dhx_menu-button__hotkey", item.hotkey),
item.items && dom_1.el("span.dhx_menu-button__caret.dxi.dxi-menu-right"),
]) : null
- ] : [
- item.value && dom_1.el("span.dhx_nav-menu-button__text", item.value),
- ]);
+ ] :
+ [
+ item.icon && dom_1.el("span.dhx_menu-button__icon", {
+ class: item.icon
+ }),
+ item.html ? dom_1.el("div.dhx_menu-button__text", { ".innerHTML": item.html }) : item.value && dom_1.el("span.dhx_nav-menu-button__text", item.value),
+ ]);
}
exports.menuItem = menuItem;
/***/ }),
-/* 113 */
+/* 117 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -12739,20 +14011,20 @@ exports.separator = separator;
/***/ }),
-/* 114 */
+/* 118 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-function spacer(_item, widgetName) {
+function spacer(item, widgetName) {
return null;
}
exports.spacer = spacer;
/***/ }),
-/* 115 */
+/* 119 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -12761,14 +14033,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
function title(item, widgetName) {
return dom_1.el("span", {
- class: "dhx_navbar-title" + " dhx_navbar-title--" + widgetName,
- }, item.value);
+ "class": "dhx_navbar-title" + " dhx_navbar-title--" + widgetName,
+ ".innerHTML": item.html
+ }, !item.html ? item.value : null);
}
exports.title = title;
/***/ }),
-/* 116 */
+/* 120 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -12799,13 +14072,13 @@ exports.layoutConfigWithoutTopbar = {
/***/ }),
-/* 117 */
+/* 121 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var en_1 = __webpack_require__(35);
+var en_1 = __webpack_require__(37);
var basis = [
"byte",
"kilobyte",
@@ -13037,7 +14310,7 @@ exports.isImage = isImage;
/***/ }),
-/* 118 */
+/* 122 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -13058,8 +14331,8 @@ var __extends = (this && this.__extends) || (function () {
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
var view_1 = __webpack_require__(4);
-var en_1 = __webpack_require__(35);
-var types_1 = __webpack_require__(26);
+var en_1 = __webpack_require__(37);
+var types_1 = __webpack_require__(27);
var ProgressBar = /** @class */ (function (_super) {
__extends(ProgressBar, _super);
function ProgressBar(events, config) {
@@ -13109,7 +14382,7 @@ exports.ProgressBar = ProgressBar;
/***/ }),
-/* 119 */
+/* 123 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -13162,7 +14435,7 @@ exports.ReadStackPreview = ReadStackPreview;
/***/ }),
-/* 120 */
+/* 124 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -13195,24 +14468,29 @@ Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(1);
var ts_data_1 = __webpack_require__(7);
var dom_1 = __webpack_require__(0);
-var events_1 = __webpack_require__(2);
+var events_1 = __webpack_require__(3);
var Keymanager_1 = __webpack_require__(13);
-var types_1 = __webpack_require__(21);
+var types_1 = __webpack_require__(22);
var view_1 = __webpack_require__(4);
-var Selection_1 = __webpack_require__(61);
-var html_1 = __webpack_require__(3);
-var types_2 = __webpack_require__(37);
-var editors_1 = __webpack_require__(121);
+var Selection_1 = __webpack_require__(63);
+var html_1 = __webpack_require__(2);
+var types_2 = __webpack_require__(39);
+var editors_1 = __webpack_require__(125);
+var helpers_1 = __webpack_require__(127);
var List = /** @class */ (function (_super) {
__extends(List, _super);
function List(node, config) {
if (config === void 0) { config = {}; }
var _this = _super.call(this, node, core_1.extend({
- itemHeight: config.virtual ? 34 : config.itemHeight || null,
+ itemHeight: config.virtual ? 37 : config.itemHeight || null,
keyNavigation: false,
multiselectionMode: config.multiselectionMode ? config.multiselectionMode : "click",
- editing: false
+ editable: false
}, config)) || this;
+ if (_this.config.multiselectionMode === "ctrlClick") {
+ _this.config.multiselection = "ctrlClick"; // TODO: remove sute_7.0
+ }
+ _this.config.editable = _this.config.editable || _this.config.editing; // TODO: remove sute_7.0
if (Array.isArray(_this.config.data)) {
_this.events = new events_1.EventSystem(_this);
_this.data = new ts_data_1.DataCollection({}, _this.events);
@@ -13228,8 +14506,7 @@ var List = /** @class */ (function (_super) {
_this.data = new ts_data_1.DataCollection({}, _this.events);
}
_this.selection = new Selection_1.Selection({
- multiselection: _this.config.multiselection,
- multiselectionMode: _this.config.multiselectionMode,
+ multiselection: _this.config.multiselection
}, _this.data);
_this._getHotkeys();
var updater = function (updateObj) { return function (id, ids) {
@@ -13242,12 +14519,12 @@ var List = /** @class */ (function (_super) {
}
}; };
_this.events.on(ts_data_1.DataEvents.change, function () {
- if (_this.config.virtual) {
- _this._updateVirtual(0);
- }
_this.paint();
});
_this.events.on(ts_data_1.DataEvents.load, function () {
+ if (_this.config.virtual) {
+ _this._updateVirtual(0);
+ }
_this.data.map(function (item) {
if (item.$selected) {
_this.selection.add(item.id);
@@ -13261,14 +14538,14 @@ var List = /** @class */ (function (_super) {
_this.events.on(ts_data_1.DragEvents.dragEnd, updater({ $dragtarget: undefined }));
_this.events.on(types_2.ListEvents.afterEditEnd, function (value, id) {
var item = _this.data.getItem(id);
- _this.data.update(id, __assign({}, item, { value: value }));
+ _this.data.update(id, __assign(__assign({}, item), { value: value }));
_this._edited = null;
_this._getHotkeys();
_this.paint();
});
_this.selection.events.on(types_1.SelectionEvents.afterSelect, function (id) {
if (id) {
- _this.setFocusIndex(_this.data.getIndex(id));
+ _this.setFocus(id);
}
});
_this._handlers = {
@@ -13292,14 +14569,14 @@ var List = /** @class */ (function (_super) {
if (!id) {
return;
}
- _this.events.fire(types_2.ListEvents.contextmenu, [id, e]);
+ _this.events.fire(types_2.ListEvents.itemRightClick, [id, e]);
+ _this.events.fire(types_2.ListEvents.contextmenu, [id, e]); // TODO: remove sute_7.0
},
onclick: function (e) {
var id = html_1.locate(e);
if (!id) {
return;
}
- _this.setFocusIndex(_this.data.getIndex(id));
_this.selection.add(id, e.ctrlKey || e.metaKey, e.shiftKey);
_this.events.fire(types_2.ListEvents.click, [id, e]);
},
@@ -13308,12 +14585,35 @@ var List = /** @class */ (function (_super) {
if (!id) {
return;
}
- if (_this.config.editing) {
- _this.edit(id);
+ if (_this.config.editable) {
+ _this.editItem(id);
}
_this.events.fire(types_2.ListEvents.doubleClick, [id, e]);
},
- onscroll: function (e) { return _this.config.virtual ? _this._updateVirtual(e.target.scrollTop) : null; }
+ onscroll: function (e) {
+ if (_this.config.virtual) {
+ // [TODO] Hide loading data to render
+ _this._lazyLoad(e);
+ _this._updateVirtual(e.target.scrollTop);
+ }
+ },
+ onmouseover: function (e) {
+ var id = html_1.locate(e);
+ var element = html_1.locateNode(e, "dhx_id", "relatedTarget");
+ if (!element && id) {
+ _this.events.fire(types_2.ListEvents.itemMouseOver, [id, e]);
+ return;
+ }
+ else if (!element) {
+ return;
+ }
+ var attr = element.getAttribute("dhx_id") ? element.getAttribute("dhx_id") : null;
+ var prevId = attr ? attr : "";
+ if (!id || id === prevId) {
+ return;
+ }
+ _this.events.fire(types_2.ListEvents.itemMouseOver, [id, e]);
+ }
};
if (_this.config.dragMode) {
ts_data_1.dragManager.setItem(_this._uid, _this);
@@ -13328,7 +14628,8 @@ var List = /** @class */ (function (_super) {
didMount: function (vm) {
if (!_this.config.height) {
var element = vm.node.el;
- _this.config.height = (element && element.parentNode && element.parentNode.offsetHeight) || 200;
+ _this.config.height = (element && element.parentNode &&
+ element.parentNode.offsetHeight) || "100%";
}
if (_this.config.virtual) {
_this._visibleHeight = _this.config.height;
@@ -13341,7 +14642,7 @@ var List = /** @class */ (function (_super) {
_this.mount(node, view);
return _this;
}
- List.prototype.edit = function (id) {
+ List.prototype.editItem = function (id) {
this._edited = id;
if (!this.data.getItem(this._edited) || !this.events.fire(types_2.ListEvents.beforeEditStart, [id])) {
this._edited = null;
@@ -13351,45 +14652,18 @@ var List = /** @class */ (function (_super) {
this.paint();
this.events.fire(types_2.ListEvents.afterEditStart, [id]);
};
- List.prototype.setFocusIndex = function (index) {
- if (index < 0 || index > this.data.getLength() - 1) {
- return;
- }
- this._focusIndex = index;
- var rootView = this.getRootView();
- if (!rootView || !rootView.node || !rootView.node.el) {
- return;
- }
- var listEl = this.getRootNode();
- if (!listEl) {
- return;
- }
- if (this.config.virtual) {
- var position = index * this.config.itemHeight;
- if (position >= this._visibleHeight + this._topOffset || position < this._topOffset) {
- listEl.scrollTo(0, position);
- }
- }
- else {
- var listItem = listEl.children[index];
- if (!listItem) {
- return;
- }
- if (listItem.offsetTop >= listEl.scrollTop + listEl.clientHeight - listItem.clientHeight) {
- listEl.scrollTop = listItem.offsetTop - listEl.clientHeight + listItem.clientHeight;
- }
- else if (listItem.offsetTop < listEl.scrollTop) {
- listEl.scrollTop = listItem.offsetTop;
- }
- }
- this.events.fire(types_2.ListEvents.focusChange, [this._focusIndex, this.data.getId(this._focusIndex)]);
- this.paint();
- };
List.prototype.getFocusItem = function () {
- return this.data.getId(this._focusIndex);
+ return this.data.getItem(this.data.getId(this._focusIndex));
};
- List.prototype.getFocusIndex = function () {
- return this._focusIndex;
+ List.prototype.setFocus = function (id) {
+ var index = this.data.getIndex(id);
+ this._setFocusIndex(index);
+ };
+ List.prototype.getFocus = function () {
+ var id = this.data.getId(this._focusIndex);
+ if (id) {
+ return id;
+ }
};
List.prototype.destructor = function () {
if (this._navigationDestructor) {
@@ -13400,6 +14674,18 @@ var List = /** @class */ (function (_super) {
}
this.unmount();
};
+ // TODO: remove sute_7.0
+ List.prototype.getFocusIndex = function () {
+ return this._focusIndex;
+ };
+ // TODO: remove sute_7.0
+ List.prototype.setFocusIndex = function (index) {
+ this._setFocusIndex(index);
+ };
+ // TODO: remove sute_7.0
+ List.prototype.edit = function (id) {
+ this.editItem(id);
+ };
List.prototype._renderItem = function (item, index) {
var html = (this.config.template && this.config.template(item)) || item.html;
var focus = index === this._focusIndex;
@@ -13451,41 +14737,80 @@ var List = /** @class */ (function (_super) {
var _this = this;
var kids = this.data.map(function (obj, index) { return _this._renderItem(obj, index); });
return dom_1.el("ul.dhx_widget.dhx_list", __assign({ style: {
- "max-height": this.config.height + "px",
+ "min-height": this.config.itemHeight,
+ "max-height": this.config.height,
"position": "relative"
- }, class: this.config.css +
+ }, class: (this.config.css ? this.config.css : "") +
(this.config.multiselection && this.selection.getItem() ? " dhx_no-select--pointer" : ""), dhx_widget_id: this._uid }, this._handlers), kids);
};
List.prototype._renderVirtualList = function () {
var _this = this;
- var kids = this.data.mapRange(this._range[0], this._range[1], function (obj, index) { return _this._renderItem(obj, index); });
+ var kids = this.data.mapRange(this._range[0], this._range[1], function (obj, index) {
+ return _this._renderItem(obj, index);
+ });
return dom_1.el(".dhx_widget.dhx_virtual-list-wrapper", __assign({ dhx_widget_id: this._uid, style: {
+ "min-height": this.config.itemHeight,
"max-height": this._visibleHeight
} }, this._handlers), [
dom_1.el("ul.dhx_list.dhx_list--virtual", {
- class: this.config.css +
+ class: (this.config.css ? this.config.css : "") +
(this.config.multiselection && this.selection.getItem() ? " dhx_no-select--pointer" : ""),
style: {
- "height": this._getHeight() + "px",
- "padding-top": this._topOffset + "px"
+ "height": this._getHeight() + helpers_1.defineUnit(this.config.itemHeight),
+ "padding-top": this._topOffset
},
}, kids)
]);
};
+ List.prototype._setFocusIndex = function (index) {
+ if (index < 0 || index > this.data.getLength() - 1) {
+ return;
+ }
+ this._focusIndex = index;
+ var rootView = this.getRootView();
+ if (!rootView || !rootView.node || !rootView.node.el) {
+ return;
+ }
+ var listEl = this.getRootNode();
+ if (!listEl) {
+ return;
+ }
+ if (this.config.virtual) {
+ var position = index * helpers_1.defineValue(this.config.itemHeight);
+ if (position >= helpers_1.defineValue(this._visibleHeight) + this._topOffset || position < this._topOffset) {
+ listEl.scrollTo(0, position);
+ }
+ }
+ else {
+ var listItem = listEl.children[index];
+ if (!listItem) {
+ return;
+ }
+ if (listItem.offsetTop >= listEl.scrollTop + listEl.clientHeight - listItem.clientHeight) {
+ listEl.scrollTop = listItem.offsetTop - listEl.clientHeight + listItem.clientHeight;
+ }
+ else if (listItem.offsetTop < listEl.scrollTop) {
+ listEl.scrollTop = listItem.offsetTop;
+ }
+ }
+ this.events.fire(types_2.ListEvents.focusChange, [this._focusIndex, this.data.getId(this._focusIndex)]);
+ this.paint();
+ };
List.prototype._updateVirtual = function (position) {
var overscanCount = 5;
var totalHeight = this._getHeight();
- if (position > totalHeight - this._visibleHeight) {
- position = totalHeight - this._visibleHeight;
+ if (position > totalHeight - helpers_1.defineValue(this._visibleHeight)) {
+ position = totalHeight - helpers_1.defineValue(this._visibleHeight);
}
- var count = Math.floor(this._visibleHeight / this.config.itemHeight) + overscanCount;
- var index = Math.floor(position / this.config.itemHeight);
+ var count = Math.floor(helpers_1.defineValue(this._visibleHeight) / helpers_1.defineValue(this.config.itemHeight))
+ + overscanCount;
+ var index = Math.floor(position / helpers_1.defineValue(this.config.itemHeight));
this._range = [index, count + index];
this._topOffset = position;
this.paint();
};
List.prototype._getHeight = function () {
- return this.data.getLength() * this.config.itemHeight;
+ return this.data.getLength() * helpers_1.defineValue(this.config.itemHeight);
};
List.prototype._getHotkeys = function () {
var _this = this;
@@ -13506,9 +14831,9 @@ var List = /** @class */ (function (_super) {
e.preventDefault();
fn();
}; };
- this._navigationDestructor = Keymanager_1.addHotkeys({
- "arrowdown": preventEvent(function () { return _this.setFocusIndex(_this._focusIndex + 1); }),
- "arrowup": preventEvent(function () { return _this.setFocusIndex(_this._focusIndex - 1); }),
+ var handlers = {
+ "arrowDown": preventEvent(function () { return _this.setFocusIndex(_this._focusIndex + 1); }),
+ "arrowUp": preventEvent(function () { return _this.setFocusIndex(_this._focusIndex - 1); }),
"enter": function (e) {
var id = _this.data.getId(_this._focusIndex);
_this.selection.add(id);
@@ -13523,29 +14848,40 @@ var List = /** @class */ (function (_super) {
var id = _this.data.getId(_this._focusIndex);
_this.selection.add(id, true, false);
_this.events.fire(types_2.ListEvents.click, [id, e]);
- },
- "enter+meta": function (e) {
- var id = _this.data.getId(_this._focusIndex);
- _this.selection.add(id, true, false);
- _this.events.fire(types_2.ListEvents.click, [id, e]);
}
- }, keyNavigation);
+ };
+ if (html_1.isIE()) {
+ handlers = __assign({ up: handlers.arrowUp, down: handlers.arrowDown }, handlers);
+ delete handlers.arrowUp;
+ delete handlers.arrowDown;
+ }
+ this._navigationDestructor = Keymanager_1.addHotkeys(handlers, keyNavigation);
}
}
};
+ List.prototype._lazyLoad = function (e) {
+ var y = e.target.scrollTop;
+ var from = Math.round(y / helpers_1.defineValue(this.config.itemHeight));
+ var onScreenCount = this.config.height / helpers_1.defineValue(this.config.itemHeight);
+ var proxy = this.data.dataProxy;
+ if (proxy && proxy.config && !this.data.isDataLoaded(from, onScreenCount + from + proxy.config.prepare)) {
+ proxy.updateUrl(null, { from: from, limit: proxy.config.limit });
+ this.data.load(proxy);
+ }
+ };
return List;
}(view_1.View));
exports.List = List;
/***/ }),
-/* 121 */
+/* 125 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var InputEditor_1 = __webpack_require__(122);
+var InputEditor_1 = __webpack_require__(126);
function getEditor(item, list) {
return new InputEditor_1.InputEditor(item, list);
}
@@ -13553,14 +14889,14 @@ exports.getEditor = getEditor;
/***/ }),
-/* 122 */
+/* 126 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(37);
+var types_1 = __webpack_require__(39);
var InputEditor = /** @class */ (function () {
function InputEditor(item, list) {
var _this = this;
@@ -13592,8 +14928,8 @@ var InputEditor = /** @class */ (function () {
InputEditor.prototype.toHTML = function () {
this._mode = true;
var itemHeight = this._config.itemHeight;
- return dom_1.el(".dhx_input-wrapper", {}, [
- dom_1.el("div.dhx_input-container", {}, [
+ return dom_1.el(".dhx_input__wrapper", {}, [
+ dom_1.el("div.dhx_input__container", {}, [
dom_1.el("input.dhx_input", {
class: this._item.css ? " " + this._item.css : "",
style: {
@@ -13636,7 +14972,34 @@ exports.InputEditor = InputEditor;
/***/ }),
-/* 123 */
+/* 127 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", { value: true });
+function defineValue(property) {
+ if (property) {
+ var prop = property.toString().trim();
+ if (prop.indexOf("calc") === -1) {
+ return parseInt(prop.split(/\D+/g)[0], null);
+ }
+ }
+}
+exports.defineValue = defineValue;
+function defineUnit(property) {
+ if (property) {
+ var prop = property.toString().trim();
+ if (prop.indexOf("calc") === -1) {
+ return prop.slice(prop.split(/\D+/g)[0].length);
+ }
+ }
+}
+exports.defineUnit = defineUnit;
+
+
+/***/ }),
+/* 128 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -13665,17 +15028,24 @@ var __assign = (this && this.__assign) || function () {
};
return __assign.apply(this, arguments);
};
+var __spreadArrays = (this && this.__spreadArrays) || function () {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+};
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(1);
var dom_1 = __webpack_require__(0);
-var events_1 = __webpack_require__(2);
+var events_1 = __webpack_require__(3);
var view_1 = __webpack_require__(4);
-var ts_timepicker_1 = __webpack_require__(29);
-var DateHelper_1 = __webpack_require__(128);
-var DateFormatter_1 = __webpack_require__(38);
-var helper_1 = __webpack_require__(129);
-var en_1 = __webpack_require__(39);
-var types_1 = __webpack_require__(66);
+var ts_timepicker_1 = __webpack_require__(30);
+var DateHelper_1 = __webpack_require__(133);
+var DateFormatter_1 = __webpack_require__(41);
+var helper_1 = __webpack_require__(134);
+var en_1 = __webpack_require__(42);
+var types_1 = __webpack_require__(68);
var Calendar = /** @class */ (function (_super) {
__extends(Calendar, _super);
function Calendar(container, config) {
@@ -13686,7 +15056,10 @@ var Calendar = /** @class */ (function (_super) {
dateFormat: (window && window.dhx && window.dhx.dateFormat),
width: "250px"
}, config)) || this;
+ _this._selected = [];
_this.events = new events_1.EventSystem();
+ _this.config.disabledDates = _this.config.disabledDates || _this.config.block; // TODO: remove sute_7.0
+ _this.config.mode = _this.config.mode || _this.config.view; // TODO: remove sute_7.0
if (!_this.config.dateFormat) {
if (_this.config.timePicker) {
if (_this.config.timeFormat === 12) {
@@ -13701,18 +15074,18 @@ var Calendar = /** @class */ (function (_super) {
}
}
if (_this.config.value) {
- _this._selected = DateHelper_1.DateHelper.toDateObject(_this.config.value, _this.config.dateFormat);
+ _this._setSelected(_this.config.value);
}
if (_this.config.date) {
_this._currentDate = DateHelper_1.DateHelper.toDateObject(_this.config.date, _this.config.dateFormat);
}
- else if (_this._selected) {
- _this._currentDate = new Date(_this._selected);
+ else if (_this._getSelected()) {
+ _this._currentDate = DateHelper_1.DateHelper.copy(_this._getSelected());
}
else {
_this._currentDate = new Date();
}
- switch (_this.config.view) {
+ switch (_this.config.mode) {
case types_1.ViewMode.months:
_this._currentViewMode = types_1.ViewMode.months;
break;
@@ -13720,64 +15093,75 @@ var Calendar = /** @class */ (function (_super) {
_this._currentViewMode = types_1.ViewMode.years;
break;
default:
- _this._currentViewMode = types_1.ViewMode.days;
+ _this._currentViewMode = types_1.ViewMode.calendar;
}
_this._initHandlers();
if (_this.config.timePicker) {
- _this._timepicker = new ts_timepicker_1.Timepicker(null, { timeFormat: _this.config.timeFormat, actions: true });
- var initTime = _this._selected || new Date();
+ _this._timepicker = new ts_timepicker_1.Timepicker(null, { timeFormat: _this.config.timeFormat, controls: true });
+ var initTime = _this._getSelected() || new Date();
_this._timepicker.setValue(initTime);
_this._time = _this._timepicker.getValue();
- _this._timepicker.events.on(ts_timepicker_1.TimepickerEvents.close, function () {
+ _this._timepicker.events.on(ts_timepicker_1.TimepickerEvents.afterClose, function () {
_this._timepicker.setValue(_this._time);
- _this.showDate(null, types_1.ViewMode.days);
+ _this.showDate(null, types_1.ViewMode.calendar);
});
- _this._timepicker.events.on(ts_timepicker_1.TimepickerEvents.save, function () {
+ _this._timepicker.events.on(ts_timepicker_1.TimepickerEvents.apply, function () {
var _a = _this._timepicker.getValue(true), hour = _a.hour, minute = _a.minute, AM = _a.AM;
- var oldDate = _this._selected;
- var newDate = _this._selected = DateHelper_1.DateHelper.withHoursAndMinutes(_this._selected || new Date(), AM === false ? hour + 12 : hour, minute);
+ var oldDate = _this._getSelected();
+ var newDate = DateHelper_1.DateHelper.withHoursAndMinutes(_this._getSelected() || new Date(), hour, minute, AM);
if (_this.events.fire(types_1.CalendarEvents.beforeChange, [newDate, oldDate, true])) {
- _this._selected = newDate;
+ _this._selected[_this._selected.length - 1] = newDate;
_this.events.fire(types_1.CalendarEvents.change, [newDate, oldDate, true]);
}
_this._time = _this._timepicker.getValue();
- _this.showDate(null, types_1.ViewMode.days);
+ _this.showDate(null, types_1.ViewMode.calendar);
});
}
var render = function () { return _this._draw(); };
_this.mount(container, dom_1.create({ render: render }));
return _this;
}
- Calendar.prototype.setValue = function (date) {
- date = DateHelper_1.DateHelper.toDateObject(date, this.config.dateFormat);
- var oldDate = DateHelper_1.DateHelper.copy(this._selected);
+ Calendar.prototype.setValue = function (value) {
+ if (!value || value instanceof Array && value.length === 0) {
+ return false;
+ }
+ this._selected = [];
+ var currentDate = value instanceof Array ? value[0] : value;
+ var date = DateHelper_1.DateHelper.toDateObject(currentDate, this.config.dateFormat);
+ var oldDate = DateHelper_1.DateHelper.copy(this._getSelected());
if (!this.events.fire(types_1.CalendarEvents.beforeChange, [date, oldDate, false])) {
return false;
}
- this._selected = date;
- this._currentDate = DateHelper_1.DateHelper.copy(this._selected);
+ this._setSelected(value);
if (this._timepicker) {
this._timepicker.setValue(date);
this._time = this._timepicker.getValue();
}
+ this.showDate(this._getSelected());
this.events.fire(types_1.CalendarEvents.change, [date, oldDate, false]);
this.paint();
return true;
};
Calendar.prototype.getValue = function (asDateObject) {
- if (!this._selected) {
- return null;
- }
- if (asDateObject) {
- return DateHelper_1.DateHelper.copy(this._selected);
+ var _this = this;
+ if (!this._selected[0]) {
+ return "";
}
- else {
- return DateFormatter_1.getFormatedDate(this.config.dateFormat, this._selected);
+ if (this.config.range) {
+ return asDateObject
+ ? this._selected.map(function (date) { return DateHelper_1.DateHelper.copy(date); })
+ : this._selected.map(function (date) { return DateFormatter_1.getFormatedDate(_this.config.dateFormat, date); });
}
+ return asDateObject
+ ? DateHelper_1.DateHelper.copy(this._selected[0])
+ : DateFormatter_1.getFormatedDate(this.config.dateFormat, this._selected[0]);
+ };
+ Calendar.prototype.getCurrentMode = function () {
+ return this._currentViewMode;
};
Calendar.prototype.showDate = function (date, mode) {
if (date) {
- this._currentDate = date;
+ this._currentDate = DateHelper_1.DateHelper.copy(date);
}
if (mode) {
this._currentViewMode = mode;
@@ -13793,15 +15177,23 @@ var Calendar = /** @class */ (function (_super) {
}
this.unmount();
};
+ Calendar.prototype.clear = function () {
+ if (this.config.timePicker) {
+ this._timepicker.clear();
+ this._time = this._timepicker.getValue();
+ }
+ this._selected = [];
+ this.showDate(null, this.config.mode);
+ };
Calendar.prototype.link = function (targetCalendar) {
var _this = this;
if (this._linkedCalendar) {
this._unlink();
}
this._linkedCalendar = targetCalendar;
- var rawLowerData = this.getValue(true);
+ var rawLowerDate = this.getValue(true);
var rawUpperDate = targetCalendar.getValue(true);
- var lowerDate = rawLowerData && DateHelper_1.DateHelper.dayStart(rawLowerData);
+ var lowerDate = rawLowerDate && DateHelper_1.DateHelper.dayStart(rawLowerDate);
var upperDate = rawUpperDate && DateHelper_1.DateHelper.dayStart(rawUpperDate);
var rangeMark = function (date) {
if (lowerDate && upperDate) {
@@ -13821,13 +15213,16 @@ var Calendar = /** @class */ (function (_super) {
}
return positionInRange;
};
- if (!this.config.block || !this._linkedCalendar.config.block) {
- this.config.block = function (date) {
+ if (!this.config.$rangeMark || !this._linkedCalendar.config.$rangeMark) {
+ this.config.$rangeMark = this._linkedCalendar.config.$rangeMark = rangeMark;
+ }
+ if (!this.config.disabledDates || !this._linkedCalendar.config.disabledDates) {
+ this.config.disabledDates = function (date) {
if (upperDate) {
return date > upperDate;
}
};
- this._linkedCalendar.config.block = function (date) {
+ this._linkedCalendar.config.disabledDates = function (date) {
if (lowerDate) {
return date < lowerDate;
}
@@ -13835,9 +15230,6 @@ var Calendar = /** @class */ (function (_super) {
}
this.config.thisMonthOnly = true;
targetCalendar.config.thisMonthOnly = true;
- if (!this.config.$rangeMark || !this._linkedCalendar.config.$rangeMark) {
- this.config.$rangeMark = this._linkedCalendar.config.$rangeMark = rangeMark;
- }
this.events.on(types_1.CalendarEvents.change, function (date) {
lowerDate = DateHelper_1.DateHelper.dayStart(date);
_this._linkedCalendar.paint();
@@ -13852,7 +15244,7 @@ var Calendar = /** @class */ (function (_super) {
Calendar.prototype._unlink = function () {
if (this._linkedCalendar) {
this.config.$rangeMark = this._linkedCalendar.config.$rangeMark = null;
- this.config.block = this._linkedCalendar.config.block = null;
+ this.config.disabledDates = this._linkedCalendar.config.disabledDates = null;
this.events.detach(types_1.CalendarEvents.change, "link");
this._linkedCalendar.events.detach(types_1.CalendarEvents.change, "link");
this._linkedCalendar.paint();
@@ -13860,15 +15252,44 @@ var Calendar = /** @class */ (function (_super) {
this._linkedCalendar = null;
}
};
+ Calendar.prototype._setSelected = function (value) {
+ var _this = this;
+ var currentDate = value instanceof Array ? value[0] : value;
+ var date = DateHelper_1.DateHelper.toDateObject(currentDate, this.config.dateFormat);
+ if (value instanceof Array && this.config.range) {
+ var filterDate_1 = [];
+ value.forEach(function (element, index) {
+ if (index < 2) {
+ filterDate_1.push(DateHelper_1.DateHelper.toDateObject(element, _this.config.dateFormat));
+ }
+ });
+ if (filterDate_1.length === 2 && filterDate_1[0] < filterDate_1[1]) {
+ filterDate_1.forEach(function (element) { return _this._selected.push(element); });
+ }
+ else {
+ this._selected[0] = filterDate_1[0];
+ }
+ }
+ else {
+ this._selected[0] = date;
+ }
+ };
+ Calendar.prototype._getSelected = function () {
+ return this._selected[this._selected.length - 1];
+ };
Calendar.prototype._draw = function () {
switch (this._currentViewMode) {
- case types_1.ViewMode.days:
+ case types_1.ViewMode.calendar:
+ this.events.fire(types_1.CalendarEvents.modeChange, [types_1.ViewMode.calendar]);
return this._drawCalendar();
case types_1.ViewMode.months:
+ this.events.fire(types_1.CalendarEvents.modeChange, [types_1.ViewMode.months]);
return this._drawMonthSelector();
case types_1.ViewMode.years:
+ this.events.fire(types_1.CalendarEvents.modeChange, [types_1.ViewMode.years]);
return this._drawYearSelector();
case types_1.ViewMode.timepicker:
+ this.events.fire(types_1.CalendarEvents.modeChange, [types_1.ViewMode.timepicker]);
return this._drawTimepicker();
}
};
@@ -13878,37 +15299,48 @@ var Calendar = /** @class */ (function (_super) {
onclick: {
".dhx_calendar-year, .dhx_calendar-month, .dhx_calendar-day": function (_e, vn) {
var date = vn.attrs._date;
- var oldDate = DateHelper_1.DateHelper.copy(_this._selected);
+ var oldDate = DateHelper_1.DateHelper.copy(_this._getSelected());
switch (_this._currentViewMode) {
- case types_1.ViewMode.days:
- var mergedDate = _this.config.timePicker ? DateHelper_1.DateHelper.mergeHoursAndMinutes(date, _this._selected || _this._currentDate) : date;
+ case types_1.ViewMode.calendar:
+ var mergedDate = _this.config.timePicker
+ ? DateHelper_1.DateHelper.mergeHoursAndMinutes(date, _this._getSelected() || _this._currentDate)
+ : date;
if (!_this.events.fire(types_1.CalendarEvents.beforeChange, [mergedDate, oldDate, true])) {
return;
}
- _this._selected = mergedDate;
- _this.showDate(date);
+ if (_this.config.range && _this._selected.length === 1 && _this._selected[0] < mergedDate) {
+ _this._selected.push(mergedDate);
+ }
+ else {
+ _this._selected = [];
+ _this._selected[0] = mergedDate;
+ }
+ _this.showDate(_this._getSelected());
_this.events.fire(types_1.CalendarEvents.change, [date, oldDate, true]);
break;
case types_1.ViewMode.months:
- if (_this.config.view !== types_1.ViewMode.months) {
+ if (_this.config.mode !== types_1.ViewMode.months) {
DateHelper_1.DateHelper.setMonth(_this._currentDate, date);
- _this.showDate(null, types_1.ViewMode.days);
+ _this.showDate(null, types_1.ViewMode.calendar);
+ _this.events.fire(types_1.CalendarEvents.monthSelected, [date]);
}
else {
- var newDate = DateHelper_1.DateHelper.fromYearAndMonth(_this._currentDate.getFullYear() || _this._selected.getFullYear(), date);
+ var newDate = DateHelper_1.DateHelper.fromYearAndMonth(_this._currentDate.getFullYear() || _this._getSelected().getFullYear(), date);
if (!_this.events.fire(types_1.CalendarEvents.beforeChange, [newDate, oldDate, true])) {
return;
}
_this._currentDate = newDate;
- _this._selected = newDate;
- _this.events.fire(types_1.CalendarEvents.change, [_this._selected, oldDate, true]);
+ _this._selected[0] = newDate;
+ _this.events.fire(types_1.CalendarEvents.change, [_this._getSelected(), oldDate, true]);
+ _this.events.fire(types_1.CalendarEvents.monthSelected, [date]);
_this.paint();
}
break;
case types_1.ViewMode.years:
- if (_this.config.view !== types_1.ViewMode.years) {
+ if (_this.config.mode !== types_1.ViewMode.years) {
DateHelper_1.DateHelper.setYear(_this._currentDate, date);
_this.showDate(null, types_1.ViewMode.months);
+ _this.events.fire(types_1.CalendarEvents.yearSelected, [date]);
}
else {
var newDate = DateHelper_1.DateHelper.fromYear(date);
@@ -13916,19 +15348,23 @@ var Calendar = /** @class */ (function (_super) {
return;
}
_this._currentDate = newDate;
- _this._selected = newDate;
- _this.events.fire(types_1.CalendarEvents.change, [_this._selected, oldDate, true]);
+ _this._selected[0] = newDate;
+ _this.events.fire(types_1.CalendarEvents.change, [_this._getSelected(), oldDate, true]);
+ _this.events.fire(types_1.CalendarEvents.yearSelected, [date]);
_this.paint();
}
}
},
- ".dhx_calendar-action__cancel": function () { return _this.showDate(_this._selected, types_1.ViewMode.days); },
+ ".dhx_calendar-action__cancel": function () {
+ _this.showDate(_this._getSelected(), types_1.ViewMode.calendar);
+ _this.events.fire(types_1.CalendarEvents.cancelClick, []);
+ },
".dhx_calendar-action__show-month": function () { return _this.showDate(null, types_1.ViewMode.months); },
".dhx_calendar-action__show-year": function () { return _this.showDate(null, types_1.ViewMode.years); },
".dhx_calendar-action__next": function () {
var newDate;
switch (_this._currentViewMode) {
- case types_1.ViewMode.days:
+ case types_1.ViewMode.calendar:
newDate = DateHelper_1.DateHelper.addMonth(_this._currentDate, 1);
break;
case types_1.ViewMode.months:
@@ -13942,7 +15378,7 @@ var Calendar = /** @class */ (function (_super) {
".dhx_calendar-action__prev": function () {
var newDate;
switch (_this._currentViewMode) {
- case types_1.ViewMode.days:
+ case types_1.ViewMode.calendar:
newDate = DateHelper_1.DateHelper.addMonth(_this._currentDate, -1);
break;
case types_1.ViewMode.months:
@@ -13959,13 +15395,17 @@ var Calendar = /** @class */ (function (_super) {
}
},
onmouseover: {
- ".dhx_calendar-day": function (e, vn) { return _this.events.fire(types_1.CalendarEvents.dateHover, [e, new Date(vn.attrs._date)]); }
+ ".dhx_calendar-day": function (event, node) {
+ _this.events.fire(types_1.CalendarEvents.dateMouseOver, [new Date(node.attrs._date), event]);
+ _this.events.fire(types_1.CalendarEvents.dateHover, [new Date(node.attrs._date), event]); // TODO: remove sute_7.0
+ }
}
};
};
- Calendar.prototype._getData = function (d) {
+ Calendar.prototype._getData = function (date) {
+ var _this = this;
var firstDay = this.config.weekStart === "monday" ? 1 : 0;
- var first = DateHelper_1.DateHelper.weekStart(DateHelper_1.DateHelper.monthStart(d), firstDay);
+ var first = DateHelper_1.DateHelper.weekStart(DateHelper_1.DateHelper.monthStart(date), firstDay);
var data = [];
var weeksCount = 6;
var currentDate = first;
@@ -13974,16 +15414,32 @@ var Calendar = /** @class */ (function (_super) {
var disabledDays = 0;
var daysCount = 7;
var days = [];
- while (daysCount--) {
+ var _loop_1 = function () {
var isDateWeekEnd = DateHelper_1.DateHelper.isWeekEnd(currentDate);
- var isCurrentMonth = d.getMonth() === currentDate.getMonth();
- var isBlocked = this.config.block && this.config.block(currentDate);
+ var isCurrentMonth = date.getMonth() === currentDate.getMonth();
+ var isBlocked = this_1.config.disabledDates && this_1.config.disabledDates(currentDate);
var css = [];
+ if (this_1.config.range && this_1._selected[0] && this_1._selected[1]) {
+ var rangeMark = function () {
+ if (_this._selected[0] && _this._selected[1]) {
+ var firstDate = DateHelper_1.DateHelper.dayStart(_this._selected[0]);
+ var lastDate = DateHelper_1.DateHelper.dayStart(_this._selected[1]);
+ return currentDate >= firstDate && currentDate <= lastDate && getRangeClass_1();
+ }
+ };
+ var getRangeClass_1 = function () {
+ if (DateHelper_1.DateHelper.isSameDay(_this._selected[0], _this._selected[1])) {
+ return null;
+ }
+ return "dhx_calendar-day--in-range";
+ };
+ this_1.config.$rangeMark = rangeMark;
+ }
if (isDateWeekEnd && isCurrentMonth) {
css.push("dhx_calendar-day--weekend");
}
if (!isCurrentMonth) {
- if (this.config.thisMonthOnly) {
+ if (this_1.config.thisMonthOnly) {
disabledDays++;
css.push("dhx_calendar-day--hidden");
}
@@ -13991,14 +15447,14 @@ var Calendar = /** @class */ (function (_super) {
css.push("dhx_calendar-day--muffled");
}
}
- if (this.config.mark) {
- var markedCss = this.config.mark(currentDate);
+ if (this_1.config.mark) {
+ var markedCss = this_1.config.mark(currentDate);
if (markedCss) {
css.push(markedCss);
}
}
- if (this.config.$rangeMark) {
- var rangeMark = this.config.$rangeMark(currentDate);
+ if (this_1.config.$rangeMark) {
+ var rangeMark = this_1.config.$rangeMark(currentDate);
if (rangeMark) {
css.push(rangeMark);
}
@@ -14011,17 +15467,25 @@ var Calendar = /** @class */ (function (_super) {
css.push("dhx_calendar-day--disabled");
}
}
- if (this._selected && currentDate.getDate() === this._selected.getDate()
- && currentDate.getMonth() === this._selected.getMonth()
- && this._selected.getFullYear() === currentDate.getFullYear()) {
- css.push("dhx_calendar-day--selected");
- }
+ this_1._selected.forEach(function (selected, index) {
+ if (selected && DateHelper_1.DateHelper.isSameDay(selected, currentDate)) {
+ var dayCss = "dhx_calendar-day--selected";
+ if (_this.config.range) {
+ dayCss += " dhx_calendar-day--selected-" + (index === 0 ? "first " : "last");
+ }
+ css.push(dayCss);
+ }
+ });
days.push({
date: currentDate,
day: currentDate.getDate(),
css: css.join(" ")
});
currentDate = DateHelper_1.DateHelper.addDay(currentDate);
+ };
+ var this_1 = this;
+ while (daysCount--) {
+ _loop_1();
}
data.push({
weekNumber: currentWeek,
@@ -14033,8 +15497,9 @@ var Calendar = /** @class */ (function (_super) {
};
Calendar.prototype._drawCalendar = function () {
var date = this._currentDate;
- var weekDays = this.config.weekStart === "monday"
- ? en_1.default.daysShort.slice(1).concat([en_1.default.daysShort[0]]) : en_1.default.daysShort;
+ var _a = this.config, weekStart = _a.weekStart, thisMonthOnly = _a.thisMonthOnly, css = _a.css, timePicker = _a.timePicker, width = _a.width;
+ var weekDays = weekStart === "monday"
+ ? __spreadArrays(en_1.default.daysShort.slice(1), [en_1.default.daysShort[0]]) : en_1.default.daysShort;
var weekDaysHeader = weekDays.map(function (day) { return dom_1.el(".dhx_calendar-weekday", day); });
var data = this._getData(date);
var content = [];
@@ -14047,7 +15512,7 @@ var Calendar = /** @class */ (function (_super) {
_date: item.date,
tabIndex: 1,
}, item.day); });
- if (this.config.weekNumbers && !(week.disabledWeekNumber && this.config.thisMonthOnly)) {
+ if (this.config.weekNumbers && !(week.disabledWeekNumber && thisMonthOnly)) {
weekNumbers.push(dom_1.el("div", {
class: "dhx_calendar-week-number"
}, week.weekNumber));
@@ -14058,10 +15523,10 @@ var Calendar = /** @class */ (function (_super) {
weekNumbersWrapper = dom_1.el(".dhx_calendar__week-numbers", weekNumbers);
}
var widgetClass = "dhx_calendar dhx_widget" +
- (this.config.css ? " " + this.config.css : "") +
- (this.config.timePicker ? " dhx_calendar--with_timepicker" : "") +
+ (css ? " " + css : "") +
+ (timePicker ? " dhx_calendar--with_timepicker" : "") +
(this.config.weekNumbers ? " dhx_calendar--with_week-numbers" : "");
- return dom_1.el("div", __assign({ class: widgetClass, style: { width: this.config.weekNumbers ? "calc(" + this.config.width + " + 48px )" : this.config.width } }, this._handlers), [
+ return dom_1.el("div", __assign({ class: widgetClass, style: { width: this.config.weekNumbers ? "calc(" + width + " + 48px )" : width } }, this._handlers), [
dom_1.el(".dhx_calendar__wrapper", [
this._drawHeader(dom_1.el("button.dhx_calendar-action__show-month.dhx_button.dhx_button--view_link.dhx_button--size_small.dhx_button--color_secondary.dhx_button--circle", en_1.default.months[date.getMonth()] + " " + date.getFullYear())),
this.config.weekNumbers && dom_1.el(".dhx_calendar__dates-wrapper", [
@@ -14071,7 +15536,7 @@ var Calendar = /** @class */ (function (_super) {
]),
!this.config.weekNumbers && dom_1.el(".dhx_calendar__weekdays", weekDaysHeader),
!this.config.weekNumbers && dom_1.el(".dhx_calendar__days", content),
- this.config.timePicker ?
+ timePicker ?
dom_1.el(".dhx_timepicker__actions", [
dom_1.el("button.dhx_calendar__timepicker-button." +
"dhx_button.dhx_button--view_link.dhx_button--size_small.dhx_button--color_secondary.dhx_button--width_full.dhx_button--circle.dhx_calendar-action__show-timepicker", [
@@ -14085,13 +15550,14 @@ var Calendar = /** @class */ (function (_super) {
Calendar.prototype._drawMonthSelector = function () {
var date = this._currentDate;
var currentMonth = date.getMonth();
- var currentYear = this._selected ? this._selected.getFullYear() : null;
+ var currentYear = this._getSelected() ? this._getSelected().getFullYear() : null;
+ var _a = this.config, css = _a.css, timePicker = _a.timePicker, weekNumbers = _a.weekNumbers, width = _a.width, mode = _a.mode;
var widgetClass = "dhx_calendar dhx_widget" +
- (this.config.css ? " " + this.config.css : "") +
- (this.config.timePicker ? " dhx_calendar--with_timepicker" : "") +
- (this.config.weekNumbers ? " dhx_calendar--with_week-numbers" : "");
+ (css ? " " + css : "") +
+ (timePicker ? " dhx_calendar--with_timepicker" : "") +
+ (weekNumbers ? " dhx_calendar--with_week-numbers" : "");
return dom_1.el("div", __assign({ class: widgetClass, style: {
- width: this.config.weekNumbers ? "calc(" + this.config.width + " + 48px)" : this.config.width,
+ width: weekNumbers ? "calc(" + width + " + 48px)" : width,
} }, this._handlers), [
dom_1.el(".dhx_calendar__wrapper", [
this._drawHeader(dom_1.el("button.dhx_calendar-action__show-year.dhx_button.dhx_button--view_link.dhx_button--size_small.dhx_button--color_secondary.dhx_button--circle", date.getFullYear())),
@@ -14100,7 +15566,7 @@ var Calendar = /** @class */ (function (_super) {
tabIndex: 1,
_date: i
}, item); })),
- this.config.view !== types_1.ViewMode.months ? dom_1.el(".dhx_calendar__actions", [
+ mode !== types_1.ViewMode.months ? dom_1.el(".dhx_calendar__actions", [
dom_1.el("button.dhx_button.dhx_button--color_primary.dhx_button--view_link.dhx_button--size_small.dhx_button--width_full.dhx_button--circle.dhx_calendar-action__cancel", en_1.default.cancel)
]) : null
])
@@ -14110,19 +15576,20 @@ var Calendar = /** @class */ (function (_super) {
var _this = this;
var date = this._currentDate;
var yearsDiapason = DateHelper_1.DateHelper.getTwelweYears(date);
+ var _a = this.config, css = _a.css, timePicker = _a.timePicker, weekNumbers = _a.weekNumbers, width = _a.width, mode = _a.mode;
var widgetClass = "dhx_calendar dhx_widget" +
- (this.config.css ? " " + this.config.css : "") +
- (this.config.timePicker ? " dhx_calendar--with_timepicker" : "") +
- (this.config.weekNumbers ? " dhx_calendar--with_week-numbers" : "");
- return dom_1.el("div", __assign({ class: widgetClass, style: { width: this.config.weekNumbers ? "calc(" + this.config.width + " + 48px)" : this.config.width } }, this._handlers), [
+ (css ? " " + css : "") +
+ (timePicker ? " dhx_calendar--with_timepicker" : "") +
+ (weekNumbers ? " dhx_calendar--with_week-numbers" : "");
+ return dom_1.el("div", __assign({ class: widgetClass, style: { width: weekNumbers ? "calc(" + width + " + 48px)" : width } }, this._handlers), [
dom_1.el(".dhx_calendar__wrapper", [
this._drawHeader(dom_1.el("button.dhx_button.dhx_button--view_link.dhx_button--size_small.dhx_button--color_secondary.dhx_button--circle", yearsDiapason[0] + "-" + yearsDiapason[yearsDiapason.length - 1])),
dom_1.el(".dhx_calendar__years", yearsDiapason.map(function (item) { return dom_1.el("div", {
- class: "dhx_calendar-year" + (_this._selected && item === _this._selected.getFullYear() ? " dhx_calendar-year--selected" : ""),
+ class: "dhx_calendar-year" + (_this._getSelected() && item === _this._getSelected().getFullYear() ? " dhx_calendar-year--selected" : ""),
_date: item,
tabIndex: 1,
}, item); })),
- this.config.view !== types_1.ViewMode.years && this.config.view !== types_1.ViewMode.months ? dom_1.el(".dhx_calendar__actions", [
+ mode !== types_1.ViewMode.years && mode !== types_1.ViewMode.months ? dom_1.el(".dhx_calendar__actions", [
dom_1.el("button.dhx_button.dhx_button--color_primary.dhx_button--view_link.dhx_button--size_small.dhx_button--width_full.dhx_button--circle.dhx_calendar-action__cancel", en_1.default.cancel)
]) : null
])
@@ -14140,9 +15607,10 @@ var Calendar = /** @class */ (function (_super) {
]);
};
Calendar.prototype._drawTimepicker = function () {
+ var _a = this.config, css = _a.css, weekNumbers = _a.weekNumbers, width = _a.width;
return dom_1.el(".dhx_widget.dhx-calendar", {
- class: (this.config.css ? " " + this.config.css : ""),
- style: { width: this.config.weekNumbers ? "calc(" + this.config.width + " + 48px)" : this.config.width }
+ class: (css ? " " + css : ""),
+ style: { width: weekNumbers ? "calc(" + width + " + 48px)" : width }
}, [
dom_1.inject(this._timepicker.getRootView())
]);
@@ -14153,7 +15621,7 @@ exports.Calendar = Calendar;
/***/ }),
-/* 124 */
+/* 129 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -14185,37 +15653,39 @@ var __assign = (this && this.__assign) || function () {
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(1);
var dom_1 = __webpack_require__(0);
-var events_1 = __webpack_require__(2);
+var events_1 = __webpack_require__(3);
var view_1 = __webpack_require__(4);
-var ts_layout_1 = __webpack_require__(12);
-var ts_slider_1 = __webpack_require__(30);
-var en_1 = __webpack_require__(64);
-var helper_1 = __webpack_require__(127);
-var types_1 = __webpack_require__(65);
+var ts_layout_1 = __webpack_require__(14);
+var ts_slider_1 = __webpack_require__(40);
+var en_1 = __webpack_require__(66);
+var helper_1 = __webpack_require__(132);
+var types_1 = __webpack_require__(67);
var Timepicker = /** @class */ (function (_super) {
__extends(Timepicker, _super);
function Timepicker(container, config) {
if (config === void 0) { config = {}; }
var _this = _super.call(this, container, core_1.extend({
timeFormat: 24,
- actions: false
+ controls: false,
+ actions: false // TODO: remove sute_7.0
}, config)) || this;
_this.events = new events_1.EventSystem(_this);
_this._time = {
- h: 0,
- m: 0,
- isAM: true
+ hour: 0,
+ minute: 0,
+ AM: true
};
if (_this.config.timeFormat === 12) {
- _this._time.h = 12;
+ _this._time.hour = 12;
}
+ _this.config.controls = _this.config.controls || _this.config.actions; // TODO: remove sute_7.0
_this._initUI(container);
_this._initHandlers();
_this._initEvents();
return _this;
}
Timepicker.prototype.getValue = function (asOBject) {
- var _a = this._time, h = _a.h, m = _a.m, isAM = _a.isAM;
+ var _a = this._time, h = _a.hour, m = _a.minute, isAM = _a.AM;
if (asOBject) {
var obj = {
hour: h,
@@ -14262,10 +15732,18 @@ var Timepicker = /** @class */ (function (_super) {
if (helper_1.isTimeCheck(value)) {
this._hoursSlider.setValue(0);
this._minutesSlider.setValue(m);
- this._time.isAM = true;
+ this._time.AM = true;
}
this._inputsView.paint();
};
+ Timepicker.prototype.clear = function () {
+ if (this.config.timeFormat === 24) {
+ this.setValue("00:00");
+ }
+ else {
+ this.setValue("12:00AM");
+ }
+ };
Timepicker.prototype.destructor = function () {
this._minutesSlider.destructor();
this._hoursSlider.destructor();
@@ -14279,9 +15757,9 @@ var Timepicker = /** @class */ (function (_super) {
var _this = this;
var layoutConfig = {
gravity: false,
- css: "dhx_timepicker " +
+ css: "dhx_widget dhx_timepicker " +
(this.config.css ? this.config.css : "") +
- (this.config.actions ? " dhx_timepicker--with-actions" : ""),
+ (this.config.controls ? " dhx_timepicker--with-controls" : ""),
rows: [
{
id: "timepicker",
@@ -14297,7 +15775,7 @@ var Timepicker = /** @class */ (function (_super) {
}
]
};
- if (this.config.actions) {
+ if (this.config.controls) {
layoutConfig.rows.unshift({
id: "close-action",
css: "dhx_timepicker__close"
@@ -14316,22 +15794,22 @@ var Timepicker = /** @class */ (function (_super) {
min: 0,
max: 59,
step: 1,
- thumbLabel: false,
- labelInline: false,
+ tooltip: false,
+ labelPosition: "top",
label: en_1.default.minutes
});
var hSlider = this._hoursSlider = new ts_slider_1.Slider(null, {
min: 0,
max: 23,
step: 1,
- thumbLabel: false,
- labelInline: false,
+ tooltip: false,
+ labelPosition: "top",
label: en_1.default.hours
});
- layout.cell("timepicker").attach(inputsView);
- layout.cell("hour-slider").attach(hSlider);
- layout.cell("minute-slider").attach(mSlider);
- if (this.config.actions) {
+ layout.getCell("timepicker").attach(inputsView);
+ layout.getCell("hour-slider").attach(hSlider);
+ layout.getCell("minute-slider").attach(mSlider);
+ if (this.config.controls) {
var save = function () {
return dom_1.el("button.dhx_timepicker__button-save.dhx_button.dhx_button--view_flat.dhx_button--color_primary.dhx_button--size_medium.dhx_button--circle.dhx_button--width_full", { onclick: _this._outerHandlers.save }, en_1.default.save);
};
@@ -14340,8 +15818,8 @@ var Timepicker = /** @class */ (function (_super) {
onclick: _this._outerHandlers.close
}, [dom_1.el("span.dhx_button__icon.dxi.dxi-close")]);
};
- layout.cell("save-action").attach(save);
- layout.cell("close-action").attach(close_1);
+ layout.getCell("save-action").attach(save);
+ layout.getCell("close-action").attach(close_1);
}
};
Timepicker.prototype._initHandlers = function () {
@@ -14361,8 +15839,17 @@ var Timepicker = /** @class */ (function (_super) {
}
};
this._outerHandlers = {
- close: function () { return _this.events.fire(types_1.TimepickerEvents.close); },
- save: function () { return _this.events.fire(types_1.TimepickerEvents.save, [_this._time]); }
+ close: function () {
+ if (!_this.events.fire(types_1.TimepickerEvents.beforeClose, [])) {
+ return;
+ }
+ _this.events.fire(types_1.TimepickerEvents.afterClose, []);
+ _this.events.fire(types_1.TimepickerEvents.close, []); // TODO: remove sute_7.0
+ },
+ save: function () {
+ _this.events.fire(types_1.TimepickerEvents.apply, [_this._time]);
+ _this.events.fire(types_1.TimepickerEvents.save, [_this._time]); // TODO: remove sute_7.0
+ }
};
};
Timepicker.prototype._initEvents = function () {
@@ -14372,11 +15859,11 @@ var Timepicker = /** @class */ (function (_super) {
return;
}
if (_this.config.timeFormat === 12) {
- _this._time.isAM = value < 12;
- _this._time.h = value % 12 || 12;
+ _this._time.AM = value < 12;
+ _this._time.hour = value % 12 || 12;
}
else {
- _this._time.h = value;
+ _this._time.hour = value;
}
_this.events.fire(types_1.TimepickerEvents.change, [_this.getValue()]);
_this._inputsView.paint();
@@ -14385,7 +15872,7 @@ var Timepicker = /** @class */ (function (_super) {
if (value < _this._minutesSlider.config.min || value > _this._minutesSlider.config.max) {
return;
}
- _this._time.m = value;
+ _this._time.minute = value;
_this.events.fire(types_1.TimepickerEvents.change, [_this.getValue()]);
_this._inputsView.paint();
});
@@ -14394,14 +15881,14 @@ var Timepicker = /** @class */ (function (_super) {
return dom_1.el(".dhx_timepicker-inputs", __assign({}, this._handlers), [
dom_1.el("input.dhx_timepicker-input.dhx_timepicker-input--hour", {
_key: "hour",
- value: this._time.h < 10 ? "0" + this._time.h : this._time.h
+ value: this._time.hour < 10 ? "0" + this._time.hour : this._time.hour
}),
dom_1.el("span.dhx_timepicker-delimer", ":"),
dom_1.el("input.dhx_timepicker-input.dhx_timepicker-input--minutes", {
_key: "minute",
- value: this._time.m < 10 ? "0" + this._time.m : this._time.m
+ value: this._time.minute < 10 ? "0" + this._time.minute : this._time.minute
}),
- this.config.timeFormat === 12 ? dom_1.el(".dhx_timepicker-ampm", this._time.isAM ? "AM" : "PM") : null
+ this.config.timeFormat === 12 ? dom_1.el(".dhx_timepicker-ampm", this._time.AM ? "AM" : "PM") : null
]);
};
return Timepicker;
@@ -14416,7 +15903,7 @@ function validate(value, max) {
/***/ }),
-/* 125 */
+/* 130 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -14437,11 +15924,11 @@ var __extends = (this && this.__extends) || (function () {
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(1);
var dom_1 = __webpack_require__(0);
-var events_1 = __webpack_require__(2);
+var events_1 = __webpack_require__(3);
var Keymanager_1 = __webpack_require__(13);
var view_1 = __webpack_require__(4);
-var ts_popup_1 = __webpack_require__(10);
-var types_1 = __webpack_require__(63);
+var ts_popup_1 = __webpack_require__(11);
+var types_1 = __webpack_require__(65);
function normalizeValue(value, min, max) {
if (value < min) {
return min;
@@ -14477,8 +15964,16 @@ var Slider = /** @class */ (function (_super) {
min: 0,
max: 100,
step: 1,
- thumbLabel: true,
+ tooltip: true
}, config)) || this;
+ _this._disabled = false;
+ _this.config.helpMessage = _this.config.helpMessage || _this.config.help; // TODO: remove sute_7.0
+ if (_this.config.thumbLabel !== undefined) {
+ _this.config.tooltip = _this.config.thumbLabel; // TODO: remove sute_7.0
+ }
+ if (_this.config.labelInline) {
+ _this.config.labelPosition = "left"; // TODO: remove sute_7.0
+ }
_this.events = new events_1.EventSystem(_this);
_this._axis = _this.config.mode === types_1.Direction.horizontal ? "clientX" : "clientY";
_this._initStartPosition();
@@ -14502,6 +15997,9 @@ var Slider = /** @class */ (function (_super) {
this._disabled = false;
this.paint();
};
+ Slider.prototype.isDisabled = function () {
+ return this._disabled;
+ };
Slider.prototype.focus = function (extra) {
this.getRootView().refs[extra ? "extraRunner" : "runner"].el.focus();
};
@@ -14607,9 +16105,13 @@ var Slider = /** @class */ (function (_super) {
if (this.config.inverse) {
value = -value;
}
+ var _a = this.config, max = _a.max, min = _a.min;
var oldValue = forExtra ? this._getValue(this._extraCurrentPosition) : this._getValue(this._currentPosition);
var newValue = oldValue + value;
this._setValue(oldValue + value, forExtra);
+ if (newValue > max || newValue < min) {
+ newValue = oldValue;
+ }
this.events.fire(types_1.SliderEvents.change, [newValue, oldValue, forExtra]);
this.paint();
};
@@ -14694,9 +16196,9 @@ var Slider = /** @class */ (function (_super) {
document.removeEventListener("mouseup", mouseUp);
document.removeEventListener("mousemove", mouseMove);
};
- if (this.config.help) {
+ if (this.config.helpMessage) {
this._helper = new ts_popup_1.Popup({ css: "dhx_tooltip dhx_tooltip--forced dhx_tooltip--light" });
- this._helper.attachHTML(this.config.help);
+ this._helper.attachHTML(this.config.helpMessage);
}
this._handlers = {
showHelper: function (e) {
@@ -14828,8 +16330,8 @@ var Slider = /** @class */ (function (_super) {
this.events.fire(types_1.SliderEvents.change, [newValue, oldValue, extra]);
};
Slider.prototype._getRunnerStyle = function (forExtra) {
- if (forExtra === void 0) { forExtra = false; }
var _a;
+ if (forExtra === void 0) { forExtra = false; }
var direction = this.config.mode === types_1.Direction.horizontal ? "left" : "top";
var pos = forExtra ? this._extraCurrentPosition : this._currentPosition;
return _a = {},
@@ -14849,33 +16351,35 @@ var Slider = /** @class */ (function (_super) {
(this._isNullable(forExtra ? this._extraCurrentPosition : this._currentPosition) && !this.config.range ? " dhx_slider__thumb--nullable" : "");
};
Slider.prototype._draw = function () {
- var width = this.config.labelInline && this.config.labelWidth ? this.config.labelWidth : "";
+ var _a = this.config, labelPosition = _a.labelPosition, labelWidth = _a.labelWidth, mode = _a.mode, label = _a.label, hiddenLabel = _a.hiddenLabel, tick = _a.tick, majorTick = _a.majorTick, css = _a.css, helpMessage = _a.helpMessage;
+ var width = labelPosition === "left" && labelWidth ? labelWidth : "";
return dom_1.el("div", {
class: "dhx_slider" +
- " dhx_slider--mode_" + this.config.mode +
- (this.config.label && this.config.labelInline ? " dhx_slider--label-inline" : "") +
- (this.config.hiddenLabel ? " dhx_slider--label_sr" : "") +
- (this.config.tick ? " dhx_slider--ticks" : "") +
- (this.config.majorTick ? " dhx_slider--major-ticks" : "") +
- (this.config.css ? " " + this.config.css : "")
+ " dhx_slider--mode_" + mode +
+ (label && labelPosition === "left" ? " dhx_slider--label-inline" : "") +
+ (hiddenLabel ? " dhx_slider--label_sr" : "") +
+ (tick ? " dhx_slider--ticks" : "") +
+ (majorTick ? " dhx_slider--major-ticks" : "") +
+ (css ? " " + css : "") +
+ (this._disabled ? " dhx_slider--disabled" : "")
}, [
- this.config.label ? dom_1.el("label.dhx_label.dhx_slider__label", {
+ label ? dom_1.el("label.dhx_label.dhx_slider__label", {
style: { minWidth: width, maxWidth: width },
- class: this.config.help ? "dhx_label--with-help" : "",
+ class: helpMessage ? "dhx_label--with-help" : "",
onclick: this._handlers.onlabelClick,
- }, this.config.help ? [
- dom_1.el("span.dhx_label__holder", this.config.label),
+ }, helpMessage ? [
+ dom_1.el("span.dhx_label__holder", label),
dom_1.el("span.dhx_label-help.dxi.dxi-help-circle-outline", {
tabindex: "0",
role: "button",
onclick: this._handlers.showHelper
}),
- ] : this.config.label) : null,
+ ] : label) : null,
this._drawSlider()
]);
};
Slider.prototype._drawSlider = function () {
- return dom_1.el(".dhx_slider__track-holder",
+ return dom_1.el(".dhx_widget.dhx_slider__track-holder",
// (this.config.mode === Direction.vertical ? ".dhx_slider--vertical" : ".dhx_slider--horizontal"),
{
dhx_widget_id: this._uid,
@@ -14897,8 +16401,8 @@ var Slider = /** @class */ (function (_super) {
style: this._getRunnerStyle(),
tabindex: 0,
}),
- this.config.thumbLabel && (this._mouseIn || this._focusIn || this._isMouseMoving) ? this._drawThumbLabel() : null,
- this.config.thumbLabel && this.config.range && (this._mouseIn || this._focusIn || this._isMouseMoving) ? this._drawThumbLabel(true) : null,
+ this.config.tooltip && (this._mouseIn || this._focusIn || this._isMouseMoving) ? this._drawTooltip() : null,
+ this.config.tooltip && this.config.range && (this._mouseIn || this._focusIn || this._isMouseMoving) ? this._drawTooltip(true) : null,
this.config.range ? dom_1.el("div", {
_ref: "extraRunner",
class: this._getRunnerCss(true),
@@ -14945,9 +16449,9 @@ var Slider = /** @class */ (function (_super) {
_c)
});
};
- Slider.prototype._drawThumbLabel = function (forExtra) {
- if (forExtra === void 0) { forExtra = false; }
+ Slider.prototype._drawTooltip = function (forExtra) {
var _a;
+ if (forExtra === void 0) { forExtra = false; }
var pos = forExtra ? this._extraCurrentPosition : this._currentPosition;
var direction = this.config.mode === types_1.Direction.horizontal ? "left" : "top";
var classNameModifiers = this.config.mode === types_1.Direction.horizontal ? ".dhx_slider__thumb-label--horizontal" : ".dhx_slider__thumb-label--vertical";
@@ -15015,7 +16519,7 @@ exports.Slider = Slider;
/***/ }),
-/* 126 */
+/* 131 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -15047,10 +16551,10 @@ var __assign = (this && this.__assign) || function () {
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(1);
var dom_1 = __webpack_require__(0);
-var events_1 = __webpack_require__(2);
-var html_1 = __webpack_require__(3);
+var events_1 = __webpack_require__(3);
+var html_1 = __webpack_require__(2);
var view_1 = __webpack_require__(4);
-var types_1 = __webpack_require__(62);
+var types_1 = __webpack_require__(64);
var Popup = /** @class */ (function (_super) {
__extends(Popup, _super);
function Popup(config) {
@@ -15086,10 +16590,10 @@ var Popup = /** @class */ (function (_super) {
document.body.appendChild(this._popup);
this._setPopupSize(node, config);
this._isActive = true;
- setTimeout(function () {
+ dom_1.awaitRedraw().then(function () {
_this.events.fire(types_1.PopupEvents.afterShow, [node]);
_this._outerClickDestructor = _this._detectOuterClick(node);
- }, 100);
+ });
};
Popup.prototype.hide = function () {
this._hide(false, null);
@@ -15176,7 +16680,7 @@ var Popup = /** @class */ (function (_super) {
});
return;
}
- var _b = html_1.fitPosition(node, __assign({ centering: true, mode: html_1.Position.bottom }, config, { width: width, height: height })), left = _b.left, top = _b.top;
+ var _b = html_1.fitPosition(node, __assign(__assign({ centering: true, mode: html_1.Position.bottom }, config), { width: width, height: height })), left = _b.left, top = _b.top;
this._popup.style.left = left;
this._popup.style.top = top;
if (config.indent && config.indent !== 0) {
@@ -15237,7 +16741,7 @@ exports.Popup = Popup;
/***/ }),
-/* 127 */
+/* 132 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -15253,14 +16757,14 @@ exports.isTimeCheck = isTimeCheck;
/***/ }),
-/* 128 */
+/* 133 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(1);
-var DateFormatter_1 = __webpack_require__(38);
+var DateFormatter_1 = __webpack_require__(41);
var DateHelper = /** @class */ (function () {
function DateHelper() {
}
@@ -15292,14 +16796,22 @@ var DateHelper = /** @class */ (function () {
};
DateHelper.addMonth = function (d, count) {
if (count === void 0) { count = 1; }
- return new Date(d.getFullYear(), d.getMonth() + count, 1);
+ return new Date(d.getFullYear(), d.getMonth() + count);
};
DateHelper.addYear = function (d, count) {
if (count === void 0) { count = 1; }
- return new Date(d.getFullYear() + count, d.getMonth(), 0);
+ return new Date(d.getFullYear() + count, d.getMonth());
};
- DateHelper.withHoursAndMinutes = function (d, hours, minutes) {
- return new Date(d.getFullYear(), d.getMonth(), d.getDate(), hours, minutes);
+ DateHelper.withHoursAndMinutes = function (d, hours, minutes, dateFormat) {
+ if (dateFormat === undefined || !dateFormat && hours === 12 || dateFormat && hours !== 12) {
+ return new Date(d.getFullYear(), d.getMonth(), d.getDate(), hours, minutes);
+ }
+ else if (dateFormat && hours === 12) {
+ return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 0, minutes);
+ }
+ else {
+ return new Date(d.getFullYear(), d.getMonth(), d.getDate(), hours + 12, minutes);
+ }
};
DateHelper.setMonth = function (d, month) {
d.setMonth(month);
@@ -15344,7 +16856,7 @@ exports.DateHelper = DateHelper;
/***/ }),
-/* 129 */
+/* 134 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -15354,7 +16866,7 @@ exports.linkButtonClasses = ".dhx_button.dhx_button--view_link.dhx_button--icon.
/***/ }),
-/* 130 */
+/* 135 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -15372,22 +16884,29 @@ var __extends = (this && this.__extends) || (function () {
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
+var __spreadArrays = (this && this.__spreadArrays) || function () {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+};
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var events_1 = __webpack_require__(2);
-var html_1 = __webpack_require__(3);
+var events_1 = __webpack_require__(3);
+var html_1 = __webpack_require__(2);
var view_1 = __webpack_require__(4);
var core_1 = __webpack_require__(1);
-var color_1 = __webpack_require__(40);
-var colors_1 = __webpack_require__(131);
-var en_1 = __webpack_require__(41);
-var types_1 = __webpack_require__(67);
+var color_1 = __webpack_require__(43);
+var colors_1 = __webpack_require__(136);
+var en_1 = __webpack_require__(44);
+var types_1 = __webpack_require__(69);
// tslint:disable-next-line
-var tooltip_1 = __webpack_require__(60);
+var tooltip_1 = __webpack_require__(62);
// tslint:disable-next-line
var ts_message_1 = __webpack_require__(19);
-var picker_1 = __webpack_require__(132);
-var calculations_1 = __webpack_require__(133);
+var picker_1 = __webpack_require__(137);
+var calculations_1 = __webpack_require__(138);
var Colorpicker = /** @class */ (function (_super) {
__extends(Colorpicker, _super);
function Colorpicker(container, config) {
@@ -15411,31 +16930,31 @@ var Colorpicker = /** @class */ (function (_super) {
};
_this._onColorClick = function (_e, node) {
_this._selected = node.data.color.toUpperCase();
- _this.events.fire(types_1.ColorpickerEvents.colorChange, [_this._selected]);
+ _this.events.fire(types_1.ColorpickerEvents.change, [_this._selected]);
+ _this.events.fire(types_1.ColorpickerEvents.colorChange, [_this._selected]); // TODO: remove sute_7.0
};
_this._container = container;
_this.config = core_1.extend({
css: "",
- paletteOnly: false,
grayShades: true,
pickerOnly: false,
+ paletteOnly: false,
customColors: [],
palette: colors_1.palette,
- width: "238px"
+ width: "238px",
+ mode: types_1.ViewsMode.palette
}, _this.config);
- // [dirty]
if (!_this.config.palette) {
_this.config.palette = colors_1.palette;
}
if (_this.config.customColors) {
_this.config.customColors = _this.config.customColors.map(function (color) { return color.toUpperCase(); });
}
- _this.events = new events_1.EventSystem(_this);
_this._pickerState = {
hsv: { h: 0, s: 1, v: 1 },
- currentView: types_1.ViewsTypes.palette,
customHex: ""
};
+ _this.events = new events_1.EventSystem(_this);
_this._setHandlers();
var view = dom_1.create({ render: function () { return _this._getContent(); } });
_this.mount(_this._container, view);
@@ -15444,19 +16963,24 @@ var Colorpicker = /** @class */ (function (_super) {
Colorpicker.prototype.destructor = function () {
this.unmount();
};
- Colorpicker.prototype.focusValue = function (value) {
+ Colorpicker.prototype.clear = function () {
+ this._selected = "";
+ this.paint();
+ };
+ Colorpicker.prototype.setValue = function (value) {
if (this._focusColor(value)) {
this.paint();
+ this.events.fire(types_1.ColorpickerEvents.change, [this._selected]);
+ this.events.fire(types_1.ColorpickerEvents.colorChange, [this._selected]); // TODO: remove sute_7.0
}
};
- Colorpicker.prototype.setValue = function (value) {
+ Colorpicker.prototype.setFocus = function (value) {
if (this._focusColor(value)) {
this.paint();
- this.events.fire(types_1.ColorpickerEvents.colorChange, [this._selected]);
}
};
Colorpicker.prototype.getValue = function () {
- return this._selected;
+ return this._selected || "";
};
Colorpicker.prototype.getCustomColors = function () {
return this.config.customColors;
@@ -15465,15 +16989,28 @@ var Colorpicker = /** @class */ (function (_super) {
this.config.customColors = customColors.map(function (color) { return color.toUpperCase(); });
this.paint();
};
- Colorpicker.prototype.setView = function (view) {
- if (types_1.ViewsTypes[view]) {
- this._pickerState.currentView = view;
- this.events.fire(types_1.ColorpickerEvents.viewChange, [view]);
+ Colorpicker.prototype.setCurrentMode = function (mode) {
+ if (types_1.ViewsMode[mode]) {
+ this.config.mode = mode;
+ this.events.fire(types_1.ColorpickerEvents.modeChange, [mode]);
+ this.events.fire(types_1.ColorpickerEvents.viewChange, [mode]); // TODO: remove sute_7.0
this.paint();
}
};
+ Colorpicker.prototype.getCurrentMode = function () {
+ return this.config.mode;
+ };
+ // TODO: remove sute_7.0
Colorpicker.prototype.getView = function () {
- return this._pickerState.currentView;
+ return this.getCurrentMode();
+ };
+ // TODO: remove sute_7.0
+ Colorpicker.prototype.setView = function (mode) {
+ this.setCurrentMode(mode);
+ };
+ // TODO: remove sute_7.0
+ Colorpicker.prototype.focusValue = function (value) {
+ this.setFocus(value);
};
Colorpicker.prototype._setHandlers = function () {
var _this = this;
@@ -15498,18 +17035,19 @@ var Colorpicker = /** @class */ (function (_super) {
_this.paint();
},
buttonsClick: function (button) {
- _this.setView(types_1.ViewsTypes.palette);
+ _this.setCurrentMode(types_1.ViewsMode.palette);
if (button === "cancel") {
_this.events.fire(types_1.ColorpickerEvents.cancelClick, []);
return;
}
if (button === "apply" && _this.config.customColors.indexOf(_this._pickerState.background) === -1) {
_this.setValue(_this._pickerState.background);
- _this.events.fire(types_1.ColorpickerEvents.selectClick, []);
+ _this.events.fire(types_1.ColorpickerEvents.apply, []);
+ _this.events.fire(types_1.ColorpickerEvents.selectClick, []); // TODO: remove sute_7.0
}
},
customColorClick: function () {
- _this.setView(types_1.ViewsTypes.picker);
+ _this.setView(types_1.ViewsMode.picker);
},
oninput: function (e) {
if (_this._inputTimeout) {
@@ -15557,11 +17095,18 @@ var Colorpicker = /** @class */ (function (_super) {
}
}
};
+ this.events.on(types_1.ColorpickerEvents.change, function () {
+ _this.paint();
+ });
+ // TODO: remove sute_7.0
this.events.on(types_1.ColorpickerEvents.colorChange, function () {
_this.paint();
});
};
Colorpicker.prototype._focusColor = function (value) {
+ if (value === undefined || value.length < 4) {
+ return false;
+ }
var hex = value.toUpperCase();
if (!color_1.isHex(hex)) {
return false;
@@ -15621,16 +17166,16 @@ var Colorpicker = /** @class */ (function (_super) {
view = [picker_1.getPicker(this, this._pickerState, this._handlers)];
}
else {
- view = this._pickerState.currentView === "palette" ? [
+ view = this.config.mode === "palette" ? __spreadArrays([
this.config.grayShades && this._getGrayShades()
- ].concat((this._getPalette()), [
+ ], (this._getPalette()), [
!this.config.paletteOnly && dom_1.el(".dhx_colorpicker-custom-colors", {
onmouseover: this._handlers.mouseover
}, [
dom_1.el(".dhx_colorpicker-custom-colors__header", [
en_1.default.customColors
]),
- dom_1.el(".dhx_palette--custom.dhx_palette__row", this._getCells(this.config.customColors, "dhx_custom-color__cell").concat([
+ dom_1.el(".dhx_palette--custom.dhx_palette__row", __spreadArrays(this._getCells(this.config.customColors, "dhx_custom-color__cell"), [
dom_1.el(".dhx_colorpicker-custom-colors__picker", {
class: "dxi dxi-plus",
onclick: this._handlers.customColorClick,
@@ -15641,7 +17186,7 @@ var Colorpicker = /** @class */ (function (_super) {
]) :
[picker_1.getPicker(this, this._pickerState, this._handlers)];
}
- return dom_1.el(".dhx_colorpicker", { class: this.config.css, style: { width: this.config.width } }, [
+ return dom_1.el(".dhx_widget.dhx_colorpicker", { class: this.config.css, style: { width: this.config.width } }, [
dom_1.el(".dhx_palette", {
onclick: this._handlers.click,
oncontextmenu: this._handlers.contextmenu
@@ -15654,7 +17199,7 @@ exports.Colorpicker = Colorpicker;
/***/ }),
-/* 131 */
+/* 136 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -15767,22 +17312,22 @@ exports.palette = [
/***/ }),
-/* 132 */
+/* 137 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var color_1 = __webpack_require__(40);
+var color_1 = __webpack_require__(43);
var dom_1 = __webpack_require__(0);
-var en_1 = __webpack_require__(41);
+var en_1 = __webpack_require__(44);
function getPicker(colorpicker, pickerState, handlers) {
var rgb = color_1.HSVtoRGB(pickerState.hsv);
pickerState.background = color_1.RGBToHex(rgb);
var currentBackground = color_1.RGBToHex(color_1.HSVtoRGB({ h: pickerState.hsv.h, s: 1, v: 1 }));
var root = colorpicker.getRootView();
- var box = root.refs ?
- root.refs.picker_palette.el.getBoundingClientRect()
+ var box = root.refs
+ ? root.refs.picker_palette.el.getBoundingClientRect()
: { height: 200, width: 218, x: 0, y: 0 };
var height = box.height - 2;
var width = box.width - 2;
@@ -15790,8 +17335,8 @@ function getPicker(colorpicker, pickerState, handlers) {
var gripLeft = (pickerState.hsv.s * width) - 4;
var rangeWidth = box.width - 6;
var rangeGripLeft = rangeWidth - ((360 - pickerState.hsv.h) / 360) * rangeWidth;
- var inputValue = pickerState.customHex ?
- pickerState.customHex.replace("#", "")
+ var inputValue = color_1.isHex(pickerState.customHex)
+ ? pickerState.customHex.replace("#", "")
: pickerState.background.replace("#", "");
return dom_1.el(".dhx_colorpicker-picker", {}, [
dom_1.el(".dhx_colorpicker-picker__palette", {
@@ -15821,7 +17366,7 @@ function getPicker(colorpicker, pickerState, handlers) {
]),
dom_1.el(".dhx_colorpicker-value", [
dom_1.el(".dhx_colorpicker-value__color", { style: { background: pickerState.background } }),
- dom_1.el(".dhx_colorpicker-value__input-wrapper", [
+ dom_1.el(".dhx_colorpicker-value__input__wrapper", [
dom_1.el("input", {
class: "dhx_colorpicker-value__input",
value: inputValue,
@@ -15859,7 +17404,7 @@ exports.calculatePaletteGrip = calculatePaletteGrip;
/***/ }),
-/* 133 */
+/* 138 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -15890,7 +17435,7 @@ exports.calculateRangeGrip = calculateRangeGrip;
/***/ }),
-/* 134 */
+/* 139 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -15899,12 +17444,12 @@ function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(135));
+__export(__webpack_require__(140));
__export(__webpack_require__(6));
/***/ }),
-/* 135 */
+/* 140 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -15935,16 +17480,17 @@ var __assign = (this && this.__assign) || function () {
};
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var events_1 = __webpack_require__(2);
+var events_1 = __webpack_require__(3);
var view_1 = __webpack_require__(4);
var ts_data_1 = __webpack_require__(7);
-var ComposeLayer_1 = __webpack_require__(136);
-var Legend_1 = __webpack_require__(138);
-var index_1 = __webpack_require__(140);
-var index_2 = __webpack_require__(144);
-var Stacker_1 = __webpack_require__(154);
-var Tooltip_1 = __webpack_require__(155);
+var ComposeLayer_1 = __webpack_require__(141);
+var Legend_1 = __webpack_require__(143);
+var Tooltip_1 = __webpack_require__(145);
var types_1 = __webpack_require__(6);
+var index_1 = __webpack_require__(146);
+var index_2 = __webpack_require__(150);
+var Stacker_1 = __webpack_require__(160);
+var common_1 = __webpack_require__(5);
var Chart = /** @class */ (function (_super) {
__extends(Chart, _super);
function Chart(node, config) {
@@ -15962,9 +17508,14 @@ var Chart = /** @class */ (function (_super) {
maxNum: config.maxPoints
};
}
- if (config.data) {
+ if (Array.isArray(config.data)) {
+ _this.events = new events_1.EventSystem(_this);
+ _this.data = new ts_data_1.DataCollection(dataConfig, _this.events);
+ _this.data.parse(config.data);
+ }
+ else if (config.data && config.data.events) {
_this.data = config.data;
- _this.events = config.data.events;
+ _this.events = _this.data.events;
_this.events.context = _this;
}
else {
@@ -16017,6 +17568,7 @@ var Chart = /** @class */ (function (_super) {
content.push(_this._layers.toVDOM(_this._width, _this._height));
}
return dom_1.el(".dhx_widget.dhx_chart", {
+ class: config.css ? config.css : "",
onmousemove: _this._globalHTMLHandlers.onmousemove,
onmouseleave: _this._globalHTMLHandlers.onmouseleave
}, content);
@@ -16045,9 +17597,14 @@ var Chart = /** @class */ (function (_super) {
this._layers.clear();
this._series = {};
this._scales = {};
+ var min;
+ // let baseLine;
if (config.scales) {
for (var key in config.scales) {
var scale = __assign({}, config.scales[key]);
+ if (config.scales[key].min !== undefined) {
+ min = config.scales[key].min;
+ }
scale.type = scale.type || this._detectScaleType(scale, key);
if (config.scales.radial && key !== "radial") {
scale.hidden = true;
@@ -16058,6 +17615,9 @@ var Chart = /** @class */ (function (_super) {
var stack = new Stacker_1.default();
this._layers.add(stack);
config.series.forEach(function (cfg) {
+ if (cfg.baseLine !== undefined && cfg.baseLine < min) {
+ cfg.baseLine = undefined;
+ }
var serieConfig = __assign({}, cfg);
serieConfig.type = serieConfig.type || config.type;
var chartFactory = index_2.default[serieConfig.type];
@@ -16065,7 +17625,9 @@ var Chart = /** @class */ (function (_super) {
serieConfig.barWidth = serieConfig.barWidth || _this.config.barWidth;
}
var chart = new chartFactory(_this.data, serieConfig, _this.events);
- var chartScales = serieConfig.scales || [types_1.ScaleType.bottom, types_1.ScaleType.left];
+ var scales = common_1.getScales(config.scales);
+ var chartScales = (scales.length > 1 && scales[0] !== "radial") ? scales :
+ scales[0] === "radial" ? scales : [types_1.ScaleType.bottom, types_1.ScaleType.left];
chartScales.forEach(function (type) {
var scale = _this._scales[type];
if (!scale) {
@@ -16140,14 +17702,14 @@ exports.Chart = Chart;
/***/ }),
-/* 136 */
+/* 141 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var Filters_1 = __webpack_require__(137);
+var Filters_1 = __webpack_require__(142);
var ComposeLayer = /** @class */ (function () {
function ComposeLayer() {
this._data = [];
@@ -16186,9 +17748,16 @@ var ComposeLayer = /** @class */ (function () {
this._sizes = sizes;
var chartsContent = dom_1.sv("g", {
transform: "translate(" + sizes.left + ", " + sizes.top + ")"
- }, toPaint.map(function (item) {
- return item.paint(width - (sizes.left + sizes.right), height - (sizes.top + sizes.bottom));
- }));
+ }, [
+ dom_1.sv("rect.dhx_chart-graph_area", {
+ width: width - sizes.left - sizes.right,
+ height: height - sizes.top - sizes.bottom,
+ fill: "transparent"
+ }),
+ toPaint.map(function (item) {
+ return item.paint(width - (sizes.left + sizes.right), height - (sizes.top + sizes.bottom));
+ })
+ ]);
var defs = dom_1.sv("defs", [Filters_1.dropShadow(), Filters_1.shadow()]);
return dom_1.sv("svg", {
width: width,
@@ -16201,7 +17770,7 @@ exports.ComposeLayer = ComposeLayer;
/***/ }),
-/* 137 */
+/* 142 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -16243,7 +17812,7 @@ exports.dropShadow = function () { return dom_1.sv("filter", {
/***/ }),
-/* 138 */
+/* 143 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -16263,7 +17832,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
var types_1 = __webpack_require__(6);
var dom_1 = __webpack_require__(0);
var common_1 = __webpack_require__(5);
-var legend_1 = __webpack_require__(139);
+var legend_1 = __webpack_require__(144);
function getDefaultMargin(halign, valign) {
switch (valign) {
case types_1.VerticalPosition.middle: {
@@ -16293,7 +17862,7 @@ var Legend = /** @class */ (function () {
halign: types_1.HorizontalPosition.right,
valign: types_1.VerticalPosition.middle
};
- this.config = __assign({}, defaults, config);
+ this.config = __assign(__assign({}, defaults), config);
this.config.margin = config.margin || getDefaultMargin(this.config.halign, this.config.valign);
this._handlers = {
onclick: function (id, pieLike) { return _this._events.fire(types_1.ChartEvents.toggleSeries, [id, pieLike]); }
@@ -16414,7 +17983,7 @@ exports.Legend = Legend;
/***/ }),
-/* 139 */
+/* 144 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -16460,15 +18029,228 @@ exports.legendShape = legendShape;
/***/ }),
-/* 140 */
+/* 145 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var dom_1 = __webpack_require__(0);
+var common_1 = __webpack_require__(5);
+var types_1 = __webpack_require__(6);
+var view_1 = __webpack_require__(4);
+var getAttrs = function (textWidth, x, y, type, chartType) {
+ var dy = chartType === types_1.ChartType.bar ? 5 : 0;
+ switch (type) {
+ case types_1.TooltipType.top: {
+ var h1 = (textWidth + 20 - 8 - 4) / 2;
+ var h2 = textWidth + 20 - 4;
+ var d = "M0 0 l4 -4 h" + h1 + " a2 2 0 0 0 2 -2 v-18 a2 2 0 0 0 -2 -2 h" + -h2 + " a2 2 0 0 0 -2 2 v18 a2 2 0 0 0 2 2 h" + h1 + " Z";
+ var textX = 0;
+ var textY = -15;
+ return {
+ d: d,
+ left: x,
+ top: y - 6 + dy,
+ textX: textX,
+ textY: textY
+ };
+ }
+ case types_1.TooltipType.bot: {
+ var h1 = (textWidth + 20 - 8 - 4) / 2;
+ var h2 = textWidth + 20 - 4;
+ var d = "M0 0 l4 4 h" + h1 + " a2 2 0 0 1 2 2 v18 a2 2 0 0 1 -2 2 h" + -h2 + " a2 2 0 0 1 -2 -2 v-18 a2 2 0 0 1 2 -2 h" + h1 + " Z";
+ var textX = 0;
+ var textY = 15;
+ return {
+ d: d,
+ left: x,
+ top: y + 6 - dy,
+ textX: textX,
+ textY: textY
+ };
+ }
+ case types_1.TooltipType.right: {
+ var h = textWidth + 20 - 4;
+ var d = "M0 0 l4 -4 v-5 a2 2 0 0 1 2 -2 h" + h + " a2 2 0 0 1 2 2 v18 a2 2 0 0 1 -2 2 h" + -h + " a2 2 0 0 1 -2 -2 v-5 Z";
+ var textX = h / 2 + 6;
+ var textY = 0;
+ return {
+ d: d,
+ left: x + 1,
+ top: y,
+ textX: textX,
+ textY: textY
+ };
+ }
+ case types_1.TooltipType.left: {
+ var h = textWidth + 20 - 4;
+ var d = "M0 0 l-4 -4 v-5 a2 2 0 0 0 -2 -2 h" + -h + " a2 2 0 0 0 -2 2 v18 a2 2 0 0 0 2 2 h" + h + " a2 2 0 0 0 2 -2 v-5 Z";
+ var textX = -h / 2 - 6;
+ var textY = 0;
+ return {
+ d: d,
+ left: x - 1,
+ top: y,
+ textX: textX,
+ textY: textY
+ };
+ }
+ case types_1.TooltipType.simple: {
+ var h = textWidth + 20 - 4;
+ var d = "M0 0 v-4 a2 2 0 0 1 2 -2 h" + h + " a2 2 0 0 1 2 2 v18 a2 2 0 0 1 -2 2 h" + -h + " a2 2 0 0 1 -2 -2 v-6 Z";
+ var textX = h / 2 + 2;
+ var textY = 6;
+ return {
+ d: d,
+ left: x - h / 2 - 2,
+ top: y - 5,
+ textX: textX,
+ textY: textY
+ };
+ }
+ }
+};
+var Tooltip = /** @class */ (function (_super) {
+ __extends(Tooltip, _super);
+ function Tooltip(container, config) {
+ var _this = _super.call(this, container, config) || this;
+ _this._chart = config.chart;
+ _this._state = {
+ leftOffset: 0,
+ topOffset: 0,
+ value: "",
+ x: 0,
+ y: 0,
+ type: null,
+ chartType: null,
+ isVisible: false
+ };
+ _this.mount(container, dom_1.create({ render: function () { return _this._draw(); } }));
+ _this._chart.events.on(types_1.ChartEvents.chartMouseMove, function (x, y, left, top) {
+ var closest = [Infinity, null, null, null, null]; // (dist, x, y, id, serieid)
+ _this._chart.eachSeries(function (serie) {
+ var serieClosest = serie.getClosest(x, y);
+ if (closest[0] > serieClosest[0]) {
+ closest[0] = serieClosest[0];
+ closest[1] = serieClosest[1];
+ closest[2] = serieClosest[2];
+ closest[3] = serieClosest[3];
+ closest[4] = serie.id;
+ }
+ });
+ var tooltipSeries = _this._chart.getSeries(closest[4]);
+ if (tooltipSeries) {
+ var ref = common_1.calcPointRef(closest[3], closest[4]);
+ if (ref === _this._lastPointRef) {
+ return;
+ }
+ var text = tooltipSeries.getTooltipText(closest[3]);
+ if (text) {
+ var tooltipType = tooltipSeries.getTooltipType(closest[3], closest[1], closest[2]);
+ _this._enableActivePoint(ref);
+ _this._state.leftOffset = left;
+ _this._state.topOffset = top;
+ _this._state.value = text;
+ _this._state.x = closest[1];
+ _this._state.y = closest[2];
+ _this._state.type = tooltipType;
+ _this._state.chartType = tooltipSeries.config.type;
+ _this._state.isVisible = true;
+ _this.paint();
+ }
+ }
+ }, _this);
+ _this._chart.events.on(types_1.ChartEvents.chartMouseLeave, function () { return _this._hide(); }, _this);
+ return _this;
+ }
+ Tooltip.prototype.destructor = function () {
+ this._chart.events.detach(types_1.ChartEvents.chartMouseLeave, this);
+ this._chart.events.detach(types_1.ChartEvents.chartMouseMove, this);
+ this.unmount();
+ };
+ Tooltip.prototype._hide = function () {
+ this._disableLastActivePoint();
+ this._state.isVisible = false;
+ this.paint();
+ };
+ Tooltip.prototype._enableActivePoint = function (ref) {
+ var rootView = this._chart.getRootView();
+ var point = rootView && rootView.refs && rootView.refs[ref];
+ if (point) {
+ this._disableLastActivePoint();
+ this._lastPointRef = ref;
+ point.patch({ class: point.attrs.class + " active-figure" });
+ }
+ };
+ Tooltip.prototype._disableLastActivePoint = function () {
+ if (this._lastPointRef) {
+ var rootView = this._chart.getRootView();
+ var point = rootView && rootView.refs && rootView.refs[this._lastPointRef];
+ if (point) {
+ point.patch({ class: point.attrs.class.replace(" active-figure", "") });
+ }
+ this._lastPointRef = null;
+ }
+ };
+ Tooltip.prototype._draw = function () {
+ var _a = this._state, value = _a.value, x = _a.x, y = _a.y, type = _a.type, chartType = _a.chartType, isVisible = _a.isVisible;
+ var attrs;
+ if (isVisible && value !== "") {
+ var style = common_1.getFontStyle("tooltip-text");
+ var textWidth = common_1.getTextWidth(value, style);
+ attrs = getAttrs(textWidth, x, y, type || types_1.TooltipType.top, chartType);
+ }
+ else {
+ attrs = { textX: 0, textY: 0, d: null, left: 0, top: 0 };
+ }
+ return dom_1.el(".dhx_chart.tooltip-container", {
+ style: {
+ pointerEvents: "none",
+ width: 0,
+ height: 0,
+ visibility: isVisible ? "visible" : "hidden",
+ position: "absolute",
+ left: attrs.left + this._state.leftOffset + "px",
+ top: attrs.top + this._state.topOffset + "px"
+ }
+ }, isVisible ? [
+ dom_1.sv("svg", [
+ dom_1.sv("path", { d: attrs.d, class: "tooltip-form" }),
+ dom_1.sv("text", { x: attrs.textX, y: attrs.textY, class: "tooltip-text" }, [
+ common_1.verticalCenteredText(value)
+ ])
+ ])
+ ] : null);
+ };
+ return Tooltip;
+}(view_1.View));
+exports.Tooltip = Tooltip;
+
+
+/***/ }),
+/* 146 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var RadialScale_1 = __webpack_require__(141);
-var Scale_1 = __webpack_require__(42);
-var TextScale_1 = __webpack_require__(143);
+var RadialScale_1 = __webpack_require__(147);
+var Scale_1 = __webpack_require__(45);
+var TextScale_1 = __webpack_require__(149);
var scaleTypes = {
radial: RadialScale_1.RadialScale,
text: TextScale_1.TextScale,
@@ -16478,7 +18260,7 @@ exports.default = scaleTypes;
/***/ }),
-/* 141 */
+/* 147 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -16497,9 +18279,9 @@ var __extends = (this && this.__extends) || (function () {
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
-var circle_1 = __webpack_require__(24);
+var circle_1 = __webpack_require__(26);
var types_1 = __webpack_require__(6);
-var Scale_1 = __webpack_require__(42);
+var Scale_1 = __webpack_require__(45);
var RadialScale = /** @class */ (function (_super) {
__extends(RadialScale, _super);
function RadialScale(_data, config) {
@@ -16527,7 +18309,7 @@ exports.RadialScale = RadialScale;
/***/ }),
-/* 142 */
+/* 148 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -16543,6 +18325,13 @@ var __assign = (this && this.__assign) || function () {
};
return __assign.apply(this, arguments);
};
+var __spreadArrays = (this && this.__spreadArrays) || function () {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+};
Object.defineProperty(exports, "__esModule", { value: true });
var common_1 = __webpack_require__(5);
var allowedBases = [1, 2, 3, 5, 10];
@@ -16555,7 +18344,7 @@ var AxisCreator = /** @class */ (function () {
max: Math.max.apply(Math, this._data),
maxTicks: this._data.length < 20 ? this._data.length : 20
};
- this.config = __assign({}, defaults, conf);
+ this.config = __assign(__assign({}, defaults), conf);
if (this.config.padding) {
this._addPadding();
}
@@ -16581,7 +18370,7 @@ var AxisCreator = /** @class */ (function () {
var exponent = Math.floor(common_1.log10(dif / ticks));
var step = Math.pow(10, exponent);
var rawBase = (dif / step) / ticks;
- var nearestBase = allowedBases[allowedBases.concat([rawBase]).sort(function (a, b) { return a - b; }).indexOf(rawBase)];
+ var nearestBase = allowedBases[__spreadArrays(allowedBases, [rawBase]).sort(function (a, b) { return a - b; }).indexOf(rawBase)];
return nearestBase * step;
};
AxisCreator.prototype._calculateSteps = function (step) {
@@ -16623,7 +18412,7 @@ exports.AxisCreator = AxisCreator;
/***/ }),
-/* 143 */
+/* 149 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -16654,8 +18443,8 @@ var __assign = (this && this.__assign) || function () {
};
Object.defineProperty(exports, "__esModule", { value: true });
var common_1 = __webpack_require__(5);
-var Scale_1 = __webpack_require__(42);
-var SvgScales_1 = __webpack_require__(68);
+var Scale_1 = __webpack_require__(45);
+var SvgScales_1 = __webpack_require__(70);
var renderScale = {
left: SvgScales_1.left,
right: SvgScales_1.right,
@@ -16727,7 +18516,7 @@ var TextScale = /** @class */ (function (_super) {
showText: true
};
this.locator = common_1.locator(config.text);
- this.config = __assign({}, defaults, config);
+ this.config = __assign(__assign({}, defaults), config);
};
TextScale.prototype._getAxisPoint = function (index) {
var max = this._axis.max;
@@ -16747,23 +18536,23 @@ exports.TextScale = TextScale;
/***/ }),
-/* 144 */
+/* 150 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var Area_1 = __webpack_require__(69);
-var Bar_1 = __webpack_require__(70);
-var BarX_1 = __webpack_require__(146);
-var Donut_1 = __webpack_require__(147);
-var Line_1 = __webpack_require__(46);
-var Pie_1 = __webpack_require__(148);
-var Pie3D_1 = __webpack_require__(149);
-var Radar_1 = __webpack_require__(150);
-var Scatter_1 = __webpack_require__(151);
-var Spline_1 = __webpack_require__(152);
-var SplineArea_1 = __webpack_require__(153);
+var Area_1 = __webpack_require__(71);
+var Bar_1 = __webpack_require__(72);
+var BarX_1 = __webpack_require__(152);
+var Donut_1 = __webpack_require__(153);
+var Line_1 = __webpack_require__(49);
+var Pie_1 = __webpack_require__(154);
+var Pie3D_1 = __webpack_require__(155);
+var Radar_1 = __webpack_require__(156);
+var Scatter_1 = __webpack_require__(157);
+var Spline_1 = __webpack_require__(158);
+var SplineArea_1 = __webpack_require__(159);
var seriesTypes = {
line: Line_1.default, spline: Spline_1.default, area: Area_1.default, splineArea: SplineArea_1.default, scatter: Scatter_1.default, pie: Pie_1.default, pie3D: Pie3D_1.default, donut: Donut_1.default, radar: Radar_1.default, bar: Bar_1.default, xbar: BarX_1.default
};
@@ -16771,7 +18560,7 @@ exports.default = seriesTypes;
/***/ }),
-/* 145 */
+/* 151 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -16885,7 +18674,7 @@ exports.getShadeHelper = getShadeHelper;
/***/ }),
-/* 146 */
+/* 152 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -16905,7 +18694,7 @@ var __extends = (this && this.__extends) || (function () {
})();
Object.defineProperty(exports, "__esModule", { value: true });
var types_1 = __webpack_require__(6);
-var Bar_1 = __webpack_require__(70);
+var Bar_1 = __webpack_require__(72);
var BarX = /** @class */ (function (_super) {
__extends(BarX, _super);
function BarX() {
@@ -16957,11 +18746,14 @@ var BarX = /** @class */ (function (_super) {
var baseLine = this.config.baseLine;
return this._baseLinePosition = baseLine !== undefined ? this.yScale.point(baseLine) * height : 0;
};
- BarX.prototype._text = function (item, prev) {
+ BarX.prototype._text = function (item, prev, rotate) {
+ var x = (prev + item[1]) / 2;
+ var y = item[0];
+ var canRotate = rotate && !isNaN(rotate);
return {
- y: item[0],
- x: (prev + item[1]) / 2,
- class: "bar-text"
+ x: x, y: y,
+ class: "bar-text",
+ transform: canRotate ? "rotate(" + rotate + " " + x + " " + y + ")" : ""
};
};
return BarX;
@@ -16970,7 +18762,7 @@ exports.default = BarX;
/***/ }),
-/* 147 */
+/* 153 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -16990,10 +18782,10 @@ var __extends = (this && this.__extends) || (function () {
})();
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var circle_1 = __webpack_require__(24);
+var circle_1 = __webpack_require__(26);
var common_1 = __webpack_require__(5);
var types_1 = __webpack_require__(6);
-var NoScaleSeria_1 = __webpack_require__(45);
+var NoScaleSeria_1 = __webpack_require__(48);
var Donut = /** @class */ (function (_super) {
__extends(Donut, _super);
function Donut() {
@@ -17002,13 +18794,13 @@ var Donut = /** @class */ (function (_super) {
Donut.prototype.paint = function (width, height) {
var _this = this;
var radius = height / 2;
- var currentPercent = -.25; // 0 percent is (1, 0) point, -.25 is (0, -1) point
+ var currentPercent = -.25;
var svg = [];
var links = [];
var tooltipData = [];
- var err = this._points.length === 1 ? -.000001 : 0;
this._points.forEach(function (item) {
var percent = item[0], value = item[1], id = item[2], text = item[3], color = item[4];
+ var err = percent === 0 || percent === 1 ? -0.000001 : 0;
var _a = circle_1.getCoordinates(currentPercent, radius, radius), startX = _a[0], startY = _a[1];
var avPercent = currentPercent + percent / 2;
currentPercent += percent + err;
@@ -17046,7 +18838,11 @@ var Donut = /** @class */ (function (_super) {
break;
}
case types_1.NoScaleSubType.percentOnly:
- var percentText = dom_1.sv("text", { x: middleLine[0] * 7 / 9, y: middleLine[1] * 7 / 9, class: "pie-inner-value" }, [
+ var percentText = dom_1.sv("text", {
+ x: middleLine[0] * 7 / 9,
+ y: middleLine[1] * 7 / 9,
+ class: "pie-inner-value"
+ }, [
common_1.verticalCenteredText(Math.round(percent * 100) + "%")
]);
links.push(percentText);
@@ -17058,6 +18854,7 @@ var Donut = /** @class */ (function (_super) {
_key: id,
fill: color,
class: "chart donut",
+ onclick: [_this._handlers.onclick, item[1], item[2]],
onmouseout: [circle_1.pieLikeHandlers.onmouseout],
onmouseover: [circle_1.pieLikeHandlers.onmouseover, shiftX, shiftY]
});
@@ -17086,7 +18883,7 @@ exports.default = Donut;
/***/ }),
-/* 148 */
+/* 154 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -17118,10 +18915,10 @@ var __assign = (this && this.__assign) || function () {
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(1);
var dom_1 = __webpack_require__(0);
-var circle_1 = __webpack_require__(24);
+var circle_1 = __webpack_require__(26);
var common_1 = __webpack_require__(5);
var types_1 = __webpack_require__(6);
-var NoScaleSeria_1 = __webpack_require__(45);
+var NoScaleSeria_1 = __webpack_require__(48);
var Pie = /** @class */ (function (_super) {
__extends(Pie, _super);
function Pie() {
@@ -17129,7 +18926,7 @@ var Pie = /** @class */ (function (_super) {
}
Pie.prototype.paint = function (width, height) {
var _this = this;
- var _a = this.config, stroke = _a.stroke, strokeWidth = _a.strokeWidth, gradient = _a.gradient, useLines = _a.useLines, showText = _a.showText;
+ var _a = this.config, stroke = _a.stroke, strokeWidth = _a.strokeWidth, gradient = _a.gradient, useLines = _a.useLines, showText = _a.showText, showTextTemplate = _a.showTextTemplate, subType = _a.subType;
var radius = height / 2;
var currentPercent = -.25; // 0 percent is (1, 0) point, -.25 is (0, -1) point
var tooltipData = [];
@@ -17138,9 +18935,9 @@ var Pie = /** @class */ (function (_super) {
var links = [];
var pie = [];
var lines = [];
- var err = this._points.length === 1 ? -.000001 : 0; // if move to start point it will be empty circle
this._points.forEach(function (item) {
var percent = item[0], value = item[1], id = item[2], text = item[3], color = item[4];
+ var err = percent === 0 || percent === 1 ? -0.000001 : 0;
var fill = color;
if (gradient) {
var grad = gradient(color);
@@ -17157,8 +18954,16 @@ var Pie = /** @class */ (function (_super) {
var _c = [circle_1.getCoordinates(avPercent, radius + startPart, radius + startPart), circle_1.getCoordinates(avPercent, radius + endPart, radius + endPart)], linkStart = _c[0], linkEnd = _c[1];
var className = avPercent > -0.25 && avPercent < 0.25 ? "pie-value start-text" : "pie-value end-text";
if (useLines) {
- links.push(dom_1.sv("path", { d: "M" + linkStart[0] + " " + linkStart[1] + " L" + linkEnd[0] + " " + linkEnd[1] + " h " + lineLength, class: "pie-value-connector" }));
- var textSvg = dom_1.sv("text", { x: linkEnd[0], y: linkEnd[1], dx: lineLength / 2 + lineLength > 0 ? 10 : -10, class: className }, [
+ links.push(dom_1.sv("path", {
+ d: "M" + linkStart[0] + " " + linkStart[1] + " L" + linkEnd[0] + " " + linkEnd[1] + " h " + lineLength,
+ class: "pie-value-connector"
+ }));
+ var textSvg = dom_1.sv("text", {
+ x: linkEnd[0],
+ y: linkEnd[1],
+ dx: lineLength / 2 + lineLength > 0 ? 10 : -10,
+ class: className
+ }, [
common_1.verticalCenteredText(text.toString())
]);
links.push(textSvg);
@@ -17171,14 +18976,22 @@ var Pie = /** @class */ (function (_super) {
]);
links.push(textSvg);
}
- if (showText) {
- var linkText = dom_1.sv("text", { x: middleLine[0] * .7, y: middleLine[1] * .7, class: "pie-inner-value" }, [
- common_1.verticalCenteredText(value.toString())
+ if (showText || showTextTemplate) {
+ var linkText = dom_1.sv("text", {
+ x: middleLine[0] * .7,
+ y: middleLine[1] * .7,
+ class: "pie-inner-value"
+ }, [
+ showTextTemplate ? common_1.verticalCenteredText(showTextTemplate(value.toString())) : common_1.verticalCenteredText(value.toString())
]);
links.push(linkText);
}
- if (_this.config.subType === types_1.NoScaleSubType.percentOnly) {
- var percentText = dom_1.sv("text", { x: middleLine[0] * 0.5, y: middleLine[1] * 0.5, class: "pie-inner-value" }, [
+ if (subType === types_1.NoScaleSubType.percentOnly) {
+ var percentText = dom_1.sv("text", {
+ x: middleLine[0] * 0.5,
+ y: middleLine[1] * 0.5,
+ class: "pie-inner-value"
+ }, [
common_1.verticalCenteredText(Math.round(percent * 100) + "%")
]);
links.push(percentText);
@@ -17193,6 +19006,7 @@ var Pie = /** @class */ (function (_super) {
class: "chart pie",
_key: id,
fill: fill,
+ onclick: [_this._handlers.onclick, item[1], item[2]],
onmouseover: [circle_1.pieLikeHandlers.onmouseover, shiftX, shiftY],
onmouseout: [circle_1.pieLikeHandlers.onmouseout]
});
@@ -17226,7 +19040,7 @@ exports.default = Pie;
/***/ }),
-/* 149 */
+/* 155 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -17246,10 +19060,10 @@ var __extends = (this && this.__extends) || (function () {
})();
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var circle_1 = __webpack_require__(24);
+var circle_1 = __webpack_require__(26);
var common_1 = __webpack_require__(5);
var types_1 = __webpack_require__(6);
-var NoScaleSeria_1 = __webpack_require__(45);
+var NoScaleSeria_1 = __webpack_require__(48);
var Pie = /** @class */ (function (_super) {
__extends(Pie, _super);
function Pie() {
@@ -17257,6 +19071,7 @@ var Pie = /** @class */ (function (_super) {
}
Pie.prototype.paint = function (width, height) {
var _this = this;
+ var _a = this.config, subType = _a.subType, useLines = _a.useLines, showText = _a.showText, showTextTemplate = _a.showTextTemplate;
var radiusX = height / 2;
var radiusY = radiusX * .5;
var connector = radiusX / 5;
@@ -17264,9 +19079,9 @@ var Pie = /** @class */ (function (_super) {
var currentPercent = -.25;
var svg = [];
var links = [];
- var err = this._points.length === 1 ? -.000001 : 0;
this._points.forEach(function (item) {
var percent = item[0], value = item[1], id = item[2], text = item[3], color = item[4];
+ var err = percent === 0 || percent === 1 ? -0.000001 : 0;
var _a = circle_1.getCoordinates(currentPercent, radiusX, radiusY), startX = _a[0], startY = _a[1];
var avPercent = currentPercent + percent / 2;
var lineLength = avPercent < .25 ? 5 : -5;
@@ -17275,16 +19090,23 @@ var Pie = /** @class */ (function (_super) {
if (avPercent > 0 && avPercent < 0.5) {
delta = connector * Math.sin(2 * Math.PI * avPercent);
}
- //
var linkStart = circle_1.getCoordinates(avPercent, radiusX + 5 + delta, radiusY + 5 + delta);
var linkEnd = circle_1.getCoordinates(avPercent, radiusX + 30 + delta, radiusY + 30 + delta);
var nextPercent = currentPercent + percent + err;
var _b = circle_1.getCoordinates(nextPercent, radiusX, radiusY), endX = _b[0], endY = _b[1];
var largeArcFlag = percent > .5 ? 1 : 0;
var className = avPercent > -0.25 && avPercent < 0.25 ? "pie-value start-text" : "pie-value end-text";
- if (_this.config.useLines) {
- links.push(dom_1.sv("path", { d: "M" + linkStart[0] + " " + linkStart[1] + " L" + linkEnd[0] + " " + linkEnd[1] + " h " + lineLength, class: "pie-value-connector" }));
- var textSvg = dom_1.sv("text", { x: linkEnd[0], y: linkEnd[1], dx: lineLength / 2 + lineLength > 0 ? 10 : -10, class: className }, [
+ if (useLines) {
+ links.push(dom_1.sv("path", {
+ d: "M" + linkStart[0] + " " + linkStart[1] + " L" + linkEnd[0] + " " + linkEnd[1] + " h " + lineLength,
+ class: "pie-value-connector"
+ }));
+ var textSvg = dom_1.sv("text", {
+ x: linkEnd[0],
+ y: linkEnd[1],
+ dx: lineLength / 2 + lineLength > 0 ? 10 : -10,
+ class: className
+ }, [
common_1.verticalCenteredText(text.toString())
]);
links.push(textSvg);
@@ -17297,14 +19119,18 @@ var Pie = /** @class */ (function (_super) {
]);
links.push(textSvg);
}
- if (_this.config.showText) {
+ if (showText || showTextTemplate) {
var textSvg = dom_1.sv("text", { x: middleLine[0] * .7, y: middleLine[1] * .7, class: "pie-inner-value" }, [
- common_1.verticalCenteredText(value.toString())
+ showTextTemplate ? common_1.verticalCenteredText(showTextTemplate(value)) : common_1.verticalCenteredText(value.toString())
]);
links.push(textSvg);
}
- if (_this.config.subType === types_1.NoScaleSubType.percentOnly) {
- var percentText = dom_1.sv("text", { x: middleLine[0] * 0.6, y: middleLine[1] * 0.6, class: "pie-inner-value" }, [
+ if (subType === types_1.NoScaleSubType.percentOnly) {
+ var percentText = dom_1.sv("text", {
+ x: middleLine[0] * 0.6,
+ y: middleLine[1] * 0.6,
+ class: "pie-inner-value"
+ }, [
common_1.verticalCenteredText(Math.round(percent * 100) + "%")
]);
links.push(percentText);
@@ -17324,7 +19150,15 @@ var Pie = /** @class */ (function (_super) {
addition = "M " + startX + " " + startY + " v " + connector + " A " + radiusX + " " + radiusY + " 0 0 1 " + endX + " " + (endY + connector) + " v " + -connector;
}
if (addition) {
- var additionPath = dom_1.sv("path", { d: addition, fill: color, class: "chart pie3d addition", stroke: "none", filter: "url(#shadow)" });
+ var additionPath = dom_1.sv("path", {
+ _key: id + "__shadow__",
+ d: addition,
+ fill: color,
+ onclick: [_this._handlers.onclick, item[1], item[2]],
+ class: "chart pie3d addition",
+ stroke: "none",
+ filter: "url(#shadow)"
+ });
svg.push(additionPath);
}
// end 3d block
@@ -17334,6 +19168,7 @@ var Pie = /** @class */ (function (_super) {
_key: id,
fill: color,
stroke: "none",
+ onclick: [_this._handlers.onclick, item[1], item[2]],
class: "chart pie3d"
}));
if (_this._points.length === 1) {
@@ -17355,7 +19190,7 @@ exports.default = Pie;
/***/ }),
-/* 150 */
+/* 156 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -17386,10 +19221,10 @@ var __assign = (this && this.__assign) || function () {
};
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var circle_1 = __webpack_require__(24);
+var circle_1 = __webpack_require__(26);
var common_1 = __webpack_require__(5);
var types_1 = __webpack_require__(6);
-var BaseSeria_1 = __webpack_require__(44);
+var BaseSeria_1 = __webpack_require__(47);
var Radar = /** @class */ (function (_super) {
__extends(Radar, _super);
function Radar() {
@@ -17466,7 +19301,9 @@ var Radar = /** @class */ (function (_super) {
item[1] = real[1] + height / 2;
});
};
- Radar.prototype._defaultLocator = function (v) { return this._locator(v); };
+ Radar.prototype._defaultLocator = function (v) {
+ return this._locator(v);
+ };
Radar.prototype._setDefaults = function (config) {
var defaults = {
strokeWidth: 2,
@@ -17479,7 +19316,7 @@ var Radar = /** @class */ (function (_super) {
};
this._locator = common_1.locator(config.value);
config.scales = config.scales || [types_1.ScaleType.radial];
- this.config = __assign({}, defaults, config);
+ this.config = __assign(__assign({}, defaults), config);
if (this.config.pointType) {
var color = this.config.pointColor || this.config.color;
this._drawPointType = this._getPointType(this.config.pointType, color, this.config.tooltip);
@@ -17491,7 +19328,7 @@ exports.default = Radar;
/***/ }),
-/* 151 */
+/* 157 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -17522,7 +19359,7 @@ var __assign = (this && this.__assign) || function () {
};
Object.defineProperty(exports, "__esModule", { value: true });
var types_1 = __webpack_require__(6);
-var Line_1 = __webpack_require__(46);
+var Line_1 = __webpack_require__(49);
var common_1 = __webpack_require__(5);
var Scatter = /** @class */ (function (_super) {
__extends(Scatter, _super);
@@ -17545,7 +19382,7 @@ var Scatter = /** @class */ (function (_super) {
tooltip: true,
pointType: types_1.PointType.rect
};
- this.config = __assign({}, defaults, config);
+ this.config = __assign(__assign({}, defaults), config);
var showTooltip = this.config.tooltip;
var point = this.config.pointType;
var color = this.config.pointColor || this.config.color;
@@ -17559,7 +19396,7 @@ exports.default = Scatter;
/***/ }),
-/* 152 */
+/* 158 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -17579,8 +19416,8 @@ var __extends = (this && this.__extends) || (function () {
})();
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var spline_1 = __webpack_require__(71);
-var Line_1 = __webpack_require__(46);
+var spline_1 = __webpack_require__(73);
+var Line_1 = __webpack_require__(49);
var Spline = /** @class */ (function (_super) {
__extends(Spline, _super);
function Spline() {
@@ -17605,7 +19442,7 @@ exports.default = Spline;
/***/ }),
-/* 153 */
+/* 159 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -17625,8 +19462,8 @@ var __extends = (this && this.__extends) || (function () {
})();
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var spline_1 = __webpack_require__(71);
-var Area_1 = __webpack_require__(69);
+var spline_1 = __webpack_require__(73);
+var Area_1 = __webpack_require__(71);
var SplineArea = /** @class */ (function (_super) {
__extends(SplineArea, _super);
function SplineArea() {
@@ -17672,7 +19509,7 @@ exports.default = SplineArea;
/***/ }),
-/* 154 */
+/* 160 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -17708,229 +19545,25 @@ var Stacker = /** @class */ (function () {
var markers = [];
this._toPaint.forEach(function (seria) {
if (seria.paintformAndMarkers) {
- var _a = seria.paintformAndMarkers(width, height, prev), content = _a[0], seriesMarkers = _a[1];
- svg.push(content);
- markers.push(seriesMarkers);
- }
- else {
- var content = seria.paint(width, height, prev);
- svg.push(content);
- }
- prev = seria.getPoints();
- });
- return dom_1.sv("g", svg.concat(markers));
- };
- return Stacker;
-}());
-exports.default = Stacker;
-
-
-/***/ }),
-/* 155 */
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
-})();
-Object.defineProperty(exports, "__esModule", { value: true });
-var dom_1 = __webpack_require__(0);
-var common_1 = __webpack_require__(5);
-var types_1 = __webpack_require__(6);
-var view_1 = __webpack_require__(4);
-var getAttrs = function (textWidth, x, y, type, chartType) {
- var dy = chartType === types_1.ChartType.bar ? 5 : 0;
- switch (type) {
- case types_1.TooltipType.top: {
- var h1 = (textWidth + 20 - 8 - 4) / 2;
- var h2 = textWidth + 20 - 4;
- var d = "M0 0 l4 -4 h" + h1 + " a2 2 0 0 0 2 -2 v-18 a2 2 0 0 0 -2 -2 h" + -h2 + " a2 2 0 0 0 -2 2 v18 a2 2 0 0 0 2 2 h" + h1 + " Z";
- var textX = 0;
- var textY = -15;
- return {
- d: d,
- left: x,
- top: y - 6 + dy,
- textX: textX,
- textY: textY
- };
- }
- case types_1.TooltipType.bot: {
- var h1 = (textWidth + 20 - 8 - 4) / 2;
- var h2 = textWidth + 20 - 4;
- var d = "M0 0 l4 4 h" + h1 + " a2 2 0 0 1 2 2 v18 a2 2 0 0 1 -2 2 h" + -h2 + " a2 2 0 0 1 -2 -2 v-18 a2 2 0 0 1 2 -2 h" + h1 + " Z";
- var textX = 0;
- var textY = 15;
- return {
- d: d,
- left: x,
- top: y + 6 - dy,
- textX: textX,
- textY: textY
- };
- }
- case types_1.TooltipType.right: {
- var h = textWidth + 20 - 4;
- var d = "M0 0 l4 -4 v-5 a2 2 0 0 1 2 -2 h" + h + " a2 2 0 0 1 2 2 v18 a2 2 0 0 1 -2 2 h" + -h + " a2 2 0 0 1 -2 -2 v-5 Z";
- var textX = h / 2 + 6;
- var textY = 0;
- return {
- d: d,
- left: x + 1,
- top: y,
- textX: textX,
- textY: textY
- };
- }
- case types_1.TooltipType.left: {
- var h = textWidth + 20 - 4;
- var d = "M0 0 l-4 -4 v-5 a2 2 0 0 0 -2 -2 h" + -h + " a2 2 0 0 0 -2 2 v18 a2 2 0 0 0 2 2 h" + h + " a2 2 0 0 0 2 -2 v-5 Z";
- var textX = -h / 2 - 6;
- var textY = 0;
- return {
- d: d,
- left: x - 1,
- top: y,
- textX: textX,
- textY: textY
- };
- }
- case types_1.TooltipType.simple: {
- var h = textWidth + 20 - 4;
- var d = "M0 0 v-4 a2 2 0 0 1 2 -2 h" + h + " a2 2 0 0 1 2 2 v18 a2 2 0 0 1 -2 2 h" + -h + " a2 2 0 0 1 -2 -2 v-6 Z";
- var textX = h / 2 + 2;
- var textY = 6;
- return {
- d: d,
- left: x - h / 2 - 2,
- top: y - 5,
- textX: textX,
- textY: textY
- };
- }
- }
-};
-var Tooltip = /** @class */ (function (_super) {
- __extends(Tooltip, _super);
- function Tooltip(container, config) {
- var _this = _super.call(this, container, config) || this;
- _this._chart = config.chart;
- _this._state = { leftOffset: 0, topOffset: 0, value: "", x: 0, y: 0, type: null, chartType: null, isVisible: false };
- _this.mount(container, dom_1.create({ render: function () { return _this._draw(); } }));
- _this._chart.events.on(types_1.ChartEvents.chartMouseMove, function (x, y, left, top) {
- var closest = [Infinity, null, null, null, null]; // (dist, x, y, id, serieid)
- _this._chart.eachSeries(function (serie) {
- var serieClosest = serie.getClosest(x, y);
- if (closest[0] > serieClosest[0]) {
- closest[0] = serieClosest[0];
- closest[1] = serieClosest[1];
- closest[2] = serieClosest[2];
- closest[3] = serieClosest[3];
- closest[4] = serie.id;
- }
- });
- var tooltipSeries = _this._chart.getSeries(closest[4]);
- if (tooltipSeries) {
- var ref = common_1.calcPointRef(closest[3], closest[4]);
- if (ref === _this._lastPointRef) {
- return;
- }
- var text = tooltipSeries.getTooltipText(closest[3]);
- if (text) {
- var tooltipType = tooltipSeries.getTooltipType(closest[3], closest[1], closest[2]);
- _this._enableActivePoint(ref);
- _this._state.leftOffset = left;
- _this._state.topOffset = top;
- _this._state.value = text;
- _this._state.x = closest[1];
- _this._state.y = closest[2];
- _this._state.type = tooltipType;
- _this._state.chartType = tooltipSeries.config.type;
- _this._state.isVisible = true;
- _this.paint();
- }
- }
- }, _this);
- _this._chart.events.on(types_1.ChartEvents.chartMouseLeave, function () { return _this._hide(); }, _this);
- return _this;
- }
- Tooltip.prototype.destructor = function () {
- this._chart.events.detach(types_1.ChartEvents.chartMouseLeave, this);
- this._chart.events.detach(types_1.ChartEvents.chartMouseMove, this);
- this.unmount();
- };
- Tooltip.prototype._hide = function () {
- this._disableLastActivePoint();
- this._state.isVisible = false;
- this.paint();
- };
- Tooltip.prototype._enableActivePoint = function (ref) {
- var rootView = this._chart.getRootView();
- var point = rootView && rootView.refs && rootView.refs[ref];
- if (point) {
- this._disableLastActivePoint();
- this._lastPointRef = ref;
- point.patch({ class: point.attrs.class + " active-figure" });
- }
- };
- Tooltip.prototype._disableLastActivePoint = function () {
- if (this._lastPointRef) {
- var rootView = this._chart.getRootView();
- var point = rootView && rootView.refs && rootView.refs[this._lastPointRef];
- if (point) {
- point.patch({ class: point.attrs.class.replace(" active-figure", "") });
- }
- this._lastPointRef = null;
- }
- };
- Tooltip.prototype._draw = function () {
- var _a = this._state, value = _a.value, x = _a.x, y = _a.y, type = _a.type, chartType = _a.chartType, isVisible = _a.isVisible;
- var attrs;
- if (isVisible && value !== "") {
- var style = common_1.getFontStyle("tooltip-text");
- var textWidth = common_1.getTextWidth(value, style);
- attrs = getAttrs(textWidth, x, y, type || types_1.TooltipType.top, chartType);
- }
- else {
- attrs = { textX: 0, textY: 0, d: null, left: 0, top: 0 };
- }
- return dom_1.el(".dhx_chart.tooltip-container", {
- style: {
- pointerEvents: "none",
- width: 0,
- height: 0,
- visibility: isVisible ? "visible" : "hidden",
- position: "absolute",
- left: attrs.left + this._state.leftOffset + "px",
- top: attrs.top + this._state.topOffset + "px"
+ var _a = seria.paintformAndMarkers(width, height, prev), content = _a[0], seriesMarkers = _a[1];
+ svg.push(content);
+ markers.push(seriesMarkers);
}
- }, isVisible ? [
- dom_1.sv("svg", [
- dom_1.sv("path", { d: attrs.d, class: "tooltip-form" }),
- dom_1.sv("text", { x: attrs.textX, y: attrs.textY, class: "tooltip-text" }, [
- common_1.verticalCenteredText(value)
- ])
- ])
- ] : null);
+ else {
+ var content = seria.paint(width, height, prev);
+ svg.push(content);
+ }
+ prev = seria.getPoints();
+ });
+ return dom_1.sv("g", svg.concat(markers));
};
- return Tooltip;
-}(view_1.View));
-exports.Tooltip = Tooltip;
+ return Stacker;
+}());
+exports.default = Stacker;
/***/ }),
-/* 156 */
+/* 161 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -17948,21 +19581,28 @@ var __extends = (this && this.__extends) || (function () {
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
+var __spreadArrays = (this && this.__spreadArrays) || function () {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+};
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(1);
var dom_1 = __webpack_require__(0);
-var events_1 = __webpack_require__(2);
-var html_1 = __webpack_require__(3);
-var keycodes_1 = __webpack_require__(157);
+var events_1 = __webpack_require__(3);
+var html_1 = __webpack_require__(2);
+var keycodes_1 = __webpack_require__(162);
var view_1 = __webpack_require__(4);
var ts_data_1 = __webpack_require__(7);
-var ts_layout_1 = __webpack_require__(12);
-var ts_list_1 = __webpack_require__(36);
-var ts_popup_1 = __webpack_require__(10);
-var keyListener_1 = __webpack_require__(158);
-var en_1 = __webpack_require__(48);
-var helper_1 = __webpack_require__(159);
-var types_1 = __webpack_require__(72);
+var ts_layout_1 = __webpack_require__(14);
+var ts_list_1 = __webpack_require__(38);
+var ts_popup_1 = __webpack_require__(11);
+var keyListener_1 = __webpack_require__(163);
+var en_1 = __webpack_require__(50);
+var helper_1 = __webpack_require__(164);
+var types_1 = __webpack_require__(74);
var template = function (item) {
if (item.icon) {
return " " + item.value + "";
@@ -17979,8 +19619,17 @@ var Combobox = /** @class */ (function (_super) {
// selectAllButton: true
template: template,
listHeight: 224,
- cellHeight: 32,
+ itemHeight: 32,
+ disabled: false
}, config)) || this;
+ _this.config.itemsCount = _this.config.itemsCount || _this.config.showItemsCount; // TODO: remove sute_7.0
+ _this.config.helpMessage = _this.config.helpMessage || _this.config.help; // TODO: remove sute_7.0
+ if (_this.config.cellHeight && _this.config.itemHeight === 32) {
+ _this.config.itemHeight = _this.config.cellHeight; // TODO: remove sute_7.0
+ }
+ if (_this.config.labelInline) {
+ _this.config.labelPosition = "left"; // TODO: remove sute_7.0
+ }
if (Array.isArray(_this.config.data)) {
_this.events = new events_1.EventSystem(_this);
_this.data = new ts_data_1.DataCollection({}, _this.events);
@@ -17996,13 +19645,24 @@ var Combobox = /** @class */ (function (_super) {
_this.data = new ts_data_1.DataCollection({}, _this.events);
}
_this.popup = new ts_popup_1.Popup();
- // this.popup.events.on(PopupEvents.beforeHide, () => true);
_this.popup.events.on(ts_popup_1.PopupEvents.afterShow, function () {
_this.paint();
});
_this.popup.events.on(ts_popup_1.PopupEvents.afterHide, function () {
+ if (_this.config.multiselection) {
+ _this._state.value = "";
+ }
_this.paint();
});
+ _this.popup.events.on(ts_popup_1.PopupEvents.beforeHide, function (fromOuterClick) {
+ if (fromOuterClick) {
+ if (!_this.events.fire(types_1.ComboboxEvents.beforeClose)) {
+ return;
+ }
+ _this.events.fire(types_1.ComboboxEvents.afterClose);
+ _this.events.fire(types_1.ComboboxEvents.close); // TODO: remove sute_7.0
+ }
+ });
if (_this.config.readonly) {
_this._keyListener = new keyListener_1.KeyListener();
}
@@ -18031,20 +19691,6 @@ var Combobox = /** @class */ (function (_super) {
_this.mount(element, vnode);
return _this;
}
- Combobox.prototype.setState = function (state) {
- switch (state) {
- case "success":
- this._state.currentState = types_1.ComboState.success;
- break;
- case "error":
- this._state.currentState = types_1.ComboState.error;
- break;
- default:
- this._state.currentState = types_1.ComboState.default;
- break;
- }
- this.paint();
- };
Combobox.prototype.focus = function () {
if (this.config.disabled) {
return false;
@@ -18060,6 +19706,9 @@ var Combobox = /** @class */ (function (_super) {
this.config.disabled = true;
this.paint();
};
+ Combobox.prototype.isDisabled = function () {
+ return this.config.disabled;
+ };
Combobox.prototype.clear = function () {
if (this.config.disabled) {
return false;
@@ -18067,7 +19716,7 @@ var Combobox = /** @class */ (function (_super) {
this.list.selection.remove();
this._state.value = "";
this._filter();
- this._change();
+ this.paint();
};
Combobox.prototype.getValue = function (asArray) {
var ids = this.list.selection.getId();
@@ -18098,7 +19747,7 @@ var Combobox = /** @class */ (function (_super) {
this._state.value = this._getItemText(item);
}
}
- this._change();
+ this.paint();
};
Combobox.prototype.destructor = function () {
this.popup.destructor();
@@ -18108,27 +19757,32 @@ var Combobox = /** @class */ (function (_super) {
this._layout.destructor();
this.unmount();
};
+ // TODO: Remove from API
+ Combobox.prototype.setState = function (state) {
+ switch (state) {
+ case "success":
+ this._state.currentState = types_1.ComboState.success;
+ break;
+ case "error":
+ this._state.currentState = types_1.ComboState.error;
+ break;
+ default:
+ this._state.currentState = types_1.ComboState.default;
+ break;
+ }
+ this.paint();
+ };
Combobox.prototype._createLayout = function () {
var _this = this;
var list = this.list = new ts_list_1.List(null, {
template: this.config.template,
virtual: this.config.virtual,
keyNavigation: function () { return _this.popup.isVisible(); },
- itemHeight: this.config.cellHeight,
+ multiselection: this.config.multiselection,
+ itemHeight: this.config.itemHeight,
height: this.config.listHeight,
data: this.data
});
- this.list.selection.events.on("change", function (e) {
- if (!_this.config.multiselection) {
- // dirty hack with load was really dearty
- if (e && e !== "load") {
- _this._hideOptions();
- }
- }
- });
- if (this.config.multiselection) {
- list.selection.config.multiselection = true;
- }
var layout = this._layout = new ts_layout_1.Layout(this.popup.getContainer(), {
css: "dhx_combobox-options dhx_combobox__options",
rows: [
@@ -18148,21 +19802,16 @@ var Combobox = /** @class */ (function (_super) {
}
}
});
- layout.cell("list").attach(list);
+ layout.getCell("list").attach(list);
if (this.config.multiselection && this.config.selectAllButton) {
- layout.cell("select-unselect-all").attach(helper_1.selectAllView);
+ layout.getCell("select-unselect-all").attach(helper_1.selectAllView);
}
};
- Combobox.prototype._change = function () {
- var ids = this.list.selection.getId();
- this.events.fire(types_1.ComboboxEvents.change, [ids]);
- this.paint();
- };
Combobox.prototype._initHandlers = function () {
var _this = this;
- if (this.config.help) {
+ if (this.config.helpMessage) {
this._helper = new ts_popup_1.Popup({ css: "dhx_tooltip dhx_tooltip--forced dhx_tooltip--light" });
- this._helper.attachHTML(this.config.help);
+ this._helper.attachHTML(this.config.helpMessage);
}
this._handlers = {
showHelper: function (e) {
@@ -18178,7 +19827,7 @@ var Combobox = /** @class */ (function (_super) {
_this.list.selection.remove(id);
});
if (_this.config.selectAllButton) {
- _this._layout.cell("select-unselect-all").attach(helper_1.selectAllView);
+ _this._layout.getCell("select-unselect-all").attach(helper_1.selectAllView);
_this._state.unselectActive = false;
}
}
@@ -18186,46 +19835,43 @@ var Combobox = /** @class */ (function (_super) {
_this.data.filter();
_this.list.selection.add();
if (_this.config.selectAllButton) {
- _this._layout.cell("select-unselect-all").attach(helper_1.unselectAllView);
+ _this._layout.getCell("select-unselect-all").attach(helper_1.unselectAllView);
_this._state.unselectActive = true;
}
}
- _this._change();
+ _this.paint();
},
onkeydown: function (e) {
if (!_this.popup.isVisible() && e.which === keycodes_1.KEY_CODES.DOWN_ARROW) {
_this._showOptions();
}
- if (_this.popup.isVisible() && e.which === keycodes_1.KEY_CODES.ENTER) {
- if (_this.config.multiselection) {
- var active = _this.list.getFocusItem();
- var item = _this.data.getItem(active);
- if (item) {
- if (item.$selected) {
- _this.list.selection.remove(active);
- }
- else {
- _this.list.selection.add(active);
- }
+ if (_this.popup.isVisible() && e.which === keycodes_1.KEY_CODES.RIGHT_ARROW) {
+ if (_this.config.readonly && !_this.config.multiselection) {
+ var focused = _this.list.getFocusIndex();
+ if (focused >= 0 && focused <= _this.data.getLength()) {
+ e.preventDefault();
+ _this.list.setFocusIndex(focused + 1);
}
- _this._state.value = "";
- _this.data.filter();
- _this.paint();
}
- else {
- var id = _this.list.getFocusItem();
- _this.list.selection.add(id);
- _this._state.value = _this._getItemText(_this.data.getItem(id)) || "";
- _this._change();
- _this._hideOptions();
+ }
+ if (_this.popup.isVisible() && e.which === keycodes_1.KEY_CODES.LEFT_ARROW) {
+ if (_this.config.readonly && !_this.config.multiselection) {
+ var focused = _this.list.getFocusIndex();
+ if (focused >= 0 && focused <= _this.data.getLength()) {
+ e.preventDefault();
+ _this.list.setFocusIndex(focused - 1);
+ }
}
}
if (_this.popup.isVisible() && e.which === keycodes_1.KEY_CODES.ESC) {
_this._hideOptions();
}
+ if (_this.popup.isVisible() && e.which === keycodes_1.KEY_CODES.ENTER) {
+ _this.setValue(_this.list.data.getId(_this.list.getFocusIndex()));
+ }
},
onkeyup: function (e) {
- if (!_this.config.multiselection || _this.config.showItemsCount) {
+ if (!_this.config.multiselection || _this.config.itemsCount) {
return;
}
if (_this._state.ignoreNext) {
@@ -18236,7 +19882,7 @@ var Combobox = /** @class */ (function (_super) {
var selected = _this.list.selection.getId();
var id = selected[selected.length - 1];
_this.list.selection.remove(id);
- _this._change();
+ _this.paint();
_this.paint();
}
},
@@ -18246,6 +19892,7 @@ var Combobox = /** @class */ (function (_super) {
}
var input = e.target;
var value = input.value;
+ _this.events.fire(types_1.ComboboxEvents.input, [value]);
_this._state.value = value;
_this._filter();
if (!value.length) {
@@ -18257,7 +19904,7 @@ var Combobox = /** @class */ (function (_super) {
}
if (!_this.config.multiselection) {
_this.list.selection.remove();
- _this._change();
+ _this.paint();
}
if (!_this.popup.isVisible()) {
_this._showOptions();
@@ -18274,13 +19921,13 @@ var Combobox = /** @class */ (function (_super) {
return;
}
_this.list.selection.remove(id);
- _this._change();
+ _this.paint();
return;
}
if (e.target.classList.contains("dhx_combobox__action-clear-all")) {
_this.list.selection.getId().forEach(function (id) { return _this.list.selection.remove(id); });
if (_this.config.selectAllButton && _this._state.unselectActive) {
- _this._layout.cell("select-unselect-all").attach(helper_1.selectAllView);
+ _this._layout.getCell("select-unselect-all").attach(helper_1.selectAllView);
_this._state.unselectActive = false;
}
_this.paint();
@@ -18306,39 +19953,24 @@ var Combobox = /** @class */ (function (_super) {
};
Combobox.prototype._initEvents = function () {
var _this = this;
- this.list.events.on(ts_list_1.ListEvents.click, function (id) {
- if (_this.config.multiselection) {
- var selected = _this.data.getItem(id).$selected;
- if (selected) {
- if (_this.config.selectAllButton && !_this._state.unselectActive && _this.data.getLength() === _this.list.selection.getId().length) {
- _this._layout.cell("select-unselect-all").attach(helper_1.unselectAllView);
- _this._state.unselectActive = true;
- }
- }
- else {
- if (_this.config.selectAllButton && _this._state.unselectActive) {
- _this._layout.cell("select-unselect-all").attach(helper_1.selectAllView);
- _this._state.unselectActive = false;
- }
- }
- if (!_this._state.value.length) {
- _this._state.canDelete = true;
- }
- _this._change();
- return;
+ this.list.events.on(ts_list_1.ListEvents.click, function () {
+ if (!_this.config.multiselection) {
+ _this._hideOptions();
+ }
+ });
+ this.data.events.on(ts_data_1.DataEvents.change, function (id, status, item) {
+ if (item && item.hasOwnProperty("$selected")) {
+ _this._updateSelectedItem(id);
}
- _this._state.value = _this._getItemText(_this.data.getItem(id)) || "";
- _this._change();
- _this._hideOptions();
});
if (this.config.readonly) {
this.popup.events.on(ts_popup_1.PopupEvents.afterShow, function () {
if (_this._state.value) {
var id = _this.list.selection.getId();
- _this.list.setFocusIndex(_this.data.getIndex(id));
+ _this.list.setFocus(id);
}
else {
- _this.list.setFocusIndex(0);
+ _this.list.setFocus(_this.data.getId(0));
}
_this._keyListener.startNewListen(function (val) { return _this._findBest(val); });
});
@@ -18358,22 +19990,28 @@ var Combobox = /** @class */ (function (_super) {
if (!rootView || !rootView.refs || !rootView.refs.holder) {
return false;
}
- var holderNode = rootView.refs.holder.el;
- this.popup.getContainer().style.width = holderNode.offsetWidth + "px";
- this.popup.show(holderNode, { mode: html_1.Position.bottom });
+ if (!this.popup.isVisible()) {
+ var holderNode = rootView.refs.holder.el;
+ this.popup.getContainer().style.width = holderNode.offsetWidth + "px";
+ this.popup.show(holderNode, { mode: html_1.Position.bottom });
+ }
return true;
};
Combobox.prototype._hideOptions = function () {
+ if (!this.events.fire(types_1.ComboboxEvents.beforeClose)) {
+ return;
+ }
if (this.config.readonly) {
this._keyListener.endListen();
}
- this.list.setFocusIndex(0);
+ this.list.setFocus(this.data.getId(0));
if (!this.config.multiselection && !this.config.readonly && !this.list.selection.contains()) {
this._state.value = "";
}
this.popup.hide();
this.paint();
- this.events.fire(types_1.ComboboxEvents.close);
+ this.events.fire(types_1.ComboboxEvents.afterClose);
+ this.events.fire(types_1.ComboboxEvents.close); // TODO: remove sute_7.0
};
Combobox.prototype._filter = function () {
var _this = this;
@@ -18384,27 +20022,27 @@ var Combobox = /** @class */ (function (_super) {
? _this.config.filter(item, _this._state.value)
: core_1.isEqualString(_this._state.value, _this._getItemText(item)); });
if (this.config.multiselection) {
- this.list.setFocusIndex(0);
+ this.list.setFocus(this.data.getId(0));
}
else {
var index = this.data.getIndex(this.list.selection.getId());
- this.list.setFocusIndex(index > -1 ? index : 0);
+ this.list.setFocus(this.data.getId(index > -1 ? index : 0));
}
if (this.data.getLength() === 0) {
if (this.config.multiselection && this.config.selectAllButton) {
- this._layout.cell("select-unselect-all").hide();
+ this._layout.getCell("select-unselect-all").hide();
}
- this._layout.cell("list").hide();
- this._layout.cell("not-found").attach(helper_1.emptyListView);
- this._layout.cell("not-found").show();
+ this._layout.getCell("list").hide();
+ this._layout.getCell("not-found").attach(helper_1.emptyListView);
+ this._layout.getCell("not-found").show();
}
else {
if (this.config.multiselection && this.config.selectAllButton) {
- this._layout.cell("select-unselect-all").show();
+ this._layout.getCell("select-unselect-all").show();
}
- if (this._layout.cell("not-found").isVisible()) {
- this._layout.cell("list").show();
- this._layout.cell("not-found").hide();
+ if (this._layout.getCell("not-found").isVisible()) {
+ this._layout.getCell("list").show();
+ this._layout.getCell("not-found").hide();
}
}
};
@@ -18417,40 +20055,41 @@ var Combobox = /** @class */ (function (_super) {
if (this.list.selection.getId() === best.id) {
return;
}
- this.list.setFocusIndex(this.data.getIndex(best.id));
+ this.list.setFocus(best.id);
this.list.selection.add(best.id);
this.paint();
};
Combobox.prototype._draw = function () {
- var item = this.config.multiselection ? null : this.data.getItem(this.list.selection.getId());
+ var _a = this.config, multiselection = _a.multiselection, labelPosition = _a.labelPosition, labelWidth = _a.labelWidth, hiddenLabel = _a.hiddenLabel, required = _a.required, disabled = _a.disabled, css = _a.css, label = _a.label, helpMessage = _a.helpMessage, readonly = _a.readonly, placeholder = _a.placeholder;
+ var item = multiselection ? null : this.data.getItem(this.list.selection.getId());
var showPlaceholder = !this.list.selection.getId() || this.list.selection.getId().length === 0;
- var width = this.config.labelInline && this.config.labelWidth ? this.config.labelWidth : "";
- var required = this.config.required;
+ var width = labelPosition === "left" && labelWidth ? labelWidth : "";
return dom_1.el(".dhx_widget.dhx_combobox" +
- (this.config.labelInline ? ".dhx_combobox--label-inline" : "") +
- (this.config.hiddenLabel ? ".dhx_combobox--sr_only" : "") +
- (this.config.required ? ".dhx_combobox--required" : "") +
- (this.config.css ? "." + this.config.css : ""), {
+ (labelPosition === "left" ? ".dhx_combobox--label-inline" : "") +
+ (hiddenLabel ? ".dhx_combobox--sr_only" : "") +
+ (required ? ".dhx_combobox--required" : "") +
+ (disabled ? ".dhx_combobox--disabled" : "") +
+ (css ? "." + css : ""), {
dhx_widget_id: this._uid,
onkeydown: this._handlers.onkeydown,
onkeyup: this._handlers.onkeyup
}, [
- this.config.label ? dom_1.el("label.dhx_label.dhx_combobox__label", {
+ label ? dom_1.el("label.dhx_label.dhx_combobox__label", {
style: { minWidth: width, maxWidth: width },
- class: this.config.help ? "dhx_label--with-help" : "",
+ class: helpMessage ? "dhx_label--with-help" : "",
onclick: this._handlers.oninputclick
- }, this.config.help ? [
- dom_1.el("span.dhx_label__holder", this.config.label),
+ }, helpMessage ? [
+ dom_1.el("span.dhx_label__holder", label),
dom_1.el("span.dhx_label-help.dxi.dxi-help-circle-outline", {
tabindex: "0",
role: "button",
onclick: this._handlers.showHelper
}),
- ] : this.config.label) : null,
+ ] : label) : null,
dom_1.el("div.dhx_combobox-input-box" +
// (this.popup.isVisible() ? ".dhx_combobox-input-box" : "") +
- (this.config.disabled ? ".dhx_combobox-input-box--disabled" : "") +
- (this.config.readonly ? ".dhx_combobox-input-box--readonly" : "") +
+ (disabled ? ".dhx_combobox-input-box--disabled" : "") +
+ (readonly ? ".dhx_combobox-input-box--readonly" : "") +
(this._state.currentState === types_1.ComboState.error ? ".dhx_combobox-input-box--state_error" : "") +
(this._state.currentState === types_1.ComboState.success ? ".dhx_combobox-input-box--state_success" : ""), {
_ref: "holder"
@@ -18463,16 +20102,16 @@ var Combobox = /** @class */ (function (_super) {
dom_1.el("div.dhx_combobox-input-list-wrapper", {
onclick: this._handlers.oninputclick
}, [
- dom_1.el("ul.dhx_combobox-input-list", this._drawSelectedItems().concat([
+ dom_1.el("ul.dhx_combobox-input-list", __spreadArrays(this._drawSelectedItems(), [
dom_1.el("li.dhx_combobox-input-list__item.dhx_combobox-input-list__item--input", [
dom_1.el("input.dhx_combobox-input", {
oninput: this._handlers.oninput,
_ref: "input",
_key: this._uid,
type: "text",
- placeHolder: showPlaceholder && this.config.placeholder ? this.config.placeholder : undefined,
- value: this.config.readonly && item ? this._getItemText(item) : this._state.value,
- readOnly: this.config.readonly || this.config.disabled,
+ placeHolder: showPlaceholder && placeholder ? placeholder : undefined,
+ value: readonly && item ? this._getItemText(item) : this._state.value,
+ readOnly: readonly || disabled,
required: required
})
])
@@ -18486,11 +20125,11 @@ var Combobox = /** @class */ (function (_super) {
if (!this.config.multiselection) {
return [];
}
- if (this.config.showItemsCount) {
+ if (this.config.itemsCount) {
var count = this.list.selection.getId().length;
return count ? [
dom_1.el("li.dhx_combobox-input-list__item.dhx_combobox-tag", [
- dom_1.el("span.dhx_combobox-tag__value", itemsCountTemplate(count, this.config.showItemsCount)),
+ dom_1.el("span.dhx_combobox-tag__value", itemsCountTemplate(count, this.config.itemsCount)),
dom_1.el("button.dhx_button.dhx_combobox-tag__action.dhx_combobox__action-clear-all", [
dom_1.el("span.dhx_button__icon.dxi.dxi-close-circle")
])
@@ -18528,6 +20167,30 @@ var Combobox = /** @class */ (function (_super) {
}
return item.value;
};
+ Combobox.prototype._updateSelectedItem = function (id) {
+ if (this.config.multiselection) {
+ var selected = this.data.getItem(id).$selected;
+ if (selected) {
+ if (this.config.selectAllButton && !this._state.unselectActive && this.data.getLength() === this.list.selection.getId().length) {
+ this._layout.getCell("select-unselect-all").attach(helper_1.unselectAllView);
+ this._state.unselectActive = true;
+ }
+ }
+ else {
+ if (this.config.selectAllButton && this._state.unselectActive) {
+ this._layout.getCell("select-unselect-all").attach(helper_1.selectAllView);
+ this._state.unselectActive = false;
+ }
+ }
+ if (!this._state.value.length) {
+ this._state.canDelete = true;
+ }
+ this.paint();
+ return;
+ }
+ this._state.value = this._getItemText(this.data.getItem(id)) || "";
+ this.paint();
+ };
return Combobox;
}(view_1.View));
exports.Combobox = Combobox;
@@ -18542,7 +20205,7 @@ function itemsCountTemplate(count, templateFN) {
/***/ }),
-/* 157 */
+/* 162 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -18553,11 +20216,13 @@ exports.KEY_CODES = {
ENTER: 13,
ESC: 27,
DOWN_ARROW: 40,
+ LEFT_ARROW: 37,
+ RIGHT_ARROW: 39
};
/***/ }),
-/* 158 */
+/* 163 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -18616,14 +20281,14 @@ exports.KeyListener = KeyListener;
/***/ }),
-/* 159 */
+/* 164 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var en_1 = __webpack_require__(48);
+var en_1 = __webpack_require__(50);
function selectAllView() {
return dom_1.el(".dhx_list-item.dhx_combobox-options__item.dhx_combobox-options__item--select-all.dhx_combobox__action-select-all", en_1.default.selectAll);
}
@@ -18641,7 +20306,7 @@ exports.emptyListView = emptyListView;
/***/ }),
-/* 160 */
+/* 165 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -18650,12 +20315,12 @@ function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(161));
-__export(__webpack_require__(49));
+__export(__webpack_require__(166));
+__export(__webpack_require__(51));
/***/ }),
-/* 161 */
+/* 166 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -18688,14 +20353,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(1);
var dom_1 = __webpack_require__(0);
var Keymanager_1 = __webpack_require__(13);
-var ts_list_1 = __webpack_require__(36);
+var ts_list_1 = __webpack_require__(38);
var view_1 = __webpack_require__(4);
var ts_data_1 = __webpack_require__(7);
-var events_1 = __webpack_require__(2);
-var html_1 = __webpack_require__(3);
-var types_1 = __webpack_require__(21);
-var types_2 = __webpack_require__(49);
-var editors_1 = __webpack_require__(162);
+var events_1 = __webpack_require__(3);
+var html_1 = __webpack_require__(2);
+var types_1 = __webpack_require__(22);
+var types_2 = __webpack_require__(51);
+var editors_1 = __webpack_require__(167);
var DataView = /** @class */ (function (_super) {
__extends(DataView, _super);
function DataView(node, config) {
@@ -18705,8 +20370,12 @@ var DataView = /** @class */ (function (_super) {
itemsInRow: 1,
multiselectionMode: config.multiselectionMode ? config.multiselectionMode : "click",
gap: "0px",
- editing: false
+ editable: false
}, config)) || this;
+ if (_this.config.multiselectionMode === "ctrlClick") {
+ _this.config.multiselection = "ctrlClick"; // TODO: remove sute_7.0
+ }
+ _this.config.editable = _this.config.editable || _this.config.editing; // TODO: remove sute_7.0
if (Array.isArray(_this.config.data)) {
_this.events = new events_1.EventSystem(_this);
_this.data = new ts_data_1.DataCollection({}, _this.events);
@@ -18723,7 +20392,6 @@ var DataView = /** @class */ (function (_super) {
}
_this.selection = new ts_list_1.Selection({
multiselection: _this.config.multiselection,
- multiselectionMode: _this.config.multiselectionMode,
}, _this.data);
_this._getHotkeys();
var updater = function (updateObj) { return function (id, ids) {
@@ -18744,13 +20412,13 @@ var DataView = /** @class */ (function (_super) {
_this.events.on(ts_data_1.DragEvents.dragEnd, updater({ $dragtarget: undefined }));
_this.events.on(types_2.DataViewEvents.afterEditEnd, function (value, id) {
var item = _this.data.getItem(id);
- _this.data.update(id, __assign({}, item, { value: value }));
+ _this.data.update(id, __assign(__assign({}, item), { value: value }));
_this._edited = null;
_this._getHotkeys();
_this.paint();
});
_this.selection.events.on(types_1.SelectionEvents.afterSelect, function (id) {
- _this.setFocusIndex(_this.data.getIndex(id));
+ _this.setFocus(id);
});
_this._handlers = {
onmousedown: function (e) {
@@ -18773,15 +20441,16 @@ var DataView = /** @class */ (function (_super) {
if (!id) {
return;
}
- _this.events.fire(types_2.DataViewEvents.contextmenu, [id, e]);
+ _this.events.fire(types_2.DataViewEvents.itemRightClick, [id, e]);
+ _this.events.fire(types_2.DataViewEvents.contextmenu, [id, e]); // TODO: remove sute_7.0
},
ondblclick: function (e) {
var id = html_1.locate(e);
if (!id) {
return;
}
- if (_this.config.editing) {
- _this.edit(id);
+ if (_this.config.editable) {
+ _this.editItem(id);
}
_this.events.fire(types_2.DataViewEvents.doubleClick, [id, e]);
},
@@ -18790,10 +20459,27 @@ var DataView = /** @class */ (function (_super) {
if (!id) {
return;
}
- _this.setFocusIndex(_this.data.getIndex(id));
+ _this.setFocus(id);
_this.selection.add(id, e.ctrlKey || e.metaKey, e.shiftKey);
_this.events.fire(types_2.DataViewEvents.click, [id, e]);
},
+ onmouseover: function (e) {
+ var id = html_1.locate(e);
+ var element = html_1.locateNode(e, "dhx_id", "relatedTarget");
+ if (!element && id) {
+ _this.events.fire(types_2.DataViewEvents.itemMouseOver, [id, e]);
+ return;
+ }
+ else if (!element) {
+ return;
+ }
+ var attr = element.getAttribute("dhx_id") ? element.getAttribute("dhx_id") : null;
+ var prevId = attr ? attr : "";
+ if (!id || id === prevId) {
+ return;
+ }
+ _this.events.fire(types_2.DataViewEvents.itemMouseOver, [id, e]);
+ }
};
if (_this.config.dragMode) {
ts_data_1.dragManager.setItem(_this._uid, _this);
@@ -18813,7 +20499,7 @@ var DataView = /** @class */ (function (_super) {
_this.mount(node, view);
return _this;
}
- DataView.prototype.edit = function (id) {
+ DataView.prototype.editItem = function (id) {
this._edited = id;
if (!this.data.getItem(this._edited) || !this.events.fire(types_2.DataViewEvents.beforeEditStart, [id])) {
this._edited = null;
@@ -18823,16 +20509,50 @@ var DataView = /** @class */ (function (_super) {
this.paint();
this.events.fire(types_2.DataViewEvents.afterEditStart, [id]);
};
- DataView.prototype.setFocusIndex = function (index) {
- if (index < 0) {
- this._focusIndex = 0;
+ DataView.prototype.getFocusItem = function () {
+ return this.data.getItem(this.data.getId(this._focusIndex));
+ };
+ DataView.prototype.setItemInRow = function (amount) {
+ this.config.itemsInRow = amount;
+ this.paint();
+ };
+ DataView.prototype.setFocus = function (id) {
+ var index = this.data.getIndex(id);
+ this._setFocusIndex(index);
+ };
+ DataView.prototype.getFocus = function () {
+ var item = this.data.getItem(this.data.getId(this._focusIndex));
+ if (item) {
+ return item.id;
+ }
+ };
+ DataView.prototype.destructor = function () {
+ this.events.clear();
+ if (this._navigationDestructor) {
+ this._navigationDestructor();
}
- else if (index > this.data.getLength() - 1) {
- this._focusIndex = this.data.getLength() - 1;
+ if (this._documentClickDestuctor) {
+ this._documentClickDestuctor();
}
- else {
- this._focusIndex = index;
+ this.unmount();
+ };
+ // TODO: remove sute_7.0
+ DataView.prototype.getFocusIndex = function () {
+ return this._focusIndex;
+ };
+ // TODO: remove sute_7.0
+ DataView.prototype.setFocusIndex = function (index) {
+ this._setFocusIndex(index);
+ };
+ // TODO: remove sute_7.0
+ DataView.prototype.edit = function (id) {
+ this.editItem(id);
+ };
+ DataView.prototype._setFocusIndex = function (index) {
+ if (index < 0 || index > this.data.getLength() - 1) {
+ return;
}
+ this._focusIndex = index;
var node = this.getRootNode();
if (!node || !node.parentNode) {
return;
@@ -18852,28 +20572,8 @@ var DataView = /** @class */ (function (_super) {
this.paint();
return;
};
- DataView.prototype.getFocusIndex = function () {
- return this._focusIndex;
- };
- DataView.prototype.getFocusItem = function () {
- return this.data.getItem(this.data.getId(this._focusIndex));
- };
- DataView.prototype.setItemInRow = function (amount) {
- this.config.itemsInRow = amount;
- this.paint();
- };
- DataView.prototype.destructor = function () {
- this.events.clear();
- if (this._navigationDestructor) {
- this._navigationDestructor();
- }
- if (this._documentClickDestuctor) {
- this._documentClickDestuctor();
- }
- this.unmount();
- };
DataView.prototype._renderItem = function (item, focus, isLastItemInRow) {
- var _a = this.config, itemsInRow = _a.itemsInRow, gap = _a.gap, template = _a.template;
+ var _a = this.config, itemsInRow = _a.itemsInRow, gap = _a.gap, template = _a.template, itemHeight = _a.itemHeight;
var html = template ? template(item) : item.htmlContent;
var gapWithPx = function (gapSize) { return parseFloat(gapSize); };
if (item.id === this._edited) {
@@ -18894,6 +20594,7 @@ var DataView = /** @class */ (function (_super) {
style: {
"width": "calc(" + 100 / itemsInRow + "% - " + gapWithPx(gap) + " * " + (itemsInRow - 1) / itemsInRow + "px)",
"margin-right": isLastItemInRow ? "" : gap,
+ "height": template ? null : itemHeight
},
_key: item.id,
dhx_id: item.id,
@@ -18914,8 +20615,10 @@ var DataView = /** @class */ (function (_super) {
currentCounter = (currentCounter + 1) % itemsInRow;
return items;
}, []);
- return dom_1.el("", __assign({}, this._handlers, { dhx_widget_id: this._uid, class: (css ? css : "") + " dhx_widget dhx_dataview" +
- (this.config.multiselection && this.selection.getItem() ? " dhx_no-select--pointer" : "") }), rows.map(function (row) { return dom_1.el(".dhx_dataview-row", {
+ return dom_1.el("", __assign(__assign({}, this._handlers), { dhx_widget_id: this._uid, class: (css ? css : "") + " dhx_widget dhx_dataview" +
+ (this.config.multiselection && this.selection.getItem() ? " dhx_no-select--pointer" : ""), style: {
+ height: this.config.height
+ } }), rows.map(function (row) { return dom_1.el(".dhx_dataview-row", {
style: { margin: gap },
}, row); }));
};
@@ -18938,11 +20641,11 @@ var DataView = /** @class */ (function (_super) {
e.preventDefault();
fn();
}; };
- this._navigationDestructor = Keymanager_1.addHotkeys({
- "arrowdown": preventEvent(function () { return _this.setFocusIndex(_this._focusIndex + _this.config.itemsInRow); }),
- "arrowup": preventEvent(function () { return _this.setFocusIndex(_this._focusIndex - _this.config.itemsInRow); }),
- "arrowleft": preventEvent(function () { return _this.setFocusIndex(_this._focusIndex - 1); }),
- "arrowright": preventEvent(function () { return _this.setFocusIndex(_this._focusIndex + 1); }),
+ var handlers = {
+ "arrowDown": preventEvent(function () { return _this.setFocusIndex(_this._focusIndex + _this.config.itemsInRow); }),
+ "arrowUp": preventEvent(function () { return _this.setFocusIndex(_this._focusIndex - _this.config.itemsInRow); }),
+ "arrowLeft": preventEvent(function () { return _this.setFocusIndex(_this._focusIndex - 1); }),
+ "arrowRight": preventEvent(function () { return _this.setFocusIndex(_this._focusIndex + 1); }),
"enter": function (e) {
var id = _this.data.getId(_this._focusIndex);
_this.selection.add(id);
@@ -18957,13 +20660,16 @@ var DataView = /** @class */ (function (_super) {
var id = _this.data.getId(_this._focusIndex);
_this.selection.add(id, true, false);
_this.events.fire(types_2.DataViewEvents.click, [id, e]);
- },
- "enter+meta": function (e) {
- var id = _this.data.getId(_this._focusIndex);
- _this.selection.add(id, true, false);
- _this.events.fire(types_2.DataViewEvents.click, [id, e]);
- },
- }, keyNavigation);
+ }
+ };
+ if (html_1.isIE()) {
+ handlers = __assign({ up: handlers.arrowUp, down: handlers.arrowDown, right: handlers.arrowRight, left: handlers.arrowLeft }, handlers);
+ delete handlers.arrowUp;
+ delete handlers.arrowDown;
+ delete handlers.arrowRight;
+ delete handlers.arrowLeft;
+ }
+ this._navigationDestructor = Keymanager_1.addHotkeys(handlers, keyNavigation);
}
}
};
@@ -18973,13 +20679,13 @@ exports.DataView = DataView;
/***/ }),
-/* 162 */
+/* 167 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var InputEditor_1 = __webpack_require__(163);
+var InputEditor_1 = __webpack_require__(168);
function getEditor(item, dataView) {
return new InputEditor_1.InputEditor(item, dataView);
}
@@ -18987,14 +20693,14 @@ exports.getEditor = getEditor;
/***/ }),
-/* 163 */
+/* 168 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(49);
+var types_1 = __webpack_require__(51);
var InputEditor = /** @class */ (function () {
function InputEditor(item, dataView) {
var _this = this;
@@ -19027,14 +20733,14 @@ var InputEditor = /** @class */ (function () {
this._mode = true;
var _a = this._config, itemsInRow = _a.itemsInRow, gap = _a.gap;
var gapWithPx = function (gapSize) { return parseFloat(gapSize); };
- return dom_1.el(".dhx_input-wrapper", {
+ return dom_1.el(".dhx_input__wrapper", {
style: {
width: "calc(" + 100 / itemsInRow + "% - " + gapWithPx(gap) + " * " + (itemsInRow - 1) / itemsInRow + "px)",
maxWidth: "calc(" + 100 / itemsInRow + "% - " + gapWithPx(gap) + " * " + (itemsInRow - 1) / itemsInRow + "px)",
marginRight: isLastItemInRow ? "" : gap,
}
}, [
- dom_1.el("div.dhx_input-container", {
+ dom_1.el("div.dhx_input__container", {
style: {
height: "100%",
}
@@ -19082,7 +20788,7 @@ exports.InputEditor = InputEditor;
/***/ }),
-/* 164 */
+/* 169 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -19091,14 +20797,14 @@ function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(165));
+__export(__webpack_require__(170));
__export(__webpack_require__(8));
var types_1 = __webpack_require__(8);
exports.FormEvents = types_1.FormEvents;
/***/ }),
-/* 165 */
+/* 170 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -19121,47 +20827,50 @@ var __rest = (this && this.__rest) || function (s, e) {
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)
- t[p[i]] = s[p[i]];
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
+ t[p[i]] = s[p[i]];
+ }
return t;
};
Object.defineProperty(exports, "__esModule", { value: true });
-var ts_combobox_1 = __webpack_require__(47);
-var events_1 = __webpack_require__(2);
+var events_1 = __webpack_require__(3);
var view_1 = __webpack_require__(4);
-var ts_slider_1 = __webpack_require__(30);
-var ts_layout_1 = __webpack_require__(12);
-var ts_calendar_1 = __webpack_require__(28);
+var ts_layout_1 = __webpack_require__(14);
+var ts_calendar_1 = __webpack_require__(25);
var core_1 = __webpack_require__(1);
-var ts_data_1 = __webpack_require__(7);
-var ts_timepicker_1 = __webpack_require__(29);
+var ts_timepicker_1 = __webpack_require__(30);
var ts_colorpicker_1 = __webpack_require__(31);
-var dateInput_1 = __webpack_require__(166);
-var button_1 = __webpack_require__(167);
-var checkbox_1 = __webpack_require__(168);
-var input_1 = __webpack_require__(50);
-var radioGroup_1 = __webpack_require__(169);
-var select_1 = __webpack_require__(171);
-var textarea_1 = __webpack_require__(172);
-var textinput_1 = __webpack_require__(173);
-var combo_1 = __webpack_require__(174);
-var sliderform_1 = __webpack_require__(175);
+var dateInput_1 = __webpack_require__(171);
+var button_1 = __webpack_require__(172);
+var checkbox_1 = __webpack_require__(173);
+var input_1 = __webpack_require__(52);
+var radioGroup_1 = __webpack_require__(174);
+var select_1 = __webpack_require__(176);
+var textarea_1 = __webpack_require__(177);
+var textinput_1 = __webpack_require__(178);
+var combo_1 = __webpack_require__(179);
+var sliderform_1 = __webpack_require__(180);
var helper_1 = __webpack_require__(9);
-var simplevault_1 = __webpack_require__(176);
+var simplevault_1 = __webpack_require__(181);
+var timeInput_1 = __webpack_require__(182);
+var colorpicker_1 = __webpack_require__(183);
var types_1 = __webpack_require__(8);
-var timeInput_1 = __webpack_require__(177);
-var colorpicker_1 = __webpack_require__(178);
var Form = /** @class */ (function (_super) {
__extends(Form, _super);
function Form(container, config) {
var _this = _super.call(this, null, core_1.extend({
labelWidth: "auto",
- inputType: "text"
+ inputType: "text",
+ disabled: false
}, config)) || this;
- _this.events = new events_1.EventSystem(_this);
_this._state = {};
+ _this.events = new events_1.EventSystem(_this);
_this.container = container;
_this._initUI(container);
+ if (_this.config.disabled) {
+ _this.disable();
+ }
return _this;
}
Form.prototype.send = function (url, method, asFormData) {
@@ -19214,12 +20923,6 @@ var Form = /** @class */ (function (_super) {
});
}
};
- Form.prototype.setConfig = function (config) {
- this.unmount();
- this.config = config;
- this._initUI(this.container);
- this.paint();
- };
Form.prototype.clear = function (method) {
switch (method) {
case types_1.ClearMethod.value:
@@ -19239,8 +20942,8 @@ var Form = /** @class */ (function (_super) {
for (var item in obj) {
for (var key in this._attachments) {
if (typeof this._attachments[key].setValue === "function") {
- if (this._attachments[key].config.id === item) {
- this._attachments[key].setValue(obj[key]);
+ if (this._attachments[key].config.name === item || this._attachments[key].config.id === item && !this._attachments[key].config.name) {
+ this._attachments[key].setValue(obj[item]);
}
}
}
@@ -19260,40 +20963,89 @@ var Form = /** @class */ (function (_super) {
formData.append(key, this._state[key]);
}
}
- return formData;
+ return formData;
+ }
+ return this._state;
+ };
+ Form.prototype.getItem = function (id) {
+ for (var item in this._attachments) {
+ if (item === id) {
+ return this._attachments[item];
+ }
+ }
+ };
+ Form.prototype.validate = function () {
+ var attachments = this._attachments;
+ var isValid = true;
+ for (var id in attachments) {
+ var component = attachments[id];
+ if (component.validate && !component.validate()) {
+ isValid = false;
+ this.events.fire(types_1.FormEvents.validationFail, [id, component]);
+ }
+ }
+ return isValid;
+ };
+ Form.prototype.getRootView = function () {
+ return this.layout.getRootView();
+ };
+ Form.prototype.disable = function () {
+ this.config.disabled = true;
+ for (var key in this._attachments) {
+ if (typeof this._attachments[key].disable === "function") {
+ this._attachments[key].disable();
+ }
+ }
+ };
+ Form.prototype.enable = function () {
+ this.config.disabled = false;
+ for (var key in this._attachments) {
+ if (typeof this._attachments[key].enable === "function") {
+ this._attachments[key].enable();
+ }
}
- return this._state;
};
- Form.prototype.validate = function () {
- var attachments = this._attachments;
- var isValid = true;
- for (var id in attachments) {
- var component = attachments[id];
- if (component.validate && !component.validate()) {
- isValid = false;
- this.events.fire(types_1.FormEvents.validationFail, [id, component]);
+ Form.prototype.isDisabled = function (id) {
+ if (!id) {
+ return this.config.disabled;
+ }
+ for (var key in this._attachments) {
+ if (key === id) {
+ return this._attachments[key].config.disabled;
}
}
- return isValid;
};
- Form.prototype.getRootView = function () {
- return this.layout.getRootView();
+ Form.prototype.forEach = function (callback) {
+ var items = Object.values(this._attachments);
+ for (var index = 0; index < items.length; index++) {
+ callback.call(this, items[index], index, items);
+ }
};
Form.prototype.destructor = function () {
this.events.clear();
this.unmount();
};
+ // TODO: remove sute_7.0
+ Form.prototype.setConfig = function (config) {
+ this._setConfig(config);
+ };
+ Form.prototype._setConfig = function (config) {
+ this.unmount();
+ this.config = config;
+ this._initUI(this.container);
+ this.paint();
+ };
Form.prototype._addLayoutItem = function (item) {
var _this = this;
item.id = item.id || core_1.uid();
var id = item.id;
var name = item.name || item.id;
- var width = item.width, height = item.height, cellCss = item.cellCss, gravity = item.gravity, config = __rest(item, ["width", "height", "cellCss", "gravity"]);
+ var width = item.width, height = item.height, css = item.css, gravity = item.gravity, config = __rest(item, ["width", "height", "css", "gravity"]);
var cell = {
id: id,
width: width,
height: height,
- css: cellCss,
+ css: css
};
if ("gravity" in item) {
cell.gravity = item.gravity;
@@ -19302,7 +21054,16 @@ var Form = /** @class */ (function (_super) {
case types_1.FormItemType.button:
var button = this._attachments[id] = new button_1.Button(null, config);
button.events.on(button_1.ButtonEvents.click, function (e) {
- !_this.validate() ? e.preventDefault() : _this.events.fire(types_1.FormEvents.buttonClick, [id, e]);
+ e.preventDefault();
+ if (config.submit) {
+ if (_this.validate()) {
+ _this.send(config.url);
+ _this.events.fire(types_1.FormEvents.buttonClick, [id, e]);
+ }
+ }
+ else {
+ _this.events.fire(types_1.FormEvents.buttonClick, [id, e]);
+ }
});
break;
case types_1.FormItemType.datepicker:
@@ -19310,117 +21071,193 @@ var Form = /** @class */ (function (_super) {
this._state[name] = dateInput_2.getValue();
dateInput_2.calendar.events.on(ts_calendar_1.CalendarEvents.change, function () {
var value = dateInput_2.getValue();
- _this.events.fire(types_1.FormEvents.change, [name, value]);
_this._state[name] = value;
+ _this.events.fire(types_1.FormEvents.change, [name, value]);
});
- dateInput_2.events.on(dateInput_1.DateInputEvents.change, function () {
+ dateInput_2.events.on(types_1.BaseElementEvent.configUpdate, function (newConfig) {
var value = dateInput_2.getValue();
- _this.events.fire(types_1.FormEvents.change, [name, value]);
_this._state[name] = value;
+ _this.layout.getCell(dateInput_2.config.id).config = _this._checkLayoutConfig(newConfig, {});
+ dateInput_2.calendar.events.on(ts_calendar_1.CalendarEvents.change, function () {
+ value = dateInput_2.getValue();
+ _this._state[name] = value;
+ _this.events.fire(types_1.FormEvents.change, [name, value]);
+ });
});
break;
case types_1.FormItemType.checkbox:
var checkbox_2 = this._attachments[id] = new checkbox_1.Checkbox(null, config);
this._state[name] = checkbox_2.getValue();
- checkbox_2.events.on(checkbox_1.CheckboxEvents.change, function () {
+ checkbox_2.events.on(types_1.BaseElementEvent.change, function () {
var value = checkbox_2.getValue();
+ _this._state[name] = value;
_this.events.fire(types_1.FormEvents.change, [name, value]);
+ });
+ checkbox_2.events.on(types_1.BaseElementEvent.configUpdate, function (newConfig) {
+ var value = checkbox_2.getValue();
_this._state[name] = value;
+ _this.layout.getCell(checkbox_2.config.id).config = _this._checkLayoutConfig(newConfig, {});
});
break;
case types_1.FormItemType.combo:
- var combo_2 = this._attachments[id] = new combo_1.Combo(config);
+ var combo_2 = this._attachments[id] = new combo_1.Combo(null, config);
this._state[name] = combo_2.getValue();
- combo_2.events.on(ts_combobox_1.ComboboxEvents.change, function (selected) {
+ combo_2.events.on(types_1.BaseElementEvent.change, function (selected) {
var value = combo_2.getValue();
+ _this._state[name] = value;
_this.events.fire(types_1.FormEvents.change, [name, selected]);
+ });
+ combo_2.events.on(types_1.BaseElementEvent.configUpdate, function (newConfig) {
+ var value = combo_2.getValue();
_this._state[name] = value;
+ _this.layout.getCell(combo_2.config.id).config = _this._checkLayoutConfig(newConfig, {});
});
- if (config.data) {
- combo_2.data.parse(config.data);
- }
break;
case types_1.FormItemType.input:
var input_2 = this._attachments[id] = new input_1.Input(null, config);
this._state[name] = input_2.getValue();
- input_2.events.on(input_1.InputEvents.change, function () {
+ input_2.events.on(types_1.BaseElementEvent.change, function () {
var value = input_2.getValue();
+ _this._state[name] = value;
_this.events.fire(types_1.FormEvents.change, [name, value]);
+ });
+ input_2.events.on(types_1.BaseElementEvent.configUpdate, function (newConfig) {
+ var value = input_2.getValue();
_this._state[name] = value;
+ _this.layout.getCell(input_2.config.id).config = _this._checkLayoutConfig(newConfig, {});
});
break;
case types_1.FormItemType.radioGroup:
var radioGroup_2 = this._attachments[id] = new radioGroup_1.RadioGroup(null, config);
this._state[name] = radioGroup_2.getValue();
- radioGroup_2.events.on(radioGroup_1.RadioGroupEvents.change, function () {
+ radioGroup_2.events.on(types_1.BaseElementEvent.change, function () {
var value = radioGroup_2.getValue();
+ _this._state[name] = value;
_this.events.fire(types_1.FormEvents.change, [name, value]);
+ });
+ radioGroup_2.events.on(types_1.BaseElementEvent.configUpdate, function (newConfig) {
+ var value = radioGroup_2.getValue();
_this._state[name] = value;
+ _this.layout.getCell(radioGroup_2.config.id).config = _this._checkLayoutConfig(newConfig, {});
});
break;
case types_1.FormItemType.select:
- var select_2 = this._attachments[id] = new select_1.Select(config);
+ var select_2 = this._attachments[id] = new select_1.Select(null, config);
this._state[name] = select_2.getValue();
- select_2.events.on(select_1.SelectEvents.change, function () {
+ select_2.events.on(types_1.BaseElementEvent.change, function () {
var value = select_2.getValue();
+ _this._state[name] = value;
_this.events.fire(types_1.FormEvents.change, [name, value]);
+ });
+ select_2.events.on(types_1.BaseElementEvent.configUpdate, function (newConfig) {
+ var value = select_2.getValue();
_this._state[name] = value;
+ _this.layout.getCell(select_2.config.id).config = _this._checkLayoutConfig(newConfig, {});
});
break;
case types_1.FormItemType.simpleVault:
+ config.$vaultHeight = height;
var simpleVault_1 = this._attachments[id] = new simplevault_1.SimpleVault(null, config);
this._state[name] = simpleVault_1.getValue();
- simpleVault_1.data.events.on(ts_data_1.DataEvents.change, function () {
+ simpleVault_1.events.on(types_1.BaseElementEvent.change, function () {
var value = simpleVault_1.getValue();
+ _this._state[name] = value;
_this.events.fire(types_1.FormEvents.change, [name, value]);
+ });
+ simpleVault_1.events.on(types_1.BaseElementEvent.configUpdate, function (newConfig) {
+ var value = simpleVault_1.getValue();
_this._state[name] = value;
+ _this.layout.getCell(simpleVault_1.config.id).config = _this._checkLayoutConfig(newConfig, {});
});
break;
case types_1.FormItemType.slider:
- var slider_1 = this._attachments[id] = new sliderform_1.SliderForm(config);
+ var slider_1 = this._attachments[id] = new sliderform_1.SliderForm(null, config);
this._state[name] = slider_1.getValue();
- slider_1.events.on(ts_slider_1.SliderEvents.change, function () {
+ slider_1.events.on(types_1.BaseElementEvent.change, function () {
var value = slider_1.getValue();
+ _this._state[name] = value;
_this.events.fire(types_1.FormEvents.change, [name, value]);
+ });
+ slider_1.events.on(types_1.BaseElementEvent.configUpdate, function (newConfig) {
+ var value = slider_1.getValue();
_this._state[name] = value;
+ _this.layout.getCell(slider_1.config.id).config = _this._checkLayoutConfig(newConfig, {});
});
break;
case types_1.FormItemType.textarea:
var textarea_2 = this._attachments[id] = new textarea_1.Textarea(null, config);
this._state[name] = textarea_2.getValue();
- textarea_2.events.on(input_1.InputEvents.change, function () {
- _this._state[name] = textarea_2.getValue();
+ textarea_2.events.on(types_1.BaseElementEvent.change, function () {
+ var value = textarea_2.getValue();
+ _this._state[name] = value;
+ _this.events.fire(types_1.FormEvents.change, [name, value]);
+ });
+ textarea_2.events.on(types_1.BaseElementEvent.configUpdate, function (newConfig) {
+ var value = textarea_2.getValue();
+ _this._state[name] = value;
+ _this.layout.getCell(textarea_2.config.id).config = _this._checkLayoutConfig(newConfig, {});
});
break;
case types_1.FormItemType.text:
- this._attachments[id] = new textinput_1.Text(null, config);
+ var text_1 = this._attachments[id] = new textinput_1.Text(null, config);
+ text_1.events.on(types_1.BaseElementEvent.configUpdate, function (newConfig) {
+ _this.layout.getCell(text_1.config.id).config = _this._checkLayoutConfig(newConfig, {});
+ });
break;
case types_1.FormItemType.timepicker:
var timeInput_2 = this._attachments[id] = new timeInput_1.TimeInput(null, config);
this._state[name] = timeInput_2.getValue();
- timeInput_2.timepicker.events.on(ts_timepicker_1.TimepickerEvents.change, function () {
- var value = timeInput_2.getValue();
- _this.events.fire(types_1.FormEvents.change, [name, value]);
- _this._state[name] = value;
- });
- timeInput_2.events.on(timeInput_1.TimeInputEvents.change, function () {
+ if (timeInput_2.config.controls) {
+ timeInput_2.timepicker.events.on(ts_timepicker_1.TimepickerEvents.apply, function () {
+ var value = timeInput_2.getValue();
+ _this._state[name] = value;
+ _this.events.fire(types_1.FormEvents.change, [name, value]);
+ });
+ }
+ else {
+ timeInput_2.timepicker.events.on(ts_timepicker_1.TimepickerEvents.change, function () {
+ var value = timeInput_2.getValue();
+ _this._state[name] = value;
+ _this.events.fire(types_1.FormEvents.change, [name, value]);
+ });
+ }
+ timeInput_2.events.on(types_1.BaseElementEvent.configUpdate, function (newConfig) {
var value = timeInput_2.getValue();
- _this.events.fire(types_1.FormEvents.change, [name, value]);
_this._state[name] = value;
+ _this.layout.getCell(timeInput_2.config.id).config = _this._checkLayoutConfig(newConfig, {});
+ if (timeInput_2.config.controls) {
+ timeInput_2.timepicker.events.on(ts_timepicker_1.TimepickerEvents.apply, function () {
+ value = timeInput_2.getValue();
+ _this._state[name] = value;
+ _this.events.fire(types_1.FormEvents.change, [name, value]);
+ });
+ }
+ else {
+ timeInput_2.timepicker.events.on(ts_timepicker_1.TimepickerEvents.change, function () {
+ value = timeInput_2.getValue();
+ _this._state[name] = value;
+ _this.events.fire(types_1.FormEvents.change, [name, value]);
+ });
+ }
});
break;
case types_1.FormItemType.colorpicker:
var colorpickerInput_1 = this._attachments[id] = new colorpicker_1.ColorpickerInput(null, config);
this._state[name] = colorpickerInput_1.getValue();
- colorpickerInput_1.events.on(colorpicker_1.ColorpickerInputEvents.change, function () {
+ colorpickerInput_1.colorpicker.events.on(ts_colorpicker_1.ColorpickerEvents.change, function () {
var value = colorpickerInput_1.getValue();
- _this.events.fire(types_1.FormEvents.change, [name, value]);
_this._state[name] = value;
+ _this.events.fire(types_1.FormEvents.change, [name, value]);
});
- colorpickerInput_1.colorpicker.events.on(ts_colorpicker_1.ColorpickerEvents.colorChange, function () {
+ colorpickerInput_1.events.on(types_1.BaseElementEvent.configUpdate, function (newConfig) {
var value = colorpickerInput_1.getValue();
- _this.events.fire(types_1.FormEvents.change, [name, value]);
_this._state[name] = value;
+ _this.layout.getCell(colorpickerInput_1.config.id).config = _this._checkLayoutConfig(newConfig, {});
+ colorpickerInput_1.colorpicker.events.on(ts_colorpicker_1.ColorpickerEvents.change, function () {
+ value = colorpickerInput_1.getValue();
+ _this._state[name] = value;
+ _this.events.fire(types_1.FormEvents.change, [name, value]);
+ });
});
break;
}
@@ -19441,9 +21278,9 @@ var Form = /** @class */ (function (_super) {
return _this._addLayoutItem(item);
});
};
- Form.prototype._createLayoutConfig = function (config, layoutConfig) {
- if (core_1.isDefined(config.cellCss)) {
- layoutConfig.css = config.cellCss;
+ Form.prototype._checkLayoutConfig = function (config, layoutConfig) {
+ if (core_1.isDefined(config.css)) {
+ layoutConfig.css = config.css;
}
if (core_1.isDefined(config.title)) {
layoutConfig.header = config.title;
@@ -19463,6 +21300,10 @@ var Form = /** @class */ (function (_super) {
if (core_1.isDefined(config.align)) {
layoutConfig.align = config.align;
}
+ return layoutConfig;
+ };
+ Form.prototype._createLayoutConfig = function (config, layoutConfig) {
+ layoutConfig = this._checkLayoutConfig(config, layoutConfig);
if (core_1.isDefined(config.rows)) {
layoutConfig.rows = this._addLayoutItems(config.rows, config.group, config.groupName);
}
@@ -19473,10 +21314,11 @@ var Form = /** @class */ (function (_super) {
Form.prototype._initUI = function (container) {
var attachments = this._attachments = {};
var layoutConfig = { padding: "8px" };
+ this.config.css = this.config.css || this.config.cellCss; // TODO: remove sute_7.0
this._createLayoutConfig(this.config, layoutConfig);
var layout = this.layout = new ts_layout_1.Layout(container, layoutConfig);
for (var id in attachments) {
- layout.cell(id).attach(attachments[id]);
+ layout.getCell(id).attach(attachments[id]);
}
};
Form.prototype._clear = function () {
@@ -19500,10 +21342,10 @@ var Form = /** @class */ (function (_super) {
}(view_1.View));
exports.Form = Form;
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(14)))
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(12)))
/***/ }),
-/* 166 */
+/* 171 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -19522,43 +21364,40 @@ var __extends = (this && this.__extends) || (function () {
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
-var ts_calendar_1 = __webpack_require__(28);
-var events_1 = __webpack_require__(2);
+var ts_calendar_1 = __webpack_require__(25);
+var events_1 = __webpack_require__(3);
var dom_1 = __webpack_require__(0);
-var label_1 = __webpack_require__(16);
-var ts_popup_1 = __webpack_require__(10);
+var label_1 = __webpack_require__(18);
+var ts_popup_1 = __webpack_require__(11);
var types_1 = __webpack_require__(8);
var helper_1 = __webpack_require__(9);
-var DateInputEvents;
-(function (DateInputEvents) {
- DateInputEvents["change"] = "change";
-})(DateInputEvents = exports.DateInputEvents || (exports.DateInputEvents = {}));
var DateInput = /** @class */ (function (_super) {
__extends(DateInput, _super);
function DateInput(container, config) {
var _this = _super.call(this, null, config) || this;
_this.events = new events_1.EventSystem();
- _this._popup = new ts_popup_1.Popup({ css: "dhx_widget--border-shadow" });
- _this.calendar = new ts_calendar_1.Calendar(null, config);
- _this._popup.attach(_this.calendar);
+ _this._initView(config);
var render = function () { return _this._draw(); };
_this.mount(container, dom_1.create({ render: render }));
- _this.calendar.events.on(ts_calendar_1.CalendarEvents.change, function () {
- _this.config.value = _this.calendar.getValue();
- _this._popup.hide();
- _this.validate();
- });
- _this.events.on(DateInputEvents.change, function (value) {
- _this.config.value = _this._inputValidate(value);
- if (_this._inputValidate(value)) {
- _this.calendar.setValue(value);
- }
- _this.validate();
- });
return _this;
}
+ DateInput.prototype.disable = function () {
+ this.config.disabled = true;
+ this.paint();
+ };
+ DateInput.prototype.enable = function () {
+ this.config.disabled = false;
+ this.paint();
+ };
+ DateInput.prototype.isDisabled = function () {
+ return this.config.disabled;
+ };
DateInput.prototype.validate = function () {
- var isValid = !this.config.required || Boolean(this.config.value);
+ var _a = this.config, required = _a.required, value = _a.value, validation = _a.validation;
+ var isValid = true;
+ isValid = validation
+ ? this.config.validation(value)
+ : !required || Boolean(value);
this.config.$validationStatus = isValid
? types_1.ValidationStatus.success
: types_1.ValidationStatus.error;
@@ -19573,13 +21412,74 @@ var DateInput = /** @class */ (function (_super) {
this.calendar.setValue(value);
this.paint();
};
- DateInput.prototype.getValue = function () {
- return this.config.value || "";
+ DateInput.prototype.getValue = function (asDateObject) {
+ var value = this.config.value;
+ if (asDateObject && value !== "" || this.config.valueFormat === "Date" && value !== "") {
+ return ts_calendar_1.stringToDate(value, this.calendar.config.dateFormat) || "";
+ }
+ return value || "";
};
DateInput.prototype.clear = function () {
this.config.value = "";
this.paint();
};
+ DateInput.prototype.getWidget = function () {
+ return this.calendar;
+ };
+ // TODO: remove sute_7.0
+ DateInput.prototype.setConfig = function (config) {
+ this._initView(config);
+ };
+ DateInput.prototype._initView = function (config) {
+ var _this = this;
+ if (helper_1.isEmptyObj(config)) {
+ return;
+ }
+ if (this.calendar) {
+ this.calendar.destructor();
+ }
+ if (this._popup) {
+ this._popup.destructor();
+ }
+ this.config = {
+ type: this.config.type,
+ id: this.config.id,
+ name: this.config.name,
+ disabled: false,
+ editable: false,
+ value: "",
+ valueFormat: "string"
+ };
+ for (var key in config) {
+ if (key !== "id" && key !== "type" && key !== "name") {
+ this.config[key] = config[key];
+ }
+ }
+ this.config.editable = this.config.editable || this.config.editing; // TODO: remove sute_7.0
+ this._popup = new ts_popup_1.Popup({ css: "dhx_widget--border-shadow" });
+ this.calendar = new ts_calendar_1.Calendar(null, config);
+ this._popup.attach(this.calendar);
+ if (this.config.value) {
+ this.calendar.setValue(this.config.value);
+ this.config.value = this.calendar.getValue();
+ }
+ this.calendar.events.on(ts_calendar_1.CalendarEvents.change, function () {
+ _this.config.value = _this.calendar.getValue();
+ _this._popup.hide();
+ _this.validate();
+ });
+ this.events.on(types_1.BaseElementEvent.change, function (value) {
+ _this.config.value = _this._inputValidate(value);
+ if (_this._inputValidate(value)) {
+ _this.calendar.setValue(value);
+ }
+ else {
+ _this.validate();
+ }
+ });
+ this.events.fire(types_1.BaseElementEvent.configUpdate, [this.config]);
+ this.clearValidate();
+ };
DateInput.prototype._getHandlers = function () {
var _this = this;
return {
@@ -19592,7 +21492,7 @@ var DateInput = /** @class */ (function (_super) {
},
onchange: function (e) {
var value = e.target.value;
- _this.events.fire(DateInputEvents.change, [value]);
+ _this.events.fire(types_1.BaseElementEvent.change, [value]);
},
onkeyup: function (e) {
if (e.keyCode === 13) {
@@ -19610,13 +21510,13 @@ var DateInput = /** @class */ (function (_super) {
return ts_calendar_1.stringToDate(value, dateFormat, true) ? value : "";
};
DateInput.prototype._draw = function () {
- var _a = this.config, value = _a.value, icon = _a.icon, required = _a.required, disabled = _a.disabled, placeholder = _a.placeholder, name = _a.name, id = _a.id, validation = _a.validation, _b = _a.editing, editing = _b === void 0 ? false : _b;
+ var _a = this.config, value = _a.value, icon = _a.icon, required = _a.required, disabled = _a.disabled, placeholder = _a.placeholder, name = _a.name, id = _a.id, validation = _a.validation, editable = _a.editable;
return dom_1.el("div.dhx_form-group", {
class: helper_1.getFormItemCss(this.config, Boolean(required) || Boolean(validation)),
}, [
this._drawLabel(),
- dom_1.el(".dhx_input-wrapper", [
- dom_1.el("div.dhx_input-container", {}, [
+ dom_1.el(".dhx_input__wrapper", [
+ dom_1.el("div.dhx_input__container", {}, [
dom_1.el(".dhx_input__icon", {
class: icon || "dxi dxi-calendar-today"
}),
@@ -19634,10 +21534,10 @@ var DateInput = /** @class */ (function (_super) {
onchange: this._handlers.onchange,
onkeyup: this._handlers.onkeyup,
autocomplete: "off",
- readOnly: !editing
+ readOnly: !editable
}),
]),
- helper_1.getValidationMessage(this.config) && dom_1.el("span.dhx_input-caption", {}, helper_1.getValidationMessage(this.config))
+ helper_1.getValidationMessage(this.config) && dom_1.el("span.dhx_input__caption", {}, helper_1.getValidationMessage(this.config))
]),
]);
};
@@ -19647,7 +21547,7 @@ exports.DateInput = DateInput;
/***/ }),
-/* 167 */
+/* 172 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -19665,10 +21565,21 @@ var __extends = (this && this.__extends) || (function () {
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
+var __assign = (this && this.__assign) || function () {
+ __assign = Object.assign || function(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign.apply(this, arguments);
+};
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
var view_1 = __webpack_require__(4);
-var events_1 = __webpack_require__(2);
+var events_1 = __webpack_require__(3);
var ButtonEvents;
(function (ButtonEvents) {
ButtonEvents["click"] = "click";
@@ -19676,8 +21587,7 @@ var ButtonEvents;
var Button = /** @class */ (function (_super) {
__extends(Button, _super);
function Button(container, config) {
- if (config === void 0) { config = {}; }
- var _this = _super.call(this, container, config) || this;
+ var _this = _super.call(this, container, __assign({ disabled: false }, config)) || this;
_this.events = new events_1.EventSystem();
_this._handlers = {
onclick: function (e) { return _this.events.fire(ButtonEvents.click, [e]); }
@@ -19686,12 +21596,23 @@ var Button = /** @class */ (function (_super) {
_this.mount(container, dom_1.create({ render: render }));
return _this;
}
+ Button.prototype.disable = function () {
+ this.config.disabled = true;
+ this.paint();
+ };
+ Button.prototype.enable = function () {
+ this.config.disabled = false;
+ this.paint();
+ };
+ Button.prototype.isDisabled = function () {
+ return this.config.disabled;
+ };
Button.prototype.setValue = function (value) {
this.config.value = value;
this.paint();
};
Button.prototype._draw = function () {
- var _a = this.config, color = _a.color, size = _a.size, view = _a.view, full = _a.full, loading = _a.loading, circle = _a.circle, icon = _a.icon, value = _a.value, disabled = _a.disabled, submit = _a.submit;
+ var _a = this.config, color = _a.color, size = _a.size, view = _a.view, full = _a.full, loading = _a.loading, circle = _a.circle, icon = _a.icon, value = _a.value, disabled = _a.disabled, submit = _a.submit, id = _a.id;
var colorsCss = {
danger: " dhx_button--color_danger",
secondary: " dhx_button--color_secondary",
@@ -19712,6 +21633,7 @@ var Button = /** @class */ (function (_super) {
var iconViewCss = icon && !value ? " dhx_button--icon" : "";
return dom_1.el("button", {
disabled: disabled,
+ id: id,
onclick: this._handlers.onclick,
type: submit ? "submit" : "button",
class: "dhx_button" +
@@ -19738,7 +21660,7 @@ exports.Button = Button;
/***/ }),
-/* 168 */
+/* 173 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -19758,47 +21680,32 @@ var __extends = (this && this.__extends) || (function () {
})();
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var events_1 = __webpack_require__(2);
+var events_1 = __webpack_require__(3);
var view_1 = __webpack_require__(4);
var helper_1 = __webpack_require__(9);
-var ts_popup_1 = __webpack_require__(10);
+var ts_popup_1 = __webpack_require__(11);
var types_1 = __webpack_require__(8);
-var CheckboxEvents;
-(function (CheckboxEvents) {
- CheckboxEvents["change"] = "change";
-})(CheckboxEvents = exports.CheckboxEvents || (exports.CheckboxEvents = {}));
var Checkbox = /** @class */ (function (_super) {
__extends(Checkbox, _super);
function Checkbox(container, config) {
if (config === void 0) { config = {}; }
var _this = _super.call(this, container, config) || this;
- if (_this.config.help) {
- _this._helper = new ts_popup_1.Popup({ css: "dhx_tooltip dhx_tooltip--forced dhx_tooltip--light" });
- _this._helper.attachHTML(_this.config.help);
- }
- _this._handlers = {
- showHelper: function (e) {
- e.preventDefault();
- e.stopPropagation();
- _this._helper.show(e.target);
- },
- cancelUnusefulClick: function (e) {
- e.preventDefault();
- },
- onchange: function (e) {
- _this.config.checked = e.target.checked;
- _this.events.fire(CheckboxEvents.change, [e.target.checked]);
- _this.validate();
- }
- };
- _this.events = new events_1.EventSystem();
- _this.events.on(CheckboxEvents.change, function (value) {
- _this.config.checked = value;
- });
+ _this._initView(config);
var render = function () { return _this._draw(); };
_this.mount(container, dom_1.create({ render: render }));
return _this;
}
+ Checkbox.prototype.disable = function () {
+ this.config.disabled = true;
+ this.paint();
+ };
+ Checkbox.prototype.enable = function () {
+ this.config.disabled = false;
+ this.paint();
+ };
+ Checkbox.prototype.isDisabled = function () {
+ return this.config.disabled;
+ };
Checkbox.prototype.clear = function () {
this.config.checked = false;
this.paint();
@@ -19808,13 +21715,17 @@ var Checkbox = /** @class */ (function (_super) {
this.paint();
};
Checkbox.prototype.setValue = function (value) {
- this.events.fire(CheckboxEvents.change, [value]);
+ this.events.fire(types_1.BaseElementEvent.change, [value]);
this.config.checked = value;
this.paint();
};
Checkbox.prototype.getValue = function () {
return this.config.checked || false;
};
+ // TODO: remove sute_7.0
+ Checkbox.prototype.setConfig = function (config) {
+ this._initView(config);
+ };
Checkbox.prototype.validate = function () {
var isValid = !this.config.required || this.config.checked;
this.config.$validationStatus = isValid
@@ -19823,41 +21734,88 @@ var Checkbox = /** @class */ (function (_super) {
this.paint();
return isValid;
};
+ Checkbox.prototype._initView = function (config) {
+ var _this = this;
+ if (helper_1.isEmptyObj(config)) {
+ return;
+ }
+ this.config = {
+ type: this.config.type,
+ id: this.config.id,
+ name: this.config.name,
+ disabled: false
+ };
+ for (var key in config) {
+ if (key !== "id" && key !== "type" && key !== "name") {
+ this.config[key] = config[key];
+ }
+ }
+ this.config.helpMessage = this.config.helpMessage || this.config.help; // TODO: remove sute_7.0
+ if (this.config.labelInline) {
+ this.config.labelPosition = "right"; // TODO: remove sute_7.0
+ }
+ this.events = new events_1.EventSystem();
+ this._handlers = {
+ showHelper: function (e) {
+ e.preventDefault();
+ e.stopPropagation();
+ _this._helper.show(e.target);
+ },
+ cancelUnusefulClick: function (e) {
+ e.preventDefault();
+ },
+ onchange: function (e) {
+ _this.config.checked = e.target.checked;
+ _this.events.fire(types_1.BaseElementEvent.change, [e.target.checked]);
+ _this.validate();
+ }
+ };
+ this.events.on(types_1.BaseElementEvent.change, function (value) {
+ _this.config.checked = value;
+ });
+ this.events.fire(types_1.BaseElementEvent.configUpdate, [this.config]);
+ this.clearValidate();
+ };
Checkbox.prototype._draw = function () {
- var _a = this.config, id = _a.id, value = _a.value, label = _a.label, checked = _a.checked, disabled = _a.disabled, name = _a.name, help = _a.help, labelWidth = _a.labelWidth, labelInline = _a.labelInline, required = _a.required, hidden = _a.hidden;
+ if (this.config.helpMessage) {
+ if (this._helper) {
+ this._helper.attachHTML(this.config.helpMessage);
+ }
+ else {
+ this._helper = new ts_popup_1.Popup({ css: "dhx_tooltip dhx_tooltip--forced dhx_tooltip--light" });
+ this._helper.attachHTML(this.config.helpMessage);
+ }
+ }
+ var _a = this.config, id = _a.id, value = _a.value, label = _a.label, checked = _a.checked, disabled = _a.disabled, name = _a.name, helpMessage = _a.helpMessage, labelWidth = _a.labelWidth, labelPosition = _a.labelPosition, required = _a.required, hidden = _a.hidden;
var visibility = hidden ? " dhx_form-group--hidden" : "";
- return dom_1.el("label.dhx_form-group", {
- class: visibility,
- style: { "margin-left": "" + (labelWidth && labelInline ? "calc(" + labelWidth + " + 16px)" : "") }
+ return dom_1.el("label.dhx_checkbox.dhx_form-group", {
+ class: helper_1.getFormItemCss(this.config, Boolean(required)) + visibility,
+ style: { "margin-left": "" + (labelWidth && labelPosition === "right" ? "calc(" + labelWidth + " + 16px)" : "") }
}, [
- dom_1.el("div.dhx_checkbox", {
- class: helper_1.getFormItemCss(this.config, Boolean(required)) + (help ? " dhx_label--with-help" : "")
- }, [
- dom_1.el("input.dhx_checkbox__input", {
- type: "checkbox",
- id: id,
- value: value || "",
- name: name || "",
- disabled: disabled,
- checked: checked,
- onchange: this._handlers.onchange,
- required: required
+ dom_1.el("input.dhx_checkbox__input", {
+ type: "checkbox",
+ id: id,
+ value: value || "",
+ name: name || "",
+ disabled: disabled,
+ checked: checked,
+ onchange: this._handlers.onchange,
+ required: required
+ }),
+ dom_1.el("span.dhx_checkbox__visual-input"),
+ dom_1.el("span.dhx_label", {
+ class: helpMessage ? "dhx_label--with-help" : ""
+ }, helpMessage ? [
+ dom_1.el("span.dhx_label__holder", label),
+ dom_1.el("span.dhx_label-help.dxi.dxi-help-circle-outline", {
+ tabindex: "0",
+ role: "button",
+ onclick: this._handlers.showHelper
}),
- dom_1.el("span.dhx_checkbox__visual-input"),
- dom_1.el("span.dhx_label", {
- class: help ? "dhx_label--with-help" : ""
- }, help ? [
- dom_1.el("span.dhx_label__holder", label),
- dom_1.el("span.dhx_label-help.dxi.dxi-help-circle-outline", {
- tabindex: "0",
- role: "button",
- onclick: this._handlers.showHelper
- }),
- ] : label),
- helper_1.getValidationMessage(this.config) && dom_1.el("span.dhx_input-caption", {
- onclick: this._handlers.cancelUnusefulClick,
- }, helper_1.getValidationMessage(this.config))
- ]),
+ ] : label),
+ helper_1.getValidationMessage(this.config) && dom_1.el("span.dhx_input-caption", {
+ onclick: this._handlers.cancelUnusefulClick,
+ }, helper_1.getValidationMessage(this.config))
]);
};
return Checkbox;
@@ -19866,7 +21824,7 @@ exports.Checkbox = Checkbox;
/***/ }),
-/* 169 */
+/* 174 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -19887,55 +21845,34 @@ var __extends = (this && this.__extends) || (function () {
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
var core_1 = __webpack_require__(1);
-var ts_layout_1 = __webpack_require__(12);
-var events_1 = __webpack_require__(2);
+var ts_layout_1 = __webpack_require__(14);
+var events_1 = __webpack_require__(3);
var view_1 = __webpack_require__(4);
-var radiobutton_1 = __webpack_require__(170);
+var radiobutton_1 = __webpack_require__(175);
var helper_1 = __webpack_require__(9);
var types_1 = __webpack_require__(8);
-var RadioGroupEvents;
-(function (RadioGroupEvents) {
- RadioGroupEvents["change"] = "change";
-})(RadioGroupEvents = exports.RadioGroupEvents || (exports.RadioGroupEvents = {}));
var RadioGroup = /** @class */ (function (_super) {
__extends(RadioGroup, _super);
function RadioGroup(container, config) {
var _this = _super.call(this, null, config) || this;
_this.events = new events_1.EventSystem();
_this._buttons = [];
- var mapConfig = _this.config.options.rows || _this.config.options.cols;
- var _a = _this.config, preMessage = _a.preMessage, errorMessage = _a.errorMessage, successMessage = _a.successMessage;
- mapConfig.map(function (option) {
- option.id = option.id || core_1.uid();
- });
- _this.layout = new ts_layout_1.Layout(null, config.options);
- mapConfig.map(function (option) {
- var radiobutton = new radiobutton_1.RadioButton(null, option);
- radiobutton.config.disabled = _this.config.disabled;
- radiobutton.config.name = _this.config.name;
- radiobutton.config.required = _this.config.required;
- radiobutton.config.css = _this.config.css;
- if (preMessage || errorMessage || successMessage) {
- radiobutton.config.preMessage = "";
- radiobutton.config.errorMessage = "";
- radiobutton.config.successMessage = "";
- }
- _this._buttons.push(radiobutton);
- _this.layout.cell(option.id).attach(radiobutton);
- radiobutton.events.on(radiobutton_1.RadioButtonEvents.change, function () {
- _this._buttons.map(function (element) {
- if (element.config.id !== radiobutton.config.id) {
- element.setValue(false);
- }
- });
- _this.events.fire(radiobutton_1.RadioButtonEvents.change);
- _this.validate();
- });
- });
+ _this._initView(config);
var render = function () { return _this._draw(); };
_this.mount(container, dom_1.create({ render: render }));
return _this;
}
+ RadioGroup.prototype.disable = function () {
+ this.config.disabled = true;
+ this.paint();
+ };
+ RadioGroup.prototype.enable = function () {
+ this.config.disabled = false;
+ this.paint();
+ };
+ RadioGroup.prototype.isDisabled = function () {
+ return this.config.disabled;
+ };
RadioGroup.prototype.validate = function () {
var _this = this;
var isValid = false;
@@ -19969,13 +21906,13 @@ var RadioGroup = /** @class */ (function (_super) {
this.paint();
};
RadioGroup.prototype.getValue = function () {
- var value;
+ var _this = this;
this._buttons.map(function (element) {
if (element.getValue()) {
- value = element.getValue();
+ _this.config.value = element.getValue() || "";
}
});
- return value || "";
+ return this.config.value || "";
};
RadioGroup.prototype.setValue = function (value) {
this._buttons.map(function (element) {
@@ -19983,21 +21920,85 @@ var RadioGroup = /** @class */ (function (_super) {
? element.setValue(true)
: element.setValue(false);
});
- this.events.fire(radiobutton_1.RadioButtonEvents.change);
+ this.events.fire(types_1.BaseElementEvent.change);
this.paint();
};
+ // TODO: remove sute_7.0
+ RadioGroup.prototype.setConfig = function (config) {
+ this._initView(config);
+ };
+ RadioGroup.prototype._initView = function (config) {
+ var _this = this;
+ if (helper_1.isEmptyObj(config) || helper_1.isEmptyObj(config.options)) {
+ return;
+ }
+ if (this.layout) {
+ this.layout.destructor();
+ }
+ if (this._buttons.length !== 0) {
+ this._buttons.map(function (button) {
+ button.destructor();
+ });
+ this._buttons = [];
+ }
+ this.config = {
+ type: this.config.type,
+ id: this.config.id,
+ name: this.config.name,
+ disabled: false,
+ options: {}
+ };
+ for (var key in config) {
+ if (key !== "id" && key !== "type" && key !== "name") {
+ this.config[key] = config[key];
+ }
+ }
+ var radioButtonsConfig = this.config.options.rows || this.config.options.cols;
+ var _a = this.config, preMessage = _a.preMessage, errorMessage = _a.errorMessage, successMessage = _a.successMessage;
+ radioButtonsConfig.map(function (option) {
+ option.id = option.id || core_1.uid();
+ });
+ this.layout = new ts_layout_1.Layout(null, this.config.options);
+ radioButtonsConfig.map(function (option) {
+ var radiobutton = new radiobutton_1.RadioButton(null, option);
+ radiobutton.config.disabled = config.disabled;
+ radiobutton.config.name = config.name;
+ radiobutton.config.required = config.required;
+ radiobutton.config.css = config.css;
+ if (preMessage || errorMessage || successMessage) {
+ radiobutton.config.preMessage = "";
+ radiobutton.config.errorMessage = "";
+ radiobutton.config.successMessage = "";
+ }
+ _this._buttons.push(radiobutton);
+ _this.layout.getCell(option.id).attach(radiobutton);
+ radiobutton.events.on(radiobutton_1.RadioButtonEvents.change, function () {
+ _this._buttons.map(function (button) {
+ if (button.config.id !== radiobutton.config.id) {
+ button.setValue(false);
+ }
+ });
+ _this.events.fire(types_1.BaseElementEvent.change, []);
+ _this.validate();
+ });
+ });
+ this.events.fire(types_1.BaseElementEvent.configUpdate, [this.config]);
+ this.clearValidate();
+ };
RadioGroup.prototype._draw = function () {
- var _a = this._buttons[0].config, labelWidth = _a.labelWidth, labelInline = _a.labelInline;
+ var _a = this._buttons[0].config, labelWidth = _a.labelWidth, labelPosition = _a.labelPosition;
var hidden = this.config.hidden;
var visibility = hidden ? " dhx_form-group--hidden" : "";
return dom_1.el("div.dhx_form-group", {
class: helper_1.getFormItemCss(this.config, Boolean(this.config.required)) + visibility,
}, [
- dom_1.inject(this.layout.getRootView()),
- dom_1.el("div", {
- style: { "margin-left": "" + (labelWidth && labelInline ? "calc(" + labelWidth + " + 16px)" : "") }
+ dom_1.el("div.dhx_radio-group--container", {}, [
+ dom_1.inject(this.layout.getRootView()),
+ ]),
+ dom_1.el("div.dhx_caption--container", {
+ style: { "margin-left": "" + (labelWidth && labelPosition === "right" ? "calc(" + labelWidth + " + 16px)" : "") }
}, [
- dom_1.el("span.dhx_input-caption", helper_1.getValidationMessage(this.config))
+ dom_1.el("span.dhx_input__caption", helper_1.getValidationMessage(this.config))
])
]);
};
@@ -20007,7 +22008,7 @@ exports.RadioGroup = RadioGroup;
/***/ }),
-/* 170 */
+/* 175 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -20027,10 +22028,10 @@ var __extends = (this && this.__extends) || (function () {
})();
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var events_1 = __webpack_require__(2);
+var events_1 = __webpack_require__(3);
var view_1 = __webpack_require__(4);
var helper_1 = __webpack_require__(9);
-var ts_popup_1 = __webpack_require__(10);
+var ts_popup_1 = __webpack_require__(11);
var types_1 = __webpack_require__(8);
var RadioButtonEvents;
(function (RadioButtonEvents) {
@@ -20041,9 +22042,13 @@ var RadioButton = /** @class */ (function (_super) {
function RadioButton(container, config) {
if (config === void 0) { config = {}; }
var _this = _super.call(this, container, config) || this;
- if (_this.config.help) {
+ _this.config.helpMessage = _this.config.helpMessage || _this.config.help; // TODO: remove sute_7.0
+ if (_this.config.helpMessage) {
_this._helper = new ts_popup_1.Popup({ css: "dhx_tooltip dhx_tooltip--forced dhx_tooltip--light" });
- _this._helper.attachHTML(_this.config.help);
+ _this._helper.attachHTML(_this.config.helpMessage);
+ }
+ if (_this.config.labelInline) {
+ _this.config.labelPosition = "right"; // TODO: remove sute_7.0
}
_this._handlers = {
showHelper: function (e) {
@@ -20081,11 +22086,16 @@ var RadioButton = /** @class */ (function (_super) {
this.config.checked = checked;
this.paint();
};
+ RadioButton.prototype.destructor = function () {
+ this._helper.destructor();
+ this.events.clear();
+ this.unmount();
+ };
RadioButton.prototype._draw = function () {
- var _a = this.config, id = _a.id, value = _a.value, label = _a.label, checked = _a.checked, disabled = _a.disabled, name = _a.name, help = _a.help, labelWidth = _a.labelWidth, labelInline = _a.labelInline, required = _a.required;
- return dom_1.el("label.dhx_form-group.dhx_radiobutton", {
- class: helper_1.getFormItemCss(this.config, Boolean(required)) + (help ? " dhx_label--with-help" : ""),
- style: { "margin-left": "" + (labelWidth && labelInline ? "calc(" + labelWidth + " + 16px)" : "") }
+ var _a = this.config, id = _a.id, value = _a.value, label = _a.label, checked = _a.checked, disabled = _a.disabled, name = _a.name, helpMessage = _a.helpMessage, labelWidth = _a.labelWidth, labelPosition = _a.labelPosition, required = _a.required;
+ return dom_1.el("label.dhx_radiobutton.dhx_form-group", {
+ class: helper_1.getFormItemCss(this.config, Boolean(required)),
+ style: { "margin-left": "" + (labelWidth && labelPosition === "right" ? "calc(" + labelWidth + " + 16px)" : "") }
}, [
dom_1.el("input.dhx_radiobutton__input", {
type: "radio",
@@ -20099,15 +22109,15 @@ var RadioButton = /** @class */ (function (_super) {
}),
dom_1.el("span.dhx_radiobutton__visual-input"),
dom_1.el("span.dhx_label", {
- class: help ? "dhx_label--with-help" : ""
- }, help ? [
+ class: helpMessage ? "dhx_label--with-help" : ""
+ }, helpMessage ? [
dom_1.el("span.dhx_label__holder", label),
dom_1.el("span.dhx_label-help.dxi.dxi-help-circle-outline", {
tabindex: "0",
role: "button",
onclick: this._handlers.showHelper
}),
- ] : label), dom_1.el("span.dhx_input-caption", {
+ ] : label), dom_1.el("span.dhx_input__caption", {
onclick: this._handlers.cancelUnusefulClick,
}, helper_1.getValidationMessage(this.config)),
]);
@@ -20118,7 +22128,7 @@ exports.RadioButton = RadioButton;
/***/ }),
-/* 171 */
+/* 176 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -20138,39 +22148,40 @@ var __extends = (this && this.__extends) || (function () {
})();
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var label_1 = __webpack_require__(16);
+var label_1 = __webpack_require__(18);
var helper_1 = __webpack_require__(9);
-var events_1 = __webpack_require__(2);
+var events_1 = __webpack_require__(3);
var types_1 = __webpack_require__(8);
-var SelectEvents;
-(function (SelectEvents) {
- SelectEvents["change"] = "change";
-})(SelectEvents = exports.SelectEvents || (exports.SelectEvents = {}));
var Select = /** @class */ (function (_super) {
__extends(Select, _super);
- function Select(config) {
+ function Select(container, config) {
var _this = _super.call(this, null, config) || this;
_this.events = new events_1.EventSystem();
- _this.config.value = _this.config.options[0].value || _this.config.value;
+ _this._initView(config);
return _this;
}
+ Select.prototype.disable = function () {
+ this.config.disabled = true;
+ this.paint();
+ };
+ Select.prototype.enable = function () {
+ this.config.disabled = false;
+ this.paint();
+ };
+ Select.prototype.isDisabled = function () {
+ return this.config.disabled;
+ };
Select.prototype.validate = function () {
var _a = this.config, required = _a.required, value = _a.value, validation = _a.validation;
- if (validation) {
- var isValid = this.config.validation(value);
- isValid
- ? this.config.$validationStatus = types_1.ValidationStatus.success
- : this.config.$validationStatus = types_1.ValidationStatus.error;
- this.paint();
- return isValid;
- }
- else {
- !required || Boolean(value)
- ? this.config.$validationStatus = types_1.ValidationStatus.success
- : this.config.$validationStatus = types_1.ValidationStatus.error;
- this.paint();
- return !required || Boolean(value);
- }
+ var isValid = true;
+ isValid = validation
+ ? this.config.validation(value)
+ : !required || Boolean(value);
+ this.config.$validationStatus = isValid
+ ? types_1.ValidationStatus.success
+ : types_1.ValidationStatus.error;
+ this.paint();
+ return isValid;
};
Select.prototype.clearValidate = function () {
this.config.$validationStatus = types_1.ValidationStatus.pre;
@@ -20182,19 +22193,43 @@ var Select = /** @class */ (function (_super) {
};
Select.prototype.setValue = function (value) {
this.config.value = value;
- this.events.fire(SelectEvents.change, [value]);
+ this.events.fire(types_1.BaseElementEvent.change, [value]);
this.paint();
};
Select.prototype.getValue = function () {
return this.config.value || "";
};
+ // TODO: remove sute_7.0
+ Select.prototype.setConfig = function (config) {
+ this._initView(config);
+ };
+ Select.prototype._initView = function (config) {
+ if (helper_1.isEmptyObj(config)) {
+ return;
+ }
+ this.config = {
+ type: this.config.type,
+ id: this.config.id,
+ name: this.config.name,
+ options: config.options,
+ disabled: false,
+ value: config.options[0].value
+ };
+ for (var key in config) {
+ if (key !== "id" && key !== "type" && key !== "name") {
+ this.config[key] = config[key];
+ }
+ }
+ this.events.fire(types_1.BaseElementEvent.configUpdate, [this.config]);
+ this.paint();
+ };
Select.prototype._getHandlers = function () {
var _this = this;
return {
onchange: function (e) {
var value = e.target.value;
_this.config.value = value;
- _this.events.fire(SelectEvents.change, []);
+ _this.events.fire(types_1.BaseElementEvent.change, [value]);
_this.validate();
}
};
@@ -20205,8 +22240,8 @@ var Select = /** @class */ (function (_super) {
class: helper_1.getFormItemCss(this.config, Boolean(required) || Boolean(validation))
}, [
this._drawLabel(),
- dom_1.el(".dhx_input-wrapper", {}, [
- dom_1.el("div.dhx_input-container", {}, [
+ dom_1.el(".dhx_input__wrapper", {}, [
+ dom_1.el("div.dhx_input__container", {}, [
dom_1.el(".dhx_input__icon", {
class: icon ? icon : "dxi dxi-menu-down"
}),
@@ -20220,7 +22255,7 @@ var Select = /** @class */ (function (_super) {
selected: option.selected || value === option.value,
}, option.content); })),
]),
- helper_1.getValidationMessage(this.config) && dom_1.el("span.dhx_input-caption", helper_1.getValidationMessage(this.config))
+ helper_1.getValidationMessage(this.config) && dom_1.el("span.dhx_input__caption", helper_1.getValidationMessage(this.config))
]),
]);
};
@@ -20230,7 +22265,7 @@ exports.Select = Select;
/***/ }),
-/* 172 */
+/* 177 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -20251,7 +22286,7 @@ var __extends = (this && this.__extends) || (function () {
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
var helper_1 = __webpack_require__(9);
-var input_1 = __webpack_require__(50);
+var input_1 = __webpack_require__(52);
var core_1 = __webpack_require__(1);
var Textarea = /** @class */ (function (_super) {
__extends(Textarea, _super);
@@ -20264,7 +22299,7 @@ var Textarea = /** @class */ (function (_super) {
class: helper_1.getFormItemCss(this.config, Boolean(required) || Boolean(validation))
}, [
this._drawLabel(),
- dom_1.el(".dhx_input-wrapper", [
+ dom_1.el(".dhx_input__wrapper", [
dom_1.el("textarea.dhx_input.dhx_input--textarea", {
type: "text",
id: id,
@@ -20280,7 +22315,7 @@ var Textarea = /** @class */ (function (_super) {
resize: resizable ? "both" : "none",
}
}),
- helper_1.getValidationMessage(this.config) && dom_1.el("span.dhx_input-caption", {}, helper_1.getValidationMessage(this.config))
+ helper_1.getValidationMessage(this.config) && dom_1.el("span.dhx_input__caption", {}, helper_1.getValidationMessage(this.config))
]),
]);
};
@@ -20290,7 +22325,7 @@ exports.Textarea = Textarea;
/***/ }),
-/* 173 */
+/* 178 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -20312,7 +22347,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
var core_1 = __webpack_require__(1);
var helper_1 = __webpack_require__(9);
-var input_1 = __webpack_require__(50);
+var input_1 = __webpack_require__(52);
var Text = /** @class */ (function (_super) {
__extends(Text, _super);
function Text() {
@@ -20324,7 +22359,7 @@ var Text = /** @class */ (function (_super) {
class: helper_1.getFormItemCss(this.config)
}, [
this._drawLabel(),
- dom_1.el(".dhx_input-wrapper", [
+ dom_1.el(".dhx_input__wrapper", [
dom_1.el("input.dhx_input.dhx_input--textinput", {
type: "text",
readOnly: true,
@@ -20341,7 +22376,7 @@ exports.Text = Text;
/***/ }),
-/* 174 */
+/* 179 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -20362,37 +22397,42 @@ var __extends = (this && this.__extends) || (function () {
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
var helper_1 = __webpack_require__(9);
-var ts_combobox_1 = __webpack_require__(47);
-var label_1 = __webpack_require__(16);
+var ts_combobox_1 = __webpack_require__(32);
+var events_1 = __webpack_require__(3);
+var label_1 = __webpack_require__(18);
var types_1 = __webpack_require__(8);
var Combo = /** @class */ (function (_super) {
__extends(Combo, _super);
- function Combo(config) {
+ function Combo(container, config) {
var _this = _super.call(this, null, config) || this;
- _this.combobox = new ts_combobox_1.Combobox(null, config);
- _this.data = _this.combobox.data;
- _this.events = _this.combobox.events;
- _this.combobox.events.on("change", function (change) {
- if (change !== "load") {
- _this.validate();
- }
- });
- setTimeout(function () {
- _this.setValue(_this.config.value);
- });
+ _this.events = new events_1.EventSystem();
+ _this._initView(config);
return _this;
}
+ Combo.prototype.disable = function () {
+ this.config.disabled = true;
+ this.combobox.disable();
+ this.paint();
+ };
+ Combo.prototype.enable = function () {
+ this.config.disabled = false;
+ this.combobox.enable();
+ this.paint();
+ };
+ Combo.prototype.isDisabled = function () {
+ return this.config.disabled;
+ };
Combo.prototype.clear = function () {
this.combobox.clear();
this.paint();
};
Combo.prototype.getValue = function () {
- if (this.combobox.getValue() !== undefined) {
- if (this.combobox.getValue().length > 1) {
- return this.combobox.getValue(true);
- }
+ if (this.config.multiselection) {
+ return this.combobox.getValue(true);
+ }
+ else {
+ return this.combobox.getValue() || "";
}
- return this.combobox.getValue() || "";
};
Combo.prototype.setValue = function (value) {
if (value) {
@@ -20430,6 +22470,53 @@ var Combo = /** @class */ (function (_super) {
this._validationStatus();
this.paint();
};
+ Combo.prototype.getWidget = function () {
+ return this.combobox;
+ };
+ // TODO: remove sute_7.0
+ Combo.prototype.setConfig = function (config) {
+ this._initView(config);
+ };
+ Combo.prototype._initView = function (config) {
+ var _this = this;
+ if (helper_1.isEmptyObj(config)) {
+ return;
+ }
+ if (this.combobox) {
+ this.combobox.destructor();
+ }
+ this.config = {
+ type: this.config.type,
+ id: this.config.id,
+ name: this.config.name,
+ disabled: false,
+ value: ""
+ };
+ var comboConfig = {};
+ for (var key in config) {
+ if (key !== "id" && key !== "type" && key !== "name") {
+ this.config[key] = config[key];
+ if (key !== "validation") {
+ comboConfig[key] = config[key];
+ }
+ }
+ }
+ if (this.config.labelInline) {
+ this.config.labelPosition = "left"; // TODO: remove sute_7.0
+ }
+ this.combobox = new ts_combobox_1.Combobox(null, comboConfig);
+ this.combobox.events.on(ts_combobox_1.ComboboxEvents.change, function (change) {
+ _this.events.fire(types_1.BaseElementEvent.change, [change]);
+ });
+ this.events.fire(types_1.BaseElementEvent.configUpdate, [this.config]);
+ this.setValue(this.config.value);
+ this.events.on(types_1.BaseElementEvent.change, function (change) {
+ if (change !== "load") {
+ _this.validate();
+ }
+ });
+ this.clearValidate();
+ };
Combo.prototype._validationStatus = function () {
switch (this.config.$validationStatus) {
case types_1.ValidationStatus.pre:
@@ -20451,14 +22538,14 @@ var Combo = /** @class */ (function (_super) {
return this.combobox.getRootView();
};
Combo.prototype._draw = function () {
- var _a = this.config, labelWidth = _a.labelWidth, labelInline = _a.labelInline, $validationStatus = _a.$validationStatus;
+ var _a = this.config, labelWidth = _a.labelWidth, labelPosition = _a.labelPosition, $validationStatus = _a.$validationStatus;
return dom_1.el(".dhx_form-group", {}, [
dom_1.inject(this._getRootView()),
dom_1.el("div", {
- style: { "margin-left": "" + (labelWidth && labelInline ? "calc(" + labelWidth + " + 16px)" : "") },
+ style: { "margin-left": "" + (labelWidth && labelPosition === "left" ? "calc(" + labelWidth + " + 16px)" : "") },
class: $validationStatus === 1 ? "dhx_form-group--state_error" : $validationStatus === 2 ? "dhx_form-group--state_success" : "",
}, [
- dom_1.el("span.dhx_input-caption", helper_1.getValidationMessage(this.config))
+ dom_1.el("span.dhx_input__caption", helper_1.getValidationMessage(this.config))
]),
]);
};
@@ -20468,7 +22555,7 @@ exports.Combo = Combo;
/***/ }),
-/* 175 */
+/* 180 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -20486,49 +22573,120 @@ var __extends = (this && this.__extends) || (function () {
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
+var __assign = (this && this.__assign) || function () {
+ __assign = Object.assign || function(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign.apply(this, arguments);
+};
Object.defineProperty(exports, "__esModule", { value: true });
-var ts_slider_1 = __webpack_require__(30);
-var label_1 = __webpack_require__(16);
+var dom_1 = __webpack_require__(0);
+var ts_slider_1 = __webpack_require__(40);
+var events_1 = __webpack_require__(3);
+var label_1 = __webpack_require__(18);
+var helper_1 = __webpack_require__(9);
+var types_1 = __webpack_require__(8);
var SliderForm = /** @class */ (function (_super) {
__extends(SliderForm, _super);
- function SliderForm(config) {
+ function SliderForm(container, config) {
var _this = _super.call(this, null, config) || this;
- _this.slider = new ts_slider_1.Slider(null, config);
- _this.events = _this.slider.events;
- _this.config.value = _this.slider.getValue();
- _this.slider.events.on("Change", function () {
- _this.validate();
- _this.config.value = _this.slider.getValue();
- });
- _this.disable(_this.config.disabled);
+ _this.events = new events_1.EventSystem();
+ _this._initView(config);
+ var render = function () { return _this._drawSlider(); };
+ _this.mount(container, dom_1.create({ render: render }));
return _this;
}
+ SliderForm.prototype.disable = function () {
+ this.config.disabled = true;
+ this.slider.disable();
+ this.paint();
+ };
+ SliderForm.prototype.enable = function () {
+ this.config.disabled = false;
+ this.slider.enable();
+ this.paint();
+ };
+ SliderForm.prototype.isDisabled = function () {
+ return this.config.disabled;
+ };
SliderForm.prototype.clear = function () {
- this.config.value = [0];
+ this.config.value = this.config.min;
this.slider.setValue(this.config.value);
};
SliderForm.prototype.getValue = function () {
- return this.config.value;
- };
- SliderForm.prototype.disable = function (disabled) {
- disabled ? this.slider.disable() : this.slider.enable();
+ return this.slider.getValue();
};
SliderForm.prototype.setValue = function (value) {
this.slider.setValue(value);
};
- SliderForm.prototype.getRootView = function () {
- return this.slider.getRootView();
- };
SliderForm.prototype.validate = function () {
return true;
};
+ SliderForm.prototype.getWidget = function () {
+ return this.slider;
+ };
+ // TODO: remove sute_7.0
+ SliderForm.prototype.setConfig = function (config) {
+ this._initView(config);
+ };
+ SliderForm.prototype._initView = function (config) {
+ var _this = this;
+ if (helper_1.isEmptyObj(config)) {
+ return;
+ }
+ if (this.slider) {
+ this.slider.destructor();
+ }
+ var sliderConfig = {
+ type: this.config.type,
+ id: this.config.id,
+ name: this.config.name,
+ mode: ts_slider_1.Direction.horizontal,
+ min: 0,
+ max: 100,
+ step: 1,
+ tooltip: true,
+ disabled: false
+ };
+ for (var key in config) {
+ if (key !== "id" && key !== "type" && key !== "name") {
+ sliderConfig[key] = config[key];
+ }
+ }
+ this.config = __assign({ type: this.config.type }, sliderConfig);
+ this.slider = new ts_slider_1.Slider(null, sliderConfig);
+ if (this.config.disabled) {
+ this.slider.disable();
+ }
+ this.config.value = this.slider.getValue();
+ this.slider.events.on(ts_slider_1.SliderEvents.change, function () {
+ _this.config.value = _this.slider.getValue();
+ _this.events.fire(types_1.BaseElementEvent.change, [_this.config.value]);
+ _this.validate();
+ });
+ this.events.fire(types_1.BaseElementEvent.configUpdate, [this.config]);
+ };
+ SliderForm.prototype._getRootView = function () {
+ this.slider.paint();
+ return this.slider.getRootView();
+ };
+ SliderForm.prototype._drawSlider = function () {
+ return dom_1.el("div.dhx_form-group", {}, [
+ dom_1.inject(this._getRootView())
+ ]);
+ };
return SliderForm;
}(label_1.Label));
exports.SliderForm = SliderForm;
/***/ }),
-/* 176 */
+/* 181 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -20559,30 +22717,23 @@ var __assign = (this && this.__assign) || function () {
};
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var events_1 = __webpack_require__(2);
-var html_1 = __webpack_require__(3);
+var events_1 = __webpack_require__(3);
+var html_1 = __webpack_require__(2);
var view_1 = __webpack_require__(4);
var ts_data_1 = __webpack_require__(7);
-var ts_vault_1 = __webpack_require__(53);
-var ts_popup_1 = __webpack_require__(10);
+var ts_vault_1 = __webpack_require__(55);
+var ts_popup_1 = __webpack_require__(11);
var helper_1 = __webpack_require__(9);
-var en_1 = __webpack_require__(73);
+var en_1 = __webpack_require__(75);
var types_1 = __webpack_require__(8);
var SimpleVault = /** @class */ (function (_super) {
__extends(SimpleVault, _super);
function SimpleVault(container, config) {
var _this = _super.call(this, container, config) || this;
- if (_this.config.help) {
- _this._helper = new ts_popup_1.Popup({ css: "dhx_tooltip dhx_tooltip--forced dhx_tooltip--light" });
- _this._helper.attachHTML(_this.config.help);
- }
_this.events = new events_1.EventSystem(_this);
_this.data = new ts_data_1.DataCollection({}, _this.events);
- _this._uploader = new ts_vault_1.Uploader(__assign({}, config, { autosend: false }), _this.data, _this.events);
- _this.data.events.on(ts_data_1.DataEvents.change, function () {
- _this.validate();
- _this.paint();
- });
+ _this._uploader = new ts_vault_1.Uploader(__assign(__assign({}, config), { autosend: false }), _this.data, _this.events);
+ _this._initView(config);
_this._handlers = {
add: function (e) {
if (_this.config.disabled) {
@@ -20632,6 +22783,17 @@ var SimpleVault = /** @class */ (function (_super) {
_this.mount(container, dom_1.create({ render: render }));
return _this;
}
+ SimpleVault.prototype.disable = function () {
+ this.config.disabled = true;
+ this.paint();
+ };
+ SimpleVault.prototype.enable = function () {
+ this.config.disabled = false;
+ this.paint();
+ };
+ SimpleVault.prototype.isDisabled = function () {
+ return this.config.disabled;
+ };
SimpleVault.prototype.validate = function () {
var isValid = !this.config.required || this.data.getLength() > 0;
this.config.$validationStatus = isValid
@@ -20651,9 +22813,54 @@ var SimpleVault = /** @class */ (function (_super) {
SimpleVault.prototype.getValue = function () {
return this.data.map(function (data) { return (data.file); }) || [];
};
+ SimpleVault.prototype.getWidget = function () {
+ return this._uploader;
+ };
+ // TODO: remove sute_7.0
+ SimpleVault.prototype.setConfig = function (config) {
+ this._initView(config);
+ };
+ SimpleVault.prototype._initView = function (config) {
+ var _this = this;
+ if (helper_1.isEmptyObj(config)) {
+ return;
+ }
+ this.config = {
+ type: this.config.type,
+ id: this.config.id,
+ name: this.config.name,
+ disabled: false
+ };
+ for (var key in config) {
+ if (key !== "id" && key !== "type" && key !== "name") {
+ this.config[key] = config[key];
+ }
+ }
+ if (this.config.labelInline) {
+ this.config.labelPosition = "left"; // TODO: remove sute_7.0
+ }
+ this.config.helpMessage = this.config.helpMessage || this.config.help; // TODO: remove sute_7.0
+ this.events.on(types_1.BaseElementEvent.change, function () {
+ _this.validate();
+ _this.paint();
+ });
+ this.events.fire(types_1.BaseElementEvent.configUpdate, [this.config]);
+ this.paint();
+ };
SimpleVault.prototype._draw = function () {
var _this = this;
- var files = this.data.getLength() ? dom_1.el("ul.dhx_simplevault__files.dhx_simplevault-files", this.data.map(function (file) { return dom_1.el("li.dhx_simplevault-files__item", [
+ if (this.config.helpMessage) {
+ if (this._helper) {
+ this._helper.attachHTML(this.config.helpMessage);
+ }
+ else {
+ this._helper = new ts_popup_1.Popup({ css: "dhx_tooltip dhx_tooltip--forced dhx_tooltip--light" });
+ this._helper.attachHTML(this.config.helpMessage);
+ }
+ }
+ var files = this.data.getLength() ? dom_1.el("ul.dhx_simplevault__files.dhx_simplevault-files", {
+ class: this.config.$vaultHeight ? "" : "dhx_simplevault-files__fixed"
+ }, this.data.map(function (file) { return dom_1.el("li.dhx_simplevault-files__item", [
dom_1.el("span.dhx_simplevault-files__item-name", file.file.name),
dom_1.el(".dhx_button.dhx_simplevault-files__delete.dhx_button--icon.dhx_button--view_link.dhx_button--size_small.dhx_button--color_secondary.dhx_button--circle", {
dhx_id: file.id,
@@ -20662,16 +22869,17 @@ var SimpleVault = /** @class */ (function (_super) {
dom_1.el("span.dxi.dxi-delete-forever")
])
]); })) : null;
- var _a = this.config, id = _a.id, labelInline = _a.labelInline, label = _a.label, labelWidth = _a.labelWidth, help = _a.help, disabled = _a.disabled, required = _a.required, validation = _a.validation;
- var width = labelInline && labelWidth ? labelWidth : "";
+ var _a = this.config, id = _a.id, labelPosition = _a.labelPosition, label = _a.label, labelWidth = _a.labelWidth, helpMessage = _a.helpMessage, disabled = _a.disabled, required = _a.required, validation = _a.validation;
+ var width = labelPosition === "left" && labelWidth ? labelWidth : "";
return dom_1.el(".dhx_form-group.dhx_form-group--simplevault", {
class: helper_1.getFormItemCss(this.config, Boolean(required) || Boolean(validation))
}, [
dom_1.el("label.dhx_label", {
for: id || this._uid,
style: { minWidth: width, maxWidth: width },
- class: help ? "dhx_label--with-help" : ""
- }, help ? [
+ class: helpMessage ? "dhx_label--with-help" : "",
+ onclick: this._handlers.add,
+ }, helpMessage ? [
dom_1.el("span.dhx_label__holder", label),
dom_1.el("span.dhx_label-help.dxi.dxi-help-circle-outline", {
tabindex: "0",
@@ -20679,7 +22887,7 @@ var SimpleVault = /** @class */ (function (_super) {
onclick: this._handlers.showHelper
}),
] : label),
- dom_1.el(".dhx_input-wrapper", [
+ dom_1.el(".dhx_input__wrapper", [
dom_1.el("div", {
_hooks: {
didInsert: function (node) {
@@ -20710,7 +22918,7 @@ var SimpleVault = /** @class */ (function (_super) {
]),
files,
]),
- helper_1.getValidationMessage(this.config) && dom_1.el("span.dhx_input-caption", {}, helper_1.getValidationMessage(this.config))
+ helper_1.getValidationMessage(this.config) && dom_1.el("span.dhx_input__caption", {}, helper_1.getValidationMessage(this.config))
])
]);
};
@@ -20720,7 +22928,7 @@ exports.SimpleVault = SimpleVault;
/***/ }),
-/* 177 */
+/* 182 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -20739,45 +22947,40 @@ var __extends = (this && this.__extends) || (function () {
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
-var ts_timepicker_1 = __webpack_require__(29);
+var ts_timepicker_1 = __webpack_require__(30);
var dom_1 = __webpack_require__(0);
-var label_1 = __webpack_require__(16);
-var ts_popup_1 = __webpack_require__(10);
-var events_1 = __webpack_require__(2);
+var label_1 = __webpack_require__(18);
+var ts_popup_1 = __webpack_require__(11);
+var events_1 = __webpack_require__(3);
var types_1 = __webpack_require__(8);
var helper_1 = __webpack_require__(9);
-var TimeInputEvents;
-(function (TimeInputEvents) {
- TimeInputEvents["change"] = "change";
-})(TimeInputEvents = exports.TimeInputEvents || (exports.TimeInputEvents = {}));
var TimeInput = /** @class */ (function (_super) {
__extends(TimeInput, _super);
function TimeInput(container, config) {
var _this = _super.call(this, null, config) || this;
_this.events = new events_1.EventSystem();
- _this._popup = new ts_popup_1.Popup({ css: "dhx_widget--border-shadow" });
- _this.timepicker = new ts_timepicker_1.Timepicker(null, config);
- _this._popup.attach(_this.timepicker);
+ _this._initView(config);
var render = function () { return _this._draw(); };
_this.mount(container, dom_1.create({ render: render }));
- _this.timepicker.events.on(ts_timepicker_1.TimepickerEvents.change, function () {
- _this.config.value = _this.timepicker.getValue();
- _this.validate();
- });
- _this.timepicker.events.on(ts_timepicker_1.TimepickerEvents.close, function () {
- _this._popup.hide();
- });
- _this.timepicker.events.on(ts_timepicker_1.TimepickerEvents.save, function () {
- _this._popup.hide();
- });
- _this.events.on(TimeInputEvents.change, function (value) {
- _this.config.value = _this._inputValidate(value);
- _this.validate();
- });
return _this;
}
+ TimeInput.prototype.disable = function () {
+ this.config.disabled = true;
+ this.paint();
+ };
+ TimeInput.prototype.enable = function () {
+ this.config.disabled = false;
+ this.paint();
+ };
+ TimeInput.prototype.isDisabled = function () {
+ return this.config.disabled;
+ };
TimeInput.prototype.validate = function () {
- var isValid = !this.config.required || Boolean(this.config.value);
+ var _a = this.config, required = _a.required, value = _a.value, validation = _a.validation;
+ var isValid = true;
+ isValid = validation
+ ? this.config.validation(value)
+ : !required || Boolean(value);
this.config.$validationStatus = isValid
? types_1.ValidationStatus.success
: types_1.ValidationStatus.error;
@@ -20790,6 +22993,9 @@ var TimeInput = /** @class */ (function (_super) {
};
TimeInput.prototype.setValue = function (value) {
this.timepicker.setValue(value);
+ if (this.config.controls) {
+ this.timepicker.events.fire(ts_timepicker_1.TimepickerEvents.apply, []);
+ }
this.paint();
};
TimeInput.prototype.getValue = function () {
@@ -20800,6 +23006,90 @@ var TimeInput = /** @class */ (function (_super) {
timeFormat === 12 ? this.timepicker.setValue("12:00AM") : this.timepicker.setValue("00:00");
this.config.value = "";
};
+ TimeInput.prototype.getWidget = function () {
+ return this.timepicker;
+ };
+ // TODO: remove sute_7.0
+ TimeInput.prototype.setConfig = function (config) {
+ this._initView(config);
+ };
+ TimeInput.prototype._initView = function (config) {
+ var _this = this;
+ if (helper_1.isEmptyObj(config)) {
+ return;
+ }
+ if (this.timepicker) {
+ this.timepicker.destructor();
+ }
+ if (this._popup) {
+ this._popup.destructor();
+ }
+ this.config = {
+ type: this.config.type,
+ id: this.config.id,
+ name: this.config.name,
+ disabled: false,
+ editable: false,
+ value: ""
+ };
+ for (var key in config) {
+ if (key !== "id" && key !== "type" && key !== "name") {
+ this.config[key] = config[key];
+ }
+ }
+ this.config.editable = this.config.editable || this.config.editing; // TODO: remove sute_7.0
+ this._popup = new ts_popup_1.Popup({ css: "dhx_widget--border-shadow" });
+ this.timepicker = new ts_timepicker_1.Timepicker(null, config);
+ this._popup.attach(this.timepicker);
+ if (this.config.value) {
+ this.timepicker.setValue(this.config.value);
+ this.config.value = this.timepicker.getValue();
+ }
+ if (this.config.controls) {
+ this.timepicker.events.on(ts_timepicker_1.TimepickerEvents.close, function () {
+ _this._popup.hide();
+ });
+ this.timepicker.events.on(ts_timepicker_1.TimepickerEvents.apply, function () {
+ _this.config.value = _this.timepicker.getValue();
+ _this.validate();
+ _this._popup.hide();
+ });
+ this._popup.events.on(ts_popup_1.PopupEvents.afterHide, function () {
+ var value = _this.config.value;
+ if (value && value !== _this.timepicker.getValue()) {
+ _this.timepicker.setValue(value);
+ }
+ if (value === "") {
+ _this.clear();
+ }
+ _this.paint();
+ });
+ }
+ else {
+ this.timepicker.events.on(ts_timepicker_1.TimepickerEvents.change, function () {
+ _this.config.value = _this.timepicker.getValue();
+ _this.validate();
+ });
+ this._popup.events.on(ts_popup_1.PopupEvents.afterHide, function () {
+ _this.paint();
+ });
+ }
+ this.events.on(types_1.BaseElementEvent.change, function (value) {
+ var timeFormat = _this.config.timeFormat;
+ var length = timeFormat === 12 ? 7 : 5;
+ if (value.length >= length) {
+ var validValue = _this._inputValidate(value);
+ if (_this._inputValidate(value)) {
+ _this.timepicker.setValue(validValue);
+ }
+ else {
+ _this.validate();
+ }
+ }
+ });
+ this.events.fire(types_1.BaseElementEvent.configUpdate, [this.config]);
+ this.clearValidate();
+ };
TimeInput.prototype._getHandlers = function () {
var _this = this;
return {
@@ -20810,37 +23100,36 @@ var TimeInput = /** @class */ (function (_super) {
var node = _this.getRootView().refs.input.el;
_this._popup.show(node);
},
- onchange: function (e) {
- var value = e.target.value;
- _this.events.fire(TimeInputEvents.change, [value]);
- },
onkeyup: function (e) {
- if (e.keyCode === 13) {
+ var value = e.target.value.trim();
+ if (!_this.config.controls && e.keyCode === 13) {
if (_this._popup.isVisible()) {
_this._popup.hide();
}
var node = _this.getRootView().refs.input.el;
node.blur();
}
+ if ((e.which >= 48 && e.which <= 57) || (e.which >= 65 && e.which <= 90) || (e.which >= 96 && e.which <= 105)) {
+ _this.events.fire(types_1.BaseElementEvent.change, [value]);
+ }
}
};
};
TimeInput.prototype._inputValidate = function (value) {
var timeFormat = this.config.timeFormat;
if (helper_1.isTimeFormat(value, timeFormat)) {
- this.timepicker.setValue(value);
return value;
}
return "";
};
TimeInput.prototype._draw = function () {
- var _a = this.config, value = _a.value, required = _a.required, disabled = _a.disabled, placeholder = _a.placeholder, name = _a.name, id = _a.id, validation = _a.validation, _b = _a.editing, editing = _b === void 0 ? false : _b;
+ var _a = this.config, value = _a.value, required = _a.required, disabled = _a.disabled, placeholder = _a.placeholder, name = _a.name, id = _a.id, validation = _a.validation, editable = _a.editable;
return dom_1.el("div.dhx_form-group", {
class: helper_1.getFormItemCss(this.config, Boolean(required) || Boolean(validation)),
}, [
this._drawLabel(),
- dom_1.el(".dhx_input-wrapper", [
- dom_1.el("div.dhx_input-container", {}, [
+ dom_1.el(".dhx_input__wrapper", [
+ dom_1.el("div.dhx_input__container", {}, [
dom_1.el(".dhx_input__icon.dxi.dxi-clock-outline"),
dom_1.el("input.dhx_input.dhx_input--icon-padding", {
_key: this._uid,
@@ -20853,13 +23142,12 @@ var TimeInput = /** @class */ (function (_super) {
name: name || "",
id: id || this._uid,
onfocus: this._handlers.onfocus,
- onchange: this._handlers.onchange,
onkeyup: this._handlers.onkeyup,
autocomplete: "off",
- readOnly: !editing
+ readOnly: !editable
}),
]),
- helper_1.getValidationMessage(this.config) && dom_1.el("span.dhx_input-caption", {}, helper_1.getValidationMessage(this.config))
+ helper_1.getValidationMessage(this.config) && dom_1.el("span.dhx_input__caption", {}, helper_1.getValidationMessage(this.config))
]),
]);
};
@@ -20869,7 +23157,7 @@ exports.TimeInput = TimeInput;
/***/ }),
-/* 178 */
+/* 183 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -20889,40 +23177,39 @@ var __extends = (this && this.__extends) || (function () {
})();
Object.defineProperty(exports, "__esModule", { value: true });
var ts_colorpicker_1 = __webpack_require__(31);
-var events_1 = __webpack_require__(2);
+var events_1 = __webpack_require__(3);
var dom_1 = __webpack_require__(0);
-var label_1 = __webpack_require__(16);
-var ts_popup_1 = __webpack_require__(10);
+var label_1 = __webpack_require__(18);
+var ts_popup_1 = __webpack_require__(11);
var types_1 = __webpack_require__(8);
var helper_1 = __webpack_require__(9);
-var ColorpickerInputEvents;
-(function (ColorpickerInputEvents) {
- ColorpickerInputEvents["change"] = "change";
-})(ColorpickerInputEvents = exports.ColorpickerInputEvents || (exports.ColorpickerInputEvents = {}));
var ColorpickerInput = /** @class */ (function (_super) {
__extends(ColorpickerInput, _super);
function ColorpickerInput(container, config) {
var _this = _super.call(this, null, config) || this;
_this.events = new events_1.EventSystem();
- _this._popup = new ts_popup_1.Popup({ css: "dhx_widget--border-shadow" });
- _this.colorpicker = new ts_colorpicker_1.Colorpicker(null, config);
- _this._popup.attach(_this.colorpicker);
+ _this._initView(config);
var render = function () { return _this._draw(); };
_this.mount(container, dom_1.create({ render: render }));
- _this.colorpicker.events.on(ts_colorpicker_1.ColorpickerEvents.colorChange, function () {
- _this.config.value = _this.colorpicker.getValue();
- _this._popup.hide();
- _this.validate();
- });
- _this.events.on(ColorpickerInputEvents.change, function (value) {
- var validValue = _this._inputValidate(value);
- _this.setValue(validValue);
- _this.validate();
- });
return _this;
}
+ ColorpickerInput.prototype.disable = function () {
+ this.config.disabled = true;
+ this.paint();
+ };
+ ColorpickerInput.prototype.enable = function () {
+ this.config.disabled = false;
+ this.paint();
+ };
+ ColorpickerInput.prototype.isDisabled = function () {
+ return this.config.disabled;
+ };
ColorpickerInput.prototype.validate = function () {
- var isValid = !this.config.required || Boolean(this.config.value);
+ var _a = this.config, required = _a.required, value = _a.value, validation = _a.validation;
+ var isValid = true;
+ isValid = validation
+ ? this.config.validation(value)
+ : !required || Boolean(value);
this.config.$validationStatus = isValid
? types_1.ValidationStatus.success
: types_1.ValidationStatus.error;
@@ -20945,6 +23232,62 @@ var ColorpickerInput = /** @class */ (function (_super) {
this.config.value = "";
this.paint();
};
+ ColorpickerInput.prototype.getWidget = function () {
+ return this.colorpicker;
+ };
+ // TODO: remove sute_7.0
+ ColorpickerInput.prototype.setConfig = function (config) {
+ this._initView(config);
+ };
+ ColorpickerInput.prototype._initView = function (config) {
+ var _this = this;
+ if (helper_1.isEmptyObj(config)) {
+ return;
+ }
+ if (this.colorpicker) {
+ this.colorpicker.destructor();
+ }
+ if (this._popup) {
+ this._popup.destructor();
+ }
+ this.config = {
+ type: this.config.type,
+ id: this.config.id,
+ name: this.config.name,
+ disabled: false,
+ editable: false,
+ value: ""
+ };
+ for (var key in config) {
+ if (key !== "id" && key !== "type" && key !== "name") {
+ this.config[key] = config[key];
+ }
+ }
+ this.config.editable = this.config.editable || this.config.editing; // TODO: remove sute_7.0
+ this._popup = new ts_popup_1.Popup({ css: "dhx_widget--border-shadow" });
+ this.colorpicker = new ts_colorpicker_1.Colorpicker(null, config);
+ this._popup.attach(this.colorpicker);
+ if (this.config.value) {
+ this.colorpicker.setValue(this.config.value);
+ this.config.value = this.colorpicker.getValue();
+ }
+ this.colorpicker.events.on(ts_colorpicker_1.ColorpickerEvents.change, function () {
+ _this.config.value = _this.colorpicker.getValue();
+ _this._popup.hide();
+ _this.validate();
+ });
+ this.events.on(types_1.BaseElementEvent.change, function (value) {
+ var validValue = _this._inputValidate(value);
+ if (_this._inputValidate(value)) {
+ _this.setValue(validValue);
+ }
+ else {
+ _this.validate();
+ }
+ });
+ this.events.fire(types_1.BaseElementEvent.configUpdate, [this.config]);
+ this.clearValidate();
+ };
ColorpickerInput.prototype._getHandlers = function () {
var _this = this;
return {
@@ -20957,7 +23300,7 @@ var ColorpickerInput = /** @class */ (function (_super) {
},
onchange: function (e) {
var value = e.target.value;
- _this.events.fire(ColorpickerInputEvents.change, [value]);
+ _this.events.fire(types_1.BaseElementEvent.change, [value]);
},
onkeyup: function (e) {
if (e.keyCode === 13) {
@@ -20974,13 +23317,13 @@ var ColorpickerInput = /** @class */ (function (_super) {
return ts_colorpicker_1.isHex(value) ? value : "";
};
ColorpickerInput.prototype._draw = function () {
- var _a = this.config, required = _a.required, value = _a.value, icon = _a.icon, disabled = _a.disabled, placeholder = _a.placeholder, name = _a.name, id = _a.id, _b = _a.editing, editing = _b === void 0 ? false : _b;
+ var _a = this.config, required = _a.required, value = _a.value, icon = _a.icon, disabled = _a.disabled, placeholder = _a.placeholder, name = _a.name, id = _a.id, editable = _a.editable;
return dom_1.el("div.dhx_form-group", {
class: helper_1.getFormItemCss(this.config, Boolean(required) || Boolean(this.config.validation)),
}, [
this._drawLabel(),
- dom_1.el(".dhx_input-wrapper", [
- dom_1.el("div.dhx_input-container", {}, [
+ dom_1.el(".dhx_input__wrapper", [
+ dom_1.el("div.dhx_input__container", {}, [
dom_1.el(".dhx_input__icon", {
class: icon || "dxi dxi-eyedropper-variant" +
(value ? " dhx_input__icon--color-selected" : ""),
@@ -21000,10 +23343,10 @@ var ColorpickerInput = /** @class */ (function (_super) {
onchange: this._handlers.onchange,
onkeyup: this._handlers.onkeyup,
autocomplete: "off",
- readOnly: !editing
+ readOnly: !editable
}),
]),
- helper_1.getValidationMessage(this.config) && dom_1.el("span.dhx_input-caption", {}, helper_1.getValidationMessage(this.config))
+ helper_1.getValidationMessage(this.config) && dom_1.el("span.dhx_input__caption", {}, helper_1.getValidationMessage(this.config))
]),
]);
};
@@ -21013,7 +23356,7 @@ exports.ColorpickerInput = ColorpickerInput;
/***/ }),
-/* 179 */
+/* 184 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -21022,15 +23365,15 @@ function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(180));
-__export(__webpack_require__(11));
-__export(__webpack_require__(52));
-__export(__webpack_require__(51));
+__export(__webpack_require__(185));
+__export(__webpack_require__(10));
+__export(__webpack_require__(54));
+__export(__webpack_require__(53));
__export(__webpack_require__(20));
/***/ }),
-/* 180 */
+/* 185 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -21061,18 +23404,21 @@ var __assign = (this && this.__assign) || function () {
};
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var events_1 = __webpack_require__(2);
-var html_1 = __webpack_require__(3);
+var events_1 = __webpack_require__(3);
+var html_1 = __webpack_require__(2);
var view_1 = __webpack_require__(4);
var ts_data_1 = __webpack_require__(7);
-var Exporter_1 = __webpack_require__(181);
-var data_1 = __webpack_require__(51);
+var Exporter_1 = __webpack_require__(186);
+var data_1 = __webpack_require__(53);
var main_1 = __webpack_require__(20);
-var Selection_1 = __webpack_require__(182);
-var types_1 = __webpack_require__(11);
-var render_1 = __webpack_require__(183);
+var Selection_1 = __webpack_require__(187);
+var Hotkey_1 = __webpack_require__(188);
+var types_1 = __webpack_require__(10);
+var render_1 = __webpack_require__(189);
var core_1 = __webpack_require__(1);
-var content_1 = __webpack_require__(76);
+var ts_calendar_1 = __webpack_require__(25);
+var content_1 = __webpack_require__(78);
+var columnsResizer_1 = __webpack_require__(197);
var Grid = /** @class */ (function (_super) {
__extends(Grid, _super);
function Grid(container, config) {
@@ -21081,31 +23427,55 @@ var Grid = /** @class */ (function (_super) {
rowHeight: 40,
headerRowHeight: 40,
footerRowHeight: 40,
- headerSort: true,
+ keyNavigation: true,
+ sortable: true,
columns: [],
- data: []
+ data: [],
+ // TODO: remove suite_7.0
+ headerSort: true
}, config);
_this.content = content_1.content;
_this._scroll = {
top: 0,
left: 0
};
+ // TODO: remove suite_7.0
+ _this.config.autoWidth = _this.config.autoWidth || _this.config.fitToContainer;
+ _this.config.adjust = _this.config.adjust || _this.config.columnsAutoWidth;
+ _this.config.editable = _this.config.editable || _this.config.editing;
+ if (!_this.config.sortable || !_this.config.headerSort) {
+ _this.config.sortable = false;
+ }
var htmlEvents = {
onclick: html_1.eventHandler(function (ev) { return html_1.locate(ev); }, {
"dhx_grid-header-cell": function (_ev, item) {
- if (_this.config.headerSort) {
+ var isResizable = _ev.target.getAttribute("dhx_resized");
+ var column = _this._getColumn(item);
+ if (column && main_1.isSortable(_this.config, column) && !isResizable) {
_this.events.fire(types_1.GridEvents.sort, [item]);
}
},
- "dhx_grid-expand-cell": function (_ev, item) { return _this.events.fire(types_1.GridEvents.expand, [item]); }
+ "dhx_grid-expand-cell": function (_ev, item) {
+ if (_ev.target.classList.contains("dhx_grid-expand-cell-icon")) {
+ _this.events.fire(types_1.GridEvents.expand, [item]);
+ }
+ }
}),
onscroll: function (e) {
+ // [TODO] Hide loading data to render
+ _this._lazyLoad(e);
_this.events.fire(types_1.GridEvents.scroll, [{
y: e.target.scrollTop,
x: e.target.scrollLeft
}]);
}
};
+ if (_this.config.dragMode) {
+ ts_data_1.dragManager.setItem(_this._uid, _this);
+ if (!_this.config.dragItem) {
+ _this.config.dragItem = "row";
+ }
+ }
_this._init();
if (_this.config.columns) {
_this._parseColumns();
@@ -21118,10 +23488,13 @@ var Grid = /** @class */ (function (_super) {
}
var view = dom_1.create({
render: function (vm, obj) {
- return render_1.render(vm, obj, _this._currentData, htmlEvents, _this.selection);
+ return render_1.render(vm, obj, _this._currentData, htmlEvents, _this.selection, _this._uid);
}
}, _this);
_this.mount(container, view);
+ dom_1.awaitRedraw().then(function () {
+ Hotkey_1.initHotkeys(_this);
+ });
if (config.autoEmptyRow && _this.data.getLength() === 0) {
_this.data.add(_this.config.columns.reduce(function (total, col) {
total[col.id] = "";
@@ -21133,6 +23506,10 @@ var Grid = /** @class */ (function (_super) {
}
Grid.prototype.destructor = function () {
this.unmount();
+ if (this.selection) {
+ this.selection.destructor();
+ }
+ this._destroyContent();
this.events.events = {};
this.events.context = null;
this._currentData = this.data = this.config =
@@ -21147,8 +23524,7 @@ var Grid = /** @class */ (function (_super) {
var styles = item.$css || "";
if (!styles.match(new RegExp(css, "g"))) {
item.$css = styles + (" " + css);
- // [todo]
- var index = core_1.findIndex(this._currentData, function (row) { return row.id === item.id; });
+ var index = this._getRowIndex(id);
if (index >= 0) {
this._currentData[index].$css = item.$css;
}
@@ -21184,6 +23560,28 @@ var Grid = /** @class */ (function (_super) {
}
}
};
+ Grid.prototype.showColumn = function (colId) {
+ var column = this._getColumn(colId);
+ if (column && column.hidden) {
+ column.hidden = false;
+ this.config.$totalWidth += column.width;
+ this.paint();
+ }
+ };
+ Grid.prototype.hideColumn = function (colId) {
+ var column = this._getColumn(colId);
+ if (column && !column.hidden) {
+ column.hidden = true;
+ this.config.$totalWidth -= column.width;
+ this.paint();
+ }
+ };
+ Grid.prototype.isColumnHidden = function (colId) {
+ var column = this._getColumn(colId);
+ if (column) {
+ return !!column.hidden;
+ }
+ };
Grid.prototype.getScrollState = function () {
return {
x: this._scroll.left,
@@ -21207,26 +23605,39 @@ var Grid = /** @class */ (function (_super) {
var gridBottom = this.config.height + scrollState.y - (this.config.headerRowHeight * this.config.$headerLevel);
var cellTop = y - scrollState.y - this.config.rowHeight;
var cellLeft = x - scrollState.x - this.config.columns[colInd].width;
- var cellBottom = y + (this.config.rowHeight * 2) + 17 - gridBottom;
- var cellRight = x + (this.config.columns[colInd].width * 2) + 17 - gridRight;
+ var cellBottom = y + (this.config.rowHeight * 2) + 18 - gridBottom;
+ var cellRight = x + (this.config.columns[colInd].width * 2) + 18 - gridRight;
var scrollTop = (cellTop > 0 && cellBottom < 0) ? 0 : cellTop < 0 ? cellTop : cellBottom;
var scrollLeft = (cellLeft > 0 && cellRight < 0) ? 0 : cellLeft < 0 ? cellLeft : cellRight;
this.scroll(scrollLeft + scrollState.x, scrollTop + scrollState.y);
};
- Grid.prototype.adjustColumnWidth = function (id) {
- var index = core_1.findIndex(this.config.columns, function (с) { return с.id === id; });
+ Grid.prototype.adjustColumnWidth = function (id, adjust) {
+ var _this = this;
+ if (adjust === void 0) { adjust = true; }
+ var index = core_1.findIndex(this.config.columns, function (c) { return c.id === id; });
var col = this.config.columns[index];
- this.data.map(function (row) {
- if (typeof row[col.id] === "string" || typeof row[col.id] === "number") {
- col.maxWidth = col.maxWidth || col.width;
- col.maxWidth = Math.max(main_1.getStrWidth(main_1.removeHTMLTags(row[col.id])) + 20, col.maxWidth);
- }
- });
- this.config.$totalWidth = this.config.columns.reduce(function (t, column) {
- column.width = column.maxWidth || column.width;
- return t += column.width;
- }, 0);
- this.paint();
+ var widthArr = [];
+ if (adjust === "header" || adjust === true) {
+ col.header.forEach(function (item) {
+ widthArr.push(main_1.getStrWidth(main_1.removeHTMLTags(item.text)) + (main_1.isSortable(_this.config, col) ? 40 : 20));
+ });
+ }
+ if (adjust === "data" || adjust === true) {
+ this.data.map(function (row) {
+ if (typeof row[col.id] === "string" || typeof row[col.id] === "number") {
+ widthArr.push(main_1.getStrWidth(main_1.removeHTMLTags(row[col.id])) + 20);
+ }
+ });
+ }
+ if (widthArr.length > 0) {
+ this.config.$totalWidth = this.config.columns.reduce(function (t, column, i) {
+ if (i === index) {
+ column.width = Math.max.apply(Math, widthArr);
+ }
+ return t += column.hidden ? 0 : column.width;
+ }, 0);
+ this.paint();
+ }
};
Grid.prototype.getCellRect = function (row, col) {
var colInd = core_1.findIndex(this.config.columns, function (obj) { return obj.id === col; });
@@ -21268,11 +23679,12 @@ var Grid = /** @class */ (function (_super) {
this.config.spans.splice(index, 1);
}
};
- Grid.prototype.edit = function (rowId, colId, editorType) {
+ Grid.prototype.editCell = function (rowId, colId, editorType) {
if (editorType === void 0) { editorType = types_1.EditorType.input; }
var row = this.data.getItem(rowId);
var col = this.getColumn(colId);
if (!row || row[colId] === undefined) {
+ ts_data_1.dhxWarning("item not found");
return;
}
if (!this.events.fire(types_1.GridEvents.beforeEditStart, [row, col, editorType])) {
@@ -21281,14 +23693,36 @@ var Grid = /** @class */ (function (_super) {
if (col.type === "date") {
editorType = types_1.EditorType.datepicker;
}
+ if (col.type === "boolean") {
+ editorType = types_1.EditorType.checkbox;
+ }
+ if (this.config.$editable && this.config.$editable.row === rowId && this.config.$editable.col === colId && this.config.$editable.editorType === editorType) {
+ return;
+ }
this.config.$editable = {
row: rowId,
col: colId,
editorType: editorType
};
+ if (this.selection) {
+ this.selection.setCell(rowId.toString(), colId.toString());
+ }
this.paint();
this.events.fire(types_1.GridEvents.afterEditStart, [row, col, editorType]);
};
+ Grid.prototype.editEnd = function (withoutSave) {
+ if (this.config.$editable && this.config.$editable.editor) {
+ this.config.$editable.editor.endEdit(withoutSave);
+ }
+ };
+ Grid.prototype.getSortingState = function () {
+ return { dir: this._sortDir, by: this._sortBy };
+ };
+ // TODO: remove suite_7.0
+ Grid.prototype.edit = function (rowId, colId, editorType) {
+ if (editorType === void 0) { editorType = types_1.EditorType.input; }
+ this.editCell(rowId, colId, editorType);
+ };
Grid.prototype._parseColumns = function () {
var columns = this.config.columns;
data_1.normalizeColumns(columns);
@@ -21310,43 +23744,40 @@ var Grid = /** @class */ (function (_super) {
this._detectColsTypes();
};
Grid.prototype._createCollection = function (prep) {
- this.data = new ts_data_1.DataCollection({
- prep: prep
- }, this.events);
+ this.data = new ts_data_1.DataCollection({ prep: prep }, this.events);
};
Grid.prototype._getRowIndex = function (rowId) {
return this.data.getIndex(rowId);
};
Grid.prototype._setEventHandlers = function () {
var _this = this;
+ var updater = function (updateObj) { return function (id, ids) {
+ if (ids && ids instanceof Array) {
+ ids.map(function (selectedId) { return _this.data.exists(selectedId) && _this.data.update(selectedId, updateObj); });
+ return;
+ }
+ if (_this.data.exists(id)) {
+ _this.data.update(id, updateObj);
+ }
+ }; };
this.data.events.on(ts_data_1.DataEvents.load, function () {
_this._parseData();
- // [todo] need to check autoWidth after data load
- _this.data.events.fire(ts_data_1.DataEvents.change);
});
this.data.events.on(ts_data_1.DataEvents.change, function (_id, status, obj) {
// [dirty]
- if (status === "remove" && obj.$empty) {
+ if (status === "remove" && obj.$emptyRow) {
return;
}
_this._currentData = _this.data.map(function (el) { return el; }) || [];
_this._detectColsTypes();
_this._checkMarks();
- // set auto width to all columns
- if (_this.config.columnsAutoWidth) {
- if (typeof _this.config.columnsAutoWidth === "number") {
- _this._setAutoWidth(_this.config.columnsAutoWidth);
- }
- else {
- _this._setAutoWidth();
- }
- }
+ _this._adjustColumns();
if (_this.config.autoEmptyRow) {
- var emptyRow = _this.data.find({ by: "$empty", match: true });
- if (emptyRow && !(status === "add" && obj.$empty)) {
- _this.data.remove(emptyRow.id);
+ var emptyRow = _this.data.find({ by: "$emptyRow", match: true });
+ if (emptyRow) {
+ _this.data.move(emptyRow.id, _this.data.getLength() - 1);
}
- if (!(status === "add" && obj.$empty)) {
+ else {
_this._addEmptyRow();
}
}
@@ -21355,21 +23786,33 @@ var Grid = /** @class */ (function (_super) {
this.data.events.on(ts_data_1.DataEvents.removeAll, function () {
_this.config.columns.map(function (col) {
col.header.map(function (cell) {
- if (cell.content && cell.content === "selectFilter") {
+ if (cell.content && (cell.content === "selectFilter" || cell.content === "comboFilter")) {
col.$uniqueData = [];
}
});
});
});
+ this.events.on(ts_data_1.DragEvents.canDrop, updater({ $drophere: true }));
+ this.events.on(ts_data_1.DragEvents.cancelDrop, updater({ $drophere: undefined }));
+ this.events.on(ts_data_1.DragEvents.dragStart, updater({ $dragtarget: true }));
+ this.events.on(ts_data_1.DragEvents.dragEnd, updater({ $dragtarget: undefined }));
this.events.on(types_1.GridEvents.sort, function (id) {
if (id) {
_this._sort(id);
}
});
+ this.events.on(types_1.GridEvents.cellMouseDown, function (row, col, e) {
+ if (_this.config.dragMode && _this.config.dragItem === "row" && !_this.config.$editable) {
+ var item = html_1.locateNode(e, "dhx_id");
+ var itemId = item && item.getAttribute("dhx_id");
+ return ts_data_1.dragManager.onMouseDown(e, [itemId], [item]);
+ }
+ });
+ // TODO: remove suite_7.0
this.events.on(types_1.GridEvents.headerInput, function (val, colId, filter) {
// [dirty]
if (_this.config.autoEmptyRow) {
- var emptyRow = _this.data.find({ by: "$empty", match: true });
+ var emptyRow = _this.data.find({ by: "$emptyRow", match: true });
if (emptyRow) {
_this.data.remove(emptyRow.id);
}
@@ -21382,27 +23825,62 @@ var Grid = /** @class */ (function (_super) {
multiple: true
});
});
+ this.events.on(types_1.GridEvents.filterChange, function (val, colId, filter) {
+ if (_this.config.autoEmptyRow) {
+ var emptyRow = _this.data.find({ by: "$emptyRow", match: true });
+ if (emptyRow) {
+ _this.data.remove(emptyRow.id);
+ }
+ }
+ _this.data.filter({
+ by: colId,
+ match: val,
+ compare: _this.content[filter].match
+ }, { multiple: true });
+ });
this.events.on(types_1.GridEvents.scroll, function (scrollState) {
_this._scroll = { top: scrollState.y, left: scrollState.x };
_this.paint();
});
this.events.on(types_1.GridEvents.cellDblClick, function (row, col) {
- if (col.editing !== false && _this.config.editing || col.editing) {
- _this.edit(row.id, col.id, col.editorType);
+ if (col.editable !== false && _this.config.editable || col.editable) {
+ _this.editCell(row.id, col.id, col.editorType);
}
});
- this.events.on(types_1.GridEvents.afterEditEnd, function (value) {
+ this.events.on(types_1.GridEvents.afterEditEnd, function (value, eRow, eCol) {
var _a;
- var item = _this.data.getItem(_this.config.$editable.row);
- // if item was an empty row
- delete item.$empty;
- if (value !== undefined && value !== null && value !== "") {
- _this.data.update(_this.config.$editable.row, __assign({}, item, (_a = {}, _a[_this.config.$editable.col] = value, _a)));
+ var row;
+ var col;
+ if (!_this.config.$editable) {
+ row = eRow.id;
+ col = eCol.id;
+ }
+ else {
+ row = _this.config.$editable.row;
+ col = _this.config.$editable.col;
+ }
+ var item = _this.data.getItem(row);
+ delete item.$emptyRow;
+ if (value !== undefined) {
+ _this.data.update(row, __assign(__assign({}, item), (_a = {}, _a[col] = value, _a)));
}
_this.config.$editable = null;
_this._checkFilters();
_this.paint();
});
+ this.events.on(types_1.GridEvents.headerCellMouseDown, function (col, e) {
+ var resizedColumn = e.target.getAttribute("dhx_resized");
+ if (resizedColumn && _this.events.fire(types_1.GridEvents.beforeResizeStart, [col, e])) {
+ columnsResizer_1.startResize(_this, resizedColumn.toString(), e, function () {
+ _this.paint();
+ _this.config.$resizing = null;
+ _this.events.fire(types_1.GridEvents.afterResizeEnd, [col, e]);
+ });
+ }
+ else {
+ return;
+ }
+ });
};
Grid.prototype._addEmptyRow = function () {
var id = this.data.getId(this.data.getLength() - 1);
@@ -21412,7 +23890,7 @@ var Grid = /** @class */ (function (_super) {
this.data.add(this.config.columns.reduce(function (total, col) {
total[col.id] = "";
return total;
- }, { $empty: true }));
+ }, { $emptyRow: true }));
}
};
Grid.prototype._sort = function (by, dir) {
@@ -21433,8 +23911,9 @@ var Grid = /** @class */ (function (_super) {
by: by,
dir: this._sortDir,
as: function (el) {
- if (el && _this.getColumn(by).type === "date") {
- return "" + new Date(el).getTime();
+ var col = _this.getColumn(by);
+ if (el && col.type === "date") {
+ return "" + ts_calendar_1.stringToDate(el, col.dateFormat).getTime();
}
return el ? "" + el : "";
}
@@ -21517,29 +23996,13 @@ var Grid = /** @class */ (function (_super) {
}
});
};
- // [todo] use adjustColumnWidth
- Grid.prototype._setAutoWidth = function (colsCount) {
+ Grid.prototype._adjustColumns = function () {
var _this = this;
- this.data.map(function (row) {
- _this.config.columns.map(function (col, i) {
- if (colsCount && colsCount <= i) {
- return col;
- }
- if (typeof row[col.id] === "string" || typeof row[col.id] === "number") {
- col.maxWidth = col.maxWidth || col.width;
- var paddings = 20;
- // [todo] move to treegrid
- if (_this.config.type === "tree" && i === 0) {
- paddings = _this.data.getMaxLevel() * 24 + 20;
- }
- col.maxWidth = Math.max(main_1.getStrWidth(main_1.removeHTMLTags(row[col.id])) + paddings, col.maxWidth);
- }
- });
+ this.config.columns.map(function (col, i) {
+ if (col.adjust !== false && _this.config.adjust || col.adjust) {
+ _this.adjustColumnWidth(col.id, col.adjust || _this.config.adjust);
+ }
});
- this.config.$totalWidth = this.config.columns.reduce(function (t, col) {
- col.width = col.maxWidth || col.width;
- return t += col.width;
- }, 0);
};
// [todo] make more smart type detection
Grid.prototype._detectColsTypes = function () {
@@ -21554,15 +24017,17 @@ var Grid = /** @class */ (function (_super) {
var firstCell = firstRow ? firstRow[col.id] : "";
var v = parseFloat(firstCell);
var val = isNaN(v) ? firstCell : v;
- col.type = typeof val;
- return col;
+ if (val) {
+ col.type = typeof val;
+ return col;
+ }
});
};
Grid.prototype._checkFilters = function () {
var data = this._currentData;
this.config.columns.map(function (col) {
col.header.map(function (cell) {
- if (cell.content && cell.content === "selectFilter") {
+ if (cell.content && (cell.content === "selectFilter" || cell.content === "comboFilter")) {
var unique = data_1.getUnique(data, col.id);
if (col.$uniqueData && col.$uniqueData.length > unique.length) {
unique.forEach(function (item) {
@@ -21578,22 +24043,67 @@ var Grid = /** @class */ (function (_super) {
});
});
};
+ Grid.prototype._destroyContent = function () {
+ for (var contentName in this.content) {
+ if (contentName === "comboFilter") {
+ this.content[contentName].destroy();
+ }
+ }
+ };
Grid.prototype._render = function () {
this.paint();
};
+ Grid.prototype._lazyLoad = function (e) {
+ var y = e.target.scrollTop;
+ if (this.getScrollState().y !== y) {
+ var from = Math.round(y / this.config.rowHeight);
+ var onScreenCount = (this.config.height - this.config.headerRowHeight) / this.config.rowHeight;
+ var proxy = this.data.dataProxy;
+ if (proxy && proxy.config && !this.data.isDataLoaded(from, onScreenCount + from + proxy.config.prepare)) {
+ proxy.updateUrl(null, { from: from, limit: proxy.config.limit });
+ this.data.load(proxy);
+ }
+ }
+ };
return Grid;
}(view_1.View));
exports.Grid = Grid;
/***/ }),
-/* 181 */
+/* 186 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
+var __assign = (this && this.__assign) || function () {
+ __assign = Object.assign || function(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign.apply(this, arguments);
+};
+var __spreadArrays = (this && this.__spreadArrays) || function () {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+};
Object.defineProperty(exports, "__esModule", { value: true });
var main_1 = __webpack_require__(20);
+var ts_data_1 = __webpack_require__(7);
+var core_1 = __webpack_require__(1);
+function fillArray(arr, value) {
+ for (var i = 0; i < arr.length; i++) {
+ arr[i] = value;
+ }
+ return arr;
+}
var Exporter = /** @class */ (function () {
function Exporter(_view) {
this._view = _view;
@@ -21601,6 +24111,22 @@ var Exporter = /** @class */ (function () {
Exporter.prototype.xlsx = function (config) {
return this._export(config);
};
+ Exporter.prototype.csv = function (config) {
+ if (config === void 0) { config = {}; }
+ config = __assign({ asFile: true, rowDelimiter: "\n", columnDelimiter: ",", skipHeader: 0 }, config);
+ var csv;
+ if ("getRoot" in this._view.data && config.flat) {
+ csv = this.getFlatCSV(config);
+ }
+ else {
+ csv = this._getCSV(config);
+ }
+ var name = config.name || "grid_export";
+ if (config.asFile) {
+ core_1.downloadFile(csv, name + ".csv", "text/csv");
+ }
+ return csv;
+ };
Exporter.prototype._export = function (config) {
if (config === void 0) { config = {}; }
var configCols = this._view.config.columns;
@@ -21634,7 +24160,6 @@ var Exporter = /** @class */ (function () {
var colStyleHash = colStyle
.split("")
.reduce(function (h, letter) {
- // tslint:disable-next-line:no-bitwise
var hh = ((h << 5) - h) + letter.charCodeAt(0);
return Math.abs(hh & hh);
}, 0).toString();
@@ -21646,7 +24171,7 @@ var Exporter = /** @class */ (function () {
}
}
if (uniqStyles[colStyleHash]) {
- cells.push([rowsIndexMap[key], col.id, colStyleHash]);
+ cells.push([rowsIndexMap[key], configCols.indexOf(col), colStyleHash]);
}
}
}
@@ -21678,54 +24203,249 @@ var Exporter = /** @class */ (function () {
}
return exportData;
};
+ Exporter.prototype.getFlatCSV = function (config) {
+ var treeData = this._view.data;
+ var root = treeData.getRoot();
+ var firstCol = this._view.config.columns[0];
+ var maxLevel = treeData.getMaxLevel();
+ var getParentsChain = function (item, data) {
+ var parents = [];
+ for (var i = 0; i <= maxLevel; i++) {
+ if (item && item[firstCol.id]) {
+ parents[item.$level] = item[firstCol.id];
+ var parent_1 = data.getParent(item.id, true);
+ if (parent_1 && parent_1.id) {
+ item = parent_1;
+ }
+ else {
+ item = null;
+ }
+ }
+ else {
+ parents[i] = "";
+ }
+ }
+ return parents;
+ };
+ var total = "";
+ treeData.eachChild(root, function (item) {
+ var parents = getParentsChain(item, treeData).join(config.columnDelimiter);
+ total += parents + Object.keys(item).reduce(function (values, key, i) {
+ if (key !== "id" && key !== "parent" && key[0] !== "$" && i !== 0) {
+ return values + config.columnDelimiter + (item[key] === null ? "" : item[key]);
+ }
+ return values;
+ }, "");
+ total += config.rowDelimiter;
+ });
+ var exportData = this._export(config);
+ // [dirty]
+ var emptyHeaders = fillArray(new Array(maxLevel + 1), "");
+ var headers = exportData.header.map(function (header) {
+ header.splice.apply(header, __spreadArrays([0, 1], emptyHeaders));
+ return header;
+ });
+ var head = new ts_data_1.CsvDriver(config).serialize(headers, true) + config.rowDelimiter;
+ return head + total;
+ };
+ Exporter.prototype._getCSV = function (config) {
+ var exportData = this._export(config);
+ var headers = exportData.header;
+ var driver = new ts_data_1.CsvDriver(config);
+ var head = driver.serialize(headers, true);
+ var readyData = driver.serialize(exportData.data, true);
+ return head + readyData;
+ };
return Exporter;
}());
exports.Exporter = Exporter;
/***/ }),
-/* 182 */
+/* 187 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(11);
+var core_1 = __webpack_require__(1);
+var types_1 = __webpack_require__(10);
var ts_data_1 = __webpack_require__(7);
var Selection = /** @class */ (function () {
function Selection(grid) {
this._grid = grid;
var types = ["cell", "row", "complex"];
+ this._selectedCell = undefined;
+ this._oldSelectedCell = undefined;
+ this._selectedCells = [];
this._type = types.indexOf(this._grid.config.selection) !== -1 ? this._grid.config.selection : "complex";
+ this._multiselection = grid.config.multiselection && this._type !== "complex";
this._init();
}
- Selection.prototype.setCell = function (row, col) {
- row = row.id ? row : this._grid.data.getItem(row);
- if (!col) {
- col = this._grid.config.columns[0];
+ Selection.prototype.destructor = function () {
+ document.removeEventListener("click", this._outerClick);
+ };
+ Selection.prototype.setCell = function (row, col, ctrlUp, shiftUp) {
+ var _this = this;
+ if (ctrlUp === void 0) { ctrlUp = false; }
+ if (shiftUp === void 0) { shiftUp = false; }
+ if (!this._grid.config.$editable) {
+ if (!row) {
+ this._selectedCell = undefined;
+ this._selectedCells = [];
+ }
+ else {
+ var oldSelectedCell = this._oldSelectedCell ? this._oldSelectedCell : undefined;
+ row = row.id ? row : this._grid.data.getItem(row);
+ if (!col) {
+ col = this._grid.config.columns[0];
+ }
+ col = col.id ? col : this._grid.getColumn(col);
+ this._selectedCell = { row: row, column: col };
+ if (this._multiselection && shiftUp && oldSelectedCell) {
+ this._oldSelectedCell = oldSelectedCell;
+ }
+ else {
+ this._oldSelectedCell = this._selectedCell;
+ }
+ if (this._multiselection) {
+ if (shiftUp && !ctrlUp && this._selectedCells.length > 0) {
+ var startRowIndex = this._grid.data.getIndex(this._oldSelectedCell.row.id);
+ var endRowIndex = this._grid.data.getIndex(row.id);
+ if (startRowIndex > endRowIndex) {
+ var temp = startRowIndex;
+ startRowIndex = endRowIndex;
+ endRowIndex = temp;
+ }
+ this._selectedCells = [this._oldSelectedCell];
+ if (this._type === "cell") {
+ var columnsIds = this._grid.config.columns.map(function (e) { return e.id; });
+ var startColIndex = columnsIds.indexOf(oldSelectedCell.column.id);
+ var endColIndex = columnsIds.indexOf(col.id);
+ if (startColIndex !== -1 && endColIndex !== -1) {
+ if (startColIndex > endColIndex) {
+ var temp = startColIndex;
+ startColIndex = endColIndex;
+ endColIndex = temp;
+ }
+ var columns_1 = this._grid.config.columns.slice(startColIndex, endColIndex + 1);
+ this._grid.data.mapRange(startRowIndex, endRowIndex, function (item) {
+ columns_1.forEach(function (column) {
+ var cell = { row: item, column: column };
+ if (_this._findIndex(cell) === -1) {
+ _this._selectedCells.push(cell);
+ }
+ });
+ });
+ }
+ }
+ else {
+ this._grid.data.mapRange(startRowIndex, endRowIndex, function (item) {
+ var cell = { row: item, column: col };
+ if (_this._findIndex(cell) === -1) {
+ _this._selectedCells.push({ row: item, column: col });
+ }
+ });
+ }
+ }
+ else if (ctrlUp && !shiftUp) {
+ var cellIndex = this._findIndex();
+ if (cellIndex === -1) {
+ this._selectedCells.push(this._selectedCell);
+ }
+ else {
+ this._selectedCells.splice(cellIndex, 1);
+ }
+ }
+ else {
+ this._selectedCells = [this._selectedCell];
+ }
+ }
+ else {
+ this._selectedCells = [this._selectedCell];
+ }
+ }
+ dom_1.awaitRedraw().then(function () {
+ _this._grid.paint();
+ });
}
- col = col.id ? col : this._grid.getColumn(col);
- this._selectedCell = { row: row, column: col };
- this._grid.paint();
};
Selection.prototype.getCell = function () {
return this._selectedCell;
};
+ Selection.prototype.getCells = function () {
+ if (this._multiselection) {
+ return this._selectedCells;
+ }
+ };
Selection.prototype.toHTML = function () {
- if (!this._selectedCell.row || !this._selectedCell.column) {
+ var _this = this;
+ if (this._isUnselected()) {
return;
}
- var fixedCols = this._grid.config.splitAt ?
- this._grid.config.columns.slice(0, this._grid.config.splitAt) : [];
+ if (this._multiselection) {
+ var selection_1 = [];
+ this._selectedCells.forEach(function (cell, index, array) {
+ selection_1.push(_this._toHTML(cell.row, cell.column, (index === array.length - 1) || _this._type === "cell"));
+ });
+ return selection_1;
+ }
+ else {
+ return this._toHTML(this._selectedCell.row, this._selectedCell.column, true);
+ }
+ };
+ Selection.prototype._init = function () {
+ var _this = this;
+ this._grid.events.on(types_1.GridEvents.cellClick, function (row, col, e) {
+ _this.setCell(row, col, e.ctrlKey || e.metaKey, e.shiftKey);
+ });
+ this._grid.data.events.on(ts_data_1.DataEvents.beforeRemove, function (item) {
+ if (item && _this._selectedCell && _this._selectedCell.row) {
+ var index = _this._grid.data.getIndex(String(_this._selectedCell.row.id));
+ var id = _this._grid.data.getId(index + 1);
+ if (id) {
+ _this.setCell(id);
+ }
+ else {
+ var newId = _this._grid.data.getId(index - 1);
+ if (newId) {
+ _this.setCell(newId);
+ }
+ }
+ _this._grid.paint();
+ }
+ });
+ this._outerClick = function (e) {
+ if (!_this._grid.config.$editable) {
+ var rootNode = _this._grid.getRootView().data.getRootNode();
+ var target = e.target;
+ var check = false;
+ while (target) {
+ if (target === rootNode) {
+ check = true;
+ return;
+ }
+ target = target.parentNode;
+ }
+ if (!check && _this._selectedCell && _this._selectedCells) {
+ _this.setCell();
+ }
+ }
+ };
+ document.addEventListener("click", this._outerClick);
+ };
+ Selection.prototype._toHTML = function (row, column, last) {
+ if (last === void 0) { last = false; }
+ var fixedCols = this._grid.config.splitAt ? this._grid.config.columns.slice(0, this._grid.config.splitAt) : [];
var fixedColsIds = fixedCols.map(function (col) { return col.id; });
var fixedCell;
- var cellRect = this._grid.getCellRect(this._selectedCell.row.id, this._selectedCell.column.id);
- if (fixedColsIds.indexOf(this._selectedCell.column.id) !== -1) {
+ var cellRect = this._grid.getCellRect(row.id, column.id);
+ if (fixedColsIds.indexOf(column.id) !== -1 && last) {
var scrollState = this._grid.getScrollState();
fixedCell = dom_1.el(".dhx_grid-selected-cell", {
style: {
- width: cellRect.width,
+ width: (this._grid.config.splitAt === fixedColsIds.indexOf(column.id) + 1) ? cellRect.width - 1 : cellRect.width,
height: cellRect.height,
top: cellRect.y,
left: cellRect.x + scrollState.x,
@@ -21735,51 +24455,50 @@ var Selection = /** @class */ (function () {
});
}
var totalWidth = this._grid.config.$totalWidth;
- return dom_1.el(".dhx_grid-selection", {}, [
- (this._type === "row" || this._type === "complex") && dom_1.el(".dhx_grid-selected-row", {
- style: {
- width: totalWidth,
- height: cellRect.height,
- top: cellRect.y,
- left: 0,
- position: "absolute"
- }
- }),
- (this._type === "cell" || this._type === "complex") && dom_1.el(".dhx_grid-selected-cell", {
+ return dom_1.el(".dhx_grid-selection", {}, [
+ (this._type === "row" || this._type === "complex") && dom_1.el(".dhx_grid-selected-row", {
style: {
- width: cellRect.width,
- height: cellRect.height,
+ width: totalWidth,
+ height: cellRect.height - 1,
top: cellRect.y,
- left: cellRect.x,
+ left: 0,
position: "absolute"
}
}),
- (this._type === "cell" || this._type === "complex") && fixedCell
+ ((this._type === "cell" || this._type === "complex") && fixedCell) ||
+ ((this._type === "cell" || this._type === "complex") && last && dom_1.el(".dhx_grid-selected-cell", {
+ style: {
+ width: cellRect.width - 1,
+ height: cellRect.height - 1,
+ top: cellRect.y,
+ left: cellRect.x + 1,
+ position: "absolute"
+ }
+ }))
]);
};
- Selection.prototype._init = function () {
+ Selection.prototype._isUnselected = function () {
+ return !this._selectedCell || !this._selectedCell.row || !this._selectedCell.column || this._selectedCells.length === 0;
+ };
+ Selection.prototype._findIndex = function (cell) {
var _this = this;
- this._selectedCell = {
- row: this._grid.data.getItem(this._grid.data.getId(0)),
- column: this._grid.config.columns[0]
- };
- this._grid.events.on(types_1.GridEvents.cellClick, function (row, col) {
- _this.setCell(row, col);
- });
- this._grid.data.events.on(ts_data_1.DataEvents.beforeRemove, function (item) {
- if (item) {
- var index = _this._grid.data.getIndex(String(_this._selectedCell.row.id));
- var id = _this._grid.data.getId(index + 1);
- if (id) {
- _this.setCell(id);
+ if (cell === void 0) { cell = this._selectedCell; }
+ var cellIndex = -1;
+ this._selectedCells.some(function (element, index) {
+ if (_this._type === "cell") {
+ if (core_1.compare(element.row, cell.row) && core_1.compare(element.column, cell.column)) {
+ cellIndex = index;
+ return true;
}
- else {
- var newId = _this._grid.data.getId(index - 1);
- _this.setCell(newId);
+ }
+ else if (_this._type === "row") {
+ if (core_1.compare(element.row, cell.row)) {
+ cellIndex = index;
+ return true;
}
- _this._grid.paint();
}
});
+ return cellIndex;
};
return Selection;
}());
@@ -21787,7 +24506,278 @@ exports.Selection = Selection;
/***/ }),
-/* 183 */
+/* 188 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var _this = this;
+Object.defineProperty(exports, "__esModule", { value: true });
+var Keymanager_1 = __webpack_require__(13);
+var types_1 = __webpack_require__(10);
+var html_1 = __webpack_require__(2);
+var focusHandler = {
+ focusedID: undefined,
+ isFocus: function (id) { return _this.focusedID === id; },
+ getFocusState: function () { return _this.focusedID; },
+ setFocusState: function (state) { return _this.focusedID = state; }
+};
+function initHotkeys(grid) {
+ var gridContainer = grid.getRootView().data.getRootNode();
+ var gridBody = grid.getRootView().refs.grid_body.el;
+ var gridId = gridContainer.getAttribute("dhx_widget_id");
+ focusHandler.setFocusState(gridId);
+ if (!grid.config.keyNavigation) {
+ return;
+ }
+ var variables = {
+ arrowLeft: html_1.isIE() ? "left" : "arrowLeft",
+ arrowRight: html_1.isIE() ? "right" : "arrowRight",
+ arrowUp: html_1.isIE() ? "up" : "arrowUp",
+ arrowDown: html_1.isIE() ? "down" : "arrowDown",
+ escape: html_1.isIE() ? "esc" : "escape",
+ space: html_1.isIE() ? "spacebar" : "space"
+ };
+ var focusableKeyManager = {
+ addHotKey: function (key, handler) {
+ Keymanager_1.keyManager.addHotKey(key, function (e) {
+ if (focusHandler.isFocus(gridId) && grid.events.fire(types_1.GridEvents.beforeKeyDown, [e])) {
+ handler(e);
+ grid.events.fire(types_1.GridEvents.afterKeyDown, [e]);
+ }
+ });
+ }
+ };
+ var isChild = function (parent, child) {
+ var node = child.parentNode;
+ while (node !== null) {
+ if (node === parent) {
+ return true;
+ }
+ node = node.parentNode;
+ }
+ return false;
+ };
+ document.addEventListener("mousedown", function (e) {
+ var target = e.target;
+ if (!focusHandler.isFocus(gridId) && (isChild(gridContainer, target) || target.isEqualNode(gridContainer))) {
+ focusHandler.setFocusState(gridId);
+ }
+ else if (!html_1.locateNode(e) && focusHandler.getFocusState() !== "null") {
+ focusHandler.setFocusState("null");
+ }
+ });
+ focusableKeyManager.addHotKey("enter", function () {
+ if (cellSelecting(grid.config.selection)) {
+ var selected = grid.selection.getCell();
+ if (selected && (selected.column.editable !== false && grid.config.editable || selected.column.editable)) {
+ if (!grid.config.$editable) {
+ if (selected.column.type !== "boolean") {
+ grid.edit(selected.row.id, selected.column.id, selected.column.editorType);
+ }
+ else {
+ grid.events.fire(types_1.GridEvents.afterEditEnd, [!selected.row[selected.column.id], selected.row, selected.column]);
+ }
+ }
+ else {
+ grid.editEnd();
+ }
+ }
+ }
+ });
+ focusableKeyManager.addHotKey(variables.space, function (e) {
+ if (cellSelecting(grid.config.selection) && grid.config.editable && !grid.config.$editable) {
+ var selected = grid.selection.getCell();
+ if (selected && selected.column.type === "boolean") {
+ e.preventDefault();
+ grid.events.fire(types_1.GridEvents.afterEditEnd, [!selected.row[selected.column.id], selected.row, selected.column]);
+ }
+ }
+ });
+ focusableKeyManager.addHotKey(variables.escape, function () {
+ if (grid.config.$editable) {
+ grid.editEnd(true);
+ }
+ });
+ focusableKeyManager.addHotKey("pageUp", function (e) {
+ e.preventDefault();
+ gridBody.scrollTop -= gridBody.clientHeight;
+ });
+ focusableKeyManager.addHotKey("pageDown", function (e) {
+ e.preventDefault();
+ gridBody.scrollTop += gridBody.clientHeight;
+ });
+ focusableKeyManager.addHotKey("home", function (e) {
+ e.preventDefault();
+ gridBody.scrollTop = 0;
+ });
+ focusableKeyManager.addHotKey("end", function (e) {
+ e.preventDefault();
+ gridBody.scrollTop += gridBody.scrollHeight;
+ });
+ focusableKeyManager.addHotKey("tab", function (e) {
+ if (grid.config.$editable || !grid.config.selection) {
+ return;
+ }
+ if (e) {
+ e.preventDefault();
+ }
+ var selected = grid.selection.getCell();
+ if (selected) {
+ var index = grid.config.columns.indexOf(selected.column) + 1;
+ if (index >= 0 && index < grid.config.columns.length) {
+ grid.selection.setCell(selected.row.id, grid.config.columns[index].id);
+ grid.scrollTo(selected.row.id.toString(), grid.config.columns[index].id.toString());
+ }
+ else if (index >= 0) {
+ var newLineIndex = grid.data.getIndex(selected.row.id.toString()) + 1;
+ if (newLineIndex < grid.data.getLength()) {
+ grid.selection.setCell(grid.data.getId(newLineIndex), grid.config.columns[0].id);
+ grid.scrollTo(grid.data.getId(newLineIndex), grid.config.columns[0].id.toString());
+ }
+ }
+ }
+ });
+ focusableKeyManager.addHotKey("shift+tab", function (e) {
+ // selectionMove(e, grid, "horizontal", -1);
+ if (grid.config.$editable || !grid.config.selection) {
+ return;
+ }
+ if (e) {
+ e.preventDefault();
+ }
+ var selected = grid.selection.getCell();
+ if (selected) {
+ var index = grid.config.columns.indexOf(selected.column) - 1;
+ if (index >= 0 && index < grid.config.columns.length) {
+ grid.selection.setCell(selected.row.id, grid.config.columns[index].id);
+ grid.scrollTo(selected.row.id.toString(), grid.config.columns[index].id.toString());
+ }
+ else if (index < grid.data.getLength()) {
+ var newLineIndex = grid.data.getIndex(selected.row.id.toString()) - 1;
+ if (newLineIndex >= 0) {
+ grid.selection.setCell(grid.data.getId(newLineIndex), grid.config.columns[grid.config.columns.length - 1].id);
+ grid.scrollTo(grid.data.getId(newLineIndex), grid.config.columns[grid.config.columns.length - 1].id.toString());
+ }
+ }
+ }
+ });
+ focusableKeyManager.addHotKey(variables.arrowUp, function (e) {
+ selectionMove(e, grid, "vertical", -1);
+ });
+ focusableKeyManager.addHotKey("ctrl+" + variables.arrowUp, function (e) {
+ selectionMove(e, grid, "vertical", -1, true);
+ });
+ focusableKeyManager.addHotKey("shift+" + variables.arrowUp, function (e) {
+ if (grid.config.multiselection) {
+ selectionMove(e, grid, "vertical", -1, false, false, true);
+ }
+ });
+ focusableKeyManager.addHotKey("ctrl+shift+" + variables.arrowUp, function (e) {
+ if (grid.config.multiselection) {
+ selectionMove(e, grid, "vertical", -1, true, false, true);
+ }
+ });
+ focusableKeyManager.addHotKey(variables.arrowDown, function (e) {
+ selectionMove(e, grid, "vertical", 1);
+ });
+ focusableKeyManager.addHotKey("ctrl+" + variables.arrowDown, function (e) {
+ selectionMove(e, grid, "vertical", 1, true);
+ });
+ focusableKeyManager.addHotKey("shift+" + variables.arrowDown, function (e) {
+ if (grid.config.multiselection) {
+ selectionMove(e, grid, "vertical", 1, false, false, true);
+ }
+ });
+ focusableKeyManager.addHotKey("ctrl+shift+" + variables.arrowDown, function (e) {
+ if (grid.config.multiselection) {
+ selectionMove(e, grid, "vertical", 1, true, false, true);
+ }
+ });
+ focusableKeyManager.addHotKey(variables.arrowRight, function (e) {
+ selectionMove(e, grid, "horizontal", 1);
+ });
+ focusableKeyManager.addHotKey("ctrl+" + variables.arrowRight, function (e) {
+ selectionMove(e, grid, "horizontal", 1, true);
+ });
+ focusableKeyManager.addHotKey("shift+" + variables.arrowRight, function (e) {
+ if (grid.config.multiselection) {
+ selectionMove(e, grid, "horizontal", 1, false, false, true);
+ }
+ });
+ focusableKeyManager.addHotKey("ctrl+shift+" + variables.arrowRight, function (e) {
+ if (grid.config.multiselection) {
+ selectionMove(e, grid, "horizontal", 1, true, false, true);
+ }
+ });
+ focusableKeyManager.addHotKey(variables.arrowLeft, function (e) {
+ selectionMove(e, grid, "horizontal", -1);
+ });
+ focusableKeyManager.addHotKey("ctrl+" + variables.arrowLeft, function (e) {
+ selectionMove(e, grid, "horizontal", -1, true);
+ });
+ focusableKeyManager.addHotKey("shift+" + variables.arrowLeft, function (e) {
+ if (grid.config.multiselection) {
+ selectionMove(e, grid, "horizontal", -1, false, false, true);
+ }
+ });
+ focusableKeyManager.addHotKey("ctrl+shift+" + variables.arrowLeft, function (e) {
+ if (grid.config.multiselection) {
+ selectionMove(e, grid, "horizontal", -1, true, false, true);
+ }
+ });
+}
+exports.initHotkeys = initHotkeys;
+function cellSelecting(selection) {
+ return selection === "cell" || selection === "complex";
+}
+function selectionMove(e, grid, dir, range, toEnd, ctrlUp, shiftUp) {
+ if (toEnd === void 0) { toEnd = false; }
+ if (ctrlUp === void 0) { ctrlUp = false; }
+ if (shiftUp === void 0) { shiftUp = false; }
+ if (grid.config.$editable || !grid.config.selection) {
+ return;
+ }
+ if (e) {
+ e.preventDefault();
+ }
+ var selected = grid.selection.getCell();
+ if (selected) {
+ if (dir === "vertical") {
+ if (toEnd) {
+ var newItem = range === 1 ? grid.data.getItem(grid.data.getId(grid.data.getLength() - 1)) : grid.data.getItem(grid.data.getId(0));
+ grid.selection.setCell(newItem.id, selected.column.id, ctrlUp, shiftUp);
+ grid.scrollTo(newItem.id, selected.column.id.toString());
+ }
+ else {
+ var index = grid.data.getIndex(selected.row.id.toString());
+ if (index + range >= 0 && index + range < grid.data.getLength()) {
+ var newItem = grid.data.getItem(grid.data.getId(index + range));
+ grid.selection.setCell(newItem.id, selected.column.id, ctrlUp, shiftUp);
+ grid.scrollTo(newItem.id, selected.column.id.toString());
+ }
+ }
+ }
+ else {
+ if (toEnd) {
+ var newItem = range === 1 ? grid.config.columns[grid.config.columns.length - 1] : grid.config.columns[0];
+ grid.selection.setCell(selected.row.id, newItem.id, ctrlUp, shiftUp);
+ grid.scrollTo(selected.row.id.toString(), newItem.id.toString());
+ }
+ else {
+ var index = grid.config.columns.indexOf(selected.column);
+ if (index + range >= 0 && index + range < grid.config.columns.length) {
+ grid.selection.setCell(selected.row.id, grid.config.columns[index + range].id, ctrlUp, shiftUp);
+ grid.scrollTo(selected.row.id.toString(), grid.config.columns[index + range].id.toString());
+ }
+ }
+ }
+ }
+}
+
+
+/***/ }),
+/* 189 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -21805,17 +24795,18 @@ var __assign = (this && this.__assign) || function () {
};
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var html_1 = __webpack_require__(3);
-var data_1 = __webpack_require__(51);
+var html_1 = __webpack_require__(2);
+var data_1 = __webpack_require__(53);
var main_1 = __webpack_require__(20);
-var Cells_1 = __webpack_require__(74);
-var FixedCols_1 = __webpack_require__(188);
-var FixedRows_1 = __webpack_require__(75);
+var Cells_1 = __webpack_require__(76);
+var FixedCols_1 = __webpack_require__(196);
+var FixedRows_1 = __webpack_require__(77);
+var core_1 = __webpack_require__(1);
var BORDERS = 2;
function getRenderConfig(obj, data, wrapperSizes) {
var config = obj.config;
var positions = data_1.calculatePositions(wrapperSizes.width, wrapperSizes.height, obj._scroll, config);
- return __assign({}, config, { data: data, scroll: obj._scroll, $positions: positions, headerHeight: config.$headerLevel * config.headerRowHeight, footerHeight: config.$footerLevel * config.footerRowHeight, firstColId: config.columns[0].id, events: obj.events, currentColumns: config.columns.slice(positions.xStart, positions.xEnd), sortBy: obj._sortBy, sortDir: obj._sortDir });
+ return __assign(__assign({}, config), { data: data, scroll: obj._scroll, $positions: positions, headerHeight: config.$headerLevel * config.headerRowHeight, footerHeight: config.$footerLevel * config.footerRowHeight, firstColId: config.columns[0].id, events: obj.events, currentColumns: config.columns.slice(positions.xStart, positions.xEnd), sortBy: obj._sortBy, sortDir: obj._sortDir });
}
function getElementSizes(element) {
if (!element) {
@@ -21832,7 +24823,7 @@ function getElementSizes(element) {
height: element.clientHeight - paddingsByHeight
};
}
-function render(vm, obj, data, htmlEvents, selection) {
+function render(vm, obj, data, htmlEvents, selection, uid) {
if (!obj._container) {
obj.config.width = 1;
obj.config.height = 1;
@@ -21845,25 +24836,53 @@ function render(vm, obj, data, htmlEvents, selection) {
obj.config.height = parentSizes.height;
}
var config = obj.config;
+ // when grid is destructing and user try to repaint it
+ if (!config) {
+ return dom_1.el("div");
+ }
if (!config.columns.length) {
return dom_1.el(".dhx_grid");
}
if (!data || !obj.data) {
data = [];
}
- config.$totalHeight = data.length * config.rowHeight;
+ if (config.columns.reduce(function (check, col) { return check = !col.hidden ? col.hidden : check; }, true)) {
+ config.$totalHeight = 0;
+ }
+ else {
+ config.$totalHeight = data.length * config.rowHeight;
+ }
var sizes = getElementSizes(obj._container);
var wrapperSizes = {
width: config.width ? config.width : sizes.width,
height: config.height ? config.height : sizes.height
};
- if (config.fitToContainer) {
- var scrollbarY = config.$totalHeight > wrapperSizes.height ? html_1.getScrollbarWidth() : 0;
+ // TODO: Remove scroll
+ if (main_1.isAutoWidth(config)) {
+ var scrollbarY = config.$totalHeight >= wrapperSizes.height - config.headerRowHeight ? html_1.getScrollbarWidth() : 0;
config.$totalWidth = wrapperSizes.width - BORDERS - scrollbarY;
- var total = config.columns.reduce(function (width, col) { return width + col.width; }, 0);
+ var total = config.columns.reduce(function (width, col) { return col.hidden ? width : width + col.width; }, 0);
var per_1 = config.$totalWidth / total;
+ var mTotal = config.columns.reduce(function (width, col) {
+ var estimatedWidth = (per_1 > 0 ? col.width * per_1 : 20);
+ var unchangeable = !main_1.isAutoWidth(config, col) ||
+ ((col.maxWidth && (col.maxWidth < (estimatedWidth))) || (col.minWidth && (col.minWidth > (estimatedWidth))));
+ return unchangeable ? width + col.width : width;
+ }, 0);
+ var newPer_1 = (config.$totalWidth - mTotal) / (total - mTotal);
+ config.$totalWidth = 0;
config.columns.map(function (col) {
- col.width = per_1 * col.width;
+ // TODO: dirty, must be more then 20
+ var estimatedWidth = (newPer_1 > 0 ? col.width * newPer_1 : 20);
+ var unchangeable = !main_1.isAutoWidth(config, col) ||
+ ((col.maxWidth && (col.maxWidth < (estimatedWidth))) || (col.minWidth && (col.minWidth > (estimatedWidth))));
+ if (!unchangeable) {
+ col.width = estimatedWidth;
+ }
+ else {
+ col.width = col.maxWidth || col.minWidth || col.width;
+ }
+ config.$totalWidth += col.hidden ? 0 : col.width;
});
}
config.width = wrapperSizes.width;
@@ -21880,12 +24899,20 @@ function render(vm, obj, data, htmlEvents, selection) {
shifts: shifts,
gridBodyHeight: gridBodyHeight
};
- var header = FixedRows_1.getFixedRows(renderConfig, __assign({}, layoutState, { name: "header", position: "top" }));
- var footer = renderConfig.$footer ? FixedRows_1.getFixedRows(renderConfig, __assign({}, layoutState, { name: "footer", position: "bottom" })) : null;
+ var header = FixedRows_1.getFixedRows(renderConfig, __assign(__assign({}, layoutState), { name: "header", position: "top" }));
+ var footer = renderConfig.$footer ? FixedRows_1.getFixedRows(renderConfig, __assign(__assign({}, layoutState), { name: "footer", position: "bottom" })) : null;
var lessByWidth = renderConfig.$totalWidth + BORDERS < wrapperSizes.width ? "dhx_grid-less-width" : "";
var lessByHeight = renderConfig.$totalHeight + BORDERS < wrapperSizes.height ? "dhx_grid-less-height" : "";
+ // dirty: but work. Change checking of rendering Grid
+ if (!vm.node) {
+ var _a = obj.getScrollState(), x_1 = _a.x, y_1 = _a.y;
+ dom_1.awaitRedraw().then(function () {
+ obj.scroll(x_1, y_1);
+ });
+ }
return dom_1.el(".dhx_grid.dhx_widget", {
- class: renderConfig.css
+ class: (renderConfig.css || "") + (!isSticky ? " dhx_grid_border" : "") + (config.multiselection ? " dhx_no-select--pointer" : ""),
+ dhx_widget_id: uid
}, [
dom_1.resizer(function () { return obj.paint(); }),
dom_1.el(".dhx_grid-content", {
@@ -21915,8 +24942,21 @@ exports.render = render;
function getGridData(renderConfig, shifts) {
var content = Cells_1.getCells(renderConfig);
var contentSpans = Cells_1.getSpans(renderConfig);
+ var resizedLine;
+ if (renderConfig.$resizing) {
+ var colIndex = core_1.findIndex(renderConfig.columns, function (col) { return col.id === renderConfig.$resizing; });
+ var firstCellLeft = renderConfig.columns.slice(0, colIndex).reduce(function (total, c) { return total += c.width; }, 0) + renderConfig.columns[colIndex].width;
+ resizedLine = dom_1.el(".dhx_grid-resize-line", {
+ style: {
+ top: 0,
+ left: firstCellLeft,
+ height: renderConfig.$totalHeight
+ }
+ });
+ }
var selection = renderConfig.selection ? renderConfig.selection.toHTML() : null;
selection = typeof selection === "string" ? dom_1.el("div.dhx_selection", { ".innerHTML": selection }) : selection;
+ var pos = renderConfig.$positions;
return dom_1.el(".dhx_data-wrap", {
style: {
"height": renderConfig.$totalHeight,
@@ -21925,9 +24965,9 @@ function getGridData(renderConfig, shifts) {
"padding-top": shifts.y,
}
}, [
- dom_1.el(".dhx_grid_data", content),
+ dom_1.el(".dhx_grid_data", __assign({ _flags: dom_1.KEYED_LIST }, Cells_1.getHandlers(pos.yStart, pos.xStart, renderConfig)), content),
dom_1.el(".dhx_span-spans", contentSpans),
- dom_1.el(".dhx_grid_selection", { _ref: "selection" }, [selection])
+ dom_1.el(".dhx_grid_selection", { _ref: "selection" }, [selection, resizedLine])
]);
}
function getContentHeight(renderConfig, isSticky, wrapperSizes) {
@@ -21937,7 +24977,7 @@ function getContentHeight(renderConfig, isSticky, wrapperSizes) {
// [dirty] refactoring needed
var lessByHeight = renderConfig.$totalHeight + BORDERS < wrapperSizes.height;
if (renderConfig.splitAt && lessByHeight) {
- return renderConfig.$totalHeight + renderConfig.footerHeight + renderConfig.headerHeight + html_1.getScrollbarWidth();
+ return renderConfig.$totalHeight + (isFooter ? renderConfig.footerHeight : null) + renderConfig.headerHeight + html_1.getScrollbarWidth();
}
// [dirty]
return contentHeight = isFooter ?
@@ -21947,16 +24987,18 @@ function getContentHeight(renderConfig, isSticky, wrapperSizes) {
/***/ }),
-/* 184 */
+/* 190 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-var types_1 = __webpack_require__(11);
-var InputEditor_1 = __webpack_require__(185);
-var SelectEditor_1 = __webpack_require__(186);
-var DateEditor_1 = __webpack_require__(187);
+var types_1 = __webpack_require__(10);
+var InputEditor_1 = __webpack_require__(191);
+var SelectEditor_1 = __webpack_require__(192);
+var DateEditor_1 = __webpack_require__(193);
+var CheckboxEditor_1 = __webpack_require__(194);
+var ComboboxEditor_1 = __webpack_require__(195);
var lastEditor = {
cell: {
row: null,
@@ -21966,7 +25008,7 @@ var lastEditor = {
};
var editHandler;
function getEditor(row, col, conf) {
- var type = conf.$editable.editorType;
+ var type = col.type === "boolean" ? types_1.EditorType.checkbox : conf.$editable.editorType;
if (lastEditor.cell.row === row.id && lastEditor.cell.col === col.id) {
return lastEditor.editor;
}
@@ -21993,6 +25035,10 @@ function getEditor(row, col, conf) {
return lastEditor.editor = new SelectEditor_1.SelectEditor(row, col, conf);
case types_1.EditorType.datepicker:
return lastEditor.editor = new DateEditor_1.DateEditor(row, col, conf);
+ case types_1.EditorType.checkbox:
+ return lastEditor.editor = new CheckboxEditor_1.CheckboxEditor(row, col, conf);
+ case types_1.EditorType.combobox:
+ return lastEditor.editor = new ComboboxEditor_1.ComboboxEditor(row, col, conf);
default:
return lastEditor.editor = new InputEditor_1.InputEditor(row, col, conf);
}
@@ -22001,14 +25047,14 @@ exports.getEditor = getEditor;
/***/ }),
-/* 185 */
+/* 191 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(11);
+var types_1 = __webpack_require__(10);
var core_1 = __webpack_require__(1);
var InputEditor = /** @class */ (function () {
function InputEditor(row, col, config) {
@@ -22016,13 +25062,16 @@ var InputEditor = /** @class */ (function () {
this._cell = { row: row, col: col };
this._initHandlers();
}
- InputEditor.prototype.endEdit = function () {
- var value = this._input.value;
+ InputEditor.prototype.endEdit = function (withoutSave) {
+ var value;
+ if (!withoutSave) {
+ value = this._input.value;
+ }
if (this._config.events.fire(types_1.GridEvents.beforeEditEnd, [value, this._cell.row, this._cell.col])) {
this._input.removeEventListener("blur", this._handlers.onBlur);
this._input.removeEventListener("change", this._handlers.onChange);
this._handlers = {};
- if (core_1.isNumeric(value)) {
+ if (this._cell.col.type !== "string" && core_1.isNumeric(value)) {
value = parseFloat(value);
}
this._config.events.fire(types_1.GridEvents.afterEditEnd, [value, this._cell.row, this._cell.col]);
@@ -22036,6 +25085,7 @@ var InputEditor = /** @class */ (function () {
if (this._input) {
content = this._input.value;
}
+ this._config.$editable.editor = this;
return dom_1.el("input.dhx_cell-editor.dhx_cell-editor__input", {
_hooks: {
didInsert: this._handlers.didInsert
@@ -22058,7 +25108,7 @@ var InputEditor = /** @class */ (function () {
var input = node.el;
_this._input = input;
input.focus();
- input.setSelectionRange(input.value.length, input.value.length);
+ input.setSelectionRange(0, input.value.length);
input.addEventListener("change", _this._handlers.onChange);
input.addEventListener("blur", _this._handlers.onBlur);
}
@@ -22070,22 +25120,25 @@ exports.InputEditor = InputEditor;
/***/ }),
-/* 186 */
+/* 192 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(11);
+var types_1 = __webpack_require__(10);
var SelectEditor = /** @class */ (function () {
function SelectEditor(row, col, config) {
this._config = config;
this._cell = { row: row, col: col };
this._initHandlers();
}
- SelectEditor.prototype.endEdit = function () {
- var value = this._input.value;
+ SelectEditor.prototype.endEdit = function (withoutSave) {
+ var value;
+ if (!withoutSave) {
+ value = this._input.value;
+ }
if (this._config.events.fire(types_1.GridEvents.beforeEditEnd, [value, this._cell.row, this._cell.col])) {
this._input.removeEventListener("blur", this._handlers.onBlur);
this._handlers = {};
@@ -22106,7 +25159,8 @@ var SelectEditor = /** @class */ (function () {
selected: item === selected
}, item);
});
- return dom_1.el("select.dhx_cell-editor.dhx_cell-editor__input", {
+ this._config.$editable.editor = this;
+ return dom_1.el("select.dhx_cell-editor.dhx_cell-editor__select", {
_hooks: {
didInsert: this._handlers.didInsert,
},
@@ -22134,17 +25188,17 @@ exports.SelectEditor = SelectEditor;
/***/ }),
-/* 187 */
+/* 193 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var types_1 = __webpack_require__(11);
-var ts_calendar_1 = __webpack_require__(28);
-var ts_popup_1 = __webpack_require__(10);
-var html_1 = __webpack_require__(3);
+var types_1 = __webpack_require__(10);
+var ts_calendar_1 = __webpack_require__(25);
+var ts_popup_1 = __webpack_require__(11);
+var html_1 = __webpack_require__(2);
var DateEditor = /** @class */ (function () {
function DateEditor(row, col, config) {
var _this = this;
@@ -22152,91 +25206,221 @@ var DateEditor = /** @class */ (function () {
this._cell = { row: row, col: col };
this._calendar = new ts_calendar_1.Calendar(null, { dateFormat: col.dateFormat });
var value = this._cell.row[this._cell.col.id];
- if (value) {
+ var dateFormat = this._calendar.config.dateFormat;
+ if (ts_calendar_1.stringToDate(value, dateFormat, true) || value instanceof Date) {
this._calendar.setValue(value);
+ this._value = this._calendar.getValue();
+ this._cell.row[this._cell.col.id] = this._value;
}
this._popup = new ts_popup_1.Popup({ css: "dhx_widget--bordered" });
this._popup.attach(this._calendar);
this._calendar.events.on(ts_calendar_1.CalendarEvents.change, function () {
- _this.endEdit();
+ _this.endEdit(false, true);
});
this._popup.events.on(ts_popup_1.PopupEvents.afterHide, function () {
_this.endEdit();
});
this._initHandlers();
}
- DateEditor.prototype.endEdit = function () {
- // [todo]
- if (!this._handlers) {
- return;
+ DateEditor.prototype.endEdit = function (withoutSave, calendarChange) {
+ if (!this._handlers) {
+ return;
+ }
+ var dateFormat = this._calendar.config.dateFormat;
+ var value = this._cell.row[this._cell.col.id];
+ if (!withoutSave) {
+ if (value instanceof Date || calendarChange) {
+ this._value = this._calendar.getValue();
+ this._input.value = this._value;
+ }
+ else if (ts_calendar_1.stringToDate(this._input.value, dateFormat, true) && this._input.value.length === value.length) {
+ this._value = this._input.value;
+ }
+ }
+ if (this._config.events.fire(types_1.GridEvents.beforeEditEnd, [this._value, this._cell.row, this._cell.col])) {
+ this._input.removeEventListener("focus", this._handlers.onFocus);
+ this._input.removeEventListener("change", this._handlers.onChange);
+ this._handlers = {};
+ this._popup.destructor();
+ this._calendar.destructor();
+ this._config.events.fire(types_1.GridEvents.afterEditEnd, [this._value, this._cell.row, this._cell.col]);
+ }
+ else {
+ this._input.focus();
+ }
+ };
+ DateEditor.prototype.toHTML = function () {
+ var value = this._cell.row[this._cell.col.id];
+ this._config.$editable.editor = this;
+ return dom_1.el("input.dhx_cell-editor.dhx_cell-editor__input.dhx_cell-editor__datepicker", {
+ _hooks: {
+ didInsert: this._handlers.didInsert
+ },
+ _key: "cell_editor",
+ dhx_id: "cell_editor",
+ value: value
+ });
+ };
+ DateEditor.prototype._initHandlers = function () {
+ var _this = this;
+ this._handlers = {
+ onFocus: function () {
+ dom_1.awaitRedraw().then(function () {
+ _this._popup.show(_this._input, { centering: true, mode: html_1.Position.bottom });
+ });
+ },
+ onChange: function () {
+ _this.endEdit();
+ },
+ didInsert: function (node) {
+ var input = node.el;
+ _this._input = input;
+ _this._input.addEventListener("focus", _this._handlers.onFocus);
+ _this._input.addEventListener("change", _this._handlers.onChange);
+ input.focus();
+ input.setSelectionRange(input.value.length, input.value.length);
+ }
+ };
+ };
+ return DateEditor;
+}());
+exports.DateEditor = DateEditor;
+
+
+/***/ }),
+/* 194 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", { value: true });
+var dom_1 = __webpack_require__(0);
+var types_1 = __webpack_require__(10);
+var CheckboxEditor = /** @class */ (function () {
+ function CheckboxEditor(row, col, config) {
+ this._config = config;
+ this._cell = { row: row, col: col };
+ this._initHandlers();
+ }
+ CheckboxEditor.prototype.endEdit = function () {
+ var value = this._checked;
+ if (this._config.events.fire(types_1.GridEvents.beforeEditEnd, [value, this._cell.row, this._cell.col])) {
+ this._handlers = {};
+ this._config.events.fire(types_1.GridEvents.afterEditEnd, [value, this._cell.row, this._cell.col]);
+ }
+ };
+ CheckboxEditor.prototype.toHTML = function () {
+ if (this._checked === undefined) {
+ this._checked = this._cell.row[this._cell.col.id];
+ }
+ if (this._input) {
+ return;
+ }
+ return dom_1.el("label.dhx_checkbox.dhx_cell-editor__checkbox", [
+ dom_1.el("input.dhx_checkbox__input", {
+ type: "checkbox",
+ _hooks: {
+ didInsert: this._handlers.didInsert
+ },
+ _key: "cell_editor",
+ dhx_id: "cell_editor",
+ checked: this._checked,
+ style: {
+ userSelect: "none"
+ }
+ }),
+ dom_1.el("span.dhx_checkbox__visual-input")
+ ]);
+ };
+ CheckboxEditor.prototype._initHandlers = function () {
+ var _this = this;
+ this._handlers = {
+ onChange: function (e) {
+ _this._checked = e.target.checked;
+ _this.endEdit();
+ },
+ didInsert: function (node) {
+ _this._checkbox = node.el.parentNode.lastChild;
+ _this._input = node.el.parentNode.firstChild;
+ _this._input.addEventListener("change", _this._handlers.onChange);
+ }
+ };
+ };
+ return CheckboxEditor;
+}());
+exports.CheckboxEditor = CheckboxEditor;
+
+
+/***/ }),
+/* 195 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", { value: true });
+var dom_1 = __webpack_require__(0);
+var types_1 = __webpack_require__(10);
+var ts_combobox_1 = __webpack_require__(32);
+var ComboboxEditor = /** @class */ (function () {
+ function ComboboxEditor(row, col, config) {
+ this._config = config;
+ this._cell = { row: row, col: col };
+ this._initHandlers();
+ }
+ ComboboxEditor.prototype.endEdit = function (withoutSave) {
+ var value;
+ if (!withoutSave) {
+ value = this._input.getValue();
}
- var value = this._calendar.getValue();
if (this._config.events.fire(types_1.GridEvents.beforeEditEnd, [value, this._cell.row, this._cell.col])) {
- this._input.removeEventListener("blur", this._handlers.onBlur);
- this._handlers = null;
- this._popup.destructor();
- this._calendar.destructor();
+ document.removeEventListener("click", this._handlers.onOuterClick);
+ this._handlers = {};
this._config.events.fire(types_1.GridEvents.afterEditEnd, [value, this._cell.row, this._cell.col]);
}
else {
this._input.focus();
}
};
- DateEditor.prototype.toHTML = function () {
- var content = this._cell.row[this._cell.col.id];
- return dom_1.el("input.dhx_cell-editor.dhx_cell-editor__input.dhx_cell-editor__datepicker", {
- _hooks: {
- didInsert: this._handlers.didInsert,
- didRecycle: this._handlers.didRecycle,
- didRemove: this._handlers.didRemove
- },
- _key: "cell_editor",
- dhx_id: "cell_editor",
- value: content
+ ComboboxEditor.prototype.toHTML = function () {
+ var _this = this;
+ var content = this._cell.col.options.map(function (item) {
+ return { id: "" + item, value: item };
+ }) || [];
+ if (!this._input) {
+ this._input = new ts_combobox_1.Combobox(null, {
+ readonly: true,
+ cellHeight: 37,
+ css: "dhx_cell-editor__combobox"
+ });
+ this._input.data.parse(content);
+ this._input.setValue(this._cell.row[this._cell.col.id]);
+ }
+ document.addEventListener("click", this._handlers.onOuterClick);
+ this._config.$editable.editor = this;
+ dom_1.awaitRedraw().then(function () {
+ var holderNode = _this._input.getRootView().refs.holder.el;
+ _this._input.popup.getContainer().style.width = holderNode.offsetWidth + "px";
+ _this._input.popup.show(holderNode);
});
+ return dom_1.inject(this._input.getRootView());
};
- DateEditor.prototype._initHandlers = function () {
+ ComboboxEditor.prototype._initHandlers = function () {
var _this = this;
this._handlers = {
- onBlur: function () {
- _this.endEdit();
- },
- onChange: function () {
- _this.endEdit();
- },
- didInsert: function (node) {
- var input = node.el;
- _this._input = input;
- _this._input.addEventListener("focus", function () {
- // [dirty]
- setTimeout(function () {
- _this._popup.show(_this._input, { centering: true, mode: html_1.Position.bottom });
- }, 100);
- });
- input.focus();
- input.setAttribute("disabled", "true");
- input.setSelectionRange(input.value.length, input.value.length);
- },
- didRecycle: function () {
- if (_this._input) {
- _this._popup.show(_this._input, { centering: true, mode: html_1.Position.bottom });
- }
- else {
+ onOuterClick: function (e) {
+ if (!(e.target instanceof Node && _this._input.getRootNode() && _this._input.getRootNode().contains(e.target))) {
_this.endEdit();
}
- },
- didRemove: function () {
- _this.endEdit();
}
};
};
- return DateEditor;
+ return ComboboxEditor;
}());
-exports.DateEditor = DateEditor;
+exports.ComboboxEditor = ComboboxEditor;
/***/ }),
-/* 188 */
+/* 196 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -22254,25 +25438,31 @@ var __assign = (this && this.__assign) || function () {
};
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var html_1 = __webpack_require__(3);
-var Cells_1 = __webpack_require__(74);
-var FixedRows_1 = __webpack_require__(75);
+var html_1 = __webpack_require__(2);
+var Cells_1 = __webpack_require__(76);
+var FixedRows_1 = __webpack_require__(77);
function getFixedCols(renderConfig, layout) {
+ var hiddenCheck = renderConfig.columns.reduce(function (check, col) {
+ return col.hidden ? check + 1 : check;
+ }, 0);
if (typeof renderConfig.splitAt !== "number") {
return;
}
+ if (hiddenCheck === renderConfig.splitAt) {
+ return;
+ }
var scrollBarWidth = renderConfig.$totalWidth <= layout.wrapper.width ? 0 : html_1.getScrollbarWidth();
var fixedColsHeight = (layout.sticky ?
layout.gridBodyHeight
: layout.gridBodyHeight + renderConfig.headerHeight) - scrollBarWidth;
var columns = renderConfig.columns.slice(0, renderConfig.splitAt);
- renderConfig.fixedColumnsWidth = columns.reduce(function (total, item) { return total += item.width || 100; }, 0);
- var fixedCols = Cells_1.getCells(__assign({}, renderConfig, { columns: columns, $positions: __assign({}, renderConfig.$positions, { xStart: 0, xEnd: renderConfig.splitAt }) }));
+ renderConfig.fixedColumnsWidth = columns.reduce(function (total, item) { return total += !item.hidden ? item.width || 100 : 0; }, 0);
+ var fixedCols = Cells_1.getCells(__assign(__assign({}, renderConfig), { columns: columns, $positions: __assign(__assign({}, renderConfig.$positions), { xStart: 0, xEnd: renderConfig.splitAt }) }));
var isSticky = layout.sticky;
- var headerRowsConfig = __assign({}, layout, { name: "header", position: "top" });
- var footerRowsConfig = __assign({}, layout, { name: "footer", position: "bottom" });
- var frozenHeaderCols = renderConfig.splitAt >= 0 && FixedRows_1.getRows(__assign({}, renderConfig, { currentColumns: renderConfig.columns.slice(0, renderConfig.splitAt), $positions: __assign({}, renderConfig.$positions, { xStart: 0, xEnd: renderConfig.splitAt }) }), __assign({}, layout, { name: "header", position: "top" }));
- var frozenFooterCols = renderConfig.splitAt >= 0 && FixedRows_1.getRows(__assign({}, renderConfig, { currentColumns: renderConfig.columns.slice(0, renderConfig.splitAt), $positions: __assign({}, renderConfig.$positions, { xStart: 0, xEnd: renderConfig.splitAt }) }), __assign({}, layout, { name: "footer", position: "bottom" }));
+ var headerRowsConfig = __assign(__assign({}, layout), { name: "header", position: "top" });
+ var footerRowsConfig = __assign(__assign({}, layout), { name: "footer", position: "bottom" });
+ var frozenHeaderCols = renderConfig.splitAt >= 0 && FixedRows_1.getRows(__assign(__assign({}, renderConfig), { currentColumns: renderConfig.columns.slice(0, renderConfig.splitAt), $positions: __assign(__assign({}, renderConfig.$positions), { xStart: 0, xEnd: renderConfig.splitAt }) }), __assign(__assign({}, layout), { name: "header", position: "top" }));
+ var frozenFooterCols = renderConfig.splitAt >= 0 && FixedRows_1.getRows(__assign(__assign({}, renderConfig), { currentColumns: renderConfig.columns.slice(0, renderConfig.splitAt), $positions: __assign(__assign({}, renderConfig.$positions), { xStart: 0, xEnd: renderConfig.splitAt }) }), __assign(__assign({}, layout), { name: "footer", position: "bottom" }));
var frozenHeader = frozenHeaderCols && dom_1.el(".dhx_" + headerRowsConfig.name + "-fixed-cols", {
style: {
position: "absolute",
@@ -22289,6 +25479,7 @@ function getFixedCols(renderConfig, layout) {
zIndex: 999999,
}
}, frozenFooterCols)) : null;
+ var pos = renderConfig.$positions;
return dom_1.el(".dhx_grid-fixed-cols-wrap", {
style: {
height: fixedColsHeight,
@@ -22298,14 +25489,12 @@ function getFixedCols(renderConfig, layout) {
}
}, [
frozenHeader,
- dom_1.el(".dhx_grid-fixed-cols", {
- style: {
- top: -renderConfig.scroll.top + renderConfig.headerHeight + "px",
+ dom_1.el(".dhx_grid-fixed-cols", __assign({ style: {
+ top: -renderConfig.scroll.top + renderConfig.headerHeight - 1 + "px",
paddingTop: layout.shifts.y,
height: renderConfig.$totalHeight,
position: "absolute"
- }
- }, fixedCols),
+ }, _flags: dom_1.KEYED_LIST }, Cells_1.getHandlers(pos.yStart, pos.xStart, renderConfig)), fixedCols),
renderConfig.$footer && frozenFooter,
dom_1.el(".dhx_frozen-cols-border")
]);
@@ -22314,7 +25503,71 @@ exports.getFixedCols = getFixedCols;
/***/ }),
-/* 189 */
+/* 197 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var __spreadArrays = (this && this.__spreadArrays) || function () {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var core_1 = __webpack_require__(1);
+var types_1 = __webpack_require__(10);
+var html_1 = __webpack_require__(2);
+function startResize(grid, column, ev, cb) {
+ var initX = ev.clientX;
+ var initWidth = 0;
+ grid.config.$resizing = column;
+ var moveHandler = function (e) {
+ var i = core_1.findIndex(grid.config.columns, function (obj) {
+ return obj.id === column;
+ });
+ var containerLeft = e.clientX - grid.getRootNode().getBoundingClientRect().left;
+ var scrollbarY = grid.config.$totalHeight > grid.config.height ? html_1.getScrollbarWidth() : 0;
+ if ((grid.config.splitAt === i + 1) && (containerLeft >= grid.config.width - scrollbarY - 2)) {
+ return;
+ }
+ initWidth = initWidth || grid.config.columns[i].width;
+ var minWidth = grid.config.columns[i].minWidth || 20;
+ var maxWidth = grid.config.columns[i].maxWidth;
+ var move = e.clientX - initX;
+ var cols = __spreadArrays(grid.config.columns);
+ var size = initWidth + move;
+ var final;
+ if ((maxWidth && size >= maxWidth) || size <= minWidth) {
+ if (size <= minWidth) {
+ final = minWidth;
+ }
+ if (size >= maxWidth) {
+ final = maxWidth;
+ }
+ }
+ else {
+ final = size;
+ }
+ cols[i].width = final;
+ grid.events.fire(types_1.GridEvents.resize, [grid.config.columns[i], e]);
+ grid.paint();
+ };
+ var upHandler = function () {
+ document.removeEventListener("mousemove", moveHandler);
+ document.removeEventListener("mouseup", upHandler);
+ cb();
+ };
+ document.addEventListener("mousemove", moveHandler);
+ document.addEventListener("mouseup", upHandler);
+ grid.paint();
+}
+exports.startResize = startResize;
+
+
+/***/ }),
+/* 198 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -22323,15 +25576,15 @@ function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(190));
-__export(__webpack_require__(191));
-var ts_navbar_1 = __webpack_require__(15);
+__export(__webpack_require__(199));
+__export(__webpack_require__(200));
+var ts_navbar_1 = __webpack_require__(17);
exports.ItemType = ts_navbar_1.ItemType;
exports.NavigationBarEvents = ts_navbar_1.NavigationBarEvents;
/***/ }),
-/* 190 */
+/* 199 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -22350,8 +25603,8 @@ var __extends = (this && this.__extends) || (function () {
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
-var html_1 = __webpack_require__(3);
-var ts_navbar_1 = __webpack_require__(15);
+var html_1 = __webpack_require__(2);
+var ts_navbar_1 = __webpack_require__(17);
var ContextMenu = /** @class */ (function (_super) {
__extends(ContextMenu, _super);
function ContextMenu() {
@@ -22378,12 +25631,19 @@ var ContextMenu = /** @class */ (function (_super) {
return ts_navbar_1.createFactory({
widget: this,
defaultType: ts_navbar_1.ItemType.menuItem,
- allowedTypes: [ts_navbar_1.ItemType.menuItem, ts_navbar_1.ItemType.separator, ts_navbar_1.ItemType.spacer],
+ allowedTypes: [
+ ts_navbar_1.ItemType.menuItem,
+ ts_navbar_1.ItemType.spacer,
+ ts_navbar_1.ItemType.separator,
+ ts_navbar_1.ItemType.customHTML,
+ // TODO: deprecated
+ ts_navbar_1.ItemType.customHTMLButton
+ ],
widgetName: "context-menu"
});
};
- ContextMenu.prototype._close = function () {
- _super.prototype._close.call(this);
+ ContextMenu.prototype._close = function (e) {
+ _super.prototype._close.call(this, e);
this._activeMenu = null;
this._changeActivePosition(null, null);
};
@@ -22402,7 +25662,7 @@ exports.ContextMenu = ContextMenu;
/***/ }),
-/* 191 */
+/* 200 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -22422,7 +25682,7 @@ var __extends = (this && this.__extends) || (function () {
})();
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var ts_navbar_1 = __webpack_require__(15);
+var ts_navbar_1 = __webpack_require__(17);
var Menu = /** @class */ (function (_super) {
__extends(Menu, _super);
function Menu(element, config) {
@@ -22435,12 +25695,19 @@ var Menu = /** @class */ (function (_super) {
return ts_navbar_1.createFactory({
widget: this,
defaultType: ts_navbar_1.ItemType.menuItem,
- allowedTypes: [ts_navbar_1.ItemType.menuItem, ts_navbar_1.ItemType.separator, ts_navbar_1.ItemType.spacer],
+ allowedTypes: [
+ ts_navbar_1.ItemType.menuItem,
+ ts_navbar_1.ItemType.spacer,
+ ts_navbar_1.ItemType.separator,
+ ts_navbar_1.ItemType.customHTML,
+ // TODO: deprecated
+ ts_navbar_1.ItemType.customHTMLButton,
+ ],
widgetName: "menu-nav"
});
};
Menu.prototype._draw = function () {
- return dom_1.el("ul", {
+ return dom_1.el("ul.dhx_widget", {
dhx_widget_id: this._uid,
onmousemove: this._handlers.onmousemove,
onmouseleave: this._handlers.onmouseleave,
@@ -22455,7 +25722,7 @@ exports.Menu = Menu;
/***/ }),
-/* 192 */
+/* 201 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -22464,11 +25731,11 @@ function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(193));
+__export(__webpack_require__(202));
/***/ }),
-/* 193 */
+/* 202 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -22488,10 +25755,10 @@ var __extends = (this && this.__extends) || (function () {
})();
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var ts_toolbar_1 = __webpack_require__(27);
-var ts_navbar_1 = __webpack_require__(15);
+var ts_toolbar_1 = __webpack_require__(29);
+var ts_navbar_1 = __webpack_require__(17);
var core_1 = __webpack_require__(1);
-var html_1 = __webpack_require__(3);
+var html_1 = __webpack_require__(2);
var ts_message_1 = __webpack_require__(19);
var Ribbon = /** @class */ (function (_super) {
__extends(Ribbon, _super);
@@ -22569,6 +25836,7 @@ var Ribbon = /** @class */ (function (_super) {
ts_toolbar_1.ItemType.navItem,
ts_toolbar_1.ItemType.button,
ts_toolbar_1.ItemType.customHTMLButton,
+ ts_toolbar_1.ItemType.customHTML,
ts_toolbar_1.ItemType.imageButton,
ts_toolbar_1.ItemType.input,
ts_toolbar_1.ItemType.selectButton,
@@ -22582,10 +25850,10 @@ var Ribbon = /** @class */ (function (_super) {
Ribbon.prototype._getMode = function (item, root) {
return item.id === root ? "bottom" : "right";
};
- Ribbon.prototype._close = function () {
+ Ribbon.prototype._close = function (e) {
this._activePosition = null;
this._currentRoot = null;
- _super.prototype._close.call(this);
+ _super.prototype._close.call(this, e);
};
Ribbon.prototype._draw = function () {
var _this = this;
@@ -22665,7 +25933,7 @@ exports.Ribbon = Ribbon;
/***/ }),
-/* 194 */
+/* 203 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -22674,12 +25942,12 @@ function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(195));
-__export(__webpack_require__(77));
+__export(__webpack_require__(204));
+__export(__webpack_require__(79));
/***/ }),
-/* 195 */
+/* 204 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -22699,10 +25967,10 @@ var __extends = (this && this.__extends) || (function () {
})();
Object.defineProperty(exports, "__esModule", { value: true });
var dom_1 = __webpack_require__(0);
-var html_1 = __webpack_require__(3);
-var types_1 = __webpack_require__(77);
+var html_1 = __webpack_require__(2);
+var types_1 = __webpack_require__(79);
var ts_message_1 = __webpack_require__(19);
-var ts_navbar_1 = __webpack_require__(15);
+var ts_navbar_1 = __webpack_require__(17);
var core_1 = __webpack_require__(1);
var Sidebar = /** @class */ (function (_super) {
__extends(Sidebar, _super);
@@ -22719,8 +25987,29 @@ var Sidebar = /** @class */ (function (_super) {
return _this;
}
Sidebar.prototype.toggle = function () {
- this.config.collapsed = !this.config.collapsed;
- this.events.fire(types_1.SidebarEvents.toggle, [this.config.collapsed]);
+ if (this.config.collapsed) {
+ this.expand();
+ }
+ else {
+ this.collapse();
+ }
+ this.events.fire(types_1.SidebarEvents.toggle, [this.config.collapsed]); // TODO: remove sute_7.0
+ this.paint();
+ };
+ Sidebar.prototype.collapse = function () {
+ if (!this.events.fire(types_1.SidebarEvents.beforeCollapse, [])) {
+ return;
+ }
+ this.config.collapsed = true;
+ this.events.fire(types_1.SidebarEvents.afterCollapse, []);
+ this.paint();
+ };
+ Sidebar.prototype.expand = function () {
+ if (!this.events.fire(types_1.SidebarEvents.beforeExpand, [])) {
+ return;
+ }
+ this.config.collapsed = false;
+ this.events.fire(types_1.SidebarEvents.afterExpand, []);
this.paint();
};
Sidebar.prototype.isCollapsed = function () {
@@ -22734,6 +26023,7 @@ var Sidebar = /** @class */ (function (_super) {
ts_navbar_1.ItemType.navItem,
ts_navbar_1.ItemType.menuItem,
ts_navbar_1.ItemType.customHTMLButton,
+ ts_navbar_1.ItemType.customHTML,
ts_navbar_1.ItemType.separator,
ts_navbar_1.ItemType.spacer,
ts_navbar_1.ItemType.title
@@ -22741,10 +26031,10 @@ var Sidebar = /** @class */ (function (_super) {
widgetName: "sidebar"
});
};
- Sidebar.prototype._close = function () {
+ Sidebar.prototype._close = function (e) {
this._activePosition = null;
this._currentRoot = null;
- _super.prototype._close.call(this);
+ _super.prototype._close.call(this, e);
};
Sidebar.prototype._setRoot = function (id) {
if (this.data.getParent(id) === this.data.getRoot()) {
@@ -22816,18 +26106,18 @@ var Sidebar = /** @class */ (function (_super) {
};
Sidebar.prototype._customInitEvents = function () {
var _this = this;
- this.events.on(ts_navbar_1.NavigationBarEvents.inputFocus, function () {
- if (_this.config.collapsed) {
- _this._waitRestore = true;
- _this.toggle();
- }
- });
this.events.on(ts_navbar_1.NavigationBarEvents.inputBlur, function () {
if (_this._waitRestore) {
_this.toggle();
_this._waitRestore = false;
}
});
+ this.events.on(ts_navbar_1.NavigationBarEvents.inputFocus, function () {
+ if (_this.config.collapsed) {
+ _this._waitRestore = true;
+ _this.toggle();
+ }
+ });
};
return Sidebar;
}(ts_navbar_1.Navbar));
@@ -22835,7 +26125,7 @@ exports.Sidebar = Sidebar;
/***/ }),
-/* 196 */
+/* 205 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -22844,12 +26134,12 @@ function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(197));
-__export(__webpack_require__(78));
+__export(__webpack_require__(206));
+__export(__webpack_require__(80));
/***/ }),
-/* 197 */
+/* 206 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -22878,14 +26168,21 @@ var __assign = (this && this.__assign) || function () {
};
return __assign.apply(this, arguments);
};
+var __spreadArrays = (this && this.__spreadArrays) || function () {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+};
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(1);
var dom_1 = __webpack_require__(0);
-var events_1 = __webpack_require__(2);
-var html_1 = __webpack_require__(3);
+var events_1 = __webpack_require__(3);
+var html_1 = __webpack_require__(2);
var Keymanager_1 = __webpack_require__(13);
-var ts_layout_1 = __webpack_require__(12);
-var types_1 = __webpack_require__(78);
+var ts_layout_1 = __webpack_require__(14);
+var types_1 = __webpack_require__(80);
var Tabbar = /** @class */ (function (_super) {
__extends(Tabbar, _super);
function Tabbar(container, config) {
@@ -22894,15 +26191,43 @@ var Tabbar = /** @class */ (function (_super) {
tabWidth: 200,
tabHeight: 45,
}, config)) || this;
+ if (_this.config.disabled) {
+ var disabled = _this.config.disabled;
+ var exsistId_1 = _this._cells.map(function (tab) {
+ return tab.id;
+ });
+ if (Array.isArray(disabled)) {
+ disabled.forEach(function (tab) {
+ if (exsistId_1.indexOf(tab) !== -1 && _this._disabled.indexOf(tab) === -1) {
+ _this._disabled.push(tab);
+ }
+ });
+ }
+ else if (exsistId_1.indexOf(disabled) !== -1 && _this._disabled.indexOf(disabled) === -1) {
+ _this._disabled.push(disabled);
+ }
+ _this.paint();
+ }
_this.events = new events_1.EventSystem(_this);
return _this;
}
Tabbar.prototype.toVDOM = function () {
var activeView = null;
if (!this.config.noContent) {
- activeView = this.cell(this.config.activeView);
+ activeView = this.getCell(this.config.activeView);
if (activeView) {
- activeView.config.css = activeView.config.css || "";
+ var disabled = this._disabled.indexOf(this.config.activeView) !== -1 ? " dhx_tabbar-content--disabled" : "";
+ if (activeView.config.css) {
+ if (activeView.config.css.indexOf("dhx_tabbar-content--disabled") !== -1) {
+ activeView.config.css = activeView.config.css.replace("dhx_tabbar-content--disabled", "");
+ }
+ else {
+ activeView.config.css = activeView.config.css + disabled;
+ }
+ }
+ else {
+ activeView.config.css = disabled;
+ }
}
}
return dom_1.el("div", {
@@ -22918,11 +26243,36 @@ var Tabbar = /** @class */ (function (_super) {
this._hotkeysDestructor();
_super.prototype.destructor.call(this);
};
- Tabbar.prototype.removeCell = function (id) {
+ Tabbar.prototype.getWidget = function () {
+ var _this = this;
+ var activeCell = this._cells.filter(function (cell) { return _this.getActive() === cell.id; });
+ return activeCell[0].getWidget();
+ };
+ Tabbar.prototype.setActive = function (id) {
+ var exsistId = this._cells.map(function (tab) {
+ return tab.id;
+ });
+ if (exsistId.indexOf(id) !== -1 && this._disabled.indexOf(id) === -1) {
+ var prev = this.config.activeView;
+ this.getCell(id).show();
+ this._focusTab(id);
+ this.events.fire(types_1.TabbarEvents.change, [id, prev]);
+ }
+ };
+ Tabbar.prototype.getActive = function () {
+ return this.config ? this.config.activeView : null;
+ };
+ Tabbar.prototype.addTab = function (config, index) {
+ this.addCell(config, index);
+ };
+ Tabbar.prototype.removeTab = function (id) {
var _this = this;
+ if (!this.events.fire(types_1.TabbarEvents.beforeClose, [id])) {
+ return;
+ }
if (id === this.config.activeView) {
- var cellLength = this._cells.length;
- var index = core_1.findIndex(this._cells, function (cell) { return cell.id === _this.config.activeView; });
+ var cellLength = this._getEnableTabs().length;
+ var index = core_1.findIndex(this._getEnableTabs(), function (cell) { return cell.id === _this.config.activeView; });
if (index < 0) {
return;
}
@@ -22934,34 +26284,51 @@ var Tabbar = /** @class */ (function (_super) {
this.config.activeView = null;
}
else {
- this.setActive(this._cells[index].id);
+ this.setActive(this._getEnableTabs()[index].id);
}
}
else {
_super.prototype.removeCell.call(this, id);
}
- this.events.fire(types_1.TabbarEvents.close, [id]);
+ this.events.fire(types_1.TabbarEvents.afterClose, [id]);
+ this.events.fire(types_1.TabbarEvents.close, [id]); // TODO: remove sute_7.0
};
- Tabbar.prototype.setActive = function (id) {
- var prev = this.config.activeView;
- this.cell(id).show();
- this._focusTab(id);
- this.events.fire(types_1.TabbarEvents.change, [id, prev]);
+ Tabbar.prototype.disableTab = function (id) {
+ var exsistId = this._cells.map(function (tab) {
+ return tab.id;
+ });
+ if (exsistId.indexOf(id) !== -1 && this._disabled.indexOf(id) === -1) {
+ this._disabled.push(id);
+ this.paint();
+ return true;
+ }
+ return false;
};
- Tabbar.prototype.getActive = function () {
- return this.config ? this.config.activeView : null;
+ Tabbar.prototype.enableTab = function (id) {
+ if (this._disabled.indexOf(id) !== -1) {
+ var sort = this._disabled.filter(function (tab) { return tab !== id; });
+ this._disabled = __spreadArrays(sort);
+ this.paint();
+ }
+ };
+ Tabbar.prototype.isDisabled = function (id) {
+ return this._disabled.indexOf(id ? id : this.config.activeView) !== -1;
+ };
+ // TODO: remove sute_7.0
+ Tabbar.prototype.removeCell = function (id) {
+ this.removeTab(id);
};
Tabbar.prototype._initHandlers = function () {
var _this = this;
_super.prototype._initHandlers.call(this);
- this._handlers = __assign({}, this._handlers, { onTabClick: function (e) {
+ this._handlers = __assign(__assign({}, this._handlers), { onTabClick: function (e) {
var tabId = html_1.locate(e, "dhx_tabid");
- if (!tabId) {
+ if (!tabId || _this._disabled.indexOf(tabId) !== -1) {
return;
}
var prev = _this.config.activeView;
if (e.target.classList.contains("dhx_tabbar-tab__close")) {
- _this.removeCell(tabId);
+ _this.removeTab(tabId);
}
else {
_this.config.activeView = tabId;
@@ -22971,16 +26338,17 @@ var Tabbar = /** @class */ (function (_super) {
} });
var activeNextTab = function (e) {
e.preventDefault();
- var activeIndex = core_1.findIndex(_this._cells, function (cell) { return cell.id === _this.config.activeView; });
+ var enableTabs = _this._getEnableTabs();
+ var activeIndex = core_1.findIndex(enableTabs, function (cell) { return cell.id === _this.config.activeView; });
var prev = _this.config.activeView;
if (activeIndex === -1) {
return;
}
- if (activeIndex === _this.config.views.length - 1) {
- _this.config.activeView = _this._cells[0].id;
+ if (activeIndex === enableTabs.length - 1) {
+ _this.config.activeView = enableTabs[0].id;
}
else {
- _this.config.activeView = _this._cells[activeIndex + 1].id;
+ _this.config.activeView = enableTabs[activeIndex + 1].id;
}
_this.events.fire(types_1.TabbarEvents.change, [_this.config.activeView, prev]);
_this._focusTab(_this.config.activeView);
@@ -22988,16 +26356,17 @@ var Tabbar = /** @class */ (function (_super) {
};
var activePrevTab = function (e) {
e.preventDefault();
- var activeIndex = core_1.findIndex(_this._cells, function (cell) { return cell.id === _this.config.activeView; });
+ var enableTabs = _this._getEnableTabs();
+ var activeIndex = core_1.findIndex(enableTabs, function (cell) { return cell.id === _this.config.activeView; });
var prev = _this.config.activeView;
if (activeIndex === -1) {
return;
}
if (activeIndex === 0) {
- _this.config.activeView = _this._cells[_this.config.views.length - 1].id;
+ _this.config.activeView = enableTabs[enableTabs.length - 1].id;
}
else {
- _this.config.activeView = _this._cells[activeIndex - 1].id;
+ _this.config.activeView = enableTabs[activeIndex - 1].id;
}
_this.events.fire(types_1.TabbarEvents.change, [_this.config.activeView, prev]);
_this._focusTab(_this.config.activeView);
@@ -23013,9 +26382,13 @@ var Tabbar = /** @class */ (function (_super) {
};
Tabbar.prototype._focusTab = function (id) {
var _this = this;
- setTimeout(function () {
+ dom_1.awaitRedraw().then(function () {
_this.getRootView().refs[id].el.focus();
- }, 10);
+ });
+ };
+ Tabbar.prototype._getEnableTabs = function () {
+ var _this = this;
+ return this._cells.filter(function (tab) { return _this._disabled.indexOf(tab.config.id) === -1; });
};
Tabbar.prototype._getIndicatorPosition = function () {
var _this = this;
@@ -23057,21 +26430,28 @@ var Tabbar = /** @class */ (function (_super) {
tabs_id: this._uid,
class: "dhx_tabbar-header ",
onclick: this._handlers.onTabClick
- }, this._cells.map(function (cell) {
+ }, __spreadArrays(this._cells.map(function (cell) {
+ var _a = _this.config, closable = _a.closable, closeButtons = _a.closeButtons, activeView = _a.activeView;
return dom_1.el("li", {
class: "dhx_tabbar-tab" + (cell.config.tabCss ? " " + cell.config.tabCss : ""),
dhx_tabid: cell.id,
role: "presentation",
}, [
- dom_1.el("button.dhx_button.dhx_tabbar-tab-button" + (_this.config.activeView === cell.id ? ".dhx_tabbar-tab-button--active" : ""), {
+ dom_1.el("button.dhx_button.dhx_tabbar-tab-button"
+ + (activeView === cell.id ? ".dhx_tabbar-tab-button--active" : "")
+ + (_this._disabled.indexOf(cell.config.id) !== -1 ? ".dhx_tabbar-tab-button--disabled" : ""), {
"tabindex": "0",
"style": tabStyle,
"aria-controls": cell.id,
"id": "tab-content-" + cell.id,
- "aria-selected": "" + (_this.config.activeView === cell.id),
+ "aria-selected": "" + (activeView === cell.id),
"_ref": cell.id,
- }, [dom_1.el("span.dhx_button__text", cell.config.tab)]),
- _this.config.closeButtons
+ }, [
+ dom_1.el("span.dhx_button__text", cell.config.tab)
+ ]),
+ Array.isArray(closable) && closable.indexOf(cell.config.id) !== -1 && _this._disabled.indexOf(cell.config.id) === -1 ||
+ closable && typeof closable === "boolean" && _this._disabled.indexOf(cell.config.id) === -1 ||
+ closeButtons && typeof closeButtons === "boolean" && _this._disabled.indexOf(cell.config.id) === -1
? dom_1.el("div.dhx_tabbar-tab__close.dxi--small.dxi.dxi-close", {
"tabindex": 0,
"role": "button",
@@ -23079,7 +26459,7 @@ var Tabbar = /** @class */ (function (_super) {
})
: null
]);
- }).slice())
+ })))
]);
};
return Tabbar;
@@ -23088,7 +26468,7 @@ exports.Tabbar = Tabbar;
/***/ }),
-/* 198 */
+/* 207 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -23097,13 +26477,13 @@ function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(199));
-__export(__webpack_require__(79));
-__export(__webpack_require__(80));
+__export(__webpack_require__(208));
+__export(__webpack_require__(81));
+__export(__webpack_require__(82));
/***/ }),
-/* 199 */
+/* 208 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -23135,14 +26515,14 @@ var __assign = (this && this.__assign) || function () {
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(1);
var dom_1 = __webpack_require__(0);
-var events_1 = __webpack_require__(2);
-var html_1 = __webpack_require__(3);
-var types_1 = __webpack_require__(21);
+var events_1 = __webpack_require__(3);
+var html_1 = __webpack_require__(2);
+var types_1 = __webpack_require__(22);
var view_1 = __webpack_require__(4);
var ts_data_1 = __webpack_require__(7);
-var Editor_1 = __webpack_require__(79);
-var KeyNavigation_1 = __webpack_require__(200);
-var types_2 = __webpack_require__(80);
+var Editor_1 = __webpack_require__(81);
+var KeyNavigation_1 = __webpack_require__(209);
+var types_2 = __webpack_require__(82);
function getSelectionIndent(level) {
return level * 20;
}
@@ -23156,8 +26536,10 @@ var Tree = /** @class */ (function (_super) {
file: "dxi dxi-file-outline",
folder: "dxi dxi-folder",
openFolder: "dxi dxi-folder-open"
- }
+ },
+ editable: false
}, config)) || this;
+ _this.config.editable = _this.config.editable || _this.config.editing; // TODO: remove sute_7.0
var init = function (item) {
item.opened = item.opened;
item.$mark = types_2.SelectStatus.unselected;
@@ -23202,7 +26584,7 @@ var Tree = /** @class */ (function (_super) {
this._focusId = id;
this.data.eachParent(id, function (item) {
if (!item.opened) {
- _this.open(item.id);
+ _this.expand(item.id);
}
});
this.paint();
@@ -23233,26 +26615,6 @@ var Tree = /** @class */ (function (_super) {
}, true);
this.paint();
};
- Tree.prototype.close = function (id) {
- this.data.update(id, { opened: false });
- };
- Tree.prototype.openAll = function () {
- var _this = this;
- this.data.eachChild(this._root, function (_a) {
- var id = _a.id;
- return _this.data.haveItems(id) && _this.data.update(id, { opened: true });
- }, true);
- };
- Tree.prototype.closeAll = function () {
- var _this = this;
- this.data.eachChild(this._root, function (_a) {
- var id = _a.id;
- return _this.data.haveItems(id) && _this.data.update(id, { opened: false });
- }, true);
- };
- Tree.prototype.open = function (id) {
- this.data.update(id, { opened: true });
- };
Tree.prototype.toggle = function (id) {
var item = this.data.getItem(id);
if (item.$autoload) {
@@ -23263,7 +26625,12 @@ var Tree = /** @class */ (function (_super) {
});
}
else {
- this.data.update(id, { opened: !item.opened });
+ if (item.opened) {
+ this.collapse(id);
+ }
+ else {
+ this.expand(id);
+ }
}
};
Tree.prototype.getChecked = function () {
@@ -23278,9 +26645,61 @@ var Tree = /** @class */ (function (_super) {
Tree.prototype.checkItem = function (id) {
this._updateItemCheck(id, types_2.SelectStatus.selected);
};
- Tree.prototype.unCheckItem = function (id) {
+ Tree.prototype.collapse = function (id) {
+ if (this.data.haveItems(id)) {
+ if (!this.events.fire(types_2.TreeEvents.beforeCollapse, [id])) {
+ return;
+ }
+ this.data.update(id, { opened: false });
+ this.events.fire(types_2.TreeEvents.afterCollapse, [id]);
+ }
+ };
+ Tree.prototype.collapseAll = function () {
+ var _this = this;
+ this.data.eachChild(this._root, function (_a) {
+ var id = _a.id;
+ return _this.collapse(id);
+ }, true);
+ };
+ Tree.prototype.expand = function (id) {
+ if (this.data.haveItems(id)) {
+ if (!this.events.fire(types_2.TreeEvents.beforeExpand, [id])) {
+ return;
+ }
+ this.data.update(id, { opened: true });
+ this.events.fire(types_2.TreeEvents.afterExpand, [id]);
+ }
+ };
+ Tree.prototype.expandAll = function () {
+ var _this = this;
+ this.data.eachChild(this._root, function (_a) {
+ var id = _a.id;
+ return _this.expand(id);
+ }, true);
+ };
+ Tree.prototype.uncheckItem = function (id) {
this._updateItemCheck(id, types_2.SelectStatus.unselected);
};
+ // TODO: remove sute_7.0
+ Tree.prototype.close = function (id) {
+ this.collapse(id);
+ };
+ // TODO: remove sute_7.0
+ Tree.prototype.closeAll = function () {
+ this.collapseAll();
+ };
+ // TODO: remove sute_7.0
+ Tree.prototype.open = function (id) {
+ this.expand(id);
+ };
+ // TODO: remove sute_7.0
+ Tree.prototype.openAll = function () {
+ this.expandAll();
+ };
+ // TODO: remove sute_7.0
+ Tree.prototype.unCheckItem = function (id) {
+ this.uncheckItem(id);
+ };
Tree.prototype._draw = function () {
var items = this._drawItems(this.data.getRoot());
return dom_1.el("ul", __assign({ class: "dhx_widget dhx_tree" +
@@ -23342,7 +26761,7 @@ var Tree = /** @class */ (function (_super) {
});
this.events.on(ts_data_1.DragEvents.dropComplete, function (id, pos) {
if (_this.config.dropBehaviour === ts_data_1.DropBehaviour.child || (_this.config.dropBehaviour === ts_data_1.DropBehaviour.complex && pos === ts_data_1.DropPosition.in)) {
- _this.open(id);
+ _this.expand(id);
}
});
this.events.on(ts_data_1.DragEvents.dragStart, function () {
@@ -23354,7 +26773,7 @@ var Tree = /** @class */ (function (_super) {
_this.paint();
});
this.events.on(types_1.SelectionEvents.afterSelect, function (id) { return _this._focusId = id; });
- if (this.config.editing) {
+ if (this.config.editable) {
this.events.on(types_2.TreeEvents.itemDblClick, function (id) { return _this.editItem(id); });
}
};
@@ -23379,7 +26798,7 @@ var Tree = /** @class */ (function (_super) {
_this.checkItem(id);
}
else {
- _this.unCheckItem(id);
+ _this.uncheckItem(id);
}
return;
}
@@ -23405,7 +26824,8 @@ var Tree = /** @class */ (function (_super) {
if (!id) {
return;
}
- _this.events.fire(types_2.TreeEvents.itemContextMenu, [id, e]);
+ _this.events.fire(types_2.TreeEvents.itemRightClick, [id, e]);
+ _this.events.fire(types_2.TreeEvents.itemContextMenu, [id, e]); // TODO: remove sute_7.0
}
};
};
@@ -23552,14 +26972,14 @@ function getItemIconType(isFolder, isOpened) {
/***/ }),
-/* 200 */
+/* 209 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(1);
-var html_1 = __webpack_require__(3);
+var html_1 = __webpack_require__(2);
var Keymanager_1 = __webpack_require__(13);
var KeyNavigation = /** @class */ (function () {
function KeyNavigation() {
@@ -23593,7 +27013,7 @@ var KeyNavigation = /** @class */ (function () {
var focused = _this._getFocused();
var parent = target.data.getParent(focused);
if (target.data.getRoot() === parent) {
- target.close(focused);
+ target.collapse(focused);
return;
}
var isClosed = !target.data.getItem(focused).opened;
@@ -23602,7 +27022,7 @@ var KeyNavigation = /** @class */ (function () {
}
else {
if (focused !== target.data.getRoot()) {
- target.close(focused);
+ target.collapse(focused);
}
}
});
@@ -23617,7 +27037,7 @@ var KeyNavigation = /** @class */ (function () {
}
var focused = _this._getFocused();
if (target.data.haveItems(focused)) {
- target.open(focused);
+ target.expand(focused);
}
});
this._keyManager.addHotKey("arrowup", function (e) {
@@ -23743,7 +27163,7 @@ exports.keyNavigation = new KeyNavigation();
/***/ }),
-/* 201 */
+/* 210 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -23752,11 +27172,11 @@ function __export(m) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
-__export(__webpack_require__(202));
+__export(__webpack_require__(211));
/***/ }),
-/* 202 */
+/* 211 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -23764,12 +27184,12 @@ __export(__webpack_require__(202));
Object.defineProperty(exports, "__esModule", { value: true });
var core_1 = __webpack_require__(1);
var dom_1 = __webpack_require__(0);
-var events_1 = __webpack_require__(2);
+var events_1 = __webpack_require__(3);
var Keymanager_1 = __webpack_require__(13);
-var ts_layout_1 = __webpack_require__(12);
-var ts_toolbar_1 = __webpack_require__(27);
-var types_1 = __webpack_require__(203);
-var WindowController_1 = __webpack_require__(204);
+var ts_layout_1 = __webpack_require__(14);
+var ts_toolbar_1 = __webpack_require__(29);
+var types_1 = __webpack_require__(212);
+var WindowController_1 = __webpack_require__(213);
function detectDrag(e) {
return new Promise(function (res) {
var timeout = setTimeout(function () {
@@ -23798,16 +27218,18 @@ var Window = /** @class */ (function () {
movable: false,
resizable: false,
header: false,
- closable: config.modal,
- minWidth: 100,
- minHeight: 100
+ closable: config.modal
}, config);
+ if (this.config.node && typeof this.config.node === "string") {
+ this.config.node = document.getElementById(this.config.node);
+ }
+ else if (!this.config.node) {
+ this.config.node = document.body;
+ }
this._uid = core_1.uid();
this.events = new events_1.EventSystem(this);
var popup = this._popup = document.createElement("div");
- popup.className = "dhx_popup dhx_widget dhx_popup--window" + (this.config.modal ? " dhx_popup--window_modal" : "");
popup.tabIndex = 1;
- popup.style.position = "absolute";
if (!this.config.modal) {
WindowController_1.default.add(this._uid, this._popup);
}
@@ -23821,7 +27243,7 @@ var Window = /** @class */ (function () {
Window.prototype.paint = function () {
this._layout.paint();
};
- Window.prototype.fullScreen = function () {
+ Window.prototype.setFullScreen = function () {
this.setSize(window.innerWidth, window.innerHeight);
this.setPosition(window.pageXOffset, window.pageYOffset);
};
@@ -23835,10 +27257,10 @@ var Window = /** @class */ (function () {
height: oldsize.height
};
if (core_1.isDefined(width)) {
- size.width = width;
+ this.config.width = size.width = width;
}
if (core_1.isDefined(height)) {
- size.height = height;
+ this.config.height = size.height = height;
}
this._popup.style.width = size.width + "px";
this._popup.style.height = size.height + "px";
@@ -23889,17 +27311,20 @@ var Window = /** @class */ (function () {
if (!this.events.fire(types_1.WindowEvents.beforeShow, [left, top])) {
return;
}
- var height = this.config.height = this.config.height || this.config.minHeight || window.innerHeight / 2;
- var width = this.config.width = this.config.width || this.config.minWidth || window.innerWidth / 2;
- this.config.left = left = core_1.isDefined(left) ? left : (window.innerWidth - width) / 2 + window.pageXOffset;
- this.config.top = top = core_1.isDefined(top) ? top : (window.innerHeight - height) / 2 + window.pageYOffset;
+ this._popup.className = "dhx_popup dhx_widget dhx_popup--window" + (this.config.modal ? " dhx_popup--window_modal" : "") + (this.config.css ? " " + this.config.css : "");
+ this._popup.style.position = this.config.modal ? "fixed" : "absolute";
+ var _a = this._getContainerParams(), containerInnerWidth = _a.containerInnerWidth, containerInnerHeight = _a.containerInnerHeight, containerXOffset = _a.containerXOffset, containerYOffset = _a.containerYOffset;
+ var width = this.config.width = this.config.width || this.config.minWidth || containerInnerWidth / 2;
+ var height = this.config.height = this.config.height || this.config.minHeight || containerInnerHeight / 2;
+ this.config.left = left = core_1.isDefined(left) ? left : (containerInnerWidth - width) / (this.config.modal ? 2 : 2 + containerXOffset);
+ this.config.top = top = core_1.isDefined(top) ? top : (containerInnerHeight - height) / (this.config.modal ? 2 : 2 + containerYOffset);
if (this._isActive) {
this._popup.style.left = left + "px";
this._popup.style.top = top + "px";
return;
}
if (this.config.viewportOverflow) {
- WindowController_1.default.openFreeWindow();
+ WindowController_1.default.openFreeWindow(this.config.node);
}
if (this.config.modal) {
this._blockScreen();
@@ -23908,7 +27333,7 @@ var Window = /** @class */ (function () {
this._popup.style.height = height + "px";
this._popup.style.left = left + "px";
this._popup.style.top = top + "px";
- document.body.appendChild(this._popup);
+ this.config.node.appendChild(this._popup);
this._popup.focus();
this._isActive = true;
this.events.fire(types_1.WindowEvents.afterShow, []);
@@ -23918,27 +27343,33 @@ var Window = /** @class */ (function () {
return;
}
if (this.config.viewportOverflow) {
- WindowController_1.default.closeFreeWindow();
+ WindowController_1.default.closeFreeWindow(this.config.node);
}
if (this._blocker) {
- document.body.removeChild(this._blocker);
+ this.config.node.removeChild(this._blocker);
if (this.config.closable) {
Keymanager_1.keyManager.removeHotKey(null, this);
}
this._blocker = null;
}
- document.body.removeChild(this._popup);
+ this.config.node.removeChild(this._popup);
this._isActive = false;
this.events.fire(types_1.WindowEvents.afterHide, []);
};
Window.prototype.isVisible = function () {
return this._isActive;
};
+ Window.prototype.getWidget = function () {
+ return this._layout.getCell("content").getWidget();
+ };
+ Window.prototype.getContainer = function () {
+ return this.getRootView().data._container;
+ };
Window.prototype.attach = function (name, config) {
- this._layout.cell("content").attach(name, config);
+ this._layout.getCell("content").attach(name, config);
};
Window.prototype.attachHTML = function (html) {
- this._layout.cell("content").attach(function () { return dom_1.el(".dhx_window__inner-html-content", {
+ this._layout.getCell("content").attach(function () { return dom_1.el(".dhx_window__inner-html-content", {
".innerHTML": html
}); });
};
@@ -23958,6 +27389,10 @@ var Window = /** @class */ (function () {
this._layout.destructor();
this._popup = null;
};
+ // TODO: remove sute_7.0
+ Window.prototype.fullScreen = function () {
+ this.setFullScreen();
+ };
Window.prototype._initHandlers = function () {
var _this = this;
this._handlers = {
@@ -24020,7 +27455,7 @@ var Window = /** @class */ (function () {
Window.prototype._initUI = function () {
var _this = this;
var rows = [];
- var isHeader = this.config.header || this.config.title || this.config.closable;
+ var isHeader = this.config.header || this.config.title || this.config.closable || this.config.movable;
if (isHeader) {
rows.push({
id: "header",
@@ -24040,7 +27475,7 @@ var Window = /** @class */ (function () {
rows.push({ id: "resizers", gravity: false, css: "resizers" });
}
var layout = this._layout = new ts_layout_1.Layout(this._popup, {
- css: "dhx_window" + (this.config.modal ? " dhx_window--modal" : "") + (this.config.css ? " " + this.config.css : ""),
+ css: "dhx_window" + (this.config.modal ? " dhx_window--modal" : ""),
rows: rows,
on: {
click: this._handlers.setActive
@@ -24074,14 +27509,14 @@ var Window = /** @class */ (function () {
}
});
}
- layout.cell("header").attach(header);
+ layout.getCell("header").attach(header);
}
if (this.config.footer) {
var footer = this.footer = new ts_toolbar_1.Toolbar();
- layout.cell("footer").attach(footer);
+ layout.getCell("footer").attach(footer);
}
if (this.config.resizable) {
- layout.cell("resizers").attach(function () { return _this._drawResizers(); });
+ layout.getCell("resizers").attach(function () { return _this._drawResizers(); });
}
};
Window.prototype._drawResizers = function () {
@@ -24100,7 +27535,7 @@ var Window = /** @class */ (function () {
};
Window.prototype._startDrag = function (x, y) {
var _this = this;
- document.body.classList.add("dhx_window--stop_selection");
+ this.config.node.classList.add("dhx_window--stop_selection");
var deltaX = x - this._popup.offsetLeft;
var deltaY = y - this._popup.offsetTop;
var width = this._popup.offsetWidth;
@@ -24108,24 +27543,23 @@ var Window = /** @class */ (function () {
var mousemove = function (e) {
var oldposition = {
left: _this._popup.offsetLeft,
- top: _this._popup.offsetTop,
+ top: _this._popup.offsetTop
};
- var initX = window.pageXOffset;
- var initY = window.pageYOffset;
var newX = e.pageX - deltaX;
var newY = e.pageY - deltaY;
if (!_this.config.viewportOverflow) {
- if (newX < initX) {
- newX = initX;
+ var _a = _this._getContainerParams(), containerXOffset = _a.containerXOffset, containerYOffset = _a.containerYOffset, containerInnerWidth = _a.containerInnerWidth, containerInnerHeight = _a.containerInnerHeight;
+ if (newX < containerXOffset) {
+ newX = containerXOffset;
}
- else if (newX > initX + window.innerWidth - width) {
- newX = initX + window.innerWidth - width;
+ else if (newX > containerXOffset + containerInnerWidth - width) {
+ newX = containerXOffset + containerInnerWidth - width;
}
- if (newY < initY) {
- newY = initY;
+ if (newY < containerYOffset) {
+ newY = containerYOffset;
}
- else if (newY > initY + window.innerHeight - height) {
- newY = initY + window.innerHeight - height;
+ else if (newY > containerYOffset + containerInnerHeight - height) {
+ newY = containerYOffset + containerInnerHeight - height;
}
}
_this.config.left = newX;
@@ -24142,15 +27576,15 @@ var Window = /** @class */ (function () {
var mouseup = function () {
document.removeEventListener("mouseup", mouseup);
document.removeEventListener("mousemove", mousemove);
- document.body.classList.remove("dhx_window--stop_selection");
+ _this.config.node.classList.remove("dhx_window--stop_selection");
};
document.addEventListener("mouseup", mouseup);
document.addEventListener("mousemove", mousemove);
};
Window.prototype._startResize = function (resizeConfig) {
var _this = this;
- var minWidth = this.config.minWidth;
- var minHeight = this.config.minHeight;
+ var minWidth = this.config.minWidth | 100;
+ var minHeight = this.config.minHeight | 100;
var left = this._popup.offsetLeft;
var top = this._popup.offsetTop;
var width = this._popup.offsetWidth;
@@ -24182,21 +27616,22 @@ var Window = /** @class */ (function () {
resizeClassName = "dhx_window-body-pointer--right";
break;
}
- document.body.classList.add("dhx_window--stop_selection");
- document.body.classList.add(resizeClassName);
+ this.config.node.classList.add("dhx_window--stop_selection");
+ this.config.node.classList.add(resizeClassName);
var mousemove = function (e) {
+ var _a = _this._getContainerParams(), containerInnerWidth = _a.containerInnerWidth, containerInnerHeight = _a.containerInnerHeight, containerXOffset = _a.containerXOffset, containerYOffset = _a.containerYOffset;
var size = {
- width: e.pageX - left,
- height: e.pageY - top,
- left: e.pageX,
- top: e.pageY
+ width: _this._notInNode() ? (e.pageX - left) : (e.pageX - _this.config.node.offsetLeft - left),
+ height: _this._notInNode() ? (e.pageY - top) : (e.pageY - _this.config.node.offsetTop - top),
+ left: _this._notInNode() ? e.pageX : e.pageX - _this.config.node.offsetLeft,
+ top: _this._notInNode() ? e.pageY : e.pageY - _this.config.node.offsetTop
};
if (resizeConfig.right) {
if (size.width < minWidth) {
size.width = minWidth;
}
- else if (size.width > window.pageXOffset + window.innerWidth - left) {
- size.width = window.pageXOffset + window.innerWidth - left;
+ else if (size.width > containerXOffset + containerInnerWidth - left) {
+ size.width = containerXOffset + containerInnerWidth - left;
}
_this._popup.style.width = size.width + "px";
}
@@ -24204,8 +27639,8 @@ var Window = /** @class */ (function () {
if (size.height < minHeight) {
size.height = minHeight;
}
- else if (size.height > window.pageYOffset + window.innerHeight - top) {
- size.height = window.pageYOffset + window.innerHeight - top;
+ else if (size.height > containerYOffset + containerInnerHeight - top) {
+ size.height = containerYOffset + containerInnerHeight - top;
}
_this._popup.style.height = size.height + "px";
}
@@ -24219,8 +27654,8 @@ var Window = /** @class */ (function () {
_this._popup.style.width = size.width + "px";
}
if (resizeConfig.top) {
- if (size.top < window.pageYOffset) {
- size.top = window.pageYOffset;
+ if (size.top < containerYOffset) {
+ size.top = containerYOffset;
}
else if (top + height - size.top < minHeight) {
size.top = top + height - minHeight;
@@ -24237,8 +27672,8 @@ var Window = /** @class */ (function () {
var mouseup = function () {
document.removeEventListener("mouseup", mouseup);
document.removeEventListener("mousemove", mousemove);
- document.body.classList.remove("dhx_window--stop_selection");
- document.body.classList.remove(resizeClassName);
+ _this.config.node.classList.remove("dhx_window--stop_selection");
+ _this.config.node.classList.remove(resizeClassName);
};
document.addEventListener("mouseup", mouseup);
document.addEventListener("mousemove", mousemove);
@@ -24247,21 +27682,33 @@ var Window = /** @class */ (function () {
var _this = this;
var blocker = document.createElement("div");
blocker.className = "dhx_window__overlay";
- document.body.appendChild(blocker);
+ this.config.node.appendChild(blocker);
this._blocker = blocker;
if (this.config.closable) {
blocker.addEventListener("click", function () { return _this.hide(); });
Keymanager_1.keyManager.addHotKey("escape", function () { return _this.hide(); }, this);
}
};
+ Window.prototype._notInNode = function () {
+ return this.config.node === document.body || this.config.modal;
+ };
+ Window.prototype._getContainerParams = function () {
+ var notInNode = this._notInNode();
+ return {
+ containerInnerWidth: notInNode ? window.innerWidth : this.config.node.offsetWidth,
+ containerInnerHeight: notInNode ? window.innerHeight : this.config.node.offsetHeight,
+ containerXOffset: notInNode ? window.pageXOffset : this.config.node.scrollLeft,
+ containerYOffset: notInNode ? window.pageYOffset : this.config.node.scrollTop
+ };
+ };
return Window;
}());
exports.Window = Window;
-/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(14)))
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(12)))
/***/ }),
-/* 203 */
+/* 212 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -24280,7 +27727,7 @@ var WindowEvents;
/***/ }),
-/* 204 */
+/* 213 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@@ -24311,16 +27758,16 @@ exports.default = {
popup.classList.add("dhx_popup--window_active");
}
},
- openFreeWindow: function () {
+ openFreeWindow: function (node) {
if (this.freeCount === 0) {
- document.body.classList.add("dhx_window--no-scroll");
+ node.classList.add("dhx_window--no-scroll");
}
this.freeCount++;
},
- closeFreeWindow: function () {
+ closeFreeWindow: function (node) {
this.freeCount--;
if (this.freeCount === 0) {
- document.body.classList.remove("dhx_window--no-scroll");
+ node.classList.remove("dhx_window--no-scroll");
}
}
};
diff --git a/codebase/suite.min.css b/codebase/suite.min.css
index 8e6baf6..e28a5af 100644
--- a/codebase/suite.min.css
+++ b/codebase/suite.min.css
@@ -1 +1 @@
-.dhx_checkbox__input,.dhx_radiobutton__input,.dhx_simplevault__input,.dhx_visually-hidden{position:absolute;overflow:hidden;clip:rect(0 0 0 0);height:1px;width:1px;margin:-1px;padding:0;border:0}.dhx_no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:-webkit-grab;cursor:grab}.dhx_no-select:not(.dhx_no-select--resize):not(.dhx_no-select--pointer) *{cursor:-webkit-grab!important;cursor:grab!important}.dhx_no-select--pointer{cursor:pointer}.dhx_no-select--pointer,.dhx_no-select--resize{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx-resize-observer{position:absolute;left:0;top:-100%;width:100%;height:100%;margin:1px 0 0;border:none;opacity:0;visibility:hidden;pointer-events:none}.dhx_widget,.dhx_widget *{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;-webkit-font-feature-settings:"liga";font-feature-settings:"liga"}.dhx_widget,.dhx_widget *,.dhx_widget:after,.dhx_widget :after,.dhx_widget:before,.dhx_widget :before{box-sizing:border-box}body{margin:0}.dhx_widget{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:400;font-size:14px;line-height:20px;color:rgba(0,0,0,.7)}.dhx_widget--bordered{border:1px solid #e4e4e4}.dhx_widget--border_top{border-top:1px solid #e4e4e4}.dhx_widget--border_bottom{border-bottom:1px solid #e4e4e4}.dhx_widget--border_left{border-left:1px solid #e4e4e4}.dhx_widget--border_right{border-right:1px solid #e4e4e4}.dhx_widget--border-shadow{border:0;box-shadow:0 2px 4px rgba(0,0,0,.15)}.dhx_widget--no-border{border:0}.dhx_widget--no-border_top{border-top:0}.dhx_widget--no-border_bottom{border-bottom:0}.dhx_widget--no-border_left{border-left:0}.dhx_widget--no-border_right{border-right:0}.dhx_widget--bg_white{background-color:#fff}.dhx_widget--bg_gray{background-color:#f7f7f7}.dhx_drag-ghost *{box-sizing:border-box}@font-face{font-family:Roboto;src:url(fonts/roboto-regular-webfont.woff2) format("woff2"),url(fonts/roboto-regular-webfont.woff) format("woff");font-weight:400;font-style:normal;font-display:fallback}@font-face{font-family:Roboto;src:url(fonts/roboto-medium-webfont.woff2) format("woff2"),url(fonts/roboto-medium-webfont.woff) format("woff");font-weight:500;font-style:normal;font-display:fallback}@font-face{font-family:Roboto;src:url(fonts/roboto-bold-webfont.woff2) format("woff2"),url(fonts/roboto-bold-webfont.woff) format("woff");font-weight:700;font-style:normal;font-display:fallback}@font-face{font-family:dhxicons;src:url(data:font/woff2;base64,d09GMgABAAAAAA+EAAsAAAAAKxwAAA80AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGVgCLJgq1OKpEATYCJAOCPAuBIAAEIAWEFgeJZBtDJGXGHGwcGLxxQxNRuWnK/v86eWPSoR+yYESCi2GuRUj6Wy5PzTuXOX/E6qyOXTX3wo0nvqLuRlTQvNA38ZPMjX+oI32bzXWQZCIU7iFSCmCJK1zBilzUmW/x79RGZK0lxXpynNRhBQrsWAGXnVoOoV8BScdujpJDSA+wcO4Rku/4i8kD7NZ0kpb6ANhUNdspTfbXpmGhU8bcnuzfdogEJcYgwAdBxf4IUFUVjOktZc+r39WlOTKxiaVHKDzggDrmc7a1PUsDC0RB3Pvy/mKHAYPSGgbft3TCmMbqeDMLKeb/ljmbzUuWWmVdmnE4NEKhEepmdm4vfyYze7OpV1Mpm9A2RyuX0G6H3l1RrSiWUquqwsMpkDgkD2XRlmNs/fcGtwIWETYRERsV+0fd/cYAe5G6f3/oTCHwgD3bUDyEnw943h+PtH4laHtNJgPa8yk+Wz7OV8BFApz4n9+GwsCCMvG7L2/JNYhXhxVgy5bzu8JmNsHVnpPxr7z6m/fhOqCdhqWHYddLAtTlcvXYkrVfg0EkkSl8VMRPozPkCWxfY7v9AYRg5Ovf8TCcICmaYTleECVZUTXdMC3bcT0/CKM4SbO8KKu6aTWZK8GV1KxFqzbtOnTq0g1jje8egfkJsyeoR6k+NaCG1IgaUxNqSs2oObWgltSKWlMbakvtqD11oEAKomAKoVAKo3CKoEiKomiKoViKo3hKoERKomRKoVRKo3TKoEzKomzKoVzKo3wqoEIqomIqoVIqo3KqoEqqomqqoVrqSJ2oM3WhrtSNulMP6rmJb79gE2y/YRNsf2ATbH9hE2x3MHLFM3v6Ad+2r3D0hecW74uLSSQ3g+iA8JyHqbCsXuY70ttUXqSDQMBnybIGpsUqW8soE5SVa26RMyNlJg9OZlqxD6kRi1tskkSYg5xdTac+OIipOjKzSJIQUmTM1151zjpqZlcaXzp6Yxhbzh1CmU1lgoBMHqIMUNIxJELE8wlVZxrI2F6dbHsao8HAQgOXIVlRYWRZFU6btIhWSu3TUZhr7CG996d/EBMywN1szT++jF9/xt/fp2+/QoME/BXUfwRutAfGqy/UFHQ4Ah3zvD6nMcc6FRXqI0l/pF8kj5S2KURF2Sjtnz/Fots+PqtV6J1+qd/QmcN6KsCYl0PEh4yFeHqjr+mruqn39ZGk6oWY+hWxVKBwEamX6EA9gL6rfp79KnqBFz5noEtCRkICSmrtMDv07KYSbnW+OATF9wgQ3uxce+0GALmoMOZc522vTfeiGwnXbG/2nbfNcd9611yNdVNQ0PrX5BAPfh2//Jh/fZu+/16EXdnDkO0RN/eQYddgUismSgp8LvNgTSftoEOZir5YSYtqpEUmIbjIsZEQMAYS9luDPL+ZLot5THPZg9KbwY6nugxyn1OZrfXCbWjzKLfSbFYmH2q8qzm6dw8Up0I72g6gCQLL1KkmyX85+liNXcZ89Wr18o9mnvOgh1A8p9YoN6Wt+Y+xjP8NanvrlcbLLLWuvwU8rLerU2hr5IB6EobGttFhQSuEDHzMSEsIbnGkG1AQp5pX5ZiBYJlXUupmL1FgIKW54mFZBQiDtpu74+FvE9hZbI01E+3Wmh+ZX40hhaS50h732vPdEW3SqG2O3tdpWF5cO2Fn5bMAvLB1aZlxCPADkCeErUJNTi/Yw0ovAhoOSXQGup6oOzDEGO+u6T51Yu12Cv1o8vKcjxm6A4x9zHVsXSo6hz2G2xpn+nsWUqJSzHOu1ZcJ2WvlmFVKuW3D8qCbjLQ9ihUfezaRgEdaXCQ9ytydc9ADRtqM5fucHDY0yeO5jFCxP32SsXoN3eCfpMuqpODm6j6qe6/ibinNVgr2tWaoTyLTyDGH0vm1Rs1ZbLIyDYMbcWSFWaWIQTyNvsZW0jlKpExpTSIDWoebcfMa4iUZRlFupUNLVIfIoo6WAhYWAbQ7ZCDk5W82WAb0HXgyWjj2Mx5DEkBCQWIHaMxmKzIIQh20iSH15abMwlJ2ZGRk4KMfUtmh6FnJi61oL1SEnNDpg5RLaf4hWmtUYQxandIOVLfUF5OsSx0ktzuKNXQcxhngBj5uInPSgwtA2FLtGJXAaK6gix0sJ7MQFkOgodrROq0tXEttIkKYmZtFcdmwCxmXSLDDs9Oscc6wGK5jLzKjnLlljumqBvW9fpgvFgO2Gn+ql183Tdre1vSbuaO9G6XXPdW92XW4v6EI/J3JEVo1MwNTFVHUnCZ801lTmMYRns/Ri68rvK64kAWja8AKUGkpBaxEpU/5WyWOv4v3IirxwK9/DbeIlkxEVlK/FK5fIF6B5P/fC+criUJGrJYdOSpmYJbv3Xh8XJO5/rW6Qqg/LVc/KixwbUF0ZDJVFMSqStNynBgSQqJCCEstrJX4NLnIA3GVtIpP2KOuyEMUIFGGNoyEm9SHC4o0RxwE8Qas4nUlVuO+EB4+l5qxkExg07FkyZViecFAIsf5jwc6BmLK6NgYOiOOd/gnn/D7xgORVaG450M2GOSeh2xlZVBUVvpGyHw5//vntOe8H2TrUUtWZ3qqoLimM4yp89E4LegM+wqKJ5ySzfLbPuhIcuzBbsmVbOqJRC5KDnmlmd5FG52QE6AYoaMn8LAdkyhywHxEvUtkqdVjYQ7MiVFsNwvja7CHEO9zLNVy3Tw3y+8pY6lvZINqMFuFb14WlHVKkEvsXiXe5L+4zT992Lqso3OH6T/5Zbe5earyWScevWz6an7aNWTjH2WdRqBH2aC1Xayxlk3mjs7OHeX+s+IuL+etGYGEl9fzlJOf7yT5vpchYdR8yZXitDDyM149L/y3tNR7MHMUjfPt8EdNR+KloRCOj1DkLmqlxxgxdJgzo2Jhr5Rdyh13njsoRjG2J6zCSbVx32xDH2il1j/G0bg/OFFIipBsRJDm5XrQhL6AEZgCzi8Gu2/RSFXWS+qwWhQr9Q3rzeioBerzFRdfqz5TVbXaSQ7XMcXilkyDFSy/fPip+f4ZRR3++bZlGP5PdcP2zPqA7WnjWvyhZbPaOL8OxxvpPgoBCVyMTaQNUZ6eBBL3VcdNGyGDUc8MZjDM6Nbg+9SDi1Rbs32e4fm4R110EP8YNQ00cn9QnPCLwYg9wwH5NKMKc89c2y4nJF0nQ/Jdpkb687k40FQtSAbl6b7LfPLq09RoLc9kbtW4j7CvcYSvp7XMExhqG0rjLlARolV1CkmWU1XjLomH0qyiM6Nm+YbChPsG7FXmjLnfPLgosOigef8Yi+F7JQa13Z071626ybnwQm/8eIcrMpyhl09nhMOSUDVWnq7s/3Lyd/yhzoTQOqWKScgIUqUEzvjHSStjpZJKvlXtX+ePvhLVPmar0bjcPirEpvZQJe9VJ/8572P0gHrvZlWbB8nhjoS12uu9BDbfu169ycyYB8wR3Oc4aEz4cDzV7pKJiW5Wppcd2TGx1+bCPzYRG/eHHGVEMEYcvdX5REe8xX87D4OlYHS6NvoTkDACCfu+/9w0H/o+d+ya8K2N74RTOyaGwwSzomUgwiLOIuv5yA7Z98Wmem2YsQgqCd8/PtrqU29TYPnMC8f/UziUralBojI5j0ieQvvX8sQmmpeskS+xjB3Pb2Vbn99BgzcHbx5keChCkRC1UsvUEirhTGxvTW+albL7qPbYhH8Mg27jYc4vjRHmuVONJlwzwke8KlQsBsJGMZv9QbVcGvMbs2DkujAaqaWEGez40G0bYw6Vug0Wj2TM96bjBq9s0VMgSGH+2DDBoqImwzxNA2DS06lsTXV26GfVC508czl+fzlpWcmn2duEp12Vn9k/5rngN0XqAaN1rxIgQ1mr1fWLskAPmocLRJ+Xt0HVSPW6k58gNA/H60jnoPP/gAVkIACkWnGYB60gxbFEx9tBxdOS916tmN1rNlp5HEHrvZWphYoXQichMGqqVx+mwbR7KxVfUBZf+s6X/HuOc4/35pnqxULbeKspyWPnC9DbZIvzVhOe+n8au11F0qQWoN8Wv8t5SmfZaPci/5J3ewG04YodLUGbywnwWh3vR71cxHisTD6TWyqrL3p1oo4v1Kl4n1kuz7LF79pquSwEfKFthNttfcdTUNzrb8qDJ3SppeD/f3YxPDR0z03LzZm/ke7W/T7oXrCJV2Dp/5C1E4n7+QqN9X9mFrZ70D83ZYLzMt9HGADcDRqZAOSAUwzPIlv439GZAREq6AnSnZugycWjDAU6KgwfCBMMDRMRvbWOfCyFBEH2QwDDji9DRAD7DQkM52py8dWGgkLcavjA8LShYR7efiwdY4QJqsK0T164/sSxEeje4gP+otY0ob/d3nx+jUdkVDAM/XDo6zzemcU+quT+QdiQSPqi8oTetpNZub++jqq/8NZLXoRpn7xw/YljI1BNm+/uX1TEEhx9f7u9MdAeGRuNCIYhNhxYcJ3HO7PoXSiq5P4h3dyGRHJmRX2hJ/S2nVK45f6aqKIp25bM87xcSu/G6f8CBoSFg0dA/JfG/1KgKFGhRoMW3UkgBCMohhMkRTMsxwuiJCuqphumZTuu5wdhFCdplhdlVTft8XS+XG/3x/P1/ny739+OiyMQqjmf1BNuQFWenRciKBW71+vivgCH84GaOonxWMiNT3NjDqDOJMDhxE/od+/Zjw2ydwMB75w0o8QYNlMG3WEoSPUCoHtffFZhF+SZd0MJo61n0TROdrmevZW1J/FlsBOAjlVUzJ+dvNx0E5DQ0EVRnFFPtzd+EcSqm0TTf2EDWq+RroUlD3RuwfVIIJyiQkU9wwM2HI44vKb3FVRKQXUzaAK2q5gIndQgat0zXCHYHH1mEhMK58lSkE93134TRTOYA0ojO48c1/9Kxs33vz6ZrcCvjjBkYcX2eCFRV56CJMNwb2uZLAPhi8QVXMTVAj7xWEDGvyaGzm3+V5+4yvzt4RbVNO3QJpU2Ti/3TY0Danb864flynClj8sgZpIjSLNX4RNc1qS8jI29JWFHTnkzIZVutlo7+SZxYmwSlt2jHR5eCrFLhHvR133Qs26+YeLxLMPIKR4uMnIbheSOL+wSzAs7O164lYucuFU3yP4E3cMZt4ya/GlB9omuCmmIbfT4WX9WNDXvoseKQToVA8PcpnZV1Cxp8dFgIOy2hpbZZSAHvK6Pb0KPpJhlxk4uffuCp6yZ5DAQDfVlCIlvX3zMc9w4yPvGw/BAl0VxMsxzMkMjWwAA) format("woff2"),url(data:font/woff;base64,d09GRgABAAAAABQQAAsAAAAAKxwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADsAAABUIIslek9TLzIAAAFEAAAAPQAAAFY7OUfdY21hcAAAAYQAAAGLAAAFpvsm/mxnbHlmAAADEAAADCkAABq4n2FV0mhlYWQAAA88AAAALAAAADYSF+6RaGhlYQAAD2gAAAAYAAAAJAC+ALBobXR4AAAPgAAAABAAAAE8HUAAAGxvY2EAAA+QAAAAoAAAAKAaAyDabWF4cAAAEDAAAAAfAAAAIAFxAORuYW1lAAAQUAAAASoAAAIWkIbJG3Bvc3QAABF8AAACkwAABOR3AB9JeJxjYGRgYOBiMGCwY2BycfMJYeDLSSzJY5BiYGGAAJA8MpsxJzM9kYEDxgPKsYBpDiBmg4gCACY7BUgAeJxjYGSIZ5zAwMrAwMDP4AwkeaG0HgMLgwQDAxMDKzMDVhCQ5prC4PCR8aMfQwKQywEmGRgYQQQA9HcGlQAAAHic7dRVrtxAAAXRmsw8ZmZmZmbmWW8+sqB8RfIKXlxzs4xYOl1yyyR1y0ATUC1tlmpQ+UMFj9/lbKUxX6W9MV/jV+OamvNF/fu7HCuO5XmtMf4or62VT2ymhVbayvs66KSLbnropY9+BhhkiGFGGGWMcSaYZIppZphljnkWWGSJZVZYZY11Nsr3b7HNDrvssc8BhxxxzAmnnHHOBZdccc0Nt9xxzwOPPPHMC6+88c4Hn3xRLz+umf9Hp0P157+zuusXjRX9EdhquDOKWrjGRVO4a4rmwLYEtjWwbYFtD3dT0RHYzvDriq7Adge2J7C9ge0LbH9gBwI7GNihwA4HdiSwo4EdC+x4YCcCOxnYqcBOB3YmsLOBnQvsfGAXArsY2KXALgd2JbCrgV0L7HpgNwK7Gf4Biq3Abgd2J7C7gd0L7H5gDwJ7GNijwB4H9iSwp4E9C+x5YC8CexnYq8BeB/YmsLeBvQvsfWAfAvsY2KfAPgf2JbCvgX0L7HtgPwL7GdivwNaD+l827M5UAHicjVm9cyRHFe+env6Yzx2tZnbmfGvdsitrF0vWrbWf5g6djFVYtlUu2cjUqepMUSQEJAQkBCQEJAQkBCQEJASEEEJKSsq/w+91z+zOnnRXzE5/d79+/fr1772eZYLR8xI/wTTLGVuNFrMCYTxMeX7Az875/JTPDR4/6kZRt0fRSTUx8zqPCBQ8S+cWP8P2QEUvRsVsMVrpYqbLFbJfdk0/7V6mXdU1t920b7pDg3zavz8Ww8Y0/gUnEiAwsaNOLYXYjZpYEox17dgf40dj32EjdsIW7Jz9hP2c/ZL9mv2W/Z79kf2Z/ZX9nf0TtIcq750t50flvcz4zU1606ccuez3ed24aNWsxpsRK4qoUN7LjN9cM2syRZ17l+e9DamYc+5xHnme53te6krv7lR+z5U+cKVBh9tM5Anf9yNX6MiPv+t6dVwvbyc5cMmp63Lskj2XcA9kfCFcl/epyuMp5X2wY0snO5XeTulpx87DIyICpmwB7PzA9Vq6XtlOMtih3neJewfEDGYQXdeHseoNuvApu2F37GfsF+xX7Dfsd+wP7E/sL+xv7B/sX+zf7D/svy290Pf3/M2asrpX85bh20yzoVsluU/5Lfpzb4r7zG/6rO2WkXzo6TZbbUtps6u28h1XSh5SijoZNsRcZT18Rw+Pd2geuNKzHY2NHiJ9bin7mV/zaXd06ErThxRt+JCa1CXHpt/bGXC5o0KTh2jWA7qu5D1Emjm8/Ia9snj5BJoDtCyBl4sRoMoGd2yfccKE+VE/z6frtW8GxhdSijWidZ6d5ISorkgR4zUGfs4koed4Va5upz2VvX+JeO94g5HfsA7bJ5TenUVj6uuGGKLbLWmzXm/wmXBeEmauaIJyB+MnuUoPVH8L8v1cdZ6oagfmW3xIVjR0Fq9x40ht2HGE8tZqWb3eK5xOWi9o6PFBt6uq6nx/H3Hdfo4e0s4y1qVrcb3q9gvX/oKDDT28336FHrYd2Kxdi+vFtnYvZo/sPjopOImszg54nvIhLN85Lwswt5gGaRCkXYqCrYySriiyuhrR1VZYeRHJpGrJPbZyb0u8HMPUltMtNVWo7sstiY+Sqtja1jtLoyJO28xpSAYWFgtctSg9SlPVvC2Keau62YNr/CKS8ZbSter1mveHrTx6i3rMLQuw/+9iXLPto9JuIzE0xoaMNDkAlRQDIaehDIwy7s393E/XOanCNG8q8U5835h6rURfW19g5AjpzSzXqR0/d4RvMGhuSW14+4p9VOM/W82XZ71cDY/G9zIXUkm81U4yFRRLsZM0dD8C5YauozFf3s88SGLw0GSstVbBQkISOD4WQcp8vV5nVdbPzGFV9bfn7qU9/z06Mb28w9XwKT+av+DLM132ziD0j3PPe08mMvW8Y0+fpp720v2vcyTvSUmlY+8sFSLdZ76l9y3mJjx4wp4SzcX8aKTLgmRdKtKv8ROu9AGfnZFWlKR3ulyuTvloiPRpomVXaSmUDEKZB14oZdUJgkR+OpKh5FHoo2xMIJ4nXGqhhNTKk2HwOPBMnOwJdMxQFLGJUDJWHZ2sX7EvIeuCDXYss1V4p/wwcODrjHiZSq1DrSWmlGFIkexU4OSAoufUFOpB3YLobC9J9ig0Mv0GP2FlSlg2Php2OB2EYmbP1HLeB3SXIRc80Uod7h9KZRKeo7IIYS6NkqhTSidcbPm/wU4lLGOl5X8LjSA80rMCJ2RVWa0VsvJ7vaxv4ih6KcWFraxUL+mbKIo3+07+S3If9zX56rP1oCZlpv18Q2R6kW/5uQUSkr2KnJaNcTI10mo6ja9OsuzEwBxNDdvg8rfQ9cLOdgQ8X0IdZme9YlSsZjrl189pgsr0hbwMLgPuZ252KSaDoRANjZfgeu++pTrmE7t0y+Xgxg7FSDIKcnMPcLw6S0f2FUG30vjqKptMsia+Nc3zFhrFawE0plMX/q/xD/AA8VVN3KYhatvzFSh0LEZinwggxjY+5uU5X5AknJu/TOGG+FmMyIt7wg/0o74K5DCGD3OIID0ldLAOIt3az58CMRIGaFgp4IA9IU85aSxUV+VPOMHBcn7Nue8Ba/xn+/v6UAaAB3Jyet4Z58qXgCEV7e/7hyoouEQ13g0ufY5ZPMIlWM+xnq1m5Wx8FAZJL/AfyaA3ffTocB3H65Ytv7H6BbB2V7/ZYhKk0QDhJh7EeKmXX+vG17V8C6eRNIB8KD0bWyGvRpOpfbIwTUMKJzhxE2PSdEKma4Odl0xBDqCxsjdFl6xjU8UTivpZVWUI9/rTLAuos00mJq7MCUWXdf+sfXZukCNNcAgN5Zkt3PmBDpg8yw+zbGKwwjh+HjO2i+u9ehQsPoxXQUbCpkCx9bqvIxWa2IQqimECIz0YkCkcDFDfOvu34Dm0WkS2Aci0uIhNnA0uTqD+VuO2uPPKrm/P6izYHLcGDWhQ5kbmGXhGsKNfn8eOfMqbIYOLOebJ3DyNHbplQ3Zq0a0gGQIWRqfwwg74OX/BsZWrc1iNXqnJy9k6Fmc+zALusaH2lae4koLzOEFZ+RplKGIUNe8XPgxDrg0XvhI+tDY3sTY+CmLY6tbSKfqGkeG8LWqZt32t161HMbOeQIenWCdMqD2RJzsfOaKWx6cDg2PEfeEbDzfgoDLrrVd1tXUA14EGnEmPDL9AT4mTe4+/7zj+yl2W2syilXh50OWERX1u5g/6nM8bPX/FPoP9JE+FfBICnVXj2sJmOgXuO98kF3EnAgx0YrGXmYnzTTIdqCiNVKChI7Vu0b36gH3Ivm8RAXua8lNv+YLnBDjW+4BPOj7lC2z9gQdUmpP1tOa0XJ6VB1yP5+OjuZGfyP3ID0MjsLHAJx36ocI1nguR71YnMoPZ9YWnhfcFDQshehOGPnjkPnSIxnFh/Mev1SdKg0Ik4ZuQVW7s/C0ksoRMyFUbO7+JNGDDp8pXYNQ5VtSsmpUtifFjMMiVSuVepKTnYWP9xE+9TR14qSt9fuwJj6tMJSraI/j1AOoiFSFU/YFa4YkaQz+EjgT0BWxo1fKck0tvgvTGOHVs1vI1VlNgN+xdoIBTNqMryliN6ktB4zMd6VgrLnKVc3hBsaY3ijpheItcqDkawL+OU5yssEMtWx/gkq1pNhxbXGHXed7Ur9FC9bpE5eW2/rmrhx5M8ry/ra/pQGdQeUj12zukcD4N4OI1L+FyMjGb+yOg/4G74zWbk2bS6Ov1+mRjd+8wo4RsZvZLIhykFZncRW1gyBBjIjWCP0OXZnJutrUwyZnJLqQguMsyIenSP8AlxhaQ9MkIwddxt3dFJluZjCrQiKTlUwYMdmpFZpl0yzqU4x8B6qDSpvOic9K5RA4upO4MUWhj60tYG7rn2e8JYBrndQceLsEj3rz1PZbK2WHrqr57t2tRuq5MhfeEomqLnWSrYqDTge09Kxvc0JvNcagxP4LL5NcfdAaDeC11Ns30bZa7DyT9vNKSTKjUGz/w0kqCbg0Kt3h+VgLfPlepSXt+KLJekB4upcwSEcYmPdzgOdkyCe73YGmghcvVSOliuRqr1dFY90rYp9SDSMoFVH65Ki6l4obvB1rJ0hqWsGsSrRMTRFGAiQPZMTiq/mPqIXvdmAdplgbceEk38Xbs/Y6vvKh95Zg8xapqXGVZr+0O+0z2trCo3ijxglSrJNcCQVsT7NwGe1c9NH16yBTjdR77zQAyyyDKrE+V1o+QNZbfWS+0ZI/ZmHhqVNX55iXxh0A+fTneXsEzwnfhInreCVXYvM0lAdFm2kGrfbMHn2GFzdxvnXlg7yAuouehGer13EHCBXtk7eAH9P2gJmjl0wSSeEkBooN/QT671WBH12T2d2UpT7LcyjG2CNF3Tng/to8T8VaWd9ZHfYz77sjKciMt3PS2CwMIARwaDhCOwq1w1tuVufnxnrTae9QY28g+G1nesY9bsnzLbC8fmGFCFRaCMvu8drag39iFMU5siXP2oUlUOkqDYk8Efu8CN//D1MShSLIGYz6x93731adcPbWfx8ppIrtdmdi4TFS3q96zcT3mW2DaxPpW9oMHznGvBEKknMAVxuaUMvSJWtt/RJ7BgI3sXtKfSXpWhWEUiKTb8XSIu2IaS/IBfTgfHiDUXuHhZJGHGlXpfsQ1OI7iQBkV4jCbyODajXb423RW/wcRdhWoAAAAeJxjYGRgYADi0+1bV8bz23xl4GZIAIow3PSLyEKmGWLB4hwMTCAOAC+9CVZ4nGNgZGBgSGBggJOxDIwMqMAfAByOAW94nGNgAIKEUUwOBgDyex1BAAAAAAAkAEIAYAFmApgCxALUAvQDGAM8A0wDXANsA3wDsAPSA/4EGARIBGYEkgS+BNQE/AVIBX4FqAXQBfAGCAYqBkYGaAaIBqoG2AcKByIHOAdcB3QHjgeqB84H5AgCCBgIYgiyCOgJEglyCcQJ2AoKChYKIgouCjoKWgpmCqgKxgrsCwALLgtKC4YLnAvODAwMNgx0DLIM3Az4DRINXHicY2BkYGDwZ7jBIMEAAkxAzAWEDAz/wXwGACffAlYAeJxljUtuwjAURW/4tQWpRarUDutRB1QKnyELgDkDZh2ExIGgJI4cg2DWFXQJXUJXUXUFXRA36WMCtuR33vG1H4A+fuGhWh5u67NaDdyw++cm6UG4RX4WbqOHF+EO/UC4izdMhHt4xDt/8Fp3NH0Uwg3c40O4Sf8p3CJ/CbfxhG/hDv2PcBdL/An38OoNos0hCU1eLvR6lwb23J7rUtsyMbka+6Ozmutc28DpSK2OqtyvJ87FKrYmUzOTO52mRhXWbHXo/I1zxXQ4jMX7ockQYYMDEoQwyFFiAY01dkgRwF7dXvZLpi1rUvcKY/gYXaXmTOV1MoBjjZhc4cizxJ7TJrQOMfuYGYOMNKvfVumU29AU9d2WJqT3OaN6VWCKIXd8kffr6dkJPZVeqAAAeJx9U4d22jAU5SaMEAwhIU2T7r3VvffebfoLwn6ADrLkCpmQfn0ljyT0tOUc7Hfv01v3yZWFyv9/21jAIqqooY4GltDEMloI0EYHK+hiFWvoYR2HsIHD2MQWjuAojuE4TuAkTuE0zuAszuE8LuAiLuEyruAqroHhOm7gJm7hNu7gLu7hPh7gIR7hMZ7gKZ7hOV7gJV7hNd7gLd7hPT7gIz7hM77gK77hO7bxoxJwScayUJhQUocbo3dYqKXkyYSCHNIs4Spa6svUMD0YVL3RCV2cirhhVkd8txaOKBxvZM++nrG+5GrMdGqlULRPx9yMKSqKrfxBBw5PjVYs0jtqD0ga2HYJjBiO7HKJ0qQdSh3u1allKHDPCRU1ahnoRCTJEhtoQ1My9RyuRNpO2Egb8Usry2U7w85vhRtuyXchNY/qZPiETIN2yU+/6N5r7h8ZnSRk2JQbwZVtDYQkr5Q2NsjsoqmOA/bgOS0jB3VCqp7bPddWzC3jUgwVC0m546tznNdgbY7JhGgVVN+lKQPc6rRhrqacZyzNbLtghBtWhGVZ3ySbJDwUalgW+ZlqJ1em3eoc5dteL5iJNWJMdmR0Ohx1CzJVbiKf8lhBlHoWjfe1tTr+hzOffevvTquT7iBVoRVu9YWavRHJpFh1KXhPqDyBP1dwi2Pa7TpjXAb6TQYHiYZftVOgEfOhEoPdZkwqzW5ibvkVLGdWJn0jM9OkGQuVTtxUs1pmNVQakxFh3ekUCtlKpPPm/VW93UiM8DNWDUU6MNpyJ2qWMZi4m1N2s2l5303kVpfGimVJ+uRvb2/OYSjWUwoOcus58J9tFsYHrlp3n8xDmntE1S1Mb6TKX0UWuwoHPojalKfSViq/AaHImLcA) format("woff")}.dxi:before{font-family:dhxicons!important;font-style:normal;font-weight:400!important;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dxi.dxi-alert-circle:before{content:"\F101"}.dxi.dxi-arrow-collapse:before{content:"\F102"}.dxi.dxi-arrow-expand:before{content:"\F103"}.dxi.dxi-blur-off:before{content:"\F104"}.dxi.dxi-blur:before{content:"\F105"}.dxi.dxi-calendar-today:before{content:"\F106"}.dxi.dxi-check:before{content:"\F107"}.dxi.dxi-checkbox-blank-outline:before{content:"\F108"}.dxi.dxi-checkbox-marked-circle:before{content:"\F109"}.dxi.dxi-checkbox-marked:before{content:"\F10A"}.dxi.dxi-chevron-down:before{content:"\F10B"}.dxi.dxi-chevron-left:before{content:"\F10C"}.dxi.dxi-chevron-right:before{content:"\F10D"}.dxi.dxi-chevron-up:before{content:"\F10E"}.dxi.dxi-clock-outline:before{content:"\F10F"}.dxi.dxi-clock:before{content:"\F110"}.dxi.dxi-close-circle:before{content:"\F111"}.dxi.dxi-close:before{content:"\F112"}.dxi.dxi-delete-forever:before{content:"\F113"}.dxi.dxi-delete:before{content:"\F114"}.dxi.dxi-dots-horizontal:before{content:"\F115"}.dxi.dxi-dots-vertical:before{content:"\F116"}.dxi.dxi-download:before{content:"\F117"}.dxi.dxi-eraser:before{content:"\F118"}.dxi.dxi-eye-off:before{content:"\F119"}.dxi.dxi-eye:before{content:"\F11A"}.dxi.dxi-eyedropper-variant:before{content:"\F11B"}.dxi.dxi-file-export:before{content:"\F11C"}.dxi.dxi-file-outline:before{content:"\F11D"}.dxi.dxi-filter-variant:before{content:"\F11E"}.dxi.dxi-folder-open:before{content:"\F11F"}.dxi.dxi-folder:before{content:"\F120"}.dxi.dxi-format-align-center:before{content:"\F121"}.dxi.dxi-format-align-left:before{content:"\F122"}.dxi.dxi-format-align-right:before{content:"\F123"}.dxi.dxi-format-bold:before{content:"\F124"}.dxi.dxi-format-color-fill:before{content:"\F125"}.dxi.dxi-format-color-text:before{content:"\F126"}.dxi.dxi-format-italic:before{content:"\F127"}.dxi.dxi-format-line-spacing:before{content:"\F128"}.dxi.dxi-format-quote-close:before{content:"\F129"}.dxi.dxi-format-quote-open:before{content:"\F12A"}.dxi.dxi-format-strikethrough:before{content:"\F12B"}.dxi.dxi-format-underline:before{content:"\F12C"}.dxi.dxi-format-vertical-align-bottom:before{content:"\F12D"}.dxi.dxi-format-vertical-align-center:before{content:"\F12E"}.dxi.dxi-format-vertical-align-top:before{content:"\F12F"}.dxi.dxi-function-variant:before{content:"\F130"}.dxi.dxi-help-circle-outline:before{content:"\F131"}.dxi.dxi-information-outline:before{content:"\F132"}.dxi.dxi-key:before{content:"\F133"}.dxi.dxi-link-variant-off:before{content:"\F134"}.dxi.dxi-link-variant:before{content:"\F135"}.dxi.dxi-loading:before{content:"\F136"}.dxi.dxi-magnify:before{content:"\F137"}.dxi.dxi-menu-down:before{content:"\F138"}.dxi.dxi-menu-left:before{content:"\F139"}.dxi.dxi-menu-right:before{content:"\F13A"}.dxi.dxi-menu-up:before{content:"\F13B"}.dxi.dxi-minus-box:before{content:"\F13C"}.dxi.dxi-minus:before{content:"\F13D"}.dxi.dxi-numeric:before{content:"\F13E"}.dxi.dxi-pencil:before{content:"\F13F"}.dxi.dxi-plus-circle:before{content:"\F140"}.dxi.dxi-plus:before{content:"\F141"}.dxi.dxi-printer:before{content:"\F142"}.dxi.dxi-redo:before{content:"\F143"}.dxi.dxi-rotate-right:before{content:"\F144"}.dxi.dxi-sort-variant:before{content:"\F145"}.dxi.dxi-table-column-plus-before:before{content:"\F146"}.dxi.dxi-table-column-remove:before{content:"\F147"}.dxi.dxi-table-column:before{content:"\F148"}.dxi.dxi-table-row-plus-after:before{content:"\F149"}.dxi.dxi-table-row-remove:before{content:"\F14A"}.dxi.dxi-table-row:before{content:"\F14B"}.dxi.dxi-undo:before{content:"\F14C"}.dxi.dxi-unfold-more-horizontal:before{content:"\F14D"}.dxi.dxi-vault:before{content:"\F14E"}.dxi{display:inline-block;text-rendering:auto;line-height:0;font-size:0}.dxi:before{font-size:20px}.dxi--small:before{font-size:16px}.dxi--medium:before{font-size:20px}.dxi--large:before{font-size:24px}@-webkit-keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg);-webkit-transform-origin:center center;transform-origin:center center}to{-webkit-transform:rotate(1439deg);transform:rotate(1439deg);-webkit-transform-origin:center center;transform-origin:center center}}@keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg);-webkit-transform-origin:center center;transform-origin:center center}to{-webkit-transform:rotate(1439deg);transform:rotate(1439deg);-webkit-transform-origin:center center;transform-origin:center center}}.dhx_button{overflow:visible;position:relative;text-decoration:none;background-image:none;border:0;-ms-touch-action:manipulation;touch-action:manipulation;-webkit-appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;cursor:pointer}.dhx_button:active,.dhx_button:focus{outline:none}.dhx_button__icon,.dhx_button__text{pointer-events:none}.dhx_button__icon{line-height:0}.dhx_button__icon:before{display:inline-block}.dhx_button__icon+.dhx_button__text{margin-left:4px}.dhx_button__loading{position:absolute;left:0;top:0;right:0;bottom:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.dhx_button__loading-icon{-webkit-animation:a .9s linear infinite;animation:a .9s linear infinite}.dhx_button--width_full{width:100%}.dhx_button--justify_between{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.dhx_button--circle.dhx_button--size_small{border-radius:28px}.dhx_button--circle.dhx_button--size_medium{border-radius:32px}.dhx_button--disabled,.dhx_button:disabled{pointer-events:none}.dhx_button--icon.dhx_button--circle:not(.dhx_button--width_full){border-radius:50%}.dhx_button--icon.dhx_button--circle:not(.dhx_button--width_full).dhx_button--size_medium{padding-left:6px;padding-right:6px}.dhx_button--icon.dhx_button--circle:not(.dhx_button--width_full).dhx_button--size_small{padding-left:4px;padding-right:4px}.dhx_button--loading{position:relative}.dhx_button--loading .dhx_button__icon,.dhx_button--loading .dhx_button__text{visibility:hidden}.dhx_button--size_small{padding:4px 12px;font-size:14px;line-height:20px}.dhx_button--size_small .dhx_button__icon:before{font-size:16px;line-height:16px}.dhx_button--size_small.dhx_button--loading-icon:before{font-size:16px;margin-top:-8px;margin-left:-8px}.dhx_button--size_medium{padding:6px 16px;text-transform:uppercase;line-height:20px}.dhx_button--size_medium .dhx_button__icon:before{font-size:20px;line-height:20px}.dhx_button--size_medium.dhx_button--loading-icon:before{font-size:20px;margin-top:-10px;margin-left:-10px}.dhx_button--view_flat{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:500;line-height:20px;text-align:center;color:#fff;-webkit-transition:background-color .2s ease-in,color .2s ease-in,-webkit-box-shadow .2s ease-in;transition:background-color .2s ease-in,color .2s ease-in,box-shadow .2s ease-in}.dhx_button--view_flat:focus,.dhx_button--view_flat:hover{-webkit-transition:background-color .2s ease-out,color .2s ease-out,-webkit-box-shadow .2s ease-out;transition:background-color .2s ease-out,color .2s ease-out,box-shadow .2s ease-out}.dhx_button--view_flat.dhx_button--color_primary{background-color:#0288d1;outline-width:0}.dhx_button--view_flat.dhx_button--color_primary.dhx_button--active,.dhx_button--view_flat.dhx_button--color_primary:focus,.dhx_button--view_flat.dhx_button--color_primary:hover{background-color:#35a0da}.dhx_button--view_flat.dhx_button--color_primary:active{background-color:#0288d1;box-shadow:none}.dhx_button--view_flat.dhx_button--color_primary:disabled{background-color:#81c4e8}.dhx_button--view_flat.dhx_button--color_secondary{background-color:#4d4d4d;outline-width:0}.dhx_button--view_flat.dhx_button--color_secondary.dhx_button--active,.dhx_button--view_flat.dhx_button--color_secondary:focus,.dhx_button--view_flat.dhx_button--color_secondary:hover{background-color:#717171}.dhx_button--view_flat.dhx_button--color_secondary:active{background-color:#4d4d4d;box-shadow:none}.dhx_button--view_flat.dhx_button--color_secondary:disabled{background-color:#a6a6a6}.dhx_button--view_flat.dhx_button--color_danger{background-color:#ff5252;outline-width:0}.dhx_button--view_flat.dhx_button--color_danger.dhx_button--active,.dhx_button--view_flat.dhx_button--color_danger:focus,.dhx_button--view_flat.dhx_button--color_danger:hover{background-color:#ff7575}.dhx_button--view_flat.dhx_button--color_danger:active{background-color:#ff5252;box-shadow:none}.dhx_button--view_flat.dhx_button--color_danger:disabled{background-color:#ffa9a9}.dhx_button--view_flat.dhx_button--color_success{background-color:#0ab169;outline-width:0}.dhx_button--view_flat.dhx_button--color_success.dhx_button--active,.dhx_button--view_flat.dhx_button--color_success:focus,.dhx_button--view_flat.dhx_button--color_success:hover{background-color:#3bc187}.dhx_button--view_flat.dhx_button--color_success:active{background-color:#0ab169;box-shadow:none}.dhx_button--view_flat.dhx_button--color_success:disabled{background-color:#85d8b4}.dhx_button--view_link{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:500;line-height:20px;text-align:center;border-radius:2px;background:transparent;-webkit-transition:background-color .2s ease-in,-webkit-box-shadow .2s ease-in;transition:background-color .2s ease-in,box-shadow .2s ease-in}.dhx_button--view_link:focus,.dhx_button--view_link:hover{-webkit-transition:background-color .2s ease-out,-webkit-box-shadow .2s ease-out;transition:background-color .2s ease-out,box-shadow .2s ease-out}.dhx_button--view_link.dhx_button--color_primary{color:#0288d1;outline-width:0}.dhx_button--view_link.dhx_button--color_primary:focus,.dhx_button--view_link.dhx_button--color_primary:hover{background-color:#d9edf8}.dhx_button--view_link.dhx_button--color_primary.dhx_button--active,.dhx_button--view_link.dhx_button--color_primary:active{background-color:#b8def2}.dhx_button--view_link.dhx_button--color_primary:disabled{color:#81c4e8}.dhx_button--view_link.dhx_button--color_secondary{color:#4d4d4d;outline-width:0}.dhx_button--view_link.dhx_button--color_secondary:focus,.dhx_button--view_link.dhx_button--color_secondary:hover{background-color:#e4e4e4}.dhx_button--view_link.dhx_button--color_secondary.dhx_button--active,.dhx_button--view_link.dhx_button--color_secondary:active{background-color:#cdcdcd}.dhx_button--view_link.dhx_button--color_secondary:disabled{color:#a6a6a6}.dhx_button--view_link.dhx_button--color_danger{color:#ff5252;outline-width:0}.dhx_button--view_link.dhx_button--color_danger:focus,.dhx_button--view_link.dhx_button--color_danger:hover{background-color:#ffe5e5}.dhx_button--view_link.dhx_button--color_danger.dhx_button--active,.dhx_button--view_link.dhx_button--color_danger:active{background-color:#ffcfcf}.dhx_button--view_link.dhx_button--color_danger:disabled{color:#ffa9a9}.dhx_button--view_link.dhx_button--color_success{color:#0ab169;outline-width:0}.dhx_button--view_link.dhx_button--color_success:focus,.dhx_button--view_link.dhx_button--color_success:hover{background-color:#daf3e9}.dhx_button--view_link.dhx_button--color_success.dhx_button--active,.dhx_button--view_link.dhx_button--color_success:active{background-color:#bae9d5}.dhx_button--view_link.dhx_button--color_success:disabled{color:#85d8b4}.dhx_button--sidebar .dhx_button__icon+.dhx_button__text{margin-left:8px;margin-right:auto}.dhx_widget .dhx_button__icon{line-height:0}.dhx_widget .dhx_button__icon:before{font-size:20px;line-height:20px}.dhx_widget .dhx_button--size_small .dhx_button__icon:before{font-size:16px;line-height:16px}.dhx_form-group{position:relative;display:block;text-align:left;padding-bottom:16px}.dhx_form-group--simplevault{line-height:0}.dhx_form-group--simplevault .dhx_label{margin-bottom:4px}.dhx_form-group--textarea{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:100%}.dhx_form-group--textarea .dhx_input--textarea,.dhx_form-group--textarea .dhx_input-wrapper{height:100%}.dhx_form-group--textarea .dhx_label{min-height:20px;line-height:20px;margin-bottom:4px}.dhx_form-group--inline{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;width:100%;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;position:relative}.dhx_form-group--inline .dhx_label{position:relative;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;max-height:40px;margin-right:16px;margin-bottom:0;text-align:right;width:100%;margin-top:6px;-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.dhx_form-group--inline .dhx_input-wrapper{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;width:300%;height:100%}.dhx_form-group--inline .dhx_label--with-help{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.dhx_form-group--required:not(.dhx_form-group--label_sr) .dhx_label:not(.dhx_label--with-help){position:relative;margin-bottom:0}.dhx_form-group--required:not(.dhx_form-group--label_sr) .dhx_label:not(.dhx_label--with-help):after{content:"*";display:inline-block;padding-left:4px;color:rgba(0,0,0,.3)}.dhx_form-group--required:not(.dhx_form-group--label_sr) .dhx_label__holder{position:relative;max-width:100%;overflow:hidden;text-overflow:ellipsis}.dhx_form-group--required:not(.dhx_form-group--label_sr) .dhx_label__holder:after{content:"*";display:inline-block;padding-left:4px;color:rgba(0,0,0,.3)}.dhx_form-group--no-message-holder{padding-bottom:0}.dhx_form-group--disabled{opacity:.6;pointer-events:none;cursor:default}.dhx_form-group--hidden{display:none}.dhx_form-group--state_error .dhx_input-caption,.dhx_form-group--state_error .dhx_label{color:#ff5252}.dhx_form-group--state_error .dhx_combobox-input-box,.dhx_form-group--state_error .dhx_combobox-input-box:focus,.dhx_form-group--state_error .dhx_input,.dhx_form-group--state_error .dhx_input:focus{box-shadow:inset 0 0 0 1px #ffbaba}.dhx_form-group--state_error .dhx_simplevault,.dhx_form-group--state_error .dhx_simplevault:focus{border-color:#ffbaba}.dhx_form-group--state_success .dhx_input-caption,.dhx_form-group--state_success .dhx_label{color:#0ab169}.dhx_form-group--state_success .dhx_combobox-input-box,.dhx_form-group--state_success .dhx_combobox-input-box:focus,.dhx_form-group--state_success .dhx_input,.dhx_form-group--state_success .dhx_input:focus{box-shadow:inset 0 0 0 1px #9de0c3}.dhx_form-group--state_success .dhx_simplevault,.dhx_form-group--state_success .dhx_simplevault:focus{border-color:#9de0c3}.dhx_form-group--label_sr .dhx_label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dhx_form-group .dhx_combobox{margin:0}.dhx_input-wrapper{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:relative}.dhx_input-wrapper:before{color:rgba(0,0,0,.5);pointer-events:none;position:absolute;right:4px;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.dhx_input-container{width:100%;display:inline-block;position:relative}.dhx_input{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;height:auto;padding:6px 8px;margin:0;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);background-color:#f6f6f6;background-clip:padding-box;box-shadow:inset 0 0 0 1px #dfdfdf;border:0;border-radius:2px;outline:0;-webkit-transition:border-color .2s ease-in,-webkit-box-shadow .2s ease-in;transition:border-color .2s ease-in,box-shadow .2s ease-in}.dhx_input::-webkit-input-placeholder{color:rgba(0,0,0,.5)}.dhx_input:-ms-input-placeholder,.dhx_input::-ms-input-placeholder{color:rgba(0,0,0,.5)}.dhx_input::placeholder{color:rgba(0,0,0,.5)}.dhx_input:focus{box-shadow:inset 0 0 0 1px #67b8e3}.dhx_input--icon-padding{padding-right:24px}.dhx_input--textarea{max-width:100%}.dhx_input--textinput{background:none;padding-left:0}.dhx_input--textinput,.dhx_input--textinput:focus{box-shadow:none}.dhx_input__icon{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);right:4px;z-index:1;color:rgba(0,0,0,.5);pointer-events:none}.dhx_input__icon--color-selected{border-radius:2px}.dhx_input__icon--color-selected:after,.dhx_input__icon--color-selected:before{opacity:0}.dhx_widget .dhx_input__icon{line-height:0}.dhx_widget .dhx_input__icon:before{font-size:20px;line-height:20px}.dhx_input-caption{left:0;bottom:0;max-width:100%;font-size:12px;font-weight:400;line-height:16px;color:rgba(0,0,0,.5);white-space:wrap;cursor:default}.dhx_input-caption,.dhx_label{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;overflow-x:hidden;text-overflow:ellipsis}.dhx_label{display:inline-block;width:auto;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;font-weight:500;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);white-space:nowrap;cursor:pointer;-webkit-transition:color .2s ease-in,opacity .2s ease-in;transition:color .2s ease-in,opacity .2s ease-in}.dhx_label:hover{opacity:.8;-webkit-transition:color .2s ease-out,opacity .2s ease-out;transition:color .2s ease-out,opacity .2s ease-out}.dhx_label__holder{max-width:100%;overflow:hidden;text-overflow:ellipsis}.dhx_label--with-help{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.dhx_label-help{margin-left:4px;color:#0288d1;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.dhx_label-help:focus{outline:none}.dhx_checkbox{position:relative;display:inline-block;width:auto;padding-top:0;cursor:pointer}.dhx_checkbox__visual-input{display:block;border:2px solid rgba(0,0,0,.5);width:20px;height:20px;background-color:#fff;border-radius:2px;cursor:pointer}.dhx_checkbox .dhx_label{margin-top:4px;margin-bottom:0;width:auto}.dhx_checkbox .dhx_label:after{display:none}.dhx_checkbox .dhx_input-caption{position:static;display:block;-webkit-transform:none;-ms-transform:none;transform:none}.dhx_checkbox.dhx_form-group--inline{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;white-space:nowrap}.dhx_checkbox.dhx_form-group--inline .dhx_label{padding-left:6px;margin-top:0}.dhx_checkbox__input:disabled+*+.dhx_label,.dhx_checkbox__input:disabled+.dhx_checkbox__visual-input{opacity:.6}.dhx_checkbox__input:focus+.dhx_checkbox__visual-input{border-color:#0288d1}.dhx_checkbox__input:checked+.dhx_checkbox__visual-input{background-color:#0288d1;background-position:50%;background-size:cover;border-color:#0288d1;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTIxIDdMOSAxOWwtNS41LTUuNSAxLjQxLTEuNDFMOSAxNi4xNyAxOS41OSA1LjU5IDIxIDd6Ii8+PC9zdmc+);-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.dhx_radiobutton{position:relative;display:inline-block;width:auto;padding-top:0;cursor:pointer}.dhx_radiobutton__visual-input{display:block;border:2px solid rgba(0,0,0,.5);bottom:4px;left:0;width:20px;height:20px;background-color:#fff;border-radius:50%}.dhx_radiobutton .dhx_label{margin-top:4px;margin-bottom:0;width:auto;cursor:pointer}.dhx_radiobutton .dhx_input-caption{position:static;display:block}.dhx_radiobutton.dhx_form-group--inline{white-space:nowrap;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.dhx_radiobutton.dhx_form-group--inline .dhx_label{padding-left:6px;margin-top:0}.dhx_radiobutton__input:disabled+*+.dhx_label,.dhx_radiobutton__input:disabled+.dhx_radiobutton__visual-input{opacity:.6}.dhx_radiobutton__input:focus+.dhx_radiobutton__visual-input{border-color:#0288d1}.dhx_radiobutton__input:checked+.dhx_radiobutton__visual-input{background-color:#0288d1;border-color:#0288d1;box-shadow:inset 0 0 0 4px #fff;-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.dhx_select{-webkit-appearance:none;-moz-appearance:none;appearance:none}.dhx_select::-ms-expand{display:none}.dhx_select__placeholder{position:absolute;left:8px;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);pointer-events:none;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7)}.dhx_select:focus+.dhx_select__placeholder{opacity:0}.dhx_simplevault{background-color:#f6f6f6;border:1px solid #dfdfdf;border-radius:2px;-webkit-transition:all .2s ease-in;transition:all .2s ease-in;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;line-height:20px;font-size:14px;font-weight:400;text-align:center;color:rgba(0,0,0,.7);overflow:hidden;position:relative}.dhx_simplevault__drop-area{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:20px}.dhx_simplevault__icon:before{font-size:40px;color:rgba(0,0,0,.3);-webkit-transition:color .2s ease-in;transition:color .2s ease-in}.dhx_simplevault__title{max-width:100%}.dhx_simplevault__label{color:#0288d1;cursor:pointer}.dhx_simplevault--on-drag{border-style:dashed;-webkit-transition:border .2s ease-out;transition:border .2s ease-out}.dhx_simplevault--on-drag .dhx_simplevault-loader{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);-webkit-transition:opacity .2s ease-in,-webkit-transform .2s ease-in;transition:opacity .2s ease-in,-webkit-transform .2s ease-in;transition:opacity .2s ease-in,transform .2s ease-in;transition:opacity .2s ease-in,transform .2s ease-in,-webkit-transform .2s ease-in}.dhx_simplevault-files{width:100%;margin:0;padding:0;list-style:none;border-top:1px solid #e4e4e4;max-height:276px;overflow-y:auto}.dhx_simplevault-files__item{position:relative;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;line-height:20px;font-size:14px;text-align:left;color:rgba(0,0,0,.7);max-width:100%;overflow:hidden;text-overflow:ellipsis;padding:8px 40px 8px 8px}.dhx_simplevault-files__item:not(:last-child){border-bottom:1px solid #e4e4e4}.dhx_simplevault-files__item-name{word-break:break-word}.dhx_simplevault-files__delete{position:absolute;right:4px;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.dhx_simplevault-loader{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;position:absolute;left:1px;right:1px;top:1px;bottom:1px;background-color:#ededed;-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%);opacity:0;will-change:transform;-webkit-transition:0ms;transition:0ms;z-index:1}.dhx_simplevault-loader .dhx_simplevault__icon:before{color:#0288d1}.dhx_slider{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding-bottom:16px}.dhx_slider--label-inline{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.dhx_slider--label-inline .dhx_slider__label{text-align:right;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;margin-right:16px;margin-bottom:0;width:100%}.dhx_slider--label-inline .dhx_label--with-help{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.dhx_slider--label-inline .dhx_slider__track-holder{width:300%;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.dhx_slider--label_sr .dhx_label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dhx_slider--mode_vertical{height:100%;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex}.dhx_slider--mode_vertical .dhx_slider__label{-webkit-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.dhx_slider--mode_vertical .dhx_slider__track-holder{height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:8px 0}.dhx_slider--mode_vertical .dhx_slider__track{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;padding:0 8px}.dhx_slider--mode_vertical .dhx_slider__track:before{width:2px;height:100%}.dhx_slider--mode_vertical .dhx_slider__range{width:2px;left:50%;-webkit-transform:translate(-50%);-ms-transform:translate(-50%);transform:translate(-50%)}.dhx_slider--mode_vertical .dhx_slider__thumb{left:50%}.dhx_slider--mode_vertical .dhx_slider__tick{height:1px;width:4px}.dhx_slider--mode_vertical .dhx_slider__tick:not(:first-child){-webkit-transform:translateY(-.5px);-ms-transform:translateY(-.5px);transform:translateY(-.5px)}.dhx_slider--mode_vertical .dhx_slider__tick--major{width:8px}.dhx_slider--mode_vertical .dhx_slider__tick-label{top:50%;left:100%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);padding-left:2px}.dhx_slider--ticks .dhx_slider__ticks-holder{height:4px}.dhx_slider--ticks.dhx_slider--mode_vertical .dhx_slider__ticks-holder{height:100%;width:4px}.dhx_slider__track-holder{position:relative;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.dhx_slider__track{position:relative;padding-top:8px;padding-bottom:8px;cursor:pointer;z-index:1}.dhx_slider__track:before{content:"";display:block;height:2px;background-color:#b3b3b3}.dhx_slider__thumb{position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:12px;height:12px;border-radius:50%;background-color:#0288d1;-webkit-transition:border-color .2s ease-out,background-color .2s ease-out,-webkit-transform .1s ease-out;transition:border-color .2s ease-out,background-color .2s ease-out,-webkit-transform .1s ease-out;transition:transform .1s ease-out,border-color .2s ease-out,background-color .2s ease-out;transition:transform .1s ease-out,border-color .2s ease-out,background-color .2s ease-out,-webkit-transform .1s ease-out;will-change:transform;cursor:pointer}.dhx_slider__thumb:after,.dhx_slider__thumb:before{content:"";display:block;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%) scale(0);-ms-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0);border-radius:50%;will-change:transform}.dhx_slider__thumb:before{width:28px;height:28px;background-color:rgba(2,136,209,.15)}.dhx_slider__thumb:after,.dhx_slider__thumb:before{-webkit-transition:background-color .2s ease-out,-webkit-transform .2s ease-out;transition:background-color .2s ease-out,-webkit-transform .2s ease-out;transition:transform .2s ease-out,background-color .2s ease-out;transition:transform .2s ease-out,background-color .2s ease-out,-webkit-transform .2s ease-out}.dhx_slider__thumb:after{width:16px;height:16px;background-color:#0288d1}.dhx_slider__thumb:focus,.dhx_slider__thumb:hover{outline:none}.dhx_slider__thumb:focus:before,.dhx_slider__thumb:hover:before{-webkit-transform:translate(-50%,-50%) scale(1);-ms-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1);-webkit-transition:background-color .2s ease-in,-webkit-transform .2s ease-in;transition:background-color .2s ease-in,-webkit-transform .2s ease-in;transition:transform .2s ease-in,background-color .2s ease-in;transition:transform .2s ease-in,background-color .2s ease-in,-webkit-transform .2s ease-in}.dhx_slider__thumb--active,.dhx_slider__thumb:active{z-index:1}.dhx_slider__thumb--active:after,.dhx_slider__thumb:active:after{-webkit-transform:translate(-50%,-50%) scale(1);-ms-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1);-webkit-transition:background-color .2s ease-in,-webkit-transform .2s ease-in;transition:background-color .2s ease-in,-webkit-transform .2s ease-in;transition:transform .2s ease-in,background-color .2s ease-in;transition:transform .2s ease-in,background-color .2s ease-in,-webkit-transform .2s ease-in}.dhx_slider__thumb--nullable{background-color:#b3b3b3}.dhx_slider__thumb--nullable:after{width:8px;height:8px;-webkit-transform:translate(-50%,-50%) scale(1);-ms-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1);background:#fff}.dhx_slider__thumb--nullable:before{background-color:rgba(77,77,77,.15)}.dhx_slider__thumb--disabled{background-color:#b3b3b3;border:2px solid #fff}.dhx_slider__thumb--disabled:after,.dhx_slider__thumb--disabled:before{display:none}.dhx_slider__thumb-label{position:absolute;padding:6px 12px;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);border-radius:2px;background-color:#333;box-shadow:0 2px 5px rgba(0,0,0,.3);font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:400;line-height:20px;color:#fff;-webkit-transition:opacity transform .01s ease-in;transition:opacity transform .01s ease-in;pointer-events:none;z-index:1}.dhx_slider__thumb-label--vertical{left:50px}.dhx_slider__thumb-label--horizontal{top:-30px}.dhx_slider__thumb-label--active{z-index:10}.dhx_slider__range{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);height:2px;background-color:#0288d1;pointer-events:none}.dhx_slider__ticks-holder{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_slider__tick{position:absolute;top:0;width:1px;height:4px;background-color:#b3b3b3}.dhx_slider__tick:not(:first-child){-webkit-transform:translateX(-.5px);-ms-transform:translateX(-.5px);transform:translateX(-.5px)}.dhx_slider__tick--major{height:8px}.dhx_slider__tick-label{position:absolute;top:10px;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:10px;color:rgba(0,0,0,.7);line-height:1}.dhx_message-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end;position:absolute;padding:20px;max-height:100%;-ms-scroll-chaining:none;overscroll-behavior:contain;width:240px;overflow:hidden;border:2px solid transparent;z-index:2147483647}.dhx_message-container *{box-sizing:border-box}.dhx_message-container--top-left{top:0;left:0}.dhx_message-container--top-right{top:0;right:0}.dhx_message-container--bottom-left{left:0}.dhx_message-container--bottom-left,.dhx_message-container--bottom-right{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;bottom:0}.dhx_message-container--bottom-right{right:0}.dhx_message-container--in-body{position:fixed}.dhx_message{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;width:100%;padding:12px;margin-bottom:4px;margin-top:4px;border-radius:2px;box-shadow:0 1px 6px rgba(0,0,0,.1),0 10px 20px rgba(0,0,0,.1);background-color:#fff;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_message,.dhx_message__text{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:500;line-height:20px;font-size:14px;color:rgba(0,0,0,.7)}.dhx_message__text{overflow-wrap:break-word;word-wrap:break-word;word-break:break-all}.dhx_message__icon{-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;padding-left:8px;color:rgba(0,0,0,.5)}.dhx_message--error .dhx_message__icon,.dhx_message--error .dhx_message__text,.dhx_message--success .dhx_message__icon,.dhx_message--success .dhx_message__text{color:#fff}.dhx_message--error{background-color:#ff5252}.dhx_message--success{background-color:#0ab169}.dhx_alert{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:fixed;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:600px;padding:24px;background:#fff;border-radius:2px;box-shadow:0 2px 5px rgba(0,0,0,.3);will-change:transform;z-index:2147483647}.dhx_alert__overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:2147483646}.dhx_alert__header{position:relative;margin-bottom:20px;font-weight:500;line-height:20px;text-transform:uppercase;color:rgba(0,0,0,.7)}.dhx_alert__content,.dhx_alert__header{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px}.dhx_alert__content{height:100%;font-weight:400;color:rgba(0,0,0,.5);line-height:1.3;overflow-y:auto;overflow-wrap:break-word;word-wrap:break-word}.dhx_alert__footer{margin-top:20px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.dhx_alert__footer--center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.dhx_alert__footer--right{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.dhx_alert__footer .dhx_button:not(:last-child){margin-right:16px}.dhx_tooltip{pointer-events:none;border-radius:2px;background-color:#333;box-shadow:0 2px 5px rgba(0,0,0,.3);padding:6px 12px;-webkit-transition:opacity .01s ease,-webkit-transform .01s ease;transition:opacity .01s ease,-webkit-transform .01s ease;transition:opacity .01s ease,transform .01s ease;transition:opacity .01s ease,transform .01s ease,-webkit-transform .01s ease;opacity:0;z-index:999;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif}.dhx_tooltip--animate{opacity:1;-webkit-transition:opacity .15s ease-out;transition:opacity .15s ease-out}.dhx_tooltip--forced{opacity:1}.dhx_tooltip--bottom{margin:8px 0 0}.dhx_tooltip--top{margin:-8px 0 0}.dhx_tooltip--left{margin:0 0 -8px}.dhx_tooltip--right{margin:0 0 0 8px}.dhx_tooltip--light{background-color:#fff}.dhx_tooltip--light .dhx_tooltip__text{color:rgba(0,0,0,.7)}.dhx_widget--fullscreen .dhx_tooltip{z-index:2147483647}.dhx_tooltip__text{color:#fff;font-size:14px;font-weight:500;line-height:20px}.dhx_layout{max-width:100%;max-height:100%;width:100%;height:100%}.dhx_layout-columns{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;overflow:hidden}.dhx_layout-columns>.dhx_layout-cell:not(.dhx_layout-rows):not(.dhx_layout-columns):not(.dhx_layout-cell--gravity){-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.dhx_layout-columns>.dhx_layout-cell--resizeble{overflow-x:hidden}.dhx_layout-rows{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:hidden}.dhx_layout-rows>.dhx_layout-cell:not(.dhx_layout-rows):not(.dhx_layout-columns):not(.dhx_layout-cell--gravity){-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.dhx_layout-rows>.dhx_layout-cell--resizeble{overflow-y:hidden}.dhx_layout-cell--start,.dhx_layout-columns--start,.dhx_layout-rows--start{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.dhx_layout-cell--center,.dhx_layout-columns--center,.dhx_layout-rows--center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.dhx_layout-cell--end,.dhx_layout-columns--end,.dhx_layout-rows--end{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.dhx_layout-cell--between,.dhx_layout-columns--between,.dhx_layout-rows--between{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.dhx_layout-cell--around,.dhx_layout-columns--around,.dhx_layout-rows--around{-webkit-justify-content:space-around;-ms-flex-pack:distribute;justify-content:space-around}.dhx_layout-cell--evenly,.dhx_layout-columns--evenly,.dhx_layout-rows--evenly{-webkit-box-pack:space-evenly;-webkit-justify-content:space-evenly;-ms-flex-pack:space-evenly;justify-content:space-evenly}.dhx_layout-cell{-webkit-flex-basis:auto;-ms-flex-preferred-size:auto;flex-basis:auto;-webkit-box-flex:0;-webkit-flex-grow:0;-ms-flex-positive:0;flex-grow:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.dhx_layout-cell--bordered{border:1px solid #e4e4e4}.dhx_layout-cell--border_top{border-top:1px solid #e4e4e4}.dhx_layout-cell--border_bottom{border-bottom:1px solid #e4e4e4}.dhx_layout-cell--border_left{border-left:1px solid #e4e4e4}.dhx_layout-cell--border_right{border-right:1px solid #e4e4e4}.dhx_layout-cell--border-shadow{border:0;box-shadow:0 2px 4px rgba(0,0,0,.15)}.dhx_layout-cell--no-border{border:0}.dhx_layout-cell--no-border_top{border-top:0}.dhx_layout-cell--no-border_bottom{border-bottom:0}.dhx_layout-cell--no-border_left{border-left:0}.dhx_layout-cell--no-border_right{border-right:0}.dhx_layout-cell--gravity{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.dhx_layout-cell--flex{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.dhx_layout-cell--accordion>.dhx_layout-cell--collapsed{border-bottom:0}.dhx_layout-cell--collapsed{overflow:hidden;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.dhx_layout-cell-content{padding:12px}.dhx_layout-cell-header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;border-bottom:1px solid #e4e4e4;padding:8px 12px}.dhx_layout-cell-header__title{margin:0;font-size:14px;line-height:20px;font-weight:500;color:rgba(0,0,0,.7);white-space:nowrap;overflow:hidden;text-overflow:clip;-webkit-transition:color .2s ease-in;transition:color .2s ease-in}.dhx_layout-cell-header__icon{margin-right:16px}.dhx_layout-cell-header__image-wrapper{position:relative;width:20px;height:20px;margin-right:8px}.dhx_layout-cell-header__image{position:absolute;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center center;object-position:center center;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);border-radius:50%}.dhx_layout-cell-header__collapse-icon{margin-left:auto;color:#4d4d4d;-webkit-transition:color .2s ease-in,-webkit-transform .2s ease-in;transition:color .2s ease-in,-webkit-transform .2s ease-in;transition:transform .2s ease-in,color .2s ease-in;transition:transform .2s ease-in,color .2s ease-in,-webkit-transform .2s ease-in}.dhx_layout-cell-header--collapseble{cursor:pointer}.dhx_layout-cell-header--collapseble:focus .dhx_layout-cell-header__collapse-icon,.dhx_layout-cell-header--collapseble:focus .dhx_layout-cell-header__title,.dhx_layout-cell-header--collapseble:hover .dhx_layout-cell-header__collapse-icon,.dhx_layout-cell-header--collapseble:hover .dhx_layout-cell-header__title{color:#0288d1;-webkit-transition:color .2s ease-out;transition:color .2s ease-out}.dhx_layout-cell-header--collapseble:focus,.dhx_layout-cell-header:focus{outline-width:0}.dhx_layout-cell-header--collapsed.dhx_layout-cell-header--col{border-bottom:0;position:relative}.dhx_layout-cell-header--collapsed.dhx_layout-cell-header--col .dhx_layout-cell-header__title{position:absolute;-webkit-transform-origin:left;-ms-transform-origin:left;transform-origin:left;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);bottom:-12px;left:50%}.dhx_layout-cell-header+.dhx_layout-cell-content{overflow:auto;max-height:calc(100% - 37px)}.dhx_layout-resizer{position:relative;overflow:visible;text-align:center}.dhx_layout-resizer .dhx_layout-resizer__icon{position:relative;z-index:1}.dhx_layout-resizer--x{width:0;height:100%;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.dhx_layout-resizer--x .dhx_layout-resizer__icon{color:rgba(0,0,0,.5);top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);cursor:ew-resize}.dhx_layout-resizer--x .dhx_layout-resizer__icon:before{font-size:16px}.dhx_layout-resizer--y{height:0;width:100%}.dhx_layout-resizer--y .dhx_layout-resizer__icon{color:rgba(0,0,0,.5);-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);cursor:ns-resize}.dhx_layout-resizer--y .dhx_layout-resizer__icon:before{font-size:16px}.dhx_navbar-count{width:24px;height:24px;border-radius:50%;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:12px;line-height:24px;color:#fff;text-align:center;z-index:1}.dhx_navbar-count--absolute{margin-left:0;position:absolute;top:-4px;top:-10px;right:-10px}.dhx_navbar-count--button-inline{margin-top:-4px;margin-bottom:-4px;margin-left:12px}.dhx_navbar-count--overlimit{width:auto;border-radius:22px;padding:0 8px}.dhx_navbar-count--color_success{background-color:#0ab169}.dhx_navbar-count--color_danger{background-color:#ff5252}.dhx_navbar-count--color_primary{background-color:#0288d1}.dhx_navbar-count--color_secondary{background-color:#4d4d4d}.dhx_navbar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;margin:0;padding:0;width:100%;list-style:none}.dhx_navbar:focus{outline:none}.dhx_navbar--horizontal{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.dhx_navbar--vertical{height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow:auto}.dhx_navbar .dhx_button--color_secondary.dhx_button--view_link .dhx_button__icon{color:rgba(0,0,0,.5)}.dhx_navbar-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);font-weight:500}.dhx_navbar-title--sidebar{display:block;padding:12px}.dhx_timepicker{width:100%;padding:50px 20px;min-width:248px;background-color:#fff}.dhx_timepicker--with-actions{padding:4px 20px 0}.dhx_timepicker__inputs{text-align:center;margin-bottom:28px;margin-top:16px}.dhx_timepicker__close{min-height:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;margin-bottom:6px}.dhx_timepicker__button-close{text-transform:uppercase;-webkit-transform:translateX(16px);-ms-transform:translateX(16px);transform:translateX(16px)}.dhx_timepicker__save{padding-top:12px;min-height:76px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.dhx_timepicker-inputs{position:relative;display:inline-block}.dhx_timepicker-input{width:48px;height:38px;font-size:30px;padding-bottom:4px;color:rgba(0,0,0,.7);line-height:30px;text-align:center;outline:none;border:none;border-bottom:1px solid #ededed;-webkit-transition:border-color .2s ease-in;transition:border-color .2s ease-in;background-color:transparent}.dhx_timepicker-input:focus{border-bottom:1px solid #81c4e8;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.dhx_timepicker-ampm{position:absolute;right:-32px;bottom:4px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;color:rgba(0,0,0,.3);font-size:16px;line-height:16px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_timepicker-delimer{position:relative;top:-2px;height:30px;width:8px;color:rgba(0,0,0,.7);line-height:30px;font-size:30px}.dhx_calendar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;min-height:258px;padding:12px;background-color:#fff}.dhx_calendar--with_timepicker{min-height:310px}.dhx_calendar__wrapper{position:relative;z-index:1;width:100%;min-height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.dhx_calendar__dates-wrapper{position:relative;padding-left:40px}.dhx_calendar__navigation{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;text-align:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;margin:-4px 2px 4px}.dhx_calendar__navigation .dhx_button--color_secondary:focus,.dhx_calendar__navigation .dhx_button--view_link:focus{background:inherit}.dhx_calendar__navigation .dhx_button--color_secondary:hover,.dhx_calendar__navigation .dhx_button--view_link:hover{background:#e4e4e4}.dhx_calendar__timepicker-button{margin-top:8px}.dhx_calendar__actions{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.dhx_calendar__week-numbers{position:absolute;left:0;top:-4px;width:32px;padding:4px 0;background-color:#f7f7f7}.dhx_calendar__week-numbers:before{content:"#";display:block;margin-bottom:8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:12px;line-height:16px;color:rgba(0,0,0,.5);text-align:center}.dhx_calendar__weekdays{margin:0 0 8px}.dhx_calendar__days,.dhx_calendar__months,.dhx_calendar__weekdays{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.dhx_calendar__days,.dhx_calendar__months{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.dhx_calendar__months,.dhx_calendar__years{margin-top:auto;margin-bottom:auto}.dhx_calendar__years{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.dhx_calendar-weekday{-webkit-box-flex:1;-webkit-flex:1 0 14%;-ms-flex:1 0 14%;flex:1 0 14%;font-size:12px;line-height:16px}.dhx_calendar-week-number,.dhx_calendar-weekday{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;color:rgba(0,0,0,.5);text-align:center}.dhx_calendar-week-number{margin-bottom:12px;font-size:14px;line-height:20px}.dhx_calendar-week-number:last-child{margin-bottom:0}.dhx_calendar-week-number--hidden{opacity:0;pointer-events:none}.dhx_calendar-day{position:relative;-webkit-box-flex:1;-webkit-flex:1 0 14%;-ms-flex:1 0 14%;flex:1 0 14%;margin-bottom:12px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.5);text-align:center;cursor:pointer}.dhx_calendar-day:nth-last-child(-n+7){margin-bottom:0}.dhx_calendar-day:after,.dhx_calendar-day:before{content:"";position:absolute;top:50%;left:50%;display:block;width:28px;height:28px;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background-color:rgba(0,0,0,.07);border-radius:50%;opacity:0;z-index:-1}.dhx_calendar-day:active,.dhx_calendar-day:focus{outline:none}.dhx_calendar-day:active:before,.dhx_calendar-day:focus:before,.dhx_calendar-day:hover:before{opacity:1;-webkit-transition:opacity .2s ease-out;transition:opacity .2s ease-out}.dhx_calendar-day--weekend{color:#0288d1}.dhx_calendar-day--hidden{opacity:0;pointer-events:none}.dhx_calendar-day--muffled{opacity:.6}.dhx_calendar-day--selected{color:#fff;position:relative;z-index:1}.dhx_calendar-day--selected:before{opacity:1;background-color:#0288d1}.dhx_calendar-day--disabled{color:rgba(0,0,0,.3);pointer-events:none}.dhx_calendar-day--weekend-disabled{pointer-events:none;color:#6ecbfe}.dhx_calendar-day--in-range:after{opacity:1;background-color:#d3efff;border-radius:0;width:100%;z-index:-3}.dhx_calendar-day--first-date:after{width:100%;background-color:#d3efff;opacity:1;right:calc(-50% - 2px);left:auto;border-radius:0;border-top-left-radius:32px;border-bottom-left-radius:32px}.dhx_calendar-day--last-date:after{width:100%;background-color:#d3efff;opacity:1;right:calc(-50% + 2px);left:auto;border-radius:0;border-top-right-radius:32px;border-bottom-right-radius:32px}.dhx_calendar-day:nth-child(7n).dhx_calendar-day--first-date:after{width:30px;right:calc(-50% + 1px)}.dhx_calendar-day:nth-child(7n+1).dhx_calendar-day--last-date:after{width:30px;right:calc(-50% + 3px)}.dhx_calendar-month,.dhx_calendar-year{position:relative;-webkit-box-flex:1;-webkit-flex:1 0 25%;-ms-flex:1 0 25%;flex:1 0 25%;margin-bottom:8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:50px;color:rgba(0,0,0,.7);text-align:center;cursor:pointer}.dhx_calendar-month:nth-last-child(-n+4),.dhx_calendar-year:nth-last-child(-n+4){margin-bottom:0}.dhx_calendar-month:before,.dhx_calendar-year:before{content:"";position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%);display:block;width:50px;height:50px;background-color:rgba(0,0,0,.07);border-radius:50%;opacity:0;-webkit-transition:opacity .2s ease-in,background-color .2s ease-in;transition:opacity .2s ease-in,background-color .2s ease-in;z-index:-1}.dhx_calendar-month:active,.dhx_calendar-month:focus,.dhx_calendar-year:active,.dhx_calendar-year:focus{outline:none}.dhx_calendar-month:active:before,.dhx_calendar-month:focus:before,.dhx_calendar-month:hover:before,.dhx_calendar-year:active:before,.dhx_calendar-year:focus:before,.dhx_calendar-year:hover:before{opacity:1;-webkit-transition:opacity .2s ease-out;transition:opacity .2s ease-out}.dhx_calendar-month:hover:before,.dhx_calendar-year:hover:before{z-index:-2}.dhx_calendar-month--selected,.dhx_calendar-year--selected{color:#fff}.dhx_calendar-month--selected:before,.dhx_calendar-year--selected:before{opacity:1;-webkit-transition:opacity .2s ease-in,background-color .2s ease-in;transition:opacity .2s ease-in,background-color .2s ease-in;background-color:#0288d1}.dhx_chart{stroke-linecap:square;position:relative;height:100%}.dhx_chart svg{vertical-align:top;overflow:visible}.dhx_chart .chart{-webkit-transition:all .5s ease;transition:all .5s ease}.dhx_chart.not-animate .chart,.dhx_chart.not-animate .tooltip-form,.dhx_chart.not-animate .tooltip-text{-webkit-transition:none;transition:none}.dhx_chart .figure{-webkit-transition:fill,stroke .3s ease;transition:fill,stroke .3s ease}.dhx_chart .active-figure{visibility:visible;-webkit-transition:all .2s ease;transition:all .2s ease}.dhx_chart .active-figure.point-circle,.dhx_chart .active-figure.point-rect,.dhx_chart .active-figure.point-rhombus,.dhx_chart .active-figure.point-triangle{-webkit-filter:url(#dropshadow);filter:url(#dropshadow);-webkit-transition:all .3s ease;transition:all .3s ease}.dhx_chart .area{stroke-linecap:round}.dhx_chart .dash-line{stroke-dasharray:4,6;stroke-linecap:round}.dhx_chart .legend-text,.dhx_chart .scale-text,.dhx_chart .scale-title{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:400;font-size:14px;fill:#898f97}.dhx_chart text{text-anchor:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.dhx_chart .start-text{text-anchor:start}.dhx_chart .end-text{text-anchor:end}.dhx_chart .legend-text{line-height:18px}.dhx_chart .scale-title{fill:#aeb7c2;line-height:16px}.dhx_chart .grid-line{stroke:#e3e9f1}.dhx_chart .main-scale{stroke:#c8d4e4;stroke-width:2px}.dhx_chart .radar-grid{stroke-dasharray:4,6;stroke:#d8e1ec;stroke-linecap:round}.dhx_chart .zebra{fill-rule:evenodd;fill:#f3f6fa}.dhx_chart .radar-scale{stroke:#c4d5e6}.dhx_chart .spec-grid-line{stroke:#898f97;stroke-linecap:round;stroke-dasharray:4,6}.dhx_chart .bar-text{fill:#fff;line-height:14px;font-weight:500;font-size:12px}.dhx_chart .bar-text,.dhx_chart .radar-axis-text{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif}.dhx_chart .radar-axis-text{font-size:14px;fill:#666}.dhx_chart .legend-item{cursor:pointer}.dhx_chart .legend-item.not-active .figure{fill:#c8d4e4;fill-opacity:1;stroke:#c8d4e4}.dhx_chart .legend-item.not-active .figure.legend-circle,.dhx_chart .legend-item.not-active .figure.legend-rect{stroke:none}.dhx_chart .legend-item.not-active .figure.legend-circle.with-stroke,.dhx_chart .legend-item.not-active .figure.legend-rect.with-stroke{stroke:#c8d4e4}.dhx_chart .legend-item.not-active .legend-text{fill:#c8d4e4}.dhx_chart.tooltip-container{z-index:2147483647}.dhx_chart.tooltip-container svg{width:4px;height:4px}.dhx_chart .tooltip-form{fill:#555;fill-opacity:.9}.dhx_chart .tooltip-text{font-size:12px;line-height:12px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;fill:#fff;font-weight:500}.dhx_chart .active-tooltip{visibility:visible}.dhx_chart .pie-value{font-weight:400;font-size:14px;fill:#898f97}.dhx_chart .pie-inner-value,.dhx_chart .pie-value{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif}.dhx_chart .pie-inner-value{fill:#fff;pointer-events:none;font-weight:500;line-height:14px;font-size:12px}.dhx_chart .pie-value-connector{stroke:#c6c6c6;fill:none}.dhx_chart .donut-value-title{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;fill:#898f97;font-size:14px;line-height:18px}.dhx_chart .donut-value{fill:#555;font-size:12px;line-height:14px}.dhx_chart .donut-value,.dhx_popup{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif}.dhx_popup{position:fixed;box-sizing:border-box;-webkit-animation:b .2s ease-in-out forwards;animation:b .2s ease-in-out forwards;background:#fff;will-change:transform;font-weight:500;font-size:14px;line-height:20px;color:rgba(0,0,0,.7)}.dhx_popup,.dhx_popup--window,.dhx_popup--window_modal{z-index:2147483645}.dhx_popup--window_active{z-index:2147483646}.dhx_popup.hide{-webkit-animation:c .2s ease-in-out forwards;animation:c .2s ease-in-out forwards}.dhx_popup:focus{outline:none}.dhx_widget--fullscreen .dhx_popup{z-index:2147483647}@-webkit-keyframes b{0%{-webkit-transform:translateY(20px);transform:translateY(20px);opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes b{0%{-webkit-transform:translateY(20px);transform:translateY(20px);opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@-webkit-keyframes c{0%{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}to{-webkit-transform:translateY(20px);transform:translateY(20px);opacity:0}}@keyframes c{0%{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}to{-webkit-transform:translateY(20px);transform:translateY(20px);opacity:0}}.dhx_colorpicker{font-family:Roboto,sans-serif;font-weight:500;overflow:hidden;padding:8px;border:1px solid #e4e4e4;background-color:#fff;border-radius:2px}.dhx_colorpicker,.dhx_colorpicker *{box-sizing:border-box}.dhx_popup .dhx_colorpicker{box-shadow:0 2px 5px rgba(0,0,0,.3);border:none}.dhx_palette{overflow:hidden;width:100%;height:100%;margin:0;white-space:nowrap}.dhx_palette--custom{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;max-width:236px}.dhx_palette--custom .dhx_custom-color__cell{margin-bottom:2px}.dhx_palette__col{display:inline-block}.dhx_palette__col:last-child .dhx_palette_cell{margin-right:0}.dhx_palette__row .dhx_palette__cell{display:inline-block;margin-bottom:6px}.dhx_palette__row .dhx_palette__cell:last-child{margin-right:0}.dhx_palette__row--last{margin-bottom:0}.dhx_palette__cell{position:relative;width:20px;height:20px;margin:0 2px 2px 0;vertical-align:top;border:2px solid transparent}.dhx_palette__cell,.dhx_palette__cell:after{-webkit-transition:border .2s ease-in;transition:border .2s ease-in}.dhx_palette__cell:after{content:"";display:block;position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border:1px solid transparent}.dhx_palette__cell:last-child{margin-bottom:0}.dhx_palette__cell--selected,.dhx_palette__cell:hover{border:2px solid hsla(0,0%,100%,.6);-webkit-transition:border .2s ease-out;transition:border .2s ease-out}.dhx_palette__cell--selected:after,.dhx_palette__cell:hover:after{border:1px solid rgba(0,0,0,.6);-webkit-transition:border .2s ease-out;transition:border .2s ease-out}.dhx_colorpicker-custom-colors{font-size:14px;color:#909cad}.dhx_colorpicker-custom-colors__header{font-size:14px;padding:12px 0 4px;letter-spacing:-.2px;position:relative}.dhx_colorpicker-custom-colors__picker{display:inline-block;width:20px;height:20px;cursor:pointer;color:#909cad;box-shadow:inset 0 0 0 1px #909cad}.dhx_colorpicker-picker__palette{position:relative;width:100%;border-radius:2px;overflow:hidden}.dhx_colorpicker-picker__palette:before{content:"";height:100%;width:100%;position:absolute;top:0;left:0;background-image:-webkit-gradient(linear,left bottom,left top,from(#000),to(hsla(0,0%,100%,0)));background-image:-webkit-linear-gradient(bottom,#000,hsla(0,0%,100%,0));background-image:linear-gradient(0deg,#000,hsla(0,0%,100%,0));z-index:2}.dhx_colorpicker-picker__palette:after{content:"";width:100%;height:100%;position:absolute;top:0;left:0;background-image:-webkit-gradient(linear,left top,right top,from(#fff),to(hsla(20,42%,65%,0)));background-image:-webkit-linear-gradient(left,#fff,hsla(20,42%,65%,0));background-image:linear-gradient(90deg,#fff,hsla(20,42%,65%,0));z-index:1}.dhx_colorpicker-picker__buttons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;padding:12px 0 0;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.dhx_colorpicker-picker__buttons .dhx_button:first-child{margin-right:4px}.dhx_colorpicker-hue-range{position:relative;width:100%;margin:4px 0 8px;border-radius:2px;background-image:-webkit-gradient(linear,left top,right top,from(red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background-image:-webkit-linear-gradient(left,red,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);background-image:linear-gradient(90deg,red,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.dhx_colorpicker-hue-range__grip{width:6px;height:100%}.dhx_colorpicker-hue-range__grip,.dhx_palette_grip{position:absolute;top:0;left:0;border:1px solid #fff;background:transparent;box-shadow:0 2px 5px 0 rgba(0,0,0,.3)}.dhx_palette_grip{width:10px;height:10px;border-radius:50%;z-index:10}.dhx_colorpicker-value{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;height:32px;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between}.dhx_colorpicker-value__color{width:100px;border:1px solid transparent;border-radius:2px;margin-right:8px}.dhx_colorpicker-value__input-wrapper{position:relative;border:1px solid #d4dde7}.dhx_colorpicker-value__input-wrapper:before{content:"#";position:absolute;height:100%;line-height:30px;left:8px;color:#909cad;font-size:15px}.dhx_colorpicker-value__input{width:100px;height:100%;padding:0 0 0 24px;line-height:20px;font-size:14px;color:rgba(0,0,0,.7);border:none;border-radius:2px;outline:none}.dhx_list{margin:0;padding:0;height:100%;list-style:none;overflow:auto;max-height:100%}.dhx_list--virtual{overflow:visible;max-height:unset;border:none}.dhx_list-item{overflow:hidden;position:relative;padding:8px 12px;border-bottom:1px solid #e4e4e4}.dhx_list-item,.dhx_list-item--text{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif}.dhx_list-item--text{font-size:14px;font-weight:400;line-height:20px;-webkit-transition:background-color .2s ease-in,-webkit-box-shadow .2s ease-in;transition:background-color .2s ease-in,box-shadow .2s ease-in}.dhx_list-item--selected{background-color:#f7f7f7;box-shadow:inset 2px 0 0 0 #0288d1}.dhx_list-item--focus,.dhx_list-item--selected:hover,.dhx_list-item:hover{background-color:#ededed;-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.dhx_list-item--drophere:after{content:"";position:absolute;left:0;right:0;bottom:0;top:0;background-color:#f7f7f7}.dhx_list-item--dragtarget{opacity:.6}.dhx_list-item--drag{cursor:-webkit-grab;cursor:grab}.dhx_list-input{width:100%;padding-left:5px}.dhx_virtual-list-wrapper{overflow:auto;max-height:100%;border:1px solid #e4e4e4}.dhx_drag-ghost .dhx_list-item{border:1px solid #e4e4e4!important;background-color:#fff;list-style-type:none}.dhx_drag-ghost .dhx_list-item--selected{background-color:#fff;box-shadow:inset 0 0 0 0 #0288d1}.dhx_drag-ghost .dhx_list-item--focus,.dhx_drag-ghost .dhx_list-item--selected:hover,.dhx_drag-ghost .dhx_list-item:hover{background-color:#fff;-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.dhx_combobox{margin-bottom:16px}.dhx_combobox__options{margin-top:2px;width:100%}.dhx_combobox--required:not(.dhx_combobox--label_sr) .dhx_label:not(.dhx_label--with-help){position:relative}.dhx_combobox--required:not(.dhx_combobox--label_sr) .dhx_label:not(.dhx_label--with-help):after{content:"*";display:inline-block;padding-left:4px;color:rgba(0,0,0,.3)}.dhx_combobox--required:not(.dhx_combobox--label_sr) .dhx_label__holder{position:relative;max-width:100%;overflow:hidden;text-overflow:ellipsis}.dhx_combobox--required:not(.dhx_combobox--label_sr) .dhx_label__holder:after{content:"*";display:inline-block;padding-left:4px;color:rgba(0,0,0,.3)}.dhx_combobox--label_sr .dhx_label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dhx_combobox--label-inline{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:100%;position:relative}.dhx_combobox--label-inline .dhx_combobox__label{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;text-align:right;margin-right:16px;width:100%}.dhx_combobox--label-inline .dhx_combobox-input-box{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;width:300%}.dhx_combobox-input-box{position:relative;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;background-color:#f7f7f7;background-clip:padding-box;border-radius:2px;box-shadow:inset 0 0 0 1px #dfdfdf;-webkit-transition:border-color .2s ease-out,-webkit-box-shadow .2s ease-out;transition:border-color .2s ease-out,box-shadow .2s ease-out}.dhx_combobox-input-box--readonly,.dhx_combobox-input-box--readonly *{cursor:pointer}.dhx_combobox-input-box--disabled{cursor:not-allowed;opacity:.8}.dhx_combobox-input-box--disabled *{cursor:not-allowed;pointer-events:none}.dhx_combobox-input-box--active,.dhx_combobox-input-box:focus-within{box-shadow:inset 0 0 0 1px #67b8e3}.dhx_combobox-input-box--state_success{box-shadow:inset 0 0 0 1px #6cd0a5}.dhx_combobox-input-box--state_error{box-shadow:inset 0 0 0 1px #ff9797}.dhx_combobox-input{min-height:30px;display:block;width:100%;margin:0;padding:0;position:absolute;top:0;right:0;bottom:0;left:0;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.dhx_combobox-input:active,.dhx_combobox-input:focus{outline:none}.dhx_combobox-input__wrapper{position:static;padding-bottom:0}.dhx_combobox-input__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;cursor:pointer;-webkit-box-flex:0;-webkit-flex:0;-ms-flex:0;flex:0;position:absolute;top:50%;right:4px;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);font-size:16px;z-index:1;color:rgba(0,0,0,.5)}.dhx_combobox-input-list-wrapper{height:100%;width:100%;overflow:hidden}.dhx_combobox-input-list{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;list-style:none;margin:0;border-top:1px solid transparent;border-bottom:1px solid transparent;min-height:30px;max-height:96px;width:calc(100% - 32px);overflow-y:scroll;padding:0 41px 0 8px;box-sizing:content-box!important}.dhx_combobox-input-list__item{-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto}.dhx_combobox-input-list__item--input{position:relative;-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.dhx_combobox-tag{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:0 8px;margin-top:2px;margin-bottom:2px;border:1px solid #e4e4e4;border-radius:16px;background-color:#fff;margin-right:8px}.dhx_combobox-tag__value{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);white-space:nowrap}.dhx_combobox-tag__icon,.dhx_combobox-tag__image{margin-right:4px}.dhx_combobox-tag__image{width:16px;height:auto;-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center}.dhx_combobox-tag__action{height:20px;margin-left:4px;margin-right:-6px;color:rgba(0,0,0,.5);padding:0;background-color:transparent;-webkit-transition:color .2s ease-in;transition:color .2s ease-in}.dhx_combobox-tag__action:hover{color:rgba(0,0,0,.7);-webkit-transition:color .2s ease-out;transition:color .2s ease-out}.dhx_combobox-options{background-color:#fff;border-radius:2px;box-shadow:0 2px 5px rgba(0,0,0,.3)}.dhx_combobox-options__icon{padding-right:4px}.dhx_combobox-options__image{padding-right:4px;width:16px;height:auto;-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center}.dhx_combobox-options__item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;padding:6px 8px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.dhx_combobox-options__item--select-all{color:#0288d1;line-height:20px;border-bottom:1px solid #e4e4e4}.dhx_dataview{position:relative;overflow-y:auto;height:100%;max-height:100%}.dhx_dataview--has-scroll .dhx_dataview-row:last-child .dhx_dataview-item:not(.dhx_dataview-item--with-gap){border-bottom:0}.dhx_dataview-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.dhx_dataview-row .dhx_dataview-item:not(.dhx_dataview-item--with-gap){border-top:0}.dhx_dataview-item{position:relative;-webkit-box-flex:0;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;border:1px solid #e4e4e4;padding:8px;-webkit-transition:-webkit-box-shadow .2s ease-in;transition:box-shadow .2s ease-in}.dhx_dataview-item:not(.dhx_dataview-item--with-gap){border-left:0}.dhx_dataview-item--last-item-in-row:not(.dhx_dataview-item--with-gap){border-right:0}.dhx_dataview-item:focus{outline:none}.dhx_dataview-item:after{content:"";display:block;position:absolute;left:0;right:0;bottom:0;top:0;z-index:1;border:1px solid transparent;-webkit-transition:opacity .2s ease-in-out,background-color .2s ease-in-out;transition:opacity .2s ease-in-out,background-color .2s ease-in-out;pointer-events:none}.dhx_dataview-item--focus{box-shadow:inset 0 0 0 1px #a6a6a6}.dhx_dataview-item--focus,.dhx_dataview-item--selected{-webkit-transition:-webkit-box-shadow .2s ease-out;transition:box-shadow .2s ease-out}.dhx_dataview-item--selected{box-shadow:inset 0 0 0 1px #0288d1}.dhx_dataview-item--drophere:after{background-color:#f7f7f7}.dhx_dataview-item--dragtarget{opacity:.6}.dhx_dataview-item--drag{cursor:-webkit-grab;cursor:grab}.dhx_dataview-input{padding-left:5px}.dhx_drag-ghost{z-index:999;opacity:.6}.dhx_drag-ghost .dhx_dataview-item{border:1px solid #e4e4e4!important;background-color:#fff}.dhx_footer-wrapper,.dhx_header-wrapper{position:relative;font-size:14px;font-weight:500;color:rgba(0,0,0,.7);z-index:10;overflow:hidden}.dhx_footer-wrapper.dhx_compatible-header,.dhx_header-wrapper.dhx_compatible-header{border-right:none}.dhx_footer-wrapper:last-child,.dhx_header-wrapper:last-child{border-bottom:none}.dhx_grid-header{position:relative;height:100%;white-space:nowrap;z-index:10}.dhx_grid-footer-cell,.dhx_grid-header-cell{display:inline-block;height:100%;padding:0 8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:400;vertical-align:top;white-space:nowrap;overflow:hidden;position:relative;font-weight:500;background-color:#f7f7f7;border-top:1px solid #e4e4e4;border-bottom:1px solid #e4e4e4;border-left:none;text-overflow:ellipsis;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_grid-footer-cell:not(.dhx_cell_first),.dhx_grid-header-cell:not(.dhx_cell_first){border-left:1px solid #e4e4e4}.dhx_grid-footer-cell:first-child,.dhx_grid-header-cell:first-child{border-left:none}.dhx_grid-header-cell--sortable:hover .dhx_grid-sort-icon{opacity:1}.dhx_grid-header-cell--sortable:hover:after,.dhx_grid-header-cell--sorted:after{content:"";display:block;width:24px;position:absolute;top:0;bottom:0;background-color:#f7f7f7;opacity:.8}.dhx_grid-header-cell--align_right{text-align:right;padding-left:24px}.dhx_grid-header-cell--align_right .dhx_grid-sort-icon{left:4px}.dhx_grid-header-cell--align_right:after{left:0}.dhx_grid-header-cell--align_left{text-align:left}.dhx_grid-header-cell--align_left .dhx_grid-sort-icon{right:4px}.dhx_grid-header-cell--align_left:after{right:0}.dhx_grid-sort-icon{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);opacity:0;color:rgba(0,0,0,.5);z-index:1;-webkit-transition:all .2s ease-in;transition:all .2s ease-in;cursor:pointer}.dhx_grid-sort-icon:before{font-size:16px;display:inline-block;-webkit-transition:all .2s ease-out;transition:all .2s ease-out}.dhx_grid-sort-icon--asc,.dhx_grid-sort-icon--desc{opacity:1;color:#0288d1;-webkit-transition:color .2s ease-out;transition:color .2s ease-out}.dhx_grid-sort-icon--asc:before{-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}.dhx_cell_empty{border-top:none}.dhx_header-row{white-space:nowrap;background:#f7f7f7}.dhx_header-row:last-child .dhx_cell-first{border-bottom:1px solid #f7f7f7}.dhx_header-row:first-child .dhx_grid-footer-cell,.dhx_header-row:first-child .dhx_grid-header-cell{border-top:none}.dhx_header-row:not(:last-child) .dhx_grid-footer-cell,.dhx_header-row:not(:last-child) .dhx_grid-header-cell{border-bottom:none}.dhx_header-row .dhx_grid-custom-content-cell{padding:5px}.dhx_header-spans{position:absolute;top:0}.dhx_header-spans .dhx_span-cell{background:#f7f7f7;font-weight:500}.dhx_grid-filter__label{display:block;width:100%;height:100%;position:relative}.dhx_grid-filter__label:before{color:rgba(0,0,0,.5);pointer-events:none;position:absolute;right:4px;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:10}.dhx_grid-filter{height:100%;padding:0 25px 0 4px;color:rgba(0,0,0,.7);background:#fff;border-radius:2px;outline:none;position:relative}.dhx_grid-filter::-ms-expand{display:none}.dhx_header-fixed-cols{background:#f7f7f7;z-index:999}.dhx_header-fixed-cols .dhx_last-column-cell{border-right:1px solid #e4e4e4}.dhx_footer-wrapper{box-shadow:0 1px 0 0 #f7f7f7}.dhx_grid-footer{position:relative;background-color:#f7f7f7}.dhx_grid-footer-cell{border-top:1px solid #e4e4e4}.dhx_grid-footer-cell:after{display:none}.dhx_grid-footer-cell.dhx_number-cell{text-align:right}.dhx_grid-footer-cell.dhx_string-cell{text-align:left}.dhx_footer-row{white-space:nowrap;background:#f7f7f7}.dhx_footer-row:last-child .dhx_cell-first{border-bottom:1px solid #f7f7f7}.dhx_footer-row .dhx_grid-footer-cell{border-bottom:none}.dhx_footer-spans .dhx_span-cell{background-color:#f7f7f7}.dhx_footer-spans .dhx_span-row .dhx_span-cell{border-top:1px solid #e4e4e4}.dhx_footer-fixed-cols{background:#f7f7f7;z-index:999}.dhx_footer-fixed-cols .dhx_last-column-cell{border-right:1px solid #e4e4e4}.dhx_grid-row{width:100%;white-space:nowrap;overflow:hidden}.dhx_grid-row:first-child .dhx_grid-cell{border-top:none}.dhx_grid-cell{font-size:14px;color:rgba(0,0,0,.7);text-align:right;position:relative;display:inline-block;height:100%;padding:0 8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:400;vertical-align:top;white-space:nowrap;border-top:1px solid #e4e4e4;border-left:1px solid #e4e4e4;overflow:hidden}.dhx_grid-cell .dhx_cell-content{width:100%;height:100%;overflow:hidden}.dhx_grid-cell:first-child{border-left:none}.dhx_grid-cell--first{border-top:none}.dhx_grid-cell--title{font-size:14px;font-weight:400;color:rgba(0,0,0,.7);text-align:left;border-bottom:none}.dhx_grid-cell--after-title,.dhx_grid-cell--title{border-top:1px solid #e4e4e4}.dhx_grid-cell__editable{padding-right:0;padding-left:0}.dhx_number-cell{text-align:right}.dhx_string-cell,.dhx_tree-cell{text-align:left}.dhx_tree-cell{font-weight:14px;color:rgba(0,0,0,.5)}.dhx_tree-cell .dhx_grid-expand-cell-icon{position:absolute;top:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;width:20px;height:100%;padding:0 0 0 4px;font-size:14px;cursor:pointer}.dhx_tree-cell .dhx_tree-cell{display:inline-block;padding:0 8px}.dhx_grid-expand-cell{cursor:pointer}.dhx_grid-expand-cell .dhx_tree-cell{padding:0 10px 0 30px}.dhx_grid-fixed-cols-wrap{position:absolute;top:0;left:0;background:#fff;overflow:hidden}.dhx_frozen-cols-border{width:1px;position:absolute;right:0;top:0;height:100%;background:#e4e4e4;z-index:999999}.dhx_grid-fixed-cols,.dhx_grid-selection{position:absolute;top:0}.dhx_grid-selection{left:0}.dhx_grid-selected-row{border-left:2px solid #0288d1;background:rgba(77,77,77,.08);pointer-events:none}.dhx_grid-selected-cell{border:2px solid #0288d1;background-color:transparent;pointer-events:none}.dhx_cell-editor{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:400;width:100%;height:100%;text-align:inherit;color:rgba(0,0,0,.7);border:none;background:transparent;box-shadow:inset 0 0 0 1px #0288d1;outline:none}.dhx_cell-editor__input{padding:0 8px;border-radius:0}.dhx_span-cell{position:relative;display:inline-block;height:100%;padding:0 8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:400;vertical-align:top;white-space:nowrap;border-left:1px solid #e4e4e4;overflow:hidden;position:absolute;display:block;height:auto;font-weight:500;border-top:1px solid #e4e4e4;border-bottom:none;z-index:10}.dhx_span-cell--title{color:rgba(0,0,0,.5)}.dhx_span-row .dhx_first-column-cell{border-left:none}.dhx_span-row .dhx_last-column-cell{border-right:1px solid #e4e4e4}.dhx_span-row:first-child .dhx_span-cell{border-top:none}.dhx_span-spans{position:absolute;top:0;left:0}.dhx_span-spans .dhx_span-cell{font-weight:400;color:rgba(0,0,0,.7);line-height:normal;text-align:left;white-space:normal;border-right:none;background:#fff}.dhx_span-spans .dhx_span-cell.dhx_span-first-row{border-top:none}.dhx_span-spans .dhx_span-cell.dhx_span-first-col{border-left:none}.dhx_span-spans .dhx_span-string-cell{text-align:left}.dhx_span-spans .dhx_span-number-cell{text-align:right}.dhx_grid{width:100%;height:100%;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:400;line-height:20px;overflow:hidden}.dhx_grid,.dhx_grid-content{position:relative;background:#fff}.dhx_grid-content{border:1px solid #dfdfdf}.dhx_grid-less-width .dhx_grid-cell:last-child,.dhx_grid-less-width .dhx_grid-footer-cell:last-child,.dhx_grid-less-width .dhx_grid-header-cell:last-child,.dhx_grid-less-width .dhx_grid_footer_cell:last-child,.dhx_grid-less-width .dhx_last-column-cell,.dhx_grid-less-width .dhx_span-last-col{border-right:1px solid #e4e4e4}.dhx_grid-less-height .dhx_footer-row:last-child .dhx_grid-footer-cell,.dhx_grid-less-height .dhx_grid-row:last-child{border-bottom:1px solid #e4e4e4}.dhx_grid-less-height .dhx_footer-row:first-child .dhx_grid-footer-cell{border-top:none}.dhx_grid-less-height .dhx_span-row:last-child .dhx_span-cell{border-bottom:1px solid #e4e4e4}.dhx_grid-less-height .dhx_span-row:first-child .dhx_span-cell{border-top:none}.dhx_grid-body{overflow:auto}.dhx_data-wrap,.dhx_grid-body{position:relative;width:100%;height:100%}.dhx_data-wrap{overflow:hidden}.dhx_menu-nav{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;margin:0;padding:0;width:100%;list-style:none;overflow-x:auto;background-color:#ededed}.dhx_menu-nav__item--separator{pointer-events:none;width:1px;background-color:#dfdfdf;margin-top:8px;margin-bottom:8px}.dhx_menu-nav__item--spacer{pointer-events:none;-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.dhx_nav-menu-button{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:8px 12px;font-weight:500;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);background-color:transparent;-webkit-transition:background-color .2s ease-in;transition:background-color .2s ease-in}.dhx_nav-menu-button--active:not(:disabled),.dhx_nav-menu-button:active:not(:disabled),.dhx_nav-menu-button:hover:not(:disabled){background-color:rgba(0,0,0,.07);-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.dhx_nav-menu-button--disabled,.dhx_nav-menu-button:disabled{opacity:.8;pointer-events:auto;cursor:default}.dhx_nav-menu-button--disabled *,.dhx_nav-menu-button:disabled *{color:rgba(0,0,0,.3)}.dhx_menu{padding:0;margin:0;background:#fff;list-style:none;border-radius:2px;box-shadow:0 2px 5px rgba(0,0,0,.3);overflow:hidden;z-index:999}.dhx_menu-item{min-width:180px}.dhx_menu-item--separator{pointer-events:none;-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;height:1px;margin:2px 8px;background-color:#e4e4e4}.dhx_menu-item--spacer{pointer-events:none;height:16px}.dhx_menu-item--left-gap .dhx_menu-button{padding-left:38px}.dhx_menu-button{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:8px;text-align:left;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:400;line-height:20px;color:rgba(0,0,0,.7);background-color:transparent;-webkit-transition:background-color .2s ease-in;transition:background-color .2s ease-in}.dhx_menu-button--active:not(:disabled),.dhx_menu-button:active:not(:disabled),.dhx_menu-button:focus:not(:disabled),.dhx_menu-button:hover:not(:disabled){background-color:#ededed;-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.dhx_menu-button--disabled,.dhx_menu-button:disabled{opacity:.8;pointer-events:auto;cursor:default}.dhx_menu-button--disabled *,.dhx_menu-button:disabled *{color:rgba(0,0,0,.3)}.dhx_menu-button__icon{color:rgba(0,0,0,.5)}.dhx_widget .dhx_menu-button__icon{line-height:0}.dhx_widget .dhx_menu-button__icon:before{font-size:20px;line-height:20px}.dhx_menu-button__icon+.dhx_menu-button__text{margin-left:8px}.dhx_menu-button__block{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.dhx_menu-button__block--left{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}.dhx_menu-button__block--right{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.dhx_menu-button__count{margin-left:8px;margin-top:-2px;margin-bottom:-2px}.dhx_menu-button__hotkey{margin-left:8px;color:rgba(0,0,0,.3)}.dhx_menu-button__caret{margin-left:8px;color:rgba(0,0,0,.5)}.dhx_widget--fullscreen .dhx_menu{z-index:2147483647}.dhx_ribbon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:10px;list-style:none}.dhx_ribbon:focus{outline:none}.dhx_ribbon__item{margin:2px}.dhx_ribbon__item--auto,.dhx_ribbon__item--medium{min-width:68px;min-height:68px}.dhx_ribbon__item--auto,.dhx_ribbon__item--icon,.dhx_ribbon__item--medium,.dhx_ribbon__item--spacer{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.dhx_ribbon__item--separator{-webkit-align-self:stretch;-ms-flex-item-align:stretch;align-self:stretch;width:1px;margin:8px 4px;background-color:#dfdfdf}.dhx_ribbon-button__icon+.dhx_ribbon-button__text{margin-left:4px}.dhx_widget .dhx_ribbon-button__icon{line-height:0}.dhx_widget .dhx_ribbon-button__icon:before{font-size:20px;line-height:20px}.dhx_ribbon-button,.dhx_ribbon-button-image{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;width:100%;padding:6px 12px;box-shadow:inset 0 0 0 1px #dfdfdf;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;font-weight:400;color:rgba(0,0,0,.7);background-color:transparent;border-radius:2px;-webkit-transition:background-color .2s ease-in,-webkit-box-shadow .2s ease-in;transition:background-color .2s ease-in,box-shadow .2s ease-in}.dhx_ribbon-button-image__icon,.dhx_ribbon-button__icon{color:rgba(0,0,0,.5);line-height:0}.dhx_ribbon-button-image__count,.dhx_ribbon-button__count{margin-left:8px;margin-top:-10px;margin-bottom:-10px}.dhx_ribbon-button--auto,.dhx_ribbon-button--medium,.dhx_ribbon-button-image--auto,.dhx_ribbon-button-image--medium{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;min-width:68px;min-height:68px;height:100%}.dhx_ribbon-button--auto .dhx_ribbon-button-image__count,.dhx_ribbon-button--auto .dhx_ribbon-button__count,.dhx_ribbon-button--medium .dhx_ribbon-button-image__count,.dhx_ribbon-button--medium .dhx_ribbon-button__count,.dhx_ribbon-button-image--auto .dhx_ribbon-button-image__count,.dhx_ribbon-button-image--auto .dhx_ribbon-button__count,.dhx_ribbon-button-image--medium .dhx_ribbon-button-image__count,.dhx_ribbon-button-image--medium .dhx_ribbon-button__count{margin-left:0;position:absolute;top:4px;right:4px}.dhx_ribbon-button--auto .dhx_ribbon-button__icon+.dhx_ribbon-button__text,.dhx_ribbon-button--medium .dhx_ribbon-button__icon+.dhx_ribbon-button__text,.dhx_ribbon-button-image--auto .dhx_ribbon-button__icon+.dhx_ribbon-button__text,.dhx_ribbon-button-image--medium .dhx_ribbon-button__icon+.dhx_ribbon-button__text{margin-left:0;margin-top:2px}.dhx_ribbon-button--icon,.dhx_ribbon-button-image--icon{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.dhx_ribbon-button--select,.dhx_ribbon-button-image--select{padding-right:8px}.dhx_ribbon-button--select .dhx_ribbon-button__text,.dhx_ribbon-button-image--select .dhx_ribbon-button__text{margin-right:8px}.dhx_ribbon-button-image:hover,.dhx_ribbon-button:hover{background-color:rgba(0,0,0,.07);-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.dhx_ribbon-button--active,.dhx_ribbon-button-image--active,.dhx_ribbon-button-image:active,.dhx_ribbon-button:active{background-color:#f2f9fd;-webkit-transition:background-color .2s ease-out,-webkit-box-shadow .2s ease-out;transition:background-color .2s ease-out,box-shadow .2s ease-out;box-shadow:inset 0 0 0 1px #b3dbf1}.dhx_ribbon-button--disabled,.dhx_ribbon-button-image--disabled,.dhx_ribbon-button-image:disabled,.dhx_ribbon-button:disabled{opacity:.8;pointer-events:auto;cursor:default}.dhx_ribbon-button--disabled:hover,.dhx_ribbon-button-image--disabled:hover,.dhx_ribbon-button-image:disabled:hover,.dhx_ribbon-button:disabled:hover{background-color:transparent}.dhx_ribbon-button--disabled *,.dhx_ribbon-button-image--disabled *,.dhx_ribbon-button-image:disabled *,.dhx_ribbon-button:disabled *{color:rgba(0,0,0,.3)}.dhx_ribbon-button-image__text+.dhx_ribbon-button-image__image{margin-right:4px}.dhx_ribbon-button-image{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-flow:row-reverse;-ms-flex-flow:row-reverse;flex-flow:row-reverse;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}.dhx_ribbon-button-image__count{-webkit-box-ordinal-group:0;-webkit-order:-1;-ms-flex-order:-1;order:-1}.dhx_ribbon-button-image__image{width:20px;height:20px;background-size:cover;background-position:50%;background-repeat:no-repeat}.dhx_ribbon-button-image--icon{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.dhx_ribbon-button-image__count{margin-left:8px}.dhx_ribbon-button-image--auto .dhx_ribbon-button__count,.dhx_ribbon-button-image--medium .dhx_ribbon-button__count{margin-left:0;position:absolute;top:4px;right:4px}.dhx_ribbon-button-image--auto,.dhx_ribbon-button-image--medium{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-flow:column-reverse;-ms-flex-flow:column-reverse;flex-flow:column-reverse;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;min-width:68px;min-height:68px;height:100%}.dhx_ribbon-button-image--auto .dhx_ribbon-button-image__image,.dhx_ribbon-button-image--medium .dhx_ribbon-button-image__image{margin-right:0;width:32px;height:32px}.dhx_ribbon-button-image__caret,.dhx_ribbon-button__caret{margin-left:auto;color:rgba(0,0,0,.5);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.dhx_ribbon-block{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;text-align:center}.dhx_ribbon-block--root{width:100%}.dhx_ribbon-block--title{position:relative;padding-bottom:20px}.dhx_ribbon-block--indented{margin-right:4px;margin-left:4px}.dhx_ribbon-block--indented:first-child{margin-left:0}.dhx_ribbon-block--indented:last-child{margin-right:0}.dhx_ribbon-block--col>.dhx_ribbon-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.dhx_ribbon-block--row>.dhx_ribbon-content{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.dhx_ribbon-block--row .dhx_ribbon-button--auto,.dhx_ribbon-block--row .dhx_ribbon-button-image--auto{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.dhx_ribbon-content{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;margin:0;padding:0;list-style:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.dhx_ribbon-content-label-wrapper{display:block;position:absolute;bottom:-6px;left:0;right:0;overflow:hidden}.dhx_ribbon-content-label{position:relative;display:inline;font-family:Roboto;font-style:normal;font-weight:400;font-size:14px;line-height:16px;text-align:center;color:rgba(0,0,0,.38)}.dhx_ribbon-content-label:after,.dhx_ribbon-content-label:before{content:"";position:absolute;top:50%;display:block;height:1px;background:rgba(0,0,0,.07);width:1000%}.dhx_ribbon-content-label:before{left:calc(100% + 4px)}.dhx_ribbon-content-label:after{right:calc(100% + 4px)}.dhx_sidebar{height:100%;position:relative;background-color:#fff;z-index:1}.dhx_sidebar:focus{outline:none}.dhx_sidebar__item--spacer{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.dhx_sidebar__item--separator{height:1px;width:100%;background-color:#dfdfdf;margin:2px 0}.dhx_sidebar--minimized .dhx_navbar-title{opacity:0;pointer-events:none}.dhx_sidebar--minimized .dhx_sidebar-button__icon{margin-left:auto;margin-right:auto}.dhx_sidebar--minimized .dhx_sidebar-button--select{padding-right:12px}.dhx_sidebar--minimized .dhx_sidebar-button__count{position:absolute;max-width:24px;overflow:hidden;top:-4px;right:4px}.dhx_sidebar--minimized .dhx_sidebar-button--select .dhx_sidebar-button__count{margin-right:0}.dhx_sidebar--minimized .dhx_sidebar-button__caret,.dhx_sidebar--minimized .dhx_sidebar-button__text{display:none}.dhx_sidebar-button__icon+.dhx_sidebar-button__text{margin-left:12px}.dhx_sidebar-button{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:12px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;font-weight:400;color:rgba(0,0,0,.7);background-color:transparent;-webkit-transition:background-color .2s ease-in;transition:background-color .2s ease-in}.dhx_sidebar-button--select{padding-right:8px}.dhx_sidebar-button--select .dhx_sidebar-button__count{margin-right:8px}.dhx_sidebar-button--icon{padding-right:12px}.dhx_sidebar-button:hover{background-color:rgba(0,0,0,.07)}.dhx_sidebar-button--active,.dhx_sidebar-button:active,.dhx_sidebar-button:hover{-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.dhx_sidebar-button--active,.dhx_sidebar-button:active{background-color:rgba(0,0,0,.15)}.dhx_sidebar-button--active{box-shadow:inset 2px 0 0 0 #0288d1}.dhx_sidebar-button--disabled,.dhx_sidebar-button:disabled{opacity:.8;pointer-events:auto;cursor:default}.dhx_sidebar-button--disabled:hover,.dhx_sidebar-button:disabled:hover{background-color:transparent}.dhx_sidebar-button--disabled *,.dhx_sidebar-button:disabled *{color:rgba(0,0,0,.3)}.dhx_sidebar-button__icon{color:rgba(0,0,0,.5)}.dhx_widget .dhx_sidebar-button__icon{line-height:0}.dhx_widget .dhx_sidebar-button__icon:before{font-size:20px;line-height:20px}.dhx_sidebar-button__text{width:100%;text-align:left}.dhx_sidebar-button__count+.dhx_sidebar-button__caret{margin-left:0}.dhx_sidebar-button__count{min-width:24px;-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;width:auto;margin:-4px 0 -4px auto}.dhx_sidebar-button__caret{margin-right:0;margin-left:auto}.dhx_toolbar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:12px 0}.dhx_toolbar__item--spacer{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.dhx_toolbar__item--separator{width:1px;height:100%;background-color:#dfdfdf;margin:0 2px;height:28px}.dhx_toolbar__item:first-child .dhx_form-group,.dhx_toolbar__item:first-child .dhx_navbar-title,.dhx_toolbar__item:first-child button:not(.dhx_toolbar-button){margin-left:12px}.dhx_toolbar__item:first-child button.dhx_button--view_link,.dhx_toolbar__item:not(:first-child) .dhx_form-group,.dhx_toolbar__item:not(:first-child) .dhx_navbar-title,.dhx_toolbar__item:not(:first-child) button:not(.dhx_toolbar-button){margin-left:4px}.dhx_toolbar__item:last-child .dhx_form-group,.dhx_toolbar__item:last-child .dhx_navbar-title,.dhx_toolbar__item:last-child button:not(.dhx_toolbar-button){margin-right:12px}.dhx_toolbar__item:last-child button.dhx_button--view_link,.dhx_toolbar__item:not(:last-child) .dhx_form-group,.dhx_toolbar__item:not(:last-child) .dhx_navbar-title,.dhx_toolbar__item:not(:last-child) button:not(.dhx_toolbar-button){margin-right:4px}.dhx_toolbar .dhx_button__icon--menu{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.dhx_toolbar__input{height:32px}@supports (display:block){.dhx_toolbar__input{height:unset}}.dhx_toolbar__input .dhx_input{height:32px}@supports (display:block){.dhx_toolbar__input .dhx_input{height:unset}}.dhx_toolbar-button{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding:6px 12px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;font-weight:500;color:rgba(0,0,0,.7);background-color:transparent;border-radius:2px;-webkit-transition:background-color .2s ease-in;transition:background-color .2s ease-in}.dhx_toolbar-button--select{padding-right:8px}.dhx_toolbar-button--icon{padding-right:12px}.dhx_toolbar-button--circle{border-radius:32px}.dhx_toolbar-button--circle.dhx_toolbar-button--icon{padding-left:6px;padding-right:6px}.dhx_toolbar-button:hover{background-color:rgba(0,0,0,.07)}.dhx_toolbar-button--active,.dhx_toolbar-button:active,.dhx_toolbar-button:hover{-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.dhx_toolbar-button--active,.dhx_toolbar-button:active{background-color:rgba(0,0,0,.15)}.dhx_toolbar-button--disabled,.dhx_toolbar-button:disabled{opacity:.8;pointer-events:auto;cursor:default}.dhx_toolbar-button--disabled:hover,.dhx_toolbar-button:disabled:hover{background-color:transparent}.dhx_toolbar-button--disabled *,.dhx_toolbar-button:disabled *{color:rgba(0,0,0,.3)}.dhx_toolbar-button__icon{color:rgba(0,0,0,.5)}.dhx_widget .dhx_toolbar-button__icon{line-height:0}.dhx_widget .dhx_toolbar-button__icon:before{font-size:20px;line-height:20px}.dhx_toolbar-button__icon+.dhx_toolbar-button__text{margin-left:8px}.dhx_toolbar-button__count{position:absolute;top:-10px;right:-10px}.dhx_toolbar-button__caret{margin-left:8px;color:rgba(0,0,0,.5);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.dhx_toolbar-button-image{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;position:relative;width:44px;height:44px;padding:0;margin-top:-8px;margin-bottom:-8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);border-radius:50%;-webkit-transition:opacity .2s ease-in;transition:opacity .2s ease-in}.dhx_toolbar-button-image:hover{opacity:.8;-webkit-transition:opacity .2s ease-out;transition:opacity .2s ease-out}.dhx_toolbar-button-image__image{position:absolute;border-radius:50%;top:0;left:0;right:0;bottom:0;background-size:cover;background-position:50%;background-repeat:no-repeat;z-index:1}.dhx_toolbar-button-image__text{text-align:center;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dhx_toolbar-button-image__count{position:absolute;top:-4px;right:-4px}.dhx_tabbar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;max-height:100%;height:100%;max-width:100%}.dhx_tabbar--top{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.dhx_tabbar--top .dhx_tabbar-header__wrapper:after{left:0;height:1px;width:100%;bottom:0}.dhx_tabbar--top .dhx_layout-cell{height:100%;overflow:auto;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.dhx_tabbar--top .dhx_tabbar-header{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.dhx_tabbar--top .dhx_tabbar-header-active{bottom:0}.dhx_tabbar--top .dhx_tabbar-tab{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.dhx_tabbar--top .dhx_tabbar-tab-button{text-align:center}.dhx_tabbar--bottom{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.dhx_tabbar--bottom .dhx_tabbar-header__wrapper:after{left:0;height:1px;width:100%;top:0}.dhx_tabbar--bottom .dhx_layout-cell{height:100%;overflow:auto;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.dhx_tabbar--bottom .dhx_tabbar-header{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.dhx_tabbar--bottom .dhx_tabbar-header-active{top:0}.dhx_tabbar--bottom .dhx_tabbar-tab{-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.dhx_tabbar--bottom .dhx_tabbar-tab-button{text-align:center}.dhx_tabbar--left{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.dhx_tabbar--left .dhx_tabbar-header__wrapper:after{right:0;height:100%;width:1px;bottom:0}.dhx_tabbar--left .dhx_layout-cell{height:100%;overflow:auto;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.dhx_tabbar--left .dhx_tabbar-header{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.dhx_tabbar--left .dhx_tabbar-header-active{right:0}.dhx_tabbar--left .dhx_tabbar-tab{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.dhx_tabbar--left .dhx_tabbar-tab-button{text-align:right}.dhx_tabbar--right{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.dhx_tabbar--right .dhx_tabbar-header__wrapper:after{left:0;height:100%;width:1px;bottom:0}.dhx_tabbar--right .dhx_layout-cell{height:100%;overflow:auto;-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.dhx_tabbar--right .dhx_tabbar-header{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.dhx_tabbar--right .dhx_tabbar-header-active{left:0}.dhx_tabbar--right .dhx_tabbar-tab{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto}.dhx_tabbar--right .dhx_tabbar-tab-button{text-align:left}.dhx_tabbar .dhx_layout-cell--content{-webkit-box-flex:1;-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto;overflow:auto}.dhx_tabbar-header{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:0;padding:0;list-style:none}.dhx_tabbar-header__wrapper{position:relative;overflow:auto;-webkit-box-flex:0;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.dhx_tabbar-header__wrapper:after{content:"";display:block;position:absolute;background:#e4e4e4}.dhx_tabbar-header-active{position:absolute;-webkit-transition:-webkit-transform .1s ease-in-out;transition:-webkit-transform .1s ease-in-out;transition:transform .1s ease-in-out;transition:transform .1s ease-in-out,-webkit-transform .1s ease-in-out;background-color:#0288d1;z-index:1}.dhx_tabbar-tab{position:relative}.dhx_tabbar-tab__close{position:absolute;top:50%;right:8px;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);z-index:1;opacity:.7;color:#0288d1;cursor:pointer}.dhx_tabbar-tab__close:hover{opacity:1}.dhx_tabbar-tab__close:focus{outline:none}.dhx_tabbar-tab-button{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:500;line-height:20px;position:relative;padding:12px 24px;border-radius:0;color:#0288d1;text-transform:uppercase;background-color:transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-transition:background-color .2s ease-in;transition:background-color .2s ease-in}.dhx_tabbar-tab-button .dhx_button__text{opacity:.7}.dhx_tabbar-tab-button:active,.dhx_tabbar-tab-button:hover,.dhx_tabbar-tab-button:hover:active{background-color:#ededed;-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.dhx_tabbar-tab-button--active .dhx_button__text{opacity:1}.dhx_drag-ghost{position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_tree{list-style:none;margin:0;padding:0;position:relative;z-index:1}.dhx_tree--no-selection{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_tree--no-selection .dhx_tree-folder:hover:before,.dhx_tree--no-selection .dhx_tree-list-item:hover:before{-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out;background-color:transparent}.dhx_tree-list{list-style:none;margin:0;padding:0 0 0 20px}.dhx_tree-folder{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;padding-top:2px;padding-bottom:2px}.dhx_tree-folder .dhx_tree-list-item__content{padding-left:20px}.dhx_tree-folder .dhx_tree-toggle-button+.dhx_tree-list-item__content{padding-left:0}.dhx_tree-list-item{cursor:pointer;padding-top:2px;padding-bottom:2px;-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out}.dhx_tree-list-item,.dhx_tree-list-item__content{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.dhx_tree-list-item__content{padding-left:20px;position:relative}.dhx_tree-list-item__content:before{content:"";display:block;position:absolute;top:-1.5px;bottom:-1.5px;right:inherit;left:inherit;-webkit-transition:background-color .2s ease-in;transition:background-color .2s ease-in;z-index:-1}.dhx_tree-list-item__text{padding-left:4px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:normal;color:rgba(0,0,0,.7)}.dhx_tree-list-item__icon{color:rgba(0,0,0,.3);line-height:1;font-size:0}.dhx_tree-list-item__icon:before{font-size:20px;line-height:1}.dhx_tree-list-item--parent{display:block;padding-top:0;padding-bottom:0}.dhx_tree-list-item .dhx_widget .dhx_tree-list-item__icon{line-height:0}.dhx_tree-list-item .dhx_widget .dhx_tree-list-item__icon:before{font-size:20px;line-height:20px}.dhx_tree-folder,.dhx_tree-list-item{position:relative}.dhx_tree-folder:before,.dhx_tree-list-item:before{content:"";display:block;position:absolute;top:0;bottom:0;right:inherit;left:inherit;-webkit-transition:background-color .2s ease-in;transition:background-color .2s ease-in;z-index:-1}.dhx_tree-folder--focused:before,.dhx_tree-folder:hover:before,.dhx_tree-list-item--focused:before,.dhx_tree-list-item:hover:before{-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out;background-color:#ededed}.dhx_tree-folder--selected:before,.dhx_tree-list-item--selected:before{-webkit-transition:background-color .2s ease-out;transition:background-color .2s ease-out;box-shadow:inset 2px 0 0 0 #0288d1;background-color:#f7f7f7}.dhx_tree-toggle-button{cursor:pointer;color:rgba(0,0,0,.5)}.dhx_tree-toggle-button+.dhx_tree-list-item__content{margin-left:0}.dhx_tree-checkbox{padding-right:4px;color:#0288d1}.dhx_tree-checkbox.dxi-checkbox-blank-outline{color:rgba(0,0,0,.5)}.dhx_tree-input{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);padding-left:4px;padding-top:0;padding-bottom:0;margin:0;background-color:#f7f7f7;border:none}.dhx_tree-input:focus{outline:none}.dhx_tree-folder.dhx_tree-drop--top .dhx_tree-list-item__content:before{left:-20px;right:0;box-shadow:0 -1px 0 0 #81c4e8}.dhx_tree-folder.dhx_tree-drop--top:hover:before{background-color:transparent}.dhx_tree-folder.dhx_tree-drop--bottom .dhx_tree-list-item__content:before{left:-20px;right:0;box-shadow:0 1px 0 0 #81c4e8}.dhx_tree-folder.dhx_tree-drop--bottom:hover:before{background-color:transparent}.dhx_tree-folder.dhx_tree-drop--in-folder .dhx_tree-list-item__content:before{left:-20px;right:0;box-shadow:0 1px 0 0 #81c4e8,0 -1px 0 0 #81c4e8}.dhx_tree-folder.dhx_tree-drop--in-folder:hover:before{background-color:transparent}.dhx_tree-list-item.dhx_tree-drop--top .dhx_tree-list-item__content:before{left:20px;right:0;box-shadow:0 -1px 0 0 #81c4e8}.dhx_tree-list-item.dhx_tree-drop--top:hover:before{background-color:transparent}.dhx_tree-list-item.dhx_tree-drop--bottom .dhx_tree-list-item__content:before{left:20px;right:0;box-shadow:0 1px 0 0 #81c4e8}.dhx_tree-list-item.dhx_tree-drop--bottom:hover:before{background-color:transparent}.dhx_tree-list-item.dhx_tree-drop--in-folder .dhx_tree-list-item__content:before{left:20px;right:0;box-shadow:0 1px 0 0 #81c4e8,0 -1px 0 0 #81c4e8}.dhx_tree-list-item.dhx_tree-drop--in-folder:hover:before{background-color:transparent}.dhx_drag-ghost .dhx_tree-list-item__icon{position:relative;display:inline;vertical-align:middle;color:rgba(0,0,0,.3);font-size:20px;top:2px}.dhx_drag-ghost .dhx_tree-list-item__text{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;vertical-align:middle;line-height:20px;color:rgba(0,0,0,.7)}.dhx_window{border-radius:2px;box-shadow:0 2px 5px rgba(0,0,0,.3);will-change:transform;overflow:visible}.dhx_window--stop_selection{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_window__overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:2147483645}.dhx_window-header{margin-bottom:20px}.dhx_window-header--movable{cursor:all-scroll}.dhx_window-header:before{content:"";display:block;position:absolute;top:0;left:0;right:0;width:100%;height:16px;-webkit-transform:translateY(-100%);-ms-transform:translateY(-100%);transform:translateY(-100%)}.dhx_window-header .dhx_navbar-title{margin-left:0!important;font-size:18px}.dhx_window-content{padding-left:28px;padding-right:28px;padding-bottom:28px}.dhx_window-content,.dhx_window-content-without-header{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:400;color:rgba(0,0,0,.5);line-height:1.3;overflow-y:auto;overflow-wrap:break-word;word-wrap:break-word}.dhx_window-content-without-header{padding:28px}.dhx_window-footer{margin-top:20px}.dhx_window__inner-html-content :first-child{margin-top:0}.dhx_window--no-scroll{width:100vw;height:100vh;overflow:hidden}.dhx_window .dhx_cell_content,.dhx_window .dhx_toolbar{width:100%}.dhx_window .dhx_toolbar__list{min-height:auto}.dhx_window .dhx_window-header .dhx_toolbar{padding:28px 28px 0}.dhx_window .dhx_window-footer .dhx_toolbar{padding:0 28px 28px}.dhx_window .dhx_cell_content{height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.dhx_window-resizer{position:absolute;background:transparent}.dhx_window-resizer--left{left:-6px;top:0;height:100%;width:12px}.dhx_window-resizer--left:hover{cursor:ew-resize}.dhx_window-resizer--right{right:-6px;top:0;height:100%;width:12px}.dhx_window-resizer--right:hover{cursor:ew-resize}.dhx_window-resizer--top{left:0;top:-6px;height:12px;width:100%}.dhx_window-resizer--top:hover{cursor:ns-resize}.dhx_window-resizer--bottom{left:0;bottom:-6px;height:12px;width:100%}.dhx_window-resizer--bottom:hover{cursor:ns-resize}.dhx_window-resizer--top_right{right:-6px;top:-6px;width:12px;height:12px}.dhx_window-resizer--top_right:hover{cursor:nesw-resize}.dhx_window-resizer--top_left{left:-6px;top:-6px;width:12px;height:12px}.dhx_window-resizer--top_left:hover{cursor:nwse-resize}.dhx_window-resizer--bottom_right{right:-6px;bottom:-6px;width:12px;height:12px}.dhx_window-resizer--bottom_right:hover{cursor:nwse-resize}.dhx_window-resizer--bottom_left{left:-6px;bottom:-6px;width:12px;height:12px}.dhx_window-resizer--bottom_left:hover{cursor:nesw-resize}.dhx_window-body-pointer--left,.dhx_window-body-pointer--right{cursor:ew-resize}.dhx_window-body-pointer--bottom,.dhx_window-body-pointer--top{cursor:ns-resize}.dhx_window-body-pointer--top_right{cursor:nesw-resize}.dhx_window-body-pointer--bottom_right,.dhx_window-body-pointer--top_left{cursor:nwse-resize}.dhx_window-body-pointer--bottom_left{cursor:nesw-resize}
\ No newline at end of file
+.dhx_checkbox__input,.dhx_radiobutton__input,.dhx_simplevault__input,.dhx_visually-hidden{position:absolute;overflow:hidden;clip:rect(0 0 0 0);height:1px;width:1px;margin:-1px;padding:0;border:0}.dhx_no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:-webkit-grab;cursor:grab}.dhx_no-select:not(.dhx_no-select--resize):not(.dhx_no-select--pointer) *{cursor:-webkit-grab!important;cursor:grab!important}.dhx_no-select--pointer{cursor:pointer}.dhx_no-select--pointer,.dhx_no-select--resize{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx-resize-observer{position:absolute;left:0;top:-100%;width:100%;height:100%;margin:1px 0 0;border:none;opacity:0;visibility:hidden;pointer-events:none}.dhx_widget,.dhx_widget *{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}.dhx_widget,.dhx_widget *,.dhx_widget:after,.dhx_widget :after,.dhx_widget:before,.dhx_widget :before{box-sizing:border-box}.dhx_widget * :not(output):-moz-ui-invalid,.dhx_widget :not(output):-moz-ui-invalid{box-shadow:none}body{margin:0}.dhx_widget{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:400;font-size:14px;line-height:20px;color:rgba(0,0,0,.7)}.dhx_widget--bordered{border:1px solid #e4e4e4}.dhx_widget--border_top{border-top:1px solid #e4e4e4}.dhx_widget--border_bottom{border-bottom:1px solid #e4e4e4}.dhx_widget--border_left{border-left:1px solid #e4e4e4}.dhx_widget--border_right{border-right:1px solid #e4e4e4}.dhx_widget--border-shadow{border:0;box-shadow:0 2px 4px rgba(0,0,0,.15)}.dhx_widget--no-border{border:0}.dhx_widget--no-border_top{border-top:0}.dhx_widget--no-border_bottom{border-bottom:0}.dhx_widget--no-border_left{border-left:0}.dhx_widget--no-border_right{border-right:0}.dhx_widget.dhx_widget--bg_white{background-color:#fff}.dhx_widget.dhx_widget--bg_gray{background-color:#f7f7f7}.dhx_drag-ghost{position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;z-index:999;opacity:.6}.dhx_drag-ghost *{box-sizing:border-box}.dhx_drag-ghost .dhx_list-item{list-style-type:none}.dhx_drag-ghost .dhx_list-item--selected{background-color:#fff;box-shadow:inset 0 0 0 0 #0288d1}.dhx_drag-ghost .dhx_list-item--focus,.dhx_drag-ghost .dhx_list-item--selected:hover,.dhx_drag-ghost .dhx_list-item:hover{background-color:#fff;transition:background-color .2s ease-out}.dhx_drag-ghost .dhx_tree-list-item__icon{position:relative;display:inline;vertical-align:middle;color:rgba(0,0,0,.3);font-size:20px;top:2px}.dhx_drag-ghost .dhx_tree-list-item__text{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;vertical-align:middle;line-height:20px;color:rgba(0,0,0,.7)}.dhx_drag-ghost .dhx_dataview-item,.dhx_drag-ghost .dhx_grid-cell,.dhx_drag-ghost .dhx_list-item{background-color:#fff;border:1px solid #e4e4e4!important}@font-face{font-family:Roboto;src:url(fonts/roboto-regular-webfont.woff2) format("woff2"),url(fonts/roboto-regular-webfont.woff) format("woff");font-weight:400;font-style:normal;font-display:fallback}@font-face{font-family:Roboto;src:url(fonts/roboto-medium-webfont.woff2) format("woff2"),url(fonts/roboto-medium-webfont.woff) format("woff");font-weight:500;font-style:normal;font-display:fallback}@font-face{font-family:Roboto;src:url(fonts/roboto-bold-webfont.woff2) format("woff2"),url(fonts/roboto-bold-webfont.woff) format("woff");font-weight:700;font-style:normal;font-display:fallback}@font-face{font-family:dhxicons;src:url(data:font/woff2;base64,d09GMgABAAAAABBwAAsAAAAALcwAABAhAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGVgCLegq5IK1aATYCJAOCVAuBLAAEIAWEFgeKMxuUJmUEbBwA8vj+FVG56cn+/zqBG0OkO7QugmZZNCWKp8TkfMv1U0e3/ftuaIO5BQMH4AbHKm7E4CDY/3SxiC452LWvY8z2HUpJwRjqZW1lQowK0UkHfi1dqarqReGhqgb/bdqssY9lA28JSYkTqThhK9RJWTxxXqxisuekIpKeOTlxeuLCnX+Z1Y8BdjoqQQPYHwA2ZvqEA9uhpvYp25QI2G/uK3H7EksflqCwh/iPeZxtbcfSgSIwU81CTCoaOpWe3u4/9RS5kugDARoC5bvnH557lW/4EYbitjybfiyY4GpL1CLO48uspNj/Wyuz24EOosRO2Ii46AgVHaGmqmt69lfNr56aZezdUM+EoHdD3RU+BJecA3aL0DkkhcID2nMn753Sp+WBjo2dUAZq8BhbdQNbpYiwqYhRKGjf9f9vDMCSd1k7nuqTsH/erV+J4obLywHcbwefb4vmgKyPRCIgS4vgs1mDgxLYCYIN+/NDg7syJI0u756fQ/MRqBKzwZwushuwOo/AXp394F84/FX0etrXKYdJeM2Y+KQyl6tK58p+DQZ4ApHEQkZYKWxUeezr1ygAQjCCYm//mkeQFM2wHC+Ikqyomm6Ylu24nh+EUZykWV5MZ/PFcrVWZ6ogQ0hYRFRMXEK9Bo2aNGvRqk0SBtPLszV0wAs3UJVQNapONcaMoSbVotpUh+pSPapPDaghNaLG1IQCKJCCKHi6P1RCgEIpjMIpgiIpiqIphmIpjuIpgRIpiZIphVIpjdIpgzIpi7Iph3Ipj/KpgAqpiIqphEqpjMqpgppSM2pOLagltaLW1IbaUjtqTx2oI3WiztSFulI36k49qCf1ot7Uh/pSP6ocGbil7/xgMMb8d/Hlsht+s/YNRnirwolfBbeu4XEIhSNlQgDAeo7IUCeHI1nMU8XBkSSsVMDLJIGsw6vsBQhsjjQTBEVJeJcCUS7yxR8SC5wEnHzC44JDRYRbx5KVOdfAijSTqNdZomHbqV2TnXG4l8MGp+bcmw7NRKomyCBTuH2EJ8b3JSJOpEeUzXPL660eil4Aefd43ldjEAV9lCG9TkuYI+0GlZdyIn4Ae0kJSbDwFz785UDIANPZnX58HD79jL+/jJ9/hQYJuHrq3wE32gPjpQduAr7aA+1/5q0pDTnWsSjXn/SY983z1SeV1jWIioKo1j+8D8X3HHrUKzc784J51WSE5SGAIS995NuUpWCzMTfNDdP0R/JUXP0spHlRLnKUzlPVkh3oV2Ae6J+kf52eY9/nGOgCISMhAWGVzjIb9K2NJVzvfL4Kgp8iQHitc+216wDspMOQp5xre226p11PGLG91nfeNqf61rvmUqyrgkKWf00O8een4eOP6dfn8cvvORzIIYZ0X3TnEBkOIrS3YqJT4KeYB2s6aTsdSVX2+Sqai4mUREnQzykjIWAMxN1XEX7ml2ONeUhTOYT0NfeJx7oEdcSJbG197Da0eZDraTIro69qvKU5und3FcdC+6oH0Bg9lrFTTZL/cvS+WnEh5rNfq5d/NLHQ3RYi4bK1Bnkp7U5/Iqv4P0J9b72eyjJJpRuvA6+WD1DHhjnpmExouWBehGeIbRAT/TSSMOjiIqKXoA7kltJI64QMfIqRFsB4nRHZuoI41p9VOWYgWPJ6Sn3DTxQYSElYMPXqAFEwDsL7mE4uVMdik3YSHdSaHRuUzSGJaEnZg6b+aDdFmzRom6P3dVwt55un2Vn5bACerT1aMq5cegNkVcJWog6np+x+6fMuD7tqdAa+FWspMFQw3lryI5Iba0UkaHybFee8z9N9YOxD3mZbnlnn4JBSXdNU/55ZSlSKec61+pKQvVaOWaWUG9aX77nGSHtdX/OuO1Ql4O5ZKZJuRe7GuecuI+2EinyID9uS6lNT6dbyaMxVx+oV9IK/ly6twmJndR/UvMO4W0qTlYJ9rZnGJDJ2N7v/9a41as5io5VxNSIII0rYZUpFqEyDL6mSfAqSKVVe46iAytF6jF9DzBkGUW6lQ0tUhdQHAZk/RJg5yOYFAyEvpyjqBXQOwMOeRHOZTVTMB5XIrdoH6rNBQR5BODHaaFL6bFVkYf57cWRk4JPvbUFfci/luRbdWUnYgRy+llJo+iFaa1RhDFqd0j5Ut9QXk6yLDpLZs4oVrHK4OzZY/0pQg+SKV0OsHI5J4y4Bs7PmSEMOwIOBn29ugtOL8JVT2uINwPgOUuPbhzMgbIlxSsw6JytrYCQzY3gLJOiJcSLdzZnc5k83GItF9ebA2BDjJA9K2JW/DRkVfCB1SXDcJSA85I+WOuC32T1G9FGudqpUq3hIQiEnW07rggc47tspiQFbjT/Vy69rJm1vm/p+ktW+TZTXLdet3Q1o34HC6QdjVmjRyQxMpSRBLSa8p3W8orkuk9QR19Zma82aZ5zjxVf7ujDaM/i8oU2zk9JSYteClQ5nT6W48io/DSjF419jm+7lNdGSWY/+TX/zkHwbqv//rXociufSfLWoiz4+Dcf9ZgQCg+qimz/pK7j+m2LNPqmB5+F4XbQO8RxfVRm1GFf7JCIruNTEUlvIb+LLPJDXe67zeXX0FVnIAiTL0AMjaCb9nTml6iNvB/k+XOfNBZYj43LrXG77XSIBD9lHFAzB/7OgLZhj7I9TiTa/MDPQnzfFlTr7+muW6Q/Mq3OF7Q1Zp5OZJrKVle6ssvT7Pmfkymf7Nvs+c9I7yCmtN3uxoLim3o2RHWi/OuvdloLi1i3ZLLOfg1uIXXxYJxiCh/i83iOhHWZhNu53rO7S7cRPkGiy31w9SgY5hMXSr+UBsX4gnIQpfuJfR92OQJ9EoEXXZM0w8owsi5XW5PezTtmZrcLPb3HNhZKTCTSuwOqsR2PW8Tu1E4n61Q7r5reMcHik9NrA950YvziTrN3hwQVpoWJBk7BJiR1VaG6dY3V9/epy56PgYTNnzu+FgLcWsaSen6+H2Ma3UMfYjtpAgMzw5jvkq6+Wb74Zv0hxIUO/DskvZY5mhRdLS80n0n3CitNPmGttX3rvNuUNlLpcuNJLvA+TKHmWEoqEY+Kywm2W0oGMQQeMTbwPA5vcBxrXGPSjPbC1RUn0zCAy6AxjAkW8VhAxZJhhEzrQYlftYyf7t0rvm1eTlaMFeadc5C+17LSFkagFRudLjTPS6HRV1Tw9tHMUlTSmiaRnCbNO7nyxwzqhKGHtUC1PtX5jG3iwXR3wYGNQzhklm1V0p6FypZpq3ATM9TAwmFJ5cWoYKGTK46VUl0pJzAlUpZjgJ/6MfHu37FE8FlM1Lcwnd9+OC2pFe1RzZ0iA4G+VEnpPuuzVDpqR+9C1cTEo2GxEFSwnZG9rPuPb6qo5QSV5NssJizjvcMhXy9JpuxwZYmTs0LhDiQww2KEbTjpsjxLnqxolEUHTq2rMVY4nidepD8XjfiY4QaanDzNlwGnH7d327tsdpwdoNHEJhRw3pk41qu7WDx82Bw/WmSRC77M/p97LoAmoGiiOF659K/Qf/qH6ENdCqYoKSHNCpQBG2VchLa0lQ1K+Vm1daPW97VO+oos9mDjXx1WMbCKljGsj1n2fQWmTH1smK+0QdKYLWKA8xrEve2yRfLcj7Tjl6EVG1zE26MCVxHhYBYeaWZuar1RiaKudggseQuigM95GSii5EEaeGiy8ztuV/2Y3OAJBDiOjNQgBvRCw8bfvHOMnf8ucmiZpd/MBeigx1O0mcDwibV7q1Wdn35celyfjnyPq3ZR6U+j+3xhio5MfkdGsiYcHXyjcka2pQbAy1E6IOIL0LGDBpaQ9VCMe09TVr62gK15bTTbd47xnE8WEfpkxBzn3DIEoocxw03ranL5gihSYjYIxPkKx5DV0JvopgoEnvcTrykJFRqpbCn2a8Nc0p2gpzRDj2dYLqkrsFrTJpSGSLDwyUuuNvawXl6FiapEeVOGhZ4iRq0XHwDQEaYkk2i5SQlV6ZWIfo04hhT4GR3pTxg3JUGWlEVsCAoF0JQ3KOKiYIj3AQV5KZmuqszu+mPe1eeIs/PfWQdNCL9EvEqZyfX66Z8Crzp+L5FNqdINkJ6q0QBnVyoscecJxZwFvMfMWywqReymxEnCN6nobHvYAUWKkjEG7wtYUpVHSgFQuZ1O04Cyg0zoIAMk/Ex0G7agL1DBMl2EcdCwpe14RxeQVkxHFAILotUtUB83ugnqLwe7JFS0YB+OuXUTYWRTOeK6ZjkYVGcbmLC/CsEtVjCZl+Mk70WwCh2E0Cvv/Wx0QF7EkNZ1oVS1qMEzKHJXdZhSd/ux2QjemeaLpiLUBA6yVYStaYcCP/iJxInNETtusqMco7JLpWBs6bRBQJWqo6kR1TIedpsTpWB9rWwaP70JdVhhE7gxwk6ZK/v+qnxmT7/5n1pj4L7GZ+3lfXHN8GyvB7P+FzuFxtohR57+jDrhM8p8BOZMDwPAZcOzxABSrDshBDcUr7eBy/x8/FuAhg9wtAQQOQ5zdz5JgQ4VlAcEQS8FQ+Ca2IR8zIIATreBAsfrN4mFHjyWAYn+CGoobwJJQiPssCyheshS046P3ZMMAbkhbHOYpCI+/0FfyunXYun/QMbU2r08vrz/EJxjqDbFpF8049W9mXdOp5OZD2EAkTVH5QrCnway8Pz93on/hpyB5KQ7zFITHX+greZV0++z9gyKR4KU3r08vEYxPwZG29YYYp10049S/mXWor04lNx/JTjUQyVEUcV9fCPY0JPDK+7Ol66KKp4Ixj9dLxGNnspqoQExckmQpf8FMlxLSZcgEQAhGUKz+xwiSohmW4wVRkhVV0w3Tsh3X84MwipM0y4vpbL5Yrtab7W5/OJ7Ol+vt/ni+3p/vr/z733uJnqDmQtJAOPCq8uOCEPkyYu9xVMyL57jVUlUnXbfG1UFIMjZHr84k+sV6GBBmF/TPtTJ3LXmeOalGieF3TPY6Q8xJdwiw93zhpMIuyg9vNhM62z9OUz/YzvLEWvYDSShCrAPs0ZIR2Yv1h3EPIggG14ligm6sxz6MYqMbRNN/YfO0vySyHEvB05YC90fi4zpyscUG1I/QTSxQf1hlcEI+TVQpBeomr8mz7XSJ4DAPoN1bcxG15fyUZ+4llYWDfcjierudUDwekALe2Ix82olmb85T6tkFcNjosZdqJ3pysA2Eu3to03BC+4KQqCtOQx7LMLd9lSwFGfKkJTzPjcWHxH0Oed9VDE6r0eNXWmY8200wmqYZbFCp/XC07agcoenh3Yuj6WSpX5FWzCQHsHpfxzUMalKOusrBkrAhD54OoNIHHG1XnyaOTaMkvd7qDIsjLmexaONG9l74Zh8YM3G/mX3PqVtsZ3DtouxKT2IH7JPY3Pddy3ZOXEfXynwdxdjkmqEpbBRwSLRbSMJU42v3xs2iqX4Drimi7KmYN3T3jhGE0LbH0d4oaqXKuTLfElqwqWZ2WakW5ztx6vtiiiwT9rzp8wc6tINxQkcCdnK3X05bqxzlonKXvNtlUYyasdcnX8m2p4Qf12uKh9deR3xXsCVPSws=) format("woff2"),url(data:font/woff;base64,d09GRgABAAAAABVQAAsAAAAALcwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADsAAABUIIslek9TLzIAAAFEAAAAPQAAAFY7OUfjY21hcAAAAYQAAAGmAAAF+k4i/5hnbHlmAAADLAAADQwAABygNR+hemhlYWQAABA4AAAALAAAADYUe2rHaGhlYQAAEGQAAAAWAAAAJADBALZobXR4AAAQfAAAABAAAAFUH4AAAGxvY2EAABCMAAAArAAAAKxBXUhUbWF4cAAAETgAAAAfAAAAIAF3AORuYW1lAAARWAAAASoAAAIWkIbJG3Bvc3QAABKEAAACywAABTORY6r+eJxjYGRgYOBiMGCwY2BycfMJYeDLSSzJY5BiYGGAAJA8MpsxJzM9kYEDxgPKsYBpDiBmg4gCACY7BUgAeJxjYGSIZ5zAwMrAwMDP4AwkeaG0HgMLgwQDAxMDKzMDVhCQ5prC4PCR8WMIQwKQywEmGRgYQQQA9OkGmwAAAHic7dTVbtxAAEbhk2TDTE0aZmZmpobT7EP3dVbqVW9Sn/3Vt6ilb4488tiWPDJQD9QVVgolqPlDDR6/i9ma6nwdLdX5Er+q15Scr5S/voqxxrE4L1XH2uLaUnHHBhpporlY10ob7XTQSRfd9NBLH/18Y4BBvjPEMCOMMsY4E0wyxTQzzDLHPAssssRy8fxV1lhng0222GaHXfbY54BDjjjmhFPOOOeCS6645oZb7rjngR888sQzL7zyxjsf/OSTcvGiDfw/2hxK/87Kfsuoft3awNaFu6RSChdW6sMdVGkIbGNgmwLbHNiWcGdVWgPbFr5dpT2wHYHtDGxXYLsD2xPY3sD2BbY/sN8COxDYwcB+D+xQYIcDOxLY0cCOBXY8sBOBnQzsVGCnAzsT2NnAzgV2PrALgV0M7FJglwO7Ev4NKquBXQvsemA3ArsZ2K3Abgd2J7C7gd0L7H5gDwJ7GNijwB4H9iSwp4E9C+x5YC8CexnYq8BeB/YmsLeBvQvsfWAfAvsjsI+BfQrsc2BfAvsa2LfAvgf2I7A/A/sZ2HJQ/gvgceDJAAB4nI1ZO3PsyHXuRqMfeA44BAa4e2d5RzNcYixSvLOc5+694uVKLInaZamoNdfFW7XrUilRoMSBEwVKHDhx4MSBEwVKHDiUQilVqtR/x9/pBmYwJHdLGKCBfp0+ffo8vu5hgtH1gJ9gmuWMrSfLeYGnHqc8P+IXl3xxzhcGlx/1o6g/oOSsmppF840EFDxL5x4/ww5ARS8nxXw5Wetirss1Pn/eN8O0f532Vd/c99Oh6Y8NvtPh077oVlP/d5xIgMDU9jq3FGLXa2pJMNa3ff8JP+r7AZuwM7Zkl+yf2a/Zv7Dfsn9j/8H+i/2e/Q/7I/szaI9VPrhYLU7KJx/1t1fpbZty4j5/yJvKZadkXW97rCmhTPnko/72knn7UTRfH/J8sCUVc849ziPP83zPS13uw73CT13uBy436nH7EXnC9/3IZXrys39wrXqulbf3OnKvc9fk1L0O3It7IOML4Zp8n4o8ntK3D3Zs7myv0NvLve7ZcXhERMCUzYCdH7lWK9cq23uN9qgP3cvdI2IGI4i+a8NY9S268FN2x96zX7HfsH9lv2P/zv6T/Tf7A/tf9if2F/ZX9jf2fx290E/X/Ns1Zf2k5Du67z7aBd0pyVPK36E/T4Z4yvy2zcYuGcmHrn671DaXtqtqCz9wueQ5pWhe45aYK2y67+nh6R7NI5d7s6ex0XOkLy1lP/MbPu2Kjl1u9pyijZ9Tkybn2PQHex2u91Ro+hzNpkPf5bznSDPnL79iX1t/+QqaA29Zwl8uJ3BV9nFm+4aTT1icDPN8ttn4ZmR8IaXYINnk2VlOHtVlKWG88YGfM0nes16X6/vZQGXfv0Z6cLr1kV+xHjskL70/isbQty0xJPc70maz2fpn8vOSfOaaBij3fPw0V+mRGu6c/DBXvVeq2nPzHT4kK1o6y0fcOFJbdhyhvDNb1sz3BtZJ8wUNXR/1+6qqLg8PkTb1l2gh7Si1Ll2Na9XUX7n6dxxs6PHT+hu0sPXwzdrVuFZsF/di9sKuo5OCk8j64ojnKR8j8l3ysgBzy1mQBkHapyTYySjpiyJripHc7ISVF5FMqo7cYyv3rsTLGqG2nO2oqUL1H3YkPkmqYhdb31saFXHaZU5DMoiwmOC6Q+lFmqr27lDMO8XtGtziF5GMd5Ru1WDQ3j/pfKO1aPrcswDr/yH6tcs+Ke0yEkM1FmSiCQBUUoyEnIUyMMq4O/dzP93kpAqzvC3EPfV9Y5q5En1tscDEEdLbUW5T23/hCN+h08KS2vL2C/ZJ4//ZerG6GORqfFI/+biSSuKu9l4zQakUe6+W7ieg3NJ1NBarpx/Pkhg9NxjrzFWwkDwJgI/1IGW+2WyyKhtm5riqhju7e7D2PyCLGeQ9rsav+cniHV9d6HJwAaF/lnveRzKRqeedevo89bSXHn6Z4/WRlJQ79S5SIdJD5lt632Bs8gev2GuiuVycTHRZkKxLRfpVv+JKH/H5BWlFSXqny9X6nE/GeL9OtOwrLYWSQSjzwAulrHpBkMifTmQoeRT6yBsTiLcJl1ooIbXyZBi8DDwTJwcCDTNkRWwi5IxVRyfrr9nPIeuCjfYis1V4p/wIcODrgniZSa1DrSWGlGFIiexV4OSIkrdUFepRU4Pk4iBJDuhpZfoVfsLKlHxZfTLucTKEYm5tarUYwnWXIRc80UodHx5LZRKeo7AIES6NkihTSidc7Pi/w0ol8CvDx55aT2oNdDsv13MNxLgZWd0V8kAbo6PIpoMHKa5s+SxN+308HwwGj2lnrLSy2ZEG0xM9L2B966qhWvmDQTY0cRRtSVZqkAxNFMV/Hz1Ad7DbpRfHBv279IIIJfFWRwlrJU9jlKZ9xXw7YTMb5rt5XuW7+d3Da1NsjZxF1PAiGu9qNotvzrLszCB0zgzbxpBvYJeFHe0EsWcF1Z1fDIpJAQmn/PYtDVCZoZDXwXXA/cyNLsV0NBaipfEArg+eRtVTPrVTt1yO7mxX9KQAJrd7Fseri8qEBfDozju+ucmm06xN7017fQeN4tEDGrOZe/6u/s/wAPFVbdqlIZo4+QtQ6Fl/jnUiZ1bb9JSXl3xJknBbklUKyORnMRIvHgg/0C+GKpDjGHjrGI/0lNDBJoh0Zz1/Ce+WWFtQ8FnWml9zsi6YmcpfcXJdq8Ut574Hv+i/OTzUxzKAKyNANvAuOFe+hMtU0eGhf6yCgksU49760M8xikc+FJG+1vP1vJzXJ2GQDAL/hQwGsxcvjjdxvOngjjurXwgsbps6X06DNBrhuYtHMW5q5Te68WUj38JpJHUgvKfntRXyejKd2SsL0zSk5wzeYWpMmk4pzG79/DVTkANorO2u1r02saniKSXDrKoyPE/a0yhLqLN9TU1cmTNKrpv2Wdd27vBFmuCiCZRnvnT2Ax0weZYfZ9nUYIZx/DZmbD8GDZpeQCcItAUFNPuGx91shjpSoYlNqKIY4TrSoxGF7dEI5R3bvwfPodUiimPwosur2MTZ6OoM6m81bud3vrbzO7A6CzbrTqcRdcpczzwDz3hs78fj2J6vedtldLXAOJkbp42Z92zMzq13K0iGcAuTcyDGI37J33Es5foSEW5QakJkOxB04SOEYc8dal95iispOI8T5JWvkYciRlF7f+EjiOXacOEr4UNrcxNr4yMjxp1mHZ2i85YM9rZsZN7FhY8jXTG3qKXHU8wT4d5a5NnegUzUQac6MDAj7gvfeNitB5XZ7BDgzQ6sbgINdyY9AikCLSUs9wl/33P8lfssdZlFLfHyLDxG9H9rFs/i47etnn/NfoZYT6iK8BM5nXULwxHfnQIPHY7KRdyL4AZ6sTjIzNThqEwHKkojFWjoSKNbdAZwxD5mP7QeAWua8nNv9Y7n5HAsUgJ+rs/5Ekt/5MErLSjS29Bfri7KI67rRX2yMPLH8jDyw9AILCz8kw79UHFPcCHy/eJEZoAIvvC08L6gbiFEb8LQB4/chw5RPy6M//JReaI0KEQSOIoQRItJ7iGRFWRCsLJ2GI80YMunytdg1IFAqlbtzFbE+CkY5Eql8iBS0vOwsH7ip962DLw0hT4/9YTHVaYSFR2Q+/Xg1EUqQqj6M6XCE40P/Rg6EtBp3diq5SWn7YcJ0jvj1LGdy5eYTYHVsPuWAgByTtupWk2aDUyL7050rBUXuco5EFus6Y6iXhje4yvUHBXgX8cpLCvsUc0OA1yzDY0Gs8V2e5PnbfkGNVSuSxRe78rfunLowTTPh7vyhg50BoXHVL7b7wqHaeAuHqGE6+nUbPe6cP3P7HNv2YI0k3rfbjZn27j7HiNKyGZuTz0BkNYUcpdNgKFAjIHUBHiGNvgEbnalCMmZya6kIHeXZULSAcUIGy6bwWtIQQhYx500KArZymRUgEq8Ovg3YIhTawrLpFsW/Nb/CFcHlTa9d72z3jW+AHd1b4xM17c+INrQntSefYBp2Ouee7gGj7jzztkx5bPjzrHC/j60Q+m2MhXuM0qqne+kWBXDOx3Z1vOy9Rt6uzjOayxOAJn85vBpNIo3UmezTN9nuTvMGeaVlhRCpd7iwGsrCdrhKA3oc1HCv32uUpMO/FBkgyA9XkmZJSKMTXq89ecUyyS4P0CkgRau1hOli9W6VuuTWg9KxKfUg0jKJVR+tS6upeKGHwZaydIGlrBvEq0TE0RRgIED2TMwVf8ltZCDfsyDNEsDbrykn3g23ve3a7fDfiUw1ogdsyk7g3Wu2Kfskv2I/YR94VChdkCnBTxWxYqLVQtmALUtKoGzX07yAbCDg322hGpdl7HCltRMpyNSK4rJTsVs1lRW194Y+dIQAMpcCyHfVpS9sS02hMen5gogvkLVDfXPzAaZysjn9wDLZg8QEwKuqnYLIJs1ew/9JRxR2GjVGueSTKYkyIRHW2jh4JA9Lzg2Q7oIYuB2O5G7EXQhg4pkQyq0+Eg2MeqhkfBLVnf3Gs4UaxAnMAfBFbU9AHHnYvcUt4RL6PogVGF7m2ZbgWQ77KhTv9Wtn3XGhjRa43cclCQZPLRLGtm9lUvoenhmhK3MHiCtFza+/4DOSbDS1m6WVkLuqaEzpDckv3rennAWc0cXa0a/G0t5muVWjvHUztVtLoaxvZyId7J8j9WNMJdXbGJluZUWgNdOpDTBJVl33TyfhjvhbHYzc+PjXnTqB1QZ28ReW1m+Z591ZLkTI41atIpOz8MzI9i5Wdea2euRz4DdYhVqeKIS/uNjk6h0kgbFgQj8wZWU6XFq4lAkWes7f2zPXtzJW7l+bY8oy1ki+32Z2LRMVL+vPrJp0+cb2PvUYkZ76AT/NCjh+VJOQQNB9Jw+6G8Cbf+VegPzndjVpD/09LwKwygQSb/n6RB74DSWhG19gCoPocEeowA8EvKOqvQw4hocR3GgjArhpExklElQj32E9UF+Y6u7/ed2f1Q2VhuTIk7xLEY37ovt71UaG9/b69J1Z9WL/T+inkPLeJxjYGRgYADiXLuVX+L5bb4ycDMkAEUYbtVNa0WmgaIgcQ4GJhAHADbCCgV4nGNgZGBgSGBgQCIZGVBBKAAczQF4AAB4nGNgAIKEUUxNDADOAB+BAAAAAAAkAEIAYAFmApgCxALUAvQDGAM8A0wDXANsA3wDsAPSA/4EGARIBGYEkgS+BNQE1AT8BUgFfgWoBdYF/gYmBkYGXgaABpwGvgbeBwAHLgdgB3gHjgeyB8oH5AgACCQIOghYCG4IuAkICT4JaAnIChoKLgpgCmwKeAqECpAKsAq8Cv4LHAtCC1YLhAugC9wMSAxeDJAMzgz4DTYNdA2eDboN1A4eDjoOUHicY2BkYGAIZbjBIMEAAkxAzAWEDAz/wXwGACiBAlwAeJxljUtuwjAURW/4tQWpRarUDutRB1QKnyELgDkDZh2ExIGgJI4cg2DWFXQJXUJXUXUFXRA36WMCtuR33vG1H4A+fuGhWh5u67NaDdyw++cm6UG4RX4WbqOHF+EO/UC4izdMhHt4xDt/8Fp3NH0Uwg3c40O4Sf8p3CJ/CbfxhG/hDv2PcBdL/An38OoNos0hCU1eLvR6lwb23J7rUtsyMbka+6Ozmutc28DpSK2OqtyvJ87FKrYmUzOTO52mRhXWbHXo/I1zxXQ4jMX7ockQYYMDEoQwyFFiAY01dkgRwF7dXvZLpi1rUvcKY/gYXaXmTOV1MoBjjZhc4cizxJ7TJrQOMfuYGYOMNKvfVumU29AU9d2WJqT3OaN6VWCKIXd8kffr6dkJPZVeqAAAeJx9U2l32zYQ1MQ6LIuSZct27jRn06ZFrjb31dxpczQ9nO8QuZLwBAIMCMpWfn0AHraVl0TviZwZYLGL2WXtUO37v20cwhLqaKCJFpbRxgo6CNBFD6voYw3rGGADm9jCYRzBURzDcZzASZzCDziNMziLcziPC/gRF/ETfsYl/IJfwXAZV3AV13Adv+F33MBN3MJt3MFd3MN9PMBDPMIfeIwneIpneI4XeIlX+BN/4TXe4C3e4W+8xz/4F//hf2zjQy3gkoxloTChpB43Ru+wUEvJk5SCgtJuwlW0PJSZYXo0qnvQC12cirhhVkd83ggnFE638udQ77Kh5GrKdGalULQvx9xMKSqTrX4hB47PjFYs0jtqj0ga2W5FjBhP7ErFsqQbSh3u5WnkLHDPlMocjZz0IpJkiY20oRmZZkFXI21TNtFGfNLKctnNuVu3wl1u2VchNY8aFCd23iTDUzItmpP3YMm9190/MjpJyLAZN4IruzISkpxfIclOCRNtbIFF7HGQ47LiniN2P7wz0jJyVCekmgUeuJpjbhmXYqxYSMptX1vQvEHrC0ruUqeUhu6YKsD1VRvmcspFxdKu7ZaKcE6IsErri2RpwkOhxlWSj5l2XubGri1IvuyNUkmtEVOyE6Oz8aRfiplyN/JHniiFyuyy8KG2VsffWCzufvTri1Yn/VGmQivcXJRuDiYkk3IOKsMHQhUH+H2ltjSled+BaRXoGxwcFFp+DpwDrZiPlRjN2zGpLB/TAvkWrOQot76Vwyxpx0JlqbvVbiNHLZXFZETYdD6FQnYS6VaL+uoetxIj/B3rhiIdGG25M7UY+dRNbOj7K4PUDVFV2BHLh+5yrotZrFh+3pD8lA8WFgzFekbBQW2zIP7zPhDW31eLmPaeUHfN01uZ8mPJYrf3wJfTmPFM2vZM0A4bGxGt5iilj5nrmeCyVvsMegyzYgA=) format("woff")}.dxi:before{font-family:dhxicons!important;font-style:normal;font-weight:400!important;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dxi.dxi-alert-circle:before{content:"\F101"}.dxi.dxi-arrow-collapse:before{content:"\F102"}.dxi.dxi-arrow-expand:before{content:"\F103"}.dxi.dxi-blur-off:before{content:"\F104"}.dxi.dxi-blur:before{content:"\F105"}.dxi.dxi-calendar-today:before{content:"\F106"}.dxi.dxi-check:before{content:"\F107"}.dxi.dxi-checkbox-blank-outline:before{content:"\F108"}.dxi.dxi-checkbox-marked-circle:before{content:"\F109"}.dxi.dxi-checkbox-marked:before{content:"\F10A"}.dxi.dxi-chevron-down:before{content:"\F10B"}.dxi.dxi-chevron-left:before{content:"\F10C"}.dxi.dxi-chevron-right:before{content:"\F10D"}.dxi.dxi-chevron-up:before{content:"\F10E"}.dxi.dxi-clock-outline:before{content:"\F10F"}.dxi.dxi-clock:before{content:"\F110"}.dxi.dxi-close-circle:before{content:"\F111"}.dxi.dxi-close:before{content:"\F112"}.dxi.dxi-delete-forever:before{content:"\F113"}.dxi.dxi-delete:before{content:"\F114"}.dxi.dxi-dots-horizontal:before{content:"\F115"}.dxi.dxi-dots-vertical:before{content:"\F116"}.dxi.dxi-download:before{content:"\F117"}.dxi.dxi-empty:before{content:"\F118"}.dxi.dxi-eraser:before{content:"\F119"}.dxi.dxi-eye-off:before{content:"\F11A"}.dxi.dxi-eye:before{content:"\F11B"}.dxi.dxi-eyedropper-variant:before{content:"\F11C"}.dxi.dxi-file-excel:before{content:"\F11D"}.dxi.dxi-file-export:before{content:"\F11E"}.dxi.dxi-file-import:before{content:"\F11F"}.dxi.dxi-file-outline:before{content:"\F120"}.dxi.dxi-filter-variant:before{content:"\F121"}.dxi.dxi-folder-open:before{content:"\F122"}.dxi.dxi-folder:before{content:"\F123"}.dxi.dxi-format-align-center:before{content:"\F124"}.dxi.dxi-format-align-left:before{content:"\F125"}.dxi.dxi-format-align-right:before{content:"\F126"}.dxi.dxi-format-bold:before{content:"\F127"}.dxi.dxi-format-color-fill:before{content:"\F128"}.dxi.dxi-format-color-text:before{content:"\F129"}.dxi.dxi-format-italic:before{content:"\F12A"}.dxi.dxi-format-line-spacing:before{content:"\F12B"}.dxi.dxi-format-quote-close:before{content:"\F12C"}.dxi.dxi-format-quote-open:before{content:"\F12D"}.dxi.dxi-format-strikethrough:before{content:"\F12E"}.dxi.dxi-format-underline:before{content:"\F12F"}.dxi.dxi-format-vertical-align-bottom:before{content:"\F130"}.dxi.dxi-format-vertical-align-center:before{content:"\F131"}.dxi.dxi-format-vertical-align-top:before{content:"\F132"}.dxi.dxi-function-variant:before{content:"\F133"}.dxi.dxi-help-circle-outline:before{content:"\F134"}.dxi.dxi-information-outline:before{content:"\F135"}.dxi.dxi-key:before{content:"\F136"}.dxi.dxi-link-variant-off:before{content:"\F137"}.dxi.dxi-link-variant:before{content:"\F138"}.dxi.dxi-loading:before{content:"\F139"}.dxi.dxi-magnify:before{content:"\F13A"}.dxi.dxi-menu-down:before{content:"\F13B"}.dxi.dxi-menu-left:before{content:"\F13C"}.dxi.dxi-menu-right:before{content:"\F13D"}.dxi.dxi-menu-up:before{content:"\F13E"}.dxi.dxi-minus-box:before{content:"\F13F"}.dxi.dxi-minus:before{content:"\F140"}.dxi.dxi-numeric:before{content:"\F141"}.dxi.dxi-pencil:before{content:"\F142"}.dxi.dxi-plus-circle:before{content:"\F143"}.dxi.dxi-plus:before{content:"\F144"}.dxi.dxi-printer:before{content:"\F145"}.dxi.dxi-redo:before{content:"\F146"}.dxi.dxi-rotate-right:before{content:"\F147"}.dxi.dxi-select-all:before{content:"\F148"}.dxi.dxi-sort-variant:before{content:"\F149"}.dxi.dxi-table-column-plus-before:before{content:"\F14A"}.dxi.dxi-table-column-remove:before{content:"\F14B"}.dxi.dxi-table-column:before{content:"\F14C"}.dxi.dxi-table-row-plus-before:before{content:"\F14D"}.dxi.dxi-table-row-remove:before{content:"\F14E"}.dxi.dxi-table-row:before{content:"\F14F"}.dxi.dxi-undo:before{content:"\F150"}.dxi.dxi-unfold-more-horizontal:before{content:"\F151"}.dxi.dxi-vault:before{content:"\F152"}.dxi.dxi-view-grid:before{content:"\F153"}.dxi.dxi-view-sequential:before{content:"\F154"}.dxi{display:inline-block;text-rendering:auto;line-height:0;font-size:0}.dxi:before{font-size:20px}.dxi--small:before{font-size:16px}.dxi--medium:before{font-size:20px}.dxi--large:before{font-size:24px}@-webkit-keyframes a{0%{transform:rotate(0deg);transform-origin:center center}to{transform:rotate(1439deg);transform-origin:center center}}@keyframes a{0%{transform:rotate(0deg);transform-origin:center center}to{transform:rotate(1439deg);transform-origin:center center}}.dhx_button{overflow:visible;position:relative;text-decoration:none;background-image:none;border:0;touch-action:manipulation;-webkit-appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;cursor:pointer}.dhx_button:active,.dhx_button:focus{outline:none}.dhx_button__icon,.dhx_button__text{pointer-events:none}.dhx_button__icon{line-height:0}.dhx_button__icon:before{display:inline-block}.dhx_button__icon+.dhx_button__text{margin-left:4px}.dhx_button__loading{display:none;position:absolute;left:0;top:0;right:0;bottom:0;justify-content:center;align-items:center}.dhx_button__loading-icon{-webkit-animation:a .9s linear infinite;animation:a .9s linear infinite}.dhx_button--width_full{width:100%}.dhx_button--justify_between{justify-content:space-between}.dhx_button--circle.dhx_button--size_small{border-radius:28px}.dhx_button--circle.dhx_button--size_medium{border-radius:32px}.dhx_button--disabled,.dhx_button:disabled{pointer-events:none}.dhx_button--icon.dhx_button--circle:not(.dhx_button--width_full){border-radius:50%}.dhx_button--icon.dhx_button--circle:not(.dhx_button--width_full).dhx_button--size_medium{padding-left:6px;padding-right:6px}.dhx_button--icon.dhx_button--circle:not(.dhx_button--width_full).dhx_button--size_small{padding-left:4px;padding-right:4px}.dhx_button--loading{position:relative}.dhx_button--loading .dhx_button__loading{display:flex}.dhx_button--loading .dhx_button__icon,.dhx_button--loading .dhx_button__text{visibility:hidden}.dhx_button--size_small{padding:4px 12px;font-size:14px;line-height:20px}.dhx_button--size_small .dhx_button__icon:before{font-size:16px;line-height:16px}.dhx_button--size_small.dhx_button--loading-icon:before{font-size:16px;margin-top:-8px;margin-left:-8px}.dhx_button--size_medium{padding:6px 16px;text-transform:uppercase;line-height:20px}.dhx_button--size_medium .dhx_button__icon:before{font-size:20px;line-height:20px}.dhx_button--size_medium.dhx_button--loading-icon:before{font-size:20px;margin-top:-10px;margin-left:-10px}.dhx_button--view_flat{display:flex;justify-content:center;align-items:center;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:500;line-height:20px;text-align:center;color:#fff;transition:background-color .2s ease-in,color .2s ease-in,box-shadow .2s ease-in}.dhx_button--view_flat:focus,.dhx_button--view_flat:hover{transition:background-color .2s ease-out,color .2s ease-out,box-shadow .2s ease-out}.dhx_button--view_flat.dhx_button--color_primary{background-color:#0288d1;outline-width:0}.dhx_button--view_flat.dhx_button--color_primary.dhx_button--active,.dhx_button--view_flat.dhx_button--color_primary:focus,.dhx_button--view_flat.dhx_button--color_primary:hover{background-color:#35a0da}.dhx_button--view_flat.dhx_button--color_primary:active{background-color:#0288d1;box-shadow:none}.dhx_button--view_flat.dhx_button--color_primary.dhx_button--disabled,.dhx_button--view_flat.dhx_button--color_primary:disabled{background-color:#81c4e8}.dhx_button--view_flat.dhx_button--color_secondary{background-color:#4d4d4d;outline-width:0}.dhx_button--view_flat.dhx_button--color_secondary.dhx_button--active,.dhx_button--view_flat.dhx_button--color_secondary:focus,.dhx_button--view_flat.dhx_button--color_secondary:hover{background-color:#717171}.dhx_button--view_flat.dhx_button--color_secondary:active{background-color:#4d4d4d;box-shadow:none}.dhx_button--view_flat.dhx_button--color_secondary.dhx_button--disabled,.dhx_button--view_flat.dhx_button--color_secondary:disabled{background-color:#a6a6a6}.dhx_button--view_flat.dhx_button--color_danger{background-color:#ff5252;outline-width:0}.dhx_button--view_flat.dhx_button--color_danger.dhx_button--active,.dhx_button--view_flat.dhx_button--color_danger:focus,.dhx_button--view_flat.dhx_button--color_danger:hover{background-color:#ff7575}.dhx_button--view_flat.dhx_button--color_danger:active{background-color:#ff5252;box-shadow:none}.dhx_button--view_flat.dhx_button--color_danger.dhx_button--disabled,.dhx_button--view_flat.dhx_button--color_danger:disabled{background-color:#ffa9a9}.dhx_button--view_flat.dhx_button--color_success{background-color:#0ab169;outline-width:0}.dhx_button--view_flat.dhx_button--color_success.dhx_button--active,.dhx_button--view_flat.dhx_button--color_success:focus,.dhx_button--view_flat.dhx_button--color_success:hover{background-color:#3bc187}.dhx_button--view_flat.dhx_button--color_success:active{background-color:#0ab169;box-shadow:none}.dhx_button--view_flat.dhx_button--color_success.dhx_button--disabled,.dhx_button--view_flat.dhx_button--color_success:disabled{background-color:#85d8b4}.dhx_button--view_link{display:flex;justify-content:center;align-items:center;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:500;line-height:20px;text-align:center;border-radius:2px;background:transparent;transition:background-color .2s ease-in,box-shadow .2s ease-in}.dhx_button--view_link:focus,.dhx_button--view_link:hover{transition:background-color .2s ease-out,box-shadow .2s ease-out}.dhx_button--view_link.dhx_button--color_primary{color:#0288d1;outline-width:0}.dhx_button--view_link.dhx_button--color_primary:focus,.dhx_button--view_link.dhx_button--color_primary:hover{background-color:#d9edf8}.dhx_button--view_link.dhx_button--color_primary.dhx_button--active,.dhx_button--view_link.dhx_button--color_primary:active{background-color:#b8def2}.dhx_button--view_link.dhx_button--color_primary.dhx_button--disabled,.dhx_button--view_link.dhx_button--color_primary:disabled{color:#81c4e8}.dhx_button--view_link.dhx_button--color_secondary{color:#4d4d4d;outline-width:0}.dhx_button--view_link.dhx_button--color_secondary:focus,.dhx_button--view_link.dhx_button--color_secondary:hover{background-color:#e4e4e4}.dhx_button--view_link.dhx_button--color_secondary.dhx_button--active,.dhx_button--view_link.dhx_button--color_secondary:active{background-color:#cdcdcd}.dhx_button--view_link.dhx_button--color_secondary.dhx_button--disabled,.dhx_button--view_link.dhx_button--color_secondary:disabled{color:#a6a6a6}.dhx_button--view_link.dhx_button--color_danger{color:#ff5252;outline-width:0}.dhx_button--view_link.dhx_button--color_danger:focus,.dhx_button--view_link.dhx_button--color_danger:hover{background-color:#ffe5e5}.dhx_button--view_link.dhx_button--color_danger.dhx_button--active,.dhx_button--view_link.dhx_button--color_danger:active{background-color:#ffcfcf}.dhx_button--view_link.dhx_button--color_danger.dhx_button--disabled,.dhx_button--view_link.dhx_button--color_danger:disabled{color:#ffa9a9}.dhx_button--view_link.dhx_button--color_success{color:#0ab169;outline-width:0}.dhx_button--view_link.dhx_button--color_success:focus,.dhx_button--view_link.dhx_button--color_success:hover{background-color:#daf3e9}.dhx_button--view_link.dhx_button--color_success.dhx_button--active,.dhx_button--view_link.dhx_button--color_success:active{background-color:#bae9d5}.dhx_button--view_link.dhx_button--color_success.dhx_button--disabled,.dhx_button--view_link.dhx_button--color_success:disabled{color:#85d8b4}.dhx_button--sidebar .dhx_button__icon+.dhx_button__text{margin-left:8px;margin-right:auto}.dhx_widget .dhx_button__icon{line-height:0}.dhx_widget .dhx_button__icon:before{font-size:20px;line-height:20px}.dhx_widget .dhx_button--size_small .dhx_button__icon:before{font-size:16px;line-height:16px}.dhx_form-group{position:relative;display:block;text-align:left;padding-bottom:16px}.dhx_form-group--simplevault{line-height:0;height:100%}.dhx_form-group--simplevault .dhx_label{margin-bottom:4px}.dhx_form-group--textarea{display:flex;flex-direction:column;height:100%}.dhx_form-group--textarea .dhx_input--textarea,.dhx_form-group--textarea .dhx_input__wrapper{height:100%}.dhx_form-group--textarea .dhx_label{min-height:20px;line-height:20px;margin-bottom:4px}.dhx_form-group--inline{display:flex;flex-direction:row;width:100%;align-items:center;position:relative}.dhx_form-group--inline .dhx_label{position:relative;flex:0 1 auto;max-height:40px;margin-right:16px;margin-bottom:0;text-align:right;width:100%;margin-top:6px;align-self:flex-start}.dhx_form-group--inline .dhx_input__wrapper{flex:0 1 auto;width:300%;height:100%}.dhx_form-group--inline .dhx_label--with-help{justify-content:flex-end}.dhx_form-group--required:not(.dhx_form-group--label_sr) .dhx_label:not(.dhx_label--with-help){position:relative;margin-bottom:0}.dhx_form-group--required:not(.dhx_form-group--label_sr) .dhx_label:not(.dhx_label--with-help):after{content:"*";display:inline-block;padding-left:4px;color:rgba(0,0,0,.3)}.dhx_form-group--required:not(.dhx_form-group--label_sr) .dhx_label__holder{position:relative;max-width:100%;overflow:hidden;text-overflow:ellipsis}.dhx_form-group--required:not(.dhx_form-group--label_sr) .dhx_label__holder:after{content:"*";display:inline-block;padding-left:4px;color:rgba(0,0,0,.3)}.dhx_form-group--no-message-holder{padding-bottom:0}.dhx_form-group--disabled{opacity:.6;pointer-events:none;cursor:default}.dhx_form-group--hidden{display:none}.dhx_form-group--state_error .dhx_input__caption,.dhx_form-group--state_error .dhx_label{color:#ff5252}.dhx_form-group--state_error .dhx_combobox-input-box,.dhx_form-group--state_error .dhx_combobox-input-box:focus,.dhx_form-group--state_error .dhx_input,.dhx_form-group--state_error .dhx_input:focus{box-shadow:inset 0 0 0 1px #ffbaba}.dhx_form-group--state_error .dhx_simplevault-files,.dhx_form-group--state_error .dhx_simplevault-files:focus,.dhx_form-group--state_error .dhx_simplevault__drop-area,.dhx_form-group--state_error .dhx_simplevault__drop-area:focus{border-color:#ffbaba}.dhx_form-group--state_success .dhx_input__caption,.dhx_form-group--state_success .dhx_label{color:#0ab169}.dhx_form-group--state_success .dhx_combobox-input-box,.dhx_form-group--state_success .dhx_combobox-input-box:focus,.dhx_form-group--state_success .dhx_input,.dhx_form-group--state_success .dhx_input:focus{box-shadow:inset 0 0 0 1px #9de0c3}.dhx_form-group--state_success .dhx_simplevault__drop-area,.dhx_form-group--state_success .dhx_simplevault__drop-area:focus{border-top-color:#9de0c3;border-left-color:#9de0c3;border-right-color:#9de0c3}.dhx_form-group--state_success .dhx_simplevault-files,.dhx_form-group--state_success .dhx_simplevault-files:focus{border-right-color:#9de0c3;border-left-color:#9de0c3;border-bottom-color:#9de0c3}.dhx_form-group--label_sr .dhx_label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dhx_form-group .dhx_combobox{margin:0}.dhx_form-group .dhx_slider{padding-bottom:0}.dhx_input{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;height:auto;padding:6px 8px;margin:0;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);background-color:#f6f6f6;background-clip:padding-box;box-shadow:inset 0 0 0 1px #dfdfdf;border:0;border-radius:2px;outline:0;transition:border-color .2s ease-in,box-shadow .2s ease-in}.dhx_input::-webkit-input-placeholder{color:rgba(0,0,0,.5)}.dhx_input::-moz-placeholder{color:rgba(0,0,0,.5)}.dhx_input:-ms-input-placeholder,.dhx_input::-ms-input-placeholder{color:rgba(0,0,0,.5)}.dhx_input::placeholder{color:rgba(0,0,0,.5)}.dhx_input:focus{box-shadow:inset 0 0 0 1px #67b8e3}.dhx_input--icon-padding{padding-right:24px}.dhx_input--textarea{max-width:100%}.dhx_input--textinput{box-shadow:none;background:none;padding-left:0}.dhx_input--textinput:focus{box-shadow:none}.dhx_input__wrapper{width:100%;display:flex;flex-direction:column;position:relative}.dhx_input__wrapper:before{color:rgba(0,0,0,.5);pointer-events:none;position:absolute;right:4px;top:50%;transform:translateY(-50%)}.dhx_input__container{width:100%;display:inline-block;position:relative}.dhx_input__caption{left:0;bottom:0;max-width:100%;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:12px;font-weight:400;line-height:16px;color:rgba(0,0,0,.5);white-space:wrap;overflow-x:hidden;text-overflow:ellipsis;cursor:default}.dhx_input__icon{position:absolute;top:50%;transform:translateY(-50%);right:4px;z-index:1;color:rgba(0,0,0,.5);pointer-events:none}.dhx_input__icon--color-selected{border-radius:2px}.dhx_input__icon--color-selected:after,.dhx_input__icon--color-selected:before{opacity:0}.dhx_widget .dhx_input__icon{line-height:0}.dhx_widget .dhx_input__icon:before{font-size:20px;line-height:20px}.dhx_label{display:inline-block;width:auto;flex:0 1 auto;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:500;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis;cursor:pointer;transition:color .2s ease-in,opacity .2s ease-in}.dhx_label:hover{opacity:.8;transition:color .2s ease-out,opacity .2s ease-out}.dhx_label__holder{max-width:100%;overflow:hidden;text-overflow:ellipsis}.dhx_label--with-help{display:flex;align-items:center}.dhx_label-help{margin-left:4px;color:#0288d1;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.dhx_label-help:focus{outline:none}.dhx_checkbox{position:relative;display:inline-block;width:auto;padding-top:0;cursor:pointer}.dhx_checkbox__visual-input{display:block;border:2px solid rgba(0,0,0,.5);min-width:20px;min-height:20px;max-width:20px;max-height:20px;background-color:#fff;border-radius:2px;cursor:pointer}.dhx_checkbox .dhx_label{margin-top:4px;margin-bottom:0;width:auto}.dhx_checkbox .dhx_label:after{display:none}.dhx_checkbox .dhx_input__caption{position:static;display:block;transform:none}.dhx_checkbox.dhx_form-group--inline{display:flex;align-items:center;white-space:nowrap}.dhx_checkbox.dhx_form-group--inline .dhx_label{padding-left:6px;margin-top:0}.dhx_checkbox.dhx_form-group--hidden{display:none}.dhx_checkbox__input:disabled+*+.dhx_label,.dhx_checkbox__input:disabled+.dhx_checkbox__visual-input{opacity:.6}.dhx_checkbox__input:focus+.dhx_checkbox__visual-input{border-color:#0288d1}.dhx_checkbox__input:checked+.dhx_checkbox__visual-input{background-color:#0288d1;background-position:50%;background-size:cover;border-color:#0288d1;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTIxIDdMOSAxOWwtNS41LTUuNSAxLjQxLTEuNDFMOSAxNi4xNyAxOS41OSA1LjU5IDIxIDd6Ii8+PC9zdmc+);transition:background-color .2s ease-out}.dhx_radiobutton{position:relative;display:inline-block;width:auto;padding-top:0;cursor:pointer}.dhx_radiobutton__visual-input{display:block;border:2px solid rgba(0,0,0,.5);bottom:4px;left:0;min-width:20px;min-height:20px;max-width:20px;max-height:20px;background-color:#fff;border-radius:50%}.dhx_radiobutton .dhx_label{margin-top:4px;margin-bottom:0;width:auto;cursor:pointer}.dhx_radiobutton .dhx_input__caption{position:static;display:block}.dhx_radiobutton.dhx_form-group--inline{white-space:nowrap;display:flex;align-items:center}.dhx_radiobutton.dhx_form-group--inline .dhx_label{padding-left:6px;margin-top:0;padding-top:2px;padding-bottom:2px}.dhx_radiobutton__input:disabled+*+.dhx_label,.dhx_radiobutton__input:disabled+.dhx_radiobutton__visual-input{opacity:.6}.dhx_radiobutton__input:focus+.dhx_radiobutton__visual-input{border-color:#0288d1}.dhx_radiobutton__input:checked+.dhx_radiobutton__visual-input{background-color:#0288d1;border-color:#0288d1;box-shadow:inset 0 0 0 4px #fff;transition:background-color .2s ease-out}.dhx_select{-webkit-appearance:none;-moz-appearance:none;appearance:none}.dhx_select::-ms-expand{display:none}.dhx_select__placeholder{position:absolute;left:8px;top:50%;transform:translateY(-50%);pointer-events:none;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7)}.dhx_select:focus+.dhx_select__placeholder{opacity:0}.dhx_simplevault{border:none;border-radius:2px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;line-height:20px;font-size:14px;font-weight:400;text-align:center;overflow:hidden;position:relative}.dhx_simplevault__drop-area{background-color:#f6f6f6;border:1px solid #dfdfdf;transition:all .2s ease-in;display:flex;height:115px;width:100%;flex-direction:column;justify-content:center;align-items:center;padding:0 20px}.dhx_simplevault__drop-area--on-drag{border-style:dashed;transition:border .2s ease-out}.dhx_simplevault__icon:before{font-size:40px;color:rgba(0,0,0,.3);transition:color .2s ease-in}.dhx_simplevault__title{max-width:100%}.dhx_simplevault__label{color:#0288d1;cursor:pointer}.dhx_simplevault--on-drag .dhx_simplevault-loader{opacity:1;transform:translateY(0);transition:opacity .2s ease-in,transform .2s ease-in}.dhx_simplevault-files{background-color:#f6f6f6;border:1px solid #dfdfdf;border-top:none;transition:all .2s ease-in;width:100%;margin:0;padding:0;list-style:none;max-height:calc(100% - 115px);height:calc(100% - 115px);overflow-y:auto}.dhx_simplevault-files__fixed{max-height:276px}.dhx_simplevault-files__item{position:relative;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;line-height:20px;font-size:14px;text-align:left;color:rgba(0,0,0,.7);max-width:100%;overflow:hidden;text-overflow:ellipsis;padding:8px 40px 8px 8px}.dhx_simplevault-files__item:not(:last-child){border-bottom:1px solid #e4e4e4}.dhx_simplevault-files__item-name{word-break:break-word}.dhx_simplevault-files__delete{position:absolute;right:4px;top:50%;transform:translateY(-50%)}.dhx_simplevault-loader{display:flex;justify-content:center;align-items:center;position:absolute;left:1px;right:1px;top:1px;bottom:1px;background-color:#ededed;transform:translateY(100%);opacity:0;will-change:transform;transition:0ms;z-index:1}.dhx_simplevault-loader .dhx_simplevault__icon:before{color:#0288d1}.dhx_slider{position:relative;display:flex;flex-direction:column;padding-bottom:16px}.dhx_slider--label-inline{flex-direction:row;align-items:center}.dhx_slider--label-inline .dhx_slider__label{text-align:right;flex:0 1 auto;margin-right:16px;margin-bottom:0;width:100%}.dhx_slider--label-inline .dhx_label--with-help{justify-content:flex-end}.dhx_slider--label-inline .dhx_slider__track-holder{width:300%;flex:0 1 auto}.dhx_slider--label_sr .dhx_label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dhx_slider--mode_vertical{height:100%;display:inline-flex}.dhx_slider--mode_vertical .dhx_slider__label{align-self:flex-start}.dhx_slider--mode_vertical .dhx_slider__track-holder{height:100%;display:flex;padding:8px 0}.dhx_slider--mode_vertical .dhx_slider__track{align-self:stretch;padding:0 8px}.dhx_slider--mode_vertical .dhx_slider__track:before{width:2px;height:100%}.dhx_slider--mode_vertical .dhx_slider__range{width:2px;left:50%;transform:translate(-50%)}.dhx_slider--mode_vertical .dhx_slider__thumb{left:50%}.dhx_slider--mode_vertical .dhx_slider__tick{height:1px;width:4px}.dhx_slider--mode_vertical .dhx_slider__tick:not(:first-child){transform:translateY(-.5px)}.dhx_slider--mode_vertical .dhx_slider__tick--major{width:8px}.dhx_slider--mode_vertical .dhx_slider__tick-label{top:50%;left:100%;transform:translateY(-50%);padding-left:2px}.dhx_slider--disabled{opacity:.6;pointer-events:none;cursor:default}.dhx_slider--ticks .dhx_slider__ticks-holder{height:4px}.dhx_slider--ticks.dhx_slider--mode_vertical .dhx_slider__ticks-holder{height:100%;width:4px}.dhx_slider__track-holder{position:relative;flex:1}.dhx_slider__track{position:relative;padding-top:8px;padding-bottom:8px;cursor:pointer;z-index:1}.dhx_slider__track:before{content:"";display:block;height:2px;background-color:#b3b3b3}.dhx_slider__thumb{position:absolute;top:50%;transform:translate(-50%,-50%);width:12px;height:12px;border-radius:50%;background-color:#0288d1;transition:transform .1s ease-out,border-color .2s ease-out,background-color .2s ease-out;will-change:transform;cursor:pointer}.dhx_slider__thumb:after,.dhx_slider__thumb:before{content:"";display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(0);border-radius:50%;will-change:transform}.dhx_slider__thumb:before{width:28px;height:28px;background-color:rgba(2,136,209,.15)}.dhx_slider__thumb:after,.dhx_slider__thumb:before{transition:transform .2s ease-out,background-color .2s ease-out}.dhx_slider__thumb:after{width:16px;height:16px;background-color:#0288d1}.dhx_slider__thumb:focus,.dhx_slider__thumb:hover{outline:none}.dhx_slider__thumb:focus:before,.dhx_slider__thumb:hover:before{transform:translate(-50%,-50%) scale(1);transition:transform .2s ease-in,background-color .2s ease-in}.dhx_slider__thumb--active,.dhx_slider__thumb:active{z-index:1}.dhx_slider__thumb--active:after,.dhx_slider__thumb:active:after{transform:translate(-50%,-50%) scale(1);transition:transform .2s ease-in,background-color .2s ease-in}.dhx_slider__thumb--nullable{background-color:#b3b3b3}.dhx_slider__thumb--nullable:after{width:8px;height:8px;transform:translate(-50%,-50%) scale(1);background:#fff}.dhx_slider__thumb--nullable:before{background-color:rgba(77,77,77,.15)}.dhx_slider__thumb--disabled{background-color:#b3b3b3;border:2px solid #fff}.dhx_slider__thumb--disabled:after,.dhx_slider__thumb--disabled:before{display:none}.dhx_slider__thumb-label{position:absolute;padding:6px 12px;transform:translate(-50%,-50%);border-radius:2px;background-color:#333;box-shadow:0 2px 5px rgba(0,0,0,.3);font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:400;line-height:20px;color:#fff;transition:opacity transform .01s ease-in;pointer-events:none;z-index:1}.dhx_slider__thumb-label--vertical{left:50px}.dhx_slider__thumb-label--horizontal{top:-30px}.dhx_slider__thumb-label--active{z-index:10}.dhx_slider__range{position:absolute;top:50%;transform:translateY(-50%);height:2px;background-color:#0288d1;pointer-events:none}.dhx_slider__ticks-holder{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_slider__tick{position:absolute;top:0;width:1px;height:4px;background-color:#b3b3b3}.dhx_slider__tick:not(:first-child){transform:translateX(-.5px)}.dhx_slider__tick--major{height:8px}.dhx_slider__tick-label{position:absolute;top:10px;transform:translateX(-50%);font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:10px;color:rgba(0,0,0,.7);line-height:1}.dhx_message-container{display:flex;flex-direction:column;align-items:flex-end;position:absolute;padding:20px;max-height:100%;-ms-scroll-chaining:none;overscroll-behavior:contain;width:auto;overflow:hidden;border:2px solid transparent;z-index:2147483647}.dhx_message-container *{box-sizing:border-box}.dhx_message-container--top-left{top:0;left:0}.dhx_message-container--top-right{top:0;right:0}.dhx_message-container--bottom-left{align-items:flex-start;bottom:0;left:0}.dhx_message-container--bottom-right{align-items:flex-start;bottom:0;right:0}.dhx_message-container--in-body{position:fixed}.dhx_message{display:flex;justify-content:space-between;width:240px;flex-shrink:0;padding:12px;margin-bottom:4px;margin-top:4px;border-radius:2px;box-shadow:0 1px 6px rgba(0,0,0,.1),0 10px 20px rgba(0,0,0,.1);background-color:#fff;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_message,.dhx_message__text{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:500;line-height:20px;font-size:14px;color:rgba(0,0,0,.7)}.dhx_message__text{overflow-wrap:break-word;word-wrap:break-word;word-break:break-all}.dhx_message__icon{align-self:center;padding-left:8px;color:rgba(0,0,0,.5)}.dhx_message--error .dhx_message__icon,.dhx_message--error .dhx_message__text,.dhx_message--success .dhx_message__icon,.dhx_message--success .dhx_message__text{color:#fff}.dhx_message--error{background-color:#ff5252}.dhx_message--success{background-color:#0ab169}.dhx_alert{display:flex;flex-direction:column;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;padding:24px;background:#fff;border-radius:2px;box-shadow:0 2px 5px rgba(0,0,0,.3);will-change:transform;z-index:2147483647}.dhx_alert__overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:2147483646}.dhx_alert__header{position:relative;margin-bottom:20px;font-weight:500;line-height:20px;color:rgba(0,0,0,.7)}.dhx_alert__content,.dhx_alert__header{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px}.dhx_alert__content{height:100%;font-weight:400;color:rgba(0,0,0,.5);line-height:1.3;overflow-y:auto;overflow-wrap:break-word;word-wrap:break-word}.dhx_alert__footer{margin-top:20px;display:flex;justify-content:flex-start}.dhx_alert__footer--center{justify-content:center}.dhx_alert__footer--right{justify-content:flex-end}.dhx_alert__footer .dhx_button:not(:last-child){margin-right:16px}.dhx_tooltip{pointer-events:none;border-radius:2px;background-color:#333;box-shadow:0 2px 5px rgba(0,0,0,.3);padding:6px 12px;transition:opacity .01s ease,transform .01s ease;opacity:0;z-index:999;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif}.dhx_tooltip--animate{opacity:1;transition:opacity .15s ease-out}.dhx_tooltip--forced{opacity:1}.dhx_tooltip--bottom{margin:8px 0 0}.dhx_tooltip--top{margin:-8px 0 0}.dhx_tooltip--left{margin:0 0 -8px}.dhx_tooltip--right{margin:0 0 0 8px}.dhx_tooltip--light{background-color:#fff}.dhx_tooltip--light .dhx_tooltip__text{color:rgba(0,0,0,.7)}.dhx_widget--fullscreen .dhx_tooltip{z-index:2147483647}.dhx_tooltip__text{color:#fff;font-size:14px;font-weight:500;line-height:20px}.dhx_layout{max-width:100%;max-height:100%;width:100%;height:100%}.dhx_layout-columns{display:flex;flex-direction:row;overflow:hidden}.dhx_layout-columns>.dhx_layout-cell:not(.dhx_layout-rows):not(.dhx_layout-columns):not(.dhx_layout-cell--gravity){flex:0 1 auto}.dhx_layout-columns>.dhx_layout-cell--resizeble{overflow-x:hidden}.dhx_layout-rows{display:flex;flex-direction:column;overflow:hidden}.dhx_layout-rows>.dhx_layout-cell:not(.dhx_layout-rows):not(.dhx_layout-columns):not(.dhx_layout-cell--gravity){flex:0 1 auto}.dhx_layout-rows>.dhx_layout-cell--resizeble{overflow-y:hidden}.dhx_layout-cell--start,.dhx_layout-columns--start,.dhx_layout-rows--start{justify-content:flex-start}.dhx_layout-cell--center,.dhx_layout-columns--center,.dhx_layout-rows--center{justify-content:center}.dhx_layout-cell--end,.dhx_layout-columns--end,.dhx_layout-rows--end{justify-content:flex-end}.dhx_layout-cell--between,.dhx_layout-columns--between,.dhx_layout-rows--between{justify-content:space-between}.dhx_layout-cell--around,.dhx_layout-columns--around,.dhx_layout-rows--around{justify-content:space-around}.dhx_layout-cell--evenly,.dhx_layout-columns--evenly,.dhx_layout-rows--evenly{justify-content:space-evenly}.dhx_layout-cell{flex-basis:auto;flex-grow:0;flex-shrink:0}.dhx_layout-cell--bordered{border:1px solid #e4e4e4}.dhx_layout-cell--border_top{border-top:1px solid #e4e4e4}.dhx_layout-cell--border_bottom{border-bottom:1px solid #e4e4e4}.dhx_layout-cell--border_left{border-left:1px solid #e4e4e4}.dhx_layout-cell--border_right{border-right:1px solid #e4e4e4}.dhx_layout-cell--border-shadow{border:0;box-shadow:0 2px 4px rgba(0,0,0,.15)}.dhx_layout-cell--no-border{border:0}.dhx_layout-cell--no-border_top{border-top:0}.dhx_layout-cell--no-border_bottom{border-bottom:0}.dhx_layout-cell--no-border_left{border-left:0}.dhx_layout-cell--no-border_right{border-right:0}.dhx_layout-cell--gravity{flex:1 1 auto}.dhx_layout-cell--flex{display:flex}.dhx_layout-cell--accordion>.dhx_layout-cell--collapsed{border-bottom:0}.dhx_layout-cell--collapsed{overflow:hidden;flex:0 1 auto}.dhx_layout-cell-content{height:100%}.dhx_layout-cell-header{display:flex;justify-content:flex-start;align-items:center;border-bottom:1px solid #e4e4e4;padding:8px 12px}.dhx_layout-cell-header__title{margin:0;font-size:14px;line-height:20px;font-weight:500;color:rgba(0,0,0,.7);white-space:nowrap;overflow:hidden;text-overflow:clip;transition:color .2s ease-in}.dhx_layout-cell-header__icon{margin-right:16px}.dhx_layout-cell-header__image-wrapper{position:relative;width:20px;height:20px;margin-right:8px}.dhx_layout-cell-header__image{position:absolute;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center center;object-position:center center;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%}.dhx_layout-cell-header__collapse-icon{margin-left:auto;color:#4d4d4d;transition:transform .2s ease-in,color .2s ease-in}.dhx_layout-cell-header--collapseble{cursor:pointer}.dhx_layout-cell-header--collapseble:focus .dhx_layout-cell-header__collapse-icon,.dhx_layout-cell-header--collapseble:focus .dhx_layout-cell-header__title,.dhx_layout-cell-header--collapseble:hover .dhx_layout-cell-header__collapse-icon,.dhx_layout-cell-header--collapseble:hover .dhx_layout-cell-header__title{color:#0288d1;transition:color .2s ease-out}.dhx_layout-cell-header--collapseble:focus,.dhx_layout-cell-header:focus{outline-width:0}.dhx_layout-cell-header--collapsed.dhx_layout-cell-header--col{border-bottom:0;position:relative}.dhx_layout-cell-header--collapsed.dhx_layout-cell-header--col .dhx_layout-cell-header__title{position:absolute;transform-origin:left;transform:rotate(90deg);bottom:-12px;left:50%}.dhx_layout-cell-header+.dhx_layout-cell-content{overflow:auto;height:calc(100% - 37px)}.dhx_layout-resizer{position:relative;overflow:visible;text-align:center}.dhx_layout-resizer .dhx_layout-resizer__icon{position:relative;z-index:1}.dhx_layout-resizer--x{width:0}.dhx_layout-resizer--x .dhx_layout-resizer__icon{width:0;height:100%;display:flex;justify-content:center;flex-direction:column;align-items:center;color:rgba(0,0,0,.5);cursor:ew-resize}.dhx_layout-resizer--x .dhx_layout-resizer__icon:before{font-size:16px}.dhx_layout-resizer--y{height:0}.dhx_layout-resizer--y .dhx_layout-resizer__icon{width:100%;height:0;display:flex;justify-content:center;flex-direction:row;align-items:center;color:rgba(0,0,0,.5);cursor:ns-resize}.dhx_layout-resizer--y .dhx_layout-resizer__icon:before{font-size:16px}.dhx_navbar-count{width:24px;height:24px;border-radius:50%;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:12px;line-height:24px;color:#fff;text-align:center;z-index:1}.dhx_navbar-count--absolute{margin-left:0;position:absolute;top:-4px;top:-10px;right:-10px}.dhx_navbar-count--button-inline{margin-top:-4px;margin-bottom:-4px;margin-left:12px}.dhx_navbar-count--overlimit{width:auto;border-radius:22px;padding:0 8px}.dhx_navbar-count--color_success{background-color:#0ab169}.dhx_navbar-count--color_danger{background-color:#ff5252}.dhx_navbar-count--color_primary{background-color:#0288d1}.dhx_navbar-count--color_secondary{background-color:#4d4d4d}.dhx_navbar{display:flex;flex-wrap:nowrap;margin:0;padding:0;width:100%;list-style:none}.dhx_navbar:focus{outline:none}.dhx_navbar--horizontal{flex-direction:row;align-items:center}.dhx_navbar--vertical{height:100%;display:flex;flex-direction:column;overflow:auto}.dhx_navbar .dhx_button--color_secondary.dhx_button--view_link .dhx_button__icon{color:rgba(0,0,0,.5)}.dhx_navbar-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);font-weight:500}.dhx_navbar-title--sidebar{display:block;padding:12px}.dhx_timepicker{width:100%;padding:50px 20px;min-width:248px;background-color:#fff}.dhx_timepicker--with-controls{padding:4px 20px 0}.dhx_timepicker__inputs{text-align:center;margin-bottom:28px;margin-top:16px}.dhx_timepicker__close{min-height:32px;display:flex;justify-content:flex-end;margin-bottom:6px}.dhx_timepicker__button-close{text-transform:uppercase;transform:translateX(16px)}.dhx_timepicker__save{padding-top:12px;min-height:76px;display:flex;justify-content:center;align-items:center}.dhx_timepicker-inputs{position:relative;display:inline-block}.dhx_timepicker-input{width:48px;height:38px;font-size:30px;padding-bottom:4px;color:rgba(0,0,0,.7);line-height:30px;text-align:center;outline:none;border:none;border-bottom:1px solid #ededed;transition:border-color .2s ease-in;background-color:transparent}.dhx_timepicker-input:focus{border-bottom:1px solid #81c4e8;transition-timing-function:ease-out}.dhx_timepicker-ampm{position:absolute;right:-32px;bottom:4px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;color:rgba(0,0,0,.3);font-size:16px;line-height:16px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_timepicker-delimer{position:relative;top:-2px;height:30px;width:8px;color:rgba(0,0,0,.7);line-height:30px;font-size:30px}.dhx_calendar{display:flex;justify-content:flex-end;min-height:258px;padding:12px;background-color:#fff}.dhx_calendar--with_timepicker{min-height:310px}.dhx_calendar__wrapper{position:relative;z-index:1;width:100%;min-height:100%;display:flex;flex-direction:column;justify-content:space-between}.dhx_calendar__dates-wrapper{position:relative;padding-left:40px}.dhx_calendar__navigation{display:flex;align-self:stretch;justify-content:space-between;text-align:center;align-items:center;margin:-4px 2px 4px}.dhx_calendar__navigation .dhx_button--color_secondary:focus,.dhx_calendar__navigation .dhx_button--view_link:focus{background:inherit}.dhx_calendar__navigation .dhx_button--color_secondary:hover,.dhx_calendar__navigation .dhx_button--view_link:hover{background:#e4e4e4}.dhx_calendar__timepicker-button{margin-top:8px}.dhx_calendar__actions{display:flex;justify-content:center}.dhx_calendar__week-numbers{position:absolute;left:0;top:-4px;width:32px;padding:4px 0;background-color:#f7f7f7}.dhx_calendar__week-numbers:before{content:"#";display:block;margin-bottom:8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:12px;line-height:16px;color:rgba(0,0,0,.5);text-align:center}.dhx_calendar__weekdays{display:flex;flex-direction:row;justify-content:space-between;margin:0 0 8px}.dhx_calendar__days,.dhx_calendar__months{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.dhx_calendar__months,.dhx_calendar__years{margin-top:auto;margin-bottom:auto}.dhx_calendar__years{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.dhx_calendar-weekday{flex:1 0 14%;font-size:12px;line-height:16px}.dhx_calendar-week-number,.dhx_calendar-weekday{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;color:rgba(0,0,0,.5);text-align:center}.dhx_calendar-week-number{margin-bottom:12px;font-size:14px;line-height:20px}.dhx_calendar-week-number:last-child{margin-bottom:0}.dhx_calendar-week-number--hidden{opacity:0;pointer-events:none}.dhx_calendar-day{position:relative;flex:1 0 14%;margin-bottom:12px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.5);text-align:center;cursor:pointer}.dhx_calendar-day:nth-last-child(-n+7){margin-bottom:0}.dhx_calendar-day:after,.dhx_calendar-day:before{content:"";position:absolute;top:50%;left:50%;display:block;width:28px;height:28px;transform:translate(-50%,-50%);background-color:rgba(0,0,0,.07);border-radius:50%;opacity:0;z-index:-1}.dhx_calendar-day:active,.dhx_calendar-day:focus{outline:none}.dhx_calendar-day:active:before,.dhx_calendar-day:focus:before,.dhx_calendar-day:hover:before{opacity:1;transition:opacity .2s ease-out}.dhx_calendar-day--weekend{color:#0288d1}.dhx_calendar-day--hidden{opacity:0;pointer-events:none}.dhx_calendar-day--muffled{opacity:.6}.dhx_calendar-day--disabled{color:rgba(0,0,0,.3);pointer-events:none}.dhx_calendar-day--weekend-disabled{pointer-events:none;color:#6ecbfe}.dhx_calendar-day--in-range:after{opacity:1;background-color:#d3efff;border-radius:0;width:100%;z-index:-3}.dhx_calendar-day--selected{color:#fff;position:relative;z-index:1}.dhx_calendar-day--selected:before{opacity:1;background-color:#0288d1}.dhx_calendar-day--selected-first:after{border-radius:50% 0 0 50%}.dhx_calendar-day--selected-last:after{border-radius:0 50% 50% 0}.dhx_calendar-day--first-date:after{width:100%;background-color:#d3efff;opacity:1;right:calc(-50% - 2px);left:auto;border-radius:0;border-top-left-radius:32px;border-bottom-left-radius:32px}.dhx_calendar-day--last-date:after{width:100%;background-color:#d3efff;opacity:1;right:calc(-50% + 2px);left:auto;border-radius:0;border-top-right-radius:32px;border-bottom-right-radius:32px}.dhx_calendar-day:nth-child(7n).dhx_calendar-day--first-date:after{width:30px;right:calc(-50% + 1px)}.dhx_calendar-day:nth-child(7n+1).dhx_calendar-day--last-date:after{width:30px;right:calc(-50% + 3px)}.dhx_calendar-month,.dhx_calendar-year{position:relative;flex:1 0 25%;margin-bottom:8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:50px;color:rgba(0,0,0,.7);text-align:center;cursor:pointer}.dhx_calendar-month:nth-last-child(-n+4),.dhx_calendar-year:nth-last-child(-n+4){margin-bottom:0}.dhx_calendar-month:before,.dhx_calendar-year:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:block;width:50px;height:50px;background-color:rgba(0,0,0,.07);border-radius:50%;opacity:0;transition:opacity .2s ease-in,background-color .2s ease-in;z-index:-1}.dhx_calendar-month:active,.dhx_calendar-month:focus,.dhx_calendar-year:active,.dhx_calendar-year:focus{outline:none}.dhx_calendar-month:active:before,.dhx_calendar-month:focus:before,.dhx_calendar-year:active:before,.dhx_calendar-year:focus:before{opacity:1;transition:opacity .2s ease-out}.dhx_calendar-month:hover:before,.dhx_calendar-year:hover:before{opacity:1;transition:opacity .2s ease-out;z-index:-2}.dhx_calendar-month--selected,.dhx_calendar-year--selected{color:#fff}.dhx_calendar-month--selected:before,.dhx_calendar-year--selected:before{opacity:1;transition:opacity .2s ease-in,background-color .2s ease-in;background-color:#0288d1}.dhx_chart{stroke-linecap:square;position:relative;height:100%}.dhx_chart svg{vertical-align:top;overflow:visible}.dhx_chart .chart{transition:all .4s ease}.dhx_chart .chart.donut,.dhx_chart .chart.pie,.dhx_chart .chart.pie3d{transition-property:none}.dhx_chart .chart.dhx_pie-transform-delay{transition-property:all}.dhx_chart.not-animate .chart,.dhx_chart.not-animate .tooltip-form,.dhx_chart.not-animate .tooltip-text{transition:none}.dhx_chart .figure{transition:fill,stroke .3s ease}.dhx_chart .active-figure{visibility:visible;transition:all .2s ease}.dhx_chart .active-figure.point-circle,.dhx_chart .active-figure.point-rect,.dhx_chart .active-figure.point-rhombus,.dhx_chart .active-figure.point-triangle{-webkit-filter:url(#dropshadow);filter:url(#dropshadow);transition:all .3s ease}.dhx_chart .area{stroke-linecap:round}.dhx_chart .dash-line{stroke-dasharray:4,6;stroke-linecap:round}.dhx_chart .legend-text,.dhx_chart .scale-text,.dhx_chart .scale-title{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:400;font-size:14px;fill:#898f97}.dhx_chart text{text-anchor:middle;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.dhx_chart .start-text{text-anchor:start}.dhx_chart .end-text{text-anchor:end}.dhx_chart .legend-text{line-height:18px}.dhx_chart .scale-title{fill:#aeb7c2;line-height:16px}.dhx_chart .grid-line{stroke:#e3e9f1}.dhx_chart .main-scale{stroke:#c8d4e4;stroke-width:2px}.dhx_chart .radar-grid{stroke-dasharray:4,6;stroke:#d8e1ec;stroke-linecap:round}.dhx_chart .zebra{fill-rule:evenodd;fill:#f3f6fa}.dhx_chart .radar-scale{stroke:#c4d5e6}.dhx_chart .spec-grid-line{stroke:#898f97;stroke-linecap:round;stroke-dasharray:4,6}.dhx_chart .bar-text{fill:#fff;line-height:14px;font-weight:500;font-size:12px}.dhx_chart .bar-text,.dhx_chart .radar-axis-text{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif}.dhx_chart .radar-axis-text{font-size:14px;fill:#666}.dhx_chart .legend-item{cursor:pointer}.dhx_chart .legend-item.not-active .figure{fill:#c8d4e4;fill-opacity:1;stroke:#c8d4e4}.dhx_chart .legend-item.not-active .figure.legend-circle,.dhx_chart .legend-item.not-active .figure.legend-rect{stroke:none}.dhx_chart .legend-item.not-active .figure.legend-circle.with-stroke,.dhx_chart .legend-item.not-active .figure.legend-rect.with-stroke{stroke:#c8d4e4}.dhx_chart .legend-item.not-active .legend-text{fill:#c8d4e4}.dhx_chart.tooltip-container{z-index:2147483647}.dhx_chart.tooltip-container svg{width:4px;height:4px}.dhx_chart .tooltip-form{fill:#555;fill-opacity:.9}.dhx_chart .tooltip-text{font-size:12px;line-height:12px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;fill:#fff;font-weight:500}.dhx_chart .active-tooltip{visibility:visible}.dhx_chart .pie-value{font-weight:400;font-size:14px;fill:#898f97}.dhx_chart .pie-inner-value,.dhx_chart .pie-value{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif}.dhx_chart .pie-inner-value{fill:#fff;pointer-events:none;font-weight:500;line-height:14px;font-size:12px}.dhx_chart .pie-value-connector{stroke:#c6c6c6;fill:none}.dhx_chart .donut-value-title{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;fill:#898f97;font-size:14px;line-height:18px}.dhx_chart .donut-value{fill:#555;font-size:12px;line-height:14px}.dhx_chart .donut-value,.dhx_popup{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif}.dhx_popup{position:fixed;box-sizing:border-box;-webkit-animation:b .2s ease-in-out forwards;animation:b .2s ease-in-out forwards;background:#fff;will-change:transform;font-weight:500;font-size:14px;line-height:20px;color:rgba(0,0,0,.7)}.dhx_popup,.dhx_popup--window,.dhx_popup--window_modal{z-index:2147483645}.dhx_popup--window_active{z-index:2147483646}.dhx_popup.hide{-webkit-animation:c .2s ease-in-out forwards;animation:c .2s ease-in-out forwards}.dhx_popup:focus{outline:none}.dhx_widget--fullscreen .dhx_popup{z-index:2147483647}@-webkit-keyframes b{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes b{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@-webkit-keyframes c{0%{transform:translateY(0);opacity:1}to{transform:translateY(20px);opacity:0}}@keyframes c{0%{transform:translateY(0);opacity:1}to{transform:translateY(20px);opacity:0}}.dhx_colorpicker{font-family:Roboto,sans-serif;font-weight:500;overflow:hidden;padding:8px;border:1px solid #e4e4e4;background-color:#fff;border-radius:2px}.dhx_colorpicker,.dhx_colorpicker *{box-sizing:border-box}.dhx_popup .dhx_colorpicker{box-shadow:0 2px 5px rgba(0,0,0,.3);border:none}.dhx_palette{overflow:hidden;width:100%;height:100%;margin:0;white-space:nowrap}.dhx_palette--custom{display:flex;flex-wrap:wrap;max-width:236px}.dhx_palette--custom.dhx_palette__row .dhx_palette__cell{margin-bottom:0}.dhx_palette__col{display:inline-block}.dhx_palette__col:last-child .dhx_palette_cell{margin-right:0}.dhx_palette__row .dhx_palette__cell{display:inline-block;margin-bottom:6px}.dhx_palette__row .dhx_palette__cell:last-child{margin-right:0}.dhx_palette__row--last{margin-bottom:0}.dhx_palette__cell{position:relative;width:20px;height:20px;margin:0 2px 2px 0;vertical-align:top;border:2px solid transparent;transition:border .2s ease-in}.dhx_palette__cell:after{content:"";display:block;position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border:1px solid transparent;transition:border .2s ease-in}.dhx_palette__cell:last-child{margin-bottom:0}.dhx_palette__cell--selected,.dhx_palette__cell:hover{border:2px solid hsla(0,0%,100%,.6);transition:border .2s ease-out}.dhx_palette__cell--selected:after,.dhx_palette__cell:hover:after{border:1px solid rgba(0,0,0,.6);transition:border .2s ease-out}.dhx_colorpicker-custom-colors{font-size:14px;color:#909cad}.dhx_colorpicker-custom-colors__header{font-size:14px;padding:9px 0 4px;letter-spacing:-.2px;position:relative}.dhx_colorpicker-custom-colors__picker{display:inline-block;width:20px;height:20px;cursor:pointer;color:#909cad;box-shadow:inset 0 0 0 1px #909cad}.dhx_colorpicker-picker__palette{position:relative;width:100%;border-radius:2px;overflow:hidden}.dhx_colorpicker-picker__palette:before{content:"";height:100%;width:100%;position:absolute;top:0;left:0;background-image:linear-gradient(0deg,#000,hsla(0,0%,100%,0));z-index:2}.dhx_colorpicker-picker__palette:after{content:"";width:100%;height:100%;position:absolute;top:0;left:0;background-image:linear-gradient(90deg,#fff,hsla(20,42%,65%,0));z-index:1}.dhx_colorpicker-picker__buttons{display:flex;padding:12px 0 0;justify-content:flex-end}.dhx_colorpicker-picker__buttons .dhx_button:first-child{margin-right:4px}.dhx_colorpicker-hue-range{position:relative;width:100%;margin:4px 0 8px;border-radius:2px;background-image:linear-gradient(90deg,red,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.dhx_colorpicker-hue-range__grip{width:6px;height:100%}.dhx_colorpicker-hue-range__grip,.dhx_palette_grip{position:absolute;top:0;left:0;border:1px solid #fff;background:transparent;box-shadow:0 2px 5px 0 rgba(0,0,0,.3)}.dhx_palette_grip{width:10px;height:10px;border-radius:50%;z-index:10}.dhx_colorpicker-value{display:flex;flex-direction:row;height:32px;justify-content:space-between}.dhx_colorpicker-value__color{width:100px;border:1px solid transparent;border-radius:2px;margin-right:8px}.dhx_colorpicker-value__input__wrapper{position:relative;border:1px solid #d4dde7}.dhx_colorpicker-value__input__wrapper:before{content:"#";position:absolute;height:100%;line-height:30px;left:8px;color:#909cad;font-size:15px}.dhx_colorpicker-value__input{width:100px;height:100%;padding:0 0 0 24px;line-height:20px;font-size:14px;color:rgba(0,0,0,.7);border:none;border-radius:2px;outline:none}.dhx_list{margin:0;padding:0;height:100%;list-style:none;overflow:auto;max-height:100%;background-color:#fff}.dhx_list--virtual{overflow:visible;max-height:unset;border:none}.dhx_list-item{overflow:hidden;position:relative;padding:8px 12px;border-bottom:1px solid #e4e4e4}.dhx_list-item,.dhx_list-item--text{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif}.dhx_list-item--text{font-size:14px;font-weight:400;line-height:20px;transition:background-color .2s ease-in,box-shadow .2s ease-in}.dhx_list-item--selected{background-color:#f7f7f7;box-shadow:inset 2px 0 0 0 #0288d1}.dhx_list-item--focus,.dhx_list-item--selected:hover,.dhx_list-item:hover{background-color:#ededed;transition:background-color .2s ease-out}.dhx_list-item--drophere:after{content:"";position:absolute;left:0;right:0;bottom:0;top:0;background-color:#f7f7f7;opacity:.6}.dhx_list-item--dragtarget{opacity:.6}.dhx_list-item--drag{cursor:-webkit-grab;cursor:grab}.dhx_list-input{width:100%;padding-left:5px}.dhx_virtual-list-wrapper{overflow:auto;max-height:100%;border:1px solid #e4e4e4}.dhx_combobox{margin-bottom:16px}.dhx_combobox__options{margin-top:2px;width:100%}.dhx_combobox--required:not(.dhx_combobox--label_sr) .dhx_label:not(.dhx_label--with-help){position:relative}.dhx_combobox--required:not(.dhx_combobox--label_sr) .dhx_label:not(.dhx_label--with-help):after{content:"*";display:inline-block;padding-left:4px;color:rgba(0,0,0,.3)}.dhx_combobox--required:not(.dhx_combobox--label_sr) .dhx_label__holder{position:relative;max-width:100%;overflow:hidden;text-overflow:ellipsis}.dhx_combobox--required:not(.dhx_combobox--label_sr) .dhx_label__holder:after{content:"*";display:inline-block;padding-left:4px;color:rgba(0,0,0,.3)}.dhx_combobox--label_sr .dhx_label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dhx_combobox--label-inline{display:flex;align-items:center;width:100%;position:relative}.dhx_combobox--label-inline .dhx_combobox__label{flex:0 1 auto;justify-content:flex-end;text-align:right;margin-right:16px;width:100%}.dhx_combobox--label-inline .dhx_combobox-input-box{flex:0 1 auto;width:300%}.dhx_combobox--disabled{opacity:.6;pointer-events:none;cursor:default}.dhx_combobox-input-box{position:relative;flex:1;background-color:#f7f7f7;background-clip:padding-box;border-radius:2px;box-shadow:inset 0 0 0 1px #dfdfdf;transition:border-color .2s ease-out,box-shadow .2s ease-out}.dhx_combobox-input-box--readonly,.dhx_combobox-input-box--readonly *{cursor:pointer}.dhx_combobox-input-box--disabled{cursor:not-allowed}.dhx_combobox-input-box--disabled *{cursor:not-allowed;pointer-events:none}.dhx_combobox-input-box--active,.dhx_combobox-input-box:focus-within{box-shadow:inset 0 0 0 1px #67b8e3}.dhx_combobox-input-box--state_success{box-shadow:inset 0 0 0 1px #6cd0a5}.dhx_combobox-input-box--state_error{box-shadow:inset 0 0 0 1px #ff9797}.dhx_combobox-input{min-height:30px;display:block;width:100%;margin:0;padding:0;position:absolute;top:0;right:0;bottom:0;left:0;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.dhx_combobox-input:active,.dhx_combobox-input:focus{outline:none}.dhx_combobox-input__wrapper{position:static;padding-bottom:0}.dhx_combobox-input__icon{display:flex;align-items:center;cursor:pointer;flex:0;position:absolute;top:50%;right:4px;transform:translateY(-50%);font-size:16px;z-index:1;color:rgba(0,0,0,.5)}.dhx_combobox-input-list-wrapper{height:100%;width:100%;overflow:hidden}.dhx_combobox-input-list{display:flex;flex-wrap:wrap;flex-flow:row wrap;list-style:none;margin:0;border-top:1px solid transparent;border-bottom:1px solid transparent;min-height:30px;max-height:96px;width:calc(100% - 32px);overflow-y:scroll;padding:0 41px 0 8px;box-sizing:content-box!important}.dhx_combobox-input-list__item{flex:0 1 auto}.dhx_combobox-input-list__item--input{position:relative;flex:1 0 auto}.dhx_combobox-tag{display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;padding:0 8px;margin-top:2px;margin-bottom:2px;border:1px solid #e4e4e4;border-radius:16px;background-color:#fff;margin-right:8px}.dhx_combobox-tag__value{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);white-space:nowrap}.dhx_combobox-tag__icon,.dhx_combobox-tag__image{margin-right:4px}.dhx_combobox-tag__image{width:16px;height:auto;-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center}.dhx_combobox-tag__action{height:20px;margin-left:4px;margin-right:-6px;color:rgba(0,0,0,.5);padding:0;background-color:transparent;transition:color .2s ease-in}.dhx_combobox-tag__action:hover{color:rgba(0,0,0,.7);transition:color .2s ease-out}.dhx_combobox-options{background-color:#fff;border-radius:2px;box-shadow:0 2px 5px rgba(0,0,0,.3)}.dhx_combobox-options__icon{padding-right:4px}.dhx_combobox-options__image{padding-right:4px;width:16px;height:auto;-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center}.dhx_combobox-options__item{display:flex;align-items:center;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;padding:6px 8px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.dhx_combobox-options__item--select-all{color:#0288d1;line-height:20px;border-bottom:1px solid #e4e4e4}.dhx_dataview{position:relative;overflow-y:auto;height:100%;max-height:100%;background-color:#fff}.dhx_dataview--has-scroll .dhx_dataview-row:last-child .dhx_dataview-item:not(.dhx_dataview-item--with-gap){border-bottom:0}.dhx_dataview-row{display:flex;flex-wrap:nowrap;justify-content:flex-start}.dhx_dataview-row .dhx_dataview-item:not(.dhx_dataview-item--with-gap){border-top:0}.dhx_dataview-item{position:relative;flex:0 1 auto;border:1px solid #e4e4e4;padding:8px;transition:box-shadow .2s ease-in}.dhx_dataview-item:not(.dhx_dataview-item--with-gap){border-left:0}.dhx_dataview-item--last-item-in-row:not(.dhx_dataview-item--with-gap){border-right:0}.dhx_dataview-item:focus{outline:none}.dhx_dataview-item:after{content:"";display:block;position:absolute;left:0;right:0;bottom:0;top:0;z-index:1;border:1px solid transparent;transition:opacity .2s ease-in-out,background-color .2s ease-in-out;pointer-events:none}.dhx_dataview-item--focus{box-shadow:inset 0 0 0 1px #a6a6a6;transition:box-shadow .2s ease-out}.dhx_dataview-item--selected{box-shadow:inset 0 0 0 1px #0288d1;transition:box-shadow .2s ease-out}.dhx_dataview-item--drophere:after{background-color:#f7f7f7;opacity:.6}.dhx_dataview-item--dragtarget{opacity:.6}.dhx_dataview-item--drag{cursor:-webkit-grab;cursor:grab}.dhx_dataview-input{padding-left:5px}.dhx_footer-wrapper,.dhx_header-wrapper{position:relative;font-size:14px;font-weight:500;color:rgba(0,0,0,.7);z-index:11}.dhx_footer-wrapper.dhx_compatible-header,.dhx_header-wrapper.dhx_compatible-header{border-right:none}.dhx_footer-wrapper:last-child,.dhx_header-wrapper:last-child{border-bottom:none}.dhx_footer-wrapper{overflow:hidden}.dhx_grid-header{position:relative;height:100%;white-space:nowrap;z-index:10}.dhx_grid-footer-cell,.dhx_grid-header-cell{display:inline-block;height:100%;padding:0 8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:400;vertical-align:top;white-space:nowrap;position:relative;font-weight:500;background-color:#f7f7f7;border-top:1px solid #e4e4e4;border-bottom:1px solid #e4e4e4;border-left:none;text-overflow:ellipsis;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_grid-footer-cell:not(.dhx_cell_first),.dhx_grid-header-cell:not(.dhx_cell_first){border-left:1px solid #e4e4e4}.dhx_grid-footer-cell:first-child,.dhx_grid-header-cell:first-child{border-left:none}.dhx_grid-header-cell--sortable:hover .dhx_grid-sort-icon{opacity:1}.dhx_grid-header-cell--sortable:hover:after,.dhx_grid-header-cell--sorted:after{content:"";display:block;width:24px;position:absolute;top:0;bottom:0;background-color:#f7f7f7;opacity:.8}.dhx_grid-header-cell--align_right{text-align:right}.dhx_grid-header-cell--align_right .dhx_grid-header-cell-text{padding-left:24px}.dhx_grid-header-cell--align_right .dhx_grid-sort-icon{left:4px}.dhx_grid-header-cell--align_right:after{left:0}.dhx_grid-header-cell--align_left{text-align:left}.dhx_grid-header-cell--align_left .dhx_grid-sort-icon{right:4px}.dhx_grid-header-cell--align_left:after{right:0}.dhx_grid-footer-cell:last-child,.dhx_grid-header-cell:last-child{overflow:hidden}.dhx_grid-sort-icon{position:absolute;top:50%;transform:translateY(-50%);opacity:0;color:rgba(0,0,0,.5);z-index:1;transition:all .2s ease-in;cursor:pointer}.dhx_grid-sort-icon:before{font-size:16px;display:inline-block;transition:all .2s ease-out}.dhx_grid-sort-icon--asc,.dhx_grid-sort-icon--desc{opacity:1;color:#0288d1;transition:color .2s ease-out}.dhx_grid-sort-icon--asc:before{transform:scaleY(-1)}.dhx_cell_empty{border-top:none}.dhx_header-row{white-space:nowrap;background:#f7f7f7}.dhx_header-row:last-child .dhx_cell-first{border-bottom:1px solid #f7f7f7}.dhx_header-row:first-child .dhx_grid-footer-cell,.dhx_header-row:first-child .dhx_grid-header-cell{border-top:none}.dhx_header-row:not(:last-child) .dhx_grid-footer-cell,.dhx_header-row:not(:last-child) .dhx_grid-header-cell{border-bottom:none}.dhx_grid-custom-content-cell{padding:5px}.dhx_header-spans{position:absolute;top:0}.dhx_header-spans .dhx_span-cell{background:#f7f7f7;font-weight:500}.dhx_header-fixed-cols{background:#f7f7f7;z-index:999}.dhx_header-fixed-cols .dhx_last-column-cell{border-right:1px solid #e4e4e4}.dhx_resizer_grip{position:absolute;z-index:100;top:0;right:-5px;display:flex;width:9px;height:100%;cursor:col-resize;justify-content:center}.dhx_resizer_grip:hover .dhx_resizer_grip_line{opacity:1}.dhx_resizer_grip:active{right:-100.5px;width:200px}.dhx_resizer_grip .dhx_resizer_grip_line{z-index:100;background-color:#a6a6a6;width:1px;height:100%;transition:all .2s;pointer-events:none;opacity:0}.dhx_resizer_grip .dhx_header_fixed_cols .dhx_header_row{border:none}.dhx_footer-wrapper{box-shadow:0 1px 0 0 #f7f7f7}.dhx_grid-footer{position:relative;background-color:#f7f7f7}.dhx_grid-footer-cell{border-top:1px solid #e4e4e4;overflow:hidden}.dhx_grid-footer-cell:after{display:none}.dhx_grid-footer-cell.dhx_number-cell{text-align:right}.dhx_grid-footer-cell.dhx_string-cell{text-align:left}.dhx_footer-row{white-space:nowrap;background:#f7f7f7}.dhx_footer-row:last-child .dhx_cell-first{border-bottom:1px solid #f7f7f7}.dhx_footer-row .dhx_grid-footer-cell{border-bottom:none}.dhx_footer-spans .dhx_span-cell{background-color:#f7f7f7}.dhx_footer-spans .dhx_span-row .dhx_span-cell{border-top:1px solid #e4e4e4}.dhx_footer-fixed-cols{background:#f7f7f7;z-index:999}.dhx_footer-fixed-cols .dhx_last-column-cell{border-right:1px solid #e4e4e4}.dhx_grid_data{position:relative;top:-1px}.dhx_grid-row{width:100%}.dhx_grid-cell,.dhx_grid-row{white-space:nowrap;overflow:hidden}.dhx_grid-cell{font-size:14px;color:rgba(0,0,0,.7);text-align:right;position:relative;display:inline-block;height:100%;padding:0 8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:400;vertical-align:top;border-top:1px solid #e4e4e4;border-left:1px solid #e4e4e4}.dhx_grid-cell--drophere:after{content:"";position:absolute;left:0;right:0;bottom:0;top:0;background-color:#f7f7f7;opacity:.6}.dhx_grid-cell--dragtarget{opacity:.6}.dhx_grid-cell--drag{cursor:-webkit-grab;cursor:grab}.dhx_grid-cell .dhx_cell-content{width:100%;height:100%;overflow:hidden}.dhx_grid-cell:first-child{border-left:none}.dhx_grid-cell--first{border-top:none}.dhx_grid-cell--title{font-size:14px;font-weight:400;color:rgba(0,0,0,.7);text-align:left;border-bottom:none}.dhx_grid-cell--after-title,.dhx_grid-cell--title{border-top:1px solid #e4e4e4}.dhx_grid-cell__editable{padding-right:0;padding-left:0}.dhx_number-cell{text-align:right}.dhx_string-cell,.dhx_tree-cell{text-align:left}.dhx_tree-cell:not(.dhx_grid-expand-cell) .dhx_cell-editor{margin:0 -8px}.dhx_tree-cell.dhx_grid-expand-cell{display:inline-flex;padding-left:0}.dhx_tree-cell .dhx_grid-expand-cell-icon{display:inline-flex;width:auto;height:100%;font-size:14px;cursor:pointer}.dhx_tree-cell .dhx_grid-expand-cell-icon:before{display:flex;justify-content:center;flex-direction:column}.dhx_tree-cell .dhx_tree-cell{display:inline-block;padding:0 8px}.dhx_grid-fixed-cols-wrap{position:absolute;top:0;left:0;background:#fff;overflow:hidden}.dhx_frozen-cols-border{width:1px;position:absolute;right:0;top:0;height:100%;background:#e4e4e4;z-index:999999}.dhx_grid-fixed-cols{position:absolute;top:0}.dhx_grid-fixed-cols .dhx_grid-cell__editable:last-child{padding-right:1px}.dhx_grid-selection{position:absolute;top:0;left:0;z-index:10}.dhx_grid-selected-row{border-left:2px solid #0288d1;background:rgba(77,77,77,.08);pointer-events:none}.dhx_grid-selected-cell{border:2px solid #0288d1;background-color:transparent;pointer-events:none}.dhx_grid-resize-line{position:absolute;width:1px;background:#a6a6a6;z-index:10}.dhx_cell-editor{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:400;width:100%;height:100%;text-align:inherit;color:rgba(0,0,0,.7);border:none;border-radius:0;background:transparent;box-shadow:inset 0 0 0 1px #0288d1;outline:none}.dhx_cell-editor__combobox .dhx_combobox-input-box{padding:0 25px 0 8px;box-shadow:inset 0 0 0 1px #0288d1}.dhx_cell-editor__input{padding:0 8px}.dhx_cell-editor__select{padding:0 4px}.dhx_cell-editor__checkbox{position:relative;width:100%;height:100%;display:flex;justify-content:center;flex-direction:column;align-items:center;cursor:pointer}.dhx_span-cell{position:relative;display:inline-block;height:100%;padding:0 8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-weight:400;vertical-align:top;white-space:nowrap;border-left:1px solid #e4e4e4;overflow:hidden;position:absolute;display:block;height:auto;font-weight:500;border-top:1px solid #e4e4e4;border-bottom:none;z-index:10}.dhx_span-cell--title{color:rgba(0,0,0,.5)}.dhx_span-row .dhx_first-column-cell{border-left:none}.dhx_span-row .dhx_last-column-cell{border-right:1px solid #e4e4e4}.dhx_span-row:first-child .dhx_span-cell{border-top:none}.dhx_span-spans{position:absolute;top:0;left:0}.dhx_span-spans .dhx_span-cell{font-weight:400;color:rgba(0,0,0,.7);line-height:normal;text-align:left;white-space:normal;border-right:none;background:#fff}.dhx_span-spans .dhx_span-cell.dhx_span-first-row{border-top:none}.dhx_span-spans .dhx_span-cell.dhx_span-first-col{border-left:none}.dhx_span-spans .dhx_span-string-cell{text-align:left}.dhx_span-spans .dhx_span-number-cell{text-align:right}.dhx_grid{position:relative;width:100%;height:100%;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:400;line-height:20px;background:#fff;overflow:hidden}.dhx_grid_border{border-bottom:1px solid #e4e4e4!important}.dhx_grid-content{position:relative;border:1px solid #dfdfdf;background:#fff}.dhx_grid-less-width .dhx_grid-cell:last-child,.dhx_grid-less-width .dhx_grid-footer-cell:last-child,.dhx_grid-less-width .dhx_grid-header-cell:last-child,.dhx_grid-less-width .dhx_grid_footer_cell:last-child,.dhx_grid-less-width .dhx_last-column-cell,.dhx_grid-less-width .dhx_span-last-col,.dhx_grid_border .dhx_grid-cell:last-child,.dhx_grid_border .dhx_grid-footer-cell:last-child,.dhx_grid_border .dhx_grid-header-cell:last-child,.dhx_grid_border .dhx_grid_footer_cell:last-child,.dhx_grid_border .dhx_last-column-cell,.dhx_grid_border .dhx_span-last-col{border-right:1px solid #e4e4e4}.dhx_grid-less-height .dhx_footer-row:last-child .dhx_grid-footer-cell,.dhx_grid-less-height .dhx_grid-row:last-child{border-bottom:1px solid #e4e4e4}.dhx_grid-less-height .dhx_footer-row:first-child .dhx_grid-footer-cell{border-top:none}.dhx_grid-less-height .dhx_span-row:last-child .dhx_span-cell{border-bottom:1px solid #e4e4e4}.dhx_grid-less-height .dhx_span-row:first-child .dhx_span-cell{border-top:none}.dhx_grid-body{overflow:auto}.dhx_data-wrap,.dhx_grid-body{position:relative;width:100%;height:100%}.dhx_data-wrap{overflow:hidden}.dhx_grid-filter__label{display:block;width:100%;height:100%;position:relative}.dhx_grid-filter__label:before{color:rgba(0,0,0,.5);pointer-events:none;position:absolute;right:4px;top:50%;transform:translateY(-50%);z-index:10}.dhx_grid-filter{height:100%;padding:0 25px 0 4px;color:rgba(0,0,0,.7);background:#fff;border-radius:2px;outline:none;position:relative}.dhx_grid-filter::-ms-expand{display:none}.dhx_grid-cell .dhx_combobox-input-box,.dhx_grid-footer-cell .dhx_combobox-input-box,.dhx_grid-header-cell .dhx_combobox-input-box{height:100%;padding:0 8px;color:rgba(0,0,0,.7);background:#fff;border-radius:2px;outline:none;position:relative}.dhx_grid-cell .dhx_combobox-input-box::-ms-expand,.dhx_grid-footer-cell .dhx_combobox-input-box::-ms-expand,.dhx_grid-header-cell .dhx_combobox-input-box::-ms-expand{display:none}.dhx_grid-cell .dhx_combobox,.dhx_grid-footer-cell .dhx_combobox,.dhx_grid-header-cell .dhx_combobox{margin:0;height:100%}.dhx_grid-cell .dhx_combobox .dhx_combobox-input-list,.dhx_grid-footer-cell .dhx_combobox .dhx_combobox-input-list,.dhx_grid-header-cell .dhx_combobox .dhx_combobox-input-list{height:100%;min-height:100%;max-height:100%;padding-left:0;padding-right:24px;border:none;width:100%}.dhx_grid-cell .dhx_combobox .dhx_combobox-input-list .dhx_combobox-input,.dhx_grid-footer-cell .dhx_combobox .dhx_combobox-input-list .dhx_combobox-input,.dhx_grid-header-cell .dhx_combobox .dhx_combobox-input-list .dhx_combobox-input{height:100%;min-height:100%}.dhx_grid-cell .dhx_list-item,.dhx_grid-footer-cell .dhx_list-item,.dhx_grid-header-cell .dhx_list-item{padding:7px 12px}.dhx_menu-nav{display:flex;flex-wrap:nowrap;margin:0;padding:0;width:100%;list-style:none;overflow-x:auto;background-color:#ededed}.dhx_menu-nav__item--separator{pointer-events:none;width:1px;min-width:1px;background-color:#dfdfdf;margin-top:8px;margin-bottom:8px}.dhx_menu-nav__item--spacer{pointer-events:none;flex:1 0 auto}.dhx_nav-menu-button{display:flex;justify-content:center;align-items:center;padding:8px 12px;font-weight:500;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);background-color:transparent;transition:background-color .2s ease-in}.dhx_nav-menu-button--active:not(:disabled),.dhx_nav-menu-button:active:not(:disabled),.dhx_nav-menu-button:hover:not(:disabled){background-color:rgba(0,0,0,.07);transition:background-color .2s ease-out}.dhx_nav-menu-button--disabled,.dhx_nav-menu-button:disabled{opacity:.8;pointer-events:auto;cursor:default}.dhx_nav-menu-button--disabled *,.dhx_nav-menu-button:disabled *{color:rgba(0,0,0,.3)}.dhx_menu{padding:0;margin:0;background:#fff;list-style:none;border-radius:2px;box-shadow:0 2px 5px rgba(0,0,0,.3);overflow:hidden;z-index:999}.dhx_menu-item{min-width:180px}.dhx_menu-item--separator{pointer-events:none;align-self:stretch;height:1px;min-height:1px;margin:2px 8px;background-color:#e4e4e4}.dhx_menu-item--spacer{pointer-events:none;height:16px}.dhx_menu-item--left-gap .dhx_menu-button{padding-left:38px}.dhx_menu-button{display:flex;width:100%;justify-content:space-between;padding:8px;text-align:left;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:400;line-height:20px;color:rgba(0,0,0,.7);background-color:transparent;transition:background-color .2s ease-in}.dhx_menu-button--active:not(:disabled),.dhx_menu-button:active:not(:disabled),.dhx_menu-button:focus:not(:disabled),.dhx_menu-button:hover:not(:disabled){background-color:#ededed;transition:background-color .2s ease-out}.dhx_menu-button--disabled,.dhx_menu-button:disabled{opacity:.8;pointer-events:auto;cursor:default}.dhx_menu-button--disabled *,.dhx_menu-button:disabled *{color:rgba(0,0,0,.3)}.dhx_menu-button__icon{color:rgba(0,0,0,.5)}.dhx_widget .dhx_menu-button__icon{line-height:0}.dhx_widget .dhx_menu-button__icon:before{font-size:20px;line-height:20px}.dhx_menu-button__icon+.dhx_menu-button__text{margin-left:8px}.dhx_menu-button__block{display:flex;align-items:center}.dhx_menu-button__block--left{justify-content:flex-start}.dhx_menu-button__block--right{justify-content:flex-end}.dhx_menu-button__count{margin-left:8px;margin-top:-2px;margin-bottom:-2px}.dhx_menu-button__hotkey{margin-left:8px;color:rgba(0,0,0,.3)}.dhx_menu-button__caret{margin-left:8px;color:rgba(0,0,0,.5)}.dhx_widget--fullscreen .dhx_menu{z-index:2147483647}.dhx_ribbon{display:flex;flex-direction:row;flex-wrap:wrap;margin:0;padding:10px;list-style:none}.dhx_ribbon:focus{outline:none}.dhx_ribbon__item{margin:2px}.dhx_ribbon__item--auto,.dhx_ribbon__item--medium{flex:1 0 auto;min-width:68px;min-height:68px}.dhx_ribbon__item--icon,.dhx_ribbon__item--spacer{flex:1 0 auto}.dhx_ribbon__item--separator{align-self:stretch;width:1px;min-width:1px;margin:8px 4px;background-color:#dfdfdf}.dhx_ribbon-button__icon+.dhx_ribbon-button__text{margin-left:4px}.dhx_widget .dhx_ribbon-button__icon{line-height:0}.dhx_widget .dhx_ribbon-button__icon:before{font-size:20px;line-height:20px}.dhx_ribbon-button,.dhx_ribbon-button-image{display:flex;align-items:center;justify-content:flex-start;width:100%;padding:6px 12px;box-shadow:inset 0 0 0 1px #dfdfdf;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;font-weight:400;color:rgba(0,0,0,.7);background-color:transparent;border-radius:2px;transition:background-color .2s ease-in,box-shadow .2s ease-in}.dhx_ribbon-button-image__icon,.dhx_ribbon-button__icon{color:rgba(0,0,0,.5);line-height:0}.dhx_ribbon-button-image__count,.dhx_ribbon-button__count{margin-left:8px;margin-top:-10px;margin-bottom:-10px}.dhx_ribbon-button--auto,.dhx_ribbon-button--medium,.dhx_ribbon-button-image--auto,.dhx_ribbon-button-image--medium{flex-direction:column;justify-content:center;align-items:center;min-width:68px;min-height:68px;height:100%}.dhx_ribbon-button--auto .dhx_ribbon-button-image__count,.dhx_ribbon-button--auto .dhx_ribbon-button__count,.dhx_ribbon-button--medium .dhx_ribbon-button-image__count,.dhx_ribbon-button--medium .dhx_ribbon-button__count,.dhx_ribbon-button-image--auto .dhx_ribbon-button-image__count,.dhx_ribbon-button-image--auto .dhx_ribbon-button__count,.dhx_ribbon-button-image--medium .dhx_ribbon-button-image__count,.dhx_ribbon-button-image--medium .dhx_ribbon-button__count{margin-left:0;position:absolute;top:4px;right:4px}.dhx_ribbon-button--auto .dhx_ribbon-button__icon+.dhx_ribbon-button__text,.dhx_ribbon-button--medium .dhx_ribbon-button__icon+.dhx_ribbon-button__text,.dhx_ribbon-button-image--auto .dhx_ribbon-button__icon+.dhx_ribbon-button__text,.dhx_ribbon-button-image--medium .dhx_ribbon-button__icon+.dhx_ribbon-button__text{margin-left:0;margin-top:2px}.dhx_ribbon-button--icon,.dhx_ribbon-button-image--icon{flex:1 0 auto;justify-content:center}.dhx_ribbon-button--select,.dhx_ribbon-button-image--select{padding-right:8px}.dhx_ribbon-button--select .dhx_ribbon-button__text,.dhx_ribbon-button-image--select .dhx_ribbon-button__text{margin-right:8px}.dhx_ribbon-button-image:hover,.dhx_ribbon-button:hover{background-color:rgba(0,0,0,.07);transition:background-color .2s ease-out}.dhx_ribbon-button--active,.dhx_ribbon-button-image--active,.dhx_ribbon-button-image:active,.dhx_ribbon-button:active{background-color:#f2f9fd;transition:background-color .2s ease-out,box-shadow .2s ease-out;box-shadow:inset 0 0 0 1px #b3dbf1}.dhx_ribbon-button--disabled,.dhx_ribbon-button-image--disabled,.dhx_ribbon-button-image:disabled,.dhx_ribbon-button:disabled{opacity:.8;pointer-events:auto;cursor:default}.dhx_ribbon-button--disabled:hover,.dhx_ribbon-button-image--disabled:hover,.dhx_ribbon-button-image:disabled:hover,.dhx_ribbon-button:disabled:hover{background-color:transparent}.dhx_ribbon-button--disabled *,.dhx_ribbon-button-image--disabled *,.dhx_ribbon-button-image:disabled *,.dhx_ribbon-button:disabled *{color:rgba(0,0,0,.3)}.dhx_ribbon-button-image__text+.dhx_ribbon-button-image__image{margin-right:4px}.dhx_ribbon-button-image{flex-flow:row-reverse;justify-content:flex-end}.dhx_ribbon-button-image__count{order:-1}.dhx_ribbon-button-image__image{width:20px;height:20px;background-size:cover;background-position:50%;background-repeat:no-repeat}.dhx_ribbon-button-image--icon{justify-content:center}.dhx_ribbon-button-image__count{margin-left:8px}.dhx_ribbon-button-image--auto .dhx_ribbon-button__count,.dhx_ribbon-button-image--medium .dhx_ribbon-button__count{margin-left:0;position:absolute;top:4px;right:4px}.dhx_ribbon-button-image--auto,.dhx_ribbon-button-image--medium{flex-flow:column-reverse;justify-content:center;min-width:68px;min-height:68px;height:100%}.dhx_ribbon-button-image--auto .dhx_ribbon-button-image__image,.dhx_ribbon-button-image--medium .dhx_ribbon-button-image__image{margin-right:0;width:32px;height:32px}.dhx_ribbon-button-image__caret,.dhx_ribbon-button__caret{margin-left:auto;color:rgba(0,0,0,.5);transform:rotate(90deg)}.dhx_ribbon-block{display:flex;text-align:center}.dhx_ribbon-block--root{width:100%}.dhx_ribbon-block--title{position:relative;padding-bottom:20px}.dhx_ribbon-block--indented{margin-right:4px;margin-left:4px}.dhx_ribbon-block--indented:first-child{margin-left:0}.dhx_ribbon-block--indented:last-child{margin-right:0}.dhx_ribbon-block--col>.dhx_ribbon-content{flex-direction:column}.dhx_ribbon-block--row>.dhx_ribbon-content{flex-direction:row}.dhx_ribbon-block--row .dhx_ribbon-button--auto,.dhx_ribbon-block--row .dhx_ribbon-button-image--auto{flex-direction:column;justify-content:center}.dhx_ribbon-content{flex:1 0 auto;margin:0;padding:0;list-style:none;display:flex}.dhx_ribbon-content-label-wrapper{display:block;position:absolute;bottom:-6px;left:0;right:0;overflow:hidden}.dhx_ribbon-content-label{position:relative;display:inline;font-family:Roboto;font-style:normal;font-weight:400;font-size:14px;line-height:16px;text-align:center;color:rgba(0,0,0,.38)}.dhx_ribbon-content-label:after,.dhx_ribbon-content-label:before{content:"";position:absolute;top:50%;display:block;height:1px;background:rgba(0,0,0,.07);width:1000%}.dhx_ribbon-content-label:before{left:calc(100% + 4px)}.dhx_ribbon-content-label:after{right:calc(100% + 4px)}.dhx_sidebar{height:100%;position:relative;background-color:#fff;z-index:1}.dhx_sidebar:focus{outline:none}.dhx_sidebar__item .dhx_custom-button{overflow:hidden}.dhx_sidebar__item--spacer{flex:1 0 auto}.dhx_sidebar__item--separator{height:1px;min-height:1px;width:100%;background-color:#dfdfdf;margin:2px 0}.dhx_sidebar--minimized .dhx_navbar-title{opacity:0;pointer-events:none}.dhx_sidebar--minimized .dhx_sidebar-button__icon{margin-left:auto;margin-right:auto}.dhx_sidebar--minimized .dhx_sidebar-button--select{padding-right:12px}.dhx_sidebar--minimized .dhx_sidebar-button__count{position:absolute;max-width:24px;overflow:hidden;top:-4px;right:4px}.dhx_sidebar--minimized .dhx_sidebar-button--select .dhx_sidebar-button__count{margin-right:0}.dhx_sidebar--minimized .dhx_sidebar-button__caret,.dhx_sidebar--minimized .dhx_sidebar-button__text{display:none}.dhx_sidebar-button__icon+.dhx_sidebar-button__text{margin-left:12px}.dhx_sidebar-button{position:relative;display:flex;width:100%;justify-content:flex-start;align-items:center;padding:12px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;font-weight:400;color:rgba(0,0,0,.7);background-color:transparent;transition:background-color .2s ease-in}.dhx_sidebar-button--select{padding-right:8px}.dhx_sidebar-button--select .dhx_sidebar-button__count{margin-right:8px}.dhx_sidebar-button--icon{padding-right:12px}.dhx_sidebar-button:hover{background-color:rgba(0,0,0,.07);transition:background-color .2s ease-out}.dhx_sidebar-button--active,.dhx_sidebar-button:active{background-color:rgba(0,0,0,.15);transition:background-color .2s ease-out}.dhx_sidebar-button--active{box-shadow:inset 2px 0 0 0 #0288d1}.dhx_sidebar-button--disabled,.dhx_sidebar-button:disabled{opacity:.8;pointer-events:auto;cursor:default}.dhx_sidebar-button--disabled:hover,.dhx_sidebar-button:disabled:hover{background-color:transparent}.dhx_sidebar-button--disabled *,.dhx_sidebar-button:disabled *{color:rgba(0,0,0,.3)}.dhx_sidebar-button__icon{color:rgba(0,0,0,.5)}.dhx_widget .dhx_sidebar-button__icon{line-height:0}.dhx_widget .dhx_sidebar-button__icon:before{font-size:20px;line-height:20px}.dhx_sidebar-button__html,.dhx_sidebar-button__text{width:100%;text-align:left}.dhx_sidebar-button__count+.dhx_sidebar-button__caret{margin-left:0}.dhx_sidebar-button__count{min-width:24px;flex:1 0 auto;width:auto;margin:-4px 0 -4px auto}.dhx_sidebar-button__caret{margin-right:0;margin-left:auto}.dhx_toolbar{display:flex;margin:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:12px 0;background-color:#fff}.dhx_toolbar__item--spacer{flex:1 0 auto}.dhx_toolbar__item--separator{width:1px;min-width:1px;height:100%;background-color:#dfdfdf;margin:0 2px;height:28px}.dhx_toolbar__item:first-child .dhx_form-group,.dhx_toolbar__item:first-child .dhx_navbar-title,.dhx_toolbar__item:first-child button:not(.dhx_toolbar-button){margin-left:12px}.dhx_toolbar__item:first-child button.dhx_button--view_link,.dhx_toolbar__item:not(:first-child) .dhx_form-group,.dhx_toolbar__item:not(:first-child) .dhx_navbar-title,.dhx_toolbar__item:not(:first-child) button:not(.dhx_toolbar-button){margin-left:4px}.dhx_toolbar__item:last-child .dhx_form-group,.dhx_toolbar__item:last-child .dhx_navbar-title,.dhx_toolbar__item:last-child button:not(.dhx_toolbar-button){margin-right:12px}.dhx_toolbar__item:last-child button.dhx_button--view_link,.dhx_toolbar__item:not(:last-child) .dhx_form-group,.dhx_toolbar__item:not(:last-child) .dhx_navbar-title,.dhx_toolbar__item:not(:last-child) button:not(.dhx_toolbar-button){margin-right:4px}.dhx_toolbar .dhx_button__icon--menu{transform:rotate(90deg)}.dhx_toolbar__input{height:32px}@supports (display:block){.dhx_toolbar__input{height:unset}}.dhx_toolbar__input .dhx_input{height:32px}@supports (display:block){.dhx_toolbar__input .dhx_input{height:unset}}.dhx_toolbar-button{position:relative;display:flex;justify-content:center;align-items:center;padding:6px 12px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;font-weight:500;color:rgba(0,0,0,.7);background-color:transparent;border-radius:2px;transition:background-color .2s ease-in}.dhx_toolbar-button--select{padding-right:8px}.dhx_toolbar-button--icon{padding-right:12px}.dhx_toolbar-button--circle{border-radius:32px}.dhx_toolbar-button--circle.dhx_toolbar-button--icon{padding-left:6px;padding-right:6px}.dhx_toolbar-button:hover{background-color:rgba(0,0,0,.07);transition:background-color .2s ease-out}.dhx_toolbar-button--active,.dhx_toolbar-button:active{background-color:rgba(0,0,0,.15);transition:background-color .2s ease-out}.dhx_toolbar-button--disabled,.dhx_toolbar-button:disabled{opacity:.8;pointer-events:auto;cursor:default}.dhx_toolbar-button--disabled:hover,.dhx_toolbar-button:disabled:hover{background-color:transparent}.dhx_toolbar-button--disabled *,.dhx_toolbar-button:disabled *{color:rgba(0,0,0,.3)}.dhx_toolbar-button__icon{color:rgba(0,0,0,.7)}.dhx_widget .dhx_toolbar-button__icon{line-height:0}.dhx_widget .dhx_toolbar-button__icon:before{font-size:20px;line-height:20px}.dhx_toolbar-button__icon+.dhx_toolbar-button__text{margin-left:8px}.dhx_toolbar-button__count{position:absolute;top:-10px;right:-10px}.dhx_toolbar-button__caret{margin-left:8px;color:rgba(0,0,0,.5);transform:rotate(90deg)}.dhx_toolbar-button-image{display:flex;justify-content:center;align-items:center;position:relative;width:44px;height:44px;padding:0;margin-top:-8px;margin-bottom:-8px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);border-radius:50%;transition:opacity .2s ease-in}.dhx_toolbar-button-image:hover{opacity:.8;transition:opacity .2s ease-out}.dhx_toolbar-button-image__image{position:absolute;border-radius:50%;top:0;left:0;right:0;bottom:0;background-size:cover;background-position:50%;background-repeat:no-repeat;z-index:1}.dhx_toolbar-button-image__text{text-align:center;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dhx_toolbar-button-image__count{position:absolute;top:-4px;right:-4px}.dhx_tabbar{display:flex;max-height:100%;height:100%;max-width:100%;background-color:#fff}.dhx_tabbar--top{flex-direction:column}.dhx_tabbar--top .dhx_tabbar-header__wrapper:after{left:0;height:1px;width:100%;bottom:0}.dhx_tabbar--top .dhx_layout-cell{height:100%;overflow:auto;flex:1 1 auto}.dhx_tabbar--top .dhx_tabbar-header{flex-direction:row}.dhx_tabbar--top .dhx_tabbar-header-active{bottom:0}.dhx_tabbar--top .dhx_tabbar-tab{flex:0 0 auto}.dhx_tabbar--top .dhx_tabbar-tab-button{text-align:center}.dhx_tabbar--bottom{flex-direction:column-reverse}.dhx_tabbar--bottom .dhx_tabbar-header__wrapper:after{left:0;height:1px;width:100%;top:0}.dhx_tabbar--bottom .dhx_layout-cell{height:100%;overflow:auto;flex:1 1 auto}.dhx_tabbar--bottom .dhx_tabbar-header{flex-direction:row}.dhx_tabbar--bottom .dhx_tabbar-header-active{top:0}.dhx_tabbar--bottom .dhx_tabbar-tab{flex:0 0 auto}.dhx_tabbar--bottom .dhx_tabbar-tab-button{text-align:center}.dhx_tabbar--left{flex-direction:row}.dhx_tabbar--left .dhx_tabbar-header__wrapper:after{right:0;height:100%;width:1px;bottom:0}.dhx_tabbar--left .dhx_layout-cell{height:100%;overflow:auto;flex:1 1 auto}.dhx_tabbar--left .dhx_tabbar-header{flex-direction:column}.dhx_tabbar--left .dhx_tabbar-header-active{right:0}.dhx_tabbar--left .dhx_tabbar-tab{flex:1 1 auto}.dhx_tabbar--left .dhx_tabbar-tab-button{text-align:right}.dhx_tabbar--right{flex-direction:row-reverse}.dhx_tabbar--right .dhx_tabbar-header__wrapper:after{left:0;height:100%;width:1px;bottom:0}.dhx_tabbar--right .dhx_layout-cell{height:100%;overflow:auto;flex:1 1 auto}.dhx_tabbar--right .dhx_tabbar-header{flex-direction:column}.dhx_tabbar--right .dhx_tabbar-header-active{left:0}.dhx_tabbar--right .dhx_tabbar-tab{flex:1 1 auto}.dhx_tabbar--right .dhx_tabbar-tab-button{text-align:left}.dhx_tabbar .dhx_layout-cell--content{flex:1 0 auto;overflow:auto}.dhx_tabbar-content--disabled{cursor:not-allowed;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:.7}.dhx_tabbar-header{display:flex;margin:0;padding:0;list-style:none}.dhx_tabbar-header__wrapper{position:relative;overflow:auto;flex:0 0 auto}.dhx_tabbar-header__wrapper:after{content:"";display:block;position:absolute;background:#e4e4e4}.dhx_tabbar-header-active{position:absolute;transition:transform .1s ease-in-out;background-color:#0288d1;z-index:1}.dhx_tabbar-tab{position:relative}.dhx_tabbar-tab__close{position:absolute;top:50%;right:8px;transform:translateY(-50%);z-index:1;opacity:.7;color:#0288d1;cursor:pointer}.dhx_tabbar-tab__close:hover{opacity:1}.dhx_tabbar-tab__close:focus{outline:none}.dhx_tabbar-tab-button{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:500;line-height:20px;position:relative;padding:12px 24px;border-radius:0;color:#0288d1;text-transform:uppercase;background-color:transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background-color .2s ease-in}.dhx_tabbar-tab-button .dhx_button__text{opacity:.7}.dhx_tabbar-tab-button:active,.dhx_tabbar-tab-button:hover,.dhx_tabbar-tab-button:hover:active{background-color:#ededed;transition:background-color .2s ease-out}.dhx_tabbar-tab-button--active .dhx_button__text{opacity:1}.dhx_tabbar-tab-button--disabled{cursor:not-allowed}.dhx_tabbar-tab-button--disabled *{cursor:not-allowed;pointer-events:none}.dhx_tabbar-tab-button--disabled .dhx_button__text{color:rgba(0,0,0,.3)}.dhx_tree{list-style:none;margin:0;padding:0;position:relative;z-index:1}.dhx_tree--no-selection{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_tree--no-selection .dhx_tree-folder:hover:before,.dhx_tree--no-selection .dhx_tree-list-item:hover:before{transition:background-color .2s ease-out;background-color:transparent}.dhx_tree-list{list-style:none;margin:0;padding:0 0 0 20px}.dhx_tree-folder{display:flex;align-items:center;padding-top:2px;padding-bottom:2px}.dhx_tree-folder .dhx_tree-list-item__content{padding-left:20px}.dhx_tree-folder .dhx_tree-toggle-button+.dhx_tree-list-item__content{padding-left:0}.dhx_tree-list-item{display:flex;align-items:center;cursor:pointer;padding-top:2px;padding-bottom:2px;transition:background-color .2s ease-out}.dhx_tree-list-item__content{display:flex;align-items:center;padding-left:20px;position:relative}.dhx_tree-list-item__content:before{content:"";display:block;position:absolute;top:-1.5px;bottom:-1.5px;right:inherit;left:inherit;transition:background-color .2s ease-in;z-index:-1}.dhx_tree-list-item__text{padding-left:4px;font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:normal;color:rgba(0,0,0,.7)}.dhx_tree-list-item__icon{color:rgba(0,0,0,.3);line-height:1;font-size:0}.dhx_tree-list-item__icon:before{font-size:20px;line-height:1}.dhx_tree-list-item--parent{display:block;padding-top:0;padding-bottom:0}.dhx_tree-list-item .dhx_widget .dhx_tree-list-item__icon{line-height:0}.dhx_tree-list-item .dhx_widget .dhx_tree-list-item__icon:before{font-size:20px;line-height:20px}.dhx_tree-folder,.dhx_tree-list-item{position:relative}.dhx_tree-folder:before,.dhx_tree-list-item:before{content:"";display:block;position:absolute;top:0;bottom:0;right:inherit;left:inherit;transition:background-color .2s ease-in;z-index:-1}.dhx_tree-folder--focused:before,.dhx_tree-folder:hover:before,.dhx_tree-list-item--focused:before,.dhx_tree-list-item:hover:before{transition:background-color .2s ease-out;background-color:#ededed}.dhx_tree-folder--selected:before,.dhx_tree-list-item--selected:before{transition:background-color .2s ease-out;box-shadow:inset 2px 0 0 0 #0288d1;background-color:#f7f7f7}.dhx_tree-toggle-button{cursor:pointer;color:rgba(0,0,0,.5)}.dhx_tree-toggle-button+.dhx_tree-list-item__content{margin-left:0}.dhx_tree-checkbox{padding-right:4px;color:#0288d1}.dhx_tree-checkbox.dxi-checkbox-blank-outline{color:rgba(0,0,0,.5)}.dhx_tree-input{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;line-height:20px;color:rgba(0,0,0,.7);padding-left:4px;padding-top:0;padding-bottom:0;margin:0;background-color:#f7f7f7;border:none}.dhx_tree-input:focus{outline:none}.dhx_tree-folder.dhx_tree-drop--top .dhx_tree-list-item__content:before{left:-20px;right:0;box-shadow:0 -1px 0 0 #81c4e8}.dhx_tree-folder.dhx_tree-drop--top:hover:before{background-color:transparent}.dhx_tree-folder.dhx_tree-drop--bottom .dhx_tree-list-item__content:before{left:-20px;right:0;box-shadow:0 1px 0 0 #81c4e8}.dhx_tree-folder.dhx_tree-drop--bottom:hover:before{background-color:transparent}.dhx_tree-folder.dhx_tree-drop--in-folder .dhx_tree-list-item__content:before{left:-20px;right:0;box-shadow:0 1px 0 0 #81c4e8,0 -1px 0 0 #81c4e8}.dhx_tree-folder.dhx_tree-drop--in-folder:hover:before{background-color:transparent}.dhx_tree-list-item.dhx_tree-drop--top .dhx_tree-list-item__content:before{left:20px;right:0;box-shadow:0 -1px 0 0 #81c4e8}.dhx_tree-list-item.dhx_tree-drop--top:hover:before{background-color:transparent}.dhx_tree-list-item.dhx_tree-drop--bottom .dhx_tree-list-item__content:before{left:20px;right:0;box-shadow:0 1px 0 0 #81c4e8}.dhx_tree-list-item.dhx_tree-drop--bottom:hover:before{background-color:transparent}.dhx_tree-list-item.dhx_tree-drop--in-folder .dhx_tree-list-item__content:before{left:20px;right:0;box-shadow:0 1px 0 0 #81c4e8,0 -1px 0 0 #81c4e8}.dhx_tree-list-item.dhx_tree-drop--in-folder:hover:before{background-color:transparent}.dhx_window{border-radius:2px;box-shadow:0 2px 5px rgba(0,0,0,.3);will-change:transform;overflow:visible}.dhx_window--stop_selection{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dhx_window__overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:2147483645}.dhx_window-header{margin-bottom:20px}.dhx_window-header--movable{cursor:all-scroll}.dhx_window-header:before{content:"";display:block;position:absolute;top:0;left:0;right:0;width:100%;height:16px;transform:translateY(-100%)}.dhx_window-header .dhx_navbar-title{margin-left:0!important;font-size:18px}.dhx_window-content{padding-left:28px;padding-right:28px;padding-bottom:28px}.dhx_window-content,.dhx_window-content-without-header{font-family:Roboto,Arial,Tahoma,Verdana,sans-serif;font-size:14px;font-weight:400;color:rgba(0,0,0,.5);line-height:1.3;overflow-y:auto;overflow-wrap:break-word;word-wrap:break-word}.dhx_window-content-without-header{padding:28px}.dhx_window-footer{margin-top:20px}.dhx_window__inner-html-content :first-child{margin-top:0}body.dhx_window--no-scroll{width:100vw;height:100vh}.dhx_window--no-scroll{overflow:hidden}.dhx_window .dhx_cell_content,.dhx_window .dhx_toolbar{width:100%}.dhx_window .dhx_toolbar__list{min-height:auto}.dhx_window .dhx_window-header .dhx_toolbar{padding:28px 28px 0}.dhx_window .dhx_window-footer .dhx_toolbar{padding:0 28px 28px}.dhx_window .dhx_cell_content{height:100%;display:flex;flex-direction:column}.dhx_window-resizer{position:absolute;background:transparent}.dhx_window-resizer--left{left:-6px;top:0;height:100%;width:12px}.dhx_window-resizer--left:hover{cursor:ew-resize}.dhx_window-resizer--right{right:-6px;top:0;height:100%;width:12px}.dhx_window-resizer--right:hover{cursor:ew-resize}.dhx_window-resizer--top{left:0;top:-6px;height:12px;width:100%}.dhx_window-resizer--top:hover{cursor:ns-resize}.dhx_window-resizer--bottom{left:0;bottom:-6px;height:12px;width:100%}.dhx_window-resizer--bottom:hover{cursor:ns-resize}.dhx_window-resizer--top_right{right:-6px;top:-6px;width:12px;height:12px}.dhx_window-resizer--top_right:hover{cursor:nesw-resize}.dhx_window-resizer--top_left{left:-6px;top:-6px;width:12px;height:12px}.dhx_window-resizer--top_left:hover{cursor:nwse-resize}.dhx_window-resizer--bottom_right{right:-6px;bottom:-6px;width:12px;height:12px}.dhx_window-resizer--bottom_right:hover{cursor:nwse-resize}.dhx_window-resizer--bottom_left{left:-6px;bottom:-6px;width:12px;height:12px}.dhx_window-resizer--bottom_left:hover{cursor:nesw-resize}.dhx_window-body-pointer--left,.dhx_window-body-pointer--right{cursor:ew-resize}.dhx_window-body-pointer--bottom,.dhx_window-body-pointer--top{cursor:ns-resize}.dhx_window-body-pointer--top_right{cursor:nesw-resize}.dhx_window-body-pointer--bottom_right,.dhx_window-body-pointer--top_left{cursor:nwse-resize}.dhx_window-body-pointer--bottom_left{cursor:nesw-resize}
\ No newline at end of file
diff --git a/codebase/suite.min.js b/codebase/suite.min.js
index a4dbde8..10bf9e4 100644
--- a/codebase/suite.min.js
+++ b/codebase/suite.min.js
@@ -1,15 +1,15 @@
/*
@license
-dhtmlxSuite v.6.1.4 GPL
+dhtmlxSuite v.6.4.2 GPL
This software is covered by GPL license.
To use it in non-GPL project, you need obtain Commercial or Enterprise license
Please contact sales@dhtmlx.com. Usage without proper license is prohibited.
-(c) Dinamenta, UAB.
+(c) XB Software.
*/
-if(window.dhx&&(window.dhx_legacy=dhx,delete window.dhx),function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.dhx=e():t.dhx=e()}(window,function(){return function(t){var e={};function i(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,i),o.l=!0,o.exports}return i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)i.d(n,o,function(e){return t[e]}.bind(null,o));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="/codebase/",i(i.s=81)}([function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(97);e.el=n.defineElement,e.sv=n.defineSvgElement,e.view=n.defineView,e.create=n.createView,e.inject=n.injectView,e.disableHelp=function(){n.DEVMODE.mutations=!1,n.DEVMODE.warnings=!1,n.DEVMODE.verbose=!1,n.DEVMODE.UNKEYED_INPUT=!1},e.resizer=function(t){var i=window.ResizeObserver,n=function(e){var i=e.el.offsetHeight,n=e.el.offsetWidth;t(n,i)};return i?e.el("div.dhx-resize-observer",{_hooks:{didInsert:function(t){new i(function(){return n(t)}).observe(t.el)}}}):e.el("iframe.dhx-resize-observer",{_hooks:{didInsert:function(t){t.el.contentWindow.onresize=function(){return n(t)},n(t)}}})}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),o=(new Date).valueOf();e.uid=function(){return"u"+o++},e.extend=function t(e,i,n){if(void 0===n&&(n=!0),i)for(var o in i){var r=i[o],s=e[o];!n||"object"!=typeof s||s instanceof Date||s instanceof Array?e[o]=r:t(s,r)}return e},e.copy=function(t,e){var i={};for(var n in t)e&&"$"===n[0]||(i[n]=t[n]);return i},e.naturalSort=function(t){return t.sort(function(t,e){return"string"==typeof t?t.localeCompare(e):t-e})},e.findIndex=function(t,e){for(var i=t.length,n=0;ne.length)return!1;for(var i=0;ie)return[];for(var i=[];t<=e;)i.push(t++);return i},e.isNumeric=function(t){return!isNaN(t-parseFloat(t))}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t){this.events={},this.context=t||this}return t.prototype.on=function(t,e,i){var n=t.toLowerCase();this.events[n]=this.events[n]||[],this.events[n].push({callback:e,context:i||this.context})},t.prototype.detach=function(t,e){var i=t.toLowerCase(),n=this.events[i];if(e&&n&&n.length)for(var o=n.length-1;o>=0;o--)n[o].context===e&&n.splice(o,1);else this.events[i]=[]},t.prototype.fire=function(t,e){void 0===e&&(e=[]);var i=t.toLowerCase();return!this.events[i]||this.events[i].map(function(t){return t.callback.apply(t.context,e)}).indexOf(!1)<0},t.prototype.clear=function(){this.events={}},t}();e.EventSystem=n,e.EventsMixin=function(t){var e=new n(t=t||{});t.detachEvent=e.detach.bind(e),t.attachEvent=e.on.bind(e),t.callEvent=e.fire.bind(e)}},function(t,e,i){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(t){for(var e,i=1,n=arguments.length;i-1)return e[i[c]](n,o);r=r.parentNode}return!0}},e.locate=function(t,e){void 0===e&&(e="dhx_id");var i=o(t,e);return i?i.getAttribute(e):""},e.locateNode=o,e.getBox=function(t){var e=t.getBoundingClientRect(),i=document.body,n=window.pageYOffset||i.scrollTop,o=window.pageXOffset||i.scrollLeft;return{top:e.top+n,left:e.left+o,right:i.offsetWidth-e.right,bottom:i.offsetHeight-e.bottom,width:e.right-e.left,height:e.bottom-e.top}};var r,s=-1;function a(t){var e=t.getBoundingClientRect();return{left:e.left+window.pageXOffset,right:e.right+window.pageXOffset,top:e.top+window.pageYOffset,bottom:e.bottom+window.pageYOffset}}function c(t,e){var i=e.mode===r.bottom||e.mode===r.top?u(t,e):d(t,e),n=i.left,o=i.top;return{left:Math.round(n)+"px",top:Math.round(o)+"px",minWidth:Math.round(e.width)+"px",position:"absolute"}}function l(){return{rightBorder:window.pageXOffset+window.innerWidth,bottomBorder:window.pageYOffset+window.innerHeight}}function u(t,e){var i,o,s=l(),a=s.rightBorder,c=s.bottomBorder-t.bottom-e.height,u=t.top-e.height;if(e.mode===r.bottom?c>=0?o=t.bottom:u>=0&&(o=u):u>=0?o=u:c>=0&&(o=t.bottom),c<0&&u<0){if(e.auto)return d(t,n({},e,{mode:r.right,auto:!1}));o=c>u?t.bottom:u}if(e.centering)i=function(t,e,i){var n=(e-(t.right-t.left))/2,o=t.left-n,r=t.right+n;return o>=0&&r<=i?o:o<0?0:i-e}(t,e.width,a);else{var h=a-t.left-e.width,p=t.right-e.width;i=h>=0?t.left:p>=0?p:p>h?t.left:p}return{left:i,top:o}}function d(t,e){var i,o,s=l(),a=s.rightBorder,c=s.bottomBorder,d=a-t.right-e.width,h=t.left-e.width;if(e.mode===r.right?d>=0?i=t.right:h>=0&&(i=h):h>=0?i=h:d>=0&&(i=t.right),h<0&&d<0){if(e.auto)return u(t,n({},e,{mode:r.bottom,auto:!1}));i=h>d?h:t.right}if(e.centering)o=function(t,e,i){var n=(e-(t.bottom-t.top))/2,o=t.top-n,r=t.bottom+n;return o>=0&&r<=i?o:o<0?0:i-e}(t,e.height,a);else{var p=t.bottom-e.height,f=c-t.top-e.height;o=f>=0?t.top:p>0?p:p>f?p:t.top}return{left:i,top:o}}e.getScrollbarWidth=function(){if(s>-1)return s;var t=document.createElement("div");return document.body.appendChild(t),t.style.cssText="position: absolute;left: -99999px;overflow:scroll;width: 100px;height: 100px;",s=t.offsetWidth-t.clientWidth,document.body.removeChild(t),s},e.fitPosition=function(t,e){return c(a(t),e)},e.isIE=function(){var t=window.navigator.userAgent;return t.indexOf("MSIE ")>-1||t.indexOf("Trident/")>-1},e.getRealPosition=a,function(t){t.left="left",t.right="right",t.bottom="bottom",t.top="top"}(r=e.Position||(e.Position={})),e.calculatePosition=c},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(1),o=i(3),r=function(){function t(t,e){this._uid=n.uid(),this.config=e||{}}return t.prototype.mount=function(t,e){e&&(this._view=e),t&&this._view&&this._view.mount&&(this._container=o.toNode(t),this._container.tagName?this._view.mount(this._container):this._container.attach&&this._container.attach(this))},t.prototype.unmount=function(){var t=this.getRootView();t&&t.node&&(t.unmount(),this._view=null)},t.prototype.getRootView=function(){return this._view},t.prototype.getRootNode=function(){return this._view&&this._view.node&&this._view.node.el},t.prototype.paint=function(){this._view&&(this._view.node||this._container)&&(this._doNotRepaint=!1,this._view.redraw())},t}();e.View=r,e.toViewLike=function(t){return{getRootView:function(){return t},paint:function(){return t.node&&t.redraw()},mount:function(e){return t.mount(e)}}}},function(t,e,i){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(t){for(var e,i=1,n=arguments.length;i=48&&e.which<=57||e.which>=65&&e.which<=90?String.fromCharCode(e.which):e.key)&&i.toLowerCase()),o=t._keysStorage[n];if(o)for(var r=0;r=0;s--)i[o].splice(r[s],1)}},t.prototype.exist=function(t){var e=n(t);return!!this._keysStorage[e]},t}();e.keyManager=new o,e.addHotkeys=function(t,i){var n=new Date,o=function(t){return function(e){i&&!1===i()||t(e)}};for(var r in t)e.keyManager.addHotKey(r,o(t[r]),n);return function(){return e.keyManager.removeHotKey(void 0,n)}}},function(t,e,i){(function(e,i){!function(){var n=1,o={},r=!1;function s(t){e.setImmediate?i(t):e.importScripts?setTimeout(t):(o[++n]=t,e.postMessage(n,"*"))}function a(t){"use strict";if("function"!=typeof t&&void 0!=t)throw TypeError();if("object"!=typeof this||this&&this.then)throw TypeError();var e,i,n=this,o=0,r=0,c=[];n.promise=n,n.resolve=function(t){return e=n.fn,i=n.er,o||(r=t,o=1,s(d)),n},n.reject=function(t){return e=n.fn,i=n.er,o||(r=t,o=2,s(d)),n},n._d=1,n.then=function(t,e){if(1!=this._d)throw TypeError();var i=new a;return i.fn=t,i.er=e,3==o?i.resolve(r):4==o?i.reject(r):c.push(i),i},n.catch=function(t){return n.then(null,t)};var l=function(t){o=t||4,c.map(function(t){3==o&&t.resolve(r)||t.reject(r)})};try{"function"==typeof t&&t(n.resolve,n.reject)}catch(t){n.reject(t)}return n;function u(t,e,i,n){if(2==o)return n();if("object"!=typeof r&&"function"!=typeof r||"function"!=typeof t)n();else try{var s=0;t.call(r,function(t){s++||(r=t,e())},function(t){s++||(r=t,i())})}catch(t){r=t,i()}}function d(){var t;try{t=r&&r.then}catch(t){return r=t,o=2,d()}u(t,function(){o=1,d()},function(){o=2,d()},function(){try{1==o&&"function"==typeof e?r=e(r):2==o&&"function"==typeof i&&(r=i(r),o=1)}catch(t){return r=t,l()}r==n?(r=TypeError(),l()):u(t,function(){l(3)},l,function(){l(1==o&&3)})})}}(e=this).setImmediate||e.addEventListener("message",function(t){if(t.source==e)if(r)s(o[t.data]);else{r=!0;try{o[t.data]()}catch(t){}delete o[t.data],r=!1}}),a.resolve=function(t){if(1!=this._d)throw TypeError();return t instanceof a?t:new a(function(e){e(t)})},a.reject=function(t){if(1!=this._d)throw TypeError();return new a(function(e,i){i(t)})},a.all=function(t){if(1!=this._d)throw TypeError();if(!(t instanceof Array))return a.reject(TypeError());var e=new a;return function i(n,o){return o?e.resolve(o):n?e.reject(n):(0==t.reduce(function(t,e){return e&&e.then?t+1:t},0)&&e.resolve(t),void t.map(function(e,n){e&&e.then&&e.then(function(e){return t[n]=e,i(),e},i)}))}(),e},a.race=function(t){if(1!=this._d)throw TypeError();if(!(t instanceof Array))return a.reject(TypeError());if(0==t.length)return new a;var e=new a;return function i(n,o){return o?e.resolve(o):n?e.reject(n):(0==t.reduce(function(t,e){return e&&e.then?t+1:t},0)&&e.resolve(t),void t.map(function(t,e){t&&t.then&&t.then(function(t){i(null,t)},i)}))}(),e},a._d=1,t.exports=a}()}).call(this,i(32),i(85).setImmediate)},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(105)),n(i(106)),n(i(22))},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;i'),a=window.getComputedStyle(s),c={color:"rgb(0, 0, 0)"===a.color?o.color:n(a.color),background:"rgba(0, 0, 0, 0)"===a.backgroundColor?o.background:n(a.backgroundColor),fontSize:parseFloat(a.fontSize)};return r.removeChild(s),c.color===o.color&&c.background===o.background&&c.fontSize===o.fontSize?null:c},e.removeHTMLTags=function(t){return"string"!=typeof t&&"number"!=typeof t?"":(""+(void 0===t||null===t?"":t)).replace(/<[^>]*>/g,"").replace(/[\"]/g,""").trim()},e.isCssSupport=function(t,e){try{return CSS.supports(t,e)}catch(n){var i=document.createElement("div");return i.style[t]=e,i.style[t]===e}},e.isRowEmpty=function(t){if(t)return Object.keys(t).reduce(function(e,i){return"id"===i||"$"===i[0]?e:(!e||void 0===t[i]||""===t[i])&&e},!0)}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.beforeUnSelect="beforeunselect",t.afterUnSelect="afterunselect",t.beforeSelect="beforeselect",t.afterSelect="afterselect"}(e.SelectionEvents||(e.SelectionEvents={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(7);e.DataEvents=n.DataEvents,function(t){t.button="button",t.imageButton="imageButton",t.selectButton="selectButton",t.customHTMLButton="customButton",t.input="input",t.separator="separator",t.title="title",t.spacer="spacer",t.menuItem="menuItem",t.block="block",t.navItem="navItem"}(e.ItemType||(e.ItemType={})),function(t){t.inputCreated="inputcreated",t.click="click",t.openMenu="openmenu",t.inputFocus="inputfocus",t.inputBlur="inputblur"}(e.NavigationBarEvents||(e.NavigationBarEvents={})),function(t){t.pointer="pointer",t.click="click"}(e.NavigationType||(e.NavigationType={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),o=i(22);e.getCount=function(t,e,i){var o={danger:" dhx_navbar-count--color_danger",secondary:" dhx_navbar-count--color_secondary",primary:" dhx_navbar-count--color_primary",success:" dhx_navbar-count--color_success"}[t.countColor]||" dhx_navbar-count--color_danger";return n.el(".dhx_navbar-count",{class:e+o+(!i&&parseInt(t.count,10)>99?" dhx_navbar-count--overlimit":"")},i&&parseInt(t.count,10)>99?"99+":t.count)},e.getIcon=function(t,e){return void 0===t&&(t=""),"dxi"===t.slice(0,3)&&(t="dxi "+t),n.el("span",{class:"dhx_"+e+"__icon "+t})},e.navbarComponentMixin=function(t,e,i,s){var a=r(t,e,i),c="ribbon"===t&&(e.type===o.ItemType.navItem||e.type===o.ItemType.imageButton);return n.el("li",{_key:e.id,class:a+(e.icon&&!e.value&&c?" dhx_ribbon__item--icon":"")+(e.src&&!e.value&&c?" dhx_ribbon__item--icon":"")+(e.size&&c?" dhx_ribbon__item--"+e.size:"")},[s])},e.getNavbarButtonCSS=function(t,e){var i=t.color,n=t.size,o=t.view,r=t.full,s=t.icon,a=t.circle,c=t.loading,l=t.value,u=t.active;return({danger:" dhx_button--color_danger",secondary:" dhx_button--color_secondary",primary:" dhx_button--color_primary",success:" dhx_button--color_success"}[i]||" dhx_button--color_primary")+({small:" dhx_button--size_small",medium:" dhx_button--size_medium"}[n]||" dhx_button--size_medium")+({flat:" dhx_button--view_flat",link:" dhx_button--view_link"}[o]||" dhx_button--view_flat")+(r?" dhx_button--width_full":"")+(a?" dhx_button--circle":"")+(c?" dhx_button--loading":"")+(u?" dhx_button--active":"")+(s&&!l?" dhx_button--icon":"")};var r=function(t,e,i){var n="",r="";return r=(n=i?"dhx_menu-item":"dhx_"+t+"__item")+(e.css?" "+e.css:""),e.type!==o.ItemType.spacer&&e.type!==o.ItemType.separator||(r+=" "+n+"--"+e.type),"button"!==e.type||"sidebar"!==t||e.icon||(r+=" dhx_navbar-item--colapse_hidden"),r}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),o=i(5);function r(t,e,i){return[Math.cos(2*Math.PI*t)*e,Math.sin(2*Math.PI*t)*i]}function s(t,e){return t-1e-6e}function a(t,e){return"M"+-t+",0A"+t+","+t+" 0 "+(e?0:1)+" 1 "+t+",0A"+t+","+t+" 0 "+(e?0:1)+" 1 "+-t+",0"}e.getCoordinates=r,e.shiftCoordinates=function(t,e,i){return[t[0]+e,t[1]+i]},e.pieLikeHandlers={onmouseover:function(t,e,i,n){n.el.setAttribute("transform","translate("+t+", "+e+") scale(1.05)")},onmouseout:function(t,e){e.el.setAttribute("transform","translate(0, 0)")}},e.radarScale=function(t,e,i){var c=i/2,l=1/t.scales.length,u=l>.5?1:0,d=[],h=function(t,e){return n.sv("circle",{cx:0,cy:0,r:t,fill:e,stroke:"none",class:"background-circle"})}(c,"#FAFBFD");d.push(h);for(var p=-.25,f=[],_=t.axis,v="radar-grid "+(t.zebra?"zebra":""),g=1;g<_.length;g+=2){var m=c*_[g-1],y=c*_[g],x=a(m,!0)+" "+a(y,!1),b=n.sv("path",{d:x,fill:"none",stroke:"black",class:v});f.push(b)}if(d.push(f),t.scales.forEach(function(t){var e=r(p,c,c),i=e[0],a=e[1],h=p+l,f=r(h,c,c),_=f[0],v=f[1],g="M "+i+" "+a+" A "+c+" "+c+" 0 "+u+" 1 "+_+" "+v+" L 0 0",m=n.sv("path",{d:g,stroke:"black",fill:"none",class:"radar-scale"});d.push(m);var y=[8,8],x=y[0],b=y[1],w=s(p,0)||s(p,.5)?0:p<0||p>.5?-x:x,k=s(p,-.25)||s(p,.25)?0:p<-.25||p>.25?-b:b;if(s(p,-.25)||s(p,.25)){var C=s(p,-.25)?o.verticalTopText:o.verticalBottomText,E=n.sv("text",{x:i+k,y:a+w,class:"scale-text"},[C(t)]);d.push(E)}else{var O=p>=-.25&&p<=.25?"start-text scale-text":"end-text scale-text";E=n.sv("text",{x:i+k,y:a+w,class:O},[o.verticalCenteredText(t)]),d.push(E)}p=h}),p=-.25,t.realAxis){var w=t.realAxis.map(function(t,e){var i=r(-.25,c*_[e],c*_[e]),s=i[0],a=i[1];return n.sv("text",{x:s,y:a,dx:-10,class:"radar-axis-text"},[o.verticalCenteredText(t.toString())])});d.push(w)}return n.sv("g",{transform:"translate("+e/2+", "+i/2+")"},d)}},function(t,e,i){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function e(t){this.url=t}return e.prototype.load=function(){return this._ajax(this.url)},e.prototype.save=function(t,e){return this._ajax(this.url,t,{insert:"POST",delete:"DELETE",update:"POST"}[e]||"POST")},e.prototype._ajax=function(e,i,n){return void 0===n&&(n="GET"),new t(function(t,o){var r=new XMLHttpRequest;switch(r.onload=function(){r.status>=200&&r.status<300?t(r.response||r.responseText):o({status:r.status,statusText:r.statusText})},r.onerror=function(){o({status:r.status,statusText:r.statusText})},r.open(n,e),r.setRequestHeader("Content-Type","application/json"),n){case"POST":case"DELETE":case"PUT":r.send(JSON.stringify(i));break;case"GET":default:r.send()}})},e}();e.DataProxy=i}).call(this,i(14))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});i(7);!function(t){t.queue="queue",t.uploaded="uploaded",t.failed="failed",t.inprogress="inprogress"}(e.FileStatus||(e.FileStatus={})),function(t){t.uploadBegin="uploadbegin",t.beforeUploadFile="beforeuploadfile",t.uploadFile="uploadfile",t.uploadFail="uploadfail",t.uploadComplete="uploadcomplete",t.uploadProgress="uploadprogress"}(e.UploaderEvents||(e.UploaderEvents={})),function(t){t.cancel="cancel"}(e.ProgressBarEvents||(e.ProgressBarEvents={})),function(t){t.grid="grid",t.list="list"}(e.VaultMode||(e.VaultMode={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}(i(104));var n=i(15);e.ItemType=n.ItemType,e.NavigationBarEvents=n.NavigationBarEvents},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(123)),n(i(66)),n(i(38))},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(124)),n(i(65))},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(125)),n(i(63))},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(130)),n(i(67)),n(i(40));var o=i(41);e.locale=o.default},function(t,e){var i;i=function(){return this}();try{i=i||new Function("return this")()}catch(t){"object"==typeof window&&(i=window)}t.exports=i},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.left="left",t.right="right",t.top="top",t.bottom="bottom",t.center="center"}(e.RealPosition||(e.RealPosition={})),function(t){t.right="right",t.bottom="bottom",t.center="center"}(e.Position||(e.Position={})),function(t){t.topLeft="top-left",t.topRight="top-right",t.bottomLeft="bottom-left",t.bottomRight="bottom-right"}(e.MessageContainerPosition||(e.MessageContainerPosition={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.default={apply:"apply",reject:"reject"}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.default={dragAndDrop:"Drag & drop",or:"or",browse:"Browse files",filesOrFoldersHere:"files or folders here",cancel:"Cancel",clearAll:"Clear all",clear:"Clear",add:"Add",upload:"Upload",download:"Download",error:"error",byte:"B",kilobyte:"KB",megabyte:"MB",gigabyte:"GB"}},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(120)),n(i(61)),n(i(37))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.click="click",t.doubleClick="doubleclick",t.contextmenu="contextmenu",t.focusChange="focuschange",t.beforeEditStart="beforeEditStart",t.afterEditStart="afterEditStart",t.beforeEditEnd="beforeEditEnd",t.afterEditEnd="afterEditEnd"}(e.ListEvents||(e.ListEvents={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n,o=i(39),r=i(1),s={"%d":function(t){var e=t.getDate();return e<10?"0"+e:e},"%j":function(t){return t.getDate()},"%l":function(t){return o.default.days[t.getDay()]},"%D":function(t){return o.default.daysShort[t.getDay()]},"%m":function(t){var e=t.getMonth()+1;return e<10?"0"+e:e},"%n":function(t){return t.getMonth()+1},"%M":function(t){return o.default.monthsShort[t.getMonth()]},"%F":function(t){return o.default.months[t.getMonth()]},"%y":function(t){return t.getFullYear().toString().slice(2)},"%Y":function(t){return t.getFullYear()},"%h":function(t){var e=t.getHours()%12;return e<10?"0"+e:e},"%g":function(t){return t.getHours()%12},"%H":function(t){var e=t.getHours();return e<10?"0"+e:e},"%G":function(t){return t.getHours()},"%i":function(t){var e=t.getMinutes();return e<10?"0"+e:e},"%s":function(t){var e=t.getSeconds();return e<10?"0"+e:e},"%a":function(t){return t.getHours()>12?"pm":"am"},"%A":function(t){return t.getHours()>12?"PM":"AM"},"%u":function(t){return t.getMilliseconds()}},a={"%d":function(t,e){/(^([0-9][0-9])$)/i.test(e)?t.setDate(Number(e)):t.setDate(Number(1))},"%j":function(t,e){/(^([0-9]?[0-9])$)/i.test(e)?t.setDate(Number(e)):t.setDate(Number(1))},"%m":function(t,e){/(^([0-9][0-9])$)/i.test(e)?t.setMonth(Number(e)-1):t.setMonth(Number(0))},"%n":function(t,e){/(^([0-9]?[0-9])$)/i.test(e)?t.setMonth(Number(e)-1):t.setMonth(Number(0))},"%M":function(t,e){var i=r.findIndex(o.default.monthsShort,function(t){return t===e});-1===i?t.setMonth(0):t.setMonth(i)},"%F":function(t,e){var i=r.findIndex(o.default.months,function(t){return t===e});-1===i?t.setMonth(0):t.setMonth(i)},"%y":function(t,e){/(^([0-9][0-9])$)/i.test(e)?t.setFullYear(Number("20"+e)):t.setFullYear(Number("2000"))},"%Y":function(t,e){/(^([0-9][0-9][0-9][0-9])$)/i.test(e)?t.setFullYear(Number(e)):t.setFullYear(Number("2000"))},"%h":function(t,e){/(^0[1-9]|1[0-2]$)/i.test(e)?t.setHours(Number(e)):t.setHours(Number(0))},"%g":function(t,e){/(^[1-9]$)|(^0[1-9]|1[0-2]$)/i.test(e)?t.setHours(Number(e)):t.setHours(Number(0))},"%H":function(t,e){/(^[0-9][0-3]$)/i.test(e)?t.setHours(Number(e)):t.setHours(Number(0))},"%G":function(t,e){/(^([0-9]$)|[0-9][0-3]$)/i.test(e)?t.setHours(Number(e)):t.setHours(Number(0))},"%i":function(t,e){/(^([0-5][0-9])$)/i.test(e)?t.setMinutes(Number(e)):t.setMinutes(Number(0))},"%s":function(t,e){/(^([0-5][0-9])$)/i.test(e)?t.setSeconds(Number(e)):t.setSeconds(Number(0))},"%a":function(t,e){"pm"===e&&t.setHours(t.getHours()+12)},"%A":function(t,e){"PM"===e&&t.setHours(t.getHours()+12)}};function c(t){for(var e=[],i="",o=0;o0&&(e.push({type:n.separator,value:i}),i=""),e.push({type:n.datePart,value:t[o]+t[o+1]}),o++):i+=t[o];return i.length>0&&e.push({type:n.separator,value:i}),e}e.getFormatedDate=function(t,e){return c(t).reduce(function(t,i){return i.type===n.separator?t+i.value:s[i.value]?t+s[i.value](e):t},"")},function(t){t[t.separator=0]="separator",t[t.datePart=1]="datePart"}(n||(n={})),e.stringToDate=function(t,e,i){for(var o=[],r=0,s=null,l=0,u=c(e);l1&&(e-=1)}return{h:Math.floor(360*e),s:i,v:s}}Object.defineProperty(e,"__esModule",{value:!0}),e.HSVtoRGB=function(t){var e={r:0,g:0,b:0},i=t.h/60,n=t.s,o=t.v,r=Math.floor(i)%6,s=i-Math.floor(i),a=255*o*(1-n),c=255*o*(1-n*s),l=255*o*(1-n*(1-s));switch(o*=255,r){case 0:e.r=o,e.g=l,e.b=a;break;case 1:e.r=c,e.g=o,e.b=a;break;case 2:e.r=a,e.g=o,e.b=l;break;case 3:e.r=a,e.g=c,e.b=o;break;case 4:e.r=l,e.g=a,e.b=o;break;case 5:e.r=o,e.g=a,e.b=c}for(var u in e)e[u]=Math.round(e[u]);return e},e.RGBToHex=function(t){return Object.keys(t).reduce(function(e,i){var n=t[i].toString(16).toUpperCase();return e+(n=1===n.length?"0"+n:n)},"#")},e.HexToRGB=n,e.RGBToHSV=o,e.HexToHSV=function(t){return o(n(t))},e.isHex=function(t){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t)}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.default={cancel:"Cancel",select:"Select",rightClickToDelete:"Right click to delete",customColors:"Custom colors",addNewColor:"Add new color"}},function(t,e,i){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(t){for(var e,i=1,n=arguments.length;is&&(i[0]=s,i[1]=r[0],i[2]=r[1],i[3]=r[2])}return i},t.prototype.getTooltipType=function(t){return o.TooltipType.top},t.prototype.getTooltipText=function(t){if(this.config.tooltip){var e=this._defaultLocator(this._data.getItem(t));return this.config.tooltipTemplate?this.config.tooltipTemplate(e):e[0]}},t.prototype.dataReady=function(t){return this._points=[]},t.prototype.paint=function(t,e){return this._calckFinalPoints(t,e)},t.prototype.getPoints=function(){return this._points},t.prototype.addScale=function(t,e){},t.prototype._getClosestDist=function(t,e,i,n){return r.euclideanDistance(t,e,i,n)},t.prototype._calckFinalPoints=function(t,e){},t.prototype._setDefaults=function(t){this.config=t},t.prototype._defaultLocator=function(t){return[null,null]},t.prototype._getPointType=function(t,e,i){return i?s.getShadeHelper(t,e,s.hoverMode):s.getShadeHelper(t,e,s.standarMode)},t}();e.default=a},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;i=i)return[0,this._tooltipData[o][0],this._tooltipData[o][1],n[o][2]];i-=n[o][0]}return[1/0,null,null,null]},e.prototype.getTooltipText=function(t){if(this.config.tooltip){var e=this._defaultLocator(this._data.getItem(t));return this.config.tooltipTemplate?this.config.tooltipTemplate(e):e[0]}},e.prototype.getTooltipType=function(t){return s.TooltipType.simple},e.prototype._setDefaults=function(t){var e=this,i={subType:s.NoScaleSubType.basic,paddings:20};this.config=o({},i,t),this._drawPointType=this._getPointType(s.PointType.empty,"none",this.config.tooltip),this._valueLocator=r.locator(t.value),this._textLocator=r.locator(t.text),t.color?this._colorLocator=r.locator(t.color):t.monochrome&&(this._colorLocator=function(i){return r.getColorShade(t.monochrome,2*e._getPercent(i))})},e.prototype._defaultLocator=function(t){return[this._valueLocator(t),this._textLocator(t)]},e.prototype._getPercent=function(t){return parseFloat(this._valueLocator(t))/this._sum},e}(i(44).default);e.default=a},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;i=0?a-1:0,l=a+s+1,u=0,d=i.left,h=0;h0;h++)u++;return{xStart:u-1>=0?u-1:0,xEnd:u+r+1,yStart:c,yEnd:l}},e.getUnique=function(t,e){return t.map(function(t){return t[e]}).filter(function(t,e,i){return i.indexOf(t)===e}).sort()}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getWidth=function(t,e,i){return e?t.reduce(function(t,n,o){return t+=o>=i&&o1?"[]":"",a=0,c=t;a=0?e:-1},t.prototype.getId=function(t){if(this._order[t])return this._order[t].id},t.prototype.getLength=function(){return this._order.length},t.prototype.filter=function(t,e){if((e=u.extend({add:!1,multiple:!0},e)).add||(this._order=this._initOrder||this._order,this._initOrder=null),this._filters=this._filters||{},e.multiple&&t||(this._filters={}),t){if("function"==typeof t){this._filters._={match:"_",compare:t}}else t.match?(t.compare=t.compare||function(t,e){return t===e},this._filters[t.by]=t):delete this._filters[t.by];this._applyFilters()}this.events.fire(l.DataEvents.change)},t.prototype.find=function(t){for(var e in this._pull){var i=c.findByConf(this._pull[e],t);if(i)return i}return null},t.prototype.findAll=function(t){var e=[];for(var i in this._pull){var n=c.findByConf(this._pull[i],t);n&&e.push(n)}return e},t.prototype.sort=function(t){if(t)this._sort.sort(this._order,t),this._initOrder&&this._initOrder.length&&this._sort.sort(this._initOrder,t);else{for(var e in this._order=[],this._pull)this._order.push(this._pull[e]);this._applyFilters()}this.events.fire(l.DataEvents.change)},t.prototype.copy=function(e,i,o,r){if(!this.exists(e))return null;var s=u.uid();return o?o instanceof t||!r?o.exists(e)?(o.add(n({},c.copyWithoutInner(this.getItem(e)),{id:s}),i),s):(o.add(c.copyWithoutInner(this.getItem(e)),i),e):void o.add(c.copyWithoutInner(this.getItem(e)),i):(this.add(n({},c.copyWithoutInner(this.getItem(e)),{id:s}),i),s)},t.prototype.move=function(t,e,i,n){if(i&&i!==this&&this.exists(t)){var o=u.copy(this.getItem(t),!0);return i.exists(t)&&(o.id=u.uid()),n&&(o.parent=n),i.add(o,e),this.remove(t),o.id}if(this.getIndex(t)===e)return null;var r=this._order.splice(this.getIndex(t),1)[0];return-1===e&&(e=this._order.length),this._order.splice(e,0,r),this.events.fire(l.DataEvents.change),t},t.prototype.load=function(t,e){return"string"==typeof t&&(t=new a.DataProxy(t)),this._loader.load(t,e)},t.prototype.parse=function(t,e){return this._removeAll(),this._loader.parse(t,e)},t.prototype.$parse=function(t){var e=this.config.approximate;e&&(t=this._approximate(t,e.value,e.maxNum)),this._parse_data(t),this.events.fire(l.DataEvents.change,["load"]),this.events.fire(l.DataEvents.load)},t.prototype.save=function(t){this._loader.save(t)},t.prototype.isSaved=function(){return!this._changes.order.length},t.prototype.map=function(t){for(var e=[],i=0;ithis._order.length-1&&(e=this._order.length-1);for(var n=[],o=t;o<=e;o++)n.push(i.call(this,this._order[o],o));return n},t.prototype.reduce=function(t,e){for(var i=0;i=0&&(this._order=this._order.filter(function(e){return e.id!==t}),delete this._pull[t]),this._initOrder&&this._initOrder.length&&(this._initOrder=this._initOrder.filter(function(e){return e.id!==t}))},t.prototype._parse_data=function(t){var e=this._order.length;this.config.prep&&(t=this.config.prep(t));for(var i=0,n=t;i=0&&t[i]?(this._pull[e.id]=e,t.splice(i,0,e)):(this._pull[e.id]=e,t.push(e))},t.prototype._applyFilters=function(){var t=this;if(this._filters&&Object.keys(this._filters).length){var e=this._order.filter(function(e){return Object.keys(t._filters).every(function(i){return e[i]?t._filters[i].compare(e[i],t._filters[i].match,e):t._filters[i].compare(e)})});this._initOrder||(this._initOrder=this._order),this._order=e}},t}();e.DataCollection=d},function(t,e,i){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(t){for(var e,i=1,n=arguments.length;iwindow.innerWidth+window.pageXOffset&&(s=window.pageXOffset+t.left-i,o=r.RealPosition.left),{left:s,top:a=window.pageYOffset+t.top+(t.height-n)/2,pos:o};case r.Position.bottom:default:return(s=window.pageXOffset+t.left+(t.width-i)/2)+i>window.innerWidth+window.pageXOffset?s=window.innerWidth+window.pageXOffset-i:s<0&&(s=0),o=r.RealPosition.bottom,(a=window.pageYOffset+t.bottom)+n+8>window.innerHeight+window.pageYOffset&&(a=window.pageYOffset+t.top-n,o=r.RealPosition.top),{left:s,top:a,pos:o}}}e.findPosition=c;var l=document.createElement("div"),u=document.createElement("span");u.className="dhx_tooltip__text",l.appendChild(u),l.style.position="absolute";var d,h=null,p=!1,f=null,_=null;function v(t,e,i,n,o){void 0===o&&(o=!1);var s=t.getBoundingClientRect();u.textContent=e,document.body.appendChild(l),l.className="dhx_tooltip"+(o?" dhx_tooltip--forced":"");var a=l.getBoundingClientRect(),d=c(s,i,a.width,a.height),h=d.left,f=d.top,_=d.pos;switch(_){case r.RealPosition.bottom:case r.RealPosition.top:case r.RealPosition.left:case r.RealPosition.right:case r.RealPosition.center:l.style.left=h+"px",l.style.top=f+"px"}l.className+=" dhx_tooltip--"+_+" "+(n||""),p=!0,o||setTimeout(function(){l.className+=" dhx_tooltip--animate"})}function g(t,e,i){var n=i.force,o=i.showDelay,c=i.hideDelay,u=i.position,g=i.css;n||(_=setTimeout(function(){v(t,e,u||r.Position.bottom,g)},o||s));var m=function(){p&&function(t){h&&(f=setTimeout(function(){document.body.removeChild(l),p=!1,f=null},t||a))}(c),clearTimeout(_),t.removeEventListener("mouseleave",m),t.removeEventListener("blur",m),document.removeEventListener("mousedown",m),h=null,d=null};n&&v(t,e,u,g,n),t.addEventListener("mouseleave",m),t.addEventListener("blur",m),document.addEventListener("mousedown",m),d=m}function m(t,e){var i=o.toNode(e.node);i!==h&&(d&&(d(),d=null),h=i,f?(clearTimeout(f),f=null,g(i,t,n({},e,{force:!0}))):g(i,t,e))}function y(t){var e=o.locateNode(t,"dhx_tooltip_text");e&&m(e.getAttribute("dhx_tooltip_text"),{position:e.getAttribute("dhx_tooltip_position")||r.Position.bottom,node:e})}e.tooltip=m,e.enableTooltip=function(){document.addEventListener("mousemove",y)},e.disableTooltip=function(){document.removeEventListener("mousemove",y)}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(21),o=i(7),r=function(){function t(t,e){var i=this;this.config=t,this.events=e.events,this._data=e,this._selected=[],this._lastShiftSelectedIndexes=[],this._data.events.on(o.DataEvents.removeAll,function(){i._selected=[]}),this._data.events.on(o.DataEvents.afterRemove,function(t){if(i._selected=i._selected.filter(function(e){return e!==t.id}),!i.config.multiselection||0===i.getId().length){var e=i._data.getId(i._lastSelectedIndex);if(e)i.add(e);else{var n=i._data.getId(i._data.getLength()-1);n&&i.add(n)}}})}return t.prototype.getId=function(){return this.config.multiselection?this._selected:this._selected[0]},t.prototype.getItem=function(){var t=this;if(this._selected.length){var e=this._selected.map(function(e){return t._data.getItem(e)});return this.config.multiselection?e:e[0]}return null},t.prototype.contains=function(t){return t?this._selected.indexOf(t)>-1:this._selected.length>0},t.prototype.remove=function(t){var e=this;if(t)return!t&&!this._selected.length||(t?this._unselectItem(t):(this._selected.forEach(function(t){return e._unselectItem(t)}),!0));this._data.map(function(t){t.$selected=!1,e._selected=[]})},t.prototype.add=function(t,e,i){var o=this;if(this.events.fire(n.SelectionEvents.beforeSelect))return t?void(this.config.multiselection?this._addMulti(t,e,i):this._addSingle(t,e)):(this._selected=[],void this._data.map(function(t){t.$selected=!0,o._selected.push(t.id)}))},t.prototype._addMulti=function(t,e,i){var o=this,r=this._data.getIndex(t);"click"===this.config.multiselectionMode&&(i?(this._addWithShift(r),this.events.fire(n.SelectionEvents.afterSelect,[t])):(this._isSelected(t)?this._unselectItem(t):this._selectItem(t),this._lastSelectedIndex=this._data.getIndex(this._selected[this._selected.length-1]),this._lastShiftSelectedIndexes=[])),"ctrlClick"===this.config.multiselectionMode&&(i||e||(this._data.map(function(t){t.$selected=!1,o._selected=[]}),this._isSelected(t)?this._unselectItem(t):this._selectItem(t),this._lastSelectedIndex=this._data.getIndex(this._selected[this._selected.length-1]),this._lastShiftSelectedIndexes=[]),i&&(this._addWithShift(r),this.events.fire(n.SelectionEvents.afterSelect,[t])),e&&(this._isSelected(t)?this._unselectItem(t):this._selectItem(t),this._lastSelectedIndex=this._data.getIndex(this._selected[this._selected.length-1]),this._lastShiftSelectedIndexes=[]))},t.prototype._addWithShift=function(t){var e=this;t>=this._lastSelectedIndex&&(this._data.map(function(t,i){-1!==e._lastShiftSelectedIndexes.indexOf(i)&&(t.$selected=!1,e._selected=e._selected.filter(function(t){return t!==e._data.getId(i)}),e._lastShiftSelectedIndexes=e._lastShiftSelectedIndexes.filter(function(t){return t!==i&&t!==e._lastSelectedIndex}))}),this._data.map(function(i,n){n>=e._lastSelectedIndex&&n<=t&&(i.$selected=!0,-1===e._selected.indexOf(i.id)&&e._selected.push(i.id),n!==e._lastSelectedIndex&&-1===e._lastShiftSelectedIndexes.indexOf(n)&&e._lastShiftSelectedIndexes.push(n))})),t<=this._lastSelectedIndex&&(this._data.map(function(t,i){-1!==e._lastShiftSelectedIndexes.indexOf(i)&&(t.$selected=!1,e._selected=e._selected.filter(function(t){return t!==e._data.getId(i)}),e._lastShiftSelectedIndexes=e._lastShiftSelectedIndexes.filter(function(t){return t!==i&&t!==e._lastSelectedIndex}))}),this._data.map(function(i,n){n<=e._lastSelectedIndex&&n>=t&&(i.$selected=!0,-1===e._selected.indexOf(i.id)&&e._selected.push(i.id),n!==e._lastSelectedIndex&&-1===e._lastShiftSelectedIndexes.indexOf(n)&&e._lastShiftSelectedIndexes.push(n))}))},t.prototype._addSingle=function(t,e){this.remove(),this.config&&"click"===this.config.multiselectionMode?this._selectItem(t):e&&this._selectItem(t)},t.prototype._isSelected=function(t){return-1!==this._selected.indexOf(t)},t.prototype._selectItem=function(t){this._selected.push(t),this._data.update(t,{$selected:!0}),this._lastSelectedIndex=this._data.getIndex(t),this.events.fire(n.SelectionEvents.afterSelect,[t])},t.prototype._unselectItem=function(t){return!!this.events.fire(n.SelectionEvents.beforeUnSelect,[t])&&(this._data.update(t,{$selected:!1}),this._selected=this._selected.filter(function(e){return e!==t}),this.events.fire(n.SelectionEvents.afterUnSelect,[t]),!0)},t}();e.Selection=r},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.beforeHide="beforehide",t.beforeShow="beforeshow",t.afterHide="afterhide",t.afterShow="aftershow",t.click="click"}(e.PopupEvents||(e.PopupEvents={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.vertical="vertical",t.horizontal="horizontal"}(e.Direction||(e.Direction={})),function(t){t.change="change",t.mousedown="mousedown",t.mouseup="mouseup"}(e.SliderEvents||(e.SliderEvents={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.default={hours:"Hours",minutes:"Minutes",save:"save"}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.change="change",t.save="save",t.close="close"}(e.TimepickerEvents||(e.TimepickerEvents={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.days="calendar",t.years="year",t.months="month",t.timepicker="timepicker"}(e.ViewMode||(e.ViewMode={})),function(t){t.change="change",t.beforeChange="beforechange",t.dateHover="dateHover"}(e.CalendarEvents||(e.CalendarEvents={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.colorChange="colorChange",t.selectClick="selectClick",t.cancelClick="cancelClick",t.viewChange="viewChange"}(e.ColorpickerEvents||(e.ColorpickerEvents={})),function(t){t.palette="palette",t.picker="picker"}(e.ViewsTypes||(e.ViewsTypes={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(1),o=i(0),r=i(5),s=function(t){return t.toString()};e.bottom=function(t,e,i,a){var c=e.title,l=e.textPadding,u=e.scalePadding,d=e.textTemplate,h=e.showText,p=d||s,f=[],_=0;h&&(_=l,f=t.map(function(t){return 0!==t[0]?o.sv("text",{class:"scale-text top-text",x:t[0],y:a+l},[r.verticalCenteredText(p(t[1]))]):o.sv("text",{class:"scale-text start-text top-text",x:t[0],y:a+l},[r.verticalCenteredText(p(t[1]))])}));var v=n.uid(),g=null,m=o.sv("path",{class:"main-scale",d:"M0 "+a+" H"+(i-.5),id:v});return c&&(g=o.sv("text",{dx:i/2,dy:u+_},[o.sv("textPath",{href:"#"+v,class:"scale-title"},c)])),o.sv("g",[m,g].concat(f))},e.bottomGrid=function(t,e,i,n){for(var r=n.dashed,s=n.grid,a=n.targetLine,c=n.targetValue,l=t.length,u=[],d="grid-line "+(r?"dash-line":""),h=0;h=0;_--){var v=n[_];f+=_===h.length-1?"M"+v[0]+" "+v[1]+" ":"L"+v[0]+" "+v[1]+" "}f+=h.map(function(t,e){return e?"L "+t[0]+" "+t[1]:"V "+t[1]}).join(" ")+"Z"}else f+=h.map(function(t,i){return i?"L"+t[0]+" "+t[1]:"M0 "+e+" L0 "+t[1]+" L"+t[0]+" "+t[1]}).join(" ")+"L"+t+" "+p[1]+" V "+e;if(d){var g=h.length-1,m=h.map(function(t,e){return(e?"L":"M")+(t[0]+function(t){return t===g?-.5:t?0:.5}(e))+" "+t[1]}).join(" "),y=r.sv("path",{d:m,"stroke-width":d,stroke:u,fill:"none",class:o});i.push(y)}var x=r.sv("path",{id:"seria"+a,d:f,class:o,fill:c,"fill-opacity":l,stroke:"none"});return i.push(x),i},e.prototype._setDefaults=function(t){var e={alpha:.3,strokeWidth:2,fill:t.color||"#5E83BA",color:"#5E83BA",active:!0,tooltip:!0,pointType:a.PointType.empty};this.config=o({},e,t);var i=this.config.tooltip,n=this.config.pointType,r=this.config.pointColor||this.config.color;n&&(this._drawPointType=this._getPointType(n,r,i))},e}(i(43).default);e.default=c},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;i16}(t,e)?s.sv("text",r._text(t,f(e)),[a.verticalCenteredText(r._getText(t))]):null});h.push.apply(h,v)}return h},e.prototype._getText=function(t){return t[3].toString()},e.prototype._setDefaults=function(t){var e={barWidth:30,alpha:1,active:!0,tooltip:!0,pointType:c.PointType.empty};this.config=o({},e,t);var i=this.config.tooltip,n=this.config.pointType,s=this.config.pointColor||this.config.color;if(n&&(this.config.pointType=n,this._drawPointType=this._getPointType(n,s,i)),this.config.gradient){var l="gradient"+r.uid(),u=this.config.gradient(this.config.fill);this._gradient=function(){return a.linearGradient(u,l)},this.config.fill="url(#"+l+")"}},e}(i(43).default);e.default=l},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){var i,n=t.length;if(n<3)i=t;else{var o=t[0],r=t[0],s=t[1],a=t[2];i=[t[0].slice(0,2)];for(var c=1;c4?"C"+u[0]+" "+u[1]+"\n\t\t\t\t"+u[2]+" "+u[3]+"\n\t\t\t\t"+u[4]+" "+u[5]:"S"+u[0]+" "+u[1]+"\n\t\t\t\t"+u[2]+" "+u[3]:(e?"L":"M")+u[d-2]+" "+u[d-1]}return l}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.change="change",t.open="open",t.close="close"}(e.ComboboxEvents||(e.ComboboxEvents={})),function(t){t[t.default=0]="default",t[t.error=1]="error",t[t.success=2]="success"}(e.ComboState||(e.ComboState={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={simpleVaultText:"Drag & drop files or folders here or",simpleVaultLabel:"browse files"}},function(t,e,i){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(t){for(var e,i=1,n=arguments.length;i=0;k--)w+=i[k].width;var C=g.header[0].text?"dhx_span-cell":"dhx_span-cell dhx_span-cell--title";f&&(C+=" "+f),0===v&&(C+=" dhx_span-first-row"),0===_&&(C+=" dhx_span-first-col");var E=_===i.length-1,O=_+p===i.length;(E||O)&&(C+=" dhx_span-last-col"),C+=p?" dhx_span-string-cell":" dhx_span-"+(g.type||"string")+"-cell";var I=p>1?s.getWidth(t.columns,p,_):g.width;e.push(r.el("div",{class:C,style:{width:I,height:(h||1)*c,top:b,left:w,lineHeight:t.rowHeight+"px"},title:a.removeHTMLTags(x)},[y]))},u=0;u=i.length-1?"dhx_last-column-cell":"",f=a;n.rowspan&&(f=f*n.rowspan-1);var _=n.rowspan&&n.text&&t.headerSort&&"footer"!==e.name,v="dxi dxi-sort-variant dhx_grid-sort-icon";t.sortBy&&""+d.id===t.sortBy&&!n.content&&(v+=" dhx_grid-sort-icon--"+(t.sortDir||"asc"));var g=h+" "+p+" "+(n.rowspan?"dhx_span-cell__rowspan":"");return _&&(g+=" dhx_grid-header-cell dhx_grid-header-cell--sortable"),n.content||(g+=" dhx_grid-header-cell--"+("number"===d.type?"align_right":"align_left")+" "),n.colspan||n.rowspan?o.el(".dhx_span-cell",{style:{width:r.getWidth(t.columns,n.colspan,u),height:f,left:c-d.width,top:a*l,lineHeight:f+"px"},class:g.trim(),title:s.removeHTMLTags(n.text),dhx_id:d.id},[o.el("div",{".innerHTML":n.text}),_&&o.el("div",{class:v},n.text)]):null}).filter(function(t){return t}))})}e.getRows=d,e.getSpans=h,e.getFixedRows=function(t,e){var i,r=d(t,e),s=h(t,e),a=null;"footer"!==e.name||e.sticky||(a=t.splitAt>=0&&d(n({},t,{currentColumns:t.columns.slice(0,t.splitAt),$positions:n({},t.$positions,{xStart:0,xEnd:t.splitAt})}),e));var c,l=((i={position:"sticky"})[e.position]=0,i);return e.sticky||(l.left=-t.scroll.left,c=-t.scroll.left,l.position="relative"),o.el(".dhx_"+e.name+"-wrapper",{class:e.sticky?"":"dhx_compatible-"+e.name,style:n({},l,{left:e.sticky?c:0,height:t[e.name+"Height"],width:e.sticky?t.$totalWidth:e.wrapper.width-2})},[o.el(".dhx_grid-"+e.name,{style:{height:t[e.name+"Height"],left:c,paddingLeft:e.shifts.x,width:t.$totalWidth}},[o.el(".dhx_"+e.name+"-rows",r.slice()),o.el(".dhx_"+e.name+"-spans",{style:{marginLeft:-e.shifts.x}},s),a&&o.el(".dhx_"+e.name+"-fixed-cols",{style:{position:"absolute",top:0,left:t.scroll.left+"px",height:"100%"}},a)]),o.el("div",{style:{width:t.$totalWidth}})])}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n,o=i(0),r=i(11);function s(t,e,i,o,s){var a=function(){o.value[e]=s.target.value,t.fire(r.GridEvents.headerInput,[s.target.value,e,i])};"selectFilter"!==i?(n&&clearTimeout(n),n=setTimeout(a,250)):a()}function a(t,e,i,n){var o=t.id,r=n?n(o,e.data):e.data.reduce(function(t,e){return void 0===e[o]||""===e[o]||isNaN(e[o])||t.push(parseFloat(e[o])),t},[]),s=r;return"tree"===e.type&&(s=e.data.reduce(function(t,i){if(0===i.$level)if(void 0===i[o]||""===i[o]||isNaN(i[o])){var n=0;e.datacollection.eachChild(i.id,function(t){e.datacollection.haveItems(t.id)||(n+=parseFloat(t[o]))}),t.push(n)}else t.push(parseFloat(i[o])||0);return t},[])),i(r,s)}e.content={inputFilter:{toHtml:function(t,e){return o.el("label.dhx_grid-filter__label.dxi.dxi-magnify",[o.el("input",{type:"text",class:"dhx_input dhx_grid-filter",oninput:[s,e.events,t.id,"inputFilter",this],_key:t.id,value:this.value[t.id]||""})])},match:function(t,e){return new RegExp(""+e,"i").test(t)},value:{}},selectFilter:{toHtml:function(t,e){return o.el("label.dhx_grid-filter__label.dxi.dxi-menu-down",[o.el("select.dxi.dxi-menu-down",{type:"text",class:"dhx_input dhx_grid-filter dhx_grid-filter--select",onchange:[s,e.events,t.id,"selectFilter",this],_key:t.id,value:this.value[t.id]||""},[o.el("option",{value:""},"")].concat(t.$uniqueData.map(function(t){return t&&o.el("option",{value:t},t)})))])},match:function(t,e){return t===e},value:{}},sum:{calculate:function(t,e){return e.reduce(function(t,e){return t+(parseFloat(e)||0)},0).toFixed(3)},toHtml:function(t,e){return a(t,e,this.calculate)}},avg:{calculate:function(t,e){return(e.reduce(function(t,e){return t+e},0)/t.length).toFixed(3)},toHtml:function(t,e){return a(t,e,this.calculate)}},min:{calculate:function(t){return Math.min.apply(Math,t).toFixed(3)},toHtml:function(t,e){return a(t,e,this.calculate)}},max:{calculate:function(t){return Math.max.apply(Math,t).toFixed(3)},toHtml:function(t,e){return a(t,e,this.calculate)}},count:{calculate:function(t,e){return e.reduce(function(t,e){return t+e},0)},validate:function(t,e){return e.reduce(function(e,i){return void 0!==i[t]&&""!==i[t]&&(isNaN(i)?e.push(1):e.push(i)),e},[])},toHtml:function(t,e){return a(t,e,this.calculate,this.validate)}}}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.toggle="toggle"}(e.SidebarEvents||(e.SidebarEvents={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.top="top",t.bottom="bottom",t.left="left",t.right="right"}(e.RenderMode||(e.RenderMode={})),function(t){t.change="change",t.close="close"}(e.TabbarEvents||(e.TabbarEvents={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n,o,r=i(0),s=i(2),a=i(3),c=i(13);!function(t){t.editText="text",t.selectItem="select"}(n=e.EditorMode||(e.EditorMode={})),function(t){t.begin="begin",t.end="end"}(o=e.EditorEvents||(e.EditorEvents={}));var l=function(){function t(){var t=this;this.events=new s.EventSystem,this._documentClick=function(e){a.locate(e,"id")!=="input_"+t._item.id&&(t._removeClickListener(),t._finishEdit())},this._handlers={editText:function(e){t._currentValue=e.target.value},itemSelected:function(e){t._currentValue=e.target.value,t._finishEdit()}}}return t.prototype.edit=function(t,e){return this._active&&this._item!==e.item&&this._finishEdit(),this._active=!0,this.events.fire(o.begin,[t]),this._targetId=t,this.config=e,this._item=e.item,this._currentValue=this._item.value,this._initOuterClick(),this._addHotkeys(),this._draw()},t.prototype._draw=function(){var t=this;if(this.config.mode===n.selectItem){var e=this.config.options;return r.el("select",{id:"input_"+this._item.id,dhx_id:this._item.id,onchange:this._handlers.itemSelected},e.map(function(e){return r.el("option",{class:"editor-select",value:e,selected:t._currentValue===e,style:{border:"1px solid"}},e)}))}return r.el("input",{_hooks:{didInsert:function(t){t.el.focus()}},id:"input_"+this._item.id,class:"dhx_tree-input",oninput:this._handlers.editText,value:this._item.value,autofocus:!0})},t.prototype._addHotkeys=function(){var t=this;c.keyManager.addHotKey("escape",function(){t._finishEdit()},this),c.keyManager.addHotKey("enter",function(){t._finishEdit()},this)},t.prototype._removeHotkeys=function(){c.keyManager.removeHotKey(null,this)},t.prototype._finishEdit=function(){this.events.fire(o.end,[this._targetId,this._item.id,this._currentValue]),this._clear()},t.prototype._clear=function(){this._active=!1,this._removeClickListener(),this._removeHotkeys()},t.prototype._initOuterClick=function(){document.addEventListener("click",this._documentClick)},t.prototype._removeClickListener=function(){document.removeEventListener("click",this._documentClick)},t}();e.default=new l},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t[t.unselected=0]="unselected",t[t.selected=1]="selected",t[t.indeterminate=2]="indeterminate"}(e.SelectStatus||(e.SelectStatus={})),function(t){t.file="file",t.folder="folder",t.openFolder="openFolder"}(e.ItemIcon||(e.ItemIcon={})),function(t){t.itemClick="itemclick",t.itemDblClick="itemdblclick",t.itemContextMenu="itemcontextmenu"}(e.TreeEvents||(e.TreeEvents={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),i(82);var n=i(83);e.cssManager=n.cssManager;var o=i(2);e.EventSystem=o.EventSystem;var r=i(53);e.Uploader=r.Uploader;var s=i(12);e.Layout=s.Layout;var a=i(36);e.List=a.List;var c=i(28);e.Calendar=c.Calendar;var l=i(31);e.Colorpicker=l.Colorpicker;var u=i(134);e.Chart=u.Chart;var d=i(47);e.Combobox=d.Combobox;var h=i(7);e.DataCollection=h.DataCollection,e.TreeCollection=h.TreeCollection,e.DataProxy=h.DataProxy,e.dataDrivers=h.dataDrivers;var p=i(160);e.DataView=p.DataView;var f=i(164);e.Form=f.Form;var _=i(179);e.Grid=_.Grid;var v=i(19);e.message=v.message,e.alert=v.alert,e.confirm=v.confirm,e.enableTooltip=v.enableTooltip,e.disableTooltip=v.disableTooltip,e.tooltip=v.tooltip;var g=i(189);e.Menu=g.Menu,e.ContextMenu=g.ContextMenu;var m=i(10);e.Popup=m.Popup;var y=i(192);e.Ribbon=y.Ribbon;var x=i(194);e.Sidebar=x.Sidebar;var b=i(30);e.Slider=b.Slider;var w=i(196);e.Tabbar=w.Tabbar;var k=i(29);e.Timepicker=k.Timepicker;var C=i(27);e.Toolbar=C.Toolbar;var E=i(198);e.Tree=E.Tree;var O=i(201);e.Window=O.Window;var I=i(31),S=i(34),M=i(39),P=i(48),T=i(73),D=i(64),V=window;e.i18n=V.dhx&&V.dhx.i18n?V.dhx.i18:{},e.i18n.setLocale=function(t,i){var n=e.i18n[t];for(var o in i)n[o]=i[o]},e.i18n.colorpicker=e.i18n.colorpicker||I.locale,e.i18n.message=e.i18n.message||S.default,e.i18n.calendar=e.i18n.calendar||M.default,e.i18n.combobox=e.i18n.combobox||P.default,e.i18n.form=e.i18n.form||T.default,e.i18n.timepicker=e.i18n.timepicker||D.default},function(t,e,i){},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(1),o=function(){function t(){this._classes={};var t=document.createElement("style");t.id="dhx_generated_styles",this._styleCont=document.head.appendChild(t)}return t.prototype.update=function(){document.head.appendChild(this._styleCont),this._styleCont.innerHTML=this._generateCss()},t.prototype.remove=function(t){delete this._classes[t],this.update()},t.prototype.add=function(t,e,i){void 0===i&&(i=!1);var n=this._toCssString(t),o=this._findSameClassId(n);return o&&e&&e!==o?(this._classes[e]=this._classes[o],e):o||this._addNewClass(n,e,i)},t.prototype.get=function(t){if(this._classes[t]){for(var e={},i=0,n=this._classes[t].split(";");i=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},i(86),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,i(32))},function(t,e,i){(function(t,e){!function(t,i){"use strict";if(!t.setImmediate){var n,o=1,r={},s=!1,a=t.document,c=Object.getPrototypeOf&&Object.getPrototypeOf(t);c=c&&c.setTimeout?c:t,"[object process]"==={}.toString.call(t.process)?n=function(t){e.nextTick(function(){u(t)})}:function(){if(t.postMessage&&!t.importScripts){var e=!0,i=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=i,e}}()?function(){var e="setImmediate$"+Math.random()+"$",i=function(i){i.source===t&&"string"==typeof i.data&&0===i.data.indexOf(e)&&u(+i.data.slice(e.length))};t.addEventListener?t.addEventListener("message",i,!1):t.attachEvent("onmessage",i),n=function(i){t.postMessage(e+i,"*")}}():t.MessageChannel?function(){var t=new MessageChannel;t.port1.onmessage=function(t){u(t.data)},n=function(e){t.port2.postMessage(e)}}():a&&"onreadystatechange"in a.createElement("script")?function(){var t=a.documentElement;n=function(e){var i=a.createElement("script");i.onreadystatechange=function(){u(e),i.onreadystatechange=null,t.removeChild(i),i=null},t.appendChild(i)}}():n=function(t){setTimeout(u,0,t)},c.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),i=0;i1)for(var i=1;i\n";for(var s in t)Array.isArray(t[s])?(i+=o(e+n)+"<"+s+">\n",i+=t[s].map(function(t){return r(t,e+2*n)}).join("\n")+"\n",i+=o(e+n)+""+s+">\n"):i+=o(e+n)+"<"+s+">"+t[s]+""+s+">\n";return i+=o(e)+""}e.jsonToXML=function(t,e){void 0===e&&(e="root");for(var i='\n<'+e+">",n=0;n"}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(18),o=function(){function t(){}return t.prototype.sort=function(t,e){var i=this;e.rule&&"function"==typeof e.rule?this._sort(t,e):e.by&&(e.rule=function(t,o){var r=i._checkVal(e.as,t[e.by]),s=i._checkVal(e.as,o[e.by]);return n.naturalCompare(r.toString(),s.toString())},this._sort(t,e))},t.prototype._checkVal=function(t,e){return t?t.call(this,e):e},t.prototype._sort=function(t,e){var i=this,n={asc:1,desc:-1};return t.sort(function(t,o){return e.rule.call(i,t,o)*(n[e.dir]||n.asc)})},t}();e.Sort=o},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(1),r=i(55),s=i(25),a=i(18),c=i(17);function l(t,e,i,n){void 0!==n&&-1!==n&&t[i]&&t[i][n]?t[i].splice(n,0,e):(t[i]||(t[i]=[]),t[i].push(e))}var u=function(t){function e(e,i){var n,r=t.call(this,e,i)||this,s=r._root="_ROOT_"+o.uid();return r._childs=((n={})[s]=[],n),r._initChilds=null,r}return n(e,t),e.prototype.add=function(e,i,n){var o=this;if(void 0===i&&(i=-1),void 0===n&&(n=this._root),"object"!=typeof e&&(e={value:e}),!Array.isArray(e)){e.parent=e.parent?e.parent.toString():n;var r=t.prototype.add.call(this,e,i);if(Array.isArray(e.items))for(var s=0,a=e.items;s0&&-1!==i&&(i+=1),e.parent=e.parent?e.parent.toString():n;var s=t.prototype.add.call(o,e,i);if(Array.isArray(e.items))for(var a=0,c=e.items;a0&&i[t]!==i[r.getRoot()]){var e=i[r.getRoot()].find(function(e){if(e.id===t)return e});e&&n.push(e)}},r=this;for(var s in i)o(s);i[this.getRoot()]=n,this._childs=i,this.events.fire(c.DataEvents.change)}else this.restoreOrder()},e.prototype.restoreOrder=function(){this._initChilds&&(this._childs=this._initChilds,this._initChilds=null),this.events.fire(c.DataEvents.change)},e.prototype.copy=function(t,e,i,n){if(void 0===i&&(i=this),void 0===n&&(n=this._root),!this.exists(t))return null;var r=this._childs[t];if(i===this&&!this.canCopy(t,n))return null;var s=a.copyWithoutInner(this.getItem(t),{items:!0});if(i.exists(t)&&(s.id=o.uid()),a.isTreeCollection(i)){if(this.exists(t)&&(s.parent=n,i.add(s,e),t=s.id),r)for(var c=0,l=r;c1?(this._selectedIds=e,this._itemsForGhost=i):(this._selectedIds=[],this._itemsForGhost=null),r&&s){var a=n.getBox(o),c=a.left,l=a.top;this._transferData.initXOffset=t.pageX-c,this._transferData.initYOffset=t.pageY-l,this._transferData.x=t.pageX,this._transferData.y=t.pageY,this._transferData.targetId=s,this._transferData.id=r,this._transferData.item=o}}},t.prototype._moveGhost=function(t,e){this._transferData.ghost&&(this._transferData.ghost.style.left=t-this._transferData.initXOffset+"px",this._transferData.ghost.style.top=e-this._transferData.initYOffset+"px")},t.prototype._removeGhost=function(){document.body.removeChild(this._transferData.ghost)},t.prototype._onDrop=function(){if(this._canMove){var t=o.collectionStore.getItem(this._lastCollectionId),e=t&&t.config;if(t&&e.dragMode!==r.DragMode.source){if(t.events.fire(r.DragEvents.beforeDrop,[this._lastId,this._transferData.target])){var i={id:this._lastId,target:t},n={id:this._transferData.id,target:this._transferData.target};this._move(n,i),i.target.events.fire(r.DragEvents.dropComplete,[i.id,this._transferData.dropPosition])}this._endDrop()}else this._endDrop()}else this._endDrop()},t.prototype._onDragStart=function(t,e){var i=o.collectionStore.getItem(e),n=i.config;if(n.dragMode===r.DragMode.target)return null;var s=i.data.getItem(t),a=function(t,e){var i=t.getBoundingClientRect(),n=document.createElement("div"),o=t.cloneNode(!0);return o.style.width=i.width+"px",o.style.height=i.height+"px",o.style.maxHeight=i.height+"px",o.style.opacity="0.6",n.appendChild(o),e&&e.length&&e.forEach(function(t,e){var o=t.cloneNode(!0);o.style.width=i.width+"px",o.style.height=i.height+"px",o.style.maxHeight=i.height+"px",o.style.top=12*(e+1)-i.height-i.height*e+"px",o.style.left=12*(e+1)+"px",o.style.opacity="0.6",o.style.zIndex=""+(-e-1),n.appendChild(o)}),n.className="dhx_drag-ghost",n.style.position="absolute",n.style.pointerEvents="none",n}(this._transferData.item,this._itemsForGhost);return i.events.fire(r.DragEvents.beforeDrag,[s,a])&&t?(i.events.fire(r.DragEvents.dragStart,[t,this._selectedIds]),this._toggleTextSelection(!0),this._transferData.target=i,this._transferData.dragConfig=n,a):null},t.prototype._onDrag=function(t){var e=t.clientX,i=t.clientY,a=document.elementFromPoint(e,i),c=n.locate(a,"dhx_widget_id");if(c){var l=o.collectionStore.getItem(c),u=n.locate(a,"dhx_id");if(!u)return this._cancelCanDrop(),this._lastCollectionId=c,this._lastId=null,void this._canDrop();if(l.config.dropBehaviour===r.DropBehaviour.complex){var d=function(t){var e=t.clientY,i=n.locateNode(t);if(!i)return null;var o=i.childNodes[0].getBoundingClientRect();return(e-o.top)/o.height}(t);this._transferData.dropPosition=d<=.25?r.DropPosition.top:d>=.75?r.DropPosition.bot:r.DropPosition.in}else if(this._lastId===u&&this._lastCollectionId===c)return;var h={id:this._transferData.id,target:this._transferData.target};if("source"!==l.config.dragMode)if(h.target.events.fire(r.DragEvents.dragOut,[u,l]),c!==this._transferData.targetId||!s.isTreeCollection(h.target.data)||s.isTreeCollection(h.target.data)&&h.target.data.canCopy(h.id,u))this._cancelCanDrop(),this._lastId=u,this._lastCollectionId=c,h.target.events.fire(r.DragEvents.dragIn,[u,this._transferData.dropPosition,o.collectionStore.getItem(c)])&&this._canDrop();else this._cancelCanDrop()}else this._canMove&&this._cancelCanDrop()},t.prototype._move=function(t,e){var i=t.target.data,n=e.target.data,o=0,a=e.id;switch(s.isTreeCollection(n)?e.target.config.dropBehaviour:void 0){case r.DropBehaviour.child:break;case r.DropBehaviour.sibling:a=n.getParent(a),o=n.getIndex(e.id)+1;break;case r.DropBehaviour.complex:var c=this._transferData.dropPosition;c===r.DropPosition.top?(a=n.getParent(a),o=n.getIndex(e.id)):c===r.DropPosition.bot&&(a=n.getParent(a),o=n.getIndex(e.id)+1);break;default:o=e.id?t.target===e.target&&n.getIndex(t.id)1?this._selectedIds.map(function(t){i.copy(t,o,n,a),o>-1&&o++}):i.copy(t.id,o,n,a):this._selectedIds instanceof Array&&this._selectedIds.length>1?this._selectedIds.map(function(t){i.move(t,o,n,a),o>-1&&o++}):i.move(t.id,o,n,a)},t.prototype._endDrop=function(){this._toggleTextSelection(!1),this._transferData.target&&this._transferData.target.events.fire(r.DragEvents.dragEnd,[this._transferData.id,this._selectedIds]),this._cancelCanDrop(),this._canMove=!0,this._transferData={},this._lastId=null,this._lastCollectionId=null},t.prototype._cancelCanDrop=function(){this._canMove=!1;var t=o.collectionStore.getItem(this._lastCollectionId);t&&this._lastId&&t.events.fire(r.DragEvents.cancelDrop,[this._lastId]),this._lastCollectionId=null,this._lastId=null},t.prototype._canDrop=function(){this._canMove=!0;var t=o.collectionStore.getItem(this._lastCollectionId);t&&this._lastId&&t.events.fire(r.DragEvents.canDrop,[this._lastId,this._transferData.dropPosition])},t.prototype._toggleTextSelection=function(t){t?document.body.classList.add("dhx_no-select"):document.body.classList.remove("dhx_no-select")},t}(),c=window.dhxHelpers=window.dhxHelpers||{};c.dragManager=c.dragManager||new a,e.dragManager=c.dragManager},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(){this._store={}}return t.prototype.setItem=function(t,e){this._store[t]=e},t.prototype.getItem=function(t){return this._store[t]?this._store[t]:null},t}(),o=window.dhxHelpers=window.dhxHelpers||{};o.collectionStore=o.collectionStore||new n,e.collectionStore=o.collectionStore},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(2),o=i(21),r=i(17),s=function(){function t(t,e,i){var o=this;this.events=i||new n.EventSystem(this),this._data=e,this._data.events.on(r.DataEvents.removeAll,function(){o._selected=null}),this._data.events.on(r.DataEvents.change,function(){if(o._selected){var t=o._data.getNearId(o._selected);t!==o._selected&&(o._selected=null,t&&o.add(t))}})}return t.prototype.getId=function(){return this._selected},t.prototype.getItem=function(){return this._selected?this._data.getItem(this._selected):null},t.prototype.remove=function(t){return!(t=t||this._selected)||!!this.events.fire(o.SelectionEvents.beforeUnSelect,[t])&&(this._data.update(t,{$selected:!1}),this._selected=null,this.events.fire(o.SelectionEvents.afterUnSelect,[t]),!0)},t.prototype.add=function(t){this._selected!==t&&(this.remove(),this.events.fire(o.SelectionEvents.beforeSelect,[t])&&(this._selected=t,this._data.update(t,{$selected:!0}),this.events.fire(o.SelectionEvents.afterSelect,[t])))},t}();e.Selection=s},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;ie.left+e.width-1||i.pageXe.top+e.height-1||i.pageYe.length)return!1;for(var i=0;ie)return[];for(var i=[];t<=e;)i.push(t++);return i},e.isNumeric=function(t){return!isNaN(t-parseFloat(t))},e.downloadFile=function(t,e,i){void 0===i&&(i="text/plain");var n=new Blob([t],{type:i});if(window.navigator.msSaveOrOpenBlob)window.navigator.msSaveOrOpenBlob(n,e);else{var o=document.createElement("a"),r=URL.createObjectURL(n);o.href=r,o.download=e,document.body.appendChild(o),o.click(),setTimeout(function(){document.body.removeChild(o),window.URL.revokeObjectURL(r)},0)}},e.debounce=function(t,e,i){var n;return function(){var o=this,r=arguments,s=i&&!n;clearTimeout(n),n=setTimeout(function(){n=null,i||t.apply(o,r)},e),s&&t.apply(this,r)}},e.compare=function t(e,i){for(var n in e){if(e.hasOwnProperty(n)!==i.hasOwnProperty(n))return!1;switch(typeof e[n]){case"object":if(!t(e[n],i[n]))return!1;break;case"function":if(void 0===i[n]||"compare"!==n&&e[n].toString()!==i[n].toString())return!1;break;default:if(e[n]!==i[n])return!1}}for(var n in i)if(void 0===e[n])return!1;return!0},e.isType=function(t){return((Object.prototype.toString.call(t).match(/^\[object (\S+?)\]$/)||[])[1]||"undefined").toLowerCase()}},function(t,e,i){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(t){for(var e,i=1,n=arguments.length;i-1)return e[i[c]](n,o);r=r.parentNode}return!0}},e.locate=function(t,e){void 0===e&&(e="dhx_id");var i=o(t,e);return i?i.getAttribute(e):""},e.locateNode=o,e.locateNodeByClassName=function(t,e){for(t instanceof Event&&(t=t.target);t;){if(e){if(t.classList&&t.classList.contains(e))return t}else if(t.getAttribute&&t.getAttribute("dhx_id"))return t;t=t.parentNode}},e.getBox=function(t){var e=t.getBoundingClientRect(),i=document.body,n=window.pageYOffset||i.scrollTop,o=window.pageXOffset||i.scrollLeft;return{top:e.top+n,left:e.left+o,right:i.offsetWidth-e.right,bottom:i.offsetHeight-e.bottom,width:e.right-e.left,height:e.bottom-e.top}};var r,s=-1;function a(t){var e=t.getBoundingClientRect();return{left:e.left+window.pageXOffset,right:e.right+window.pageXOffset,top:e.top+window.pageYOffset,bottom:e.bottom+window.pageYOffset}}function c(t,e){var i=e.mode===r.bottom||e.mode===r.top?u(t,e):d(t,e),n=i.left,o=i.top;return{left:Math.round(n)+"px",top:Math.round(o)+"px",minWidth:Math.round(e.width)+"px",position:"absolute"}}function l(){return{rightBorder:window.pageXOffset+window.innerWidth,bottomBorder:window.pageYOffset+window.innerHeight}}function u(t,e){var i,o,s=l(),a=s.rightBorder,c=s.bottomBorder-t.bottom-e.height,u=t.top-e.height;if(e.mode===r.bottom?c>=0?o=t.bottom:u>=0&&(o=u):u>=0?o=u:c>=0&&(o=t.bottom),c<0&&u<0){if(e.auto)return d(t,n(n({},e),{mode:r.right,auto:!1}));o=c>u?t.bottom:u}if(e.centering)i=function(t,e,i){var n=(e-(t.right-t.left))/2,o=t.left-n,r=t.right+n;return o>=0&&r<=i?o:o<0?0:i-e}(t,e.width,a);else{var h=a-t.left-e.width,f=t.right-e.width;i=h>=0?t.left:f>=0?f:f>h?t.left:f}return{left:i,top:o}}function d(t,e){var i,o,s=l(),a=s.rightBorder,c=s.bottomBorder,d=a-t.right-e.width,h=t.left-e.width;if(e.mode===r.right?d>=0?i=t.right:h>=0&&(i=h):h>=0?i=h:d>=0&&(i=t.right),h<0&&d<0){if(e.auto)return u(t,n(n({},e),{mode:r.bottom,auto:!1}));i=h>d?h:t.right}if(e.centering)o=function(t,e,i){var n=(e-(t.bottom-t.top))/2,o=t.top-n,r=t.bottom+n;return o>=0&&r<=i?o:o<0?0:i-e}(t,e.height,a);else{var f=t.bottom-e.height,p=c-t.top-e.height;o=p>=0?t.top:f>0?f:f>p?f:t.top}return{left:i,top:o}}e.getScrollbarWidth=function(){if(s>-1)return s;var t=document.createElement("div");return document.body.appendChild(t),t.style.cssText="position: absolute;left: -99999px;overflow:scroll;width: 100px;height: 100px;",s=t.offsetWidth-t.clientWidth,document.body.removeChild(t),s},e.fitPosition=function(t,e){return c(a(t),e)},e.isIE=function(){var t=window.navigator.userAgent;return t.indexOf("MSIE ")>-1||t.indexOf("Trident/")>-1},e.getRealPosition=a,function(t){t.left="left",t.right="right",t.bottom="bottom",t.top="top"}(r=e.Position||(e.Position={})),e.calculatePosition=c},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t){this.events={},this.context=t||this}return t.prototype.on=function(t,e,i){var n=t.toLowerCase();this.events[n]=this.events[n]||[],this.events[n].push({callback:e,context:i||this.context})},t.prototype.detach=function(t,e){var i=t.toLowerCase(),n=this.events[i];if(e&&n&&n.length)for(var o=n.length-1;o>=0;o--)n[o].context===e&&n.splice(o,1);else this.events[i]=[]},t.prototype.fire=function(t,e){void 0===e&&(e=[]);var i=t.toLowerCase();return!this.events[i]||this.events[i].map(function(t){return t.callback.apply(t.context,e)}).indexOf(!1)<0},t.prototype.clear=function(){this.events={}},t}();e.EventSystem=n,e.EventsMixin=function(t){var e=new n(t=t||{});t.detachEvent=e.detach.bind(e),t.attachEvent=e.on.bind(e),t.callEvent=e.fire.bind(e)}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(1),o=i(2),r=function(){function t(t,e){this._uid=n.uid(),this.config=e||{}}return t.prototype.mount=function(t,e){e&&(this._view=e),t&&this._view&&this._view.mount&&(this._container=o.toNode(t),this._container.tagName?this._view.mount(this._container):this._container.attach&&this._container.attach(this))},t.prototype.unmount=function(){var t=this.getRootView();t&&t.node&&(t.unmount(),this._view=null)},t.prototype.getRootView=function(){return this._view},t.prototype.getRootNode=function(){return this._view&&this._view.node&&this._view.node.el},t.prototype.paint=function(){this._view&&(this._view.node||this._container)&&(this._doNotRepaint=!1,this._view.redraw())},t}();e.View=r,e.toViewLike=function(t){return{getRootView:function(){return t},paint:function(){return t.node&&t.redraw()},mount:function(e){return t.mount(e)}}}},function(t,e,i){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(t){for(var e,i=1,n=arguments.length;i0?180===e?i=n[0]:e>180?e<270?i=n[0]:e>270&&(i=n[1]):e<180&&(e>90?i=n[0]:e<90&&(i=n[1])):e<0&&(-180===e?i=n[0]:e<-180?e>-270?i=n[0]:e<-270&&(i=n[1]):e>-180&&(e<-90?i=n[0]:e>-90&&(i=n[1])));break;case r.ScaleType.top:case r.ScaleType.bottom:e>0?e>180?i=n[0]:e<180&&(i=n[1]):e<0&&(e>-180?i=n[0]:e<-180&&(i=n[1]))}return i},e.getScales=function(t){var e=[];for(var i in t){var n=t[i];(n.min||n.max||n.maxTicks||n.text||n.value)&&e.push(i)}return e}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.bar="bar",t.line="line",t.spline="spline",t.scatter="scatter",t.area="area",t.donut="donut",t.pie="pie",t.pie3D="pie3D",t.radar="radar",t.xBar="xbar",t.splineArea="splineArea"}(e.ChartType||(e.ChartType={})),function(t){t.toggleSeries="toggleSeries",t.chartMouseMove="chartMouseMove",t.chartMouseLeave="chartMouseLeave",t.resize="resize",t.serieClick="serieClick"}(e.ChartEvents||(e.ChartEvents={})),function(t){t.left="left",t.right="right",t.top="top",t.bottom="bottom",t.radial="radial"}(e.ScaleType||(e.ScaleType={})),function(t){t.circle="circle",t.rect="rect",t.triangle="triangle",t.rhombus="rhombus",t.simpleRect="simpleRect",t.simpleCircle="simpleCircle",t.empty="empty"}(e.PointType||(e.PointType={})),function(t){t.simple="simple",t.right="right",t.left="left",t.top="top",t.bot="bot"}(e.TooltipType||(e.TooltipType={})),function(t){t.rect="rect",t.circle="circle"}(e.Shape||(e.Shape={})),function(t){t.left="left",t.center="center",t.right="right"}(e.HorizontalPosition||(e.HorizontalPosition={})),function(t){t.top="top",t.middle="middle",t.bottom="bottom"}(e.VerticalPosition||(e.VerticalPosition={})),function(t){t.basic="basic",t.percentOnly="percentOnly",t.valueOnly="valueOnly"}(e.NoScaleSubType||(e.NoScaleSubType={}))},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(15)),n(i(57)),n(i(95)),n(i(96)),n(i(21)),n(i(98)),n(i(16)),n(i(60)),n(i(59)),n(i(99)),n(i(58)),n(i(34))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.block="block",t.input="input",t.button="button",t.combo="combo",t.slider="slider",t.radioButton="radioButton",t.radioGroup="radioGroup",t.checkbox="checkbox",t.select="select",t.simpleVault="simpleVault",t.textarea="textarea",t.timepicker="timepicker",t.datepicker="datepicker",t.colorpicker="colorpicker",t.text="text"}(e.FormItemType||(e.FormItemType={})),function(t){t.change="change",t.buttonClick="buttonclick",t.validationFail="validationfail",t.beforeSend="beforesend",t.afterSend="aftersend"}(e.FormEvents||(e.FormEvents={})),function(t){t.change="change",t.configUpdate="configUpdate"}(e.BaseElementEvent||(e.BaseElementEvent={})),function(t){t.empty="",t.validEmail="email",t.validInteger="integer",t.validNumeric="numeric",t.validAplhaNumeric="alphanumeric",t.validIPv4="IPv4"}(e.Validation||(e.Validation={})),function(t){t[t.pre=0]="pre",t[t.error=1]="error",t[t.success=2]="success"}(e.ValidationStatus||(e.ValidationStatus={})),function(t){t.value="value",t.validation="validation"}(e.ClearMethod||(e.ClearMethod={}))},function(t,e,i){"use strict";var n;Object.defineProperty(e,"__esModule",{value:!0});var o=i(8);e.getFormItemCss=function(t,e){var i,n=t.labelPosition,r=t.required,s=t.disabled,a=t.hiddenLabel,c=t.css,l=t.$validationStatus,u=(i={},i[o.ValidationStatus.pre]="",i[o.ValidationStatus.error]=" dhx_form-group--state_error",i[o.ValidationStatus.success]=" dhx_form-group--state_success",i)[l]||"",d="right"===n||"left"===n?" dhx_form-group--inline":"",h=s?" dhx_form-group--disabled":"",f=a?" dhx_form-group--label_sr":"";return e?c||""+d+u+(r?" dhx_form-group--required":"")+h+f:c||""+d+h+f};var r=((n={})[o.Validation.validAplhaNumeric]=/^[a-zA-Z0-9_]+$/,n[o.Validation.validEmail]=/^.+@.+\..+$/,n[o.Validation.validInteger]=/^\d+$/,n[o.Validation.validIPv4]=/\b((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.|$)){4}\b/,n[o.Validation.validNumeric]=/^\d+(\.\d+)?$/,n);e.getValidationMessage=function(t){var e;return(e={undefined:t.preMessage},e[o.ValidationStatus.pre]=t.preMessage,e[o.ValidationStatus.error]=t.errorMessage,e[o.ValidationStatus.success]=t.successMessage,e)[t.$validationStatus]||""},e.validateTemplate=function(t,e){return!r[t]||r[t].test(e)},e.isBlock=function(t){return Boolean(t.rows)||Boolean(t.cols)},e.validateInput=function(t,e){var i=!0;if("function"==typeof e)i=e(t);else{var n=r[e];n&&(i=n.test(t))}return i},e.isTimeFormat=function(t,e){return 12===e?/(^0?([1-9][0-2]?):[0-5][0-9]?([AP][M]?)$)/i.test(t):/(^(0[0-9]|1[0-9]|2[0-3]|[0-9]):[0-5][0-9]$)/i.test(t)},e.isEmptyObj=function(t){for(var e in t)return!1;return!0}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.input="input",t.select="select",t.datepicker="datePicker",t.checkbox="checkbox",t.combobox="combobox"}(e.EditorType||(e.EditorType={})),function(t){t.scroll="scroll",t.sort="sort",t.expand="expand",t.filterChange="filterChange",t.beforeResizeStart="beforeResizeStart",t.resize="resize",t.afterResizeEnd="afterResizeEnd",t.cellClick="cellClick",t.cellRightClick="cellRightClick",t.cellMouseOver="cellMouseOver",t.cellMouseDown="cellMouseDown",t.cellDblClick="cellDblClick",t.headerCellClick="headerCellClick",t.footerCellClick="footerCellClick",t.headerCellMouseOver="headerCellMouseOver",t.footerCellMouseOver="footerCellMouseOver",t.headerCellMouseDown="headerCellMouseDown",t.footerCellMouseDown="footerCellMouseDown",t.headerCellDblClick="headerCellDblClick",t.footerCellDblClick="footerCellDblClick",t.headerCellRightClick="headerCellRightClick",t.footerCellRightClick="footerCellRightClick",t.beforeEditStart="beforeEditStart",t.afterEditStart="afterEditStart",t.beforeEditEnd="beforeEditEnd",t.afterEditEnd="afterEditEnd",t.beforeKeyDown="beforeKeyDown",t.afterKeyDown="afterKeyDown",t.headerInput="headerInput"}(e.GridEvents||(e.GridEvents={}))},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(131)),n(i(64))},function(t,e,i){(function(e,i){!function(){var n=1,o={},r=!1;function s(t){e.setImmediate?i(t):e.importScripts?setTimeout(t):(o[++n]=t,e.postMessage(n,"*"))}function a(t){"use strict";if("function"!=typeof t&&void 0!=t)throw TypeError();if("object"!=typeof this||this&&this.then)throw TypeError();var e,i,n=this,o=0,r=0,c=[];n.promise=n,n.resolve=function(t){return e=n.fn,i=n.er,o||(r=t,o=1,s(d)),n},n.reject=function(t){return e=n.fn,i=n.er,o||(r=t,o=2,s(d)),n},n._d=1,n.then=function(t,e){if(1!=this._d)throw TypeError();var i=new a;return i.fn=t,i.er=e,3==o?i.resolve(r):4==o?i.reject(r):c.push(i),i},n.catch=function(t){return n.then(null,t)};var l=function(t){o=t||4,c.map(function(t){3==o&&t.resolve(r)||t.reject(r)})};try{"function"==typeof t&&t(n.resolve,n.reject)}catch(t){n.reject(t)}return n;function u(t,e,i,n){if(2==o)return n();if("object"!=typeof r&&"function"!=typeof r||"function"!=typeof t)n();else try{var s=0;t.call(r,function(t){s++||(r=t,e())},function(t){s++||(r=t,i())})}catch(t){r=t,i()}}function d(){var t;try{t=r&&r.then}catch(t){return r=t,o=2,d()}u(t,function(){o=1,d()},function(){o=2,d()},function(){try{1==o&&"function"==typeof e?r=e(r):2==o&&"function"==typeof i&&(r=i(r),o=1)}catch(t){return r=t,l()}r==n?(r=TypeError(),l()):u(t,function(){l(3)},l,function(){l(1==o&&3)})})}}(e=this).setImmediate||e.addEventListener("message",function(t){if(t.source==e)if(r)s(o[t.data]);else{r=!0;try{o[t.data]()}catch(t){}delete o[t.data],r=!1}}),a.resolve=function(t){if(1!=this._d)throw TypeError();return t instanceof a?t:new a(function(e){e(t)})},a.reject=function(t){if(1!=this._d)throw TypeError();return new a(function(e,i){i(t)})},a.all=function(t){if(1!=this._d)throw TypeError();if(!(t instanceof Array))return a.reject(TypeError());var e=new a;return function i(n,o){return o?e.resolve(o):n?e.reject(n):(0==t.reduce(function(t,e){return e&&e.then?t+1:t},0)&&e.resolve(t),void t.map(function(e,n){e&&e.then&&e.then(function(e){return t[n]=e,i(),e},i)}))}(),e},a.race=function(t){if(1!=this._d)throw TypeError();if(!(t instanceof Array))return a.reject(TypeError());if(0==t.length)return new a;var e=new a;return function i(n,o){return o?e.resolve(o):n?e.reject(n):(0==t.reduce(function(t,e){return e&&e.then?t+1:t},0)&&e.resolve(t),void t.map(function(t,e){t&&t.then&&t.then(function(t){i(null,t)},i)}))}(),e},a._d=1,t.exports=a}()}).call(this,i(33),i(87).setImmediate)},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(2);function o(t){for(var e=t.toLowerCase().match(/\w+/g),i=0,n="",o=0;o=48&&e.which<=57||e.which>=65&&e.which<=90?String.fromCharCode(e.which):32!==e.which||n.isIE()?e.key:e.code)&&i.toLowerCase()),r=t._keysStorage[o];if(r)for(var s=0;s=0;s--)i[n].splice(r[s],1)}},t.prototype.exist=function(t){var e=o(t);return!!this._keysStorage[e]},t}();e.keyManager=new r,e.addHotkeys=function(t,i){var n=new Date,o=function(t){return function(e){i&&!1===i()||t(e)}};for(var r in t)e.keyManager.addHotKey(r,o(t[r]),n);return function(){return e.keyManager.removeHotKey(void 0,n)}}},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(102)),n(i(28))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.all="all",t.level="level",t.leafs="leafs"}(e.TreeFilterType||(e.TreeFilterType={})),function(t){t.top="top",t.bot="bot",t.in="in"}(e.DropPosition||(e.DropPosition={})),function(t){t.afterAdd="afteradd",t.beforeAdd="beforeadd",t.removeAll="removeall",t.beforeRemove="beforeremove",t.afterRemove="afterremove",t.change="change",t.load="load",t.loadError="loaderror",t.beforeLazyLoad="beforelazyload",t.afterLazyLoad="afterlazyload"}(e.DataEvents||(e.DataEvents={})),function(t){t.beforeDrag="beforedrag",t.beforeDrop="beforeDrop",t.dragStart="dragstart",t.dragEnd="dragend",t.canDrop="candrop",t.cancelDrop="canceldrop",t.dropComplete="dropcomplete",t.dragOut="dragOut",t.dragIn="dragIn"}(e.DragEvents||(e.DragEvents={})),function(t){t.target="target",t.both="both",t.source="source"}(e.DragMode||(e.DragMode={})),function(t){t.child="child",t.sibling="sibling",t.complex="complex"}(e.DropBehaviour||(e.DropBehaviour={})),function(t){t.json="json",t.csv="csv",t.xml="xml"}(e.DataDriver||(e.DataDriver={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(21),o=i(58);e.isEqualObj=function(t,e){for(var i in t)if(t[i]!==e[i])return!1;return!0},e.naturalCompare=function(t,e){if(isNaN(t)||isNaN(e)){var i=[],n=[];for(t.replace(/(\d+)|(\D+)/g,function(t,e,n){i.push([e||1/0,n||""])}),e.replace(/(\d+)|(\D+)/g,function(t,e,i){n.push([e||1/0,i||""])});i.length&&n.length;){var o=i.shift(),r=n.shift(),s=o[0]-r[0]||o[1].localeCompare(r[1]);if(s)return s}return i.length-n.length}return t-e},e.findByConf=function(t,e){if("function"==typeof e){if(e.call(this,t))return t}else if(e.by&&e.match&&t[e.by]===e.match)return t},e.isDebug=function(){var t=window.dhx;if(void 0!==t)return void 0!==t.debug&&t.debug},e.dhxWarning=function(t){console.warn(t)},e.dhxError=function(t){throw new Error(t)},e.toProxy=function(t){var e=typeof t;return"string"===e?new n.DataProxy(t):"object"===e?t:void 0},e.toDataDriver=function(t){if("string"==typeof t){var e=window.dhx,i=e&&e.dataDrivers||o.dataDrivers;if(i[t])return new i[t];console.warn("Incorrect data driver type:",t),console.warn("Available types:",JSON.stringify(Object.keys(i)))}else if("object"==typeof t)return t},e.copyWithoutInner=function(t,e){var i={};for(var n in t)"$"===n[0]||e&&e[n]||(i[n]=t[n]);return i},e.isTreeCollection=function(t){return Boolean(t.getRoot)},e.hasJsonOrArrayStructure=function(t){if("object"==typeof t)return!0;if("string"!=typeof t)return!1;try{var e=JSON.parse(t);return"[object Object]"===Object.prototype.toString.call(e)||Array.isArray(e)}catch(t){return!1}}},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(109)),n(i(110)),n(i(23))},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;i'),a=window.getComputedStyle(s),c={color:"rgb(0, 0, 0)"===a.color?o.color:n(a.color),background:"rgba(0, 0, 0, 0)"===a.backgroundColor?o.background:n(a.backgroundColor),fontSize:parseFloat(a.fontSize)};return r.removeChild(s),c.color===o.color&&c.background===o.background&&c.fontSize===o.fontSize?null:c},e.removeHTMLTags=function(t){return"string"!=typeof t&&"number"!=typeof t&&"boolean"!=typeof t?"":(""+(void 0===t||null===t?"":t)).replace(/<[^>]*>/g,"").replace(/[\"]/g,""").trim()},e.isCssSupport=function(t,e){try{return CSS.supports(t,e)}catch(n){var i=document.createElement("div");return i.style[t]=e,i.style[t]===e}},e.isRowEmpty=function(t){if(t)return Object.keys(t).reduce(function(e,i){return"id"===i||"$"===i[0]?e:(!e||void 0===t[i]||""===t[i])&&e},!0)},e.isSortable=function(t,e){return!1!==e.sortable&&t.sortable||e.sortable},e.isAutoWidth=function(t,e){if(!e){var i=!1;return t.columns.map(function(e){(!1!==e.autoWidth&&t.autoWidth||e.autoWidth)&&(i=!0)}),i}return!1!==e.autoWidth&&t.autoWidth||e.autoWidth}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(34),o=function(){function t(t,e){this.url=this._url=t,this.config=e}return t.prototype.updateUrl=function(t,e){for(var i in void 0===e&&(e={}),this._url=this.url=t||this._url,this.url+="?",e)this.config[i]=e[i],this.url+=i+"="+encodeURIComponent(e[i])+"&";this.url=this.url.slice(0,-1)},t.prototype.load=function(){return n.ajax.get(this.url,null,{responseType:"text"})},t.prototype.save=function(t,e){switch(e){case"delete":return n.ajax.delete(this.url,t);case"update":case"insert":default:return n.ajax.post(this.url,t)}},t}();e.DataProxy=o},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.beforeUnSelect="beforeunselect",t.afterUnSelect="afterunselect",t.beforeSelect="beforeselect",t.afterSelect="afterselect"}(e.SelectionEvents||(e.SelectionEvents={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(7);e.DataEvents=n.DataEvents,function(t){t.button="button",t.imageButton="imageButton",t.selectButton="selectButton",t.customHTMLButton="customButton",t.input="input",t.separator="separator",t.title="title",t.spacer="spacer",t.menuItem="menuItem",t.block="block",t.navItem="navItem",t.customHTML="customHTML"}(e.ItemType||(e.ItemType={})),function(t){t.inputCreated="inputCreated",t.click="click",t.openMenu="openmenu",t.beforeHide="beforeHide",t.afterHide="afterHide",t.inputFocus="inputfocus",t.inputBlur="inputblur"}(e.NavigationBarEvents||(e.NavigationBarEvents={})),function(t){t.pointer="pointer",t.click="click"}(e.NavigationType||(e.NavigationType={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),o=i(23);e.getCount=function(t,e,i){var o={danger:" dhx_navbar-count--color_danger",secondary:" dhx_navbar-count--color_secondary",primary:" dhx_navbar-count--color_primary",success:" dhx_navbar-count--color_success"}[t.countColor]||" dhx_navbar-count--color_danger";return n.el(".dhx_navbar-count",{class:e+o+(!i&&parseInt(t.count,10)>99?" dhx_navbar-count--overlimit":"")},i&&parseInt(t.count,10)>99?"99+":t.count)},e.getIcon=function(t,e){return void 0===t&&(t=""),"dxi"===t.slice(0,3)&&(t="dxi "+t),n.el("span",{class:"dhx_"+e+"__icon "+t})},e.navbarComponentMixin=function(t,e,i,s){var a=r(t,e,i),c="ribbon"===t&&(e.type===o.ItemType.navItem||e.type===o.ItemType.imageButton);return n.el("li",{_key:e.id,class:a+(e.icon&&!e.value&&c?" dhx_ribbon__item--icon":"")+(e.src&&!e.value&&c?" dhx_ribbon__item--icon":"")+(e.size&&c?" dhx_ribbon__item--"+e.size:""),".innerHTML":e.type===o.ItemType.customHTML?e.html:void 0,dhx_id:e.type===o.ItemType.customHTML?e.id:void 0},e.type!==o.ItemType.customHTML?[s]:void 0)},e.getNavbarButtonCSS=function(t,e){var i=t.color,n=t.size,o=t.view,r=t.full,s=t.icon,a=t.circle,c=t.loading,l=t.value,u=t.active;return({danger:" dhx_button--color_danger",secondary:" dhx_button--color_secondary",primary:" dhx_button--color_primary",success:" dhx_button--color_success"}[i]||" dhx_button--color_primary")+({small:" dhx_button--size_small",medium:" dhx_button--size_medium"}[n]||" dhx_button--size_medium")+({flat:" dhx_button--view_flat",link:" dhx_button--view_link"}[o]||" dhx_button--view_flat")+(r?" dhx_button--width_full":"")+(a?" dhx_button--circle":"")+(c?" dhx_button--loading":"")+(u?" dhx_button--active":"")+(s&&!l?" dhx_button--icon":"")};var r=function(t,e,i){var n="",r="";return r=(n=i?"dhx_menu-item":"dhx_"+t+"__item")+(e.css?" "+e.css:""),e.type!==o.ItemType.spacer&&e.type!==o.ItemType.separator||(r+=" "+n+"--"+e.type),"button"!==e.type||"sidebar"!==t||e.icon||(r+=" dhx_navbar-item--colapse_hidden"),r}},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(128)),n(i(68)),n(i(41))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),o=i(5);function r(t,e,i){return[Math.cos(2*Math.PI*t)*e,Math.sin(2*Math.PI*t)*i]}function s(t,e){return t-1e-6e}function a(t,e){return"M"+-t+",0A"+t+","+t+" 0 "+(e?0:1)+" 1 "+t+",0A"+t+","+t+" 0 "+(e?0:1)+" 1 "+-t+",0"}e.getCoordinates=r,e.shiftCoordinates=function(t,e,i){return[t[0]+e,t[1]+i]},e.pieLikeHandlers={onmouseover:function(t,e,i,n){n.el.setAttribute("transform","translate("+t+", "+e+") scale(1.05)"),n.el.classList.add("dhx_pie-transform-delay")},onmouseout:function(t,e){e.el.setAttribute("transform","translate(0, 0)"),e.el.classList.remove("dhx_pie-transform-delay")}},e.radarScale=function(t,e,i){var c=i/2,l=1/t.scales.length,u=l>.5?1:0,d=[],h=function(t,e){return n.sv("circle",{cx:0,cy:0,r:t,fill:e,stroke:"none",class:"background-circle"})}(c,"#FAFBFD");d.push(h);for(var f=-.25,p=[],_=t.axis,v="radar-grid "+(t.zebra?"zebra":""),g=1;g<_.length;g+=2){var m=c*_[g-1],y=c*_[g],b=a(m,!0)+" "+a(y,!1),x=n.sv("path",{d:b,fill:"none",stroke:"black",class:v});p.push(x)}if(d.push(p),t.scales.forEach(function(t){var e=r(f,c,c),i=e[0],a=e[1],h=f+l,p=r(h,c,c),_=p[0],v=p[1],g="M "+i+" "+a+" A "+c+" "+c+" 0 "+u+" 1 "+_+" "+v+" L 0 0",m=n.sv("path",{d:g,stroke:"black",fill:"none",class:"radar-scale"});d.push(m);var y=[8,8],b=y[0],x=y[1],w=s(f,0)||s(f,.5)?0:f<0||f>.5?-b:b,k=s(f,-.25)||s(f,.25)?0:f<-.25||f>.25?-x:x;if(s(f,-.25)||s(f,.25)){var C=s(f,-.25)?o.verticalTopText:o.verticalBottomText,E=n.sv("text",{x:i+k,y:a+w,class:"scale-text"},[C(t)]);d.push(E)}else{var S=f>=-.25&&f<=.25?"start-text scale-text":"end-text scale-text";E=n.sv("text",{x:i+k,y:a+w,class:S},[o.verticalCenteredText(t)]),d.push(E)}f=h}),f=-.25,t.realAxis){var w=t.realAxis.map(function(t,e){var i=r(-.25,c*_[e],c*_[e]),s=i[0],a=i[1];return n.sv("text",{x:s,y:a,dx:-10,class:"radar-axis-text"},[o.verticalCenteredText(t.toString())])});d.push(w)}return n.sv("g",{transform:"translate("+e/2+", "+i/2+")"},d)}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});i(7);!function(t){t.queue="queue",t.uploaded="uploaded",t.failed="failed",t.inprogress="inprogress"}(e.FileStatus||(e.FileStatus={})),function(t){t.uploadBegin="uploadbegin",t.beforeUploadFile="beforeuploadfile",t.uploadFile="uploadfile",t.uploadFail="uploadfail",t.uploadComplete="uploadcomplete",t.uploadProgress="uploadprogress"}(e.UploaderEvents||(e.UploaderEvents={})),function(t){t.cancel="cancel"}(e.ProgressBarEvents||(e.ProgressBarEvents={})),function(t){t.grid="grid",t.list="list"}(e.VaultMode||(e.VaultMode={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.beforeShow="beforeShow",t.afterShow="afterShow",t.beforeHide="beforeHide",t.afterHide="afterHide",t.beforeResizeStart="beforeResizeStart",t.resize="resize",t.afterResizeEnd="afterResizeEnd",t.beforeAdd="beforeAdd",t.afterAdd="afterAdd",t.beforeRemove="beforeRemove",t.afterRemove="afterRemove",t.beforeCollapse="beforeCollapse",t.afterCollapse="afterCollapse",t.beforeExpand="beforeExpand",t.afterExpand="afterExpand"}(e.LayoutEvents||(e.LayoutEvents={})),function(t){t[t.unknown=0]="unknown",t[t.percents=1]="percents",t[t.pixels=2]="pixels",t[t.mixedpx1=3]="mixedpx1",t[t.mixedpx2=4]="mixedpx2",t[t.mixedperc1=5]="mixedperc1",t[t.mixedperc2=6]="mixedperc2"}(e.resizeMode||(e.resizeMode={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}(i(108));var n=i(17);e.ItemType=n.ItemType,e.NavigationBarEvents=n.NavigationBarEvents},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(129)),n(i(67))},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(135)),n(i(69)),n(i(43));var o=i(44);e.locale=o.default},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(161)),n(i(74))},function(t,e){var i;i=function(){return this}();try{i=i||new Function("return this")()}catch(t){"object"==typeof window&&(i=window)}t.exports=i},function(t,e,i){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});var n=i(15),o=i(16);function r(t){return t?t.indexOf("json")>=0?"json":t.indexOf("xml")>=0?"xml":"text":"text"}function s(e,i,s,a,c){var l=a||{};if(c&&(l.Accept="application/"+c),"GET"!==s&&(l["Content-Type"]=l["Content-Type"]||"application/json"),"GET"===s){var u=i&&"object"==typeof i?function(t){return Object.keys(t).reduce(function(e,i){var n="object"==typeof t[i]?JSON.stringify(t[i]):t[i];return e.push(i+"="+encodeURIComponent(n)),e},[]).join("&")}(i):i&&"string"==typeof i?i:"";u&&(e+=-1===e.indexOf("?")?"?":"&",e+=u),i=null}return window.fetch?window.fetch(e,{method:s,body:i?JSON.stringify(i):null,headers:l}).then(function(e){if(!e.ok)return e.text().then(function(i){return t.reject({status:e.status,statusText:e.statusText,message:i})});var i=c||r(e.headers.get("Content-Type"));if("raw"===i)return{headers:Object.fromEntries(e.headers.entries()),url:e.url,body:e.body};if(204!==e.status)switch(i){case"json":return e.json();case"xml":var s=o.toDataDriver(n.DataDriver.xml);return s?e.text().then(function(t){return s.toJsonObject(t)}):e.text();default:return e.text()}}):new t(function(t,a){var u=new XMLHttpRequest;for(var d in u.onload=function(){u.status>=200&&u.status<300?("raw"===c&&t({url:u.responseURL,headers:u.getAllResponseHeaders().trim().split(/[\r\n]+/).reduce(function(t,e){var i=e.split(": ");return t[i[0]]=i[1],t},{}),body:u.response}),204===u.status?t():t(function(t,e){switch(e){case"json":return JSON.parse(t);case"text":return t;case"xml":var i=o.toDataDriver(n.DataDriver.xml);return i?i.toJsonObject(t):{parseError:"Incorrect data driver type: 'xml'"};default:return t}}(u.responseText,c||r(u.getResponseHeader("Content-Type"))))):a({status:u.status,statusText:u.statusText})},u.onerror=function(){a({status:u.status,statusText:u.statusText,message:u.responseText})},u.open(s,e),l)u.setRequestHeader(d,l[d]);switch(s){case"POST":case"DELETE":case"PUT":u.send(void 0!==i?JSON.stringify(i):"");break;case"GET":default:u.send()}})}e.ajax={get:function(t,e,i){return s(t,e,"GET",i&&i.headers,void 0!==i?i.responseType:void 0)},post:function(t,e,i){return s(t,e,"POST",i&&i.headers,void 0!==i?i.responseType:void 0)},put:function(t,e,i){return s(t,e,"PUT",i&&i.headers,void 0!==i?i.responseType:void 0)},delete:function(t,e,i){return s(t,e,"DELETE",i&&i.headers,void 0!==i?i.responseType:void 0)}}}).call(this,i(12))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.left="left",t.right="right",t.top="top",t.bottom="bottom",t.center="center"}(e.RealPosition||(e.RealPosition={})),function(t){t.right="right",t.bottom="bottom",t.center="center"}(e.Position||(e.Position={})),function(t){t.topLeft="top-left",t.topRight="top-right",t.bottomLeft="bottom-left",t.bottomRight="bottom-right"}(e.MessageContainerPosition||(e.MessageContainerPosition={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.default={apply:"apply",reject:"reject"}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.default={dragAndDrop:"Drag & drop",or:"or",browse:"Browse files",filesOrFoldersHere:"files or folders here",cancel:"Cancel",clearAll:"Clear all",clear:"Clear",add:"Add",upload:"Upload",download:"Download",error:"error",byte:"B",kilobyte:"KB",megabyte:"MB",gigabyte:"GB"}},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(124)),n(i(63)),n(i(39))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.click="click",t.doubleClick="doubleclick",t.focusChange="focuschange",t.beforeEditStart="beforeEditStart",t.afterEditStart="afterEditStart",t.beforeEditEnd="beforeEditEnd",t.afterEditEnd="afterEditEnd",t.itemRightClick="itemRightClick",t.itemMouseOver="itemMouseOver",t.contextmenu="contextmenu"}(e.ListEvents||(e.ListEvents={}))},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(130)),n(i(65))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n,o=i(42),r=i(1),s={"%d":function(t){var e=t.getDate();return e<10?"0"+e:e},"%j":function(t){return t.getDate()},"%l":function(t){return o.default.days[t.getDay()]},"%D":function(t){return o.default.daysShort[t.getDay()]},"%m":function(t){var e=t.getMonth()+1;return e<10?"0"+e:e},"%n":function(t){return t.getMonth()+1},"%M":function(t){return o.default.monthsShort[t.getMonth()]},"%F":function(t){return o.default.months[t.getMonth()]},"%y":function(t){return t.getFullYear().toString().slice(2)},"%Y":function(t){return t.getFullYear()},"%h":function(t){var e=t.getHours()%12;return 0===e&&(e=12),e<10?"0"+e:e},"%g":function(t){var e=t.getHours()%12;return 0===e&&(e=12),e},"%H":function(t){var e=t.getHours();return e<10?"0"+e:e},"%G":function(t){return t.getHours()},"%i":function(t){var e=t.getMinutes();return e<10?"0"+e:e},"%s":function(t){var e=t.getSeconds();return e<10?"0"+e:e},"%a":function(t){return t.getHours()>=12?"pm":"am"},"%A":function(t){return t.getHours()>=12?"PM":"AM"},"%u":function(t){return t.getMilliseconds()}},a={"%d":function(t,e){/(^([0-9][0-9])$)/i.test(e)?t.setDate(Number(e)):t.setDate(Number(1))},"%j":function(t,e){/(^([0-9]?[0-9])$)/i.test(e)?t.setDate(Number(e)):t.setDate(Number(1))},"%m":function(t,e){/(^([0-9][0-9])$)/i.test(e)?t.setMonth(Number(e)-1):t.setMonth(Number(0))},"%n":function(t,e){/(^([0-9]?[0-9])$)/i.test(e)?t.setMonth(Number(e)-1):t.setMonth(Number(0))},"%M":function(t,e){var i=r.findIndex(o.default.monthsShort,function(t){return t===e});-1===i?t.setMonth(0):t.setMonth(i)},"%F":function(t,e){var i=r.findIndex(o.default.months,function(t){return t===e});-1===i?t.setMonth(0):t.setMonth(i)},"%y":function(t,e){/(^([0-9][0-9])$)/i.test(e)?t.setFullYear(Number("20"+e)):t.setFullYear(Number("2000"))},"%Y":function(t,e){/(^([0-9][0-9][0-9][0-9])$)/i.test(e)?t.setFullYear(Number(e)):t.setFullYear(Number("2000"))},"%h":function(t,e,i){/(^0[1-9]|1[0-2]$)/i.test(e)&&"pm"===i||"PM"===i?t.setHours(Number(e)):t.setHours(Number(0))},"%g":function(t,e,i){/(^[1-9]$)|(^0[1-9]|1[0-2]$)/i.test(e)&&"pm"===i||"PM"===i?t.setHours(Number(e)):t.setHours(Number(0))},"%H":function(t,e){/(^[0-9][0-3]$)/i.test(e)?t.setHours(Number(e)):t.setHours(Number(0))},"%G":function(t,e){/(^([0-9]$)|[0-9][0-3]$)/i.test(e)?t.setHours(Number(e)):t.setHours(Number(0))},"%i":function(t,e){/(^([0-5][0-9])$)/i.test(e)?t.setMinutes(Number(e)):t.setMinutes(Number(0))},"%s":function(t,e){/(^([0-5][0-9])$)/i.test(e)?t.setSeconds(Number(e)):t.setSeconds(Number(0))},"%a":function(t,e){"pm"===e&&t.setHours(t.getHours()+12)},"%A":function(t,e){"PM"===e&&t.setHours(t.getHours()+12)}};function c(t){for(var e=[],i="",o=0;o0&&(e.push({type:n.separator,value:i}),i=""),e.push({type:n.datePart,value:t[o]+t[o+1]}),o++):i+=t[o];return i.length>0&&e.push({type:n.separator,value:i}),e}e.getFormatedDate=function(t,e){return c(t).reduce(function(t,i){return i.type===n.separator?t+i.value:s[i.value]?t+s[i.value](e):t},"")},function(t){t[t.separator=0]="separator",t[t.datePart=1]="datePart"}(n||(n={})),e.stringToDate=function(t,e,i){if("string"==typeof t){for(var o,r=[],s=0,l=null,u=0,d=c(e);u1&&(e-=1)}return{h:Math.floor(360*e),s:i,v:s}}Object.defineProperty(e,"__esModule",{value:!0}),e.HSVtoRGB=function(t){var e={r:0,g:0,b:0},i=t.h/60,n=t.s,o=t.v,r=Math.floor(i)%6,s=i-Math.floor(i),a=255*o*(1-n),c=255*o*(1-n*s),l=255*o*(1-n*(1-s));switch(o*=255,r){case 0:e.r=o,e.g=l,e.b=a;break;case 1:e.r=c,e.g=o,e.b=a;break;case 2:e.r=a,e.g=o,e.b=l;break;case 3:e.r=a,e.g=c,e.b=o;break;case 4:e.r=l,e.g=a,e.b=o;break;case 5:e.r=o,e.g=a,e.b=c}for(var u in e)e[u]=Math.round(e[u]);return e},e.RGBToHex=function(t){return Object.keys(t).reduce(function(e,i){var n=t[i].toString(16).toUpperCase();return e+(n=1===n.length?"0"+n:n)},"#")},e.HexToRGB=n,e.RGBToHSV=o,e.HexToHSV=function(t){return o(n(t))},e.isHex=function(t){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t)}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.default={cancel:"Cancel",select:"Select",rightClickToDelete:"Right click to delete",customColors:"Custom colors",addNewColor:"Add new color"}},function(t,e,i){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(t){for(var e,i=1,n=arguments.length;is&&(i[0]=s,i[1]=r[0],i[2]=r[1],i[3]=r[2])}return i},t.prototype.getTooltipType=function(t){return o.TooltipType.top},t.prototype.getTooltipText=function(t){if(this.config.tooltip){var e=this._defaultLocator(this._data.getItem(t));return this.config.tooltipTemplate?this.config.tooltipTemplate(e):e[0]}},t.prototype.dataReady=function(t){return this._points=[]},t.prototype.paint=function(t,e){return this._calckFinalPoints(t,e)},t.prototype.getPoints=function(){return this._points},t.prototype.addScale=function(t,e){},t.prototype._getClosestDist=function(t,e,i,n){return r.euclideanDistance(t,e,i,n)},t.prototype._calckFinalPoints=function(t,e){},t.prototype._setDefaults=function(t){this.config=t},t.prototype._defaultLocator=function(t){return[null,null]},t.prototype._getPointType=function(t,e,i){return i?s.getShadeHelper(t,e,s.hoverMode):s.getShadeHelper(t,e,s.standarMode)},t}();e.default=a},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;i=i)return[0,this._tooltipData[o][0],this._tooltipData[o][1],n[o][2]];i-=n[o][0]}return[1/0,null,null,null]},e.prototype.getTooltipText=function(t){if(this.config.tooltip){var e=this._defaultLocator(this._data.getItem(t));return this.config.tooltipTemplate?this.config.tooltipTemplate(e):e[0]}},e.prototype.getTooltipType=function(t){return s.TooltipType.simple},e.prototype._setDefaults=function(t){var e=this,i={subType:s.NoScaleSubType.basic,paddings:20};this.config=o(o({},i),t),this._drawPointType=this._getPointType(s.PointType.empty,"none",this.config.tooltip),this._valueLocator=r.locator(t.value),this._textLocator=r.locator(t.text),t.color?this._colorLocator=r.locator(t.color):t.monochrome&&(this._colorLocator=function(i){return r.getColorShade(t.monochrome,2*e._getPercent(i))})},e.prototype._defaultLocator=function(t){return[this._valueLocator(t),this._textLocator(t)]},e.prototype._getPercent=function(t){return parseFloat(this._valueLocator(t))/this._sum},e}(i(47).default);e.default=a},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;io.maxWidth&&(o.width=o.maxWidth)}},e.countColumns=function(t,e){var i=0,n=0,o=0,r=!1,s=0,a=!1;return e.map(function(t){if(i=Math.max(i,t.header.length),o+=t.hidden?0:t.width,t.footer&&(n=Math.max(n,t.footer.length),a||(a=!0)),!r)for(var e=0,s=t.header;e=0?a-1:0,l=a+s+1,u=0,d=i.left,h=0;h0;h++)u++;return{xStart:u-1>=0?u-1:0,xEnd:u+r+1,yStart:c,yEnd:l}},e.getUnique=function(t,e){return t.map(function(t){return t[e]}).filter(function(t,e,i){return i.indexOf(t)===e}).sort()}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getWidth=function(t,e,i){return e?t.reduce(function(t,n,o){return t+=o>=i&&o1?"[]":"",a=0,c=t;a=0?e:-1},t.prototype.getId=function(t){if(this._order[t])return this._order[t].id},t.prototype.getLength=function(){return this._order.length},t.prototype.isDataLoaded=function(t,e){return void 0===t&&(t=0),void 0===e&&(e=this._order.length),u.isNumeric(t)&&u.isNumeric(e)?0===this._order.slice(t,e).filter(function(t){return t.$empty}).length:!this.find(function(t){return t.$empty})},t.prototype.filter=function(t,e){if(this.isDataLoaded()){if((e=u.extend({add:!1,multiple:!0},e)).add||(this._order=this._initOrder||this._order,this._initOrder=null),this._filters=this._filters||{},e.multiple&&t||(this._filters={}),t){if("function"==typeof t){this._filters._={match:"_",compare:t}}else t.match?(t.compare=t.compare||function(t,e){return t===e},this._filters[t.by]=t):delete this._filters[t.by];this._applyFilters()}this.events.fire(l.DataEvents.change)}else c.dhxWarning("the method doesn't work with lazyLoad")},t.prototype.find=function(t){for(var e in this._pull){var i=c.findByConf(this._pull[e],t);if(i)return i}return null},t.prototype.findAll=function(t){var e=[];for(var i in this._pull){var n=c.findByConf(this._pull[i],t);n&&e.push(n)}return e},t.prototype.sort=function(t){if(this.isDataLoaded()){if(t)this._sort.sort(this._order,t),this._initOrder&&this._initOrder.length&&this._sort.sort(this._initOrder,t);else{for(var e in this._order=[],this._pull)this._order.push(this._pull[e]);this._applyFilters()}this.events.fire(l.DataEvents.change)}else c.dhxWarning("the method doesn't work with lazyLoad")},t.prototype.copy=function(t,e,i,n){var o=this;return t instanceof Array?t.map(function(t,r){return o._copy(t,e,i,n,r)}):this._copy(t,e,i,n)},t.prototype.move=function(t,e,i,n){var o=this;return t instanceof Array?t.map(function(t,r){return o._move(t,e,i,n,r)}):this._move(t,e,i,n)},t.prototype.forEach=function(t){for(var e=0;ethis._order.length-1&&(e=this._order.length-1);for(var n=this._order.slice(t,e),o=[],r=t;r<=e;r++)o.push(i.call(this,this._order[r],r,n));return o},t.prototype.reduce=function(t,e){for(var i=0;i=0&&(this._order=this._order.filter(function(e){return e.id!==t}),delete this._pull[t]),this._initOrder&&this._initOrder.length&&(this._initOrder=this._initOrder.filter(function(e){return e.id!==t}))},t.prototype._parse_data=function(t){var e=this._order.length;this.config.prep&&(t=this.config.prep(t));for(var i=0,n=t;i=0&&t[i]?(this._pull[e.id]=e,t.splice(i,0,e)):(this._pull[e.id]=e,t.push(e))},t.prototype._applyFilters=function(){var t=this;if(this._filters&&Object.keys(this._filters).length){var e=this._order.filter(function(e){return Object.keys(t._filters).every(function(i){return e[i]?t._filters[i].compare(e[i],t._filters[i].match,e):t._filters[i].compare(e)})});this._initOrder||(this._initOrder=this._order),this._order=e}},t}();e.DataCollection=d},function(t,e,i){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(t){for(var e,i=1,n=arguments.length;iwindow.innerWidth+window.pageXOffset&&(s=window.pageXOffset+t.left-i,o=r.RealPosition.left),{left:s,top:a=window.pageYOffset+t.top+(t.height-n)/2,pos:o};case r.Position.bottom:default:return(s=window.pageXOffset+t.left+(t.width-i)/2)+i>window.innerWidth+window.pageXOffset?s=window.innerWidth+window.pageXOffset-i:s<0&&(s=0),o=r.RealPosition.bottom,(a=window.pageYOffset+t.bottom)+n+8>window.innerHeight+window.pageYOffset&&(a=window.pageYOffset+t.top-n,o=r.RealPosition.top),{left:s,top:a,pos:o}}}e.findPosition=c;var l=document.createElement("div"),u=document.createElement("span");u.className="dhx_tooltip__text",l.appendChild(u),l.style.position="absolute";var d,h=null,f=!1,p=null,_=null;function v(t,e,i,n,o){void 0===o&&(o=!1);var s=t.getBoundingClientRect();u.textContent=e,document.body.appendChild(l),l.className="dhx_widget dhx_tooltip"+(o?" dhx_tooltip--forced":"");var a=l.getBoundingClientRect(),d=c(s,i,a.width,a.height),h=d.left,p=d.top,_=d.pos;switch(_){case r.RealPosition.bottom:case r.RealPosition.top:case r.RealPosition.left:case r.RealPosition.right:case r.RealPosition.center:l.style.left=h+"px",l.style.top=p+"px"}l.className+=" dhx_tooltip--"+_+" "+(n||""),f=!0,o||setTimeout(function(){l.className+=" dhx_tooltip--animate"})}function g(t,e,i){var n=i.force,o=i.showDelay,c=i.hideDelay,u=i.position,g=i.css;n||(_=setTimeout(function(){v(t,e,u||r.Position.bottom,g)},o||s));var m=function(){f&&function(t){h&&(p=setTimeout(function(){document.body.removeChild(l),f=!1,p=null},t||a))}(c),clearTimeout(_),t.removeEventListener("mouseleave",m),t.removeEventListener("blur",m),document.removeEventListener("mousedown",m),h=null,d=null};n&&v(t,e,u,g,n),t.addEventListener("mouseleave",m),t.addEventListener("blur",m),document.addEventListener("mousedown",m),d=m}function m(t,e){var i=o.toNode(e.node);i!==h&&(d&&(d(),d=null),h=i,p?(clearTimeout(p),p=null,g(i,t,n(n({},e),{force:!0}))):g(i,t,e))}function y(t){var e=o.locateNode(t,"dhx_tooltip_text");e&&m(e.getAttribute("dhx_tooltip_text"),{position:e.getAttribute("dhx_tooltip_position")||r.Position.bottom,node:e})}e.tooltip=m,e.enableTooltip=function(){document.addEventListener("mousemove",y)},e.disableTooltip=function(){document.removeEventListener("mousemove",y)}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(22),o=i(7),r=function(){function t(t,e){var i=this;if(this.config=t,this.events=e.events,this._data=e,this._selected=[],this._lastShiftSelectedIndexes=[],this._data.events.on(o.DataEvents.removeAll,function(){i._selected=[]}),"string"==typeof this.config.multiselection){-1===["click","ctrlClick"].indexOf(this.config.multiselection)&&(this.config.multiselection=!1)}this._data.events.on(o.DataEvents.afterRemove,function(t){if(i._selected=i._selected.filter(function(e){return e!==t.id}),!i.config.multiselection||0===i.getId().length){var e=i._data.getId(i._lastSelectedIndex);if(e)i.add(e);else{var n=i._data.getId(i._data.getLength()-1);n&&i.add(n)}}})}return t.prototype.getId=function(){return this.config.multiselection?this._selected:this._selected[0]},t.prototype.getItem=function(){var t=this;if(this._selected.length){var e=this._selected.map(function(e){return t._data.getItem(e)});return this.config.multiselection?e:e[0]}return null},t.prototype.contains=function(t){return t?this._selected.indexOf(t)>-1:this._selected.length>0},t.prototype.remove=function(t){var e=this;if(t)return!t&&!this._selected.length||(t?this._unselectItem(t):(this._selected.forEach(function(t){return e._unselectItem(t)}),!0));this._data.map(function(t){t.$selected=!1,e._selected=[]})},t.prototype.add=function(t,e,i){var o=this;if(this.events.fire(n.SelectionEvents.beforeSelect))return t?void(this.config.multiselection?this._addMulti(t,e,i):this._addSingle(t,e)):(this._selected=[],void this._data.map(function(t){t.$selected=!0,o._selected.push(t.id)}))},t.prototype._addMulti=function(t,e,i){var o=this,r=this._data.getIndex(t);"click"!==this.config.multiselection&&!0!==this.config.multiselection||(i?(this._addWithShift(r),this.events.fire(n.SelectionEvents.afterSelect,[t])):(this._isSelected(t)?this._unselectItem(t):this._selectItem(t),this._lastSelectedIndex=this._data.getIndex(this._selected[this._selected.length-1]),this._lastShiftSelectedIndexes=[])),"ctrlClick"===this.config.multiselection&&(i||e||(this._data.map(function(t){t.$selected=!1,o._selected=[]}),this._isSelected(t)?this._unselectItem(t):this._selectItem(t),this._lastSelectedIndex=this._data.getIndex(this._selected[this._selected.length-1]),this._lastShiftSelectedIndexes=[]),i&&(this._addWithShift(r),this.events.fire(n.SelectionEvents.afterSelect,[t])),e&&(this._isSelected(t)?this._unselectItem(t):this._selectItem(t),this._lastSelectedIndex=this._data.getIndex(this._selected[this._selected.length-1]),this._lastShiftSelectedIndexes=[]))},t.prototype._addWithShift=function(t){var e=this;t>=this._lastSelectedIndex&&(this._data.map(function(t,i){-1!==e._lastShiftSelectedIndexes.indexOf(i)&&(t.$selected=!1,e._selected=e._selected.filter(function(t){return t!==e._data.getId(i)}),e._lastShiftSelectedIndexes=e._lastShiftSelectedIndexes.filter(function(t){return t!==i&&t!==e._lastSelectedIndex}))}),this._data.map(function(i,n){n>=e._lastSelectedIndex&&n<=t&&(i.$selected=!0,-1===e._selected.indexOf(i.id)&&e._selected.push(i.id),n!==e._lastSelectedIndex&&-1===e._lastShiftSelectedIndexes.indexOf(n)&&e._lastShiftSelectedIndexes.push(n))})),t<=this._lastSelectedIndex&&(this._data.map(function(t,i){-1!==e._lastShiftSelectedIndexes.indexOf(i)&&(t.$selected=!1,e._selected=e._selected.filter(function(t){return t!==e._data.getId(i)}),e._lastShiftSelectedIndexes=e._lastShiftSelectedIndexes.filter(function(t){return t!==i&&t!==e._lastSelectedIndex}))}),this._data.map(function(i,n){n<=e._lastSelectedIndex&&n>=t&&(i.$selected=!0,-1===e._selected.indexOf(i.id)&&e._selected.push(i.id),n!==e._lastSelectedIndex&&-1===e._lastShiftSelectedIndexes.indexOf(n)&&e._lastShiftSelectedIndexes.push(n))}))},t.prototype._addSingle=function(t,e){this.remove(),this.config&&"ctrlClick"!==this.config.multiselection?this._selectItem(t):e&&this._selectItem(t)},t.prototype._isSelected=function(t){return-1!==this._selected.indexOf(t)},t.prototype._selectItem=function(t){this._selected.push(t),this._data.update(t,{$selected:!0}),this._lastSelectedIndex=this._data.getIndex(t),this.events.fire(n.SelectionEvents.afterSelect,[t])},t.prototype._unselectItem=function(t){return!!this.events.fire(n.SelectionEvents.beforeUnSelect,[t])&&(this._data.update(t,{$selected:!1}),this._selected=this._selected.filter(function(e){return e!==t}),this.events.fire(n.SelectionEvents.afterUnSelect,[t]),!0)},t}();e.Selection=r},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.beforeHide="beforeHide",t.beforeShow="beforeShow",t.afterHide="afterHide",t.afterShow="afterShow",t.click="click"}(e.PopupEvents||(e.PopupEvents={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.vertical="vertical",t.horizontal="horizontal"}(e.Direction||(e.Direction={})),function(t){t.change="change",t.mousedown="mousedown",t.mouseup="mouseup"}(e.SliderEvents||(e.SliderEvents={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.default={hours:"Hours",minutes:"Minutes",save:"save"}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.change="change",t.apply="apply",t.beforeClose="beforeClose",t.afterClose="afterClose",t.close="close",t.save="save"}(e.TimepickerEvents||(e.TimepickerEvents={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.calendar="calendar",t.years="year",t.months="month",t.timepicker="timepicker"}(e.ViewMode||(e.ViewMode={})),function(t){t.change="change",t.beforeChange="beforechange",t.modeChange="modeChange",t.monthSelected="monthSelected",t.yearSelected="yearSelected",t.cancelClick="cancelClick",t.dateMouseOver="dateMouseOver",t.dateHover="dateHover"}(e.CalendarEvents||(e.CalendarEvents={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.change="change",t.apply="apply",t.cancelClick="cancelClick",t.modeChange="modeChange",t.selectClick="selectClick",t.colorChange="colorChange",t.viewChange="viewChange"}(e.ColorpickerEvents||(e.ColorpickerEvents={})),function(t){t.palette="palette",t.picker="picker"}(e.ViewsMode||(e.ViewsMode={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(1),o=i(0),r=i(5),s=i(2),a=function(t){return t.toString()};e.bottom=function(t,e,i,c){var l=e.title,u=e.textPadding,d=e.scalePadding,h=e.textTemplate,f=e.showText,p=e.scaleRotate,_=h||a,v=[],g=0;if(f){g=u;var m=p&&!isNaN(p),y=c+u;v=t.map(function(t){var e=t[0],i=m?"rotate("+p+" "+e+" "+y+")":"",n=["scale-text","top-text"];if(m){var a=p%360;n.push(r.getClassesForRotateScale(s.Position.bottom,a))}return o.sv("text",{x:e,y:y,class:n.join(" "),transform:i},[r.verticalCenteredText(_(t[1]))])})}var b=n.uid(),x=null,w=o.sv("path",{class:"main-scale",d:"M0 "+c+" H"+(i-.5),id:b});return l&&(x=o.sv("text",{dx:i/2,dy:d+g},[o.sv("textPath",{href:"#"+b,class:"scale-title "},l)])),o.sv("g",[w,x].concat(v))},e.bottomGrid=function(t,e,i,n){for(var r=n.dashed,s=n.grid,a=n.targetLine,c=n.targetValue,l=t.length,u=[],d="grid-line "+(r?"dash-line":""),h=0;h=0;_--){var v=n[_];p+=_===h.length-1?"M"+v[0]+" "+v[1]+" ":"L"+v[0]+" "+v[1]+" "}p+=h.map(function(t,e){return e?"L "+t[0]+" "+t[1]:"V "+t[1]}).join(" ")+"Z"}else p+=h.map(function(t,i){return i?"L"+t[0]+" "+t[1]:"M0 "+e+" L0 "+t[1]+" L"+t[0]+" "+t[1]}).join(" ")+"L"+t+" "+f[1]+" V "+e;if(d){var g=h.length-1,m=h.map(function(t,e){return(e?"L":"M")+(t[0]+function(t){return t===g?-.5:t?0:.5}(e))+" "+t[1]}).join(" "),y=r.sv("path",{d:m,"stroke-width":d,stroke:u,fill:"none",class:o});i.push(y)}var b=r.sv("path",{id:"seria"+a,d:p,class:o,fill:c,"fill-opacity":l,stroke:"none"});return i.push(b),i},e.prototype._setDefaults=function(t){var e={alpha:.3,strokeWidth:2,fill:t.color||"#5E83BA",color:"#5E83BA",active:!0,tooltip:!0,pointType:a.PointType.empty};this.config=o(o({},e),t);var i=this.config.tooltip,n=this.config.pointType,r=this.config.pointColor||this.config.color;n&&(this._drawPointType=this._getPointType(n,r,i))},e}(i(46).default);e.default=c},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;i16}(t,e)?s.sv("text",r._text(t,v(e),f),[h?a.verticalCenteredText(h(i)):a.verticalCenteredText(i)]):null});p.push.apply(p,m)}return p},e.prototype._getText=function(t){return t[4].toString()},e.prototype._setDefaults=function(t){var e={barWidth:30,alpha:1,active:!0,tooltip:!0,pointType:c.PointType.empty};this.config=o(o({},e),t);var i=this.config.tooltip,n=this.config.pointType,s=this.config.pointColor||this.config.color;if(n&&(this.config.pointType=n,this._drawPointType=this._getPointType(n,s,i)),this.config.gradient){var l="gradient"+r.uid(),u=this.config.gradient(this.config.fill);this._gradient=function(){return a.linearGradient(u,l)},this.config.fill="url(#"+l+")"}},e}(i(46).default);e.default=l},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){var i,n=t.length;if(n<3)i=t;else{var o=t[0],r=t[0],s=t[1],a=t[2];i=[t[0].slice(0,2)];for(var c=1;c4?"C"+u[0]+" "+u[1]+"\n\t\t\t\t"+u[2]+" "+u[3]+"\n\t\t\t\t"+u[4]+" "+u[5]:"S"+u[0]+" "+u[1]+"\n\t\t\t\t"+u[2]+" "+u[3]:(e?"L":"M")+u[d-2]+" "+u[d-1]}return l}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){t.change="change",t.open="open",t.input="input",t.beforeClose="beforeClose",t.afterClose="afterClose",t.close="close"}(e.ComboboxEvents||(e.ComboboxEvents={})),function(t){t[t.default=0]="default",t[t.error=1]="error",t[t.success=2]="success"}(e.ComboState||(e.ComboState={}))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={simpleVaultText:"Drag & drop files or folders here or",simpleVaultLabel:"browse files"}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(1),o=i(0),r=i(54),s=i(20),a=i(10),c=i(190),l=i(2);function u(t,e,i,n,o){e=l.locateNodeByClassName(o.target,"dhx_grid-fixed-cols-wrap")?0:e;var r=l.locateNodeByClassName(o.target,"dhx_grid-cell");if(r){var s=r.parentNode,a=s.parentNode,c=Array.prototype.indexOf.call(s.childNodes,r),u=i.columns[e+c],d=Array.prototype.indexOf.call(a.childNodes,s),h=i.data[t+d];i.events.fire(n,[h,u,o])}}e.getHandlers=function(t,e,i){return{onclick:[u,t,e,i,a.GridEvents.cellClick],onmouseover:[u,t,e,i,a.GridEvents.cellMouseOver],onmousedown:[u,t,e,i,a.GridEvents.cellMouseDown],ondblclick:[u,t,e,i,a.GridEvents.cellDblClick],oncontextmenu:[u,t,e,i,a.GridEvents.cellRightClick]}},e.getCells=function(t){if(!t.data||!t.columns)return[];var e=t.$positions,i=t.data?t.data.slice(e.yStart,e.yEnd):[],r=t.columns.slice(e.xStart,e.xEnd);return i.map(function(e,a){var l=i.length-1===a,u="";return t.rowCss&&(u=t.rowCss(e)),e.$css&&(u+=e.$css),o.el(".dhx_grid-row",{style:{height:l?t.rowHeight+1:t.rowHeight},dhx_id:e.id,class:u,_key:e.id,_flags:o.KEYED_LIST},r.map(function(i){if(!i.hidden){var r=i.template?i.template(e[i.id],e,i):function(t){return"boolean"!=typeof t&&"boolean"!==i.type||"string"==typeof t?t||0===t?t:"":""+Boolean(t)}(e[i.id]);"string"==typeof r&&(r=o.el("div.dhx_cell-content",t.htmlEnable&&!1!==i.htmlEnable||i.htmlEnable?{".innerHTML":r}:r));var a=((i.$cellCss[e.id]||"")+" dhx_"+i.type+"-cell").replace(/\s+/g," "),l=i.width,u=t.$editable&&t.$editable.row===e.id&&t.$editable.col===i.id;if((u||"boolean"===i.type&&(t.editable||i.editable))&&(t.splitAt&&t.columns.length!==t.splitAt&&t.columns.indexOf(i)=0;k--)w+=i[k].width;var C=g.header[0].text?"dhx_span-cell":"dhx_span-cell dhx_span-cell--title";p&&(C+=" "+p),0===v&&(C+=" dhx_span-first-row"),0===_&&(C+=" dhx_span-first-col");var E=_===i.length-1,S=_+f===i.length;(E||S)&&(C+=" dhx_span-last-col"),C+=f?" dhx_span-string-cell":" dhx_span-"+(g.type||"string")+"-cell";var O=f>1?r.getWidth(t.columns,f,_):g.width;e.push(o.el("div",{class:C,style:{width:O,height:(h||1)*c,top:x,left:w,lineHeight:t.rowHeight+"px"},title:s.removeHTMLTags(b)},[y]))},u=0;u0)&&(y=null)),e.content?function(t,e,i,o,s){void 0===s&&(s="");var a=i[o+"RowHeight"]-10+1||31,c=e.type?"dhx_"+e.type+"-cell":"dhx_string_cell";return r.el(".dhx_grid-"+o+"-cell.dhx_grid-custom-content-cell."+c,n({class:s,style:{width:e.width,lineHeight:a+"px"}},d(e,o,i)),[l.content[t.content]&&l.content[t.content].toHtml(e,i)])}(e,p,t,i,f):p.hidden?null:r.el(".dhx_grid-"+i+"-cell",n(n({class:f.trim(),dhx_id:p.id,_key:h,style:{width:p.width,lineHeight:s+1+"px"}},d(p,i,t)),{title:a.removeHTMLTags(e.text)}),[r.el("div",{class:"dhx_grid-header-cell-text"},[r.el("div",{".innerHTML":e.text}),y||null]),v&&r.el("div",{class:_})])}))})}function f(t,e){var i=t.columns,n=a.transpose(i.map(function(t){return t[e.name]||[]})),o=t[e.name+"RowHeight"]||40,c=0;return n.map(function(n,l){return c=0,r.el(".dhx_span-row",{style:{top:o*l+"px",height:o}},n.map(function(n,u){var d=i[u];c+=d.hidden?0:d.width;var h=0===u?"dhx_first-column-cell":"",f=u===i.length-1||(n.colspan||0)+(u-1)>=i.length-1?"dhx_last-column-cell":"",p=o;n.rowspan&&(p=p*n.rowspan-1);var _=a.isSortable(t,d)&&n.rowspan&&n.text&&"footer"!==e.name,v="dxi dxi-sort-variant dhx_grid-sort-icon";t.sortBy&&""+d.id===t.sortBy&&!n.content&&(v+=" dhx_grid-sort-icon--"+(t.sortDir||"asc"));var g=h+" "+f+" "+(n.rowspan?"dhx_span-cell__rowspan":"");_&&(g+=" dhx_grid-header-cell dhx_grid-header-cell--sortable"),n.content||(g+=" dhx_grid-header-cell--"+("number"===d.type?"align_right":"align_left")+" ");var m="";return c-d.width>0&&(m="1px solid #e4e4e4"),!n.colspan&&!n.rowspan||d.hidden?null:r.el(".dhx_span-cell",{style:{width:s.getWidth(t.columns,n.colspan,u),height:p,left:c-d.width,borderLeft:m,top:o*l,lineHeight:p+"px"},class:g.trim(),title:a.removeHTMLTags(n.text),dhx_id:d.id},[r.el("div",{".innerHTML":n.text}),_&&r.el("div",{class:v})])}).filter(function(t){return t}))})}e.getRows=h,e.getSpans=f,e.getFixedRows=function(t,e){var i,s=h(t,e),a=f(t,e),c=null;"footer"!==e.name||e.sticky||(c=t.splitAt>=0&&h(n(n({},t),{currentColumns:t.columns.slice(0,t.splitAt),$positions:n(n({},t.$positions),{xStart:0,xEnd:t.splitAt})}),e));var l,u=((i={position:"sticky"})[e.position]=0,i);return e.sticky||(u.left=-t.scroll.left,l=-t.scroll.left,u.position="relative"),r.el(".dhx_"+e.name+"-wrapper",{class:e.sticky?"":"dhx_compatible-"+e.name,style:n(n({},u),{left:e.sticky?l:0,height:t[e.name+"Height"],width:e.sticky?t.$totalWidth:e.wrapper.width-2})},[r.el(".dhx_grid-"+e.name,{style:{height:t[e.name+"Height"],left:l,paddingLeft:e.shifts.x,width:t.$totalWidth}},[r.el(".dhx_"+e.name+"-rows",o(s)),r.el(".dhx_"+e.name+"-spans",{style:{marginLeft:-e.shifts.x}},a),c&&r.el(".dhx_"+e.name+"-fixed-cols",{style:{position:"absolute",top:0,left:t.scroll.left+"px",height:"100%"}},c)]),r.el("div",{style:{width:t.$totalWidth}})])}},function(t,e,i){"use strict";var n=this&&this.__spreadArrays||function(){for(var t=0,e=0,i=arguments.length;e=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},i(88),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(this,i(33))},function(t,e,i){(function(t,e){!function(t,i){"use strict";if(!t.setImmediate){var n,o=1,r={},s=!1,a=t.document,c=Object.getPrototypeOf&&Object.getPrototypeOf(t);c=c&&c.setTimeout?c:t,"[object process]"==={}.toString.call(t.process)?n=function(t){e.nextTick(function(){u(t)})}:function(){if(t.postMessage&&!t.importScripts){var e=!0,i=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=i,e}}()?function(){var e="setImmediate$"+Math.random()+"$",i=function(i){i.source===t&&"string"==typeof i.data&&0===i.data.indexOf(e)&&u(+i.data.slice(e.length))};t.addEventListener?t.addEventListener("message",i,!1):t.attachEvent("onmessage",i),n=function(i){t.postMessage(e+i,"*")}}():t.MessageChannel?function(){var t=new MessageChannel;t.port1.onmessage=function(t){u(t.data)},n=function(e){t.port2.postMessage(e)}}():a&&"onreadystatechange"in a.createElement("script")?function(){var t=a.documentElement;n=function(e){var i=a.createElement("script");i.onreadystatechange=function(){u(e),i.onreadystatechange=null,t.removeChild(i),i=null},t.appendChild(i)}}():n=function(t){setTimeout(u,0,t)},c.setImmediate=function(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),i=0;i1)for(var i=1;i0&&i[n-1].type===e?(i[n-1].body+=o.body,i.splice(n--,1)):H(o,t,n,null):H(o,t,n,null))}}(t)}}var F={animationIterationCount:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridColumn:!0,order:!0,lineClamp:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0};function R(t,e){return isNaN(e)||F[t]?e:e+"px"}function B(t,e){var i=(t.attrs||a).style,n=e?(e.attrs||a).style:null;if(null==i||p(i))t.el.style.cssText=i;else{for(var o in i){var r=i[o];(null==n||null!=r&&r!==n[o])&&(t.el.style[o]=R(o,r))}if(n)for(var s in n)null==i[s]&&(t.el.style[s]="")}}var N=[];function $(t,e,i,n,o){if(null!=t){var r=i.hooks[e];if(r){if("d"!==e[0]||"i"!==e[1]||"d"!==e[2])return r(i,n);o?k(i.parent)&&r(i,n):N.push([r,i,n])}}}function z(t){var e;if(N.length)for(k(t.node);e=N.shift();)e[0](e[1],e[2])}var W=r?document:null;function Y(t){return t.nextSibling}function G(t,e,i){var n=e._node,o=n.vm;if(l(n.body))if((n.flags&D)===D)for(var r=0;r>1]===t)return i;e[i]0&&(n[r]=o[e-1]),o[e]=r)}}for(e=o.length,i=o[e-1];e-- >0;)o[e]=i,i=n[i];return o}(r).map(function(t){return r[t]}),l=0;lu&&(y=null,_=!1):w=!0,u>100&&w&&++b%10==0))for(;k1){var r=1;d(n[1])&&(i=n[1],r=2),e=o===r+1&&(p(n[r])||l(n[r])||i&&(i._flags&A)===A)?n[r]:v(n,r)}return L(t,i,e)}return S.patch=function(t,e){!function(t,e,i){if(null!=e.type){if(null!=t.vm)return;H(e,t.parent,t.idx,null),t.parent.body[t.idx]=e,bt(e,t),i&&k(e),z(O(e))}else{var n=Object.create(t);n.attrs=_({},t.attrs);var o=_(t.attrs,e);if(null!=t._class){var r=o.class;o.class=null!=r&&""!==r?t._class+" "+r:t._class}st(t,n),i&&k(t)}}(this,t,e)},kt.emit=function(t){var e=this,i=e,n=v(arguments,1).concat(i,i.data);do{var o=e.onemit,r=o?o[t]:null;if(r){r.apply(e,n);break}}while(e=e.parent());Z[t]&&Z[t].apply(e,n)},kt.onemit=null,kt.body=function(){return function t(e,i){var n=e.body;if(l(n))for(var o=0;o0?1:-1)*o.config.speed,i=o._getRefs().area,n=i.scrollHeight-o._runnerHeight,r=o._scrollTop+e;i.scrollTop=r<0?0:r>n?n:r,o._update()},i.onmousedownRunner=function(t){t.preventDefault();var e=o._getRefs(),i=e.area,n=e.runner,r=i.getBoundingClientRect(),s=r.top+window.pageYOffset,a=r.bottom+window.pageYOffset,c=i.scrollHeight-o._runnerHeight,l=t.pageY-n.getBoundingClientRect().top-window.pageYOffset,u=function(t){var e=t.pageY-l;i.scrollTop=e<=s?0:e>a?c:(e-s)/o._visibleArea,o._update()},d=function(){document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",d),document.body.classList.remove("dhx-no-select")};document.body.classList.add("dhx-no-select"),document.addEventListener("mousemove",u),document.addEventListener("mouseup",d)},i.onmousedownTrack=function(t){if(!t.target.classList.contains("scroll-runner")){t.preventDefault();var e=function(){document.removeEventListener("mouseup",e),window.clearInterval(c)},i=o._getRefs().area,n=t.target.getBoundingClientRect().top+window.pageYOffset,r=i.scrollHeight-o._runnerHeight,s=t.pageY,a=function(){var t;if(sn+o._runnerTop+o._runnerHeight))return;(t=o._scrollTop+i.clientHeight)>r&&(t=r)}i.scrollTop=t,o._update()};a();var c=setInterval(a,100);document.addEventListener("mouseup",e)}},i)}return t.prototype.render=function(t){var e,i=this;return 0===this._scrollWidth?t:o.el(".scroll-view-wrapper",{style:{width:"100%",height:"100%",overflow:"hidden",position:"relative"}},[o.el(".scroll-view",{onscroll:this._handlers.onscroll,_ref:"scroll-view",_hooks:{didInsert:function(){i._update()},didRecycle:function(){i._update()}},style:{height:"100%",width:"calc(100% + "+this._scrollWidth+"px)",overflowY:"scroll","-ms-overflow-style":"scrollbar"}},[t]),o.el(".y-scroll",(e={onmousedown:this._handlers.onmousedownTrack},e[this._wheelName]=this._handlers[this._wheelName],e.style={width:"10px",height:"100%",right:0,top:0,position:"absolute"},e),[o.el(".scroll-runner",{_ref:"scroll-runner",onmousedown:this._handlers.onmousedownRunner,style:{height:this._runnerHeight+"px",right:"2px",top:this._runnerTop,width:"6px",position:"absolute"}})])])},t.prototype._update=function(){var t=this._getRefs();if(t){var e=t.area,i=t.runner;this._visibleArea=e.clientHeight/e.scrollHeight,this._scrollTop=e.scrollTop,this._runnerTop=this._scrollTop*this._visibleArea,this._visibleArea<1?this._runnerHeight=e.clientHeight*this._visibleArea:this._runnerHeight=0,i.style.top=this._runnerTop+"px",i.style.height=this._runnerHeight+"px"}},t.prototype._getRefs=function(){var t=this._getRootView();if(t.refs&&t.refs["scroll-view"]&&t.refs["scroll-runner"])return{area:t.refs["scroll-view"].el,runner:t.refs["scroll-runner"].el}},t}();e.ScrollView=s},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(100),r=i(0),s=function(t){function e(e,i){var n=t.call(this,e,i)||this;if(n._root=n.config.parent||n,n._all={},n._parseConfig(),n.config.views&&(n.config.activeView=n.config.activeView||n._cells[0].id,n._isViewLayout=!0),!i.parent){var o=r.create({render:function(){return n.toVDOM()}},n);n.mount(e,o)}return n}return n(e,t),e.prototype.cell=function(t){return this._root._all[t]},e.prototype.toVDOM=function(){if(this._isViewLayout){var e=[this.cell(this.config.activeView).toVDOM()];return t.prototype.toVDOM.call(this,e)}var i=[];return this._cells.forEach(function(t){var e=t.toVDOM();Array.isArray(e)?i=i.concat(e):i.push(e)}),t.prototype.toVDOM.call(this,i)},e.prototype.removeCell=function(t){var e=this.config.parent||this;if(e!==this)return e.removeCell(t);var i=this.cell(t);if(i){var n=i.getParent();delete this._all[t],n._cells=n._cells.filter(function(e){return e.id!==t}),n.paint()}},e.prototype.addCell=function(t,e){void 0===e&&(e=-1);var i=this._createCell(t);e<0&&(e=this._cells.length+e+1),this._cells.splice(e,0,i),this.paint()},e.prototype.getId=function(t){return t<0&&(t=this._cells.length+t),this._cells[t]?this._cells[t].id:void 0},e.prototype.getRefs=function(t){return this._root.getRootView().refs[t]},e.prototype._getCss=function(e){var i=this._xLayout?"dhx_layout-columns":"dhx_layout-rows",n=this.config.align?" "+i+"--"+this.config.align:"";if(e)return i+" dhx_layout-cell"+(this.config.align?" dhx_layout-cell--"+this.config.align:"");var o=this.config.parent?t.prototype._getCss.call(this):"dhx_widget dhx_layout",r=this.config.parent?"":" dhx_layout-cell";return o+(this.config.full?r:" "+i)+n},e.prototype._parseConfig=function(){var t=this,e=this.config,i=e.rows||e.cols||e.views||[];this._xLayout=!e.rows,this._cells=i.map(function(e){return t._createCell(e)})},e.prototype._createCell=function(t){var i;return t.rows||t.cols||t.views?(t.parent=this._root,i=new e(this,t)):i=new o.Cell(this,t),this._root._all[i.id]=i,i},e}(o.Cell);e.Layout=s},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;ie.size&&(n=e.size-e.resizerLength),e.mode){case r.pixels:t.config[o]=n-e.resizerLength/2+"px",e.nextCell.config[o]=e.size-n-e.resizerLength/2+"px";break;case r.mixedpx1:t.config[o]=n-e.resizerLength/2+"px";break;case r.mixedpx2:e.nextCell.config[o]=e.size-n-e.resizerLength/2+"px";break;case r.percents:t.config[o]=n/e.size*e.percentsum+"%",e.nextCell.config[o]=(e.size-n)/e.size*e.percentsum+"%";break;case r.mixedperc1:t.config[o]=n/e.size*e.percentsum+"%";break;case r.mixedperc2:e.nextCell.config[o]=(e.size-n)/e.size*e.percentsum+"%"}t.paint()}};this._handlers={enterCollapse:function(e){13===e.keyCode&&t._handlers.collapse()},collapse:function(){t.config.collapsable&&(t.config.collapsed=!t.config.collapsed,t.paint())}},this._resizerHandlers={onmousedown:function(o){if(3!==o.which){e.isActive&&i(),document.body.classList.add("dhx_no-select--resize");var s=t.getCellView(),a=t._getNextCell(),c=a.getCellView(),l=t._getResizerView(),u=s.el.getBoundingClientRect(),d=l.el.getBoundingClientRect(),h=c.el.getBoundingClientRect();if(e.xLayout=t._isXDirection(),e.left=u.left+window.pageXOffset,e.top=u.top+window.pageYOffset,e.range=function(t,e,i){return void 0===i&&(i=!0),i?{min:t.left+window.pageXOffset,max:e.right+window.pageXOffset}:{min:t.top+window.pageYOffset,max:e.bottom+window.pageYOffset}}(u,h,e.xLayout),e.size=e.range.max-e.range.min,e.isActive=!0,e.nextCell=a,e.resizerLength=e.xLayout?d.width:d.height,e.mode=function(t,e,i){var n=t?"width":"height",o=e[n]&&-1!==e[n].indexOf("%"),s=i[n]&&-1!==i[n].indexOf("%"),a=e[n]&&-1!==e[n].indexOf("px"),c=i[n]&&-1!==i[n].indexOf("px");return o&&s?r.percents:a&&c?r.pixels:a&&!c?r.mixedpx1:c&&!a?r.mixedpx2:o?r.mixedperc1:s?r.mixedperc2:r.unknown}(e.xLayout,t.config,a.config),e.mode===r.percents){var p=e.xLayout?"width":"height";e.percentsum=parseFloat(t.config[p])+parseFloat(a.config[p])}if(e.mode===r.mixedperc1){p=e.xLayout?"width":"height";e.percentsum=1/(u[p]/(e.size-e.resizerLength))*parseFloat(t.config[p])}if(e.mode===r.mixedperc2){p=e.xLayout?"width":"height";e.percentsum=1/(h[p]/(e.size-e.resizerLength))*parseFloat(a.config[p])}document.addEventListener("mouseup",i),document.addEventListener("mousemove",n)}},ondragstart:function(t){return t.preventDefault()}}},e.prototype._getCollapseIcon=function(){return this._isXDirection()&&this.config.collapsed?"dxi dxi-chevron-right":this._isXDirection()&&!this.config.collapsed?"dxi dxi-chevron-left":!this._isXDirection()&&this.config.collapsed?"dxi dxi-chevron-up":this._isXDirection()||this.config.collapsed?void 0:"dxi dxi-chevron-down"},e.prototype._isLastCell=function(){var t=this._parent;return t&&t._cells.indexOf(this)===t._cells.length-1},e.prototype._getNextCell=function(){var t=this._parent,e=t._cells.indexOf(this);return t._cells[e+1]},e.prototype._getResizerView=function(){return this._parent.getRefs("resizer_"+this._uid)},e.prototype._isXDirection=function(){return this._parent&&this._parent._xLayout},e.prototype._calculateStyle=function(){var t=this.config;if(t){var e={};return this._isXDirection()?(void 0===t.width||t.collapsed||(e.flexBasis=t.width,e.width=t.width),void 0!==t.height&&(e.height=t.height)):(void 0===t.height||t.collapsed||(e.flexBasis=t.height,e.height=t.height),void 0!==t.width&&(e.width=t.width)),e}},e}(c.View);e.Cell=l},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),o=i(33),r=new WeakMap,s=new Map;function a(t,e){e&&clearTimeout(r.get(t));var i=t.parentNode,n=i.getAttribute("data-position"),o=i.parentNode,a=s.get(o);if(a){var c=a[n];if(c){var l=c.stack,u=l.indexOf(t);return-1!==u?(i.removeChild(t),l.splice(u,1),void(0===l.length&&o.removeChild(i))):void 0}}}function c(t,e){var i=document.createElement("div");return i.setAttribute("data-position",e),i.className="dhx_message-container dhx_message-container--"+e+(t===document.body?" dhx_message-container--in-body":""),i}e.message=function(t){var e;"string"==typeof t&&(t={text:t}),t.position=t.position||o.MessageContainerPosition.topRight;var i=document.createElement("div");i.className="dhx_message "+(t.css||""),t.html?i.innerHTML=t.html:i.innerHTML=''+t.text+"\n\t\t"+(t.icon?'':"");var l=t.node?n.toNode(t.node):document.body;"static"===getComputedStyle(l).position&&(l.style.position="relative");var u=s.get(l);u?u[t.position]||(u[t.position]={stack:[],container:c(l,t.position)}):s.set(l,((e={})[t.position]={stack:[],container:c(l,t.position)},e));var d=s.get(l)[t.position],h=d.stack,p=d.container;if(0===h.length&&l.appendChild(p),h.push(i),p.appendChild(i),t.expire){var f=setTimeout(function(){return a(i)},t.expire);r.set(i,f)}i.onclick=function(){return a(i,!0)}}},function(t,e,i){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});var n=i(34),o=i(59);e.alert=function(e){var i=e.buttons&&e.buttons[0]?e.buttons[0]:n.default.apply,r=o.blockScreen(e.blockerCss);return new t(function(t){var n=document.createElement("div");n.className="dhx_alert "+(e.css||""),n.innerHTML="\n\t\t\t"+(e.header?'":"")+"\n\t\t\t"+(e.text?''+e.text+"
":"")+'\n\t\t\t",document.body.appendChild(n),n.querySelector(".dhx_alert__apply-button").focus(),n.querySelector("button").addEventListener("click",function(){r(),document.body.removeChild(n),t(!0)})})}}).call(this,i(14))},function(t,e,i){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});var n=i(34),o=i(59);e.confirm=function(e){var i=e.buttons&&e.buttons[0]?e.buttons[0]:n.default.apply,r=e.buttons&&e.buttons[1]?e.buttons[1]:n.default.reject,s=o.blockScreen(e.blockerCss);return new t(function(t){var n=document.createElement("div");n.className="dhx_alert dhx_alert--confirm"+(e.css?" "+e.css:""),n.innerHTML="\n\t\t"+(e.header?'":"")+"\n\t\t"+(e.text?''+e.text+"
":"")+'\n\t\t\t",document.body.appendChild(n),n.querySelector(".dhx_alert__confirm-reject").focus();var o=function(e){"BUTTON"===e.target.tagName&&function(e){s(),n.removeEventListener("click",o),document.body.removeChild(n),t(e)}(e.target.classList.contains("dhx_alert__confirm-aply"))};n.addEventListener("click",o)})}}).call(this,i(14))},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(1),r=i(0),s=i(3),a=i(15),c=i(19),l=function(t){function e(e,i){var n=t.call(this,e,o.extend({navigationType:"click"},i))||this;n._currentRoot=null;return n.mount(e,r.create({render:function(){return n._draw()}})),n}return n(e,t),e.prototype.getState=function(){var t={};for(var e in this.data.eachChild(this.data.getRoot(),function(e){e.twoState&&!e.group?t[e.id]=e.active:e.type!==a.ItemType.input&&e.type!==a.ItemType.selectButton||(t[e.id]=e.value)},!1),this._groups)this._groups[e].active&&(t[e]=this._groups[e].active);return t},e.prototype.setState=function(t){for(var e in t)if(this._groups&&this._groups[e])this._groups[e].active&&(this.data.update(this._groups[e].active,{active:!1}),this._groups[e].active=t[e],this.data.update(t[e],{active:!0}));else{var i=this.data.getItem(e);i.type===a.ItemType.input||i.type===a.ItemType.selectButton?this.data.update(e,{value:t[e]}):this.data.update(e,{active:t[e]})}},e.prototype._customHandlers=function(){var t=this;return{input:function(e){var i=s.locate(e);t.data.update(i,{value:e.target.value})},tooltip:function(e){var i=s.locateNode(e);if(i){var n=i.getAttribute("dhx_id"),o=t.data.getItem(n);o.tooltip&&c.tooltip(o.tooltip,{node:i,position:c.Position.bottom})}}}},e.prototype._getFactory=function(){return a.createFactory({widget:this,defaultType:a.ItemType.navItem,allowedTypes:[a.ItemType.button,a.ItemType.customHTMLButton,a.ItemType.imageButton,a.ItemType.input,a.ItemType.selectButton,a.ItemType.separator,a.ItemType.spacer,a.ItemType.title,a.ItemType.navItem,a.ItemType.menuItem],widgetName:"toolbar"})},e.prototype._draw=function(){var t=this;return r.el("nav.dhx_widget.dhx_toolbar",{class:this.config.css?this.config.css:""},[r.el("ul.dhx_navbar.dhx_navbar--horizontal",{dhx_widget_id:this._uid,tabindex:0,onclick:this._handlers.onclick,onmousedown:this._handlers.onmousedown,oninput:this._handlers.input,onmouseover:this._handlers.tooltip,_hooks:{didInsert:function(e){e.el.addEventListener("keyup",function(e){if(9===e.which){var i=s.locateNode(document.activeElement);if(i){var n=i.getAttribute("dhx_id"),o=t.data.getItem(n);o.tooltip&&c.tooltip(o.tooltip,{node:i,position:c.Position.bottom,force:!0})}}},!0)}}},this.data.map(function(e){return t._factory(e)},this.data.getRoot(),!1))])},e.prototype._getMode=function(t,e){return t.id===e?"bottom":"right"},e.prototype._close=function(){this._activePosition=null,this._currentRoot=null,t.prototype._close.call(this)},e.prototype._setRoot=function(t){this.data.getParent(t)===this.data.getRoot()&&(this._currentRoot=t)},e}(a.Navbar);e.Toolbar=l},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;i50&&(r-=55),o=setTimeout(s,r)},a=function(){clearTimeout(o),document.removeEventListener("mouseup",a)};s(),document.addEventListener("mouseup",a)}}}},this._customHandlers())},e.prototype._initEvents=function(){var t=this,e=null;this.data.events.on(h.DataEvents.change,function(){t.paint(),e&&clearTimeout(e),e=setTimeout(function(){var i={};t.data.eachChild(t.data.getRoot(),function(t){t.group&&(t.twoState=!0,function(t,e){t[e.group]?(e.active&&(t[e.group].active=e.id),t[e.group].elements.push(e.id)):t[e.group]={active:e.active?e.id:null,elements:[e.id]}}(i,t))},!0),t._groups=i,t._resetHotkeys(),e=null,t.paint()},100)}),this.events.on(h.NavigationBarEvents.click,function(e){var i=t.data.getItem(e),n=t.data.getItem(i.parent);if(n&&n.type===h.ItemType.selectButton&&t.data.update(i.parent,{value:i.value,icon:i.icon}),i.group){var o=t._groups[i.group];o.active&&t.data.update(o.active,{active:!1}),o.active=i.id,t.data.update(i.id,{active:!0})}}),this._customInitEvents()},e.prototype._getMode=function(t,e,i){return void 0===i&&(i=!1),t.parent===e?"bottom":"right"},e.prototype._drawMenuItems=function(t,e){var i=this;return void 0===e&&(e=!0),this.data.map(function(t){return i._factory(t,e)},t,!1)},e.prototype._setRoot=function(t){},e.prototype._getParents=function(t,e){var i=[],n=!1,o=this.data.getItem(t),r=o&&o.disabled;return this.data.eachParent(t,function(t){t.id===e?(i.push(t.id),n=!0):n||i.push(t.id)},!r),this._isContextMenu&&this._activePosition&&i.push(e),i},e.prototype._listenOuterClick=function(){this._documentHaveListener||(document.addEventListener("click",this._documentClick,!0),this._documentHaveListener=!0)},e.prototype._customInitEvents=function(){},e.prototype._drawPopups=function(){var t=this,e=this._activeMenu;if(!this._isContextMenu&&!e)return null;var i=this._currentRoot;if(this._isContextMenu&&!this._activePosition)return null;var n=this._getParents(e,i);return this._activeParents=n,n.forEach(function(e){return t.data.exists(e)&&t.data.update(e,{$activeParent:!0},!1)}),n.map(function(e){if(!t.data.haveItems(e))return null;var n=t.data.getItem(e)||t._rootItem;return s.el("ul",{class:"dhx_widget dhx_menu"+(t.config.menuCss?" "+t.config.menuCss:""),_key:e,_hooks:{didInsert:function(o){var r=o.el.getBoundingClientRect(),s=r.width,a=r.height,l=t._isContextMenu&&t._activePosition&&e===i?t._activePosition:n.$position,u=t._getMode(n,i,l===t._activePosition),d=c.calculatePosition(l,{mode:u,width:s,height:a});n.$style=d,o.patch({style:d})},didRecycle:function(o,r){if(t._isContextMenu&&t._activePosition&&e===i){var s=r.el.getBoundingClientRect(),a=s.width,l=s.height,u=c.calculatePosition(t._activePosition,{mode:t._getMode(n,i,!0),width:a,height:l});n.$style=u,r.patch({style:u})}}},tabindex:0,style:n.$style||{position:"absolute"}},t._drawMenuItems(e))}).reverse()},e.prototype._onMenuItemClick=function(t,e){var i=this.data.getItem(t);i.disabled||(i.twoState&&this.data.update(i.id,{active:!i.active}),this.events.fire(h.NavigationBarEvents.click,[t,e]),this._close())},e.prototype._activeItemChange=function(t){var e=this;if(this._activeParents){var i=this._getParents(t,this._currentRoot);this._activeParents.forEach(function(t){e.data.exists(t)&&-1===i.indexOf(t)&&e.data.update(t,{$activeParent:!1},!1)})}t&&!this._documentHaveListener&&this._listenOuterClick(),t&&this.data.haveItems(t)?(this.events.fire(h.NavigationBarEvents.openMenu,[t]),this._activeMenu=t,clearTimeout(this._currentTimeout),this.paint()):(this._activeMenu=t,clearTimeout(this._currentTimeout),this._currentTimeout=setTimeout(function(){return e.paint()},400))},e.prototype._resetHotkeys=function(){var t=this;l.keyManager.removeHotKey(null,this),this.data.map(function(e){e.hotkey&&l.keyManager.addHotKey(e.hotkey,function(){return t._onMenuItemClick(e.id,null)},t)})},e.prototype._setProp=function(t,e,i){var n,o=this;Array.isArray(t)?t.forEach(function(t){var n;return o.data.update(t,((n={})[e]=i,n))}):this.data.update(t,((n={})[e]=i,n))},e}(u.View);e.Navbar=p},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(107),o=i(108),r=i(109),s=i(110),a=i(111),c=i(112),l=i(113),u=i(114),d=i(115),h=i(22),p=i(23);e.createFactory=function(t){for(var e=t.defaultType,i=t.allowedTypes,f=t.widgetName,_=t.widget,v=new Set,g=0,m=i;g0&&o.getCount(t,r,i),t.value&&t.$openIcon?n.el("span.dhx_button__icon.dhx_button__icon--menu.dxi.dxi-menu-right"):null,t.loading&&n.el("span.dhx_button__loading",[n.el("span.dhx_button__loading-icon.dxi.dxi-loading")])])}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),o=i(23);e.navItem=function(t,e,i){var r=" dhx_"+e+"-button";return n.el("button",{class:"dhx_button"+r+(t.active||t.$activeParent?r+"--active":"")+(t.disabled?r+"--disabled":"")+(t.$openIcon?r+"--select":"")+(t.circle?r+"--circle":"")+(t.size?" "+r+"--"+t.size:"")+(!t.value&&t.icon?r+"--icon":"")+(t.css?" "+t.css:""),dhx_id:t.id,disabled:t.disabled},[t.icon&&n.el("span",{class:t.icon+r+"__icon"}),t.value&&n.el("span",{class:r.trim()+"__text"},t.value),t.count>0&&o.getCount(t,r+"__count",i),t.value&&t.$openIcon&&n.el("span.dxi.dxi-menu-right",{class:r+"__caret"})])}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0);e.customHTMLButton=function(t,e){return n.el("button",{dhx_id:t.id,".innerHTML":t.html},t.html?"":t.value)}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),o=i(23);e.imageButton=function(t,e){var i="dhx_"+e+"-button-image",r="ribbon"===e;return n.el("button.dhx_button",{class:i+(t.size?" "+i+"--"+t.size:"")+(!t.value&&t.src?" "+i+"--icon":"")+(r&&t.$openIcon?" "+i+"--select":"")+(t.active?" "+i+"--active":""),dhx_id:t.id},[r&&t.value&&t.$openIcon&&n.el("span.dxi.dxi-menu-right",{class:i+"__caret"}),t.value&&n.el("span",{class:i+"__text"},t.value),t.src&&n.el("span",{class:i+"__image",style:{backgroundImage:"url("+t.src+")"}}),t.count>0&&o.getCount(t,i+"__count",!0)])}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),o=i(22);function r(t,e){t.fire(o.NavigationBarEvents.inputBlur,[e])}function s(t,e){t.fire(o.NavigationBarEvents.inputFocus,[e])}e.input=function(t,e,i){return n.el(".dhx_form-group.dhx_form-group--no-message-holder.dhx_form-group--label_sr.dhx_"+i+"__input",{style:{width:t.width?t.width:"200px"}},[n.el("label.dhx_label",{for:t.id},t.label),n.el(".dhx_input-wrapper",[n.el("input.dhx_input",{placeholder:t.placeholder,class:t.icon?"dhx_input--icon-padding":"",value:t.value,onblur:[r,e,t.id],onfocus:[s,e,t.id],dhx_id:t.id,_hooks:{didInsert:function(i){e&&e.fire(o.NavigationBarEvents.inputCreated,[t.id,i.el])}},_key:t.id}),t.icon?n.el(".dhx_input__icon",{class:t.icon}):null])])}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),o=i(23);e.menuItem=function(t,e,i){var r=i?" dhx_menu-button":" dhx_nav-menu-button";return n.el("button",{class:"dhx_button"+r+(t.disabled?r+"--disabled":"")+(t.$activeParent?r+"--active":""),disabled:t.disabled,dhx_id:t.id},i?[t.icon||t.value?n.el("span.dhx_menu-button__block.dhx_menu-button__block--left",[t.icon&&n.el("span.dhx_menu-button__icon",{class:t.icon}),t.value&&n.el("span.dhx_menu-button__text",t.value)]):null,t.count>0||t.hotkey||t.items?n.el("span.dhx_menu-button__block.dhx_menu-button__block--right",[t.count>0&&o.getCount(t," dhx_menu-button__count",!1),t.hotkey&&n.el("span.dhx_menu-button__hotkey",t.hotkey),t.items&&n.el("span.dhx_menu-button__caret.dxi.dxi-menu-right")]):null]:[t.value&&n.el("span.dhx_nav-menu-button__text",t.value)])}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.separator=function(t,e){return null}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.spacer=function(t,e){return null}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0);e.title=function(t,e){return n.el("span",{class:"dhx_navbar-title dhx_navbar-title--"+e},t.value)}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.layoutConfig={css:"vault-layout",rows:[{id:"topbar",css:"vault-topbar"},{id:"vault",css:"vault-file-grid"}]},e.layoutConfigWithoutTopbar={css:"vault-layout",rows:[{id:"vault",css:"vault-file-grid"}]}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(35),o=["byte","kilobyte","megabyte","gigabyte"];e.getBasis=function(t,e){return void 0===t&&(t=0),void 0===e&&(e=0),t<1024?t+" "+n.default[o[e]]:this.getBasis(Math.round(t/1024),e+1)};var r,s=13;function a(t){return{extension:t.name.split(".").pop()||"none",mime:t.file?t.file.type:""}}function c(t,e){switch(t){case"jpg":case"jpeg":case"gif":case"png":case"bmp":case"tiff":case"pcx":case"svg":case"ico":return r.image;case"avi":case"mpg":case"mpeg":case"rm":case"move":case"mov":case"mkv":case"flv":case"f4v":case"mp4":case"3gp":case"wmv":case"webm":case"vob":return r.video;case"rar":case"zip":case"tar":case"tgz":case"arj":case"gzip":case"bzip2":case"7z":case"ace":case"apk":case"deb":case"zipx":case"cab":case"tar-gz":case"rpm":case"xar":return r.archive;case"xlr":case"xls":case"xlsm":case"xlsx":case"ods":case"csv":case"tsv":return r.table;case"doc":case"docx":case"docm":case"dot":case"dotx":case"odt":case"wpd":case"wps":case"pages":return r.document;case"wav":case"aiff":case"au":case"mp3":case"aac":case"wma":case"ogg":case"flac":case"ape":case"wv":case"m4a":case"mid":case"midi":return r.audio;case"pot":case"potm":case"potx":case"pps":case"ppsm":case"ppsx":case"ppt":case"pptx":case"pptm":case"odp":return r.presentation;case"html":case"htm":case"eml":return r.web;case"exe":return r.application;case"dmg":return r.apple;case"pdf":case"ps":case"eps":return r.pdf;case"psd":return r.psd;case"txt":case"djvu":case"nfo":case"xml":return r.text;default:switch(e.split("/")[0]){case"image":return r.image;case"audio":return r.audio;case"video":return r.video;default:return r.other}}}e.truncateWord=function(t,e){var i,n;if(void 0===e&&(e=s),t.length<=e)return t;var o=t.lastIndexOf(".");if(-1===o)n=t.substr(t.length-4),i=t.substr(0,e-7);else{var r=o-3;n=t.substr(r),i=t.substr(0,e-(t.length-r))}return i+"..."+n},e.calculateCover=function(t){var e,i,n,o,r=t.width,s=t.height,a=r/s;return a>1?(e=s,n=(r-(i=s))/2,o=0):a<1?(i=r,n=0,o=(s-(e=r))/2):(e=r,i=r,n=0,o=0),{sx:n,sy:o,sWidth:i,sHeight:e,dx:0,dy:0}},function(t){t.image="image",t.video="video",t.archive="archive",t.table="table",t.document="document",t.presentation="presentation",t.application="application",t.web="web",t.apple="apple",t.pdf="pdf",t.psd="psd",t.audio="audio",t.other="other",t.text="text"}(r=e.FileType||(e.FileType={})),e.getFileType=c,e.getFileClassName=function(t){var e=a(t),i=e.mime,n=e.extension;return c(n,i)+" extension-"+n},e.isImage=function(t){var e=a(t),i=e.mime;return c(e.extension,i)===r.image}},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(0),r=i(4),s=i(35),a=i(26),c=function(t){function e(e,i){var n=t.call(this,null,i)||this;n.events=e,n._progress=0;return n.mount(null,o.create({render:function(){return n._draw()}})),n._abortUpload=function(){n.events.fire(a.ProgressBarEvents.cancel)},n}return n(e,t),e.prototype.setState=function(t,e){this._progress=t,this.config.template?this._progressText=this.config.template(t,e):this._progressText=this._progress.toFixed(1)+"%",this.paint()},e.prototype._draw=function(){return o.el(".progress-bar",{_key:this._uid},[o.el(".progress-indicator",{style:{width:this._progress+"%"}}),o.el(".progress-text",{".innerHTML":this._progressText}),o.el("button",{class:"dhx_btn dhx_btn--flat dhx_btn_small action-abort-all",onclick:this._abortUpload},s.default.cancel)])},e}(r.View);e.ProgressBar=c},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t){this._readerStack=[],this._isActive=!1,this._data=t}return t.prototype.add=function(t,e){void 0===e&&(e=!1),this._readerStack.push(t),e||this.read()},t.prototype.read=function(){var t=this;if(this._readerStack.length&&!this._isActive){var e=this._readerStack.shift();this._isActive=!0;var i=new FileReader;i.readAsDataURL(e.file),i.onload=function(i){var n=new Image;n.src=i.target.result,n.onload=function(){t._data.exists(e.id)&&t._data.update(e.id,{image:n}),t._isActive=!1,t.read()}},i.onerror=function(){t._isActive=!1,t.read()}}},t.prototype.stop=function(){this._readerStack=[]},t}();e.ReadStackPreview=n},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;ithis.data.getLength()-1)){this._focusIndex=t;var e=this.getRootView();if(e&&e.node&&e.node.el){var i=this.getRootNode();if(i){if(this.config.virtual){var n=t*this.config.itemHeight;(n>=this._visibleHeight+this._topOffset||n=i.scrollTop+i.clientHeight-o.clientHeight?i.scrollTop=o.offsetTop-i.clientHeight+o.clientHeight:o.offsetTope-this._visibleHeight&&(t=e-this._visibleHeight);var i=Math.floor(this._visibleHeight/this.config.itemHeight)+5,n=Math.floor(t/this.config.itemHeight);this._range=[n,i+n],this._topOffset=t,this.paint()},e.prototype._getHeight=function(){return this.data.getLength()*this.config.itemHeight},e.prototype._getHotkeys=function(){var t=this;if(this.config.keyNavigation)if(this._edited)this._navigationDestructor&&this._navigationDestructor();else{var e=this.config.keyNavigation;"function"!=typeof this.config.keyNavigation&&(this._widgetInFocus=!1,e=function(){return t._widgetInFocus},this._documentClickDestuctor=r.detectWidgetClick(this._uid,function(e){return t._widgetInFocus=e}));var i=function(t){return function(e){e.preventDefault(),t()}};this._navigationDestructor=l.addHotkeys({arrowdown:i(function(){return t.setFocusIndex(t._focusIndex+1)}),arrowup:i(function(){return t.setFocusIndex(t._focusIndex-1)}),enter:function(e){var i=t.data.getId(t._focusIndex);t.selection.add(i),t.events.fire(f.ListEvents.click,[i,e])},"enter+shift":function(e){var i=t.data.getId(t._focusIndex);t.selection.add(i,!1,!0),t.events.fire(f.ListEvents.click,[i,e])},"enter+ctrl":function(e){var i=t.data.getId(t._focusIndex);t.selection.add(i,!0,!1),t.events.fire(f.ListEvents.click,[i,e])},"enter+meta":function(e){var i=t.data.getId(t._focusIndex);t.selection.add(i,!0,!1),t.events.fire(f.ListEvents.click,[i,e])}},e)}},e}(d.View);e.List=v},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(122);e.getEditor=function(t,e){return new n.InputEditor(t,e)}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),o=i(37),r=function(){function t(t,e){var i=this;this._list=e,this._config=e.config,this._item=t,this._list.events.on(o.ListEvents.focusChange,function(t,e){i._mode&&e!==i._item.id&&i.endEdit()}),this._initHandlers()}return t.prototype.endEdit=function(){if(this._input){var t=this._input.value;this._list.events.fire(o.ListEvents.beforeEditEnd,[t,this._item.id])?(this._input.removeEventListener("blur",this._handlers.onBlur),this._input.removeEventListener("change",this._handlers.onChange),this._handlers={},this._mode=!1,this._list.events.fire(o.ListEvents.afterEditEnd,[t,this._item.id])):this._input.focus()}},t.prototype.toHTML=function(){this._mode=!0;var t=this._config.itemHeight;return n.el(".dhx_input-wrapper",{},[n.el("div.dhx_input-container",{},[n.el("input.dhx_input",{class:this._item.css?" "+this._item.css:"",style:{height:t,width:"100%",padding:"8px, 12px"},_hooks:{didInsert:this._handlers.didInsert},_key:this._item.id,dhx_id:this._item.id})])])},t.prototype._initHandlers=function(){var t=this;this._handlers={onBlur:function(){t.endEdit()},onChange:function(){t.endEdit()},didInsert:function(e){var i=e.el;t._input=i,i.focus(),i.value=t._item.value,i.setSelectionRange(0,i.value.length),i.addEventListener("change",t._handlers.onChange),i.addEventListener("blur",t._handlers.onBlur)}}},t}();e.InputEditor=r},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;ir},this._linkedCalendar.config.block=function(t){if(o)return t=o&&t<=r&&s(t)}),this.events.on(f.CalendarEvents.change,function(t){o=u.DateHelper.dayStart(t),e._linkedCalendar.paint()},"link"),this._linkedCalendar.events.on(f.CalendarEvents.change,function(t){r=u.DateHelper.dayStart(t),e.paint()},"link"),this._linkedCalendar.paint(),this.paint()},e.prototype._unlink=function(){this._linkedCalendar&&(this.config.$rangeMark=this._linkedCalendar.config.$rangeMark=null,this.config.block=this._linkedCalendar.config.block=null,this.events.detach(f.CalendarEvents.change,"link"),this._linkedCalendar.events.detach(f.CalendarEvents.change,"link"),this._linkedCalendar.paint(),this.paint(),this._linkedCalendar=null)},e.prototype._draw=function(){switch(this._currentViewMode){case f.ViewMode.days:return this._drawCalendar();case f.ViewMode.months:return this._drawMonthSelector();case f.ViewMode.years:return this._drawYearSelector();case f.ViewMode.timepicker:return this._drawTimepicker()}},e.prototype._initHandlers=function(){var t=this;this._handlers={onclick:{".dhx_calendar-year, .dhx_calendar-month, .dhx_calendar-day":function(e,i){var n=i.attrs._date,o=u.DateHelper.copy(t._selected);switch(t._currentViewMode){case f.ViewMode.days:var r=t.config.timePicker?u.DateHelper.mergeHoursAndMinutes(n,t._selected||t._currentDate):n;if(!t.events.fire(f.CalendarEvents.beforeChange,[r,o,!0]))return;t._selected=r,t.showDate(n),t.events.fire(f.CalendarEvents.change,[n,o,!0]);break;case f.ViewMode.months:if(t.config.view!==f.ViewMode.months)u.DateHelper.setMonth(t._currentDate,n),t.showDate(null,f.ViewMode.days);else{var s=u.DateHelper.fromYearAndMonth(t._currentDate.getFullYear()||t._selected.getFullYear(),n);if(!t.events.fire(f.CalendarEvents.beforeChange,[s,o,!0]))return;t._currentDate=s,t._selected=s,t.events.fire(f.CalendarEvents.change,[t._selected,o,!0]),t.paint()}break;case f.ViewMode.years:if(t.config.view!==f.ViewMode.years)u.DateHelper.setYear(t._currentDate,n),t.showDate(null,f.ViewMode.months);else{s=u.DateHelper.fromYear(n);if(!t.events.fire(f.CalendarEvents.beforeChange,[s,o,!0]))return;t._currentDate=s,t._selected=s,t.events.fire(f.CalendarEvents.change,[t._selected,o,!0]),t.paint()}}},".dhx_calendar-action__cancel":function(){return t.showDate(t._selected,f.ViewMode.days)},".dhx_calendar-action__show-month":function(){return t.showDate(null,f.ViewMode.months)},".dhx_calendar-action__show-year":function(){return t.showDate(null,f.ViewMode.years)},".dhx_calendar-action__next":function(){var e;switch(t._currentViewMode){case f.ViewMode.days:e=u.DateHelper.addMonth(t._currentDate,1);break;case f.ViewMode.months:e=u.DateHelper.addYear(t._currentDate,1);break;case f.ViewMode.years:e=u.DateHelper.addYear(t._currentDate,12)}t.showDate(e)},".dhx_calendar-action__prev":function(){var e;switch(t._currentViewMode){case f.ViewMode.days:e=u.DateHelper.addMonth(t._currentDate,-1);break;case f.ViewMode.months:e=u.DateHelper.addYear(t._currentDate,-1);break;case f.ViewMode.years:e=u.DateHelper.addYear(t._currentDate,-12)}t.showDate(e)},".dhx_calendar-action__show-timepicker":function(){t._currentViewMode=f.ViewMode.timepicker,t.paint()}},onmouseover:{".dhx_calendar-day":function(e,i){return t.events.fire(f.CalendarEvents.dateHover,[e,new Date(i.attrs._date)])}}}},e.prototype._getData=function(t){for(var e="monday"===this.config.weekStart?1:0,i=[],n=6,o=u.DateHelper.weekStart(u.DateHelper.monthStart(t),e);n--;){for(var r=u.DateHelper.getWeekNumber(o),s=0,a=7,c=[];a--;){var l=u.DateHelper.isWeekEnd(o),d=t.getMonth()===o.getMonth(),h=this.config.block&&this.config.block(o),p=[];if(l&&d&&p.push("dhx_calendar-day--weekend"),d||(this.config.thisMonthOnly?(s++,p.push("dhx_calendar-day--hidden")):p.push("dhx_calendar-day--muffled")),this.config.mark){var f=this.config.mark(o);f&&p.push(f)}if(this.config.$rangeMark){var _=this.config.$rangeMark(o);_&&p.push(_)}h&&(l?p.push("dhx_calendar-day--weekend-disabled"):p.push("dhx_calendar-day--disabled")),this._selected&&o.getDate()===this._selected.getDate()&&o.getMonth()===this._selected.getMonth()&&this._selected.getFullYear()===o.getFullYear()&&p.push("dhx_calendar-day--selected"),c.push({date:o,day:o.getDate(),css:p.join(" ")}),o=u.DateHelper.addDay(o)}i.push({weekNumber:r,days:c,disabledWeekNumber:7===s})}return i},e.prototype._drawCalendar=function(){for(var t,e=this._currentDate,i=("monday"===this.config.weekStart?p.default.daysShort.slice(1).concat([p.default.daysShort[0]]):p.default.daysShort).map(function(t){return s.el(".dhx_calendar-weekday",t)}),n=[],r=[],a=0,c=this._getData(e);at._hoursSlider.config.max||(12===t.config.timeFormat?(t._time.isAM=e<12,t._time.h=e%12||12):t._time.h=e,t.events.fire(p.TimepickerEvents.change,[t.getValue()]),t._inputsView.paint())}),this._minutesSlider.events.on(u.SliderEvents.change,function(e){et._minutesSlider.config.max||(t._time.m=e,t.events.fire(p.TimepickerEvents.change,[t.getValue()]),t._inputsView.paint())})},e.prototype._draw=function(){return s.el(".dhx_timepicker-inputs",o({},this._handlers),[s.el("input.dhx_timepicker-input.dhx_timepicker-input--hour",{_key:"hour",value:this._time.h<10?"0"+this._time.h:this._time.h}),s.el("span.dhx_timepicker-delimer",":"),s.el("input.dhx_timepicker-input.dhx_timepicker-input--minutes",{_key:"minute",value:this._time.m<10?"0"+this._time.m:this._time.m}),12===this.config.timeFormat?s.el(".dhx_timepicker-ampm",this._time.isAM?"AM":"PM"):null])},e}(c.View);function _(t,e){return isNaN(t)?0:Math.min(e,Math.max(0,t))}e.Timepicker=f},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(1),r=i(0),s=i(2),a=i(13),c=i(4),l=i(10),u=i(63);function d(t,e,i){return ti?i:t}var h=function(t){function e(e,i){var n=t.call(this,e,o.extend({mode:u.Direction.horizontal,min:0,max:100,step:1,thumbLabel:!0},i))||this;n.events=new s.EventSystem(n),n._axis=n.config.mode===u.Direction.horizontal?"clientX":"clientY",n._initStartPosition(),n._initHotkeys();var a=r.create({render:function(){return n._draw()},hooks:{didMount:function(){return n._calcSliderPosition()},didRedraw:function(){return n._calcSliderPosition()}}});return n._initHandlers(),n.mount(e,a),n}return n(e,t),e.prototype.disable=function(){this._disabled=!0,this.paint()},e.prototype.enable=function(){this._disabled=!1,this.paint()},e.prototype.focus=function(t){this.getRootView().refs[t?"extraRunner":"runner"].el.focus()},e.prototype.getValue=function(){var t;if(this.config.range){var e=this._getValue(this._currentPosition),i=this._getValue(this._extraCurrentPosition);t=e1){var i=this._getValue(this._extraCurrentPosition);this._setValue(t[0],!1),this.events.fire(u.SliderEvents.change,[t[0],e,!1]),this._setValue(t[1],!0),this.events.fire(u.SliderEvents.change,[t[1],i,!0])}else{if(t=parseFloat(t),isNaN(t))throw new Error("Wrong value type, for more info check documentation https://docs.dhtmlx.com/suite/slider__api__slider_setvalue_method.html");this._setValue(t),this.events.fire(u.SliderEvents.change,[t,e,!1])}this.paint()},e.prototype.destructor=function(){this._hotkeysDestructor(),this.unmount()},e.prototype._calcSliderPosition=function(){var t=this.getRootView();if(t){var e=t.refs.track.el.getBoundingClientRect();this._offsets={left:e.left+window.pageXOffset,top:e.top+window.pageYOffset},this._length=this.config.mode===u.Direction.horizontal?e.width:e.height}},e.prototype._initHotkeys=function(){var t=this;this._hotkeysDestructor=a.addHotkeys({arrowleft:function(e){t.config.mode!==u.Direction.vertical&&(e.preventDefault(),t._move(-t.config.step,e.target.classList.contains("dhx_slider__thumb--extra")))},arrowright:function(e){t.config.mode!==u.Direction.vertical&&(e.preventDefault(),t._move(t.config.step,e.target.classList.contains("dhx_slider__thumb--extra")))},arrowup:function(e){t.config.mode!==u.Direction.horizontal&&(e.preventDefault(),t._move(t.config.step,e.target.classList.contains("dhx_slider__thumb--extra")))},arrowdown:function(e){t.config.mode!==u.Direction.horizontal&&(e.preventDefault(),t._move(-t.config.step,e.target.classList.contains("dhx_slider__thumb--extra")))}},function(){var e=document.activeElement,i=t.getRootView().refs;if(!i)return!1;var n=i.runner;return!(!n||n.el!==e)||!(!t.config.range||!i.extraRunner||i.extraRunner.el!==e)})},e.prototype._move=function(t,e){this.config.inverse&&(t=-t);var i=e?this._getValue(this._extraCurrentPosition):this._getValue(this._currentPosition),n=i+t;this._setValue(i+t,e),this.events.fire(u.SliderEvents.change,[n,i,e]),this.paint()},e.prototype._initStartPosition=function(){var t=this.config,e=t.max,i=t.min,n=t.range,o=function(t,e,i){var n;return(n=void 0===t?[]:Array.isArray(t)?t:"string"==typeof t?t.split(",").map(function(t){return parseInt(t,10)}):[t])[0]=void 0===n[0]?e:d(n[0],e,i),n[1]=void 0===n[1]?i:d(n[1],e,i),n}(this.config.value,this.config.min,this.config.max),r=o[0],s=o[1];this._currentPosition=(r-i)/(e-i)*100,n&&(this._extraCurrentPosition=(e-s)/(e-i)*100),this._currentPosition=(r-i)/(e-i)*100,n&&(this._extraCurrentPosition=(s-i)/(e-i)*100),this._isInverse()&&(this._currentPosition=100-this._currentPosition,n&&(this._extraCurrentPosition=100-this._extraCurrentPosition))},e.prototype._getValue=function(t){this._isInverse()&&(t=100-t);var e=this.config,i=e.min,n=e.max,o=e.step;if(100===t)return n;if(0===t)return i;var r=t*(n-i)/100,s=r%o,a=s>=o/2?o:0;return+(Number(i)+Number(r)-s+a).toFixed(5)},e.prototype._setValue=function(t,e){void 0===e&&(e=!1);var i=this.config,n=i.max,o=i.min;if(t>n||tt._currentPosition?t._possibleRange=[t._currentPosition,100]:t._possibleRange=[0,t._currentPosition],t._findNewDirection=null}t._inSide(i)&&t._updatePosition(i,t._isExtraActive),t.paint()},i=function(n){t.events.fire(u.SliderEvents.mouseup,[n]),setTimeout(function(){t._isMouseMoving=!1,t.paint()},4),document.removeEventListener("mouseup",i),document.removeEventListener("mousemove",e)};this.config.help&&(this._helper=new l.Popup({css:"dhx_tooltip dhx_tooltip--forced dhx_tooltip--light"}),this._helper.attachHTML(this.config.help)),this._handlers={showHelper:function(e){e.preventDefault(),e.stopPropagation(),t._helper.show(e.target)},onmousedown:function(n){if(!t._disabled&&3!==n.which){var o;if(t.events.fire(u.SliderEvents.mousedown,[n]),t._isMouseMoving=!0,n.target.classList.contains("dhx_slider__thumb--extra")?(t._isExtraActive=!0,o=t._extraCurrentPosition):(t._isExtraActive=!1,o=t._currentPosition),t._findNewDirection=null,t.config.range){var r=t._currentPosition>t._extraCurrentPosition?[t._currentPosition,t._extraCurrentPosition]:[t._extraCurrentPosition,t._currentPosition],s=r[0],a=r[1];t._currentPosition===t._extraCurrentPosition?(t._findNewDirection=o,t._possibleRange=[0,100]):t._possibleRange=oe[1])||(this._updatePosition(e[1],this._isExtraActive),!1)},e.prototype._updatePosition=function(t,e){void 0===e&&(e=!1),t>100&&(t=100),t<0&&(t=0);var i=this.config,n=i.max,o=i.min,r=e?this._extraCurrentPosition:this._currentPosition,s=this._getValue(r),a=this._getValue(t);if(s!==a){var c=(a-o)/(n-o)*100,l=this._isInverse()?100-c:c;e?this._extraCurrentPosition=l:this._currentPosition=l,this.events.fire(u.SliderEvents.change,[a,s,e])}},e.prototype._getRunnerStyle=function(t){var e;void 0===t&&(t=!1);var i=this.config.mode===u.Direction.horizontal?"left":"top",n=t?this._extraCurrentPosition:this._currentPosition;return(e={})[i]=n+"%",e},e.prototype._isInverse=function(){return this.config.inverse&&this.config.mode===u.Direction.horizontal||!this.config.inverse&&this.config.mode===u.Direction.vertical},e.prototype._getRunnerCss=function(t){return void 0===t&&(t=!1),"dhx_slider__thumb"+(t?" dhx_slider__thumb--extra":"")+(this._isMouseMoving&&(t&&this._isExtraActive||!t&&!this._isExtraActive)?" dhx_slider__thumb--active":"")+(this._disabled?" dhx_slider__thumb--disabled":"")+(this._isNullable(t?this._extraCurrentPosition:this._currentPosition)&&!this.config.range?" dhx_slider__thumb--nullable":"")},e.prototype._draw=function(){var t=this.config.labelInline&&this.config.labelWidth?this.config.labelWidth:"";return r.el("div",{class:"dhx_slider dhx_slider--mode_"+this.config.mode+(this.config.label&&this.config.labelInline?" dhx_slider--label-inline":"")+(this.config.hiddenLabel?" dhx_slider--label_sr":"")+(this.config.tick?" dhx_slider--ticks":"")+(this.config.majorTick?" dhx_slider--major-ticks":"")+(this.config.css?" "+this.config.css:"")},[this.config.label?r.el("label.dhx_label.dhx_slider__label",{style:{minWidth:t,maxWidth:t},class:this.config.help?"dhx_label--with-help":"",onclick:this._handlers.onlabelClick},this.config.help?[r.el("span.dhx_label__holder",this.config.label),r.el("span.dhx_label-help.dxi.dxi-help-circle-outline",{tabindex:"0",role:"button",onclick:this._handlers.showHelper})]:this.config.label):null,this._drawSlider()])},e.prototype._drawSlider=function(){return r.el(".dhx_slider__track-holder",{dhx_widget_id:this._uid},[r.el(".dhx_slider__track",{_ref:"track",onmouseover:this._handlers.onmouseover,onmouseout:this._handlers.onmouseout,onclick:this._handlers.onclick},[this._getDetector(),r.el("div",{_ref:"runner",class:this._getRunnerCss(),onmousedown:this._handlers.onmousedown,onmousemove:this._handlers.onmousemove,onfocus:this._handlers.onfocus,onblur:this._handlers.onblur,style:this._getRunnerStyle(),tabindex:0}),this.config.thumbLabel&&(this._mouseIn||this._focusIn||this._isMouseMoving)?this._drawThumbLabel():null,this.config.thumbLabel&&this.config.range&&(this._mouseIn||this._focusIn||this._isMouseMoving)?this._drawThumbLabel(!0):null,this.config.range?r.el("div",{_ref:"extraRunner",class:this._getRunnerCss(!0),onmousedown:this._handlers.onmousedown,onmousemove:this._handlers.onmousemove,onfocus:this._handlers.onfocus,onblur:this._handlers.onblur,style:this._getRunnerStyle(!0),tabindex:0}):null]),this.config.tick?this._drawTicks():null])},e.prototype._getDetector=function(){var t,e,i;if(this._disabled)return r.el(".dhx_slider__range");var n=this.config.mode===u.Direction.horizontal?"left":"top",o=this.config.mode===u.Direction.horizontal?"width":"height";if(this.config.range){var s=this._currentPosition>this._extraCurrentPosition?[this._currentPosition,this._extraCurrentPosition]:[this._extraCurrentPosition,this._currentPosition],a=s[0],c=s[1];return r.el(".dhx_slider__range",{style:(t={},t[n]=c+"%",t[o]=a-c+"%",t)})}return this._isInverse()?r.el(".dhx_slider__range",{style:(e={},e[n]=this._currentPosition+"%",e[o]=100-this._currentPosition+"%",e)}):r.el(".dhx_slider__range",{style:(i={},i[n]=0,i[o]=this._currentPosition+"%",i)})},e.prototype._drawThumbLabel=function(t){var e;void 0===t&&(t=!1);var i=t?this._extraCurrentPosition:this._currentPosition,n=this.config.mode===u.Direction.horizontal?"left":"top",o=this.config.mode===u.Direction.horizontal?".dhx_slider__thumb-label--horizontal":".dhx_slider__thumb-label--vertical";(t&&this._isExtraActive||!t&&!this._isExtraActive)&&(o+=".dhx_slider__thumb-label--active");var s=((e={})[n]=i+"%",e);return r.el(".dhx_slider__thumb-label"+o,{style:s},this._getValue(i))},e.prototype._getTicks=function(){for(var t=this.config,e=t.max,i=t.min,n=t.step,o=t.tick,r=t.majorTick,s=e-i,a=n*o/s,c=[],l=0,u=0;l<1;){var d=+(Number(i)+l*s).toFixed(5),h=u%r==0;c.push({position:(this._isInverse()?100*(1-l):100*l)+"%",isMultiple:h,label:h&&"function"==typeof this.config.tickTemplate?this.config.tickTemplate(d):null}),l+=a,u++}return c.push({position:(this._isInverse()?0:100)+"%",isMultiple:!0,label:"function"==typeof this.config.tickTemplate?this.config.tickTemplate(e):null}),c},e.prototype._drawTicks=function(){var t=this.config.mode===u.Direction.horizontal?"left":"top";return r.el(".dhx_slider__ticks-holder",this._getTicks().map(function(e){var i;return r.el("div",{class:"dhx_slider__tick"+(e.isMultiple?" dhx_slider__tick--major":""),style:(i={},i[t]=e.position,i)},void 0!==e.label?[r.el(".dhx_slider__tick-label",e.label)]:null)}))},e.prototype._isNullable=function(t){return this._isInverse()?100===t:0===t},e}(c.View);e.Slider=h},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;io?o:e,i=i<0?0:i>r?r:i;var s=Math.round(i/(r/100)),a=100-Math.round(e/(o/100));this._pickerState.hsv.s=s/100,this._pickerState.hsv.v=a/100}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.calculatePaletteGrip=function(t,e,i){var n=t.height,o=t.width;return e=e<0?0:e>n?n:e,i=i<0?0:i>o?o:i,{s:Math.round(i/(o/100))/100,v:(100-Math.round(e/(n/100)))/100}},e.calculateRangeGrip=function(t,e){var i=t.width;return e=e<0?0:e>i?i:e,{h:Math.round(e/i*360),rangeLeft:e}}},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(135)),n(i(6))},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;i=0&&u<=n._width-s-i&&d>=0&&d<=n._height-r-o?n.events.fire(_.ChartEvents.chartMouseMove,[u,d,n._left+i,n._top+o]):n.events.fire(_.ChartEvents.chartMouseLeave)},onmouseleave:function(){return n.events.fire(_.ChartEvents.chartMouseLeave)}},n._layers=new l.ComposeLayer,n.setConfig(i),n._initEvents();return n.mount(e,r.create({render:function(t,e){if(!n.data.getLength())return r.el("div");var i=[r.resizer(function(t,e){n._width=t,n._height=e||400;var i=n.getRootView();if(i&&i.node&&i.node.el){var o=i.node.el.getBoundingClientRect();n._left=o.left+window.pageXOffset,n._top=o.top+window.pageYOffset}n.events.fire(_.ChartEvents.resize,[{width:n._width,height:n._height}]),n.paint()})];return n._width&&n._height&&i.push(n._layers.toVDOM(n._width,n._height)),r.el(".dhx_widget.dhx_chart",{onmousemove:n._globalHTMLHandlers.onmousemove,onmouseleave:n._globalHTMLHandlers.onmouseleave},i)}})),n}return n(e,t),e.prototype.getSeries=function(t){return this._series[t]},e.prototype.eachSeries=function(t){var e=[];for(var i in this._series)e.push(t.call(this,this._series[i]));return e},e.prototype.destructor=function(){this._tooltip.destructor(),this.events.clear(),this.unmount()},e.prototype.setConfig=function(t){var e=this;if(this.config=t,this._layers.clear(),this._series={},this._scales={},t.scales)for(var i in t.scales){var n=o({},t.scales[i]);n.type=n.type||this._detectScaleType(n,i),t.scales.radial&&"radial"!==i&&(n.hidden=!0),this._setScale(n,i)}var r=new p.default;if(this._layers.add(r),t.series.forEach(function(i){var n=o({},i);n.type=n.type||t.type;var s=h.default[n.type];(n.barWidth||e.config.barWidth)&&(n.barWidth=n.barWidth||e.config.barWidth);var a=new s(e.data,n,e.events);(n.scales||[_.ScaleType.bottom,_.ScaleType.left]).forEach(function(t){var i=e._scales[t];i&&(a.addScale(t,i),n.stacked?i.add(r):i.add(a))}),e._series[a.id]=a,n.stacked?r.add(a):e._layers.add(a)}),t.legend){var s=o({},t.legend);s.series&&(s.$seriesInfo=s.series.map(function(t){return e._series[t]}));var a=new u.Legend(this.data,s,this.events);this._layers.add(a)}this._tooltip=new f.Tooltip(document.body,{chart:this}),this.paint()},e.prototype._setScale=function(t,e){var i=new d.default[t.type](this.data,t,e);i.config.grid&&"radial"!==i.config.type&&this._layers.add(i.scaleGrid()),this._layers.add(i),this._scales[e]=i},e.prototype._detectScaleType=function(t,e){return"radial"===e?e:t.text?"text":"numeric"},e.prototype._initEvents=function(){var t=this;this.events.on(_.ChartEvents.toggleSeries,function(e,i){if(i){var n=t._series[Object.keys(t._series)[0]];n&&(n.toggle(e),t.paint())}else t._series[e]&&(t._series[e].toggle(),t.paint())},this),this.events.on(c.DataEvents.change,function(){return t.paint()})},e}(a.View);e.Chart=v},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),o=i(137),r=function(){function t(){this._data=[],this._sizes={left:20,right:20,top:10,bottom:10}}return t.prototype.add=function(t){this._data.push(t)},t.prototype.clear=function(){this._data.forEach(function(t){return t.destructor&&t.destructor()}),this._data=[]},t.prototype.getSizes=function(){return this._sizes},t.prototype.toVDOM=function(t,e){var i={left:20,right:20,top:10,bottom:10},r=this._data.filter(function(t){return!t.dataReady||t.dataReady().length});this._data.forEach(function(t){return!t.scaleReady||t.scaleReady(i)});var s=0,a=0;r.forEach(function(t){t.seriesShift&&(s+=t.seriesShift(),a++)});var c=s/a;s=a?(c-s)/2:0,r.forEach(function(t){t.seriesShift&&(t.seriesShift(s),s+=c)}),this._sizes=i;var l=n.sv("g",{transform:"translate("+i.left+", "+i.top+")"},r.map(function(n){return n.paint(t-(i.left+i.right),e-(i.top+i.bottom))})),u=n.sv("defs",[o.dropShadow(),o.shadow()]);return n.sv("svg",{width:t,height:e},[u,l])},t}();e.ComposeLayer=r},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0);e.shadow=function(){return n.sv("filter",{id:"shadow"},[n.sv("feDiffuseLighting",{in:"SourceGraphic",result:"light","lighting-color":"white"},[n.sv("feDistantLight",{azimuth:90,elevation:25})]),n.sv("feComposite",{in:"SourceGraphic",in2:"light",operator:"arithmetic",k1:"1",k2:"0",k3:"0",k4:"0"})])},e.dropShadow=function(){return n.sv("filter",{id:"dropshadow",x:"-100%",y:"-100%",width:"300%",height:"300%"},[n.sv("feGaussianBlur",{in:"SourceAlpha",stdDeviation:2}),n.sv("feOffset",{dx:0,dy:0,result:"offsetblur"}),n.sv("feOffset",{dx:0,dy:0,result:"offsetblur"}),n.sv("feFlood",{"flood-color":"rgba(85,85,85,0.5)"}),n.sv("feComposite",{in2:"offsetblur",operator:"in"}),n.sv("feMerge",[n.sv("feMergeNode"),n.sv("feMergeNode",{in:"SourceGraphic"})])])}},function(t,e,i){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(t){for(var e,i=1,n=arguments.length;i0;e--)t.push(-Math.pow(10,e));t.push(0)}if(this.config.max>0){var i=Math.ceil(o.log10(this.config.max));for(e=1;e<=i;e++)t.push(Math.pow(10,e))}return t},t.prototype._addPadding=function(){this.config.min-=this.config.padding},t}();e.AxisCreator=s},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;ie?o.TooltipType.left:o.TooltipType.right},e.prototype.getClosest=function(t,e){for(var i=[1/0,null,null,null],n=0,o=this._points;ns&&(i[0]=s,i[1]=r[1],i[2]=r[0],i[3]=r[2])}return i},e.prototype._getText=function(t){return t[4].toString()},e.prototype._getClosestDist=function(t,e,i,n){return this.config.stacked&&t>i?1/0:Math.abs(e-n)},e.prototype._path=function(t,e){return t[0]+=this._shift,"\nM "+e+" "+(t[0]-this.config.barWidth/2)+"\nH "+t[1]+"\nv "+this.config.barWidth+"\nH "+e},e.prototype._base=function(t){var e=this.config.baseLine;return this._baseLinePosition=void 0!==e?this.yScale.point(e)*t:0},e.prototype._text=function(t,e){return{y:t[0],x:(e+t[1])/2,class:"bar-text"}},e}(i(70).default);e.default=r},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(0),r=i(24),s=i(5),a=i(6),c=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.paint=function(t,e){var i=this,n=e/2,c=-.25,l=[],u=[],d=[],h=1===this._points.length?-1e-6:0;return this._points.forEach(function(p){var f=p[0],_=p[1],v=p[2],g=p[3],m=p[4],y=r.getCoordinates(c,n,n),x=y[0],b=y[1],w=c+f/2;c+=f+h;var k=r.getCoordinates(c,n,n),C=k[0],E=k[1],O=f>.5?1:0,I=r.getCoordinates(w,n,n),S=w>-.25&&w<.25,M=w>.5||w<0;switch(i.config.subType){case a.NoScaleSubType.basic:var P=S?"donut-value-title start-text":"donut-value-title end-text",T=10,D=M?2*-T:T,V=r.getCoordinates(w,n+10,n+10),j=S?"donut-value start-text":"donut-value end-text",A=o.sv("text",{x:V[0],y:V[1]+D,class:P},[s.verticalCenteredText(g.toString())]),L=o.sv("text",{x:V[0],y:V[1]+D+16,class:j},[s.verticalCenteredText(_.toString())]);u.push(A),u.push(L);break;case a.NoScaleSubType.valueOnly:P=S?"donut-value start-text":"donut-value end-text",T=10,D=M?-T:T,V=r.getCoordinates(w,n+10,n+10);var H=o.sv("text",{x:V[0],y:V[1]+D,class:P},[s.verticalCenteredText(g.toString())]);u.push(H);break;case a.NoScaleSubType.percentOnly:var F=o.sv("text",{x:7*I[0]/9,y:7*I[1]/9,class:"pie-inner-value"},[s.verticalCenteredText(Math.round(100*f)+"%")]);u.push(F)}var R="M "+x+" "+b+" A "+n+" "+n+" 0 "+O+" 1 "+C+" "+E+" L 0 0",B=r.getCoordinates(w,4,4),N=B[0],$=B[1],z=o.sv("path",{d:R,_key:v,fill:m,class:"chart donut",onmouseout:[r.pieLikeHandlers.onmouseout],onmouseover:[r.pieLikeHandlers.onmouseover,N,$]});l.push(z),1===i._points.length?d.push([t/2,e/2]):d.push([.8*I[0]+t/2,.8*I[1]+e/2])}),this._center=[t/2,e/2],this._tooltipData=d,l.push(o.sv("circle",{cx:0,cy:0,r:5*n/9,fill:"#FFFFFF"})),l=l.concat(u),o.sv("g",{transform:"translate("+t/2+", "+e/2+")"},l)},e}(i(45).default);e.default=c},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;i-.25&&A<.25?"pie-value start-text":"pie-value end-text";if(p){x.push(s.sv("path",{d:"M"+$[0]+" "+$[1]+" L"+z[0]+" "+z[1]+" h "+L,class:"pie-value-connector"}));var Y=s.sv("text",{x:z[0],y:z[1],dx:L/2+L>0?10:-10,class:W},[c.verticalCenteredText(O.toString())]);x.push(Y)}else{var G=A>.5||A<0?-5:5;Y=s.sv("text",{x:$[0],y:$[1]+G,class:W},[c.verticalCenteredText(O.toString())]);x.push(Y)}if(f){var q=s.sv("text",{x:.7*H[0],y:.7*H[1],class:"pie-inner-value"},[c.verticalCenteredText(C.toString())]);x.push(q)}if(i.config.subType===l.NoScaleSubType.percentOnly){var X=s.sv("text",{x:.5*H[0],y:.5*H[1],class:"pie-inner-value"},[c.verticalCenteredText(Math.round(100*m)+"%")]);x.push(X)}v+=m+k;var U=a.getCoordinates(v,_,_),K=U[0],J=U[1],Z="M "+V+" "+j+" A "+_+" "+_+" 0 "+(m>.5?1:0)+" 1 "+K+" "+J+" L 0 0",Q=a.getCoordinates(A,4,4),tt=Q[0],et=Q[1],it=s.sv("path",{d:Z,class:"chart pie",_key:E,fill:S,onmouseover:[a.pieLikeHandlers.onmouseover,tt,et],onmouseout:[a.pieLikeHandlers.onmouseout]});if(b.push(it),i._points.length>1&&u){var nt={"stroke-width":d,stroke:u},ot=s.sv("path",o({d:"M0 0 L"+K+" "+J,fill:"none"},nt));w.push(ot)}1===i._points.length?g.push([t/2,e/2]):g.push([.7*H[0]+t/2,.7*H[1]+e/2])}),this._center=[t/2,e/2],this._tooltipData=g,m.push(s.sv("defs",y)),m=(m=(m=m.concat(b)).concat(w)).concat(x),s.sv("g",{transform:"translate("+t/2+", "+e/2+")"},m)},e}(i(45).default);e.default=u},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(0),r=i(24),s=i(5),a=i(6),c=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.paint=function(t,e){var i=this,n=e/2,c=.5*n,l=n/5,u=[],d=-.25,h=[],p=[],f=1===this._points.length?-1e-6:0;return this._points.forEach(function(_){var v=_[0],g=_[1],m=_[2],y=_[3],x=_[4],b=r.getCoordinates(d,n,c),w=b[0],k=b[1],C=d+v/2,E=C<.25?5:-5,O=r.getCoordinates(C,n,c),I=0;C>0&&C<.5&&(I=l*Math.sin(2*Math.PI*C));var S=r.getCoordinates(C,n+5+I,c+5+I),M=r.getCoordinates(C,n+30+I,c+30+I),P=d+v+f,T=r.getCoordinates(P,n,c),D=T[0],V=T[1],j=v>.5?1:0,A=C>-.25&&C<.25?"pie-value start-text":"pie-value end-text";if(i.config.useLines){p.push(o.sv("path",{d:"M"+S[0]+" "+S[1]+" L"+M[0]+" "+M[1]+" h "+E,class:"pie-value-connector"}));var L=o.sv("text",{x:M[0],y:M[1],dx:E/2+E>0?10:-10,class:A},[s.verticalCenteredText(y.toString())]);p.push(L)}else{var H=C>.5||C<0?-10:10;L=o.sv("text",{x:S[0],y:S[1]+H,class:A},[s.verticalCenteredText(y.toString())]);p.push(L)}if(i.config.showText){L=o.sv("text",{x:.7*O[0],y:.7*O[1],class:"pie-inner-value"},[s.verticalCenteredText(g.toString())]);p.push(L)}if(i.config.subType===a.NoScaleSubType.percentOnly){var F=o.sv("text",{x:.6*O[0],y:.6*O[1],class:"pie-inner-value"},[s.verticalCenteredText(Math.round(100*v)+"%")]);p.push(F)}var R="";if(d<=0&&P>=.5?R="M "+n+" 0 v "+l+" A "+n+" "+c+" 0 1 1 "+-n+" "+l+" v "+-l:d<=0&&P<.5?R="M "+n+" 0 v "+l+" A "+n+" "+c+" 0 0 1 "+D+" "+(V+l)+" v "+-l:d>0&&d<=.5&&P>=.5?R="M "+w+" "+k+" v "+l+" A "+n+" "+c+" 0 0 1 "+-n+" "+l+" v "+-l:d>0&&P<.5&&(R="M "+w+" "+k+" v "+l+" A "+n+" "+c+" 0 0 1 "+D+" "+(V+l)+" v "+-l),R){var B=o.sv("path",{d:R,fill:x,class:"chart pie3d addition",stroke:"none",filter:"url(#shadow)"});h.push(B)}var N="M "+w+" "+k+" A "+n+" "+c+" 0 "+j+" 1 "+D+" "+V+" L 0 0";h.push(o.sv("path",{d:N,_key:m,fill:x,stroke:"none",class:"chart pie3d"})),1===i._points.length?u.push([t/2,e/2]):u.push([.7*O[0]+t/2,.7*O[1]+e/2]),d=P}),this._center=[t/2,e/2],this._tooltipData=u,h=h.concat(p),o.sv("g",{transform:"translate("+t/2+", "+e/2+")"},h)},e}(i(45).default);e.default=c},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;in[0]&&(s[0]=n[0],s[1]=n[1],s[2]=n[2],s[3]=n[3],s[4]=i.id)});var a=n._chart.getSeries(s[4]);if(a){var c=r.calcPointRef(s[3],s[4]);if(c===n._lastPointRef)return;var l=a.getTooltipText(s[3]);if(l){var u=a.getTooltipType(s[3],s[1],s[2]);n._enableActivePoint(c),n._state.leftOffset=i,n._state.topOffset=o,n._state.value=l,n._state.x=s[1],n._state.y=s[2],n._state.type=u,n._state.chartType=a.config.type,n._state.isVisible=!0,n.paint()}}},n),n._chart.events.on(s.ChartEvents.chartMouseLeave,function(){return n._hide()},n),n}return n(e,t),e.prototype.destructor=function(){this._chart.events.detach(s.ChartEvents.chartMouseLeave,this),this._chart.events.detach(s.ChartEvents.chartMouseMove,this),this.unmount()},e.prototype._hide=function(){this._disableLastActivePoint(),this._state.isVisible=!1,this.paint()},e.prototype._enableActivePoint=function(t){var e=this._chart.getRootView(),i=e&&e.refs&&e.refs[t];i&&(this._disableLastActivePoint(),this._lastPointRef=t,i.patch({class:i.attrs.class+" active-figure"}))},e.prototype._disableLastActivePoint=function(){if(this._lastPointRef){var t=this._chart.getRootView(),e=t&&t.refs&&t.refs[this._lastPointRef];e&&e.patch({class:e.attrs.class.replace(" active-figure","")}),this._lastPointRef=null}},e.prototype._draw=function(){var t,e=this._state,i=e.value,n=e.x,a=e.y,c=e.type,l=e.chartType,u=e.isVisible;if(u&&""!==i){var d=r.getFontStyle("tooltip-text");t=function(t,e,i,n,o){var r=o===s.ChartType.bar?5:0;switch(n){case s.TooltipType.top:return{d:"M0 0 l4 -4 h"+(a=(t+20-8-4)/2)+" a2 2 0 0 0 2 -2 v-18 a2 2 0 0 0 -2 -2 h"+-(t+20-4)+" a2 2 0 0 0 -2 2 v18 a2 2 0 0 0 2 2 h"+a+" Z",left:e,top:i-6+r,textX:0,textY:-15};case s.TooltipType.bot:var a;return{d:"M0 0 l4 4 h"+(a=(t+20-8-4)/2)+" a2 2 0 0 1 2 2 v18 a2 2 0 0 1 -2 2 h"+-(t+20-4)+" a2 2 0 0 1 -2 -2 v-18 a2 2 0 0 1 2 -2 h"+a+" Z",left:e,top:i+6-r,textX:0,textY:15};case s.TooltipType.right:return{d:"M0 0 l4 -4 v-5 a2 2 0 0 1 2 -2 h"+(c=t+20-4)+" a2 2 0 0 1 2 2 v18 a2 2 0 0 1 -2 2 h"+-c+" a2 2 0 0 1 -2 -2 v-5 Z",left:e+1,top:i,textX:c/2+6,textY:0};case s.TooltipType.left:return{d:"M0 0 l-4 -4 v-5 a2 2 0 0 0 -2 -2 h"+-(c=t+20-4)+" a2 2 0 0 0 -2 2 v18 a2 2 0 0 0 2 2 h"+c+" a2 2 0 0 0 2 -2 v-5 Z",left:e-1,top:i,textX:-c/2-6,textY:0};case s.TooltipType.simple:var c;return{d:"M0 0 v-4 a2 2 0 0 1 2 -2 h"+(c=t+20-4)+" a2 2 0 0 1 2 2 v18 a2 2 0 0 1 -2 2 h"+-c+" a2 2 0 0 1 -2 -2 v-6 Z",left:e-c/2-2,top:i-5,textX:c/2+2,textY:6}}}(r.getTextWidth(i,d),n,a,c||s.TooltipType.top,l)}else t={textX:0,textY:0,d:null,left:0,top:0};return o.el(".dhx_chart.tooltip-container",{style:{pointerEvents:"none",width:0,height:0,visibility:u?"visible":"hidden",position:"absolute",left:t.left+this._state.leftOffset+"px",top:t.top+this._state.topOffset+"px"}},u?[o.sv("svg",[o.sv("path",{d:t.d,class:"tooltip-form"}),o.sv("text",{x:t.textX,y:t.textY,class:"tooltip-text"},[r.verticalCenteredText(i)])])]:null)},e}(i(4).View);e.Tooltip=a},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(1),r=i(0),s=i(2),a=i(3),c=i(157),l=i(4),u=i(7),d=i(12),h=i(36),p=i(10),f=i(158),_=i(48),v=i(159),g=i(72),m=function(t){return t.icon?' '+t.value+"":t.src?'
'+t.value+"":''+t.value+""},y=function(t){function e(e,i){var n=t.call(this,e,o.extend({template:m,listHeight:224,cellHeight:32},i))||this;Array.isArray(n.config.data)?(n.events=new s.EventSystem(n),n.data=new u.DataCollection({},n.events),n.data.parse(n.config.data)):n.config.data?(n.data=n.config.data,n.events=n.data.events,n.events.context=n):(n.events=new s.EventSystem(n),n.data=new u.DataCollection({},n.events)),n.popup=new p.Popup,n.popup.events.on(p.PopupEvents.afterShow,function(){n.paint()}),n.popup.events.on(p.PopupEvents.afterHide,function(){n.paint()}),n.config.readonly&&(n._keyListener=new f.KeyListener),n._state={value:"",ignoreNext:!1,canDelete:!1,unselectActive:!1,currentState:g.ComboState.default},n._initHandlers(),n._createLayout(),n._initEvents();var a=r.create({render:function(){return n._draw()},hooks:{didRedraw:function(){n.popup.isVisible()&&(n.focus(),n._configurePopup())}}});return n.mount(e,a),n}return n(e,t),e.prototype.setState=function(t){switch(t){case"success":this._state.currentState=g.ComboState.success;break;case"error":this._state.currentState=g.ComboState.error;break;default:this._state.currentState=g.ComboState.default}this.paint()},e.prototype.focus=function(){if(this.config.disabled)return!1;this.getRootView().refs.input.el.focus()},e.prototype.enable=function(){this.config.disabled=!1,this.paint()},e.prototype.disable=function(){this.config.disabled=!0,this.paint()},e.prototype.clear=function(){if(this.config.disabled)return!1;this.list.selection.remove(),this._state.value="",this._filter(),this._change()},e.prototype.getValue=function(t){var e=this.list.selection.getId();return t?o.wrapBox(e):Array.isArray(e)?e.join(","):e},e.prototype.setValue=function(t){var e=this;if(this.config.disabled)return!1;if(this._filter(),this.list.selection.remove(),this._state.value="",this.config.multiselection)"string"==typeof t&&(t=t.split(",")),t.forEach(function(t){return e.list.selection.add(t)});else{var i=o.unwrapBox(t);this.list.selection.add(i);var n=this.data.getItem(i);n&&(this._state.value=this._getItemText(n))}this._change()},e.prototype.destructor=function(){this.popup.destructor(),this.events.clear(),this.list.destructor(),this._layout.config=null,this._layout.destructor(),this.unmount()},e.prototype._createLayout=function(){var t=this,e=this.list=new h.List(null,{template:this.config.template,virtual:this.config.virtual,keyNavigation:function(){return t.popup.isVisible()},itemHeight:this.config.cellHeight,height:this.config.listHeight,data:this.data});this.list.selection.events.on("change",function(e){t.config.multiselection||e&&"load"!==e&&t._hideOptions()}),this.config.multiselection&&(e.selection.config.multiselection=!0);var i=this._layout=new d.Layout(this.popup.getContainer(),{css:"dhx_combobox-options dhx_combobox__options",rows:[{id:"select-unselect-all",hidden:!this.config.multiselection||!this.config.selectAllButton},{id:"list",css:"dhx_layout-cell--gravity"},{id:"not-found",hidden:!0}],on:{click:{".dhx_combobox__action-select-all":this._handlers.selectAll}}});i.cell("list").attach(e),this.config.multiselection&&this.config.selectAllButton&&i.cell("select-unselect-all").attach(v.selectAllView)},e.prototype._change=function(){var t=this.list.selection.getId();this.events.fire(g.ComboboxEvents.change,[t]),this.paint()},e.prototype._initHandlers=function(){var t=this;this.config.help&&(this._helper=new p.Popup({css:"dhx_tooltip dhx_tooltip--forced dhx_tooltip--light"}),this._helper.attachHTML(this.config.help)),this._handlers={showHelper:function(e){e.preventDefault(),e.stopPropagation(),t._helper.show(e.target)},selectAll:function(){t.list.selection.remove(),t._state.unselectActive?(t.data.filter(),t.list.selection.getId().forEach(function(e){t.list.selection.remove(e)}),t.config.selectAllButton&&(t._layout.cell("select-unselect-all").attach(v.selectAllView),t._state.unselectActive=!1)):(t.data.filter(),t.list.selection.add(),t.config.selectAllButton&&(t._layout.cell("select-unselect-all").attach(v.unselectAllView),t._state.unselectActive=!0)),t._change()},onkeydown:function(e){if(t.popup.isVisible()||e.which!==c.KEY_CODES.DOWN_ARROW||t._showOptions(),t.popup.isVisible()&&e.which===c.KEY_CODES.ENTER)if(t.config.multiselection){var i=t.list.getFocusItem(),n=t.data.getItem(i);n&&(n.$selected?t.list.selection.remove(i):t.list.selection.add(i)),t._state.value="",t.data.filter(),t.paint()}else{var o=t.list.getFocusItem();t.list.selection.add(o),t._state.value=t._getItemText(t.data.getItem(o))||"",t._change(),t._hideOptions()}t.popup.isVisible()&&e.which===c.KEY_CODES.ESC&&t._hideOptions()},onkeyup:function(e){if(t.config.multiselection&&!t.config.showItemsCount)if(t._state.ignoreNext)t._state.ignoreNext=!1;else if(e.which===c.KEY_CODES.BACKSPACE&&t._state.canDelete&&t.list.selection.getId().length){var i=t.list.selection.getId(),n=i[i.length-1];t.list.selection.remove(n),t._change(),t.paint()}},oninput:function(e){if(!t.config.disabled){var i=e.target.value;t._state.value=i,t._filter(),i.length?t._state.canDelete=!1:(t._state.ignoreNext=!0,t._state.canDelete=!0),t.config.multiselection||(t.list.selection.remove(),t._change()),t.popup.isVisible()||t._showOptions()}},oninputclick:function(e){if(!t.config.disabled){if(t.focus(),e.target.classList.contains("dhx_combobox__action-remove")){var i=a.locate(e);if(!i)return;return t.list.selection.remove(i),void t._change()}if(e.target.classList.contains("dhx_combobox__action-clear-all"))return t.list.selection.getId().forEach(function(e){return t.list.selection.remove(e)}),t.config.selectAllButton&&t._state.unselectActive&&(t._layout.cell("select-unselect-all").attach(v.selectAllView),t._state.unselectActive=!1),void t.paint();e.preventDefault(),t.popup.isVisible()?t.focus():t._showOptions()}},toggleIcon:function(){t.focus(),t.popup.isVisible()?t._hideOptions():t._showOptions()}}},e.prototype._initEvents=function(){var t=this;this.list.events.on(h.ListEvents.click,function(e){if(t.config.multiselection)return t.data.getItem(e).$selected?t.config.selectAllButton&&!t._state.unselectActive&&t.data.getLength()===t.list.selection.getId().length&&(t._layout.cell("select-unselect-all").attach(v.unselectAllView),t._state.unselectActive=!0):t.config.selectAllButton&&t._state.unselectActive&&(t._layout.cell("select-unselect-all").attach(v.selectAllView),t._state.unselectActive=!1),t._state.value.length||(t._state.canDelete=!0),void t._change();t._state.value=t._getItemText(t.data.getItem(e))||"",t._change(),t._hideOptions()}),this.config.readonly&&this.popup.events.on(p.PopupEvents.afterShow,function(){if(t._state.value){var e=t.list.selection.getId();t.list.setFocusIndex(t.data.getIndex(e))}else t.list.setFocusIndex(0);t._keyListener.startNewListen(function(e){return t._findBest(e)})})},e.prototype._showOptions=function(){this._state.value.length&&(this._state.canDelete=!0),this._filter(),this._configurePopup()&&this.events.fire(g.ComboboxEvents.open)},e.prototype._configurePopup=function(){var t=this.getRootView();if(!t||!t.refs||!t.refs.holder)return!1;var e=t.refs.holder.el;return this.popup.getContainer().style.width=e.offsetWidth+"px",this.popup.show(e,{mode:a.Position.bottom}),!0},e.prototype._hideOptions=function(){this.config.readonly&&this._keyListener.endListen(),this.list.setFocusIndex(0),this.config.multiselection||this.config.readonly||this.list.selection.contains()||(this._state.value=""),this.popup.hide(),this.paint(),this.events.fire(g.ComboboxEvents.close)},e.prototype._filter=function(){var t=this;if(!this.config.readonly){if(this.data.filter(function(e){return t.config.filter?t.config.filter(e,t._state.value):o.isEqualString(t._state.value,t._getItemText(e))}),this.config.multiselection)this.list.setFocusIndex(0);else{var e=this.data.getIndex(this.list.selection.getId());this.list.setFocusIndex(e>-1?e:0)}0===this.data.getLength()?(this.config.multiselection&&this.config.selectAllButton&&this._layout.cell("select-unselect-all").hide(),this._layout.cell("list").hide(),this._layout.cell("not-found").attach(v.emptyListView),this._layout.cell("not-found").show()):(this.config.multiselection&&this.config.selectAllButton&&this._layout.cell("select-unselect-all").show(),this._layout.cell("not-found").isVisible()&&(this._layout.cell("list").show(),this._layout.cell("not-found").hide()))}},e.prototype._findBest=function(t){var e=this,i=this.data.find(function(i){return o.isEqualString(t,e._getItemText(i))});i&&this.list.selection.getId()!==i.id&&(this.list.setFocusIndex(this.data.getIndex(i.id)),this.list.selection.add(i.id),this.paint())},e.prototype._draw=function(){var t=this.config.multiselection?null:this.data.getItem(this.list.selection.getId()),e=!this.list.selection.getId()||0===this.list.selection.getId().length,i=this.config.labelInline&&this.config.labelWidth?this.config.labelWidth:"",n=this.config.required;return r.el(".dhx_widget.dhx_combobox"+(this.config.labelInline?".dhx_combobox--label-inline":"")+(this.config.hiddenLabel?".dhx_combobox--sr_only":"")+(this.config.required?".dhx_combobox--required":"")+(this.config.css?"."+this.config.css:""),{dhx_widget_id:this._uid,onkeydown:this._handlers.onkeydown,onkeyup:this._handlers.onkeyup},[this.config.label?r.el("label.dhx_label.dhx_combobox__label",{style:{minWidth:i,maxWidth:i},class:this.config.help?"dhx_label--with-help":"",onclick:this._handlers.oninputclick},this.config.help?[r.el("span.dhx_label__holder",this.config.label),r.el("span.dhx_label-help.dxi.dxi-help-circle-outline",{tabindex:"0",role:"button",onclick:this._handlers.showHelper})]:this.config.label):null,r.el("div.dhx_combobox-input-box"+(this.config.disabled?".dhx_combobox-input-box--disabled":"")+(this.config.readonly?".dhx_combobox-input-box--readonly":"")+(this._state.currentState===g.ComboState.error?".dhx_combobox-input-box--state_error":"")+(this._state.currentState===g.ComboState.success?".dhx_combobox-input-box--state_success":""),{_ref:"holder"},[r.el("div.dhx_combobox-input__icon",{onclick:this._handlers.toggleIcon},[r.el("span"+(this.popup.isVisible()?".dxi.dxi-menu-up":".dxi.dxi-menu-down"))]),r.el("div.dhx_combobox-input-list-wrapper",{onclick:this._handlers.oninputclick},[r.el("ul.dhx_combobox-input-list",this._drawSelectedItems().concat([r.el("li.dhx_combobox-input-list__item.dhx_combobox-input-list__item--input",[r.el("input.dhx_combobox-input",{oninput:this._handlers.oninput,_ref:"input",_key:this._uid,type:"text",placeHolder:e&&this.config.placeholder?this.config.placeholder:void 0,value:this.config.readonly&&t?this._getItemText(t):this._state.value,readOnly:this.config.readonly||this.config.disabled,required:n})])]))])])])},e.prototype._drawSelectedItems=function(){var t=this;if(!this.config.multiselection)return[];if(this.config.showItemsCount){var e=this.list.selection.getId().length;return e?[r.el("li.dhx_combobox-input-list__item.dhx_combobox-tag",[r.el("span.dhx_combobox-tag__value",function(t,e){return"function"==typeof e?e(t):t+" "+_.default.selectedItems}(e,this.config.showItemsCount)),r.el("button.dhx_button.dhx_combobox-tag__action.dhx_combobox__action-clear-all",[r.el("span.dhx_button__icon.dxi.dxi-close-circle")])])]:[]}return this.list.selection.getId().map(function(e){var i=t.data.getItem(e);return i?r.el("li.dhx_combobox-input-list__item.dhx_combobox-tag",{dhx_id:e},[t._drawImageOrIcon(i),r.el("span.dhx_combobox-tag__value",t._getItemText(i)),r.el("button.dhx_button.dhx_button--icon.dhx_combobox-tag__action.dhx_combobox__action-remove",{type:"button"},[r.el("span.dhx_button__icon.dxi.dxi-close-circle")])]):null})},e.prototype._drawImageOrIcon=function(t){return t.src?r.el("img.dhx_combobox-tag__image",{src:t.src}):t.icon?r.el("span.dhx_combobox-tag__icon",{class:t.icon}):null},e.prototype._getItemText=function(t){return t?t.value:null},e}(l.View);e.Combobox=y},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.KEY_CODES={BACKSPACE:8,ENTER:13,ESC:27,DOWN_ARROW:40}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(){var t=this;this._sequence="",document.addEventListener("keydown",function(e){if(t._isActive){var i=e.key;"Backspace"===i&&t._sequence.length>0&&(t._sequence=t._sequence.slice(0,t._sequence.length-1),t._change()),i.length<2&&(t._sequence+=i,t._change())}})}return t.prototype.startNewListen=function(t){this._isActive=!0,this._sequence="",this._currentAction=t},t.prototype.endListen=function(){this._currentAction=null,this.reset(),this._isActive=!1},t.prototype.reset=function(){this._sequence=""},t.prototype._change=function(){this._currentAction(this._sequence),this._addClearTimeout()},t.prototype._addClearTimeout=function(){var t=this;this._clearTimeout&&clearTimeout(this._clearTimeout),this._clearTimeout=setTimeout(function(){t.reset(),t._clearTimeout=null},2e3)},t}();e.KeyListener=n},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),o=i(48);e.selectAllView=function(){return n.el(".dhx_list-item.dhx_combobox-options__item.dhx_combobox-options__item--select-all.dhx_combobox__action-select-all",o.default.selectAll)},e.unselectAllView=function(){return n.el(".dhx_list-item.dhx_combobox-options__item.dhx_combobox-options__item--select-all.dhx_combobox__action-select-all",o.default.unselectAll)},e.emptyListView=function(){return n.el("ul.dhx_list",[n.el("li.dhx_list-item.dhx_combobox-options__item",{},o.default.notFound)])}},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(161)),n(i(49))},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;ie.offsetHeight,n=t.node.attrs.class.replace(" dhx_dataview--has-scroll",""),o=i?n+" dhx_dataview--has-scroll":n;t.node.patch({class:o})}}});return n.mount(e,l),n}return n(e,t),e.prototype.edit=function(t){this._edited=t,this.data.getItem(this._edited)&&this.events.fire(f.DataViewEvents.beforeEditStart,[t])?(this._getHotkeys(),this.paint(),this.events.fire(f.DataViewEvents.afterEditStart,[t])):this._edited=null},e.prototype.setFocusIndex=function(t){t<0?this._focusIndex=0:t>this.data.getLength()-1?this._focusIndex=this.data.getLength()-1:this._focusIndex=t;var e=this.getRootNode();if(e&&e.parentNode){var i=e.children[Math.floor(this._focusIndex/this.config.itemsInRow)];if(i){var n=i.children[this._focusIndex%this.config.itemsInRow],o=parseInt(this.config.gap.toString().replace("px",""),null);n.offsetTop>=e.clientHeight+e.scrollTop-n.clientHeight?e.scrollTop=n.offsetTop-e.clientHeight+n.clientHeight+o:n.offsetTop1?this.combobox.getValue(!0):this.combobox.getValue()||""},e.prototype.setValue=function(t){t&&this.combobox.setValue(t),this.paint()},e.prototype.validate=function(){var t=this.combobox.getValue(),e=this.config,i=e.validation,n=e.required;if(i){var o=this.config.validation(t);return this.config.$validationStatus=o?c.ValidationStatus.success:c.ValidationStatus.error,this._validationStatus(),this.paint(),o}return n?(this.config.$validationStatus=Boolean(t)?c.ValidationStatus.success:c.ValidationStatus.error,this._validationStatus(),this.paint(),Boolean(t)):(this.paint(),!0)},e.prototype.clearValidate=function(){this.config.$validationStatus=c.ValidationStatus.pre,this._validationStatus(),this.paint()},e.prototype._validationStatus=function(){switch(this.config.$validationStatus){case c.ValidationStatus.pre:this.combobox.config.css=this.config.css||"";break;case c.ValidationStatus.success:this.combobox.config.css=(this.config.css||"")+"dhx_form-group--state_success";break;case c.ValidationStatus.error:this.combobox.config.css=(this.config.css||"")+"dhx_form-group--state_error";break;default:this.combobox.config.css=this.config.css||""}},e.prototype._getRootView=function(){return this.combobox.paint(),this.combobox.getRootView()},e.prototype._draw=function(){var t=this.config,e=t.labelWidth,i=t.labelInline,n=t.$validationStatus;return o.el(".dhx_form-group",{},[o.inject(this._getRootView()),o.el("div",{style:{"margin-left":e&&i?"calc("+e+" + 16px)":""},class:1===n?"dhx_form-group--state_error":2===n?"dhx_form-group--state_success":""},[o.el("span.dhx_input-caption",r.getValidationMessage(this.config))])])},e}(a.Label);e.Combo=l},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(30),r=function(t){function e(e){var i=t.call(this,null,e)||this;return i.slider=new o.Slider(null,e),i.events=i.slider.events,i.config.value=i.slider.getValue(),i.slider.events.on("Change",function(){i.validate(),i.config.value=i.slider.getValue()}),i.disable(i.config.disabled),i}return n(e,t),e.prototype.clear=function(){this.config.value=[0],this.slider.setValue(this.config.value)},e.prototype.getValue=function(){return this.config.value},e.prototype.disable=function(t){t?this.slider.disable():this.slider.enable()},e.prototype.setValue=function(t){this.slider.setValue(t)},e.prototype.getRootView=function(){return this.slider.getRootView()},e.prototype.validate=function(){return!0},e}(i(16).Label);e.SliderForm=r},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;i0;return this.config.$validationStatus=t?f.ValidationStatus.success:f.ValidationStatus.error,this.paint(),t},e.prototype.clearValidate=function(){this.config.$validationStatus=f.ValidationStatus.pre,this.paint()},e.prototype.clear=function(){this.data.removeAll(),this.paint()},e.prototype.getValue=function(){return this.data.map(function(t){return t.file})||[]},e.prototype._draw=function(){var t=this,e=this.data.getLength()?r.el("ul.dhx_simplevault__files.dhx_simplevault-files",this.data.map(function(e){return r.el("li.dhx_simplevault-files__item",[r.el("span.dhx_simplevault-files__item-name",e.file.name),r.el(".dhx_button.dhx_simplevault-files__delete.dhx_button--icon.dhx_button--view_link.dhx_button--size_small.dhx_button--color_secondary.dhx_button--circle",{dhx_id:e.id,onclick:t._handlers.remove},[r.el("span.dxi.dxi-delete-forever")])])})):null,i=this.config,n=i.id,o=i.labelInline,s=i.label,a=i.labelWidth,c=i.help,l=i.disabled,u=i.required,d=i.validation,f=o&&a?a:"";return r.el(".dhx_form-group.dhx_form-group--simplevault",{class:h.getFormItemCss(this.config,Boolean(u)||Boolean(d))},[r.el("label.dhx_label",{for:n||this._uid,style:{minWidth:f,maxWidth:f},class:c?"dhx_label--with-help":""},c?[r.el("span.dhx_label__holder",s),r.el("span.dhx_label-help.dxi.dxi-help-circle-outline",{tabindex:"0",role:"button",onclick:this._handlers.showHelper})]:s),r.el(".dhx_input-wrapper",[r.el("div",{_hooks:{didInsert:function(e){t._uploader.linkDropArea(e.el)}},ondragover:this._handlers.ondragover,class:"dhx_simplevault"+(this._dragover?" dhx_simplevault--on-drag":"")},[r.el("div.dhx_simplevault-loader",[r.el("span.dhx_simplevault__icon.dxi.dxi-vault")]),r.el(".dhx_simplevault__drop-area",[r.el("input.dhx_simplevault__input",{type:"file",id:n,disabled:l}),r.el("span.dhx_simplevault__icon.dxi.dxi-vault"),r.el("span.dhx_simplevault__title",[r.el("span",p.default.simpleVaultText),r.el("br"),r.el("label.dhx_simplevault__label",{onclick:this._handlers.add,for:n}," "+p.default.simpleVaultLabel)])]),e]),h.getValidationMessage(this.config)&&r.el("span.dhx_input-caption",{},h.getValidationMessage(this.config))])])},e}(c.View);e.SimpleVault=_},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o,r=i(29),s=i(0),a=i(16),c=i(10),l=i(2),u=i(8),d=i(9);!function(t){t.change="change"}(o=e.TimeInputEvents||(e.TimeInputEvents={}));var h=function(t){function e(e,i){var n=t.call(this,null,i)||this;n.events=new l.EventSystem,n._popup=new c.Popup({css:"dhx_widget--border-shadow"}),n.timepicker=new r.Timepicker(null,i),n._popup.attach(n.timepicker);return n.mount(e,s.create({render:function(){return n._draw()}})),n.timepicker.events.on(r.TimepickerEvents.change,function(){n.config.value=n.timepicker.getValue(),n.validate()}),n.timepicker.events.on(r.TimepickerEvents.close,function(){n._popup.hide()}),n.timepicker.events.on(r.TimepickerEvents.save,function(){n._popup.hide()}),n.events.on(o.change,function(t){n.config.value=n._inputValidate(t),n.validate()}),n}return n(e,t),e.prototype.validate=function(){var t=!this.config.required||Boolean(this.config.value);return this.config.$validationStatus=t?u.ValidationStatus.success:u.ValidationStatus.error,this.paint(),t},e.prototype.clearValidate=function(){this.config.$validationStatus=u.ValidationStatus.pre,this.paint()},e.prototype.setValue=function(t){this.timepicker.setValue(t),this.paint()},e.prototype.getValue=function(){return this.config.value||""},e.prototype.clear=function(){12===this.config.timeFormat?this.timepicker.setValue("12:00AM"):this.timepicker.setValue("00:00"),this.config.value=""},e.prototype._getHandlers=function(){var t=this;return{onfocus:function(){if(!t._popup.isVisible()){var e=t.getRootView().refs.input.el;t._popup.show(e)}},onchange:function(e){var i=e.target.value;t.events.fire(o.change,[i])},onkeyup:function(e){13===e.keyCode&&(t._popup.isVisible()&&t._popup.hide(),t.getRootView().refs.input.el.blur())}}},e.prototype._inputValidate=function(t){var e=this.config.timeFormat;return d.isTimeFormat(t,e)?(this.timepicker.setValue(t),t):""},e.prototype._draw=function(){var t=this.config,e=t.value,i=t.required,n=t.disabled,o=t.placeholder,r=t.name,a=t.id,c=t.validation,l=t.editing,u=void 0!==l&&l;return s.el("div.dhx_form-group",{class:d.getFormItemCss(this.config,Boolean(i)||Boolean(c))},[this._drawLabel(),s.el(".dhx_input-wrapper",[s.el("div.dhx_input-container",{},[s.el(".dhx_input__icon.dxi.dxi-clock-outline"),s.el("input.dhx_input.dhx_input--icon-padding",{_key:this._uid,value:e,type:"text",_ref:"input",required:i,disabled:n,placeholder:o||"",name:r||"",id:a||this._uid,onfocus:this._handlers.onfocus,onchange:this._handlers.onchange,onkeyup:this._handlers.onkeyup,autocomplete:"off",readOnly:!u})]),d.getValidationMessage(this.config)&&s.el("span.dhx_input-caption",{},d.getValidationMessage(this.config))])])},e}(a.Label);e.TimeInput=h},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o,r=i(31),s=i(2),a=i(0),c=i(16),l=i(10),u=i(8),d=i(9);!function(t){t.change="change"}(o=e.ColorpickerInputEvents||(e.ColorpickerInputEvents={}));var h=function(t){function e(e,i){var n=t.call(this,null,i)||this;n.events=new s.EventSystem,n._popup=new l.Popup({css:"dhx_widget--border-shadow"}),n.colorpicker=new r.Colorpicker(null,i),n._popup.attach(n.colorpicker);return n.mount(e,a.create({render:function(){return n._draw()}})),n.colorpicker.events.on(r.ColorpickerEvents.colorChange,function(){n.config.value=n.colorpicker.getValue(),n._popup.hide(),n.validate()}),n.events.on(o.change,function(t){var e=n._inputValidate(t);n.setValue(e),n.validate()}),n}return n(e,t),e.prototype.validate=function(){var t=!this.config.required||Boolean(this.config.value);return this.config.$validationStatus=t?u.ValidationStatus.success:u.ValidationStatus.error,this.paint(),t},e.prototype.clearValidate=function(){this.config.$validationStatus=u.ValidationStatus.pre,this.paint()},e.prototype.setValue=function(t){this.config.value=t,this.colorpicker.setValue(t),this.paint()},e.prototype.getValue=function(){return this.config.value||""},e.prototype.clear=function(){this.config.value="",this.paint()},e.prototype._getHandlers=function(){var t=this;return{onfocus:function(){if(!t._popup.isVisible()){var e=t.getRootView().refs.input.el;t._popup.show(e)}},onchange:function(e){var i=e.target.value;t.events.fire(o.change,[i])},onkeyup:function(e){13===e.keyCode&&(t._popup.isVisible()&&t._popup.hide(),t.getRootView().refs.input.el.blur())}}},e.prototype._inputValidate=function(t){return r.isHex(t)?t:""},e.prototype._draw=function(){var t=this.config,e=t.required,i=t.value,n=t.icon,o=t.disabled,r=t.placeholder,s=t.name,c=t.id,l=t.editing,u=void 0!==l&&l;return a.el("div.dhx_form-group",{class:d.getFormItemCss(this.config,Boolean(e)||Boolean(this.config.validation))},[this._drawLabel(),a.el(".dhx_input-wrapper",[a.el("div.dhx_input-container",{},[a.el(".dhx_input__icon",{class:n||"dxi dxi-eyedropper-variant"+(i?" dhx_input__icon--color-selected":""),style:{"background-color":i||"transparent"}}),a.el("input.dhx_input.dhx_input--icon-padding",{_key:this._uid,value:i,type:"text",_ref:"input",required:e,disabled:o,placeholder:r||"",name:s||"",id:c||this._uid,onfocus:this._handlers.onfocus,onchange:this._handlers.onchange,onkeyup:this._handlers.onkeyup,autocomplete:"off",readOnly:!u})]),d.getValidationMessage(this.config)&&a.el("span.dhx_input-caption",{},d.getValidationMessage(this.config))])])},e}(c.Label);e.ColorpickerInput=h},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(180)),n(i(11)),n(i(52)),n(i(51)),n(i(20))},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;i=0&&(this._currentData[o].$css=i.$css),this.paint()}},e.prototype.removeRowCss=function(t,e){var i=this.data.getItem(t),n=i.$css?i.$css.replace(e,""):"";i.$css=n},e.prototype.addCellCss=function(t,e,i){var n=this._getColumn(e);n&&(n.$cellCss[t]?n.$cellCss[t]+=n.$cellCss[t].match(new RegExp(i,"g"))?"":" "+i:this.data.getItem(t)&&(n.$cellCss[t]=i+" "),this.paint())},e.prototype.removeCellCss=function(t,e,i){var n=this._getColumn(e);n&&(n.$cellCss[t]?(n.$cellCss[t]=n.$cellCss[t].replace(i,""),this.paint()):this.data.getItem(t)&&(n.$cellCss[t]=""))},e.prototype.getScrollState=function(){return{x:this._scroll.left,y:this._scroll.top}},e.prototype.scroll=function(t,e){var i=this.getRootView().refs.grid_body.el;i.scrollLeft="number"==typeof t?t:i.scrollLeft,i.scrollTop="number"==typeof e?e:i.scrollTop},e.prototype.scrollTo=function(t,e){var i=v.findIndex(this.config.columns,function(t){return t.id===e}),n=this.config.splitAt?this.config.columns.slice(0,this.config.splitAt).reduce(function(t,e){return t+e.width},0):0,o=this.config.columns.slice(0,i).reduce(function(t,e){return t+e.width},0)-n,r=this.data.getIndex(t)*this.config.rowHeight,s=this.getScrollState(),a=this.config.width+s.x,c=this.config.height+s.y-this.config.headerRowHeight*this.config.$headerLevel,l=r-s.y-this.config.rowHeight,u=o-s.x-this.config.columns[i].width,d=r+2*this.config.rowHeight+17-c,h=o+2*this.config.columns[i].width+17-a,p=l>0&&d<0?0:l<0?l:d,f=u>0&&h<0?0:u<0?u:h;this.scroll(f+s.x,p+s.y)},e.prototype.adjustColumnWidth=function(t){var e=v.findIndex(this.config.columns,function(e){return e.id===t}),i=this.config.columns[e];this.data.map(function(t){"string"!=typeof t[i.id]&&"number"!=typeof t[i.id]||(i.maxWidth=i.maxWidth||i.width,i.maxWidth=Math.max(h.getStrWidth(h.removeHTMLTags(t[i.id]))+20,i.maxWidth))}),this.config.$totalWidth=this.config.columns.reduce(function(t,e){return e.width=e.maxWidth||e.width,t+e.width},0),this.paint()},e.prototype.getCellRect=function(t,e){var i=v.findIndex(this.config.columns,function(t){return t.id===e}),n=this._getRowIndex(t);return{x:this.config.columns.slice(0,i).reduce(function(t,e){return t+e.width},0),y:n*this.config.rowHeight,height:this.config.rowHeight,width:this.config.columns[i].width}},e.prototype.getColumn=function(t){var e=v.findIndex(this.config.columns,function(e){return e.id===t});if(e>=0)return this.config.columns[e]},e.prototype.addSpan=function(t){this.config.spans=this.config.spans||[];var e=v.findIndex(this.config.spans,function(e){return""+e.row==""+t.row&&""+e.column==""+t.column});e>=0?this.config.spans[e]=t:this.config.spans.push(t)},e.prototype.getSpan=function(t,e){if(this.config.spans){var i=v.findIndex(this.config.spans,function(i){return""+i.row==""+t&&""+i.column==""+e});return this.config.spans[i]}},e.prototype.removeSpan=function(t,e){if(this.config.spans){var i=v.findIndex(this.config.spans,function(i){return""+i.row==""+t&&""+i.column==""+e});this.config.spans.splice(i,1)}},e.prototype.edit=function(t,e,i){void 0===i&&(i=f.EditorType.input);var n=this.data.getItem(t),o=this.getColumn(e);n&&void 0!==n[e]&&this.events.fire(f.GridEvents.beforeEditStart,[n,o,i])&&("date"===o.type&&(i=f.EditorType.datepicker),this.config.$editable={row:t,col:e,editorType:i},this.paint(),this.events.fire(f.GridEvents.afterEditStart,[n,o,i]))},e.prototype._parseColumns=function(){var t=this.config.columns;d.normalizeColumns(t),d.countColumns(this.config,t)},e.prototype._parseData=function(){this.data.getId(0)&&(this.config.columns.length&&this._checkColumns(),this._currentData=this.data.serialize()||[]),this._checkFilters(),this._checkMarks(),this._render()},e.prototype._checkColumns=function(){this._detectColsTypes()},e.prototype._createCollection=function(t){this.data=new l.DataCollection({prep:t},this.events)},e.prototype._getRowIndex=function(t){return this.data.getIndex(t)},e.prototype._setEventHandlers=function(){var t=this;this.data.events.on(l.DataEvents.load,function(){t._parseData(),t.data.events.fire(l.DataEvents.change)}),this.data.events.on(l.DataEvents.change,function(e,i,n){if("remove"!==i||!n.$empty){if(t._currentData=t.data.map(function(t){return t})||[],t._detectColsTypes(),t._checkMarks(),t.config.columnsAutoWidth&&("number"==typeof t.config.columnsAutoWidth?t._setAutoWidth(t.config.columnsAutoWidth):t._setAutoWidth()),t.config.autoEmptyRow){var o=t.data.find({by:"$empty",match:!0});!o||"add"===i&&n.$empty||t.data.remove(o.id),"add"===i&&n.$empty||t._addEmptyRow()}t._render()}}),this.data.events.on(l.DataEvents.removeAll,function(){t.config.columns.map(function(t){t.header.map(function(e){e.content&&"selectFilter"===e.content&&(t.$uniqueData=[])})})}),this.events.on(f.GridEvents.sort,function(e){e&&t._sort(e)}),this.events.on(f.GridEvents.headerInput,function(e,i,n){if(t.config.autoEmptyRow){var o=t.data.find({by:"$empty",match:!0});o&&t.data.remove(o.id)}t.data.filter({by:i,match:e,compare:t.content[n].match},{multiple:!0})}),this.events.on(f.GridEvents.scroll,function(e){t._scroll={top:e.y,left:e.x},t.paint()}),this.events.on(f.GridEvents.cellDblClick,function(e,i){(!1!==i.editing&&t.config.editing||i.editing)&&t.edit(e.id,i.id,i.editorType)}),this.events.on(f.GridEvents.afterEditEnd,function(e){var i,n=t.data.getItem(t.config.$editable.row);delete n.$empty,void 0!==e&&null!==e&&""!==e&&t.data.update(t.config.$editable.row,o({},n,((i={})[t.config.$editable.col]=e,i))),t.config.$editable=null,t._checkFilters(),t.paint()})},e.prototype._addEmptyRow=function(){var t=this.data.getId(this.data.getLength()-1),e=this.data.getItem(t);h.isRowEmpty(e)||this.data.add(this.config.columns.reduce(function(t,e){return t[e.id]="",t},{$empty:!0}))},e.prototype._sort=function(t,e){var i=this;e?this._sortDir=e:this._sortBy===t?this._sortDir="asc"===this._sortDir?"desc":"asc":this._sortDir="desc",this._sortBy=t,this.data.sort({by:t,dir:this._sortDir,as:function(e){return e&&"date"===i.getColumn(t).type?""+new Date(e).getTime():e?""+e:""}})},e.prototype._getColumn=function(t){for(var e=0,i=this.config.columns;en.length?n.forEach(function(t){-1===e.$uniqueData.indexOf(t)&&e.$uniqueData.push(t)}):e.$uniqueData=n}})})},e.prototype._render=function(){this.paint()},e}(c.View);e.Grid=m},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(20),o=function(){function t(t){this._view=t}return t.prototype.xlsx=function(t){return this._export(t)},t.prototype._export=function(t){void 0===t&&(t={});for(var e=this._view.config.columns,i={},o=n.transpose(this._view.config.columns.map(function(t){return t.header.map(function(t){return t.text||" "})})),r=[],s={default:{color:"#000000",background:"#FFFFFF",fontSize:14}},a=[],c={},l=this._view.data.serialize().map(function(t,o){return i[t.id]=o,e.map(function(e,i){return c[e.id]=i,n.removeHTMLTags(t[e.id])})}),u=0,d=e;um.height?r.getScrollbarWidth():0;v.$totalWidth=m.width-d-y;var x=v.columns.reduce(function(t,e){return t+e.width},0),b=v.$totalWidth/x;v.columns.map(function(t){t.width=b*t.width})}v.width=m.width,v.height=m.height;var w=function(t,e,i){var o=t.config,r=s.calculatePositions(i.width,i.height,t._scroll,o);return n({},o,{data:e,scroll:t._scroll,$positions:r,headerHeight:o.$headerLevel*o.headerRowHeight,footerHeight:o.$footerLevel*o.footerRowHeight,firstColId:o.columns[0].id,events:t.events,currentColumns:o.columns.slice(r.xStart,r.xEnd),sortBy:t._sortBy,sortDir:t._sortDir})}(e,i,m);w.selection=f,w.datacollection=e.data;var k=c.getShifts(w),C=a.isCssSupport("position","sticky"),E=function(t,e,i){var n=i.height-d;n=e?n:n-t.headerHeight;var o=t.$footer,s=t.$totalHeight+d=0&&a.getRows(n({},t,{currentColumns:t.columns.slice(0,t.splitAt),$positions:n({},t.$positions,{xStart:0,xEnd:t.splitAt})}),n({},e,{name:"header",position:"top"})),_=t.splitAt>=0&&a.getRows(n({},t,{currentColumns:t.columns.slice(0,t.splitAt),$positions:n({},t.$positions,{xStart:0,xEnd:t.splitAt})}),n({},e,{name:"footer",position:"bottom"})),v=f&&o.el(".dhx_"+h.name+"-fixed-cols",{style:{position:"absolute",top:0,left:0,zIndex:999999}},f),g=d?_&&o.el(".dhx_"+p.name+"-fixed-cols",{style:{position:"absolute",bottom:0,left:0,zIndex:999999}},_):null;return o.el(".dhx_grid-fixed-cols-wrap",{style:{height:c,paddingTop:t.headerHeight,overflow:"hidden",width:t.fixedColumnsWidth}},[v,o.el(".dhx_grid-fixed-cols",{style:{top:-t.scroll.top+t.headerHeight+"px",paddingTop:e.shifts.y,height:t.$totalHeight,position:"absolute"}},u),t.$footer&&g,o.el(".dhx_frozen-cols-border")])}}},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(190)),n(i(191));var o=i(15);e.ItemType=o.ItemType,e.NavigationBarEvents=o.NavigationBarEvents},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(3),r=i(15),s=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._isContextMenu=!0,e}return n(e,t),e.prototype.showAt=function(t,e){if(void 0===e&&(e="bottom"),t instanceof MouseEvent)this._changeActivePosition({left:window.pageXOffset+t.x+1,right:window.pageXOffset+t.x+1,top:window.pageYOffset+t.y,bottom:window.pageYOffset+t.y},e);else{var i=o.toNode(t);this._changeActivePosition(o.getRealPosition(i),e)}},e.prototype._getFactory=function(){return r.createFactory({widget:this,defaultType:r.ItemType.menuItem,allowedTypes:[r.ItemType.menuItem,r.ItemType.separator,r.ItemType.spacer],widgetName:"context-menu"})},e.prototype._close=function(){t.prototype._close.call(this),this._activeMenu=null,this._changeActivePosition(null,null)},e.prototype._getMode=function(t,e,i){return i?this._mode:"right"},e.prototype._changeActivePosition=function(t,e){this._activePosition=t,this._mode=e,this._listenOuterClick(),this.paint()},e}(r.Navbar);e.ContextMenu=s},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(0),r=i(15),s=function(t){function e(e,i){var n=t.call(this,e,i)||this;return n.mount(e,o.create({render:function(){return n._draw()}})),n}return n(e,t),e.prototype._getFactory=function(){return r.createFactory({widget:this,defaultType:r.ItemType.menuItem,allowedTypes:[r.ItemType.menuItem,r.ItemType.separator,r.ItemType.spacer],widgetName:"menu-nav"})},e.prototype._draw=function(){return o.el("ul",{dhx_widget_id:this._uid,onmousemove:this._handlers.onmousemove,onmouseleave:this._handlers.onmouseleave,onclick:this._handlers.onclick,onmousedown:this._handlers.onmousedown,class:"dhx_menu-nav "+(this.config.css?this.config.css:"")},this._drawMenuItems(this.data.getRoot(),!1))},e}(r.Navbar);e.Menu=s},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}(i(193))},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(0),r=i(27),s=i(15),a=i(1),c=i(3),l=i(19),u=function(t){function e(e,i){var n=t.call(this,e,a.extend({navigationType:"click"},i))||this;n._listeners={input:function(t){var e=c.locate(t);n.data.update(e,{value:t.target.value})},tooltip:function(t){var e=c.locateNode(t);if(e){var i=e.getAttribute("dhx_id"),o=n.data.getItem(i);o.tooltip&&l.tooltip(o.tooltip,{node:e,position:l.Position.bottom})}}},n._currentRoot=null;return n.mount(e,o.create({render:function(){return n._draw()}})),n}return n(e,t),e.prototype.getState=function(){var t={};for(var e in this.data.eachChild(this.data.getRoot(),function(e){e.twoState&&!e.group?t[e.id]=e.active:e.type!==r.ItemType.input&&e.type!==r.ItemType.selectButton||(t[e.id]=e.value)},!0),this._groups)this._groups[e].active&&(t[e]=this._groups[e].active);return t},e.prototype.setState=function(t){for(var e in t)if(this._groups&&this._groups[e])this._groups[e].active&&(this.data.update(this._groups[e].active,{active:!1}),this._groups[e].active=t[e],this.data.update(t[e],{active:!0}));else{var i=this.data.getItem(e);i.type===r.ItemType.input||i.type===r.ItemType.selectButton?this.data.update(e,{value:t[e]}):this.data.update(e,{active:t[e]})}},e.prototype._getFactory=function(){return s.createFactory({widget:this,defaultType:r.ItemType.navItem,allowedTypes:[r.ItemType.navItem,r.ItemType.button,r.ItemType.customHTMLButton,r.ItemType.imageButton,r.ItemType.input,r.ItemType.selectButton,r.ItemType.separator,r.ItemType.spacer,r.ItemType.title],widgetName:"ribbon"})},e.prototype._getMode=function(t,e){return t.id===e?"bottom":"right"},e.prototype._close=function(){this._activePosition=null,this._currentRoot=null,t.prototype._close.call(this)},e.prototype._draw=function(){var t=this;return o.el("ul.dhx_ribbon.dhx_widget",{dhx_widget_id:this._uid,class:this.config.css?this.config.css:"",tabindex:0,onclick:this._handlers.onclick,onmousedown:this._handlers.onmousedown,oninput:this._listeners.input,onmouseover:this._listeners.tooltip,_hooks:{didInsert:function(e){e.el.addEventListener("keyup",function(e){if(9===e.which){var i=c.locateNode(document.activeElement);if(i){var n=i.getAttribute("dhx_id"),o=t.data.getItem(n);o.tooltip&&l.tooltip(o.tooltip,{node:i,position:l.Position.bottom,force:!0})}}},!0)}}},[o.el("li",{class:"dhx_ribbon-block dhx_ribbon-block--root"},[o.el("ul.dhx_ribbon-content.dhx_ribbon-content--full-width",this.data.map(function(e){return"block"===e.type?t._drawBlock(e,!0):t._factory(e)},this.data.getRoot(),!1))])])},e.prototype._setRoot=function(t){var e=this.data.getParent(t);this.data.getItem(e).type===r.ItemType.block&&(this._currentRoot=t)},e.prototype._drawBlock=function(t,e){var i=this;if(!t||t.hidden)return null;var n="dhx_ribbon-block dhx_ribbon-block"+("col"===t.direction?"--col":"--row")+(t.title?" dhx_ribbon-block--title":"")+(t.css?" "+t.css:"")+(e?" dhx_ribbon-block--indented":""),s=this.data.map(function(t){return t.type===r.ItemType.block?i._drawBlock(t):t.type!==r.ItemType.separator&&t.type!==r.ItemType.spacer?i._factory(t):null},t.id,!1);return o.el("li",{class:n},[o.el("ul.dhx_ribbon-content",s),t.title?o.el("span.dhx_ribbon-content-label-wrapper",[o.el("span.dhx_ribbon-content-label",t.title)]):null])},e}(s.Navbar);e.Ribbon=u},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(195)),n(i(77))},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(0),r=i(3),s=i(77),a=i(19),c=i(15),l=i(1),u=function(t){function e(e,i){var n=t.call(this,e,l.extend({navigationType:"click",width:"200",minWidth:"44",collapsed:!1},i))||this;n._currentRoot=null;return n.mount(e,o.create({render:function(){return n._draw()}})),n}return n(e,t),e.prototype.toggle=function(){this.config.collapsed=!this.config.collapsed,this.events.fire(s.SidebarEvents.toggle,[this.config.collapsed]),this.paint()},e.prototype.isCollapsed=function(){return this.config.collapsed},e.prototype._getFactory=function(){return c.createFactory({widget:this,defaultType:c.ItemType.navItem,allowedTypes:[c.ItemType.navItem,c.ItemType.menuItem,c.ItemType.customHTMLButton,c.ItemType.separator,c.ItemType.spacer,c.ItemType.title],widgetName:"sidebar"})},e.prototype._close=function(){this._activePosition=null,this._currentRoot=null,t.prototype._close.call(this)},e.prototype._setRoot=function(t){this.data.getParent(t)===this.data.getRoot()&&(this._currentRoot=t)},e.prototype._customHandlers=function(){var t=this;return{tooltip:function(e){var i=r.locateNode(e);if(i){var n=i.getAttribute("dhx_id"),o=t.data.getItem(n);(o.tooltip||t.config.collapsed&&o.value)&&a.tooltip(o.tooltip||o.value,{node:i,position:a.Position.right})}}}},e.prototype._draw=function(){var t=this,e=this.config,i=e.width,n=e.minWidth,s=this.config.collapsed?n:i;return o.el("nav.dhx_widget.dhx_sidebar",{class:(this.config.css?this.config.css:"")+(this.config.collapsed?" dhx_sidebar--minimized":""),style:{width:s+"px"}},[o.el("ul.dhx_navbar.dhx_navbar--vertical",{dhx_widget_id:this._uid,tabindex:0,onclick:this._handlers.onclick,onmousedown:this._handlers.onmousedown,oninput:this._handlers.input,onmouseover:this._handlers.tooltip,_hooks:{didInsert:function(e){e.el.addEventListener("keyup",function(e){if(9===e.which){var i=r.locateNode(document.activeElement);if(i){var n=i.getAttribute("dhx_id"),o=t.data.getItem(n);(o.tooltip||t.config.collapsed&&o.value)&&a.tooltip(o.tooltip||o.value,{node:i,position:a.Position.right,force:!0})}}},!0)}}},this.data.map(function(e){return t._factory(e)},this.data.getRoot(),!1))])},e.prototype._getMode=function(){return"right"},e.prototype._customInitEvents=function(){var t=this;this.events.on(c.NavigationBarEvents.inputFocus,function(){t.config.collapsed&&(t._waitRestore=!0,t.toggle())}),this.events.on(c.NavigationBarEvents.inputBlur,function(){t._waitRestore&&(t.toggle(),t._waitRestore=!1)})},e}(c.Navbar);e.Sidebar=u},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(197)),n(i(78))},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;i'+(e.text||e.value)+""}),this.events.on(d.DragEvents.canDrop,function(e,i){var n;n=t.config.dropBehaviour===d.DropBehaviour.complex?i===d.DropPosition.top?"dhx_tree-drop--top":i===d.DropPosition.bot?"dhx_tree-drop--bottom":"dhx_tree-drop--in-folder":t.config.dropBehaviour===d.DropBehaviour.child?"dhx_tree-drop--in-folder":"dhx_tree-drop--bottom",t.data.exists(e)&&t.data.update(e,{$drophere:n})}),this.events.on(d.DragEvents.cancelDrop,function(e){t.data.exists(e)&&t.data.update(e,{$drophere:null})}),this.events.on(d.DragEvents.dropComplete,function(e,i){(t.config.dropBehaviour===d.DropBehaviour.child||t.config.dropBehaviour===d.DropBehaviour.complex&&i===d.DropPosition.in)&&t.open(e)}),this.events.on(d.DragEvents.dragStart,function(){t._isSelectionActive=!1,t.paint()}),this.events.on(d.DragEvents.dragEnd,function(){t._isSelectionActive=!0,t.paint()}),this.events.on(l.SelectionEvents.afterSelect,function(e){return t._focusId=e}),this.config.editing&&this.events.on(f.TreeEvents.itemDblClick,function(e){return t.editItem(e)})},e.prototype._initHandlers=function(){var t=this;this._handlers={onmouseleave:function(t){d.dragManager._cancelCanDrop()},onclick:function(e){var i=c.locate(e);i&&(e.target.classList.contains("dhx_tree-toggle-button")?t.toggle(i):e.target.classList.contains("dhx_tree-checkbox")?t.data.getItem(i).$mark===f.SelectStatus.unselected?t.checkItem(i):t.unCheckItem(i):(t.events.fire(f.TreeEvents.itemClick,[i,e]),t.data.exists(i)&&t.selection.add(i)))},ondblclick:function(e){var i=c.locate(e);t.events.fire(f.TreeEvents.itemDblClick,[i,e])},ondragstart:function(t){t.preventDefault()},onmousedown:function(e){t.config.dragMode&&t.config.dragMode!==d.DragMode.target&&d.dragManager.onMouseDown(e)},oncontextmenu:function(e){var i=c.locate(e);i&&t.events.fire(f.TreeEvents.itemContextMenu,[i,e])}}},e.prototype._drawItems=function(t,e){var i=this;return void 0===e&&(e=0),this.data.map(function(t){if(t){var n,r,a,c=!!i.config.isFolder&&i.config.isFolder(t);if((t.$autoload||i.data.haveItems(t.id))&&(c=!0,n=s.el("div",{class:"dxi dxi-menu-right dhx_tree-toggle-button"},""),t.opened&&(n=s.el("div",{class:"dxi dxi-menu-down dhx_tree-toggle-button dhx_tree-toggle-button--open"},""),r=i._drawItems(t.id,e+1))),t.checkbox){var l=t.$mark===f.SelectStatus.indeterminate?"dxi-minus-box":t.$mark===f.SelectStatus.selected?"dxi-checkbox-marked":"dxi-checkbox-blank-outline";a=s.el("div",{class:"dhx_tree-checkbox dxi "+l})}var u,d=g(c,t.opened),h=(t.icon||i.config.icon)[d]||i.config.icon[d];return u=t.$edit?i._editor.edit(i._uid,o({item:t},t.$editConfig)):s.el("span",{class:"dhx_tree-list-item__text"},t.text||t.value),c?s.el("li",{class:"dhx_tree-list-item dhx_tree-list-item--parent"+(t.css?" "+t.css:""),dhx_id:t.id,_key:t.id},[s.el("div.dhx_tree-folder",{class:(t.id===i._focusId?" dhx_tree-folder--focused":"")+(t.$selected?" dhx_tree-folder--selected":"")+(t.$drophere?" "+t.$drophere:""),style:{left:-_(e)+"px",right:-_(e)+"px","margin-left":_(e)+"px"}},[n,s.el("div.dhx_tree-list-item__content",[a,s.el("div",{class:"dhx_tree-list-item__icon "+h}),u])]),r&&s.el("ul.dhx_tree-list",r)]):s.el("li",{class:"dhx_tree-list__item dhx_tree-list-item"+(t.id===i._focusId?" dhx_tree-list-item--focused":"")+(t.$selected?" dhx_tree-list-item--selected":"")+(t.$drophere?" "+t.$drophere:"")+(c?"dhx_tree-list-item--folder":""),style:{left:-_(e)+"px",right:-_(e)+"px","margin-left":_(e)+"px"},dhx_id:t.id,level:e},[n,s.el("div",{class:"dhx_tree-list-item__content"},[a,s.el("div",{class:"dhx_tree-list-item__icon "+h}),u])])}},t,!1)},e.prototype._updateItemCheck=function(t,e){this.data.update(t,{$mark:e}),this.data.eachChild(t,function(t){return t.$mark=e}),this._updateParents(t)},e.prototype._updateParents=function(t,e){var i=this;void 0===e&&(e=!1),t!==this._root&&this.data.eachParent(t,function(t){var e=0,n=0;i.data.eachChild(t.id,function(t){if(t.checkbox)switch(t.$mark){case f.SelectStatus.unselected:n++;break;case f.SelectStatus.selected:e++}},!0),t.$mark=0!==e&&0!==n?f.SelectStatus.indeterminate:0===e&&0!==n?f.SelectStatus.unselected:f.SelectStatus.selected},e)},e}(u.View);function g(t,e){return t?e?f.ItemIcon.openFolder:f.ItemIcon.folder:f.ItemIcon.file}e.Tree=v},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(1),o=i(3),r=i(13),s=function(){function t(){this._store={},this._keyManager=r.keyManager,this._listen=!1,this._blocked=!1}return t.prototype.add=function(t,e){this._listen||(this._listen=!0,this._initKeys(),this._addListeners()),this._store[t]=e},t.prototype.block=function(t){this._blocked=t},t.prototype._initKeys=function(){var t=this;this._keyManager.addHotKey("arrowleft",function(e){if(!t._blocked){e.preventDefault();var i=t._store[t._activeTarget];if(i){var n=t._getFocused(),o=i.data.getParent(n);if(i.data.getRoot()!==o)!i.data.getItem(n).opened?i.focusItem(o):n!==i.data.getRoot()&&i.close(n);else i.close(n)}}}),this._keyManager.addHotKey("arrowright",function(e){if(!t._blocked){e.preventDefault();var i=t._store[t._activeTarget];if(i){var n=t._getFocused();i.data.haveItems(n)&&i.open(n)}}}),this._keyManager.addHotKey("arrowup",function(e){if(!t._blocked){e.preventDefault();var i=t._store[t._activeTarget];if(i){var n=t._getFocused(),o=i.data,r=t._getClosestTop(n,o);r&&i.focusItem(r)}}}),this._keyManager.addHotKey("arrowdown",function(e){if(!t._blocked){e.preventDefault();var i=t._store[t._activeTarget];if(i){var n=t._getFocused(),o=i.data,r=t._getClosestBot(n,o);r&&i.focusItem(r)}}}),this._keyManager.addHotKey("enter",function(){if(!t._blocked){var e=t._store[t._activeTarget];if(e){var i=t._getFocused();i&&e.selection.add(i)}}})},t.prototype._getFocused=function(){var t=this._store[this._activeTarget],e=t._focusId;if(e)return e;var i=t.data.getRoot();return t.data.getItems(i)[0].id},t.prototype._addListeners=function(){var t=this;document.addEventListener("click",function(e){var i=o.locate(e,"dhx_widget_id");i in t._store&&(t._activeTarget=i)}),r.keyManager.addHotKey("tab",function(e){var i=o.locate(e,"dhx_widget_id");i in t._store&&(t._activeTarget=i)},this)},t.prototype._getClosestBot=function(t,e,i){void 0===i&&(i=!1);var o=e.getItem(t);if(e.haveItems(t)&&o.opened&&!i)return e.getItems(t)[0].id;var r=e.getParent(t),s=e.getItems(r),a=n.findIndex(s,function(e){return e.id===t});return a+10){var o=e.getItems(n)[i-1];if(!e.haveItems(o.id)||!o.opened)return o.id;for(;e.haveItems(o.id)&&o.opened;){var r=e.getItems(o.id);o=r[r.length-1]}return o.id}return n===e.getRoot()?null:n},t}();e.keyNavigation=new s},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}(i(202))},function(t,e,i){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});var n=i(1),o=i(0),r=i(2),s=i(13),a=i(12),c=i(27),l=i(203),u=i(204);function d(e){return new t(function(t){var i=setTimeout(function(){n()},1e3),n=function(){document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",n),t(!1)},o=function(r){(Math.abs(r.pageX-e.pageX)>4||Math.abs(r.pageY-e.pageY)>4)&&(document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",n),clearTimeout(i),t({x:e.pageX,y:e.pageY}))};document.addEventListener("mousemove",o),document.addEventListener("mouseup",n)})}var h=function(){function t(t){this.config=n.extend({movable:!1,resizable:!1,header:!1,closable:t.modal,minWidth:100,minHeight:100},t),this._uid=n.uid(),this.events=new r.EventSystem(this);var e=this._popup=document.createElement("div");e.className="dhx_popup dhx_widget dhx_popup--window"+(this.config.modal?" dhx_popup--window_modal":""),e.tabIndex=1,e.style.position="absolute",this.config.modal||u.default.add(this._uid,this._popup),this._isActive=!1,this._initHandlers(),this._initUI(),this.config.html&&this.attachHTML(this.config.html)}return t.prototype.paint=function(){this._layout.paint()},t.prototype.fullScreen=function(){this.setSize(window.innerWidth,window.innerHeight),this.setPosition(window.pageXOffset,window.pageYOffset)},t.prototype.setSize=function(t,e){var i={width:this._popup.offsetWidth,height:this._popup.offsetHeight},o={width:i.width,height:i.height};n.isDefined(t)&&(o.width=t),n.isDefined(e)&&(o.height=e),this._popup.style.width=o.width+"px",this._popup.style.height=o.height+"px",this.events.fire(l.WindowEvents.resize,[o,i,{left:!0,top:!0,bottom:!0,right:!0}])},t.prototype.getSize=function(){return{width:this._popup.offsetWidth,height:this._popup.offsetHeight}},t.prototype.setPosition=function(t,e){var i={left:this._popup.offsetLeft,top:this._popup.offsetTop},o={left:i.left,top:i.top};n.isDefined(t)&&(this.config.left=o.left=t),n.isDefined(e)&&(this.config.top=o.top=e),this._popup.style.left=o.left+"px",this._popup.style.top=o.top+"px",this.events.fire(l.WindowEvents.resize,[o,i,{left:!0,top:!0,bottom:!0,right:!0}])},t.prototype.getPosition=function(){return{left:this._popup.offsetLeft,top:this._popup.offsetTop}},t.prototype.show=function(t,e){if(void 0===t&&(t=this.config.left),void 0===e&&(e=this.config.top),this.events.fire(l.WindowEvents.beforeShow,[t,e])){var i=this.config.height=this.config.height||this.config.minHeight||window.innerHeight/2,o=this.config.width=this.config.width||this.config.minWidth||window.innerWidth/2;if(this.config.left=t=n.isDefined(t)?t:(window.innerWidth-o)/2+window.pageXOffset,this.config.top=e=n.isDefined(e)?e:(window.innerHeight-i)/2+window.pageYOffset,this._isActive)return this._popup.style.left=t+"px",void(this._popup.style.top=e+"px");this.config.viewportOverflow&&u.default.openFreeWindow(),this.config.modal&&this._blockScreen(),this._popup.style.width=o+"px",this._popup.style.height=i+"px",this._popup.style.left=t+"px",this._popup.style.top=e+"px",document.body.appendChild(this._popup),this._popup.focus(),this._isActive=!0,this.events.fire(l.WindowEvents.afterShow,[])}},t.prototype.hide=function(){this._isActive&&this.events.fire(l.WindowEvents.beforeHide,[])&&(this.config.viewportOverflow&&u.default.closeFreeWindow(),this._blocker&&(document.body.removeChild(this._blocker),this.config.closable&&s.keyManager.removeHotKey(null,this),this._blocker=null),document.body.removeChild(this._popup),this._isActive=!1,this.events.fire(l.WindowEvents.afterHide,[]))},t.prototype.isVisible=function(){return this._isActive},t.prototype.attach=function(t,e){this._layout.cell("content").attach(t,e)},t.prototype.attachHTML=function(t){this._layout.cell("content").attach(function(){return o.el(".dhx_window__inner-html-content",{".innerHTML":t})})},t.prototype.getRootView=function(){return this._layout.getRootView()},t.prototype.destructor=function(){this._isActive&&this.hide(),this.header&&this.header.destructor(),this.footer&&this.footer.destructor(),this._layout.destructor(),this._popup=null},t.prototype._initHandlers=function(){var t=this;this._handlers={headerDblClick:function(){return t.events.fire(l.WindowEvents.headerDoubleClick,[])},move:function(e){3!==e.which&&(e.preventDefault(),u.default.setActive(t._uid),d(e).then(function(e){e&&t._startDrag(e.x,e.y)}))},resize:{".dhx_window-resizer":function(e){3!==e.which&&(e.preventDefault(),u.default.setActive(t._uid),d(e).then(function(i){if(i){var n=e.target.classList;n.contains("dhx_window-resizer--left")?t._startResize({left:!0}):n.contains("dhx_window-resizer--right")?t._startResize({right:!0}):n.contains("dhx_window-resizer--top")?t._startResize({top:!0}):n.contains("dhx_window-resizer--bottom")?t._startResize({bottom:!0}):n.contains("dhx_window-resizer--bottom_left")?t._startResize({left:!0,bottom:!0}):n.contains("dhx_window-resizer--bottom_right")?t._startResize({bottom:!0,right:!0}):n.contains("dhx_window-resizer--top_left")?t._startResize({top:!0,left:!0}):n.contains("dhx_window-resizer--top_right")&&t._startResize({top:!0,right:!0})}}))}},setActive:function(){u.default.setActive(t._uid)}}},t.prototype._initUI=function(){var t=this,e=[],i=this.config.header||this.config.title||this.config.closable;i&&e.push({id:"header",gravity:!1,css:"dhx_window-header "+(this.config.movable?"dhx_window-header--movable":""),on:{mousedown:this.config.movable&&this._handlers.move,dblclick:this._handlers.headerDblClick}}),e.push({id:"content",css:i?"dhx_window-content":"dhx_window-content-without-header"}),this.config.footer&&e.push({id:"footer",gravity:!1,css:"dhx_window-footer"}),this.config.resizable&&e.push({id:"resizers",gravity:!1,css:"resizers"});var n=this._layout=new a.Layout(this._popup,{css:"dhx_window"+(this.config.modal?" dhx_window--modal":"")+(this.config.css?" "+this.config.css:""),rows:e,on:{click:this._handlers.setActive}});if(i){var o=this.header=new c.Toolbar;this.config.title&&this.header.data.add({type:c.ItemType.title,value:this.config.title,id:"title"}),this.config.closable&&(this.header.data.add({type:c.ItemType.spacer}),this.header.data.add({id:"close",type:c.ItemType.button,view:"link",size:"medium",color:"secondary",circle:!0,icon:"dxi dxi-close"}),o.events.on(c.NavigationBarEvents.click,function(e){"close"===e&&t.hide()})),n.cell("header").attach(o)}if(this.config.footer){var r=this.footer=new c.Toolbar;n.cell("footer").attach(r)}this.config.resizable&&n.cell("resizers").attach(function(){return t._drawResizers()})},t.prototype._drawResizers=function(){return o.el(".dhx-resizers",{onmousedown:this._handlers.resize},[o.el(".dhx_window-resizer.dhx_window-resizer--left"),o.el(".dhx_window-resizer.dhx_window-resizer--right"),o.el(".dhx_window-resizer.dhx_window-resizer--bottom"),o.el(".dhx_window-resizer.dhx_window-resizer--top"),o.el(".dhx_window-resizer.dhx_window-resizer--bottom_right"),o.el(".dhx_window-resizer.dhx_window-resizer--bottom_left"),o.el(".dhx_window-resizer.dhx_window-resizer--top_right"),o.el(".dhx_window-resizer.dhx_window-resizer--top_left")])},t.prototype._startDrag=function(t,e){var i=this;document.body.classList.add("dhx_window--stop_selection");var n=t-this._popup.offsetLeft,o=e-this._popup.offsetTop,r=this._popup.offsetWidth,s=this._popup.offsetHeight,a=function(t){var e={left:i._popup.offsetLeft,top:i._popup.offsetTop},a=window.pageXOffset,c=window.pageYOffset,u=t.pageX-n,d=t.pageY-o;i.config.viewportOverflow||(ua+window.innerWidth-r&&(u=a+window.innerWidth-r),dc+window.innerHeight-s&&(d=c+window.innerHeight-s)),i.config.left=u,i.config.top=d,i._popup.style.left=u+"px",i._popup.style.top=d+"px";var h={left:u,top:d};i.events.fire(l.WindowEvents.move,[h,e,{left:!0,top:!0,bottom:!0,right:!0}])},c=function(){document.removeEventListener("mouseup",c),document.removeEventListener("mousemove",a),document.body.classList.remove("dhx_window--stop_selection")};document.addEventListener("mouseup",c),document.addEventListener("mousemove",a)},t.prototype._startResize=function(t){var e,i=this,n=this.config.minWidth,o=this.config.minHeight,r=this._popup.offsetLeft,s=this._popup.offsetTop,a=this._popup.offsetWidth,c=this._popup.offsetHeight;switch(!0){case t.bottom&&t.left:e="dhx_window-body-pointer--bottom_left";break;case t.bottom&&t.right:e="dhx_window-body-pointer--bottom_right";break;case t.top&&t.left:e="dhx_window-body-pointer--top_left";break;case t.top&&t.right:e="dhx_window-body-pointer--top-right";break;case t.top:e="dhx_window-body-pointer--top";break;case t.bottom:e="dhx_window-body-pointer--bottom";break;case t.left:e="dhx_window-body-pointer--left";break;case t.right:e="dhx_window-body-pointer--right"}document.body.classList.add("dhx_window--stop_selection"),document.body.classList.add(e);var u=function(e){var u={width:e.pageX-r,height:e.pageY-s,left:e.pageX,top:e.pageY};t.right&&(u.widthwindow.pageXOffset+window.innerWidth-r&&(u.width=window.pageXOffset+window.innerWidth-r),i._popup.style.width=u.width+"px"),t.bottom&&(u.heightwindow.pageYOffset+window.innerHeight-s&&(u.height=window.pageYOffset+window.innerHeight-s),i._popup.style.height=u.height+"px"),t.left&&(r+a-u.left0&&i[n-1].type===e?(i[n-1].body+=o.body,i.splice(n--,1)):A(o,t,n,null):A(o,t,n,null))}}(t)}}var R={animationIterationCount:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridColumn:!0,order:!0,lineClamp:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0};function F(t,e){return isNaN(e)||R[t]?e:e+"px"}function B(t,e){var i=(t.attrs||a).style,n=e?(e.attrs||a).style:null;if(null==i||f(i))t.el.style.cssText=i;else{for(var o in i){var r=i[o];(null==n||null!=r&&r!==n[o])&&(t.el.style[o]=F(o,r))}if(n)for(var s in n)null==i[s]&&(t.el.style[s]="")}}var z=[];function N(t,e,i,n,o){if(null!=t){var r=i.hooks[e];if(r){if("d"!==e[0]||"i"!==e[1]||"d"!==e[2])return r(i,n);o?k(i.parent)&&r(i,n):z.push([r,i,n])}}}function $(t){var e;if(z.length)for(k(t.node);e=z.shift();)e[0](e[1],e[2])}var W=r?document:null;function U(t){return t.nextSibling}function G(t,e,i){var n=e._node,o=n.vm;if(l(n.body))if((n.flags&P)===P)for(var r=0;r>1]===t)return i;e[i]0&&(n[r]=o[e-1]),o[e]=r)}}for(e=o.length,i=o[e-1];e-- >0;)o[e]=i,i=n[i];return o}(r).map(function(t){return r[t]}),l=0;lu&&(y=null,_=!1):w=!0,u>100&&w&&++x%10==0))for(;k1){var r=1;d(n[1])&&(i=n[1],r=2),e=o===r+1&&(f(n[r])||l(n[r])||i&&(i._flags&j)===j)?n[r]:v(n,r)}return H(t,i,e)}return M.patch=function(t,e){!function(t,e,i){if(null!=e.type){if(null!=t.vm)return;A(e,t.parent,t.idx,null),t.parent.body[t.idx]=e,xt(e,t),i&&k(e),$(S(e))}else{var n=Object.create(t);n.attrs=_({},t.attrs);var o=_(t.attrs,e);if(null!=t._class){var r=o.class;o.class=null!=r&&""!==r?t._class+" "+r:t._class}st(t,n),i&&k(t)}}(this,t,e)},kt.emit=function(t){var e=this,i=e,n=v(arguments,1).concat(i,i.data);do{var o=e.onemit,r=o?o[t]:null;if(r){r.apply(e,n);break}}while(e=e.parent());Z[t]&&Z[t].apply(e,n)},kt.onemit=null,kt.body=function(){return function t(e,i){var n=e.body;if(l(n))for(var o=0;o=a&&l<=a+t.length-1?(c.push(t[u]),u++):c.push({$empty:!0});t=c}return this._parent.getInitialData()&&this._parent.removeAll(),this._parent.$parse(t),t},e.prototype.save=function(e){for(var i=this,n=function(n){if(n.saving||n.pending)o.dhxWarning("item is saving");else{var s=r._findPrevState(n.id);if(s&&s.saving){var a=new t(function(t,r){s.promise.then(function(){n.pending=!1,t(i._setPromise(n,e))}).catch(function(t){i._removeFromOrder(s),i._setPromise(n,e),o.dhxWarning(t),r(t)})});r._addToChain(a),n.pending=!0}else r._setPromise(n,e)}},r=this,s=0,a=this._changes.order;s\n";for(var s in t)Array.isArray(t[s])?(i+=o(e+n)+"<"+s+">\n",i+=t[s].map(function(t){return r(t,e+2*n)}).join("\n")+"\n",i+=o(e+n)+""+s+">\n"):i+=o(e+n)+"<"+s+">"+t[s]+""+s+">\n";return i+=o(e)+""}e.jsonToXML=function(t,e){void 0===e&&(e="root");for(var i='\n<'+e+">",n=0;n"}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(16),o=function(){function t(){}return t.prototype.sort=function(t,e){var i=this;e.rule&&"function"==typeof e.rule?this._sort(t,e):e.by&&(e.rule=function(t,o){var r=i._checkVal(e.as,t[e.by]),s=i._checkVal(e.as,o[e.by]);return n.naturalCompare(r.toString(),s.toString())},this._sort(t,e))},t.prototype._checkVal=function(t,e){return t?t.call(this,e):e},t.prototype._sort=function(t,e){var i=this,n={asc:1,desc:-1};return t.sort(function(t,o){return e.rule.call(i,t,o)*(n[e.dir]||n.asc)})},t}();e.Sort=o},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__spreadArrays||function(){for(var t=0,e=0,i=arguments.length;e0&&-1!==i&&(i+=1);var r=t.prototype._add.call(this,e,i);if(Array.isArray(e.items))for(var s=0,a=e.items;s1?(this._selectedIds=e,this._itemsForGhost=i):(this._selectedIds=[],this._itemsForGhost=null),r&&s){var a=n.getBox(o),c=a.left,l=a.top;this._transferData.initXOffset=t.pageX-c,this._transferData.initYOffset=t.pageY-l,this._transferData.x=t.pageX,this._transferData.y=t.pageY,this._transferData.targetId=s,this._transferData.id=r,this._transferData.item=o}}},t.prototype._moveGhost=function(t,e){this._transferData.ghost&&(this._transferData.ghost.style.left=t-this._transferData.initXOffset+"px",this._transferData.ghost.style.top=e-this._transferData.initYOffset+"px")},t.prototype._removeGhost=function(){document.body.removeChild(this._transferData.ghost)},t.prototype._onDrop=function(){if(this._canMove){var t=o.collectionStore.getItem(this._lastCollectionId),e=t&&t.config;if(t&&e.dragMode!==r.DragMode.source){if(t.events.fire(r.DragEvents.beforeDrop,[this._lastId,this._transferData.target])){var i={id:this._lastId,target:t},n={id:this._transferData.id,target:this._transferData.target};this._move(n,i),i.target.events.fire(r.DragEvents.dropComplete,[i.id,this._transferData.dropPosition])}this._endDrop()}else this._endDrop()}else this._endDrop()},t.prototype._onDragStart=function(t,e){var i=o.collectionStore.getItem(e),n=i.config;if(n.dragMode===r.DragMode.target)return null;var s=i.data.getItem(t),a=function(t,e){var i=t.getBoundingClientRect(),n=document.createElement("div"),o=t.cloneNode(!0);return o.style.width=i.width+"px",o.style.height=i.height+"px",o.style.maxHeight=i.height+"px",o.style.fontSize=window.getComputedStyle(t.parentElement).fontSize,o.style.opacity="0.8",o.style.fontSize=window.getComputedStyle(t.parentElement).fontSize,n.appendChild(o),e&&e.length&&e.forEach(function(t,e){var o=t.cloneNode(!0);o.style.width=i.width+"px",o.style.height=i.height+"px",o.style.maxHeight=i.height+"px",o.style.top=12*(e+1)-i.height-i.height*e+"px",o.style.left=12*(e+1)+"px",o.style.opacity="0.6",o.style.zIndex=""+(-e-1),n.appendChild(o)}),n.className="dhx_drag-ghost",n}(this._transferData.item,this._itemsForGhost);return i.events.fire(r.DragEvents.beforeDrag,[s,a])&&t?(i.events.fire(r.DragEvents.dragStart,[t,this._selectedIds]),this._toggleTextSelection(!0),this._transferData.target=i,this._transferData.dragConfig=n,a):null},t.prototype._onDrag=function(t){var e=t.clientX,i=t.clientY,a=document.elementFromPoint(e,i),c=n.locate(a,"dhx_widget_id");if(c){var l=o.collectionStore.getItem(c),u=n.locate(a,"dhx_id");if(!u)return this._cancelCanDrop(),this._lastCollectionId=c,this._lastId=null,void this._canDrop();if(l.config.dropBehaviour===r.DropBehaviour.complex){var d=function(t){var e=t.clientY,i=n.locateNode(t);if(!i)return null;var o=i.childNodes[0].getBoundingClientRect();return(e-o.top)/o.height}(t);this._transferData.dropPosition=d<=.25?r.DropPosition.top:d>=.75?r.DropPosition.bot:r.DropPosition.in}else if(this._lastId===u&&this._lastCollectionId===c)return;var h={id:this._transferData.id,target:this._transferData.target};if("source"!==l.config.dragMode)if(h.target.events.fire(r.DragEvents.dragOut,[u,l]),c!==this._transferData.targetId||!s.isTreeCollection(h.target.data)||s.isTreeCollection(h.target.data)&&h.target.data.canCopy(h.id,u))this._cancelCanDrop(),this._lastId=u,this._lastCollectionId=c,h.target.events.fire(r.DragEvents.dragIn,[u,this._transferData.dropPosition,o.collectionStore.getItem(c)])&&this._canDrop();else this._cancelCanDrop()}else this._canMove&&this._cancelCanDrop()},t.prototype._move=function(t,e){var i=t.target.data,n=e.target.data,o=0,a=e.id;switch(s.isTreeCollection(n)?e.target.config.dropBehaviour:void 0){case r.DropBehaviour.child:break;case r.DropBehaviour.sibling:a=n.getParent(a),o=n.getIndex(e.id)+1;break;case r.DropBehaviour.complex:var c=this._transferData.dropPosition;c===r.DropPosition.top?(a=n.getParent(a),o=n.getIndex(e.id)):c===r.DropPosition.bot&&(a=n.getParent(a),o=n.getIndex(e.id)+1);break;default:o=e.id?t.target===e.target&&n.getIndex(t.id)1?this._selectedIds.map(function(t){i.copy(t,o,n,a),o>-1&&o++}):i.copy(t.id,o,n,a):this._selectedIds instanceof Array&&this._selectedIds.length>1?this._selectedIds.map(function(t){i.move(t,o,n,a),o>-1&&o++}):i.move(t.id,o,n,a)},t.prototype._endDrop=function(){this._toggleTextSelection(!1),this._transferData.target&&this._transferData.target.events.fire(r.DragEvents.dragEnd,[this._transferData.id,this._selectedIds]),this._cancelCanDrop(),this._canMove=!0,this._transferData={},this._lastId=null,this._lastCollectionId=null},t.prototype._cancelCanDrop=function(){this._canMove=!1;var t=o.collectionStore.getItem(this._lastCollectionId);t&&this._lastId&&t.events.fire(r.DragEvents.cancelDrop,[this._lastId]),this._lastCollectionId=null,this._lastId=null},t.prototype._canDrop=function(){this._canMove=!0;var t=o.collectionStore.getItem(this._lastCollectionId);t&&this._lastId&&t.events.fire(r.DragEvents.canDrop,[this._lastId,this._transferData.dropPosition])},t.prototype._toggleTextSelection=function(t){t?document.body.classList.add("dhx_no-select"):document.body.classList.remove("dhx_no-select")},t}(),c=window.dhxHelpers=window.dhxHelpers||{};c.dragManager=c.dragManager||new a,e.dragManager=c.dragManager},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(){this._store={}}return t.prototype.setItem=function(t,e){this._store[t]=e},t.prototype.getItem=function(t){return this._store[t]?this._store[t]:null},t}(),o=window.dhxHelpers=window.dhxHelpers||{};o.collectionStore=o.collectionStore||new n,e.collectionStore=o.collectionStore},function(t,e,i){"use strict";(function(t){var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(21),r=i(1),s=i(34),a=function(e){function i(t,i){var n=e.call(this,t)||this;return n.config=r.extend({from:0,limit:50,delay:50,prepare:0},i),n.updateUrl(t,{from:n.config.from,limit:n.config.limit}),n}return n(i,e),i.prototype.load=function(){var e=this;return new t(function(t){e._timeout?(clearTimeout(e._timeout),e._timeout=setTimeout(function(){s.ajax.get(e.url,{responseType:"text"}).then(t),e._cooling=!0},e.config.delay),e._cooling&&(t(null),e._cooling=!1)):(s.ajax.get(e.url,{responseType:"text"}).then(t),e._cooling=!0,e._timeout=setTimeout(function(){}))})},i}(o.DataProxy);e.LazyDataProxy=a}).call(this,i(12))},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(3),o=i(22),r=i(15),s=function(){function t(t,e,i){var o=this;this.events=i||new n.EventSystem(this),this._data=e,this._data.events.on(r.DataEvents.removeAll,function(){o._selected=null}),this._data.events.on(r.DataEvents.change,function(){if(o._selected){var t=o._data.getNearId(o._selected);t!==o._selected&&(o._selected=null,t&&o.add(t))}})}return t.prototype.getId=function(){return this._selected},t.prototype.getItem=function(){return this._selected?this._data.getItem(this._selected):null},t.prototype.remove=function(t){return!(t=t||this._selected)||!!this.events.fire(o.SelectionEvents.beforeUnSelect,[t])&&(this._data.update(t,{$selected:!1}),this._selected=null,this.events.fire(o.SelectionEvents.afterUnSelect,[t]),!0)},t.prototype.add=function(t){this._selected!==t&&(this.remove(),this.events.fire(o.SelectionEvents.beforeSelect,[t])&&(this._selected=t,this._data.update(t,{$selected:!0}),this.events.fire(o.SelectionEvents.afterSelect,[t])))},t}();e.Selection=s},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;ie.left+e.width-1||i.pageXe.top+e.height-1||i.pageY0?1:-1)*o.config.speed,i=o._getRefs().area,n=i.scrollHeight-o._runnerHeight,r=o._scrollTop+e;i.scrollTop=r<0?0:r>n?n:r,o._update()},i.onmousedownRunner=function(t){t.preventDefault();var e=o._getRefs(),i=e.area,n=e.runner,r=i.getBoundingClientRect(),s=r.top+window.pageYOffset,a=r.bottom+window.pageYOffset,c=i.scrollHeight-o._runnerHeight,l=t.pageY-n.getBoundingClientRect().top-window.pageYOffset,u=function(t){var e=t.pageY-l;i.scrollTop=e<=s?0:e>a?c:(e-s)/o._visibleArea,o._update()},d=function(){document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",d),document.body.classList.remove("dhx-no-select")};document.body.classList.add("dhx-no-select"),document.addEventListener("mousemove",u),document.addEventListener("mouseup",d)},i.onmousedownTrack=function(t){if(!t.target.classList.contains("scroll-runner")){t.preventDefault();var e=function(){document.removeEventListener("mouseup",e),window.clearInterval(c)},i=o._getRefs().area,n=t.target.getBoundingClientRect().top+window.pageYOffset,r=i.scrollHeight-o._runnerHeight,s=t.pageY,a=function(){var t;if(sn+o._runnerTop+o._runnerHeight))return;(t=o._scrollTop+i.clientHeight)>r&&(t=r)}i.scrollTop=t,o._update()};a();var c=setInterval(a,100);document.addEventListener("mouseup",e)}},i)}return t.prototype.render=function(t){var e,i=this;return 0===this._scrollWidth?t:o.el(".scroll-view-wrapper",{style:{width:"100%",height:"100%",overflow:"hidden",position:"relative"}},[o.el(".scroll-view",{onscroll:this._handlers.onscroll,_ref:"scroll-view",_hooks:{didInsert:function(){i._update()},didRecycle:function(){i._update()}},style:{height:"100%",width:"calc(100% + "+this._scrollWidth+"px)",overflowY:"scroll","-ms-overflow-style":"scrollbar"}},[t]),o.el(".y-scroll",(e={onmousedown:this._handlers.onmousedownTrack},e[this._wheelName]=this._handlers[this._wheelName],e.style={width:"10px",height:"100%",right:0,top:0,position:"absolute"},e),[o.el(".scroll-runner",{_ref:"scroll-runner",onmousedown:this._handlers.onmousedownRunner,style:{height:this._runnerHeight+"px",right:"2px",top:this._runnerTop,width:"6px",position:"absolute"}})])])},t.prototype._update=function(){var t=this._getRefs();if(t){var e=t.area,i=t.runner;this._visibleArea=e.clientHeight/e.scrollHeight,this._scrollTop=e.scrollTop,this._runnerTop=this._scrollTop*this._visibleArea,this._visibleArea<1?this._runnerHeight=e.clientHeight*this._visibleArea:this._runnerHeight=0,i.style.top=this._runnerTop+"px",i.style.height=this._runnerHeight+"px"}},t.prototype._getRefs=function(){var t=this._getRootView();if(t.refs&&t.refs["scroll-view"]&&t.refs["scroll-runner"])return{area:t.refs["scroll-view"].el,runner:t.refs["scroll-runner"].el}},t}();e.ScrollView=s},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(103),r=i(28),s=i(0),a=function(t){function e(e,i){var n=t.call(this,e,i)||this;if(n._root=n.config.parent||n,n._all={},n._parseConfig(),n.config.activeTab&&(n.config.activeView=n.config.activeTab),n.config.views&&(n.config.activeView=n.config.activeView||n._cells[0].id,n._isViewLayout=!0),!i.parent){var o=s.create({render:function(){return n.toVDOM()}},n);n.mount(e,o)}return n}return n(e,t),e.prototype.toVDOM=function(){if(this._isViewLayout){var e=[this.getCell(this.config.activeView).toVDOM()];return t.prototype.toVDOM.call(this,e)}var i=[];return this._cells.forEach(function(t){var e=t.toVDOM();Array.isArray(e)?i=i.concat(e):i.push(e)}),t.prototype.toVDOM.call(this,i)},e.prototype.removeCell=function(t){if(this.events.fire(r.LayoutEvents.beforeRemove,[t])){var e=this.config.parent||this;if(e!==this)return e.removeCell(t);var i=this.getCell(t);if(i){var n=i.getParent();delete this._all[t],n._cells=n._cells.filter(function(e){return e.id!==t}),n.paint()}this.events.fire(r.LayoutEvents.afterRemove,[t])}},e.prototype.addCell=function(t,e){if(void 0===e&&(e=-1),this.events.fire(r.LayoutEvents.beforeAdd,[t.id])){var i=this._createCell(t);e<0&&(e=this._cells.length+e+1),this._cells.splice(e,0,i),this.paint(),this.events.fire(r.LayoutEvents.afterAdd,[t.id])}},e.prototype.getId=function(t){return t<0&&(t=this._cells.length+t),this._cells[t]?this._cells[t].id:void 0},e.prototype.getRefs=function(t){return this._root.getRootView().refs[t]},e.prototype.getCell=function(t){return this._root._all[t]},e.prototype.forEach=function(t,e,i){if(void 0===i&&(i=1/0),this._haveCells(e)&&!(i<1)){var n;n=e?this._root._all[e]._cells:this._root._cells;for(var o=0;o0}return Object.keys(this._all).length>0},e}(o.Cell);e.Layout=a},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;ie.size&&(n=e.size-e.resizerLength),e.mode){case c.resizeMode.pixels:t.config[o]=n-e.resizerLength/2+"px",e.nextCell.config[o]=e.size-n-e.resizerLength/2+"px";break;case c.resizeMode.mixedpx1:t.config[o]=n-e.resizerLength/2+"px";break;case c.resizeMode.mixedpx2:e.nextCell.config[o]=e.size-n-e.resizerLength/2+"px";break;case c.resizeMode.percents:t.config[o]=n/e.size*e.percentsum+"%",e.nextCell.config[o]=(e.size-n)/e.size*e.percentsum+"%";break;case c.resizeMode.mixedperc1:t.config[o]=n/e.size*e.percentsum+"%";break;case c.resizeMode.mixedperc2:e.nextCell.config[o]=(e.size-n)/e.size*e.percentsum+"%"}t.paint(),t.events.fire(c.LayoutEvents.resize,[t.id])}};this._resizerHandlers={onmousedown:function(o){if(3!==o.which&&(e.isActive&&i(),t.events.fire(c.LayoutEvents.beforeResizeStart,[t.id]))){document.body.classList.add("dhx_no-select--resize");var r=t.getCellView(),s=t._getNextCell(),a=s.getCellView(),u=t._getResizerView(),d=r.el.getBoundingClientRect(),h=u.el.getBoundingClientRect(),f=a.el.getBoundingClientRect();if(e.xLayout=t._isXDirection(),e.left=d.left+window.pageXOffset,e.top=d.top+window.pageYOffset,e.range=l.getBlockRange(d,f,e.xLayout),e.size=e.range.max-e.range.min,e.isActive=!0,e.nextCell=s,e.resizerLength=e.xLayout?h.width:h.height,e.mode=l.getResizeMode(e.xLayout,t.config,s.config),e.mode===c.resizeMode.percents){var p=e.xLayout?"width":"height";e.percentsum=parseFloat(t.config[p])+parseFloat(s.config[p])}if(e.mode===c.resizeMode.mixedperc1){p=e.xLayout?"width":"height";e.percentsum=1/(d[p]/(e.size-e.resizerLength))*parseFloat(t.config[p])}if(e.mode===c.resizeMode.mixedperc2){p=e.xLayout?"width":"height";e.percentsum=1/(f[p]/(e.size-e.resizerLength))*parseFloat(s.config[p])}document.addEventListener("mouseup",i),document.addEventListener("mousemove",n)}},ondragstart:function(t){return t.preventDefault()}}},e.prototype._getCollapseIcon=function(){return this._isXDirection()&&this.config.collapsed?"dxi dxi-chevron-right":this._isXDirection()&&!this.config.collapsed?"dxi dxi-chevron-left":!this._isXDirection()&&this.config.collapsed?"dxi dxi-chevron-up":this._isXDirection()||this.config.collapsed?void 0:"dxi dxi-chevron-down"},e.prototype._isLastCell=function(){var t=this._parent;return t&&t._cells.indexOf(this)===t._cells.length-1},e.prototype._getNextCell=function(){var t=this._parent,e=t._cells.indexOf(this);return t._cells[e+1]},e.prototype._getResizerView=function(){return this._parent.getRefs("resizer_"+this._uid)},e.prototype._isXDirection=function(){return this._parent&&this._parent._xLayout},e.prototype._calculateStyle=function(){var t=this.config;if(t){var e={};return this._isXDirection()?(void 0===t.width||t.collapsed||(e.flexBasis=t.width,e.width=t.width),void 0!==t.height&&(e.height=t.height)):(void 0===t.height||t.collapsed||(e.height=t.height),void 0!==t.width&&(e.width=t.width)),e}},e}(a.View);e.Cell=d},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(28);e.getResizeMode=function(t,e,i){var o=t?"width":"height",r=e[o]&&-1!==e[o].indexOf("%"),s=i[o]&&-1!==i[o].indexOf("%"),a=e[o]&&-1!==e[o].indexOf("px"),c=i[o]&&-1!==i[o].indexOf("px");return r&&s?n.resizeMode.percents:a&&c?n.resizeMode.pixels:a&&!c?n.resizeMode.mixedpx1:c&&!a?n.resizeMode.mixedpx2:r?n.resizeMode.mixedperc1:s?n.resizeMode.mixedperc2:n.resizeMode.unknown},e.getBlockRange=function(t,e,i){return void 0===i&&(i=!0),i?{min:t.left+window.pageXOffset,max:e.right+window.pageXOffset}:{min:t.top+window.pageYOffset,max:e.bottom+window.pageYOffset}}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(2),o=i(35),r=new WeakMap,s=new Map;function a(t,e){e&&clearTimeout(r.get(t));var i=t.parentNode,n=i.getAttribute("data-position"),o=i.parentNode,a=s.get(o);if(a){var c=a[n];if(c){var l=c.stack,u=l.indexOf(t);return-1!==u?(i.removeChild(t),l.splice(u,1),void(0===l.length&&o.removeChild(i))):void 0}}}function c(t,e){var i=document.createElement("div");return i.setAttribute("data-position",e),i.className="dhx_message-container dhx_message-container--"+e+(t===document.body?" dhx_message-container--in-body":""),i}e.message=function(t){var e;"string"==typeof t&&(t={text:t}),t.position=t.position||o.MessageContainerPosition.topRight;var i=document.createElement("div");i.className="dhx_widget dhx_message "+(t.css||""),t.html?i.innerHTML=t.html:i.innerHTML=''+t.text+"\n\t\t"+(t.icon?'':"");var l=t.node?n.toNode(t.node):document.body;"static"===getComputedStyle(l).position&&(l.style.position="relative");var u=s.get(l);u?u[t.position]||(u[t.position]={stack:[],container:c(l,t.position)}):s.set(l,((e={})[t.position]={stack:[],container:c(l,t.position)},e));var d=s.get(l)[t.position],h=d.stack,f=d.container;if(0===h.length&&l.appendChild(f),h.push(i),f.appendChild(i),t.expire){var p=setTimeout(function(){return a(i)},t.expire);r.set(i,p)}i.onclick=function(){return a(i,!0)}}},function(t,e,i){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});var n=i(36),o=i(61);e.alert=function(e){var i=e.buttons&&e.buttons[0]?e.buttons[0]:n.default.apply,r=o.blockScreen(e.blockerCss);return new t(function(t){var n=document.createElement("div");n.className="dhx_widget dhx_alert "+(e.css||""),n.innerHTML="\n\t\t\t"+(e.header?'":"")+"\n\t\t\t"+(e.text?''+e.text+"
":"")+'\n\t\t\t",document.body.appendChild(n),n.querySelector(".dhx_alert__apply-button").focus(),n.querySelector("button").addEventListener("click",function(){r(),document.body.removeChild(n),t(!0)})})}}).call(this,i(12))},function(t,e,i){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});var n=i(36),o=i(61);e.confirm=function(e){var i=e.buttons&&e.buttons[0]?e.buttons[0]:n.default.apply,r=e.buttons&&e.buttons[1]?e.buttons[1]:n.default.reject,s=o.blockScreen(e.blockerCss);return new t(function(t){var n=document.createElement("div");n.className="dhx_widget dhx_alert dhx_alert--confirm"+(e.css?" "+e.css:""),n.innerHTML="\n\t\t"+(e.header?'":"")+"\n\t\t"+(e.text?''+e.text+"
":"")+'\n\t\t\t",document.body.appendChild(n),n.querySelector(".dhx_alert__confirm-reject").focus();var o=function(e){"BUTTON"===e.target.tagName&&function(e){s(),n.removeEventListener("click",o),document.body.removeChild(n),t(e)}(e.target.classList.contains("dhx_alert__confirm-aply"))};n.addEventListener("click",o)})}}).call(this,i(12))},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(1),r=i(0),s=i(2),a=i(17),c=i(19),l=function(t){function e(e,i){var n=t.call(this,e,o.extend({navigationType:"click"},i))||this;n._currentRoot=null;return n.mount(e,r.create({render:function(){return n._draw()}})),n}return n(e,t),e.prototype.getState=function(){var t={};for(var e in this.data.eachChild(this.data.getRoot(),function(e){e.twoState&&!e.group?t[e.id]=e.active:e.type!==a.ItemType.input&&e.type!==a.ItemType.selectButton||(t[e.id]=e.value)},!1),this._groups)this._groups[e].active&&(t[e]=this._groups[e].active);return t},e.prototype.setState=function(t){for(var e in t)if(this._groups&&this._groups[e])this._groups[e].active&&(this.data.update(this._groups[e].active,{active:!1}),this._groups[e].active=t[e],this.data.update(t[e],{active:!0}));else{var i=this.data.getItem(e);i.type===a.ItemType.input||i.type===a.ItemType.selectButton?this.data.update(e,{value:t[e]}):this.data.update(e,{active:t[e]})}},e.prototype._customHandlers=function(){var t=this;return{input:function(e){var i=s.locate(e);t.data.update(i,{value:e.target.value})},tooltip:function(e){var i=s.locateNode(e);if(i){var n=i.getAttribute("dhx_id"),o=t.data.getItem(n);o.tooltip&&c.tooltip(o.tooltip,{node:i,position:c.Position.bottom})}}}},e.prototype._getFactory=function(){return a.createFactory({widget:this,defaultType:a.ItemType.navItem,allowedTypes:[a.ItemType.button,a.ItemType.customHTMLButton,a.ItemType.imageButton,a.ItemType.input,a.ItemType.selectButton,a.ItemType.separator,a.ItemType.spacer,a.ItemType.title,a.ItemType.navItem,a.ItemType.menuItem,a.ItemType.customHTML],widgetName:"toolbar"})},e.prototype._draw=function(){var t=this;return r.el("nav.dhx_widget.dhx_toolbar",{class:this.config.css?this.config.css:""},[r.el("ul.dhx_navbar.dhx_navbar--horizontal",{dhx_widget_id:this._uid,tabindex:0,onclick:this._handlers.onclick,onmousedown:this._handlers.onmousedown,oninput:this._handlers.input,onmouseover:this._handlers.tooltip,_hooks:{didInsert:function(e){e.el.addEventListener("keyup",function(e){if(9===e.which){var i=s.locateNode(document.activeElement);if(i){var n=i.getAttribute("dhx_id"),o=t.data.getItem(n);o.tooltip&&c.tooltip(o.tooltip,{node:i,position:c.Position.bottom,force:!0})}}},!0)}}},this.data.map(function(e){return t._factory(e)},this.data.getRoot(),!1))])},e.prototype._getMode=function(t,e){return t.id===e?"bottom":"right"},e.prototype._close=function(e){this._activePosition=null,this._currentRoot=null,t.prototype._close.call(this,e)},e.prototype._setRoot=function(t){this.data.getParent(t)===this.data.getRoot()&&(this._currentRoot=t)},e}(a.Navbar);e.Toolbar=l},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;i50&&(r-=55),o=setTimeout(s,r)},a=function(){clearTimeout(o),document.removeEventListener("mouseup",a)};s(),document.addEventListener("mouseup",a)}}}},this._customHandlers())},e.prototype._initEvents=function(){var t=this,e=null;this.data.events.on(h.DataEvents.change,function(){t.paint(),e&&clearTimeout(e),e=setTimeout(function(){var i={};t.data.eachChild(t.data.getRoot(),function(t){t.group&&(t.twoState=!0,function(t,e){t[e.group]?(e.active&&(t[e.group].active=e.id),t[e.group].elements.push(e.id)):t[e.group]={active:e.active?e.id:null,elements:[e.id]}}(i,t))},!0),t._groups=i,t._resetHotkeys(),e=null,t.paint()},100)}),this.events.on(h.NavigationBarEvents.click,function(e){var i=t.data.getItem(e),n=t.data.getItem(i.parent);if(n&&n.type===h.ItemType.selectButton&&t.data.update(i.parent,{value:i.value,icon:i.icon}),i.group){var o=t._groups[i.group];o.active&&t.data.update(o.active,{active:!1}),o.active=i.id,t.data.update(i.id,{active:!0})}}),this._customInitEvents()},e.prototype._getMode=function(t,e,i){return void 0===i&&(i=!1),t.parent===e?"bottom":"right"},e.prototype._drawMenuItems=function(t,e){var i=this;return void 0===e&&(e=!0),this.data.map(function(t){return i._factory(t,e)},t,!1)},e.prototype._setRoot=function(t){},e.prototype._getParents=function(t,e){var i=[],n=!1,o=this.data.getItem(t),r=o&&o.disabled;return this.data.eachParent(t,function(t){t.id===e?(i.push(t.id),n=!0):n||i.push(t.id)},!r),this._isContextMenu&&this._activePosition&&i.push(e),i},e.prototype._listenOuterClick=function(){this._documentHaveListener||(document.addEventListener("click",this._documentClick,!0),this._documentHaveListener=!0)},e.prototype._customInitEvents=function(){},e.prototype._drawPopups=function(){var t=this,e=this._activeMenu;if(!this._isContextMenu&&!e)return null;var i=this._currentRoot;if(this._isContextMenu&&!this._activePosition)return null;var n=this._getParents(e,i);return this._activeParents=n,n.forEach(function(e){return t.data.exists(e)&&t.data.update(e,{$activeParent:!0},!1)}),n.map(function(e){if(!t.data.haveItems(e))return null;var n=t.data.getItem(e)||t._rootItem;return t._popupActive=!0,s.el("ul",{class:"dhx_widget dhx_menu"+(t.config.menuCss?" "+t.config.menuCss:""),_key:e,_hooks:{didInsert:function(o){var r=o.el.getBoundingClientRect(),s=r.width,a=r.height,l=t._isContextMenu&&t._activePosition&&e===i?t._activePosition:n.$position,u=t._getMode(n,i,l===t._activePosition),d=c.calculatePosition(l,{mode:u,width:s,height:a});n.$style=d,o.patch({style:d})},didRecycle:function(o,r){if(t._isContextMenu&&t._activePosition&&e===i){var s=r.el.getBoundingClientRect(),a=s.width,l=s.height,u=c.calculatePosition(t._activePosition,{mode:t._getMode(n,i,!0),width:a,height:l});n.$style=u,r.patch({style:u})}}},tabindex:0,style:n.$style||{position:"absolute"}},t._drawMenuItems(e))}).reverse()},e.prototype._onMenuItemClick=function(t,e){var i=this.data.getItem(t);i.disabled||(i.twoState&&this.data.update(i.id,{active:!i.active}),this.events.fire(h.NavigationBarEvents.click,[t,e]),this._close(e))},e.prototype._activeItemChange=function(t,e){var i=this;if(this._activeParents){var n=this._getParents(t,this._currentRoot);this._activeParents.forEach(function(t){i.data.exists(t)&&-1===n.indexOf(t)&&i.data.update(t,{$activeParent:!1},!1)})}t&&!this._documentHaveListener&&this._listenOuterClick(),t&&this.data.haveItems(t)?(this._activeMenu===t&&this._popupActive||this.events.fire(h.NavigationBarEvents.openMenu,[t]),this._activeMenu=t,clearTimeout(this._currentTimeout),this.paint()):(clearTimeout(this._currentTimeout),this._currentTimeout=setTimeout(function(){return i.paint()},400))},e.prototype._resetHotkeys=function(){var t=this;l.keyManager.removeHotKey(null,this),this.data.map(function(e){e.hotkey&&l.keyManager.addHotKey(e.hotkey,function(){return t._onMenuItemClick(e.id,null)},t)})},e.prototype._setProp=function(t,e,i){var n,o=this;Array.isArray(t)?t.forEach(function(t){var n;return o.data.update(t,((n={})[e]=i,n))}):this.data.update(t,((n={})[e]=i,n))},e}(u.View);e.Navbar=f},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(111),o=i(112),r=i(113),s=i(114),a=i(115),c=i(116),l=i(117),u=i(118),d=i(119),h=i(23),f=i(24);e.createFactory=function(t){for(var e=t.defaultType,i=t.allowedTypes,p=t.widgetName,_=t.widget,v=new Set,g=0,m=i;g0&&o.getCount(t,r,i),t.value&&t.$openIcon?n.el("span.dhx_button__icon.dhx_button__icon--menu.dxi.dxi-menu-right"):null,t.loading&&n.el("span.dhx_button__loading",[n.el("span.dhx_button__loading-icon.dxi.dxi-loading")])])}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),o=i(24);e.navItem=function(t,e,i){var r=" dhx_"+e+"-button";return n.el("button",{class:"dhx_button"+r+(t.active||t.$activeParent?r+"--active":"")+(t.disabled?r+"--disabled":"")+(t.$openIcon?r+"--select":"")+(t.circle?r+"--circle":"")+(t.size?" "+r+"--"+t.size:"")+(!t.value&&t.icon?r+"--icon":"")+(t.css?" "+t.css:""),dhx_id:t.id,disabled:t.disabled,type:"button"},[t.icon&&n.el("span",{class:t.icon+r+"__icon"}),t.html&&n.el("div",{class:r.trim()+"__html",".innerHTML":t.html}),!t.html&&t.value&&n.el("span",{class:r.trim()+"__text"},t.value),t.count>0&&o.getCount(t,r+"__count",i),t.$openIcon&&n.el("span.dxi.dxi-menu-right",{class:r+"__caret"})])}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0);e.customHTMLButton=function(t,e,i){var o=i?" dhx_button dhx_menu-button":" dhx_button dhx_nav-menu-button";return n.el("button",{class:"dhx_custom-button"+o+(t.$activeParent?o+"--active":""),dhx_id:t.id,type:"button",".innerHTML":t.html},t.html?"":t.value)}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),o=i(24);e.imageButton=function(t,e){var i="dhx_"+e+"-button-image",r="ribbon"===e;return n.el("button.dhx_button",{class:i+(t.size?" "+i+"--"+t.size:"")+(!t.value&&t.src?" "+i+"--icon":"")+(r&&t.$openIcon?" "+i+"--select":"")+(t.active?" "+i+"--active":""),dhx_id:t.id,type:"button"},[r&&t.value&&t.$openIcon&&n.el("span.dxi.dxi-menu-right",{class:i+"__caret"}),t.html?n.el("div",{class:i+"__text",".innerHTML":t.html}):t.value&&n.el("span",{class:i+"__text"},t.value),t.src&&n.el("span",{class:i+"__image",style:{backgroundImage:"url("+t.src+")"}}),t.count>0&&o.getCount(t,i+"__count",!0)])}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),o=i(23);function r(t,e){t.fire(o.NavigationBarEvents.inputBlur,[e])}function s(t,e){t.fire(o.NavigationBarEvents.inputFocus,[e])}e.input=function(t,e,i){return n.el(".dhx_form-group.dhx_form-group--no-message-holder.dhx_form-group--label_sr.dhx_"+i+"__input",{style:{width:t.width?t.width:"200px"}},[n.el("label.dhx_label",{for:t.id},t.label),n.el(".dhx_input__wrapper",[n.el("input.dhx_input",{placeholder:t.placeholder,class:t.icon?"dhx_input--icon-padding":"",value:t.value,onblur:[r,e,t.id],onfocus:[s,e,t.id],dhx_id:t.id,_hooks:{didInsert:function(i){e&&e.fire(o.NavigationBarEvents.inputCreated,[t.id,i.el])}},_key:t.id}),t.icon?n.el(".dhx_input__icon",{class:t.icon}):null])])}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),o=i(24);e.menuItem=function(t,e,i){var r=i?" dhx_menu-button":" dhx_nav-menu-button";return n.el("button",{class:"dhx_button"+r+(t.disabled?r+"--disabled":"")+(t.active||t.$activeParent?r+"--active":""),disabled:t.disabled,dhx_id:t.id,type:"button"},i?[t.icon||t.value||t.html?n.el("span.dhx_menu-button__block.dhx_menu-button__block--left",[t.icon&&n.el("span.dhx_menu-button__icon",{class:t.icon}),t.html?n.el("div.dhx_menu-button__text",{".innerHTML":t.html}):t.value&&n.el("span.dhx_menu-button__text",t.value)]):null,t.count>0||t.hotkey||t.items?n.el("span.dhx_menu-button__block.dhx_menu-button__block--right",[t.count>0&&o.getCount(t," dhx_menu-button__count",!1),t.hotkey&&n.el("span.dhx_menu-button__hotkey",t.hotkey),t.items&&n.el("span.dhx_menu-button__caret.dxi.dxi-menu-right")]):null]:[t.icon&&n.el("span.dhx_menu-button__icon",{class:t.icon}),t.html?n.el("div.dhx_menu-button__text",{".innerHTML":t.html}):t.value&&n.el("span.dhx_nav-menu-button__text",t.value)])}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.separator=function(t,e){return null}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.spacer=function(t,e){return null}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0);e.title=function(t,e){return n.el("span",{class:"dhx_navbar-title dhx_navbar-title--"+e,".innerHTML":t.html},t.html?null:t.value)}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.layoutConfig={css:"vault-layout",rows:[{id:"topbar",css:"vault-topbar"},{id:"vault",css:"vault-file-grid"}]},e.layoutConfigWithoutTopbar={css:"vault-layout",rows:[{id:"vault",css:"vault-file-grid"}]}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(37),o=["byte","kilobyte","megabyte","gigabyte"];e.getBasis=function(t,e){return void 0===t&&(t=0),void 0===e&&(e=0),t<1024?t+" "+n.default[o[e]]:this.getBasis(Math.round(t/1024),e+1)};var r,s=13;function a(t){return{extension:t.name.split(".").pop()||"none",mime:t.file?t.file.type:""}}function c(t,e){switch(t){case"jpg":case"jpeg":case"gif":case"png":case"bmp":case"tiff":case"pcx":case"svg":case"ico":return r.image;case"avi":case"mpg":case"mpeg":case"rm":case"move":case"mov":case"mkv":case"flv":case"f4v":case"mp4":case"3gp":case"wmv":case"webm":case"vob":return r.video;case"rar":case"zip":case"tar":case"tgz":case"arj":case"gzip":case"bzip2":case"7z":case"ace":case"apk":case"deb":case"zipx":case"cab":case"tar-gz":case"rpm":case"xar":return r.archive;case"xlr":case"xls":case"xlsm":case"xlsx":case"ods":case"csv":case"tsv":return r.table;case"doc":case"docx":case"docm":case"dot":case"dotx":case"odt":case"wpd":case"wps":case"pages":return r.document;case"wav":case"aiff":case"au":case"mp3":case"aac":case"wma":case"ogg":case"flac":case"ape":case"wv":case"m4a":case"mid":case"midi":return r.audio;case"pot":case"potm":case"potx":case"pps":case"ppsm":case"ppsx":case"ppt":case"pptx":case"pptm":case"odp":return r.presentation;case"html":case"htm":case"eml":return r.web;case"exe":return r.application;case"dmg":return r.apple;case"pdf":case"ps":case"eps":return r.pdf;case"psd":return r.psd;case"txt":case"djvu":case"nfo":case"xml":return r.text;default:switch(e.split("/")[0]){case"image":return r.image;case"audio":return r.audio;case"video":return r.video;default:return r.other}}}e.truncateWord=function(t,e){var i,n;if(void 0===e&&(e=s),t.length<=e)return t;var o=t.lastIndexOf(".");if(-1===o)n=t.substr(t.length-4),i=t.substr(0,e-7);else{var r=o-3;n=t.substr(r),i=t.substr(0,e-(t.length-r))}return i+"..."+n},e.calculateCover=function(t){var e,i,n,o,r=t.width,s=t.height,a=r/s;return a>1?(e=s,n=(r-(i=s))/2,o=0):a<1?(i=r,n=0,o=(s-(e=r))/2):(e=r,i=r,n=0,o=0),{sx:n,sy:o,sWidth:i,sHeight:e,dx:0,dy:0}},function(t){t.image="image",t.video="video",t.archive="archive",t.table="table",t.document="document",t.presentation="presentation",t.application="application",t.web="web",t.apple="apple",t.pdf="pdf",t.psd="psd",t.audio="audio",t.other="other",t.text="text"}(r=e.FileType||(e.FileType={})),e.getFileType=c,e.getFileClassName=function(t){var e=a(t),i=e.mime,n=e.extension;return c(n,i)+" extension-"+n},e.isImage=function(t){var e=a(t),i=e.mime;return c(e.extension,i)===r.image}},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(0),r=i(4),s=i(37),a=i(27),c=function(t){function e(e,i){var n=t.call(this,null,i)||this;n.events=e,n._progress=0;return n.mount(null,o.create({render:function(){return n._draw()}})),n._abortUpload=function(){n.events.fire(a.ProgressBarEvents.cancel)},n}return n(e,t),e.prototype.setState=function(t,e){this._progress=t,this.config.template?this._progressText=this.config.template(t,e):this._progressText=this._progress.toFixed(1)+"%",this.paint()},e.prototype._draw=function(){return o.el(".progress-bar",{_key:this._uid},[o.el(".progress-indicator",{style:{width:this._progress+"%"}}),o.el(".progress-text",{".innerHTML":this._progressText}),o.el("button",{class:"dhx_btn dhx_btn--flat dhx_btn_small action-abort-all",onclick:this._abortUpload},s.default.cancel)])},e}(r.View);e.ProgressBar=c},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t){this._readerStack=[],this._isActive=!1,this._data=t}return t.prototype.add=function(t,e){void 0===e&&(e=!1),this._readerStack.push(t),e||this.read()},t.prototype.read=function(){var t=this;if(this._readerStack.length&&!this._isActive){var e=this._readerStack.shift();this._isActive=!0;var i=new FileReader;i.readAsDataURL(e.file),i.onload=function(i){var n=new Image;n.src=i.target.result,n.onload=function(){t._data.exists(e.id)&&t._data.update(e.id,{image:n}),t._isActive=!1,t.read()}},i.onerror=function(){t._isActive=!1,t.read()}}},t.prototype.stop=function(){this._readerStack=[]},t}();e.ReadStackPreview=n},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;ithis.data.getLength()-1)){this._focusIndex=t;var e=this.getRootView();if(e&&e.node&&e.node.el){var i=this.getRootNode();if(i){if(this.config.virtual){var n=t*v.defineValue(this.config.itemHeight);(n>=v.defineValue(this._visibleHeight)+this._topOffset||n=i.scrollTop+i.clientHeight-o.clientHeight?i.scrollTop=o.offsetTop-i.clientHeight+o.clientHeight:o.offsetTope-v.defineValue(this._visibleHeight)&&(t=e-v.defineValue(this._visibleHeight));var i=Math.floor(v.defineValue(this._visibleHeight)/v.defineValue(this.config.itemHeight))+5,n=Math.floor(t/v.defineValue(this.config.itemHeight));this._range=[n,i+n],this._topOffset=t,this.paint()},e.prototype._getHeight=function(){return this.data.getLength()*v.defineValue(this.config.itemHeight)},e.prototype._getHotkeys=function(){var t=this;if(this.config.keyNavigation)if(this._edited)this._navigationDestructor&&this._navigationDestructor();else{var e=this.config.keyNavigation;"function"!=typeof this.config.keyNavigation&&(this._widgetInFocus=!1,e=function(){return t._widgetInFocus},this._documentClickDestuctor=r.detectWidgetClick(this._uid,function(e){return t._widgetInFocus=e}));var i=function(t){return function(e){e.preventDefault(),t()}},n={arrowDown:i(function(){return t.setFocusIndex(t._focusIndex+1)}),arrowUp:i(function(){return t.setFocusIndex(t._focusIndex-1)}),enter:function(e){var i=t.data.getId(t._focusIndex);t.selection.add(i),t.events.fire(p.ListEvents.click,[i,e])},"enter+shift":function(e){var i=t.data.getId(t._focusIndex);t.selection.add(i,!1,!0),t.events.fire(p.ListEvents.click,[i,e])},"enter+ctrl":function(e){var i=t.data.getId(t._focusIndex);t.selection.add(i,!0,!1),t.events.fire(p.ListEvents.click,[i,e])}};f.isIE()&&(delete(n=o({up:n.arrowUp,down:n.arrowDown},n)).arrowUp,delete n.arrowDown),this._navigationDestructor=l.addHotkeys(n,e)}},e.prototype._lazyLoad=function(t){var e=t.target.scrollTop,i=Math.round(e/v.defineValue(this.config.itemHeight)),n=this.config.height/v.defineValue(this.config.itemHeight),o=this.data.dataProxy;o&&o.config&&!this.data.isDataLoaded(i,n+i+o.config.prepare)&&(o.updateUrl(null,{from:i,limit:o.config.limit}),this.data.load(o))},e}(d.View);e.List=g},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(126);e.getEditor=function(t,e){return new n.InputEditor(t,e)}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),o=i(39),r=function(){function t(t,e){var i=this;this._list=e,this._config=e.config,this._item=t,this._list.events.on(o.ListEvents.focusChange,function(t,e){i._mode&&e!==i._item.id&&i.endEdit()}),this._initHandlers()}return t.prototype.endEdit=function(){if(this._input){var t=this._input.value;this._list.events.fire(o.ListEvents.beforeEditEnd,[t,this._item.id])?(this._input.removeEventListener("blur",this._handlers.onBlur),this._input.removeEventListener("change",this._handlers.onChange),this._handlers={},this._mode=!1,this._list.events.fire(o.ListEvents.afterEditEnd,[t,this._item.id])):this._input.focus()}},t.prototype.toHTML=function(){this._mode=!0;var t=this._config.itemHeight;return n.el(".dhx_input__wrapper",{},[n.el("div.dhx_input__container",{},[n.el("input.dhx_input",{class:this._item.css?" "+this._item.css:"",style:{height:t,width:"100%",padding:"8px, 12px"},_hooks:{didInsert:this._handlers.didInsert},_key:this._item.id,dhx_id:this._item.id})])])},t.prototype._initHandlers=function(){var t=this;this._handlers={onBlur:function(){t.endEdit()},onChange:function(){t.endEdit()},didInsert:function(e){var i=e.el;t._input=i,i.focus(),i.value=t._item.value,i.setSelectionRange(0,i.value.length),i.addEventListener("change",t._handlers.onChange),i.addEventListener("blur",t._handlers.onBlur)}}},t}();e.InputEditor=r},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.defineValue=function(t){if(t){var e=t.toString().trim();if(-1===e.indexOf("calc"))return parseInt(e.split(/\D+/g)[0],null)}},e.defineUnit=function(t){if(t){var e=t.toString().trim();if(-1===e.indexOf("calc"))return e.slice(e.split(/\D+/g)[0].length)}}},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;i=o&&t<=r&&s(t)}),this.config.disabledDates&&this._linkedCalendar.config.disabledDates||(this.config.disabledDates=function(t){if(r)return t>r},this._linkedCalendar.config.disabledDates=function(t){if(o)return t=t&&r<=i&&u()}},u=function(){return d.DateHelper.isSameDay(e._selected[0],e._selected[1])?null:"dhx_calendar-day--in-range"};h.config.$rangeMark=c}if(i&&n&&s.push("dhx_calendar-day--weekend"),n||(h.config.thisMonthOnly?(a++,s.push("dhx_calendar-day--hidden")):s.push("dhx_calendar-day--muffled")),h.config.mark){var f=h.config.mark(r);f&&s.push(f)}h.config.$rangeMark&&((c=h.config.$rangeMark(r))&&s.push(c));o&&(i?s.push("dhx_calendar-day--weekend-disabled"):s.push("dhx_calendar-day--disabled")),h._selected.forEach(function(t,i){if(t&&d.DateHelper.isSameDay(t,r)){var n="dhx_calendar-day--selected";e.config.range&&(n+=" dhx_calendar-day--selected-"+(0===i?"first ":"last")),s.push(n)}}),l.push({date:r,day:r.getDate(),css:s.join(" ")}),r=d.DateHelper.addDay(r)},h=this;c--;)u();n.push({weekNumber:s,days:l,disabledWeekNumber:7===a})}return n},e.prototype._drawCalendar=function(){for(var t,e=this._currentDate,i=this.config,n=i.weekStart,s=i.thisMonthOnly,c=i.css,l=i.timePicker,u=i.width,d=("monday"===n?r(p.default.daysShort.slice(1),[p.default.daysShort[0]]):p.default.daysShort).map(function(t){return a.el(".dhx_calendar-weekday",t)}),h=[],f=[],_=0,v=this._getData(e);_t._hoursSlider.config.max||(12===t.config.timeFormat?(t._time.AM=e<12,t._time.hour=e%12||12):t._time.hour=e,t.events.fire(f.TimepickerEvents.change,[t.getValue()]),t._inputsView.paint())}),this._minutesSlider.events.on(u.SliderEvents.change,function(e){et._minutesSlider.config.max||(t._time.minute=e,t.events.fire(f.TimepickerEvents.change,[t.getValue()]),t._inputsView.paint())})},e.prototype._draw=function(){return s.el(".dhx_timepicker-inputs",o({},this._handlers),[s.el("input.dhx_timepicker-input.dhx_timepicker-input--hour",{_key:"hour",value:this._time.hour<10?"0"+this._time.hour:this._time.hour}),s.el("span.dhx_timepicker-delimer",":"),s.el("input.dhx_timepicker-input.dhx_timepicker-input--minutes",{_key:"minute",value:this._time.minute<10?"0"+this._time.minute:this._time.minute}),12===this.config.timeFormat?s.el(".dhx_timepicker-ampm",this._time.AM?"AM":"PM"):null])},e}(c.View);function _(t,e){return isNaN(t)?0:Math.min(e,Math.max(0,t))}e.Timepicker=p},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(1),r=i(0),s=i(3),a=i(13),c=i(4),l=i(11),u=i(65);function d(t,e,i){return ti?i:t}var h=function(t){function e(e,i){var n=t.call(this,e,o.extend({mode:u.Direction.horizontal,min:0,max:100,step:1,tooltip:!0},i))||this;n._disabled=!1,n.config.helpMessage=n.config.helpMessage||n.config.help,void 0!==n.config.thumbLabel&&(n.config.tooltip=n.config.thumbLabel),n.config.labelInline&&(n.config.labelPosition="left"),n.events=new s.EventSystem(n),n._axis=n.config.mode===u.Direction.horizontal?"clientX":"clientY",n._initStartPosition(),n._initHotkeys();var a=r.create({render:function(){return n._draw()},hooks:{didMount:function(){return n._calcSliderPosition()},didRedraw:function(){return n._calcSliderPosition()}}});return n._initHandlers(),n.mount(e,a),n}return n(e,t),e.prototype.disable=function(){this._disabled=!0,this.paint()},e.prototype.enable=function(){this._disabled=!1,this.paint()},e.prototype.isDisabled=function(){return this._disabled},e.prototype.focus=function(t){this.getRootView().refs[t?"extraRunner":"runner"].el.focus()},e.prototype.getValue=function(){var t;if(this.config.range){var e=this._getValue(this._currentPosition),i=this._getValue(this._extraCurrentPosition);t=e1){var i=this._getValue(this._extraCurrentPosition);this._setValue(t[0],!1),this.events.fire(u.SliderEvents.change,[t[0],e,!1]),this._setValue(t[1],!0),this.events.fire(u.SliderEvents.change,[t[1],i,!0])}else{if(t=parseFloat(t),isNaN(t))throw new Error("Wrong value type, for more info check documentation https://docs.dhtmlx.com/suite/slider__api__slider_setvalue_method.html");this._setValue(t),this.events.fire(u.SliderEvents.change,[t,e,!1])}this.paint()},e.prototype.destructor=function(){this._hotkeysDestructor(),this.unmount()},e.prototype._calcSliderPosition=function(){var t=this.getRootView();if(t){var e=t.refs.track.el.getBoundingClientRect();this._offsets={left:e.left+window.pageXOffset,top:e.top+window.pageYOffset},this._length=this.config.mode===u.Direction.horizontal?e.width:e.height}},e.prototype._initHotkeys=function(){var t=this;this._hotkeysDestructor=a.addHotkeys({arrowleft:function(e){t.config.mode!==u.Direction.vertical&&(e.preventDefault(),t._move(-t.config.step,e.target.classList.contains("dhx_slider__thumb--extra")))},arrowright:function(e){t.config.mode!==u.Direction.vertical&&(e.preventDefault(),t._move(t.config.step,e.target.classList.contains("dhx_slider__thumb--extra")))},arrowup:function(e){t.config.mode!==u.Direction.horizontal&&(e.preventDefault(),t._move(t.config.step,e.target.classList.contains("dhx_slider__thumb--extra")))},arrowdown:function(e){t.config.mode!==u.Direction.horizontal&&(e.preventDefault(),t._move(-t.config.step,e.target.classList.contains("dhx_slider__thumb--extra")))}},function(){var e=document.activeElement,i=t.getRootView().refs;if(!i)return!1;var n=i.runner;return!(!n||n.el!==e)||!(!t.config.range||!i.extraRunner||i.extraRunner.el!==e)})},e.prototype._move=function(t,e){this.config.inverse&&(t=-t);var i=this.config,n=i.max,o=i.min,r=e?this._getValue(this._extraCurrentPosition):this._getValue(this._currentPosition),s=r+t;this._setValue(r+t,e),(s>n||s=o/2?o:0;return+(Number(i)+Number(r)-s+a).toFixed(5)},e.prototype._setValue=function(t,e){void 0===e&&(e=!1);var i=this.config,n=i.max,o=i.min;if(t>n||tt._currentPosition?t._possibleRange=[t._currentPosition,100]:t._possibleRange=[0,t._currentPosition],t._findNewDirection=null}t._inSide(i)&&t._updatePosition(i,t._isExtraActive),t.paint()},i=function(n){t.events.fire(u.SliderEvents.mouseup,[n]),setTimeout(function(){t._isMouseMoving=!1,t.paint()},4),document.removeEventListener("mouseup",i),document.removeEventListener("mousemove",e)};this.config.helpMessage&&(this._helper=new l.Popup({css:"dhx_tooltip dhx_tooltip--forced dhx_tooltip--light"}),this._helper.attachHTML(this.config.helpMessage)),this._handlers={showHelper:function(e){e.preventDefault(),e.stopPropagation(),t._helper.show(e.target)},onmousedown:function(n){if(!t._disabled&&3!==n.which){var o;if(t.events.fire(u.SliderEvents.mousedown,[n]),t._isMouseMoving=!0,n.target.classList.contains("dhx_slider__thumb--extra")?(t._isExtraActive=!0,o=t._extraCurrentPosition):(t._isExtraActive=!1,o=t._currentPosition),t._findNewDirection=null,t.config.range){var r=t._currentPosition>t._extraCurrentPosition?[t._currentPosition,t._extraCurrentPosition]:[t._extraCurrentPosition,t._currentPosition],s=r[0],a=r[1];t._currentPosition===t._extraCurrentPosition?(t._findNewDirection=o,t._possibleRange=[0,100]):t._possibleRange=oe[1])||(this._updatePosition(e[1],this._isExtraActive),!1)},e.prototype._updatePosition=function(t,e){void 0===e&&(e=!1),t>100&&(t=100),t<0&&(t=0);var i=this.config,n=i.max,o=i.min,r=e?this._extraCurrentPosition:this._currentPosition,s=this._getValue(r),a=this._getValue(t);if(s!==a){var c=(a-o)/(n-o)*100,l=this._isInverse()?100-c:c;e?this._extraCurrentPosition=l:this._currentPosition=l,this.events.fire(u.SliderEvents.change,[a,s,e])}},e.prototype._getRunnerStyle=function(t){var e;void 0===t&&(t=!1);var i=this.config.mode===u.Direction.horizontal?"left":"top",n=t?this._extraCurrentPosition:this._currentPosition;return(e={})[i]=n+"%",e},e.prototype._isInverse=function(){return this.config.inverse&&this.config.mode===u.Direction.horizontal||!this.config.inverse&&this.config.mode===u.Direction.vertical},e.prototype._getRunnerCss=function(t){return void 0===t&&(t=!1),"dhx_slider__thumb"+(t?" dhx_slider__thumb--extra":"")+(this._isMouseMoving&&(t&&this._isExtraActive||!t&&!this._isExtraActive)?" dhx_slider__thumb--active":"")+(this._disabled?" dhx_slider__thumb--disabled":"")+(this._isNullable(t?this._extraCurrentPosition:this._currentPosition)&&!this.config.range?" dhx_slider__thumb--nullable":"")},e.prototype._draw=function(){var t=this.config,e=t.labelPosition,i=t.labelWidth,n=t.mode,o=t.label,s=t.hiddenLabel,a=t.tick,c=t.majorTick,l=t.css,u=t.helpMessage,d="left"===e&&i?i:"";return r.el("div",{class:"dhx_slider dhx_slider--mode_"+n+(o&&"left"===e?" dhx_slider--label-inline":"")+(s?" dhx_slider--label_sr":"")+(a?" dhx_slider--ticks":"")+(c?" dhx_slider--major-ticks":"")+(l?" "+l:"")+(this._disabled?" dhx_slider--disabled":"")},[o?r.el("label.dhx_label.dhx_slider__label",{style:{minWidth:d,maxWidth:d},class:u?"dhx_label--with-help":"",onclick:this._handlers.onlabelClick},u?[r.el("span.dhx_label__holder",o),r.el("span.dhx_label-help.dxi.dxi-help-circle-outline",{tabindex:"0",role:"button",onclick:this._handlers.showHelper})]:o):null,this._drawSlider()])},e.prototype._drawSlider=function(){return r.el(".dhx_widget.dhx_slider__track-holder",{dhx_widget_id:this._uid},[r.el(".dhx_slider__track",{_ref:"track",onmouseover:this._handlers.onmouseover,onmouseout:this._handlers.onmouseout,onclick:this._handlers.onclick},[this._getDetector(),r.el("div",{_ref:"runner",class:this._getRunnerCss(),onmousedown:this._handlers.onmousedown,onmousemove:this._handlers.onmousemove,onfocus:this._handlers.onfocus,onblur:this._handlers.onblur,style:this._getRunnerStyle(),tabindex:0}),this.config.tooltip&&(this._mouseIn||this._focusIn||this._isMouseMoving)?this._drawTooltip():null,this.config.tooltip&&this.config.range&&(this._mouseIn||this._focusIn||this._isMouseMoving)?this._drawTooltip(!0):null,this.config.range?r.el("div",{_ref:"extraRunner",class:this._getRunnerCss(!0),onmousedown:this._handlers.onmousedown,onmousemove:this._handlers.onmousemove,onfocus:this._handlers.onfocus,onblur:this._handlers.onblur,style:this._getRunnerStyle(!0),tabindex:0}):null]),this.config.tick?this._drawTicks():null])},e.prototype._getDetector=function(){var t,e,i;if(this._disabled)return r.el(".dhx_slider__range");var n=this.config.mode===u.Direction.horizontal?"left":"top",o=this.config.mode===u.Direction.horizontal?"width":"height";if(this.config.range){var s=this._currentPosition>this._extraCurrentPosition?[this._currentPosition,this._extraCurrentPosition]:[this._extraCurrentPosition,this._currentPosition],a=s[0],c=s[1];return r.el(".dhx_slider__range",{style:(t={},t[n]=c+"%",t[o]=a-c+"%",t)})}return this._isInverse()?r.el(".dhx_slider__range",{style:(e={},e[n]=this._currentPosition+"%",e[o]=100-this._currentPosition+"%",e)}):r.el(".dhx_slider__range",{style:(i={},i[n]=0,i[o]=this._currentPosition+"%",i)})},e.prototype._drawTooltip=function(t){var e;void 0===t&&(t=!1);var i=t?this._extraCurrentPosition:this._currentPosition,n=this.config.mode===u.Direction.horizontal?"left":"top",o=this.config.mode===u.Direction.horizontal?".dhx_slider__thumb-label--horizontal":".dhx_slider__thumb-label--vertical";(t&&this._isExtraActive||!t&&!this._isExtraActive)&&(o+=".dhx_slider__thumb-label--active");var s=((e={})[n]=i+"%",e);return r.el(".dhx_slider__thumb-label"+o,{style:s},this._getValue(i))},e.prototype._getTicks=function(){for(var t=this.config,e=t.max,i=t.min,n=t.step,o=t.tick,r=t.majorTick,s=e-i,a=n*o/s,c=[],l=0,u=0;l<1;){var d=+(Number(i)+l*s).toFixed(5),h=u%r==0;c.push({position:(this._isInverse()?100*(1-l):100*l)+"%",isMultiple:h,label:h&&"function"==typeof this.config.tickTemplate?this.config.tickTemplate(d):null}),l+=a,u++}return c.push({position:(this._isInverse()?0:100)+"%",isMultiple:!0,label:"function"==typeof this.config.tickTemplate?this.config.tickTemplate(e):null}),c},e.prototype._drawTicks=function(){var t=this.config.mode===u.Direction.horizontal?"left":"top";return r.el(".dhx_slider__ticks-holder",this._getTicks().map(function(e){var i;return r.el("div",{class:"dhx_slider__tick"+(e.isMultiple?" dhx_slider__tick--major":""),style:(i={},i[t]=e.position,i)},void 0!==e.label?[r.el(".dhx_slider__tick-label",e.label)]:null)}))},e.prototype._isNullable=function(t){return this._isInverse()?100===t:0===t},e}(c.View);e.Slider=h},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;io?o:e,i=i<0?0:i>r?r:i;var s=Math.round(i/(r/100)),a=100-Math.round(e/(o/100));this._pickerState.hsv.s=s/100,this._pickerState.hsv.v=a/100}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.calculatePaletteGrip=function(t,e,i){var n=t.height,o=t.width;return e=e<0?0:e>n?n:e,i=i<0?0:i>o?o:i,{s:Math.round(i/(o/100))/100,v:(100-Math.round(e/(n/100)))/100}},e.calculateRangeGrip=function(t,e){var i=t.width;return e=e<0?0:e>i?i:e,{h:Math.round(e/i*360),rangeLeft:e}}},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(140)),n(i(6))},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;i=0&&u<=n._width-s-i&&d>=0&&d<=n._height-r-o?n.events.fire(h.ChartEvents.chartMouseMove,[u,d,n._left+i,n._top+o]):n.events.fire(h.ChartEvents.chartMouseLeave)},onmouseleave:function(){return n.events.fire(h.ChartEvents.chartMouseLeave)}},n._layers=new l.ComposeLayer,n.setConfig(i),n._initEvents();return n.mount(e,r.create({render:function(t,e){if(!n.data.getLength())return r.el("div");var o=[r.resizer(function(t,e){n._width=t,n._height=e||400;var i=n.getRootView();if(i&&i.node&&i.node.el){var o=i.node.el.getBoundingClientRect();n._left=o.left+window.pageXOffset,n._top=o.top+window.pageYOffset}n.events.fire(h.ChartEvents.resize,[{width:n._width,height:n._height}]),n.paint()})];return n._width&&n._height&&o.push(n._layers.toVDOM(n._width,n._height)),r.el(".dhx_widget.dhx_chart",{class:i.css?i.css:"",onmousemove:n._globalHTMLHandlers.onmousemove,onmouseleave:n._globalHTMLHandlers.onmouseleave},o)}})),n}return n(e,t),e.prototype.getSeries=function(t){return this._series[t]},e.prototype.eachSeries=function(t){var e=[];for(var i in this._series)e.push(t.call(this,this._series[i]));return e},e.prototype.destructor=function(){this._tooltip.destructor(),this.events.clear(),this.unmount()},e.prototype.setConfig=function(t){var e,i=this;if(this.config=t,this._layers.clear(),this._series={},this._scales={},t.scales)for(var n in t.scales){var r=o({},t.scales[n]);void 0!==t.scales[n].min&&(e=t.scales[n].min),r.type=r.type||this._detectScaleType(r,n),t.scales.radial&&"radial"!==n&&(r.hidden=!0),this._setScale(r,n)}var s=new _.default;if(this._layers.add(s),t.series.forEach(function(n){void 0!==n.baseLine&&n.baseLine1&&"radial"!==l[0]?l:"radial"===l[0]?l:[h.ScaleType.bottom,h.ScaleType.left]).forEach(function(t){var e=i._scales[t];e&&(c.addScale(t,e),r.stacked?e.add(s):e.add(c))}),i._series[c.id]=c,r.stacked?s.add(c):i._layers.add(c)}),t.legend){var a=o({},t.legend);a.series&&(a.$seriesInfo=a.series.map(function(t){return i._series[t]}));var c=new u.Legend(this.data,a,this.events);this._layers.add(c)}this._tooltip=new d.Tooltip(document.body,{chart:this}),this.paint()},e.prototype._setScale=function(t,e){var i=new f.default[t.type](this.data,t,e);i.config.grid&&"radial"!==i.config.type&&this._layers.add(i.scaleGrid()),this._layers.add(i),this._scales[e]=i},e.prototype._detectScaleType=function(t,e){return"radial"===e?e:t.text?"text":"numeric"},e.prototype._initEvents=function(){var t=this;this.events.on(h.ChartEvents.toggleSeries,function(e,i){if(i){var n=t._series[Object.keys(t._series)[0]];n&&(n.toggle(e),t.paint())}else t._series[e]&&(t._series[e].toggle(),t.paint())},this),this.events.on(c.DataEvents.change,function(){return t.paint()})},e}(a.View);e.Chart=g},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),o=i(142),r=function(){function t(){this._data=[],this._sizes={left:20,right:20,top:10,bottom:10}}return t.prototype.add=function(t){this._data.push(t)},t.prototype.clear=function(){this._data.forEach(function(t){return t.destructor&&t.destructor()}),this._data=[]},t.prototype.getSizes=function(){return this._sizes},t.prototype.toVDOM=function(t,e){var i={left:20,right:20,top:10,bottom:10},r=this._data.filter(function(t){return!t.dataReady||t.dataReady().length});this._data.forEach(function(t){return!t.scaleReady||t.scaleReady(i)});var s=0,a=0;r.forEach(function(t){t.seriesShift&&(s+=t.seriesShift(),a++)});var c=s/a;s=a?(c-s)/2:0,r.forEach(function(t){t.seriesShift&&(t.seriesShift(s),s+=c)}),this._sizes=i;var l=n.sv("g",{transform:"translate("+i.left+", "+i.top+")"},[n.sv("rect.dhx_chart-graph_area",{width:t-i.left-i.right,height:e-i.top-i.bottom,fill:"transparent"}),r.map(function(n){return n.paint(t-(i.left+i.right),e-(i.top+i.bottom))})]),u=n.sv("defs",[o.dropShadow(),o.shadow()]);return n.sv("svg",{width:t,height:e},[u,l])},t}();e.ComposeLayer=r},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0);e.shadow=function(){return n.sv("filter",{id:"shadow"},[n.sv("feDiffuseLighting",{in:"SourceGraphic",result:"light","lighting-color":"white"},[n.sv("feDistantLight",{azimuth:90,elevation:25})]),n.sv("feComposite",{in:"SourceGraphic",in2:"light",operator:"arithmetic",k1:"1",k2:"0",k3:"0",k4:"0"})])},e.dropShadow=function(){return n.sv("filter",{id:"dropshadow",x:"-100%",y:"-100%",width:"300%",height:"300%"},[n.sv("feGaussianBlur",{in:"SourceAlpha",stdDeviation:2}),n.sv("feOffset",{dx:0,dy:0,result:"offsetblur"}),n.sv("feOffset",{dx:0,dy:0,result:"offsetblur"}),n.sv("feFlood",{"flood-color":"rgba(85,85,85,0.5)"}),n.sv("feComposite",{in2:"offsetblur",operator:"in"}),n.sv("feMerge",[n.sv("feMergeNode"),n.sv("feMergeNode",{in:"SourceGraphic"})])])}},function(t,e,i){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(t){for(var e,i=1,n=arguments.length;in[0]&&(s[0]=n[0],s[1]=n[1],s[2]=n[2],s[3]=n[3],s[4]=i.id)});var a=n._chart.getSeries(s[4]);if(a){var c=r.calcPointRef(s[3],s[4]);if(c===n._lastPointRef)return;var l=a.getTooltipText(s[3]);if(l){var u=a.getTooltipType(s[3],s[1],s[2]);n._enableActivePoint(c),n._state.leftOffset=i,n._state.topOffset=o,n._state.value=l,n._state.x=s[1],n._state.y=s[2],n._state.type=u,n._state.chartType=a.config.type,n._state.isVisible=!0,n.paint()}}},n),n._chart.events.on(s.ChartEvents.chartMouseLeave,function(){return n._hide()},n),n}return n(e,t),e.prototype.destructor=function(){this._chart.events.detach(s.ChartEvents.chartMouseLeave,this),this._chart.events.detach(s.ChartEvents.chartMouseMove,this),this.unmount()},e.prototype._hide=function(){this._disableLastActivePoint(),this._state.isVisible=!1,this.paint()},e.prototype._enableActivePoint=function(t){var e=this._chart.getRootView(),i=e&&e.refs&&e.refs[t];i&&(this._disableLastActivePoint(),this._lastPointRef=t,i.patch({class:i.attrs.class+" active-figure"}))},e.prototype._disableLastActivePoint=function(){if(this._lastPointRef){var t=this._chart.getRootView(),e=t&&t.refs&&t.refs[this._lastPointRef];e&&e.patch({class:e.attrs.class.replace(" active-figure","")}),this._lastPointRef=null}},e.prototype._draw=function(){var t,e=this._state,i=e.value,n=e.x,a=e.y,c=e.type,l=e.chartType,u=e.isVisible;if(u&&""!==i){var d=r.getFontStyle("tooltip-text");t=function(t,e,i,n,o){var r=o===s.ChartType.bar?5:0;switch(n){case s.TooltipType.top:return{d:"M0 0 l4 -4 h"+(a=(t+20-8-4)/2)+" a2 2 0 0 0 2 -2 v-18 a2 2 0 0 0 -2 -2 h"+-(t+20-4)+" a2 2 0 0 0 -2 2 v18 a2 2 0 0 0 2 2 h"+a+" Z",left:e,top:i-6+r,textX:0,textY:-15};case s.TooltipType.bot:var a;return{d:"M0 0 l4 4 h"+(a=(t+20-8-4)/2)+" a2 2 0 0 1 2 2 v18 a2 2 0 0 1 -2 2 h"+-(t+20-4)+" a2 2 0 0 1 -2 -2 v-18 a2 2 0 0 1 2 -2 h"+a+" Z",left:e,top:i+6-r,textX:0,textY:15};case s.TooltipType.right:return{d:"M0 0 l4 -4 v-5 a2 2 0 0 1 2 -2 h"+(c=t+20-4)+" a2 2 0 0 1 2 2 v18 a2 2 0 0 1 -2 2 h"+-c+" a2 2 0 0 1 -2 -2 v-5 Z",left:e+1,top:i,textX:c/2+6,textY:0};case s.TooltipType.left:return{d:"M0 0 l-4 -4 v-5 a2 2 0 0 0 -2 -2 h"+-(c=t+20-4)+" a2 2 0 0 0 -2 2 v18 a2 2 0 0 0 2 2 h"+c+" a2 2 0 0 0 2 -2 v-5 Z",left:e-1,top:i,textX:-c/2-6,textY:0};case s.TooltipType.simple:var c;return{d:"M0 0 v-4 a2 2 0 0 1 2 -2 h"+(c=t+20-4)+" a2 2 0 0 1 2 2 v18 a2 2 0 0 1 -2 2 h"+-c+" a2 2 0 0 1 -2 -2 v-6 Z",left:e-c/2-2,top:i-5,textX:c/2+2,textY:6}}}(r.getTextWidth(i,d),n,a,c||s.TooltipType.top,l)}else t={textX:0,textY:0,d:null,left:0,top:0};return o.el(".dhx_chart.tooltip-container",{style:{pointerEvents:"none",width:0,height:0,visibility:u?"visible":"hidden",position:"absolute",left:t.left+this._state.leftOffset+"px",top:t.top+this._state.topOffset+"px"}},u?[o.sv("svg",[o.sv("path",{d:t.d,class:"tooltip-form"}),o.sv("text",{x:t.textX,y:t.textY,class:"tooltip-text"},[r.verticalCenteredText(i)])])]:null)},e}(i(4).View);e.Tooltip=a},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(147),o=i(45),r=i(149),s={radial:n.RadialScale,text:r.TextScale,numeric:o.Scale};e.default=s},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(26),r=i(6),s=function(t){function e(e,i){return t.call(this,e,i,r.ScaleType.radial)||this}return n(e,t),e.prototype.paint=function(t,e){var i=this;if(this.config.hidden)return null;var n=this.config.zebra,r=this.config.value,s=this.config.showAxis?this._axis.steps:null,a=this._axis.steps.map(function(t){return i.point(t)}),c={scales:this._data.map(function(t){return t[r]}),axis:a,realAxis:s,zebra:n};return o.radarScale(c,t,e)},e.prototype.point=function(t){return(t-this._axis.min)/(this._axis.max-this._axis.min)},e}(i(45).Scale);e.RadialScale=s},function(t,e,i){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(t){for(var e,i=1,n=arguments.length;i0;e--)t.push(-Math.pow(10,e));t.push(0)}if(this.config.max>0){var i=Math.ceil(r.log10(this.config.max));for(e=1;e<=i;e++)t.push(Math.pow(10,e))}return t},t.prototype._addPadding=function(){this.config.min-=this.config.padding},t}();e.AxisCreator=a},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;ie?o.TooltipType.left:o.TooltipType.right},e.prototype.getClosest=function(t,e){for(var i=[1/0,null,null,null],n=0,o=this._points;ns&&(i[0]=s,i[1]=r[1],i[2]=r[0],i[3]=r[2])}return i},e.prototype._getText=function(t){return t[4].toString()},e.prototype._getClosestDist=function(t,e,i,n){return this.config.stacked&&t>i?1/0:Math.abs(e-n)},e.prototype._path=function(t,e){return t[0]+=this._shift,"\nM "+e+" "+(t[0]-this.config.barWidth/2)+"\nH "+t[1]+"\nv "+this.config.barWidth+"\nH "+e},e.prototype._base=function(t){var e=this.config.baseLine;return this._baseLinePosition=void 0!==e?this.yScale.point(e)*t:0},e.prototype._text=function(t,e,i){var n=(e+t[1])/2,o=t[0];return{x:n,y:o,class:"bar-text",transform:i&&!isNaN(i)?"rotate("+i+" "+n+" "+o+")":""}},e}(i(72).default);e.default=r},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(0),r=i(26),s=i(5),a=i(6),c=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.paint=function(t,e){var i=this,n=e/2,c=-.25,l=[],u=[],d=[];return this._points.forEach(function(h){var f=h[0],p=h[1],_=h[2],v=h[3],g=h[4],m=0===f||1===f?-1e-6:0,y=r.getCoordinates(c,n,n),b=y[0],x=y[1],w=c+f/2;c+=f+m;var k=r.getCoordinates(c,n,n),C=k[0],E=k[1],S=f>.5?1:0,O=r.getCoordinates(w,n,n),M=w>-.25&&w<.25,T=w>.5||w<0;switch(i.config.subType){case a.NoScaleSubType.basic:var I=M?"donut-value-title start-text":"donut-value-title end-text",D=10,P=T?2*-D:D,V=r.getCoordinates(w,n+10,n+10),L=M?"donut-value start-text":"donut-value end-text",j=o.sv("text",{x:V[0],y:V[1]+P,class:I},[s.verticalCenteredText(v.toString())]),H=o.sv("text",{x:V[0],y:V[1]+P+16,class:L},[s.verticalCenteredText(p.toString())]);u.push(j),u.push(H);break;case a.NoScaleSubType.valueOnly:I=M?"donut-value start-text":"donut-value end-text",D=10,P=T?-D:D,V=r.getCoordinates(w,n+10,n+10);var A=o.sv("text",{x:V[0],y:V[1]+P,class:I},[s.verticalCenteredText(v.toString())]);u.push(A);break;case a.NoScaleSubType.percentOnly:var R=o.sv("text",{x:7*O[0]/9,y:7*O[1]/9,class:"pie-inner-value"},[s.verticalCenteredText(Math.round(100*f)+"%")]);u.push(R)}var F="M "+b+" "+x+" A "+n+" "+n+" 0 "+S+" 1 "+C+" "+E+" L 0 0",B=r.getCoordinates(w,4,4),z=B[0],N=B[1],$=o.sv("path",{d:F,_key:_,fill:g,class:"chart donut",onclick:[i._handlers.onclick,h[1],h[2]],onmouseout:[r.pieLikeHandlers.onmouseout],onmouseover:[r.pieLikeHandlers.onmouseover,z,N]});l.push($),1===i._points.length?d.push([t/2,e/2]):d.push([.8*O[0]+t/2,.8*O[1]+e/2])}),this._center=[t/2,e/2],this._tooltipData=d,l.push(o.sv("circle",{cx:0,cy:0,r:5*n/9,fill:"#FFFFFF"})),l=l.concat(u),o.sv("g",{transform:"translate("+t/2+", "+e/2+")"},l)},e}(i(48).default);e.default=c},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;i-.25&&A<.25?"pie-value start-text":"pie-value end-text";if(f){w.push(s.sv("path",{d:"M"+W[0]+" "+W[1]+" L"+U[0]+" "+U[1]+" h "+R,class:"pie-value-connector"}));var Y=s.sv("text",{x:U[0],y:U[1],dx:R/2+R>0?10:-10,class:G},[c.verticalCenteredText(O.toString())]);w.push(Y)}else{var q=A>.5||A<0?-5:5;Y=s.sv("text",{x:W[0],y:W[1]+q,class:G},[c.verticalCenteredText(O.toString())]);w.push(Y)}if(p||_){var X=s.sv("text",{x:.7*F[0],y:.7*F[1],class:"pie-inner-value"},[_?c.verticalCenteredText(_(E.toString())):c.verticalCenteredText(E.toString())]);w.push(X)}if(v===l.NoScaleSubType.percentOnly){var K=s.sv("text",{x:.5*F[0],y:.5*F[1],class:"pie-inner-value"},[c.verticalCenteredText(Math.round(100*b)+"%")]);w.push(K)}m+=b+T;var J=a.getCoordinates(m,g,g),Z=J[0],Q=J[1],tt="M "+j+" "+H+" A "+g+" "+g+" 0 "+(b>.5?1:0)+" 1 "+Z+" "+Q+" L 0 0",et=a.getCoordinates(A,4,4),it=et[0],nt=et[1],ot=s.sv("path",{d:tt,class:"chart pie",_key:S,fill:I,onclick:[i._handlers.onclick,n[1],n[2]],onmouseover:[a.pieLikeHandlers.onmouseover,it,nt],onmouseout:[a.pieLikeHandlers.onmouseout]});if(k.push(ot),i._points.length>1&&u){var rt={"stroke-width":d,stroke:u},st=s.sv("path",o({d:"M0 0 L"+Z+" "+Q,fill:"none"},rt));C.push(st)}1===i._points.length?y.push([t/2,e/2]):y.push([.7*F[0]+t/2,.7*F[1]+e/2])}),this._center=[t/2,e/2],this._tooltipData=y,b.push(s.sv("defs",x)),b=(b=(b=b.concat(k)).concat(C)).concat(w),s.sv("g",{transform:"translate("+t/2+", "+e/2+")"},b)},e}(i(48).default);e.default=u},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(0),r=i(26),s=i(5),a=i(6),c=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.paint=function(t,e){var i=this,n=this.config,c=n.subType,l=n.useLines,u=n.showText,d=n.showTextTemplate,h=e/2,f=.5*h,p=h/5,_=[],v=-.25,g=[],m=[];return this._points.forEach(function(n){var y=n[0],b=n[1],x=n[2],w=n[3],k=n[4],C=0===y||1===y?-1e-6:0,E=r.getCoordinates(v,h,f),S=E[0],O=E[1],M=v+y/2,T=M<.25?5:-5,I=r.getCoordinates(M,h,f),D=0;M>0&&M<.5&&(D=p*Math.sin(2*Math.PI*M));var P=r.getCoordinates(M,h+5+D,f+5+D),V=r.getCoordinates(M,h+30+D,f+30+D),L=v+y+C,j=r.getCoordinates(L,h,f),H=j[0],A=j[1],R=y>.5?1:0,F=M>-.25&&M<.25?"pie-value start-text":"pie-value end-text";if(l){m.push(o.sv("path",{d:"M"+P[0]+" "+P[1]+" L"+V[0]+" "+V[1]+" h "+T,class:"pie-value-connector"}));var B=o.sv("text",{x:V[0],y:V[1],dx:T/2+T>0?10:-10,class:F},[s.verticalCenteredText(w.toString())]);m.push(B)}else{var z=M>.5||M<0?-10:10;B=o.sv("text",{x:P[0],y:P[1]+z,class:F},[s.verticalCenteredText(w.toString())]);m.push(B)}if(u||d){B=o.sv("text",{x:.7*I[0],y:.7*I[1],class:"pie-inner-value"},[d?s.verticalCenteredText(d(b)):s.verticalCenteredText(b.toString())]);m.push(B)}if(c===a.NoScaleSubType.percentOnly){var N=o.sv("text",{x:.6*I[0],y:.6*I[1],class:"pie-inner-value"},[s.verticalCenteredText(Math.round(100*y)+"%")]);m.push(N)}var $="";if(v<=0&&L>=.5?$="M "+h+" 0 v "+p+" A "+h+" "+f+" 0 1 1 "+-h+" "+p+" v "+-p:v<=0&&L<.5?$="M "+h+" 0 v "+p+" A "+h+" "+f+" 0 0 1 "+H+" "+(A+p)+" v "+-p:v>0&&v<=.5&&L>=.5?$="M "+S+" "+O+" v "+p+" A "+h+" "+f+" 0 0 1 "+-h+" "+p+" v "+-p:v>0&&L<.5&&($="M "+S+" "+O+" v "+p+" A "+h+" "+f+" 0 0 1 "+H+" "+(A+p)+" v "+-p),$){var W=o.sv("path",{_key:x+"__shadow__",d:$,fill:k,onclick:[i._handlers.onclick,n[1],n[2]],class:"chart pie3d addition",stroke:"none",filter:"url(#shadow)"});g.push(W)}var U="M "+S+" "+O+" A "+h+" "+f+" 0 "+R+" 1 "+H+" "+A+" L 0 0";g.push(o.sv("path",{d:U,_key:x,fill:k,stroke:"none",onclick:[i._handlers.onclick,n[1],n[2]],class:"chart pie3d"})),1===i._points.length?_.push([t/2,e/2]):_.push([.7*I[0]+t/2,.7*I[1]+e/2]),v=L}),this._center=[t/2,e/2],this._tooltipData=_,g=g.concat(m),o.sv("g",{transform:"translate("+t/2+", "+e/2+")"},g)},e}(i(48).default);e.default=c},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;i '+t.value+"":t.src?'
'+t.value+"":''+t.value+""},b=function(t){function e(e,i){var n=t.call(this,e,r.extend({template:y,listHeight:224,itemHeight:32,disabled:!1},i))||this;n.config.itemsCount=n.config.itemsCount||n.config.showItemsCount,n.config.helpMessage=n.config.helpMessage||n.config.help,n.config.cellHeight&&32===n.config.itemHeight&&(n.config.itemHeight=n.config.cellHeight),n.config.labelInline&&(n.config.labelPosition="left"),Array.isArray(n.config.data)?(n.events=new a.EventSystem(n),n.data=new d.DataCollection({},n.events),n.data.parse(n.config.data)):n.config.data?(n.data=n.config.data,n.events=n.data.events,n.events.context=n):(n.events=new a.EventSystem(n),n.data=new d.DataCollection({},n.events)),n.popup=new p.Popup,n.popup.events.on(p.PopupEvents.afterShow,function(){n.paint()}),n.popup.events.on(p.PopupEvents.afterHide,function(){n.config.multiselection&&(n._state.value=""),n.paint()}),n.popup.events.on(p.PopupEvents.beforeHide,function(t){if(t){if(!n.events.fire(m.ComboboxEvents.beforeClose))return;n.events.fire(m.ComboboxEvents.afterClose),n.events.fire(m.ComboboxEvents.close)}}),n.config.readonly&&(n._keyListener=new _.KeyListener),n._state={value:"",ignoreNext:!1,canDelete:!1,unselectActive:!1,currentState:m.ComboState.default},n._initHandlers(),n._createLayout(),n._initEvents();var o=s.create({render:function(){return n._draw()},hooks:{didRedraw:function(){n.popup.isVisible()&&(n.focus(),n._configurePopup())}}});return n.mount(e,o),n}return n(e,t),e.prototype.focus=function(){if(this.config.disabled)return!1;this.getRootView().refs.input.el.focus()},e.prototype.enable=function(){this.config.disabled=!1,this.paint()},e.prototype.disable=function(){this.config.disabled=!0,this.paint()},e.prototype.isDisabled=function(){return this.config.disabled},e.prototype.clear=function(){if(this.config.disabled)return!1;this.list.selection.remove(),this._state.value="",this._filter(),this.paint()},e.prototype.getValue=function(t){var e=this.list.selection.getId();return t?r.wrapBox(e):Array.isArray(e)?e.join(","):e},e.prototype.setValue=function(t){var e=this;if(this.config.disabled)return!1;if(this._filter(),this.list.selection.remove(),this._state.value="",this.config.multiselection)"string"==typeof t&&(t=t.split(",")),t.forEach(function(t){return e.list.selection.add(t)});else{var i=r.unwrapBox(t);this.list.selection.add(i);var n=this.data.getItem(i);n&&(this._state.value=this._getItemText(n))}this.paint()},e.prototype.destructor=function(){this.popup.destructor(),this.events.clear(),this.list.destructor(),this._layout.config=null,this._layout.destructor(),this.unmount()},e.prototype.setState=function(t){switch(t){case"success":this._state.currentState=m.ComboState.success;break;case"error":this._state.currentState=m.ComboState.error;break;default:this._state.currentState=m.ComboState.default}this.paint()},e.prototype._createLayout=function(){var t=this,e=this.list=new f.List(null,{template:this.config.template,virtual:this.config.virtual,keyNavigation:function(){return t.popup.isVisible()},multiselection:this.config.multiselection,itemHeight:this.config.itemHeight,height:this.config.listHeight,data:this.data}),i=this._layout=new h.Layout(this.popup.getContainer(),{css:"dhx_combobox-options dhx_combobox__options",rows:[{id:"select-unselect-all",hidden:!this.config.multiselection||!this.config.selectAllButton},{id:"list",css:"dhx_layout-cell--gravity"},{id:"not-found",hidden:!0}],on:{click:{".dhx_combobox__action-select-all":this._handlers.selectAll}}});i.getCell("list").attach(e),this.config.multiselection&&this.config.selectAllButton&&i.getCell("select-unselect-all").attach(g.selectAllView)},e.prototype._initHandlers=function(){var t=this;this.config.helpMessage&&(this._helper=new p.Popup({css:"dhx_tooltip dhx_tooltip--forced dhx_tooltip--light"}),this._helper.attachHTML(this.config.helpMessage)),this._handlers={showHelper:function(e){e.preventDefault(),e.stopPropagation(),t._helper.show(e.target)},selectAll:function(){t.list.selection.remove(),t._state.unselectActive?(t.data.filter(),t.list.selection.getId().forEach(function(e){t.list.selection.remove(e)}),t.config.selectAllButton&&(t._layout.getCell("select-unselect-all").attach(g.selectAllView),t._state.unselectActive=!1)):(t.data.filter(),t.list.selection.add(),t.config.selectAllButton&&(t._layout.getCell("select-unselect-all").attach(g.unselectAllView),t._state.unselectActive=!0)),t.paint()},onkeydown:function(e){var i;(t.popup.isVisible()||e.which!==l.KEY_CODES.DOWN_ARROW||t._showOptions(),t.popup.isVisible()&&e.which===l.KEY_CODES.RIGHT_ARROW)&&(t.config.readonly&&!t.config.multiselection&&(i=t.list.getFocusIndex())>=0&&i<=t.data.getLength()&&(e.preventDefault(),t.list.setFocusIndex(i+1)));t.popup.isVisible()&&e.which===l.KEY_CODES.LEFT_ARROW&&(t.config.readonly&&!t.config.multiselection&&(i=t.list.getFocusIndex())>=0&&i<=t.data.getLength()&&(e.preventDefault(),t.list.setFocusIndex(i-1)));t.popup.isVisible()&&e.which===l.KEY_CODES.ESC&&t._hideOptions(),t.popup.isVisible()&&e.which===l.KEY_CODES.ENTER&&t.setValue(t.list.data.getId(t.list.getFocusIndex()))},onkeyup:function(e){if(t.config.multiselection&&!t.config.itemsCount)if(t._state.ignoreNext)t._state.ignoreNext=!1;else if(e.which===l.KEY_CODES.BACKSPACE&&t._state.canDelete&&t.list.selection.getId().length){var i=t.list.selection.getId(),n=i[i.length-1];t.list.selection.remove(n),t.paint(),t.paint()}},oninput:function(e){if(!t.config.disabled){var i=e.target.value;t.events.fire(m.ComboboxEvents.input,[i]),t._state.value=i,t._filter(),i.length?t._state.canDelete=!1:(t._state.ignoreNext=!0,t._state.canDelete=!0),t.config.multiselection||(t.list.selection.remove(),t.paint()),t.popup.isVisible()||t._showOptions()}},oninputclick:function(e){if(!t.config.disabled){if(t.focus(),e.target.classList.contains("dhx_combobox__action-remove")){var i=c.locate(e);if(!i)return;return t.list.selection.remove(i),void t.paint()}if(e.target.classList.contains("dhx_combobox__action-clear-all"))return t.list.selection.getId().forEach(function(e){return t.list.selection.remove(e)}),t.config.selectAllButton&&t._state.unselectActive&&(t._layout.getCell("select-unselect-all").attach(g.selectAllView),t._state.unselectActive=!1),void t.paint();e.preventDefault(),t.popup.isVisible()?t.focus():t._showOptions()}},toggleIcon:function(){t.focus(),t.popup.isVisible()?t._hideOptions():t._showOptions()}}},e.prototype._initEvents=function(){var t=this;this.list.events.on(f.ListEvents.click,function(){t.config.multiselection||t._hideOptions()}),this.data.events.on(d.DataEvents.change,function(e,i,n){n&&n.hasOwnProperty("$selected")&&t._updateSelectedItem(e)}),this.config.readonly&&this.popup.events.on(p.PopupEvents.afterShow,function(){if(t._state.value){var e=t.list.selection.getId();t.list.setFocus(e)}else t.list.setFocus(t.data.getId(0));t._keyListener.startNewListen(function(e){return t._findBest(e)})})},e.prototype._showOptions=function(){this._state.value.length&&(this._state.canDelete=!0),this._filter(),this._configurePopup()&&this.events.fire(m.ComboboxEvents.open)},e.prototype._configurePopup=function(){var t=this.getRootView();if(!t||!t.refs||!t.refs.holder)return!1;if(!this.popup.isVisible()){var e=t.refs.holder.el;this.popup.getContainer().style.width=e.offsetWidth+"px",this.popup.show(e,{mode:c.Position.bottom})}return!0},e.prototype._hideOptions=function(){this.events.fire(m.ComboboxEvents.beforeClose)&&(this.config.readonly&&this._keyListener.endListen(),this.list.setFocus(this.data.getId(0)),this.config.multiselection||this.config.readonly||this.list.selection.contains()||(this._state.value=""),this.popup.hide(),this.paint(),this.events.fire(m.ComboboxEvents.afterClose),this.events.fire(m.ComboboxEvents.close))},e.prototype._filter=function(){var t=this;if(!this.config.readonly){if(this.data.filter(function(e){return t.config.filter?t.config.filter(e,t._state.value):r.isEqualString(t._state.value,t._getItemText(e))}),this.config.multiselection)this.list.setFocus(this.data.getId(0));else{var e=this.data.getIndex(this.list.selection.getId());this.list.setFocus(this.data.getId(e>-1?e:0))}0===this.data.getLength()?(this.config.multiselection&&this.config.selectAllButton&&this._layout.getCell("select-unselect-all").hide(),this._layout.getCell("list").hide(),this._layout.getCell("not-found").attach(g.emptyListView),this._layout.getCell("not-found").show()):(this.config.multiselection&&this.config.selectAllButton&&this._layout.getCell("select-unselect-all").show(),this._layout.getCell("not-found").isVisible()&&(this._layout.getCell("list").show(),this._layout.getCell("not-found").hide()))}},e.prototype._findBest=function(t){var e=this,i=this.data.find(function(i){return r.isEqualString(t,e._getItemText(i))});i&&this.list.selection.getId()!==i.id&&(this.list.setFocus(i.id),this.list.selection.add(i.id),this.paint())},e.prototype._draw=function(){var t=this.config,e=t.multiselection,i=t.labelPosition,n=t.labelWidth,r=t.hiddenLabel,a=t.required,c=t.disabled,l=t.css,u=t.label,d=t.helpMessage,h=t.readonly,f=t.placeholder,p=e?null:this.data.getItem(this.list.selection.getId()),_=!this.list.selection.getId()||0===this.list.selection.getId().length,v="left"===i&&n?n:"";return s.el(".dhx_widget.dhx_combobox"+("left"===i?".dhx_combobox--label-inline":"")+(r?".dhx_combobox--sr_only":"")+(a?".dhx_combobox--required":"")+(c?".dhx_combobox--disabled":"")+(l?"."+l:""),{dhx_widget_id:this._uid,onkeydown:this._handlers.onkeydown,onkeyup:this._handlers.onkeyup},[u?s.el("label.dhx_label.dhx_combobox__label",{style:{minWidth:v,maxWidth:v},class:d?"dhx_label--with-help":"",onclick:this._handlers.oninputclick},d?[s.el("span.dhx_label__holder",u),s.el("span.dhx_label-help.dxi.dxi-help-circle-outline",{tabindex:"0",role:"button",onclick:this._handlers.showHelper})]:u):null,s.el("div.dhx_combobox-input-box"+(c?".dhx_combobox-input-box--disabled":"")+(h?".dhx_combobox-input-box--readonly":"")+(this._state.currentState===m.ComboState.error?".dhx_combobox-input-box--state_error":"")+(this._state.currentState===m.ComboState.success?".dhx_combobox-input-box--state_success":""),{_ref:"holder"},[s.el("div.dhx_combobox-input__icon",{onclick:this._handlers.toggleIcon},[s.el("span"+(this.popup.isVisible()?".dxi.dxi-menu-up":".dxi.dxi-menu-down"))]),s.el("div.dhx_combobox-input-list-wrapper",{onclick:this._handlers.oninputclick},[s.el("ul.dhx_combobox-input-list",o(this._drawSelectedItems(),[s.el("li.dhx_combobox-input-list__item.dhx_combobox-input-list__item--input",[s.el("input.dhx_combobox-input",{oninput:this._handlers.oninput,_ref:"input",_key:this._uid,type:"text",placeHolder:_&&f?f:void 0,value:h&&p?this._getItemText(p):this._state.value,readOnly:h||c,required:a})])]))])])])},e.prototype._drawSelectedItems=function(){var t=this;if(!this.config.multiselection)return[];if(this.config.itemsCount){var e=this.list.selection.getId().length;return e?[s.el("li.dhx_combobox-input-list__item.dhx_combobox-tag",[s.el("span.dhx_combobox-tag__value",function(t,e){return"function"==typeof e?e(t):t+" "+v.default.selectedItems}(e,this.config.itemsCount)),s.el("button.dhx_button.dhx_combobox-tag__action.dhx_combobox__action-clear-all",[s.el("span.dhx_button__icon.dxi.dxi-close-circle")])])]:[]}return this.list.selection.getId().map(function(e){var i=t.data.getItem(e);return i?s.el("li.dhx_combobox-input-list__item.dhx_combobox-tag",{dhx_id:e},[t._drawImageOrIcon(i),s.el("span.dhx_combobox-tag__value",t._getItemText(i)),s.el("button.dhx_button.dhx_button--icon.dhx_combobox-tag__action.dhx_combobox__action-remove",{type:"button"},[s.el("span.dhx_button__icon.dxi.dxi-close-circle")])]):null})},e.prototype._drawImageOrIcon=function(t){return t.src?s.el("img.dhx_combobox-tag__image",{src:t.src}):t.icon?s.el("span.dhx_combobox-tag__icon",{class:t.icon}):null},e.prototype._getItemText=function(t){return t?t.value:null},e.prototype._updateSelectedItem=function(t){if(this.config.multiselection)return this.data.getItem(t).$selected?this.config.selectAllButton&&!this._state.unselectActive&&this.data.getLength()===this.list.selection.getId().length&&(this._layout.getCell("select-unselect-all").attach(g.unselectAllView),this._state.unselectActive=!0):this.config.selectAllButton&&this._state.unselectActive&&(this._layout.getCell("select-unselect-all").attach(g.selectAllView),this._state.unselectActive=!1),this._state.value.length||(this._state.canDelete=!0),void this.paint();this._state.value=this._getItemText(this.data.getItem(t))||"",this.paint()},e}(u.View);e.Combobox=b},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.KEY_CODES={BACKSPACE:8,ENTER:13,ESC:27,DOWN_ARROW:40,LEFT_ARROW:37,RIGHT_ARROW:39}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(){var t=this;this._sequence="",document.addEventListener("keydown",function(e){if(t._isActive){var i=e.key;"Backspace"===i&&t._sequence.length>0&&(t._sequence=t._sequence.slice(0,t._sequence.length-1),t._change()),i.length<2&&(t._sequence+=i,t._change())}})}return t.prototype.startNewListen=function(t){this._isActive=!0,this._sequence="",this._currentAction=t},t.prototype.endListen=function(){this._currentAction=null,this.reset(),this._isActive=!1},t.prototype.reset=function(){this._sequence=""},t.prototype._change=function(){this._currentAction(this._sequence),this._addClearTimeout()},t.prototype._addClearTimeout=function(){var t=this;this._clearTimeout&&clearTimeout(this._clearTimeout),this._clearTimeout=setTimeout(function(){t.reset(),t._clearTimeout=null},2e3)},t}();e.KeyListener=n},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(0),o=i(50);e.selectAllView=function(){return n.el(".dhx_list-item.dhx_combobox-options__item.dhx_combobox-options__item--select-all.dhx_combobox__action-select-all",o.default.selectAll)},e.unselectAllView=function(){return n.el(".dhx_list-item.dhx_combobox-options__item.dhx_combobox-options__item--select-all.dhx_combobox__action-select-all",o.default.unselectAll)},e.emptyListView=function(){return n.el("ul.dhx_list",[n.el("li.dhx_list-item.dhx_combobox-options__item",{},o.default.notFound)])}},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(166)),n(i(51))},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;ie.offsetHeight,n=t.node.attrs.class.replace(" dhx_dataview--has-scroll",""),o=i?n+" dhx_dataview--has-scroll":n;t.node.patch({class:o})}}});return n.mount(e,l),n}return n(e,t),e.prototype.editItem=function(t){this._edited=t,this.data.getItem(this._edited)&&this.events.fire(p.DataViewEvents.beforeEditStart,[t])?(this._getHotkeys(),this.paint(),this.events.fire(p.DataViewEvents.afterEditStart,[t])):this._edited=null},e.prototype.getFocusItem=function(){return this.data.getItem(this.data.getId(this._focusIndex))},e.prototype.setItemInRow=function(t){this.config.itemsInRow=t,this.paint()},e.prototype.setFocus=function(t){var e=this.data.getIndex(t);this._setFocusIndex(e)},e.prototype.getFocus=function(){var t=this.data.getItem(this.data.getId(this._focusIndex));if(t)return t.id},e.prototype.destructor=function(){this.events.clear(),this._navigationDestructor&&this._navigationDestructor(),this._documentClickDestuctor&&this._documentClickDestuctor(),this.unmount()},e.prototype.getFocusIndex=function(){return this._focusIndex},e.prototype.setFocusIndex=function(t){this._setFocusIndex(t)},e.prototype.edit=function(t){this.editItem(t)},e.prototype._setFocusIndex=function(t){if(!(t<0||t>this.data.getLength()-1)){this._focusIndex=t;var e=this.getRootNode();if(e&&e.parentNode){var i=e.children[Math.floor(this._focusIndex/this.config.itemsInRow)];if(i){var n=i.children[this._focusIndex%this.config.itemsInRow],o=parseInt(this.config.gap.toString().replace("px",""),null);n.offsetTop>=e.clientHeight+e.scrollTop-n.clientHeight?e.scrollTop=n.offsetTop-e.clientHeight+n.clientHeight+o:n.offsetTop0;return this.config.$validationStatus=t?p.ValidationStatus.success:p.ValidationStatus.error,this.paint(),t},e.prototype.clearValidate=function(){this.config.$validationStatus=p.ValidationStatus.pre,this.paint()},e.prototype.clear=function(){this.data.removeAll(),this.paint()},e.prototype.getValue=function(){return this.data.map(function(t){return t.file})||[]},e.prototype.getWidget=function(){return this._uploader},e.prototype.setConfig=function(t){this._initView(t)},e.prototype._initView=function(t){var e=this;if(!h.isEmptyObj(t)){for(var i in this.config={type:this.config.type,id:this.config.id,name:this.config.name,disabled:!1},t)"id"!==i&&"type"!==i&&"name"!==i&&(this.config[i]=t[i]);this.config.labelInline&&(this.config.labelPosition="left"),this.config.helpMessage=this.config.helpMessage||this.config.help,this.events.on(p.BaseElementEvent.change,function(){e.validate(),e.paint()}),this.events.fire(p.BaseElementEvent.configUpdate,[this.config]),this.paint()}},e.prototype._draw=function(){var t=this;this.config.helpMessage&&(this._helper?this._helper.attachHTML(this.config.helpMessage):(this._helper=new d.Popup({css:"dhx_tooltip dhx_tooltip--forced dhx_tooltip--light"}),this._helper.attachHTML(this.config.helpMessage)));var e=this.data.getLength()?r.el("ul.dhx_simplevault__files.dhx_simplevault-files",{class:this.config.$vaultHeight?"":"dhx_simplevault-files__fixed"},this.data.map(function(e){return r.el("li.dhx_simplevault-files__item",[r.el("span.dhx_simplevault-files__item-name",e.file.name),r.el(".dhx_button.dhx_simplevault-files__delete.dhx_button--icon.dhx_button--view_link.dhx_button--size_small.dhx_button--color_secondary.dhx_button--circle",{dhx_id:e.id,onclick:t._handlers.remove},[r.el("span.dxi.dxi-delete-forever")])])})):null,i=this.config,n=i.id,o=i.labelPosition,s=i.label,a=i.labelWidth,c=i.helpMessage,l=i.disabled,u=i.required,p=i.validation,_="left"===o&&a?a:"";return r.el(".dhx_form-group.dhx_form-group--simplevault",{class:h.getFormItemCss(this.config,Boolean(u)||Boolean(p))},[r.el("label.dhx_label",{for:n||this._uid,style:{minWidth:_,maxWidth:_},class:c?"dhx_label--with-help":"",onclick:this._handlers.add},c?[r.el("span.dhx_label__holder",s),r.el("span.dhx_label-help.dxi.dxi-help-circle-outline",{tabindex:"0",role:"button",onclick:this._handlers.showHelper})]:s),r.el(".dhx_input__wrapper",[r.el("div",{_hooks:{didInsert:function(e){t._uploader.linkDropArea(e.el)}},ondragover:this._handlers.ondragover,class:"dhx_simplevault"+(this._dragover?" dhx_simplevault--on-drag":"")},[r.el("div.dhx_simplevault-loader",[r.el("span.dhx_simplevault__icon.dxi.dxi-vault")]),r.el(".dhx_simplevault__drop-area",[r.el("input.dhx_simplevault__input",{type:"file",id:n,disabled:l}),r.el("span.dhx_simplevault__icon.dxi.dxi-vault"),r.el("span.dhx_simplevault__title",[r.el("span",f.default.simpleVaultText),r.el("br"),r.el("label.dhx_simplevault__label",{onclick:this._handlers.add,for:n}," "+f.default.simpleVaultLabel)])]),e]),h.getValidationMessage(this.config)&&r.el("span.dhx_input__caption",{},h.getValidationMessage(this.config))])])},e}(c.View);e.SimpleVault=_},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(30),r=i(0),s=i(18),a=i(11),c=i(3),l=i(8),u=i(9),d=function(t){function e(e,i){var n=t.call(this,null,i)||this;n.events=new c.EventSystem,n._initView(i);return n.mount(e,r.create({render:function(){return n._draw()}})),n}return n(e,t),e.prototype.disable=function(){this.config.disabled=!0,this.paint()},e.prototype.enable=function(){this.config.disabled=!1,this.paint()},e.prototype.isDisabled=function(){return this.config.disabled},e.prototype.validate=function(){var t,e=this.config,i=e.required,n=e.value;return t=e.validation?this.config.validation(n):!i||Boolean(n),this.config.$validationStatus=t?l.ValidationStatus.success:l.ValidationStatus.error,this.paint(),t},e.prototype.clearValidate=function(){this.config.$validationStatus=l.ValidationStatus.pre,this.paint()},e.prototype.setValue=function(t){this.timepicker.setValue(t),this.config.controls&&this.timepicker.events.fire(o.TimepickerEvents.apply,[]),this.paint()},e.prototype.getValue=function(){return this.config.value||""},e.prototype.clear=function(){12===this.config.timeFormat?this.timepicker.setValue("12:00AM"):this.timepicker.setValue("00:00"),this.config.value=""},e.prototype.getWidget=function(){return this.timepicker},e.prototype.setConfig=function(t){this._initView(t)},e.prototype._initView=function(t){var e=this;if(!u.isEmptyObj(t)){for(var i in this.timepicker&&this.timepicker.destructor(),this._popup&&this._popup.destructor(),this.config={type:this.config.type,id:this.config.id,name:this.config.name,disabled:!1,editable:!1,value:""},t)"id"!==i&&"type"!==i&&"name"!==i&&(this.config[i]=t[i]);this.config.editable=this.config.editable||this.config.editing,this._popup=new a.Popup({css:"dhx_widget--border-shadow"}),this.timepicker=new o.Timepicker(null,t),this._popup.attach(this.timepicker),this.config.value&&(this.timepicker.setValue(this.config.value),this.config.value=this.timepicker.getValue()),this.config.controls?(this.timepicker.events.on(o.TimepickerEvents.close,function(){e._popup.hide()}),this.timepicker.events.on(o.TimepickerEvents.apply,function(){e.config.value=e.timepicker.getValue(),e.validate(),e._popup.hide()}),this._popup.events.on(a.PopupEvents.afterHide,function(){var t=e.config.value;t&&t!==e.timepicker.getValue()&&e.timepicker.setValue(t),""===t&&e.clear(),e.paint()})):(this.timepicker.events.on(o.TimepickerEvents.change,function(){e.config.value=e.timepicker.getValue(),e.validate()}),this._popup.events.on(a.PopupEvents.afterHide,function(){e.paint()})),this.events.on(l.BaseElementEvent.change,function(t){var i=12===e.config.timeFormat?7:5;if(t.length>=i){var n=e._inputValidate(t);e._inputValidate(t)?e.timepicker.setValue(n):e.validate()}}),this.events.fire(l.BaseElementEvent.configUpdate,[this.config]),this.clearValidate()}},e.prototype._getHandlers=function(){var t=this;return{onfocus:function(){if(!t._popup.isVisible()){var e=t.getRootView().refs.input.el;t._popup.show(e)}},onkeyup:function(e){var i=e.target.value.trim();t.config.controls||13!==e.keyCode||(t._popup.isVisible()&&t._popup.hide(),t.getRootView().refs.input.el.blur());(e.which>=48&&e.which<=57||e.which>=65&&e.which<=90||e.which>=96&&e.which<=105)&&t.events.fire(l.BaseElementEvent.change,[i])}}},e.prototype._inputValidate=function(t){var e=this.config.timeFormat;return u.isTimeFormat(t,e)?t:""},e.prototype._draw=function(){var t=this.config,e=t.value,i=t.required,n=t.disabled,o=t.placeholder,s=t.name,a=t.id,c=t.validation,l=t.editable;return r.el("div.dhx_form-group",{class:u.getFormItemCss(this.config,Boolean(i)||Boolean(c))},[this._drawLabel(),r.el(".dhx_input__wrapper",[r.el("div.dhx_input__container",{},[r.el(".dhx_input__icon.dxi.dxi-clock-outline"),r.el("input.dhx_input.dhx_input--icon-padding",{_key:this._uid,value:e,type:"text",_ref:"input",required:i,disabled:n,placeholder:o||"",name:s||"",id:a||this._uid,onfocus:this._handlers.onfocus,onkeyup:this._handlers.onkeyup,autocomplete:"off",readOnly:!l})]),u.getValidationMessage(this.config)&&r.el("span.dhx_input__caption",{},u.getValidationMessage(this.config))])])},e}(s.Label);e.TimeInput=d},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(31),r=i(3),s=i(0),a=i(18),c=i(11),l=i(8),u=i(9),d=function(t){function e(e,i){var n=t.call(this,null,i)||this;n.events=new r.EventSystem,n._initView(i);return n.mount(e,s.create({render:function(){return n._draw()}})),n}return n(e,t),e.prototype.disable=function(){this.config.disabled=!0,this.paint()},e.prototype.enable=function(){this.config.disabled=!1,this.paint()},e.prototype.isDisabled=function(){return this.config.disabled},e.prototype.validate=function(){var t,e=this.config,i=e.required,n=e.value;return t=e.validation?this.config.validation(n):!i||Boolean(n),this.config.$validationStatus=t?l.ValidationStatus.success:l.ValidationStatus.error,this.paint(),t},e.prototype.clearValidate=function(){this.config.$validationStatus=l.ValidationStatus.pre,this.paint()},e.prototype.setValue=function(t){this.config.value=t,this.colorpicker.setValue(t),this.paint()},e.prototype.getValue=function(){return this.config.value||""},e.prototype.clear=function(){this.config.value="",this.paint()},e.prototype.getWidget=function(){return this.colorpicker},e.prototype.setConfig=function(t){this._initView(t)},e.prototype._initView=function(t){var e=this;if(!u.isEmptyObj(t)){for(var i in this.colorpicker&&this.colorpicker.destructor(),this._popup&&this._popup.destructor(),this.config={type:this.config.type,id:this.config.id,name:this.config.name,disabled:!1,editable:!1,value:""},t)"id"!==i&&"type"!==i&&"name"!==i&&(this.config[i]=t[i]);this.config.editable=this.config.editable||this.config.editing,this._popup=new c.Popup({css:"dhx_widget--border-shadow"}),this.colorpicker=new o.Colorpicker(null,t),this._popup.attach(this.colorpicker),this.config.value&&(this.colorpicker.setValue(this.config.value),this.config.value=this.colorpicker.getValue()),this.colorpicker.events.on(o.ColorpickerEvents.change,function(){e.config.value=e.colorpicker.getValue(),e._popup.hide(),e.validate()}),this.events.on(l.BaseElementEvent.change,function(t){var i=e._inputValidate(t);e._inputValidate(t)?e.setValue(i):e.validate()}),this.events.fire(l.BaseElementEvent.configUpdate,[this.config]),this.clearValidate()}},e.prototype._getHandlers=function(){var t=this;return{onfocus:function(){if(!t._popup.isVisible()){var e=t.getRootView().refs.input.el;t._popup.show(e)}},onchange:function(e){var i=e.target.value;t.events.fire(l.BaseElementEvent.change,[i])},onkeyup:function(e){13===e.keyCode&&(t._popup.isVisible()&&t._popup.hide(),t.getRootView().refs.input.el.blur())}}},e.prototype._inputValidate=function(t){return o.isHex(t)?t:""},e.prototype._draw=function(){var t=this.config,e=t.required,i=t.value,n=t.icon,o=t.disabled,r=t.placeholder,a=t.name,c=t.id,l=t.editable;return s.el("div.dhx_form-group",{class:u.getFormItemCss(this.config,Boolean(e)||Boolean(this.config.validation))},[this._drawLabel(),s.el(".dhx_input__wrapper",[s.el("div.dhx_input__container",{},[s.el(".dhx_input__icon",{class:n||"dxi dxi-eyedropper-variant"+(i?" dhx_input__icon--color-selected":""),style:{"background-color":i||"transparent"}}),s.el("input.dhx_input.dhx_input--icon-padding",{_key:this._uid,value:i,type:"text",_ref:"input",required:e,disabled:o,placeholder:r||"",name:a||"",id:c||this._uid,onfocus:this._handlers.onfocus,onchange:this._handlers.onchange,onkeyup:this._handlers.onkeyup,autocomplete:"off",readOnly:!l})]),u.getValidationMessage(this.config)&&s.el("span.dhx_input__caption",{},u.getValidationMessage(this.config))])])},e}(a.Label);e.ColorpickerInput=d},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(185)),n(i(10)),n(i(54)),n(i(53)),n(i(20))},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;i=0&&(this._currentData[o].$css=i.$css),this.paint()}},e.prototype.removeRowCss=function(t,e){var i=this.data.getItem(t),n=i.$css?i.$css.replace(e,""):"";i.$css=n},e.prototype.addCellCss=function(t,e,i){var n=this._getColumn(e);n&&(n.$cellCss[t]?n.$cellCss[t]+=n.$cellCss[t].match(new RegExp(i,"g"))?"":" "+i:this.data.getItem(t)&&(n.$cellCss[t]=i+" "),this.paint())},e.prototype.removeCellCss=function(t,e,i){var n=this._getColumn(e);n&&(n.$cellCss[t]?(n.$cellCss[t]=n.$cellCss[t].replace(i,""),this.paint()):this.data.getItem(t)&&(n.$cellCss[t]=""))},e.prototype.showColumn=function(t){var e=this._getColumn(t);e&&e.hidden&&(e.hidden=!1,this.config.$totalWidth+=e.width,this.paint())},e.prototype.hideColumn=function(t){var e=this._getColumn(t);e&&!e.hidden&&(e.hidden=!0,this.config.$totalWidth-=e.width,this.paint())},e.prototype.isColumnHidden=function(t){var e=this._getColumn(t);if(e)return!!e.hidden},e.prototype.getScrollState=function(){return{x:this._scroll.left,y:this._scroll.top}},e.prototype.scroll=function(t,e){var i=this.getRootView().refs.grid_body.el;i.scrollLeft="number"==typeof t?t:i.scrollLeft,i.scrollTop="number"==typeof e?e:i.scrollTop},e.prototype.scrollTo=function(t,e){var i=g.findIndex(this.config.columns,function(t){return t.id===e}),n=this.config.splitAt?this.config.columns.slice(0,this.config.splitAt).reduce(function(t,e){return t+e.width},0):0,o=this.config.columns.slice(0,i).reduce(function(t,e){return t+e.width},0)-n,r=this.data.getIndex(t)*this.config.rowHeight,s=this.getScrollState(),a=this.config.width+s.x,c=this.config.height+s.y-this.config.headerRowHeight*this.config.$headerLevel,l=r-s.y-this.config.rowHeight,u=o-s.x-this.config.columns[i].width,d=r+2*this.config.rowHeight+18-c,h=o+2*this.config.columns[i].width+18-a,f=l>0&&d<0?0:l<0?l:d,p=u>0&&h<0?0:u<0?u:h;this.scroll(p+s.x,f+s.y)},e.prototype.adjustColumnWidth=function(t,e){var i=this;void 0===e&&(e=!0);var n=g.findIndex(this.config.columns,function(e){return e.id===t}),o=this.config.columns[n],r=[];"header"!==e&&!0!==e||o.header.forEach(function(t){r.push(h.getStrWidth(h.removeHTMLTags(t.text))+(h.isSortable(i.config,o)?40:20))}),"data"!==e&&!0!==e||this.data.map(function(t){"string"!=typeof t[o.id]&&"number"!=typeof t[o.id]||r.push(h.getStrWidth(h.removeHTMLTags(t[o.id]))+20)}),r.length>0&&(this.config.$totalWidth=this.config.columns.reduce(function(t,e,i){return i===n&&(e.width=Math.max.apply(Math,r)),t+(e.hidden?0:e.width)},0),this.paint())},e.prototype.getCellRect=function(t,e){var i=g.findIndex(this.config.columns,function(t){return t.id===e}),n=this._getRowIndex(t);return{x:this.config.columns.slice(0,i).reduce(function(t,e){return t+e.width},0),y:n*this.config.rowHeight,height:this.config.rowHeight,width:this.config.columns[i].width}},e.prototype.getColumn=function(t){var e=g.findIndex(this.config.columns,function(e){return e.id===t});if(e>=0)return this.config.columns[e]},e.prototype.addSpan=function(t){this.config.spans=this.config.spans||[];var e=g.findIndex(this.config.spans,function(e){return""+e.row==""+t.row&&""+e.column==""+t.column});e>=0?this.config.spans[e]=t:this.config.spans.push(t)},e.prototype.getSpan=function(t,e){if(this.config.spans){var i=g.findIndex(this.config.spans,function(i){return""+i.row==""+t&&""+i.column==""+e});return this.config.spans[i]}},e.prototype.removeSpan=function(t,e){if(this.config.spans){var i=g.findIndex(this.config.spans,function(i){return""+i.row==""+t&&""+i.column==""+e});this.config.spans.splice(i,1)}},e.prototype.editCell=function(t,e,i){void 0===i&&(i=_.EditorType.input);var n=this.data.getItem(t),o=this.getColumn(e);n&&void 0!==n[e]?this.events.fire(_.GridEvents.beforeEditStart,[n,o,i])&&("date"===o.type&&(i=_.EditorType.datepicker),"boolean"===o.type&&(i=_.EditorType.checkbox),this.config.$editable&&this.config.$editable.row===t&&this.config.$editable.col===e&&this.config.$editable.editorType===i||(this.config.$editable={row:t,col:e,editorType:i},this.selection&&this.selection.setCell(t.toString(),e.toString()),this.paint(),this.events.fire(_.GridEvents.afterEditStart,[n,o,i]))):l.dhxWarning("item not found")},e.prototype.editEnd=function(t){this.config.$editable&&this.config.$editable.editor&&this.config.$editable.editor.endEdit(t)},e.prototype.getSortingState=function(){return{dir:this._sortDir,by:this._sortBy}},e.prototype.edit=function(t,e,i){void 0===i&&(i=_.EditorType.input),this.editCell(t,e,i)},e.prototype._parseColumns=function(){var t=this.config.columns;d.normalizeColumns(t),d.countColumns(this.config,t)},e.prototype._parseData=function(){this.data.getId(0)&&(this.config.columns.length&&this._checkColumns(),this._currentData=this.data.serialize()||[]),this._checkFilters(),this._checkMarks(),this._render()},e.prototype._checkColumns=function(){this._detectColsTypes()},e.prototype._createCollection=function(t){this.data=new l.DataCollection({prep:t},this.events)},e.prototype._getRowIndex=function(t){return this.data.getIndex(t)},e.prototype._setEventHandlers=function(){var t=this,e=function(e){return function(i,n){n&&n instanceof Array?n.map(function(i){return t.data.exists(i)&&t.data.update(i,e)}):t.data.exists(i)&&t.data.update(i,e)}};this.data.events.on(l.DataEvents.load,function(){t._parseData()}),this.data.events.on(l.DataEvents.change,function(e,i,n){if("remove"!==i||!n.$emptyRow){if(t._currentData=t.data.map(function(t){return t})||[],t._detectColsTypes(),t._checkMarks(),t._adjustColumns(),t.config.autoEmptyRow){var o=t.data.find({by:"$emptyRow",match:!0});o?t.data.move(o.id,t.data.getLength()-1):t._addEmptyRow()}t._render()}}),this.data.events.on(l.DataEvents.removeAll,function(){t.config.columns.map(function(t){t.header.map(function(e){!e.content||"selectFilter"!==e.content&&"comboFilter"!==e.content||(t.$uniqueData=[])})})}),this.events.on(l.DragEvents.canDrop,e({$drophere:!0})),this.events.on(l.DragEvents.cancelDrop,e({$drophere:void 0})),this.events.on(l.DragEvents.dragStart,e({$dragtarget:!0})),this.events.on(l.DragEvents.dragEnd,e({$dragtarget:void 0})),this.events.on(_.GridEvents.sort,function(e){e&&t._sort(e)}),this.events.on(_.GridEvents.cellMouseDown,function(e,i,n){if(t.config.dragMode&&"row"===t.config.dragItem&&!t.config.$editable){var o=a.locateNode(n,"dhx_id"),r=o&&o.getAttribute("dhx_id");return l.dragManager.onMouseDown(n,[r],[o])}}),this.events.on(_.GridEvents.headerInput,function(e,i,n){if(t.config.autoEmptyRow){var o=t.data.find({by:"$emptyRow",match:!0});o&&t.data.remove(o.id)}t.data.filter({by:i,match:e,compare:t.content[n].match},{multiple:!0})}),this.events.on(_.GridEvents.filterChange,function(e,i,n){if(t.config.autoEmptyRow){var o=t.data.find({by:"$emptyRow",match:!0});o&&t.data.remove(o.id)}t.data.filter({by:i,match:e,compare:t.content[n].match},{multiple:!0})}),this.events.on(_.GridEvents.scroll,function(e){t._scroll={top:e.y,left:e.x},t.paint()}),this.events.on(_.GridEvents.cellDblClick,function(e,i){(!1!==i.editable&&t.config.editable||i.editable)&&t.editCell(e.id,i.id,i.editorType)}),this.events.on(_.GridEvents.afterEditEnd,function(e,i,n){var r,s,a;t.config.$editable?(s=t.config.$editable.row,a=t.config.$editable.col):(s=i.id,a=n.id);var c=t.data.getItem(s);delete c.$emptyRow,void 0!==e&&t.data.update(s,o(o({},c),((r={})[a]=e,r))),t.config.$editable=null,t._checkFilters(),t.paint()}),this.events.on(_.GridEvents.headerCellMouseDown,function(e,i){var n=i.target.getAttribute("dhx_resized");n&&t.events.fire(_.GridEvents.beforeResizeStart,[e,i])&&b.startResize(t,n.toString(),i,function(){t.paint(),t.config.$resizing=null,t.events.fire(_.GridEvents.afterResizeEnd,[e,i])})})},e.prototype._addEmptyRow=function(){var t=this.data.getId(this.data.getLength()-1),e=this.data.getItem(t);h.isRowEmpty(e)||this.data.add(this.config.columns.reduce(function(t,e){return t[e.id]="",t},{$emptyRow:!0}))},e.prototype._sort=function(t,e){var i=this;e?this._sortDir=e:this._sortBy===t?this._sortDir="asc"===this._sortDir?"desc":"asc":this._sortDir="desc",this._sortBy=t,this.data.sort({by:t,dir:this._sortDir,as:function(e){var n=i.getColumn(t);return e&&"date"===n.type?""+m.stringToDate(e,n.dateFormat).getTime():e?""+e:""}})},e.prototype._getColumn=function(t){for(var e=0,i=this.config.columns;en.length?n.forEach(function(t){-1===e.$uniqueData.indexOf(t)&&e.$uniqueData.push(t)}):e.$uniqueData=n}})})},e.prototype._destroyContent=function(){for(var t in this.content)"comboFilter"===t&&this.content[t].destroy()},e.prototype._render=function(){this.paint()},e.prototype._lazyLoad=function(t){var e=t.target.scrollTop;if(this.getScrollState().y!==e){var i=Math.round(e/this.config.rowHeight),n=(this.config.height-this.config.headerRowHeight)/this.config.rowHeight,o=this.data.dataProxy;o&&o.config&&!this.data.isDataLoaded(i,n+i+o.config.prepare)&&(o.updateUrl(null,{from:i,limit:o.config.limit}),this.data.load(o))}},e}(c.View);e.Grid=x},function(t,e,i){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(t){for(var e,i=1,n=arguments.length;i0){var a=this._grid.data.getIndex(this._oldSelectedCell.row.id),c=this._grid.data.getIndex(t.id);if(a>c){var l=a;a=c,c=l}if(this._selectedCells=[this._oldSelectedCell],"cell"===this._type){var u=this._grid.config.columns.map(function(t){return t.id}),d=u.indexOf(s.column.id),h=u.indexOf(e.id);if(-1!==d&&-1!==h){if(d>h){l=d;d=h,h=l}var f=this._grid.config.columns.slice(d,h+1);this._grid.data.mapRange(a,c,function(t){f.forEach(function(e){var i={row:t,column:e};-1===r._findIndex(i)&&r._selectedCells.push(i)})})}}else this._grid.data.mapRange(a,c,function(t){var i={row:t,column:e};-1===r._findIndex(i)&&r._selectedCells.push({row:t,column:e})})}else if(i&&!o){var p=this._findIndex();-1===p?this._selectedCells.push(this._selectedCell):this._selectedCells.splice(p,1)}else this._selectedCells=[this._selectedCell];else this._selectedCells=[this._selectedCell]}else this._selectedCell=void 0,this._selectedCells=[];n.awaitRedraw().then(function(){r._grid.paint()})}},t.prototype.getCell=function(){return this._selectedCell},t.prototype.getCells=function(){if(this._multiselection)return this._selectedCells},t.prototype.toHTML=function(){var t=this;if(!this._isUnselected()){if(this._multiselection){var e=[];return this._selectedCells.forEach(function(i,n,o){e.push(t._toHTML(i.row,i.column,n===o.length-1||"cell"===t._type))}),e}return this._toHTML(this._selectedCell.row,this._selectedCell.column,!0)}},t.prototype._init=function(){var t=this;this._grid.events.on(r.GridEvents.cellClick,function(e,i,n){t.setCell(e,i,n.ctrlKey||n.metaKey,n.shiftKey)}),this._grid.data.events.on(s.DataEvents.beforeRemove,function(e){if(e&&t._selectedCell&&t._selectedCell.row){var i=t._grid.data.getIndex(String(t._selectedCell.row.id)),n=t._grid.data.getId(i+1);if(n)t.setCell(n);else{var o=t._grid.data.getId(i-1);o&&t.setCell(o)}t._grid.paint()}}),this._outerClick=function(e){if(!t._grid.config.$editable){for(var i=t._grid.getRootView().data.getRootNode(),n=e.target,o=!1;n;){if(n===i)return void(o=!0);n=n.parentNode}!o&&t._selectedCell&&t._selectedCells&&t.setCell()}},document.addEventListener("click",this._outerClick)},t.prototype._toHTML=function(t,e,i){void 0===i&&(i=!1);var o,r=(this._grid.config.splitAt?this._grid.config.columns.slice(0,this._grid.config.splitAt):[]).map(function(t){return t.id}),s=this._grid.getCellRect(t.id,e.id);if(-1!==r.indexOf(e.id)&&i){var a=this._grid.getScrollState();o=n.el(".dhx_grid-selected-cell",{style:{width:this._grid.config.splitAt===r.indexOf(e.id)+1?s.width-1:s.width,height:s.height,top:s.y,left:s.x+a.x,position:"absolute",zIndex:10}})}var c=this._grid.config.$totalWidth;return n.el(".dhx_grid-selection",{},[("row"===this._type||"complex"===this._type)&&n.el(".dhx_grid-selected-row",{style:{width:c,height:s.height-1,top:s.y,left:0,position:"absolute"}}),("cell"===this._type||"complex"===this._type)&&o||("cell"===this._type||"complex"===this._type)&&i&&n.el(".dhx_grid-selected-cell",{style:{width:s.width-1,height:s.height-1,top:s.y,left:s.x+1,position:"absolute"}})])},t.prototype._isUnselected=function(){return!this._selectedCell||!this._selectedCell.row||!this._selectedCell.column||0===this._selectedCells.length},t.prototype._findIndex=function(t){var e=this;void 0===t&&(t=this._selectedCell);var i=-1;return this._selectedCells.some(function(n,r){if("cell"===e._type){if(o.compare(n.row,t.row)&&o.compare(n.column,t.column))return i=r,!0}else if("row"===e._type&&o.compare(n.row,t.row))return i=r,!0}),i},t}();e.Selection=a},function(t,e,i){"use strict";var n=this;Object.defineProperty(e,"__esModule",{value:!0});var o=i(13),r=i(10),s=i(2),a={focusedID:void 0,isFocus:function(t){return n.focusedID===t},getFocusState:function(){return n.focusedID},setFocusState:function(t){return n.focusedID=t}};function c(t){return"cell"===t||"complex"===t}function l(t,e,i,n,o,r,s){if(void 0===o&&(o=!1),void 0===r&&(r=!1),void 0===s&&(s=!1),!e.config.$editable&&e.config.selection){t&&t.preventDefault();var a=e.selection.getCell();if(a)if("vertical"===i)if(o){var c=1===n?e.data.getItem(e.data.getId(e.data.getLength()-1)):e.data.getItem(e.data.getId(0));e.selection.setCell(c.id,a.column.id,r,s),e.scrollTo(c.id,a.column.id.toString())}else{if((l=e.data.getIndex(a.row.id.toString()))+n>=0&&l+n=0&&l+n=0&&n=0){var o=t.data.getIndex(i.row.id.toString())+1;o=0&&n=0&&(t.selection.setCell(t.data.getId(o),t.config.columns[t.config.columns.length-1].id),t.scrollTo(t.data.getId(o),t.config.columns[t.config.columns.length-1].id.toString()))}}}}),d(u.arrowUp,function(e){l(e,t,"vertical",-1)}),d("ctrl+"+u.arrowUp,function(e){l(e,t,"vertical",-1,!0)}),d("shift+"+u.arrowUp,function(e){t.config.multiselection&&l(e,t,"vertical",-1,!1,!1,!0)}),d("ctrl+shift+"+u.arrowUp,function(e){t.config.multiselection&&l(e,t,"vertical",-1,!0,!1,!0)}),d(u.arrowDown,function(e){l(e,t,"vertical",1)}),d("ctrl+"+u.arrowDown,function(e){l(e,t,"vertical",1,!0)}),d("shift+"+u.arrowDown,function(e){t.config.multiselection&&l(e,t,"vertical",1,!1,!1,!0)}),d("ctrl+shift+"+u.arrowDown,function(e){t.config.multiselection&&l(e,t,"vertical",1,!0,!1,!0)}),d(u.arrowRight,function(e){l(e,t,"horizontal",1)}),d("ctrl+"+u.arrowRight,function(e){l(e,t,"horizontal",1,!0)}),d("shift+"+u.arrowRight,function(e){t.config.multiselection&&l(e,t,"horizontal",1,!1,!1,!0)}),d("ctrl+shift+"+u.arrowRight,function(e){t.config.multiselection&&l(e,t,"horizontal",1,!0,!1,!0)}),d(u.arrowLeft,function(e){l(e,t,"horizontal",-1)}),d("ctrl+"+u.arrowLeft,function(e){l(e,t,"horizontal",-1,!0)}),d("shift+"+u.arrowLeft,function(e){t.config.multiselection&&l(e,t,"horizontal",-1,!1,!1,!0)}),d("ctrl+shift+"+u.arrowLeft,function(e){t.config.multiselection&&l(e,t,"horizontal",-1,!0,!1,!0)})}}},function(t,e,i){"use strict";var n=this&&this.__assign||function(){return(n=Object.assign||function(t){for(var e,i=1,n=arguments.length;i=b.height-m.headerRowHeight?r.getScrollbarWidth():0;m.$totalWidth=b.width-h-x;var w=m.columns.reduce(function(t,e){return e.hidden?t:t+e.width},0),k=m.$totalWidth/w,C=m.columns.reduce(function(t,e){var i=k>0?e.width*k:20;return!a.isAutoWidth(m,e)||e.maxWidth&&e.maxWidthi?t+e.width:t},0),E=(m.$totalWidth-C)/(w-C);m.$totalWidth=0,m.columns.map(function(t){var e=E>0?t.width*E:20,i=!a.isAutoWidth(m,t)||t.maxWidth&&t.maxWidthe;t.width=i?t.maxWidth||t.minWidth||t.width:e,m.$totalWidth+=t.hidden?0:t.width})}m.width=b.width,m.height=b.height;var S=function(t,e,i){var o=t.config,r=s.calculatePositions(i.width,i.height,t._scroll,o);return n(n({},o),{data:e,scroll:t._scroll,$positions:r,headerHeight:o.$headerLevel*o.headerRowHeight,footerHeight:o.$footerLevel*o.footerRowHeight,firstColId:o.columns[0].id,events:t.events,currentColumns:o.columns.slice(r.xStart,r.xEnd),sortBy:t._sortBy,sortDir:t._sortDir})}(e,i,b);S.selection=_,S.datacollection=e.data;var O=c.getShifts(S),M=a.isCssSupport("position","sticky"),T=function(t,e,i){var n=i.height-h;n=e?n:n-t.headerHeight;var o=t.$footer,s=t.$totalHeight+h=0&&a.getRows(n(n({},t),{currentColumns:t.columns.slice(0,t.splitAt),$positions:n(n({},t.$positions),{xStart:0,xEnd:t.splitAt})}),n(n({},e),{name:"header",position:"top"})),v=t.splitAt>=0&&a.getRows(n(n({},t),{currentColumns:t.columns.slice(0,t.splitAt),$positions:n(n({},t.$positions),{xStart:0,xEnd:t.splitAt})}),n(n({},e),{name:"footer",position:"bottom"})),g=_&&o.el(".dhx_"+f.name+"-fixed-cols",{style:{position:"absolute",top:0,left:0,zIndex:999999}},_),m=h?v&&o.el(".dhx_"+p.name+"-fixed-cols",{style:{position:"absolute",bottom:0,left:0,zIndex:999999}},v):null,y=t.$positions;return o.el(".dhx_grid-fixed-cols-wrap",{style:{height:l,paddingTop:t.headerHeight,overflow:"hidden",width:t.fixedColumnsWidth}},[g,o.el(".dhx_grid-fixed-cols",n({style:{top:-t.scroll.top+t.headerHeight-1+"px",paddingTop:e.shifts.y,height:t.$totalHeight,position:"absolute"},_flags:o.KEYED_LIST},s.getHandlers(y.yStart,y.xStart,t)),d),t.$footer&&m,o.el(".dhx_frozen-cols-border")])}}},function(t,e,i){"use strict";var n=this&&this.__spreadArrays||function(){for(var t=0,e=0,i=arguments.length;et.config.height?s.getScrollbarWidth():0;if(!(t.config.splitAt===a+1&&u>=t.config.width-d-2)){l=l||t.config.columns[a].width;var h,f=t.config.columns[a].minWidth||20,p=t.config.columns[a].maxWidth,_=i.clientX-c,v=n(t.config.columns),g=l+_;p&&g>=p||g<=f?(g<=f&&(h=f),g>=p&&(h=p)):h=g,v[a].width=h,t.events.fire(r.GridEvents.resize,[t.config.columns[a],i]),t.paint()}},d=function(){document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",d),a()};document.addEventListener("mousemove",u),document.addEventListener("mouseup",d),t.paint()}},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(199)),n(i(200));var o=i(17);e.ItemType=o.ItemType,e.NavigationBarEvents=o.NavigationBarEvents},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(2),r=i(17),s=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._isContextMenu=!0,e}return n(e,t),e.prototype.showAt=function(t,e){if(void 0===e&&(e="bottom"),t instanceof MouseEvent)this._changeActivePosition({left:window.pageXOffset+t.x+1,right:window.pageXOffset+t.x+1,top:window.pageYOffset+t.y,bottom:window.pageYOffset+t.y},e);else{var i=o.toNode(t);this._changeActivePosition(o.getRealPosition(i),e)}},e.prototype._getFactory=function(){return r.createFactory({widget:this,defaultType:r.ItemType.menuItem,allowedTypes:[r.ItemType.menuItem,r.ItemType.spacer,r.ItemType.separator,r.ItemType.customHTML,r.ItemType.customHTMLButton],widgetName:"context-menu"})},e.prototype._close=function(e){t.prototype._close.call(this,e),this._activeMenu=null,this._changeActivePosition(null,null)},e.prototype._getMode=function(t,e,i){return i?this._mode:"right"},e.prototype._changeActivePosition=function(t,e){this._activePosition=t,this._mode=e,this._listenOuterClick(),this.paint()},e}(r.Navbar);e.ContextMenu=s},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(0),r=i(17),s=function(t){function e(e,i){var n=t.call(this,e,i)||this;return n.mount(e,o.create({render:function(){return n._draw()}})),n}return n(e,t),e.prototype._getFactory=function(){return r.createFactory({widget:this,defaultType:r.ItemType.menuItem,allowedTypes:[r.ItemType.menuItem,r.ItemType.spacer,r.ItemType.separator,r.ItemType.customHTML,r.ItemType.customHTMLButton],widgetName:"menu-nav"})},e.prototype._draw=function(){return o.el("ul.dhx_widget",{dhx_widget_id:this._uid,onmousemove:this._handlers.onmousemove,onmouseleave:this._handlers.onmouseleave,onclick:this._handlers.onclick,onmousedown:this._handlers.onmousedown,class:"dhx_menu-nav "+(this.config.css?this.config.css:"")},this._drawMenuItems(this.data.getRoot(),!1))},e}(r.Navbar);e.Menu=s},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}(i(202))},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(0),r=i(29),s=i(17),a=i(1),c=i(2),l=i(19),u=function(t){function e(e,i){var n=t.call(this,e,a.extend({navigationType:"click"},i))||this;n._listeners={input:function(t){var e=c.locate(t);n.data.update(e,{value:t.target.value})},tooltip:function(t){var e=c.locateNode(t);if(e){var i=e.getAttribute("dhx_id"),o=n.data.getItem(i);o.tooltip&&l.tooltip(o.tooltip,{node:e,position:l.Position.bottom})}}},n._currentRoot=null;return n.mount(e,o.create({render:function(){return n._draw()}})),n}return n(e,t),e.prototype.getState=function(){var t={};for(var e in this.data.eachChild(this.data.getRoot(),function(e){e.twoState&&!e.group?t[e.id]=e.active:e.type!==r.ItemType.input&&e.type!==r.ItemType.selectButton||(t[e.id]=e.value)},!0),this._groups)this._groups[e].active&&(t[e]=this._groups[e].active);return t},e.prototype.setState=function(t){for(var e in t)if(this._groups&&this._groups[e])this._groups[e].active&&(this.data.update(this._groups[e].active,{active:!1}),this._groups[e].active=t[e],this.data.update(t[e],{active:!0}));else{var i=this.data.getItem(e);i.type===r.ItemType.input||i.type===r.ItemType.selectButton?this.data.update(e,{value:t[e]}):this.data.update(e,{active:t[e]})}},e.prototype._getFactory=function(){return s.createFactory({widget:this,defaultType:r.ItemType.navItem,allowedTypes:[r.ItemType.navItem,r.ItemType.button,r.ItemType.customHTMLButton,r.ItemType.customHTML,r.ItemType.imageButton,r.ItemType.input,r.ItemType.selectButton,r.ItemType.separator,r.ItemType.spacer,r.ItemType.title],widgetName:"ribbon"})},e.prototype._getMode=function(t,e){return t.id===e?"bottom":"right"},e.prototype._close=function(e){this._activePosition=null,this._currentRoot=null,t.prototype._close.call(this,e)},e.prototype._draw=function(){var t=this;return o.el("ul.dhx_ribbon.dhx_widget",{dhx_widget_id:this._uid,class:this.config.css?this.config.css:"",tabindex:0,onclick:this._handlers.onclick,onmousedown:this._handlers.onmousedown,oninput:this._listeners.input,onmouseover:this._listeners.tooltip,_hooks:{didInsert:function(e){e.el.addEventListener("keyup",function(e){if(9===e.which){var i=c.locateNode(document.activeElement);if(i){var n=i.getAttribute("dhx_id"),o=t.data.getItem(n);o.tooltip&&l.tooltip(o.tooltip,{node:i,position:l.Position.bottom,force:!0})}}},!0)}}},[o.el("li",{class:"dhx_ribbon-block dhx_ribbon-block--root"},[o.el("ul.dhx_ribbon-content.dhx_ribbon-content--full-width",this.data.map(function(e){return"block"===e.type?t._drawBlock(e,!0):t._factory(e)},this.data.getRoot(),!1))])])},e.prototype._setRoot=function(t){var e=this.data.getParent(t);this.data.getItem(e).type===r.ItemType.block&&(this._currentRoot=t)},e.prototype._drawBlock=function(t,e){var i=this;if(!t||t.hidden)return null;var n="dhx_ribbon-block dhx_ribbon-block"+("col"===t.direction?"--col":"--row")+(t.title?" dhx_ribbon-block--title":"")+(t.css?" "+t.css:"")+(e?" dhx_ribbon-block--indented":""),s=this.data.map(function(t){return t.type===r.ItemType.block?i._drawBlock(t):t.type!==r.ItemType.separator&&t.type!==r.ItemType.spacer?i._factory(t):null},t.id,!1);return o.el("li",{class:n},[o.el("ul.dhx_ribbon-content",s),t.title?o.el("span.dhx_ribbon-content-label-wrapper",[o.el("span.dhx_ribbon-content-label",t.title)]):null])},e}(s.Navbar);e.Ribbon=u},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(204)),n(i(79))},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}();Object.defineProperty(e,"__esModule",{value:!0});var o=i(0),r=i(2),s=i(79),a=i(19),c=i(17),l=i(1),u=function(t){function e(e,i){var n=t.call(this,e,l.extend({navigationType:"click",width:"200",minWidth:"44",collapsed:!1},i))||this;n._currentRoot=null;return n.mount(e,o.create({render:function(){return n._draw()}})),n}return n(e,t),e.prototype.toggle=function(){this.config.collapsed?this.expand():this.collapse(),this.events.fire(s.SidebarEvents.toggle,[this.config.collapsed]),this.paint()},e.prototype.collapse=function(){this.events.fire(s.SidebarEvents.beforeCollapse,[])&&(this.config.collapsed=!0,this.events.fire(s.SidebarEvents.afterCollapse,[]),this.paint())},e.prototype.expand=function(){this.events.fire(s.SidebarEvents.beforeExpand,[])&&(this.config.collapsed=!1,this.events.fire(s.SidebarEvents.afterExpand,[]),this.paint())},e.prototype.isCollapsed=function(){return this.config.collapsed},e.prototype._getFactory=function(){return c.createFactory({widget:this,defaultType:c.ItemType.navItem,allowedTypes:[c.ItemType.navItem,c.ItemType.menuItem,c.ItemType.customHTMLButton,c.ItemType.customHTML,c.ItemType.separator,c.ItemType.spacer,c.ItemType.title],widgetName:"sidebar"})},e.prototype._close=function(e){this._activePosition=null,this._currentRoot=null,t.prototype._close.call(this,e)},e.prototype._setRoot=function(t){this.data.getParent(t)===this.data.getRoot()&&(this._currentRoot=t)},e.prototype._customHandlers=function(){var t=this;return{tooltip:function(e){var i=r.locateNode(e);if(i){var n=i.getAttribute("dhx_id"),o=t.data.getItem(n);(o.tooltip||t.config.collapsed&&o.value)&&a.tooltip(o.tooltip||o.value,{node:i,position:a.Position.right})}}}},e.prototype._draw=function(){var t=this,e=this.config,i=e.width,n=e.minWidth,s=this.config.collapsed?n:i;return o.el("nav.dhx_widget.dhx_sidebar",{class:(this.config.css?this.config.css:"")+(this.config.collapsed?" dhx_sidebar--minimized":""),style:{width:s+"px"}},[o.el("ul.dhx_navbar.dhx_navbar--vertical",{dhx_widget_id:this._uid,tabindex:0,onclick:this._handlers.onclick,onmousedown:this._handlers.onmousedown,oninput:this._handlers.input,onmouseover:this._handlers.tooltip,_hooks:{didInsert:function(e){e.el.addEventListener("keyup",function(e){if(9===e.which){var i=r.locateNode(document.activeElement);if(i){var n=i.getAttribute("dhx_id"),o=t.data.getItem(n);(o.tooltip||t.config.collapsed&&o.value)&&a.tooltip(o.tooltip||o.value,{node:i,position:a.Position.right,force:!0})}}},!0)}}},this.data.map(function(e){return t._factory(e)},this.data.getRoot(),!1))])},e.prototype._getMode=function(){return"right"},e.prototype._customInitEvents=function(){var t=this;this.events.on(c.NavigationBarEvents.inputBlur,function(){t._waitRestore&&(t.toggle(),t._waitRestore=!1)}),this.events.on(c.NavigationBarEvents.inputFocus,function(){t.config.collapsed&&(t._waitRestore=!0,t.toggle())})},e}(c.Navbar);e.Sidebar=u},function(t,e,i){"use strict";function n(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}Object.defineProperty(e,"__esModule",{value:!0}),n(i(206)),n(i(80))},function(t,e,i){"use strict";var n=this&&this.__extends||function(){var t=function(e,i){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])})(e,i)};return function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)}}(),o=this&&this.__assign||function(){return(o=Object.assign||function(t){for(var e,i=1,n=arguments.length;i'+(e.text||e.value)+""}),this.events.on(d.DragEvents.canDrop,function(e,i){var n;n=t.config.dropBehaviour===d.DropBehaviour.complex?i===d.DropPosition.top?"dhx_tree-drop--top":i===d.DropPosition.bot?"dhx_tree-drop--bottom":"dhx_tree-drop--in-folder":t.config.dropBehaviour===d.DropBehaviour.child?"dhx_tree-drop--in-folder":"dhx_tree-drop--bottom",t.data.exists(e)&&t.data.update(e,{$drophere:n})}),this.events.on(d.DragEvents.cancelDrop,function(e){t.data.exists(e)&&t.data.update(e,{$drophere:null})}),this.events.on(d.DragEvents.dropComplete,function(e,i){(t.config.dropBehaviour===d.DropBehaviour.child||t.config.dropBehaviour===d.DropBehaviour.complex&&i===d.DropPosition.in)&&t.expand(e)}),this.events.on(d.DragEvents.dragStart,function(){t._isSelectionActive=!1,t.paint()}),this.events.on(d.DragEvents.dragEnd,function(){t._isSelectionActive=!0,t.paint()}),this.events.on(l.SelectionEvents.afterSelect,function(e){return t._focusId=e}),this.config.editable&&this.events.on(p.TreeEvents.itemDblClick,function(e){return t.editItem(e)})},e.prototype._initHandlers=function(){var t=this;this._handlers={onmouseleave:function(t){d.dragManager._cancelCanDrop()},onclick:function(e){var i=c.locate(e);i&&(e.target.classList.contains("dhx_tree-toggle-button")?t.toggle(i):e.target.classList.contains("dhx_tree-checkbox")?t.data.getItem(i).$mark===p.SelectStatus.unselected?t.checkItem(i):t.uncheckItem(i):(t.events.fire(p.TreeEvents.itemClick,[i,e]),t.data.exists(i)&&t.selection.add(i)))},ondblclick:function(e){var i=c.locate(e);t.events.fire(p.TreeEvents.itemDblClick,[i,e])},ondragstart:function(t){t.preventDefault()},onmousedown:function(e){t.config.dragMode&&t.config.dragMode!==d.DragMode.target&&d.dragManager.onMouseDown(e)},oncontextmenu:function(e){var i=c.locate(e);i&&(t.events.fire(p.TreeEvents.itemRightClick,[i,e]),t.events.fire(p.TreeEvents.itemContextMenu,[i,e]))}}},e.prototype._drawItems=function(t,e){var i=this;return void 0===e&&(e=0),this.data.map(function(t){if(t){var n,r,a,c=!!i.config.isFolder&&i.config.isFolder(t);if((t.$autoload||i.data.haveItems(t.id))&&(c=!0,n=s.el("div",{class:"dxi dxi-menu-right dhx_tree-toggle-button"},""),t.opened&&(n=s.el("div",{class:"dxi dxi-menu-down dhx_tree-toggle-button dhx_tree-toggle-button--open"},""),r=i._drawItems(t.id,e+1))),t.checkbox){var l=t.$mark===p.SelectStatus.indeterminate?"dxi-minus-box":t.$mark===p.SelectStatus.selected?"dxi-checkbox-marked":"dxi-checkbox-blank-outline";a=s.el("div",{class:"dhx_tree-checkbox dxi "+l})}var u,d=g(c,t.opened),h=(t.icon||i.config.icon)[d]||i.config.icon[d];return u=t.$edit?i._editor.edit(i._uid,o({item:t},t.$editConfig)):s.el("span",{class:"dhx_tree-list-item__text"},t.text||t.value),c?s.el("li",{class:"dhx_tree-list-item dhx_tree-list-item--parent"+(t.css?" "+t.css:""),dhx_id:t.id,_key:t.id},[s.el("div.dhx_tree-folder",{class:(t.id===i._focusId?" dhx_tree-folder--focused":"")+(t.$selected?" dhx_tree-folder--selected":"")+(t.$drophere?" "+t.$drophere:""),style:{left:-_(e)+"px",right:-_(e)+"px","margin-left":_(e)+"px"}},[n,s.el("div.dhx_tree-list-item__content",[a,s.el("div",{class:"dhx_tree-list-item__icon "+h}),u])]),r&&s.el("ul.dhx_tree-list",r)]):s.el("li",{class:"dhx_tree-list__item dhx_tree-list-item"+(t.id===i._focusId?" dhx_tree-list-item--focused":"")+(t.$selected?" dhx_tree-list-item--selected":"")+(t.$drophere?" "+t.$drophere:"")+(c?"dhx_tree-list-item--folder":""),style:{left:-_(e)+"px",right:-_(e)+"px","margin-left":_(e)+"px"},dhx_id:t.id,level:e},[n,s.el("div",{class:"dhx_tree-list-item__content"},[a,s.el("div",{class:"dhx_tree-list-item__icon "+h}),u])])}},t,!1)},e.prototype._updateItemCheck=function(t,e){this.data.update(t,{$mark:e}),this.data.eachChild(t,function(t){return t.$mark=e}),this._updateParents(t)},e.prototype._updateParents=function(t,e){var i=this;void 0===e&&(e=!1),t!==this._root&&this.data.eachParent(t,function(t){var e=0,n=0;i.data.eachChild(t.id,function(t){if(t.checkbox)switch(t.$mark){case p.SelectStatus.unselected:n++;break;case p.SelectStatus.selected:e++}},!0),t.$mark=0!==e&&0!==n?p.SelectStatus.indeterminate:0===e&&0!==n?p.SelectStatus.unselected:p.SelectStatus.selected},e)},e}(u.View);function g(t,e){return t?e?p.ItemIcon.openFolder:p.ItemIcon.folder:p.ItemIcon.file}e.Tree=v},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(1),o=i(2),r=i(13),s=function(){function t(){this._store={},this._keyManager=r.keyManager,this._listen=!1,this._blocked=!1}return t.prototype.add=function(t,e){this._listen||(this._listen=!0,this._initKeys(),this._addListeners()),this._store[t]=e},t.prototype.block=function(t){this._blocked=t},t.prototype._initKeys=function(){var t=this;this._keyManager.addHotKey("arrowleft",function(e){if(!t._blocked){e.preventDefault();var i=t._store[t._activeTarget];if(i){var n=t._getFocused(),o=i.data.getParent(n);if(i.data.getRoot()!==o)!i.data.getItem(n).opened?i.focusItem(o):n!==i.data.getRoot()&&i.collapse(n);else i.collapse(n)}}}),this._keyManager.addHotKey("arrowright",function(e){if(!t._blocked){e.preventDefault();var i=t._store[t._activeTarget];if(i){var n=t._getFocused();i.data.haveItems(n)&&i.expand(n)}}}),this._keyManager.addHotKey("arrowup",function(e){if(!t._blocked){e.preventDefault();var i=t._store[t._activeTarget];if(i){var n=t._getFocused(),o=i.data,r=t._getClosestTop(n,o);r&&i.focusItem(r)}}}),this._keyManager.addHotKey("arrowdown",function(e){if(!t._blocked){e.preventDefault();var i=t._store[t._activeTarget];if(i){var n=t._getFocused(),o=i.data,r=t._getClosestBot(n,o);r&&i.focusItem(r)}}}),this._keyManager.addHotKey("enter",function(){if(!t._blocked){var e=t._store[t._activeTarget];if(e){var i=t._getFocused();i&&e.selection.add(i)}}})},t.prototype._getFocused=function(){var t=this._store[this._activeTarget],e=t._focusId;if(e)return e;var i=t.data.getRoot();return t.data.getItems(i)[0].id},t.prototype._addListeners=function(){var t=this;document.addEventListener("click",function(e){var i=o.locate(e,"dhx_widget_id");i in t._store&&(t._activeTarget=i)}),r.keyManager.addHotKey("tab",function(e){var i=o.locate(e,"dhx_widget_id");i in t._store&&(t._activeTarget=i)},this)},t.prototype._getClosestBot=function(t,e,i){void 0===i&&(i=!1);var o=e.getItem(t);if(e.haveItems(t)&&o.opened&&!i)return e.getItems(t)[0].id;var r=e.getParent(t),s=e.getItems(r),a=n.findIndex(s,function(e){return e.id===t});return a+10){var o=e.getItems(n)[i-1];if(!e.haveItems(o.id)||!o.opened)return o.id;for(;e.haveItems(o.id)&&o.opened;){var r=e.getItems(o.id);o=r[r.length-1]}return o.id}return n===e.getRoot()?null:n},t}();e.keyNavigation=new s},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var i in t)e.hasOwnProperty(i)||(e[i]=t[i])}(i(211))},function(t,e,i){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0});var n=i(1),o=i(0),r=i(3),s=i(13),a=i(14),c=i(29),l=i(212),u=i(213);function d(e){return new t(function(t){var i=setTimeout(function(){n()},1e3),n=function(){document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",n),t(!1)},o=function(r){(Math.abs(r.pageX-e.pageX)>4||Math.abs(r.pageY-e.pageY)>4)&&(document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",n),clearTimeout(i),t({x:e.pageX,y:e.pageY}))};document.addEventListener("mousemove",o),document.addEventListener("mouseup",n)})}var h=function(){function t(t){this.config=n.extend({movable:!1,resizable:!1,header:!1,closable:t.modal},t),this.config.node&&"string"==typeof this.config.node?this.config.node=document.getElementById(this.config.node):this.config.node||(this.config.node=document.body),this._uid=n.uid(),this.events=new r.EventSystem(this),(this._popup=document.createElement("div")).tabIndex=1,this.config.modal||u.default.add(this._uid,this._popup),this._isActive=!1,this._initHandlers(),this._initUI(),this.config.html&&this.attachHTML(this.config.html)}return t.prototype.paint=function(){this._layout.paint()},t.prototype.setFullScreen=function(){this.setSize(window.innerWidth,window.innerHeight),this.setPosition(window.pageXOffset,window.pageYOffset)},t.prototype.setSize=function(t,e){var i={width:this._popup.offsetWidth,height:this._popup.offsetHeight},o={width:i.width,height:i.height};n.isDefined(t)&&(this.config.width=o.width=t),n.isDefined(e)&&(this.config.height=o.height=e),this._popup.style.width=o.width+"px",this._popup.style.height=o.height+"px",this.events.fire(l.WindowEvents.resize,[o,i,{left:!0,top:!0,bottom:!0,right:!0}])},t.prototype.getSize=function(){return{width:this._popup.offsetWidth,height:this._popup.offsetHeight}},t.prototype.setPosition=function(t,e){var i={left:this._popup.offsetLeft,top:this._popup.offsetTop},o={left:i.left,top:i.top};n.isDefined(t)&&(this.config.left=o.left=t),n.isDefined(e)&&(this.config.top=o.top=e),this._popup.style.left=o.left+"px",this._popup.style.top=o.top+"px",this.events.fire(l.WindowEvents.resize,[o,i,{left:!0,top:!0,bottom:!0,right:!0}])},t.prototype.getPosition=function(){return{left:this._popup.offsetLeft,top:this._popup.offsetTop}},t.prototype.show=function(t,e){if(void 0===t&&(t=this.config.left),void 0===e&&(e=this.config.top),this.events.fire(l.WindowEvents.beforeShow,[t,e])){this._popup.className="dhx_popup dhx_widget dhx_popup--window"+(this.config.modal?" dhx_popup--window_modal":"")+(this.config.css?" "+this.config.css:""),this._popup.style.position=this.config.modal?"fixed":"absolute";var i=this._getContainerParams(),o=i.containerInnerWidth,r=i.containerInnerHeight,s=i.containerXOffset,a=i.containerYOffset,c=this.config.width=this.config.width||this.config.minWidth||o/2,d=this.config.height=this.config.height||this.config.minHeight||r/2;if(this.config.left=t=n.isDefined(t)?t:(o-c)/(this.config.modal?2:2+s),this.config.top=e=n.isDefined(e)?e:(r-d)/(this.config.modal?2:2+a),this._isActive)return this._popup.style.left=t+"px",void(this._popup.style.top=e+"px");this.config.viewportOverflow&&u.default.openFreeWindow(this.config.node),this.config.modal&&this._blockScreen(),this._popup.style.width=c+"px",this._popup.style.height=d+"px",this._popup.style.left=t+"px",this._popup.style.top=e+"px",this.config.node.appendChild(this._popup),this._popup.focus(),this._isActive=!0,this.events.fire(l.WindowEvents.afterShow,[])}},t.prototype.hide=function(){this._isActive&&this.events.fire(l.WindowEvents.beforeHide,[])&&(this.config.viewportOverflow&&u.default.closeFreeWindow(this.config.node),this._blocker&&(this.config.node.removeChild(this._blocker),this.config.closable&&s.keyManager.removeHotKey(null,this),this._blocker=null),this.config.node.removeChild(this._popup),this._isActive=!1,this.events.fire(l.WindowEvents.afterHide,[]))},t.prototype.isVisible=function(){return this._isActive},t.prototype.getWidget=function(){return this._layout.getCell("content").getWidget()},t.prototype.getContainer=function(){return this.getRootView().data._container},t.prototype.attach=function(t,e){this._layout.getCell("content").attach(t,e)},t.prototype.attachHTML=function(t){this._layout.getCell("content").attach(function(){return o.el(".dhx_window__inner-html-content",{".innerHTML":t})})},t.prototype.getRootView=function(){return this._layout.getRootView()},t.prototype.destructor=function(){this._isActive&&this.hide(),this.header&&this.header.destructor(),this.footer&&this.footer.destructor(),this._layout.destructor(),this._popup=null},t.prototype.fullScreen=function(){this.setFullScreen()},t.prototype._initHandlers=function(){var t=this;this._handlers={headerDblClick:function(){return t.events.fire(l.WindowEvents.headerDoubleClick,[])},move:function(e){3!==e.which&&(e.preventDefault(),u.default.setActive(t._uid),d(e).then(function(e){e&&t._startDrag(e.x,e.y)}))},resize:{".dhx_window-resizer":function(e){3!==e.which&&(e.preventDefault(),u.default.setActive(t._uid),d(e).then(function(i){if(i){var n=e.target.classList;n.contains("dhx_window-resizer--left")?t._startResize({left:!0}):n.contains("dhx_window-resizer--right")?t._startResize({right:!0}):n.contains("dhx_window-resizer--top")?t._startResize({top:!0}):n.contains("dhx_window-resizer--bottom")?t._startResize({bottom:!0}):n.contains("dhx_window-resizer--bottom_left")?t._startResize({left:!0,bottom:!0}):n.contains("dhx_window-resizer--bottom_right")?t._startResize({bottom:!0,right:!0}):n.contains("dhx_window-resizer--top_left")?t._startResize({top:!0,left:!0}):n.contains("dhx_window-resizer--top_right")&&t._startResize({top:!0,right:!0})}}))}},setActive:function(){u.default.setActive(t._uid)}}},t.prototype._initUI=function(){var t=this,e=[],i=this.config.header||this.config.title||this.config.closable||this.config.movable;i&&e.push({id:"header",gravity:!1,css:"dhx_window-header "+(this.config.movable?"dhx_window-header--movable":""),on:{mousedown:this.config.movable&&this._handlers.move,dblclick:this._handlers.headerDblClick}}),e.push({id:"content",css:i?"dhx_window-content":"dhx_window-content-without-header"}),this.config.footer&&e.push({id:"footer",gravity:!1,css:"dhx_window-footer"}),this.config.resizable&&e.push({id:"resizers",gravity:!1,css:"resizers"});var n=this._layout=new a.Layout(this._popup,{css:"dhx_window"+(this.config.modal?" dhx_window--modal":""),rows:e,on:{click:this._handlers.setActive}});if(i){var o=this.header=new c.Toolbar;this.config.title&&this.header.data.add({type:c.ItemType.title,value:this.config.title,id:"title"}),this.config.closable&&(this.header.data.add({type:c.ItemType.spacer}),this.header.data.add({id:"close",type:c.ItemType.button,view:"link",size:"medium",color:"secondary",circle:!0,icon:"dxi dxi-close"}),o.events.on(c.NavigationBarEvents.click,function(e){"close"===e&&t.hide()})),n.getCell("header").attach(o)}if(this.config.footer){var r=this.footer=new c.Toolbar;n.getCell("footer").attach(r)}this.config.resizable&&n.getCell("resizers").attach(function(){return t._drawResizers()})},t.prototype._drawResizers=function(){return o.el(".dhx-resizers",{onmousedown:this._handlers.resize},[o.el(".dhx_window-resizer.dhx_window-resizer--left"),o.el(".dhx_window-resizer.dhx_window-resizer--right"),o.el(".dhx_window-resizer.dhx_window-resizer--bottom"),o.el(".dhx_window-resizer.dhx_window-resizer--top"),o.el(".dhx_window-resizer.dhx_window-resizer--bottom_right"),o.el(".dhx_window-resizer.dhx_window-resizer--bottom_left"),o.el(".dhx_window-resizer.dhx_window-resizer--top_right"),o.el(".dhx_window-resizer.dhx_window-resizer--top_left")])},t.prototype._startDrag=function(t,e){var i=this;this.config.node.classList.add("dhx_window--stop_selection");var n=t-this._popup.offsetLeft,o=e-this._popup.offsetTop,r=this._popup.offsetWidth,s=this._popup.offsetHeight,a=function(t){var e={left:i._popup.offsetLeft,top:i._popup.offsetTop},a=t.pageX-n,c=t.pageY-o;if(!i.config.viewportOverflow){var u=i._getContainerParams(),d=u.containerXOffset,h=u.containerYOffset,f=u.containerInnerWidth,p=u.containerInnerHeight;ad+f-r&&(a=d+f-r),ch+p-s&&(c=h+p-s)}i.config.left=a,i.config.top=c,i._popup.style.left=a+"px",i._popup.style.top=c+"px";var _={left:a,top:c};i.events.fire(l.WindowEvents.move,[_,e,{left:!0,top:!0,bottom:!0,right:!0}])},c=function(){document.removeEventListener("mouseup",c),document.removeEventListener("mousemove",a),i.config.node.classList.remove("dhx_window--stop_selection")};document.addEventListener("mouseup",c),document.addEventListener("mousemove",a)},t.prototype._startResize=function(t){var e,i=this,n=100|this.config.minWidth,o=100|this.config.minHeight,r=this._popup.offsetLeft,s=this._popup.offsetTop,a=this._popup.offsetWidth,c=this._popup.offsetHeight;switch(!0){case t.bottom&&t.left:e="dhx_window-body-pointer--bottom_left";break;case t.bottom&&t.right:e="dhx_window-body-pointer--bottom_right";break;case t.top&&t.left:e="dhx_window-body-pointer--top_left";break;case t.top&&t.right:e="dhx_window-body-pointer--top-right";break;case t.top:e="dhx_window-body-pointer--top";break;case t.bottom:e="dhx_window-body-pointer--bottom";break;case t.left:e="dhx_window-body-pointer--left";break;case t.right:e="dhx_window-body-pointer--right"}this.config.node.classList.add("dhx_window--stop_selection"),this.config.node.classList.add(e);var u=function(e){var u=i._getContainerParams(),d=u.containerInnerWidth,h=u.containerInnerHeight,f=u.containerXOffset,p=u.containerYOffset,_={width:i._notInNode()?e.pageX-r:e.pageX-i.config.node.offsetLeft-r,height:i._notInNode()?e.pageY-s:e.pageY-i.config.node.offsetTop-s,left:i._notInNode()?e.pageX:e.pageX-i.config.node.offsetLeft,top:i._notInNode()?e.pageY:e.pageY-i.config.node.offsetTop};t.right&&(_.widthf+d-r&&(_.width=f+d-r),i._popup.style.width=_.width+"px"),t.bottom&&(_.heightp+h-s&&(_.height=p+h-s),i._popup.style.height=_.height+"px"),t.left&&(r+a-_.left
-
-
-
-
+
+
+
+
@@ -33,8 +33,8 @@