UNPKG

@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
/** * @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