(function(global){global.wrappers['/Users/lqez/Dev/summernote/src/js/base/editing/History.js']=[function(require,module,exports,__dirname,__filename){ "use strict";
exports.__esModule = true;
var range_1 = require("../core/range");
var History = /** @class */ (function () {
function History($editable) {
this.stack = [];
this.stackOffset = -1;
this.$editable = $editable;
this.editable = $editable[0];
}
History.prototype.makeSnapshot = function () {
var rng = range_1["default"].create(this.editable);
var emptyBookmark = { s: { path: [], offset: 0 }, e: { path: [], offset: 0 } };
return {
contents: this.$editable.html(),
bookmark: ((rng && rng.isOnEditable()) ? rng.bookmark(this.editable) : emptyBookmark)
};
};
History.prototype.applySnapshot = function (snapshot) {
Eif (snapshot.contents !== null) {
this.$editable.html(snapshot.contents);
}
Eif (snapshot.bookmark !== null) {
range_1["default"].createFromBookmark(this.editable, snapshot.bookmark).select();
}
};
/**
* @method rewind
* Rewinds the history stack back to the first snapshot taken.
* Leaves the stack intact, so that "Redo" can still be used.
*/
History.prototype.rewind = function () {
// Create snap shot if not yet recorded
if (this.$editable.html() !== this.stack[this.stackOffset].contents) {
this.recordUndo();
}
// Return to the first available snapshot.
this.stackOffset = 0;
// Apply that snapshot.
this.applySnapshot(this.stack[this.stackOffset]);
};
/**
* @method commit
* Resets history stack, but keeps current editor's content.
*/
History.prototype.commit = function () {
// Clear the stack.
this.stack = [];
// Restore stackOffset to its original value.
this.stackOffset = -1;
// Record our first snapshot (of nothing).
this.recordUndo();
};
/**
* @method reset
* Resets the history stack completely; reverting to an empty editor.
*/
History.prototype.reset = function () {
// Clear the stack.
this.stack = [];
// Restore stackOffset to its original value.
this.stackOffset = -1;
// Clear the editable area.
this.$editable.html('');
// Record our first snapshot (of nothing).
this.recordUndo();
};
/**
* undo
*/
History.prototype.undo = function () {
// Create snap shot if not yet recorded
Iif (this.$editable.html() !== this.stack[this.stackOffset].contents) {
this.recordUndo();
}
Eif (this.stackOffset > 0) {
this.stackOffset--;
this.applySnapshot(this.stack[this.stackOffset]);
}
};
/**
* redo
*/
History.prototype.redo = function () {
Eif (this.stack.length - 1 > this.stackOffset) {
this.stackOffset++;
this.applySnapshot(this.stack[this.stackOffset]);
}
};
/**
* recorded undo
*/
History.prototype.recordUndo = function () {
this.stackOffset++;
// Wash out stack after stackOffset
Iif (this.stack.length > this.stackOffset) {
this.stack = this.stack.slice(0, this.stackOffset);
}
// Create new snapshot and push it to the end
this.stack.push(this.makeSnapshot());
};
return History;
}());
exports["default"] = History;
},'src/js/base/editing/History.js',{"../core/range":"/Users/lqez/Dev/summernote/src/js/base/core/range.js"}];})(this);
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGlzdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkhpc3RvcnkuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx1Q0FBa0M7QUFFbEM7SUFDRSxpQkFBWSxTQUFTO1FBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELDhCQUFZLEdBQVo7UUFDRSxJQUFNLEdBQUcsR0FBRyxrQkFBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsSUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBRWpGLE9BQU87WUFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7WUFDL0IsUUFBUSxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7U0FDdEYsQ0FBQztJQUNKLENBQUM7SUFFRCwrQkFBYSxHQUFiLFVBQWMsUUFBUTtRQUNwQixJQUFJLFFBQVEsQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFO1lBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN4QztRQUNELElB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RCxJQXFIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCByYW5nZSBmcm9tICcuLi9jb3JlL3JhbmdlJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSGlzdG9yeSB7XG4gIGNvbnN0cnVjdG9yKCRlZGl0YWJsZSkge1xuICAgIHRoaXMuc3RhY2sgPSBbXTtcbiAgICB0aGlzLnN0YWNrT2Zmc2V0ID0gLTE7XG4gICAgdGhpcy4kZWRpdGFibGUgPSAkZWRpdGFibGU7XG4gICAgdGhpcy5lZGl0YWJsZSA9ICRlZGl0YWJsZVswXTtcbiAgfVxuXG4gIG1ha2VTbmFwc2hvdCgpIHtcbiAgICBjb25zdCBybmcgPSByYW5nZS5jcmVhdGUodGhpcy5lZGl0YWJsZSk7XG4gICAgY29uc3QgZW1wdHlCb29rbWFyayA9IHsgczogeyBwYXRoOiBbXSwgb2Zmc2V0OiAwIH0sIGU6IHsgcGF0aDogW10sIG9mZnNldDogMCB9IH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgY29udGVudHM6IHRoaXMuJGVkaXRhYmxlLmh0bWwoKSxcbiAgICAgIGJvb2ttYXJrOiAoKHJuZyAmJiBybmcuaXNPbkVkaXRhYmxlKCkpID8gcm5nLmJvb2ttYXJrKHRoaXMuZWRpdGFibGUpIDogZW1wdHlCb29rbWFyayksXG4gICAgfTtcbiAgfVxuXG4gIGFwcGx5U25hcHNob3Qoc25hcHNob3QpIHtcbiAgICBpZiAoc25hcHNob3QuY29udGVudHMgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuJGVkaXRhYmxlLmh0bWwoc25hcHNob3QuY29udGVudHMpO1xuICAgIH1cbiAgICBpZiAoc25hcHNob3QuYm9va21hcmsgIT09IG51bGwpIHtcbiAgICAgIHJhbmdlLmNyZWF0ZUZyb21Cb29rbWFyayh0aGlzLmVkaXRhYmxlLCBzbmFwc2hvdC5ib29rbWFyaykuc2VsZWN0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICogQG1ldGhvZCByZXdpbmRcbiAgKiBSZXdpbmRzIHRoZSBoaXN0b3J5IHN0YWNrIGJhY2sgdG8gdGhlIGZpcnN0IHNuYXBzaG90IHRha2VuLlxuICAqIExlYXZlcyB0aGUgc3RhY2sgaW50YWN0LCBzbyB0aGF0IFwiUmVkb1wiIGNhbiBzdGlsbCBiZSB1c2VkLlxuICAqL1xuICByZXdpbmQoKSB7XG4gICAgLy8gQ3JlYXRlIHNuYXAgc2hvdCBpZiBub3QgeWV0IHJlY29yZGVkXG4gICAgaWYgKHRoaXMuJGVkaXRhYmxlLmh0bWwoKSAhPT0gdGhpcy5zdGFja1t0aGlzLnN0YWNrT2Zmc2V0XS5jb250ZW50cykge1xuICAgICAgdGhpcy5yZWNvcmRVbmRvKCk7XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIHRvIHRoZSBmaXJzdCBhdmFpbGFibGUgc25hcHNob3QuXG4gICAgdGhpcy5zdGFja09mZnNldCA9IDA7XG5cbiAgICAvLyBBcHBseSB0aGF0IHNuYXBzaG90LlxuICAgIHRoaXMuYXBwbHlTbmFwc2hvdCh0aGlzLnN0YWNrW3RoaXMuc3RhY2tPZmZzZXRdKTtcbiAgfVxuXG4gIC8qKlxuICAqICBAbWV0aG9kIGNvbW1pdFxuICAqICBSZXNldHMgaGlzdG9yeSBzdGFjaywgYnV0IGtlZXBzIGN1cnJlbnQgZWRpdG9yJ3MgY29udGVudC5cbiAgKi9cbiAgY29tbWl0KCkge1xuICAgIC8vIENsZWFyIHRoZSBzdGFjay5cbiAgICB0aGlzLnN0YWNrID0gW107XG5cbiAgICAvLyBSZXN0b3JlIHN0YWNrT2Zmc2V0IHRvIGl0cyBvcmlnaW5hbCB2YWx1ZS5cbiAgICB0aGlzLnN0YWNrT2Zmc2V0ID0gLTE7XG5cbiAgICAvLyBSZWNvcmQgb3VyIGZpcnN0IHNuYXBzaG90IChvZiBub3RoaW5nKS5cbiAgICB0aGlzLnJlY29yZFVuZG8oKTtcbiAgfVxuXG4gIC8qKlxuICAqIEBtZXRob2QgcmVzZXRcbiAgKiBSZXNldHMgdGhlIGhpc3Rvcnkgc3RhY2sgY29tcGxldGVseTsgcmV2ZXJ0aW5nIHRvIGFuIGVtcHR5IGVkaXRvci5cbiAgKi9cbiAgcmVzZXQoKSB7XG4gICAgLy8gQ2xlYXIgdGhlIHN0YWNrLlxuICAgIHRoaXMuc3RhY2sgPSBbXTtcblxuICAgIC8vIFJlc3RvcmUgc3RhY2tPZmZzZXQgdG8gaXRzIG9yaWdpbmFsIHZhbHVlLlxuICAgIHRoaXMuc3RhY2tPZmZzZXQgPSAtMTtcblxuICAgIC8vIENsZWFyIHRoZSBlZGl0YWJsZSBhcmVhLlxuICAgIHRoaXMuJGVkaXRhYmxlLmh0bWwoJycpO1xuXG4gICAgLy8gUmVjb3JkIG91ciBmaXJzdCBzbmFwc2hvdCAob2Ygbm90aGluZykuXG4gICAgdGhpcy5yZWNvcmRVbmRvKCk7XG4gIH1cblxuICAvKipcbiAgICogdW5kb1xuICAgKi9cbiAgdW5kbygpIHtcbiAgICAvLyBDcmVhdGUgc25hcCBzaG90IGlmIG5vdCB5ZXQgcmVjb3JkZWRcbiAgICBpZiAodGhpcy4kZWRpdGFibGUuaHRtbCgpICE9PSB0aGlzLnN0YWNrW3RoaXMuc3RhY2tPZmZzZXRdLmNvbnRlbnRzKSB7XG4gICAgICB0aGlzLnJlY29yZFVuZG8oKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdGFja09mZnNldCA+IDApIHtcbiAgICAgIHRoaXMuc3RhY2tPZmZzZXQtLTtcbiAgICAgIHRoaXMuYXBwbHlTbmFwc2hvdCh0aGlzLnN0YWNrW3RoaXMuc3RhY2tPZmZzZXRdKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogcmVkb1xuICAgKi9cbiAgcmVkbygpIHtcbiAgICBpZiAodGhpcy5zdGFjay5sZW5ndGggLSAxID4gdGhpcy5zdGFja09mZnNldCkge1xuICAgICAgdGhpcy5zdGFja09mZnNldCsrO1xuICAgICAgdGhpcy5hcHBseVNuYXBzaG90KHRoaXMuc3RhY2tbdGhpcy5zdGFja09mZnNldF0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiByZWNvcmRlZCB1bmRvXG4gICAqL1xuICByZWNvcmRVbmRvKCkge1xuICAgIHRoaXMuc3RhY2tPZmZzZXQrKztcblxuICAgIC8vIFdhc2ggb3V0IHN0YWNrIGFmdGVyIHN0YWNrT2Zmc2V0XG4gICAgaWYgKHRoaXMuc3RhY2subGVuZ3RoID4gdGhpcy5zdGFja09mZnNldCkge1xuICAgICAgdGhpcy5zdGFjayA9IHRoaXMuc3RhY2suc2xpY2UoMCwgdGhpcy5zdGFja09mZnNldCk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIG5ldyBzbmFwc2hvdCBhbmQgcHVzaCBpdCB0byB0aGUgZW5kXG4gICAgdGhpcy5zdGFjay5wdXNoKHRoaXMubWFrZVNuYXBzaG90KCkpO1xuICB9XG59XG4iXX0=
|