代码拉取完成,页面将自动刷新
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="dns-prefetch" href="https://github.githubassets.com">
<link rel="dns-prefetch" href="https://avatars0.githubusercontent.com">
<link rel="dns-prefetch" href="https://avatars1.githubusercontent.com">
<link rel="dns-prefetch" href="https://avatars2.githubusercontent.com">
<link rel="dns-prefetch" href="https://avatars3.githubusercontent.com">
<link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com">
<link rel="dns-prefetch" href="https://user-images.githubusercontent.com/">
<link crossorigin="anonymous" media="all" integrity="sha512-7mtunHqp/Bw0ND9akjJME8XCh0WPm3HAXOSeX7skL0qGAhpdfzkQvYcujYcwNPTpWKeKMFUGZGtvnEkcczFgwQ==" rel="stylesheet" href="https://github.githubassets.com/assets/frameworks-9b5314213e37056ed87b0418056c4f2c.css" />
<link crossorigin="anonymous" media="all" integrity="sha512-72YAQLJ3wNQBTmzSw8GuhpmRbpFX+Fc7CrVI80DxyM6hItKFtd8SmRqzdqhHWxcFLVI91GmT9+jBiIxzvAvbWw==" rel="stylesheet" href="https://github.githubassets.com/assets/github-858574b4b94fdd617a9aeeb43ae58986.css" />
<meta name="viewport" content="width=device-width">
<title>DevExpress/DevExtreme: HTML5 JavaScript Component Suite for Responsive Web Development</title>
<meta name="description" content="HTML5 JavaScript Component Suite for Responsive Web Development - DevExpress/DevExtreme">
<link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">
<link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
<meta property="fb:app_id" content="1401488693436528">
<meta name="twitter:image:src" content="https://avatars3.githubusercontent.com/u/4243232?s=400&v=4" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary" /><meta name="twitter:title" content="DevExpress/DevExtreme" /><meta name="twitter:description" content="HTML5 JavaScript Component Suite for Responsive Web Development - DevExpress/DevExtreme" />
<meta property="og:image" content="https://avatars3.githubusercontent.com/u/4243232?s=400&v=4" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="DevExpress/DevExtreme" /><meta property="og:url" content="https://github.com/DevExpress/DevExtreme" /><meta property="og:description" content="HTML5 JavaScript Component Suite for Responsive Web Development - DevExpress/DevExtreme" />
<link rel="assets" href="https://github.githubassets.com/">
<link rel="web-socket" href="wss://live.github.com/_sockets/VjI6NDc4MjA0NDE0OjUzNzZmYjg2OGI5NmU0NjhjNzFiMTBkNGE1NjIwZjkwMjYxYmE1YjZlOTAxOWJmMTc1ZmQ2MGZkMDc3OWJjNDQ=--cc37748b6b53fb0688cda01fac05186b5c6161b3">
<link rel="sudo-modal" href="/sessions/sudo_modal">
<meta name="request-id" content="2B3F:3694:56AF529:7849145:5DF4F3C2" data-pjax-transient>
<meta name="selected-link" value="repo_source" data-pjax-transient>
<meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU">
<meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA">
<meta name="google-site-verification" content="GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc">
<meta name="octolytics-host" content="collector.githubapp.com" /><meta name="octolytics-app-id" content="github" /><meta name="octolytics-event-url" content="https://collector.githubapp.com/github-external/browser_event" /><meta name="octolytics-dimension-request_id" content="2B3F:3694:56AF529:7849145:5DF4F3C2" /><meta name="octolytics-dimension-region_edge" content="ap-southeast-1" /><meta name="octolytics-dimension-region_render" content="iad" /><meta name="octolytics-dimension-ga_id" content="" class="js-octo-ga-id" /><meta name="octolytics-dimension-visitor_id" content="98967373898957943" /><meta name="octolytics-actor-id" content="57746033" /><meta name="octolytics-actor-login" content="bzmework" /><meta name="octolytics-actor-hash" content="f14702ac33afee6d338296702ad028e5d3aa67a94a4b018d6936333e7242fca8" />
<meta name="analytics-location" content="/<user-name>/<repo-name>" data-pjax-transient="true" />
<meta name="google-analytics" content="UA-3769691-2">
<meta class="js-ga-set" name="userId" content="b79bc7543e992cd050f0364d917235db">
<meta class="js-ga-set" name="dimension1" content="Logged In">
<meta name="hostname" content="github.com">
<meta name="user-login" content="bzmework">
<meta name="expected-hostname" content="github.com">
<meta name="js-proxy-site-detection-payload" content="ZGYzNGNkOTVmNDM1M2Y2MjY1MTUxYTg4ZGI4YWU3NjliOTgwMDNkYjYyNzk1MmE0YzBmNzJkMzYwYmZkN2I4Mnx7InJlbW90ZV9hZGRyZXNzIjoiMTgzLjIyOC41OC4xNzEiLCJyZXF1ZXN0X2lkIjoiMkIzRjozNjk0OjU2QUY1Mjk6Nzg0OTE0NTo1REY0RjNDMiIsInRpbWVzdGFtcCI6MTU3NjMzNDMwNywiaG9zdCI6ImdpdGh1Yi5jb20ifQ==">
<meta name="enabled-features" content="MARKETPLACE_FEATURED_BLOG_POSTS,MARKETPLACE_INVOICED_BILLING,MARKETPLACE_SOCIAL_PROOF_CUSTOMERS,MARKETPLACE_TRENDING_SOCIAL_PROOF,MARKETPLACE_RECOMMENDATIONS,MARKETPLACE_PENDING_INSTALLATIONS,NOTIFY_ON_BLOCK,RELATED_ISSUES,GHE_CLOUD_TRIAL">
<meta name="html-safe-nonce" content="2c6887766c589f4be0332cb59dc17c74545ce424">
<meta http-equiv="x-pjax-version" content="eec3ba67062d58a31e996f1a551a6294">
<link href="https://github.com/DevExpress/DevExtreme/commits/20_1.atom" rel="alternate" title="Recent Commits to DevExtreme:20_1" type="application/atom+xml">
<meta name="go-import" content="github.com/DevExpress/DevExtreme git https://github.com/DevExpress/DevExtreme.git">
<meta name="octolytics-dimension-user_id" content="4243232" /><meta name="octolytics-dimension-user_login" content="DevExpress" /><meta name="octolytics-dimension-repository_id" content="88523356" /><meta name="octolytics-dimension-repository_nwo" content="DevExpress/DevExtreme" /><meta name="octolytics-dimension-repository_public" content="true" /><meta name="octolytics-dimension-repository_is_fork" content="false" /><meta name="octolytics-dimension-repository_network_root_id" content="88523356" /><meta name="octolytics-dimension-repository_network_root_nwo" content="DevExpress/DevExtreme" /><meta name="octolytics-dimension-repository_explore_github_marketplace_ci_cta_shown" content="false" />
<link rel="canonical" href="https://github.com/DevExpress/DevExtreme" data-pjax-transient>
<meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">
<meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">
<link rel="mask-icon" href="https://github.githubassets.com/pinned-octocat.svg" color="#000000">
<link rel="icon" type="image/x-icon" class="js-site-favicon" href="https://github.githubassets.com/favicon.ico">
<meta name="theme-color" content="#1e2327">
<meta name="webauthn-auth-enabled" content="true">
<meta name="webauthn-registration-enabled" content="true">
<link rel="manifest" href="/manifest.json" crossOrigin="use-credentials">
</head>
<body class="logged-in env-production min-width-lg">
<div class="position-relative js-header-wrapper ">
<a href="#start-of-content" tabindex="1" class="p-3 bg-blue text-white show-on-focus js-skip-to-content">Skip to content</a>
<span class="Progress progress-pjax-loader position-fixed width-full js-pjax-loader-bar">
<span class="progress-pjax-loader-bar top-0 left-0" style="width: 0%;"></span>
</span>
<header class="Header" role="banner">
<div class="Header-item">
<a class="Header-link" href="https://github.com/" data-hotkey="g d" aria-label="Homepage" data-ga-click="Header, go to dashboard, icon:logo">
<svg class="octicon octicon-mark-github v-align-middle" height="32" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg>
</a>
</div>
<div class="Header-item Header-item--full">
<div class="header-search mr-3 scoped-search site-scoped-search js-site-search position-relative js-jump-to"
role="combobox"
aria-owns="jump-to-results"
aria-label="Search or jump to"
aria-haspopup="listbox"
aria-expanded="false"
>
<div class="position-relative">
<!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-site-search-form" role="search" aria-label="Site" data-scope-type="Repository" data-scope-id="88523356" data-scoped-search-url="/DevExpress/DevExtreme/search" data-unscoped-search-url="/search" action="/DevExpress/DevExtreme/search" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓" />
<label class="form-control input-sm header-search-wrapper p-0 header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center js-chromeless-input-container">
<input type="text"
class="form-control input-sm header-search-input jump-to-field js-jump-to-field js-site-search-focus js-site-search-field is-clearable"
data-hotkey="s,/"
name="q"
value=""
placeholder="Search or jump to…"
data-unscoped-placeholder="Search or jump to…"
data-scoped-placeholder="Search or jump to…"
autocapitalize="off"
aria-autocomplete="list"
aria-controls="jump-to-results"
aria-label="Search or jump to…"
data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations#csrf-token=pmOr5UP9Wr7AW3o98ArD+05OUwuRv7hAODa3qnd6oWtueTf066cflFDemnCnRuIncCTRAJsPcEm8/tC/4Ol9Iw=="
spellcheck="false"
autocomplete="off"
>
<input type="hidden" class="js-site-search-type-field" name="type" >
<img src="https://github.githubassets.com/images/search-key-slash.svg" alt="" class="mr-2 header-search-key-slash">
<div class="Box position-absolute overflow-hidden d-none jump-to-suggestions js-jump-to-suggestions-container">
<ul class="d-none js-jump-to-suggestions-template-container">
<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-suggestion" role="option">
<a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
<div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
<svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 12 16" version="1.1" role="img"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
<svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 15 16" version="1.1" role="img"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 00-1 1v14a1 1 0 001 1h13a1 1 0 001-1V1a1 1 0 00-1-1z"/></svg>
<svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M15.7 13.3l-3.81-3.83A5.93 5.93 0 0013 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 000-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z"/></svg>
</div>
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
<div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
</div>
<div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
<span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
In this repository
</span>
<span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
All GitHub
</span>
<span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
</div>
<div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
Jump to
<span class="d-inline-block ml-1 v-align-middle">↵</span>
</div>
</a>
</li>
</ul>
<ul class="d-none js-jump-to-no-results-template-container">
<li class="d-flex flex-justify-center flex-items-center f5 d-none js-jump-to-suggestion p-2">
<span class="text-gray">No suggested jump to results</span>
</li>
</ul>
<ul id="jump-to-results" role="listbox" class="p-0 m-0 js-navigation-container jump-to-suggestions-results-container js-jump-to-suggestions-results-container">
<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-scoped-search d-none" role="option">
<a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
<div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
<svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 12 16" version="1.1" role="img"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
<svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 15 16" version="1.1" role="img"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 00-1 1v14a1 1 0 001 1h13a1 1 0 001-1V1a1 1 0 00-1-1z"/></svg>
<svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M15.7 13.3l-3.81-3.83A5.93 5.93 0 0013 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 000-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z"/></svg>
</div>
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
<div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
</div>
<div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
<span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
In this repository
</span>
<span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
All GitHub
</span>
<span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
</div>
<div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
Jump to
<span class="d-inline-block ml-1 v-align-middle">↵</span>
</div>
</a>
</li>
<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-global-search d-none" role="option">
<a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
<div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
<svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 12 16" version="1.1" role="img"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
<svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 15 16" version="1.1" role="img"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 00-1 1v14a1 1 0 001 1h13a1 1 0 001-1V1a1 1 0 00-1-1z"/></svg>
<svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M15.7 13.3l-3.81-3.83A5.93 5.93 0 0013 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 000-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z"/></svg>
</div>
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
<div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
</div>
<div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
<span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
In this repository
</span>
<span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
All GitHub
</span>
<span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
</div>
<div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
Jump to
<span class="d-inline-block ml-1 v-align-middle">↵</span>
</div>
</a>
</li>
<li class="d-flex flex-justify-center flex-items-center p-0 f5 js-jump-to-suggestion">
<img src="https://github.githubassets.com/images/spinners/octocat-spinner-128.gif" alt="Octocat Spinner Icon" class="m-2" width="28">
</li>
</ul>
</div>
</label>
</form> </div>
</div>
<nav class="d-flex" aria-label="Global">
<a class="js-selected-navigation-item Header-link mr-3" data-hotkey="g p" data-ga-click="Header, click, Nav menu - item:pulls context:user" aria-label="Pull requests you created" data-selected-links="/pulls /pulls/assigned /pulls/mentioned /pulls" href="/pulls">
Pull requests
</a>
<a class="js-selected-navigation-item Header-link mr-3" data-hotkey="g i" data-ga-click="Header, click, Nav menu - item:issues context:user" aria-label="Issues you created" data-selected-links="/issues /issues/assigned /issues/mentioned /issues" href="/issues">
Issues
</a>
<div class="mr-3">
<a class="js-selected-navigation-item Header-link" data-ga-click="Header, click, Nav menu - item:marketplace context:user" data-octo-click="marketplace_click" data-octo-dimensions="location:nav_bar" data-selected-links=" /marketplace" href="/marketplace">
Marketplace
</a>
</div>
<a class="js-selected-navigation-item Header-link mr-3" data-ga-click="Header, click, Nav menu - item:explore" data-selected-links="/explore /trending /trending/developers /integrations /integrations/feature/code /integrations/feature/collaborate /integrations/feature/ship showcases showcases_search showcases_landing /explore" href="/explore">
Explore
</a>
</nav>
</div>
<div class="Header-item">
<a aria-label="You have no unread notifications" class="Header-link notification-indicator position-relative tooltipped tooltipped-sw js-socket-channel js-notification-indicator" data-hotkey="g n" data-ga-click="Header, go to notifications, icon:read" data-channel="notification-changed:57746033" href="/notifications">
<span class="mail-status "></span>
<svg class="octicon octicon-bell" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14 12v1H0v-1l.73-.58c.77-.77.81-2.55 1.19-4.42C2.69 3.23 6 2 6 2c0-.55.45-1 1-1s1 .45 1 1c0 0 3.39 1.23 4.16 5 .38 1.88.42 3.66 1.19 4.42l.66.58H14zm-7 4c1.11 0 2-.89 2-2H5c0 1.11.89 2 2 2z"/></svg>
</a>
</div>
<div class="Header-item position-relative">
<details class="details-overlay details-reset">
<summary class="Header-link"
aria-label="Create new…"
data-ga-click="Header, create new, icon:add">
<svg class="octicon octicon-plus" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 9H7v5H5V9H0V7h5V2h2v5h5v2z"/></svg> <span class="dropdown-caret"></span>
</summary>
<details-menu class="dropdown-menu dropdown-menu-sw">
<a role="menuitem" class="dropdown-item" href="/new" data-ga-click="Header, create new repository">
New repository
</a>
<a role="menuitem" class="dropdown-item" href="/new/import" data-ga-click="Header, import a repository">
Import repository
</a>
<a role="menuitem" class="dropdown-item" href="https://gist.github.com/" data-ga-click="Header, create new gist">
New gist
</a>
<a role="menuitem" class="dropdown-item" href="/organizations/new" data-ga-click="Header, create new organization">
New organization
</a>
<div role="none" class="dropdown-divider"></div>
<div class="dropdown-header">
<span title="DevExpress/DevExtreme">This repository</span>
</div>
<a role="menuitem" class="dropdown-item" href="/DevExpress/DevExtreme/issues/new" data-ga-click="Header, create new issue" data-skip-pjax>
New issue
</a>
</details-menu>
</details>
</div>
<div class="Header-item position-relative mr-0">
<details class="details-overlay details-reset js-feature-preview-indicator-container" data-feature-preview-indicator-src="/users/bzmework/feature_preview/indicator_check.json">
<summary class="Header-link"
aria-label="View profile and more"
data-ga-click="Header, show menu, icon:avatar">
<img alt="@bzmework" class="avatar" src="https://avatars2.githubusercontent.com/u/57746033?s=40&v=4" height="20" width="20">
<span class="feature-preview-indicator js-feature-preview-indicator" hidden></span>
<span class="dropdown-caret"></span>
</summary>
<details-menu class="dropdown-menu dropdown-menu-sw mt-2" style="width: 180px">
<div class="header-nav-current-user css-truncate"><a role="menuitem" class="no-underline user-profile-link px-3 pt-2 pb-2 mb-n2 mt-n1 d-block" href="/bzmework" data-ga-click="Header, go to profile, text:Signed in as">Signed in as <strong class="css-truncate-target">bzmework</strong></a></div>
<div role="none" class="dropdown-divider"></div>
<div class="pl-3 pr-3 f6 user-status-container js-user-status-context pb-1" data-url="/users/status?compact=1&link_mentions=0&truncate=1">
<div class="js-user-status-container
user-status-compact rounded-1 px-2 py-1 mt-2
border
" data-team-hovercards-enabled>
<details class="js-user-status-details details-reset details-overlay details-overlay-dark">
<summary class="btn-link btn-block link-gray no-underline js-toggle-user-status-edit toggle-user-status-edit "
role="menuitem" data-hydro-click="{"event_type":"user_profile.click","payload":{"profile_user_id":4243232,"target":"EDIT_USER_STATUS","user_id":57746033,"client_id":"23042637.1570358391","originating_request_id":"2B3F:3694:56AF529:7849145:5DF4F3C2","originating_url":"https://github.com/DevExpress/DevExtreme","referrer":"https://github.com/DevExpress"}}" data-hydro-click-hmac="489ecd0b2e63d55832742180f7c6c536f3b28ef4047ad9df746e17815ad1e237">
<div class="d-flex">
<div class="f6 lh-condensed user-status-header
d-inline-block v-align-middle
user-status-emoji-only-header circle
pr-2
"
style="max-width: 29px"
>
<div class="user-status-emoji-container flex-shrink-0 mr-1 mt-1 lh-condensed-ultra v-align-bottom" style="">
<svg class="octicon octicon-smiley" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm4.81 12.81a6.72 6.72 0 01-2.17 1.45c-.83.36-1.72.53-2.64.53-.92 0-1.81-.17-2.64-.53-.81-.34-1.55-.83-2.17-1.45a6.773 6.773 0 01-1.45-2.17A6.59 6.59 0 011.21 8c0-.92.17-1.81.53-2.64.34-.81.83-1.55 1.45-2.17.62-.62 1.36-1.11 2.17-1.45A6.59 6.59 0 018 1.21c.92 0 1.81.17 2.64.53.81.34 1.55.83 2.17 1.45.62.62 1.11 1.36 1.45 2.17.36.83.53 1.72.53 2.64 0 .92-.17 1.81-.53 2.64-.34.81-.83 1.55-1.45 2.17zM4 6.8v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2H5.2C4.53 8 4 7.47 4 6.8zm5 0v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2h-.59C9.53 8 9 7.47 9 6.8zm4 3.2c-.72 1.88-2.91 3-5 3s-4.28-1.13-5-3c-.14-.39.23-1 .66-1h8.59c.41 0 .89.61.75 1z"/></svg>
</div>
</div>
<div class="
d-inline-block v-align-middle
css-truncate css-truncate-target
user-status-message-wrapper f6"
style="line-height: 20px;" >
<div class="d-inline-block text-gray-dark v-align-text-top text-left">
<span class="text-gray ml-2">Set status</span>
</div>
</div>
</div>
</summary>
<details-dialog class="details-dialog rounded-1 anim-fade-in fast Box Box--overlay" role="dialog" tabindex="-1">
<!-- '"` --><!-- </textarea></xmp> --></option></form><form class="position-relative flex-auto js-user-status-form" action="/users/status?compact=1&link_mentions=0&truncate=1" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="c/hUhk4gU5kxTwnkRmyDgZeLbmyq5ShPrshcG+1DMrRvjUhImHgxWaHcqEO0ZBddC5uWqtESvpx7JpOzn6IKog==" />
<div class="Box-header bg-gray border-bottom p-3">
<button class="Box-btn-octicon js-toggle-user-status-edit btn-octicon float-right" type="reset" aria-label="Close dialog" data-close-dialog>
<svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
</button>
<h3 class="Box-title f5 text-bold text-gray-dark">Edit status</h3>
</div>
<input type="hidden" name="emoji" class="js-user-status-emoji-field" value="">
<input type="hidden" name="organization_id" class="js-user-status-org-id-field" value="">
<div class="px-3 py-2 text-gray-dark">
<div class="js-characters-remaining-container position-relative mt-2">
<div class="input-group d-table form-group my-0 js-user-status-form-group">
<span class="input-group-button d-table-cell v-align-middle" style="width: 1%">
<button type="button" aria-label="Choose an emoji" class="btn-outline btn js-toggle-user-status-emoji-picker btn-open-emoji-picker p-0">
<span class="js-user-status-original-emoji" hidden></span>
<span class="js-user-status-custom-emoji"></span>
<span class="js-user-status-no-emoji-icon" >
<svg class="octicon octicon-smiley" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm4.81 12.81a6.72 6.72 0 01-2.17 1.45c-.83.36-1.72.53-2.64.53-.92 0-1.81-.17-2.64-.53-.81-.34-1.55-.83-2.17-1.45a6.773 6.773 0 01-1.45-2.17A6.59 6.59 0 011.21 8c0-.92.17-1.81.53-2.64.34-.81.83-1.55 1.45-2.17.62-.62 1.36-1.11 2.17-1.45A6.59 6.59 0 018 1.21c.92 0 1.81.17 2.64.53.81.34 1.55.83 2.17 1.45.62.62 1.11 1.36 1.45 2.17.36.83.53 1.72.53 2.64 0 .92-.17 1.81-.53 2.64-.34.81-.83 1.55-1.45 2.17zM4 6.8v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2H5.2C4.53 8 4 7.47 4 6.8zm5 0v-.59c0-.66.53-1.19 1.2-1.19h.59c.66 0 1.19.53 1.19 1.19v.59c0 .67-.53 1.2-1.19 1.2h-.59C9.53 8 9 7.47 9 6.8zm4 3.2c-.72 1.88-2.91 3-5 3s-4.28-1.13-5-3c-.14-.39.23-1 .66-1h8.59c.41 0 .89.61.75 1z"/></svg>
</span>
</button>
</span>
<text-expander keys=": @" data-mention-url="/autocomplete/user-suggestions" data-emoji-url="/autocomplete/emoji">
<input
type="text"
autocomplete="off"
data-no-org-url="/autocomplete/user-suggestions"
data-org-url="/suggestions?mention_suggester=1"
data-maxlength="80"
class="d-table-cell width-full form-control js-user-status-message-field js-characters-remaining-field"
placeholder="What's happening?"
name="message"
value=""
aria-label="What is your current status?">
</text-expander>
<div class="error">Could not update your status, please try again.</div>
</div>
<div style="margin-left: 53px" class="my-1 text-small label-characters-remaining js-characters-remaining" data-suffix="remaining" hidden>
80 remaining
</div>
</div>
<include-fragment class="js-user-status-emoji-picker" data-url="/users/status/emoji"></include-fragment>
<div class="overflow-auto ml-n3 mr-n3 px-3 border-bottom" style="max-height: 33vh">
<div class="user-status-suggestions js-user-status-suggestions collapsed overflow-hidden">
<h4 class="f6 text-normal my-3">Suggestions:</h4>
<div class="mx-3 mt-2 clearfix">
<div class="float-left col-6">
<button type="button" value=":palm_tree:" class="d-flex flex-items-baseline flex-items-stretch lh-condensed f6 btn-link link-gray no-underline js-predefined-user-status mb-1">
<div class="emoji-status-width mr-2 v-align-middle js-predefined-user-status-emoji">
<g-emoji alias="palm_tree" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f334.png">🌴</g-emoji>
</div>
<div class="d-flex flex-items-center no-underline js-predefined-user-status-message ws-normal text-left" style="border-left: 1px solid transparent">
On vacation
</div>
</button>
<button type="button" value=":face_with_thermometer:" class="d-flex flex-items-baseline flex-items-stretch lh-condensed f6 btn-link link-gray no-underline js-predefined-user-status mb-1">
<div class="emoji-status-width mr-2 v-align-middle js-predefined-user-status-emoji">
<g-emoji alias="face_with_thermometer" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f912.png">🤒</g-emoji>
</div>
<div class="d-flex flex-items-center no-underline js-predefined-user-status-message ws-normal text-left" style="border-left: 1px solid transparent">
Out sick
</div>
</button>
</div>
<div class="float-left col-6">
<button type="button" value=":house:" class="d-flex flex-items-baseline flex-items-stretch lh-condensed f6 btn-link link-gray no-underline js-predefined-user-status mb-1">
<div class="emoji-status-width mr-2 v-align-middle js-predefined-user-status-emoji">
<g-emoji alias="house" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f3e0.png">🏠</g-emoji>
</div>
<div class="d-flex flex-items-center no-underline js-predefined-user-status-message ws-normal text-left" style="border-left: 1px solid transparent">
Working from home
</div>
</button>
<button type="button" value=":dart:" class="d-flex flex-items-baseline flex-items-stretch lh-condensed f6 btn-link link-gray no-underline js-predefined-user-status mb-1">
<div class="emoji-status-width mr-2 v-align-middle js-predefined-user-status-emoji">
<g-emoji alias="dart" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f3af.png">🎯</g-emoji>
</div>
<div class="d-flex flex-items-center no-underline js-predefined-user-status-message ws-normal text-left" style="border-left: 1px solid transparent">
Focusing
</div>
</button>
</div>
</div>
</div>
<div class="user-status-limited-availability-container">
<div class="form-checkbox my-0">
<input type="checkbox" name="limited_availability" value="1" class="js-user-status-limited-availability-checkbox" data-default-message="I may be slow to respond." aria-describedby="limited-availability-help-text-truncate-true-compact-true" id="limited-availability-truncate-true-compact-true">
<label class="d-block f5 text-gray-dark mb-1" for="limited-availability-truncate-true-compact-true">
Busy
</label>
<p class="note" id="limited-availability-help-text-truncate-true-compact-true">
When others mention you, assign you, or request your review,
GitHub will let them know that you have limited availability.
</p>
</div>
</div>
</div>
<div class="d-inline-block f5 mr-2 pt-3 pb-2" >
<div class="d-inline-block mr-1">
Clear status
</div>
<details class="js-user-status-expire-drop-down f6 dropdown details-reset details-overlay d-inline-block mr-2">
<summary class="f5 btn-link link-gray-dark border px-2 py-1 rounded-1" aria-haspopup="true">
<div class="js-user-status-expiration-interval-selected d-inline-block v-align-baseline">
Never
</div>
<div class="dropdown-caret"></div>
</summary>
<ul class="dropdown-menu dropdown-menu-se pl-0 overflow-auto" style="width: 220px; max-height: 15.5em">
<li>
<button type="button" class="btn-link dropdown-item js-user-status-expire-button ws-normal" title="Never">
<span class="d-inline-block text-bold mb-1">Never</span>
<div class="f6 lh-condensed">Keep this status until you clear your status or edit your status.</div>
</button>
</li>
<li class="dropdown-divider" role="none"></li>
<li>
<button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="in 30 minutes" value="2019-12-14T23:08:27+08:00">
in 30 minutes
</button>
</li>
<li>
<button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="in 1 hour" value="2019-12-14T23:38:27+08:00">
in 1 hour
</button>
</li>
<li>
<button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="in 4 hours" value="2019-12-15T02:38:27+08:00">
in 4 hours
</button>
</li>
<li>
<button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="today" value="2019-12-14T23:59:59+08:00">
today
</button>
</li>
<li>
<button type="button" class="btn-link dropdown-item ws-normal js-user-status-expire-button" title="this week" value="2019-12-15T23:59:59+08:00">
this week
</button>
</li>
</ul>
</details>
<input class="js-user-status-expiration-date-input" type="hidden" name="expires_at" value="">
</div>
<include-fragment class="js-user-status-org-picker" data-url="/users/status/organizations"></include-fragment>
</div>
<div class="d-flex flex-items-center flex-justify-between p-3 border-top">
<button type="submit" disabled class="width-full btn btn-primary mr-2 js-user-status-submit">
Set status
</button>
<button type="button" disabled class="width-full js-clear-user-status-button btn ml-2 ">
Clear status
</button>
</div>
</form> </details-dialog>
</details>
</div>
</div>
<div role="none" class="dropdown-divider"></div>
<a role="menuitem" class="dropdown-item" href="/bzmework" data-ga-click="Header, go to profile, text:your profile">Your profile</a>
<a role="menuitem" class="dropdown-item" href="/bzmework?tab=repositories" data-ga-click="Header, go to repositories, text:your repositories">Your repositories</a>
<a role="menuitem" class="dropdown-item" href="/bzmework?tab=projects" data-ga-click="Header, go to projects, text:your projects">Your projects</a>
<a role="menuitem" class="dropdown-item" href="/bzmework?tab=stars" data-ga-click="Header, go to starred repos, text:your stars">Your stars</a>
<a role="menuitem" class="dropdown-item" href="https://gist.github.com/mine" data-ga-click="Header, your gists, text:your gists">Your gists</a>
<div role="none" class="dropdown-divider"></div>
<div id="feature-enrollment-toggle" class="hide-sm hide-md feature-preview-details position-relative">
<button
type="button"
class="dropdown-item btn-link"
role="menuitem"
data-feature-preview-trigger-url="/users/bzmework/feature_previews"
data-feature-preview-close-details="{"event_type":"feature_preview.clicks.close_modal","payload":{"client_id":"23042637.1570358391","originating_request_id":"2B3F:3694:56AF529:7849145:5DF4F3C2","originating_url":"https://github.com/DevExpress/DevExtreme","referrer":"https://github.com/DevExpress","user_id":57746033}}"
data-feature-preview-close-hmac="6a05ecd420bde453bc57163dba3943aa50a49b96e2fd37d42345db1ae5ebd00d"
data-hydro-click="{"event_type":"feature_preview.clicks.open_modal","payload":{"link_location":"user_dropdown","client_id":"23042637.1570358391","originating_request_id":"2B3F:3694:56AF529:7849145:5DF4F3C2","originating_url":"https://github.com/DevExpress/DevExtreme","referrer":"https://github.com/DevExpress","user_id":57746033}}"
data-hydro-click-hmac="1997183f738656e7fcfa6a8fb2796b3c93b96b541b51198191c427e31fa80384"
>
Feature preview
</button>
<span class="feature-preview-indicator js-feature-preview-indicator" hidden></span>
</div>
<a role="menuitem" class="dropdown-item" href="https://help.github.com" data-ga-click="Header, go to help, text:help">Help</a>
<a role="menuitem" class="dropdown-item" href="/settings/profile" data-ga-click="Header, go to settings, icon:settings">Settings</a>
<!-- '"` --><!-- </textarea></xmp> --></option></form><form class="logout-form" action="/logout" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="l7/qzukN4BO88gRcsQLyOKNQLi3Jizm/WkibRbTfAcg78z0io6IVphKMym+He5wY81TRBYmY6Gs8CoyLxmhlgg==" />
<button type="submit" class="dropdown-item dropdown-signout" data-ga-click="Header, sign out, icon:logout" role="menuitem">
Sign out
</button>
<input type="text" name="required_field_e0b4" id="required_field_e0b4" hidden="hidden" class="form-control" />
<input type="hidden" name="timestamp" value="1576334307154" class="form-control" />
<input type="hidden" name="timestamp_secret" value="c64c716bd0e4ac7838b321092db894496928d1cfd2ac965e83a2bc2463f37eb8" class="form-control" />
</form> </details-menu>
</details>
</div>
</header>
</div>
<div id="start-of-content" class="show-on-focus"></div>
<div id="js-flash-container">
</div>
<div class="application-main " data-commit-hovercards-enabled>
<div itemscope itemtype="http://schema.org/SoftwareSourceCode" class="">
<main id="js-repo-pjax-container" data-pjax-container >
<div class="border-bottom shelf intro-shelf js-notice mb-0 pb-4">
<div class="width-full container">
<div class="width-full mx-auto shelf-content">
<h2 class="shelf-title">Learn Git and GitHub without any code!</h2>
<p class="shelf-lead">
Using the Hello World guide, you’ll start a branch, write comments, and open a pull request.
</p>
<a class="btn btn-primary shelf-cta" target="_blank" data-hydro-click="{"event_type":"repository.click","payload":{"target":"READ_GUIDE","repository_id":88523356,"client_id":"23042637.1570358391","originating_request_id":"2B3F:3694:56AF529:7849145:5DF4F3C2","originating_url":"https://github.com/DevExpress/DevExtreme","referrer":"https://github.com/DevExpress","user_id":57746033}}" data-hydro-click-hmac="cc18c18c302dea40c96724d9b4e166e5161bcb2bf87d882901097a7017ccbf7b" href="https://guides.github.com/activities/hello-world/">Read the guide</a>
</div>
<!-- '"` --><!-- </textarea></xmp> --></option></form><form class="shelf-dismiss js-notice-dismiss" action="/dashboard/dismiss_bootcamp" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="_method" value="delete" /><input type="hidden" name="authenticity_token" value="EkpjXoqBYIehbS34BbSePkT0n3opHYJh2icB5WxfgNN9XZOcnY+IdqD8sk3dRY5AqidbKXd6gnrLRlHGT3i91Q==" />
<button name="button" type="submit" class="mr-1 close-button tooltipped tooltipped-w" aria-label="Hide this notice forever" data-hydro-click="{"event_type":"repository.click","payload":{"target":"DISMISS_BANNER","repository_id":88523356,"client_id":"23042637.1570358391","originating_request_id":"2B3F:3694:56AF529:7849145:5DF4F3C2","originating_url":"https://github.com/DevExpress/DevExtreme","referrer":"https://github.com/DevExpress","user_id":57746033}}" data-hydro-click-hmac="173388e3a6e4b0233a2131fce10bb32c39278d1fe3ba58b49d1884db527e06e2">
<svg aria-label="Hide this notice forever" class="octicon octicon-x v-align-text-top" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
</button></form> </div>
</div>
<div class=" pagehead repohead readability-menu experiment-repo-nav ">
<div class="repohead-details-container clearfix container">
<ul class="pagehead-actions">
<li >
<details class="dropdown details-reset details-overlay d-inline-block float-left"
data-deferred-details-content-url="/DevExpress/DevExtreme/used_by_contents"
>
<summary class="btn btn-sm btn-with-count" data-menu-button>
<svg class="octicon octicon-package v-align-text-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
Used by
<div class="dropdown-caret"></div>
</summary>
<include-fragment accept="text/html; fragment">
<div class="dropdown-menu dropdown-menu-s p-3 text-center" style="width:360px;">
<img width="32" height="32" alt="Loading..." class="my-0" src="https://github.githubassets.com/images/spinners/octocat-spinner-64.gif" />
<p class="pt-1 m-0 f5 text-gray-light">
Loading dependents...
</p>
</div>
</include-fragment>
</details>
<a class="social-count"
href="/DevExpress/DevExtreme/network/dependents?package_id=UGFja2FnZS00OTMyODA5NDA%3D"
aria-label="2069 repositories depend on this package"
>
2.1k
</a>
</li>
<li>
<!-- '"` --><!-- </textarea></xmp> --></option></form><form data-remote="true" class="clearfix js-social-form js-social-container" action="/notifications/subscribe" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="qnUu3gmRFX2CHCdLB0w6vqYWuMiUTFBC0op59t/yw/TAPz1vULzwXgvgFhqIdcH/TvuTwQqfSSSo/95BiKCkjQ==" /> <input type="hidden" name="repository_id" value="88523356">
<details class="details-reset details-overlay select-menu float-left">
<summary class="select-menu-button float-left btn btn-sm btn-with-count" data-hydro-click="{"event_type":"repository.click","payload":{"target":"WATCH_BUTTON","repository_id":88523356,"client_id":"23042637.1570358391","originating_request_id":"2B3F:3694:56AF529:7849145:5DF4F3C2","originating_url":"https://github.com/DevExpress/DevExtreme","referrer":"https://github.com/DevExpress","user_id":57746033}}" data-hydro-click-hmac="96a7890589cf1e90f993745f86239489be81363928853a75f9cf095b92360e7f" data-ga-click="Repository, click Watch settings, action:files#disambiguate"> <span data-menu-button>
<svg class="octicon octicon-eye v-align-text-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
Watch
</span>
</summary> <details-menu
class="select-menu-modal position-absolute mt-5"
style="z-index: 99;">
<div class="select-menu-header">
<span class="select-menu-title">Notifications</span>
</div>
<div class="select-menu-list">
<button type="submit" name="do" value="included" class="select-menu-item width-full" aria-checked="true" role="menuitemradio">
<svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z"/></svg>
<div class="select-menu-item-text">
<span class="select-menu-item-heading">Not watching</span>
<span class="description">Be notified only when participating or @mentioned.</span>
<span class="hidden-select-button-text" data-menu-button-contents>
<svg class="octicon octicon-eye v-align-text-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
Watch
</span>
</div>
</button>
<button type="submit" name="do" value="release_only" class="select-menu-item width-full" aria-checked="false" role="menuitemradio">
<svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z"/></svg>
<div class="select-menu-item-text">
<span class="select-menu-item-heading">Releases only</span>
<span class="description">Be notified of new releases, and when participating or @mentioned.</span>
<span class="hidden-select-button-text" data-menu-button-contents>
<svg class="octicon octicon-eye v-align-text-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
Unwatch releases
</span>
</div>
</button>
<button type="submit" name="do" value="subscribed" class="select-menu-item width-full" aria-checked="false" role="menuitemradio">
<svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z"/></svg>
<div class="select-menu-item-text">
<span class="select-menu-item-heading">Watching</span>
<span class="description">Be notified of all conversations.</span>
<span class="hidden-select-button-text" data-menu-button-contents>
<svg class="octicon octicon-eye v-align-text-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
Unwatch
</span>
</div>
</button>
<button type="submit" name="do" value="ignore" class="select-menu-item width-full" aria-checked="false" role="menuitemradio">
<svg class="octicon octicon-check select-menu-item-icon" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12 5l-8 8-4-4 1.5-1.5L4 10l6.5-6.5L12 5z"/></svg>
<div class="select-menu-item-text">
<span class="select-menu-item-heading">Ignoring</span>
<span class="description">Never be notified.</span>
<span class="hidden-select-button-text" data-menu-button-contents>
<svg class="octicon octicon-mute v-align-text-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 2.81v10.38c0 .67-.81 1-1.28.53L3 10H1c-.55 0-1-.45-1-1V7c0-.55.45-1 1-1h2l3.72-3.72C7.19 1.81 8 2.14 8 2.81zm7.53 3.22l-1.06-1.06-1.97 1.97-1.97-1.97-1.06 1.06L11.44 8 9.47 9.97l1.06 1.06 1.97-1.97 1.97 1.97 1.06-1.06L13.56 8l1.97-1.97z"/></svg>
Stop ignoring
</span>
</div>
</button>
</div>
</details-menu>
</details>
<a class="social-count js-social-count"
href="/DevExpress/DevExtreme/watchers"
aria-label="85 users are watching this repository">
85
</a>
</form>
</li>
<li>
<div class="js-toggler-container js-social-container starring-container ">
<form class="starred js-social-form" action="/DevExpress/DevExtreme/unstar" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="3E/aOmea6ZVU74UmixXLjyaQDRLPeTwZvQ+I4jAgc5nahuy0IHjErKSobkOjKH5mCqAR9W01I4LjTahcFZuXKw==" />
<input type="hidden" name="context" value="repository"></input>
<button type="submit" class="btn btn-sm btn-with-count js-toggler-target" aria-label="Unstar this repository" title="Unstar DevExpress/DevExtreme" data-hydro-click="{"event_type":"repository.click","payload":{"target":"UNSTAR_BUTTON","repository_id":88523356,"client_id":"23042637.1570358391","originating_request_id":"2B3F:3694:56AF529:7849145:5DF4F3C2","originating_url":"https://github.com/DevExpress/DevExtreme","referrer":"https://github.com/DevExpress","user_id":57746033}}" data-hydro-click-hmac="20285f1f3012a8c44ce82a3d4e75b890ac1369dc91e98b8c40d75a002c60094f" data-ga-click="Repository, click unstar button, action:files#disambiguate; text:Unstar"> <svg aria-label="star" height="16" class="octicon octicon-star v-align-text-bottom" viewBox="0 0 14 16" version="1.1" width="14" role="img"><path fill-rule="evenodd" d="M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74L14 6z"/></svg>
Unstar
</button> <a class="social-count js-social-count" href="/DevExpress/DevExtreme/stargazers"
aria-label="1130 users starred this repository">
1.1k
</a>
</form>
<form class="unstarred js-social-form" action="/DevExpress/DevExtreme/star" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="GeeZobrI53loNVeCclQq3K8E/2jXQnhZ8my4JO221UNktUlGVDjGjqgl0eghWHGVMYJKr8EYjCb86CHq0/VgYA==" />
<input type="hidden" name="context" value="repository"></input>
<button type="submit" class="btn btn-sm btn-with-count js-toggler-target" aria-label="Unstar this repository" title="Star DevExpress/DevExtreme" data-hydro-click="{"event_type":"repository.click","payload":{"target":"STAR_BUTTON","repository_id":88523356,"client_id":"23042637.1570358391","originating_request_id":"2B3F:3694:56AF529:7849145:5DF4F3C2","originating_url":"https://github.com/DevExpress/DevExtreme","referrer":"https://github.com/DevExpress","user_id":57746033}}" data-hydro-click-hmac="33a3f106b1f331386a4dcebd4771907fce03d5f645a80e2c95a627117a5d43eb" data-ga-click="Repository, click star button, action:files#disambiguate; text:Star"> <svg aria-label="star" height="16" class="octicon octicon-star v-align-text-bottom" viewBox="0 0 14 16" version="1.1" width="14" role="img"><path fill-rule="evenodd" d="M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74L14 6z"/></svg>
Star
</button> <a class="social-count js-social-count" href="/DevExpress/DevExtreme/stargazers"
aria-label="1130 users starred this repository">
1.1k
</a>
</form> </div>
</li>
<li>
<!-- '"` --><!-- </textarea></xmp> --></option></form><form class="btn-with-count" action="/DevExpress/DevExtreme/fork" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="XMQXyLyxrfvNxEIZ8LosmcEflA+bwTgvz9f/Wqs0vCA/zYASAjeojRbeg6D+OXN3NdOYT5ezL7SRaSm0nIJ3dw==" />
<button class="btn btn-sm btn-with-count" data-hydro-click="{"event_type":"repository.click","payload":{"target":"FORK_BUTTON","repository_id":88523356,"client_id":"23042637.1570358391","originating_request_id":"2B3F:3694:56AF529:7849145:5DF4F3C2","originating_url":"https://github.com/DevExpress/DevExtreme","referrer":"https://github.com/DevExpress","user_id":57746033}}" data-hydro-click-hmac="6e293f61ba4992a00a3e2a44711cb529809b8486a5d7f628d8ce2f73a1d30dad" data-ga-click="Repository, show fork modal, action:files#disambiguate; text:Fork" type="submit" title="Fork your own copy of DevExpress/DevExtreme to your account" aria-label="Fork your own copy of DevExpress/DevExtreme to your account"> <svg class="octicon octicon-repo-forked v-align-text-bottom" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 1a1.993 1.993 0 00-1 3.72V6L5 8 3 6V4.72A1.993 1.993 0 002 1a1.993 1.993 0 00-1 3.72V6.5l3 3v1.78A1.993 1.993 0 005 15a1.993 1.993 0 001-3.72V9.5l3-3V4.72A1.993 1.993 0 008 1zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3 10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3-10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
Fork
</button></form>
<a href="/DevExpress/DevExtreme/network/members" class="social-count"
aria-label="306 users forked this repository">
306
</a>
</li>
</ul>
<h1 class="public ">
<svg class="octicon octicon-repo" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
<span class="author" itemprop="author"><a class="url fn" rel="author" data-hovercard-type="organization" data-hovercard-url="/orgs/DevExpress/hovercard" href="/DevExpress">DevExpress</a></span><!--
--><span class="path-divider">/</span><!--
--><strong itemprop="name"><a data-pjax="#js-repo-pjax-container" href="/DevExpress/DevExtreme">DevExtreme</a></strong>
</h1>
</div>
<nav class="hx_reponav reponav js-repo-nav js-sidenav-container-pjax container"
itemscope
itemtype="http://schema.org/BreadcrumbList"
aria-label="Repository"
data-pjax="#js-repo-pjax-container">
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
<a class="js-selected-navigation-item selected reponav-item" itemprop="url" data-hotkey="g c" aria-current="page" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages /DevExpress/DevExtreme" href="/DevExpress/DevExtreme">
<div class="d-inline"><svg class="octicon octicon-code" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg></div>
<span itemprop="name">Code</span>
<meta itemprop="position" content="1">
</a> </span>
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
<a itemprop="url" data-hotkey="g i" class="js-selected-navigation-item reponav-item" data-selected-links="repo_issues repo_labels repo_milestones /DevExpress/DevExtreme/issues" href="/DevExpress/DevExtreme/issues">
<div class="d-inline"><svg class="octicon octicon-issue-opened" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 011.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"/></svg></div>
<span itemprop="name">Issues</span>
<span class="Counter">52</span>
<meta itemprop="position" content="2">
</a> </span>
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
<a data-hotkey="g p" data-skip-pjax="true" itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="repo_pulls checks /DevExpress/DevExtreme/pulls" href="/DevExpress/DevExtreme/pulls">
<div class="d-inline"><svg class="octicon octicon-git-pull-request" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11 11.28V5c-.03-.78-.34-1.47-.94-2.06C9.46 2.35 8.78 2.03 8 2H7V0L4 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0010 15a1.993 1.993 0 001-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zM4 3c0-1.11-.89-2-2-2a1.993 1.993 0 00-1 3.72v6.56A1.993 1.993 0 002 15a1.993 1.993 0 001-3.72V4.72c.59-.34 1-.98 1-1.72zm-.8 10c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg></div>
<span itemprop="name">Pull requests</span>
<span class="Counter">49</span>
<meta itemprop="position" content="3">
</a> </span>
<span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement" class="position-relative float-left">
<a data-hotkey="g w" data-skip-pjax="true" class="js-selected-navigation-item reponav-item" data-selected-links="repo_actions /DevExpress/DevExtreme/actions" href="/DevExpress/DevExtreme/actions">
<div class="d-inline"><svg class="octicon octicon-play" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14 8A7 7 0 110 8a7 7 0 0114 0zm-8.223 3.482l4.599-3.066a.5.5 0 000-.832L5.777 4.518A.5.5 0 005 4.934v6.132a.5.5 0 00.777.416z"/></svg></div>
Actions
</a>
</span>
<a data-skip-pjax="true" class="js-selected-navigation-item reponav-item" data-selected-links="security alerts policy code_scanning /DevExpress/DevExtreme/security/advisories" href="/DevExpress/DevExtreme/security/advisories">
<div class="d-inline"><svg class="octicon octicon-shield" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 2l7-2 7 2v6.02C14 12.69 8.69 16 7 16c-1.69 0-7-3.31-7-7.98V2zm1 .75L7 1l6 1.75v5.268C13 12.104 8.449 15 7 15c-1.449 0-6-2.896-6-6.982V2.75zm1 .75L7 2v12c-1.207 0-5-2.482-5-5.985V3.5z"/></svg></div>
Security
</a>
<a class="js-selected-navigation-item reponav-item" data-selected-links="repo_graphs repo_contributors dependency_graph pulse people /DevExpress/DevExtreme/pulse" href="/DevExpress/DevExtreme/pulse">
<div class="d-inline"><svg class="octicon octicon-graph" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M16 14v1H0V0h1v14h15zM5 13H3V8h2v5zm4 0H7V3h2v10zm4 0h-2V6h2v7z"/></svg></div>
Insights
</a>
</nav>
</div>
<div class="container-lg clearfix new-discussion-timeline experiment-repo-nav px-3">
<div class="repository-content ">
<div class=""> <div class="f4">
<span class="text-gray-dark mr-2" itemprop="about">
HTML5 JavaScript Component Suite for Responsive Web Development
</span>
<span itemprop="url"><a rel="nofollow" href="https://js.devexpress.com/">https://js.devexpress.com/</a></span>
</div>
</div>
<div class="repository-topics-container mt-2 mb-3 js-topics-list-container"> <div class="list-topics-container f6">
<a class="topic-tag topic-tag-link " href="/topics/devexpress" title="Topic: devexpress" data-ga-click="Topic, repository page" data-octo-click="topic_click" data-octo-dimensions="topic:devexpress">
devexpress
</a>
<a class="topic-tag topic-tag-link " href="/topics/html" title="Topic: html" data-ga-click="Topic, repository page" data-octo-click="topic_click" data-octo-dimensions="topic:html">
html
</a>
<a class="topic-tag topic-tag-link " href="/topics/javascript" title="Topic: javascript" data-ga-click="Topic, repository page" data-octo-click="topic_click" data-octo-dimensions="topic:javascript">
javascript
</a>
<a class="topic-tag topic-tag-link " href="/topics/responsive" title="Topic: responsive" data-ga-click="Topic, repository page" data-octo-click="topic_click" data-octo-dimensions="topic:responsive">
responsive
</a>
<a class="topic-tag topic-tag-link " href="/topics/widgets" title="Topic: widgets" data-ga-click="Topic, repository page" data-octo-click="topic_click" data-octo-dimensions="topic:widgets">
widgets
</a>
</div>
</div>
<div class="overall-summary overall-summary-bottomless">
<ul class="numbers-summary">
<li class="commits">
<a data-pjax href="/DevExpress/DevExtreme/commits/20_1">
<svg class="octicon octicon-history" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 13H6V6h5v2H8v5zM7 1C4.81 1 2.87 2.02 1.59 3.59L0 2v4h4L2.5 4.5C3.55 3.17 5.17 2.3 7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 011.3 8c0-.34.03-.67.09-1H.08C.03 7.33 0 7.66 0 8c0 3.86 3.14 7 7 7s7-3.14 7-7-3.14-7-7-7z"/></svg>
<span class="num text-emphasized">
6,486
</span>
commits
</a>
</li>
<li>
<a data-pjax href="/DevExpress/DevExtreme/branches">
<svg class="octicon octicon-git-branch" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10 5c0-1.11-.89-2-2-2a1.993 1.993 0 00-1 3.72v.3c-.02.52-.23.98-.63 1.38-.4.4-.86.61-1.38.63-.83.02-1.48.16-2 .45V4.72a1.993 1.993 0 00-1-3.72C.88 1 0 1.89 0 3a2 2 0 001 1.72v6.56c-.59.35-1 .99-1 1.72 0 1.11.89 2 2 2 1.11 0 2-.89 2-2 0-.53-.2-1-.53-1.36.09-.06.48-.41.59-.47.25-.11.56-.17.94-.17 1.05-.05 1.95-.45 2.75-1.25S8.95 7.77 9 6.73h-.02C9.59 6.37 10 5.73 10 5zM2 1.8c.66 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2C1.35 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2zm0 12.41c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm6-8c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
<span class="num text-emphasized">
8
</span>
branches
</a>
</li>
<li>
<a data-pjax href="/DevExpress/DevExtreme/packages" data-ga-click="Repository, packages click, location:repo overview">
<svg class="octicon octicon-package" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1 4.27v7.47c0 .45.3.84.75.97l6.5 1.73c.16.05.34.05.5 0l6.5-1.73c.45-.13.75-.52.75-.97V4.27c0-.45-.3-.84-.75-.97l-6.5-1.74a1.4 1.4 0 00-.5 0L1.75 3.3c-.45.13-.75.52-.75.97zm7 9.09l-6-1.59V5l6 1.61v6.75zM2 4l2.5-.67L11 5.06l-2.5.67L2 4zm13 7.77l-6 1.59V6.61l2-.55V8.5l2-.53V5.53L15 5v6.77zm-2-7.24L6.5 2.8l2-.53L15 4l-2 .53z"/></svg>
<span class="num text-emphasized">
0
</span>
packages
</a>
</li>
<li>
<a href="/DevExpress/DevExtreme/releases">
<svg class="octicon octicon-tag" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.73 1.73C7.26 1.26 6.62 1 5.96 1H3.5C2.13 1 1 2.13 1 3.5v2.47c0 .66.27 1.3.73 1.77l6.06 6.06c.39.39 1.02.39 1.41 0l4.59-4.59a.996.996 0 000-1.41L7.73 1.73zM2.38 7.09c-.31-.3-.47-.7-.47-1.13V3.5c0-.88.72-1.59 1.59-1.59h2.47c.42 0 .83.16 1.13.47l6.14 6.13-4.73 4.73-6.13-6.15zM3.01 3h2v2H3V3h.01z"/></svg>
<span class="num text-emphasized">
90
</span>
releases
</a>
</li>
<li data-contributors-hovercards-enabled >
<a href="/DevExpress/DevExtreme/graphs/contributors" data-hovercard-type="contributors" data-hovercard-url="/DevExpress/DevExtreme/community_contributors/hovercard">
<svg class="octicon octicon-organization" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M16 12.999c0 .439-.45 1-1 1H7.995c-.539 0-.994-.447-.995-.999H1c-.54 0-1-.561-1-1 0-2.634 3-4 3-4s.229-.409 0-1c-.841-.621-1.058-.59-1-3 .058-2.419 1.367-3 2.5-3s2.442.58 2.5 3c.058 2.41-.159 2.379-1 3-.229.59 0 1 0 1s1.549.711 2.42 2.088C9.196 9.369 10 8.999 10 8.999s.229-.409 0-1c-.841-.62-1.058-.59-1-3 .058-2.419 1.367-3 2.5-3s2.437.581 2.495 3c.059 2.41-.158 2.38-1 3-.229.59 0 1 0 1s3.005 1.366 3.005 4z"/></svg>
<span class="num text-emphasized">
84
</span>
contributors
</a>
</li>
<li>
<a href="/DevExpress/DevExtreme/blob/20_1/LICENSE.md">
<svg class="octicon octicon-law" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7 4c-.83 0-1.5-.67-1.5-1.5S6.17 1 7 1s1.5.67 1.5 1.5S7.83 4 7 4zm7 6c0 1.11-.89 2-2 2h-1c-1.11 0-2-.89-2-2l2-4h-1c-.55 0-1-.45-1-1H8v8c.42 0 1 .45 1 1h1c.42 0 1 .45 1 1H3c0-.55.58-1 1-1h1c0-.55.58-1 1-1h.03L6 5H5c0 .55-.45 1-1 1H3l2 4c0 1.11-.89 2-2 2H2c-1.11 0-2-.89-2-2l2-4H1V5h3c0-.55.45-1 1-1h4c.55 0 1 .45 1 1h3v1h-1l2 4zM2.5 7L1 10h3L2.5 7zM13 10l-1.5-3-1.5 3h3z"/></svg>
View license
</a>
</li>
</ul>
</div>
<details class="details-reset">
<summary title="Click for language details" data-ga-click="Repository, language bar stats toggle, location:repo overview">
<div class="d-flex repository-lang-stats-graph">
<span class="language-color" aria-label="JavaScript 95.1%" style="width:95.1%; background-color:#f1e05a;" itemprop="keywords">JavaScript</span>
<span class="language-color" aria-label="CSS 4.2%" style="width:4.2%; background-color:#563d7c;" itemprop="keywords">CSS</span>
<span class="language-color" aria-label="TypeScript 0.4%" style="width:0.4%; background-color:#2b7489;" itemprop="keywords">TypeScript</span>
<span class="language-color" aria-label="HTML 0.2%" style="width:0.2%; background-color:#e34c26;" itemprop="keywords">HTML</span>
<span class="language-color" aria-label="C# 0.1%" style="width:0.1%; background-color:#178600;" itemprop="keywords">C#</span>
<span class="language-color" aria-label="XSLT 0.0%" style="width:0.0%; background-color:#EB8CEB;" itemprop="keywords">XSLT</span>
</div>
</summary>
<div class="repository-lang-stats">
<ol class="repository-lang-stats-numbers">
<li>
<a href="/DevExpress/DevExtreme/search?l=javascript" data-ga-click="Repository, language stats search click, location:repo overview">
<span class="color-block language-color" style="background-color:#f1e05a;"></span>
<span class="lang">JavaScript</span>
<span class="percent">95.1%</span>
</a>
</li>
<li>
<a href="/DevExpress/DevExtreme/search?l=css" data-ga-click="Repository, language stats search click, location:repo overview">
<span class="color-block language-color" style="background-color:#563d7c;"></span>
<span class="lang">CSS</span>
<span class="percent">4.2%</span>
</a>
</li>
<li>
<a href="/DevExpress/DevExtreme/search?l=typescript" data-ga-click="Repository, language stats search click, location:repo overview">
<span class="color-block language-color" style="background-color:#2b7489;"></span>
<span class="lang">TypeScript</span>
<span class="percent">0.4%</span>
</a>
</li>
<li>
<a href="/DevExpress/DevExtreme/search?l=html" data-ga-click="Repository, language stats search click, location:repo overview">
<span class="color-block language-color" style="background-color:#e34c26;"></span>
<span class="lang">HTML</span>
<span class="percent">0.2%</span>
</a>
</li>
<li>
<a href="/DevExpress/DevExtreme/search?l=c%23" data-ga-click="Repository, language stats search click, location:repo overview">
<span class="color-block language-color" style="background-color:#178600;"></span>
<span class="lang">C#</span>
<span class="percent">0.1%</span>
</a>
</li>
<li>
<a href="/DevExpress/DevExtreme/search?l=xslt" data-ga-click="Repository, language stats search click, location:repo overview">
<span class="color-block language-color" style="background-color:#EB8CEB;"></span>
<span class="lang">XSLT</span>
<span class="percent">0.0%</span>
</a>
</li>
</ol>
</div>
</details>
<div class="mt-2">
<include-fragment src="/DevExpress/DevExtreme/show_partial?partial=tree%2Frecently_touched_branches_list"></include-fragment>
</div>
<div class="file-navigation in-mid-page d-flex flex-items-start">
<details class="details-reset details-overlay select-menu branch-select-menu hx_rsm" id="branch-select-menu">
<summary class="btn btn-sm select-menu-button css-truncate"
data-hotkey="w"
title="Switch branches or tags">
<i>Branch:</i>
<span class="css-truncate-target" data-menu-button>20_1</span>
</summary>
<details-menu class="select-menu-modal hx_rsm-modal position-absolute" style="z-index: 99;" src="/DevExpress/DevExtreme/refs/20_1?source_action=disambiguate&source_controller=files" preload>
<include-fragment class="select-menu-loading-overlay anim-pulse">
<svg height="32" class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
</include-fragment>
</details-menu>
</details>
<a class="btn btn-sm new-pull-request-btn" data-hydro-click="{"event_type":"repository.click","payload":{"target":"NEW_PULL_REQUEST_BUTTON","repository_id":88523356,"client_id":"23042637.1570358391","originating_request_id":"2B3F:3694:56AF529:7849145:5DF4F3C2","originating_url":"https://github.com/DevExpress/DevExtreme","referrer":"https://github.com/DevExpress","user_id":57746033}}" data-hydro-click-hmac="c8f4c0863d5859374b06e3ba86b1fd97e85fb82df5e6507e872b3c5c46618a79" data-ga-click="Repository, new pull request, location:repo overview" data-pjax="true" href="/DevExpress/DevExtreme/pull/new/20_1">New pull request</a>
<div class="breadcrumb flex-auto">
</div>
<div class="BtnGroup">
<!-- '"` --><!-- </textarea></xmp> --></option></form><form class="BtnGroup-parent" action="/DevExpress/DevExtreme/new/20_1" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="DjZUcS/+t+B/wXswTuNAk0+d2AS10Pgrw9EEHEJ2qnowwtvrCotCY5qqwhwoGRd+sJBZ3PIJu1d8Bc2vGnAnEQ==" />
<button class="btn btn-sm BtnGroup-item" type="submit" data-disable-with="Creating file…">
Create new file
</button>
</form>
<a href="/DevExpress/DevExtreme/upload/20_1" class="btn btn-sm BtnGroup-item">
Upload files
</a>
<a class="btn btn-sm empty-icon float-right BtnGroup-item" data-hydro-click="{"event_type":"repository.click","payload":{"target":"FIND_FILE_BUTTON","repository_id":88523356,"client_id":"23042637.1570358391","originating_request_id":"2B3F:3694:56AF529:7849145:5DF4F3C2","originating_url":"https://github.com/DevExpress/DevExtreme","referrer":"https://github.com/DevExpress","user_id":57746033}}" data-hydro-click-hmac="8c6cf7bd7d7ea9c6fb83105f773fe940efd0359bafd285961a301a049ce60ad7" data-ga-click="Repository, find file, location:repo overview" data-hotkey="t" data-pjax="true" href="/DevExpress/DevExtreme/find/20_1">Find file</a>
</div>
<details class="get-repo-select-menu js-get-repo-select-menu position-relative details-overlay details-reset">
<summary class="btn btn-sm ml-2 btn-primary" data-hydro-click="{"event_type":"repository.click","payload":{"repository_id":88523356,"target":"CLONE_OR_DOWNLOAD_BUTTON","client_id":"23042637.1570358391","originating_request_id":"2B3F:3694:56AF529:7849145:5DF4F3C2","originating_url":"https://github.com/DevExpress/DevExtreme","referrer":"https://github.com/DevExpress","user_id":57746033}}" data-hydro-click-hmac="e4464fa45d63a1430c75d8dbc79bacedb4534de13e575cd1c3effce69114576a">
Clone or download
<span class="dropdown-caret"></span>
</summary> <div class="position-relative">
<div class="get-repo-modal dropdown-menu dropdown-menu-sw pb-0 js-toggler-container js-get-repo-modal">
<div class="get-repo-modal-options">
<div class="clone-options https-clone-options">
<!-- '"` --><!-- </textarea></xmp> --></option></form><form data-remote="true" action="/users/set_protocol?protocol_selector=ssh&protocol_type=clone" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="xydbBmqaiZE++sCRjML51nQbRtt6VwVc44P/Xj2aasVrjcMpygZYlR54Gxod0ZdoSg7/qsl16AkyIiUO8RYuLQ==" /><button name="button" type="submit" data-hydro-click="{"event_type":"clone_or_download.click","payload":{"feature_clicked":"USE_SSH","git_repository_type":"REPOSITORY","repository_id":88523356,"client_id":"23042637.1570358391","originating_request_id":"2B3F:3694:56AF529:7849145:5DF4F3C2","originating_url":"https://github.com/DevExpress/DevExtreme","referrer":"https://github.com/DevExpress","user_id":57746033}}" data-hydro-click-hmac="c23bc5ceff5b95c0e923742da4026df002fa58dae073a19f3e387ab4fe4988da" class="btn-link btn-change-protocol js-toggler-target float-right">Use SSH</button></form>
<h4 class="mb-1">
Clone with HTTPS
<a class="muted-link" href="https://help.github.com/articles/which-remote-url-should-i-use" target="_blank" title="Which remote URL should I use?">
<svg class="octicon octicon-question" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 10h2v2H6v-2zm4-3.5C10 8.64 8 9 8 9H6c0-.55.45-1 1-1h.5c.28 0 .5-.22.5-.5v-1c0-.28-.22-.5-.5-.5h-1c-.28 0-.5.22-.5.5V7H4c0-1.5 1.5-3 3-3s3 1 3 2.5zM7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 011.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7z"/></svg>
</a>
</h4>
<p class="mb-2 get-repo-decription-text">
Use Git or checkout with SVN using the web URL.
</p>
<div class="input-group">
<input type="text" class="form-control input-monospace input-sm" data-autoselect value="https://github.com/DevExpress/DevExtreme.git" aria-label="Clone this repository at https://github.com/DevExpress/DevExtreme.git" readonly>
<div class="input-group-button">
<clipboard-copy value="https://github.com/DevExpress/DevExtreme.git" aria-label="Copy to clipboard" class="btn btn-sm" data-hydro-click="{"event_type":"clone_or_download.click","payload":{"feature_clicked":"COPY_URL","git_repository_type":"REPOSITORY","repository_id":88523356,"client_id":"23042637.1570358391","originating_request_id":"2B3F:3694:56AF529:7849145:5DF4F3C2","originating_url":"https://github.com/DevExpress/DevExtreme","referrer":"https://github.com/DevExpress","user_id":57746033}}" data-hydro-click-hmac="d2d4cac06f4ece3699311a27fdad0c7d23dfc558f0916b262401860443032fb6"><svg class="octicon octicon-clippy" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 13h4v1H2v-1zm5-6H2v1h5V7zm2 3V8l-3 3 3 3v-2h5v-2H9zM4.5 9H2v1h2.5V9zM2 12h2.5v-1H2v1zm9 1h1v2c-.02.28-.11.52-.3.7-.19.18-.42.28-.7.3H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h3c0-1.11.89-2 2-2 1.11 0 2 .89 2 2h3c.55 0 1 .45 1 1v5h-1V6H1v9h10v-2zM2 5h8c0-.55-.45-1-1-1H8c-.55 0-1-.45-1-1s-.45-1-1-1-1 .45-1 1-.45 1-1 1H3c-.55 0-1 .45-1 1z"/></svg></clipboard-copy>
</div>
</div>
</div>
<div class="clone-options ssh-clone-options">
<!-- '"` --><!-- </textarea></xmp> --></option></form><form data-remote="true" action="/users/set_protocol?protocol_selector=https&protocol_type=clone" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="eGLwFPNr2Bca1A3PHjEcXrV1jylguMokDajzQJi6R97UyGg7U/cJEzpW1kSPInLgi2A2WNOaJ3HcCSkQVDYDNg==" /><button name="button" type="submit" data-hydro-click="{"event_type":"clone_or_download.click","payload":{"feature_clicked":"USE_HTTPS","git_repository_type":"REPOSITORY","repository_id":88523356,"client_id":"23042637.1570358391","originating_request_id":"2B3F:3694:56AF529:7849145:5DF4F3C2","originating_url":"https://github.com/DevExpress/DevExtreme","referrer":"https://github.com/DevExpress","user_id":57746033}}" data-hydro-click-hmac="a5f8c255ec5136dda2c36f855c9e0de439f578165d5b064bfd81ecc286a60fcf" class="btn-link btn-change-protocol js-toggler-target float-right">Use HTTPS</button></form>
<h4 class="mb-1">
Clone with SSH
<a class="muted-link" href="https://help.github.com/articles/which-remote-url-should-i-use" target="_blank" title="Which remote URL should I use?">
<svg class="octicon octicon-question" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 10h2v2H6v-2zm4-3.5C10 8.64 8 9 8 9H6c0-.55.45-1 1-1h.5c.28 0 .5-.22.5-.5v-1c0-.28-.22-.5-.5-.5h-1c-.28 0-.5.22-.5.5V7H4c0-1.5 1.5-3 3-3s3 1 3 2.5zM7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 011.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7z"/></svg>
</a>
</h4>
<div class="flash flash-warn my-3">
You don't have any public SSH keys in your GitHub account.
You can <a href="/settings/ssh/new">add a new public key</a>, or try cloning this repository via <button class="btn-link js-toggler-target">HTTPS.</button>
</div>
<p class="mb-2 get-repo-decription-text">
Use a password protected SSH key.
</p>
<div class="input-group">
<input type="text" class="form-control input-monospace input-sm" data-autoselect value="git@github.com:DevExpress/DevExtreme.git" aria-label="Clone this repository at git@github.com:DevExpress/DevExtreme.git" readonly>
<div class="input-group-button">
<clipboard-copy value="git@github.com:DevExpress/DevExtreme.git" aria-label="Copy to clipboard" class="btn btn-sm" data-hydro-click="{"event_type":"clone_or_download.click","payload":{"feature_clicked":"COPY_URL","git_repository_type":"REPOSITORY","repository_id":88523356,"client_id":"23042637.1570358391","originating_request_id":"2B3F:3694:56AF529:7849145:5DF4F3C2","originating_url":"https://github.com/DevExpress/DevExtreme","referrer":"https://github.com/DevExpress","user_id":57746033}}" data-hydro-click-hmac="d2d4cac06f4ece3699311a27fdad0c7d23dfc558f0916b262401860443032fb6"><svg class="octicon octicon-clippy" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 13h4v1H2v-1zm5-6H2v1h5V7zm2 3V8l-3 3 3 3v-2h5v-2H9zM4.5 9H2v1h2.5V9zM2 12h2.5v-1H2v1zm9 1h1v2c-.02.28-.11.52-.3.7-.19.18-.42.28-.7.3H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h3c0-1.11.89-2 2-2 1.11 0 2 .89 2 2h3c.55 0 1 .45 1 1v5h-1V6H1v9h10v-2zM2 5h8c0-.55-.45-1-1-1H8c-.55 0-1-.45-1-1s-.45-1-1-1-1 .45-1 1-.45 1-1 1H3c-.55 0-1 .45-1 1z"/></svg></clipboard-copy>
</div>
</div>
</div>
<div class="mt-2">
<a class="btn btn-outline get-repo-btn tooltipped tooltipped-s tooltipped-multiline js-get-repo" aria-label="Clone DevExpress/DevExtreme to your computer and use it in GitHub Desktop." data-hydro-click="{"event_type":"clone_or_download.click","payload":{"feature_clicked":"OPEN_IN_DESKTOP","git_repository_type":"REPOSITORY","repository_id":88523356,"client_id":"23042637.1570358391","originating_request_id":"2B3F:3694:56AF529:7849145:5DF4F3C2","originating_url":"https://github.com/DevExpress/DevExtreme","referrer":"https://github.com/DevExpress","user_id":57746033}}" data-hydro-click-hmac="676898eb2a9d5ddb704f30933906e708556e310f9884c14392e31bf70ec915df" data-open-app="windows" href="https://desktop.github.com">Open in Desktop</a>
<a class="btn btn-outline get-repo-btn " rel="nofollow" data-hydro-click="{"event_type":"clone_or_download.click","payload":{"feature_clicked":"DOWNLOAD_ZIP","git_repository_type":"REPOSITORY","repository_id":88523356,"client_id":"23042637.1570358391","originating_request_id":"2B3F:3694:56AF529:7849145:5DF4F3C2","originating_url":"https://github.com/DevExpress/DevExtreme","referrer":"https://github.com/DevExpress","user_id":57746033}}" data-hydro-click-hmac="d1a5a9b2d91f2110f7a354c58b9cfc82e0b628261fca9c82c8f2b247cc62dc7b" data-ga-click="Repository, download zip, location:repo overview" href="/DevExpress/DevExtreme/archive/20_1.zip">Download ZIP</a>
</div>
</div>
<div class="js-modal-download-mac py-2 px-3 d-none">
<h4 class="lh-condensed mb-3">Launching GitHub Desktop<span class="AnimatedEllipsis"></span></h4>
<p class="text-gray">If nothing happens, <a href="https://desktop.github.com/">download GitHub Desktop</a> and try again.</p>
<p><button class="btn-link js-get-repo-modal-download-back">Go back</button></p>
</div>
<div class="js-modal-download-windows py-2 px-3 d-none">
<h4 class="lh-condensed mb-3">Launching GitHub Desktop<span class="AnimatedEllipsis"></span></h4>
<p class="text-gray">If nothing happens, <a href="https://desktop.github.com/">download GitHub Desktop</a> and try again.</p>
<p><button class="btn-link js-get-repo-modal-download-back">Go back</button></p>
</div>
<div class="js-modal-download-xcode py-2 px-3 d-none">
<h4 class="lh-condensed mb-3">Launching Xcode<span class="AnimatedEllipsis"></span></h4>
<p class="text-gray">If nothing happens, <a href="https://developer.apple.com/xcode/">download Xcode</a> and try again.</p>
<p><button class="btn-link js-get-repo-modal-download-back">Go back</button></p>
</div>
<div class="js-modal-download-visual-studio py-2 px-3 d-none">
<h4 class="lh-condensed mb-3">Launching Visual Studio<span class="AnimatedEllipsis"></span></h4>
<p class="text-gray">If nothing happens, <a href="https://visualstudio.github.com/">download the GitHub extension for Visual Studio</a> and try again.</p>
<p><button class="btn-link js-get-repo-modal-download-back">Go back</button></p>
</div>
</div>
</div>
</details>
</div>
<div class="commit-tease js-details-container Details d-flex rounded-top-1" data-issue-and-pr-hovercards-enabled>
<div class="AvatarStack flex-self-start ">
<div class="AvatarStack-body" aria-label="ksercs">
<a class="avatar" data-skip-pjax="true" data-hovercard-type="user" data-hovercard-url="/users/ksercs/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/ksercs">
<img height="20" width="20" alt="@ksercs" src="https://avatars3.githubusercontent.com/u/37047972?s=60&v=4" />
</a> </div>
</div>
<div class="flex-auto f6 mr-3">
<a href="/DevExpress/DevExtreme/commits?author=ksercs"
class="commit-author tooltipped tooltipped-s user-mention"
aria-label="View all commits by ksercs">ksercs</a>
<a data-pjax="true" title="provide RTL mode for dxDropDownBox/dxDropDownButton (T845269) (#11106)" class="message text-inherit" href="/DevExpress/DevExtreme/commit/cf6c47a8af910cacc90abf8797c0ab65baa3dae9">provide RTL mode for dxDropDownBox/dxDropDownButton (T845269) (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="537525453" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/11106" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/11106/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/11106">#11106</a><a data-pjax="true" title="provide RTL mode for dxDropDownBox/dxDropDownButton (T845269) (#11106)" class="message text-inherit" href="/DevExpress/DevExtreme/commit/cf6c47a8af910cacc90abf8797c0ab65baa3dae9">)</a>
</div>
<div class="no-wrap d-flex flex-self-start flex-items-baseline">
<span class="mr-2 flex-self-center">
<include-fragment accept="text/html; fragment" src="/DevExpress/DevExtreme/commit/cf6c47a8af910cacc90abf8797c0ab65baa3dae9/rollup" class="d-inline"></include-fragment>
</span>
<span class="mr-1">Latest commit</span>
<a class="commit-tease-sha mr-1" href="/DevExpress/DevExtreme/commit/cf6c47a8af910cacc90abf8797c0ab65baa3dae9" data-pjax>
cf6c47a
</a>
<span itemprop="dateModified"><relative-time datetime="2019-12-13T15:05:12Z" class="no-wrap">Dec 13, 2019</relative-time></span>
</div>
</div>
<div class="file-wrap">
<a class="d-none js-permalink-shortcut" data-hotkey="y" href="/DevExpress/DevExtreme/tree/cf6c47a8af910cacc90abf8797c0ab65baa3dae9">Permalink</a>
<table class="files js-navigation-container js-active-navigation-container" data-pjax>
<thead>
<tr>
<th><span class="sr-only">Type</span></th>
<th><span class="sr-only">Name</span></th>
<th><span class="sr-only">Latest commit message</span></th>
<th><span class="sr-only">Commit time</span></th>
</tr>
</thead>
<tbody>
<tr class="warning include-fragment-error">
<td class="icon"><svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 000 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 00.01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg></td>
<td class="content" colspan="3">Failed to load latest commit information.</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title=".github" id="01777e4a9846fea5f3fcc8fe40d44680-63388d9d5553e634631221524cc945de65e5f161" href="/DevExpress/DevExtreme/tree/20_1/.github">.github</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="import 17_1" class="link-gray" href="/DevExpress/DevExtreme/commit/c457d67ce9f1b0b22f1c13b18120788ae5db5504">import 17_1</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2017-04-25T18:34:24Z" class="no-wrap">Apr 26, 2017</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title=".vscode" id="7fde71560fa9376d2d93a25b42d719f5-ddc42f5b591be3f53159a67ee93a368f38dffead" href="/DevExpress/DevExtreme/tree/20_1/.vscode">.vscode</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title='Revert "Add angular playground project" (#4876)' class="link-gray" href="/DevExpress/DevExtreme/commit/f5885063c86215ff8474ac12889c512f4bb92456">Revert "Add angular playground project" (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="346502211" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/4876" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/4876/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/4876">#4876</a><a data-pjax="true" title='Revert "Add angular playground project" (#4876)' class="link-gray" href="/DevExpress/DevExtreme/commit/f5885063c86215ff8474ac12889c512f4bb92456">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2018-08-01T09:05:57Z" class="no-wrap">Aug 1, 2018</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="build" id="b0da275520918e23dd615e2a747528f1-7366580d6c0ab2fc08ee6bb722f2bdecd23ea5f1" href="/DevExpress/DevExtreme/tree/20_1/build">build</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="Fix compilation of Angular projects after change to APF (#11074)
* Fix compilation of Angular projects after change to APF
* Fix tests" class="link-gray" href="/DevExpress/DevExtreme/commit/a0bdbbac9db33edaeb5e778c3fbf8f3c1b163e95">Fix compilation of Angular projects after change to APF (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="536850047" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/11074" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/11074/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/11074">#11074</a><a data-pjax="true" title="Fix compilation of Angular projects after change to APF (#11074)
* Fix compilation of Angular projects after change to APF
* Fix tests" class="link-gray" href="/DevExpress/DevExtreme/commit/a0bdbbac9db33edaeb5e778c3fbf8f3c1b163e95">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-12-12T12:28:17Z" class="no-wrap">Dec 12, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="fonts" id="980d14c0c85495b48b9a9134658e6121-ba488e76409030d2a3692eb008804c869ce29a6d" href="/DevExpress/DevExtreme/tree/20_1/fonts">fonts</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="Add typography styles for material theme (#4323)" class="link-gray" href="/DevExpress/DevExtreme/commit/fb1e32683fc674680c0ccb3fabb8cf1ffcf76c25">Add typography styles for material theme (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="331917224" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/4323" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/4323/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/4323">#4323</a><a data-pjax="true" title="Add typography styles for material theme (#4323)" class="link-gray" href="/DevExpress/DevExtreme/commit/fb1e32683fc674680c0ccb3fabb8cf1ffcf76c25">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2018-06-14T04:32:28Z" class="no-wrap">Jun 14, 2018</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="icons" id="bd21190449b7e88db48fa0f580a8f666-be275bc4ef855d4743c4182c297b765c3250787f" href="/DevExpress/DevExtreme/tree/20_1/icons">icons</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="Update icon fonts (`dragvertical` and `square` icons were changed) (#10117)" class="link-gray" href="/DevExpress/DevExtreme/commit/d25a9c8c8fc6163d1083e55523f7b18da36c6759">Update icon fonts (`dragvertical` and `square` icons were changed) (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="504955908" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/10117" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/10117/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/10117">#…</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-10-14T20:08:49Z" class="no-wrap">Oct 15, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="images" id="59b514174bffe4ae402b3d63aad79fe0-67ff9148abdeae0ee8311bed08017f2d959fdfa2" href="/DevExpress/DevExtreme/tree/20_1/images">images</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="Diagram - fix js error in FF and IE browsers + update touch bar appearance (#10650)" class="link-gray" href="/DevExpress/DevExtreme/commit/37f10da07d38feb1568fc92a3ae26dd81bdd05ab">Diagram - fix js error in FF and IE browsers + update touch bar appea…</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-11-18T10:11:10Z" class="no-wrap">Nov 18, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="js" id="32981a13284db7a021131df49e6cd203-5dba3e36e7df22908728914c19743f85880092cc" href="/DevExpress/DevExtreme/tree/20_1/js">js</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="provide RTL mode for dxDropDownBox/dxDropDownButton (T845269) (#11106)" class="link-gray" href="/DevExpress/DevExtreme/commit/cf6c47a8af910cacc90abf8797c0ab65baa3dae9">provide RTL mode for dxDropDownBox/dxDropDownButton (T845269) (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="537525453" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/11106" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/11106/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/11106">#11106</a><a data-pjax="true" title="provide RTL mode for dxDropDownBox/dxDropDownButton (T845269) (#11106)" class="link-gray" href="/DevExpress/DevExtreme/commit/cf6c47a8af910cacc90abf8797c0ab65baa3dae9">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-12-13T15:05:12Z" class="no-wrap">Dec 13, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="playground" id="96c70b1dc0455bd80da8756721c6f6a7-4db20b75215a7b0274f6db0a8a2438fcdcb89117" href="/DevExpress/DevExtreme/tree/20_1/playground">playground</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="Async validation ✔️ (#9655)
* Adds async validation
* Fixes the number of items in the brokenRules array
* Adds pending indicator
* Uses DevExtreme promises
* Repairs validationEngine.tests
* Fixes GroupConfig.validated event
* Patches ValidationSummary(ES6)
* Small refactoring
* Adds displaying several broken rules of the same validator in ValidationSummary
* Returns DefaultAdapter back to the DevExtreme class
* Disposes pendingIndicator
* Small refactoring #1
* Small refactoring #2
* Repairs existing tests
* Adds localization keys for async rule
* Small refactoring #3
* Adds tests for async rule for validationEngine
* Adds the E0103 error
* Adds test for the E0103 error
* Small refactoring #4
* Small refactoring #5
* Adds reevaluate test for an async rule
* Small refactoring #6
* Playground changes
* Small refactoring_6
* Small refactoring_7
* Validator should not by re-validated on pending
* Prevents form submitting on pending
* Changes the default AsyncRule.reevaluate
* Adds the valid mark
* Fixes showing load indicator/valid mark on repaint
* Result should be resolved with the last value
* Fixes disposing pending indicator
* Fixes pending indicator
* Fixes validation group
* Resores playground
* Adds doc comments for async rule
* Adds types for AsyncRule
* Adds adding/removing validator on pending
* Adds extra tests for async rules with reject
* Fix1 for #9655
* Removes dx.all.d.ts
* Adds dx.all.d.ts
* Adds editor test for pending indicator" class="link-gray" href="/DevExpress/DevExtreme/commit/878e2da096aaed8b12fe052ebcae9c141a95fc1e">Async validation</a> <g-emoji class="g-emoji" alias="heavy_check_mark" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/2714.png"><a data-pjax="true" title="Async validation ✔️ (#9655)
* Adds async validation
* Fixes the number of items in the brokenRules array
* Adds pending indicator
* Uses DevExtreme promises
* Repairs validationEngine.tests
* Fixes GroupConfig.validated event
* Patches ValidationSummary(ES6)
* Small refactoring
* Adds displaying several broken rules of the same validator in ValidationSummary
* Returns DefaultAdapter back to the DevExtreme class
* Disposes pendingIndicator
* Small refactoring #1
* Small refactoring #2
* Repairs existing tests
* Adds localization keys for async rule
* Small refactoring #3
* Adds tests for async rule for validationEngine
* Adds the E0103 error
* Adds test for the E0103 error
* Small refactoring #4
* Small refactoring #5
* Adds reevaluate test for an async rule
* Small refactoring #6
* Playground changes
* Small refactoring_6
* Small refactoring_7
* Validator should not by re-validated on pending
* Prevents form submitting on pending
* Changes the default AsyncRule.reevaluate
* Adds the valid mark
* Fixes showing load indicator/valid mark on repaint
* Result should be resolved with the last value
* Fixes disposing pending indicator
* Fixes pending indicator
* Fixes validation group
* Resores playground
* Adds doc comments for async rule
* Adds types for AsyncRule
* Adds adding/removing validator on pending
* Adds extra tests for async rules with reject
* Fix1 for #9655
* Removes dx.all.d.ts
* Adds dx.all.d.ts
* Adds editor test for pending indicator" class="link-gray" href="/DevExpress/DevExtreme/commit/878e2da096aaed8b12fe052ebcae9c141a95fc1e">✔️</a></g-emoji> <a data-pjax="true" title="Async validation ✔️ (#9655)
* Adds async validation
* Fixes the number of items in the brokenRules array
* Adds pending indicator
* Uses DevExtreme promises
* Repairs validationEngine.tests
* Fixes GroupConfig.validated event
* Patches ValidationSummary(ES6)
* Small refactoring
* Adds displaying several broken rules of the same validator in ValidationSummary
* Returns DefaultAdapter back to the DevExtreme class
* Disposes pendingIndicator
* Small refactoring #1
* Small refactoring #2
* Repairs existing tests
* Adds localization keys for async rule
* Small refactoring #3
* Adds tests for async rule for validationEngine
* Adds the E0103 error
* Adds test for the E0103 error
* Small refactoring #4
* Small refactoring #5
* Adds reevaluate test for an async rule
* Small refactoring #6
* Playground changes
* Small refactoring_6
* Small refactoring_7
* Validator should not by re-validated on pending
* Prevents form submitting on pending
* Changes the default AsyncRule.reevaluate
* Adds the valid mark
* Fixes showing load indicator/valid mark on repaint
* Result should be resolved with the last value
* Fixes disposing pending indicator
* Fixes pending indicator
* Fixes validation group
* Resores playground
* Adds doc comments for async rule
* Adds types for AsyncRule
* Adds adding/removing validator on pending
* Adds extra tests for async rules with reject
* Fix1 for #9655
* Removes dx.all.d.ts
* Adds dx.all.d.ts
* Adds editor test for pending indicator" class="link-gray" href="/DevExpress/DevExtreme/commit/878e2da096aaed8b12fe052ebcae9c141a95fc1e">(</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="491679451" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/9655" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/9655/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/9655">#9655</a><a data-pjax="true" title="Async validation ✔️ (#9655)
* Adds async validation
* Fixes the number of items in the brokenRules array
* Adds pending indicator
* Uses DevExtreme promises
* Repairs validationEngine.tests
* Fixes GroupConfig.validated event
* Patches ValidationSummary(ES6)
* Small refactoring
* Adds displaying several broken rules of the same validator in ValidationSummary
* Returns DefaultAdapter back to the DevExtreme class
* Disposes pendingIndicator
* Small refactoring #1
* Small refactoring #2
* Repairs existing tests
* Adds localization keys for async rule
* Small refactoring #3
* Adds tests for async rule for validationEngine
* Adds the E0103 error
* Adds test for the E0103 error
* Small refactoring #4
* Small refactoring #5
* Adds reevaluate test for an async rule
* Small refactoring #6
* Playground changes
* Small refactoring_6
* Small refactoring_7
* Validator should not by re-validated on pending
* Prevents form submitting on pending
* Changes the default AsyncRule.reevaluate
* Adds the valid mark
* Fixes showing load indicator/valid mark on repaint
* Result should be resolved with the last value
* Fixes disposing pending indicator
* Fixes pending indicator
* Fixes validation group
* Resores playground
* Adds doc comments for async rule
* Adds types for AsyncRule
* Adds adding/removing validator on pending
* Adds extra tests for async rules with reject
* Fix1 for #9655
* Removes dx.all.d.ts
* Adds dx.all.d.ts
* Adds editor test for pending indicator" class="link-gray" href="/DevExpress/DevExtreme/commit/878e2da096aaed8b12fe052ebcae9c141a95fc1e">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-09-12T13:38:27Z" class="no-wrap">Sep 12, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="styles" id="bc4150d023d3255136db671d61ac93f2-b841ec5a633c0ea5f068e00ba9a15ef085b973df" href="/DevExpress/DevExtreme/tree/20_1/styles">styles</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="DataGrid - Fix cursor style for scrollable / draggable items (T835172) (#11018)
(cherry picked from commit 9c4189c754126112656fed1a61a7e9b207ebaa48)" class="link-gray" href="/DevExpress/DevExtreme/commit/c01643d7c56ec4f72b3ffefaf846b410c20a7ae7">DataGrid - Fix cursor style for scrollable / draggable items (T835172) (</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-12-13T08:42:36Z" class="no-wrap">Dec 13, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="testing" id="ae2b1fca515949e5d54fb22b8ed95575-6052e16567cf457e361c497d546daa5eb2a70f08" href="/DevExpress/DevExtreme/tree/20_1/testing">testing</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="provide RTL mode for dxDropDownBox/dxDropDownButton (T845269) (#11106)" class="link-gray" href="/DevExpress/DevExtreme/commit/cf6c47a8af910cacc90abf8797c0ab65baa3dae9">provide RTL mode for dxDropDownBox/dxDropDownButton (T845269) (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="537525453" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/11106" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/11106/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/11106">#11106</a><a data-pjax="true" title="provide RTL mode for dxDropDownBox/dxDropDownButton (T845269) (#11106)" class="link-gray" href="/DevExpress/DevExtreme/commit/cf6c47a8af910cacc90abf8797c0ab65baa3dae9">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-12-13T15:05:12Z" class="no-wrap">Dec 13, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="themebuilder" id="985a90785fd1c9463d0a11acb316e433-8411f932dad335e03bbca625a5315902f2b93357" href="/DevExpress/DevExtreme/tree/20_1/themebuilder">themebuilder</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="Add dependencies to themebuilder metadata (#10181)" class="link-gray" href="/DevExpress/DevExtreme/commit/f22da13494016fb5c0613cd5fd4d68722771e636">Add dependencies to themebuilder metadata (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="506635667" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/10181" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/10181/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/10181">#10181</a><a data-pjax="true" title="Add dependencies to themebuilder metadata (#10181)" class="link-gray" href="/DevExpress/DevExtreme/commit/f22da13494016fb5c0613cd5fd4d68722771e636">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-10-21T07:07:57Z" class="no-wrap">Oct 21, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="directory" class="octicon octicon-file-directory" viewBox="0 0 14 16" version="1.1" width="14" height="16" role="img"><path fill-rule="evenodd" d="M13 4H7V3c0-.66-.31-1-1-1H1c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zM6 4H1V3h5v1z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="ts" id="4d682ec4eed27c53849758bc13b6e179-591bf2ca9dfe96dee32f9e0da06db0e202d73b68" href="/DevExpress/DevExtreme/tree/20_1/ts">ts</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="Fix type in dxDropDownButtonOptions.dataSource (#11096) (#11099)
* Fix type in dxDropDownButtonOptions.dataSource
* Update TS" class="link-gray" href="/DevExpress/DevExtreme/commit/c24d39a77ae103027fe4fb0e3e184b3711af7dc2">Fix type in dxDropDownButtonOptions.dataSource (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="537408958" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/11096" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/11096/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/11096">#11096</a><a data-pjax="true" title="Fix type in dxDropDownButtonOptions.dataSource (#11096) (#11099)
* Fix type in dxDropDownButtonOptions.dataSource
* Update TS" class="link-gray" href="/DevExpress/DevExtreme/commit/c24d39a77ae103027fe4fb0e3e184b3711af7dc2">) (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="537418072" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/11099" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/11099/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/11099">#11099</a><a data-pjax="true" title="Fix type in dxDropDownButtonOptions.dataSource (#11096) (#11099)
* Fix type in dxDropDownButtonOptions.dataSource
* Update TS" class="link-gray" href="/DevExpress/DevExtreme/commit/c24d39a77ae103027fe4fb0e3e184b3711af7dc2">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-12-13T09:22:07Z" class="no-wrap">Dec 13, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title=".babelrc" id="e56633f72ecc521128b3db6586074d2c-230afd275e6ac14308d9ea0d5a47dd976fb1f8c5" href="/DevExpress/DevExtreme/blob/20_1/.babelrc">.babelrc</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="Add sinon.js file to babel ignore list for transpile-tests gulp task (#7513)" class="link-gray" href="/DevExpress/DevExtreme/commit/b11dade5f285c22bf00d88bdbdcea4bfab6fecf2">Add sinon.js file to babel ignore list for transpile-tests gulp task (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="427705003" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/7513" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/7513/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/7513">#…</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-04-01T14:11:53Z" class="no-wrap">Apr 1, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title=".drone.yml" id="3216dfff0ed3e301453e6799e8c367e2-4a5aa4c37c7a89cf4056b23955f7d0871de1d0c4" href="/DevExpress/DevExtreme/blob/20_1/.drone.yml">.drone.yml</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title='Export: Extract unit tests to separate constellation (#10882)
* Export: Extract unit test to separate constellation
* TestRunner: Add "export" constellation to known registry' class="link-gray" href="/DevExpress/DevExtreme/commit/e9753b0aae096eeb31ce7a74df7227608a61ee3e">Export: Extract unit tests to separate constellation (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="529929909" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/10882" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/10882/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/10882">#10882</a><a data-pjax="true" title='Export: Extract unit tests to separate constellation (#10882)
* Export: Extract unit test to separate constellation
* TestRunner: Add "export" constellation to known registry' class="link-gray" href="/DevExpress/DevExtreme/commit/e9753b0aae096eeb31ce7a74df7227608a61ee3e">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-11-28T15:26:06Z" class="no-wrap">Nov 28, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title=".editorconfig" id="1e70daafb475c0ce3fef7d2728279182-81cfc563e220b327c5bbac879b42dba078e18000" href="/DevExpress/DevExtreme/blob/20_1/.editorconfig">.editorconfig</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="Add VSCode workspace (chore) (#2957)" class="link-gray" href="/DevExpress/DevExtreme/commit/25cc5c8173180a10eb7b37e925676a346ef37e06">Add VSCode workspace (chore) (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="296778058" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/2957" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/2957/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/2957">#2957</a><a data-pjax="true" title="Add VSCode workspace (chore) (#2957)" class="link-gray" href="/DevExpress/DevExtreme/commit/25cc5c8173180a10eb7b37e925676a346ef37e06">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2018-02-14T11:45:25Z" class="no-wrap">Feb 14, 2018</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title=".eslintignore" id="1b0fd5322de42e11c8786543f74c7c41-a1a7449696c6a72b5850c3acea4dd89b83083ddb" href="/DevExpress/DevExtreme/blob/20_1/.eslintignore">.eslintignore</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="Rename swatch class prefix (#5326)" class="link-gray" href="/DevExpress/DevExtreme/commit/2c50f891238cca449f37d6d0ec4876eee6116c3f">Rename swatch class prefix (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="358076522" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/5326" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/5326/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/5326">#5326</a><a data-pjax="true" title="Rename swatch class prefix (#5326)" class="link-gray" href="/DevExpress/DevExtreme/commit/2c50f891238cca449f37d6d0ec4876eee6116c3f">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2018-09-10T05:08:18Z" class="no-wrap">Sep 10, 2018</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title=".eslintrc" id="1dc6ee56b778cd91e0327b52aaeaa1b9-984e3503165a023447886f062ceda3c3b8bf981b" href="/DevExpress/DevExtreme/blob/20_1/.eslintrc">.eslintrc</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="ExcelJS - columns format support (#10651) (#10717)" class="link-gray" href="/DevExpress/DevExtreme/commit/3866bb7eed12e0b1a7651908b990323be33f90fc">ExcelJS - columns format support (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="524308970" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/10651" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/10651/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/10651">#10651</a><a data-pjax="true" title="ExcelJS - columns format support (#10651) (#10717)" class="link-gray" href="/DevExpress/DevExtreme/commit/3866bb7eed12e0b1a7651908b990323be33f90fc">) (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="525654942" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/10717" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/10717/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/10717">#10717</a><a data-pjax="true" title="ExcelJS - columns format support (#10651) (#10717)" class="link-gray" href="/DevExpress/DevExtreme/commit/3866bb7eed12e0b1a7651908b990323be33f90fc">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-11-20T10:09:31Z" class="no-wrap">Nov 20, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title=".gitattributes" id="fc723d30b02a4cca7a534518111c1a66-1f52486654592c53877845e77d96e2ff3afa613b" href="/DevExpress/DevExtreme/blob/20_1/.gitattributes">.gitattributes</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title='Add Material theme 🤯🤯🤯 (#3372)
* copy styles and add material theme in compiler
* replace GENERIC on MATERIAL
* added material theme styles for button
* fixed button shadow
* add list styles
* Fix list group header margin
* Fix list collapsed group header styles, fix list vertical padding constant
* Fix group list borders, add material icons
* Fix top and bottom list paddings, update hover background color
* Button: add focus and click behaviour
* Button: background for different states of flat button
* Update icon styles, fix icons in ie
* Button: add focus and click behaviour
* Button: background for different states of flat button
* set font params for button
* add some icons
* Add some icons
* fixed button styles for popup
* change active state for button to default in calendar navigator
* fix build, remove some button customization from calendar
* Popup
* fixed styles for editors (part 1)
* Base grid layout
* change default icon size to 24 px
* fix popup toolbar paddings
* fix Roboto font-weight
* more grig
* change base height to 36 again
* added material images
* search/clear icon position
* pager for grid
* filter row bg, transparent editors in filter row
* Revert "search/clear icon position"
This reverts commit 09a0df4c44207df2e61c7e6a2a726a0e4f6d29b6.
* some editors fixes
* fix border for summary row
* fix header filter styles
* fix checkbox position (grid selection)
* more editors fixes
* and more editors fixes
* changes for paddings, icons, font in data grid
* grid header filter popup
* fixed disabled dates
* update list behavior
* fixed images path
* update list styles, unit tests
* test refactoring
* fix filter icon (filter -> filter_list)
* some changes to grid editing
* update list styles
* fix some changes to grid (toolbar, button, green color for modified column)
* background for modified filter row cell
* datagrid - filter row: between operation overlay
* update list search placeholder styles
* more editor fixes
* updated form styles and default options and fieldset styles, form unit tests
* fixing some changes for grid editing
* remove todo
* datagrid - bands, validation and modified colrs
* form fixes (hide helper text when validation message shows and add padding right when scrolling)
* calendar and timeview styles fix
* font icons with generic icons. woff2 for all icon fonts
* fix checkbox indeterminate state, grid columns indicators position
* fix paddings for editors and invalid states
* make green background for cells only in batch editing mode
* update list behavior, remove list focused state
* change revert icon
* add unit test
* add Roboto font to repo
* fix grid focus and revert button
* updated menu and context menu styles
* remove menu unused constants
* start treeList
* change bandel column height, some changes for between operation editors (for dropdown editors)
* add pissibility to turn on vertical borders in grid, placeholder font-size only for grid cells
* move tests for default options for datagrid
* add styles for menus in datagrid
* change the order of styles to show invalid background
* rtl menu
* editor paddings fix
* Fix treeList styles
* add some missed icons
* validation and focus position, more button for adaptive mode
* fix dxList slideButton editing mode
* fixed keyboard navigation (calendar, list, menu) and some selectbox styles
* dxList - fix search icons position
* adaptive column styles
* update styles after merge
* fixed test on inkripple (list editing)
* align "Clear sorting" in context menu
* change command and select command columns width (look BC with box-sizing)
* rtl fix
* another rtl fix
* fix list serach text position, rtl mode in dxList and dxTreeList
* form - fix problem with isValid can be undefined and small refactoring
* update some dxList event subscriptions
* Clear dxList inkRippleTimer on dxList clean method
* fix scheduler styles building for material
* rebuild scheduler' class="link-gray" href="/DevExpress/DevExtreme/commit/b36c66ce44f3f9922aa5a9c8a46d8e3e2e47c26e">Add Material theme 🤯🤯🤯 (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="306940204" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/3372" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/3372/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/3372">#3372</a><a data-pjax="true" title='Add Material theme 🤯🤯🤯 (#3372)
* copy styles and add material theme in compiler
* replace GENERIC on MATERIAL
* added material theme styles for button
* fixed button shadow
* add list styles
* Fix list group header margin
* Fix list collapsed group header styles, fix list vertical padding constant
* Fix group list borders, add material icons
* Fix top and bottom list paddings, update hover background color
* Button: add focus and click behaviour
* Button: background for different states of flat button
* Update icon styles, fix icons in ie
* Button: add focus and click behaviour
* Button: background for different states of flat button
* set font params for button
* add some icons
* Add some icons
* fixed button styles for popup
* change active state for button to default in calendar navigator
* fix build, remove some button customization from calendar
* Popup
* fixed styles for editors (part 1)
* Base grid layout
* change default icon size to 24 px
* fix popup toolbar paddings
* fix Roboto font-weight
* more grig
* change base height to 36 again
* added material images
* search/clear icon position
* pager for grid
* filter row bg, transparent editors in filter row
* Revert "search/clear icon position"
This reverts commit 09a0df4c44207df2e61c7e6a2a726a0e4f6d29b6.
* some editors fixes
* fix border for summary row
* fix header filter styles
* fix checkbox position (grid selection)
* more editors fixes
* and more editors fixes
* changes for paddings, icons, font in data grid
* grid header filter popup
* fixed disabled dates
* update list behavior
* fixed images path
* update list styles, unit tests
* test refactoring
* fix filter icon (filter -> filter_list)
* some changes to grid editing
* update list styles
* fix some changes to grid (toolbar, button, green color for modified column)
* background for modified filter row cell
* datagrid - filter row: between operation overlay
* update list search placeholder styles
* more editor fixes
* updated form styles and default options and fieldset styles, form unit tests
* fixing some changes for grid editing
* remove todo
* datagrid - bands, validation and modified colrs
* form fixes (hide helper text when validation message shows and add padding right when scrolling)
* calendar and timeview styles fix
* font icons with generic icons. woff2 for all icon fonts
* fix checkbox indeterminate state, grid columns indicators position
* fix paddings for editors and invalid states
* make green background for cells only in batch editing mode
* update list behavior, remove list focused state
* change revert icon
* add unit test
* add Roboto font to repo
* fix grid focus and revert button
* updated menu and context menu styles
* remove menu unused constants
* start treeList
* change bandel column height, some changes for between operation editors (for dropdown editors)
* add pissibility to turn on vertical borders in grid, placeholder font-size only for grid cells
* move tests for default options for datagrid
* add styles for menus in datagrid
* change the order of styles to show invalid background
* rtl menu
* editor paddings fix
* Fix treeList styles
* add some missed icons
* validation and focus position, more button for adaptive mode
* fix dxList slideButton editing mode
* fixed keyboard navigation (calendar, list, menu) and some selectbox styles
* dxList - fix search icons position
* adaptive column styles
* update styles after merge
* fixed test on inkripple (list editing)
* align "Clear sorting" in context menu
* change command and select command columns width (look BC with box-sizing)
* rtl fix
* another rtl fix
* fix list serach text position, rtl mode in dxList and dxTreeList
* form - fix problem with isValid can be undefined and small refactoring
* update some dxList event subscriptions
* Clear dxList inkRippleTimer on dxList clean method
* fix scheduler styles building for material
* rebuild scheduler' class="link-gray" href="/DevExpress/DevExtreme/commit/b36c66ce44f3f9922aa5a9c8a46d8e3e2e47c26e">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2018-03-23T08:06:51Z" class="no-wrap">Mar 23, 2018</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title=".gitignore" id="a084b794bc0759e7a6b77810e01874f2-64064ea08936f7235171584730ecc9f693e0628a" href="/DevExpress/DevExtreme/blob/20_1/.gitignore">.gitignore</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="Add themebuilder package 🎨 (#5019)" class="link-gray" href="/DevExpress/DevExtreme/commit/b66c8a924e2899a0eb9bcd078aea602e29be31c3">Add themebuilder package</a> <g-emoji class="g-emoji" alias="art" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f3a8.png"><a data-pjax="true" title="Add themebuilder package 🎨 (#5019)" class="link-gray" href="/DevExpress/DevExtreme/commit/b66c8a924e2899a0eb9bcd078aea602e29be31c3">🎨</a></g-emoji> <a data-pjax="true" title="Add themebuilder package 🎨 (#5019)" class="link-gray" href="/DevExpress/DevExtreme/commit/b66c8a924e2899a0eb9bcd078aea602e29be31c3">(</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="350285278" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/5019" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/5019/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/5019">#5019</a><a data-pjax="true" title="Add themebuilder package 🎨 (#5019)" class="link-gray" href="/DevExpress/DevExtreme/commit/b66c8a924e2899a0eb9bcd078aea602e29be31c3">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2018-08-21T10:28:20Z" class="no-wrap">Aug 21, 2018</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title=".lintstagedrc" id="2b395767150bc0dc6df2d9f7d3e4ec04-26dfe75fb8347ea447a9f354c99ec98d6f823b0a" href="/DevExpress/DevExtreme/blob/20_1/.lintstagedrc">.lintstagedrc</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title='Add stylelint (#8403)
* Add stylelint
* Fix CssSyntaxError
* Fix "no-eol-whitespace"
* Fix "comment-whitespace-inside"
* Fix "declaration-colon-space-after"
* Fix "function-comma-space-before" and "function-comma-space-after"
* Fix "no-extra-semicolons"
* Fix "selector-combinator-space-after" and "selector-combinator-space-before"
* Fix "no-missing-end-of-source-newline"
* Fix "declaration-bang-space-before"
* Fix "declaration-block-trailing-semicolon"
* Fix "declaration-block-semicolon-space-before" and "declaration-block-semicolon-newline-after"
* Fix "block-no-empty"
* Fix "color-hex-case"
* Fix "color-hex-length"
* Fix "unit-case"
* Fix "at-rule-empty-line-before", "at-rule-name-case" and "at-rule-no-unknown"
* Fix "number-no-trailing-zeros"
* Fix "comment-empty-line-before"
* Set "max-empty-lines" to 2
* Fix "length-zero-no-unit"
* Fix "declaration-colon-newline-after"
* Fix "value-list-comma-newline-after"
* Fix "font-family-no-missing-generic-family-keyword"
* Fix "number-leading-zero"
* Fix "selector-descendant-combinator-no-non-space"
* Fix "block-opening-brace-space-before", "block-closing-brace-empty-line-before", "block-closing-brace-newline-before", "block-opening-brace-newline-after" and "block-closing-brace-space-before"
* Set "indentation" to 4
* Fix "selector-list-comma-newline-after"
* Fix "property-no-unknown"
* Fix "declaration-block-no-duplicate-properties"
* Fix "declaration-empty-line-before" and "rule-empty-line-before"
* Enable all tasks on DroneCI
* Downgrade stylelint to fix TS compilation' class="link-gray" href="/DevExpress/DevExtreme/commit/ea8986e7930c4174c38fcf4a39366f68b71d5701">Add stylelint (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="457387829" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/8403" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/8403/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/8403">#8403</a><a data-pjax="true" title='Add stylelint (#8403)
* Add stylelint
* Fix CssSyntaxError
* Fix "no-eol-whitespace"
* Fix "comment-whitespace-inside"
* Fix "declaration-colon-space-after"
* Fix "function-comma-space-before" and "function-comma-space-after"
* Fix "no-extra-semicolons"
* Fix "selector-combinator-space-after" and "selector-combinator-space-before"
* Fix "no-missing-end-of-source-newline"
* Fix "declaration-bang-space-before"
* Fix "declaration-block-trailing-semicolon"
* Fix "declaration-block-semicolon-space-before" and "declaration-block-semicolon-newline-after"
* Fix "block-no-empty"
* Fix "color-hex-case"
* Fix "color-hex-length"
* Fix "unit-case"
* Fix "at-rule-empty-line-before", "at-rule-name-case" and "at-rule-no-unknown"
* Fix "number-no-trailing-zeros"
* Fix "comment-empty-line-before"
* Set "max-empty-lines" to 2
* Fix "length-zero-no-unit"
* Fix "declaration-colon-newline-after"
* Fix "value-list-comma-newline-after"
* Fix "font-family-no-missing-generic-family-keyword"
* Fix "number-leading-zero"
* Fix "selector-descendant-combinator-no-non-space"
* Fix "block-opening-brace-space-before", "block-closing-brace-empty-line-before", "block-closing-brace-newline-before", "block-opening-brace-newline-after" and "block-closing-brace-space-before"
* Set "indentation" to 4
* Fix "selector-list-comma-newline-after"
* Fix "property-no-unknown"
* Fix "declaration-block-no-duplicate-properties"
* Fix "declaration-empty-line-before" and "rule-empty-line-before"
* Enable all tasks on DroneCI
* Downgrade stylelint to fix TS compilation' class="link-gray" href="/DevExpress/DevExtreme/commit/ea8986e7930c4174c38fcf4a39366f68b71d5701">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-06-19T08:15:32Z" class="no-wrap">Jun 19, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title=".stylelintrc" id="ab1d354bf78d8f05312122983731ff51-ec8b0ce148860c8f4c5be2c7d5a37a7e240c9f6d" href="/DevExpress/DevExtreme/blob/20_1/.stylelintrc">.stylelintrc</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="Stylelint: Ignore all files except *.css and *.less (#8480)" class="link-gray" href="/DevExpress/DevExtreme/commit/6071b42068261d84473b84920a7fb5b75ecd57d2">Stylelint: Ignore all files except *.css and *.less (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="459888959" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/8480" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/8480/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/8480">#8480</a><a data-pjax="true" title="Stylelint: Ignore all files except *.css and *.less (#8480)" class="link-gray" href="/DevExpress/DevExtreme/commit/6071b42068261d84473b84920a7fb5b75ecd57d2">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-06-24T13:38:12Z" class="no-wrap">Jun 24, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title=".travis.yml" id="354f30a63fb0907d4ad57269548329e3-0f553307fdfdc4511df3a5bad2ae0de1b4708054" href="/DevExpress/DevExtreme/blob/20_1/.travis.yml">.travis.yml</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title='Export: Extract unit tests to separate constellation (#10882)
* Export: Extract unit test to separate constellation
* TestRunner: Add "export" constellation to known registry' class="link-gray" href="/DevExpress/DevExtreme/commit/e9753b0aae096eeb31ce7a74df7227608a61ee3e">Export: Extract unit tests to separate constellation (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="529929909" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/10882" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/10882/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/10882">#10882</a><a data-pjax="true" title='Export: Extract unit tests to separate constellation (#10882)
* Export: Extract unit test to separate constellation
* TestRunner: Add "export" constellation to known registry' class="link-gray" href="/DevExpress/DevExtreme/commit/e9753b0aae096eeb31ce7a74df7227608a61ee3e">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-11-28T15:26:06Z" class="no-wrap">Nov 28, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="CONTRIBUTING.md" id="6a3371457528722a734f3c51d9238c13-c8e915668f0640483f343368e127e83db30f3506" href="/DevExpress/DevExtreme/blob/20_1/CONTRIBUTING.md">CONTRIBUTING.md</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="Update CONTRIBUTING.md (T700680) (#6614)" class="link-gray" href="/DevExpress/DevExtreme/commit/c9e782c01bb34f4582da640553ec44c1c9d96600">Update CONTRIBUTING.md (T700680) (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="400627691" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/6614" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/6614/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/6614">#6614</a><a data-pjax="true" title="Update CONTRIBUTING.md (T700680) (#6614)" class="link-gray" href="/DevExpress/DevExtreme/commit/c9e782c01bb34f4582da640553ec44c1c9d96600">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-01-24T13:49:38Z" class="no-wrap">Jan 24, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="LICENSE.md" id="37854d19817c792316d481f5beb93cc7-927207ba85ee0b41508eede26d4fe8fa68c55ba0" itemprop="license" href="/DevExpress/DevExtreme/blob/20_1/LICENSE.md">LICENSE.md</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="import 17_1" class="link-gray" href="/DevExpress/DevExtreme/commit/c457d67ce9f1b0b22f1c13b18120788ae5db5504">import 17_1</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2017-04-25T18:34:24Z" class="no-wrap">Apr 26, 2017</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="NOTICE.txt" id="d8b7f7a4958ed5af485670e07cf80cac-0a5e124c192b12b03f4360d0ac6591172587e8b0" href="/DevExpress/DevExtreme/blob/20_1/NOTICE.txt">NOTICE.txt</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="Update 3rd party notices (#4059)" class="link-gray" href="/DevExpress/DevExtreme/commit/28181df26eb93f914686bea0a0886ce479956d61">Update 3rd party notices (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="324437148" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/4059" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/4059/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/4059">#4059</a><a data-pjax="true" title="Update 3rd party notices (#4059)" class="link-gray" href="/DevExpress/DevExtreme/commit/28181df26eb93f914686bea0a0886ce479956d61">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2018-05-22T10:39:16Z" class="no-wrap">May 22, 2018</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="README.md" id="04c6e90faac2675aa89e2176d2eec7d8-73fb78133c5e7fc55ea34aceeb662ad7f544e825" href="/DevExpress/DevExtreme/blob/20_1/README.md">README.md</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="Update version to 20.1.0" class="link-gray" href="/DevExpress/DevExtreme/commit/33839e356ae45b1a8221d548dbf60d92507f6236">Update version to 20.1.0</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-11-11T07:44:08Z" class="no-wrap">Nov 11, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="README_DEVELOPERS.md" id="0e526e7e18a850bef2d7783404ace69d-53f1c71f77aa718003e4bd8df2a2f494265627c1" href="/DevExpress/DevExtreme/blob/20_1/README_DEVELOPERS.md">README_DEVELOPERS.md</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="Add devextreme-internal-tools package to package.json" class="link-gray" href="/DevExpress/DevExtreme/commit/4e32d268db1eb7301c3cc9f9ef43068fd2f94671">Add devextreme-internal-tools package to package.json</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-05-15T13:43:15Z" class="no-wrap">May 15, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="devextreme.code-workspace" id="6add9f0c81996bdc9a2184130f8ab3e8-a038c76b986dd3e3b6781c21823b7cd8aa99233e" href="/DevExpress/DevExtreme/blob/20_1/devextreme.code-workspace">devextreme.code-workspace</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="Add VSCode workspace (chore) (#2957)" class="link-gray" href="/DevExpress/DevExtreme/commit/25cc5c8173180a10eb7b37e925676a346ef37e06">Add VSCode workspace (chore) (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="296778058" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/2957" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/2957/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/2957">#2957</a><a data-pjax="true" title="Add VSCode workspace (chore) (#2957)" class="link-gray" href="/DevExpress/DevExtreme/commit/25cc5c8173180a10eb7b37e925676a346ef37e06">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2018-02-14T11:45:25Z" class="no-wrap">Feb 14, 2018</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="docker-ci.sh" id="4851192b271a019436fa8db6807c9dae-d947c9114b6b934a304ec80a82fc19a03e3c385a" href="/DevExpress/DevExtreme/blob/20_1/docker-ci.sh">docker-ci.sh</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="Fix internal-tools package version (#10965)" class="link-gray" href="/DevExpress/DevExtreme/commit/332b9f314d5d572f18fb36c7b4f57e49ea18ef38">Fix internal-tools package version (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="532659866" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/10965" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/10965/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/10965">#10965</a><a data-pjax="true" title="Fix internal-tools package version (#10965)" class="link-gray" href="/DevExpress/DevExtreme/commit/332b9f314d5d572f18fb36c7b4f57e49ea18ef38">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-12-04T14:41:52Z" class="no-wrap">Dec 4, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="drone-cache.sh" id="f350d46edc67182ed82a870fec4d541f-8979c0ca626b7f92b5abae529e5e473117b94956" href="/DevExpress/DevExtreme/blob/20_1/drone-cache.sh">drone-cache.sh</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="Simplify Drone cache (#2048)" class="link-gray" href="/DevExpress/DevExtreme/commit/f237de6d7e0b826a156b70331e1259cc31df7f8a">Simplify Drone cache (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="276474141" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/2048" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/2048/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/2048">#2048</a><a data-pjax="true" title="Simplify Drone cache (#2048)" class="link-gray" href="/DevExpress/DevExtreme/commit/f237de6d7e0b826a156b70331e1259cc31df7f8a">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2017-11-23T21:36:43Z" class="no-wrap">Nov 24, 2017</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="gulpfile.js" id="b9e12334e9eafd8341a6107dd98510c9-318d168874c6726a3e0e2e92ca2f70eaaa86b0fd" href="/DevExpress/DevExtreme/blob/20_1/gulpfile.js">gulpfile.js</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="Add less files to npm package (#9767)" class="link-gray" href="/DevExpress/DevExtreme/commit/ec38f3bb66d7879f772f9a1f8884704340703ec9">Add less files to npm package (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="495225180" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/9767" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/9767/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/9767">#9767</a><a data-pjax="true" title="Add less files to npm package (#9767)" class="link-gray" href="/DevExpress/DevExtreme/commit/ec38f3bb66d7879f772f9a1f8884704340703ec9">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-09-19T08:09:11Z" class="no-wrap">Sep 19, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="package.json" id="b9cfc7f2cdf78a7f4b91a753d10865a2-1ad99c655cef84c5883d8f2e5e0ae41c0d58cacf" href="/DevExpress/DevExtreme/blob/20_1/package.json">package.json</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="Diagram - custom shapes new properties (template, min/max size) (#11077)" class="link-gray" href="/DevExpress/DevExtreme/commit/3dc77ac4aa619d7b350d3be77fe824afefe53b71">Diagram - custom shapes new properties (template, min/max size) (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="536893105" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/11077" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/11077/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/11077">#11077</a><a data-pjax="true" title="Diagram - custom shapes new properties (template, min/max size) (#11077)" class="link-gray" href="/DevExpress/DevExtreme/commit/3dc77ac4aa619d7b350d3be77fe824afefe53b71">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-12-12T10:51:27Z" class="no-wrap">Dec 12, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="ports.json" id="6b41151cdd528fefea91cc7a041e6504-4c947e38155d16f2069465fd66d000541bf97bcf" href="/DevExpress/DevExtreme/blob/20_1/ports.json">ports.json</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="Update ports.json" class="link-gray" href="/DevExpress/DevExtreme/commit/b252806a88eda042b60d3e2da2c4b169137dfa93">Update ports.json</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-11-11T07:45:06Z" class="no-wrap">Nov 11, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="shippable.yml" id="033d042b39454e8e066ab38fd89610a5-f5b9c7c43b313e2c06806e32504ccd6e259a3111" href="/DevExpress/DevExtreme/blob/20_1/shippable.yml">shippable.yml</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title='Export: Extract unit tests to separate constellation (#10882)
* Export: Extract unit test to separate constellation
* TestRunner: Add "export" constellation to known registry' class="link-gray" href="/DevExpress/DevExtreme/commit/e9753b0aae096eeb31ce7a74df7227608a61ee3e">Export: Extract unit tests to separate constellation (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="529929909" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/10882" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/10882/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/10882">#10882</a><a data-pjax="true" title='Export: Extract unit tests to separate constellation (#10882)
* Export: Extract unit test to separate constellation
* TestRunner: Add "export" constellation to known registry' class="link-gray" href="/DevExpress/DevExtreme/commit/e9753b0aae096eeb31ce7a74df7227608a61ee3e">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-11-28T15:26:06Z" class="no-wrap">Nov 28, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="webpack.config.dev.js" id="90cf049df51052196746b3510792cc38-182a85818b97a6bdd9f86e5f5fad55e57cfd6b19" href="/DevExpress/DevExtreme/blob/20_1/webpack.config.dev.js">webpack.config.dev.js</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title=" Migrate to Gulp 4. Again. (#8995)" class="link-gray" href="/DevExpress/DevExtreme/commit/e3074f999c8cad5b360298259669f450e84096af">Migrate to Gulp 4. Again. (</a><a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="473860767" data-permission-text="Issue title is private" data-url="https://github.com/DevExpress/DevExtreme/issues/8995" data-hovercard-type="pull_request" data-hovercard-url="/DevExpress/DevExtreme/pull/8995/hovercard" href="https://github.com/DevExpress/DevExtreme/pull/8995">#8995</a><a data-pjax="true" title=" Migrate to Gulp 4. Again. (#8995)" class="link-gray" href="/DevExpress/DevExtreme/commit/e3074f999c8cad5b360298259669f450e84096af">)</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-07-29T12:42:21Z" class="no-wrap">Jul 29, 2019</time-ago></span>
</td>
</tr>
<tr class="js-navigation-item">
<td class="icon">
<svg aria-label="file" class="octicon octicon-file" viewBox="0 0 12 16" version="1.1" width="12" height="16" role="img"><path fill-rule="evenodd" d="M6 5H2V4h4v1zM2 8h7V7H2v1zm0 2h7V9H2v1zm0 2h7v-1H2v1zm10-7.5V14c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V2c0-.55.45-1 1-1h7.5L12 4.5zM11 5L8 2H1v12h10V5z"/></svg>
<img width="16" height="16" class="spinner" alt="" src="https://github.githubassets.com/images/spinners/octocat-spinner-32.gif" />
</td>
<td class="content">
<span class="css-truncate css-truncate-target"><a class="js-navigation-open" title="webpack.config.js" id="11e9f7f953edc64ba14b0cc350ae7b9d-51147fd967c580b34eec81bb3aabc34ddc0faacb" href="/DevExpress/DevExtreme/blob/20_1/webpack.config.js">webpack.config.js</a></span>
</td>
<td class="message">
<span class="css-truncate css-truncate-target">
<a data-pjax="true" title="Add dxGantt widget" class="link-gray" href="/DevExpress/DevExtreme/commit/128634fc15b5658c6458f6cf69ab26013b05f711">Add dxGantt widget</a>
</span>
</td>
<td class="age">
<span class="css-truncate css-truncate-target"><time-ago datetime="2019-07-02T11:19:48Z" class="no-wrap">Jul 2, 2019</time-ago></span>
</td>
</tr>
</tbody>
</table>
</div>
<div id="readme" class="Box Box--condensed md js-code-block-container">
<div class="Box-header d-flex flex-items-center flex-justify-between px-2">
<h3 class="Box-title pr-3">
<svg class="octicon octicon-book" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3 5h4v1H3V5zm0 3h4V7H3v1zm0 2h4V9H3v1zm11-5h-4v1h4V5zm0 2h-4v1h4V7zm0 2h-4v1h4V9zm2-6v9c0 .55-.45 1-1 1H9.5l-1 1-1-1H2c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h5.5l1 1 1-1H15c.55 0 1 .45 1 1zm-8 .5L7.5 3H2v9h6V3.5zm7-.5H9.5l-.5.5V12h6V3z"/></svg>
README.md
</h3>
</div>
<div class="Popover anim-scale-in js-tagsearch-popover"
hidden
data-tagsearch-url="/DevExpress/DevExtreme/find-symbols"
data-tagsearch-ref="20_1"
data-tagsearch-path="README.md"
data-tagsearch-lang="Markdown"
data-hydro-click="{"event_type":"code_navigation.click_on_symbol","payload":{"action":"click_on_symbol","repository_id":88523356,"ref":"20_1","language":"Markdown","client_id":"23042637.1570358391","originating_request_id":"2B3F:3694:56AF529:7849145:5DF4F3C2","originating_url":"https://github.com/DevExpress/DevExtreme","referrer":"https://github.com/DevExpress","user_id":57746033}}"
data-hydro-click-hmac="e995b36f8a8e38aa1c34ee625bb9f112404d984c7d1bdd40e8ce8a64f1274f59">
<div class="Popover-message Popover-message--large Popover-message--top-left TagsearchPopover mt-1 mb-4 mx-auto Box box-shadow-large">
<div class="TagsearchPopover-content js-tagsearch-popover-content overflow-auto" style="will-change:transform;">
</div>
</div>
</div>
<div class="Box-body">
<article class="markdown-body entry-content p-5" itemprop="text"><h1><a id="user-content-devextreme" class="anchor" aria-hidden="true" href="#devextreme"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>DevExtreme</h1>
<p><a href="https://devextreme-ci.devexpress.com/DevExpress/DevExtreme" rel="nofollow"><img src="https://camo.githubusercontent.com/16ab4b7473193122e977625f29061a9ee4829601/68747470733a2f2f64657665787472656d652d63692e646576657870726573732e636f6d2f6170692f6261646765732f446576457870726573732f44657645787472656d652f7374617475732e7376673f6272616e63683d32305f31" alt="Build Status" data-canonical-src="https://devextreme-ci.devexpress.com/api/badges/DevExpress/DevExtreme/status.svg?branch=20_1" style="max-width:100%;"></a></p>
<p>Voted the best cross-platform component suite containing everything you need to create responsive web apps for touch devices and traditional desktops: data grid, interactive charts, data editors, navigation and multi-purpose widgets that are designed to look great and provide powerful functionality in any browser.</p>
<ul>
<li>Official website: <a href="https://js.devexpress.com" rel="nofollow">js.devexpress.com</a></li>
<li>Pricing: <a href="https://js.devexpress.com/Buy" rel="nofollow">js.devexpress.com/buy</a></li>
<li>Licensing: <a href="https://js.devexpress.com/Licensing" rel="nofollow">js.devexpress.com/licensing</a></li>
<li>Support: <a href="https://www.devexpress.com/support" rel="nofollow">www.devexpress.com/support</a></li>
</ul>
<h2><a id="user-content-download-and-install" class="anchor" aria-hidden="true" href="#download-and-install"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Download and Install</h2>
<p>To include DevExtreme to your project, use one of the distribution packages. If you use Visual Studio, then use the Windows installer for added features like project templates. Alternatively, download a plain zip archive of just the client-side library and its widgets:</p>
<ul>
<li><a href="https://js.devexpress.com/Documentation/Guide/Getting_Started/Installation/npm_Package/" rel="nofollow">Install from NPM</a></li>
<li><a href="https://js.devexpress.com/Documentation/Guide/Getting_Started/Installation/Bower_Package/" rel="nofollow">Install via Bower</a></li>
<li><a href="https://js.devexpress.com/Documentation/Guide/Getting_Started/Installation/NuGet_Package/" rel="nofollow">Install from NuGet</a></li>
<li><a href="https://js.devexpress.com/Downloading/DevExtremeComplete/" rel="nofollow">Windows Installer</a> - Provides benefits for developers who use Visual Studio</li>
<li><a href="https://js.devexpress.com/Downloading/DevExtremeCompleteZip/" rel="nofollow">ZIP Archive</a></li>
</ul>
<h2><a id="user-content-getting-started" class="anchor" aria-hidden="true" href="#getting-started"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Getting Started</h2>
<p>After installation, you can add a widget to your app. Here's a simple button example:</p>
<div class="highlight highlight-text-html-basic"><pre><<span class="pl-ent">div</span> <span class="pl-e">id</span>=<span class="pl-s"><span class="pl-pds">"</span>buttonContainer<span class="pl-pds">"</span></span>></<span class="pl-ent">div</span>></pre></div>
<div class="highlight highlight-source-js"><pre><span class="pl-k">var</span> element <span class="pl-k">=</span> <span class="pl-c1">document</span>.<span class="pl-c1">getElementById</span>(<span class="pl-s"><span class="pl-pds">'</span>buttonContainer<span class="pl-pds">'</span></span>);
<span class="pl-k">var</span> button <span class="pl-k">=</span> <span class="pl-k">new</span> <span class="pl-en">DevExpress.ui.dxButton</span>(element, { text<span class="pl-k">:</span> <span class="pl-s"><span class="pl-pds">'</span>Hello World!<span class="pl-pds">'</span></span> });</pre></div>
<p>DevExtreme supports deep integration with the following client-side technologies:</p>
<ul>
<li><a href="https://js.devexpress.com/Documentation/Guide/Getting_Started/Widget_Basics_-_jQuery/Create_and_Configure_a_Widget/" rel="nofollow">jQuery</a></li>
<li><a href="https://github.com/DevExpress/devextreme-angular#readme">Angular</a></li>
<li><a href="https://github.com/DevExpress/devextreme-react#readme">React</a></li>
<li><a href="https://github.com/DevExpress/devextreme-vue#readme">Vue</a></li>
</ul>
<p>And server-side frameworks:</p>
<ul>
<li><a href="https://js.devexpress.com/Documentation/Guide/ASP.NET_MVC_Controls/Fundamentals/" rel="nofollow">ASP.NET MVC & ASP.NET Core</a></li>
</ul>
<h2><a id="user-content-learn" class="anchor" aria-hidden="true" href="#learn"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Learn</h2>
<ul>
<li><a href="https://js.devexpress.com/Demos/" rel="nofollow">Online Demos</a></li>
<li><a href="https://js.devexpress.com/Documentation" rel="nofollow">Documentation</a></li>
<li><a href="https://github.com/DevExpress/DevExtreme-examples">Examples on GitHub</a></li>
<li><a href="https://www.youtube.com/watch?v=oWWL6iILMPM&list=PL8h4jt35t1wjGvgflbHEH_e3b23AA30-z" rel="nofollow">YouTube videos</a></li>
</ul>
<h2><a id="user-content-contributing" class="anchor" aria-hidden="true" href="#contributing"><svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Contributing</h2>
<p>See our <a href="/DevExpress/DevExtreme/blob/20_1/CONTRIBUTING.md">Guidelines for Contributing</a></p>
</article>
</div>
</div>
</div>
</div>
</main>
</div>
</div>
<div class="footer container-lg width-full px-3" role="contentinfo">
<div class="position-relative d-flex flex-justify-between pt-6 pb-2 mt-6 f6 text-gray border-top border-gray-light ">
<ul class="list-style-none d-flex flex-wrap ">
<li class="mr-3">© 2019 GitHub, Inc.</li>
<li class="mr-3"><a data-ga-click="Footer, go to terms, text:terms" href="https://github.com/site/terms">Terms</a></li>
<li class="mr-3"><a data-ga-click="Footer, go to privacy, text:privacy" href="https://github.com/site/privacy">Privacy</a></li>
<li class="mr-3"><a data-ga-click="Footer, go to security, text:security" href="https://github.com/security">Security</a></li>
<li class="mr-3"><a href="https://githubstatus.com/" data-ga-click="Footer, go to status, text:status">Status</a></li>
<li><a data-ga-click="Footer, go to help, text:help" href="https://help.github.com">Help</a></li>
</ul>
<a aria-label="Homepage" title="GitHub" class="footer-octicon d-none d-lg-block mx-lg-4" href="https://github.com">
<svg height="24" class="octicon octicon-mark-github" viewBox="0 0 16 16" version="1.1" width="24" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg>
</a>
<ul class="list-style-none d-flex flex-wrap ">
<li class="mr-3"><a data-ga-click="Footer, go to contact, text:contact" href="https://github.com/contact">Contact GitHub</a></li>
<li class="mr-3"><a href="https://github.com/pricing" data-ga-click="Footer, go to Pricing, text:Pricing">Pricing</a></li>
<li class="mr-3"><a href="https://developer.github.com" data-ga-click="Footer, go to api, text:api">API</a></li>
<li class="mr-3"><a href="https://training.github.com" data-ga-click="Footer, go to training, text:training">Training</a></li>
<li class="mr-3"><a href="https://github.blog" data-ga-click="Footer, go to blog, text:blog">Blog</a></li>
<li><a data-ga-click="Footer, go to about, text:about" href="https://github.com/about">About</a></li>
</ul>
</div>
<div class="d-flex flex-justify-center pb-6">
<span class="f6 text-gray-light"></span>
</div>
</div>
<div id="ajax-error-message" class="ajax-error-message flash flash-error">
<svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 000 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 00.01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg>
<button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
<svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
</button>
You can’t perform that action at this time.
</div>
<script crossorigin="anonymous" integrity="sha512-AKZHS43XbnDvadGai6lAvPU9RpHiKq1UClXLm0/PwkaxyQNx6mQv3jOkSysidg7WiZZ19hO8H+EB1NsH9b9jFw==" type="application/javascript" src="https://github.githubassets.com/assets/frameworks-00a6474b.js"></script>
<script crossorigin="anonymous" async="async" integrity="sha512-arAjgLWSK/SixrdAe+OFBOT2wRzsUIVFWy/rnZTI4k5m4t+O/oMp+WPUOUm7BJF2HDRwGaFTUx/aoN1PvZKJnA==" type="application/javascript" src="https://github.githubassets.com/assets/github-bootstrap-6ab02380.js"></script>
<div class="js-stale-session-flash flash flash-warn flash-banner" hidden
>
<svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 000 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 00.01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg>
<span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a href="">Reload</a> to refresh your session.</span>
<span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a href="">Reload</a> to refresh your session.</span>
</div>
<template id="site-details-dialog">
<details class="details-reset details-overlay details-overlay-dark lh-default text-gray-dark hx_rsm" open>
<summary role="button" aria-label="Close dialog"></summary>
<details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal">
<button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog>
<svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
</button>
<div class="octocat-spinner my-6 js-details-dialog-spinner"></div>
</details-dialog>
</details>
</template>
<div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;" tabindex="0">
<div class="Popover-message Popover-message--bottom-left Popover-message--large Box box-shadow-large" style="width:360px;">
</div>
</div>
<div aria-live="polite" class="js-global-screen-reader-notice sr-only"></div>
</body>
</html>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。