mat-contenteditable
Version:
Angular contenteditable directive for Angular forms and Material Design
98 lines (97 loc) • 8.35 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Directive, Input } from '@angular/core';
import { MatFormFieldControl } from '@angular/material/form-field';
import { MatCkeditorDirective } from './mat-ckeditor.directive';
var MatCkeditorBalloonDirective = /** @class */ (function (_super) {
tslib_1.__extends(MatCkeditorBalloonDirective, _super);
function MatCkeditorBalloonDirective() {
return _super !== null && _super.apply(this, arguments) || this;
}
Object.defineProperty(MatCkeditorBalloonDirective.prototype, "toolbar", {
set: /**
* @param {?} show
* @return {?}
*/
function (show) {
if (this.editor && show !== this.toolbarOpen) {
/** @type {?} */
var balloon = this.editor.editorInstance.plugins.get('BalloonToolbar');
if (show) {
this.showToolbar(balloon);
}
else {
balloon.hide();
this.toolbarOpen = false;
}
}
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
MatCkeditorBalloonDirective.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
_super.prototype.ngOnInit.call(this);
this.editor.ready.subscribe(function (editor) {
/** @type {?} */
var balloon = editor.plugins.get('BalloonToolbar');
balloon.stopListening(editor.model.document.selection, 'change:range');
balloon.stopListening(balloon, '_selectionChangeDebounced');
});
this.editor.focus.subscribe(function () {
if (_this.toolbarOpen) {
/** @type {?} */
var balloon = _this.editor.editorInstance.plugins.get('BalloonToolbar');
_this.showToolbar(balloon);
}
});
};
/**
* @param {?} balloon
* @return {?}
*/
MatCkeditorBalloonDirective.prototype.showToolbar = /**
* @param {?} balloon
* @return {?}
*/
function (balloon) {
if (!balloon._balloon.hasView(balloon.toolbarView)) {
balloon.listenTo(this.editor.editorInstance.ui, 'update', function () {
balloon._balloon.updatePosition(balloon._getBalloonPositionData());
});
balloon._balloon.add({
view: balloon.toolbarView,
position: balloon._getBalloonPositionData(),
balloonClassName: 'ck-toolbar-container'
});
this.toolbarOpen = true;
}
};
MatCkeditorBalloonDirective.decorators = [
{ type: Directive, args: [{
selector: '[matCkeditorBalloon]',
providers: [
{ provide: MatFormFieldControl, useExisting: MatCkeditorBalloonDirective },
]
},] }
];
MatCkeditorBalloonDirective.propDecorators = {
toolbar: [{ type: Input }]
};
return MatCkeditorBalloonDirective;
}(MatCkeditorDirective));
export { MatCkeditorBalloonDirective };
if (false) {
/** @type {?} */
MatCkeditorBalloonDirective.prototype.toolbarOpen;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LWNrZWRpdG9yLWJhbGxvb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbWF0LWNvbnRlbnRlZGl0YWJsZS8iLCJzb3VyY2VzIjpbImxpYi9tYXQtY2tlZGl0b3ItYmFsbG9vbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7SUFRZix1REFBb0I7Ozs7SUFFbkUsc0JBQ0ksZ0RBQU87Ozs7O1FBRFgsVUFDWSxJQUFhO1lBQ3ZCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRTs7Z0JBQzVDLElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDekUsSUFBSSxJQUFJLEVBQUU7b0JBQ1IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDM0I7cUJBQU07b0JBQ0wsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO2lCQUMxQjthQUNGO1NBQ0Y7OztPQUFBOzs7O0lBR0QsOENBQVE7OztJQUFSO1FBQUEsaUJBYUM7UUFaQyxpQkFBTSxRQUFRLFdBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBQSxNQUFNOztZQUNoQyxJQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3JELE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQ3ZFLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLDJCQUEyQixDQUFDLENBQUM7U0FDN0QsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQzFCLElBQUksS0FBSSxDQUFDLFdBQVcsRUFBRTs7Z0JBQ3BCLElBQU0sT0FBTyxHQUFHLEtBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDekUsS0FBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUMzQjtTQUNGLENBQUMsQ0FBQztLQUNKOzs7OztJQUVPLGlEQUFXOzs7O2NBQUMsT0FBTztRQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ2xELE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRTtnQkFDeEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLENBQUMsQ0FBQzthQUNwRSxDQUFDLENBQUM7WUFDSCxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztnQkFDbkIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxXQUFXO2dCQUN6QixRQUFRLEVBQUUsT0FBTyxDQUFDLHVCQUF1QixFQUFFO2dCQUMzQyxnQkFBZ0IsRUFBRSxzQkFBc0I7YUFDekMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7U0FDekI7OztnQkFoREosU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFNBQVMsRUFBRTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsMkJBQTJCLEVBQUU7cUJBQzNFO2lCQUNGOzs7MEJBR0UsS0FBSzs7c0NBYlI7RUFXaUQsb0JBQW9CO1NBQXhELDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcblxuaW1wb3J0IHsgTWF0Q2tlZGl0b3JEaXJlY3RpdmUgfSBmcm9tICcuL21hdC1ja2VkaXRvci5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbWF0Q2tlZGl0b3JCYWxsb29uXScsXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCwgdXNlRXhpc3Rpbmc6IE1hdENrZWRpdG9yQmFsbG9vbkRpcmVjdGl2ZSB9LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE1hdENrZWRpdG9yQmFsbG9vbkRpcmVjdGl2ZSBleHRlbmRzIE1hdENrZWRpdG9yRGlyZWN0aXZlIHtcblxuICBASW5wdXQoKVxuICBzZXQgdG9vbGJhcihzaG93OiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuZWRpdG9yICYmIHNob3cgIT09IHRoaXMudG9vbGJhck9wZW4pIHtcbiAgICAgIGNvbnN0IGJhbGxvb24gPSB0aGlzLmVkaXRvci5lZGl0b3JJbnN0YW5jZS5wbHVnaW5zLmdldCgnQmFsbG9vblRvb2xiYXInKTtcbiAgICAgIGlmIChzaG93KSB7XG4gICAgICAgIHRoaXMuc2hvd1Rvb2xiYXIoYmFsbG9vbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBiYWxsb29uLmhpZGUoKTtcbiAgICAgICAgdGhpcy50b29sYmFyT3BlbiA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBwcml2YXRlIHRvb2xiYXJPcGVuOiBib29sZWFuO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgdGhpcy5lZGl0b3IucmVhZHkuc3Vic2NyaWJlKGVkaXRvciA9PiB7XG4gICAgICBjb25zdCBiYWxsb29uID0gZWRpdG9yLnBsdWdpbnMuZ2V0KCdCYWxsb29uVG9vbGJhcicpO1xuICAgICAgYmFsbG9vbi5zdG9wTGlzdGVuaW5nKGVkaXRvci5tb2RlbC5kb2N1bWVudC5zZWxlY3Rpb24sICdjaGFuZ2U6cmFuZ2UnKTtcbiAgICAgIGJhbGxvb24uc3RvcExpc3RlbmluZyhiYWxsb29uLCAnX3NlbGVjdGlvbkNoYW5nZURlYm91bmNlZCcpO1xuICAgIH0pO1xuICAgIHRoaXMuZWRpdG9yLmZvY3VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy50b29sYmFyT3Blbikge1xuICAgICAgICBjb25zdCBiYWxsb29uID0gdGhpcy5lZGl0b3IuZWRpdG9ySW5zdGFuY2UucGx1Z2lucy5nZXQoJ0JhbGxvb25Ub29sYmFyJyk7XG4gICAgICAgIHRoaXMuc2hvd1Rvb2xiYXIoYmFsbG9vbik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNob3dUb29sYmFyKGJhbGxvb24pIHtcbiAgICBpZiAoIWJhbGxvb24uX2JhbGxvb24uaGFzVmlldyhiYWxsb29uLnRvb2xiYXJWaWV3KSkge1xuICAgICAgYmFsbG9vbi5saXN0ZW5Ubyh0aGlzLmVkaXRvci5lZGl0b3JJbnN0YW5jZS51aSwgJ3VwZGF0ZScsICgpID0+IHtcbiAgICAgICAgYmFsbG9vbi5fYmFsbG9vbi51cGRhdGVQb3NpdGlvbihiYWxsb29uLl9nZXRCYWxsb29uUG9zaXRpb25EYXRhKCkpO1xuICAgICAgfSk7XG4gICAgICBiYWxsb29uLl9iYWxsb29uLmFkZCh7XG4gICAgICAgIHZpZXc6IGJhbGxvb24udG9vbGJhclZpZXcsXG4gICAgICAgIHBvc2l0aW9uOiBiYWxsb29uLl9nZXRCYWxsb29uUG9zaXRpb25EYXRhKCksXG4gICAgICAgIGJhbGxvb25DbGFzc05hbWU6ICdjay10b29sYmFyLWNvbnRhaW5lcidcbiAgICAgIH0pO1xuICAgICAgdGhpcy50b29sYmFyT3BlbiA9IHRydWU7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==