{"id":12595,"date":"2024-07-16T13:03:49","date_gmt":"2024-07-16T10:03:49","guid":{"rendered":"https:\/\/dhtmlx.com\/blog\/?p=12595"},"modified":"2024-11-01T13:26:05","modified_gmt":"2024-11-01T10:26:05","slug":"dhtmlx-suite-8-4","status":"publish","type":"post","link":"https:\/\/dhtmlx.com\/blog\/dhtmlx-suite-8-4\/","title":{"rendered":"DHTMLX Suite 8.4 with Multiple API Novelties for Grid\/TreeGrid, Chart, Toolbar, ComboBox, and New Samples"},"content":{"rendered":"<p>In the rapid world of web development, it is crucial to get all the needed updates and features on time. That&#8217;s what we do at DHTMLX &#8211; we regularly provide developers with the demanded functionality to help them achieve their goals faster. This time we are excited to present the release of DHTMLX Suite 8.4.<\/p>\n<p>The new version comes with numerous API updates that will certainly contribute to your experience with popular Suite <a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxSuite\/\" rel=\"noopener\" target=\"_blank\">JavaScript UI widgets<\/a>, such as Grid\/TreeGrid, Combobox, Chart, Form, and Toolbar. <\/p>\n<p>The DHTMLX Combobox widget offers an opportunity to add your logic in templates applicable in widgets, where Combobox is integrated, namely, Grid, TreeGrid, and Form. The Chart widget now allows specifying a template for showing values in  Pie, Pie3D, and Donut charts and adding the header\/footer for an exported chart in PDF and PNG formats. The latter feature is also available in Grid and TreeGrid together with other useful improvements. The updated Toolbar widget enables you to expand items by hovering over toolbar elements with the mouse pointer. Apart from that, we included in v8.4 a collection of new samples that further unveil the capabilities of Suite widgets.<\/p>\n\n\t\t<div class='post-banner'>\n\t\t    <div class='post-banner__inside'>\n\t\t        <div>\n\t\t            <div class=\"post-banner__title\">Download DHTMLX Suite v8.4<\/div>\n\t\t            <div class=\"post-banner__text\">Estimate the updated functionality for building modern data-intensive apps<\/div>\n                <\/div>\n\t\t            \n                \n            <div class='post-banner__btn'>\n                <a href='https:\/\/dhtmlx.com\/docs\/products\/dhtmlxSuite\/download.shtml' title='' class='button-secondary'>Get free trial<\/a>\n            <\/div>\n        \n            <\/div>\n\t\t<\/div>\n\t\n<p>In this release article, we review all the novelties for each widget in more detail.<\/p>\n<h5>DHTMLX ComboBox: Event Handlers in Custom Templates<\/h5>\n<p>We start with the new feature in the <a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxCombo\/\" rel=\"noopener\" target=\"_blank\"> DHTMLX ComboBox<\/a> widget designed to expand your customization capabilities. From now on, you can add event handlers to HTML elements of a custom template of Combobox items via the new <strong>eventHadlers<\/strong> property. <\/p>\n<p>The <strong>eventHandlers<\/strong> object includes a set of <strong>key:value<\/strong> pairs, where the <strong>key<\/strong> names the event for the handler and the <strong>value<\/strong> contains the event object and the id of a Combobox item.<\/p>\n<p>For instance, you can use the <strong>eventHandlers<\/strong> configuration option with the <strong>onclick<\/strong> event that fires when an end-user deletes options from the combobox list like in the example below:<\/p>\n<div class=\"codecolorer-container javascript default\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\"><span class=\"kw1\">const<\/span> combobox <span class=\"sy0\">=<\/span> <span class=\"kw1\">new<\/span> dhx.<span class=\"me1\">Combobox<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;combobox&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; newOptions<span class=\"sy0\">:<\/span> <span class=\"kw2\">true<\/span><span class=\"sy0\">,<\/span> <span class=\"co1\">\/\/ enables the ability to add and save new values from UI<\/span><br \/>\n&nbsp; &nbsp; itemHeight<span class=\"sy0\">:<\/span> <span class=\"nu0\">40<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; template<span class=\"sy0\">:<\/span> <span class=\"br0\">&#40;<\/span><span class=\"br0\">&#123;<\/span> value<span class=\"sy0\">,<\/span> src <span class=\"br0\">&#125;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">=&gt;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"kw1\">return<\/span> `<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">&lt;<\/span>div <span class=\"kw5\">class<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;list-item&quot;<\/span><span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">&lt;<\/span>div <span class=\"kw5\">class<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;list-item__content&quot;<\/span><span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">&lt;<\/span>img <span class=\"kw5\">class<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;list-item__image&quot;<\/span> src<span class=\"sy0\">=<\/span><span class=\"st0\">&quot;${src}&quot;<\/span> alt<span class=\"sy0\">=<\/span><span class=\"st0\">&quot;${value}&quot;<\/span><span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">&lt;<\/span>span <span class=\"kw5\">class<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;list-item__value&quot;<\/span><span class=\"sy0\">&gt;<\/span>$<span class=\"br0\">&#123;<\/span>value<span class=\"br0\">&#125;<\/span><span class=\"sy0\">&lt;\/<\/span>span<span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">&lt;\/<\/span>div<span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">&lt;<\/span>button <span class=\"kw5\">class<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;list-item__button list-item__button--delete&quot;<\/span><span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">&lt;<\/span>i <span class=\"kw5\">class<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;dxi dxi-delete-forever&quot;<\/span><span class=\"sy0\">&gt;&lt;\/<\/span>i<span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">&lt;\/<\/span>button<span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">&lt;\/<\/span>div<span class=\"sy0\">&gt;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; `<span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; eventHandlers<span class=\"sy0\">:<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; onclick<span class=\"sy0\">:<\/span> <span class=\"br0\">&#123;<\/span> <br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"st0\">&quot;list-item__button--delete&quot;<\/span><span class=\"sy0\">:<\/span> <span class=\"br0\">&#40;<\/span>event<span class=\"sy0\">,<\/span> id<span class=\"br0\">&#41;<\/span> <span class=\"sy0\">=&gt;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; combobox.<span class=\"me1\">data<\/span>.<span class=\"me1\">remove<\/span><span class=\"br0\">&#40;<\/span>id<span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; combobox.<span class=\"me1\">clear<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span> &nbsp; &nbsp;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span> <br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"br0\">&#125;<\/span> <br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#125;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; data<span class=\"sy0\">,<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2024\/07\/image3.gif\" alt=\"v8.4 - updated ComboBox widget\" width=\"669\" height=\"277\" class=\"aligncenter size-full wp-image-12598\" \/><a href=\"https:\/\/snippet.dhtmlx.com\/00955xwq?tag=combobox&#038;mode=wide\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a><\/p>\n<p>When it becomes necessary to disable this feature, you can do it either by returning false from a handler function or by using the <strong>stopPropagation()<\/strong> method.<\/p>\n<h5>DHTMLX Grid\/TreeGrid: Combobox Editor with Custom Event Handlers, Header\/Footer in Exported PDF and PNG Files<\/h5>\n<p>Now we pass on to the most widely used Suite widgets &#8211; <a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxGrid\/\" rel=\"noopener\" target=\"_blank\">JavaScript Grid<\/a> and <a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxTreeGrid\/\" rel=\"noopener\" target=\"_blank\">TreeGrid<\/a>. Both widgets are enriched with new configuration options. <\/p>\n<p>First, the configuration object of the &#8220;combobox&#8221; column editor for Grid and TreeGrid includes the new <strong>eventHandlers<\/strong> option. Initially, we integrated this feature into the Combobox widget used in editors of both Grids as well as in the Form Combo control. It allows setting your logic of handling events assigned to HTML elements of a custom template of Combobox editor items in a column.<\/p>\n<p>In addition, you also have an opportunity to specify a header and a footer when exporting your JavaScript Grid or TreeGrid to a PDF or PNG file. The corresponding options are added to the configuration object of both widgets&#8217; <strong>png()<\/strong> and <strong>pdf()<\/strong> export methods.<\/p>\n<div class=\"codecolorer-container javascript default\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\">grid.<span class=\"kw5\">export<\/span>.<span class=\"me1\">png<\/span><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#123;<\/span> <br \/>\n&nbsp; &nbsp; url<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;https:\/\/export.dhtmlx.com\/chart\/png\/8.0.0&quot;<\/span><span class=\"sy0\">,<\/span> <br \/>\n&nbsp; &nbsp; header<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;&lt;h2&gt;Header&lt;\/h2&gt;&quot;<\/span><span class=\"sy0\">,<\/span> <br \/>\n&nbsp; &nbsp; footer<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;&lt;h4&gt;Footer&lt;\/h4&gt;&quot;<\/span> <br \/>\n<span class=\"br0\">&#125;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<p>Moreover, now it is possible to use the majority of Data\/TreeCollection methods during dynamic loading (added in the List widget as well), set Grid\/TreeGrid tooltip as a configuration object and specify various settings such as the delay time for showing\/hiding the tooltip box, its style and position, etc., and apply a filtering function for the Combobox editor in a column.<\/p>\n<h5>DHTMLX Toolbar: New Navigation Option for MenuItem and NavItem Controls<\/h5>\n<p>The new Suite 8.4 brings in a handy addition to the navigation capabilities of the DHTMLX <a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxToolbar\/\" rel=\"noopener\" target=\"_blank\">Toolbar<\/a> widget. From now on, you can enable end-users to see menu options in the toolbar by simply hovering the mouse pointer over them.<br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2024\/07\/image2.gif\" alt=\"v8.4 - Toolbar\" width=\"672\" height=\"250\" class=\"aligncenter size-full wp-image-12600\" \/><a href=\"https:\/\/snippet.dhtmlx.com\/co782d78?tag=toolbar&#038;mode=wide\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a><\/p>\n<p>To do that, you should set the <strong>pointer<\/strong> parameter in the new <strong>navigationType<\/strong> config added for <strong>menuItem<\/strong> and <strong>navItem<\/strong> controls of the Toolbar:<\/p>\n<div class=\"codecolorer-container javascript default\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\"><span class=\"kw1\">const<\/span> toolbar <span class=\"sy0\">=<\/span> <span class=\"kw1\">new<\/span> dhx.<span class=\"me1\">Toolbar<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;toolbar_container&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp;navigationType<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;pointer&quot;<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<p>The default value of the <strong>navigationType<\/strong> parameter is <strong>click<\/strong>, which means that menu items are shown when a user clicks on them.<\/p>\n<h5>DHTMLX Chart: Template for Values, Header\/Footer in Charts Exported in PDF and PNG Formats<\/h5>\n<p>The <a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxChart\/\" rel=\"noopener\" target=\"_blank\">Chart widget<\/a> is another popular Suite widget with several improvements incorporated in v8.4.<\/p>\n<p>Starting from v8.4, you can provide templates for values of data items when building Pie, Pie3D, and Donut charts with DHTMLX. The required template function is specified with the <strong>valueTemplate<\/strong> option:<\/p>\n<div class=\"codecolorer-container javascript default\" style=\"overflow:auto;white-space:nowrap;\"><div class=\"javascript codecolorer\"><span class=\"kw1\">const<\/span> chart <span class=\"sy0\">=<\/span> <span class=\"kw1\">new<\/span> dhx.<span class=\"me1\">Chart<\/span><span class=\"br0\">&#40;<\/span><span class=\"st0\">&quot;chart_container&quot;<\/span><span class=\"sy0\">,<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp;type<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;pie&quot;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp;series<span class=\"sy0\">:<\/span> <span class=\"br0\">&#91;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;value<span class=\"sy0\">:<\/span> <span class=\"st0\">&quot;value&quot;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;valueTemplate<span class=\"sy0\">:<\/span> value <span class=\"sy0\">=&gt;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"kw1\">return<\/span> <span class=\"br0\">&#40;<\/span>value <span class=\"sy0\">*<\/span> <span class=\"nu0\">100<\/span><span class=\"br0\">&#41;<\/span>.<span class=\"me1\">toFixed<\/span><span class=\"br0\">&#40;<\/span><span class=\"nu0\">2<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">+<\/span> <span class=\"st0\">&quot;%&quot;<\/span><span class=\"sy0\">;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;<span class=\"br0\">&#125;<\/span><br \/>\n&nbsp; &nbsp;<span class=\"br0\">&#93;<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><\/div><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2024\/07\/image1.png\" alt=\"v8.4 - Chart widget\" width=\"773\" height=\"324\" class=\"aligncenter size-full wp-image-12601\" srcset=\"https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2024\/07\/image1.png 773w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2024\/07\/image1-300x126.png 300w, https:\/\/dhtmlx.com\/blog\/wp-content\/uploads\/2024\/07\/image1-768x322.png 768w\" sizes=\"auto, (max-width: 773px) 100vw, 773px\" \/><a href=\"https:\/\/snippet.dhtmlx.com\/77aei7os?tag=chart&#038;mode=wide\" rel=\"noopener\" target=\"_blank\">Check the sample ><\/a><\/p>\n<p>Just like Grid and TreeGrid, DHTMLX Chart enables you to add headers and footers in charts exported in PDF and PNG formats. For this purpose, you can use the corresponding <strong>header<\/strong> and <strong>footer<\/strong> options in the <strong>export<\/strong> object.<\/p>\n<h5>New Samples<\/h5>\n<p>As a cherry on top, our development team also prepared a pack of new samples that clearly illustrate the practical implementation of specific functionalities in Suite widgets. Here is the list of new samples:<\/p>\n<ul>\n<li>Combobox. <a href=\"https:\/\/snippet.dhtmlx.com\/sk7q5wvl?tag=combobox\" rel=\"noopener\" target=\"_blank\">Groups in the drop-down list<\/a><\/li>\n<li>Combobox. <a href=\"https:\/\/snippet.dhtmlx.com\/xd511ci5?tag=combobox\" rel=\"noopener\" target=\"_blank\">Editing\/deleting options<\/a><\/li>\n<li>Grid. <a href=\"https:\/\/snippet.dhtmlx.com\/z2c4sfnn?tag=grid\" rel=\"noopener\" target=\"_blank\">Editing with a colorpicker editor<\/a><\/li>\n<li>Grid. <a href=\"https:\/\/snippet.dhtmlx.com\/7b2vb9mu?tag=grid&#038;mode=wide\" rel=\"noopener\" target=\"_blank\">Editing with a Grid editor<\/a><\/li>\n<li>Tabbar. <a href=\"https:\/\/snippet.dhtmlx.com\/o5x1e3i8?tag=tabbar\" rel=\"noopener\" target=\"_blank\">Tooltips on tabs<\/a><\/li>\n<li>TreeGrid. <a href=\"https:\/\/snippet.dhtmlx.com\/tx89igxr?tag=treegrid\" rel=\"noopener\" target=\"_blank\">Editing with a colorpicker editor<\/a><\/li>\n<\/ul>\n<p>These are the main features included in DHTMLX Suite v8.4, and you can look through them again in the &#8220;<a href=\"https:\/\/docs.dhtmlx.com\/suite\/whatsnew\/#version-84\" rel=\"noopener\" target=\"_blank\">What\u2019s new<\/a>&#8221; section of our documentation.<\/p>\n<p>To try all new capabilities in your projects, you can download a <a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxSuite\/download.shtml\" rel=\"noopener\" target=\"_blank\">free 30-day trial version<\/a> of DHTMLX Suite. For our current clients, v8.4 is available in their <a href=\"https:\/\/dhtmlx.com\/clients\/\" rel=\"noopener\" target=\"_blank\">Client\u2019s Area<\/a>.<\/p>\n<h5>Related Materials<\/h5>\n<ul>\n<li><a href=\"https:\/\/docs.dhtmlx.com\/suite\/whatsnew\/#version-84\" rel=\"noopener\" target=\"_blank\">What\u2019s new in v8.4<\/a><\/li>\n<li><a href=\"https:\/\/docs.dhtmlx.com\/suite\/\" rel=\"noopener\" target=\"_blank\">DHTMLX Suite documentation<\/a><\/li>\n<li><a href=\"https:\/\/snippet.dhtmlx.com\/00955xwq?tag=combobox&#038;mode=wide\" rel=\"noopener\" target=\"_blank\">DHTMLX Suite code snippets<\/a><\/li>\n<li><a href=\"https:\/\/dhtmlx.com\/docs\/products\/dhtmlxSuite\/download.shtml\" rel=\"noopener\" target=\"_blank\">Free 30-day trial version<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>In the rapid world of web development, it is crucial to get all the needed updates and features on time. That&#8217;s what we do at DHTMLX &#8211; we regularly &#8230;<\/p>\n","protected":false},"author":101014,"featured_media":12599,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[70],"tags":[33,6,10],"class_list":["post-12595","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-releases","tag-all-posts","tag-dhtmlxgrid","tag-dhtmlxsuite"],"_links":{"self":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/12595","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/users\/101014"}],"replies":[{"embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/comments?post=12595"}],"version-history":[{"count":6,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/12595\/revisions"}],"predecessor-version":[{"id":12604,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/posts\/12595\/revisions\/12604"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/media\/12599"}],"wp:attachment":[{"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/media?parent=12595"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/categories?post=12595"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dhtmlx.com\/blog\/wp-json\/wp\/v2\/tags?post=12595"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}