@zodiac-ui/editor
Version:
A rich text editor for Angular based on `@atlaskit/editor-core`.
46 lines • 5.75 kB
JavaScript
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from "@angular/core";
import { EditorToolbar } from "../interfaces";
export class EditorToolbarDropdownComponent {
constructor(toolbar, cdr) {
this.toolbar = toolbar;
this.cdr = cdr;
}
ngOnInit() {
this.menu = this.group;
this.toolbar.stateChange.subscribe(editor => {
this.menu = this.group.tools.find(tool => tool.select(editor.state)) || this.group;
this.cdr.markForCheck();
});
}
runTool(tool) {
this.toolbar.runTool(tool);
}
}
EditorToolbarDropdownComponent.decorators = [
{ type: Component, args: [{
selector: "z-editor-toolbar-dropdown",
template: `
<button mat-icon-button [matMenuTriggerFor]="dropdown" [matTooltip]="group.tooltip">
<span *ngIf="menu.label" [textContent]="menu.label"></span>
<mat-icon *ngIf="menu.icon" fontSet="fa" [fontIcon]="menu.icon"></mat-icon>
</button>
<mat-menu #dropdown>
<button mat-icon-button *ngFor="let tool of group.tools" (click)="runTool(tool)" [matTooltip]="tool.tooltip">
<span *ngIf="menu.label" [textContent]="menu.label"></span>
<mat-icon *ngIf="menu.icon" fontSet="fa" [fontIcon]="tool.icon"></mat-icon>
</button>
</mat-menu>
`,
changeDetection: ChangeDetectionStrategy.OnPush,
styles: [""]
}] }
];
/** @nocollapse */
EditorToolbarDropdownComponent.ctorParameters = () => [
{ type: EditorToolbar },
{ type: ChangeDetectorRef }
];
EditorToolbarDropdownComponent.propDecorators = {
group: [{ type: Input }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLXRvb2xiYXItZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHpvZGlhYy11aS9lZGl0b3IvIiwic291cmNlcyI6WyJsaWIvZWRpdG9yLXRvb2xiYXIvZWRpdG9yLXRvb2xiYXItZHJvcGRvd24vZWRpdG9yLXRvb2xiYXItZHJvcGRvd24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFBO0FBQ3BHLE9BQU8sRUFBYyxhQUFhLEVBQW1CLE1BQU0sZUFBZSxDQUFBO0FBbUIxRSxNQUFNLE9BQU8sOEJBQThCO0lBU3ZDLFlBQVksT0FBc0IsRUFBRSxHQUFzQjtRQUN0RCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtRQUN0QixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQTtJQUNsQixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDeEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUE7WUFDbEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUMzQixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBZ0I7UUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDOUIsQ0FBQzs7O1lBekNKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7O0tBV1Q7Z0JBRUQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2xEOzs7O1lBbEJvQixhQUFhO1lBREEsaUJBQWlCOzs7b0JBcUI5QyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiXHJcbmltcG9ydCB7IEVkaXRvclRvb2wsIEVkaXRvclRvb2xiYXIsIEVkaXRvclRvb2xHcm91cCB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCJcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiei1lZGl0b3ItdG9vbGJhci1kcm9wZG93blwiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiZHJvcGRvd25cIiBbbWF0VG9vbHRpcF09XCJncm91cC50b29sdGlwXCI+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibWVudS5sYWJlbFwiIFt0ZXh0Q29udGVudF09XCJtZW51LmxhYmVsXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJtZW51Lmljb25cIiBmb250U2V0PVwiZmFcIiBbZm9udEljb25dPVwibWVudS5pY29uXCI+PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8bWF0LW1lbnUgI2Ryb3Bkb3duPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAqbmdGb3I9XCJsZXQgdG9vbCBvZiBncm91cC50b29sc1wiIChjbGljayk9XCJydW5Ub29sKHRvb2wpXCIgW21hdFRvb2x0aXBdPVwidG9vbC50b29sdGlwXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm1lbnUubGFiZWxcIiBbdGV4dENvbnRlbnRdPVwibWVudS5sYWJlbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cIm1lbnUuaWNvblwiIGZvbnRTZXQ9XCJmYVwiIFtmb250SWNvbl09XCJ0b29sLmljb25cIj48L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgYCxcclxuICAgIHN0eWxlVXJsczogW1wiLi9lZGl0b3ItdG9vbGJhci1kcm9wZG93bi5jb21wb25lbnQuc2Nzc1wiXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWRpdG9yVG9vbGJhckRyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZ3JvdXA6IEVkaXRvclRvb2xHcm91cFxyXG5cclxuICAgIHB1YmxpYyBtZW51OiBFZGl0b3JUb29sIHwgRWRpdG9yVG9vbEdyb3VwXHJcblxyXG4gICAgcHJpdmF0ZSB0b29sYmFyOiBFZGl0b3JUb29sYmFyXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcih0b29sYmFyOiBFZGl0b3JUb29sYmFyLCBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICAgICAgdGhpcy50b29sYmFyID0gdG9vbGJhclxyXG4gICAgICAgIHRoaXMuY2RyID0gY2RyXHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5tZW51ID0gdGhpcy5ncm91cFxyXG4gICAgICAgIHRoaXMudG9vbGJhci5zdGF0ZUNoYW5nZS5zdWJzY3JpYmUoZWRpdG9yID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tZW51ID0gdGhpcy5ncm91cC50b29scy5maW5kKHRvb2wgPT4gdG9vbC5zZWxlY3QoZWRpdG9yLnN0YXRlKSkgfHwgdGhpcy5ncm91cFxyXG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgcnVuVG9vbCh0b29sOiBFZGl0b3JUb29sKSB7XHJcbiAgICAgICAgdGhpcy50b29sYmFyLnJ1blRvb2wodG9vbClcclxuICAgIH1cclxufVxyXG4iXX0=