ngx-trumbowyg
Version:
This an Angular wrapper for [Trumbowyg WYSIWYG editor](https://alex-d.github.io/Trumbowyg/).
167 lines (166 loc) • 11.1 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
/**
* @abstract
*/
var /**
* @abstract
*/
EditorBase = /** @class */ (function () {
function EditorBase(editorControl, _config) {
this.editorControl = editorControl;
this._config = _config;
if (_config &&
_config.events &&
(_config.events['tbwinit'] || _config.events['tbwchange'] || _config.events['tbwfocus'])) {
throw new Error('Forbidden event registration. These events are protected for the Ngx-Trumbowyg library: tbwinit, tbwchange, tbwfocus');
}
editorControl.valueAccessor = this;
}
/**
* @return {?}
*/
EditorBase.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var /** @type {?} */ control = this.editorControl.control;
control.setValidators(control.validator);
control.updateValueAndValidity();
};
/**
* @return {?}
*/
EditorBase.prototype.ngAfterViewInit = /**
* @return {?}
*/
function () {
var _this = this;
var /** @type {?} */ editor = $(this._editor.nativeElement)
.trumbowyg(tslib_1.__assign({}, this._config, this.options))
.on('tbwinit', function () {
_this.setDisabledState(_this._disabled);
_this.setContent(_this._initValue);
})
.on('tbwchange', function () {
_this._onChange(_this.getContent());
})
.on('tbwfocus', function () {
_this._onTouch();
});
if (this._config && this._config.events) {
var /** @type {?} */ events_1 = this._config.events;
Object.keys(events_1).forEach(function (eventName) {
editor.on(eventName, events_1[eventName]());
});
}
};
/**
* @param {?} fn
* @return {?}
*/
EditorBase.prototype.registerOnChange = /**
* @param {?} fn
* @return {?}
*/
function (fn) {
this._onChange = fn;
};
/**
* @param {?} fn
* @return {?}
*/
EditorBase.prototype.registerOnTouched = /**
* @param {?} fn
* @return {?}
*/
function (fn) {
this._onTouch = fn;
};
/**
* @param {?} value
* @return {?}
*/
EditorBase.prototype.writeValue = /**
* @param {?} value
* @return {?}
*/
function (value) {
this._initValue = value;
if (this._editor && this._editor.nativeElement) {
this.setContent(value);
}
};
/**
* @param {?} disabled
* @return {?}
*/
EditorBase.prototype.setDisabledState = /**
* @param {?} disabled
* @return {?}
*/
function (disabled) {
this._disabled = disabled;
if (this._editor) {
$(this._editor.nativeElement).trumbowyg(this._disabled ? 'disable' : 'enable');
}
};
/**
* @return {?}
*/
EditorBase.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
$(this._editor.nativeElement).trumbowyg('destroy');
};
/**
* @param {?} content
* @return {?}
*/
EditorBase.prototype.setContent = /**
* @param {?} content
* @return {?}
*/
function (content) {
$(this._editor.nativeElement).trumbowyg('html', content);
};
/**
* @return {?}
*/
EditorBase.prototype.getContent = /**
* @return {?}
*/
function () {
return $(this._editor.nativeElement).trumbowyg('html');
};
return EditorBase;
}());
/**
* @abstract
*/
export { EditorBase };
function EditorBase_tsickle_Closure_declarations() {
/** @type {?} */
EditorBase.prototype.options;
/** @type {?} */
EditorBase.prototype.placeholder;
/** @type {?} */
EditorBase.prototype._editor;
/** @type {?} */
EditorBase.prototype._initValue;
/** @type {?} */
EditorBase.prototype._disabled;
/** @type {?} */
EditorBase.prototype._onChange;
/** @type {?} */
EditorBase.prototype._onTouch;
/** @type {?} */
EditorBase.prototype.editorControl;
/** @type {?} */
EditorBase.prototype._config;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWJhc2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtdHJ1bWJvd3lnLyIsInNvdXJjZXMiOlsibGliL2NvbW1vbnMvZWRpdG9yLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFNQTs7O0FBQUE7SUFlRSxvQkFBc0IsYUFBd0IsRUFBWSxPQUF5QjtRQUE3RCxrQkFBYSxHQUFiLGFBQWEsQ0FBVztRQUFZLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBQ2pGLEVBQUUsQ0FBQyxDQUNELE9BQU87WUFDUCxPQUFPLENBQUMsTUFBTTtZQUNkLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQ3pGLENBQUMsQ0FBQyxDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYixzSEFBc0gsQ0FDdkgsQ0FBQztTQUNIO1FBQ0QsYUFBYSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7S0FDcEM7Ozs7SUFFRCw2QkFBUTs7O0lBQVI7UUFDRSxxQkFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7UUFDM0MsT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7S0FDbEM7Ozs7SUFFRCxvQ0FBZTs7O0lBQWY7UUFBQSxpQkFvQkM7UUFuQkMscUJBQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQzthQUN6QyxTQUFTLHNCQUFNLElBQUksQ0FBQyxPQUFPLEVBQUssSUFBSSxDQUFDLE9BQU8sRUFBRzthQUMvQyxFQUFFLENBQUMsU0FBUyxFQUFFO1lBQ2IsS0FBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN0QyxLQUFJLENBQUMsVUFBVSxDQUFDLEtBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNsQyxDQUFDO2FBQ0QsRUFBRSxDQUFDLFdBQVcsRUFBRTtZQUNmLEtBQUksQ0FBQyxTQUFTLENBQUMsS0FBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7U0FDbkMsQ0FBQzthQUNELEVBQUUsQ0FBQyxVQUFVLEVBQUU7WUFDZCxLQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDakIsQ0FBQyxDQUFDO1FBRUwsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDeEMscUJBQU0sUUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQ25DLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQUEsU0FBUztnQkFDbkMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsUUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUMzQyxDQUFDLENBQUM7U0FDSjtLQUNGOzs7OztJQUVELHFDQUFnQjs7OztJQUFoQixVQUFpQixFQUFjO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0tBQ3JCOzs7OztJQUVELHNDQUFpQjs7OztJQUFqQixVQUFrQixFQUFjO1FBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0tBQ3BCOzs7OztJQUVELCtCQUFVOzs7O0lBQVYsVUFBVyxLQUFVO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBRXhCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEI7S0FDRjs7Ozs7SUFFRCxxQ0FBZ0I7Ozs7SUFBaEIsVUFBaUIsUUFBaUI7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFFMUIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDakIsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDaEY7S0FDRjs7OztJQUVELGdDQUFXOzs7SUFBWDtRQUNFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUNwRDs7Ozs7SUFFTywrQkFBVTs7OztjQUFDLE9BQWU7UUFDaEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQzs7Ozs7SUFHbkQsK0JBQVU7Ozs7UUFDaEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQzs7cUJBL0YzRDtJQWlHQyxDQUFBOzs7O0FBM0ZELHNCQTJGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJ1bWJvd3lnT3B0aW9ucyB9IGZyb20gJy4uL2NvbmZpZ3MvdHJ1bWJvd3lnLW9wdGlvbnMnO1xuXG5kZWNsYXJlIGNvbnN0ICQ6IGFueTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVkaXRvckJhc2UgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBvcHRpb25zOiBUcnVtYm93eWdPcHRpb25zIHwgbnVsbDtcblxuICBwbGFjZWhvbGRlcjogc3RyaW5nIHwgbnVsbDtcblxuICBwcm90ZWN0ZWQgX2VkaXRvcjogRWxlbWVudFJlZjtcblxuICBwcm90ZWN0ZWQgX2luaXRWYWx1ZTogc3RyaW5nO1xuXG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuO1xuXG4gIHByaXZhdGUgX29uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcblxuICBwcml2YXRlIF9vblRvdWNoOiAoKSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBlZGl0b3JDb250cm9sOiBOZ0NvbnRyb2wsIHByb3RlY3RlZCBfY29uZmlnOiBUcnVtYm93eWdPcHRpb25zKSB7XG4gICAgaWYgKFxuICAgICAgX2NvbmZpZyAmJlxuICAgICAgX2NvbmZpZy5ldmVudHMgJiZcbiAgICAgIChfY29uZmlnLmV2ZW50c1sndGJ3aW5pdCddIHx8IF9jb25maWcuZXZlbnRzWyd0YndjaGFuZ2UnXSB8fCBfY29uZmlnLmV2ZW50c1sndGJ3Zm9jdXMnXSlcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0ZvcmJpZGRlbiBldmVudCByZWdpc3RyYXRpb24uIFRoZXNlIGV2ZW50cyBhcmUgcHJvdGVjdGVkIGZvciB0aGUgTmd4LVRydW1ib3d5ZyBsaWJyYXJ5OiB0Yndpbml0LCB0YndjaGFuZ2UsIHRid2ZvY3VzJ1xuICAgICAgKTtcbiAgICB9XG4gICAgZWRpdG9yQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmVkaXRvckNvbnRyb2wuY29udHJvbDtcbiAgICBjb250cm9sLnNldFZhbGlkYXRvcnMoY29udHJvbC52YWxpZGF0b3IpO1xuICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGVkaXRvciA9ICQodGhpcy5fZWRpdG9yLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAudHJ1bWJvd3lnKHsgLi4udGhpcy5fY29uZmlnLCAuLi50aGlzLm9wdGlvbnMgfSlcbiAgICAgIC5vbigndGJ3aW5pdCcsICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXREaXNhYmxlZFN0YXRlKHRoaXMuX2Rpc2FibGVkKTtcbiAgICAgICAgdGhpcy5zZXRDb250ZW50KHRoaXMuX2luaXRWYWx1ZSk7XG4gICAgICB9KVxuICAgICAgLm9uKCd0YndjaGFuZ2UnLCAoKSA9PiB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuZ2V0Q29udGVudCgpKTtcbiAgICAgIH0pXG4gICAgICAub24oJ3Rid2ZvY3VzJywgKCkgPT4ge1xuICAgICAgICB0aGlzLl9vblRvdWNoKCk7XG4gICAgICB9KTtcblxuICAgIGlmICh0aGlzLl9jb25maWcgJiYgdGhpcy5fY29uZmlnLmV2ZW50cykge1xuICAgICAgY29uc3QgZXZlbnRzID0gdGhpcy5fY29uZmlnLmV2ZW50cztcbiAgICAgIE9iamVjdC5rZXlzKGV2ZW50cykuZm9yRWFjaChldmVudE5hbWUgPT4ge1xuICAgICAgICBlZGl0b3Iub24oZXZlbnROYW1lLCBldmVudHNbZXZlbnROYW1lXSgpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoID0gZm47XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9pbml0VmFsdWUgPSB2YWx1ZTtcblxuICAgIGlmICh0aGlzLl9lZGl0b3IgJiYgdGhpcy5fZWRpdG9yLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuc2V0Q29udGVudCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gZGlzYWJsZWQ7XG5cbiAgICBpZiAodGhpcy5fZWRpdG9yKSB7XG4gICAgICAkKHRoaXMuX2VkaXRvci5uYXRpdmVFbGVtZW50KS50cnVtYm93eWcodGhpcy5fZGlzYWJsZWQgPyAnZGlzYWJsZScgOiAnZW5hYmxlJyk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgJCh0aGlzLl9lZGl0b3IubmF0aXZlRWxlbWVudCkudHJ1bWJvd3lnKCdkZXN0cm95Jyk7XG4gIH1cblxuICBwcml2YXRlIHNldENvbnRlbnQoY29udGVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgJCh0aGlzLl9lZGl0b3IubmF0aXZlRWxlbWVudCkudHJ1bWJvd3lnKCdodG1sJywgY29udGVudCk7XG4gIH1cblxuICBwcml2YXRlIGdldENvbnRlbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJCh0aGlzLl9lZGl0b3IubmF0aXZlRWxlbWVudCkudHJ1bWJvd3lnKCdodG1sJyk7XG4gIH1cbn1cbiJdfQ==