import { Component, ViewChild, ViewEncapsulation } from '@angular/core';
import { jqxToolBarComponent } from 'jqwidgets-scripts/jqwidgets-ts/angular_jqxtoolbar';
import { jqxDropDownListComponent } from 'jqwidgets-scripts/jqwidgets-ts/angular_jqxdropdownlist';
import { jqxNumberInputComponent } from 'jqwidgets-scripts/jqwidgets-ts/angular_jqxnumberinput';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
encapsulation: ViewEncapsulation.None
})
export class AppComponent {
@ViewChild('myToolBar') myToolBar: jqxToolBarComponent;
@ViewChild('myDropDownList') myDropDownList: jqxDropDownListComponent;
@ViewChild('myNumberInput') myNumberInput: jqxNumberInputComponent;
countries: string[] = ['Argentina', 'Austria', 'Canada', 'China', 'France', 'Germany', 'Japan', 'Mexico', 'Spain', 'Sweden', 'Switzerland', 'UK', 'USA'];
tools: string = 'toggleButton toggleButton toggleButton | toggleButton | dropdownlist combobox | input |';
theme: string = ''
initTools = (type: string, index: number, tool: any, menuToolIninitialization: any): any => {
let icon = document.createElement('div');
if (type == 'toggleButton') {
icon.className = 'jqx-editor-toolbar-icon jqx-editor-toolbar-icon-' + this.theme + ' buttonIcon ';
}
switch (index) {
case 0:
icon.className += 'jqx-editor-toolbar-icon-bold jqx-editor-toolbar-icon-bold-' + this.theme;
icon.setAttribute('title', 'Bold');
tool[0].appendChild(icon);
break;
case 1:
icon.className += 'jqx-editor-toolbar-icon-italic jqx-editor-toolbar-icon-italic-' + this.theme;
icon.setAttribute('title', 'Italic');
tool[0].appendChild(icon);
break;
case 2:
icon.className += 'jqx-editor-toolbar-icon-underline jqx-editor-toolbar-icon-underline-' + this.theme;
icon.setAttribute('title', 'Underline');
tool[0].appendChild(icon);
break;
case 3:
tool.jqxToggleButton({ width: 80, toggled: true });
tool[0].innerText = 'Enabled';
tool.on('click', () => {
let toggled = tool.jqxToggleButton('toggled');
if (toggled) {
tool.text('Enabled');
} else {
tool.text('Disabled');
}
});
break;
case 4:
tool.jqxDropDownList({
width: 130, source: ['Courier New', 'Times New Roman', 'Verdana'], selectedIndex: 1 });
break;
case 5:
tool.jqxComboBox({ width: 50, source: [8, 9, 10, 11, 12, 14, 16, 18, 20], selectedIndex: 3 });
break;
case 6:
tool.jqxInput({ width: 200, placeHolder: 'Type here to search...' });
break;
}
}
addToggleBtnOnClick(): void {
let position = this.myDropDownList.val();
this.myToolBar.addTool('toggleButton', position, false, (type: string, tool: any, menuToolIninitialization: boolean): void => {
let width;
if (menuToolIninitialization) {
// specific setting for minimized tool
width = '95%';
} else {
width = 50;
}
tool.jqxToggleButton({ width: width, toggled: false });
tool.text('Off');
tool.on('click', () => {
let toggled = tool.jqxToggleButton('toggled');
if (toggled) {
tool.text('On');
} else {
tool.text('Off');
}
});
});
};
addCustomToolBtnOnClick(): void {
let position = this.myDropDownList.val();
let country = this.countries[Math.floor(Math.random() * this.countries.length)];
this.myToolBar.addTool('custom', position, false, (type: string, tool: any, menuToolIninitialization: boolean): void => {
let width;
tool.append('
');
if (menuToolIninitialization) {
// specific setting for minimized tool
tool.find('img').css('margin-right', '10px');
tool.find('img').css('margin-top', '4px');
tool.append('