aurelia-kendoui-bridge
Version:
A set of Telerik KendoUI wrappers for Aurelia allowing developers to easily use KendoUI components in their Aurelia application.
60 lines (50 loc) • 1.66 kB
JavaScript
import {inject, Container} from 'aurelia-dependency-injection';
import {customElement} from 'aurelia-templating';
import {WidgetBase} from '../common/widget-base';
import {generateBindables} from '../common/decorators';
import {constants} from '../common/constants';
import {OptionsBuilder} from '../common/options-builder';
export class Toolbar {
constructor(element, widgetBase, optionsBuilder, container) {
this.element = element;
this.optionsBuilder = optionsBuilder;
this.widgetBase = widgetBase
.control('kendoToolBar')
.useElement(this.element)
.beforeInitialize(options => this._beforeInitialize(options))
.linkViewModel(this)
.useContainer(container);
}
subscribe(event, callback) {
return this.widgetBase.subscribe(event, callback);
}
bind(ctx, overrideCtx) {
this.widgetBase.useParentCtx(overrideCtx);
}
attached() {
if (!this.kNoInit) {
this.recreate();
}
}
recreate() {
this.kWidget = this.widgetBase.recreate();
}
_beforeInitialize(options) {
let toolbarItems = this.widgetBase.util.getChildrenVMs(this.element, `${constants.elementPrefix}toolbar-item`);
if (toolbarItems && toolbarItems.length > 0) {
options.items = [];
toolbarItems.forEach(item => {
options.items.push(item.getOptions());
});
}
}
destroy() {
this.widgetBase.destroy(this.kWidget);
}
detached() {
this.destroy();
}
}