UNPKG

mat-contenteditable

Version:

Angular contenteditable directive for Angular forms and Material Design

61 lines 7.45 kB
var MatCkeditorBalloonDirective_1; import { __decorate, __metadata } from "tslib"; import { Directive, Input } from '@angular/core'; import { MatFormFieldControl } from '@angular/material/form-field'; import { MatCkeditorDirective } from './mat-ckeditor.directive'; let MatCkeditorBalloonDirective = MatCkeditorBalloonDirective_1 = class MatCkeditorBalloonDirective extends MatCkeditorDirective { set toolbar(show) { if (this.editor && show !== this.toolbarOpen) { const balloon = this.editor.editorInstance.plugins.get('BalloonToolbar'); if (show) { this.showToolbar(balloon); } else { balloon.hide(); this.toolbarOpen = false; } } } ngOnInit() { super.ngOnInit(); this.editor.ready.subscribe(editor => { const balloon = editor.plugins.get('BalloonToolbar'); balloon.stopListening(editor.model.document.selection, 'change:range'); balloon.stopListening(balloon, '_selectionChangeDebounced'); }); this.editor.focus.subscribe(() => { if (this.toolbarOpen) { const balloon = this.editor.editorInstance.plugins.get('BalloonToolbar'); this.showToolbar(balloon); } }); } showToolbar(balloon) { if (!balloon._balloon.hasView(balloon.toolbarView)) { balloon.listenTo(this.editor.editorInstance.ui, 'update', () => { balloon._balloon.updatePosition(balloon._getBalloonPositionData()); }); balloon._balloon.add({ view: balloon.toolbarView, position: balloon._getBalloonPositionData(), balloonClassName: 'ck-toolbar-container' }); this.toolbarOpen = true; } } }; __decorate([ Input(), __metadata("design:type", Boolean), __metadata("design:paramtypes", [Boolean]) ], MatCkeditorBalloonDirective.prototype, "toolbar", null); MatCkeditorBalloonDirective = MatCkeditorBalloonDirective_1 = __decorate([ Directive({ selector: '[matCkeditorBalloon]', providers: [ { provide: MatFormFieldControl, useExisting: MatCkeditorBalloonDirective_1 }, ] }) ], MatCkeditorBalloonDirective); export { MatCkeditorBalloonDirective }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LWNrZWRpdG9yLWJhbGxvb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbWF0LWNvbnRlbnRlZGl0YWJsZS8iLCJzb3VyY2VzIjpbImxpYi9tYXQtY2tlZGl0b3ItYmFsbG9vbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQVFoRSxJQUFhLDJCQUEyQixtQ0FBeEMsTUFBYSwyQkFBNEIsU0FBUSxvQkFBb0I7SUFHbkUsSUFBSSxPQUFPLENBQUMsSUFBYTtRQUN2QixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDNUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ3pFLElBQUksSUFBSSxFQUFFO2dCQUNSLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDM0I7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO2FBQzFCO1NBQ0Y7SUFDSCxDQUFDO0lBR0QsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbkMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNyRCxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUN2RSxPQUFPLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO1FBQzlELENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMvQixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3BCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDekUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUMzQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFdBQVcsQ0FBQyxPQUFPO1FBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDbEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQkFDN0QsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLENBQUMsQ0FBQztZQUNyRSxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO2dCQUNuQixJQUFJLEVBQUUsT0FBTyxDQUFDLFdBQVc7Z0JBQ3pCLFFBQVEsRUFBRSxPQUFPLENBQUMsdUJBQXVCLEVBQUU7Z0JBQzNDLGdCQUFnQixFQUFFLHNCQUFzQjthQUN6QyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztTQUN6QjtJQUNILENBQUM7Q0FFRixDQUFBO0FBMUNDO0lBREMsS0FBSyxFQUFFOzs7MERBV1A7QUFiVSwyQkFBMkI7SUFOdkMsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLHNCQUFzQjtRQUNoQyxTQUFTLEVBQUU7WUFDVCxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsNkJBQTJCLEVBQUU7U0FDM0U7S0FDRixDQUFDO0dBQ1csMkJBQTJCLENBNkN2QztTQTdDWSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5cbmltcG9ydCB7IE1hdENrZWRpdG9yRGlyZWN0aXZlIH0gZnJvbSAnLi9tYXQtY2tlZGl0b3IuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW21hdENrZWRpdG9yQmFsbG9vbl0nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsIHVzZUV4aXN0aW5nOiBNYXRDa2VkaXRvckJhbGxvb25EaXJlY3RpdmUgfSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBNYXRDa2VkaXRvckJhbGxvb25EaXJlY3RpdmUgZXh0ZW5kcyBNYXRDa2VkaXRvckRpcmVjdGl2ZSB7XG5cbiAgQElucHV0KClcbiAgc2V0IHRvb2xiYXIoc2hvdzogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLmVkaXRvciAmJiBzaG93ICE9PSB0aGlzLnRvb2xiYXJPcGVuKSB7XG4gICAgICBjb25zdCBiYWxsb29uID0gdGhpcy5lZGl0b3IuZWRpdG9ySW5zdGFuY2UucGx1Z2lucy5nZXQoJ0JhbGxvb25Ub29sYmFyJyk7XG4gICAgICBpZiAoc2hvdykge1xuICAgICAgICB0aGlzLnNob3dUb29sYmFyKGJhbGxvb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYmFsbG9vbi5oaWRlKCk7XG4gICAgICAgIHRoaXMudG9vbGJhck9wZW4gPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSB0b29sYmFyT3BlbjogYm9vbGVhbjtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuZWRpdG9yLnJlYWR5LnN1YnNjcmliZShlZGl0b3IgPT4ge1xuICAgICAgY29uc3QgYmFsbG9vbiA9IGVkaXRvci5wbHVnaW5zLmdldCgnQmFsbG9vblRvb2xiYXInKTtcbiAgICAgIGJhbGxvb24uc3RvcExpc3RlbmluZyhlZGl0b3IubW9kZWwuZG9jdW1lbnQuc2VsZWN0aW9uLCAnY2hhbmdlOnJhbmdlJyk7XG4gICAgICBiYWxsb29uLnN0b3BMaXN0ZW5pbmcoYmFsbG9vbiwgJ19zZWxlY3Rpb25DaGFuZ2VEZWJvdW5jZWQnKTtcbiAgICB9KTtcbiAgICB0aGlzLmVkaXRvci5mb2N1cy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMudG9vbGJhck9wZW4pIHtcbiAgICAgICAgY29uc3QgYmFsbG9vbiA9IHRoaXMuZWRpdG9yLmVkaXRvckluc3RhbmNlLnBsdWdpbnMuZ2V0KCdCYWxsb29uVG9vbGJhcicpO1xuICAgICAgICB0aGlzLnNob3dUb29sYmFyKGJhbGxvb24pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93VG9vbGJhcihiYWxsb29uKSB7XG4gICAgaWYgKCFiYWxsb29uLl9iYWxsb29uLmhhc1ZpZXcoYmFsbG9vbi50b29sYmFyVmlldykpIHtcbiAgICAgIGJhbGxvb24ubGlzdGVuVG8odGhpcy5lZGl0b3IuZWRpdG9ySW5zdGFuY2UudWksICd1cGRhdGUnLCAoKSA9PiB7XG4gICAgICAgIGJhbGxvb24uX2JhbGxvb24udXBkYXRlUG9zaXRpb24oYmFsbG9vbi5fZ2V0QmFsbG9vblBvc2l0aW9uRGF0YSgpKTtcbiAgICAgIH0pO1xuICAgICAgYmFsbG9vbi5fYmFsbG9vbi5hZGQoe1xuICAgICAgICB2aWV3OiBiYWxsb29uLnRvb2xiYXJWaWV3LFxuICAgICAgICBwb3NpdGlvbjogYmFsbG9vbi5fZ2V0QmFsbG9vblBvc2l0aW9uRGF0YSgpLFxuICAgICAgICBiYWxsb29uQ2xhc3NOYW1lOiAnY2stdG9vbGJhci1jb250YWluZXInXG4gICAgICB9KTtcbiAgICAgIHRoaXMudG9vbGJhck9wZW4gPSB0cnVlO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=