ckbutton.directive.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import * as tslib_1 from "tslib";
  2. import { Directive, EventEmitter, Output, Input } from '@angular/core';
  3. /**
  4. * CKGroup component
  5. * Usage :
  6. * <ckeditor [(ngModel)]="data" [config]="{...}" debounce="500">
  7. * <ckbutton [name]="'SaveButton'" [command]="'saveCommand'" (click)="save($event)"
  8. * [icon]="'/save.png'" [toolbar]="'customGroup,1'" [label]="'Save'">
  9. * </ckbutton>
  10. * </ckeditor>
  11. */
  12. let CKButtonDirective = class CKButtonDirective {
  13. /**
  14. * CKGroup component
  15. * Usage :
  16. * <ckeditor [(ngModel)]="data" [config]="{...}" debounce="500">
  17. * <ckbutton [name]="'SaveButton'" [command]="'saveCommand'" (click)="save($event)"
  18. * [icon]="'/save.png'" [toolbar]="'customGroup,1'" [label]="'Save'">
  19. * </ckbutton>
  20. * </ckeditor>
  21. */
  22. constructor() {
  23. this.click = new EventEmitter();
  24. }
  25. initialize(editor) {
  26. editor.instance.addCommand(this.command, {
  27. exec: (evt) => {
  28. this.click.emit(evt);
  29. },
  30. });
  31. editor.instance.ui.addButton(this.name, {
  32. label: this.label,
  33. command: this.command,
  34. toolbar: this.toolbar,
  35. icon: this.icon,
  36. });
  37. }
  38. ngOnInit() {
  39. if (!this.name)
  40. throw new Error('Attribute "name" is required on <ckbutton>');
  41. if (!this.command)
  42. throw new Error('Attribute "command" is required on <ckbutton>');
  43. }
  44. };
  45. tslib_1.__decorate([
  46. Output(),
  47. tslib_1.__metadata("design:type", Object)
  48. ], CKButtonDirective.prototype, "click", void 0);
  49. tslib_1.__decorate([
  50. Input(),
  51. tslib_1.__metadata("design:type", String)
  52. ], CKButtonDirective.prototype, "label", void 0);
  53. tslib_1.__decorate([
  54. Input(),
  55. tslib_1.__metadata("design:type", String)
  56. ], CKButtonDirective.prototype, "command", void 0);
  57. tslib_1.__decorate([
  58. Input(),
  59. tslib_1.__metadata("design:type", String)
  60. ], CKButtonDirective.prototype, "toolbar", void 0);
  61. tslib_1.__decorate([
  62. Input(),
  63. tslib_1.__metadata("design:type", String)
  64. ], CKButtonDirective.prototype, "name", void 0);
  65. tslib_1.__decorate([
  66. Input(),
  67. tslib_1.__metadata("design:type", String)
  68. ], CKButtonDirective.prototype, "icon", void 0);
  69. CKButtonDirective = tslib_1.__decorate([
  70. Directive({
  71. selector: 'ckbutton',
  72. })
  73. ], CKButtonDirective);
  74. export { CKButtonDirective };
  75. //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2tidXR0b24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmcyLWNrZWRpdG9yLyIsInNvdXJjZXMiOlsiY2tidXR0b24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9FOzs7Ozs7OztHQVFHO0FBSUgsSUFBYSxpQkFBaUIsR0FBOUIsTUFBYSxpQkFBaUI7SUFaOUI7Ozs7Ozs7O09BUUc7SUFDSDtRQUlZLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBMEJ2QyxDQUFDO0lBbkJDLFVBQVUsQ0FBQyxNQUF5QjtRQUNsQyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3ZDLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDdEMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztJQUN0RixDQUFDO0NBQ0YsQ0FBQTtBQTFCVztJQUFULE1BQU0sRUFBRTs7Z0RBQTRCO0FBQzVCO0lBQVIsS0FBSyxFQUFFOztnREFBZTtBQUNkO0lBQVIsS0FBSyxFQUFFOztrREFBaUI7QUFDaEI7SUFBUixLQUFLLEVBQUU7O2tEQUFpQjtBQUNoQjtJQUFSLEtBQUssRUFBRTs7K0NBQWM7QUFDYjtJQUFSLEtBQUssRUFBRTs7K0NBQWM7QUFOWCxpQkFBaUI7SUFIN0IsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLFVBQVU7S0FDckIsQ0FBQztHQUNXLGlCQUFpQixDQTJCN0I7U0EzQlksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkluaXQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ0tFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2NrZWRpdG9yLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQ0tHcm91cCBjb21wb25lbnRcbiAqIFVzYWdlIDpcbiAqICA8Y2tlZGl0b3IgWyhuZ01vZGVsKV09XCJkYXRhXCIgW2NvbmZpZ109XCJ7Li4ufVwiIGRlYm91bmNlPVwiNTAwXCI+XG4gKiAgICAgIDxja2J1dHRvbiBbbmFtZV09XCInU2F2ZUJ1dHRvbidcIiBbY29tbWFuZF09XCInc2F2ZUNvbW1hbmQnXCIgKGNsaWNrKT1cInNhdmUoJGV2ZW50KVwiXG4gKiAgICAgICAgICAgICAgICBbaWNvbl09XCInL3NhdmUucG5nJ1wiIFt0b29sYmFyXT1cIidjdXN0b21Hcm91cCwxJ1wiIFtsYWJlbF09XCInU2F2ZSdcIj5cbiAqICAgICAgPC9ja2J1dHRvbj5cbiAqICAgPC9ja2VkaXRvcj5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnY2tidXR0b24nLFxufSlcbmV4cG9ydCBjbGFzcyBDS0J1dHRvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBPdXRwdXQoKSBjbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgY29tbWFuZDogc3RyaW5nO1xuICBASW5wdXQoKSB0b29sYmFyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xuXG4gIGluaXRpYWxpemUoZWRpdG9yOiBDS0VkaXRvckNvbXBvbmVudCkge1xuICAgIGVkaXRvci5pbnN0YW5jZS5hZGRDb21tYW5kKHRoaXMuY29tbWFuZCwge1xuICAgICAgZXhlYzogKGV2dDogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuY2xpY2suZW1pdChldnQpO1xuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGVkaXRvci5pbnN0YW5jZS51aS5hZGRCdXR0b24odGhpcy5uYW1lLCB7XG4gICAgICBsYWJlbDogdGhpcy5sYWJlbCxcbiAgICAgIGNvbW1hbmQ6IHRoaXMuY29tbWFuZCxcbiAgICAgIHRvb2xiYXI6IHRoaXMudG9vbGJhcixcbiAgICAgIGljb246IHRoaXMuaWNvbixcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5uYW1lKSB0aHJvdyBuZXcgRXJyb3IoJ0F0dHJpYnV0ZSBcIm5hbWVcIiBpcyByZXF1aXJlZCBvbiA8Y2tidXR0b24+Jyk7XG4gICAgaWYgKCF0aGlzLmNvbW1hbmQpIHRocm93IG5ldyBFcnJvcignQXR0cmlidXRlIFwiY29tbWFuZFwiIGlzIHJlcXVpcmVkIG9uIDxja2J1dHRvbj4nKTtcbiAgfVxufVxuIl19