core-graphics
Version:
A core library for creating shape-based graphic editors
108 lines (105 loc) • 3.93 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.isHistoryEvent = isHistoryEvent;
exports.isPersistedHistoryEvent = isPersistedHistoryEvent;
exports.getPersistedHistoryEvent = getPersistedHistoryEvent;
exports.getHistoryEventFromPersisted = getHistoryEventFromPersisted;
exports.isIdentityEvent = isIdentityEvent;
exports.isShapeAddEvent = isShapeAddEvent;
exports.isShapeUpdateEvent = isShapeUpdateEvent;
exports.isShapeRemoveEvent = isShapeRemoveEvent;
exports.isShapeChangeOrderEvent = isShapeChangeOrderEvent;
exports.isEraseAllEvent = isEraseAllEvent;
exports.isHistoryEventsGroup = isHistoryEventsGroup;
exports.identityHistoryEvent = identityHistoryEvent;
exports.shapeAddEvent = shapeAddEvent;
exports.shapeUpdateEvent = shapeUpdateEvent;
exports.shapeRemoveEvent = shapeRemoveEvent;
exports.shapesRemoveEvent = shapesRemoveEvent;
exports.shapeChangeOrderEvent = shapeChangeOrderEvent;
exports.eraseAllEvent = eraseAllEvent;
exports.historyEventsGroup = historyEventsGroup;
function isHistoryEvent(event) {
return !!event;
}
function isPersistedHistoryEvent(event) {
return !!event;
}
function getPersistedHistoryEvent(params, ev) {
var id = params.id;
var author = params.author;
var _params$applied = params.applied;
var applied = _params$applied === undefined ? true : _params$applied;
return { id: id, author: author, applied: applied, ev: ev };
}
function getHistoryEventFromPersisted(persisted) {
return persisted.ev;
}
var HistoryEventType = exports.HistoryEventType = undefined;
(function (HistoryEventType) {
HistoryEventType[HistoryEventType["Identity"] = 0] = "Identity";
HistoryEventType[HistoryEventType["AddShape"] = 1] = "AddShape";
HistoryEventType[HistoryEventType["UpdateShape"] = 2] = "UpdateShape";
HistoryEventType[HistoryEventType["RemoveShape"] = 3] = "RemoveShape";
HistoryEventType[HistoryEventType["ChangeShapeOrder"] = 4] = "ChangeShapeOrder";
HistoryEventType[HistoryEventType["EraseAll"] = 5] = "EraseAll";
HistoryEventType[HistoryEventType["Grouped"] = 6] = "Grouped";
})(HistoryEventType || (exports.HistoryEventType = HistoryEventType = {}));
function isIdentityEvent(base) {
return base.type === HistoryEventType.Identity;
}
function isShapeAddEvent(base) {
return base.type === HistoryEventType.AddShape;
}
function isShapeUpdateEvent(base) {
return base.type === HistoryEventType.UpdateShape;
}
function isShapeRemoveEvent(base) {
return base.type === HistoryEventType.RemoveShape;
}
function isShapeChangeOrderEvent(base) {
return base.type === HistoryEventType.ChangeShapeOrder;
}
function isEraseAllEvent(base) {
return base.type === HistoryEventType.EraseAll;
}
function isHistoryEventsGroup(base) {
return base.type === HistoryEventType.Grouped;
}
function identityHistoryEvent() {
return { type: HistoryEventType.Identity };
}
function shapeAddEvent(shapeData) {
return { type: HistoryEventType.AddShape, payload: shapeData };
}
function shapeUpdateEvent(id, shapeData) {
return { type: HistoryEventType.UpdateShape, payload: { shapeData: shapeData, id: id } };
}
function shapeRemoveEvent(shapeId) {
return { type: HistoryEventType.RemoveShape, payload: { id: shapeId } };
}
function shapesRemoveEvent(shapesIds) {
var events = shapesIds.map(function (shapeId, index) {
return shapeRemoveEvent(shapeId);
});
return historyEventsGroup(events);
}
function shapeChangeOrderEvent(params) {
var shapeId = params.shapeId;
var value = params.value;
var relative = params.relative;
return { type: HistoryEventType.ChangeShapeOrder, payload: { id: shapeId, value: value, relative: relative } };
}
function eraseAllEvent() {
return {
type: HistoryEventType.EraseAll
};
}
function historyEventsGroup(events) {
return {
type: HistoryEventType.Grouped,
payload: events
};
}