Telerik Forums
Kendo UI for jQuery Forum
4 answers
112 views

Hello,

I'm trying to figure out how to achieve the following.

I have an array named chartdates which has all the unique date returns from our lookup 

I also have deptChartObjects that has the hits array along with the hit dates

I simply need to draw the line chart so that they correspond with the hitDate or proply fall within the chartdates.  Right now the categoryAxis doesn't show and the line draws properly, but the 3 lines basically stack on each other.  so line 1 might have say a start date of 5/1 and line 2 will have a start date of 5/5 but they both stack on top of each other.  I will the the data point for line 1 (5/1) to be before say line 2 (5/5).

Looking for some guidence on how to achiece this.

Thanks in advance,

Here is a sample JSON return

{
  "top3Departments": {},
  "departmentInfoDS": {
    "DeptStats": [
      {
        "workgrp": "ONY",
        "numberOfHits": 1972,
        "recorddate": "2016-05-12T00:00:00",
        "departmenttitle": "ANONYMOUS"
      },
      {
        "workgrp": "ONY",
        "numberOfHits": 333,
        "recorddate": "2016-05-24T00:00:00",
        "departmenttitle": "ANONYMOUS"
      },
      {
        "workgrp": "ONY",
        "numberOfHits": 224,
        "recorddate": "2016-05-25T00:00:00",
        "departmenttitle": "ANONYMOUS"
      }
    ]
  },
  "chartDates": {
    "chartdates": [
      {
        "recorddate": "2016-05-12T00:00:00"
      },
      {
        "recorddate": "2016-05-23T00:00:00"
      },
      {
        "recorddate": "2016-05-24T00:00:00"
      },
      {
        "recorddate": "2016-05-25T00:00:00"
      },
      {
        "recorddate": "2016-05-26T00:00:00"
      },
      {
        "recorddate": "2016-05-27T00:00:00"
      },
      {
        "recorddate": "2016-05-28T00:00:00"
      },
      {
        "recorddate": "2016-05-29T00:00:00"
      },
      {
        "recorddate": "2016-05-30T00:00:00"
      }
    ]
  },
  "deptChartObjects": [
    {
      "hits": [
        1972,
        333,
        224
      ],
      "hitDates": [
        "2016-05-12T00:00:00",
        "2016-05-24T00:00:00",
        "2016-05-25T00:00:00"
      ],
      "name": "ANONYMOUS"
    },
    {
      "hits": [
        1972,
        333,
        224
      ],
      "hitDates": [
        "2016-05-12T00:00:00",
        "2016-05-24T00:00:00",
        "2016-05-25T00:00:00"
      ],
      "name": "ANONYMOUS"
    },
    {
      "hits": [
        1972,
        333,
        224
      ],
      "hitDates": [
        "2016-05-12T00:00:00",
        "2016-05-24T00:00:00",
        "2016-05-25T00:00:00"
      ],
      "name": "ANONYMOUS"
    }
  ],
  "departmentID": "ONY",
  "departmentName": "ANONYMOUS",
  "fromDTStr": "05-01-2016",
  "toDTStr": "05-30-2016",
  "totalHits": 2529,
  "chartJSON": null
}

Cedric Gaines
Top achievements
Rank 2
 answered on 22 Jun 2016
1 answer
1.5K+ views

I'm attempting to populate a Kendo UI Grid with an object, however I'm using a DTO instead of the Entity Framework object that's defined in my database. The problem is that my DataSourceResult expects an object in the form of an IQueryable and my DTO is of a type List. Here is my Invoice object:

Public Class Invoice
 
    <Key>
    Public Property InvoiceID As Integer
 
    Public Property Price As Double
 
    Public Property AmountPaid As Double
 
    Public Property Status As InvoiceStatus
 
    <StringLength(10000)>
    Public Property Memo As String
 
    Public Property Client As Client
 
    Public Property ClientID As Integer
 
End Class

And here is my DTO:

Public Class InvoiceDTO
 
    Public Property InvoiceID As Integer
 
    Public Property InvoiceDate As Date
 
    Public Property Price As Double
 
    Public Property AmountPaid As Double
 
    Public Property Status As String
 
    Public Property Memo As String
 
    Public Property Client As String
 
    Public Property ClientID As Integer
 
End Class

I'm using the following code in my GET in my API to return the object to my Grid. I want to return a DataSourceResult as opposed to a List because I can use the paging and sorting functions to return data from my API as efficiently as possible.

<HttpGet, Route("api/client/all/invoices/{InvoiceStatus:int}")>
Public Function GetInvoices(requestMessage As HttpRequestMessage) As DataSourceResult
 
 
    Dim Invoices As IEnumerable(Of Invoice) = _db.Invoices.Include("Client").OrderBy(Function(i) i.InvoiceDate)
 
    Dim invDTOs As New List(Of InvoiceDTO)
 
    For Each inv As Invoice In Invoices
        Dim invDTO As New InvoiceDTO
        invDTO.Client = inv.Client.Name
        invDTO.ClientID = inv.ClientID
        invDTO.Memo = inv.Memo
        invDTO.InvoiceDate = inv.InvoiceDate
        invDTO.Price = inv.Price
        invDTO.AmountPaid = inv.AmountPaid
        invDTO.Status = status(inv.Status)
 
        invDTOs.Add(invDTO)
    Next
 
    Dim result As New DataSourceResult()
 
    result.Data = invDTOs
    result.Total = invDTOs.Count
 
    Dim response As HttpResponseMessage = Request.CreateResponse(HttpStatusCode.Created, result)
 
    Return response
 
End Function

I can't query the DTO because it's a list. I can set the Data property of the DataSourceRequest to my DTO, however then I lose the paging functionality of the DataSourceRequest object built in that works well with the Grid. How do I use a DTO with the DataSourceResult?

Boyan Dimitrov
Telerik team
 answered on 22 Jun 2016
2 answers
171 views

I'm currently using the dataBound tag to modify events to set the opacity if a condition is not met. This is working great for single events; However if I add a new series of events only the first one sets as expected. The other events in the series do not change. I see the other events have different id's. Is there a way for me to access these other events that are created?

 

Here is an example, Just modify the task to be a series.

http://dojo.telerik.com/@bbmicha/ayEtO/5

 

Thanks!

Brett
Top achievements
Rank 1
 answered on 22 Jun 2016
2 answers
79 views
I'm currently using the dataBound tag to modify events to set the opacity if a condition is not met. This is working great for single events; However if I add a new series of events only the first one sets as expected. The other events in the series do not change. I see the other events have different id's. Is there a way for me to access these other events that are created?

Here is an example, Just modify the task to be a series.
http://dojo.telerik.com/@bbmicha/ayEtO/5


Thanks!
Brett
Top achievements
Rank 1
 answered on 22 Jun 2016
6 answers
398 views

I am getting an "Invalid Template" error using the latest Telerik MVC libraries 2016.2.607.  The child grid appears to work fine without the editable functions but throws the error when you try to add them back in.  As you can see from the code, I've attempted to isolate the issue by commenting out the editable functions in the child grid.  Any help would be greatly appreciated.

Index.cshtml:

<hr />
<div class="container-fluid">
    @(Html.Kendo().Grid<Applications.TagSubscription.Models.TagGroupModel>()
    .Name("taggroupgrid")
    .Columns(cols =>
    {
        cols.Bound(t => t.Source);
        cols.Bound(t => t.TagName).Title("Subscription Group");
        cols.Bound(t => t.TagGroupTypeName).Title("Subscription Group Type");
        cols.Command(command => { command.Edit(); command.Destroy(); }).Width(250);
    })
    .HtmlAttributes(new { style = "height: 700px;" })
        .ToolBar(toolbar => toolbar.Create())
        .Editable(editable => editable.Mode(GridEditMode.InLine))
        .Filterable()
        .Scrollable()
        .Sortable()
        .Pageable(pageable => pageable
            .Refresh(true)
            .PageSizes(true)
            .ButtonCount(5)
        )
        .ClientDetailTemplateId("grp_mbr_template")
        .DataSource(dataSource => dataSource
            .Ajax()
            .PageSize(20)
            .Events(events => events.Error("error_handler"))
            .Model(model => model.Id(t => t.TagGroupId))
            .Create(update => update.Action("TagGroupCreate", "Home"))
            .Read(read => read.Action("TagGroupRead", "Home"))
            .Update(update => update.Action("TagGroupUpdate", "Home"))
            .Destroy(update => update.Action("TagGroupDestroy", "Home"))
        )
        .Events(events => events.DataBound("dataBound"))
    )
</div>
 
<script id="grp_mbr_template" type="text/kendo-tmpl">
    @(Html.Kendo().Grid<Applications.TagSubscription.Models.TagSubscriptionModel>()
        .Name("taggroupgrid_#=TagName#")
        .Columns(cols =>
        {
            cols.Bound(t => t.Source);
            cols.Bound(t => t.TagName);
            cols.Bound(t => t.Attribute);
            cols.Bound(t => t.TagGroupMemberRoleName).Title("Role");
            cols.Bound(t => t.Description);
            cols.Bound(t => t.Unit);
            cols.Bound(t => t.Frequency);
            cols.Bound(t => t.Resolution);
            cols.Bound(t => t.RetrievalMode);
            cols.Bound(t => t.Facility);
            cols.Bound(t => t.FacilityType);
            cols.Bound(t => t.Equipment);
            cols.Bound(t => t.EquipmentSerial);
            cols.Command(command => {
                    //command.Edit();
                    //command.Destroy();
                }).Width(250);
        })
        .HtmlAttributes(new { style = "height: 550px;" })
        .ToolBar(toolbar => toolbar.Create())
        //.Editable(editable => editable.Mode(GridEditMode.InLine))
        .DataSource(dataSource => dataSource
            .Ajax()
            .Events(events => events.Error("error_handler"))
            .Model(model =>
            {
                model.Id(t => t.Id);
                //model.Field(t => t.Description).Editable(false);
                //model.Field(t => t.Unit).Editable(false);
                //model.Field(t => t.FacilityType).Editable(false);
                //model.Field(t => t.EquipmentSerial).Editable(false);
            })
            .Create(update => update.Action("SubscriptionCreate", "Home"))
            .Read(read => read.Action("SubscriptionRead", "Home", new { TagName = "#=TagName#" }))
            //.Update(update => update.Action("SubscriptionUpdate", "Home"))
            //.Destroy(update => update.Action("SubscriptionDestroy", "Home"))
        )
        .ToClientTemplate()
    )
</script>
 
<script>
    function dataBound() {
        this.expandRow(this.tbody.find("tr.k-master-row").first());
    }
</script>
 
<script type="text/javascript">
    function error_handler(e) {
        if (e.errors) {
            var message = "Errors:\n";
            $.each(e.errors, function (key, value) {
                if ('errors' in value) {
                    $.each(value.errors, function () {
                        message += this + "\n";
                    });
                }
            });
            alert(message);
        }
    }
</script>

HomeController.cs

using Kendo.Mvc.Extensions;
using Kendo.Mvc.UI;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Applications.TagSubscription.Models;

namespace Applications.TagSubscription.Controllers
{
    public class TagBaseController : Controller
    {

        public ActionResult Index()
        {
            LoadViewData();

            return View();
        }

        private void LoadViewData()
        {
            ViewData["sources"] = MockData.ReadMockSource();
            ViewData["tags"] = MockData.ReadMockTag();
            ViewData["tagattribute"] = MockData.ReadMockTagAttrib();
            ViewData["taggrouptype"] = MockData.ReadMockTagGroupType();
            ViewData["taggroupmemberrole"] = MockData.ReadMockTagRole();
            ViewData["frequency"] = MockData.ReadMockFrequency();
            ViewData["resolution"] = MockData.ReadMockResolution();
            ViewData["retrievalmode"] = MockData.ReadMockRetrievalMode();
        }

        public ActionResult TagGroupRead([DataSourceRequest] DataSourceRequest request)
        {
            var results = MockData.ReadMockTagGroup();

            return Json(results.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
        }
        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult TagGroupCreate([DataSourceRequest] DataSourceRequest request, TagSubscriptionModel model)
        {
            if (model != null && ModelState.IsValid)
            {
                //TODO: Implement...
            }

            return Json(new[] { model }.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet);
        }

        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult TagGroupUpdate([DataSourceRequest] DataSourceRequest request, TagSubscriptionModel model)
        {
            if (model != null && ModelState.IsValid)
            {
                //TODO: Implement...
            }

            return Json(new[] { model }.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet);
        }

        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult TagGroupDestroy([DataSourceRequest] DataSourceRequest request, TagSubscriptionModel model)
        {
            if (model != null)
            {
                //TODO: Implement...
            }

            return Json(new[] { model }.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet);
        }

        public ActionResult SubscriptionRead([DataSourceRequest] DataSourceRequest request)
        {
            return SubscriptionRead(string.Empty, request);
        }

        public ActionResult SubscriptionRead(string TagName, [DataSourceRequest] DataSourceRequest request)
        {
            var results = MockData.ReadMockSubscription();

            return Json(results.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
        }

        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult SubscriptionCreate([DataSourceRequest] DataSourceRequest request, TagSubscriptionModel model)
        {
            if (model != null && ModelState.IsValid)
            {
                //TODO: Implement...
            }

            return Json(new[] { model }.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet);
        }

        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult SubscriptionUpdate([DataSourceRequest] DataSourceRequest request, TagSubscriptionModel model)
        {
            if (model != null && ModelState.IsValid)
            {
                //TODO: Implement...
            }

            return Json(new[] { model }.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet);
        }

        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult SubscriptionDestroy([DataSourceRequest] DataSourceRequest request, TagSubscriptionModel model)
        {
            if (model != null)
            {
                //TODO: Implement...
            }

            return Json(new[] { model }.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet);
        }


    }
}

 

Maria Ilieva
Telerik team
 answered on 22 Jun 2016
5 answers
858 views
Is there a way to get the Panelbar slide Horizontal instead of vertical? That would be nice.
Dimo
Telerik team
 answered on 22 Jun 2016
3 answers
861 views

I'm getting an error when trying to navigate to a route:

TypeError: r is undefined

kendo.all.min.js (line 26, col 20881)

 

All I've done is set up a basic router, with one route and receive this error when trying to navigate to that route.

HTML:

<div class="col-sm-3 col-lg-2 zero-padding sidebar sidebar-fixed">
    <div class="col-sm-3 col-lg-2 sidebar-fixedsub zero-padding">
        <ul id="accordion" class="accordion side-menu">
            <li class="hidden-xs">
                <div class="sidebar-actions">
                    <button id="menu_resize" data-role="button" class="k-button resize-menu-level-1" role="button" aria-disabled="false" data-level="1">
                        <i class="fa-icon-bars"></i>
                    </button>
                </div>
            </li>
            <li id="subscribed">
                <a class="link k-link"><i class="fa-icon-comments"></i><span class="nav-item-text nav-item-text-main">Subscribed</span></a>
                    <ul class="submenu">
                        <li><a onclick="navigateContainer($(this));"><span class="nav-item-text">Subscription 1</span><span class="badge">5</span></a></li>
                    </ul>
                </li>
            </ul>
        </div>
    </div>

Router JS:

var router = new kendo.Router({
    routeMissing: function(e) {
        e.preventDefault();
    }
});
 
router.route("/", function() {
    generateDiscussionView();
});
 
router.route("/thread/:containerid", function(containerid) {           
    triggerContainer(container);
});
 
$(function() { 
    router.start();
});

Main JS:

function navigateContainer(container) {
    router.navigate("/thread/" + container);
}
 
function triggerContainer(container) {     
    generateDiscussionView();          
}

Dimo
Telerik team
 answered on 22 Jun 2016
1 answer
125 views

See https://demos.telerik.com/kendo-ui/treeview/api

 

i expect filter by '2'  to show 2.1,2.2,2.3,1.2 
it fails

i expect filter by '1.'  to show 1.1,1.2,1.3
it fails

 

thanks

Boyan Dimitrov
Telerik team
 answered on 22 Jun 2016
2 answers
180 views

Hello we are using kwindow service as described here: http://docs.telerik.com/kendo-ui/AngularJS/how-to/window-service

We experience the followoing issues, regarding keyboard accessibility:

1.We have grid inside window, and one of the columns of that grid is a dropdown. to access this dropdown, we press Enter and Alt + arrow up. This behavior is different (and even incorrect), from outside modal, where enter and arrow down is enough. We want a way to achieve same behavior inside modal.

2. we want to prevent access to underlying screen when the modal is open.

3. I noticed that sometimes when editing cells, and the user presses shift + Tab, there focusing cell jumps elsewhere, I even could see this in a demo (try to check /uncheck  a checkbox with keyboard only)

Here: http://jsbin.com/kuzezelada/edit?html,js,output

Is there a way to ensure the focus goes to previous cell? (the user moves between cells with tabs/shit+tabs.

 

Thank you in advanve

Dimo
Telerik team
 answered on 22 Jun 2016
2 answers
387 views
0
down vote
favorite
We use Kendo Grid for heads down data entry in an accounting application. We need the grid to behave similar to QuickBooks. Specifically, users should be able to:

Tab between cells
Automatically advance to the next row when tabbing off the last cell in a row.
Automatically add a new row when tabbing off the last cell of the last row.
However, we're having difficulty achieving this behavior. The last cell on the last row does not get saved before adding a new row to the bottom of the grid. If, however, we add a bogus column as the last column the proper behavior is achieved, but you have to tab through an extra, needless column which is unacceptable. The user needs to be able to enter and tab with new rows being added automatically. Here's the code:bhuybhub
0
down vote
favorite
We use Kendo Grid for heads down data entry in an accounting application. We need the grid to behave similar to QuickBooks. Specifically, users should be able to:

Tab between cells
Automatically advance to the next row when tabbing off the last cell in a row.
Automatically add a new row when tabbing off the last cell of the last row.
However, we're having difficulty achieving this behavior. The last cell on the last row does not get saved before adding a new row to the bottom of the grid. If, however, we add a bogus column as the last column the proper behavior is achieved, but you have to tab through an extra, needless column which is unacceptable. The user needs to be able to enter and tab with new rows being added automatically. Here's the code: vghv gh gh
0
down vote
favorite
We use Kendo Grid for heads down data entry in an accounting application. We need the grid to behave similar to QuickBooks. Specifically, users should be able to:

Tab between cells
Automatically advance to the next row when tabbing off the last cell in a row.
Automatically add a new row when tabbing off the last cell of the last row.
However, we're having difficulty achieving this behavior. The last cell on the last row does not get saved before adding a new row to the bottom of the grid. If, however, we add a bogus column as the last column the proper behavior is achieved, but you have to tab through an extra, needless column which is unacceptable. The user needs to be able to enter and tab with new rows being added automatically. Here's the code:

We use Kendo Grid for heads down data entry in an accounting application. We need the grid to behave similar to QuickBooks. Specifically, users should be able to:

  1. Tab between cells
  2. Automatically advance to the next row when tabbing off the last cell in a row.
  3. Automatically add a new row when tabbing off the last cell of the last row.

However, we're having difficulty achieving this behavior. The last cell on the last row does not get saved before adding a new row to the bottom of the grid. If, however, we add a bogus column as the last column the proper behavior is achieved, but you have to tab through an extra, needless column which is unacceptable. The user needs to be able to enter and tab with new rows being added automatically. Here's the code:

We use Kendo Grid for heads down data entry in an accounting application. We need the grid to behave similar to QuickBooks. Specifically, users should be able to:

  1. Tab between cells
  2. Automatically advance to the next row when tabbing off the last cell in a row.
  3. Automatically add a new row when tabbing off the last cell of the last row.

However, we're having difficulty achieving this behavior. The last cell on the last row does not get saved before adding a new row to the bottom of the grid. If, however, we add a bogus column as the last column the proper behavior is achieved, but you have to tab through an extra, needless column which is unacceptable. The user needs to be able to enter and tab with new rows being added automatically. Here's the code:

We use Kendo Grid for heads down data entry in an accounting application. We need the grid to behave similar to QuickBooks. Specifically, users should be able to:

  1. Tab between cells
  2. Automatically advance to the next row when tabbing off the last cell in a row.
  3. Automatically add a new row when tabbing off the last cell of the last row.

However, we're having difficulty achieving this behavior. The last cell on the last row does not get saved before adding a new row to the bottom of the grid. If, however, we add a bogus column as the last column the proper behavior is achieved, but you have to tab through an extra, needless column which is unacceptable. The user needs to be able to enter and tab with new rows being added automatically. Here's the code:

We use Kendo Grid for heads down data entry in an accounting application. We need the grid to behave similar to QuickBooks. Specifically, users should be able to:

  1. Tab between cells
  2. Automatically advance to the next row when tabbing off the last cell in a row.
  3. Automatically add a new row when tabbing off the last cell of the last row.

However, we're having difficulty achieving this behavior. The last cell on the last row does not get saved before adding a new row to the bottom of the grid. If, however, we add a bogus column as the last column the proper behavior is achieved, but you have to tab through an extra, needless column which is unacceptable. The user needs to be able to enter and tab with new rows being added automatically. Here's the code:

We use Kendo Grid for heads down data entry in an accounting application. We need the grid to behave similar to QuickBooks. Specifically, users should be able to:

  1. Tab between cells
  2. Automatically advance to the next row when tabbing off the last cell in a row.
  3. Automatically add a new row when tabbing off the last cell of the last row.

However, we're having difficulty achieving this behavior. The last cell on the last row does not get saved before adding a new row to the bottom of the grid. If, however, we add a bogus column as the last column the proper behavior is achieved, but you have to tab through an extra, needless column which is unacceptable. The user needs to be able to enter and tab with new rows being added automatically. Here's the code:

Boyan Dimitrov
Telerik team
 answered on 22 Jun 2016
Narrow your results
Selected tags
Tags
Grid
General Discussions
Charts
Data Source
Scheduler
DropDownList
TreeView
MVVM
Editor
Window
DatePicker
Spreadsheet
Upload
ListView (Mobile)
ComboBox
TabStrip
MultiSelect
AutoComplete
ListView
Menu
Templates
Gantt
Validation
TreeList
Diagram
NumericTextBox
Splitter
PanelBar
Application
Map
Drag and Drop
ToolTip
Calendar
PivotGrid
ScrollView (Mobile)
Toolbar
TabStrip (Mobile)
Slider
Button (Mobile)
Filter
SPA
Drawing API
Drawer (Mobile)
Globalization
LinearGauge
Sortable
ModalView
Hierarchical Data Source
Button
FileManager
MaskedTextBox
View
Form
NavBar
Notification
Switch (Mobile)
SplitView
ListBox
DropDownTree
PDFViewer
Sparkline
ActionSheet
TileLayout
PopOver (Mobile)
TreeMap
ButtonGroup
ColorPicker
Pager
Styling
Chat
MultiColumnComboBox
Dialog
DateRangePicker
Checkbox
Timeline
Drawer
DateInput
ProgressBar
MediaPlayer
ImageEditor
TextBox
OrgChart
Accessibility
Effects
PivotGridV2
Licensing
ScrollView
Switch
TextArea
BulletChart
QRCode
ResponsivePanel
Wizard
CheckBoxGroup
Localization
Barcode
Breadcrumb
Collapsible
MultiViewCalendar
Touch
RadioButton
Stepper
Card
ExpansionPanel
Rating
RadioGroup
Badge
Captcha
Heatmap
AppBar
Loader
Security
TaskBoard
Popover
DockManager
TimePicker
FloatingActionButton
CircularGauge
ColorGradient
ColorPalette
DropDownButton
TimeDurationPicker
ToggleButton
BottomNavigation
Ripple
SkeletonContainer
Avatar
Circular ProgressBar
FlatColorPicker
SplitButton
Signature
Chip
ChipList
VS Code Extension
AIPrompt
PropertyGrid
Sankey
Chart Wizard
OTP Input
SpeechToTextButton
InlineAIPrompt
StockChart
ContextMenu
DateTimePicker
RadialGauge
ArcGauge
AICodingAssistant
SmartPasteButton
PromptBox
SegmentedControl
+? more
Top users last month
Miljana
Top achievements
Rank 2
Iron
Iron
Joel
Top achievements
Rank 3
Bronze
Bronze
Bronze
Cynthia
Top achievements
Rank 1
John
Top achievements
Rank 1
Iron
Mozart
Top achievements
Rank 1
Iron
Veteran
Want to show your ninja superpower to fellow developers?
Top users last month
Miljana
Top achievements
Rank 2
Iron
Iron
Joel
Top achievements
Rank 3
Bronze
Bronze
Bronze
Cynthia
Top achievements
Rank 1
John
Top achievements
Rank 1
Iron
Mozart
Top achievements
Rank 1
Iron
Veteran
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?