@instechnologies/ng-rooster
Version:
ng-rooster is wrapper to roosterjs, an open source library created by Microsoft: https://github.com/Microsoft/roosterjs.
870 lines • 73.5 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, ViewChild, Input, Output, EventEmitter, forwardRef } from '@angular/core';
import { EditorDirective } from '../../directives/editor.directive';
import * as RoosterJs from 'roosterjs';
import { Subject, Observable, combineLatest } from 'rxjs';
import { filter, map, pairwise } from 'rxjs/operators';
import { FormatStateObservable } from '../../plugins/format-state.observable.plugin';
import { isNull } from '../../tools/is-null';
import { NG_VALUE_ACCESSOR } from '@angular/forms';
export class RoosterEditorComponent {
constructor() {
this.onChange = (/**
* @return {?}
*/
() => { });
this.onTouched = (/**
* @return {?}
*/
() => { });
this.editor$ = new Subject();
this.formatStatePlugin$ = new FormatStateObservable();
this.aligment$ = new Subject();
this.backgroundColor$ = new Subject();
this.backgroundColorChange = new EventEmitter();
this.direction$ = new Subject();
this.fontName$ = new Subject();
this.fontNameChange = new EventEmitter();
this.fontSize$ = new Subject();
this.fontSizeChange = new EventEmitter();
this.indentation$ = new Subject();
this.textColor$ = new Subject();
this.textColorChange = new EventEmitter();
this.toggleBlockQuote$$ = new Subject();
this.isBlockQuoteChange = new EventEmitter();
this.toggleBold$$ = new Subject();
this.isBoldChange = new EventEmitter();
this.toggleBullet$$ = new Subject();
this.isBulletChange = new EventEmitter();
this.toggleCodeBlock$$ = new Subject();
this.toggleHeader$$ = new Subject();
this.headerLevelChange = new EventEmitter();
this.toggleItalic$$ = new Subject();
this.isItalicChange = new EventEmitter();
this.toggleNumbering$$ = new Subject();
this.isNumberingChange = new EventEmitter();
this.toggleStrikethrough$$ = new Subject();
this.isStrikeThroughChange = new EventEmitter();
this.toggleSubscript$$ = new Subject();
this.isSubscriptChange = new EventEmitter();
this.toggleSuperscript$$ = new Subject();
this.isSuperscriptChange = new EventEmitter();
this.toggleUnderline$$ = new Subject();
this.isUnderlineChange = new EventEmitter();
combineLatest(this.aligment$, this.editor$).pipe(filter((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => !isNull(editor) && !isNull(value)))).subscribe((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => {
RoosterJs.setAlignment(editor, value);
}));
combineLatest(this.backgroundColor$, this.editor$).pipe(filter((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => !isNull(editor) && !isNull(value)))).subscribe((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => {
RoosterJs.setBackgroundColor(editor, value);
}));
combineLatest(this.direction$, this.editor$).pipe(filter((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => !isNull(editor) && !isNull(value)))).subscribe((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => {
RoosterJs.setDirection(editor, value);
}));
combineLatest(this.fontName$, this.editor$).pipe(filter((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => !isNull(editor) && !isNull(value)))).subscribe((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => {
RoosterJs.setFontName(editor, value);
}));
combineLatest(this.fontSize$, this.editor$).pipe(filter((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => !isNull(editor) && !isNull(value)))).subscribe((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => {
RoosterJs.setFontSize(editor, value);
}));
combineLatest(this.indentation$, this.editor$).pipe(filter((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => !isNull(editor) && !isNull(value)))).subscribe((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => {
RoosterJs.setIndentation(editor, value);
}));
combineLatest(this.textColor$, this.editor$).pipe(filter((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => !isNull(editor) && !isNull(value)))).subscribe((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => {
RoosterJs.setTextColor(editor, value);
}));
/** @type {?} */
let toggleBlockQuoteSubscription = null;
combineLatest(this.toggleBlockQuote$$, this.editor$).pipe(filter((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => !isNull(editor) && !isNull(value)))).subscribe((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => {
if (toggleBlockQuoteSubscription)
toggleBlockQuoteSubscription.unsubscribe();
toggleBlockQuoteSubscription = value.subscribe((/**
* @param {?} val
* @return {?}
*/
(val) => {
RoosterJs.toggleBlockQuote(editor, val);
}));
}));
/** @type {?} */
let toggleBoldSubscription = null;
combineLatest(this.toggleBold$$, this.editor$).pipe(filter((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => !isNull(editor) && !isNull(value)))).subscribe((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => {
if (toggleBoldSubscription)
toggleBoldSubscription.unsubscribe();
toggleBoldSubscription = value.subscribe((/**
* @param {?} val
* @return {?}
*/
(val) => {
RoosterJs.toggleBold(editor);
}));
}));
/** @type {?} */
let toggleBulletSubscription = null;
combineLatest(this.toggleBullet$$, this.editor$).pipe(filter((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => !isNull(editor) && !isNull(value)))).subscribe((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => {
if (toggleBulletSubscription)
toggleBulletSubscription.unsubscribe();
toggleBulletSubscription = value.subscribe((/**
* @param {?} val
* @return {?}
*/
(val) => {
RoosterJs.toggleBullet(editor);
}));
}));
/** @type {?} */
let toggleCodeBlockSubscription = null;
combineLatest(this.toggleCodeBlock$$, this.editor$).pipe(filter((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => !isNull(editor) && !isNull(value)))).subscribe((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => {
if (toggleCodeBlockSubscription)
toggleCodeBlockSubscription.unsubscribe();
toggleCodeBlockSubscription = value.subscribe((/**
* @param {?} val
* @return {?}
*/
(val) => {
RoosterJs.toggleCodeBlock(editor, val);
}));
}));
/** @type {?} */
let toggleHeaderSubscription = null;
combineLatest(this.toggleHeader$$, this.editor$).pipe(filter((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => !isNull(editor) && !isNull(value)))).subscribe((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => {
if (toggleHeaderSubscription)
toggleHeaderSubscription.unsubscribe();
toggleHeaderSubscription = value.subscribe((/**
* @param {?} val
* @return {?}
*/
(val) => {
RoosterJs.toggleHeader(editor, val);
}));
}));
/** @type {?} */
let toggleItalicSubscription = null;
combineLatest(this.toggleItalic$$, this.editor$).pipe(filter((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => !isNull(editor) && !isNull(value)))).subscribe((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => {
if (toggleItalicSubscription)
toggleItalicSubscription.unsubscribe();
toggleItalicSubscription = value.subscribe((/**
* @param {?} val
* @return {?}
*/
(val) => {
RoosterJs.toggleItalic(editor);
}));
}));
/** @type {?} */
let toggleNumberingSubscription = null;
combineLatest(this.toggleNumbering$$, this.editor$).pipe(filter((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => !isNull(editor) && !isNull(value)))).subscribe((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => {
if (toggleNumberingSubscription)
toggleNumberingSubscription.unsubscribe();
toggleNumberingSubscription = value.subscribe((/**
* @param {?} val
* @return {?}
*/
(val) => {
RoosterJs.toggleNumbering(editor);
}));
}));
/** @type {?} */
let toggleStrikethroughSubscription = null;
combineLatest(this.toggleStrikethrough$$, this.editor$).pipe(filter((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => !isNull(editor) && !isNull(value)))).subscribe((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => {
if (toggleStrikethroughSubscription)
toggleStrikethroughSubscription.unsubscribe();
toggleStrikethroughSubscription = value.subscribe((/**
* @param {?} val
* @return {?}
*/
(val) => {
RoosterJs.toggleStrikethrough(editor);
}));
}));
/** @type {?} */
let toggleSubscriptSubscription = null;
combineLatest(this.toggleSubscript$$, this.editor$).pipe(filter((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => !isNull(editor) && !isNull(value)))).subscribe((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => {
if (toggleSubscriptSubscription)
toggleSubscriptSubscription.unsubscribe();
toggleSubscriptSubscription = value.subscribe((/**
* @param {?} val
* @return {?}
*/
(val) => {
RoosterJs.toggleSubscript(editor);
}));
}));
/** @type {?} */
let toggleSuperscriptSubscription = null;
combineLatest(this.toggleSuperscript$$, this.editor$).pipe(filter((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => !isNull(editor) && !isNull(value)))).subscribe((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => {
if (toggleSuperscriptSubscription)
toggleSuperscriptSubscription.unsubscribe();
toggleSuperscriptSubscription = value.subscribe((/**
* @param {?} val
* @return {?}
*/
(val) => {
RoosterJs.toggleSuperscript(editor);
}));
}));
/** @type {?} */
let toggleUnderlineSubscription = null;
combineLatest(this.toggleUnderline$$, this.editor$).pipe(filter((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => !isNull(editor) && !isNull(value)))).subscribe((/**
* @param {?} __0
* @return {?}
*/
([value, editor]) => {
if (toggleUnderlineSubscription)
toggleUnderlineSubscription.unsubscribe();
toggleUnderlineSubscription = value.subscribe((/**
* @param {?} val
* @return {?}
*/
(val) => {
RoosterJs.toggleUnderline(editor);
}));
}));
}
/**
* @param {?} v
* @return {?}
*/
set aligment(v) { this.aligment$.next(v); }
/**
* @param {?} v
* @return {?}
*/
set backgroundColor(v) { this.backgroundColor$.next(v); }
/**
* @param {?} v
* @return {?}
*/
set direction(v) { this.direction$.next(v); }
/**
* @param {?} v
* @return {?}
*/
set fontName(v) { this.fontName$.next(v); }
/**
* @param {?} v
* @return {?}
*/
set fontSize(v) { this.fontSize$.next(v); }
/**
* @param {?} v
* @return {?}
*/
set indentation(v) { this.indentation$.next(v); }
/**
* @param {?} v
* @return {?}
*/
set textColor(v) { this.textColor$.next(v); }
/**
* @param {?} v
* @return {?}
*/
set toggleBlockQuote$(v) { this.toggleBlockQuote$$.next(v); }
/**
* @param {?} v
* @return {?}
*/
set toggleBold$(v) { this.toggleBold$$.next(v); }
/**
* @param {?} v
* @return {?}
*/
set toggleBullet$(v) { this.toggleBullet$$.next(v); }
/**
* @param {?} v
* @return {?}
*/
set toggleCodeBlock$(v) { this.toggleCodeBlock$$.next(v); }
/**
* @param {?} v
* @return {?}
*/
set toggleHeader$(v) { this.toggleHeader$$.next(v); }
/**
* @param {?} v
* @return {?}
*/
set toggleItalic$(v) { this.toggleItalic$$.next(v); }
/**
* @param {?} v
* @return {?}
*/
set toggleNumbering$(v) { this.toggleNumbering$$.next(v); }
/**
* @param {?} v
* @return {?}
*/
set toggleStrikethrough$(v) { this.toggleStrikethrough$$.next(v); }
/**
* @param {?} v
* @return {?}
*/
set toggleSubscript$(v) { this.toggleSubscript$$.next(v); }
/**
* @param {?} v
* @return {?}
*/
set toggleSuperscript$(v) { this.toggleSuperscript$$.next(v); }
/**
* @param {?} v
* @return {?}
*/
set toggleUnderline$(v) { this.toggleUnderline$$.next(v); }
/**
* @return {?}
*/
ngOnInit() {
this.formatStatePlugin$.getContentObservable().subscribe((/**
* @param {?} v
* @return {?}
*/
v => this.onChange(v)));
/** @type {?} */
let formatStateChange$ = this.formatStatePlugin$.pipe(pairwise(), map((/**
* @param {?} __0
* @return {?}
*/
([previous, current]) => {
/** @type {?} */
let result = {};
console.log(current);
/** @type {?} */
let keys = Object.keys(current);
for (let i = 0; i < keys.length; i++) {
/** @type {?} */
let key = keys[i];
/** @type {?} */
let previousValue = previous[key];
/** @type {?} */
let currentValue = current[key];
if (currentValue !== previousValue)
result[key] = currentValue;
}
return result;
})));
formatStateChange$.pipe(map((/**
* @param {?} s
* @return {?}
*/
s => s.fontName)), filter((/**
* @param {?} v
* @return {?}
*/
v => !isNull(v)))).subscribe((/**
* @param {?} v
* @return {?}
*/
v => this.fontNameChange.emit(v)));
formatStateChange$.pipe(map((/**
* @param {?} s
* @return {?}
*/
s => s.fontSize)), filter((/**
* @param {?} v
* @return {?}
*/
v => !isNull(v)))).subscribe((/**
* @param {?} v
* @return {?}
*/
v => this.fontSizeChange.emit(v)));
formatStateChange$.pipe(map((/**
* @param {?} s
* @return {?}
*/
s => s.isBold)), filter((/**
* @param {?} v
* @return {?}
*/
v => !isNull(v)))).subscribe((/**
* @param {?} v
* @return {?}
*/
v => this.isBoldChange.emit(v)));
formatStateChange$.pipe(map((/**
* @param {?} s
* @return {?}
*/
s => s.isItalic)), filter((/**
* @param {?} v
* @return {?}
*/
v => !isNull(v)))).subscribe((/**
* @param {?} v
* @return {?}
*/
v => this.isItalicChange.emit(v)));
formatStateChange$.pipe(map((/**
* @param {?} s
* @return {?}
*/
s => s.isUnderline)), filter((/**
* @param {?} v
* @return {?}
*/
v => !isNull(v)))).subscribe((/**
* @param {?} v
* @return {?}
*/
v => this.isUnderlineChange.emit(v)));
formatStateChange$.pipe(map((/**
* @param {?} s
* @return {?}
*/
s => s.backgroundColor)), filter((/**
* @param {?} v
* @return {?}
*/
v => !isNull(v)))).subscribe((/**
* @param {?} v
* @return {?}
*/
v => this.backgroundColorChange.emit(v)));
formatStateChange$.pipe(map((/**
* @param {?} s
* @return {?}
*/
s => s.textColor)), filter((/**
* @param {?} v
* @return {?}
*/
v => !isNull(v)))).subscribe((/**
* @param {?} v
* @return {?}
*/
v => this.textColorChange.emit(v)));
;
formatStateChange$.pipe(map((/**
* @param {?} s
* @return {?}
*/
s => s.isBullet)), filter((/**
* @param {?} v
* @return {?}
*/
v => !isNull(v)))).subscribe((/**
* @param {?} v
* @return {?}
*/
v => this.isBulletChange.emit(v)));
formatStateChange$.pipe(map((/**
* @param {?} s
* @return {?}
*/
s => s.isNumbering)), filter((/**
* @param {?} v
* @return {?}
*/
v => !isNull(v)))).subscribe((/**
* @param {?} v
* @return {?}
*/
v => this.isNumberingChange.emit(v)));
formatStateChange$.pipe(map((/**
* @param {?} s
* @return {?}
*/
s => s.isStrikeThrough)), filter((/**
* @param {?} v
* @return {?}
*/
v => !isNull(v)))).subscribe((/**
* @param {?} v
* @return {?}
*/
v => this.isStrikeThroughChange.emit(v)));
formatStateChange$.pipe(map((/**
* @param {?} s
* @return {?}
*/
s => s.isBlockQuote)), filter((/**
* @param {?} v
* @return {?}
*/
v => !isNull(v)))).subscribe((/**
* @param {?} v
* @return {?}
*/
v => this.isBlockQuoteChange.emit(v)));
formatStateChange$.pipe(map((/**
* @param {?} s
* @return {?}
*/
s => s.isSubscript)), filter((/**
* @param {?} v
* @return {?}
*/
v => !isNull(v)))).subscribe((/**
* @param {?} v
* @return {?}
*/
v => this.isSubscriptChange.emit(v)));
formatStateChange$.pipe(map((/**
* @param {?} s
* @return {?}
*/
s => s.isSuperscript)), filter((/**
* @param {?} v
* @return {?}
*/
v => !isNull(v)))).subscribe((/**
* @param {?} v
* @return {?}
*/
v => this.isSuperscriptChange.emit(v)));
// formatStateChange$.pipe( map(s=>s.canUnlink), filter(v=>!isNull(v)) ).subscribe(v=>this.u.emit(v));
// formatStateChange$.pipe( map(s=>s.canAddImageAltText), filter(v=>!isNull(v)) );
// formatStateChange$.pipe( map(s=>s.canUndo), filter(v=>!isNull(v)) );
// formatStateChange$.pipe( map(s=>s.canRedo), filter(v=>!isNull(v)) );
// formatStateChange$.pipe( map(s=>s.headerLevel), filter(v=>!isNull(v)) );
}
/**
* @return {?}
*/
ngAfterViewInit() {
this.editor = this.editorDirective.editor;
this.editor$.next(this.editor);
this.editor$.complete();
}
/**
* @return {?}
*/
ngOnDestroy() {
this.aligment$.complete();
this.backgroundColor$.complete();
this.direction$.complete();
this.fontName$.complete();
this.fontSize$.complete();
this.indentation$.complete();
this.textColor$.complete();
this.toggleBlockQuote$$.complete();
this.toggleBold$$.complete();
this.toggleBullet$$.complete();
this.toggleCodeBlock$$.complete();
this.toggleHeader$$.complete();
this.toggleItalic$$.complete();
this.toggleNumbering$$.complete();
this.toggleStrikethrough$$.complete();
this.toggleSubscript$$.complete();
this.toggleSuperscript$$.complete();
this.toggleUnderline$$.complete();
this.editor.dispose();
}
/**
* @param {?} obj
* @return {?}
*/
writeValue(obj) {
if (obj)
this.editor.setContent(obj);
}
/**
* @param {?} fn
* @return {?}
*/
registerOnChange(fn) {
this.onChange = fn;
}
/**
* @param {?} fn
* @return {?}
*/
registerOnTouched(fn) {
this.onTouched = fn;
}
/**
* @param {?} isDisabled
* @return {?}
*/
setDisabledState(isDisabled) {
console.log(isDisabled);
}
}
RoosterEditorComponent.decorators = [
{ type: Component, args: [{
selector: 'rooster-editor-box',
template: "\r\n<div class=\"editor\" rooster-editor [plugins]=\"[formatStatePlugin$]\" ><ng-content></ng-content></div>\r\n",
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef((/**
* @return {?}
*/
() => RoosterEditorComponent)),
multi: true
}
],
styles: [".editor{width:100%;height:100%}:host{display:block}"]
}] }
];
/** @nocollapse */
RoosterEditorComponent.ctorParameters = () => [];
RoosterEditorComponent.propDecorators = {
editorDirective: [{ type: ViewChild, args: [EditorDirective,] }],
aligment: [{ type: Input }],
backgroundColor: [{ type: Input }],
backgroundColorChange: [{ type: Output }],
direction: [{ type: Input }],
fontName: [{ type: Input }],
fontNameChange: [{ type: Output }],
fontSize: [{ type: Input }],
fontSizeChange: [{ type: Output }],
indentation: [{ type: Input }],
textColor: [{ type: Input }],
textColorChange: [{ type: Output }],
toggleBlockQuote$: [{ type: Input }],
isBlockQuoteChange: [{ type: Output }],
toggleBold$: [{ type: Input }],
isBoldChange: [{ type: Output }],
toggleBullet$: [{ type: Input }],
isBulletChange: [{ type: Output }],
toggleCodeBlock$: [{ type: Input }],
toggleHeader$: [{ type: Input }],
headerLevelChange: [{ type: Output }],
toggleItalic$: [{ type: Input }],
isItalicChange: [{ type: Output }],
toggleNumbering$: [{ type: Input }],
isNumberingChange: [{ type: Output }],
toggleStrikethrough$: [{ type: Input }],
isStrikeThroughChange: [{ type: Output }],
toggleSubscript$: [{ type: Input }],
isSubscriptChange: [{ type: Output }],
toggleSuperscript$: [{ type: Input }],
isSuperscriptChange: [{ type: Output }],
toggleUnderline$: [{ type: Input }],
isUnderlineChange: [{ type: Output }]
};
if (false) {
/** @type {?} */
RoosterEditorComponent.prototype.editorDirective;
/**
* @type {?}
* @private
*/
RoosterEditorComponent.prototype.editor;
/**
* @type {?}
* @private
*/
RoosterEditorComponent.prototype.onChange;
/**
* @type {?}
* @private
*/
RoosterEditorComponent.prototype.onTouched;
/**
* @type {?}
* @private
*/
RoosterEditorComponent.prototype.editor$;
/** @type {?} */
RoosterEditorComponent.prototype.formatStatePlugin$;
/** @type {?} */
RoosterEditorComponent.prototype.aligment$;
/** @type {?} */
RoosterEditorComponent.prototype.backgroundColor$;
/** @type {?} */
RoosterEditorComponent.prototype.backgroundColorChange;
/** @type {?} */
RoosterEditorComponent.prototype.direction$;
/** @type {?} */
RoosterEditorComponent.prototype.fontName$;
/** @type {?} */
RoosterEditorComponent.prototype.fontNameChange;
/** @type {?} */
RoosterEditorComponent.prototype.fontSize$;
/** @type {?} */
RoosterEditorComponent.prototype.fontSizeChange;
/** @type {?} */
RoosterEditorComponent.prototype.indentation$;
/** @type {?} */
RoosterEditorComponent.prototype.textColor$;
/** @type {?} */
RoosterEditorComponent.prototype.textColorChange;
/** @type {?} */
RoosterEditorComponent.prototype.toggleBlockQuote$$;
/** @type {?} */
RoosterEditorComponent.prototype.isBlockQuoteChange;
/** @type {?} */
RoosterEditorComponent.prototype.toggleBold$$;
/** @type {?} */
RoosterEditorComponent.prototype.isBoldChange;
/** @type {?} */
RoosterEditorComponent.prototype.toggleBullet$$;
/** @type {?} */
RoosterEditorComponent.prototype.isBulletChange;
/** @type {?} */
RoosterEditorComponent.prototype.toggleCodeBlock$$;
/** @type {?} */
RoosterEditorComponent.prototype.toggleHeader$$;
/** @type {?} */
RoosterEditorComponent.prototype.headerLevelChange;
/** @type {?} */
RoosterEditorComponent.prototype.toggleItalic$$;
/** @type {?} */
RoosterEditorComponent.prototype.isItalicChange;
/** @type {?} */
RoosterEditorComponent.prototype.toggleNumbering$$;
/** @type {?} */
RoosterEditorComponent.prototype.isNumberingChange;
/** @type {?} */
RoosterEditorComponent.prototype.toggleStrikethrough$$;
/** @type {?} */
RoosterEditorComponent.prototype.isStrikeThroughChange;
/** @type {?} */
RoosterEditorComponent.prototype.toggleSubscript$$;
/** @type {?} */
RoosterEditorComponent.prototype.isSubscriptChange;
/** @type {?} */
RoosterEditorComponent.prototype.toggleSuperscript$$;
/** @type {?} */
RoosterEditorComponent.prototype.isSuperscriptChange;
/** @type {?} */
RoosterEditorComponent.prototype.toggleUnderline$$;
/** @type {?} */
RoosterEditorComponent.prototype.isUnderlineChange;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vc3Rlci1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGluc3RlY2hub2xvZ2llcy9uZy1yb29zdGVyLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcm9vc3Rlci1lZGl0b3Ivcm9vc3Rlci1lZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxLQUFLLEVBQTRCLE1BQU0sRUFBRSxZQUFZLEVBQXVELFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyTCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxLQUFLLFNBQVMsTUFBTSxXQUFXLENBQUM7QUFDdkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUE4QixNQUFNLE1BQU0sQ0FBQztBQUV0RixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0MsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBY3pFLE1BQU0sT0FBTyxzQkFBc0I7SUFpRmpDO1FBM0VRLGFBQVE7OztRQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFBQztRQUN6QixjQUFTOzs7UUFBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLEVBQUM7UUFFMUIsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDeEMsdUJBQWtCLEdBQUcsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBRWpELGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBYSxDQUFDO1FBR3JDLHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFFL0Is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