@asi-ngtools/lib
Version:
This project is a little components library, simple to use, which will help you to simplify your project.
106 lines (105 loc) • 8.56 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import { DefaultControlValueAccessor } from './../common/default-control-value-accessor';
import { Component, Input, forwardRef, NgZone, HostBinding } from '@angular/core';
export class AsiTinyMCE extends DefaultControlValueAccessor {
/**
* @param {?} zone
*/
constructor(zone) {
super();
this.zone = zone;
this.class = 'asi-component asi-tinymce';
this.labelPosition = 'top';
}
/**
* @return {?}
*/
ngOnInit() {
this.class += ' label-' + this.labelPosition;
}
/**
* @return {?}
*/
ngAfterViewInit() {
tinymce.init({
selector: '#' + this.elementId,
plugins: ['link', 'paste', 'table', 'textcolor', 'colorpicker'],
// tslint:disable-next-line:max-line-length
toolbar: 'fontselect fontsizeselect | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | outdent indent blockquote | forecolor backcolor',
skin_url: '../assets/tinymce/skin',
setup: (editor) => {
this.editor = editor;
editor.on('keyup', () => {
this.onModelChange();
});
editor.on('Change', () => {
this.onModelChange();
});
},
init_instance_callback: (editor) => {
if (this.value != null) {
editor.setContent(this.value);
}
}
});
}
/**
* @return {?}
*/
onModelChange() {
this.zone.run(() => {
/** @type {?} */
const content = this.editor.getContent();
this.value = content;
this.onValueChange.emit(content);
});
}
/**
* @return {?}
*/
ngOnDestroy() {
tinymce.remove(this.editor);
}
}
AsiTinyMCE.decorators = [
{ type: Component, args: [{
selector: 'asi-tinymce',
template: "<textarea id=\"{{elementId}}\"></textarea>",
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef(() => AsiTinyMCE),
multi: true
}
]
}] }
];
/** @nocollapse */
AsiTinyMCE.ctorParameters = () => [
{ type: NgZone }
];
AsiTinyMCE.propDecorators = {
class: [{ type: HostBinding, args: ['class',] }],
label: [{ type: Input }],
labelPosition: [{ type: Input }],
elementId: [{ type: Input }]
};
if (false) {
/** @type {?} */
AsiTinyMCE.prototype.class;
/** @type {?} */
AsiTinyMCE.prototype.label;
/** @type {?} */
AsiTinyMCE.prototype.labelPosition;
/** @type {?} */
AsiTinyMCE.prototype.elementId;
/** @type {?} */
AsiTinyMCE.prototype.editor;
/** @type {?} */
AsiTinyMCE.prototype.zone;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpLXRpbnltY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFzaS1uZ3Rvb2xzL2xpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2FzaS10aW55bWNlL2FzaS10aW55bWNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDekYsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBb0MsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBZXBILE1BQU0saUJBQWtCLFNBQVEsMkJBQTJCOzs7O0lBV3pELFlBQW9CLElBQVk7UUFDOUIsS0FBSyxFQUFFLENBQUM7UUFEVSxTQUFJLEdBQUosSUFBSSxDQUFRO3FCQVRGLDJCQUEyQjs2QkFHc0MsS0FBSztLQVFuRzs7OztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO0tBQzlDOzs7O0lBRUQsZUFBZTtRQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDWCxRQUFRLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTO1lBQzlCLE9BQU8sRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLENBQUM7O1lBRS9ELE9BQU8sRUFBRSxtS0FBbUs7WUFDNUssUUFBUSxFQUFFLHdCQUF3QjtZQUNsQyxLQUFLLEVBQUUsQ0FBQyxNQUFXLEVBQUUsRUFBRTtnQkFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Z0JBQ3JCLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRTtvQkFDdEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2lCQUN0QixDQUFDLENBQUM7Z0JBQ0gsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO29CQUN2QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7aUJBQ3RCLENBQUMsQ0FBQzthQUNKO1lBQ0Qsc0JBQXNCLEVBQUUsQ0FBQyxNQUFXLEVBQUUsRUFBRTtnQkFDdEMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUN2QixNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDL0I7YUFDRjtTQUNGLENBQUMsQ0FBQztLQUNKOzs7O0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTs7WUFDakIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztZQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNsQyxDQUFDLENBQUM7S0FDSjs7OztJQUVELFdBQVc7UUFDVCxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUM3Qjs7O1lBaEVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIsc0RBQXlDO2dCQUN6QyxTQUFTLEVBQUU7b0JBQ1Q7d0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUM7d0JBQ3pDLEtBQUssRUFBRSxJQUFJO3FCQUNaO2lCQUNGO2FBQ0Y7Ozs7WUFkc0MsTUFBTTs7O29CQWlCMUMsV0FBVyxTQUFDLE9BQU87b0JBRW5CLEtBQUs7NEJBQ0wsS0FBSzt3QkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IERlZmF1bHRDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJy4vLi4vY29tbW9uL2RlZmF1bHQtY29udHJvbC12YWx1ZS1hY2Nlc3Nvcic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIGZvcndhcmRSZWYsIE5nWm9uZSwgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5kZWNsYXJlIHZhciB0aW55bWNlOiBhbnk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FzaS10aW55bWNlJyxcclxuICB0ZW1wbGF0ZVVybDogJ2FzaS10aW55bWNlLmNvbXBvbmVudC5odG1sJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFzaVRpbnlNQ0UpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFzaVRpbnlNQ0UgZXh0ZW5kcyBEZWZhdWx0Q29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzcyA9ICdhc2ktY29tcG9uZW50IGFzaS10aW55bWNlJztcclxuXHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSBsYWJlbFBvc2l0aW9uOiAndG9wJyB8ICdsZWZ0JyB8ICdyaWdodCcgfCAnYm90dG9tJyB8ICdib3R0b20tY2VudGVyJyB8ICd0b3AtY2VudGVyJyA9ICd0b3AnO1xyXG4gIEBJbnB1dCgpIGVsZW1lbnRJZDogc3RyaW5nO1xyXG5cclxuICAvLyByZWZlcmVuY2UgZGUgbCdpbnN0YW5jZSBkdSB0aW55bWNlXHJcbiAgZWRpdG9yOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgem9uZTogTmdab25lKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsYXNzICs9ICcgbGFiZWwtJyArIHRoaXMubGFiZWxQb3NpdGlvbjtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRpbnltY2UuaW5pdCh7XHJcbiAgICAgIHNlbGVjdG9yOiAnIycgKyB0aGlzLmVsZW1lbnRJZCxcclxuICAgICAgcGx1Z2luczogWydsaW5rJywgJ3Bhc3RlJywgJ3RhYmxlJywgJ3RleHRjb2xvcicsICdjb2xvcnBpY2tlciddLFxyXG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXHJcbiAgICAgIHRvb2xiYXI6ICdmb250c2VsZWN0IGZvbnRzaXplc2VsZWN0IHwgYm9sZCBpdGFsaWMgdW5kZXJsaW5lIHN0cmlrZXRocm91Z2ggfCBhbGlnbmxlZnQgYWxpZ25jZW50ZXIgYWxpZ25yaWdodCBhbGlnbmp1c3RpZnkgfCBvdXRkZW50IGluZGVudCBibG9ja3F1b3RlIHwgZm9yZWNvbG9yIGJhY2tjb2xvcicsXHJcbiAgICAgIHNraW5fdXJsOiAnLi4vYXNzZXRzL3RpbnltY2Uvc2tpbicsXHJcbiAgICAgIHNldHVwOiAoZWRpdG9yOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmVkaXRvciA9IGVkaXRvcjtcclxuICAgICAgICBlZGl0b3Iub24oJ2tleXVwJywgKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZWRpdG9yLm9uKCdDaGFuZ2UnLCAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgICAgaW5pdF9pbnN0YW5jZV9jYWxsYmFjazogKGVkaXRvcjogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICAgICAgZWRpdG9yLnNldENvbnRlbnQodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uTW9kZWxDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgY29uc3QgY29udGVudCA9IHRoaXMuZWRpdG9yLmdldENvbnRlbnQoKTtcclxuICAgICAgdGhpcy52YWx1ZSA9IGNvbnRlbnQ7XHJcbiAgICAgIHRoaXMub25WYWx1ZUNoYW5nZS5lbWl0KGNvbnRlbnQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRpbnltY2UucmVtb3ZlKHRoaXMuZWRpdG9yKTtcclxuICB9XHJcbn1cclxuIl19