Code Monkey home page Code Monkey logo

aurelia-kendoui-bridge's People

Contributors

1pmazurek avatar arnederuwe avatar charlespockert avatar enrico-padovani avatar jawa-the-hutt avatar jeroenvinke avatar rborosak avatar robertbinneman avatar shanonvl avatar thanood avatar vheissu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aurelia-kendoui-bridge's Issues

Autocomplete value can get messy during typing

To reproduce try typing 2 characters on the "Basic Usage" test page.

The second character usually appears after the autocomplete has updated the input field.

For example type "ch" and the input will complete with "charlesh"

image

Implement Validator

This is a place-holder for a lot more comprehensive task of integrating all KendoUI controls with Aurelia Validation

Need a few more KendoUI controls "componentized" to get the sense for generic algorithm

Given the accepted classification of KendoUI controls into two groups

  • native HTML controls
  • controls that do not have HTML native implementation

we have the rule which determines whether a control will become a custom element or a custom attribute.

While we already have the first KendoUI control - AutoComplete implemented using Aurelia custom attributes, this control is not the generic representative of KendoUI controls that is converted to Aurelia component - meaning that the autocomplete cannot be used as a template for processing the rest of KendoUI controls.

DropDownList adds more complexity as we need to create the children DOM elements - probably form an array of strings, using Aurelia HTML compiler -- and I would prefer to see Charles define the code for all such cases (including the controls that are not HTML natives like Grid).

There are several important issues:

  • use Aurelia "production" compiler or the private branch Charles uses today
  • definition of the utilities folder (to me made, with compiler being the first inhabitant)
  • ...

that are all better to be decided by Charles

How finished is the TabStrip control

Looking at Telerik's TabStrip documentation I just got reminded that we have to support both declarative and programmatic style to define controls. The current implementation seems to be ready to handle both style, so in order to demonstrate that the code in the tabstrip folder needs to be augmented to match the features shown on the original demo

image

Seeing this screenshot raises the question that I am really curious about: having done the Aureliaization of the KendoUI tabstrip, is the Loading content with AJAX even relevant in this context - or (as I hope) this comes as a side-effect of having this control "converted" to Aurelia control?

KendoUI Web Components

davidpurkiss writes

I think something that should be discussed sooner rather than later is the current support that Telerik provides for web components with KendoUI.

http://docs.telerik.com/kendo-ui/webcomponents

Personally, I've been avoiding the issue as that means I need to now understand, intimately, how web components work. Over the last few weeks as my understanding of Aurelia has grown and having had a chance to play around with building custom elements properly, I feel like this is now less of a task.

Off the bat, I've come across this article and this aurelia issue. So it sounds like the Telerik web components are based on Polymer's implementation of custom elements which means we will never be able to use them with Aurelia (unless your bring Polymer into Aurelia, which sounds undesirable), which I don't think is really an issue. At this point I don't know yet, perhaps someone else has some insight?

For me the more important question is, should we be basing our implementation on Telerik's web component implementation. In other words, ideally I would copy and paste some sample from the KendoUI documentation into an Aurelia app and it just works.

I guess the TL:DR of the issue is, how do KendoUI components fit into this project?

Using plugin config callback

In my opinion, we should allow the consumer of the plugin to load only a subset of our plugins. Why globalize all resources when you may only use one widget?

It would look something like this:

aurelia.use
      .standardConfiguration()
      .developmentLogging()
      .plugin("aurelia-kendoUI", (config) => {
        config.useWidgets(["button", "grid"]);
      });

this would only globalize resources for the "button" and the "grid".

Implement ProgressBar

  • the _initialize function is called from bind (only when there are issues, attached() may be used)
  • bindable properties are sorted alphabetically
  • there is a recreate function
  • Available API methods are proxied in the wrapper (such as enable)
  • All samples found on Telerik's website are recreated using our wrapper (example)
  • changed events of bindable properties are handled, only if there is an API method available. For example, the kEnable property of the button has an API function (enable()), so the kEnableChanged() function should call the enable() API function

Implement Grid

  • the _initialize function is called from bind (only when there are issues, attached() may be used)
  • bindable properties are sorted alphabetically
  • there is a recreate function
  • Available API methods are proxied in the wrapper (such as enable)
  • All samples found on Telerik's website are recreated using our wrapper (example)
  • changed events of bindable properties are handled, only if there is an API method available. For example, the kEnable property of the button has an API function (enable()), so the kEnableChanged() function should call the enable() API function

Implement Charts

  • the _initialize function is called from bind (only when there are issues, attached() may be used)
  • bindable properties are sorted alphabetically
  • there is a recreate function
  • Available API methods are proxied in the wrapper (such as enable)
  • All samples found on Telerik's website are recreated using our wrapper (example)
  • changed events of bindable properties are handled, only if there is an API method available. For example, the kEnable property of the button has an API function (enable()), so the kEnableChanged() function should call the enable() API function

Implement Scheduler

I would love to take the first whack at this one as it is an important part of the future project I would like us to do - Aurelia Workflows :-)

Implement Slider

  • the _initialize function is called from bind (only when there are issues, attached() may be used)
  • bindable properties are sorted alphabetically
  • there is a recreate function
  • Available API methods are proxied in the wrapper (such as enable)
  • All samples found on Telerik's website are recreated using our wrapper (example)
  • changed events of bindable properties are handled, only if there is an API method available. For example, the kEnable property of the button has an API function (enable()), so the kEnableChanged() function should call the enable() API function

Syntax for @bindables

The development guide specifies that conventions should be avoided if possible as Aurelia allows customisation of these conventions.

Any plugin making an assumption about conventions can fail when those conventions are changed

Does this apply to @bindables? I don't think it does - I prefer the convention based approach as it keeps the @bindable near the property description:

export class MyClass {
    @bindable myProperty;
}

It's also possible to decorate the class

@bindable({ name: 'myProperty' })
export class MyClass {
}

Which is preferred? Do we need to be consistent?

Write first two Aurelia-KendoUI controls

Using the AutoComplete Implementation Alternatives wiki page based approach, write the code that implements the following two controls:

1. KendoUI AutoComplete control

This control is a member of "Input Control Family" so its implementation based on Aurelia Custom Attributes

2. KendoUI Grid control

This control is a typical example of KendoUI control that us not a member of "Input Control Family" so it should be implemented as Aurelia Custom Element.

These two controls should be written as carefully as possible, so that just the comments that need to be present can be used as a "developer's manual". - so that anyone joining after these two components are fully written, could pick any other KendoUI control and work on it without having to ask how does this or that work

Important note

Please finish the Development Protocol article (starting here before / in parallel with coding these first controls, so that you can make references from that article into relevant code sections (to be used as examples of a specific rule in the Development Protocol

Implement Drag and Drop

This of course needs to be consolidated with Aurelia's own. The open question is what to really do in situation where there is Aurelia's own feature that competes with this toolkit's control

Implement the proof of the concept for KendoUI PRO packaging

Rather than collecting all discussion items from previous discussions about this, let me try to just define the requirements.

  • As cloned from Github, the application consuming the plugin services should simply work without any changes.
  • It is assumed that the user who wants run the app with KendoUI PRO bits, has the PRO license and all files that have to present in the vendor folder and has enabled the "run the PRO version" flag (this could be done by uncommenting the relevant line somewhere).
  • Everyone on this team should download KendoUI PRO trial version and thus be able to use it in lieu of the "real" PRO version.
  • This proof of concept should support both loading all KendoUI components in one fell swoop (kendo.all.min.js) or any combination of files representing single controls.

Here are some relevant links

how to use kendo-ui professional with jspm
Using Kendo UI with RequireJS

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.