devexpress-richedit
Version:
DevExpress Rich Text Editor is an advanced word-processing tool designed for working with rich text documents.
46 lines (45 loc) • 1.17 kB
JavaScript
import { Errors } from '@devexpress/utils/lib/errors';
export class HistoryItem {
canBeMerged() {
return false;
}
constructor(modelManipulator) {
this.uniqueId = -1;
this.modelManipulator = modelManipulator;
}
changeModified() {
return true;
}
}
export class CompositionHistoryItem extends HistoryItem {
canBeMerged() {
return true;
}
constructor() {
super(null);
this.historyItems = [];
}
changeModified() {
var item;
for (var i = 0; item = this.historyItems[i]; i++) {
if (item.changeModified())
return true;
}
return false;
}
redo() {
var item;
for (var i = 0; item = this.historyItems[i]; i++)
item.redo();
}
undo() {
var item;
for (var i = this.historyItems.length - 1; item = this.historyItems[i]; i--)
item.undo();
}
add(historyItem) {
if (historyItem == null)
throw new Error(Errors.ValueCannotBeNull);
this.historyItems.push(historyItem);
}
}