UNPKG

ngx-editor

Version:

Rich Text Editor for angular using ProseMirror

53 lines 7.91 kB
import { Component, Input } from '@angular/core'; import Icon from '../../../icons'; import { InsertCommands } from '../MenuCommands'; import * as i0 from "@angular/core"; import * as i1 from "../../../editor.service"; import * as i2 from "../menu.service"; import * as i3 from "../../../pipes/sanitize/sanitize-html.pipe"; export class InsertCommandComponent { constructor(ngxeService, menuService) { this.ngxeService = ngxeService; this.menuService = menuService; this.disabled = false; this.update = (view) => { const { state } = view; const command = InsertCommands[this.name]; this.disabled = !command.canExecute(state); }; } get name() { return this.toolbarItem; } insert(e) { e.preventDefault(); if (e.button !== 0) { return; } const { state, dispatch } = this.editorView; const command = InsertCommands[this.name]; command.insert()(state, dispatch); } getTitle(name) { return this.ngxeService.locals.get(name); } ngOnInit() { this.html = Icon.get(this.name); this.editorView = this.menuService.editor.view; this.updateSubscription = this.menuService.editor.update.subscribe((view) => { this.update(view); }); } ngOnDestroy() { this.updateSubscription.unsubscribe(); } } InsertCommandComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: InsertCommandComponent, deps: [{ token: i1.NgxEditorService }, { token: i2.MenuService }], target: i0.ɵɵFactoryTarget.Component }); InsertCommandComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: InsertCommandComponent, selector: "ngx-insert-command", inputs: { toolbarItem: "toolbarItem" }, ngImport: i0, template: "<div class=\"NgxEditor__MenuItem--IconContainer\" [class.NgxEditor--Disabled]=\"disabled\" [innerHTML]=\"html | sanitizeHtml\"\n (mousedown)=\"insert($event)\" [title]=\"getTitle(name)\">\n</div>\n", styles: [""], pipes: { "sanitizeHtml": i3.SanitizeHtmlPipe } }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: InsertCommandComponent, decorators: [{ type: Component, args: [{ selector: 'ngx-insert-command', template: "<div class=\"NgxEditor__MenuItem--IconContainer\" [class.NgxEditor--Disabled]=\"disabled\" [innerHTML]=\"html | sanitizeHtml\"\n (mousedown)=\"insert($event)\" [title]=\"getTitle(name)\">\n</div>\n", styles: [""] }] }], ctorParameters: function () { return [{ type: i1.NgxEditorService }, { type: i2.MenuService }]; }, propDecorators: { toolbarItem: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LWNvbW1hbmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWVkaXRvci9zcmMvbGliL21vZHVsZXMvbWVudS9pbnNlcnQtY29tbWFuZC9pbnNlcnQtY29tbWFuZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZWRpdG9yL3NyYy9saWIvbW9kdWxlcy9tZW51L2luc2VydC1jb21tYW5kL2luc2VydC1jb21tYW5kLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUlwRSxPQUFPLElBQUksTUFBTSxnQkFBZ0IsQ0FBQztBQUNsQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBV2pELE1BQU0sT0FBTyxzQkFBc0I7SUFZakMsWUFDVSxXQUE2QixFQUM3QixXQUF3QjtRQUR4QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0IsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFMbEMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQW9CakIsV0FBTSxHQUFHLENBQUMsSUFBZ0IsRUFBUSxFQUFFO1lBQ2xDLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDdkIsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUM7SUFsQkUsQ0FBQztJQVpMLElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLFdBQXNCLENBQUM7SUFDckMsQ0FBQztJQVlELE1BQU0sQ0FBQyxDQUFhO1FBQ2xCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUVuQixJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2xCLE9BQU87U0FDUjtRQUVELE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUM1QyxNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQVFELFFBQVEsQ0FBQyxJQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUUvQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQWdCLEVBQUUsRUFBRTtZQUN0RixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDeEMsQ0FBQzs7bUhBbkRVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLGtHQ2hCbkMsd01BR0E7MkZEYWEsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLG9CQUFvQjtpSUFNckIsV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFZGl0b3JWaWV3IH0gZnJvbSAncHJvc2VtaXJyb3Itdmlldyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IEljb24gZnJvbSAnLi4vLi4vLi4vaWNvbnMnO1xuaW1wb3J0IHsgSW5zZXJ0Q29tbWFuZHMgfSBmcm9tICcuLi9NZW51Q29tbWFuZHMnO1xuaW1wb3J0IHsgTmd4RWRpdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2VkaXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IE1lbnVTZXJ2aWNlIH0gZnJvbSAnLi4vbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7IFRCSXRlbXMsIFRvb2xiYXJJdGVtIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtaW5zZXJ0LWNvbW1hbmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5zZXJ0LWNvbW1hbmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbnNlcnQtY29tbWFuZC5jb21wb25lbnQuc2NzcyddLFxufSlcblxuZXhwb3J0IGNsYXNzIEluc2VydENvbW1hbmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHRvb2xiYXJJdGVtOiBUb29sYmFySXRlbTtcblxuICBnZXQgbmFtZSgpOiBUQkl0ZW1zIHtcbiAgICByZXR1cm4gdGhpcy50b29sYmFySXRlbSBhcyBUQkl0ZW1zO1xuICB9XG5cbiAgaHRtbDogc3RyaW5nO1xuICBlZGl0b3JWaWV3OiBFZGl0b3JWaWV3O1xuICBkaXNhYmxlZCA9IGZhbHNlO1xuICBwcml2YXRlIHVwZGF0ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmd4ZVNlcnZpY2U6IE5neEVkaXRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZW51U2VydmljZTogTWVudVNlcnZpY2UsXG4gICkgeyB9XG5cbiAgaW5zZXJ0KGU6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICBpZiAoZS5idXR0b24gIT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB7IHN0YXRlLCBkaXNwYXRjaCB9ID0gdGhpcy5lZGl0b3JWaWV3O1xuICAgIGNvbnN0IGNvbW1hbmQgPSBJbnNlcnRDb21tYW5kc1t0aGlzLm5hbWVdO1xuICAgIGNvbW1hbmQuaW5zZXJ0KCkoc3RhdGUsIGRpc3BhdGNoKTtcbiAgfVxuXG4gIHVwZGF0ZSA9ICh2aWV3OiBFZGl0b3JWaWV3KTogdm9pZCA9PiB7XG4gICAgY29uc3QgeyBzdGF0ZSB9ID0gdmlldztcbiAgICBjb25zdCBjb21tYW5kID0gSW5zZXJ0Q29tbWFuZHNbdGhpcy5uYW1lXTtcbiAgICB0aGlzLmRpc2FibGVkID0gIWNvbW1hbmQuY2FuRXhlY3V0ZShzdGF0ZSk7XG4gIH07XG5cbiAgZ2V0VGl0bGUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uZ3hlU2VydmljZS5sb2NhbHMuZ2V0KG5hbWUpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5odG1sID0gSWNvbi5nZXQodGhpcy5uYW1lKTtcblxuICAgIHRoaXMuZWRpdG9yVmlldyA9IHRoaXMubWVudVNlcnZpY2UuZWRpdG9yLnZpZXc7XG5cbiAgICB0aGlzLnVwZGF0ZVN1YnNjcmlwdGlvbiA9IHRoaXMubWVudVNlcnZpY2UuZWRpdG9yLnVwZGF0ZS5zdWJzY3JpYmUoKHZpZXc6IEVkaXRvclZpZXcpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlKHZpZXcpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIk5neEVkaXRvcl9fTWVudUl0ZW0tLUljb25Db250YWluZXJcIiBbY2xhc3MuTmd4RWRpdG9yLS1EaXNhYmxlZF09XCJkaXNhYmxlZFwiIFtpbm5lckhUTUxdPVwiaHRtbCB8IHNhbml0aXplSHRtbFwiXG4gIChtb3VzZWRvd24pPVwiaW5zZXJ0KCRldmVudClcIiBbdGl0bGVdPVwiZ2V0VGl0bGUobmFtZSlcIj5cbjwvZGl2PlxuIl19